diff --git a/.github/workflows/CI.yml b/.github/workflows/CI.yml
index ca7d5f3..78333ea 100644
--- a/.github/workflows/CI.yml
+++ b/.github/workflows/CI.yml
@@ -4,14 +4,14 @@ on:
push:
tags:
- "v*"
- workflow_run:
- workflows: ["Release"]
- types: [completed]
- workflow_dispatch:
permissions:
contents: read
+concurrency:
+ group: ci-${{ github.ref }}
+ cancel-in-progress: false
+
env:
CARGO_TERM_COLOR: always
@@ -31,13 +31,33 @@ jobs:
- name: Install dev dependencies
run: uv sync --group dev --no-install-project
- name: Ruff lint
- run: uv run --no-project --with ruff==0.11.4 ruff check .
+ run: uv run --no-project ruff check .
- name: Ruff format check
- run: uv run --no-project --with ruff==0.11.4 ruff format --check .
+ run: uv run --no-project ruff format --check .
+
+ tests:
+ name: Python Tests
+ needs: quality
+ runs-on: ubuntu-latest
+ steps:
+ - uses: actions/checkout@v4
+ with:
+ submodules: recursive
+ - uses: actions/setup-python@v5
+ with:
+ python-version: "3.12"
+ - uses: astral-sh/setup-uv@v5
+ - uses: dtolnay/rust-toolchain@stable
+ - name: Install dev dependencies
+ run: uv sync --group dev --no-install-project
+ - name: Build native extension
+ run: uv run maturin develop
+ - name: Run pytest
+ run: uv run pytest -q
linux:
name: Linux manylinux wheels
- needs: quality
+ needs: [quality, tests]
runs-on: ${{ matrix.platform.runner }}
strategy:
fail-fast: false
@@ -82,7 +102,7 @@ jobs:
android:
name: Android wheels
- needs: quality
+ needs: [quality, tests]
runs-on: ubuntu-22.04
strategy:
fail-fast: false
@@ -118,7 +138,7 @@ jobs:
windows:
name: Windows wheels
- needs: quality
+ needs: [quality, tests]
runs-on: ${{ matrix.platform.runner }}
strategy:
fail-fast: false
@@ -153,7 +173,7 @@ jobs:
macos:
name: macOS wheels
- needs: quality
+ needs: [quality, tests]
# Both targets use macos-latest (Apple Silicon) — x86_64 is cross-compiled.
# macos-13 runners have very long queues (12h+); macos-latest is faster.
runs-on: macos-latest
@@ -185,7 +205,7 @@ jobs:
sdist:
name: Source distribution
- needs: quality
+ needs: [quality, tests]
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
@@ -205,11 +225,7 @@ jobs:
release:
name: Publish to PyPI
- if: >
- ${{
- startsWith(github.ref, 'refs/tags/v') ||
- (github.event_name == 'workflow_run' && github.event.workflow_run.conclusion == 'success')
- }}
+ if: startsWith(github.ref, 'refs/tags/v')
needs: [linux, android, windows, macos, sdist]
runs-on: ubuntu-latest
permissions:
diff --git a/.github/workflows/docs.yml b/.github/workflows/docs.yml
index e8c2dec..1f37eb6 100644
--- a/.github/workflows/docs.yml
+++ b/.github/workflows/docs.yml
@@ -2,14 +2,14 @@ name: Documentation
on:
push:
- branches: [master, main]
+ branches: [master, main, dev]
paths:
- "docs/**"
- "mkdocs.yml"
- "python/tryx/**"
pull_request:
- branches: [master, main]
+ branches: [master, main, dev]
paths:
- "docs/**"
- "mkdocs.yml"
@@ -21,10 +21,6 @@ on:
description: "Version to deploy (e.g. 0.7, 0.8)"
required: false
type: string
- delete_version:
- description: "Version to delete"
- required: false
- type: string
permissions:
contents: write
@@ -51,14 +47,14 @@ jobs:
- uses: astral-sh/setup-uv@v5
+ - uses: dtolnay/rust-toolchain@stable
+
- name: Install dependencies
- run: |
- uv sync --group docs --no-install-project
- uv pip install pyright mypy --system
+ run: uv sync --group dev --group docs --no-install-project
- name: Validate .pyi stubs with pyright
run: |
- pyright python/tryx/client.pyi \
+ uv run --no-project pyright python/tryx/client.pyi \
python/tryx/events.pyi \
python/tryx/types.pyi \
python/tryx/wacore.pyi \
@@ -71,7 +67,7 @@ jobs:
- name: Validate .pyi stubs with mypy
run: |
- mypy python/tryx/client.pyi \
+ uv run --no-project mypy python/tryx/client.pyi \
python/tryx/events.pyi \
python/tryx/types.pyi \
python/tryx/wacore.pyi \
@@ -84,16 +80,14 @@ jobs:
--ignore-missing-imports
- name: Build docs (validation only)
- run: uv run --no-project mkdocs build --strict
- env:
- PYTHONPATH: python
+ run: uv run --no-project zensical build -f mkdocs.yml -s
- # ── Job 2: Deploy (runs on push to master or tag) ──────────────────────────
+ # ── Job 2: Deploy (runs on push or manual trigger) ─────────────────────────
deploy:
name: Deploy Documentation
needs: validate
runs-on: ubuntu-latest
- if: github.event_name == 'push'
+ if: github.event_name == 'push' || github.event_name == 'workflow_dispatch'
steps:
- uses: actions/checkout@v4
with:
@@ -107,9 +101,7 @@ jobs:
- uses: astral-sh/setup-uv@v5
- name: Install dependencies
- run: |
- uv sync --group docs --no-install-project
- uv pip install mike
+ run: uv sync --group dev --group docs --no-install-project
- name: Configure git
run: |
@@ -124,83 +116,31 @@ jobs:
echo "Deploying docs for version: $VERSION"
uv run --no-project mike deploy --push --update-aliases "$VERSION" latest
uv run --no-project mike set-default --push latest
- env:
- PYTHONPATH: python
- # Auto-deploy from master → "latest" (without version number)
- - name: Deploy latest docs (from master)
- if: "!startsWith(github.ref, 'refs/tags/')"
+ # Auto-deploy from master → "dev" version
+ - name: Deploy dev docs (from master)
+ if: "!startsWith(github.ref, 'refs/tags/') && github.event_name == 'push'"
run: |
- echo "Deploying docs as latest"
+ echo "Deploying docs as dev"
uv run --no-project mike deploy --push --update-aliases dev latest
uv run --no-project mike set-default --push latest
- env:
- PYTHONPATH: python
-
- - name: List deployed versions
- if: success()
- run: uv run --no-project mike list
- # ── Job 3: Manual deploy (workflow_dispatch) ────────────────────────────────
- manual_deploy:
- name: Manual Deploy
- runs-on: ubuntu-latest
- if: github.event_name == 'workflow_dispatch'
- steps:
- - uses: actions/checkout@v4
- with:
- fetch-depth: 0
- submodules: recursive
-
- - uses: actions/setup-python@v5
- with:
- python-version: "3.12"
-
- - uses: astral-sh/setup-uv@v5
-
- - name: Install dependencies
- run: |
- uv sync --group docs --no-install-project
- uv pip install mike
-
- - name: Configure git
- run: |
- git config user.name "github-actions[bot]"
- git config user.email "github-actions[bot]@users.noreply.github.com"
-
- # Deploy custom version
- - name: Deploy custom version
- if: inputs.version != ''
+ # Manual deploy with custom version
+ - name: Deploy custom version (manual)
+ if: github.event_name == 'workflow_dispatch' && inputs.version != ''
run: |
echo "Deploying docs for version: ${{ inputs.version }}"
uv run --no-project mike deploy --push --update-aliases "${{ inputs.version }}" latest
uv run --no-project mike set-default --push latest
- env:
- PYTHONPATH: python
- # Delete a version
- - name: Delete docs version
- if: inputs.delete_version != ''
+ # Manual deploy without version → deploy as dev
+ - name: Deploy dev docs (manual)
+ if: github.event_name == 'workflow_dispatch' && inputs.version == ''
run: |
- echo "Deleting docs version: ${{ inputs.delete_version }}"
- uv run --no-project mike delete --push "${{ inputs.delete_version }}"
- env:
- PYTHONPATH: python
+ echo "Deploying docs as dev"
+ uv run --no-project mike deploy --push --update-aliases dev latest
+ uv run --no-project mike set-default --push latest
- name: List deployed versions
if: success()
run: uv run --no-project mike list
-
- # ── Job 4: Deploy to GitHub Pages (only for tag releases) ──────────────────
- deploy_pages:
- name: Deploy to GitHub Pages
- needs: deploy
- runs-on: ubuntu-latest
- if: github.event_name == 'push' && startsWith(github.ref, 'refs/tags/v')
- environment:
- name: github-pages
- url: ${{ steps.deployment.outputs.page_url }}
- steps:
- - name: Deploy to GitHub Pages
- id: deployment
- uses: actions/deploy-pages@v4
diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml
index 4efe70d..e3142e1 100644
--- a/.github/workflows/release.yml
+++ b/.github/workflows/release.yml
@@ -31,8 +31,8 @@ jobs:
- uses: dtolnay/rust-toolchain@stable
- - name: Install python-semantic-release
- run: pip install "python-semantic-release>=9.21.1"
+ - name: Install dependencies
+ run: uv sync --group dev --no-install-project
- name: Python Semantic Release
id: release
diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml
index 630f9c7..a2a7a84 100644
--- a/.pre-commit-config.yaml
+++ b/.pre-commit-config.yaml
@@ -15,19 +15,19 @@ repos:
hooks:
- id: ruff-check
name: ruff check
- entry: uv run ruff check --fix
+ entry: uv run --no-project ruff check --fix
language: system
types_or: [python, pyi]
- id: ruff-format
name: ruff format
- entry: uv run ruff format
+ entry: uv run --no-project ruff format
language: system
types_or: [python, pyi]
- id: pyright
name: pyright type check
- entry: uv run pyright
+ entry: uv run --no-project pyright
language: system
types: [python]
pass_filenames: false
@@ -35,13 +35,13 @@ repos:
- id: stub-parity
name: check stub parity
- entry: uv run python scripts/check_stub_parity.py
+ entry: uv run --no-project python scripts/check_stub_parity.py
language: system
pass_filenames: false
files: "^python/tryx/.*\\.(py|pyi)$"
- id: conventional-commit-message
name: conventional commit message
- entry: uv run python scripts/check_commit_message.py
+ entry: uv run --no-project python scripts/check_commit_message.py
language: system
stages: [commit-msg]
diff --git a/Cargo.lock b/Cargo.lock
index b4c54e9..01a29a3 100644
--- a/Cargo.lock
+++ b/Cargo.lock
@@ -18,7 +18,7 @@ version = "0.6.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "1973cfbc1a2daf9cf550e74e1f088c28e7f7d8c1e1418fb6c9dc5184b7e84c99"
dependencies = [
- "crypto-common 0.2.1",
+ "crypto-common 0.2.2",
"inout 0.2.2",
]
@@ -39,71 +39,48 @@ version = "0.9.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "f8eb277bec05f56a0e0591f155a484cbd0f4f07ff2905051a48c72f004f7ed58"
dependencies = [
- "cipher 0.5.1",
+ "cipher 0.5.2",
"cpubits",
"cpufeatures 0.3.0",
]
[[package]]
name = "aes-gcm"
-version = "0.10.3"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "831010a0f742e1209b3bcea8fab6a8e149051ba6099432c8cb2cc117dec3ead1"
-dependencies = [
- "aead 0.5.2",
- "aes 0.8.4",
- "cipher 0.4.4",
- "ctr 0.9.2",
- "ghash 0.5.1",
- "subtle",
-]
-
-[[package]]
-name = "aes-gcm"
-version = "0.11.0"
+version = "0.11.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "fdf011db2e21ce0d575593d749db5554b47fed37aff429e4dc50bc91ac93a028"
+checksum = "7f2b8006a0c83f52b62ba44a97b58bf76fe2f70a329e588f67f89691d93d498f"
dependencies = [
"aead 0.6.1",
"aes 0.9.2",
- "cipher 0.5.1",
- "ctr 0.10.0",
- "ghash 0.6.0",
- "subtle",
+ "cipher 0.5.2",
+ "ctr 0.10.1",
+ "ctutils",
+ "ghash",
]
[[package]]
name = "aho-corasick"
-version = "1.1.4"
+version = "1.1.5"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ddd31a130427c27518df266943a5308ed92d4b226cc639f5a8f1002816174301"
+checksum = "c982642fa9e8606056828ee9a8505737230110bb1099153c79efe865c59d12ba"
dependencies = [
"memchr",
]
[[package]]
name = "android_system_properties"
-version = "0.1.5"
+version = "0.1.6"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "819e7219dbd41043ac279b19830f2efc897156490d7fd6ea916720117ee66311"
+checksum = "ae221649c9976a6f6c56ae1facf410f3ddb33cc661c4b7b61020a912d4237fbc"
dependencies = [
"libc",
]
[[package]]
name = "anyhow"
-version = "1.0.102"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7f202df86484c868dbad7eaa557ef785d5c66295e41b460ef922eca0723b842c"
-
-[[package]]
-name = "arc-swap"
-version = "1.9.2"
+version = "1.0.104"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c049c0be4daef0b145cb3555416b3b8ef5b7888a38aea1a3a155801fe7b0810b"
-dependencies = [
- "rustversion",
-]
+checksum = "330a5ed07fa54e4702c9d6c4174f74427fc0ef6e214bbd677ae50a5099946470"
[[package]]
name = "arrayvec"
@@ -117,7 +94,7 @@ version = "0.6.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "5493c3bedbacf7fd7382c6346bbd66687d12bbaad3a89a2d2c303ee6cf20b048"
dependencies = [
- "asn1-rs-derive",
+ "asn1-rs-derive 0.5.1",
"asn1-rs-impl",
"displaydoc",
"nom",
@@ -127,6 +104,22 @@ dependencies = [
"time",
]
+[[package]]
+name = "asn1-rs"
+version = "0.7.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b7f43a50ac4fdca5df8e885c21b835997f0a1cdee65494a6847694a98652d9d8"
+dependencies = [
+ "asn1-rs-derive 0.6.0",
+ "asn1-rs-impl",
+ "displaydoc",
+ "nom",
+ "num-traits",
+ "rusticata-macros",
+ "thiserror 2.0.20",
+ "time",
+]
+
[[package]]
name = "asn1-rs-derive"
version = "0.5.1"
@@ -135,7 +128,19 @@ checksum = "965c2d33e53cb6b267e148a4cb0760bc01f4904c1cd4bb4002a085bb016d1490"
dependencies = [
"proc-macro2",
"quote",
- "syn 2.0.117",
+ "syn 2.0.119",
+ "synstructure",
+]
+
+[[package]]
+name = "asn1-rs-derive"
+version = "0.6.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "3109e49b1e4909e9db6515a30c633684d68cdeaa252f215214cb4fa1a5bfee2c"
+dependencies = [
+ "proc-macro2",
+ "quote",
+ "syn 2.0.119",
"synstructure",
]
@@ -147,7 +152,7 @@ checksum = "7b18050c2cd6fe86c3a76584ef5e0baf286d038cda203eb6223df2cc413565f7"
dependencies = [
"proc-macro2",
"quote",
- "syn 2.0.117",
+ "syn 2.0.119",
]
[[package]]
@@ -197,15 +202,9 @@ dependencies = [
[[package]]
name = "autocfg"
-version = "1.5.0"
+version = "1.5.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c08606f8c3cbf4ce6ec8e28fb0014a2c086708fe954eaa885384a6165172e7e8"
-
-[[package]]
-name = "base16ct"
-version = "0.2.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4c7f02d4ea65f2c1853089ffd8d2787bdbc63de2f0d29dedbcf8ccdfa0ccd4cf"
+checksum = "f2032f911046de80f0a198e0901378627c33f59ea0ac00e363d481118bd70a53"
[[package]]
name = "base64"
@@ -214,10 +213,10 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "72b3254f16251a8381aa12e40e3c4d2f0199f8c6508fbecb9d91f575e0fbb8c6"
[[package]]
-name = "base64ct"
-version = "1.8.3"
+name = "base64"
+version = "0.23.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "2af50177e190e07a26ab74f8b1efbfe2ef87da2116221318cb1c2e82baf7de06"
+checksum = "ac07cdecf99051d9a5238b80f35af32cdeba5b336e55d957b318b50137e18da5"
[[package]]
name = "bincode"
@@ -228,6 +227,15 @@ dependencies = [
"serde",
]
+[[package]]
+name = "bit-vec"
+version = "0.9.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b71798fca2c1fe1086445a7258a4bc81e6e49dcd24c8d0dd9a1e57395b603f51"
+dependencies = [
+ "serde",
+]
+
[[package]]
name = "bitflags"
version = "1.3.2"
@@ -236,9 +244,9 @@ checksum = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a"
[[package]]
name = "bitflags"
-version = "2.11.0"
+version = "2.13.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "843867be96c8daad0d758b57df9392b6d8d271134fce549de6ce169ff98a92af"
+checksum = "b588b76d00fde79687d7646a9b5bdf3cc0f655e0bbd080335a95d7e96f3587da"
[[package]]
name = "block-buffer"
@@ -251,22 +259,13 @@ dependencies = [
[[package]]
name = "block-buffer"
-version = "0.12.0"
+version = "0.12.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "cdd35008169921d80bc60d3d0ab416eecb028c4cd653352907921d95084790be"
+checksum = "d2f6c7dbe95a6ed67ad9f18e57daf93a2f034c524b99fd2b76d18fdfeb6660aa"
dependencies = [
"hybrid-array",
]
-[[package]]
-name = "block-padding"
-version = "0.3.3"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a8894febbff9f758034a5b8e12d87918f56dfc64a8e1fe757d65e29041538d93"
-dependencies = [
- "generic-array",
-]
-
[[package]]
name = "block-padding"
version = "0.4.2"
@@ -292,13 +291,13 @@ version = "3.9.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "6dee98b0db6a962de883bf5d20362dee4d7ca0d12fe39a7c6c73c844e1cd7c1f"
dependencies = [
- "darling",
+ "darling 0.23.0",
"ident_case",
"prettyplease",
"proc-macro2",
"quote",
"rustversion",
- "syn 2.0.117",
+ "syn 2.0.119",
]
[[package]]
@@ -307,7 +306,7 @@ version = "0.9.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "cf9e6224bc4ee1f189ad257120c156fb05f95b826f5369d620b24984476c200a"
dependencies = [
- "base64",
+ "base64 0.22.1",
"bytes",
"foldhash 0.1.5",
"hashbrown 0.15.5",
@@ -341,7 +340,7 @@ dependencies = [
"prettyplease",
"proc-macro2",
"quote",
- "syn 2.0.117",
+ "syn 2.0.119",
"thiserror 2.0.20",
]
@@ -359,9 +358,32 @@ dependencies = [
[[package]]
name = "bumpalo"
-version = "3.20.2"
+version = "3.20.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "72f5acc6cb2ba439de613abc23857ec3d78374d8ed5ac84e9d11336e87da8649"
+
+[[package]]
+name = "bytecheck"
+version = "0.8.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "26333eeac754f0ad8a6bcd0eb0ac012156302e4e16b852b72ee399aea4f12c29"
+dependencies = [
+ "bytecheck_derive",
+ "ptr_meta",
+ "rancor",
+ "simdutf8",
+]
+
+[[package]]
+name = "bytecheck_derive"
+version = "0.8.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5d20789868f4b01b2f2caec9f5c4e0213b41e3e5702a50157d699ae31ced2fcb"
+checksum = "46d07918caa9eeaaf06b7873925c53a61daac173539b4f7715090745e44e4e69"
+dependencies = [
+ "proc-macro2",
+ "quote",
+ "syn 3.0.3",
+]
[[package]]
name = "bytemuck"
@@ -377,9 +399,9 @@ checksum = "1fd0f2584146f6f2ef48085050886acf353beff7305ebd1ae69500e27c67f64b"
[[package]]
name = "bytes"
-version = "1.12.0"
+version = "1.12.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8ae3f5d315924270530207e2a68396c3cc547f6dca3fbdca317cfb1a51edb593"
+checksum = "fc652a48c352aef3ea3aed32080501cf3ef6ed5da78602a020c991775b0aff04"
[[package]]
name = "castaway"
@@ -392,27 +414,18 @@ dependencies = [
[[package]]
name = "cbc"
-version = "0.1.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "26b52a9543ae338f279b96b0b9fed9c8093744685043739079ce85cd58f289a6"
-dependencies = [
- "cipher 0.4.4",
-]
-
-[[package]]
-name = "cbc"
-version = "0.2.0"
+version = "0.2.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "98db6aeaef0eeef2c1e3ce9a27b739218825dae116076352ac3777076aa22225"
+checksum = "ce2dc9ee5f88d11e0beb842c88b33c8a5cf0d1329c4b19494af42b07dbfe8896"
dependencies = [
- "cipher 0.5.1",
+ "cipher 0.5.2",
]
[[package]]
name = "cc"
-version = "1.2.57"
+version = "1.4.4"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7a0dd1ca384932ff3641c8718a02769f1698e7563dc6974ffd03346116310423"
+checksum = "0ad534f4357a5264cce5019c989cf66a4f0dc4e0d1b1d15f8aacec0ff7360273"
dependencies = [
"find-msvc-tools",
"shlex",
@@ -432,12 +445,13 @@ dependencies = [
[[package]]
name = "cfb"
-version = "0.12.1"
+version = "0.14.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "fb9b414dc579b1b0194d06e65472b6ee2e87f623f970a715e3bb04e105400ffa"
+checksum = "a347dcabdae9c31b0825fd6a8bed285ec9c2acb89c47827126d52fa4f59cece3"
dependencies = [
"fnv",
"uuid",
+ "web-time",
]
[[package]]
@@ -446,22 +460,28 @@ version = "1.0.4"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "9330f8b2ff13f34540b44e946ef35111825727b38d33286ef986142615121801"
+[[package]]
+name = "cfg_aliases"
+version = "0.2.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "f079e83a288787bcd14a6aea84cee5c87a67c5a3e660c30f557a3d24761b3527"
+
[[package]]
name = "chacha20"
-version = "0.10.0"
+version = "0.10.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "6f8d983286843e49675a4b7a2d174efe136dc93a18d69130dd18198a6c167601"
+checksum = "d524456ba66e72eb8b115ff89e01e497f8e6d11d78b70b1aa13c0fbd97540a81"
dependencies = [
"cfg-if",
"cpufeatures 0.3.0",
- "rand_core 0.10.0",
+ "rand_core 0.10.1",
]
[[package]]
name = "chrono"
-version = "0.4.44"
+version = "0.4.45"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c673075a2e0e5f4a1dde27ce9dee1ea4558c7ffe648f576438a20ca1d2acc4b0"
+checksum = "1aa79e62e7697b8e29b513a68abacf485adcd1fe8284a4316c5ae868e6633327"
dependencies = [
"iana-time-zone",
"js-sys",
@@ -483,12 +503,12 @@ dependencies = [
[[package]]
name = "cipher"
-version = "0.5.1"
+version = "0.5.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e34d8227fe1ba289043aeb13792056ff80fd6de1a9f49137a5f499de8e8c78ea"
+checksum = "e8cf2a2c93cd704877c0858356ed03480ff301ee950b43f1cbe4573b088bfa6c"
dependencies = [
- "block-buffer 0.12.0",
- "crypto-common 0.2.1",
+ "block-buffer 0.12.1",
+ "crypto-common 0.2.2",
"inout 0.2.2",
]
@@ -503,9 +523,9 @@ dependencies = [
[[package]]
name = "cmov"
-version = "0.5.2"
+version = "0.5.4"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "de0758edba32d61d1fd9f4d69491b47604b91ee2f7e6b33de7e54ca4ebe55dc3"
+checksum = "0c9ea0ac24bc397ab3c98583a3c9ba74fa56b09a4449bbe172b9b1ddb016027a"
[[package]]
name = "compact_str"
@@ -530,12 +550,6 @@ dependencies = [
"crossbeam-utils",
]
-[[package]]
-name = "const-oid"
-version = "0.9.6"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c2459377285ad874054d797f3ccebf984978aa39129f6eafde5cdc8315b612f8"
-
[[package]]
name = "core-foundation-sys"
version = "0.8.7"
@@ -544,9 +558,9 @@ checksum = "773648b94d0e5d620f64f280777445740e61fe701025087ec8b57f45c791888b"
[[package]]
name = "cpubits"
-version = "0.1.0"
+version = "0.1.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5ef0c543070d296ea414df2dd7625d1b24866ce206709d8a4a424f28377f5861"
+checksum = "15b85f9c39137c3a891689859392b1bd49812121d0d61c9caf00d46ed5ce06ae"
[[package]]
name = "cpufeatures"
@@ -567,37 +581,19 @@ dependencies = [
]
[[package]]
-name = "crc"
-version = "3.4.0"
+name = "crc32c"
+version = "0.6.8"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5eb8a2a1cd12ab0d987a5d5e825195d372001a4094a0376319d5a0ad71c1ba0d"
+checksum = "3a47af21622d091a8f0fb295b88bc886ac74efcc613efc19f5d0b21de5c89e47"
dependencies = [
- "crc-catalog",
+ "rustc_version",
]
-[[package]]
-name = "crc-catalog"
-version = "2.5.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "217698eaf96b4a3f0bc4f3662aaa55bdf913cd54d7204591faa790070c6d0853"
-
[[package]]
name = "crossbeam-utils"
-version = "0.8.21"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d0a5c400df2834b80a4c3327b3aad3a4c4cd4de0629063962b03235697506a28"
-
-[[package]]
-name = "crypto-bigint"
-version = "0.5.5"
+version = "0.8.22"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "0dc92fb57ca44df6db8059111ab3af99a63d5d0f8375d9972e319a379c6bab76"
-dependencies = [
- "generic-array",
- "rand_core 0.6.4",
- "subtle",
- "zeroize",
-]
+checksum = "61803da095bee82a81bb1a452ecc25d3b2f1416d1897eb86430c6159ef717c17"
[[package]]
name = "crypto-common"
@@ -612,9 +608,9 @@ dependencies = [
[[package]]
name = "crypto-common"
-version = "0.2.1"
+version = "0.2.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "77727bb15fa921304124b128af125e7e3b968275d1b108b379190264f4423710"
+checksum = "ce6e4c961d6cd6c9a86db418387425e8bdeaf05b3c8bc1411e6dca4c252f1453"
dependencies = [
"hybrid-array",
]
@@ -630,37 +626,22 @@ dependencies = [
[[package]]
name = "ctr"
-version = "0.10.0"
+version = "0.10.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "17469f8eb9bdbfad10f71f4cfddfd38b01143520c0e717d8796ccb4d44d44e42"
+checksum = "baaca1c4b237092596f64d571e9db6ce4109c4ef9742e27590f1709594461f21"
dependencies = [
- "cipher 0.5.1",
+ "cipher 0.5.2",
]
[[package]]
name = "ctutils"
-version = "0.4.0"
+version = "0.4.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1005a6d4446f5120ef475ad3d2af2b30c49c2c9c6904258e3bb30219bebed5e4"
+checksum = "7d5515a3834141de9eafb9717ad39eea8247b5674e6066c404e8c4b365d2a29e"
dependencies = [
"cmov",
]
-[[package]]
-name = "curve25519-dalek"
-version = "4.1.3"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "97fb8b7c4503de7d6ae7b42ab72a5a59857b4c937ec27a3d4539dba95b5ab2be"
-dependencies = [
- "cfg-if",
- "cpufeatures 0.2.17",
- "curve25519-dalek-derive",
- "fiat-crypto 0.2.9",
- "rustc_version",
- "subtle",
- "zeroize",
-]
-
[[package]]
name = "curve25519-dalek"
version = "5.0.0"
@@ -670,7 +651,7 @@ dependencies = [
"cfg-if",
"cpufeatures 0.3.0",
"curve25519-dalek-derive",
- "fiat-crypto 0.3.0",
+ "fiat-crypto",
"rustc_version",
"subtle",
"zeroize",
@@ -684,7 +665,7 @@ checksum = "f46882e17999c6cc590af592290432be3bce0428cb0d5f8b6715e4dc7b383eb3"
dependencies = [
"proc-macro2",
"quote",
- "syn 2.0.117",
+ "syn 2.0.119",
]
[[package]]
@@ -693,8 +674,18 @@ version = "0.21.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "9cdf337090841a411e2a7f3deb9187445851f91b309c0c0a29e05f74a00a48c0"
dependencies = [
- "darling_core",
- "darling_macro",
+ "darling_core 0.21.3",
+ "darling_macro 0.21.3",
+]
+
+[[package]]
+name = "darling"
+version = "0.23.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "25ae13da2f202d56bd7f91c25fba009e7717a1e4a1cc98a76d844b65ae912e9d"
+dependencies = [
+ "darling_core 0.23.0",
+ "darling_macro 0.23.0",
]
[[package]]
@@ -708,7 +699,20 @@ dependencies = [
"proc-macro2",
"quote",
"strsim",
- "syn 2.0.117",
+ "syn 2.0.119",
+]
+
+[[package]]
+name = "darling_core"
+version = "0.23.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "9865a50f7c335f53564bb694ef660825eb8610e0a53d3e11bf1b0d3df31e03b0"
+dependencies = [
+ "ident_case",
+ "proc-macro2",
+ "quote",
+ "strsim",
+ "syn 2.0.119",
]
[[package]]
@@ -717,9 +721,20 @@ version = "0.21.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "d38308df82d1080de0afee5d069fa14b0326a88c14f15c5ccda35b4a6c414c81"
dependencies = [
- "darling_core",
+ "darling_core 0.21.3",
+ "quote",
+ "syn 2.0.119",
+]
+
+[[package]]
+name = "darling_macro"
+version = "0.23.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ac3984ec7bd6cfa798e62b4a642426a5be0e68f9401cfc2a01e3fa9ea2fcdb8d"
+dependencies = [
+ "darling_core 0.23.0",
"quote",
- "syn 2.0.117",
+ "syn 2.0.119",
]
[[package]]
@@ -729,23 +744,26 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "4583a4551df46e2792f82ceeac45e850d2e2d5debba0b91f102385cda5b11f06"
[[package]]
-name = "der"
-version = "0.7.10"
+name = "der-parser"
+version = "9.0.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e7c1832837b905bbfb5101e07cc24c8deddf52f93225eee6ead5f4d63d53ddcb"
+checksum = "5cd0a5c643689626bec213c4d8bd4d96acc8ffdb4ad4bb6bc16abf27d5f4b553"
dependencies = [
- "const-oid",
- "pem-rfc7468",
- "zeroize",
+ "asn1-rs 0.6.2",
+ "displaydoc",
+ "nom",
+ "num-bigint",
+ "num-traits",
+ "rusticata-macros",
]
[[package]]
name = "der-parser"
-version = "9.0.0"
+version = "10.0.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5cd0a5c643689626bec213c4d8bd4d96acc8ffdb4ad4bb6bc16abf27d5f4b553"
+checksum = "07da5016415d5a3c4dd39b11ed26f915f52fc4e0dc197d87908bc916e51bc1a6"
dependencies = [
- "asn1-rs",
+ "asn1-rs 0.7.2",
"displaydoc",
"nom",
"num-bigint",
@@ -758,9 +776,6 @@ name = "deranged"
version = "0.5.8"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "7cd812cc2bc1d69d4764bd80df88b4317eaef9e773c75226407d9bc0876b211c"
-dependencies = [
- "powerfmt",
-]
[[package]]
name = "diesel"
@@ -778,15 +793,15 @@ dependencies = [
[[package]]
name = "diesel_derives"
-version = "2.3.7"
+version = "2.3.9"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "47618bf0fac06bb670c036e48404c26a865e6a71af4114dfd97dfe89936e404e"
+checksum = "d1817b7f4279b947fc4cafddec12b0e5f8727141706561ce3ac94a60bddd1cf5"
dependencies = [
"diesel_table_macro_syntax",
"dsl_auto_type",
"proc-macro2",
"quote",
- "syn 2.0.117",
+ "syn 2.0.119",
]
[[package]]
@@ -806,7 +821,7 @@ version = "0.3.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "fe2444076b48641147115697648dc743c2c00b61adade0f01ce67133c7babe8c"
dependencies = [
- "syn 2.0.117",
+ "syn 2.0.119",
]
[[package]]
@@ -816,19 +831,18 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "9ed9a281f7bc9b7576e61468ba615a66a5c8cfdff42420a70aa82701a3b1e292"
dependencies = [
"block-buffer 0.10.4",
- "const-oid",
"crypto-common 0.1.7",
"subtle",
]
[[package]]
name = "digest"
-version = "0.11.2"
+version = "0.11.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4850db49bf08e663084f7fb5c87d202ef91a3907271aff24a94eb97ff039153c"
+checksum = "f1dd6dbb5841937940781866fa1281a1ff7bd3bf827091440879f9994983d5c2"
dependencies = [
- "block-buffer 0.12.0",
- "crypto-common 0.2.1",
+ "block-buffer 0.12.1",
+ "crypto-common 0.2.2",
"ctutils",
]
@@ -855,54 +869,19 @@ version = "0.2.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "dd122633e4bef06db27737f21d3738fb89c8f6d5360d6d9d7635dda142a7757e"
dependencies = [
- "darling",
+ "darling 0.21.3",
"either",
"heck",
"proc-macro2",
"quote",
- "syn 2.0.117",
-]
-
-[[package]]
-name = "ecdsa"
-version = "0.16.9"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ee27f32b5c5292967d2d4a9d7f1e0b0aed2c15daded5a60300e4abb9d8020bca"
-dependencies = [
- "der",
- "digest 0.10.7",
- "elliptic-curve",
- "rfc6979",
- "signature",
- "spki",
+ "syn 2.0.119",
]
[[package]]
name = "either"
-version = "1.15.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "48c757948c5ede0e46177b7add2e67155f70e33c07fea8284df6576da70b3719"
-
-[[package]]
-name = "elliptic-curve"
-version = "0.13.8"
+version = "1.18.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b5e6043086bf7973472e0c7dff2142ea0b680d30e18d9cc40f267efbf222bd47"
-dependencies = [
- "base16ct",
- "crypto-bigint",
- "digest 0.10.7",
- "ff",
- "generic-array",
- "group",
- "hkdf 0.12.4",
- "pem-rfc7468",
- "pkcs8",
- "rand_core 0.6.4",
- "sec1",
- "subtle",
- "zeroize",
-]
+checksum = "252afb9ae5eaa683babdc6a068b3f5726eb19e05070c731f9b2a23a7c3e8ed34"
[[package]]
name = "encoding_rs"
@@ -931,11 +910,10 @@ dependencies = [
[[package]]
name = "event-listener"
-version = "5.4.1"
+version = "5.4.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e13b66accf52311f30a0db42147dadea9850cb48cd070028831ae5f5d4b856ab"
+checksum = "5a23add41df1562121a9393cb065eab5146a1242410f23a644851e90cfd669d2"
dependencies = [
- "concurrent-queue",
"parking",
"pin-project-lite",
]
@@ -958,25 +936,9 @@ checksum = "af9673d8203fcb076b19dfd17e38b3d4ae9f44959416ea532ce72415a6020365"
[[package]]
name = "fastrand"
-version = "2.4.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "9f1f227452a390804cdb637b74a86990f2a7d7ba4b7d5693aac9b4dd6defd8d6"
-
-[[package]]
-name = "ff"
-version = "0.13.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c0b50bfb653653f9ca9095b427bed08ab8d75a137839d9ad64eb11810d5b6393"
-dependencies = [
- "rand_core 0.6.4",
- "subtle",
-]
-
-[[package]]
-name = "fiat-crypto"
-version = "0.2.9"
+version = "2.5.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "28dea519a9695b9977216879a3ebfddf92f1c08c05d984f8996aecd6ecdc811d"
+checksum = "da7c62ceae207dd37ea5b845da6a0696c799f85e97da1ab5b7910be3c1c80223"
[[package]]
name = "fiat-crypto"
@@ -986,9 +948,9 @@ checksum = "64cd1e32ddd350061ae6edb1b082d7c54915b5c672c389143b9a63403a109f24"
[[package]]
name = "find-msvc-tools"
-version = "0.1.9"
+version = "0.1.11"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5baebc0774151f905a1a2cc41989300b1e6fbb29aff0ceffa1064fdd3088d582"
+checksum = "d45db016d36b838f563236e9193d0ee6ce38f3f68b6c94e914b4929c96bbb890"
[[package]]
name = "fnv"
@@ -1008,11 +970,20 @@ version = "0.2.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "77ce24cb58228fbb8aa041425bb1050850ac19177686ea6e0f41a70416f56fdb"
+[[package]]
+name = "form_urlencoded"
+version = "1.2.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "cb4cb245038516f5f85277875cdaa4f7d2c9a0fa0468de06ed190163b1581fcf"
+dependencies = [
+ "percent-encoding",
+]
+
[[package]]
name = "futures"
-version = "0.3.32"
+version = "0.3.34"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8b147ee9d1f6d097cef9ce628cd2ee62288d963e16fb287bd9286455b241382d"
+checksum = "9a31d2a3fbaaeb2af2368bbdd904aa8e812d3c04a1ee10d3171f52d556e5d0a3"
dependencies = [
"futures-channel",
"futures-core",
@@ -1024,9 +995,9 @@ dependencies = [
[[package]]
name = "futures-channel"
-version = "0.3.33"
+version = "0.3.34"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "262590f4fe6afeb0bc83be1daa64e52657fe185690a958af7f3ad0e92085c5ae"
+checksum = "b1f9e3d69d39e4862ffed03ed071a76f9a13ba1d9109d355b0f0aa6b15e393c4"
dependencies = [
"futures-core",
"futures-sink",
@@ -1034,44 +1005,44 @@ dependencies = [
[[package]]
name = "futures-core"
-version = "0.3.33"
+version = "0.3.34"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "2cd50c473c80f6d7c3670a752354b8e569b1a7cbfdc0419ec88e5edad85e0dc7"
+checksum = "92d699e522242e69e3003b94ecc1f960f3a5e015aa7c5d7486e65ad01dd94f5e"
[[package]]
name = "futures-io"
-version = "0.3.33"
+version = "0.3.34"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4577ecaa3c4f96589d473f679a71b596316f6641bc350038b962a5daf0085d7a"
+checksum = "53c0fa8157de1303bfffdaa1cc2a673bfffb60102f76b0ef4441659124373fed"
[[package]]
name = "futures-macro"
-version = "0.3.33"
+version = "0.3.34"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "2d6d3cde68c518367be28956066ddfef33813991b77a55005a69dae04bf3b10b"
+checksum = "9fb9654ba8355388abeb8dcb4fc62f511300867002afc858860463bdd9fe0c44"
dependencies = [
"proc-macro2",
"quote",
- "syn 2.0.117",
+ "syn 3.0.3",
]
[[package]]
name = "futures-sink"
-version = "0.3.33"
+version = "0.3.34"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e34418ac499d6305c2fb5ad0ed2f6ac998c5f8ca209b4510f7f94242c647e307"
+checksum = "1944426bf7d03f1d14f708785e4b33efd750b36d48a157b836b3efc15ede8e1d"
[[package]]
name = "futures-task"
-version = "0.3.33"
+version = "0.3.34"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b231ed28831efb4a61a08580c4bc233ec56bc009f4cd8f52da2c3cb97df0c109"
+checksum = "cd417de3d1d015fc3bfd2b1ea46dfc7bab72ef86f1cc7cc9c78e728b34a6d1fd"
[[package]]
name = "futures-util"
-version = "0.3.33"
+version = "0.3.34"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a77a90a256fce34da66415271e30f94ee91c57b04b8a2c042d9cf3220179deaa"
+checksum = "0d50a92467f8ba5dd6e3ee5d4bd04d73ab2e4e1c44474a0674821dfce14b79bc"
dependencies = [
"futures-channel",
"futures-core",
@@ -1092,7 +1063,6 @@ checksum = "85649ca51fd72272d7821adaf274ad91c288277713d9c18820d8499a7ff69e9a"
dependencies = [
"typenum",
"version_check",
- "zeroize",
]
[[package]]
@@ -1108,60 +1078,25 @@ dependencies = [
[[package]]
name = "getrandom"
-version = "0.3.4"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "899def5c37c4fd7b2664648c28120ecec138e4d395b459e5ca34f9cce2dd77fd"
-dependencies = [
- "cfg-if",
- "libc",
- "r-efi 5.3.0",
- "wasip2",
-]
-
-[[package]]
-name = "getrandom"
-version = "0.4.2"
+version = "0.4.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "0de51e6874e94e7bf76d726fc5d13ba782deca734ff60d5bb2fb2607c7406555"
+checksum = "300e883d756b2e4ec94e02791f39b04b522276138852cfc41d9fb7e904106099"
dependencies = [
"cfg-if",
"js-sys",
"libc",
- "r-efi 6.0.0",
- "rand_core 0.10.0",
- "wasip2",
- "wasip3",
+ "r-efi",
+ "rand_core 0.10.1",
"wasm-bindgen",
]
-[[package]]
-name = "ghash"
-version = "0.5.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f0d8a4362ccb29cb0b265253fb0a2728f592895ee6854fd9bc13f2ffda266ff1"
-dependencies = [
- "opaque-debug",
- "polyval 0.6.2",
-]
-
[[package]]
name = "ghash"
version = "0.6.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "2eecf2d5dc9b66b732b97707a0210906b1d30523eb773193ab777c0c84b3e8d5"
dependencies = [
- "polyval 0.7.1",
-]
-
-[[package]]
-name = "group"
-version = "0.13.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f0f9ef7462f7c099f518d754361858f86d8a07af53ba9af0fe635bbccb151a63"
-dependencies = [
- "ff",
- "rand_core 0.6.4",
- "subtle",
+ "polyval",
]
[[package]]
@@ -1201,15 +1136,6 @@ version = "0.4.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "7f24254aa9a54b5c858eaee2f5bccdb46aaf0e486a595ed5fd8f86ba55232a70"
-[[package]]
-name = "hkdf"
-version = "0.12.4"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7b5f8eb2ad728638ea2c7d47a21db23b7b58a72ed6a38256b8a1849f15fbbdf7"
-dependencies = [
- "hmac 0.12.1",
-]
-
[[package]]
name = "hkdf"
version = "0.13.0"
@@ -1234,7 +1160,7 @@ version = "0.13.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "6303bc9732ae41b04cb554b844a762b4115a61bfaa81e3e83050991eeb56863f"
dependencies = [
- "digest 0.11.2",
+ "digest 0.11.3",
]
[[package]]
@@ -1255,9 +1181,9 @@ checksum = "6dbf3de79e51f3d586ab4cb9d5c3e2c14aa28ed23d180cf89b4df0454a69cc87"
[[package]]
name = "hybrid-array"
-version = "0.4.8"
+version = "0.4.14"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8655f91cd07f2b9d0c24137bd650fe69617773435ee5ec83022377777ce65ef1"
+checksum = "707114b52a152fa7bdb290cd7cd5912d9467273b6d74e21b8d81aca1f8533f6b"
dependencies = [
"typenum",
]
@@ -1287,10 +1213,87 @@ dependencies = [
]
[[package]]
-name = "id-arena"
+name = "icu_collections"
version = "2.3.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "3d3067d79b975e8844ca9eb072e16b31c3c1c36928edf9c6789548c524d0d954"
+checksum = "fa68d21081c4a05d5a901a1c62add574c77048b6a1c67be3b50ce0b60d4ca513"
+dependencies = [
+ "displaydoc",
+ "potential_utf",
+ "utf8_iter",
+ "yoke",
+ "zerofrom",
+ "zerovec",
+]
+
+[[package]]
+name = "icu_locale_core"
+version = "2.3.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d56e28588da92eee5c3201a6eff33fabdd49b62269c8938d4ff050ce4d900deb"
+dependencies = [
+ "displaydoc",
+ "litemap",
+ "tinystr",
+ "writeable",
+ "zerovec",
+]
+
+[[package]]
+name = "icu_normalizer"
+version = "2.3.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "12f9cf5f235641ed274641dd81c3f28d870e276763d0797aeeab72317b1c646f"
+dependencies = [
+ "icu_collections",
+ "icu_normalizer_data",
+ "icu_properties",
+ "icu_provider",
+ "smallvec",
+ "zerovec",
+]
+
+[[package]]
+name = "icu_normalizer_data"
+version = "2.3.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "1563da1ed3e0b3bf3d74c9b85917ac9c56464d2f57242270c09c9e752f8021a0"
+
+[[package]]
+name = "icu_properties"
+version = "2.3.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "7e7ca276ad3145661a65914e6daf131ca5120cd3dcee8f8f3214b8875184a148"
+dependencies = [
+ "displaydoc",
+ "icu_collections",
+ "icu_locale_core",
+ "icu_properties_data",
+ "icu_provider",
+ "zerotrie",
+ "zerovec",
+]
+
+[[package]]
+name = "icu_properties_data"
+version = "2.3.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e590f038c1464a96894fd6d10127e90a8be4509f56ff7ecef851b15cee0b7caa"
+
+[[package]]
+name = "icu_provider"
+version = "2.3.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d27bbb9d3abbefac45d55f647c9de1d44aafcd1186eb91879afef17c396c3e73"
+dependencies = [
+ "displaydoc",
+ "icu_locale_core",
+ "writeable",
+ "yoke",
+ "zerofrom",
+ "zerotrie",
+ "zerovec",
+]
[[package]]
name = "ident_case"
@@ -1298,22 +1301,41 @@ version = "1.0.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "b9e0384b61958566e926dc50660321d12159025e767c18e043daf26b70104c39"
+[[package]]
+name = "idna"
+version = "1.1.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "3b0875f23caa03898994f6ddc501886a45c7d3d62d04d2d90788d47be1b1e4de"
+dependencies = [
+ "idna_adapter",
+ "smallvec",
+ "utf8_iter",
+]
+
+[[package]]
+name = "idna_adapter"
+version = "1.2.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "cb68373c0d6620ef8105e855e7745e18b0d00d3bdb07fb532e434244cdb9a714"
+dependencies = [
+ "icu_normalizer",
+ "icu_properties",
+]
+
[[package]]
name = "indexmap"
-version = "2.13.0"
+version = "2.14.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7714e70437a7dc3ac8eb7e6f8df75fd8eb422675fc7678aff7364301092b1017"
+checksum = "d466e9454f08e4a911e14806c24e16fba1b4c121d1ea474396f396069cf949d9"
dependencies = [
"equivalent",
- "hashbrown 0.16.1",
- "serde",
- "serde_core",
+ "hashbrown 0.17.1",
]
[[package]]
name = "infer"
-version = "0.21.0"
-source = "git+https://github.com/bojand/infer?branch=master#7e6b1d00762cbfbef480333cd137582b3e4aba32"
+version = "0.22.0"
+source = "git+https://github.com/bojand/infer?branch=master#cb05400c5f43e07200fbc1c5753e15946e9b1de8"
dependencies = [
"cfb",
]
@@ -1324,7 +1346,6 @@ version = "0.1.4"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "879f10e63c20629ecabbb64a8010319738c66a5cd0c29b02d63d272b03751d01"
dependencies = [
- "block-padding 0.3.3",
"generic-array",
]
@@ -1334,29 +1355,24 @@ version = "0.2.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "4250ce6452e92010fdf7268ccc5d14faa80bb12fc741938534c58f16804e03c7"
dependencies = [
- "block-padding 0.4.2",
+ "block-padding",
"hybrid-array",
]
-[[package]]
-name = "ipnet"
-version = "2.12.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "6a756c3fac73139e83f14c2d742155dd2b78d3ee56597b419a0579b7bdd6dd78"
-
[[package]]
name = "itoa"
-version = "1.0.17"
+version = "1.0.18"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "92ecc6618181def0457392ccd0ee51198e065e016d1d527a7ac1b6dc7c1f09d2"
+checksum = "8f42a60cbdf9a97f5d2305f08a87dc4e09308d1276d28c869c684d7777685682"
[[package]]
name = "js-sys"
-version = "0.3.91"
+version = "0.3.104"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b49715b7073f385ba4bc528e5747d02e66cb39c6146efb66b781f131f0fb399c"
+checksum = "0e0c1080212aad755ea003d18543e8768dd432c48819efd73a7bf1e39b7a5a3a"
dependencies = [
- "once_cell",
+ "cfg-if",
+ "futures-util",
"wasm-bindgen",
]
@@ -1366,17 +1382,11 @@ version = "1.5.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "bbd2bcb4c963f2ddae06a2efc7e9f3591312473c50c6685e1f298068316e66fe"
-[[package]]
-name = "leb128fmt"
-version = "0.1.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "09edd9e8b54e49e587e4f6295a7d29c3ea94d469cb40ab8ca70b288248a81db2"
-
[[package]]
name = "libc"
-version = "0.2.183"
+version = "0.2.189"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b5b646652bf6661599e1da8901b3b9522896f01e736bad5f723fe7a3a27f899d"
+checksum = "3eaf3ede3fee6db1a4c2ee091bf8a8b4dccdc6d17f656fb07896ee72867612f2"
[[package]]
name = "libloading"
@@ -1405,6 +1415,12 @@ version = "0.12.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "32a66949e030da00e8c7d4434b251670a91556f4144941d37452769c25d58a53"
+[[package]]
+name = "litemap"
+version = "0.8.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "47d9d19d1d6efa0109d2f65ff4c85cddd50bd572e5a00127ab10987290bcefae"
+
[[package]]
name = "lock_api"
version = "0.4.14"
@@ -1416,9 +1432,9 @@ dependencies = [
[[package]]
name = "log"
-version = "0.4.29"
+version = "0.4.34"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5e5032e24019045c762d3c0f28f5b6b8bbf38563a65908389bf7978758920897"
+checksum = "f9f8bd3e56ce4dfc153cf470fffbfa98c7620958b312ca5c3a4b8d5181fd13c6"
[[package]]
name = "matchers"
@@ -1429,6 +1445,16 @@ dependencies = [
"regex-automata",
]
+[[package]]
+name = "md-5"
+version = "0.10.6"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d89e7ee0cfbedfc4da3340218492196241d89eefb6dab27de5df917a6d2e78cf"
+dependencies = [
+ "cfg-if",
+ "digest 0.10.7",
+]
+
[[package]]
name = "md5"
version = "0.8.1"
@@ -1437,15 +1463,15 @@ checksum = "7ebb8d8732c6a6df3d8f032a82911cfc747e00efb95cc46e8d0acd5b5b88570c"
[[package]]
name = "memchr"
-version = "2.8.0"
+version = "2.8.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f8ca58f447f06ed17d5fc4043ce1b10dd205e060fb3ce5b979b8ed8e59ff3f79"
+checksum = "cf8baf1c55e62ffcace7a9f06f4bd9cd3f0c4beb022d3b367256b91b87513d98"
[[package]]
name = "memoffset"
-version = "0.7.1"
+version = "0.9.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5de893c32cde5f383baa4c04c5d6dbdd735cfd4a794b0debdb2bb1b421da5ff4"
+checksum = "488016bfae457b036d996092f6cb448677611ce4449e970ceaf42695203f218a"
dependencies = [
"autocfg",
]
@@ -1479,26 +1505,46 @@ checksum = "68354c5c6bd36d73ff3feceb05efa59b6acb7626617f4962be322a825e61f79a"
[[package]]
name = "mio"
-version = "1.2.1"
+version = "1.2.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "02bd0af71c67b473010cbbc60715ee815645a4dc942899111f494b4b737d6fda"
+checksum = "30d65c71f1ce40ab09135ce117d742b9f8a19ff91a41a8b57ed50bc2de59c427"
dependencies = [
"libc",
"wasi",
"windows-sys 0.61.2",
]
+[[package]]
+name = "munge"
+version = "0.4.7"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "5e17401f259eba956ca16491461b6e8f72913a0a114e39736ce404410f915a0c"
+dependencies = [
+ "munge_macro",
+]
+
+[[package]]
+name = "munge_macro"
+version = "0.4.7"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "4568f25ccbd45ab5d5603dc34318c1ec56b117531781260002151b8530a9f931"
+dependencies = [
+ "proc-macro2",
+ "quote",
+ "syn 2.0.119",
+]
+
[[package]]
name = "nix"
-version = "0.26.4"
+version = "0.31.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "598beaf3cc6fdd9a5dfb1630c2800c7acd31df7aaf0f565796fba2b53ca1af1b"
+checksum = "cf20d2fde8ff38632c426f1165ed7436270b44f199fc55284c38276f9db47c3d"
dependencies = [
- "bitflags 1.3.2",
+ "bitflags 2.13.1",
"cfg-if",
+ "cfg_aliases",
"libc",
"memoffset",
- "pin-utils",
]
[[package]]
@@ -1532,15 +1578,15 @@ dependencies = [
[[package]]
name = "num-conv"
-version = "0.2.0"
+version = "0.2.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "cf97ec579c3c42f953ef76dbf8d55ac91fb219dde70e49aa4a6b7d74e9919050"
+checksum = "521739c6d2bac4aa25192232afe6841231376b2b26d4d9fae5ecf8ca5772e441"
[[package]]
name = "num-integer"
-version = "0.1.46"
+version = "0.1.47"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7969661fd2958a5cb096e56c8e1ad0444ac2bbcd0061bd28660485a44879858f"
+checksum = "7ce2d95d4b3734dc35aa2f45e1aa22cd416814592a4f9d9205e11affd5b8e10b"
dependencies = [
"num-traits",
]
@@ -1560,20 +1606,23 @@ version = "0.7.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "a8d8034d9489cdaf79228eb9f6a3b8d7bb32ba00d6645ebd48eef4077ceb5bd9"
dependencies = [
- "asn1-rs",
+ "asn1-rs 0.6.2",
]
[[package]]
-name = "once_cell"
-version = "1.21.4"
+name = "oid-registry"
+version = "0.8.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "9f7c3e4beb33f85d45ae3e3a1792185706c8e16d043238c593331cc7cd313b50"
+checksum = "12f40cff3dde1b6087cc5d5f5d4d65712f34016a03ed60e9c08dcc392736b5b7"
+dependencies = [
+ "asn1-rs 0.7.2",
+]
[[package]]
-name = "opaque-debug"
-version = "0.3.1"
+name = "once_cell"
+version = "1.21.4"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c08d65885ee38876c4f86fa503fb49d7b507c2b62552df7c70b2fce627e06381"
+checksum = "9f7c3e4beb33f85d45ae3e3a1792185706c8e16d043238c593331cc7cd313b50"
[[package]]
name = "opus"
@@ -1584,30 +1633,6 @@ dependencies = [
"audiopus_sys",
]
-[[package]]
-name = "p256"
-version = "0.13.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c9863ad85fa8f4460f9c48cb909d38a0d689dba1f6f6988a5e3e0d31071bcd4b"
-dependencies = [
- "ecdsa",
- "elliptic-curve",
- "primeorder",
- "sha2 0.10.9",
-]
-
-[[package]]
-name = "p384"
-version = "0.13.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "fe42f1670a52a47d448f14b6a5c61dd78fce51856e68edaa38f7ae3a46b8d6b6"
-dependencies = [
- "ecdsa",
- "elliptic-curve",
- "primeorder",
- "sha2 0.10.9",
-]
-
[[package]]
name = "parking"
version = "2.2.1"
@@ -1643,19 +1668,10 @@ version = "3.0.6"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "1d30c53c26bc5b31a98cd02d20f25a7c8567146caf63ed593a9d87b2775291be"
dependencies = [
- "base64",
+ "base64 0.22.1",
"serde_core",
]
-[[package]]
-name = "pem-rfc7468"
-version = "0.7.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "88b39c9bfcfc231068454382784bb460aae594343fb030d46e9f50a645418412"
-dependencies = [
- "base64ct",
-]
-
[[package]]
name = "percent-encoding"
version = "2.3.2"
@@ -1668,56 +1684,37 @@ version = "0.2.17"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "a89322df9ebe1c1578d689c92318e070967d1042b512afbe49518723f4e6d5cd"
-[[package]]
-name = "pin-utils"
-version = "0.1.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8b870d8c151b6f2fb93e84a13146138f05d02ed11c7e7c54f8826aaaf7c9f184"
-
-[[package]]
-name = "pkcs8"
-version = "0.10.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f950b2377845cebe5cf8b5165cb3cc1a5e0fa5cfa3e1f7f55707d8fd82e0a7b7"
-dependencies = [
- "der",
- "spki",
-]
-
[[package]]
name = "pkg-config"
-version = "0.3.32"
+version = "0.3.34"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7edddbd0b52d732b21ad9a5fab5c704c14cd949e5e9a1ec5929a24fded1b904c"
+checksum = "f6b464fbc74e149a392436b17d523f769e057cb6877f6a5c4618bc6f11800548"
[[package]]
name = "polyval"
-version = "0.6.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "9d1fe60d06143b2430aa532c94cfe9e29783047f06c0d7fd359a9a51b729fa25"
-dependencies = [
- "cfg-if",
- "cpufeatures 0.2.17",
- "opaque-debug",
- "universal-hash 0.5.1",
-]
-
-[[package]]
-name = "polyval"
-version = "0.7.1"
+version = "0.7.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7dfc63250416fea14f5749b90725916a6c903f599d51cb635aa7a52bfd03eede"
+checksum = "f0fa31d631f2b2cb2a544d0aa321ce847a94764d701ca2becc411138b93d49cd"
dependencies = [
"cpubits",
"cpufeatures 0.3.0",
- "universal-hash 0.6.1",
+ "universal-hash",
]
[[package]]
name = "portable-atomic"
-version = "1.13.1"
+version = "1.15.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c33a9471896f1c69cecef8d20cbe2f7accd12527ce60845ff44c153bb2a21b49"
+checksum = "05c8b63e8d9609db387f0324918f81d68fe27748f084ef092fb35954d0539a85"
+
+[[package]]
+name = "potential_utf"
+version = "0.1.6"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d83eb9bc6d8e5cf568e7a1101d60ee05e81ed50ea106026f3d18deeb046d7661"
+dependencies = [
+ "zerovec",
+]
[[package]]
name = "powerfmt"
@@ -1726,47 +1723,49 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "439ee305def115ba05938db6eb1644ff94165c5ab5e9420d1c1bcedbba909391"
[[package]]
-name = "ppv-lite86"
-version = "0.2.21"
+name = "prettyplease"
+version = "0.2.37"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "85eae3c4ed2f50dcfe72643da4befc30deadb458a9b590d720cde2f2b1e97da9"
+checksum = "479ca8adacdd7ce8f1fb39ce9ecccbfe93a3f1344b3d0d97f20bc0196208f62b"
dependencies = [
- "zerocopy",
+ "proc-macro2",
+ "syn 2.0.119",
]
[[package]]
-name = "prettyplease"
-version = "0.2.37"
+name = "proc-macro2"
+version = "1.0.107"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "479ca8adacdd7ce8f1fb39ce9ecccbfe93a3f1344b3d0d97f20bc0196208f62b"
+checksum = "985e7ec9bb745e6ce6535b544d84d6cd6f7ad8bd711c398938ae983b91a766d9"
dependencies = [
- "proc-macro2",
- "syn 2.0.117",
+ "unicode-ident",
]
[[package]]
-name = "primeorder"
-version = "0.13.6"
+name = "ptr_meta"
+version = "0.3.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "353e1ca18966c16d9deb1c69278edbc5f194139612772bd9537af60ac231e1e6"
+checksum = "743da816b98c921cdbe8628ef7381b76f25ecf4da599fc80aca90eae7ef70cc0"
dependencies = [
- "elliptic-curve",
+ "ptr_meta_derive",
]
[[package]]
-name = "proc-macro2"
-version = "1.0.106"
+name = "ptr_meta_derive"
+version = "0.3.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8fd00f0bb2e90d81d1044c2b32617f68fcb9fa3bb7640c23e9c748e53fb30934"
+checksum = "1c8d9ca532f185d5d4db7a7c9d51420b452168ea1c2b913953281bd6fe1fcbd0"
dependencies = [
- "unicode-ident",
+ "proc-macro2",
+ "quote",
+ "syn 3.0.3",
]
[[package]]
name = "pyo3"
-version = "0.28.2"
+version = "0.28.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "cf85e27e86080aafd5a22eae58a162e133a589551542b3e5cee4beb27e54f8e1"
+checksum = "91fd8e38a3b50ed1167fb981cd6fd60147e091784c427b8f7183a7ee32c31c12"
dependencies = [
"libc",
"once_cell",
@@ -1799,23 +1798,23 @@ checksum = "c23399970eea9c31d0ac84cee4a9d8dd05f89b1da2f4dd5bb44b32a3f66db4f8"
dependencies = [
"proc-macro2",
"quote",
- "syn 2.0.117",
+ "syn 2.0.119",
]
[[package]]
name = "pyo3-build-config"
-version = "0.28.2"
+version = "0.28.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8bf94ee265674bf76c09fa430b0e99c26e319c945d96ca0d5a8215f31bf81cf7"
+checksum = "e368e7ddfdeb98c9bca7f8383be1648fd84ab466bf2bc015e94008db6d35611e"
dependencies = [
"target-lexicon",
]
[[package]]
name = "pyo3-ffi"
-version = "0.28.2"
+version = "0.28.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "491aa5fc66d8059dd44a75f4580a2962c1862a1c2945359db36f6c2818b748dc"
+checksum = "7f29e10af80b1f7ccaf7f69eace800a03ecd13e883acfacc1e5d0988605f651e"
dependencies = [
"libc",
"pyo3-build-config",
@@ -1823,44 +1822,38 @@ dependencies = [
[[package]]
name = "pyo3-macros"
-version = "0.28.2"
+version = "0.28.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f5d671734e9d7a43449f8480f8b38115df67bef8d21f76837fa75ee7aaa5e52e"
+checksum = "df6e520eff47c45997d2fc7dd8214b25dd1310918bbb2642156ef66a67f29813"
dependencies = [
"proc-macro2",
"pyo3-macros-backend",
"quote",
- "syn 2.0.117",
+ "syn 2.0.119",
]
[[package]]
name = "pyo3-macros-backend"
-version = "0.28.2"
+version = "0.28.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "22faaa1ce6c430a1f71658760497291065e6450d7b5dc2bcf254d49f66ee700a"
+checksum = "c4cdc218d835738f81c2338f822078af45b4afdf8b2e33cbb5916f108b813acb"
dependencies = [
"heck",
"proc-macro2",
"pyo3-build-config",
"quote",
- "syn 2.0.117",
+ "syn 2.0.119",
]
[[package]]
name = "quote"
-version = "1.0.45"
+version = "1.0.47"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "41f2619966050689382d2b44f664f4bc593e129785a36d6ee376ddf37259b924"
+checksum = "1fbf4db142a473a8d80c26bbf18454ed458bf8d26c8219c331daecfdbd079001"
dependencies = [
"proc-macro2",
]
-[[package]]
-name = "r-efi"
-version = "5.3.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "69cdb34c158ceb288df11e18b4bd39de994f6657d83847bdffdbd7f346754b0f"
-
[[package]]
name = "r-efi"
version = "6.0.0"
@@ -1879,55 +1872,23 @@ dependencies = [
]
[[package]]
-name = "rand"
-version = "0.8.7"
+name = "rancor"
+version = "0.1.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "22f6172bdec972074665ed81ed53b71da00bfc44b65a753cfde883ec4c702a1a"
+checksum = "9b534442d0fcdb55d66f373d9cac6d33b6293a2335bc2136dbd06ce0e87d2572"
dependencies = [
- "libc",
- "rand_chacha 0.3.1",
- "rand_core 0.6.4",
+ "ptr_meta",
]
[[package]]
name = "rand"
-version = "0.9.5"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b9ef1d0d795eb7d84685bca4f72f3649f064e6641543d3a8c415898726a57b41"
-dependencies = [
- "rand_chacha 0.9.0",
- "rand_core 0.9.5",
-]
-
-[[package]]
-name = "rand"
-version = "0.10.0"
+version = "0.10.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "bc266eb313df6c5c09c1c7b1fbe2510961e5bcd3add930c1e31f7ed9da0feff8"
+checksum = "c7f5fa3a058cd35567ef9bfa5e75732bee0f9e4c55fa90477bef2dfcdbc4be80"
dependencies = [
"chacha20",
- "getrandom 0.4.2",
- "rand_core 0.10.0",
-]
-
-[[package]]
-name = "rand_chacha"
-version = "0.3.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e6c10a63a0fa32252be49d21e7709d4d4baf8d231c2dbce1eaa8141b9b127d88"
-dependencies = [
- "ppv-lite86",
- "rand_core 0.6.4",
-]
-
-[[package]]
-name = "rand_chacha"
-version = "0.9.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d3022b5f1df60f26e1ffddd6c66e8aa15de382ae63b3a0c1bfc0e4d3e3f325cb"
-dependencies = [
- "ppv-lite86",
- "rand_core 0.9.5",
+ "getrandom 0.4.3",
+ "rand_core 0.10.1",
]
[[package]]
@@ -1941,29 +1902,21 @@ dependencies = [
[[package]]
name = "rand_core"
-version = "0.9.5"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "76afc826de14238e6e8c374ddcc1fa19e374fd8dd986b0d2af0d02377261d83c"
-dependencies = [
- "getrandom 0.3.4",
-]
-
-[[package]]
-name = "rand_core"
-version = "0.10.0"
+version = "0.10.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "0c8d0fd677905edcbeedbf2edb6494d676f0e98d54d5cf9bda0b061cb8fb8aba"
+checksum = "63b8176103e19a2643978565ca18b50549f6101881c443590420e4dc998a3c69"
[[package]]
name = "rcgen"
-version = "0.13.2"
+version = "0.14.9"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "75e669e5202259b5314d1ea5397316ad400819437857b90861765f24c4cf80a2"
+checksum = "091e7a8e7d86e6feb87a27ce8e2cba29d49eff9507afeebefab7eeb2ca667fb4"
dependencies = [
"pem",
"ring",
"rustls-pki-types",
"time",
+ "x509-parser 0.18.1",
"yasna",
]
@@ -1973,14 +1926,14 @@ version = "0.5.18"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "ed2bf2547551a7053d6fdfafda3f938979645c44812fbfcda098faae3f1a362d"
dependencies = [
- "bitflags 2.11.0",
+ "bitflags 2.13.1",
]
[[package]]
name = "regex-automata"
-version = "0.4.14"
+version = "0.4.18"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "6e1dd4122fc1595e8162618945476892eefca7b88c52820e74af6262213cae8f"
+checksum = "ad8553b9b26413251cbf30e620595c7a41b3887f03da04579c0e6b0d6a06b4b2"
dependencies = [
"aho-corasick",
"memchr",
@@ -1989,18 +1942,17 @@ dependencies = [
[[package]]
name = "regex-syntax"
-version = "0.8.10"
+version = "0.8.11"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "dc897dd8d9e8bd1ed8cdad82b5966c3e0ecae09fb1907d58efaa013543185d0a"
+checksum = "d6f6ff9a378485b298a5286656da665ba74413d36db0979633275d2e708145d4"
[[package]]
-name = "rfc6979"
-version = "0.4.0"
+name = "rend"
+version = "0.5.4"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f8dd2a808d456c4a54e300a23e9f5a67e122c3024119acbfd73e3bf664491cb2"
+checksum = "663ba70707f96e871406fe10d68128412e619b06d1d47cb91c3a4c6501176240"
dependencies = [
- "hmac 0.12.1",
- "subtle",
+ "bytecheck",
]
[[package]]
@@ -2017,16 +1969,137 @@ dependencies = [
"windows-sys 0.52.0",
]
+[[package]]
+name = "rkyv"
+version = "0.8.18"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d9776093b7ca170454ab1406954f7b7d97a57c51dc6c0642957fb2ef25c2d399"
+dependencies = [
+ "bytecheck",
+ "bytes",
+ "hashbrown 0.17.1",
+ "indexmap",
+ "munge",
+ "ptr_meta",
+ "rancor",
+ "rend",
+ "rkyv_derive",
+ "tinyvec",
+ "uuid",
+]
+
+[[package]]
+name = "rkyv_derive"
+version = "0.8.18"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "1c25ef604ac7dd839d44d64648952ea23c97866f124ff671b0ed2cf3ad9bb06e"
+dependencies = [
+ "proc-macro2",
+ "quote",
+ "syn 3.0.3",
+]
+
[[package]]
name = "rsqlite-vfs"
-version = "0.1.0"
+version = "0.1.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a8a1f2315036ef6b1fbacd1972e8ee7688030b0a2121edfc2a6550febd41574d"
+checksum = "c51c9ae4df8a7fba42103df5c621fa3c37eccf3a3c650879e90fc48b11cc192c"
dependencies = [
"hashbrown 0.16.1",
"thiserror 2.0.20",
]
+[[package]]
+name = "rtc-crypto"
+version = "0.21.0-beta.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "1d47521f43ea9a6e16feafa78ba06633ca85a51f0ad66b906a5f01ccfe08ba90"
+dependencies = [
+ "aes 0.8.4",
+ "ccm",
+ "ctr 0.9.2",
+ "hmac 0.12.1",
+ "md-5",
+ "rand",
+ "ring",
+ "sha1 0.10.7",
+ "subtle",
+ "thiserror 2.0.20",
+ "zeroize",
+]
+
+[[package]]
+name = "rtc-datachannel"
+version = "0.21.0-beta.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "374adcfc6f138839109d84c521ccedae9410b11f62c1ae577cb786ed91494f50"
+dependencies = [
+ "bytes",
+ "log",
+ "rtc-sctp",
+ "rtc-shared",
+ "sansio",
+]
+
+[[package]]
+name = "rtc-dtls"
+version = "0.21.0-beta.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "3baf3ee5b4d481d57fdee828ed4abd281ba45ad98594502cd4e866d14316b48f"
+dependencies = [
+ "bytecheck",
+ "byteorder",
+ "bytes",
+ "der-parser 9.0.0",
+ "log",
+ "pem",
+ "rcgen",
+ "rkyv",
+ "rtc-crypto",
+ "rtc-shared",
+ "rustls",
+ "x509-parser 0.16.0",
+]
+
+[[package]]
+name = "rtc-sctp"
+version = "0.21.0-beta.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "db38ed06af7bea634b210c3e8cf0e78e3bb36669e120968f5961a3c12a209b67"
+dependencies = [
+ "bytes",
+ "crc32c",
+ "log",
+ "rand",
+ "rtc-shared",
+ "rustc-hash",
+ "slab",
+ "thiserror 2.0.20",
+]
+
+[[package]]
+name = "rtc-shared"
+version = "0.21.0-beta.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "108063844e58fa8470139c2d6bea3a28362e07d43194acef7e0d57d829d27cd6"
+dependencies = [
+ "bitflags 1.3.2",
+ "bytes",
+ "nix",
+ "rand",
+ "serde",
+ "substring",
+ "thiserror 2.0.20",
+ "url",
+ "winapi",
+]
+
+[[package]]
+name = "rustc-hash"
+version = "2.1.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "6b1e7f9a428571be2dc5bc0505c13fb6bf936822b894ec87abf8a08a4e51742d"
+
[[package]]
name = "rustc_version"
version = "0.4.1"
@@ -2051,7 +2124,7 @@ version = "1.1.4"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "b6fe4565b9518b83ef4f91bb47ce29620ca828bd32cb7e408f0062e9930ba190"
dependencies = [
- "bitflags 2.11.0",
+ "bitflags 2.13.1",
"errno",
"libc",
"linux-raw-sys",
@@ -2060,9 +2133,9 @@ dependencies = [
[[package]]
name = "rustls"
-version = "0.23.37"
+version = "0.23.43"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "758025cb5fccfd3bc2fd74708fd4682be41d99e5dff73c377c0646c6012c73a4"
+checksum = "0283386ce02abc0151e1761d08802dfe86c173b0b494af5cbc086574e453da06"
dependencies = [
"log",
"once_cell",
@@ -2075,18 +2148,18 @@ dependencies = [
[[package]]
name = "rustls-pki-types"
-version = "1.14.0"
+version = "1.15.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "be040f8b0a225e40375822a563fa9524378b9d63112f53e19ffff34df5d33fdd"
+checksum = "2f4925028c7eb5d1fcdaf196971378ed9d2c1c4efc7dc5d011256f76c99c0a96"
dependencies = [
"zeroize",
]
[[package]]
name = "rustls-webpki"
-version = "0.103.9"
+version = "0.103.15"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d7df23109aa6c1567d1c575b9952556388da57401e4ace1d15f79eedad0d8f53"
+checksum = "f3c3cf1d8b1e7d4927e2d154c3fcb02979afb9939629c62cd9048d4f07b60ac2"
dependencies = [
"ring",
"rustls-pki-types",
@@ -2095,9 +2168,15 @@ dependencies = [
[[package]]
name = "rustversion"
-version = "1.0.22"
+version = "1.0.23"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "cf54715a573b99ac80df0bc206da022bcd442c974952c7b9720069370852e21f"
+
+[[package]]
+name = "sansio"
+version = "1.0.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b39cdef0fa800fc44525c84ccb54a029961a8215f9619753635a9c0d2538d46d"
+checksum = "c62751faa8bc286982334a082fe125184a29fc89d17775766e4f891b7d726980"
[[package]]
name = "scheduled-thread-pool"
@@ -2114,31 +2193,17 @@ version = "1.2.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "94143f37725109f92c262ed2cf5e59bce7498c01bcc1502d7b9afe439a4e9f49"
-[[package]]
-name = "sec1"
-version = "0.7.3"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d3e97a565f76233a6003f9f5c54be1d9c5bdfa3eccfb189469f11ec4901c47dc"
-dependencies = [
- "base16ct",
- "der",
- "generic-array",
- "pkcs8",
- "subtle",
- "zeroize",
-]
-
[[package]]
name = "semver"
-version = "1.0.27"
+version = "1.0.28"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d767eb0aabc880b29956c35734170f26ed551a859dbd361d140cdbeca61ab1e2"
+checksum = "8a7852d02fc848982e0c167ef163aaff9cd91dc640ba85e263cb1ce46fae51cd"
[[package]]
name = "serde"
-version = "1.0.228"
+version = "1.0.229"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "9a8e94ea7f378bd32cbbd37198a4a91436180c5bb472411e48b5ec2e2124ae9e"
+checksum = "4148590afebada386688f18773da617792bf2ef03ffc1e4cbd2b1d45b023e0ba"
dependencies = [
"serde_core",
"serde_derive",
@@ -2155,29 +2220,29 @@ dependencies = [
[[package]]
name = "serde_core"
-version = "1.0.228"
+version = "1.0.229"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "41d385c7d4ca58e59fc732af25c3983b67ac852c1a25000afe1175de458b67ad"
+checksum = "67dca2c9c51e58a4791a4b1ed58308b39c64224d349a935ab5039aa360942a48"
dependencies = [
"serde_derive",
]
[[package]]
name = "serde_derive"
-version = "1.0.228"
+version = "1.0.229"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d540f220d3187173da220f885ab66608367b6574e925011a9353e4badda91d79"
+checksum = "e7a5d71263a5a7d47b41f6b3f06ba276f10cc18b0931f1799f710578e2309348"
dependencies = [
"proc-macro2",
"quote",
- "syn 2.0.117",
+ "syn 3.0.3",
]
[[package]]
name = "serde_json"
-version = "1.0.149"
+version = "1.0.151"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "83fc039473c5595ace860d8c4fafa220ff474b3fc6bfdb4293327f1a37e94d86"
+checksum = "c841b55ecdae098c80dcae9cf767f6f8a0c2cdb3416bbef72181df4d0fe73f14"
dependencies = [
"itoa",
"memchr",
@@ -2188,9 +2253,9 @@ dependencies = [
[[package]]
name = "serde_spanned"
-version = "1.0.4"
+version = "1.1.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f8bbf91e5a4d6315eee45e704372590b30e260ee83af6639d64557f51b067776"
+checksum = "6662b5879511e06e8999a8a235d848113e942c9124f211511b16466ee2995f26"
dependencies = [
"serde_core",
]
@@ -2214,18 +2279,7 @@ checksum = "aacc4cc499359472b4abe1bf11d0b12e688af9a805fa5e3016f9a386dc2d0214"
dependencies = [
"cfg-if",
"cpufeatures 0.3.0",
- "digest 0.11.2",
-]
-
-[[package]]
-name = "sha2"
-version = "0.10.9"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a7507d819769d01a365ab707794a4084392c824f54a7a6a7862f8c3d0892b283"
-dependencies = [
- "cfg-if",
- "cpufeatures 0.2.17",
- "digest 0.10.7",
+ "digest 0.11.3",
]
[[package]]
@@ -2236,7 +2290,7 @@ checksum = "446ba717509524cb3f22f17ecc096f10f4822d76ab5c0b9822c5f9c284e825f4"
dependencies = [
"cfg-if",
"cpufeatures 0.3.0",
- "digest 0.11.2",
+ "digest 0.11.3",
]
[[package]]
@@ -2250,9 +2304,9 @@ dependencies = [
[[package]]
name = "shlex"
-version = "1.3.0"
+version = "2.0.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "0fda2ff0d084019ba4d7c6f371c95d8fd75ce3524c3cb8fb653a3023f6323e64"
+checksum = "f8fadd59c855ef2080decdef8ff161eb6661b86933c9d82e5ba29dc602a55aba"
[[package]]
name = "signal-hook-registry"
@@ -2264,16 +2318,6 @@ dependencies = [
"libc",
]
-[[package]]
-name = "signature"
-version = "2.2.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "77549399552de45a898a580c1b41d445bf730df867cc44e6c0233bbc4b8329de"
-dependencies = [
- "digest 0.10.7",
- "rand_core 0.6.4",
-]
-
[[package]]
name = "simdutf8"
version = "0.1.5"
@@ -2288,9 +2332,9 @@ checksum = "0c790de23124f9ab44544d7ac05d60440adc586479ce501c1d6d7da3cd8c9cf5"
[[package]]
name = "smallvec"
-version = "1.15.1"
+version = "1.15.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "67b1b7a3b5fe4f1376887184045fcf45c69e92af734b7aaddc05fb777b6fbd03"
+checksum = "8ed6a63f02c8539c91a8685a86f4099661ba3da017932f6ebbea6de3f0fa7c90"
dependencies = [
"serde",
]
@@ -2306,29 +2350,19 @@ dependencies = [
[[package]]
name = "socket2"
-version = "0.6.3"
+version = "0.6.5"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "3a766e1110788c36f4fa1c2b71b387a7815aa65f88ce0229841826633d93723e"
+checksum = "c3d1e2c7f27f8d4cb10542a02c49005dbd6e93095799d6f3be745fae9f8fedd4"
dependencies = [
"libc",
"windows-sys 0.61.2",
]
-[[package]]
-name = "spki"
-version = "0.7.3"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d91ed6c858b01f942cd56b37a94b3e0a1798290327d1236e4d9cf4eaca44d29d"
-dependencies = [
- "base64ct",
- "der",
-]
-
[[package]]
name = "sqlite-wasm-rs"
-version = "0.5.2"
+version = "0.5.5"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "2f4206ed3a67690b9c29b77d728f6acc3ce78f16bf846d83c94f76400320181b"
+checksum = "dc3efc0da82635d7e1ced0053bbbfa8c7ab9645d0bf36ceb4f7127bb85315d75"
dependencies = [
"cc",
"js-sys",
@@ -2352,7 +2386,16 @@ checksum = "a2eb9349b6444b326872e140eb1cf5e7c522154d69e7a0ffb0fb81c06b37543f"
name = "strsim"
version = "0.11.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7da8b5736845d9f2fcb837ea5d9e2628564b3b043a70948a3f0b778838c5fb4f"
+checksum = "7da8b5736845d9f2fcb837ea5d9e2628564b3b043a70948a3f0b778838c5fb4f"
+
+[[package]]
+name = "substring"
+version = "1.4.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "42ee6433ecef213b2e72f587ef64a2f5943e7cd16fbd82dbe8bc07486c534c86"
+dependencies = [
+ "autocfg",
+]
[[package]]
name = "subtle"
@@ -2470,9 +2513,9 @@ dependencies = [
[[package]]
name = "syn"
-version = "2.0.117"
+version = "2.0.119"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e665b8803e7b1d2a727f4023456bbbbe74da67099c585258af0ad9c5013b9b99"
+checksum = "872831b642d1a07999a962a351ed35b955ea2cfc8f3862091e2a240a84f17297"
dependencies = [
"proc-macro2",
"quote",
@@ -2498,7 +2541,7 @@ checksum = "728a70f3dbaf5bab7f0c4b1ac8d7ae5ea60a4b5549c8a5914361c99147a709d2"
dependencies = [
"proc-macro2",
"quote",
- "syn 2.0.117",
+ "syn 2.0.119",
]
[[package]]
@@ -2514,7 +2557,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "32497e9a4c7b38532efcdebeef879707aa9f794296a4f0244f6f69e9bc8574bd"
dependencies = [
"fastrand",
- "getrandom 0.4.2",
+ "getrandom 0.4.3",
"once_cell",
"rustix",
"windows-sys 0.61.2",
@@ -2546,7 +2589,7 @@ checksum = "4fee6c4efc90059e10f81e6d42c60a18f76588c3d74cb83a0b242a2b6c7504c1"
dependencies = [
"proc-macro2",
"quote",
- "syn 2.0.117",
+ "syn 2.0.119",
]
[[package]]
@@ -2562,21 +2605,20 @@ dependencies = [
[[package]]
name = "thread_local"
-version = "1.1.9"
+version = "1.1.10"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f60246a4944f24f6e018aa17cdeffb7818b76356965d03b07d6a9886e8962185"
+checksum = "1ad99c4c6d32803332c548b1af0540b357b3f5fc0be8f6c6bfe8b2e6ae784070"
dependencies = [
"cfg-if",
]
[[package]]
name = "time"
-version = "0.3.47"
+version = "0.3.55"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "743bd48c283afc0388f9b8827b976905fb217ad9e647fae3a379a9283c4def2c"
+checksum = "cdb87b95ec50ddfa440816d227a17b2ccbdda963a316a727fda0fc4334f7d134"
dependencies = [
"deranged",
- "itoa",
"num-conv",
"powerfmt",
"serde_core",
@@ -2586,20 +2628,45 @@ dependencies = [
[[package]]
name = "time-core"
-version = "0.1.8"
+version = "0.1.9"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7694e1cfe791f8d31026952abf09c69ca6f6fa4e1a1229e18988f06a04a12dca"
+checksum = "9e1c906769ad99c88eaa54e728060edef082f8e358ff32030cb7c7d315e81109"
[[package]]
name = "time-macros"
-version = "0.2.27"
+version = "0.2.32"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "2e70e4c5a0e0a8a4823ad65dfe1a6930e4f4d756dcd9dd7939022b5e8c501215"
+checksum = "7e689342a48d2ea927c87ea50cabf8594854bf940e9310208848d680d668ed85"
dependencies = [
"num-conv",
"time-core",
]
+[[package]]
+name = "tinystr"
+version = "0.8.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b1e27c91459209c2986af3dcf603a5a74a4368754ce37414f59acc971167f643"
+dependencies = [
+ "displaydoc",
+ "zerovec",
+]
+
+[[package]]
+name = "tinyvec"
+version = "1.12.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "bb4ebadaa0af04fab11ae01eb5f9fdb5f9c5b875506e210e71c07873528baa7f"
+dependencies = [
+ "tinyvec_macros",
+]
+
+[[package]]
+name = "tinyvec_macros"
+version = "0.1.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "1f3ccbac311fea05f86f61904b462b55fb3df8837a366dfc601a0161d0532f20"
+
[[package]]
name = "tokio"
version = "1.53.1"
@@ -2609,7 +2676,6 @@ dependencies = [
"bytes",
"libc",
"mio",
- "parking_lot",
"pin-project-lite",
"signal-hook-registry",
"socket2",
@@ -2619,13 +2685,13 @@ dependencies = [
[[package]]
name = "tokio-macros"
-version = "2.7.0"
+version = "2.7.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "385a6cb71ab9ab790c5fe8d67f1645e6c450a7ce006a33de03daa956cf70a496"
+checksum = "78773a2a397f451582ce068015985c33193cf6dea8b74d2a639fe457b2f07b0e"
dependencies = [
"proc-macro2",
"quote",
- "syn 2.0.117",
+ "syn 3.0.3",
]
[[package]]
@@ -2640,13 +2706,14 @@ dependencies = [
[[package]]
name = "tokio-util"
-version = "0.7.18"
+version = "0.7.19"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "9ae9cec805b01e8fc3fd2fe289f89149a9b66dd16786abd8b19cfa7b48cb0098"
+checksum = "494815d09bf52b5548659851081238f0ca39ff638363907596da739561c62c52"
dependencies = [
"bytes",
"futures-core",
"futures-sink",
+ "libc",
"pin-project-lite",
"tokio",
]
@@ -2657,13 +2724,13 @@ version = "0.13.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "d52efb639344a7c6adb8e62c6f3d2c19c001ff1b79a5041ba1c6ed42e19c6aa5"
dependencies = [
- "base64",
+ "base64 0.22.1",
"bytes",
"futures-core",
"futures-sink",
"http",
"httparse",
- "rand 0.10.0",
+ "rand",
"ring",
"rustls-pki-types",
"simdutf8",
@@ -2696,11 +2763,11 @@ dependencies = [
[[package]]
name = "toml_parser"
-version = "1.0.10+spec-1.1.0"
+version = "1.1.3+spec-1.1.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7df25b4befd31c4816df190124375d5a20c6b6921e2cad937316de3fccd63420"
+checksum = "1d38ac1cf9b95face32296c0a3ede1fdc270627c9d9c02a7274dd6d960dc4d56"
dependencies = [
- "winnow 1.0.0",
+ "winnow 1.0.4",
]
[[package]]
@@ -2722,7 +2789,7 @@ checksum = "7490cfa5ec963746568740651ac6781f701c9c5ea257c58e057f3ba8cf69e8da"
dependencies = [
"proc-macro2",
"quote",
- "syn 2.0.117",
+ "syn 2.0.119",
]
[[package]]
@@ -2766,7 +2833,7 @@ dependencies = [
[[package]]
name = "tryx"
-version = "0.6.4"
+version = "1.3.1"
dependencies = [
"async-channel",
"async-trait",
@@ -2796,9 +2863,9 @@ dependencies = [
[[package]]
name = "typenum"
-version = "1.19.0"
+version = "1.20.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "562d481066bde0658276a35467c4af00bdc6ee726305698a55b86e61d7ad82bb"
+checksum = "b6f5e870be6c3b371b77fe0ee0bafb859fa4964b4404c27de1d380043c4dda20"
[[package]]
name = "unicode-ident"
@@ -2806,29 +2873,13 @@ version = "1.0.24"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "e6e4313cd5fcd3dad5cafa179702e2b244f760991f45397d14d4ebf38247da75"
-[[package]]
-name = "unicode-xid"
-version = "0.2.6"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ebc1c04c71510c7f702b52b7c350734c9ff1295c464a03335b00bb84fc54f853"
-
-[[package]]
-name = "universal-hash"
-version = "0.5.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "fc1de2c688dc15305988b563c3854064043356019f97a4b46276fe734c4f07ea"
-dependencies = [
- "crypto-common 0.1.7",
- "subtle",
-]
-
[[package]]
name = "universal-hash"
version = "0.6.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "f4987bdc12753382e0bec4a65c50738ffaabc998b9cdd1f952fb5f39b0048a96"
dependencies = [
- "crypto-common 0.2.1",
+ "crypto-common 0.2.2",
"ctutils",
]
@@ -2840,11 +2891,11 @@ checksum = "8ecb6da28b8a351d773b68d5825ac39017e680750f980f3a1a85cd8dd28a47c1"
[[package]]
name = "ureq"
-version = "3.3.0"
+version = "3.4.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "dea7109cdcd5864d4eeb1b58a1648dc9bf520360d7af16ec26d0a9354bafcfc0"
+checksum = "972d7902c8735f2695410b8aed7df6ed12a47394aa1c8d7af49f0497b731a94d"
dependencies = [
- "base64",
+ "base64 0.23.1",
"log",
"percent-encoding",
"rustls",
@@ -2856,27 +2907,45 @@ dependencies = [
[[package]]
name = "ureq-proto"
-version = "0.6.0"
+version = "0.6.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e994ba84b0bd1b1b0cf92878b7ef898a5c1760108fe7b6010327e274917a808c"
+checksum = "da5f78b09e6941e1a0f2e30e695e4b120377b54d5e0aec11b594bb57b3971613"
dependencies = [
- "base64",
+ "base64 0.23.1",
"http",
"httparse",
"log",
]
+[[package]]
+name = "url"
+version = "2.5.8"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ff67a8a4397373c3ef660812acab3268222035010ab8680ec4215f38ba3d0eed"
+dependencies = [
+ "form_urlencoded",
+ "idna",
+ "percent-encoding",
+ "serde",
+]
+
[[package]]
name = "utf8-zero"
version = "0.8.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "b8c0a043c9540bae7c578c88f91dda8bd82e59ae27c21baca69c8b191aaf5a6e"
+[[package]]
+name = "utf8_iter"
+version = "1.0.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b6c140620e7ffbb22c2dee59cafe6084a59b5ffc27a8859a5f0d494b5d52b6be"
+
[[package]]
name = "uuid"
-version = "1.22.0"
+version = "1.25.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a68d3c8f01c0cfa54a75291d83601161799e4a89a39e0929f4b0354d88757a37"
+checksum = "f053576934f05a761a402421fbbe3d425d9366f75f978806a037b3ca481abecc"
dependencies = [
"js-sys",
"wasm-bindgen",
@@ -2905,35 +2974,35 @@ name = "wacore"
version = "0.7.0"
dependencies = [
"aes 0.9.2",
- "aes-gcm 0.11.0",
+ "aes-gcm",
"anyhow",
"async-channel",
"async-lock",
"async-trait",
- "base64",
+ "base64 0.23.1",
"bon",
"buffa",
"buffa-build",
"bytes",
"chrono",
"compact_str",
- "ctr 0.10.0",
+ "ctr 0.10.1",
"event-listener",
"futures",
"hashbrown 0.17.1",
"hex",
- "hkdf 0.13.0",
+ "hkdf",
"hmac 0.13.0",
"itoa",
"log",
"md5",
"portable-atomic",
- "rand 0.10.0",
+ "rand",
"serde",
"serde-big-array",
"serde_json",
"sha1 0.11.0",
- "sha2 0.11.0",
+ "sha2",
"smallvec",
"smoothutf8",
"subtle",
@@ -2955,13 +3024,13 @@ dependencies = [
"anyhow",
"buffa",
"hex",
- "hkdf 0.13.0",
+ "hkdf",
"hmac 0.13.0",
"log",
"serde",
"serde-big-array",
"serde_json",
- "sha2 0.11.0",
+ "sha2",
"thiserror 2.0.20",
"wacore-binary",
"wacore-libsignal",
@@ -3002,25 +3071,25 @@ dependencies = [
"async-trait",
"buffa",
"bytes",
- "cbc 0.2.0",
+ "cbc",
"chrono",
- "ctr 0.10.0",
- "curve25519-dalek 5.0.0",
- "ghash 0.6.0",
+ "ctr 0.10.1",
+ "curve25519-dalek",
+ "ghash",
"hex",
- "hkdf 0.13.0",
+ "hkdf",
"hmac 0.13.0",
"log",
"portable-atomic",
- "rand 0.10.0",
+ "rand",
"serde",
"sha1 0.11.0",
- "sha2 0.11.0",
+ "sha2",
"subtle",
"thiserror 2.0.20",
"wacore-derive",
"waproto",
- "x25519-dalek 3.0.0",
+ "x25519-dalek",
]
[[package]]
@@ -3030,10 +3099,10 @@ dependencies = [
"anyhow",
"buffa",
"bytes",
- "hkdf 0.13.0",
+ "hkdf",
"log",
- "rand 0.10.0",
- "sha2 0.11.0",
+ "rand",
+ "sha2",
"thiserror 2.0.20",
"wacore-binary",
"wacore-libsignal",
@@ -3050,7 +3119,7 @@ dependencies = [
"bytes",
"heck",
"serde",
- "sha2 0.11.0",
+ "sha2",
]
[[package]]
@@ -3059,29 +3128,11 @@ version = "0.11.1+wasi-snapshot-preview1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "ccf3ec651a847eb01de73ccad15eb7d99f80485de043efb2f370cd654f4ea44b"
-[[package]]
-name = "wasip2"
-version = "1.0.2+wasi-0.2.9"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "9517f9239f02c069db75e65f174b3da828fe5f5b945c4dd26bd25d89c03ebcf5"
-dependencies = [
- "wit-bindgen",
-]
-
-[[package]]
-name = "wasip3"
-version = "0.4.0+wasi-0.3.0-rc-2026-01-06"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5428f8bf88ea5ddc08faddef2ac4a67e390b88186c703ce6dbd955e1c145aca5"
-dependencies = [
- "wit-bindgen",
-]
-
[[package]]
name = "wasm-bindgen"
-version = "0.2.114"
+version = "0.2.127"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "6532f9a5c1ece3798cb1c2cfdba640b9b3ba884f5db45973a6f442510a87d38e"
+checksum = "1b70935747edd64d89de3efa29d73789b806c15798f8e7dca4d8ac356b50ce70"
dependencies = [
"cfg-if",
"once_cell",
@@ -3092,9 +3143,9 @@ dependencies = [
[[package]]
name = "wasm-bindgen-macro"
-version = "0.2.114"
+version = "0.2.127"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "18a2d50fcf105fb33bb15f00e7a77b772945a2ee45dcf454961fd843e74c18e6"
+checksum = "77775f8f3f7217702089053b94958f8f54061a3f663417df76e19cbdcca29bc1"
dependencies = [
"quote",
"wasm-bindgen-macro-support",
@@ -3102,58 +3153,34 @@ dependencies = [
[[package]]
name = "wasm-bindgen-macro-support"
-version = "0.2.114"
+version = "0.2.127"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "03ce4caeaac547cdf713d280eda22a730824dd11e6b8c3ca9e42247b25c631e3"
+checksum = "e11d33f857dc2fb11b8bc75aee111aa9cbeb12cd9f25efd3d4c2a3dd4e235284"
dependencies = [
"bumpalo",
"proc-macro2",
"quote",
- "syn 2.0.117",
+ "syn 2.0.119",
"wasm-bindgen-shared",
]
[[package]]
name = "wasm-bindgen-shared"
-version = "0.2.114"
+version = "0.2.127"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "75a326b8c223ee17883a4251907455a2431acc2791c98c26279376490c378c16"
+checksum = "7ef64dbcc55df09c7e5a46182d181c2cfa3e925f3da937ea764728b4bbb9dcbf"
dependencies = [
"unicode-ident",
]
[[package]]
-name = "wasm-encoder"
-version = "0.244.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "990065f2fe63003fe337b932cfb5e3b80e0b4d0f5ff650e6985b1048f62c8319"
-dependencies = [
- "leb128fmt",
- "wasmparser",
-]
-
-[[package]]
-name = "wasm-metadata"
-version = "0.244.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "bb0e353e6a2fbdc176932bbaab493762eb1255a7900fe0fea1a2f96c296cc909"
-dependencies = [
- "anyhow",
- "indexmap",
- "wasm-encoder",
- "wasmparser",
-]
-
-[[package]]
-name = "wasmparser"
-version = "0.244.0"
+name = "web-time"
+version = "1.1.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "47b807c72e1bac69382b3a6fb3dbe8ea4c0ed87ff5629b8685ae6b9a611028fe"
+checksum = "5a6580f308b1fad9207618087a65c04e7a10bc77e02c8e84e9b00dd4b12fa0bb"
dependencies = [
- "bitflags 2.11.0",
- "hashbrown 0.15.5",
- "indexmap",
- "semver",
+ "js-sys",
+ "wasm-bindgen",
]
[[package]]
@@ -3165,117 +3192,6 @@ dependencies = [
"rustls-pki-types",
]
-[[package]]
-name = "webrtc-data"
-version = "0.17.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "bd470286275809f2fcfcdb1e73ef5f1500be82eff7fe98150ce81b20aad5a2a4"
-dependencies = [
- "bytes",
- "log",
- "portable-atomic",
- "thiserror 1.0.69",
- "tokio",
- "webrtc-sctp",
- "webrtc-util 0.17.2",
-]
-
-[[package]]
-name = "webrtc-dtls"
-version = "0.12.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5ccbe4d9049390ab52695c3646c1395c877e16c15fb05d3bda8eee0c7351711c"
-dependencies = [
- "aes 0.8.4",
- "aes-gcm 0.10.3",
- "async-trait",
- "bincode",
- "byteorder",
- "cbc 0.1.2",
- "ccm",
- "der-parser",
- "hkdf 0.12.4",
- "hmac 0.12.1",
- "log",
- "p256",
- "p384",
- "portable-atomic",
- "rand 0.8.7",
- "rand_core 0.6.4",
- "rcgen",
- "ring",
- "rustls",
- "sec1",
- "serde",
- "sha1 0.10.7",
- "sha2 0.10.9",
- "subtle",
- "thiserror 1.0.69",
- "tokio",
- "webrtc-util 0.11.0",
- "x25519-dalek 2.0.1",
- "x509-parser",
-]
-
-[[package]]
-name = "webrtc-sctp"
-version = "0.17.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1c4b637f0d8eb96d900ac0f79b3060ddd21ca88dfefa467e96e67ab0016f2574"
-dependencies = [
- "arc-swap",
- "async-trait",
- "bytes",
- "crc",
- "log",
- "portable-atomic",
- "rand 0.9.5",
- "thiserror 1.0.69",
- "tokio",
- "webrtc-util 0.17.2",
-]
-
-[[package]]
-name = "webrtc-util"
-version = "0.11.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "64bfb10dbe6d762f80169ae07cf252bafa1f764b9594d140008a0231c0cdce58"
-dependencies = [
- "async-trait",
- "bitflags 1.3.2",
- "bytes",
- "ipnet",
- "lazy_static",
- "libc",
- "log",
- "nix",
- "portable-atomic",
- "rand 0.8.7",
- "thiserror 1.0.69",
- "tokio",
- "winapi",
-]
-
-[[package]]
-name = "webrtc-util"
-version = "0.17.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1beae0b4f24969741c26ca282a257dc5823bd9cbe608f7e3ca3775102d323ad9"
-dependencies = [
- "async-trait",
- "bitflags 1.3.2",
- "bytes",
- "ipnet",
- "lazy_static",
- "log",
- "nix",
- "portable-atomic",
- "rand 0.9.5",
- "thiserror 1.0.69",
- "tokio",
- "winapi",
-]
-
[[package]]
name = "whatsapp-rust"
version = "0.7.0"
@@ -3284,21 +3200,24 @@ dependencies = [
"async-channel",
"async-lock",
"async-trait",
- "base64",
+ "base64 0.23.1",
"buffa",
"bytes",
"chrono",
"event-listener",
"futures",
- "getrandom 0.4.2",
+ "getrandom 0.4.3",
"hashbrown 0.17.1",
"hex",
"itoa",
"log",
"opus",
"portable-atomic",
- "rand 0.10.0",
- "rustls",
+ "rand",
+ "rtc-datachannel",
+ "rtc-dtls",
+ "rtc-sctp",
+ "rtc-shared",
"scopeguard",
"serde",
"serde_json",
@@ -3308,11 +3227,6 @@ dependencies = [
"wacore",
"wacore-binary",
"waproto",
- "webrtc-data",
- "webrtc-dtls",
- "webrtc-sctp",
- "webrtc-util 0.11.0",
- "webrtc-util 0.17.2",
"whatsapp-rust-sqlite-storage",
"whatsapp-rust-tokio-transport",
"whatsapp-rust-ureq-http-client",
@@ -3333,7 +3247,7 @@ dependencies = [
"log",
"scheduled-thread-pool",
"serde_json",
- "sha2 0.11.0",
+ "sha2",
"tokio",
"wacore",
]
@@ -3411,7 +3325,7 @@ checksum = "053e2e040ab57b9dc951b72c264860db7eb3b0200ba345b4e4c3b14f67855ddf"
dependencies = [
"proc-macro2",
"quote",
- "syn 2.0.117",
+ "syn 2.0.119",
]
[[package]]
@@ -3422,7 +3336,7 @@ checksum = "3f316c4a2570ba26bbec722032c4099d8c8bc095efccdc15688708623367e358"
dependencies = [
"proc-macro2",
"quote",
- "syn 2.0.117",
+ "syn 2.0.119",
]
[[package]]
@@ -3539,109 +3453,15 @@ checksum = "df79d97927682d2fd8adb29682d1140b343be4ac0f08fd68b7765d9c059d3945"
[[package]]
name = "winnow"
-version = "1.0.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a90e88e4667264a994d34e6d1ab2d26d398dcdca8b7f52bec8668957517fc7d8"
-
-[[package]]
-name = "wit-bindgen"
-version = "0.51.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d7249219f66ced02969388cf2bb044a09756a083d0fab1e566056b04d9fbcaa5"
-dependencies = [
- "wit-bindgen-rust-macro",
-]
-
-[[package]]
-name = "wit-bindgen-core"
-version = "0.51.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ea61de684c3ea68cb082b7a88508a8b27fcc8b797d738bfc99a82facf1d752dc"
-dependencies = [
- "anyhow",
- "heck",
- "wit-parser",
-]
-
-[[package]]
-name = "wit-bindgen-rust"
-version = "0.51.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b7c566e0f4b284dd6561c786d9cb0142da491f46a9fbed79ea69cdad5db17f21"
-dependencies = [
- "anyhow",
- "heck",
- "indexmap",
- "prettyplease",
- "syn 2.0.117",
- "wasm-metadata",
- "wit-bindgen-core",
- "wit-component",
-]
-
-[[package]]
-name = "wit-bindgen-rust-macro"
-version = "0.51.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "0c0f9bfd77e6a48eccf51359e3ae77140a7f50b1e2ebfe62422d8afdaffab17a"
-dependencies = [
- "anyhow",
- "prettyplease",
- "proc-macro2",
- "quote",
- "syn 2.0.117",
- "wit-bindgen-core",
- "wit-bindgen-rust",
-]
-
-[[package]]
-name = "wit-component"
-version = "0.244.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "9d66ea20e9553b30172b5e831994e35fbde2d165325bec84fc43dbf6f4eb9cb2"
-dependencies = [
- "anyhow",
- "bitflags 2.11.0",
- "indexmap",
- "log",
- "serde",
- "serde_derive",
- "serde_json",
- "wasm-encoder",
- "wasm-metadata",
- "wasmparser",
- "wit-parser",
-]
-
-[[package]]
-name = "wit-parser"
-version = "0.244.0"
+version = "1.0.4"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ecc8ac4bc1dc3381b7f59c34f00b67e18f910c2c0f50015669dde7def656a736"
-dependencies = [
- "anyhow",
- "id-arena",
- "indexmap",
- "log",
- "semver",
- "serde",
- "serde_derive",
- "serde_json",
- "unicode-xid",
- "wasmparser",
-]
+checksum = "23b97319f7b8343df12cc98938e5c3eb436064524c8d2b4e30a1d3a36eecdf81"
[[package]]
-name = "x25519-dalek"
-version = "2.0.1"
+name = "writeable"
+version = "0.6.4"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c7e468321c81fb07fa7f4c636c3972b9100f0346e5b6a9f2bd0603a52f7ed277"
-dependencies = [
- "curve25519-dalek 4.1.3",
- "rand_core 0.6.4",
- "serde",
- "zeroize",
-]
+checksum = "3ad82d2a33cdc9674dc7465672f271e096168fcdbe0f799d9e6db8c5892679dc"
[[package]]
name = "x25519-dalek"
@@ -3649,8 +3469,8 @@ version = "3.0.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "e7e8131a03190127fb2263afc72b322ecadae46b6ff8c6f399ff5d02f5559af6"
dependencies = [
- "curve25519-dalek 5.0.0",
- "rand_core 0.10.0",
+ "curve25519-dalek",
+ "rand_core 0.10.1",
"zeroize",
]
@@ -3660,31 +3480,50 @@ version = "0.16.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "fcbc162f30700d6f3f82a24bf7cc62ffe7caea42c0b2cba8bf7f3ae50cf51f69"
dependencies = [
- "asn1-rs",
+ "asn1-rs 0.6.2",
"data-encoding",
- "der-parser",
+ "der-parser 9.0.0",
"lazy_static",
"nom",
- "oid-registry",
+ "oid-registry 0.7.1",
"rusticata-macros",
"thiserror 1.0.69",
"time",
]
+[[package]]
+name = "x509-parser"
+version = "0.18.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d43b0f71ce057da06bc0851b23ee24f3f86190b07203dd8f567d0b706a185202"
+dependencies = [
+ "asn1-rs 0.7.2",
+ "data-encoding",
+ "der-parser 10.0.0",
+ "lazy_static",
+ "nom",
+ "oid-registry 0.8.1",
+ "ring",
+ "rusticata-macros",
+ "thiserror 2.0.20",
+ "time",
+]
+
[[package]]
name = "yasna"
-version = "0.5.2"
+version = "0.6.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e17bb3549cc1321ae1296b9cdc2698e2b6cb1992adfa19a8c72e5b7a738f44cd"
+checksum = "b5f6765e852b9b4dc8e2a76843e4d64d1cea8e79bcde0b6901aea8e7c7f08282"
dependencies = [
+ "bit-vec",
"time",
]
[[package]]
name = "yoke"
-version = "0.8.2"
+version = "0.8.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "abe8c5fda708d9ca3df187cae8bfb9ceda00dd96231bed36e445a1a48e66f9ca"
+checksum = "709fe23a0424b6a435d82152b1bd3fdfb0833487d5fa90d05d42762a9891fef5"
dependencies = [
"stable_deref_trait",
"yoke-derive",
@@ -3699,7 +3538,7 @@ checksum = "de844c262c8848816172cef550288e7dc6c7b7814b4ee56b3e1553f275f1858e"
dependencies = [
"proc-macro2",
"quote",
- "syn 2.0.117",
+ "syn 2.0.119",
"synstructure",
]
@@ -3720,27 +3559,27 @@ checksum = "f2ab42fc20575779bd240faa45f94a74256f755c0fa9e89f0ede20d91d0cdfc1"
dependencies = [
"proc-macro2",
"quote",
- "syn 2.0.117",
+ "syn 2.0.119",
]
[[package]]
name = "zerofrom"
-version = "0.1.6"
+version = "0.1.8"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "50cc42e0333e05660c3587f3bf9d0478688e15d870fab3346451ce7f8c9fbea5"
+checksum = "0ec05a11813ea801ff6d75110ad09cd0824ddba17dfe17128ea0d5f68e6c5272"
dependencies = [
"zerofrom-derive",
]
[[package]]
name = "zerofrom-derive"
-version = "0.1.6"
+version = "0.1.7"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d71e5d6e06ab090c67b5e44993ec16b72dcbaabc526db883a360057678b48502"
+checksum = "11532158c46691caf0f2593ea8358fed6bbf68a0315e80aae9bd41fbade684a1"
dependencies = [
"proc-macro2",
"quote",
- "syn 2.0.117",
+ "syn 2.0.119",
"synstructure",
]
@@ -3749,19 +3588,38 @@ name = "zeroize"
version = "1.9.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "e13c156562582aa81c60cb29407084cdb54c4164760106ab78e6c5b0858cf64e"
+
+[[package]]
+name = "zerotrie"
+version = "0.2.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "4ea269c3bd32f0a32c321907a2ae912ba6f4649bb0fc764a15627e99a7095a3f"
dependencies = [
- "zeroize_derive",
+ "displaydoc",
+ "yoke",
+ "zerofrom",
]
[[package]]
-name = "zeroize_derive"
-version = "1.5.0"
+name = "zerovec"
+version = "0.11.8"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "3c50655cbb0fe3fc43170059e702f1ce5e19b84cec58dc87b037a09935c2f328"
+checksum = "bb0464e17806c1d976d5cba29399c7f08e516e279e2ba493f63123b5fca67dd8"
+dependencies = [
+ "yoke",
+ "zerofrom",
+ "zerovec-derive",
+]
+
+[[package]]
+name = "zerovec-derive"
+version = "0.11.6"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "34df6fc39dbd26ddc9c10e6a2984476e13acce22e64e4487636ef494369225da"
dependencies = [
"proc-macro2",
"quote",
- "syn 2.0.117",
+ "syn 3.0.3",
]
[[package]]
@@ -3772,6 +3630,6 @@ checksum = "34b31d188d9d685a4f9c7b46d6e36631b07058d2cfe190267adce54dc230bf12"
[[package]]
name = "zmij"
-version = "1.0.21"
+version = "1.0.23"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b8848ee67ecc8aedbaf3e4122217aff892639231befc6a1b58d29fff4c2cabaa"
+checksum = "29666d0abbfad1e3dc4dcf6144730dd3a3ab225bbbdac83319345b1b44ccfc1b"
diff --git a/Cargo.toml b/Cargo.toml
index 49c40da..45c1e69 100644
--- a/Cargo.toml
+++ b/Cargo.toml
@@ -11,8 +11,6 @@ crate-type = ["cdylib"]
[dependencies]
pyo3 = { version = "0.28.0", features = ["extension-module", "abi3-py38"] }
-# NOTE: intentionally no `simd` feature — it turns on `#![feature(portable_simd)]`
-# in wacore-binary, which is nightly-only and breaks stable builds (CI + sdist).
# NOTE: `voip` is excluded from the hardcoded feature set; it is controlled by
# crate-level features below so CI can toggle voip-libopus per target.
whatsapp-rust = { path = "libs/whatsapp-rust", default-features = false, features = ["sqlite-storage", "tokio-transport", "tokio-runtime", "ureq-client", "tokio-native", "signal"] }
@@ -40,8 +38,7 @@ async-channel = "2.5"
# the PyO3 player and receives lifecycle results.
symphonia = { version = "0.5.4", default-features = false, features = ["mp3", "wav", "ogg", "vorbis", "pcm"] }
serde = { version = "1", features = ["derive"] }
-# default-features = false disables wacore-appstate's default `simd` feature,
-# which would otherwise pull in nightly-only portable_simd via wacore-binary.
+# default-features = false avoids pulling unnecessary default features.
wacore-appstate = { path = "libs/whatsapp-rust/wacore/appstate", default-features = false }
# ── Feature flags ──────────────────────────────────────────────────────
@@ -55,14 +52,17 @@ voip = ["whatsapp-rust/voip"]
voip-mlow = ["whatsapp-rust/voip-mlow"]
# ── Release profile ────────────────────────────────────────────────────
-# Aggressively optimize for binary size. Without this, debug symbols
-# alone can bloat the .so to ~1 GB.
+# Optimised for maximum runtime performance. opt-level=3 enables full
+# inlining and loop-unrolling; lto=fat + codegen-units=1 give the
+# optimizer a single, whole-program view. panic="unwind" is mandatory
+# because PyO3 and whatsapp-rust rely on catch_unwind() to convert
+# Rust panics into Python exceptions instead of crashing the host.
[profile.release]
-strip = true # strip debug symbols (~900 MB saved)
-lto = true # link-time optimization (20-30% smaller code)
-opt-level = "z" # optimize for size over speed
-codegen-units = 1 # single codegen unit for better optimization
-panic = "abort" # skip unwind tables (~5% smaller)
+opt-level = 3 # maximum runtime performance
+lto = "fat" # full cross-crate link-time optimization
+codegen-units = 1 # single codegen unit for whole-program opts
+strip = "symbols" # strip debug symbols, keep minimal info
+panic = "unwind" # REQUIRED: PyO3 catch_unwind → Python exceptions
[profile.dev]
# Keep dev builds fast.
diff --git a/README.id.md b/README.id.md
new file mode 100644
index 0000000..e923495
--- /dev/null
+++ b/README.id.md
@@ -0,0 +1,248 @@
+# Tryx
+
+[](https://pypi.org/project/tryx/)
+[](https://pypi.org/project/tryx/)
+[](LICENSE)
+[](https://krypton-byte.github.io/tryx/)
+
+**Bahasa:** [English](README.md) | [简体中文](README.zh.md) | Bahasa Indonesia
+
+Tryx adalah library otomasi WhatsApp untuk Python yang dibangun dengan Rust dan PyO3. API publiknya dibuat agar nyaman digunakan dari Python, dengan dukungan async, sesi persisten, dan akses ke fitur protokol WhatsApp Web tingkat lanjut.
+
+> Tryx adalah proyek independen. Tidak berafiliasi dengan WhatsApp, Meta, atau produk resmi mereka.
+
+## Apa Itu Tryx?
+
+Tryx membantu pengembang Python membangun tools otomasi WhatsApp tanpa harus menulis Rust secara langsung. Logika protokol berjalan di Rust untuk performa, sedangkan API publiknya tetap nyaman untuk aplikasi Python.
+
+Tryx cocok untuk:
+
+- Otomasi WhatsApp Web dari Python.
+- Sesi login persisten dengan SQLite, PostgreSQL, atau MySQL.
+- API async untuk bot, worker, dashboard, dan tool internal.
+- Akses ke kontak, grup, newsletter, status, privasi, profil, label, komentar, event, dan helper protokol tingkat lanjut.
+
+## Fitur Utama
+
+- **Core Rust, API Python** — logika protokol diimplementasikan dalam Rust dan diekspos melalui PyO3.
+- **Async first** — dirancang untuk aplikasi `asyncio`.
+- **Sesi persisten** — sesi perangkat dapat digunakan ulang melalui database.
+- **API luas** — namespace umum dan advanced sudah diexpose.
+- **Type stub Python** — tersedia `.pyi` untuk autocomplete dan type checking yang lebih baik.
+
+## Instalasi
+
+```bash
+pip install tryx
+```
+
+Untuk development lokal:
+
+```bash
+git clone https://github.com/krypton-byte/tryx.git
+cd tryx
+git submodule update --init --recursive
+uv sync --group dev
+uv run maturin develop
+```
+
+## Mulai Cepat
+
+```python
+import asyncio
+
+from tryx.backend import SqliteStore
+from tryx.client import Tryx, TryxClient
+from tryx.events import EvMessage, EvPairingQrCode
+
+backend = SqliteStore("whatsapp.db")
+app = Tryx(backend)
+
+
+@app.on(EvPairingQrCode)
+async def on_pairing_qr(_client: TryxClient, event: EvPairingQrCode) -> None:
+ print("Scan kode QR ini dengan WhatsApp:")
+ print(event.code)
+
+
+@app.on(EvMessage)
+async def on_message(client: TryxClient, event: EvMessage) -> None:
+ text = (event.data.get_text() or "").strip()
+ if text.lower() == "ping":
+ await client.send_text(
+ event.data.message_info.source.chat, "pong", quoted=event
+ )
+
+
+async def main() -> None:
+ await app.run()
+
+
+asyncio.run(main())
+```
+
+## Namespace Client
+
+Objek runtime `TryxClient` dibagi menjadi beberapa namespace agar API lebih rapi:
+
+| Namespace | Fungsi |
+| --- | --- |
+| `contact` | Helper untuk kontak dan pencarian kontak. |
+| `chat_actions` | Operasi chat seperti mute, archive, pin, mark read, clear chat, dan save contact. |
+| `groups` | Pembuatan grup, metadata, member, invite, request membership, dan pengaturan admin. |
+| `community` | Operasi terkait komunitas. |
+| `newsletter` | Info newsletter, pesan, mute, edit, dan revoke. |
+| `status` | Posting status, lookup status, dan helper terkait status. |
+| `chatstate` | State chat seperti typing, recording, dan paused. |
+| `blocking` | Block dan unblock kontak. |
+| `polls` | Membuat poll dan mengirim vote. |
+| `presence` | Subscribe presence dan update availability. |
+| `privacy` | Pengaturan privasi. |
+| `profile` | Nama profil, status teks, dan foto profil. |
+| `labels` | Manajemen label untuk chat dan pesan. |
+| `comments` | Helper protokol terkait komentar. |
+| `events` | Helper response dan operasi berbasis event. |
+| `advanced` | Wait lifecycle, diagnostik, dan akses protokol tingkat lanjut. |
+| `voip` | Manajemen panggilan audio dan video. |
+
+## Storage Backend
+
+Tryx mendukung tiga tipe storage untuk menyimpan sesi WhatsApp:
+
+| Tipe | Backend | Kegunaan |
+| --- | --- | --- |
+| Built-in | `SqliteStore("whatsapp.db")` | Development lokal dan deployment sederhana. |
+| Native FFI | `FfiStoreProtocol` | Store eksternal throughput tinggi seperti PostgreSQL. |
+| Pure Python | subclass `StoreBase` | Store async custom seperti Redis, MongoDB, atau DynamoDB. |
+
+SQLite cukup untuk development lokal. Native FFI atau backend Python custom lebih cocok jika sesi perlu dipakai bersama oleh beberapa worker atau environment deployment.
+
+## VoIP: Panggilan Audio dan Video
+
+Tryx menyediakan bridge VoIP berbasis Rust untuk panggilan audio dan video WhatsApp. Protocol, RTP/WebRTC, enkripsi, codec, dan orkestrasi call berjalan di whatsapp-rust; Python menyediakan media melalui adapter source dan sink asynchronous.
+
+### Kontrak Media
+
+| Media | Kontrak |
+| --- | --- |
+| Audio | Mono signed PCM16 little-endian, 16.000 Hz, 960 sample / 1.920 byte per frame, 60 ms |
+| Video | H.264 Annex-B access unit melalui `VideoFrame` |
+
+### Adapter Audio Minimal
+
+```python
+from collections.abc import AsyncIterator
+from tryx.media import AudioSink, AudioSource, validate_audio_frame
+
+
+class Microphone(AudioSource):
+ async def frames(self) -> AsyncIterator[bytes]:
+ while True:
+ frame = await read_microphone_frame()
+ yield validate_audio_frame(frame)
+
+
+class Speaker(AudioSink):
+ async def write(self, frame: bytes) -> None:
+ validate_audio_frame(frame)
+ await play_speaker_frame(frame)
+```
+
+### Panggilan Audio 1:1
+
+```python
+from tryx.types import JID
+
+
+async def start_audio_call(client, phone_number: str):
+ peer = JID(phone_number + "@s.whatsapp.net")
+ call = await client.voip.call(peer, Microphone(), Speaker())
+ print("panggilan dimulai:", call.call_id)
+ call.set_muted(True)
+ call.set_muted(False)
+ await call.wait_ended()
+```
+
+### Panggilan Video
+
+```python
+from tryx.media import VideoPlayer
+
+
+async def start_video_call(client, peer, video_sink):
+ video_source = VideoPlayer(fps=15)
+ video_source.play("sample.mp4")
+ call = await client.voip.video_call(
+ peer, Microphone(), Speaker(), video_source, video_sink
+ )
+ await call.wait_ended()
+ video_source.stop()
+```
+
+### Group Call dan Call Link
+
+```python
+call = await client.voip.group_call(
+ peers=[peer_a, peer_b],
+ audio_source=Microphone(),
+ audio_sink=Speaker(),
+)
+await call.invite_participant(peer_c)
+await call.ring_participant(peer_c)
+
+linked = await client.voip.join_call_link(
+ "https://call.whatsapp.com/your-token",
+ "audio",
+ Microphone(),
+ Speaker(),
+)
+```
+
+### AudioPlayer Native
+
+```python
+from tryx.media import AudioPlayer
+
+player = AudioPlayer(buffer_frames=3)
+player.play("intro.mp3", mode="replace")
+call = await client.voip.call(peer, player, Speaker())
+player.pause()
+player.resume()
+player.enqueue("next.wav")
+player.skip()
+player.clear_queue()
+player.stop()
+```
+
+## Development
+
+```bash
+cargo check
+cargo test --lib
+uv run pytest -q
+uv run maturin develop
+uv run maturin build --release
+```
+
+## Struktur Project
+
+```text
+.
+├── libs/whatsapp-rust/ # Submodule crate protokol Rust
+├── src/ # Binding Rust dan PyO3
+├── python/tryx/ # Package Python dan type stub
+├── examples/ # Contoh script otomasi
+├── docs/ # Situs dokumentasi
+└── tests/ # Test suite Python
+```
+
+## Link Penting
+
+- Dokumentasi:
+- Contoh: [`examples/`](examples/)
+- Type stub Python: [`python/tryx/`](python/tryx/)
+- Binding Rust: [`src/`](src/)
+
+## Lisensi
+
+Proyek ini dilisensikan di bawah [MIT License](LICENSE).
diff --git a/README.md b/README.md
index e7f2fcb..95a24c2 100644
--- a/README.md
+++ b/README.md
@@ -3,19 +3,15 @@
[](https://pypi.org/project/tryx/)
[](https://pypi.org/project/tryx/)
[](LICENSE)
-[](http://krypton-byte.tech/tryx/)
+[](https://krypton-byte.github.io/tryx/)
-**Language:** [English](#english) | [简体中文](#简体中文) | [Bahasa Indonesia](#bahasa-indonesia)
+**Language:** English | [简体中文](README.zh.md) | [Bahasa Indonesia](README.id.md)
Tryx is a Python automation library powered by Rust and PyO3. It provides a Python-friendly API on top of the `whatsapp-rust` crate, with async support, persistent sessions, and access to advanced WhatsApp Web protocol features.
> Tryx is an independent project. It is not affiliated with WhatsApp, Meta, or their official products.
----
-
-## English
-
-### What Is Tryx?
+## What Is Tryx?
Tryx helps Python developers build WhatsApp automation tools without writing Rust directly. The core protocol logic runs in Rust for performance, while the public interface stays ergonomic for Python applications.
@@ -26,15 +22,15 @@ Use Tryx when you need:
- Async APIs for bots, workers, dashboards, and internal tools.
- Access to contacts, groups, newsletters, status, privacy, profile, labels, comments, events, and lower-level protocol helpers.
-### Highlights
+## Highlights
-- **Rust core, Python API** - protocol logic is implemented in Rust and exposed through PyO3.
-- **Async first** - designed for `asyncio` applications.
-- **Persistent sessions** - reuse device sessions through a database-backed store.
-- **Broad API surface** - exposes common and advanced client namespaces.
-- **Typed Python stubs** - includes `.pyi` files for better editor support.
+- **Rust core, Python API** — protocol logic is implemented in Rust and exposed through PyO3.
+- **Async first** — designed for `asyncio` applications.
+- **Persistent sessions** — reuse device sessions through a database-backed store.
+- **Broad API surface** — exposes common and advanced client namespaces.
+- **Typed Python stubs** — includes `.pyi` files for better editor support.
-### Installation
+## Installation
```bash
pip install tryx
@@ -50,7 +46,7 @@ uv sync --group dev
uv run maturin develop
```
-### Quick Start
+## Quick Start
```python
import asyncio
@@ -85,7 +81,7 @@ async def main() -> None:
asyncio.run(main())
```
-### Runtime Client Namespaces
+## Client Namespaces
The runtime `TryxClient` object exposes several namespaces so the API stays organized:
@@ -107,8 +103,9 @@ The runtime `TryxClient` object exposes several namespaces so the API stays orga
| `comments` | Comment-related protocol helpers. |
| `events` | Event response helpers and event-oriented operations. |
| `advanced` | Lifecycle waits, diagnostics, and lower-level protocol escape hatches. |
+| `voip` | Audio and video call management. |
-### Storage Backends
+## Storage Backends
Tryx supports three storage tiers:
@@ -120,31 +117,18 @@ Tryx supports three storage tiers:
SQLite is usually enough for local development. Native FFI or a custom Python backend is better when several workers or deployment environments need shared session state.
-### VoIP: Audio and Video Calls
-
-Tryx provides a Rust-backed bridge for WhatsApp audio and video calls. After the client is connected, use client.voip. Protocol handling, RTP/WebRTC, encryption, codecs, and call orchestration run in whatsapp-rust; Python supplies media through asynchronous source and sink adapters.
+## VoIP: Audio and Video Calls
-#### Features
+Tryx provides a Rust-backed bridge for WhatsApp audio and video calls. Protocol handling, RTP/WebRTC, encryption, codecs, and call orchestration run in whatsapp-rust; Python supplies media through asynchronous source and sink adapters.
-- One-to-one audio calls through voip.call().
-- One-to-one video calls through voip.video_call().
-- Group calls with optional video through voip.group_call().
-- Call-link joining through voip.join_call_link() with audio or video media.
-- Hangup, wait, mute/unmute, video, participant, approval, and screen-sharing controls.
-- Native Rust playback for WAV, MP3, OGG, Vorbis, and PCM audio files.
-- Native FFmpeg playback producing H.264 Annex-B video access units.
-- Python adapters for microphones, speakers, cameras, codecs, TTS, DSP, and custom pipelines.
+### Media Contract
-#### Media Contract
-
-| Media | Kontrak |
+| Media | Contract |
| --- | --- |
| Audio | Mono signed PCM16 little-endian, 16,000 Hz, 960 samples / 1,920 bytes per frame, 60 ms |
-| Video | H.264 Annex-B access unit represented by VideoFrame |
-
-AudioSource.frames() must yield exactly 1,920 bytes per frame. AudioSink.write() receives the same format. VideoFrame carries data, timestamp_us, duration_us, keyframe, optional dimensions, and orientation.
+| Video | H.264 Annex-B access unit represented by `VideoFrame` |
-#### Minimal Audio Adapters
+### Minimal Audio Adapters
```python
from collections.abc import AsyncIterator
@@ -164,9 +148,7 @@ class Speaker(AudioSink):
await play_speaker_frame(frame)
```
-Replace the two backend functions with PyAudio, sounddevice, ALSA, CoreAudio, or another device library.
-
-#### One-to-One Audio Call
+### One-to-One Audio Call
```python
from tryx.types import JID
@@ -180,9 +162,9 @@ async def start_audio_call(client, phone_number: str):
call.set_muted(False)
await call.wait_ended()
```
-Use await call.hangup() to end a call explicitly. Keep the CallHandle alive and await wait_ended() for deterministic cleanup.
-#### Video Call
+### Video Call
+
```python
from tryx.media import VideoPlayer
@@ -196,9 +178,9 @@ async def start_video_call(client, peer, video_sink):
await call.wait_ended()
video_source.stop()
```
-VideoPlayer accepts 1–60 FPS and defaults to 15. FFmpeg must be in PATH; missing files and missing FFmpeg produce explicit errors.
-#### Group Calls and Call Links
+### Group Calls and Call Links
+
```python
call = await client.voip.group_call(
peers=[peer_a, peer_b],
@@ -207,7 +189,7 @@ call = await client.voip.group_call(
)
await call.invite_participant(peer_c)
await call.ring_participant(peer_c)
-await call.set_approval_required(True)
+
linked = await client.voip.join_call_link(
"https://call.whatsapp.com/your-token",
"audio",
@@ -215,25 +197,9 @@ linked = await client.voip.join_call_link(
Speaker(),
)
```
-group_call() accepts optional video source/sink pairs. join_call_link() accepts a token or URL and media audio or video.
-
-#### Incoming Calls
-
-IncomingCallEvent exposes call_id, peer, is_video, accept(audio_source, audio_sink), and reject(). Accept or reject it only once because the invitation is consumed.
-```python
-@app.on(EvIncomingCall)
-async def on_incoming_call(_client, event):
- if event.is_video:
- await event.reject()
- return
- call = await event.accept(Microphone(), Speaker())
- await call.wait_ended()
-```
-Use the incoming-call event exported by the installed package version.
-#### Native AudioPlayer
+### Native AudioPlayer
-AudioPlayer decodes files in Rust and normalizes them to mono PCM16 at 16 kHz.
```python
from tryx.media import AudioPlayer
@@ -247,42 +213,18 @@ player.skip()
player.clear_queue()
player.stop()
```
-Modes are replace, queue, and interrupt. buffer_frames defaults to 3 and is capped at 30. States are idle, playing, and paused; non-16 kHz audio uses linear interpolation.
-
-#### Internal Data Flow and Backpressure
-
- Python source/sink -> PyO3 bridge + bounded async channel
- -> whatsapp-rust VoIP facade
- -> WaCore call engine -> RTP/SRTP/WebRTC
- -> WhatsApp call network
-
-Inbound media follows the reverse path: transport decrypts and decodes, the bridge creates PCM16 or VideoFrame, and the Python sink receives it. Bounded channels prevent unbounded queues; audio defaults to three frames, about 180 ms before network and codec overhead. Slow sinks cause asynchronous backpressure instead of CPU spin-waiting.
-Audio commands wait for the manager result and propagate errors to Python. VideoPlayer.stop() cancels its FFmpeg task, which kills and reaps the child process instead of leaving an orphan.
-
-#### Lifecycle and Troubleshooting
-
-- Start calls only after Tryx is connected; use one native player per active call.
-- Stop players when cancelling a call and release them after wait_ended().
-- Send only mono PCM16 16 kHz frames of exactly 1,920 bytes.
-- Video sources must emit H.264 Annex-B, not an MP4 container.
-- For invalid audio sizes, chunk or resample into 960 samples.
-- For high latency, use buffer_frames=2 or 3.
-- Install FFmpeg and verify it with ffmpeg -version when video playback fails.
-
-### Development
-
-Useful commands:
+## Development
```bash
cargo check
cargo test --lib
-env UV_CACHE_DIR=/tmp/uv-cache uv run pytest -q
+uv run pytest -q
uv run maturin develop
uv run maturin build --release
```
-Project layout:
+## Project Layout
```text
.
@@ -294,579 +236,13 @@ Project layout:
└── tests/ # Python test suite
```
-### Links
+## Links
-- Documentation:
+- Documentation:
- Examples: [`examples/`](examples/)
- Python type stubs: [`python/tryx/`](python/tryx/)
- Rust bindings: [`src/`](src/)
----
-
-## 简体中文
-
-### Tryx 是什么?
-
-Tryx 是一个基于 Rust 和 PyO3 的 Python WhatsApp 自动化库。底层协议能力来自 `whatsapp-rust` crate,Python 侧提供更易用的异步 API,适合构建机器人、后台任务、内部工具和自动化服务。
-
-Tryx 适合以下场景:
-
-- 使用 Python 操作 WhatsApp Web。
-- 通过 SQLite、PostgreSQL 或 MySQL 持久化登录会话。
-- 在 `asyncio` 项目中构建机器人或自动化流程。
-- 使用联系人、群组、频道、状态、隐私、资料、标签、评论、事件和高级协议能力。
-
-### 主要特点
-
-- **Rust 核心,Python 调用** - 协议逻辑在 Rust 中运行,Python 通过 PyO3 调用。
-- **异步优先** - 适合 `asyncio` 应用。
-- **会话持久化** - 可以复用已登录的 WhatsApp 设备会话。
-- **API 覆盖面更广** - 暴露常用功能和高级功能命名空间。
-- **类型提示支持** - 提供 `.pyi` 文件,提升编辑器补全体验。
-
-### 安装
-
-```bash
-pip install tryx
-```
-
-本地开发:
-
-```bash
-git clone https://github.com/krypton-byte/tryx.git
-cd tryx
-git submodule update --init --recursive
-uv sync --group dev
-uv run maturin develop
-```
-
-### 快速开始
-
-```python
-import asyncio
-
-from tryx.backend import SqliteStore
-from tryx.client import Tryx, TryxClient
-from tryx.events import EvMessage, EvPairingQrCode
-
-backend = SqliteStore("whatsapp.db")
-app = Tryx(backend)
-
-
-@app.on(EvPairingQrCode)
-async def on_pairing_qr(_client: TryxClient, event: EvPairingQrCode) -> None:
- print("Scan this QR code with WhatsApp:")
- print(event.code)
-
-
-@app.on(EvMessage)
-async def on_message(client: TryxClient, event: EvMessage) -> None:
- text = (event.data.get_text() or "").strip()
- if text.lower() == "ping":
- await client.send_text(
- event.data.message_info.source.chat, "pong", quoted=event
- )
-
-
-async def main() -> None:
- await app.run()
-
-
-asyncio.run(main())
-```
-
-### Client 命名空间
-
-运行时 `TryxClient` 对象按功能拆分为多个命名空间:
-
-| 命名空间 | 用途 |
-| --- | --- |
-| `contact` | 联系人查询和联系人相关工具。 |
-| `chat_actions` | 聊天操作,例如静音、归档、置顶、标记已读、清空聊天和保存联系人。 |
-| `groups` | 群组创建、信息、成员、邀请、入群请求和管理员设置。 |
-| `community` | 社区相关操作。 |
-| `newsletter` | 频道信息、消息、静音设置、编辑和撤回。 |
-| `status` | 状态发布、查询和相关工具。 |
-| `chatstate` | 输入中、录音中、暂停等聊天状态。 |
-| `blocking` | 拉黑和取消拉黑联系人。 |
-| `polls` | 投票创建和投票操作。 |
-| `presence` | 在线状态订阅和可用性更新。 |
-| `privacy` | 隐私设置和控制。 |
-| `profile` | 资料名称、状态文本和头像操作。 |
-| `labels` | 聊天和消息标签管理。 |
-| `comments` | 评论相关协议工具。 |
-| `events` | 事件响应和事件相关操作。 |
-| `advanced` | 生命周期等待、诊断和更底层的协议能力。 |
-
-### 存储后端
-
-Tryx 支持三种会话存储方式:
-
-| 类型 | 后端 | 使用场景 |
-| --- | --- | --- |
-| 内置 | `SqliteStore("whatsapp.db")` | 本地开发和简单部署。 |
-| Native FFI | `FfiStoreProtocol` | 高吞吐外部存储,例如 PostgreSQL。 |
-| 纯 Python | `StoreBase` 子类 | 自定义异步存储,例如 Redis、MongoDB 或 DynamoDB。 |
-
-本地开发通常使用 SQLite 即可。如果多个 worker 或部署环境需要共享会话状态,建议使用 Native FFI 或自定义 Python 后端。
-
-### VoIP:音频和视频通话
-
-Tryx 提供基于 Rust 的 WhatsApp 音频和视频通话桥接层。客户端连接后,可以通过 client.voip 使用 API。协议处理、RTP/WebRTC、加密、编解码器和通话编排由 whatsapp-rust 执行;Python 通过异步 source 和 sink adapter 提供媒体数据。
-
-#### 功能
-
-- 使用 voip.call() 发起一对一音频通话。
-- 使用 voip.video_call() 发起一对一视频通话。
-- 使用 voip.group_call() 发起带可选视频的群组通话。
-- 使用 voip.join_call_link() 加入音频或视频 call link。
-- 支持挂断、等待结束、静音/取消静音、开始/停止视频。
-- 支持邀请、响铃、参与者审批,以及允许或拒绝等待中的用户。
-- 支持 start_screen_share() 和 stop_screen_share() 屏幕共享。
-- Rust 原生播放 WAV、MP3、OGG、Vorbis 和 PCM 音频文件。
-- 通过 FFmpeg 原生播放视频并输出 H.264 Annex-B access unit。
-- 支持用于麦克风、扬声器、摄像头、编解码器、TTS、DSP 和自定义媒体管线的 Python adapter。
-
-#### 媒体契约
-
-| 媒体 | 契约 |
-| --- | --- |
-| 音频 | 单声道 signed PCM16 little-endian,16,000 Hz,每帧 960 个 sample / 1,920 字节,60 ms |
-| 视频 | 通过 VideoFrame 表示的 H.264 Annex-B access unit |
-
-AudioSource.frames() 必须每次产生恰好 1,920 字节。AudioSink.write() 接收相同的 PCM 格式。VideoFrame 包含 data、timestamp_us、duration_us、keyframe、可选的 width 和 height,以及 orientation。
-
-#### 最小音频 Adapter
-```python
-from collections.abc import AsyncIterator
-from tryx.media import AudioSink, AudioSource, validate_audio_frame
-
-
-class Microphone(AudioSource):
- async def frames(self) -> AsyncIterator[bytes]:
- while True:
- frame = await read_microphone_frame()
- yield validate_audio_frame(frame)
-
-
-class Speaker(AudioSink):
- async def write(self, frame: bytes) -> None:
- validate_audio_frame(frame)
- await play_speaker_frame(frame)
-```
-请将两个设备函数替换为 PyAudio、sounddevice、ALSA、CoreAudio 或其他音频设备库的实现。
-
-#### 一对一音频通话
-
-```python
-from tryx.types import JID
-
-
-async def start_audio_call(client, phone_number: str):
- peer = JID(phone_number + "@s.whatsapp.net")
- call = await client.voip.call(peer, Microphone(), Speaker())
- print("call started:", call.call_id)
- call.set_muted(True)
- call.set_muted(False)
- await call.wait_ended()
-```
-使用 await call.hangup() 主动结束通话。通话期间请保持 CallHandle,并等待 wait_ended(),以便媒体资源能够稳定清理。
-
-#### 视频通话
-```python
-from tryx.media import VideoPlayer
-
-
-async def start_video_call(client, peer, video_sink):
- video_source = VideoPlayer(fps=15)
- video_source.play("sample.mp4")
- call = await client.voip.video_call(
- peer, Microphone(), Speaker(), video_source, video_sink
- )
- await call.wait_ended()
- video_source.stop()
-```
-VideoPlayer 支持 1–60 FPS,默认值为 15。系统必须在 PATH 中提供 FFmpeg;文件不存在或 FFmpeg 不可用时,play() 会返回明确错误。
-
-#### 群组通话和 Call Link
-```python
-call = await client.voip.group_call(
- peers=[peer_a, peer_b],
- audio_source=Microphone(),
- audio_sink=Speaker(),
-)
-await call.invite_participant(peer_c)
-await call.ring_participant(peer_c)
-await call.set_approval_required(True)
-linked = await client.voip.join_call_link(
- "https://call.whatsapp.com/your-token",
- "audio",
- Microphone(),
- Speaker(),
-)
-```
-group_call() 可以接收可选的 video source/sink。join_call_link() 可以接收 token 或 URL,并使用 media="audio" 或 media="video"。
-
-#### 来电
-
-IncomingCallEvent 提供 call_id、peer、is_video、accept(audio_source, audio_sink) 和 reject()。一个 event 只能 accept 或 reject 一次,因为底层来电邀请在操作后会被消费。
-```python
-@app.on(EvIncomingCall)
-async def on_incoming_call(_client, event):
- if event.is_video:
- await event.reject()
- return
- call = await event.accept(Microphone(), Speaker())
- await call.wait_ended()
-```
-请使用当前安装版本导出的来电 event 名称。
-
-#### Rust 原生 AudioPlayer
-
-AudioPlayer 在 Rust 中解码文件,并将其标准化为 16 kHz 单声道 PCM16。
-```python
-from tryx.media import AudioPlayer
-
-player = AudioPlayer(buffer_frames=3)
-player.play("intro.mp3", mode="replace")
-call = await client.voip.call(peer, player, Speaker())
-player.pause()
-player.resume()
-player.enqueue("next.wav")
-player.skip()
-player.clear_queue()
-player.stop()
-```
-播放模式为 replace、queue 和 interrupt。buffer_frames 默认 3,最大限制为 30。播放器状态为 idle、playing 和 paused。非 16 kHz 音频使用线性插值转换。
-
-#### 内部数据流和背压
-
- Python source/sink -> PyO3 bridge + bounded async channel
- -> whatsapp-rust VoIP facade
- -> WaCore call engine -> RTP/SRTP/WebRTC
- -> WhatsApp call network
-
-接收媒体沿反方向流动:transport 解密并解码,bridge 将数据转换为 PCM16 或 VideoFrame,再交给 Python sink。bounded channel 防止队列无限增长;音频默认缓存 3 帧,即在网络和 codec 开销之前约 180 ms。sink 较慢时 producer 会异步等待,而不是消耗 CPU 自旋等待。
-
-AudioPlayer command 会等待 manager 的结果,并将错误传递给 Python。VideoPlayer.stop() 会取消 FFmpeg task,由该 task kill 并回收 child process,避免留下孤儿进程。
-
-#### 生命周期和故障排查
-
-- 只有在 Tryx 连接成功后才开始通话;每个活动通话使用一个 native player。
-- 取消通话时停止 player,并在 wait_ended() 后释放资源。
-- 只能发送恰好 1,920 字节的单声道 PCM16 16 kHz 音频帧。
-- 视频 source 必须输出 H.264 Annex-B,不能直接输出 MP4 container。
-- 音频尺寸错误时,将音频切分或重采样为 960 samples。
-- 延迟过高时使用 buffer_frames=2 或 3。
-- 视频播放失败时安装 FFmpeg,并使用 ffmpeg -version 验证 PATH。
-
-### 开发命令
-
-```bash
-cargo check
-cargo test --lib
-env UV_CACHE_DIR=/tmp/uv-cache uv run pytest -q
-uv run maturin develop
-uv run maturin build --release
-```
-
-### 相关链接
-
-- 文档:
-- 示例:[`examples/`](examples/)
-- Python 类型文件:[`python/tryx/`](python/tryx/)
-- Rust 绑定代码:[`src/`](src/)
-
----
-
-## Bahasa Indonesia
-
-### Apa Itu Tryx?
-
-Tryx adalah library otomasi WhatsApp untuk Python yang dibangun dengan Rust dan PyO3. Logika protokol berjalan di Rust melalui `whatsapp-rust`, sedangkan API publiknya dibuat agar nyaman digunakan dari Python.
-
-Tryx cocok untuk:
-
-- Membuat otomasi WhatsApp Web dari Python.
-- Menyimpan sesi login dengan SQLite, PostgreSQL, atau MySQL.
-- Membangun bot, worker, dashboard, dan tool internal berbasis `asyncio`.
-- Mengakses fitur kontak, grup, newsletter, status, privasi, profil, label, komentar, event, dan helper protokol tingkat lanjut.
-
-### Fitur Utama
-
-- **Core Rust, API Python** - performa dan logika protokol ditangani Rust, pemakaian tetap sederhana dari Python.
-- **Async first** - dirancang untuk aplikasi `asyncio`.
-- **Sesi persisten** - sesi WhatsApp dapat dipakai ulang melalui database.
-- **API luas** - namespace umum dan advanced sudah diexpose.
-- **Type stub Python** - tersedia `.pyi` untuk autocomplete dan type checking yang lebih baik.
-
-### Instalasi
-
-```bash
-pip install tryx
-```
-
-Untuk development lokal:
-
-```bash
-git clone https://github.com/krypton-byte/tryx.git
-cd tryx
-git submodule update --init --recursive
-uv sync --group dev
-uv run maturin develop
-```
-
-### Mulai Cepat
-
-```python
-import asyncio
-
-from tryx.backend import SqliteStore
-from tryx.client import Tryx, TryxClient
-from tryx.events import EvMessage, EvPairingQrCode
-
-backend = SqliteStore("whatsapp.db")
-app = Tryx(backend)
-
-
-@app.on(EvPairingQrCode)
-async def on_pairing_qr(_client: TryxClient, event: EvPairingQrCode) -> None:
- print("Scan this QR code with WhatsApp:")
- print(event.code)
-
-
-@app.on(EvMessage)
-async def on_message(client: TryxClient, event: EvMessage) -> None:
- text = (event.data.get_text() or "").strip()
- if text.lower() == "ping":
- await client.send_text(
- event.data.message_info.source.chat, "pong", quoted=event
- )
-
-
-async def main() -> None:
- await app.run()
-
-
-asyncio.run(main())
-```
-
-### Namespace Client
-
-Objek runtime `TryxClient` dibagi menjadi beberapa namespace agar API lebih rapi:
-
-| Namespace | Fungsi |
-| --- | --- |
-| `contact` | Helper untuk kontak dan pencarian kontak. |
-| `chat_actions` | Operasi chat seperti mute, archive, pin, mark read, clear chat, dan save contact. |
-| `groups` | Pembuatan grup, metadata, member, invite, request membership, dan pengaturan admin. |
-| `community` | Operasi terkait komunitas. |
-| `newsletter` | Info newsletter, pesan, mute, edit, dan revoke. |
-| `status` | Posting status, lookup status, dan helper terkait status. |
-| `chatstate` | State chat seperti typing, recording, dan paused. |
-| `blocking` | Block dan unblock kontak. |
-| `polls` | Membuat poll dan mengirim vote. |
-| `presence` | Subscribe presence dan update availability. |
-| `privacy` | Pengaturan privasi. |
-| `profile` | Nama profil, status teks, dan foto profil. |
-| `labels` | Manajemen label untuk chat dan pesan. |
-| `comments` | Helper protokol terkait komentar. |
-| `events` | Helper response dan operasi berbasis event. |
-| `advanced` | Wait lifecycle, diagnostik, dan akses protokol tingkat lanjut. |
-
-### Storage Backend
-
-Tryx mendukung tiga tipe storage untuk menyimpan sesi WhatsApp:
-
-| Tipe | Backend | Kegunaan |
-| --- | --- | --- |
-| Built-in | `SqliteStore("whatsapp.db")` | Development lokal dan deployment sederhana. |
-| Native FFI | `FfiStoreProtocol` | Store eksternal throughput tinggi seperti PostgreSQL. |
-| Pure Python | subclass `StoreBase` | Store async custom seperti Redis, MongoDB, atau DynamoDB. |
-
-SQLite cukup untuk development lokal. Native FFI atau backend Python custom lebih cocok jika sesi perlu dipakai bersama oleh beberapa worker atau environment deployment.
-
-### VoIP: Panggilan Audio dan Video
-
-Tryx menyediakan bridge VoIP berbasis Rust untuk panggilan audio dan video WhatsApp. Setelah client tersambung, API tersedia melalui client.voip. Protocol, RTP/WebRTC, enkripsi, codec, dan orkestrasi call berjalan di whatsapp-rust; Python menyediakan media melalui adapter source dan sink asynchronous.
-
-#### Fitur
-
-- Panggilan audio 1:1 melalui voip.call().
-- Panggilan video 1:1 melalui voip.video_call().
-- Group call dengan video opsional melalui voip.group_call().
-- Bergabung ke call link melalui voip.join_call_link() dengan media audio atau video.
-- Kontrol hangup, wait, mute/unmute, video, peserta, approval, dan screen sharing.
-- Playback file audio native Rust untuk WAV, MP3, OGG, Vorbis, dan PCM.
-- Playback video native melalui FFmpeg dengan output H.264 Annex-B access unit.
-- Adapter Python untuk microphone, speaker, camera, codec, TTS, DSP, dan pipeline media custom.
-
-#### Kontrak Media
-
-| Media | Kontrak |
-| --- | --- |
-| Audio | Mono signed PCM16 little-endian, 16.000 Hz, 960 sample / 1.920 byte per frame, 60 ms |
-| Video | H.264 Annex-B access unit melalui VideoFrame |
-
-AudioSource.frames() harus menghasilkan async iterator dengan tepat 1.920 byte untuk setiap frame. AudioSink.write() menerima format PCM yang sama. VideoFrame berisi data, timestamp_us, duration_us, keyframe, dimensi opsional, dan orientation.
-
-#### Adapter Audio Minimal
-```python
-from collections.abc import AsyncIterator
-from tryx.media import AudioSink, AudioSource, validate_audio_frame
-
-
-class Microphone(AudioSource):
- async def frames(self) -> AsyncIterator[bytes]:
- while True:
- frame = await read_microphone_frame()
- yield validate_audio_frame(frame)
-
-
-class Speaker(AudioSink):
- async def write(self, frame: bytes) -> None:
- validate_audio_frame(frame)
- await play_speaker_frame(frame)
-```
-Ganti fungsi perangkat tersebut dengan implementasi PyAudio, sounddevice, ALSA, CoreAudio, atau library perangkat lain.
-
-#### Panggilan Audio 1:1
-```python
-from tryx.types import JID
-
-
-async def start_audio_call(client, phone_number: str):
- peer = JID(phone_number + "@s.whatsapp.net")
- call = await client.voip.call(peer, Microphone(), Speaker())
- print("call started:", call.call_id)
- call.set_muted(True)
- call.set_muted(False)
- await call.wait_ended()
-```
-Gunakan await call.hangup() untuk mengakhiri call secara eksplisit. Pertahankan CallHandle selama call aktif dan tunggu wait_ended() agar cleanup media berjalan deterministik.
-
-#### Panggilan Video
-```python
-from tryx.media import VideoPlayer
-
-
-async def start_video_call(client, peer, video_sink):
- video_source = VideoPlayer(fps=15)
- video_source.play("sample.mp4")
- call = await client.voip.video_call(
- peer, Microphone(), Speaker(), video_source, video_sink
- )
- await call.wait_ended()
- video_source.stop()
-```
-VideoPlayer mendukung 1–60 FPS dengan default 15. FFmpeg harus tersedia di PATH. File yang tidak ditemukan atau FFmpeg yang tidak tersedia akan menghasilkan error yang jelas.
-
-#### Group Call dan Call Link
-```python
- call = await client.voip.group_call(
- peers=[peer_a, peer_b],
- audio_source=Microphone(),
- audio_sink=Speaker(),
- )
- await call.invite_participant(peer_c)
- await call.ring_participant(peer_c)
- await call.set_approval_required(True)
-
- linked = await client.voip.join_call_link(
- "https://call.whatsapp.com/your-token",
- "audio",
- Microphone(),
- Speaker(),
- )
-```
-group_call() menerima video source dan sink secara opsional. join_call_link() menerima token atau URL dengan media audio atau video.
-
-#### Panggilan Masuk
-
-IncomingCallEvent menyediakan call_id, peer, is_video, accept(audio_source, audio_sink), dan reject(). Event hanya boleh di-accept atau reject satu kali karena invitation akan dikonsumsi.
-```python
- @app.on(EvIncomingCall)
- async def on_incoming_call(_client, event):
- if event.is_video:
- await event.reject()
- return
- call = await event.accept(Microphone(), Speaker())
- await call.wait_ended()
-```
-Gunakan nama event incoming-call yang diexport oleh versi package yang terpasang.
-
-#### AudioPlayer Native
-
-AudioPlayer mendecode file di Rust dan menormalisasikannya menjadi mono PCM16 16 kHz.
-```python
- from tryx.media import AudioPlayer
-
- player = AudioPlayer(buffer_frames=3)
- player.play("intro.mp3", mode="replace")
- call = await client.voip.call(peer, player, Speaker())
- player.pause()
- player.resume()
- player.enqueue("next.wav")
- player.skip()
- player.clear_queue()
- player.stop()
-```
-Mode playback adalah replace, queue, dan interrupt. buffer_frames default 3 dan dibatasi maksimal 30 frame. State player adalah idle, playing, atau paused. Audio non-16 kHz diproses dengan interpolasi linear.
-
-#### Alur Internal dan Backpressure
-
- Python source/sink -> PyO3 bridge + bounded async channel
- -> whatsapp-rust VoIP facade
- -> WaCore call engine -> RTP/SRTP/WebRTC
- -> WhatsApp call network
-
-Media masuk berjalan terbalik: transport mendekripsi dan mendecode, bridge mengubahnya menjadi PCM16 atau VideoFrame, kemudian sink Python menerimanya. Bounded channel mencegah queue tumbuh tanpa batas. Buffer audio default 3 frame, sekitar 180 ms sebelum overhead jaringan dan codec. Jika sink lambat, producer menunggu secara asynchronous tanpa spin-wait CPU.
-
-Command AudioPlayer menunggu hasil manager dan meneruskan error ke Python. VideoPlayer.stop() membatalkan task FFmpeg; task tersebut membunuh dan mereap child process agar tidak meninggalkan proses yatim.
-
-#### Lifecycle dan Troubleshooting
-
-- Mulai call setelah Tryx tersambung dan gunakan satu native player untuk setiap call aktif.
-- Hentikan player saat call dibatalkan dan lepaskan setelah wait_ended().
-- Kirim hanya frame mono PCM16 16 kHz dengan ukuran tepat 1.920 byte.
-- Video source harus menghasilkan H.264 Annex-B, bukan MP4 container.
-- Jika ukuran audio salah, lakukan chunk atau resample menjadi 960 sample.
-- Jika latency tinggi, gunakan buffer_frames=2 atau 3.
-- Jika video gagal, instal FFmpeg dan verifikasi dengan ffmpeg -version.
-
-### Development
-
-Command yang umum dipakai:
-
-```bash
-cargo check
-cargo test --lib
-env UV_CACHE_DIR=/tmp/uv-cache uv run pytest -q
-uv run maturin develop
-uv run maturin build --release
-```
-
-Struktur project:
-
-```text
-.
-├── libs/whatsapp-rust/ # Submodule crate protokol Rust
-├── src/ # Binding Rust dan PyO3
-├── python/tryx/ # Package Python dan type stub
-├── examples/ # Contoh script otomasi
-├── docs/ # Situs dokumentasi
-└── tests/ # Test suite Python
-```
-
-### Link Penting
-
-- Dokumentasi:
-- Contoh: [`examples/`](examples/)
-- Type stub Python: [`python/tryx/`](python/tryx/)
-- Binding Rust: [`src/`](src/)
-
----
-
## License
This project is licensed under the terms of the [MIT License](LICENSE).
diff --git a/README.zh.md b/README.zh.md
new file mode 100644
index 0000000..bc51c1e
--- /dev/null
+++ b/README.zh.md
@@ -0,0 +1,248 @@
+# Tryx
+
+[](https://pypi.org/project/tryx/)
+[](https://pypi.org/project/tryx/)
+[](LICENSE)
+[](https://krypton-byte.github.io/tryx/)
+
+**语言:** [English](README.md) | 简体中文 | [Bahasa Indonesia](README.id.md)
+
+Tryx 是一个基于 Rust 和 PyO3 的 Python WhatsApp 自动化库。底层协议能力来自 `whatsapp-rust` crate,Python 侧提供更易用的异步 API,适合构建机器人、后台任务、内部工具和自动化服务。
+
+> Tryx 是一个独立项目,与 WhatsApp、Meta 或其官方产品无关。
+
+## Tryx 是什么?
+
+Tryx 帮助 Python 开发者构建 WhatsApp 自动化工具,无需直接编写 Rust 代码。核心协议逻辑在 Rust 中运行以保证性能,而公共接口则保持对 Python 应用的友好性。
+
+Tryx 适合以下场景:
+
+- 使用 Python 操作 WhatsApp Web。
+- 通过 SQLite、PostgreSQL 或 MySQL 持久化登录会话。
+- 在 `asyncio` 项目中构建机器人或自动化流程。
+- 使用联系人、群组、频道、状态、隐私、资料、标签、评论、事件和高级协议能力。
+
+## 主要特点
+
+- **Rust 核心,Python 调用** — 协议逻辑在 Rust 中运行,Python 通过 PyO3 调用。
+- **异步优先** — 适合 `asyncio` 应用。
+- **会话持久化** — 可以复用已登录的 WhatsApp 设备会话。
+- **API 覆盖面更广** — 暴露常用功能和高级功能命名空间。
+- **类型提示支持** — 提供 `.pyi` 文件,提升编辑器补全体验。
+
+## 安装
+
+```bash
+pip install tryx
+```
+
+本地开发:
+
+```bash
+git clone https://github.com/krypton-byte/tryx.git
+cd tryx
+git submodule update --init --recursive
+uv sync --group dev
+uv run maturin develop
+```
+
+## 快速开始
+
+```python
+import asyncio
+
+from tryx.backend import SqliteStore
+from tryx.client import Tryx, TryxClient
+from tryx.events import EvMessage, EvPairingQrCode
+
+backend = SqliteStore("whatsapp.db")
+app = Tryx(backend)
+
+
+@app.on(EvPairingQrCode)
+async def on_pairing_qr(_client: TryxClient, event: EvPairingQrCode) -> None:
+ print("请用 WhatsApp 扫描此二维码:")
+ print(event.code)
+
+
+@app.on(EvMessage)
+async def on_message(client: TryxClient, event: EvMessage) -> None:
+ text = (event.data.get_text() or "").strip()
+ if text.lower() == "ping":
+ await client.send_text(
+ event.data.message_info.source.chat, "pong", quoted=event
+ )
+
+
+async def main() -> None:
+ await app.run()
+
+
+asyncio.run(main())
+```
+
+## Client 命名空间
+
+运行时 `TryxClient` 对象按功能拆分为多个命名空间:
+
+| 命名空间 | 用途 |
+| --- | --- |
+| `contact` | 联系人查询和联系人相关工具。 |
+| `chat_actions` | 聊天操作,例如静音、归档、置顶、标记已读、清空聊天和保存联系人。 |
+| `groups` | 群组创建、信息、成员、邀请、入群请求和管理员设置。 |
+| `community` | 社区相关操作。 |
+| `newsletter` | 频道信息、消息、静音设置、编辑和撤回。 |
+| `status` | 状态发布、查询和相关工具。 |
+| `chatstate` | 输入中、录音中、暂停等聊天状态。 |
+| `blocking` | 拉黑和取消拉黑联系人。 |
+| `polls` | 投票创建和投票操作。 |
+| `presence` | 在线状态订阅和可用性更新。 |
+| `privacy` | 隐私设置和控制。 |
+| `profile` | 资料名称、状态文本和头像操作。 |
+| `labels` | 聊天和消息标签管理。 |
+| `comments` | 评论相关协议工具。 |
+| `events` | 事件响应和事件相关操作。 |
+| `advanced` | 生命周期等待、诊断和更底层的协议能力。 |
+| `voip` | 音频和视频通话管理。 |
+
+## 存储后端
+
+Tryx 支持三种会话存储方式:
+
+| 类型 | 后端 | 使用场景 |
+| --- | --- | --- |
+| 内置 | `SqliteStore("whatsapp.db")` | 本地开发和简单部署。 |
+| Native FFI | `FfiStoreProtocol` | 高吞吐外部存储,例如 PostgreSQL。 |
+| 纯 Python | `StoreBase` 子类 | 自定义异步存储,例如 Redis、MongoDB 或 DynamoDB。 |
+
+本地开发通常使用 SQLite 即可。如果多个 worker 或部署环境需要共享会话状态,建议使用 Native FFI 或自定义 Python 后端。
+
+## VoIP:音频和视频通话
+
+Tryx 提供基于 Rust 的 WhatsApp 音频和视频通话桥接层。协议处理、RTP/WebRTC、加密、编解码器和通话编排由 whatsapp-rust 执行;Python 通过异步 source 和 sink adapter 提供媒体数据。
+
+### 媒体契约
+
+| 媒体 | 契约 |
+| --- | --- |
+| 音频 | 单声道 signed PCM16 little-endian,16,000 Hz,每帧 960 个 sample / 1,920 字节,60 ms |
+| 视频 | 通过 `VideoFrame` 表示的 H.264 Annex-B access unit |
+
+### 最小音频 Adapter
+
+```python
+from collections.abc import AsyncIterator
+from tryx.media import AudioSink, AudioSource, validate_audio_frame
+
+
+class Microphone(AudioSource):
+ async def frames(self) -> AsyncIterator[bytes]:
+ while True:
+ frame = await read_microphone_frame()
+ yield validate_audio_frame(frame)
+
+
+class Speaker(AudioSink):
+ async def write(self, frame: bytes) -> None:
+ validate_audio_frame(frame)
+ await play_speaker_frame(frame)
+```
+
+### 一对一音频通话
+
+```python
+from tryx.types import JID
+
+
+async def start_audio_call(client, phone_number: str):
+ peer = JID(phone_number + "@s.whatsapp.net")
+ call = await client.voip.call(peer, Microphone(), Speaker())
+ print("通话已开始:", call.call_id)
+ call.set_muted(True)
+ call.set_muted(False)
+ await call.wait_ended()
+```
+
+### 视频通话
+
+```python
+from tryx.media import VideoPlayer
+
+
+async def start_video_call(client, peer, video_sink):
+ video_source = VideoPlayer(fps=15)
+ video_source.play("sample.mp4")
+ call = await client.voip.video_call(
+ peer, Microphone(), Speaker(), video_source, video_sink
+ )
+ await call.wait_ended()
+ video_source.stop()
+```
+
+### 群组通话和 Call Link
+
+```python
+call = await client.voip.group_call(
+ peers=[peer_a, peer_b],
+ audio_source=Microphone(),
+ audio_sink=Speaker(),
+)
+await call.invite_participant(peer_c)
+await call.ring_participant(peer_c)
+
+linked = await client.voip.join_call_link(
+ "https://call.whatsapp.com/your-token",
+ "audio",
+ Microphone(),
+ Speaker(),
+)
+```
+
+### Rust 原生 AudioPlayer
+
+```python
+from tryx.media import AudioPlayer
+
+player = AudioPlayer(buffer_frames=3)
+player.play("intro.mp3", mode="replace")
+call = await client.voip.call(peer, player, Speaker())
+player.pause()
+player.resume()
+player.enqueue("next.wav")
+player.skip()
+player.clear_queue()
+player.stop()
+```
+
+## 开发命令
+
+```bash
+cargo check
+cargo test --lib
+uv run pytest -q
+uv run maturin develop
+uv run maturin build --release
+```
+
+## 项目结构
+
+```text
+.
+├── libs/whatsapp-rust/ # Rust 协议 crate 子模块
+├── src/ # Rust 和 PyO3 绑定
+├── python/tryx/ # Python 包和类型存根
+├── examples/ # 示例自动化脚本
+├── docs/ # 文档站点
+└── tests/ # Python 测试套件
+```
+
+## 相关链接
+
+- 文档:
+- 示例:[`examples/`](examples/)
+- Python 类型文件:[`python/tryx/`](python/tryx/)
+- Rust 绑定代码:[`src/`](src/)
+
+## 许可证
+
+本项目基于 [MIT 许可证](LICENSE) 授权。
diff --git a/SECURITY.md b/SECURITY.md
new file mode 100644
index 0000000..121947c
--- /dev/null
+++ b/SECURITY.md
@@ -0,0 +1,63 @@
+# Security Policy
+
+## Reporting a Vulnerability
+
+If you discover a security vulnerability in Tryx, please report it
+responsibly. **Do not open a public GitHub issue for security vulnerabilities.**
+
+### How to Report
+
+1. **Email**: Send a detailed report to
+ [krypton-byte](https://github.com/krypton-byte) via GitHub's private
+ vulnerability reporting feature, or open a
+ [Security Advisory](https://github.com/krypton-byte/tryx/security/advisories/new).
+
+2. **Include**:
+ - Description of the vulnerability
+ - Steps to reproduce
+ - Potential impact assessment
+ - Any suggested fix (if available)
+
+3. **Response time**: We aim to acknowledge reports within **72 hours**.
+
+## Scope
+
+The following are considered in-scope for security reports:
+
+- **Protocol handling** — Rust core logic for Signal protocol, encryption,
+ and key exchange
+- **PyO3 bridge** — Type conversion, GIL management, and error marshaling
+ between Rust and Python
+- **Session storage** — SQLite, FFI, and Python store backends
+- **Media processing** — Upload, download, and transcoding paths
+- **Authentication** — Pairing, session persistence, and credential handling
+
+## Out of Scope
+
+- Issues in third-party dependencies (report upstream)
+- Denial of service against WhatsApp servers
+- Social engineering attacks
+- Issues requiring physical access to the target device
+
+## Disclosure Policy
+
+- We follow a **coordinated disclosure** process.
+- We will work with you to understand and address the issue before any
+ public disclosure.
+- Once a fix is released, we will publicly acknowledge the vulnerability
+ and credit the reporter (unless anonymity is requested).
+
+## Supported Versions
+
+| Version | Supported |
+| --- | --- |
+| 1.x | ✅ Active |
+| 0.x | ❌ End of life |
+
+## Best Practices for Users
+
+- Keep Tryx updated to the latest version.
+- Use environment variables or a secrets manager for sensitive configuration.
+- Restrict admin-level bot commands to authorized users.
+- Monitor `EvTemporaryBan` events for rate-limit violations.
+- Use a dedicated WhatsApp account for automation (not your personal account).
diff --git a/docs/api/backend.md b/docs/api/backend.md
index 6b9abd4..91a5645 100644
--- a/docs/api/backend.md
+++ b/docs/api/backend.md
@@ -42,17 +42,19 @@ app = Tryx(backend)
## FfiStoreProtocol
Structural typing protocol for native FFI-based storage backends. Any object
-exposing `lib_path` and `connect_string` attributes satisfies this protocol.
+exposing `lib_path` and `config_json` attributes satisfies this protocol.
```python
+import json
+
class PostgresStore:
lib_path: str # path to compiled .so
- connect_string: str
+ config_json: str
backend = PostgresStore(
lib_path="./libtryx_pg.so",
- connect_string="host=localhost dbname=tryx",
+ config_json=json.dumps({"host": "localhost", "dbname": "tryx"}),
)
```
diff --git a/docs/api/client.md b/docs/api/client.md
index f7a9eb3..39c5d16 100644
--- a/docs/api/client.md
+++ b/docs/api/client.md
@@ -7,131 +7,134 @@
---
-`TryxClient` is the runtime facade passed to every handler, and it exposes a root messaging surface plus 12 namespace clients.
+`TryxClient` is the runtime facade passed to every handler, and it exposes
+a root messaging surface plus 12 namespace clients.
-!!! tip "How To Read This Section"
- 1. Start with this gateway page.
- 2. Open the namespace page that matches your task.
- 3. Jump to [Events API](events.md) for event contracts and [Types API](types.md) for enum/value-object constraints.
+!!! tip "How to read this section"
+ 1. Start with this gateway page.
+ 2. Open the namespace page that matches your task.
+ 3. Jump to [Events API](events.md) for event contracts and
+ [Types API](types.md) for enum/value-object constraints.
## Client Topology
```mermaid
flowchart TD
- A[TryxClient] --> B[Root send/download/upload methods]
- A --> C[contact]
- A --> D[chat_actions]
- A --> E[community]
- A --> F[newsletter]
- A --> G[groups]
- A --> H[status]
- A --> I[chatstate]
- A --> J[blocking]
- A --> K[polls]
- A --> L[presence]
- A --> M[privacy]
- A --> N[profile]
+ A[TryxClient] --> B[Root send/download/upload methods]
+ A --> C[contact]
+ A --> D[chat_actions]
+ A --> E[community]
+ A --> F[newsletter]
+ A --> G[groups]
+ A --> H[status]
+ A --> I[chatstate]
+ A --> J[blocking]
+ A --> K[polls]
+ A --> L[presence]
+ A --> M[privacy]
+ A --> N[profile]
```
## Namespace Router
-
-[Contact Namespace](contact.md)
+
-Find users, check registration state, and fetch profile pictures.
+[**Contact**](contact.md){ .md-link }
+Find users, check registration state, fetch profile pictures
-[Chat Actions Namespace](chat-actions.md)
+[**Chat Actions**](chat-actions.md){ .md-link }
+Archive, pin, mute, read-state, edit/revoke/react
-Archive, pin, mute, read-state, edit/revoke/react operations.
+[**Groups**](groups.md){ .md-link }
+Group lifecycle, membership approval, participant admin
-[Community Namespace](community.md)
+[**Community**](community.md){ .md-link }
+Community creation, subgroup management
-Create and manage communities with linked subgroups.
+[**Newsletter**](newsletter.md){ .md-link }
+Channel subscription, posting, follower management
-[Newsletter Namespace](newsletter.md)
+[**Status**](status.md){ .md-link }
+Status updates with privacy controls
-Join, manage, post, and read newsletter channels.
+[**Chatstate**](chatstate.md){ .md-link }
+Typing and recording indicators
-[Groups Namespace](groups.md)
+[**Blocking**](blocking.md){ .md-link }
+Block/unblock and blocklist queries
-Group lifecycle, membership approval, and participant administration.
+[**Polls**](polls.md){ .md-link }
+Encrypted poll creation and vote aggregation
-[Status Namespace](status.md)
+[**Presence**](presence.md){ .md-link }
+Online/offline presence and subscriptions
-Post/revoke statuses and manage status audience privacy.
+[**Privacy**](privacy.md){ .md-link }
+Privacy settings and disallowed lists
-[Chatstate Namespace](chatstate.md)
+[**Profile**](profile.md){ .md-link }
+Push name, status text, profile picture
-Typing and recording state signaling.
-
-[Blocking Namespace](blocking.md)
-
-Blocklist management and identity checks.
-
-[Polls Namespace](polls.md)
+
-Poll creation, encrypted vote operations, and tally aggregation.
+---
-[Presence Namespace](presence.md)
+## Root Transport Methods
-Presence state updates and subscription controls.
+These methods stay on `TryxClient` directly because they are cross-domain
+primitives.
+
+| Method | Purpose | Typical Usage |
+|--------|---------|---------------|
+| `is_connected()` | Connection health check | Guard before sends |
+| `download_media(message)` | Download media blob | Save image/audio/document |
+| `upload_file(path, media_type)` | Upload file for later use | Status media workflows |
+| `upload(data, media_type)` | Upload in-memory bytes | Transform pipelines |
+| `send_message(to, message)` | Raw protobuf send | Advanced custom payloads |
+| `send_text(...)` | Text helper | Most command handlers |
+| `send_photo(...)` | Image helper | Replies with screenshots |
+| `send_document(...)` | File helper | Reports, exports |
+| `send_audio(...)` | Audio helper | Voice notes / TTS |
+| `send_video(...)` | Video helper | Clips, demos |
+| `send_gif(...)` | GIF helper | Motion responses |
+| `send_sticker(...)` | Sticker helper | Lightweight reactions |
+| `request_media_reupload(...)` | Recover stale media | Retry failed downloads |
+
+!!! warning "Reconnect-safe pattern"
+ Avoid caching `TryxClient` on global module state across runtime
+ restarts. Always use the `client` object injected in the current
+ handler call.
-[Privacy Namespace](privacy.md)
+---
-Privacy categories, values, and disallowed-list updates.
+## Practical Flow by Goal
-[Profile Namespace](profile.md)
+=== "Message Client"
-Push name, status text, and profile picture lifecycle.
-
+ Use root send methods + `chat_actions` + `chatstate`.
-## Root Transport Methods
+ 1. Parse incoming event.
+ 2. Signal typing with `client.chatstate.send_composing(chat)`.
+ 3. Send reply with `client.send_text(...)`.
+ 4. Optional message edit/revoke via `client.chat_actions`.
-These methods stay on `TryxClient` directly because they are cross-domain primitives.
-
-| Method | Purpose | Typical usage |
-| --- | --- | --- |
-| `is_connected() -> bool` | Connection health check | Guard before sends in long-running jobs |
-| `download_media(message) -> bytes` | Download media blob from message proto media node | Save image/audio/document payloads |
-| `upload_file(path, media_type) -> UploadResponse` | Upload file path for later message/status usage | Status media workflows |
-| `upload(data, media_type) -> UploadResponse` | Upload in-memory bytes | Transform pipelines |
-| `send_message(to, message) -> SendResult` | Raw protobuf message send | Advanced custom payloads |
-| `send_text(...) -> SendResult` | Text helper | Most command handlers |
-| `send_photo(...) -> SendResult` | Image helper | Client replies with screenshots/posters |
-| `send_document(...) -> SendResult` | File helper | Reports, exports, invoices |
-| `send_audio(...) -> SendResult` | Audio helper | Voice notes / TTS |
-| `send_video(...) -> SendResult` | Video helper | Clips, demos |
-| `send_gif(...) -> SendResult` | GIF helper | Motion responses |
-| `send_sticker(...) -> SendResult` | Sticker helper | Lightweight reactions |
-| `request_media_reupload(...) -> MediaReuploadResult` | Recover stale media references | Retry failed media downloads |
-
-!!! warning "Reconnect-safe Pattern"
- Avoid caching `TryxClient` on global module state across runtime restarts.
- Always use the `client` object injected in the current handler call.
-
-## Practical Flow By Goal
+=== "Moderation Client"
-=== "Message Client"
- Use root send methods + `chat_actions` + `chatstate`.
+ Use `groups`, `blocking`, `privacy`.
- 1. Parse incoming event.
- 2. Signal typing with `client.chatstate.send_composing(chat)`.
- 3. Send reply with `client.send_text(...)`.
- 4. Optional message edit/revoke via `client.chat_actions`.
+ 1. Resolve sender via [Types API](types.md).
+ 2. Apply participant actions (`promote`, `remove`, `approve request`).
+ 3. Enforce policy with blocklist/privacy settings.
-=== "Moderation Client"
- Use `groups`, `blocking`, `privacy`.
+=== "Broadcast/Channel Client"
- 1. Resolve sender via [Types API](types.md).
- 2. Apply participant actions (`promote`, `remove`, `approve request`).
- 3. Enforce policy with blocklist/privacy settings.
+ Use `status`, `newsletter`, `polls`.
-=== "Broadcast/Channel Client"
- Use `status`, `newsletter`, `polls`.
+ 1. Upload content or build text payload.
+ 2. Publish status/newsletter message.
+ 3. Track engagement using polls and reactions.
- 1. Upload content or build text payload.
- 2. Publish status/newsletter message.
- 3. Track engagement using polls and reactions.
+---
## Cross-References
diff --git a/docs/assets/stylesheets/extra.css b/docs/assets/stylesheets/extra.css
index bfceb63..b2b7c75 100644
--- a/docs/assets/stylesheets/extra.css
+++ b/docs/assets/stylesheets/extra.css
@@ -1,302 +1,255 @@
-@import url("https://fonts.googleapis.com/css2?family=Space+Grotesk:wght@400;500;600;700&family=JetBrains+Mono:wght@400;500;700&display=swap");
+/* ═══════════════════════════════════════════════════════════════════════════
+ Tryx Documentation — Zensical Modern Theme
+ Clean, professional design with teal accent and solid typography.
+ ═══════════════════════════════════════════════════════════════════════════ */
-/* ── Theme Variables ─────────────────────────────────────────────────────── */
+/* ── Root Variables ──────────────────────────────────────────────────── */
:root {
- --md-text-font: "Space Grotesk";
- --md-code-font: "JetBrains Mono";
- --tryx-bg-a: rgba(255, 193, 90, 0.18);
- --tryx-bg-b: rgba(39, 189, 168, 0.14);
- --tryx-hero-bg: radial-gradient(circle at 12% 18%, #c7f4e2 0%, #f6fcfa 35%, #fef6e8 100%);
- --tryx-card-bg: rgba(255, 255, 255, 0.72);
- --tryx-card-border: rgba(18, 127, 112, 0.16);
- --tryx-card-shadow: 0 10px 28px rgba(20, 35, 40, 0.08);
- --tryx-muted-border: rgba(0, 0, 0, 0.15);
- --tryx-code-bg: #f6f8fa;
- --tryx-code-border: rgba(0, 0, 0, 0.06);
-}
-
-[data-md-color-scheme="slate"] {
- --tryx-bg-a: rgba(255, 184, 76, 0.08);
- --tryx-bg-b: rgba(39, 189, 168, 0.08);
- --tryx-hero-bg: linear-gradient(135deg, rgba(40, 53, 57, 0.9), rgba(24, 37, 39, 0.9));
- --tryx-card-bg: rgba(28, 41, 45, 0.74);
- --tryx-card-border: rgba(88, 132, 125, 0.44);
- --tryx-card-shadow: 0 12px 34px rgba(0, 0, 0, 0.35);
- --tryx-muted-border: rgba(255, 255, 255, 0.24);
- --tryx-code-bg: #1e292b;
- --tryx-code-border: rgba(255, 255, 255, 0.08);
-}
-
-/* ── Global Typography ───────────────────────────────────────────────────── */
+ --tryx-radius: 8px;
+ --tryx-gap: 1rem;
+ --tryx-border: 1px solid var(--md-default-fg-color--lightest);
+}
+
+/* ── Typography ──────────────────────────────────────────────────────── */
.md-typeset h1,
.md-typeset h2,
.md-typeset h3 {
- letter-spacing: -0.02em;
+ letter-spacing: -0.025em;
+ font-weight: 600;
}
.md-typeset h2 {
- margin-top: 2rem;
- padding-bottom: 0.3rem;
- border-bottom: 1px solid var(--tryx-muted-border);
+ margin-top: 2.5rem;
+ padding-bottom: 0.35rem;
+ border-bottom: var(--tryx-border);
}
-/* ── Main Background ─────────────────────────────────────────────────────── */
-.md-main {
- background:
- radial-gradient(circle at 85% 12%, var(--tryx-bg-a), transparent 32%),
- radial-gradient(circle at 6% 80%, var(--tryx-bg-b), transparent 28%);
+.md-typeset h3 {
+ margin-top: 1.5rem;
+ font-weight: 500;
}
-/* ── Hero Section ────────────────────────────────────────────────────────── */
+/* ── Hero Section ────────────────────────────────────────────────────── */
.tryx-hero {
- border: 1px solid var(--tryx-card-border);
- border-radius: 18px;
+ border: var(--tryx-border);
+ border-radius: var(--tryx-radius);
+ padding: 2rem;
+ margin-bottom: 2rem;
background: linear-gradient(
135deg,
- rgba(13, 148, 136, 0.12) 0%,
- rgba(245, 158, 11, 0.08) 50%,
- rgba(13, 148, 136, 0.12) 100%
+ rgba(13, 148, 136, 0.04) 0%,
+ rgba(13, 148, 136, 0.01) 100%
);
- background-size: 200% 200%;
- animation: heroGradient 8s ease infinite;
- box-shadow: var(--tryx-card-shadow);
- padding: 1.5rem 1.6rem;
- margin-bottom: 1.5rem;
- position: relative;
- overflow: hidden;
}
-.tryx-hero::before {
- content: "";
- position: absolute;
- top: -50%;
- right: -20%;
- width: 300px;
- height: 300px;
- background: radial-gradient(circle, rgba(13, 148, 136, 0.15), transparent 70%);
- border-radius: 50%;
- pointer-events: none;
+[data-md-color-scheme="slate"] .tryx-hero {
+ background: linear-gradient(
+ 135deg,
+ rgba(13, 148, 136, 0.08) 0%,
+ rgba(13, 148, 136, 0.02) 100%
+ );
}
-@keyframes heroGradient {
- 0%, 100% { background-position: 0% 50%; }
- 50% { background-position: 100% 50%; }
+.tryx-hero h1 {
+ font-size: 1.8rem;
+ margin-bottom: 0.5rem;
+ font-weight: 700;
+}
+
+.tryx-hero p {
+ color: var(--md-default-fg-color--light);
+ font-size: 0.95rem;
+ max-width: 640px;
}
.tryx-pill-row {
display: flex;
flex-wrap: wrap;
- gap: 0.55rem;
- margin-top: 0.9rem;
+ gap: 0.4rem;
+ margin-top: 1rem;
}
.tryx-pill {
- border: 1px solid var(--tryx-muted-border);
+ border: var(--tryx-border);
border-radius: 999px;
- padding: 0.25rem 0.7rem;
- font-size: 0.78rem;
+ padding: 0.15rem 0.6rem;
+ font-size: 0.75rem;
font-weight: 500;
- background: rgba(255, 255, 255, 0.58);
- transition: all 0.2s ease;
+ letter-spacing: 0.02em;
+ color: var(--md-accent-fg-color);
+ background: rgba(13, 148, 136, 0.06);
}
-.tryx-pill:hover {
+[data-md-color-scheme="slate"] .tryx-pill {
background: rgba(13, 148, 136, 0.12);
- border-color: rgba(13, 148, 136, 0.3);
}
-[data-md-color-scheme="slate"] .tryx-pill {
- background: rgba(255, 255, 255, 0.06);
+/* ── Feature Grid ────────────────────────────────────────────────────── */
+.tryx-grid {
+ display: grid;
+ grid-template-columns: repeat(auto-fit, minmax(240px, 1fr));
+ gap: var(--tryx-gap);
+ margin-top: 1rem;
}
-[data-md-color-scheme="slate"] .tryx-pill:hover {
- background: rgba(13, 148, 136, 0.15);
+.tryx-card {
+ border: var(--tryx-border);
+ border-radius: var(--tryx-radius);
+ padding: 1.25rem;
+ transition: border-color 0.2s, box-shadow 0.2s;
}
-/* ── Feature Grid ────────────────────────────────────────────────────────── */
-.tryx-grid {
- display: grid;
- grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
- gap: 0.8rem;
- margin-top: 0.8rem;
+.tryx-card:hover {
+ border-color: var(--md-accent-fg-color);
+ box-shadow: 0 2px 8px rgba(0, 0, 0, 0.06);
}
-.tryx-card {
- border: 1px solid var(--tryx-card-border);
- border-radius: 14px;
- padding: 1rem;
- background: var(--tryx-card-bg);
- box-shadow: var(--tryx-card-shadow);
- transition: all 0.25s ease;
- position: relative;
- overflow: hidden;
+[data-md-color-scheme="slate"] .tryx-card:hover {
+ box-shadow: 0 2px 8px rgba(0, 0, 0, 0.3);
}
-.tryx-card::after {
- content: "";
- position: absolute;
- top: 0;
- left: 0;
- right: 0;
- height: 3px;
- background: linear-gradient(90deg, var(--md-accent-fg-color), transparent);
- opacity: 0;
- transition: opacity 0.25s ease;
+.tryx-card h3 {
+ margin-top: 0;
+ font-size: 0.95rem;
+ font-weight: 600;
}
-.tryx-card:hover {
- transform: translateY(-3px);
- box-shadow: 0 14px 36px rgba(20, 35, 40, 0.12);
+.tryx-card p {
+ margin-top: 0.3rem;
+ font-size: 0.85rem;
+ color: var(--md-default-fg-color--light);
+ line-height: 1.5;
}
-.tryx-card:hover::after {
- opacity: 1;
+/* ── Architecture Diagram ────────────────────────────────────────────── */
+.tryx-arch {
+ border: var(--tryx-border);
+ border-radius: var(--tryx-radius);
+ padding: 1rem 1.5rem;
+ margin: 1.5rem 0;
+ background: var(--md-code-bg-color);
+ overflow-x: auto;
}
-[data-md-color-scheme="slate"] .tryx-card:hover {
- box-shadow: 0 14px 36px rgba(0, 0, 0, 0.4);
+.tryx-arch pre {
+ margin: 0;
+ font-size: 0.78rem;
+ line-height: 1.6;
}
-/* ── Link Grid ───────────────────────────────────────────────────────────── */
+/* ── Link Grid ───────────────────────────────────────────────────────── */
.tryx-link-grid {
display: grid;
- grid-template-columns: repeat(auto-fit, minmax(250px, 1fr));
- gap: 0.9rem;
+ grid-template-columns: repeat(auto-fit, minmax(260px, 1fr));
+ gap: var(--tryx-gap);
}
.tryx-link-grid a {
display: block;
- border: 1px solid var(--tryx-card-border);
- border-radius: 14px;
- padding: 1rem;
+ border: var(--tryx-border);
+ border-radius: var(--tryx-radius);
+ padding: 0.8rem 1rem;
text-decoration: none;
- background: var(--tryx-card-bg);
- box-shadow: var(--tryx-card-shadow);
- transition: all 0.25s ease;
+ transition: border-color 0.2s, box-shadow 0.2s;
}
.tryx-link-grid a:hover {
- transform: translateY(-3px);
border-color: var(--md-accent-fg-color);
- box-shadow: 0 12px 32px rgba(13, 148, 136, 0.15);
+ box-shadow: 0 2px 6px rgba(0, 0, 0, 0.05);
}
-[data-md-color-scheme="slate"] .tryx-link-grid a:hover {
- box-shadow: 0 12px 32px rgba(0, 0, 0, 0.4);
+.tryx-link-grid strong {
+ display: block;
+ font-size: 0.9rem;
+ margin-bottom: 0.2rem;
}
-/* ── Keyboard Shortcuts ──────────────────────────────────────────────────── */
+.tryx-link-grid span {
+ font-size: 0.8rem;
+ color: var(--md-default-fg-color--light);
+}
+
+/* ── Keyboard Shortcuts ──────────────────────────────────────────────── */
.tryx-kbd {
- border: 1px solid var(--tryx-muted-border);
+ border: 1px solid var(--md-default-fg-color--lightest);
border-bottom-width: 2px;
- border-radius: 6px;
+ border-radius: 4px;
padding: 0.1rem 0.35rem;
font-family: var(--md-code-font);
- font-size: 0.76rem;
+ font-size: 0.78rem;
}
-/* ── Tables ──────────────────────────────────────────────────────────────── */
+/* ── Tables ──────────────────────────────────────────────────────────── */
.md-typeset table:not([class]) {
- border-radius: 10px;
+ border-radius: var(--tryx-radius);
overflow: hidden;
- box-shadow: 0 2px 8px rgba(0, 0, 0, 0.04);
+ font-size: 0.85rem;
}
.md-typeset table:not([class]) th {
- background: linear-gradient(135deg, rgba(13, 148, 136, 0.08), rgba(13, 148, 136, 0.04));
font-weight: 600;
+ background: var(--md-code-bg-color);
}
-[data-md-color-scheme="slate"] .md-typeset table:not([class]) th {
- background: linear-gradient(135deg, rgba(13, 148, 136, 0.15), rgba(13, 148, 136, 0.08));
-}
-
-.md-typeset table:not([class]) tr:hover {
- background: rgba(13, 148, 136, 0.03);
-}
-
-[data-md-color-scheme="slate"] .md-typeset table:not([class]) tr:hover {
- background: rgba(13, 148, 136, 0.08);
-}
-
-/* ── Admonitions ─────────────────────────────────────────────────────────── */
-.md-typeset .admonition {
- border-radius: 12px;
- border-left-width: 4px;
- box-shadow: 0 2px 8px rgba(0, 0, 0, 0.04);
+.md-typeset table:not([class]) td {
+ vertical-align: top;
}
+/* ── Admonitions ─────────────────────────────────────────────────────── */
+.md-typeset .admonition,
.md-typeset details.admonition {
- border-radius: 12px;
+ border-radius: var(--tryx-radius);
+ border-left-width: 3px;
}
.md-typeset .admonition-title {
- border-radius: 12px 12px 0 0;
+ border-radius: var(--tryx-radius) var(--tryx-radius) 0 0;
font-weight: 600;
+ font-size: 0.88rem;
}
-/* ── Code Blocks ─────────────────────────────────────────────────────────── */
+/* ── Code Blocks ─────────────────────────────────────────────────────── */
.md-typeset pre {
- border-radius: 12px;
- border: 1px solid var(--tryx-code-border);
- box-shadow: 0 2px 8px rgba(0, 0, 0, 0.04);
-}
-
-.md-typeset pre > code {
- border-radius: 12px;
+ border-radius: var(--tryx-radius);
}
.md-typeset code:not(pre code) {
- border-radius: 6px;
- padding: 0.15rem 0.4rem;
- font-size: 0.85em;
- border: 1px solid var(--tryx-code-border);
- background: var(--tryx-code-bg);
+ border-radius: 4px;
+ padding: 0.12rem 0.35rem;
+ font-size: 0.84em;
}
-/* Code block line highlighting */
.md-typeset .highlight .hll {
- background: rgba(13, 148, 136, 0.12);
- border-left: 3px solid var(--md-accent-fg-color);
+ background: rgba(13, 148, 136, 0.06);
+ border-left: 2px solid var(--md-accent-fg-color);
margin-left: -0.4rem;
padding-left: 0.4rem;
}
-/* ── Navigation Enhancements ─────────────────────────────────────────────── */
-.md-header {
- backdrop-filter: blur(12px);
- -webkit-backdrop-filter: blur(12px);
-}
-
+/* ── Navigation ──────────────────────────────────────────────────────── */
.md-nav__link {
- transition: color 0.15s ease, padding-left 0.15s ease;
-}
-
-.md-nav__link:hover {
- padding-left: 0.2rem;
+ transition: color 0.15s ease;
}
-/* Active nav item indicator */
.md-nav__item--active > .md-nav__link {
font-weight: 600;
- color: var(--md-accent-fg-color);
}
-/* ── Search Enhancement ──────────────────────────────────────────────────── */
+/* ── Search ──────────────────────────────────────────────────────────── */
.md-search-result__link {
- border-radius: 10px;
+ border-radius: var(--tryx-radius);
transition: background 0.15s ease;
}
.md-search-result__link:hover {
- background: rgba(13, 148, 136, 0.06);
+ background: rgba(13, 148, 136, 0.04);
}
.md-search-result__teaser {
font-size: 0.82rem;
}
-/* ── Focus States ────────────────────────────────────────────────────────── */
+/* ── Focus States ────────────────────────────────────────────────────── */
a:focus-visible,
button:focus-visible,
input:focus-visible,
@@ -306,69 +259,40 @@ summary:focus-visible {
border-radius: 4px;
}
-/* ── Animations ──────────────────────────────────────────────────────────── */
-.tryx-fade-up {
- animation: tryxFadeUp 520ms ease-out both;
-}
-
-@keyframes tryxFadeUp {
- from {
- opacity: 0;
- transform: translateY(12px);
- }
- to {
- opacity: 1;
- transform: translateY(0);
- }
-}
-
-.tryx-fade-in {
- animation: tryxFadeIn 600ms ease-out both;
-}
-
-@keyframes tryxFadeIn {
- from { opacity: 0; }
- to { opacity: 1; }
-}
-
-/* Staggered card animations */
-.tryx-grid .tryx-card:nth-child(1) { animation-delay: 0ms; }
-.tryx-grid .tryx-card:nth-child(2) { animation-delay: 80ms; }
-.tryx-grid .tryx-card:nth-child(3) { animation-delay: 160ms; }
-.tryx-grid .tryx-card:nth-child(4) { animation-delay: 240ms; }
-.tryx-grid .tryx-card { animation: tryxFadeUp 520ms ease-out both; }
-
-/* ── Progress Bar (instant navigation) ───────────────────────────────────── */
+/* ── Progress Bar ────────────────────────────────────────────────────── */
.md-vestigial__progress {
- height: 3px;
- background: linear-gradient(90deg, var(--md-accent-fg-color), rgba(13, 148, 136, 0.6));
+ height: 2px;
}
-/* ── Footer Navigation ───────────────────────────────────────────────────── */
+/* ── Footer ──────────────────────────────────────────────────────────── */
.md-footer {
- border-top: 1px solid var(--tryx-muted-border);
-}
-
-.md-footer__link {
- transition: color 0.15s ease;
+ border-top: var(--tryx-border);
}
-/* ── Scrollbar Styling ───────────────────────────────────────────────────── */
+/* ── Scrollbar ───────────────────────────────────────────────────────── */
.md-sidebar--primary .md-nav__scrollwrap {
scrollbar-width: thin;
- scrollbar-color: var(--tryx-muted-border) transparent;
}
-.md-sidebar--primary .md-nav__scrollwrap::-webkit-scrollbar {
- width: 4px;
+/* ── Content Tabs ────────────────────────────────────────────────────── */
+.md-typeset .tabbed-set > .tabbed-labels {
+ border-bottom: var(--tryx-border);
}
-.md-sidebar--primary .md-nav__scrollwrap::-webkit-scrollbar-thumb {
- background: var(--tryx-muted-border);
- border-radius: 4px;
+.md-typeset .tabbed-set > .tabbed-labels > label {
+ font-weight: 500;
+}
+
+/* ── Inline Code ─────────────────────────────────────────────────────── */
+.md-typeset code {
+ border-color: rgba(13, 148, 136, 0.15);
}
-/* ── Print Styles ────────────────────────────────────────────────────────── */
+[data-md-color-scheme="slate"] .md-typeset code {
+ border-color: rgba(13, 148, 136, 0.25);
+}
+
+/* ── Print ───────────────────────────────────────────────────────────── */
@media print {
.md-sidebar,
.md-header,
@@ -380,9 +304,4 @@ summary:focus-visible {
margin: 0;
max-width: 100%;
}
-
- .md-typeset .admonition {
- border: 1px solid #ccc;
- box-shadow: none;
- }
}
diff --git a/docs/core-concepts/architecture.md b/docs/core-concepts/architecture.md
index d5b516c..8e262bc 100644
--- a/docs/core-concepts/architecture.md
+++ b/docs/core-concepts/architecture.md
@@ -1,83 +1,208 @@
# Architecture
-Tryx intentionally splits protocol-heavy runtime responsibilities and Python-facing ergonomics.
+Tryx splits performance-sensitive protocol work (Rust) from application
+ergonomics (Python). This gives you WhatsApp protocol handling at native
+speed while keeping your bot logic simple and typed.
## Layered Design
-Tryx uses a two-layer model:
-
-1. Rust core layer
-2. Python API layer
+```
+┌──────────────────────────────────────────────────────┐
+│ Python Application │
+│ (handlers, business logic, bots) │
+├──────────────────────────────────────────────────────┤
+│ Python API Layer │
+│ TryxClient, namespace clients, @app.on() │
+│ (async methods, typed stubs) │
+├──────────────────────────────────────────────────────┤
+│ PyO3 Bridge │
+│ GIL management, type conversion, error marshal │
+├──────────────────────────────────────────────────────┤
+│ Rust Core │
+│ Protocol parsing, Signal crypto, media, transport │
+│ (Noise, protobuf, tokio) │
+└──────────────────────────────────────────────────────┘
+```
### Rust Core Layer
-The Rust side handles:
+The Rust side handles everything performance-sensitive:
-- protocol parsing
-- transport/runtime state
-- heavy event transformations
-- media and protobuf conversions
+| Module | Responsibility | Source |
+|--------|---------------|--------|
+| `src/clients/` | Client method implementations | `src/clients/tryx.rs`, `src/clients/groups.rs`, etc. |
+| `src/events/` | Event dispatcher and event class definitions | `src/events/dispatcher.rs` |
+| `src/types.rs` | Shared data classes (`JID`, `MessageInfo`, etc.) | `src/types.rs` |
+| `src/backend/` | Storage backend bridge (SQLite, FFI, Python) | `src/backend/` |
-Additional responsibilities:
+Key Rust capabilities:
-- connection lifecycle and stream state
-- event normalization and serialization boundaries
-- low-level protocol node handling
+- **Protocol parsing** — WhatsApp binary protocol, protobuf messages, Noise handshake
+- **Transport** — WebSocket connection, stream management, reconnection
+- **Crypto** — Signal protocol (Double Ratchet, X3DH), end-to-end encryption
+- **Media** — Upload/download, transcoding, thumbnail generation
+- **Event normalization** — Raw protocol events → typed Python objects
### Python API Layer
-The Python side provides:
+The Python side provides ergonomics:
-- ergonomic async API
-- namespace-based clients (`contact`, `groups`, `privacy`, etc.)
-- typed stubs for IDE and static analysis
-- callback registration via decorators
+- **Namespace clients** — `client.groups`, `client.privacy`, `client.newsletter`, etc.
+- **Event handlers** — Decorator-based callback registration via `@app.on(EventClass)`
+- **Typed stubs** — `.pyi` files for IDE intelligence and static analysis
+- **Storage backends** — SQLite (built-in), FFI (Postgres, etc.), pure Python
-Additional responsibilities:
+### PyO3 Bridge
-- namespace-driven domain APIs (`client.groups`, `client.privacy`, etc.)
-- handler orchestration and business logic composition
-- integration with third-party systems (DB, queues, APIs)
+The bridge layer handles type conversion between Python and Rust:
-## Why This Design Works
+- **GIL management** — Uses `Python::attach()` (PyO3 0.28+) for lightweight GIL acquisition
+- **Error marshaling** — Rust panics → Python `RuntimeError` / `panic::PanicException`
+- **Async bridging** — `pyo3-async-runtimes` connects tokio to Python asyncio
+- **Type conversion** — `JID`, `MessageProto`, `Node`, etc. converted via PyO3 extractors
-- Performance-sensitive logic stays in Rust.
-- Product logic stays simple in Python.
-- Event payloads are structured classes, not ad-hoc dicts.
+---
-## Runtime Boundary Principle
+## Data Flow
-!!! tip
- Keep protocol assumptions in Rust-backed typed models and keep product/business policy in Python handlers.
+### Sending a Message
-## Data Flow
+```mermaid
+sequenceDiagram
+ participant User as Python Code
+ participant Client as TryxClient
+ participant Bridge as PyO3 Bridge
+ participant Rust as Rust Core
+ participant WA as WhatsApp
+
+ User->>Client: await client.send_text(jid, "hello")
+ Client->>Bridge: Call Rust method
+ Bridge->>Rust: Build protobuf message
+ Rust->>Rust: Encrypt with Signal protocol
+ Rust->>WA: Send over WebSocket
+ WA-->>Rust: Server ACK
+ Rust-->>Bridge: SendResult
+ Bridge-->>User: SendResult
+```
+
+### Receiving an Event
+
+```mermaid
+sequenceDiagram
+ participant WA as WhatsApp
+ participant Rust as Rust Core
+ participant Bridge as PyO3 Bridge
+ participant Dispatcher as Event Dispatcher
+ participant Handler as Python Handler
+
+ WA->>Rust: Raw protocol event
+ Rust->>Rust: Parse & normalize
+ Rust->>Bridge: Typed event object
+ Bridge->>Dispatcher: Route to handlers
+ Dispatcher->>Handler: Call registered handler
+ Handler-->>Dispatcher: Process event
+```
+
+---
+
+## Storage Architecture
+
+Tryx uses a pluggable storage backend for Signal protocol state:
```mermaid
-flowchart LR
- A[WhatsApp Stream] --> B[Rust Runtime]
- B --> C[Event Conversion]
- C --> D[PyO3 Classes]
- D --> E[Python Handler]
- E --> F[TryxClient API Calls]
- F --> B
+graph TD
+ A[TryxClient] --> B{Backend Type}
+ B -->|Default| C[SqliteStore]
+ B -->|FFI| D[FfiStore]
+ B -->|Custom| E[StoreBase]
+ D --> F[.so/.dylib]
+ F --> G[Postgres, Redis, etc.]
+ C --> H[whatsapp.db]
```
+### Backend Selection
+
+| Backend | Use Case | How It Works |
+|---------|----------|--------------|
+| `SqliteStore` | Default, zero-config | Built-in SQLite with WAL mode |
+| `FfiStore` | High-performance | C ABI shared library loaded via `libloading` |
+| `StoreBase` | Custom async | Pure Python, implement abstract methods |
+
+The FFI backend is unique: Python never loads the `.so` directly. Python
+only resolves the path and stores connection config — Tryx's Rust runtime
+does the actual FFI loading.
+
+---
+
## Module Map
-- `src/lib.rs`: submodule registration and class exports
-- `src/clients/*`: client methods exposed to Python
-- `src/events/*`: event classes and dispatcher
-- `src/types.rs`: shared data classes (`JID`, `MessageInfo`, etc.)
-- `src/wacore/*`: low-level node and stanza models
-- `python/tryx/*.py`: runtime re-export wrappers
-- `python/tryx/*.pyi`: typed API contracts
+| Path | Purpose |
+|------|---------|
+| `src/lib.rs` | Submodule registration and class exports |
+| `src/clients/*.rs` | Client method implementations |
+| `src/events/*` | Event classes and dispatcher |
+| `src/types.rs` | Shared data classes |
+| `src/wacore/*` | Low-level protocol models |
+| `python/tryx/*.py` | Runtime re-export wrappers |
+| `python/tryx/*.pyi` | Typed API contracts |
+
+---
+
+## Design Principles
+
+### Protocol in Rust, Logic in Python
+
+Keep protocol assumptions in Rust-backed typed models. Keep business policy
+in Python handlers. This separation means:
+
+- Protocol changes don't break your Python code
+- Business logic changes don't require recompilation
+- Performance-sensitive paths are always native
+
+### Typed Contracts
+
+Every Python-facing API has a `.pyi` stub file. This gives you:
+
+- Editor autocomplete and type hints
+- Static analysis with mypy/pyright
+- Clear API documentation
+- Runtime compatibility checking
+
+### Event-Driven Architecture
+
+All WhatsApp interactions flow through typed events:
+
+```python
+from tryx.events import EvMessage
+
+@app.on(EvMessage)
+async def handle_message(client, event: EvMessage):
+ # event.sender, event.text, event.media, etc.
+ pass
+```
+
+Events are structured classes, not ad-hoc dicts. This means:
+
+- Guaranteed fields with correct types
+- IDE support for event properties
+- Clear documentation of what data is available
+
+### Pluggable Storage
+
+Storage is decoupled from the protocol engine:
+
+- SQLite for development and single-instance deployments
+- FFI shared libraries for high-throughput production
+- Pure Python for exotic backends or rapid prototyping
-## Practical Implication
+All three tiers implement the same underlying Rust trait, so switching
+backends requires only a change in the `Tryx()` constructor.
-You can safely treat Python classes as stable contracts while trusting Rust internals for throughput and protocol-heavy work.
+---
-## Related Docs
+## Related
-- [Event Model](event-model.md)
-- [Type System](type-system.md)
-- [Client API Gateway](../api/client.md)
+- [Event Model](event-model.md) — detailed event type reference
+- [Type System](type-system.md) — shared data classes
+- [Storage Backends](storage-backends.md) — backend comparison
+- [Client API Gateway](../api/client.md) — namespace client reference
diff --git a/docs/core-concepts/event-model.md b/docs/core-concepts/event-model.md
index ed7bc08..9b2ea53 100644
--- a/docs/core-concepts/event-model.md
+++ b/docs/core-concepts/event-model.md
@@ -1,67 +1,265 @@
# Event Model
-Tryx emits typed event classes from `tryx.events`. Every event has a known payload shape.
+Tryx uses an event-driven architecture. All WhatsApp interactions — messages,
+presence changes, group updates, contact syncs — flow through typed event
+classes. You register handlers for specific event types, and Tryx dispatches
+them as they arrive.
-## Dispatch Contract
+## How Events Work
-Handlers are registered by event class and receive `(client, event)`.
+```
+WhatsApp Stream → Rust Parser → Event Dispatcher → Your Handlers
+```
-!!! note
- Event flow is asynchronous and stateful. Design handlers for retries and replay-like conditions.
+1. **Raw protocol data** arrives over WebSocket
+2. **Rust parser** normalizes it into typed event objects
+3. **Event dispatcher** routes events to registered handlers
+4. **Your handlers** process the event and respond
## Handler Registration
+Handlers are registered using the `@app.on()` decorator:
+
```python
+from tryx.client import Tryx
+from tryx.events import EvMessage, EvConnected, EvDisconnected
+
+app = Tryx(store)
+
+@app.on(EvConnected)
+async def on_connected(client):
+ print("Connected to WhatsApp!")
+
@app.on(EvMessage)
-async def on_message(client: TryxClient, event: EvMessage) -> None: ...
+async def on_message(client, event):
+ print(f"Message from {event.sender}: {event.text}")
+
+@app.on(EvDisconnected)
+async def on_disconnected(client):
+ print("Disconnected, will reconnect...")
+```
+
+### Handler Signature
+
+Every handler receives two arguments:
+
+```python
+async def handler(client: TryxClient, event: EventType) -> None:
+ ...
```
-## Event Categories
+- `client` — The `TryxClient` instance, ready to send messages and query state
+- `event` — The typed event object with all relevant data
+
+### Multiple Handlers
+
+You can register multiple handlers for the same event type. Both will be
+called for each event:
+
+```python
+@app.on(EvMessage)
+async def log_message(client, event):
+ logger.info(f"Received: {event.message_id}")
+
+@app.on(EvMessage)
+async def process_message(client, event):
+ if event.text:
+ await handle_text(client, event)
+```
+
+---
+
+## Event Taxonomy
+
+### Lifecycle Events
+
+Track the client connection lifecycle:
+
+| Event | When | Use Case |
+|-------|------|----------|
+| `EvConnected` | WebSocket connected | Start sending messages |
+| `EvDisconnected` | WebSocket lost | Pause non-critical operations |
+| `EvLoggedOut` | Session invalidated | Re-authenticate |
+| `EvStreamReplaced` | Another login replaced you | Check for duplicate sessions |
+| `EvClientOutDated` | Client needs update | Prompt for upgrade |
+| `EvReady` | Fully initialized | Safe to query state |
+
+### Pairing Events
+
+Track the phone pairing process:
+
+| Event | When | Use Case |
+|-------|------|----------|
+| `EvPairingQrCode` | QR code generated | Display QR to user |
+| `EvPairingCode` | Pairing code generated | Display code to user |
+| `EvPairSuccess` | Pairing completed | Proceed with bot logic |
+| `EvPairError` | Pairing failed | Show error, retry |
+
+### Messaging Events
+
+Track message flow:
+
+| Event | When | Use Case |
+|-------|------|----------|
+| `EvMessage` | Message received | Process incoming messages |
+| `EvReceipt` | Delivery/read receipt | Track message status |
+| `EvUndecryptableMessage` | Decryption failed | Log and request re-send |
+| `EvNotification` | Server notification | Handle system messages |
+
+### Chat Action Sync Events
+
+Track chat state changes (synced from other devices):
+
+| Event | When | Use Case |
+|-------|------|----------|
+| `EvPinUpdate` | Chat pinned/unpinned | Update local state |
+| `EvMuteUpdate` | Chat muted/unmuted | Adjust notifications |
+| `EvArchiveUpdate` | Chat archived/unarchived | Update UI |
+| `EvMarkChatAsReadUpdate` | Chat read status changed | Update unread count |
+| `EvDeleteChatUpdate` | Chat deleted | Clean up local data |
+| `EvDeleteMessageForMeUpdate` | Message deleted locally | Remove from cache |
+| `EvStarUpdate` | Message starred/unstarred | Update star state |
+| `EvChatArchive` | Chat archived | Update UI |
+
+### Presence and Profile Events
-- Lifecycle: `EvConnected`, `EvDisconnected`, `EvLoggedOut`
-- Pairing: `EvPairingQrCode`, `EvPairingCode`, `EvPairSuccess`, `EvPairError`
-- Messaging: `EvMessage`, `EvReceipt`, `EvUndecryptableMessage`
-- Chat actions sync: archive, mute, mark-read, delete-chat, delete-for-me
-- Presence and profile: chat presence, availability, picture, push-name, about
-- Contact and device sync: contact update, device list update
-- Group and newsletter updates
+Track user presence and profile changes:
-For full taxonomy, see [Events API](../api/events.md).
+| Event | When | Use Case |
+|-------|------|----------|
+| `EvPresence` | User typing/recording | Show typing indicator |
+| `EvChatPresence` | Chat presence changed | Update UI |
+| `EvAvailability` | Online/offline status | Track availability |
+| `EvPicture` | Profile picture changed | Update avatar cache |
+| `EvPushName` | Display name changed | Update contact info |
+| `EvAbout` | Status text changed | Update status display |
+
+### Contact and Device Sync Events
+
+Track contact and device state:
+
+| Event | When | Use Case |
+|-------|------|----------|
+| `EvContactUpdate` | Contact info changed | Update contact list |
+| `EvContactNumberChanged` | Phone number changed | Update contact mapping |
+| `EvDeviceListUpdate` | Device list changed | Re-key encryption |
+| `EvGroupUpdate` | Group metadata changed | Update group info |
+| `EvGroupInfoUpdate` | Group info refreshed | Sync group state |
+| `EvJoinedGroup` | Bot joined a group | Initialize group state |
+| `EvNewsletterUpdate` | Newsletter changed | Update channel info |
+| `EvNewsletterLiveUpdate` | Live update received | Process live content |
+
+### Business Events
+
+| Event | When | Use Case |
+|-------|------|----------|
+| `EvBusinessStatusUpdate` | Business profile changed | Update business info |
+
+---
## Event Payload Pattern
Many events expose a lazy `data` property:
-- `event.data` returns a rich typed object
-- conversion from Rust internals happens on demand
-- repeated access often reuses cached object instances
+```python
+@app.on(EvMessage)
+async def handle(client, event):
+ # Access raw data (lazy-loaded from Rust)
+ data = event.data
+
+ # Repeated access reuses cached object
+ same_data = event.data # No re-parsing
+```
-## Important Reliability Notes
+The `data` property:
-- Callback execution order is event-driven; do not assume strict timing between different event classes.
-- Keep handlers short and non-blocking.
-- For expensive work, queue to background tasks.
+- Returns a rich typed object
+- Converts from Rust internals on demand
+- Caches the result for subsequent access
-!!! warning "Ordering assumptions"
- Do not assume strict global ordering between all event types. Build idempotent handlers using message identifiers.
+---
-## Best Practices
+## Reliability Considerations
+
+### Handler Execution
+
+- Handlers are **async** and run on the tokio runtime
+- Execution order is **event-driven**, not sequential
+- Do not assume strict timing between different event types
+
+### Error Handling
+
+```python
+@app.on(EvMessage)
+async def safe_handler(client, event):
+ try:
+ await process_message(client, event)
+ except Exception as e:
+ logger.error(f"Handler failed: {e}")
+ # Don't crash — Tryx will continue dispatching
+```
-1. Validate optional fields before use.
-2. Prefer exact event classes over broad dynamic checks.
-3. Log enough metadata (`jid`, `message_id`, timestamps) for debugging.
-4. Treat undecryptable and sync events as normal runtime states, not always errors.
+!!! warning "Handler crashes"
+ If a handler raises an exception, Tryx catches it and continues
+ dispatching other events. However, the error is logged and may affect
+ your bot's reliability.
+
+### Idempotency
+
+Build idempotent handlers using message identifiers:
+
+```python
+processed = set()
+
+@app.on(EvMessage)
+async def idempotent_handler(client, event):
+ message_id = event.data.message_info.id
+ if message_id in processed:
+ return
+ processed.add(message_id)
+ await process_message(client, event)
+```
+
+### Ordering
+
+Do not assume strict global ordering between all event types. For example:
+
+- An `EvMessage` may arrive before its `EvReceipt`
+- Group updates may arrive out of order
+- Presence events may be stale
+
+Design handlers to handle these cases gracefully.
+
+---
## Event-to-Action Mapping
-| Event Example | Typical Namespace Follow-up |
-| --- | --- |
-| `EvMessage` | root send methods, [Chat Actions](../api/chat-actions.md) |
-| `EvGroupUpdate` | [Groups](../api/groups.md), [Community](../api/community.md) |
-| `EvPresence` | [Presence](../api/presence.md), [Chatstate](../api/chatstate.md) |
-| `EvNewsletterLiveUpdate` | [Newsletter](../api/newsletter.md), [Polls](../api/polls.md) |
+| Event | Typical Follow-up | Namespace |
+|-------|-------------------|-----------|
+| `EvMessage` | Reply, forward, react | Root send methods |
+| `EvGroupUpdate` | Update local group state | [Groups](../api/groups.md) |
+| `EvPresence` | Show typing indicator | [Presence](../api/presence.md) |
+| `EvNewsletterLiveUpdate` | Process live updates | [Newsletter](../api/newsletter.md) |
+| `EvContactUpdate` | Update contact list | [Contact](../api/contact.md) |
+| `EvChatArchive` | Update UI state | [Chat Actions](../api/chat-actions.md) |
+| `EvReceipt` | Track delivery status | Root send methods |
+| `EvPicture` | Update avatar cache | [Contact](../api/contact.md) |
+
+---
+
+## Best Practices
+
+1. **Keep handlers short** — Queue expensive work to background tasks
+2. **Validate optional fields** — Check `event.text`, `event.media`, etc. before use
+3. **Log metadata** — Include `jid`, `message_id`, timestamps for debugging
+4. **Handle errors gracefully** — Don't let one bad event crash your bot
+5. **Use typed events** — Prefer specific event classes over broad dynamic checks
+6. **Treat undecryptable events as normal** — They happen during key rotation
+
+---
-## Related Docs
+## Related
-- [Client API Gateway](../api/client.md)
-- [Reliability](../operations/reliability.md)
+- [Client API Gateway](../api/client.md) — namespace client reference
+- [Reliability](../operations/reliability.md) — production error handling
+- [Events API](../api/events.md) — full event type reference
diff --git a/docs/core-concepts/storage-backends.md b/docs/core-concepts/storage-backends.md
index afdce72..efc2f9a 100644
--- a/docs/core-concepts/storage-backends.md
+++ b/docs/core-concepts/storage-backends.md
@@ -69,16 +69,18 @@ sequenceDiagram
### Usage
-Any object with `lib_path` and `connect_string` attributes is detected as an FFI backend:
+Any object with `lib_path` and `config_json` attributes is detected as an FFI backend:
```python
+import json
+
from tryx.client import Tryx
# tryx-store-postgres exposes this interface
class PostgresStore:
lib_path = "./libtryx_pg.so"
- connect_string = "host=localhost dbname=tryx"
+ config_json = json.dumps({"host": "localhost", "dbname": "tryx"})
app = Tryx(PostgresStore())
diff --git a/docs/core-concepts/type-system.md b/docs/core-concepts/type-system.md
index 650f040..5c8749b 100644
--- a/docs/core-concepts/type-system.md
+++ b/docs/core-concepts/type-system.md
@@ -1,73 +1,320 @@
# Type System
-Tryx ships with `.pyi` stubs and `py.typed`, enabling full editor and type-checker support.
+Tryx ships with complete `.pyi` stub files and a `py.typed` marker,
+enabling full editor intelligence, static analysis, and API discoverability.
!!! tip "Why this matters"
- Typed contracts make event handling safer, API discovery faster, and refactors less risky.
+ Typed contracts make event handling safer, API discovery faster, and
+ refactors less risky. You get autocomplete for every method, parameter,
+ and return type.
+
+## How Typing Works
+
+Tryx uses a two-layer typing approach:
+
+1. **Runtime** — PyO3 generates Python classes from Rust structs
+2. **Static** — `.pyi` stub files describe the exact API surface
+
+```python
+from tryx.client import Tryx, TryxClient
+from tryx.types import JID, SendResult
+
+# IDE shows: JID.whatsapp(phone: str) -> JID
+jid = JID.whatsapp("5599800001")
+
+# IDE shows: async def send_text(to: JID, text: str, ...) -> SendResult
+result = await client.send_text(jid, "Hello!")
+
+# IDE shows: result.message_id: str
+print(result.message_id)
+```
+
+---
## Core Types
-- `JID`: canonical address object
-- `MessageSource`: message origin and routing context
-- `MessageInfo`: metadata for message identity and attributes
-- `UploadResponse`: media upload output
-- `SendResult`: send operation result
-- `MediaReuploadResult`: media retry result
-- `ProfilePicture`: profile picture metadata
+### JID — WhatsApp Address
+
+The fundamental address type for all WhatsApp entities:
+
+```python
+from tryx.types import JID
+
+# Personal account
+jid = JID.whatsapp("5599800001")
+
+# Group
+group = JID.whatsapp_group("120363000000000000@g.us")
+
+# Newsletter
+newsletter = JID.whatsapp_newsletter("120363000000000000@newsletter")
+```
+
+### MessageInfo — Message Metadata
+
+Contains identity, routing, and attribute information:
+
+```python
+from tryx.events import EvMessage
+
+@app.on(EvMessage)
+async def handle(client, event):
+ info = event.data.message_info
+
+ # Message identity
+ message_id = info.message_id
+ timestamp = info.timestamp
+
+ # Routing
+ sender = info.source.sender # JID
+ chat = info.source.chat # JID
+ participant = info.source.participant # JID | None
+
+ # Attributes
+ msg_type = info.message_type # "text", "image", etc.
+ is_from_me = info.is_from_me
+```
+
+### SendResult — Send Operation Output
+
+Returned by all send methods:
+
+```python
+result = await client.send_text(jid, "Hello")
+
+result.message_id # str: unique message ID
+result.timestamp # int: server timestamp
+result.key # MessageKey: message key for tracking
+```
+
+### MediaReuploadResult — Media Retry Output
+
+Returned by `request_media_reupload`:
+
+```python
+result = await client.request_media_reupload(
+ message_id="3EB0...",
+ chat_jid=jid,
+ media_key=b"...",
+)
+
+result.url # str: re-uploaded media URL
+result.direct_path # str: direct download path
+```
+
+### UploadResponse — Media Upload Output
+
+Returned by media upload methods:
+
+```python
+upload = await client.upload_photo(photo_bytes, jid)
+
+upload.url # str: media URL
+upload.direct_path # str: direct path
+upload.media_key # bytes: encryption key
+upload.file_length # int: file size
+```
+
+### ProfilePicture — Profile Image Metadata
+
+```python
+picture = await client.contact.get_profile_picture(jid, preview=False)
+
+picture.url # str: image URL
+picture.direct_path # str: direct download path
+picture.file_length # int: file size
+picture.mimetype # str: image MIME type
+```
+
+---
## Event Types
-Event classes define explicit payload contracts:
+Every event class has a defined payload contract:
-- no guessing with nested dict keys
-- discoverable through IDE autocomplete
-- easier static checks in large projects
+```python
+from tryx.events import (
+ EvMessage, # Incoming message
+ EvConnected, # WebSocket connected
+ EvDisconnected, # WebSocket lost
+ EvLoggedOut, # Session invalidated
+ EvPresence, # User typing/recording
+ EvGroupUpdate, # Group metadata changed
+ EvReceipt, # Delivery/read receipt
+)
-## Enum-heavy Domains
+@app.on(EvMessage)
+async def handle(client, event: EvMessage):
+ # event.sender: JID
+ # event.text: str | None
+ # event.media: MediaInfo | None
+ # event.message_id: str
+ # event.timestamp: int
+ ...
+```
-Key domains with enum-like constraints:
+No guessing with nested dict keys — everything is discoverable through
+IDE autocomplete.
-- privacy and disallowed-list management
-- status audience control
-- chatstate and presence signaling
-- group/community policy modes
+---
## Enum-Style Classes
-Several Rust enums are exposed as Python classes with fixed attributes (for example status/privacy and event reason classes).
+Several Rust enums are exposed as Python classes with fixed attributes:
-## Suggested Typing Workflow
+### Privacy
-1. Keep handler function signatures explicit.
-2. Annotate helper functions returning event-derived data.
-3. Run static analysis in CI (mypy or pyright).
+```python
+from tryx.types import PrivacyCategory, PrivacyValue
+
+# Categories
+PrivacyCategory.LastSeen
+PrivacyCategory.ProfilePhoto
+PrivacyCategory.Status
+PrivacyCategory.ReadReceipts
+PrivacyCategory.Groups
+
+# Values
+PrivacyValue.Everyone
+PrivacyValue.Contacts
+PrivacyValue.Nobody
+```
+
+### Status
+
+```python
+from tryx.types import StatusPrivacySetting
+
+StatusPrivacySetting.Contacts
+StatusPrivacySetting.AllowList
+StatusPrivacySetting.DenyList
+```
+
+### Chatstate
+
+```python
+from tryx.types import ChatStateType
+
+ChatStateType.Composing # User is typing
+ChatStateType.Recording # User is recording audio
+ChatStateType.Paused # User stopped typing
+```
+
+### Presence
+
+```python
+from tryx.types import PresenceStatus
+
+PresenceStatus.Available
+PresenceStatus.Unavailable
+```
+
+### Group Policies
+
+```python
+from tryx.types import MembershipApprovalMode, MemberAddMode, MemberLinkMode
+
+MembershipApprovalMode.On
+MembershipApprovalMode.Off
+
+MemberAddMode.AdminOnly
+MemberAddMode.AllMembers
+
+MemberLinkMode.Admin
+MemberLinkMode.AllMembers
+```
+
+### Newsletter
+
+```python
+from tryx.types import NewsletterVerification, NewsletterState, NewsletterRole
+
+NewsletterVerification.Verified
+NewsletterVerification.Unverified
+
+NewsletterState.Active
+NewsletterState.Suspended
+NewsletterState.Geosuspended
+
+NewsletterRole.Owner
+NewsletterRole.Admin
+NewsletterRole.Subscriber
+NewsletterRole.Guest
+```
+
+### Events
+
+```python
+from tryx.types import EventResponse
+
+EventResponse.Going
+EventResponse.NotGoing
+EventResponse.Maybe
+```
+
+---
## Type Boundary Pattern
+Keep type boundaries clean between layers:
+
```python
from tryx.events import EvMessage
from tryx.types import JID
-
+# Input boundary: accept typed events
def extract_sender(event: EvMessage) -> JID:
return event.data.message_info.source.sender
+
+# Output boundary: return typed results
+async def forward_message(client, event: EvMessage, target: JID) -> SendResult:
+ text = event.data.text or ""
+ return await client.send_text(target, text)
```
-Then keep your service layer function signatures strictly typed as well.
+---
-## Example
+## Static Analysis Workflow
-```python
-from tryx.events import EvMessage
-from tryx.types import JID
+### With Mypy
+```bash
+uv add mypy
+uv run mypy your_project/
+```
+
+### With Pyright
-def extract_chat(event: EvMessage) -> JID:
- return event.data.message_info.source.chat
+```bash
+uv add pyright
+uv run pyright your_project/
```
-## Related Docs
+### In CI
+
+```yaml
+# .github/workflows/ci.yml
+- name: Type check
+ run: |
+ uv run mypy your_project/ --strict
+ uv run pyright your_project/
+```
+
+---
+
+## Best Practices
+
+1. **Keep handler signatures explicit** — Always type-annotate `client` and `event`
+2. **Annotate helper functions** — Especially those returning event-derived data
+3. **Use specific event types** — `EvMessage` instead of generic `Event`
+4. **Run static analysis in CI** — Catch type errors before deployment
+5. **Leverage IDE autocomplete** — Let the stubs guide your API usage
+
+---
+
+## Related
-- [Types API](../api/types.md)
-- [Privacy Namespace](../api/privacy.md)
-- [Status Namespace](../api/status.md)
+- [Types API](../api/types.md) — full type reference
+- [Events API](../api/events.md) — event type reference
+- [Privacy Namespace](../api/privacy.md) — privacy type usage
+- [Status Namespace](../api/status.md) — status type usage
diff --git a/docs/faq/qna.md b/docs/faq/qna.md
index fb330dc..cebc82e 100644
--- a/docs/faq/qna.md
+++ b/docs/faq/qna.md
@@ -1,105 +1,206 @@
-# QnA
+# FAQ
-Use this page for quick decisions, then jump to linked technical pages for implementation details.
+Quick answers to common questions. Jump to the linked pages for implementation
+details.
+
+---
## General
### What is Tryx?
-Tryx is a Rust-powered Python SDK for event-driven WhatsApp automation.
+
+Tryx is a Rust-powered Python SDK for event-driven WhatsApp automation. It
+pairs a Rust runtime core with a typed Python API, giving you WhatsApp
+protocol handling at native speed while keeping application logic in clean
+async Python.
### Why not pure Python?
-Rust handles protocol-heavy runtime work for better throughput and lower overhead, while Python keeps app logic easy to write.
+
+Rust handles protocol-heavy runtime work for better throughput and lower
+overhead:
+
+- **Signal protocol** — Double Ratchet, X3DH key exchange
+- **Noise handshake** — WebSocket transport encryption
+- **Protobuf** — Message serialization/deserialization
+- **Media processing** — Upload/download, transcoding
+
+Python keeps app logic easy to write and maintain.
### Is Tryx synchronous or asynchronous?
-Both: async-first (`await app.run()`), plus blocking convenience (`app.run_blocking()`).
+
+Both:
+
+- **Async-first**: `await app.run()` with full asyncio support
+- **Blocking**: `app.run_blocking()` for quick scripts
+
+```python
+# Async
+asyncio.run(app.run())
+
+# Blocking
+app.run_blocking()
+```
See [Quick Start](../getting-started/quickstart.md).
+### What Python versions are supported?
+
+Python 3.8 and newer. We recommend 3.10+ for the best typing experience.
+
+### Does Tryx support Linux/macOS/Windows?
+
+Yes, with proper Rust toolchain and platform build dependencies. See the
+[Installation](../getting-started/installation.md) page for platform-specific
+setup.
+
+---
+
## Pairing and Session
### Do I need to pair every time?
-No. If backend storage is preserved, session data is reused.
-### What does EvStreamReplaced mean?
-Another session replaced your active stream. Re-check device/session ownership.
+No. If backend storage is preserved (`whatsapp.db` or equivalent), session
+data is reused across restarts.
+
+### What does `EvStreamReplaced` mean?
+
+Another session replaced your active stream. This typically happens when:
+
+- Another device logged into the same account
+- A deployment is using the same backend path
-### What should I do on EvLoggedOut?
-Treat it as session invalidation. Re-pair and refresh persisted state.
+Check device/session ownership and ensure single-writer backend access.
-See [Authentication Flow](../getting-started/authentication.md).
+### What should I do on `EvLoggedOut`?
+
+Treat it as session invalidation. Re-pair and refresh persisted state. See
+[Authentication Flow](../getting-started/authentication.md).
+
+### Can I use the same backend path across multiple instances?
+
+**No.** Avoid multiple runtime instances writing to the same backend path.
+This can cause stream replacement, data corruption, or forced re-pairing.
+
+---
## Event Handling
### Can I register multiple handlers for one event?
-Yes. Dispatcher stores callbacks per event class.
-### Why does an event have `data` property instead of direct fields?
-Many event payloads are lazily materialized for efficiency.
+Yes. The dispatcher stores callbacks per event class and calls all of them
+for each event.
+
+### Why does an event have a `data` property instead of direct fields?
+
+Many event payloads are lazily materialized for efficiency. The `data`
+property returns a rich typed object that's cached for subsequent access.
### Should I process heavy logic directly in handlers?
-Prefer short handlers that delegate expensive work to background tasks.
-See [Reliability](../operations/reliability.md) and [Performance](../operations/performance.md).
+**No.** Keep handlers short and non-blocking. Delegate expensive work to
+background tasks. See [Reliability](../operations/reliability.md) and
+[Performance](../operations/performance.md).
+
+### How do I handle undecryptable messages?
+
+Treat them as normal — they happen during key rotation. Log them and move
+on. Tryx continues dispatching other events.
+
+---
## Messaging and Media
### Which media types can Tryx send?
-Text, photo, document, audio, video, GIF, sticker, and protobuf-raw messages.
-### When should I call request_media_reupload?
+| Type | Method | Notes |
+|------|--------|-------|
+| Text | `send_text()` | Basic text messages |
+| Photo | `send_photo()` | Images with optional caption |
+| Document | `send_document()` | Files with optional name |
+| Audio | `send_audio()` | Voice notes (ptt=True) or clips |
+| Video | `send_video()` | Video clips with optional caption |
+| GIF | `send_gif()` | Animated GIFs |
+| Sticker | `send_sticker()` | Static WEBP or animated |
+| Raw | `send_message()` | Custom protobuf messages |
+
+### When should I call `request_media_reupload`?
+
When media direct path is stale or unavailable and normal download fails.
+This is common for older messages where the media CDN link has expired.
### Can I quote a message in replies?
-Yes, pass the original `EvMessage` to send helpers that support `quoted`.
+
+Yes, pass the original `EvMessage` to send helpers that support `quoted`:
+
+```python
+await client.send_text(chat, "reply text", quoted=event)
+```
See [Media Workflows](../tutorials/media-workflows.md).
+---
+
## Groups and Privacy
### Can I automate group moderation?
-Yes, use `client.groups.*` and handle `EvGroupUpdate` for state feedback.
+
+Yes, use `client.groups.*` for participant management and handle
+`EvGroupUpdate` for state feedback. See
+[Group Automation](../tutorials/group-automation.md).
### Can I modify privacy settings?
-Yes, use `client.privacy.fetch_settings()` and `set_setting(...)`.
-See [Privacy Namespace](../api/privacy.md) and [Profile and Privacy Tutorial](../tutorials/profile-privacy.md).
+Yes, use `client.privacy.fetch_settings()` and `set_setting(...)`. See
+[Privacy Namespace](../api/privacy.md).
+
+---
## Deployment and Operations
### What is the minimum production checklist?
-1. durable backend/session storage
-2. bounded retry strategy
-3. idempotent message processing
-4. basic security controls (admin-only commands, secret management)
+1. Durable backend/session storage
+2. Bounded retry strategy
+3. Idempotent message processing
+4. Basic security controls (admin-only commands, secret management)
+5. Structured logging
See [Deployment Guide](../operations/deployment.md).
-### How do I troubleshoot reconnect loops quickly?
-Use the connection decision tree in [Troubleshooting](../operations/troubleshooting.md) and verify single-writer backend ownership.
+### How do I troubleshoot reconnect loops?
+
+Use the connection decision tree in
+[Troubleshooting](../operations/troubleshooting.md) and verify single-writer
+backend ownership.
+
+---
## Typing and Tooling
### Are stubs complete?
-Tryx ships `.pyi` stubs for public modules including events and low-level wacore types.
+
+Tryx ships `.pyi` stubs for all public modules including events, types,
+client namespaces, and low-level wacore types.
### Can I use mypy or pyright?
+
Yes, the package includes `py.typed` for static analysis integration.
-## Reliability
+```bash
+uv run mypy your_project/
+uv run pyright your_project/
+```
-### How should I handle temporary bans?
-Listen to `EvTemporaryBan`, pause high-frequency operations, and avoid aggressive retries.
+---
-### How can I make my client idempotent?
-Store processed message IDs and guard side effects before calling external systems.
+## Reliability
-See [Reliability](../operations/reliability.md).
+### How should I handle temporary bans?
-## Compatibility
+Listen to `EvTemporaryBan`, pause high-frequency operations, and avoid
+aggressive retries. Resume gradually after the ban period.
-### Which Python versions are supported?
-Python 3.8 and newer.
+### How can I make my client idempotent?
-### Does Tryx support Linux/macOS/Windows?
-Yes, with proper Rust toolchain and platform build dependencies.
+Store processed message IDs and guard side effects before calling external
+systems. See [Reliability](../operations/reliability.md).
diff --git a/docs/getting-started/authentication.md b/docs/getting-started/authentication.md
index 17cae58..f9d7555 100644
--- a/docs/getting-started/authentication.md
+++ b/docs/getting-started/authentication.md
@@ -1,33 +1,98 @@
# Authentication Flow
-Tryx follows the WhatsApp multi-device pairing flow. The first run links a session, and later runs reuse stored state.
+Tryx follows the WhatsApp multi-device pairing flow. The first run links
+a session, and later runs reuse stored state.
-!!! note
- Authentication stability is mostly a storage and ownership problem. Treat backend/session files as critical runtime state.
+!!! note "Key principle"
+ Authentication stability is mostly a storage and ownership problem.
+ Treat backend/session files as critical runtime state.
+
+---
## Pairing Modes
-- QR pairing event: `EvPairingQrCode`
-- Numeric pairing event: `EvPairingCode`
-- Success event: `EvPairSuccess`
-- Failure event: `EvPairError`
+| Mode | Event | How to Use |
+|------|-------|------------|
+| **QR Code** | `EvPairingQrCode` | Scan with your phone camera |
+| **Numeric Code** | `EvPairingCode` | Enter 8-digit code on your phone |
+
+---
+
+## First-Run Sequence
+
+```mermaid
+sequenceDiagram
+ participant Bot as Tryx Bot
+ participant WA as WhatsApp
+ participant Phone as Your Phone
+
+ Bot->>WA: Connect to WebSocket
+ WA-->>Bot: Pairing challenge
+ Bot-->>Bot: Emit EvPairingQrCode or EvPairingCode
+ Note over Phone: User scans QR or enters code
+ Phone->>WA: Confirm pairing
+ WA-->>Bot: Session established
+ Bot-->>Bot: Emit EvPairSuccess
+ Bot-->>Bot: Persist session in backend
+```
+
+1. Start client runtime
+2. Wait for `EvPairingQrCode` or `EvPairingCode`
+3. Complete pairing from your WhatsApp mobile app
+4. Receive `EvPairSuccess`
+5. Session credentials are persisted in your backend
+
+---
+
+## Event Reference
-## Typical First-Run Sequence
+| Event | Meaning | Action |
+|-------|---------|--------|
+| `EvPairingQrCode` | QR challenge issued | Display QR to user |
+| `EvPairingCode` | Code-based pairing challenge | Display code to user |
+| `EvPairSuccess` | Session linked and persisted | Continue normal operations |
+| `EvPairError` | Pairing rejected/failed | Inspect logs and retry |
+
+---
+
+## Code Example: Pairing Handler
+
+```python
+from tryx.client import Tryx
+from tryx.backend import SqliteStore
+from tryx.events import (
+ EvPairingQrCode,
+ EvPairingCode,
+ EvPairSuccess,
+ EvPairError,
+)
-1. Start client runtime.
-2. Wait for `EvPairingQrCode` or `EvPairingCode`.
-3. Complete pairing from your WhatsApp mobile app.
-4. Receive `EvPairSuccess`.
-5. Session credentials are persisted in your backend.
+backend = SqliteStore("whatsapp.db")
+app = Tryx(backend)
-## Event-level Interpretation
-| Event | Meaning | Operator action |
-| --- | --- | --- |
-| `EvPairingQrCode` | QR challenge issued | scan with mobile app |
-| `EvPairingCode` | code-based pairing challenge | enter code in paired device flow |
-| `EvPairSuccess` | session linked and persisted | continue normal operations |
-| `EvPairError` | pairing rejected/failed | inspect logs and retry pairing |
+@app.on(EvPairingQrCode)
+async def on_qr(client, event):
+ print(f"Scan this QR code: {event.qr_data}")
+ # In a real bot, you might send this to a web interface
+
+
+@app.on(EvPairingCode)
+async def on_code(client, event):
+ print(f"Enter this code: {event.pairing_code}")
+
+
+@app.on(EvPairSuccess)
+async def on_success(client, event):
+ print("Successfully paired!")
+
+
+@app.on(EvPairError)
+async def on_error(client, event):
+ print(f"Pairing failed: {event.error}")
+```
+
+---
## Persistence
@@ -42,27 +107,67 @@ backend = SqliteStore("/srv/tryx/session.db")
If the same backend path is reused, you usually do not need to pair again.
!!! warning "Single writer rule"
- Avoid multiple runtime instances writing to the same backend path unless you explicitly control ownership.
+ Avoid multiple runtime instances writing to the same backend path
+ unless you explicitly control ownership.
-## Operational Guidance
-
-- Keep one active session owner for a backend path.
-- Avoid deleting backend files unless resetting account link is intentional.
-- Back up backend data before infrastructure migration.
+---
## Recovery Signals
-- `EvLoggedOut`: account session is no longer valid.
-- `EvStreamReplaced`: another login/session replaced your current stream.
-- `EvTemporaryBan`: temporary restrictions detected; pause high-volume operations.
+| Event | Meaning | Action |
+|-------|---------|--------|
+| `EvLoggedOut` | Session invalidated | Re-pair and rotate session artifacts |
+| `EvStreamReplaced` | Another login replaced your stream | Check for duplicate sessions |
+| `EvTemporaryBan` | Temporary restrictions detected | Pause high-volume operations |
+
+---
## Recovery Playbook
-1. if `EvLoggedOut`: re-pair and rotate session artifacts.
-2. if `EvStreamReplaced`: check if another deployment is using the same account/backend.
-3. if temporary-ban signal: stop automation burst traffic and re-enable gradually.
+### `EvLoggedOut`
+
+```python
+@app.on(EvLoggedOut)
+async def on_logged_out(client):
+ logger.warning("Session invalidated, re-pairing required")
+ # Stop bot operations
+ # Notify operator
+ # Trigger re-pairing flow
+```
+
+### `EvStreamReplaced`
+
+```python
+@app.on(EvStreamReplaced)
+async def on_replaced(client):
+ logger.warning("Stream replaced by another session")
+ # Check if another deployment is using the same account
+ # Ensure single-writer backend ownership
+```
+
+### `EvTemporaryBan`
+
+```python
+@app.on(EvTemporaryBan)
+async def on_ban(client, event):
+ logger.warning(f"Temporary ban: {event.reason}")
+ # Stop automation burst traffic
+ # Re-enable gradually after ban period
+```
+
+---
+
+## Operational Guidance
+
+- Keep one active session owner for a backend path
+- Avoid deleting backend files unless resetting account link is intentional
+- Back up backend data before infrastructure migration
+- Monitor for `EvStreamReplaced` to detect duplicate sessions
+
+---
-## Related Docs
+## Related
-- [Deployment Guide](../operations/deployment.md)
-- [Troubleshooting](../operations/troubleshooting.md)
+- [Deployment Guide](../operations/deployment.md) — production setup
+- [Troubleshooting](../operations/troubleshooting.md) — connection issues
+- [Reliability](../operations/reliability.md) — error handling patterns
diff --git a/docs/getting-started/contributing.md b/docs/getting-started/contributing.md
index 192b458..e92d8d8 100644
--- a/docs/getting-started/contributing.md
+++ b/docs/getting-started/contributing.md
@@ -1,80 +1,148 @@
-# Contributing Guide
+# Contributing
-This page describes how to contribute to Tryx using the project standards for tooling, commits, and pull requests.
+This guide explains how to contribute to Tryx development.
-## Local Setup
+---
+
+## Development Setup
```bash
-uv sync --group dev --group docs
+# Clone
+git clone https://github.com/krypton-byte/tryx.git
+cd tryx
+
+# Install dependencies
+uv sync --group dev
+
+# Build Rust extension
uv run maturin develop
-uv run pre-commit install --hook-type pre-commit --hook-type commit-msg
+
+# Verify
+uv run python -c "from tryx.client import Tryx; print('OK')"
+```
+
+---
+
+## Code Structure
+
+```
+tryx/
+├── src/ # Rust source
+│ ├── lib.rs # Module entry point
+│ ├── clients/ # Client method implementations
+│ ├── events/ # Event dispatcher and types
+│ ├── types.rs # Shared data classes
+│ └── backend/ # Storage backend bridge
+├── python/tryx/ # Python package
+│ ├── *.pyi # Type stubs (edit these for API changes)
+│ └── waproto/ # Protobuf definitions
+├── tests/ # Test suite
+└── docs/ # Documentation
+```
+
+---
+
+## Development Workflow
+
+### 1. Create a Branch
+
+```bash
+git checkout -b feature/my-feature
```
-## Required Checks
+### 2. Make Changes
+
+- **Rust changes**: Edit files in `src/`
+- **Python API changes**: Edit `.pyi` stubs in `python/tryx/`
+- **Documentation**: Edit files in `docs/`
+
+### 3. Build and Test
```bash
-uv run --no-project --with ruff==0.11.4 ruff check .
-uv run --no-project --with ruff==0.11.4 ruff format --check .
-uv run python scripts/check_stub_parity.py
+# Rebuild Rust extension
+uv run maturin develop
+
+# Run tests
+uv run pytest
+
+# Type check
+uv run mypy your_changes/
+
+# Lint
+uv run ruff check .
```
-## Commit Message Standard
+### 4. Commit
-Tryx uses Conventional Commits.
+Use [Conventional Commits](https://www.conventionalcommits.org/):
-Pattern:
+```bash
+# Feature
+git commit -m "feat: add new group action"
+
+# Bug fix
+git commit -m "fix: handle edge case in media download"
-```text
-type(scope): summary
-type(scope)!: summary
+# Documentation
+git commit -m "docs: improve quickstart guide"
```
-Scope is optional.
-
-Allowed `type`:
-- `feat`
-- `fix`
-- `perf`
-- `refactor`
-- `docs`
-- `test`
-- `build`
-- `ci`
-- `chore`
-- `style`
-
-Release impact:
-- `feat` -> minor bump
-- `fix` / `perf` -> patch bump
-- `!` or `BREAKING CHANGE:` -> major bump
-
-Examples:
-- `feat(groups): add participant count helper`
-- `fix(profile): validate image bytes before upload`
-- `feat(status)!: change default privacy behavior`
-
-## Pull Requests
-
-1. Use the PR template.
-2. Keep title in Conventional Commit format.
-3. Link relevant issue(s).
-4. Add tests/docs updates when behavior changes.
-5. Ensure CI is green before requesting review.
-
-## Issues
-
-Use issue templates for:
-- Bug reports
-- Feature requests
-
-High-quality issues include:
-- clear reproduction steps
-- expected and actual results
-- logs or traceback snippets
-- OS / Python / Tryx version details
-
-## Additional Recommendations
-
-- Prefer squash merge for consistent release history.
-- Keep PR size under review-friendly scope.
-- Update docs and stubs together with API changes.
+### 5. Push and Create PR
+
+```bash
+git push origin feature/my-feature
+```
+
+---
+
+## Code Style
+
+### Rust
+
+- Follow standard `rustfmt` formatting
+- Use `clippy` for linting
+- Keep functions focused and well-documented
+
+### Python
+
+- Follow `ruff` formatting (line length 88)
+- Use Google-style docstrings in `.pyi` files
+- Keep type stubs in sync with Rust implementations
+
+### Documentation
+
+- Use Markdown with Material for MkDocs / Zensical conventions
+- Include code examples for all API methods
+- Keep explanations concise and actionable
+
+---
+
+## Testing
+
+```bash
+# Run all tests
+uv run pytest
+
+# Run specific test file
+uv run pytest tests/test_types.py
+
+# Run with verbose output
+uv run pytest -v
+```
+
+---
+
+## Pull Request Guidelines
+
+1. **One feature per PR** — keep changes focused
+2. **Include tests** — for new functionality
+3. **Update documentation** — if API surface changes
+4. **Run CI checks** — before requesting review
+5. **Write clear commit messages** — describe what and why
+
+---
+
+## Getting Help
+
+- **Issues**: [GitHub Issues](https://github.com/krypton-byte/tryx/issues)
+- **Discussions**: [GitHub Discussions](https://github.com/krypton-byte/tryx/discussions)
diff --git a/docs/getting-started/installation.md b/docs/getting-started/installation.md
index 5493847..76e3c9c 100644
--- a/docs/getting-started/installation.md
+++ b/docs/getting-started/installation.md
@@ -1,81 +1,172 @@
# Installation
-This page sets up a local development environment for the Tryx Python bindings backed by Rust.
+This guide sets up a working development environment for building with Tryx.
-!!! note "Recommended shell flow"
- Use `uv` to manage the project environment and dependencies consistently.
+!!! tip "One command setup"
+ ```bash
+ uv sync --group dev && uv run maturin develop
+ ```
## Prerequisites
-- Python 3.8+
-- Rust toolchain (stable)
-- `uv`
+| Tool | Version | Purpose |
+|------|---------|---------|
+| **Python** | 3.8+ | Runtime |
+| **Rust** | stable | Native extension compilation |
+| **uv** | latest | Package management |
+| **OpenSSL** | 1.1+ | TLS for WebSocket connections |
-## Environment Bootstrap
+### Install Rust
```bash
-uv sync --group dev
+curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
+source ~/.cargo/env
+```
+
+### Install uv
+
+```bash
+curl -LsSf https://astral.sh/uv/install.sh | sh
```
-## Local Development Install
+## Quick Setup
```bash
+# Clone the repository
+git clone https://github.com/krypton-byte/tryx.git
+cd tryx
+
+# Install all dependencies
+uv sync --group dev
+
+# Build the Rust extension into your environment
uv run maturin develop
```
-This installs the Rust extension module into your active environment in editable mode.
+!!! success "Verify installation"
+ ```bash
+ uv run python -c "from tryx.client import Tryx; print('Tryx loaded successfully')"
+ ```
+ If this prints `Tryx loaded successfully`, you're ready to go.
-!!! tip "Fast rebuild loop"
- Re-run `uv run maturin develop` after Rust binding changes to keep Python runtime artifacts in sync.
+## Build Options
-## Build Wheel
+### Development Build (fast compilation)
+
+```bash
+uv run maturin develop
+```
+
+This installs the extension module in editable mode. Re-run after Rust source changes.
+
+### Release Build (optimized binary)
```bash
uv run maturin build --release
```
-Typical wheel output appears under `target/wheels/`.
+The wheel is output to `target/wheels/`.
-## Verify Installation
+### With Specific Features
-```python
-from tryx.client import Tryx, TryxClient
-from tryx.backend import SqliteStore
+```bash
+# Verbose build for debugging
+uv run maturin develop -v
-backend = SqliteStore("whatsapp.db")
-app = Tryx(backend)
-client = app.get_client()
-print(type(client).__name__)
+# Release with debug symbols
+uv run maturin develop --release --cargo-extra-args="--profile dev"
```
-If output shows `TryxClient`, extension loading is successful.
+## Project Layout
-## Optional Tools
-
-- `uv run mypy ...` or `pyright` for static type checks
-- `uv run --no-project --with ruff==0.11.4 ruff check .` for linting (no project build)
-- `uv run pytest` for integration test harnesses
-- `uv run pre-commit run --all-files` for local gate parity with CI
+```
+tryx/
+├── Cargo.toml # Rust dependencies and build config
+├── pyproject.toml # Python dependencies and tool config
+├── src/ # Rust source code
+│ ├── lib.rs # Module entry point
+│ ├── clients/ # Client implementations
+│ ├── events/ # Event dispatcher
+│ └── types.rs # Shared data types
+├── python/tryx/ # Python package
+│ ├── __init__.py # Re-exports
+│ ├── *.pyi # Type stubs for IDE support
+│ └── waproto/ # Protobuf definitions
+├── tests/ # Test suite
+└── examples/ # Usage examples
+```
-## Common Install Issues
+## Common Issues
### Rust compiler not found
-Install Rust with `rustup` and reopen your shell.
+```bash
+# Install Rust toolchain
+rustup default stable
+```
### Build fails with linker errors
-Ensure your platform build tools are installed:
+=== "Linux"
+
+ ```bash
+ sudo apt install build-essential libssl-dev pkg-config
+ ```
+
+=== "macOS"
-- Linux: `build-essential` and OpenSSL dev headers
-- macOS: Xcode command line tools
-- Windows: MSVC Build Tools
+ ```bash
+ xcode-select --install
+ ```
+
+=== "Windows"
+
+ Install [MSVC Build Tools](https://visualstudio.microsoft.com/visual-cpp-build-tools/).
### ImportError for extension module
-Re-run `uv run maturin develop` in the same project environment where you run Python.
+Make sure you're using the same Python environment where `maturin develop` was run:
+
+```bash
+# Check which Python your venv uses
+which python
+
+# Rebuild if needed
+uv run maturin develop
+```
+
+### Protobuf version mismatch
+
+Tryx uses protobuf 5.28+ for code generation. If you see version warnings:
+
+```bash
+uv add "protobuf>=5.28.3,<7"
+uv run maturin develop
+```
+
+## Optional Tools
+
+| Tool | Install | Purpose |
+|------|---------|---------|
+| **mypy** | `uv add mypy` | Static type checking |
+| **pyright** | `uv add pyright` | Type checking alternative |
+| **ruff** | `uv add ruff` | Linting and formatting |
+| **pytest** | `uv add pytest` | Test runner |
+
+```bash
+# Type check
+uv run mypy your_project/
+
+# Lint
+uv run ruff check .
+
+# Format
+uv run ruff format .
+
+# Test
+uv run pytest
+```
## Next Step
-- Continue to [Quick Start](quickstart.md)
-- Then configure pairing in [Authentication Flow](authentication.md)
+→ [Quick Start](quickstart.md) — build your first bot in 5 minutes
diff --git a/docs/getting-started/quickstart.md b/docs/getting-started/quickstart.md
index e8600cd..38b64f9 100644
--- a/docs/getting-started/quickstart.md
+++ b/docs/getting-started/quickstart.md
@@ -1,69 +1,255 @@
# Quick Start
-Build and run a minimal echo client, then expand it safely.
+Build a working WhatsApp bot in 5 minutes. This guide walks through the
+minimal setup, then expands with real functionality.
-!!! tip "Expected outcome"
- You should receive incoming text and reply with an echo message in the same chat.
+## Step 1: Create Your Bot
-## Minimal Client
+Create a file called `bot.py`:
```python
import asyncio
-
+from tryx.client import Tryx
from tryx.backend import SqliteStore
-from tryx.client import Tryx, TryxClient
from tryx.events import EvMessage
-from tryx.waproto.whatsapp_pb2 import Message
+# Create storage backend (persists session and protocol state)
backend = SqliteStore("whatsapp.db")
-app = Tryx(backend)
+# Initialize the Tryx runtime
+app = Tryx(backend)
+# Register an event handler
@app.on(EvMessage)
-async def on_message(client: TryxClient, event: EvMessage) -> None:
- text = event.data.get_text() or ""
+async def on_message(client, event):
+ text = event.data.get_text() or ""
chat = event.data.message_info.source.chat
- await client.send_message(chat, Message(conversation=f"Echo: {text}"))
+ if text.lower() == "ping":
+ await client.send_text(chat, "pong")
-async def main() -> None:
- await app.run()
+# Start the bot
+asyncio.run(app.run())
+```
+## Step 2: Run and Pair
-if __name__ == "__main__":
- asyncio.run(main())
+```bash
+python bot.py
```
+On first run, Tryx will emit a pairing event. Scan the QR code with your
+WhatsApp mobile app (Linked Devices → Link a Device).
+
+!!! info "Pairing modes"
+ - **QR code**: Scan with your phone camera
+ - **Numeric code**: Enter the 8-digit code on your phone
+
+After pairing, the session is stored in `whatsapp.db` and you won't need
+to pair again.
+
+## Step 3: Test It
+
+Send "ping" to your WhatsApp number from another device. The bot should
+reply with "pong".
+
+---
+
## How It Works
-1. backend persists pairing/session state
-2. `Tryx` runtime wires event dispatcher
-3. `@app.on(EvMessage)` registers handler
-4. `TryxClient` executes namespace/root API calls
+```
+┌──────────────┐ ┌──────────────┐ ┌──────────────┐
+│ SqliteStore │────▶│ Tryx │────▶│ WebSocket │
+│ (persist) │ │ (dispatcher)│ │ (WhatsApp) │
+└──────────────┘ └──────┬───────┘ └──────────────┘
+ │
+ ┌──────▼───────┐
+ │ Your Handler│
+ │ @app.on() │
+ └──────────────┘
+```
+
+1. **`SqliteStore`** creates and manages a local database for session
+ persistence and Signal protocol state.
+2. **`Tryx`** initializes the Rust runtime and event dispatcher.
+3. **`@app.on(EvMessage)`** registers your handler to fire on every
+ incoming message.
+4. **`await app.run()`** opens the WebSocket connection and begins
+ processing events.
-## Runtime Flow
+---
-1. Create backend storage.
-2. Create `Tryx` client instance.
-3. Register handlers with `@app.on(EventClass)`.
-4. Start runtime with `await app.run()`.
-5. Use `TryxClient` inside handlers for API calls.
+## Sending Messages
-## First Production Hardening
+### Text
-=== "Reliability"
- - deduplicate with message id
- - bound retries for network operations
+```python
+from tryx.types import JID
-=== "Safety"
- - validate command input
- - keep admin-only commands restricted
+jid = JID.whatsapp("5599800001")
+await client.send_text(jid, "Hello from Tryx!")
+```
-=== "Performance"
- - keep handlers short
- - offload heavy work to worker queue
+### Photo with Caption
+
+```python
+with open("photo.jpg", "rb") as f:
+ photo_data = f.read()
+
+result = await client.send_photo(
+ to=jid,
+ photo_data=photo_data,
+ caption="Check this out!",
+)
+print(f"Sent: {result.message_id}")
+```
+
+### Voice Message
+
+```python
+with open("voice.ogg", "rb") as f:
+ audio_data = f.read()
+
+await client.send_audio(
+ to=jid,
+ audio_data=audio_data,
+ ptt=True, # Push-to-talk (voice note)
+ seconds=15, # Duration hint
+)
+```
+
+### Document
+
+```python
+with open("report.pdf", "rb") as f:
+ doc_data = f.read()
+
+await client.send_document(
+ to=jid,
+ document_data=doc_data,
+ file_name="report.pdf",
+ caption="Monthly report",
+)
+```
+
+### Video
+
+```python
+with open("clip.mp4", "rb") as f:
+ video_data = f.read()
+
+await client.send_video(
+ to=jid,
+ video_data=video_data,
+ caption="Check this clip",
+)
+```
+
+### Sticker
+
+```python
+with open("sticker.webp", "rb") as f:
+ sticker_data = f.read()
+
+await client.send_sticker(to=jid, sticker_data=sticker_data)
+```
+
+---
+
+## Handling Events
+
+### Multiple Event Types
+
+```python
+from tryx.events import EvMessage, EvConnected, EvDisconnected
+
+@app.on(EvConnected)
+async def on_connected(client):
+ print("Connected to WhatsApp!")
+
+@app.on(EvMessage)
+async def on_message(client, event):
+ text = event.data.get_text() or ""
+ chat = event.data.message_info.source.chat
+
+ if text == "!ping":
+ await client.send_text(chat, "Pong!")
+ elif text == "!info":
+ stats = await client.advanced.stats()
+ await client.send_text(chat, f"Stats: {stats}")
+ elif text == "!groups":
+ groups = await client.groups.get_participating()
+ names = [m.subject for m in groups.values()]
+ await client.send_text(chat, f"Groups: {', '.join(names)}")
+
+@app.on(EvDisconnected)
+async def on_disconnected(client):
+ print("Disconnected, will reconnect...")
+```
+
+### Processing Media
+
+```python
+@app.on(EvMessage)
+async def handle_media(client, event):
+ chat = event.data.message_info.source.chat
+
+ if event.data.media:
+ media_type = event.data.media.media_type
+
+ if media_type == "image":
+ await client.send_text(chat, "Nice photo!")
+ elif media_type == "video":
+ await client.send_text(chat, "Cool video!")
+ elif media_type == "audio":
+ await client.send_text(chat, "Got your audio!")
+```
+
+### Quoting Messages
+
+```python
+@app.on(EvMessage)
+async def handle_reply(client, event):
+ text = event.data.get_text() or ""
+ chat = event.data.message_info.source.chat
+
+ if text.lower() == "ping":
+ # Quote the original message
+ await client.send_text(chat, "pong", quoted=event)
+```
+
+---
-## Blocking Script Mode
+## Error Handling
+
+Always wrap handler logic to prevent one bad event from crashing your bot:
+
+```python
+import logging
+
+logger = logging.getLogger(__name__)
+
+@app.on(EvMessage)
+async def safe_handler(client, event):
+ try:
+ text = event.data.get_text() or ""
+ chat = event.data.message_info.source.chat
+
+ if text:
+ await client.send_text(chat, f"Echo: {text}")
+ except Exception as e:
+ logger.error(f"Handler failed: {e}")
+ # Don't crash — Tryx continues dispatching
+```
+
+!!! warning "Handler exceptions"
+ If a handler raises an exception, Tryx catches it and continues
+ dispatching other events. However, the error is logged and may affect
+ your bot's reliability. Always handle errors explicitly.
+
+---
+
+## Blocking Mode
For quick scripts without manual event loop management:
@@ -75,12 +261,37 @@ app = Tryx(SqliteStore("whatsapp.db"))
app.run_blocking()
```
-!!! warning
- `run_blocking()` is convenient for small scripts. Prefer explicit async runtime control for larger systems.
+!!! tip "When to use"
+ `run_blocking()` is convenient for small scripts and prototyping.
+ For larger systems, prefer explicit `asyncio.run(app.run())`.
+
+---
+
+## Production Tips
+
+=== "Reliability"
+
+ - Deduplicate with `event.data.message_info.id`
+ - Bound retries for network operations
+ - Handle undecryptable messages gracefully
+
+=== "Safety"
+
+ - Validate command input
+ - Restrict admin-only commands
+ - Rate-limit expensive operations
+
+=== "Performance"
+
+ - Keep handlers short and async
+ - Offload heavy work to background tasks
+ - Use connection pooling for databases
+
+---
## Next Steps
-- Read [Authentication Flow](authentication.md) to understand pairing and session persistence.
-- Explore [Client API Gateway](../api/client.md) for all namespace methods.
-- Review [Event Model](../core-concepts/event-model.md) before building complex logic.
-- Continue with [Tutorial: Command Automation](../tutorials/command-bot.md).
+- [Authentication Flow](authentication.md) — understand pairing and session persistence
+- [Architecture](../core-concepts/architecture.md) — how Tryx works internally
+- [Client API Gateway](../api/client.md) — all namespace methods
+- [Tutorial: Command Bot](../tutorials/command-bot.md) — build a real bot
diff --git a/docs/index.md b/docs/index.md
index 65e93b0..d634ed0 100644
--- a/docs/index.md
+++ b/docs/index.md
@@ -1,99 +1,200 @@
-# Tryx Documentation
-
-
-
Build WhatsApp Automations With Rust Speed and Python Ergonomics
-
Tryx combines a Rust runtime core with a typed Python API so you can ship robust bots, integrations, and event-driven workflows without sacrificing performance.
-
- Async-first
- Typed stubs (.pyi)
- PyO3 bindings
- Event-driven architecture
-
+# Tryx
+
+**Rust-powered Python SDK for event-driven WhatsApp automation.**
+
+Tryx pairs a Rust runtime core with a typed Python API. Protocol handling,
+media processing, and Signal encryption run at native speed in Rust — your
+application logic stays in clean async Python.
+
+
+ Async-first
+ PyO3 Native
+ Typed Stubs (.pyi)
+ Event-Driven
+ Signal E2E
+ Pluggable Storage
-!!! tip "Documentation Mode"
- This site is designed as a full path: setup -> architecture -> API namespaces -> tutorials -> production operations.
+---
-## What You Can Do
+## What You Can Build
Messaging
-
Send text, photo, audio, document, video, GIF, and sticker content with a clean Python API.
+
Send text, photo, audio, document, video, GIF, and stickers through a clean async API with full type safety.
Realtime Events
-
Subscribe to rich event classes for messages, contact updates, sync actions, and lifecycle changes.
+
Subscribe to messages, contact updates, sync actions, and lifecycle changes with typed event classes and decorator-based handlers.
Namespace Clients
-
Use dedicated namespaces for contacts, groups, newsletter, status, privacy, polls, presence, and more.
+
Dedicated clients for contacts, groups, newsletters, status, privacy, polls, presence, communities, and chat actions.
-
Typed Development
-
Use complete Python stubs for editor intelligence, static checks, and better API discoverability.
+
Pluggable Storage
+
SQLite (built-in), FFI shared libraries (Postgres, Redis), or pure Python backends — all with the same Signal protocol store API.
-## Choose Your Path
-
-=== "I am New"
- 1. [Installation](getting-started/installation.md)
- 2. [Quick Start](getting-started/quickstart.md)
- 3. [Authentication Flow](getting-started/authentication.md)
- 4. [Client API Gateway](api/client.md)
+---
-=== "I am Building Features"
- 1. [Client Namespaces](api/client.md)
- 2. [Events API](api/events.md)
- 3. [Types API](api/types.md)
- 4. [Tutorials](tutorials/command-bot.md)
+## Quick Start
-=== "I am Deploying"
- 1. [Deployment Guide](operations/deployment.md)
- 2. [Reliability](operations/reliability.md)
- 3. [Troubleshooting](operations/troubleshooting.md)
- 4. [Security](operations/security.md)
+```python
+from tryx.client import Tryx
+from tryx.backend import SqliteStore
-## Recommended Reading Path
+app = Tryx(SqliteStore("whatsapp.db"))
+client = app.get_client()
-1. Start with [Installation](getting-started/installation.md).
-2. Follow [Quick Start](getting-started/quickstart.md) to build your first running client.
-3. Understand pairing in [Authentication Flow](getting-started/authentication.md).
-4. Learn internals in [Architecture](core-concepts/architecture.md) and [Event Model](core-concepts/event-model.md).
-5. Jump into [Client API Gateway](api/client.md) and namespace deep dives.
-6. Use [Tutorials](tutorials/command-bot.md) for implementation patterns.
-7. Use [QnA](faq/qna.md) and [Troubleshooting](operations/troubleshooting.md) when debugging.
-8. Finish with [Deployment](operations/deployment.md) and [Reliability](operations/reliability.md) before production.
+@app.on(EvMessage)
+async def on_message(client, event):
+ text = event.data.get_text()
+ chat = event.data.message_info.source.chat
+ if text:
+ await client.send_text(chat, f"Echo: {text}")
-## Project Scope
+app.run_blocking()
+```
-This documentation set focuses on the Python SDK experience first:
+
-- Runtime setup and client lifecycle
-- Event payload model and handler patterns
-- API reference for client/events/types/helpers/wacore
-- Performance, reliability, and security operations
-- Practical tutorials and real-world QnA
+[**Installation**](getting-started/installation.md){ .md-link }
+Set up your development environment
-Rust-internal details remain visible where they directly affect Python usage and behavior.
+[**Quick Start**](getting-started/quickstart.md){ .md-link }
+Build your first bot in 5 minutes
-## Quick Technical Index
+[**Authentication**](getting-started/authentication.md){ .md-link }
+Pair your phone with QR or code
-
-[Client Namespace Gateway](api/client.md)
+[**Architecture**](core-concepts/architecture.md){ .md-link }
+Understand the Rust + Python layers
-All namespace clients mapped with deep-dive pages.
-
-[Operational Readiness](operations/deployment.md)
-
-Deployment, reliability, performance, security, and troubleshooting.
-
-[Typed Contracts](api/types.md)
-
-Shared value objects and type-first usage patterns.
+
-[QnA](faq/qna.md)
+---
+
+## Architecture
+
+```
+┌──────────────────────────────────────────────────────┐
+│ Python Application │
+│ (handlers, business logic, bots) │
+├──────────────────────────────────────────────────────┤
+│ Python API Layer │
+│ TryxClient, namespace clients, @app.on() │
+│ (async methods, typed stubs) │
+├──────────────────────────────────────────────────────┤
+│ PyO3 Bridge │
+│ GIL management, type conversion, error marshal │
+├──────────────────────────────────────────────────────┤
+│ Rust Core │
+│ Protocol parsing, Signal crypto, media, transport │
+│ (Noise, protobuf, tokio) │
+└──────────────────────────────────────────────────────┘
+```
+
+---
+
+## Client Namespaces
+
+| Namespace | Purpose |
+|-----------|---------|
+| [`contact`](api/contact.md) | Profile lookup, phone number checks, profile pictures |
+| [`chat_actions`](api/chat-actions.md) | Archive, pin, mute, star, edit/revoke, reactions |
+| [`groups`](api/groups.md) | Group lifecycle, membership, invite links, admin actions |
+| [`community`](api/community.md) | Community creation, subgroup management |
+| [`newsletter`](api/newsletter.md) | Channel subscription, posting, follower management |
+| [`status`](api/status.md) | Status updates with privacy controls |
+| [`chatstate`](api/chatstate.md) | Typing and recording indicators |
+| [`blocking`](api/blocking.md) | Block/unblock and blocklist queries |
+| [`polls`](api/polls.md) | Encrypted poll creation and vote aggregation |
+| [`presence`](api/presence.md) | Online/offline presence and subscriptions |
+| [`privacy`](api/privacy.md) | Privacy settings and disallowed lists |
+| [`profile`](api/profile.md) | Push name, status text, profile picture |
+
+---
+
+## Reading Paths
+
+=== "New to Tryx"
+
+ 1. [Installation](getting-started/installation.md) — set up your environment
+ 2. [Quick Start](getting-started/quickstart.md) — build your first bot
+ 3. [Authentication](getting-started/authentication.md) — pair your phone
+ 4. [Client API](api/client.md) — explore the namespace clients
+
+=== "Building Features"
+
+ 1. [Client API](api/client.md) — find the right client for your task
+ 2. [Events API](api/events.md) — subscribe to WhatsApp events
+ 3. [Types API](api/types.md) — understand the data model
+ 4. [Tutorials](tutorials/command-bot.md) — implementation patterns
+
+=== "Going to Production"
+
+ 1. [Deployment](operations/deployment.md) — production setup
+ 2. [Reliability](operations/reliability.md) — error handling and recovery
+ 3. [Performance](operations/performance.md) — optimization tips
+ 4. [Security](operations/security.md) — security considerations
+
+---
+
+## Project Structure
+
+```
+tryx/
+├── src/ # Rust source (PyO3 bindings)
+│ ├── lib.rs # Module registration
+│ ├── clients/ # Client implementations
+│ │ ├── tryx.rs # Root TryxClient methods
+│ │ ├── groups.rs # Groups namespace
+│ │ ├── newsletter.rs # Newsletter namespace
+│ │ └── ...
+│ ├── events/ # Event dispatcher & types
+│ │ ├── dispatcher.rs # Handler routing
+│ │ └── types/ # Event class definitions
+│ ├── types.rs # Shared data classes
+│ └── backend/ # Storage backend bridge
+├── python/tryx/ # Python package
+│ ├── client.pyi # Client type stubs
+│ ├── events.pyi # Event type stubs
+│ ├── types.pyi # Shared type stubs
+│ ├── backend.pyi # Backend type stubs
+│ └── waproto/ # Protobuf definitions
+├── docs/ # This documentation
+└── examples/ # Usage examples
+```
+
+---
+
+## Example Projects
+
+| Example | Description |
+|---------|-------------|
+| [Basic Bot](https://github.com/krypton-byte/tryx/tree/dev/examples/basic_bot.py) | Echo bot with ping/help/time commands |
+| [Media Bot](https://github.com/krypton-byte/tryx/tree/dev/examples/media_bot.py) | Photo, document, audio, and video sending |
+| [Group Bot](https://github.com/krypton-byte/tryx/tree/dev/examples/group_bot.py) | Group admin operations |
+
+---
+
+## Links
+
+
+
+[**PyPI Package**](https://pypi.org/project/tryx/){ .md-link }
+Install with `pip install tryx`
+
+[**GitHub**](https://github.com/krypton-byte/tryx){ .md-link }
+Source code, issues, and releases
+
+[**Type Stubs**](api/client.md){ .md-link }
+Full `.pyi` API reference
+
+[**Tutorials**](tutorials/command-bot.md){ .md-link }
+Step-by-step bot guides
-Scenario-driven answers for practical problems.
diff --git a/docs/operations/reliability.md b/docs/operations/reliability.md
index 2b1243c..0b94904 100644
--- a/docs/operations/reliability.md
+++ b/docs/operations/reliability.md
@@ -43,6 +43,143 @@ async def retry(coro_factory, attempts=3):
!!! tip "Do not retry everything"
Structural payload errors should fail fast. Reserve retries for network/transient failures.
+---
+
+## Retry with Exponential Backoff
+
+When calling WhatsApp APIs (sending messages, uploading media), transient
+failures are common. Use exponential backoff to avoid hitting rate limits
+and to give servers time to recover.
+
+### Basic Exponential Backoff
+
+```python
+import asyncio
+import random
+
+
+async def retry_with_backoff(
+ coro_factory,
+ max_attempts: int = 5,
+ base_delay: float = 1.0,
+ max_delay: float = 60.0,
+ jitter: bool = True,
+):
+ """Retry a coroutine factory with exponential backoff.
+
+ Args:
+ coro_factory: Callable that returns a new coroutine each call.
+ max_attempts: Maximum number of attempts (including the first).
+ base_delay: Initial delay in seconds between retries.
+ max_delay: Maximum delay cap in seconds.
+ jitter: Add random jitter to prevent thundering herd.
+
+ Returns:
+ The result of the coroutine.
+
+ Raises:
+ The last exception if all attempts fail.
+ """
+ last_exc = None
+ for attempt in range(max_attempts):
+ try:
+ return await coro_factory()
+ except Exception as exc:
+ last_exc = exc
+ if attempt == max_attempts - 1:
+ break
+ delay = min(base_delay * (2 ** attempt), max_delay)
+ if jitter:
+ delay *= random.uniform(0.5, 1.0)
+ await asyncio.sleep(delay)
+ raise last_exc
+```
+
+### Usage Example
+
+```python
+@app.on(EvMessage)
+async def send_with_retry(client, event):
+ chat = event.data.message_info.source.chat
+ text = event.data.get_text() or ""
+
+ if text.lower() == "ping":
+ await retry_with_backoff(
+ lambda: client.send_text(chat, "pong"),
+ max_attempts=3,
+ base_delay=1.0,
+ )
+```
+
+### When to Use Backoff
+
+| Scenario | Strategy |
+| --- | --- |
+| Send message fails | Retry 2-3 times with 1-2s base delay |
+| Upload media fails | Retry 3-5 times with 2s base delay |
+| Network timeout | Retry 3 times with exponential backoff |
+| `RuntimeError` from client | Do NOT retry — likely a session/auth issue |
+| `EvTemporaryBan` received | Pause all operations, resume after ban expires |
+
+### When NOT to Retry
+
+- **Authentication errors** — Re-pair instead of retrying
+- **Invalid payload** — Fix the message, don't resend as-is
+- **`EvLoggedOut` / `EvStreamReplaced`** — Session is gone, re-initialize
+- **Permanent protocol errors** — Check message construction logic
+
+---
+
+## Rate Limit Awareness
+
+WhatsApp enforces rate limits. Exceeding them causes temporary bans
+(visible via `EvTemporaryBan`). To avoid this:
+
+- **Batch messages** — Send to multiple recipients with delays between
+ sends, not in a tight loop.
+- **Respect ban expiry** — When `EvTemporaryBan` fires, stop sending
+ entirely until the ban expires.
+- **Monitor message volume** — Track how many messages per minute your
+ bot sends and stay well below WhatsApp's limits.
+- **Spread work over time** — Use `asyncio.sleep()` between bulk
+ operations.
+
+```python
+@app.on(EvMessage)
+async def rate_limited_sender(client, event):
+ chat = event.data.message_info.source.chat
+ text = event.data.get_text() or ""
+
+ if text == "!broadcast":
+ recipients = [jid1, jid2, jid3]
+ for recipient in recipients:
+ await client.send_text(recipient, "Hello everyone!")
+ await asyncio.sleep(1.0) # 1 second between sends
+```
+
+### Temporary Ban Handling
+
+```python
+@app.on(EvTemporaryBan)
+async def on_ban(client, event):
+ ban_data = event.data
+ print(f"Banned: {ban_data.code}, expires: {ban_data.expire}")
+ # Stop all sending operations until ban expires
+ # Log the event for monitoring
+```
+
+---
+
+## Recommended Patterns Summary
+
+| Pattern | When | How |
+| --- | --- | --- |
+| Simple retry | Transient network failure | Fixed delay, 3 attempts |
+| Exponential backoff | API rate limits, server errors | Delay doubles each attempt, capped |
+| No retry | Auth errors, invalid payload | Fail fast, fix root cause |
+| Rate limiting | Bulk sending, broadcast | `asyncio.sleep()` between sends |
+| Ban detection | High-frequency operations | Listen for `EvTemporaryBan` |
+
## Handler Throughput Pattern
- Parse and validate quickly in event handler.
diff --git a/docs/reference/error-handling.md b/docs/reference/error-handling.md
index 7502e73..db56b58 100644
--- a/docs/reference/error-handling.md
+++ b/docs/reference/error-handling.md
@@ -1,68 +1,193 @@
# Error Handling
-Use exception classes and failure classification to decide whether to retry, fail fast, or trigger operator action.
+Use exception classes and failure classification to decide whether to retry,
+fail fast, or trigger operator action.
+
+---
## Exception Classes
-- `FailedBuildBot`
-- `FailedToDecodeProto`
-- `EventDispatchError`
-- `PyPayloadBuildError`
-- `UnsupportedBackend`
-- `UnsupportedEventType`
+| Exception | Category | Retryable | Description |
+|-----------|----------|-----------|-------------|
+| `FailedBuildBot` | Config | No | Bot initialization failed |
+| `FailedToDecodeProto` | Payload | No | Protobuf deserialization failed |
+| `EventDispatchError` | Runtime | Sometimes | Handler dispatch layer issue |
+| `PyPayloadBuildError` | Payload | No | Outbound message construction failed |
+| `UnsupportedBackend` | Config | No | Backend type not recognized |
+| `UnsupportedEventType` | Config | No | Event type not registered |
+
+**Backward-compatible aliases:**
-Backward-compatible aliases:
+| Alias | Maps To |
+|-------|---------|
+| `BuildBotError` | `FailedBuildBot` |
+| `UnsupportedBackendError` | `UnsupportedBackend` |
+| `UnsupportedEventTypeError` | `UnsupportedEventType` |
-- `BuildBotError`
-- `UnsupportedBackendError`
-- `UnsupportedEventTypeError`
+---
## Failure Classification
-| Category | Typical exceptions | Retry? |
-| --- | --- | --- |
-| Payload/shape issues | `PyPayloadBuildError`, `FailedToDecodeProto` | No (fix input) |
-| Dispatch/runtime issues | `EventDispatchError` | Sometimes |
-| Configuration issues | `UnsupportedBackend`, `UnsupportedEventType` | No (fix config/code) |
+| Category | Typical Exceptions | Retry? | Fix |
+|----------|-------------------|--------|-----|
+| **Payload/shape** | `PyPayloadBuildError`, `FailedToDecodeProto` | No | Fix input data |
+| **Dispatch/runtime** | `EventDispatchError` | Sometimes | Check handler code |
+| **Configuration** | `UnsupportedBackend`, `UnsupportedEventType` | No | Fix config or code |
-## Strategy
+---
-1. Catch specific Tryx exception classes first.
-2. Add contextual logs (`chat_jid`, `message_id`, handler name).
-3. Use retry only for transient failures.
-4. Avoid retry loops on structural payload errors.
+## Strategy
-## Namespace-aware Guidance
+1. **Catch specific Tryx exception classes first** — don't fall through to bare `Exception`
+2. **Add contextual logs** — include `chat_jid`, `message_id`, handler name
+3. **Use retry only for transient failures** — network, temporary server errors
+4. **Avoid retry loops on structural errors** — payload shape, config issues
-- Messaging and chat actions: validate target JID and payload before retry.
-- Group/community mutations: inspect per-participant response details.
-- Poll and media flows: persist context (`poll_id`, secrets, media metadata) before recovery attempts.
+---
-## Pattern Example
+## Pattern: Basic Error Handling
```python
try:
- await client.send_text(chat, "ok")
+ await client.send_text(chat_jid, "hello")
except PyPayloadBuildError as exc:
- # payload construction issue
- raise
+ # Non-retryable: payload construction issue
+ logger.error(f"Payload error: {exc}")
except EventDispatchError:
- # callback dispatch layer issue
- raise
+ # Potentially retryable: dispatch layer issue
+ logger.warning("Dispatch error, retrying...")
+ await retry(lambda: client.send_text(chat_jid, "hello"), attempts=3)
```
-## Pattern Example With Classification
+---
+
+## Pattern: Namespace-Aware Handling
+
+### Messaging and Chat Actions
+
+Validate target JID and payload before retry:
```python
try:
- await client.send_text(chat_jid, "ok")
+ await client.send_text(chat_jid, "hello")
except PyPayloadBuildError:
- # non-retryable
- await client.send_text(chat_jid, "payload invalid")
+ # JID or payload invalid — don't retry
+ await client.send_text(chat_jid, "Failed: invalid payload")
except EventDispatchError:
- # retry envelope can be applied
- await retry(lambda: client.send_text(chat_jid, "ok"), attempts=3)
+ # Retry transient failure
+ await retry(lambda: client.send_text(chat_jid, "hello"))
+```
+
+### Group/Community Mutations
+
+Inspect per-participant response details:
+
+```python
+try:
+ results = await client.groups.add_participants(group_jid, participants)
+ for r in results:
+ if r.error_code:
+ logger.warning(f"Participant {r.jid}: {r.error_code}")
+except Exception as e:
+ logger.error(f"Group mutation failed: {e}")
+```
+
+### Poll and Media Flows
+
+Persist context before recovery attempts:
+
+```python
+# Store poll metadata first
+poll_id, secret = await client.polls.create(to=chat_jid, name="Q", options=["A", "B"], selectable_count=1)
+
+# Now if vote fails, we have the poll_id and secret for recovery
+try:
+ await client.polls.vote(chat_jid, poll_id, creator_jid, secret, ["A"])
+except Exception as e:
+ logger.error(f"Vote failed for poll {poll_id}: {e}")
+ # We can retry using stored poll_id and secret
+```
+
+---
+
+## Pattern: Structured Logging
+
+```python
+import logging
+
+logger = logging.getLogger("bot")
+
+
+@app.on(EvMessage)
+async def safe_handler(client, event):
+ message_id = event.data.message_info.id
+ chat = event.data.message_info.source.chat
+
+ try:
+ text = event.data.get_text() or ""
+ await client.send_text(chat, f"Echo: {text}")
+ except PyPayloadBuildError as e:
+ logger.error(
+ "payload_error",
+ extra={
+ "message_id": message_id,
+ "chat": str(chat),
+ "error": str(e),
+ },
+ )
+ except Exception as e:
+ logger.error(
+ "handler_error",
+ extra={
+ "message_id": message_id,
+ "chat": str(chat),
+ "error": str(e),
+ "type": type(e).__name__,
+ },
+ exc_info=True,
+ )
```
-!!! tip "Incident response"
- Always log `message_id`, `chat_jid`, handler name, and exception type for post-mortem analysis.
+---
+
+## Handler-Level Protection
+
+Wrap your entire event handler to prevent one bad event from crashing
+your bot:
+
+```python
+@app.on(EvMessage)
+async def protected_handler(client, event):
+ try:
+ await process_message(client, event)
+ except Exception as e:
+ logger.error(f"Handler failed: {e}", exc_info=True)
+ # Don't crash — Tryx continues dispatching
+```
+
+!!! warning "Handler exceptions"
+ If a handler raises an exception, Tryx catches it and continues
+ dispatching other events. However, the error is logged and may affect
+ your bot's reliability. Always handle errors explicitly.
+
+---
+
+## Incident Response
+
+Always log these fields for post-mortem analysis:
+
+| Field | Example |
+|-------|---------|
+| `message_id` | `3EB0A1B2C3D4E5F6` |
+| `chat_jid` | `5599800001@s.whatsapp.net` |
+| `handler_name` | `on_message` |
+| `exception_type` | `PyPayloadBuildError` |
+| `timestamp` | `2025-01-15T10:30:00Z` |
+
+---
+
+## Related
+
+- [Reliability Playbook](../operations/reliability.md) — production error handling
+- [Troubleshooting](../operations/troubleshooting.md) — connection and event issues
+- [QnA](../faq/qna.md) — common questions
diff --git a/docs/reference/glossary.md b/docs/reference/glossary.md
index a1a8697..2d0cd25 100644
--- a/docs/reference/glossary.md
+++ b/docs/reference/glossary.md
@@ -1,31 +1,125 @@
# Glossary
-## JID
-A WhatsApp identifier containing user and server segments.
+---
-## LID
-An alternate addressing identity used in some multi-device contexts.
+## Core Concepts
-## Pairing
-Initial account linking flow between runtime and WhatsApp account.
+### JID
+**Jabber ID** — A WhatsApp identifier containing user and server segments.
+Examples: `5599800001@s.whatsapp.net` (personal), `120363000000000000@g.us`
+(group), `120363000000000000@newsletter` (channel).
-## Sync Action
-State update events propagated from server/app-state (mute, archive, delete, etc.).
+### LID
+**Linked ID** — An alternate addressing identity used in multi-device
+contexts. Maps between phone number JIDs and linked device identities.
-## EvMessage
-Main incoming message event class.
+### Signal Protocol
+The end-to-end encryption protocol used by WhatsApp. Tryx implements
+Double Ratchet and X3DH key exchange in Rust.
-## MessageInfo
-Metadata wrapper containing source, timestamps, message ID, and related flags.
+### Noise Protocol
+The transport encryption protocol used for WebSocket connections between
+Tryx and WhatsApp servers.
-## Newsletter
-Channel-like broadcast construct exposed through `client.newsletter`.
+---
+
+## Architecture
-## Dispatcher
+### Dispatcher
Internal callback registry mapping event classes to Python functions.
+Registered via `@app.on(EventClass)`.
+
+### PyO3
+The Rust crate used to create Python bindings. Tryx uses PyO3 to bridge
+Rust protocol logic with Python application code.
+
+### WACore
+Low-level protocol-oriented module exposing node and stanza structures
+for direct protocol interaction.
+
+### Protobuf
+Protocol Buffers — the binary serialization format used by WhatsApp for
+message encoding. Tryx uses `whatsapp.proto` for (de)serialization.
+
+---
+
+## Events
+
+### EvMessage
+Main incoming message event class. Contains message metadata, content,
+and media information.
+
+### Sync Action
+State update events propagated from server/app-state, such as mute,
+archive, delete, and read status changes.
+
+### EvStreamReplaced
+Event indicating another session has replaced your active WebSocket stream.
+
+### EvLoggedOut
+Event indicating the session is no longer valid and re-pairing is needed.
+
+---
+
+## Storage
+
+### Backend
+The persistence layer for Signal protocol state. Tryx supports three
+tiers: SQLite (built-in), FFI (native shared library), and Python (async).
+
+### FFI
+**Foreign Function Interface** — A C ABI shared library loaded via
+`libloading`. Used for high-performance storage backends like Postgres.
-## WACore
-Low-level protocol-oriented module exposing node/stanza structures.
+### StoreBase
+Abstract base class for pure Python storage backends. Implement all
+abstract methods to create custom backends.
-## Media Reupload
+---
+
+## Messaging
+
+### Newsletter
+Channel-like broadcast construct exposed through `client.newsletter`.
+Supports subscription, posting, and follower management.
+
+### Media Reupload
Workflow to refresh media retrieval paths for expired media references.
+Use `request_media_reupload()` when normal download fails.
+
+### Push-to-Talk (PTT)
+Voice message mode. Set `ptt=True` in `send_audio()` to send as a
+voice note rather than a regular audio clip.
+
+---
+
+## Groups
+
+### Announcement Group
+A group where only admins can send messages. Set via
+`client.groups.set_announce(jid, True)`.
+
+### Membership Approval
+Mode requiring admin approval for new members. Set via
+`client.groups.set_membership_approval(jid, MembershipApprovalMode.On)`.
+
+### Ephemeral Messages
+Disappearing message timer. Set via
+`client.groups.set_ephemeral(jid, seconds)`. Use 0 to disable.
+
+---
+
+## Deployment
+
+### Session State
+Persistent data from the Signal protocol handshake. Stored in the
+backend and reused across restarts. Never delete unless intentional.
+
+### Single Writer
+Rule: only one runtime instance should write to a given backend path.
+Multiple writers cause stream replacement and data corruption.
+
+### Blue/Green Rollout
+Deployment strategy where two identical environments (blue and green)
+take turns serving traffic. During rollout, ensure only one writes to
+the session backend.
diff --git a/docs/tutorials/command-bot.md b/docs/tutorials/command-bot.md
index 0dab7c0..f9b5df9 100644
--- a/docs/tutorials/command-bot.md
+++ b/docs/tutorials/command-bot.md
@@ -1,20 +1,23 @@
-# Tutorial: Command Automation
+# Tutorial: Command Bot
-Build a command-driven automation that stays maintainable as command count grows.
+Build a command-driven WhatsApp bot that stays maintainable as command count
+grows. This tutorial progresses from a minimal router to a production-ready
+pattern with error handling, idempotency, and logging.
!!! tip "Outcome"
At the end of this tutorial you will have:
- - clean command parser
- - command dispatch table
- - production-safe error handling and idempotency guard
+ - A clean command parser with table-driven dispatch
+ - Production-safe error handling and idempotency guards
+ - Structured logging for debugging
+
+---
## Level 1: Basic Command Router
```python
import asyncio
-
+from tryx.client import Tryx
from tryx.backend import SqliteStore
-from tryx.client import Tryx, TryxClient
from tryx.events import EvMessage
backend = SqliteStore("whatsapp.db")
@@ -26,7 +29,7 @@ def normalize(text: str | None) -> str:
@app.on(EvMessage)
-async def on_message(client: TryxClient, event: EvMessage) -> None:
+async def on_message(client, event):
text = normalize(event.data.get_text())
chat = event.data.message_info.source.chat
@@ -39,71 +42,92 @@ async def on_message(client: TryxClient, event: EvMessage) -> None:
asyncio.run(app.run())
```
-## Level 2: Table-driven Commands
+**How it works:**
+
+1. `normalize()` strips whitespace and lowercases for consistent matching
+2. `@app.on(EvMessage)` fires for every incoming message
+3. `quoted=event` replies to the original message (thread-like UX)
+
+---
+
+## Level 2: Table-Driven Commands
+
+For bots with many commands, use a dispatch table:
```python
from collections.abc import Awaitable, Callable
+from tryx.client import Tryx
+from tryx.backend import SqliteStore
+from tryx.events import EvMessage
+
+backend = SqliteStore("whatsapp.db")
+app = Tryx(backend)
CommandHandler = Callable[[TryxClient, EvMessage, list[str]], Awaitable[None]]
-async def cmd_ping(client: TryxClient, event: EvMessage, args: list[str]) -> None:
+async def cmd_ping(client, event, args):
chat = event.data.message_info.source.chat
await client.send_text(chat, "pong", quoted=event)
-async def cmd_echo(client: TryxClient, event: EvMessage, args: list[str]) -> None:
+async def cmd_echo(client, event, args):
chat = event.data.message_info.source.chat
await client.send_text(chat, " ".join(args) or "(empty)", quoted=event)
+async def cmd_help(client, event, args):
+ chat = event.data.message_info.source.chat
+ commands = ", ".join(COMMANDS.keys())
+ await client.send_text(chat, f"Commands: {commands}", quoted=event)
+
+
COMMANDS: dict[str, CommandHandler] = {
"ping": cmd_ping,
"echo": cmd_echo,
+ "help": cmd_help,
}
@app.on(EvMessage)
-async def on_command(client: TryxClient, event: EvMessage) -> None:
+async def on_command(client, event):
text = (event.data.get_text() or "").strip()
if not text.startswith("/"):
return
parts = text[1:].split()
- name, args = parts[0].lower(), parts[1:]
+ name = parts[0].lower()
+ args = parts[1:]
+
fn = COMMANDS.get(name)
if fn is None:
- await client.send_text(
- event.data.message_info.source.chat, f"Unknown command: {name}"
- )
+ chat = event.data.message_info.source.chat
+ await client.send_text(chat, f"Unknown command: {name}")
return
+
await fn(client, event, args)
```
-## Level 3: Production Pattern
+**Benefits:**
-=== "Reliability"
- - Add per-message idempotency key from `event.data.message_info.id`.
- - Separate command parsing from side effects.
- - Add structured logging (`command`, `chat`, `message_id`).
+- Adding a command = adding one async function + one dict entry
+- Command parsing is separated from side effects
+- Easy to test individual command handlers
-=== "Safety"
- - Use allowlist for admin-only commands.
- - Validate argument length/type before action.
- - Wrap outbound mutations with retry policy for transient failures.
+---
-=== "UX"
- - Send `client.chatstate.send_composing(chat)` during slow command execution.
- - Return explicit error message for invalid command arguments.
+## Level 3: Production Pattern
+
+### Idempotent Dispatch
-## Production Example: Idempotent Dispatch
+Prevent duplicate processing from reconnections or retries:
```python
seen_ids: set[str] = set()
@app.on(EvMessage)
-async def on_idempotent(client: TryxClient, event: EvMessage) -> None:
+async def on_idempotent(client, event):
message_id = event.data.message_info.id
if message_id in seen_ids:
return
@@ -112,15 +136,175 @@ async def on_idempotent(client: TryxClient, event: EvMessage) -> None:
# dispatch command here
```
-??? info "Advanced: plugin command registry"
- For larger bots, store command handlers in module-level plugins and register them into a central command registry at startup.
- This keeps each command domain isolated and testable.
-
!!! warning "Memory growth"
- If you store processed IDs in memory, add TTL eviction or persist compact dedupe state.
+ If you store processed IDs in memory, add TTL eviction or persist
+ compact dedupe state. For production, consider a bounded set or
+ Redis-backed deduplication.
+
+### Structured Logging
+
+```python
+import logging
+
+logger = logging.getLogger("bot")
+
+
+@app.on(EvMessage)
+async def on_logged(client, event):
+ message_id = event.data.message_info.id
+ chat = event.data.message_info.source.chat
+ text = event.data.get_text() or ""
+
+ logger.info(
+ "message_received",
+ extra={
+ "message_id": message_id,
+ "chat": str(chat),
+ "text_preview": text[:50],
+ },
+ )
+
+ # ... process command
+```
+
+### Error Recovery
+
+```python
+@app.on(EvMessage)
+async def on_safe(client, event):
+ try:
+ await process_command(client, event)
+ except ValueError as e:
+ chat = event.data.message_info.source.chat
+ await client.send_text(chat, f"Error: {e}")
+ except Exception as e:
+ logger.error(f"Handler failed: {e}", exc_info=True)
+ # Don't crash — Tryx continues dispatching
+```
+
+---
+
+## Level 4: Advanced Features
+
+### Typing Indicators
+
+Show typing while processing:
+
+```python
+@app.on(EvMessage)
+async def with_typing(client, event):
+ chat = event.data.message_info.source.chat
+
+ # Show "typing..." while processing
+ await client.chatstate.send_composing(chat)
+
+ # Simulate processing time
+ result = await expensive_operation()
+ await client.send_text(chat, f"Result: {result}", quoted=event)
+```
+
+### Admin-Only Commands
+
+```python
+ADMIN_JIDS = {
+ JID.whatsapp("5599800001"),
+ JID.whatsapp("5599800002"),
+}
+
+
+async def cmd_ban(client, event, args):
+ chat = event.data.message_info.source.chat
+ sender = event.data.message_info.source.sender
+
+ if sender not in ADMIN_JIDS:
+ await client.send_text(chat, "Admin only")
+ return
+
+ if not args:
+ await client.send_text(chat, "Usage: /ban
")
+ return
+
+ target = JID.whatsapp(args[0])
+ await client.blocking.block(target)
+ await client.send_text(chat, f"Blocked {args[0]}")
+```
+
+### Command Aliases
+
+```python
+COMMANDS = {
+ "ping": cmd_ping,
+ "p": cmd_ping, # alias
+ "echo": cmd_echo,
+ "e": cmd_echo, # alias
+ "help": cmd_help,
+ "h": cmd_help, # alias
+ "?": cmd_help, # alias
+}
+```
+
+---
+
+## Production Example: Full Bot
+
+```python
+import asyncio
+import logging
+from tryx.client import Tryx, TryxClient
+from tryx.backend import SqliteStore
+from tryx.events import EvMessage, EvConnected
+
+logging.basicConfig(level=logging.INFO)
+logger = logging.getLogger("bot")
+
+backend = SqliteStore("whatsapp.db")
+app = Tryx(backend)
+
+seen_ids: set[str] = set()
+
+
+@app.on(EvConnected)
+async def on_connected(client):
+ logger.info("Bot connected to WhatsApp")
+
+
+@app.on(EvMessage)
+async def on_message(client, event):
+ message_id = event.data.message_info.id
+
+ # Idempotency guard
+ if message_id in seen_ids:
+ return
+ seen_ids.add(message_id)
+
+ text = (event.data.get_text() or "").strip()
+ if not text.startswith("/"):
+ return
+
+ parts = text[1:].split()
+ name = parts[0].lower()
+ args = parts[1:]
+
+ fn = COMMANDS.get(name)
+ if fn is None:
+ return
+
+ try:
+ await fn(client, event, args)
+ except Exception as e:
+ logger.error(f"Command {name} failed: {e}", exc_info=True)
+ chat = event.data.message_info.source.chat
+ await client.send_text(chat, f"Error: {e}")
+
+
+asyncio.run(app.run())
+```
+
+---
-## Where To Go Next
+## Where to Go Next
-- [Chat Actions Namespace](../api/chat-actions.md)
-- [Profile and Privacy Tutorial](profile-privacy.md)
-- [Reliability Operations](../operations/reliability.md)
+- [Chat Actions Namespace](../api/chat-actions.md) — edit, revoke, react, archive
+- [Profile and Privacy Tutorial](profile-privacy.md) — manage profile settings
+- [Reliability Operations](../operations/reliability.md) — production error handling
+- [Media Workflows](media-workflows.md) — send photos, audio, video
diff --git a/examples/basic_bot.py b/examples/basic_bot.py
new file mode 100644
index 0000000..8cb7b4b
--- /dev/null
+++ b/examples/basic_bot.py
@@ -0,0 +1,102 @@
+"""Basic Echo Bot — replies to every text message.
+
+Commands:
+ ping -> reply pong
+ help -> show available commands
+ time -> show current server time
+ info -> show sender info
+"""
+
+import asyncio
+import os
+from datetime import datetime, timezone
+
+from tryx.backend import SqliteStore
+from tryx.client import Tryx, TryxClient
+from tryx.events import EvMessage, EvPairingQrCode
+
+DB_PATH = os.getenv("TRYX_DB_PATH", "whatsapp.db")
+
+
+def jid_to_text(jid: object) -> str:
+ """Format a JID object as user@server string."""
+ user = getattr(jid, "user", "")
+ server = getattr(jid, "server", "")
+ return f"{user}@{server}"
+
+
+# ── Setup ────────────────────────────────────────────────────────────────────
+
+backend = SqliteStore(DB_PATH)
+app = Tryx(backend)
+
+
+@app.on(EvPairingQrCode)
+async def on_pairing_qr(_client: TryxClient, event: EvPairingQrCode) -> None:
+ """Display the QR code for initial device pairing."""
+ print("=" * 40)
+ print("Scan this QR code with WhatsApp:")
+ print(event.code)
+ print("=" * 40)
+
+
+@app.on(EvMessage)
+async def on_message(client: TryxClient, event: EvMessage) -> None:
+ """Handle incoming messages and dispatch commands."""
+ data = event.data
+ info = data.message_info
+ source = info.source
+ chat_jid = source.chat
+ sender_jid = source.sender
+ text = (data.get_text() or "").strip()
+
+ print(f"[message] from={jid_to_text(sender_jid)} chat={jid_to_text(chat_jid)} text={text!r}")
+
+ if not text:
+ return
+
+ cmd = text.lower()
+
+ # ── /ping ────────────────────────────────────────────────────────────
+ if cmd == "ping":
+ await client.chatstate.send_composing(chat_jid)
+ await asyncio.sleep(1) # Simulate processing
+ await client.send_text(chat_jid, "pong", quoted=event)
+ await client.chatstate.send_paused(chat_jid)
+
+ # ── /help ────────────────────────────────────────────────────────────
+ elif cmd == "help":
+ help_text = (
+ "*Available Commands*\n\n"
+ "• ping — check if bot is alive\n"
+ "• help — show this message\n"
+ "• time — show current time\n"
+ "• info — show your info"
+ )
+ await client.send_text(chat_jid, help_text, quoted=event)
+
+ # ── /time ────────────────────────────────────────────────────────────
+ elif cmd == "time":
+ now = datetime.now(timezone.utc).strftime("%Y-%m-%d %H:%M:%S UTC")
+ await client.send_text(chat_jid, f"Current time: {now}", quoted=event)
+
+ # ── /info ────────────────────────────────────────────────────────────
+ elif cmd == "info":
+ info_lines = [
+ f"*Your Info*",
+ f"• JID: {jid_to_text(sender_jid)}",
+ f"• Chat: {jid_to_text(chat_jid)}",
+ f"• Push name: {info.push_name or '(none)'}",
+ ]
+ await client.send_text(chat_jid, "\n".join(info_lines), quoted=event)
+
+
+# ── Entry point ──────────────────────────────────────────────────────────────
+
+async def main() -> None:
+ print(f"Starting basic bot with DB: {DB_PATH}")
+ await app.run()
+
+
+if __name__ == "__main__":
+ asyncio.run(main())
diff --git a/examples/group_bot.py b/examples/group_bot.py
new file mode 100644
index 0000000..5448162
--- /dev/null
+++ b/examples/group_bot.py
@@ -0,0 +1,167 @@
+"""Group Management Bot — demonstrates group admin operations.
+
+Commands (admin only):
+ info -> show group metadata
+ pin -> pin the group
+ unpin -> unpin the group
+ announce -> toggle announcement-only mode
+ lock -> toggle group info lock
+ ephemeral N -> set disappearing messages timer (seconds)
+ members -> list group members
+ help -> show available commands
+"""
+
+import asyncio
+import os
+
+from tryx.backend import SqliteStore
+from tryx.client import Tryx, TryxClient
+from tryx.events import EvMessage, EvPairingQrCode
+
+DB_PATH = os.getenv("TRYX_DB_PATH", "whatsapp.db")
+
+
+def jid_to_text(jid: object) -> str:
+ """Format a JID object as user@server string."""
+ user = getattr(jid, "user", "")
+ server = getattr(jid, "server", "")
+ return f"{user}@{server}"
+
+
+# ── Setup ────────────────────────────────────────────────────────────────────
+
+backend = SqliteStore(DB_PATH)
+app = Tryx(backend)
+
+
+@app.on(EvPairingQrCode)
+async def on_pairing_qr(_client: TryxClient, event: EvPairingQrCode) -> None:
+ """Display the QR code for initial device pairing."""
+ print("=" * 40)
+ print("Scan this QR code with WhatsApp:")
+ print(event.code)
+ print("=" * 40)
+
+
+@app.on(EvMessage)
+async def on_message(client: TryxClient, event: EvMessage) -> None:
+ """Handle group admin commands."""
+ data = event.data
+ info = data.message_info
+ source = info.source
+ chat_jid = source.chat
+ sender_jid = source.sender
+ text = (data.get_text() or "").strip()
+
+ print(f"[message] from={jid_to_text(sender_jid)} chat={jid_to_text(chat_jid)} text={text!r}")
+
+ if not text or not source.is_group:
+ return
+
+ cmd_parts = text.lower().split()
+ cmd = cmd_parts[0] if cmd_parts else ""
+
+ # ── /info ────────────────────────────────────────────────────────────
+ if cmd == "info":
+ try:
+ metadata = await client.groups.get_metadata(chat_jid)
+ lines = [
+ f"*Group Info*",
+ f"• Name: {metadata.subject}",
+ f"• Members: {metadata.size or len(metadata.participants)}",
+ f"• Locked: {'Yes' if metadata.is_locked else 'No'}",
+ f"• Announce: {'Yes' if metadata.is_announcement else 'No'}",
+ f"• Ephemeral: {metadata.ephemeral_expiration}s",
+ ]
+ if metadata.description:
+ lines.append(f"• Description: {metadata.description}")
+ await client.send_text(chat_jid, "\n".join(lines), quoted=event)
+ except Exception as exc:
+ await client.send_text(chat_jid, f"Error: {exc}", quoted=event)
+
+ # ── /pin ─────────────────────────────────────────────────────────────
+ elif cmd == "pin":
+ await client.chat_actions.pin_chat(chat_jid)
+ await client.send_text(chat_jid, "Chat pinned", quoted=event)
+
+ # ── /unpin ───────────────────────────────────────────────────────────
+ elif cmd == "unpin":
+ await client.chat_actions.unpin_chat(chat_jid)
+ await client.send_text(chat_jid, "Chat unpinned", quoted=event)
+
+ # ── /announce ────────────────────────────────────────────────────────
+ elif cmd == "announce":
+ try:
+ metadata = await client.groups.get_metadata(chat_jid)
+ new_value = not metadata.is_announcement
+ await client.groups.set_announce(chat_jid, new_value)
+ state = "enabled" if new_value else "disabled"
+ await client.send_text(chat_jid, f"Announcement mode {state}", quoted=event)
+ except Exception as exc:
+ await client.send_text(chat_jid, f"Error: {exc}", quoted=event)
+
+ # ── /lock ────────────────────────────────────────────────────────────
+ elif cmd == "lock":
+ try:
+ metadata = await client.groups.get_metadata(chat_jid)
+ new_value = not metadata.is_locked
+ await client.groups.set_locked(chat_jid, new_value)
+ state = "locked" if new_value else "unlocked"
+ await client.send_text(chat_jid, f"Group info {state}", quoted=event)
+ except Exception as exc:
+ await client.send_text(chat_jid, f"Error: {exc}", quoted=event)
+
+ # ── /ephemeral N ─────────────────────────────────────────────────────
+ elif cmd == "ephemeral":
+ if len(cmd_parts) < 2:
+ await client.send_text(chat_jid, "Usage: /ephemeral \n0 = off", quoted=event)
+ return
+ try:
+ seconds = int(cmd_parts[1])
+ await client.groups.set_ephemeral(chat_jid, seconds)
+ if seconds == 0:
+ await client.send_text(chat_jid, "Disabling disappearing messages", quoted=event)
+ else:
+ await client.send_text(chat_jid, f"Disappearing messages set to {seconds}s", quoted=event)
+ except ValueError:
+ await client.send_text(chat_jid, "Invalid number", quoted=event)
+
+ # ── /members ─────────────────────────────────────────────────────────
+ elif cmd == "members":
+ try:
+ metadata = await client.groups.get_metadata(chat_jid)
+ lines = [f"*Members ({len(metadata.participants)})*"]
+ for p in metadata.participants[:30]: # limit to 30
+ role = " 👑" if p.is_admin else ""
+ lines.append(f"• {jid_to_text(p.jid)}{role}")
+ if len(metadata.participants) > 30:
+ lines.append(f"• ... and {len(metadata.participants) - 30} more")
+ await client.send_text(chat_jid, "\n".join(lines), quoted=event)
+ except Exception as exc:
+ await client.send_text(chat_jid, f"Error: {exc}", quoted=event)
+
+ # ── /help ────────────────────────────────────────────────────────────
+ elif cmd == "help":
+ help_text = (
+ "*Group Admin Commands*\n\n"
+ "• info — show group metadata\n"
+ "• pin — pin the group\n"
+ "• unpin — unpin the group\n"
+ "• announce — toggle announcement-only mode\n"
+ "• lock — toggle group info lock\n"
+ "• ephemeral N — set disappearing messages timer\n"
+ "• members — list group members\n"
+ "• help — show this message"
+ )
+ await client.send_text(chat_jid, help_text, quoted=event)
+
+
+# ── Entry point ──────────────────────────────────────────────────────────────
+
+async def main() -> None:
+ print(f"Starting group bot with DB: {DB_PATH}")
+ await app.run()
+
+
+if __name__ == "__main__":
+ asyncio.run(main())
diff --git a/examples/media_bot.py b/examples/media_bot.py
new file mode 100644
index 0000000..6c8dd13
--- /dev/null
+++ b/examples/media_bot.py
@@ -0,0 +1,159 @@
+"""Media Bot — demonstrates sending various media types.
+
+Commands:
+ photo -> send a sample photo from URL
+ document -> send a sample PDF document
+ audio -> send a sample audio clip
+ video -> send a sample video clip
+ sticker -> send a sample sticker
+ gif -> send a sample GIF
+"""
+
+import asyncio
+import os
+from urllib.request import urlopen
+
+from tryx.backend import SqliteStore
+from tryx.client import Tryx, TryxClient
+from tryx.events import EvMessage, EvPairingQrCode
+
+DB_PATH = os.getenv("TRYX_DB_PATH", "whatsapp.db")
+
+# ── Sample media URLs (public domain) ────────────────────────────────────────
+
+SAMPLE_MEDIA = {
+ "photo": {
+ "url": "https://samplelib.com/lib/preview/png/sample-boat-400x300.png",
+ "name": "sample-boat.png",
+ },
+ "document": {
+ "url": "https://www.w3.org/WAI/ER/tests/xhtml/testfiles/resources/pdf/dummy.pdf",
+ "name": "sample-document.pdf",
+ },
+ "audio": {
+ "url": "https://samplelib.com/lib/preview/mp3/sample-3s.mp3",
+ "name": "sample-audio.mp3",
+ },
+ "video": {
+ "url": "https://samplelib.com/lib/preview/mp4/sample-5s.mp4",
+ "name": "sample-video.mp4",
+ },
+}
+
+
+def jid_to_text(jid: object) -> str:
+ """Format a JID object as user@server string."""
+ user = getattr(jid, "user", "")
+ server = getattr(jid, "server", "")
+ return f"{user}@{server}"
+
+
+async def download_bytes(url: str) -> bytes:
+ """Download bytes from an HTTPS URL. Rejects non-HTTPS for safety."""
+ if not url.startswith("https://"):
+ raise ValueError(f"Refusing to download from non-HTTPS URL: {url}")
+
+ def _download() -> bytes:
+ with urlopen(url, timeout=30) as response: # noqa: S310
+ return response.read()
+
+ return await asyncio.to_thread(_download)
+
+
+# ── Setup ────────────────────────────────────────────────────────────────────
+
+backend = SqliteStore(DB_PATH)
+app = Tryx(backend)
+
+
+@app.on(EvPairingQrCode)
+async def on_pairing_qr(_client: TryxClient, event: EvPairingQrCode) -> None:
+ """Display the QR code for initial device pairing."""
+ print("=" * 40)
+ print("Scan this QR code with WhatsApp:")
+ print(event.code)
+ print("=" * 40)
+
+
+@app.on(EvMessage)
+async def on_message(client: TryxClient, event: EvMessage) -> None:
+ """Handle incoming media requests."""
+ data = event.data
+ source = data.message_info.source
+ chat_jid = source.chat
+ sender_jid = source.sender
+ text = (data.get_text() or "").strip().lower()
+
+ print(f"[message] from={jid_to_text(sender_jid)} chat={jid_to_text(chat_jid)} text={text!r}")
+
+ if not text:
+ return
+
+ # ── /photo ───────────────────────────────────────────────────────────
+ if text == "photo":
+ try:
+ await client.chatstate.send_composing(chat_jid)
+ photo_data = await download_bytes(SAMPLE_MEDIA["photo"]["url"])
+ result = await client.send_photo(
+ chat_jid, photo_data, caption="Sample photo from public domain"
+ )
+ print(f"[photo] sent: {result.message_id}")
+ except Exception as exc:
+ await client.send_text(chat_jid, f"Failed to send photo: {exc}", quoted=event)
+
+ # ── /document ────────────────────────────────────────────────────────
+ elif text == "document":
+ try:
+ await client.chatstate.send_composing(chat_jid)
+ doc_data = await download_bytes(SAMPLE_MEDIA["document"]["url"])
+ result = await client.send_document(
+ chat_jid, doc_data, file_name="sample.pdf", caption="Sample PDF document"
+ )
+ print(f"[document] sent: {result.message_id}")
+ except Exception as exc:
+ await client.send_text(chat_jid, f"Failed to send document: {exc}", quoted=event)
+
+ # ── /audio ───────────────────────────────────────────────────────────
+ elif text == "audio":
+ try:
+ await client.chatstate.send_composing(chat_jid)
+ audio_data = await download_bytes(SAMPLE_MEDIA["audio"]["url"])
+ result = await client.send_audio(chat_jid, audio_data)
+ print(f"[audio] sent: {result.message_id}")
+ except Exception as exc:
+ await client.send_text(chat_jid, f"Failed to send audio: {exc}", quoted=event)
+
+ # ── /video ───────────────────────────────────────────────────────────
+ elif text == "video":
+ try:
+ await client.chatstate.send_composing(chat_jid)
+ video_data = await download_bytes(SAMPLE_MEDIA["video"]["url"])
+ result = await client.send_video(
+ chat_jid, video_data, caption="Sample video clip"
+ )
+ print(f"[video] sent: {result.message_id}")
+ except Exception as exc:
+ await client.send_text(chat_jid, f"Failed to send video: {exc}", quoted=event)
+
+ # ── /help ────────────────────────────────────────────────────────────
+ elif text == "help":
+ help_text = (
+ "*Media Bot Commands*\n\n"
+ "• photo — send a sample PNG image\n"
+ "• document — send a sample PDF\n"
+ "• audio — send a sample MP3 clip\n"
+ "• video — send a sample MP4 video\n"
+ "• help — show this message"
+ )
+ await client.send_text(chat_jid, help_text, quoted=event)
+
+
+# ── Entry point ──────────────────────────────────────────────────────────────
+
+async def main() -> None:
+ print(f"Starting media bot with DB: {DB_PATH}")
+ await app.run()
+
+
+if __name__ == "__main__":
+ asyncio.run(main())
diff --git a/libs/whatsapp-rust b/libs/whatsapp-rust
index d610523..1489b7d 160000
--- a/libs/whatsapp-rust
+++ b/libs/whatsapp-rust
@@ -1 +1 @@
-Subproject commit d610523e81c5589971099360e7f0627b32eced07
+Subproject commit 1489b7da9a6a7e3cadc4337ee46399da7de25915
diff --git a/mkdocs.yml b/mkdocs.yml
index c526cb8..c724ea9 100644
--- a/mkdocs.yml
+++ b/mkdocs.yml
@@ -1,4 +1,4 @@
-site_name: Tryx Documentation
+site_name: Tryx
site_description: Rust-powered Python SDK for event-driven WhatsApp automation
site_author: krypton-byte
site_url: https://krypton-byte.github.io/tryx/
@@ -10,39 +10,39 @@ nav:
- Home: index.md
- Getting Started:
- Installation: getting-started/installation.md
- - Contributing: getting-started/contributing.md
- Quick Start: getting-started/quickstart.md
- Authentication Flow: getting-started/authentication.md
+ - Contributing: getting-started/contributing.md
- Core Concepts:
- Architecture: core-concepts/architecture.md
- - Storage Backends: core-concepts/storage-backends.md
- Event Model: core-concepts/event-model.md
+ - Storage Backends: core-concepts/storage-backends.md
- Type System: core-concepts/type-system.md
- API Reference:
- Client API Gateway: api/client.md
- Storage Backends: api/backend.md
- Client Namespaces:
- - Contact Namespace: api/contact.md
- - Chat Actions Namespace: api/chat-actions.md
- - Community Namespace: api/community.md
- - Newsletter Namespace: api/newsletter.md
- - Groups Namespace: api/groups.md
- - Status Namespace: api/status.md
- - Chatstate Namespace: api/chatstate.md
- - Blocking Namespace: api/blocking.md
- - Polls Namespace: api/polls.md
- - Presence Namespace: api/presence.md
- - Privacy Namespace: api/privacy.md
- - Profile Namespace: api/profile.md
+ - Contact: api/contact.md
+ - Chat Actions: api/chat-actions.md
+ - Community: api/community.md
+ - Newsletter: api/newsletter.md
+ - Groups: api/groups.md
+ - Status: api/status.md
+ - Chatstate: api/chatstate.md
+ - Blocking: api/blocking.md
+ - Polls: api/polls.md
+ - Presence: api/presence.md
+ - Privacy: api/privacy.md
+ - Profile: api/profile.md
- Events API: api/events.md
- Types API: api/types.md
- - Exceptions API: api/exceptions.md
- - Helpers API: api/helpers.md
- - WACore API: api/wacore.md
+ - Exceptions: api/exceptions.md
+ - Helpers: api/helpers.md
+ - WACore: api/wacore.md
- Tutorials:
- Command Bot: tutorials/command-bot.md
- - Profile and Privacy: tutorials/profile-privacy.md
- - Poll Survey Workflow: tutorials/poll-survey.md
+ - Profile & Privacy: tutorials/profile-privacy.md
+ - Poll Survey: tutorials/poll-survey.md
- Media Workflows: tutorials/media-workflows.md
- Group Automation: tutorials/group-automation.md
- Operations:
@@ -51,16 +51,16 @@ nav:
- Troubleshooting: operations/troubleshooting.md
- Performance: operations/performance.md
- Security: operations/security.md
- - FAQ:
- - QnA: faq/qna.md
- Reference:
+ - FAQ: faq/qna.md
- Glossary: reference/glossary.md
- Error Handling: reference/error-handling.md
- Roadmap: reference/roadmap.md
- - Changelog Policy: reference/changelog.md
+ - Changelog: reference/changelog.md
theme:
name: material
+ variant: modern
language: en
custom_dir: docs/overrides
font:
@@ -92,14 +92,14 @@ theme:
- media: "(prefers-color-scheme: light)"
scheme: default
primary: teal
- accent: amber
+ accent: teal
toggle:
icon: material/brightness-7
name: Switch to dark mode
- media: "(prefers-color-scheme: dark)"
scheme: slate
primary: teal
- accent: orange
+ accent: teal
toggle:
icon: material/brightness-4
name: Switch to light mode
@@ -108,8 +108,6 @@ theme:
plugins:
- search
- - minify:
- minify_html: true
- mike:
alias_type: symlink
redirect_template: null
@@ -151,8 +149,8 @@ markdown_extensions:
- tables
- pymdownx.details
- pymdownx.emoji:
- emoji_index: !!python/name:material.extensions.emoji.twemoji
- emoji_generator: !!python/name:material.extensions.emoji.to_svg
+ emoji_index: !!python/name:zensical.extensions.emoji.twemoji
+ emoji_generator: !!python/name:zensical.extensions.emoji.to_svg
- pymdownx.inlinehilite
- pymdownx.superfences:
custom_fences:
diff --git a/pyproject.toml b/pyproject.toml
index 1513128..3f4bf61 100644
--- a/pyproject.toml
+++ b/pyproject.toml
@@ -47,7 +47,7 @@ classifiers = [
urls = { Homepage = "https://github.com/krypton-byte/tryx", Repository = "https://github.com/krypton-byte/tryx", Documentation = "https://krypton-byte.github.io/tryx/", Issues = "https://github.com/krypton-byte/tryx/issues" }
dynamic = ["version"]
dependencies = [
- "protobuf>=5.29.6",
+ "protobuf>=5.28.3,<7",
]
[tool.maturin]
@@ -56,24 +56,28 @@ python-source = "python"
[dependency-groups]
dev = [
+ "grpcio-tools>=1.70.0",
"maturin>=1.12,<2.0",
"mypy>=1.14.0",
"mypy-protobuf>=5.0.0",
"pre-commit>=3.7.1,<4.4; python_version >= '3.9' and python_version < '3.10'",
"pre-commit>=4.5.0; python_version >= '3.10'",
+ "pyright>=1.1.390",
"pytest>=8.3.5",
"python-semantic-release>=9.21.1",
"ruff>=0.11.4",
"segno>=1.6.6",
]
docs = [
- "mkdocs>=1.6.0; python_version >= '3.10'",
- "mkdocs-material>=9.6.0; python_version >= '3.10'",
- "mkdocs-minify-plugin>=0.8.0; python_version >= '3.10'",
+ "zensical>=0.0.57; python_version >= '3.10'",
+ "mkdocs-material>=9.6; python_version >= '3.10'",
"mkdocstrings>=1.0.0; python_version >= '3.10'",
"mkdocstrings-python>=1.12.0; python_version >= '3.10'",
"mike>=2.1.0; python_version >= '3.10'",
]
+[tool.uv.sources]
+mike = { git = "https://github.com/squidfunk/mike.git" }
+
# include = [
# { path = "python/tryx/__init__.py", format = ["sdist", "wheel"] },
# { path = "python/tryx/yaya.py", format = ["sdist", "wheel"] },
diff --git a/python/tryx/__init__.pyi b/python/tryx/__init__.pyi
index 09fa1ae..4711576 100644
--- a/python/tryx/__init__.pyi
+++ b/python/tryx/__init__.pyi
@@ -226,7 +226,7 @@ from .events import (
DeviceListUpdateType as DeviceListUpdateType,
)
from .events import (
- DeviceNottificationInfo as DeviceNottificationInfo,
+ DeviceNotificationInfo as DeviceNotificationInfo,
)
from .events import (
Dispatcher as Dispatcher,
@@ -409,7 +409,7 @@ from .events import (
PictureUpdateData as PictureUpdateData,
)
from .events import (
- PinUpdatedata as PinUpdatedata,
+ PinUpdateData as PinUpdateData,
)
from .events import (
ReceiptType as ReceiptType,
diff --git a/python/tryx/backend.pyi b/python/tryx/backend.pyi
index 279439b..76f49b1 100644
--- a/python/tryx/backend.pyi
+++ b/python/tryx/backend.pyi
@@ -50,7 +50,18 @@ class SqliteStore(BackendBase):
path: str
- def __init__(self, path: str) -> None: ...
+ def __init__(self, path: str) -> None:
+ """
+ Create a SQLite storage backend.
+
+ Args:
+ path: Filesystem path to the database file.
+
+ Example::
+
+ store = SqliteStore('session.db')
+ """
+ ...
# ── Internal Rust structs (JSON-serialized across FFI) ──────────────────────
@@ -100,7 +111,7 @@ class MsgSecretEntry:
class FfiStoreProtocol(Protocol):
"""Structural typing protocol for native FFI-based storage backends.
- Any object exposing a ``lib_path`` attribute and a ``connect_string``
+ Any object exposing a ``lib_path`` attribute and a ``config_json``
attribute satisfies this protocol without inheriting from anything
in the Tryx package — keeping third-party store packages fully
decoupled.
@@ -111,18 +122,20 @@ class FfiStoreProtocol(Protocol):
Example (tryx-store-postgres)::
+ import json
+
class PostgresStore:
lib_path: str # path to compiled .so
- connect_string: str
+ config_json: str
backend = PostgresStore(
lib_path="./libtryx_pg.so",
- connect_string="host=localhost dbname=tryx",
+ config_json=json.dumps({"host": "localhost", "dbname": "tryx"}),
)
"""
lib_path: str
- connect_string: str
+ config_json: str
# ── Pure Python Store Base ───────────────────────────────────────────────────
diff --git a/python/tryx/client.pyi b/python/tryx/client.pyi
index c212c61..b0fb73d 100644
--- a/python/tryx/client.pyi
+++ b/python/tryx/client.pyi
@@ -1,42 +1,26 @@
"""High-level client API surface for Tryx Python bindings."""
-from typing import Any, Awaitable, Callable, TypeVar
+from typing import Awaitable, Callable, TypeVar
from .backend import BackendBase, FfiStoreProtocol, StoreBase
-from .events import EvMessage
+from .events import Dispatcher, EvMessage
+from .media import (
+ AudioPlayer as AudioPlayer,
+)
from .media import (
AudioSink,
AudioSource,
VideoSink,
VideoSource,
)
+from .media import (
+ VideoPlayer as VideoPlayer,
+)
from .types import JID, MediaReuploadResult, ProfilePicture, SendResult, UploadResponse
from .wacore import MediaType, Node
from .waproto.whatsapp_pb2 import Message as MessageProto
from .waproto.whatsapp_pb2 import MessageKey, SyncActionValue
-# Re-export media types that are registered in the client module
-class AudioPlayer(AudioSource):
- """Built-in audio player that decodes and plays audio files."""
-
- def __init__(self, buffer_frames: int = ...) -> None: ...
- def play(self, path: str, mode: str = ...) -> None: ...
- def stop(self) -> None: ...
- def pause(self) -> None: ...
- def resume(self) -> None: ...
- def enqueue(self, path: str) -> None: ...
- def skip(self) -> None: ...
- def clear_queue(self) -> None: ...
- @property
- def state(self) -> str: ...
-
-class VideoPlayer(VideoSource):
- """Built-in video player that demuxes and decodes video files."""
-
- def __init__(self, fps: int = ...) -> None: ...
- def play(self, path: str) -> None: ...
- def stop(self) -> None: ...
-
EventT = TypeVar("EventT")
class IsOnWhatsAppResult:
@@ -84,15 +68,67 @@ class Tryx:
- ``StoreBase`` subclass — pure Python custom backend
"""
- handlers: Any
+ handlers: Dispatcher
+
+ def __init__(self, backend: BackendBase | FfiStoreProtocol | StoreBase) -> None:
+ """Create a Tryx runtime with the given storage backend.
+
+ Args:
+ backend: Storage backend (SqliteStore, FfiStoreProtocol, or StoreBase).
+
+ Example::
- def __init__(self, backend: BackendBase | FfiStoreProtocol | StoreBase) -> None: ...
- def get_client(self) -> TryxClient: ...
+ from tryx.backend import SqliteStore
+ from tryx.client import Tryx
+
+ app = Tryx(SqliteStore('session.db'))
+ """
+ ...
+ def get_client(self) -> TryxClient:
+ """Return the connected client facade.
+
+ Raises:
+ RuntimeError: If the client is not yet running.
+
+ Example::
+
+ client = app.get_client()
+ await client.send_text(to=JID('123', 's.whatsapp.net'), text='hi')
+ """
+ ...
def on(
self, event_type: type[EventT]
- ) -> Callable[[Callable[..., Awaitable[Any]]], Callable[..., Awaitable[Any]]]: ...
- def run(self) -> Awaitable[None]: ...
- def run_blocking(self) -> None: ...
+ ) -> Callable[
+ [Callable[[TryxClient, EventT], Awaitable[None]]],
+ Callable[[TryxClient, EventT], Awaitable[None]],
+ ]:
+ """Decorator to register an async event handler.
+
+ Example::
+
+ @app.on(EvMessage)
+ async def handler(client: TryxClient, event: EvMessage) -> None:
+ text = event.data.get_text()
+ chat = event.data.message_info.source.chat
+ await client.send_text(to=chat, text=text)
+ """
+ ...
+ def run(self) -> Awaitable[None]:
+ """Start the client in async mode.
+
+ Example::
+
+ asyncio.run(app.run())
+ """
+ ...
+ def run_blocking(self) -> None:
+ """Start the client and block until it exits.
+
+ Example::
+
+ app.run_blocking()
+ """
+ ...
class TryxClient:
"""Connected client facade for messaging and feature namespaces."""
@@ -115,14 +151,97 @@ class TryxClient:
events: EventsClient
voip: VoipClient
- def is_connected(self) -> bool: ...
- async def download_media(self, message: DownloadableMedia) -> bytes: ...
- async def upload_file(self, path: str, media_type: MediaType) -> UploadResponse: ...
- async def upload(self, data: bytes, media_type: MediaType) -> UploadResponse: ...
- async def send_message(self, to: JID, message: MessageProto) -> SendResult: ...
+ def is_connected(self) -> bool:
+ """Return True if the underlying WebSocket is connected."""
+ ...
+ async def download_media(self, message: DownloadableMedia) -> bytes:
+ """Download media content from a WhatsApp message.
+
+ Accepts any protobuf media type (Image, Video, Audio, Document, Sticker).
+
+ Returns:
+ Raw media bytes.
+
+ Example::
+
+ data = await client.download_media(event.data.raw_proto.image_message)
+ """
+ ...
+ async def upload_file(self, path: str, media_type: MediaType) -> UploadResponse:
+ """Upload a file from disk to WhatsApp servers.
+
+ Args:
+ path: Filesystem path to the file.
+ media_type: Category of media (MediaType.Image, etc.).
+
+ Returns:
+ Upload metadata including URL, media key, and hashes.
+
+ Example::
+
+ resp = await client.upload_file('photo.jpg', MediaType.Image)
+ """
+ ...
+ async def upload(self, data: bytes, media_type: MediaType) -> UploadResponse:
+ """Upload raw bytes to WhatsApp servers.
+
+ Args:
+ data: Raw file content.
+ media_type: Category of media.
+
+ Returns:
+ Upload metadata.
+ """
+ ...
+ async def send_message(self, to: JID, message: MessageProto) -> SendResult:
+ """Send a pre-built protobuf message directly.
+
+ Use this for raw protocol-level sends when the helper methods
+ (``send_text``, ``send_photo``, etc.) are not sufficient.
+
+ Args:
+ to: Recipient JID.
+ message: Fully constructed protobuf Message.
+
+ Returns:
+ SendResult with the server-assigned message ID.
+
+ Raises:
+ RuntimeError: If the client is not running.
+
+ Example::
+
+ from tryx.waproto.whatsapp_pb2 import Message
+
+ msg = Message(conversation="Hello from raw proto!")
+ result = await client.send_message(
+ to=JID('123', 's.whatsapp.net'),
+ message=msg,
+ )
+ """
+ ...
async def send_text(
self, to: JID, text: str, quoted: EvMessage | None = None
- ) -> SendResult: ...
+ ) -> SendResult:
+ """Send a plain text message.
+
+ Args:
+ to: Recipient JID.
+ text: Message body.
+ quoted: Optional message to quote-reply.
+
+ Returns:
+ SendResult with the server-assigned message ID.
+
+ Example::
+
+ result = await client.send_text(
+ to=JID('123', 's.whatsapp.net'),
+ text='Hello!',
+ )
+ print(result.message_id)
+ """
+ ...
async def send_photo(
self,
to: JID,
@@ -130,7 +249,37 @@ class TryxClient:
mimetype: str | None = None,
caption: str | None = None,
quoted: EvMessage | None = None,
- ) -> SendResult: ...
+ ) -> SendResult:
+ """Send an image with an optional caption.
+
+ The image is uploaded to WhatsApp servers before the message is sent.
+ If *mimetype* is ``None``, it is auto-detected from the raw bytes
+ (defaults to ``image/jpeg`` on failure).
+
+ Args:
+ to: Recipient JID.
+ photo_data: Raw image bytes.
+ mimetype: MIME type (auto-detected if None).
+ caption: Optional image caption.
+ quoted: Optional message to quote-reply.
+
+ Returns:
+ SendResult with the server-assigned message ID.
+
+ Raises:
+ RuntimeError: If the client is not running or upload fails.
+
+ Example::
+
+ with open('photo.jpg', 'rb') as f:
+ photo_data = f.read()
+ result = await client.send_photo(
+ to=JID('123', 's.whatsapp.net'),
+ photo_data=photo_data,
+ caption='Check this out!',
+ )
+ """
+ ...
async def send_document(
self,
to: JID,
@@ -139,7 +288,39 @@ class TryxClient:
file_name: str | None = None,
caption: str | None = None,
quoted: EvMessage | None = None,
- ) -> SendResult: ...
+ ) -> SendResult:
+ """Send a document/file with an optional caption.
+
+ The document is uploaded to WhatsApp servers before the message is sent.
+ If *mimetype* is ``None``, it is auto-detected from the raw bytes
+ (defaults to ``application/octet-stream`` on failure).
+
+ Args:
+ to: Recipient JID.
+ document_data: Raw document bytes.
+ mimetype: MIME type (auto-detected if None).
+ file_name: Display file name on the recipient side.
+ caption: Optional document caption.
+ quoted: Optional message to quote-reply.
+
+ Returns:
+ SendResult with the server-assigned message ID.
+
+ Raises:
+ RuntimeError: If the client is not running or upload fails.
+
+ Example::
+
+ with open('report.pdf', 'rb') as f:
+ doc_data = f.read()
+ result = await client.send_document(
+ to=JID('123', 's.whatsapp.net'),
+ document_data=doc_data,
+ file_name='report.pdf',
+ caption='Monthly report',
+ )
+ """
+ ...
async def send_audio(
self,
to: JID,
@@ -148,7 +329,39 @@ class TryxClient:
ptt: bool = False,
seconds: int | None = None,
quoted: EvMessage | None = None,
- ) -> SendResult: ...
+ ) -> SendResult:
+ """Send an audio clip.
+
+ The audio is uploaded to WhatsApp servers before the message is sent.
+ If *mimetype* is ``None``, it is auto-detected from the raw bytes
+ (defaults to ``audio/ogg; codecs=opus`` on failure).
+
+ Args:
+ to: Recipient JID.
+ audio_data: Raw audio bytes.
+ mimetype: MIME type (auto-detected if None).
+ ptt: If True, send as push-to-talk voice message.
+ seconds: Duration in seconds (used for voice messages).
+ quoted: Optional message to quote-reply.
+
+ Returns:
+ SendResult with the server-assigned message ID.
+
+ Raises:
+ RuntimeError: If the client is not running or upload fails.
+
+ Example::
+
+ with open('voice.ogg', 'rb') as f:
+ audio_data = f.read()
+ result = await client.send_audio(
+ to=JID('123', 's.whatsapp.net'),
+ audio_data=audio_data,
+ ptt=True,
+ seconds=5,
+ )
+ """
+ ...
async def send_video(
self,
to: JID,
@@ -158,7 +371,40 @@ class TryxClient:
seconds: int | None = None,
gif_playback: bool = False,
quoted: EvMessage | None = None,
- ) -> SendResult: ...
+ ) -> SendResult:
+ """Send a video with an optional caption.
+
+ The video is uploaded to WhatsApp servers before the message is sent.
+ If *mimetype* is ``None``, it is auto-detected from the raw bytes
+ (defaults to ``video/mp4`` on failure).
+
+ Args:
+ to: Recipient JID.
+ video_data: Raw video bytes.
+ mimetype: MIME type (auto-detected if None).
+ caption: Optional video caption.
+ seconds: Duration in seconds.
+ gif_playback: If True, display as a GIF on the recipient side.
+ quoted: Optional message to quote-reply.
+
+ Returns:
+ SendResult with the server-assigned message ID.
+
+ Raises:
+ RuntimeError: If the client is not running or upload fails.
+
+ Example::
+
+ with open('clip.mp4', 'rb') as f:
+ video_data = f.read()
+ result = await client.send_video(
+ to=JID('123', 's.whatsapp.net'),
+ video_data=video_data,
+ caption='Funny clip',
+ seconds=15,
+ )
+ """
+ ...
async def send_gif(
self,
to: JID,
@@ -166,14 +412,71 @@ class TryxClient:
caption: str | None = None,
seconds: int | None = None,
quoted: EvMessage | None = None,
- ) -> SendResult: ...
+ ) -> SendResult:
+ """Send a GIF (sent as video with gif_playback=True).
+
+ Convenience wrapper around :meth:`send_video` that sets
+ ``gif_playback=True`` and ``mimetype='video/mp4'``.
+
+ Args:
+ to: Recipient JID.
+ gif_data: Raw GIF/video bytes.
+ caption: Optional caption.
+ seconds: Duration in seconds.
+ quoted: Optional message to quote-reply.
+
+ Returns:
+ SendResult with the server-assigned message ID.
+
+ Raises:
+ RuntimeError: If the client is not running or upload fails.
+
+ Example::
+
+ with open('animation.gif', 'rb') as f:
+ gif_data = f.read()
+ result = await client.send_gif(
+ to=JID('123', 's.whatsapp.net'),
+ gif_data=gif_data,
+ caption='Look at this!',
+ )
+ """
+ ...
async def send_sticker(
self,
to: JID,
sticker_data: bytes,
is_animated: bool = False,
quoted: EvMessage | None = None,
- ) -> SendResult: ...
+ ) -> SendResult:
+ """Send a sticker (static WEBP or animated).
+
+ The sticker is uploaded to WhatsApp servers before the message is sent.
+ MIME type is auto-detected from the raw bytes (defaults to
+ ``image/webp`` on failure).
+
+ Args:
+ to: Recipient JID.
+ sticker_data: Raw sticker bytes.
+ is_animated: If True, mark as an animated sticker.
+ quoted: Optional message to quote-reply.
+
+ Returns:
+ SendResult with the server-assigned message ID.
+
+ Raises:
+ RuntimeError: If the client is not running or upload fails.
+
+ Example::
+
+ with open('sticker.webp', 'rb') as f:
+ sticker_data = f.read()
+ result = await client.send_sticker(
+ to=JID('123', 's.whatsapp.net'),
+ sticker_data=sticker_data,
+ )
+ """
+ ...
async def request_media_reupload(
self,
message_id: str,
@@ -181,28 +484,185 @@ class TryxClient:
media_key: bytes,
is_from_me: bool = False,
participant: JID | None = None,
- ) -> MediaReuploadResult: ...
+ ) -> MediaReuploadResult:
+ """Request WhatsApp to re-upload expired media for re-download.
+
+ When a media direct path has expired, this method asks WhatsApp
+ servers to re-upload the media so it can be downloaded again.
+
+ Args:
+ message_id: Server-assigned message ID.
+ chat_jid: JID of the chat containing the message.
+ media_key: The media encryption key bytes.
+ is_from_me: Whether the message was sent by the local user.
+ participant: Optional participant JID (for group messages).
+
+ Returns:
+ MediaReuploadResult with the new direct path and status.
+
+ Raises:
+ ValueError: If *media_key* is empty.
+ RuntimeError: If the client is not running.
+
+ Example::
+
+ result = await client.request_media_reupload(
+ message_id='3EB0ABC123',
+ chat_jid=JID('123', 's.whatsapp.net'),
+ media_key=media_key_bytes,
+ is_from_me=True,
+ )
+ if result.status == 'ok':
+ data = await client.download_media(message.image_message)
+ """
+ ...
class CallHandle:
"""Handle for an active voice/video call."""
call_id: str
peer: JID
- def is_muted(self) -> bool: ...
- def set_muted(self, muted: bool) -> None: ...
- async def hangup(self) -> None: ...
- async def wait_ended(self) -> None: ...
+
+ def is_muted(self) -> bool:
+ """Return True if the local microphone is muted."""
+ ...
+
+ def set_muted(self, muted: bool) -> None:
+ """Mute or unmute the local microphone.
+
+ Args:
+ muted: ``True`` to mute, ``False`` to unmute.
+
+ Example::
+
+ handle.set_muted(True)
+ """
+ ...
+
+ async def hangup(self) -> None:
+ """End the call.
+
+ Raises:
+ RuntimeError: If the call has already ended.
+
+ Example::
+
+ await handle.hangup()
+ """
+ ...
+
+ async def wait_ended(self) -> None:
+ """Block until the call is ended (by either party).
+
+ Raises:
+ RuntimeError: If the call handle is invalid.
+
+ Example::
+
+ await handle.wait_ended()
+ print('Call finished')
+ """
+ ...
+
async def start_video(
self, video_source: VideoSource, video_sink: VideoSink
- ) -> None: ...
- async def stop_video(self) -> None: ...
- async def invite_participant(self, target: JID) -> None: ...
- async def ring_participant(self, target: JID) -> None: ...
- async def start_screen_share(self, screen_share_id: int | None = None) -> None: ...
- async def stop_screen_share(self) -> None: ...
- async def set_approval_required(self, enabled: bool) -> None: ...
- async def admit_waiting_user(self, target: JID) -> None: ...
- async def deny_waiting_user(self, target: JID) -> None: ...
+ ) -> None:
+ """Start sending and receiving video in the call.
+
+ Args:
+ video_source: Source providing outgoing video frames.
+ video_sink: Sink receiving incoming video frames.
+
+ Raises:
+ RuntimeError: If the call has ended or video adapter is missing.
+ """
+ ...
+
+ async def stop_video(self) -> None:
+ """Stop sending video (audio continues).
+
+ Raises:
+ RuntimeError: If the call has ended.
+ """
+ ...
+
+ async def invite_participant(self, target: JID) -> None:
+ """Invite a participant to a group call.
+
+ Args:
+ target: JID of the participant to invite.
+
+ Raises:
+ RuntimeError: If the call has ended.
+
+ Example::
+
+ await handle.invite_participant(JID('5599800001', 's.whatsapp.net'))
+ """
+ ...
+
+ async def ring_participant(self, target: JID) -> None:
+ """Ring a specific participant in a group call.
+
+ Args:
+ target: JID of the participant to ring.
+
+ Raises:
+ RuntimeError: If the call has ended.
+ """
+ ...
+
+ async def start_screen_share(self, screen_share_id: int | None = None) -> None:
+ """Start sharing screen content.
+
+ Args:
+ screen_share_id: Optional screen share identifier.
+
+ Raises:
+ RuntimeError: If the call has ended.
+ """
+ ...
+
+ async def stop_screen_share(self) -> None:
+ """Stop screen sharing.
+
+ Raises:
+ RuntimeError: If the call has ended.
+ """
+ ...
+
+ async def set_approval_required(self, enabled: bool) -> None:
+ """Toggle whether new participants need admin approval.
+
+ Args:
+ enabled: ``True`` to require approval, ``False`` to disable.
+
+ Raises:
+ RuntimeError: If the call has ended.
+ """
+ ...
+
+ async def admit_waiting_user(self, target: JID) -> None:
+ """Admit a user waiting in the lobby.
+
+ Args:
+ target: JID of the user to admit.
+
+ Raises:
+ RuntimeError: If the call has ended.
+ """
+ ...
+
+ async def deny_waiting_user(self, target: JID) -> None:
+ """Deny a user waiting in the lobby.
+
+ Args:
+ target: JID of the user to deny.
+
+ Raises:
+ RuntimeError: If the call has ended.
+ """
+ ...
class IncomingCallEvent:
"""Event emitted when an incoming call is received."""
@@ -210,17 +670,67 @@ class IncomingCallEvent:
call_id: str
peer: JID
is_video: bool
+
async def accept(
self, audio_source: AudioSource, audio_sink: AudioSink
- ) -> CallHandle: ...
- async def reject(self) -> None: ...
+ ) -> CallHandle:
+ """Accept the incoming call and return a handle for control.
+
+ Args:
+ audio_source: Source providing outgoing audio frames.
+ audio_sink: Sink receiving incoming audio frames.
+
+ Returns:
+ CallHandle for controlling the call.
+
+ Raises:
+ RuntimeError: If the call was already consumed.
+
+ Example::
+
+ handle = await event.accept(audio_source, audio_sink)
+ await handle.wait_ended()
+ """
+ ...
+
+ async def reject(self) -> None:
+ """Reject the incoming call.
+
+ Raises:
+ RuntimeError: If the call was already consumed.
+
+ Example::
+
+ await event.reject()
+ """
+ ...
class VoipClient:
"""VoIP client for making and receiving voice/video calls."""
async def call(
self, peer: JID, audio_source: AudioSource, audio_sink: AudioSink
- ) -> CallHandle: ...
+ ) -> CallHandle:
+ """Start a 1:1 voice call.
+
+ Args:
+ peer: JID of the callee.
+ audio_source: Source providing outgoing audio frames.
+ audio_sink: Sink receiving incoming audio frames.
+
+ Returns:
+ CallHandle for controlling the call.
+
+ Raises:
+ RuntimeError: If the call fails to connect.
+
+ Example::
+
+ handle = await client.voip.call(peer, audio_source, audio_sink)
+ await handle.wait_ended()
+ """
+ ...
+
async def group_call(
self,
peers: list[JID],
@@ -228,7 +738,24 @@ class VoipClient:
audio_sink: AudioSink,
video_source: VideoSource | None = None,
video_sink: VideoSink | None = None,
- ) -> CallHandle: ...
+ ) -> CallHandle:
+ """Start a group voice/video call with multiple participants.
+
+ Args:
+ peers: JIDs of the participants to call.
+ audio_source: Source providing outgoing audio frames.
+ audio_sink: Sink receiving incoming audio frames.
+ video_source: Optional source providing outgoing video frames.
+ video_sink: Optional sink receiving incoming video frames.
+
+ Returns:
+ CallHandle for controlling the call.
+
+ Raises:
+ RuntimeError: If the call fails to connect.
+ """
+ ...
+
async def join_call_link(
self,
token_or_url: str,
@@ -237,7 +764,25 @@ class VoipClient:
audio_sink: AudioSink,
video_source: VideoSource | None = None,
video_sink: VideoSink | None = None,
- ) -> CallHandle: ...
+ ) -> CallHandle:
+ """Join a call via invite link.
+
+ Args:
+ token_or_url: Call link token or full URL.
+ media: Media type to join with (e.g. ``'audio'``, ``'video'``).
+ audio_source: Source providing outgoing audio frames.
+ audio_sink: Sink receiving incoming audio frames.
+ video_source: Optional source providing outgoing video frames.
+ video_sink: Optional sink receiving incoming video frames.
+
+ Returns:
+ CallHandle for controlling the call.
+
+ Raises:
+ RuntimeError: If the call link is invalid or join fails.
+ """
+ ...
+
async def video_call(
self,
peer: JID,
@@ -245,36 +790,239 @@ class VoipClient:
audio_sink: AudioSink,
video_source: VideoSource,
video_sink: VideoSink,
- ) -> CallHandle: ...
+ ) -> CallHandle:
+ """Start a 1:1 video call with camera and microphone.
+
+ Args:
+ peer: JID of the callee.
+ audio_source: Source providing outgoing audio frames.
+ audio_sink: Sink receiving incoming audio frames.
+ video_source: Source providing outgoing video frames.
+ video_sink: Sink receiving incoming video frames.
+
+ Returns:
+ CallHandle for controlling the call.
+
+ Raises:
+ RuntimeError: If the call fails to connect.
+
+ Example::
+
+ handle = await client.voip.video_call(
+ peer, audio_source, audio_sink,
+ video_source, video_sink,
+ )
+ await handle.start_video(video_source, video_sink)
+ """
+ ...
class AdvancedClient:
"""Advanced diagnostics, lifecycle waits, and raw protocol escape hatches."""
- def is_logged_in(self) -> bool: ...
- def get_push_name(self) -> str: ...
- def get_pn(self) -> JID | None: ...
- def get_lid(self) -> JID | None: ...
- def stats(self) -> dict[str, int]: ...
- async def memory_report_text(self) -> str: ...
- async def resource_report_text(self) -> str: ...
- async def wait_for_socket(self, timeout_seconds: float) -> None: ...
- async def wait_for_connected(self, timeout_seconds: float) -> None: ...
- async def wait_for_startup_sync(self, timeout_seconds: float) -> None: ...
- async def flush_pending_signal_state(self) -> None: ...
- async def send_raw_bytes(self, plaintext: bytes) -> None: ...
- async def send_node(self, node: Node) -> None: ...
- def set_force_active_delivery_receipts(self, active: bool) -> None: ...
+
+ def is_logged_in(self) -> bool:
+ """Return True if the session is authenticated."""
+ ...
+
+ def get_push_name(self) -> str:
+ """Return the current push name (display name)."""
+ ...
+
+ def get_pn(self) -> JID | None:
+ """Return the phone-number JID, or None if not linked."""
+ ...
+
+ def get_lid(self) -> JID | None:
+ """Return the LID (linked ID) JID, or None if not linked."""
+ ...
+
+ def stats(self) -> dict[str, int]:
+ """Return internal counters (handlers, messages, etc.)."""
+ ...
+
+ async def memory_report_text(self) -> str:
+ """Return a human-readable memory usage report."""
+ ...
+
+ async def resource_report_text(self) -> str:
+ """Return a human-readable resource usage report."""
+ ...
+
+ async def wait_for_socket(self, timeout_seconds: float) -> None:
+ """Block until the WebSocket connection is established.
+
+ Args:
+ timeout_seconds: Maximum seconds to wait before timing out.
+
+ Raises:
+ RuntimeError: If the timeout is reached.
+ """
+ ...
+
+ async def wait_for_connected(self, timeout_seconds: float) -> None:
+ """Block until the client is fully connected.
+
+ Args:
+ timeout_seconds: Maximum seconds to wait before timing out.
+
+ Raises:
+ RuntimeError: If the timeout is reached.
+
+ Example::
+
+ await client.advanced.wait_for_connected(30.0)
+ """
+ ...
+
+ async def wait_for_startup_sync(self, timeout_seconds: float) -> None:
+ """Block until the initial history sync completes.
+
+ Args:
+ timeout_seconds: Maximum seconds to wait before timing out.
+
+ Raises:
+ RuntimeError: If the timeout is reached.
+ """
+ ...
+
+ async def flush_pending_signal_state(self) -> None:
+ """Flush any pending Signal protocol state to the store.
+
+ Raises:
+ RuntimeError: If the client is not running.
+
+ Example::
+
+ await client.advanced.flush_pending_signal_state()
+ """
+ ...
+
+ async def send_raw_bytes(self, plaintext: bytes) -> None:
+ """Send raw encrypted bytes directly over the socket.
+
+ Args:
+ plaintext: Pre-encrypted bytes to send.
+
+ Raises:
+ RuntimeError: If the client is not running.
+ """
+ ...
+
+ async def send_node(self, node: Node) -> None:
+ """Send a protocol node directly over the socket.
+
+ Args:
+ node: Protocol node to send.
+
+ Raises:
+ RuntimeError: If the client is not running.
+ """
+ ...
+
+ def set_force_active_delivery_receipts(self, active: bool) -> None:
+ """Toggle forced active delivery receipts.
+
+ Args:
+ active: ``True`` to force active delivery receipts.
+ """
+ ...
class LabelsClient:
- """WhatsApp label app-state operations."""
- async def create_label(self, label_id: str, name: str, color: int) -> None: ...
- async def delete_label(self, label_id: str) -> None: ...
- async def add_chat_label(self, jid: JID, label_id: str) -> None: ...
- async def remove_chat_label(self, jid: JID, label_id: str) -> None: ...
+ """WhatsApp label app-state operations.
+
+ All methods raise ``RuntimeError`` if the client is not running.
+ """
+
+ async def create_label(self, label_id: str, name: str, color: int) -> None:
+ """Create a new label with the given name and color.
+
+ Args:
+ label_id: Unique label identifier.
+ name: Display name for the label.
+ color: Label color value.
+
+ Raises:
+ RuntimeError: If the client is not running.
+
+ Example::
+
+ await client.labels.create_label('L1', 'Urgent', 0xFF0000)
+ """
+ ...
+
+ async def delete_label(self, label_id: str) -> None:
+ """Delete a label by ID.
+
+ Args:
+ label_id: Unique label identifier.
+
+ Raises:
+ RuntimeError: If the client is not running.
+ """
+ ...
+
+ async def add_chat_label(self, jid: JID, label_id: str) -> None:
+ """Attach a label to a chat.
+
+ Args:
+ jid: Chat JID to label.
+ label_id: Label identifier to attach.
+
+ Raises:
+ RuntimeError: If the client is not running.
+ """
+ ...
+
+ async def remove_chat_label(self, jid: JID, label_id: str) -> None:
+ """Remove a label from a chat.
+
+ Args:
+ jid: Chat JID.
+ label_id: Label identifier to remove.
+
+ Raises:
+ RuntimeError: If the client is not running.
+ """
+ ...
class CommentsClient:
- """Channel/comment operations anchored to a received parent message."""
- async def send_text(self, parent: EvMessage, text: str) -> str: ...
- async def send_message(self, parent: EvMessage, message: MessageProto) -> str: ...
+ """Channel/comment operations anchored to a received parent message.
+
+ All methods raise ``RuntimeError`` if the client is not running.
+ """
+
+ async def send_text(self, parent: EvMessage, text: str) -> str:
+ """Reply to a channel message with text.
+
+ Args:
+ parent: The parent message to reply to.
+ text: Comment text body.
+
+ Returns:
+ Server-assigned message ID of the comment.
+
+ Raises:
+ RuntimeError: If the client is not running.
+
+ Example::
+
+ msg_id = await client.comments.send_text(event, 'Great post!')
+ """
+ ...
+
+ async def send_message(self, parent: EvMessage, message: MessageProto) -> str:
+ """Reply to a channel message with a protobuf message.
+
+ Args:
+ parent: The parent message to reply to.
+ message: Fully constructed protobuf Message.
+
+ Returns:
+ Server-assigned message ID of the comment.
+
+ Raises:
+ RuntimeError: If the client is not running.
+ """
+ ...
class EventResponse:
"""RSVP response for WhatsApp events."""
@@ -284,7 +1032,11 @@ class EventResponse:
Maybe: EventResponse
class EventsClient:
- """WhatsApp event creation and RSVP operations."""
+ """WhatsApp event creation and RSVP operations.
+
+ All methods raise ``RuntimeError`` if the client is not running.
+ """
+
async def create(
self,
chat_jid: JID,
@@ -295,7 +1047,37 @@ class EventsClient:
join_link: str | None = None,
is_scheduled_call: bool | None = None,
extra_guests_allowed: bool | None = None,
- ) -> dict[str, object]: ...
+ ) -> dict[str, object]:
+ """Create a WhatsApp event in a chat.
+
+ Args:
+ chat_jid: Chat where the event is created.
+ name: Event name/title.
+ start_time: Optional start time as Unix timestamp.
+ end_time: Optional end time as Unix timestamp.
+ description: Optional event description.
+ join_link: Optional join link for the event.
+ is_scheduled_call: Whether the event is a scheduled call.
+ extra_guests_allowed: Whether extra guests are allowed.
+
+ Returns:
+ Dict with event creation details.
+
+ Raises:
+ RuntimeError: If the client is not running.
+
+ Example::
+
+ import time
+ result = await client.events.create(
+ chat_jid=JID('123', 's.whatsapp.net'),
+ name='Team standup',
+ start_time=int(time.time()) + 3600,
+ description='Daily standup meeting',
+ )
+ """
+ ...
+
async def respond(
self,
chat_jid: JID,
@@ -304,71 +1086,367 @@ class EventsClient:
message_secret: bytes,
response: EventResponse,
extra_guest_count: int | None = None,
- ) -> str: ...
+ ) -> str:
+ """RSVP to a WhatsApp event.
+
+ Args:
+ chat_jid: Chat containing the event.
+ event_message_id: Message ID of the event.
+ event_creator_jid: JID of the event creator.
+ message_secret: Event message secret bytes.
+ response: RSVP response (Going, NotGoing, Maybe).
+ extra_guest_count: Optional number of extra guests.
+
+ Returns:
+ Server-assigned message ID of the RSVP response.
+
+ Raises:
+ RuntimeError: If the client is not running.
+ """
+ ...
class ContactClient:
- """Contact and profile lookup operations."""
- async def get_info(self, phones: list[str]) -> list[ContactInfo]: ...
- async def get_user_info(self, jid: JID) -> dict[JID, UserInfo]: ...
- async def get_profile_picture(self, jid: JID, preview: bool) -> ProfilePicture: ...
- async def is_on_whatsapp(self, jid: list[JID]) -> list[IsOnWhatsAppResult]: ...
+ """Contact and profile lookup operations.
+
+ All methods raise ``RuntimeError`` if the client is not running.
+ """
+
+ async def get_info(self, phones: list[str]) -> list[ContactInfo]:
+ """Look up contact info by phone numbers.
+
+ Args:
+ phones: List of phone number strings (e.g. ``['5599800001']``).
+
+ Returns:
+ List of ContactInfo entries for each phone number.
+
+ Raises:
+ RuntimeError: If the client is not running.
+
+ Example::
+
+ results = await client.contact.get_info(['5599800001'])
+ for info in results:
+ print(info.jid, info.is_registered)
+ """
+ ...
+
+ async def get_user_info(self, jid: JID) -> dict[JID, UserInfo]:
+ """Get detailed user profile info by JID.
+
+ Args:
+ jid: Target user JID.
+
+ Returns:
+ Dict mapping JIDs to their UserInfo profiles.
+
+ Raises:
+ RuntimeError: If the client is not running.
+
+ Example::
+
+ info_map = await client.contact.get_user_info(sender_jid)
+ user_info = next(iter(info_map.values()), None)
+ if user_info:
+ print(user_info.status)
+ """
+ ...
+
+ async def get_profile_picture(self, jid: JID, preview: bool) -> ProfilePicture:
+ """Fetch the profile picture metadata for a JID.
+
+ Args:
+ jid: Target user or group JID.
+ preview: If True, return the small preview version.
+
+ Returns:
+ ProfilePicture with URL, direct_path, and hash.
+
+ Raises:
+ RuntimeError: If the client is not running.
+
+ Example::
+
+ pic = await client.contact.get_profile_picture(sender_jid, False)
+ if pic.url:
+ data = await download_bytes(pic.url)
+ """
+ ...
+
+ async def is_on_whatsapp(self, jid: list[JID]) -> list[IsOnWhatsAppResult]:
+ """Check which JIDs are registered on WhatsApp.
+
+ Args:
+ jid: List of JIDs to check.
+
+ Returns:
+ List of IsOnWhatsAppResult with registration status.
+
+ Raises:
+ RuntimeError: If the client is not running.
+
+ Example::
+
+ results = await client.contact.is_on_whatsapp([
+ JID('5599800001', 's.whatsapp.net'),
+ ])
+ for r in results:
+ print(r.jid, r.is_registered)
+ """
+ ...
class ChatActionsClient:
- """Chat-level actions such as archive, pin, mute, and reactions."""
+ """Chat-level actions such as archive, pin, mute, and reactions.
+
+ All async methods raise ``RuntimeError`` if the client is not running.
+ """
+
@staticmethod
def build_message_key(
id: str,
remote_jid: JID,
from_me: bool,
participant: JID | None = None,
- ) -> MessageKey: ...
+ ) -> MessageKey:
+ """Build a protobuf MessageKey from its components.
+
+ Args:
+ id: Message ID.
+ remote_jid: Chat JID.
+ from_me: Whether the message was sent by the local user.
+ participant: Optional participant JID (for group chats).
+
+ Returns:
+ Constructed MessageKey proto.
+
+ Example::
+
+ key = ChatActionsClient.build_message_key(
+ id='3EB0ABC123',
+ remote_jid=JID('123', 's.whatsapp.net'),
+ from_me=True,
+ )
+ """
+ ...
+
@staticmethod
def build_message_range(
last_message_timestamp: int,
last_system_message_timestamp: int | None,
messages: list[tuple[MessageKey, int]],
- ) -> SyncActionValue.SyncActionMessageRange: ...
+ ) -> SyncActionValue.SyncActionMessageRange:
+ """Build a SyncActionMessageRange for sync operations.
+
+ Args:
+ last_message_timestamp: Timestamp of the last message.
+ last_system_message_timestamp: Timestamp of the last system
+ message, or ``None``.
+ messages: List of ``(MessageKey, timestamp)`` tuples.
+
+ Returns:
+ Constructed SyncActionMessageRange proto.
+
+ Example::
+
+ key = ChatActionsClient.build_message_key(
+ '3EB0', JID('123', 's.whatsapp.net'), True,
+ )
+ msg_range = ChatActionsClient.build_message_range(
+ last_message_timestamp=1700000000,
+ last_system_message_timestamp=None,
+ messages=[(key, 1700000000)],
+ )
+ """
+ ...
+
async def archive_chat(
self,
jid: JID,
message_range: SyncActionValue.SyncActionMessageRange | None = None,
- ) -> None: ...
+ ) -> None:
+ """Archive a chat.
+
+ Args:
+ jid: Chat JID to archive.
+ message_range: Optional sync message range.
+
+ Raises:
+ RuntimeError: If the client is not running.
+
+ Example::
+
+ await client.chat_actions.archive_chat(JID('123', 's.whatsapp.net'))
+ """
+ ...
+
async def unarchive_chat(
self,
jid: JID,
message_range: SyncActionValue.SyncActionMessageRange | None = None,
- ) -> None: ...
- async def pin_chat(self, jid: JID) -> None: ...
- async def unpin_chat(self, jid: JID) -> None: ...
- async def mute_chat(self, jid: JID) -> None: ...
- async def mute_chat_until(self, jid: JID, mute_end_timestamp_ms: int) -> None: ...
- async def unmute_chat(self, jid: JID) -> None: ...
+ ) -> None:
+ """Unarchive a chat.
+
+ Args:
+ jid: Chat JID to unarchive.
+ message_range: Optional sync message range.
+
+ Raises:
+ RuntimeError: If the client is not running.
+ """
+ ...
+
+ async def pin_chat(self, jid: JID) -> None:
+ """Pin a chat to the top of the list.
+
+ Args:
+ jid: Chat JID to pin.
+
+ Raises:
+ RuntimeError: If the client is not running.
+
+ Example::
+
+ await client.chat_actions.pin_chat(JID('123', 's.whatsapp.net'))
+ """
+ ...
+
+ async def unpin_chat(self, jid: JID) -> None:
+ """Unpin a chat.
+
+ Args:
+ jid: Chat JID to unpin.
+
+ Raises:
+ RuntimeError: If the client is not running.
+ """
+ ...
+
+ async def mute_chat(self, jid: JID) -> None:
+ """Mute a chat indefinitely.
+
+ Args:
+ jid: Chat JID to mute.
+
+ Raises:
+ RuntimeError: If the client is not running.
+
+ Example::
+
+ await client.chat_actions.mute_chat(JID('123', 's.whatsapp.net'))
+ """
+ ...
+
+ async def mute_chat_until(self, jid: JID, mute_end_timestamp_ms: int) -> None:
+ """Mute a chat until the given Unix timestamp (ms).
+
+ Args:
+ jid: Chat JID to mute.
+ mute_end_timestamp_ms: Expiration timestamp in milliseconds.
+
+ Raises:
+ RuntimeError: If the client is not running.
+
+ Example::
+
+ import time
+ await client.chat_actions.mute_chat_until(
+ JID('123', 's.whatsapp.net'),
+ int(time.time() * 1000) + 3600000,
+ )
+ """
+ ...
+
+ async def unmute_chat(self, jid: JID) -> None:
+ """Unmute a chat.
+
+ Args:
+ jid: Chat JID to unmute.
+
+ Raises:
+ RuntimeError: If the client is not running.
+ """
+ ...
+
async def star_message(
self,
chat_jid: JID,
participant_jid: JID | None,
message_id: str,
from_me: bool,
- ) -> None: ...
+ ) -> None:
+ """Star a message in a chat.
+
+ Args:
+ chat_jid: Chat JID.
+ participant_jid: Participant JID (for group chats), or None.
+ message_id: Message ID to star.
+ from_me: Whether the message was sent by the local user.
+
+ Raises:
+ RuntimeError: If the client is not running.
+ """
+ ...
+
async def unstar_message(
self,
chat_jid: JID,
participant_jid: JID | None,
message_id: str,
from_me: bool,
- ) -> None: ...
+ ) -> None:
+ """Unstar a message in a chat.
+
+ Args:
+ chat_jid: Chat JID.
+ participant_jid: Participant JID (for group chats), or None.
+ message_id: Message ID to unstar.
+ from_me: Whether the message was sent by the local user.
+
+ Raises:
+ RuntimeError: If the client is not running.
+ """
+ ...
+
async def mark_chat_as_read(
self,
jid: JID,
read: bool,
message_range: SyncActionValue.SyncActionMessageRange | None = None,
- ) -> None: ...
+ ) -> None:
+ """Mark a chat as read or unread.
+
+ Args:
+ jid: Chat JID.
+ read: ``True`` to mark as read, ``False`` to mark as unread.
+ message_range: Optional sync message range.
+
+ Raises:
+ RuntimeError: If the client is not running.
+
+ Example::
+
+ await client.chat_actions.mark_chat_as_read(jid, True)
+ """
+ ...
+
async def delete_chat(
self,
jid: JID,
delete_media: bool,
message_range: SyncActionValue.SyncActionMessageRange | None = None,
- ) -> None: ...
+ ) -> None:
+ """Delete an entire chat (with optional media deletion).
+
+ Args:
+ jid: Chat JID to delete.
+ delete_media: If True, also delete media from storage.
+ message_range: Optional sync message range.
+
+ Raises:
+ RuntimeError: If the client is not running.
+ """
+ ...
+
async def delete_message_for_me(
self,
chat_jid: JID,
@@ -377,33 +1455,114 @@ class ChatActionsClient:
from_me: bool,
delete_media: bool,
message_timestamp: int | None = None,
- ) -> None: ...
+ ) -> None:
+ """Delete a single message for the local user only.
+
+ Args:
+ chat_jid: Chat JID.
+ participant_jid: Participant JID (for group chats), or None.
+ message_id: Message ID to delete.
+ from_me: Whether the message was sent by the local user.
+ delete_media: If True, also delete the media file.
+ message_timestamp: Optional message timestamp for sync.
+
+ Raises:
+ RuntimeError: If the client is not running.
+
+ Example::
+
+ await client.chat_actions.delete_message_for_me(
+ chat_jid, participant_jid, msg_id, True, False,
+ )
+ """
+ ...
+
async def clear_chat(
self,
jid: JID,
delete_starred: bool,
delete_media: bool,
message_range: SyncActionValue.SyncActionMessageRange | None = None,
- ) -> None: ...
+ ) -> None:
+ """Clear all messages in a chat.
+
+ Args:
+ jid: Chat JID to clear.
+ delete_starred: If True, also delete starred messages.
+ delete_media: If True, also delete media files.
+ message_range: Optional sync message range.
+
+ Raises:
+ RuntimeError: If the client is not running.
+ """
+ ...
+
async def save_contact(
self,
jid: JID,
full_name: str | None = None,
first_name: str | None = None,
save_on_primary_addressbook: bool = False,
- ) -> None: ...
+ ) -> None:
+ """Save a contact to the address book.
+
+ Args:
+ jid: Contact JID.
+ full_name: Optional full display name.
+ first_name: Optional first name.
+ save_on_primary_addressbook: If True, save to the primary
+ address book.
+
+ Raises:
+ RuntimeError: If the client is not running.
+ """
+ ...
+
async def edit_message(
self,
chat_jid: JID,
original_id: str,
new_message: MessageProto,
- ) -> str: ...
+ ) -> str:
+ """Edit a previously sent message.
+
+ Args:
+ chat_jid: Chat JID.
+ original_id: ID of the message to edit.
+ new_message: Replacement protobuf message.
+
+ Returns:
+ Server-assigned message ID of the edit.
+
+ Raises:
+ RuntimeError: If the client is not running.
+ """
+ ...
+
async def revoke_message(
self,
chat_jid: JID,
message_id: str,
original_sender: JID | None = None,
- ) -> None: ...
+ ) -> None:
+ """Revoke (delete for everyone) a sent message.
+
+ Args:
+ chat_jid: Chat JID.
+ message_id: Message ID to revoke.
+ original_sender: Optional sender JID (for group messages).
+
+ Raises:
+ RuntimeError: If the client is not running.
+
+ Example::
+
+ await client.chat_actions.revoke_message(
+ chat_jid, '3EB0ABC123',
+ )
+ """
+ ...
+
async def react_message(
self,
chat_jid: JID,
@@ -411,10 +1570,34 @@ class ChatActionsClient:
reaction: str,
from_me: bool = False,
participant_jid: JID | None = None,
- ) -> str: ...
+ ) -> str:
+ """Add or remove an emoji reaction to a message.
+
+ Pass an empty string for *reaction* to remove an existing reaction.
+
+ Args:
+ chat_jid: Chat JID.
+ message_id: Message ID to react to.
+ reaction: Emoji string, or empty string to remove.
+ from_me: Whether the message was sent by the local user.
+ participant_jid: Optional participant JID (for group chats).
+
+ Returns:
+ Server-assigned message ID of the reaction.
+
+ Raises:
+ RuntimeError: If the client is not running.
+
+ Example::
+
+ await client.chat_actions.react_message(
+ chat_jid, msg_id, '✅', from_me=True,
+ )
+ """
+ ...
class GroupType:
- """Type stub for GroupType."""
+ """Classification of a WhatsApp group (default, community, linked)."""
Default: GroupType
Community: GroupType
@@ -423,7 +1606,7 @@ class GroupType:
LinkedGeneralGroup: GroupType
class CreateCommunityOptions:
- """Type stub for CreateCommunityOptions."""
+ """Options for creating a new WhatsApp community."""
name: str
description: str | None
@@ -438,16 +1621,27 @@ class CreateCommunityOptions:
closed: bool = False,
allow_non_admin_sub_group_creation: bool = False,
create_general_chat: bool = True,
- ) -> None: ...
+ ) -> None:
+ """Create options for a new community.
+
+ Args:
+ name: Community name.
+ description: Optional description.
+ closed: If True, only admins can add subgroups.
+ allow_non_admin_sub_group_creation: Allow non-admins to create
+ subgroups.
+ create_general_chat: Auto-create a general chat.
+ """
+ ...
class CreateCommunityResult:
- """Type stub for CreateCommunityResult."""
+ """Result returned after creating a community."""
gid: JID
metadata: GroupMetadata
class CommunitySubgroup:
- """Type stub for CommunitySubgroup."""
+ """Subgroup entry within a WhatsApp community."""
id: JID
subject: str
@@ -456,26 +1650,26 @@ class CommunitySubgroup:
is_general_chat: bool
class LinkSubgroupsResult:
- """Type stub for LinkSubgroupsResult."""
+ """Result of linking subgroups to a community."""
linked_jids: list[JID]
failed_groups: list[tuple[JID, int]]
class UnlinkSubgroupsResult:
- """Type stub for UnlinkSubgroupsResult."""
+ """Result of unlinking subgroups from a community."""
unlinked_jids: list[JID]
failed_groups: list[tuple[JID, int]]
class GroupParticipant:
- """Type stub for GroupParticipant."""
+ """Participant entry within a WhatsApp group."""
jid: JID
phone_number: JID | None
is_admin: bool
class GroupMetadata:
- """Type stub for GroupMetadata."""
+ """Full metadata for a WhatsApp group."""
id: JID
subject: str
@@ -502,59 +1696,214 @@ class GroupMetadata:
group_type: GroupType
class CommunityClient:
- """Type stub for CommunityClient."""
+ """WhatsApp community creation and subgroup management.
+
+ All async methods raise ``RuntimeError`` if the client is not running.
+ """
+
@staticmethod
- def classify_group(metadata: GroupMetadata) -> GroupType: ...
- async def create(
- self, options: CreateCommunityOptions
- ) -> CreateCommunityResult: ...
- async def deactivate(self, community_jid: JID) -> None: ...
+ def classify_group(metadata: GroupMetadata) -> GroupType:
+ """Classify a group as Default, Community, LinkedSubgroup, etc.
+
+ Args:
+ metadata: Group metadata to classify.
+
+ Returns:
+ GroupType classification.
+
+ Example::
+
+ group_type = CommunityClient.classify_group(metadata)
+ if group_type == GroupType.Community:
+ print('This is a community')
+ """
+ ...
+
+ async def create(self, options: CreateCommunityOptions) -> CreateCommunityResult:
+ """Create a new community with the given options.
+
+ Args:
+ options: Community creation configuration.
+
+ Returns:
+ CreateCommunityResult with group ID and metadata.
+
+ Example::
+
+ from tryx.client import CreateCommunityOptions
+ opts = CreateCommunityOptions(name='My Community')
+ result = await client.community.create(opts)
+ print(result.gid)
+ """
+ ...
+
+ async def deactivate(self, community_jid: JID) -> None:
+ """Deactivate (archive) a community.
+
+ Args:
+ community_jid: JID of the community to deactivate.
+
+ Raises:
+ RuntimeError: If the client is not running.
+ """
+ ...
+
async def link_subgroups(
self,
community_jid: JID,
subgroup_jids: list[JID],
- ) -> LinkSubgroupsResult: ...
+ ) -> LinkSubgroupsResult:
+ """Link existing groups as subgroups of a community.
+
+ Args:
+ community_jid: JID of the community.
+ subgroup_jids: JIDs of groups to link.
+
+ Returns:
+ LinkSubgroupsResult with linked and failed group JIDs.
+
+ Raises:
+ RuntimeError: If the client is not running.
+
+ Example::
+
+ result = await client.community.link_subgroups(
+ community_jid,
+ [JID('123', 'g.us'), JID('456', 'g.us')],
+ )
+ print(result.linked_jids)
+ """
+ ...
+
async def unlink_subgroups(
self,
community_jid: JID,
subgroup_jids: list[JID],
remove_orphan_members: bool,
- ) -> UnlinkSubgroupsResult: ...
- async def get_subgroups(self, community_jid: JID) -> list[CommunitySubgroup]: ...
+ ) -> UnlinkSubgroupsResult:
+ """Unlink subgroups from a community.
+
+ Args:
+ community_jid: JID of the community.
+ subgroup_jids: JIDs of subgroups to unlink.
+ remove_orphan_members: If True, remove members who are no
+ longer in any linked group.
+
+ Returns:
+ UnlinkSubgroupsResult with unlinked and failed group JIDs.
+
+ Raises:
+ RuntimeError: If the client is not running.
+ """
+ ...
+
+ async def get_subgroups(self, community_jid: JID) -> list[CommunitySubgroup]:
+ """List all subgroups in a community.
+
+ Args:
+ community_jid: JID of the community.
+
+ Returns:
+ List of CommunitySubgroup entries.
+
+ Raises:
+ RuntimeError: If the client is not running.
+
+ Example::
+
+ groups = await client.community.get_subgroups(community_jid)
+ for g in groups:
+ print(g.subject, g.participant_count)
+ """
+ ...
+
async def get_subgroup_participant_counts(
self,
community_jid: JID,
- ) -> list[tuple[JID, int]]: ...
+ ) -> list[tuple[JID, int]]:
+ """Get participant counts for each subgroup.
+
+ Args:
+ community_jid: JID of the community.
+
+ Returns:
+ List of ``(subgroup_jid, participant_count)`` tuples.
+
+ Raises:
+ RuntimeError: If the client is not running.
+ """
+ ...
+
async def query_linked_group(
self,
community_jid: JID,
subgroup_jid: JID,
- ) -> GroupMetadata: ...
+ ) -> GroupMetadata:
+ """Query metadata for a specific linked subgroup.
+
+ Args:
+ community_jid: JID of the community.
+ subgroup_jid: JID of the subgroup to query.
+
+ Returns:
+ GroupMetadata for the linked subgroup.
+
+ Raises:
+ RuntimeError: If the client is not running.
+ """
+ ...
+
async def join_subgroup(
self,
community_jid: JID,
subgroup_jid: JID,
- ) -> GroupMetadata: ...
+ ) -> GroupMetadata:
+ """Join a subgroup within a community.
+
+ Args:
+ community_jid: JID of the community.
+ subgroup_jid: JID of the subgroup to join.
+
+ Returns:
+ GroupMetadata after joining.
+
+ Raises:
+ RuntimeError: If the client is not running.
+ """
+ ...
+
async def get_linked_groups_participants(
self,
community_jid: JID,
- ) -> list[GroupParticipant]: ...
+ ) -> list[GroupParticipant]:
+ """Get all participants across linked groups.
+
+ Args:
+ community_jid: JID of the community.
+
+ Returns:
+ List of GroupParticipant entries from all linked groups.
+
+ Raises:
+ RuntimeError: If the client is not running.
+ """
+ ...
class NewsletterVerification:
- """Type stub for NewsletterVerification."""
+ """Verification status of a WhatsApp newsletter."""
Verified: NewsletterVerification
Unverified: NewsletterVerification
class NewsletterState:
- """Type stub for NewsletterState."""
+ """Operational state of a WhatsApp newsletter."""
Active: NewsletterState
Suspended: NewsletterState
Geosuspended: NewsletterState
class NewsletterRole:
- """Type stub for NewsletterRole."""
+ """Role of a user within a WhatsApp newsletter."""
Owner: NewsletterRole
Admin: NewsletterRole
@@ -562,13 +1911,13 @@ class NewsletterRole:
Guest: NewsletterRole
class NewsletterReactionCount:
- """Type stub for NewsletterReactionCount."""
+ """Reaction tally for a newsletter message."""
code: str
count: int
class NewsletterMetadata:
- """Type stub for NewsletterMetadata."""
+ """Metadata for a WhatsApp newsletter channel."""
jid: JID
name: str
@@ -583,7 +1932,7 @@ class NewsletterMetadata:
creation_time: int | None
class NewsletterMessage:
- """Type stub for NewsletterMessage."""
+ """A message within a WhatsApp newsletter."""
server_id: int
timestamp: int
@@ -618,65 +1967,320 @@ class NewsletterFollower:
follow_time: int | None
admin_profile: NewsletterAdminProfile | None
-class NewsletterClient:
- """Type stub for NewsletterClient."""
- async def list_subscribed(self) -> list[NewsletterMetadata]: ...
- async def get_admin_info(self, jid: JID) -> NewsletterAdminInfo: ...
- async def get_followers(self, jid: JID, count: int) -> list[NewsletterFollower]: ...
- async def get_metadata(self, jid: JID) -> NewsletterMetadata: ...
- async def get_metadata_by_invite(self, invite_code: str) -> NewsletterMetadata: ...
+class NewsletterClient:
+ """WhatsApp newsletter channel operations.
+
+ All async methods raise ``RuntimeError`` if the client is not running.
+ """
+
+ async def list_subscribed(self) -> list[NewsletterMetadata]:
+ """List all newsletters the account is subscribed to.
+
+ Returns:
+ List of NewsletterMetadata for each subscribed newsletter.
+
+ Raises:
+ RuntimeError: If the client is not running.
+
+ Example::
+
+ newsletters = await client.newsletter.list_subscribed()
+ for nl in newsletters:
+ print(nl.name, nl.subscriber_count)
+ """
+ ...
+
+ async def get_admin_info(self, jid: JID) -> NewsletterAdminInfo:
+ """Get admin information for a newsletter.
+
+ Args:
+ jid: Newsletter JID.
+
+ Returns:
+ NewsletterAdminInfo with admin count and profiles.
+
+ Raises:
+ RuntimeError: If the client is not running.
+ """
+ ...
+
+ async def get_followers(self, jid: JID, count: int) -> list[NewsletterFollower]:
+ """Get the follower list for a newsletter.
+
+ Args:
+ jid: Newsletter JID.
+ count: Maximum number of followers to return.
+
+ Returns:
+ List of NewsletterFollower entries.
+
+ Raises:
+ RuntimeError: If the client is not running.
+ """
+ ...
+
+ async def get_metadata(self, jid: JID) -> NewsletterMetadata:
+ """Get metadata for a newsletter by JID.
+
+ Args:
+ jid: Newsletter JID.
+
+ Returns:
+ NewsletterMetadata with name, subscriber count, etc.
+
+ Raises:
+ RuntimeError: If the client is not running.
+
+ Example::
+
+ metadata = await client.newsletter.get_metadata(newsletter_jid)
+ print(metadata.name, metadata.subscriber_count)
+ """
+ ...
+
+ async def get_metadata_by_invite(self, invite_code: str) -> NewsletterMetadata:
+ """Get metadata for a newsletter by invite code.
+
+ Args:
+ invite_code: Newsletter invite code.
+
+ Returns:
+ NewsletterMetadata for the newsletter.
+
+ Raises:
+ RuntimeError: If the client is not running.
+
+ Example::
+
+ metadata = await client.newsletter.get_metadata_by_invite(invite_code)
+ await client.newsletter.join(metadata.jid)
+ """
+ ...
+
async def create(
self,
name: str,
description: str | None = None,
- ) -> NewsletterMetadata: ...
- async def join(self, jid: JID) -> NewsletterMetadata: ...
- async def leave(self, jid: JID) -> None: ...
+ ) -> NewsletterMetadata:
+ """Create a new newsletter channel.
+
+ Args:
+ name: Newsletter display name.
+ description: Optional description.
+
+ Returns:
+ NewsletterMetadata of the created newsletter.
+
+ Raises:
+ RuntimeError: If the client is not running.
+
+ Example::
+
+ metadata = await client.newsletter.create(
+ name='My Newsletter',
+ description='Weekly updates',
+ )
+ print(metadata.jid)
+ """
+ ...
+
+ async def join(self, jid: JID) -> NewsletterMetadata:
+ """Join a newsletter by JID.
+
+ Args:
+ jid: Newsletter JID to join.
+
+ Returns:
+ NewsletterMetadata after joining.
+
+ Raises:
+ RuntimeError: If the client is not running.
+ """
+ ...
+
+ async def leave(self, jid: JID) -> None:
+ """Leave a newsletter.
+
+ Args:
+ jid: Newsletter JID to leave.
+
+ Raises:
+ RuntimeError: If the client is not running.
+ """
+ ...
+
async def update(
self,
jid: JID,
name: str | None = None,
description: str | None = None,
- ) -> NewsletterMetadata: ...
- async def subscribe_live_updates(self, jid: JID) -> int: ...
- async def send_message(self, jid: JID, message: MessageProto) -> str: ...
- async def send_reaction(self, jid: JID, server_id: int, reaction: str) -> None: ...
- async def set_follower_mute(self, jid: JID, muted: bool) -> None: ...
- async def set_admin_mute(self, jid: JID, muted: bool) -> None: ...
+ ) -> NewsletterMetadata:
+ """Update newsletter name or description.
+
+ Args:
+ jid: Newsletter JID.
+ name: New display name, or None to keep current.
+ description: New description, or None to keep current.
+
+ Returns:
+ Updated NewsletterMetadata.
+
+ Raises:
+ RuntimeError: If the client is not running.
+ """
+ ...
+
+ async def subscribe_live_updates(self, jid: JID) -> int:
+ """Subscribe to live updates for a newsletter.
+
+ Args:
+ jid: Newsletter JID.
+
+ Returns:
+ Ticket ID for the live update stream.
+
+ Raises:
+ RuntimeError: If the client is not running.
+ """
+ ...
+
+ async def send_message(self, jid: JID, message: MessageProto) -> str:
+ """Send a protobuf message to a newsletter.
+
+ Args:
+ jid: Newsletter JID.
+ message: Fully constructed protobuf Message.
+
+ Returns:
+ Server-assigned message ID.
+
+ Raises:
+ RuntimeError: If the client is not running.
+
+ Example::
+
+ from tryx.waproto.whatsapp_pb2 import Message
+ msg = Message(conversation='Hello from newsletter!')
+ msg_id = await client.newsletter.send_message(newsletter_jid, msg)
+ """
+ ...
+
+ async def send_reaction(self, jid: JID, server_id: int, reaction: str) -> None:
+ """React to a newsletter message.
+
+ Args:
+ jid: Newsletter JID.
+ server_id: Server-assigned message ID to react to.
+ reaction: Emoji reaction string.
+
+ Raises:
+ RuntimeError: If the client is not running.
+ """
+ ...
+
+ async def set_follower_mute(self, jid: JID, muted: bool) -> None:
+ """Mute or unmute newsletter notifications as a follower.
+
+ Args:
+ jid: Newsletter JID.
+ muted: ``True`` to mute, ``False`` to unmute.
+
+ Raises:
+ RuntimeError: If the client is not running.
+ """
+ ...
+
+ async def set_admin_mute(self, jid: JID, muted: bool) -> None:
+ """Mute or unmute newsletter notifications as an admin.
+
+ Args:
+ jid: Newsletter JID.
+ muted: ``True`` to mute, ``False`` to unmute.
+
+ Raises:
+ RuntimeError: If the client is not running.
+ """
+ ...
+
async def edit_message(
self,
jid: JID,
message_id: str,
message: MessageProto,
- ) -> None: ...
- async def revoke_message(self, jid: JID, message_id: str) -> None: ...
+ ) -> None:
+ """Edit a previously sent newsletter message.
+
+ Args:
+ jid: Newsletter JID.
+ message_id: Message ID to edit.
+ message: Replacement protobuf message.
+
+ Raises:
+ RuntimeError: If the client is not running.
+ """
+ ...
+
+ async def revoke_message(self, jid: JID, message_id: str) -> None:
+ """Revoke a newsletter message.
+
+ Args:
+ jid: Newsletter JID.
+ message_id: Message ID to revoke.
+
+ Raises:
+ RuntimeError: If the client is not running.
+ """
+ ...
+
async def get_messages(
self,
jid: JID,
count: int,
before: int | None = None,
- ) -> list[NewsletterMessage]: ...
+ ) -> list[NewsletterMessage]:
+ """Fetch recent messages from a newsletter.
+
+ Args:
+ jid: Newsletter JID.
+ count: Maximum number of messages to return.
+ before: Optional server_id to paginate before.
+
+ Returns:
+ List of NewsletterMessage entries.
+
+ Raises:
+ RuntimeError: If the client is not running.
+
+ Example::
+
+ messages = await client.newsletter.get_messages(
+ newsletter_jid, count=10,
+ )
+ for msg in messages:
+ print(msg.server_id, msg.message_type)
+ """
+ ...
class MemberLinkMode:
- """Type stub for MemberLinkMode."""
+ """Controls who can share the group invite link."""
AdminLink: MemberLinkMode
AllMemberLink: MemberLinkMode
class MemberAddMode:
- """Type stub for MemberAddMode."""
+ """Controls who can add new members to the group."""
AdminAdd: MemberAddMode
AllMemberAdd: MemberAddMode
class MembershipApprovalMode:
- """Type stub for MembershipApprovalMode."""
+ """Controls whether new members require admin approval."""
Off: MembershipApprovalMode
On: MembershipApprovalMode
class GroupParticipantOptions:
- """Type stub for GroupParticipantOptions."""
+ """Options for adding a participant to a group."""
jid: JID
phone_number: JID | None
@@ -687,10 +2291,18 @@ class GroupParticipantOptions:
jid: JID,
phone_number: JID | None = None,
privacy: bytes | None = None,
- ) -> None: ...
+ ) -> None:
+ """Create a group participant entry.
+
+ Args:
+ jid: Participant JID.
+ phone_number: Optional phone number JID.
+ privacy: Optional privacy bytes.
+ """
+ ...
class CreateGroupOptions:
- """Type stub for CreateGroupOptions."""
+ """Options for creating a new WhatsApp group."""
subject: str
participants: list[GroupParticipantOptions]
@@ -716,139 +2328,541 @@ class CreateGroupOptions:
closed: bool = False,
allow_non_admin_sub_group_creation: bool = False,
create_general_chat: bool = False,
- ) -> None: ...
+ ) -> None:
+ """Create options for a new group.
+
+ Args:
+ subject: Group name.
+ participants: List of initial participants.
+ member_link_mode: Who can share the group link.
+ member_add_mode: Who can add members.
+ membership_approval_mode: Require approval for new members.
+ ephemeral_expiration: Disappearing message timer in seconds (0 = off).
+ is_parent: If True, create as a parent group.
+ closed: If True, only admins can edit group info.
+ allow_non_admin_sub_group_creation: Allow non-admins to create subgroups.
+ create_general_chat: Auto-create a general chat.
+ """
+ ...
class CreateGroupResult:
- """Type stub for CreateGroupResult."""
+ """Result returned after creating a group."""
gid: JID
metadata: GroupMetadata
class JoinGroupResult:
- """Type stub for JoinGroupResult."""
+ """Result returned after joining a group."""
jid: JID
pending_approval: bool
class ParticipantChangeResponse:
- """Type stub for ParticipantChangeResponse."""
+ """Response for a single participant add/remove/promote/demote operation."""
jid: JID
status: str | None
error: str | None
class MembershipRequest:
- """Type stub for MembershipRequest."""
+ """Pending membership request for a group."""
jid: JID
request_time: int | None
class GroupInfo:
- """Type stub for GroupInfo."""
+ """Basic group information returned by query_info."""
participants: list[JID]
addressing_mode: str
lid_to_pn_map: list[tuple[str, JID]]
class GroupsClient:
- """Type stub for GroupsClient."""
- async def query_info(self, jid: JID) -> GroupInfo: ...
- async def get_participating(self) -> dict[str, GroupMetadata]: ...
- async def get_metadata(self, jid: JID) -> GroupMetadata: ...
- async def create_group(self, options: CreateGroupOptions) -> CreateGroupResult: ...
- async def set_subject(self, jid: JID, subject: str) -> None: ...
+ """WhatsApp group management operations.
+
+ All async methods raise ``RuntimeError`` if the client is not running.
+ """
+
+ async def query_info(self, jid: JID) -> GroupInfo:
+ """Query basic group info (participants, addressing mode).
+
+ Args:
+ jid: Group JID.
+
+ Returns:
+ GroupInfo with participants and addressing mode.
+
+ Raises:
+ RuntimeError: If the client is not running.
+
+ Example::
+
+ info = await client.groups.query_info(group_jid)
+ print(info.participants)
+ """
+ ...
+
+ async def get_participating(self) -> dict[str, GroupMetadata]:
+ """Get all groups the account is participating in.
+
+ Returns:
+ Dict mapping group JID strings to GroupMetadata.
+
+ Raises:
+ RuntimeError: If the client is not running.
+
+ Example::
+
+ groups = await client.groups.get_participating()
+ for jid_str, metadata in groups.items():
+ print(metadata.subject)
+ """
+ ...
+
+ async def get_metadata(self, jid: JID) -> GroupMetadata:
+ """Get full group metadata including participants.
+
+ Args:
+ jid: Group JID.
+
+ Returns:
+ GroupMetadata with full participant list.
+
+ Raises:
+ RuntimeError: If the client is not running.
+
+ Example::
+
+ metadata = await client.groups.get_metadata(group_jid)
+ for p in metadata.participants:
+ print(p.jid, p.is_admin)
+ """
+ ...
+
+ async def create_group(self, options: CreateGroupOptions) -> CreateGroupResult:
+ """Create a new group with the given options.
+
+ Args:
+ options: Group creation configuration.
+
+ Returns:
+ CreateGroupResult with group ID and metadata.
+
+ Raises:
+ RuntimeError: If the client is not running.
+
+ Example::
+
+ from tryx.client import CreateGroupOptions
+ opts = CreateGroupOptions(subject='Engineering Room')
+ result = await client.groups.create_group(opts)
+ print(result.gid)
+ """
+ ...
+
+ async def set_subject(self, jid: JID, subject: str) -> None:
+ """Change the group name (subject).
+
+ Args:
+ jid: Group JID.
+ subject: New group name.
+
+ Raises:
+ RuntimeError: If the client is not running.
+ """
+ ...
+
async def set_description(
self,
jid: JID,
description: str | None = None,
prev: str | None = None,
- ) -> None: ...
- async def leave(self, jid: JID) -> None: ...
+ ) -> None:
+ """Set or update the group description.
+
+ Args:
+ jid: Group JID.
+ description: New description, or None to clear.
+ prev: Expected previous description for optimistic concurrency.
+
+ Raises:
+ RuntimeError: If the client is not running.
+ """
+ ...
+
+ async def leave(self, jid: JID) -> None:
+ """Leave a group.
+
+ Args:
+ jid: Group JID to leave.
+
+ Raises:
+ RuntimeError: If the client is not running.
+
+ Example::
+
+ await client.groups.leave(group_jid)
+ """
+ ...
+
async def add_participants(
self,
jid: JID,
participants: list[JID],
- ) -> list[ParticipantChangeResponse]: ...
+ ) -> list[ParticipantChangeResponse]:
+ """Add participants to a group.
+
+ Args:
+ jid: Group JID.
+ participants: List of participant JIDs to add.
+
+ Returns:
+ List of ParticipantChangeResponse for each participant.
+
+ Raises:
+ RuntimeError: If the client is not running.
+
+ Example::
+
+ responses = await client.groups.add_participants(
+ group_jid,
+ [JID('5599800001', 's.whatsapp.net')],
+ )
+ for r in responses:
+ print(r.jid, r.status)
+ """
+ ...
+
async def remove_participants(
self,
jid: JID,
participants: list[JID],
- ) -> list[ParticipantChangeResponse]: ...
- async def promote_participants(self, jid: JID, participants: list[JID]) -> None: ...
- async def demote_participants(self, jid: JID, participants: list[JID]) -> None: ...
- async def get_invite_link(self, jid: JID, reset: bool) -> str: ...
- async def set_locked(self, jid: JID, locked: bool) -> None: ...
- async def set_announce(self, jid: JID, announce: bool) -> None: ...
- async def set_ephemeral(self, jid: JID, expiration: int) -> None: ...
+ ) -> list[ParticipantChangeResponse]:
+ """Remove participants from a group.
+
+ Args:
+ jid: Group JID.
+ participants: List of participant JIDs to remove.
+
+ Returns:
+ List of ParticipantChangeResponse for each participant.
+ """
+ ...
+
+ async def promote_participants(self, jid: JID, participants: list[JID]) -> None:
+ """Promote participants to group admin.
+
+ Args:
+ jid: Group JID.
+ participants: List of participant JIDs to promote.
+ """
+ ...
+
+ async def demote_participants(self, jid: JID, participants: list[JID]) -> None:
+ """Demote admins to regular participants.
+
+ Args:
+ jid: Group JID.
+ participants: List of admin JIDs to demote.
+ """
+ ...
+
+ async def get_invite_link(self, jid: JID, reset: bool) -> str:
+ """Get (or reset) the group invite link.
+
+ Args:
+ jid: Group JID.
+ reset: If True, generate a new invite link.
+
+ Returns:
+ Group invite link string.
+ """
+ ...
+
+ async def set_locked(self, jid: JID, locked: bool) -> None:
+ """Lock or unlock group info changes to admins only.
+
+ Args:
+ jid: Group JID.
+ locked: ``True`` to lock, ``False`` to unlock.
+ """
+ ...
+
+ async def set_announce(self, jid: JID, announce: bool) -> None:
+ """Set whether only admins can send messages.
+
+ Args:
+ jid: Group JID.
+ announce: ``True`` for admin-only messaging.
+ """
+ ...
+
+ async def set_ephemeral(self, jid: JID, expiration: int) -> None:
+ """Set disappearing message timer (seconds, 0 to disable).
+
+ Args:
+ jid: Group JID.
+ expiration: Timer in seconds (0 to disable).
+ """
+ ...
+
async def set_membership_approval(
self,
jid: JID,
mode: MembershipApprovalMode,
- ) -> None: ...
- async def join_with_invite_code(self, code: str) -> JoinGroupResult: ...
+ ) -> None:
+ """Set membership approval mode (On/Off).
+
+ Args:
+ jid: Group JID.
+ mode: MembershipApprovalMode.On or .Off.
+ """
+ ...
+
+ async def join_with_invite_code(self, code: str) -> JoinGroupResult:
+ """Join a group using an invite code.
+
+ Args:
+ code: Invite code string.
+
+ Returns:
+ JoinGroupResult with group JID and pending approval status.
+ """
+ ...
+
async def join_with_invite_v4(
self,
group_jid: JID,
code: str,
expiration: int,
admin_jid: JID,
- ) -> JoinGroupResult: ...
- async def get_invite_info(self, code: str) -> GroupMetadata: ...
- async def get_membership_requests(self, jid: JID) -> list[MembershipRequest]: ...
+ ) -> JoinGroupResult:
+ """Join a group using a v4 invite link components.
+
+ Args:
+ group_jid: Group JID.
+ code: Invite code.
+ expiration: Invite expiration timestamp.
+ admin_jid: Admin JID that generated the invite.
+
+ Returns:
+ JoinGroupResult with group JID and pending approval status.
+ """
+ ...
+
+ async def get_invite_info(self, code: str) -> GroupMetadata:
+ """Preview group metadata from an invite code.
+
+ Args:
+ code: Invite code string.
+
+ Returns:
+ GroupMetadata for the group.
+ """
+ ...
+
+ async def get_membership_requests(self, jid: JID) -> list[MembershipRequest]:
+ """List pending membership requests.
+
+ Args:
+ jid: Group JID.
+
+ Returns:
+ List of MembershipRequest entries.
+ """
+ ...
+
async def approve_membership_requests(
self,
jid: JID,
participants: list[JID],
- ) -> list[ParticipantChangeResponse]: ...
+ ) -> list[ParticipantChangeResponse]:
+ """Approve pending membership requests.
+
+ Args:
+ jid: Group JID.
+ participants: List of participant JIDs to approve.
+
+ Returns:
+ List of ParticipantChangeResponse for each participant.
+ """
+ ...
+
async def reject_membership_requests(
self,
jid: JID,
participants: list[JID],
- ) -> list[ParticipantChangeResponse]: ...
- async def set_member_add_mode(self, jid: JID, mode: MemberAddMode) -> None: ...
+ ) -> list[ParticipantChangeResponse]:
+ """Reject pending membership requests.
+
+ Args:
+ jid: Group JID.
+ participants: List of participant JIDs to reject.
+
+ Returns:
+ List of ParticipantChangeResponse for each participant.
+ """
+ ...
+
+ async def set_member_add_mode(self, jid: JID, mode: MemberAddMode) -> None:
+ """Set who can add members (admin-only or all).
+
+ Args:
+ jid: Group JID.
+ mode: MemberAddMode.AdminAdd or .AllMemberAdd.
+ """
+ ...
+
async def set_no_frequently_forwarded(
self,
jid: JID,
restrict: bool,
- ) -> None: ...
- async def set_allow_admin_reports(self, jid: JID, allow: bool) -> None: ...
- async def set_group_history(self, jid: JID, enabled: bool) -> None: ...
- async def set_member_link_mode(self, jid: JID, mode: MemberLinkMode) -> None: ...
- async def set_limit_sharing(self, jid: JID, enabled: bool) -> None: ...
+ ) -> None:
+ """Toggle the frequently-forwarded restriction.
+
+ Args:
+ jid: Group JID.
+ restrict: ``True`` to restrict forwarding.
+ """
+ ...
+
+ async def set_allow_admin_reports(self, jid: JID, allow: bool) -> None:
+ """Toggle whether admins can send reports.
+
+ Args:
+ jid: Group JID.
+ allow: ``True`` to allow admin reports.
+ """
+ ...
+
+ async def set_group_history(self, jid: JID, enabled: bool) -> None:
+ """Toggle group history visibility for new members.
+
+ Args:
+ jid: Group JID.
+ enabled: ``True`` to show history to new members.
+ """
+ ...
+
+ async def set_member_link_mode(self, jid: JID, mode: MemberLinkMode) -> None:
+ """Set the member link mode (admin or all members).
+
+ Args:
+ jid: Group JID.
+ mode: MemberLinkMode.AdminLink or .AllMemberLink.
+ """
+ ...
+
+ async def set_limit_sharing(self, jid: JID, enabled: bool) -> None:
+ """Toggle the limit-sharing restriction.
+
+ Args:
+ jid: Group JID.
+ enabled: ``True`` to limit sharing.
+ """
+ ...
+
async def cancel_membership_requests(
self,
jid: JID,
participants: list[JID],
- ) -> list[ParticipantChangeResponse]: ...
+ ) -> list[ParticipantChangeResponse]:
+ """Cancel pending membership requests (self).
+
+ Args:
+ jid: Group JID.
+ participants: List of participant JIDs whose requests to cancel.
+
+ Returns:
+ List of ParticipantChangeResponse for each participant.
+ """
+ ...
+
async def revoke_request_code(
self,
jid: JID,
participants: list[JID],
- ) -> list[ParticipantChangeResponse]: ...
- async def acknowledge(self, jid: JID) -> None: ...
- async def set_profile_picture(self, jid: JID, image_data: bytes) -> str: ...
- async def remove_profile_picture(self, jid: JID) -> str: ...
- async def update_member_label(self, jid: JID, label: str) -> None: ...
+ ) -> list[ParticipantChangeResponse]:
+ """Revoke membership request codes for participants.
+
+ Args:
+ jid: Group JID.
+ participants: List of participant JIDs.
+
+ Returns:
+ List of ParticipantChangeResponse for each participant.
+ """
+ ...
+
+ async def acknowledge(self, jid: JID) -> None:
+ """Acknowledge group info (mark as seen).
+
+ Args:
+ jid: Group JID.
+ """
+ ...
+
+ async def set_profile_picture(self, jid: JID, image_data: bytes) -> str:
+ """Set the group profile picture from raw image bytes.
+
+ Args:
+ jid: Group JID.
+ image_data: Raw image bytes.
+
+ Returns:
+ Server-assigned picture ID.
+ """
+ ...
+
+ async def remove_profile_picture(self, jid: JID) -> str:
+ """Remove the group profile picture.
+
+ Args:
+ jid: Group JID.
+
+ Returns:
+ Server-assigned picture ID.
+ """
+ ...
+
+ async def update_member_label(self, jid: JID, label: str) -> None:
+ """Update the label for a group member.
+
+ Args:
+ jid: Group JID.
+ label: New label string.
+ """
+ ...
class StatusPrivacySetting:
- """Type stub for StatusPrivacySetting."""
+ """Privacy setting for WhatsApp status updates."""
Contacts: StatusPrivacySetting
AllowList: StatusPrivacySetting
DenyList: StatusPrivacySetting
class StatusSendOptions:
- """Type stub for StatusSendOptions."""
+ """Options for sending a WhatsApp status update."""
privacy: StatusPrivacySetting
def __init__(
self,
privacy: StatusPrivacySetting = StatusPrivacySetting.Contacts,
- ) -> None: ...
+ ) -> None:
+ """Create status send options.
+
+ Args:
+ privacy: Privacy setting (Contacts, AllowList, DenyList).
+ """
+ ...
class StatusClient:
- """Type stub for StatusClient."""
+ """WhatsApp status (story) posting operations.
+
+ All async methods raise ``RuntimeError`` if the client is not running.
+ """
+
async def send_text(
self,
text: str,
@@ -856,7 +2870,33 @@ class StatusClient:
font: int,
recipients: list[JID],
options: StatusSendOptions | None = None,
- ) -> str: ...
+ ) -> str:
+ """Send a text status update.
+
+ Args:
+ text: Status text body.
+ background_argb: Background color as ARGB integer.
+ font: Font style identifier.
+ recipients: List of recipient JIDs.
+ options: Optional status send options.
+
+ Returns:
+ Server-assigned message ID.
+
+ Raises:
+ RuntimeError: If the client is not running.
+
+ Example::
+
+ msg_id = await client.status.send_text(
+ text='Hello world!',
+ background_argb=0xFF1F9D86,
+ font=1,
+ recipients=[JID('status', 'status')],
+ )
+ """
+ ...
+
async def send_image(
self,
upload: UploadResponse,
@@ -864,7 +2904,21 @@ class StatusClient:
recipients: list[JID],
caption: str | None = None,
options: StatusSendOptions | None = None,
- ) -> str: ...
+ ) -> str:
+ """Send an image status update.
+
+ Args:
+ upload: Upload metadata from a prior upload call.
+ thumbnail: Thumbnail image bytes.
+ recipients: List of recipient JIDs.
+ caption: Optional image caption.
+ options: Optional status send options.
+
+ Returns:
+ Server-assigned message ID.
+ """
+ ...
+
async def send_video(
self,
upload: UploadResponse,
@@ -873,49 +2927,94 @@ class StatusClient:
recipients: list[JID],
caption: str | None = None,
options: StatusSendOptions | None = None,
- ) -> str: ...
+ ) -> str:
+ """Send a video status update.
+
+ Args:
+ upload: Upload metadata from a prior upload call.
+ thumbnail: Thumbnail image bytes.
+ duration_seconds: Video duration in seconds.
+ recipients: List of recipient JIDs.
+ caption: Optional video caption.
+ options: Optional status send options.
+
+ Returns:
+ Server-assigned message ID.
+ """
+ ...
+
async def send_raw(
self,
message: MessageProto,
recipients: list[JID],
options: StatusSendOptions | None = None,
- ) -> str: ...
+ ) -> str:
+ """Send a raw protobuf message as a status update.
+
+ Args:
+ message: Fully constructed protobuf Message.
+ recipients: List of recipient JIDs.
+ options: Optional status send options.
+
+ Returns:
+ Server-assigned message ID.
+ """
+ ...
+
async def revoke(
self,
message_id: str,
recipients: list[JID],
options: StatusSendOptions | None = None,
- ) -> str: ...
+ ) -> str:
+ """Revoke a status update by message ID.
+
+ Args:
+ message_id: Status message ID to revoke.
+ recipients: List of recipient JIDs.
+ options: Optional status send options.
+
+ Returns:
+ Server-assigned message ID of the revocation.
+ """
+ ...
+
@staticmethod
- def default_privacy() -> StatusPrivacySetting: ...
+ def default_privacy() -> StatusPrivacySetting:
+ """Return the default status privacy setting.
+
+ Returns:
+ StatusPrivacySetting.Contacts.
+ """
+ ...
class ChatStateType:
- """Type stub for ChatStateType."""
+ """Chat state indicator type (composing, recording, paused)."""
Composing: ChatStateType
Recording: ChatStateType
Paused: ChatStateType
class BlocklistEntry:
- """Type stub for BlocklistEntry."""
+ """A single entry in the user's blocklist."""
jid: JID
timestamp: int | None
class PollOptionResult:
- """Type stub for PollOptionResult."""
+ """Aggregated result for a single poll option."""
name: str
voters: list[str]
class PresenceStatus:
- """Type stub for PresenceStatus."""
+ """Online presence status (available or unavailable)."""
Available: PresenceStatus
Unavailable: PresenceStatus
class PrivacyCategory:
- """Type stub for PrivacyCategory."""
+ """Category of a WhatsApp privacy setting."""
Last: PrivacyCategory
Online: PrivacyCategory
@@ -929,7 +3028,7 @@ class PrivacyCategory:
Other: PrivacyCategory
class PrivacyValue:
- """Type stub for PrivacyValue."""
+ """Value for a WhatsApp privacy setting."""
All: PrivacyValue
Contacts: PrivacyValue
@@ -942,19 +3041,19 @@ class PrivacyValue:
Other: PrivacyValue
class DisallowedListAction:
- """Type stub for DisallowedListAction."""
+ """Action to apply to a disallowed list entry."""
Add: DisallowedListAction
Remove: DisallowedListAction
class PrivacySetting:
- """Type stub for PrivacySetting."""
+ """A privacy category-value pair."""
category: PrivacyCategory
value: PrivacyValue
class DisallowedListUserEntry:
- """Type stub for DisallowedListUserEntry."""
+ """A single entry in a privacy disallowed list."""
action: DisallowedListAction
jid: JID
@@ -965,10 +3064,18 @@ class DisallowedListUserEntry:
action: DisallowedListAction,
jid: JID,
pn_jid: JID | None = None,
- ) -> None: ...
+ ) -> None:
+ """Create a disallowed list entry.
+
+ Args:
+ action: Add or Remove.
+ jid: Target JID.
+ pn_jid: Optional phone-number JID.
+ """
+ ...
class DisallowedListUpdate:
- """Type stub for DisallowedListUpdate."""
+ """Update payload for a privacy disallowed list."""
dhash: str
users: list[DisallowedListUserEntry]
@@ -977,53 +3084,307 @@ class DisallowedListUpdate:
self,
dhash: str,
users: list[DisallowedListUserEntry] = [],
- ) -> None: ...
+ ) -> None:
+ """Create a disallowed list update.
+
+ Args:
+ dhash: Current list hash.
+ users: List of user entries to add/remove.
+ """
+ ...
class ChatstateClient:
- """Type stub for ChatstateClient."""
- async def send(self, to: JID, state: ChatStateType) -> None: ...
- async def send_composing(self, to: JID) -> None: ...
- async def send_recording(self, to: JID) -> None: ...
- async def send_paused(self, to: JID) -> None: ...
+ """Chat state indicators (typing, recording, paused).
+
+ All methods raise ``RuntimeError`` if the client is not running.
+ """
+
+ async def send(self, to: JID, state: ChatStateType) -> None:
+ """Send a chat state (composing, recording, or paused).
+
+ Args:
+ to: Chat JID.
+ state: ChatStateType indicator to send.
+ """
+ ...
+
+ async def send_composing(self, to: JID) -> None:
+ """Send typing indicator to a chat.
+
+ Args:
+ to: Chat JID.
+
+ Raises:
+ RuntimeError: If the client is not running.
+
+ Example::
+
+ await client.chatstate.send_composing(chat_jid)
+ await asyncio.sleep(2)
+ await client.chatstate.send_paused(chat_jid)
+ """
+ ...
+
+ async def send_recording(self, to: JID) -> None:
+ """Send recording indicator to a chat.
+
+ Args:
+ to: Chat JID.
+
+ Raises:
+ RuntimeError: If the client is not running.
+ """
+ ...
+
+ async def send_paused(self, to: JID) -> None:
+ """Send paused indicator to a chat.
+
+ Args:
+ to: Chat JID.
+
+ Raises:
+ RuntimeError: If the client is not running.
+ """
+ ...
class BlockingClient:
- """Type stub for BlockingClient."""
- async def block(self, jid: JID) -> None: ...
- async def unblock(self, jid: JID) -> None: ...
- async def get_blocklist(self) -> list[BlocklistEntry]: ...
- async def is_blocked(self, jid: JID) -> bool: ...
+ """Block and unblock WhatsApp contacts.
+
+ All methods raise ``RuntimeError`` if the client is not running.
+ """
+
+ async def block(self, jid: JID) -> None:
+ """Block a JID.
+
+ Args:
+ jid: JID to block.
+
+ Raises:
+ RuntimeError: If the client is not running.
+
+ Example::
+
+ await client.blocking.block(sender_jid)
+ """
+ ...
+
+ async def unblock(self, jid: JID) -> None:
+ """Unblock a JID.
+
+ Args:
+ jid: JID to unblock.
+
+ Raises:
+ RuntimeError: If the client is not running.
+ """
+ ...
+
+ async def get_blocklist(self) -> list[BlocklistEntry]:
+ """Return the list of blocked JIDs.
+
+ Returns:
+ List of BlocklistEntry with JID and timestamp.
+
+ Raises:
+ RuntimeError: If the client is not running.
+
+ Example::
+
+ blocklist = await client.blocking.get_blocklist()
+ for entry in blocklist:
+ print(entry.jid)
+ """
+ ...
+
+ async def is_blocked(self, jid: JID) -> bool:
+ """Return True if the JID is blocked.
+
+ Args:
+ jid: JID to check.
+
+ Returns:
+ ``True`` if the JID is in the blocklist.
+
+ Raises:
+ RuntimeError: If the client is not running.
+ """
+ ...
class ProfileClient:
- """Type stub for ProfileClient."""
- async def set_push_name(self, name: str) -> None: ...
- async def set_status_text(self, text: str) -> None: ...
- async def set_profile_picture(self, image_data: bytes) -> str: ...
- async def remove_profile_picture(self) -> str: ...
+ """Account profile management (name, status, picture).
+
+ All methods raise ``RuntimeError`` if the client is not running.
+ """
+
+ async def set_push_name(self, name: str) -> None:
+ """Update the account display name.
+
+ Args:
+ name: New display name.
+
+ Raises:
+ RuntimeError: If the client is not running.
+
+ Example::
+
+ await client.profile.set_push_name('My Bot')
+ """
+ ...
+
+ async def set_status_text(self, text: str) -> None:
+ """Update the account about/status text.
+
+ Args:
+ text: New about/status text.
+
+ Raises:
+ RuntimeError: If the client is not running.
+ """
+ ...
+
+ async def set_profile_picture(self, image_data: bytes) -> str:
+ """Set the profile picture from raw image bytes.
+
+ Args:
+ image_data: Raw image bytes.
+
+ Returns:
+ Server-assigned picture ID.
+
+ Raises:
+ RuntimeError: If the client is not running.
+
+ Example::
+
+ with open('avatar.jpg', 'rb') as f:
+ pic_id = await client.profile.set_profile_picture(f.read())
+ """
+ ...
+
+ async def remove_profile_picture(self) -> str:
+ """Remove the profile picture.
+
+ Returns:
+ Server-assigned picture ID.
+
+ Raises:
+ RuntimeError: If the client is not running.
+ """
+ ...
class PrivacyClient:
- """Type stub for PrivacyClient."""
- async def fetch_settings(self) -> list[PrivacySetting]: ...
+ """WhatsApp privacy settings management.
+
+ All methods raise ``RuntimeError`` if the client is not running.
+ """
+
+ async def fetch_settings(self) -> list[PrivacySetting]:
+ """Fetch all current privacy settings.
+
+ Returns:
+ List of PrivacySetting entries.
+
+ Raises:
+ RuntimeError: If the client is not running.
+
+ Example::
+
+ rows = await client.privacy.fetch_settings()
+ for row in rows:
+ print(row.category, row.value)
+ """
+ ...
+
async def set_setting(
self,
category: PrivacyCategory,
value: PrivacyValue,
- ) -> str | None: ...
+ ) -> str | None:
+ """Set a privacy category to a specific value.
+
+ Args:
+ category: Privacy category to update.
+ value: New privacy value.
+
+ Returns:
+ Server status string, or None on success.
+
+ Raises:
+ RuntimeError: If the client is not running.
+
+ Example::
+
+ await client.privacy.set_setting(
+ PrivacyCategory.Status,
+ PrivacyValue.Contacts,
+ )
+ """
+ ...
+
async def set_disallowed_list(
self,
category: PrivacyCategory,
update: DisallowedListUpdate,
- ) -> str | None: ...
- async def set_default_disappearing_mode(self, duration_seconds: int) -> None: ...
+ ) -> str | None:
+ """Update the disallowed list for a privacy category.
+
+ Args:
+ category: Privacy category to update.
+ update: DisallowedListUpdate with entries to add/remove.
+
+ Returns:
+ Server status string, or None on success.
+ """
+ ...
+
+ async def set_default_disappearing_mode(self, duration_seconds: int) -> None:
+ """Set the default disappearing message duration (seconds).
+
+ Args:
+ duration_seconds: Duration in seconds (0 to disable).
+ """
+ ...
class PollsClient:
- """Type stub for PollsClient."""
+ """Poll creation, voting, and decryption operations.
+
+ All async methods raise ``RuntimeError`` if the client is not running.
+ """
+
async def create(
self,
to: JID,
name: str,
options: list[str],
selectable_count: int,
- ) -> tuple[str, bytes]: ...
+ ) -> tuple[str, bytes]:
+ """Create a poll in a chat.
+
+ Args:
+ to: Chat JID.
+ name: Poll question/name.
+ options: List of option strings.
+ selectable_count: Number of options a voter can select.
+
+ Returns:
+ ``(message_id, poll_enc_key)`` tuple.
+
+ Raises:
+ ValueError: If *options* is empty or *selectable_count* is
+ invalid.
+ RuntimeError: If the client is not running.
+
+ Example::
+
+ msg_id, secret = await client.polls.create(
+ to=JID('123', 's.whatsapp.net'),
+ name='Favorite color?',
+ options=['Red', 'Blue', 'Green'],
+ selectable_count=1,
+ )
+ """
+ ...
+
async def vote(
self,
chat_jid: JID,
@@ -1031,7 +3392,21 @@ class PollsClient:
poll_creator_jid: JID,
message_secret: bytes,
option_names: list[str],
- ) -> str: ...
+ ) -> str:
+ """Cast a vote on a poll message.
+
+ Args:
+ chat_jid: Chat JID containing the poll.
+ poll_msg_id: Poll message ID.
+ poll_creator_jid: JID of the poll creator.
+ message_secret: Poll message secret bytes.
+ option_names: Selected option names.
+
+ Returns:
+ Server-assigned message ID of the vote.
+ """
+ ...
+
@staticmethod
def decrypt_vote(
enc_payload: bytes,
@@ -1040,7 +3415,22 @@ class PollsClient:
poll_msg_id: str,
poll_creator_jid: JID,
voter_jid: JID,
- ) -> list[bytes]: ...
+ ) -> list[bytes]:
+ """Decrypt a single poll vote without LID/PN fallback.
+
+ Args:
+ enc_payload: Encrypted vote payload.
+ enc_iv: Encrypted initialization vector.
+ message_secret: Poll message secret key.
+ poll_msg_id: Poll message ID.
+ poll_creator_jid: Poll creator JID.
+ voter_jid: Voter JID.
+
+ Returns:
+ List of selected option name hashes.
+ """
+ ...
+
@staticmethod
def aggregate_votes(
poll_options: list[str],
@@ -1048,12 +3438,69 @@ class PollsClient:
message_secret: bytes,
poll_msg_id: str,
poll_creator_jid: JID,
- ) -> list[PollOptionResult]: ...
+ ) -> list[PollOptionResult]:
+ """Aggregate multiple poll votes into per-option results.
+
+ Args:
+ poll_options: List of option name strings.
+ votes: List of ``(voter_jid, enc_payload, enc_iv)`` tuples.
+ message_secret: Poll message secret key.
+ poll_msg_id: Poll message ID.
+ poll_creator_jid: Poll creator JID.
+
+ Returns:
+ List of PollOptionResult with name and voters.
+ """
+ ...
class PresenceClient:
- """Type stub for PresenceClient."""
- async def set(self, status: PresenceStatus) -> None: ...
- async def set_available(self) -> None: ...
- async def set_unavailable(self) -> None: ...
- async def subscribe(self, jid: JID) -> None: ...
- async def unsubscribe(self, jid: JID) -> None: ...
+ """Online presence status management.
+
+ All methods raise ``RuntimeError`` if the client is not running.
+ """
+
+ async def set(self, status: PresenceStatus) -> None:
+ """Set presence status (Available or Unavailable).
+
+ Args:
+ status: PresenceStatus.Available or .Unavailable.
+
+ Raises:
+ RuntimeError: If the client is not running.
+
+ Example::
+
+ await client.presence.set(PresenceStatus.Available)
+ """
+ ...
+
+ async def set_available(self) -> None:
+ """Set presence to Available."""
+ ...
+
+ async def set_unavailable(self) -> None:
+ """Set presence to Unavailable."""
+ ...
+
+ async def subscribe(self, jid: JID) -> None:
+ """Subscribe to presence updates for a JID.
+
+ Args:
+ jid: JID to subscribe to.
+
+ Raises:
+ RuntimeError: If the client is not running.
+
+ Example::
+
+ await client.presence.subscribe(target_jid)
+ """
+ ...
+
+ async def unsubscribe(self, jid: JID) -> None:
+ """Unsubscribe from presence updates for a JID.
+
+ Args:
+ jid: JID to unsubscribe from.
+ """
+ ...
diff --git a/python/tryx/events.pyi b/python/tryx/events.pyi
index d62c782..118179d 100644
--- a/python/tryx/events.pyi
+++ b/python/tryx/events.pyi
@@ -20,15 +20,23 @@ EventT = TypeVar("EventT")
class Dispatcher:
"""Callback registry used by the runtime to map event classes to handlers."""
- def __init__(self) -> None: ...
+ def __init__(self) -> None:
+ """
+ Create an empty dispatcher with no registered handlers.
+ """
+ ...
def on(self, event_type: type[EventT]) -> Dispatcher:
"""Select an event class and return a decorator-like dispatcher object."""
...
def __call__(
- self, func: Callable[..., Awaitable[Any]] | Callable[..., Any]
- ) -> Callable[..., Any]:
- """Register a callback function for the previously selected event class."""
+ self,
+ func: Callable[..., Awaitable[None]] | Callable[..., Any],
+ ) -> Callable[..., Awaitable[None]] | Callable[..., Any]:
+ """Register a callback function for the previously selected event class.
+
+ The callback receives ``(client, event)`` as positional arguments.
+ """
...
class TempBanReason:
@@ -129,7 +137,14 @@ class EvPairSuccess:
"""Emitted when account pairing succeeds."""
@property
- def data(self) -> PairSuccessData: ...
+ def data(self) -> PairSuccessData:
+ """
+ Return the pairing success payload.
+
+ Returns:
+ PairSuccessData with id, lid, business_name, and platform.
+ """
+ ...
class EvPairError:
"""Emitted when account pairing fails."""
@@ -171,7 +186,14 @@ class EvTemporaryBan:
"""Emitted when the account receives a temporary ban."""
@property
- def data(self) -> EvTemporaryData: ...
+ def data(self) -> EvTemporaryData:
+ """
+ Return the temporary ban details.
+
+ Returns:
+ EvTemporaryData with ban reason code and expiration time.
+ """
+ ...
class EvConnectFailure:
"""Emitted when an initial connect attempt fails."""
@@ -180,7 +202,14 @@ class EvConnectFailure:
message: str | None
@property
- def node(self) -> Node | None: ...
+ def node(self) -> Node | None:
+ """
+ Return the raw protocol node, or ``None`` if unavailable.
+
+ Returns:
+ Optional protocol Node for debugging connection failures.
+ """
+ ...
class EvStreamError:
"""Emitted when stream-level protocol error is received."""
@@ -188,7 +217,14 @@ class EvStreamError:
code: str
@property
- def node(self) -> Node | None: ...
+ def node(self) -> Node | None:
+ """
+ Return the raw protocol node, or ``None`` if unavailable.
+
+ Returns:
+ Optional protocol Node for debugging stream errors.
+ """
+ ...
class EvReceipt:
"""Message receipt update event."""
@@ -199,7 +235,14 @@ class EvReceipt:
message_sender: JID
@property
- def source(self) -> MessageSource | None: ...
+ def source(self) -> MessageSource | None:
+ """
+ Return the message source, or ``None`` if unavailable.
+
+ Returns:
+ Optional MessageSource with sender/chat JIDs.
+ """
+ ...
class EvUndecryptableMessage:
"""Emitted when a message cannot be decrypted."""
@@ -209,7 +252,14 @@ class EvUndecryptableMessage:
decrypt_fail_mode: DecryptFailMode
@property
- def info(self) -> MessageInfo | None: ...
+ def info(self) -> MessageInfo | None:
+ """
+ Return message metadata, or ``None`` if unavailable.
+
+ Returns:
+ Optional MessageInfo for the undecryptable message.
+ """
+ ...
class MessageData:
"""Normalized message payload data."""
@@ -218,33 +268,96 @@ class MessageData:
caption: str | None
@property
- def message_info(self) -> MessageInfo: ...
- def get_extended_text_message(self) -> str | None: ...
- def get_text(self) -> str | None: ...
+ def message_info(self) -> MessageInfo:
+ """
+ Return normalized message metadata (id, type, push_name, source).
+
+ Returns:
+ MessageInfo for this message.
+ """
+ ...
+ def get_extended_text_message(self) -> str | None:
+ """
+ Extract text from extended text message, or ``None``.
+
+ Returns:
+ The extended text content, or ``None``.
+ """
+ ...
+ def get_text(self) -> str | None:
+ """
+ Extract plain text from the message body.
+
+ Returns:
+ The message text, or ``None`` if not a text message.
+ """
+ ...
@property
- def raw_proto(self) -> MessageProto: ...
+ def raw_proto(self) -> MessageProto:
+ """
+ Return the raw protobuf message object.
+
+ Returns:
+ The underlying protobuf Message instance.
+ """
+ ...
class EvMessage:
"""Main message event."""
@property
- def data(self) -> MessageData: ...
+ def data(self) -> MessageData:
+ """
+ Return the normalized message payload.
+
+ Returns:
+ MessageData with text, caption, and metadata.
+ """
+ ...
class EvNotification:
"""Raw notification node event."""
@property
- def node(self) -> Node: ...
+ def node(self) -> Node:
+ """
+ Return the raw notification protocol node.
+
+ Returns:
+ The notification Node for custom handling.
+ """
+ ...
class EvChatPresence:
"""Typing/recording presence event for a chat."""
@property
- def source(self) -> MessageSource: ...
+ def source(self) -> MessageSource:
+ """
+ Return the chat source (sender and chat JIDs).
+
+ Returns:
+ MessageSource identifying the chat.
+ """
+ ...
@property
- def state(self) -> str: ...
+ def state(self) -> str:
+ """
+ Return the presence state string (e.g. ``'composing'``).
+
+ Returns:
+ State string like ``'composing'``, ``'paused'``.
+ """
+ ...
@property
- def media(self) -> str: ...
+ def media(self) -> str:
+ """
+ Return the presence media type (e.g. ``'text'``).
+
+ Returns:
+ Media string like ``'text'``, ``'audio'``.
+ """
+ ...
class EvPresence:
"""Presence update event for a contact."""
@@ -266,7 +379,14 @@ class EvPictureUpdate:
"""Emitted when profile picture changes."""
@property
- def data(self) -> PictureUpdateData: ...
+ def data(self) -> PictureUpdateData:
+ """
+ Return the picture update payload.
+
+ Returns:
+ PictureUpdateData with jid, author, and picture_id.
+ """
+ ...
class UserAboutUpdateData:
"""User bio/about text update payload."""
@@ -279,19 +399,40 @@ class EvUserAboutUpdate:
"""Emitted when a user's about/status text changes."""
@property
- def data(self) -> UserAboutUpdateData: ...
+ def data(self) -> UserAboutUpdateData:
+ """
+ Return the about/status text update payload.
+
+ Returns:
+ UserAboutUpdateData with jid and status text.
+ """
+ ...
class LazyConversation:
"""Deferred conversation object from history sync."""
@property
- def conversation(self) -> Conversation | None: ...
+ def conversation(self) -> Conversation | None:
+ """
+ Return the parsed Conversation protobuf, or ``None``.
+
+ Returns:
+ Optional Conversation proto from history sync.
+ """
+ ...
class EvJoinedGroup:
"""Emitted when account joins a group."""
@property
- def data(self) -> LazyConversation: ...
+ def data(self) -> LazyConversation:
+ """
+ Return the lazy conversation payload.
+
+ Returns:
+ LazyConversation for the joined group event.
+ """
+ ...
class EvGroupInfoUpdate:
"""Emitted for generic group info changes."""
@@ -308,7 +449,14 @@ class EvPushNameUpdate:
"""Emitted when a contact push name changes."""
@property
- def data(self) -> EvPushNameUpdateData: ...
+ def data(self) -> EvPushNameUpdateData:
+ """
+ Return the push name change payload.
+
+ Returns:
+ EvPushNameUpdateData with old and new push names.
+ """
+ ...
class EvSelfPushNameUpdated:
"""Emitted when own account push name is updated."""
@@ -317,7 +465,7 @@ class EvSelfPushNameUpdated:
old_name: str
new_name: str
-class PinUpdatedata:
+class PinUpdateData:
"""Pin update payload."""
jid: JID
@@ -329,7 +477,14 @@ class EvPinUpdate:
"""Emitted when chat pin status changes."""
@property
- def data(self) -> PinUpdatedata: ...
+ def data(self) -> PinUpdateData:
+ """
+ Return the pin update payload.
+
+ Returns:
+ PinUpdateData with jid, timestamp, and pinned state.
+ """
+ ...
class MuteUpdateData:
"""Mute update payload."""
@@ -339,13 +494,27 @@ class MuteUpdateData:
from_full_sync: bool
@property
- def action(self) -> _MuteAction: ...
+ def action(self) -> _MuteAction:
+ """
+ Return the mute action protobuf.
+
+ Returns:
+ SyncActionValue.MuteAction proto.
+ """
+ ...
class EvMuteUpdate:
"""Emitted when mute settings change."""
@property
- def data(self) -> MuteUpdateData: ...
+ def data(self) -> MuteUpdateData:
+ """
+ Return the mute update payload.
+
+ Returns:
+ MuteUpdateData with jid and timestamp.
+ """
+ ...
class MarkChatAsReadUpdateData:
"""Read/unread marker sync payload."""
@@ -355,19 +524,40 @@ class MarkChatAsReadUpdateData:
from_full_sync: bool
@property
- def action(self) -> _MarkChatAsReadAction: ...
+ def action(self) -> _MarkChatAsReadAction:
+ """
+ Return the mark-as-read action protobuf.
+
+ Returns:
+ SyncActionValue.MarkChatAsReadAction proto.
+ """
+ ...
class EvMarkChatAsReadUpdate:
"""Emitted when read state sync action is applied."""
@property
- def data(self) -> MarkChatAsReadUpdateData: ...
+ def data(self) -> MarkChatAsReadUpdateData:
+ """
+ Return the mark-as-read update payload.
+
+ Returns:
+ MarkChatAsReadUpdateData with jid and timestamp.
+ """
+ ...
class EvHistorySync:
"""Contains protobuf history sync payload."""
@property
- def proto(self) -> HistorySync: ...
+ def proto(self) -> HistorySync:
+ """
+ Return the raw HistorySync protobuf.
+
+ Returns:
+ HistorySync proto containing synced messages.
+ """
+ ...
class OfflineSyncData:
"""Preview counters for offline sync."""
@@ -382,7 +572,14 @@ class EvOfflineSyncPreview:
"""Emitted before offline sync processing starts."""
@property
- def data(self) -> OfflineSyncData: ...
+ def data(self) -> OfflineSyncData:
+ """
+ Return offline sync preview counters.
+
+ Returns:
+ OfflineSyncData with total, messages, notifications counts.
+ """
+ ...
class OfflineSyncCompletedData:
"""Summary payload after offline sync completes."""
@@ -393,9 +590,16 @@ class EvOfflineSyncCompleted:
"""Emitted when offline sync is fully processed."""
@property
- def data(self) -> OfflineSyncCompletedData: ...
+ def data(self) -> OfflineSyncCompletedData:
+ """
+ Return offline sync completion summary.
-class DeviceNottificationInfo:
+ Returns:
+ OfflineSyncCompletedData with processed count.
+ """
+ ...
+
+class DeviceNotificationInfo:
"""Single device info entry within a device list update."""
device_id: int
@@ -407,7 +611,7 @@ class DeviceListUpdateData:
user: JID
lid_user: JID | None
update_type: DeviceListUpdateType
- devices: list[DeviceNottificationInfo]
+ devices: list[DeviceNotificationInfo]
key_index: KeyIndexInfo | None
contact_hash: str | None
@@ -415,7 +619,14 @@ class EvDeviceListUpdate:
"""Emitted when companion device list changes."""
@property
- def data(self) -> DeviceListUpdateData: ...
+ def data(self) -> DeviceListUpdateData:
+ """
+ Return the device list update payload.
+
+ Returns:
+ DeviceListUpdateData with user, devices, and update type.
+ """
+ ...
class BusinessStatusUpdateData:
"""Business profile sync payload."""
@@ -433,7 +644,14 @@ class EvBusinessStatusUpdate:
"""Emitted when business profile information changes."""
@property
- def data(self) -> BusinessStatusUpdateData: ...
+ def data(self) -> BusinessStatusUpdateData:
+ """
+ Return the business profile update payload.
+
+ Returns:
+ BusinessStatusUpdateData with jid and update type.
+ """
+ ...
class EvArchiveUpdateData:
"""Archive state sync payload."""
@@ -443,13 +661,27 @@ class EvArchiveUpdateData:
from_full_sync: bool
@property
- def action(self) -> _ArchiveChatAction: ...
+ def action(self) -> _ArchiveChatAction:
+ """
+ Return the archive action protobuf.
+
+ Returns:
+ SyncActionValue.ArchiveChatAction proto.
+ """
+ ...
class EvArchiveUpdate:
"""Emitted when chat archive state changes."""
@property
- def data(self) -> EvArchiveUpdateData: ...
+ def data(self) -> EvArchiveUpdateData:
+ """
+ Return the archive update payload.
+
+ Returns:
+ EvArchiveUpdateData with jid and timestamp.
+ """
+ ...
class EvDisappearingModeChangedData:
"""Disappearing mode update payload."""
@@ -462,7 +694,14 @@ class EvDisappearingModeChanged:
"""Emitted when disappearing mode duration changes."""
@property
- def data(self) -> EvDisappearingModeChangedData: ...
+ def data(self) -> EvDisappearingModeChangedData:
+ """
+ Return the disappearing mode change payload.
+
+ Returns:
+ EvDisappearingModeChangedData with duration and timestamp.
+ """
+ ...
class EvContactNumberChangedData:
"""Contact number change payload."""
@@ -477,7 +716,14 @@ class EvContactNumberChanged:
"""Emitted when a contact number/JID is migrated."""
@property
- def data(self) -> EvContactNumberChangedData: ...
+ def data(self) -> EvContactNumberChangedData:
+ """
+ Return the contact number change payload.
+
+ Returns:
+ EvContactNumberChangedData with old and new JIDs.
+ """
+ ...
class EvContactSyncRequestedData:
"""Payload that indicates contact sync was requested."""
@@ -489,7 +735,14 @@ class EvContactSyncRequested:
"""Emitted when the server requests contact synchronization."""
@property
- def data(self) -> EvContactSyncRequestedData: ...
+ def data(self) -> EvContactSyncRequestedData:
+ """
+ Return the contact sync request payload.
+
+ Returns:
+ EvContactSyncRequestedData with after timestamp.
+ """
+ ...
class EvContactUpdatedData:
"""Payload for single contact metadata updates."""
@@ -501,7 +754,14 @@ class EvContactUpdated:
"""Emitted when a contact metadata entry is updated."""
@property
- def data(self) -> EvContactUpdatedData: ...
+ def data(self) -> EvContactUpdatedData:
+ """
+ Return the contact update payload.
+
+ Returns:
+ EvContactUpdatedData with jid and timestamp.
+ """
+ ...
class EvStarUpdateData:
"""Star/unstar sync payload for a specific message."""
@@ -518,7 +778,14 @@ class EvStarUpdate:
"""Emitted when message star state changes."""
@property
- def data(self) -> EvStarUpdateData: ...
+ def data(self) -> EvStarUpdateData:
+ """
+ Return the star update payload.
+
+ Returns:
+ EvStarUpdateData with message_id, starred state, and timestamp.
+ """
+ ...
class GroupParticipant:
"""Participant entry embedded in group notification actions."""
@@ -540,7 +807,14 @@ class EvGroupUpdate:
"""Emitted for rich group notification changes."""
@property
- def data(self) -> GroupUpdateData: ...
+ def data(self) -> GroupUpdateData:
+ """
+ Return the group notification update payload.
+
+ Returns:
+ GroupUpdateData with group_jid, participant, and action.
+ """
+ ...
class ContactUpdateData:
"""Contact sync action payload."""
@@ -550,13 +824,27 @@ class ContactUpdateData:
from_full_sync: bool
@property
- def action(self) -> _ContactAction: ...
+ def action(self) -> _ContactAction:
+ """
+ Return the contact sync action protobuf.
+
+ Returns:
+ SyncActionValue.ContactAction proto.
+ """
+ ...
class EvContactUpdate:
"""Emitted when contact sync actions are applied."""
@property
- def data(self) -> ContactUpdateData: ...
+ def data(self) -> ContactUpdateData:
+ """
+ Return the contact update payload.
+
+ Returns:
+ ContactUpdateData with jid and timestamp.
+ """
+ ...
class NewsletterLiveUpdateReaction:
"""Reaction count entry in newsletter live updates."""
@@ -580,7 +868,14 @@ class EvNewsletterLiveUpdate:
"""Emitted when subscribed newsletter receives live changes."""
@property
- def data(self) -> NewsletterLiveUpdateData: ...
+ def data(self) -> NewsletterLiveUpdateData:
+ """
+ Return the newsletter live update payload.
+
+ Returns:
+ NewsletterLiveUpdateData with messages and reactions.
+ """
+ ...
class DeleteChatUpdateData:
"""Delete-chat sync action payload."""
@@ -591,13 +886,27 @@ class DeleteChatUpdateData:
from_full_sync: bool
@property
- def action(self) -> _DeleteChatAction: ...
+ def action(self) -> _DeleteChatAction:
+ """
+ Return the delete-chat action protobuf.
+
+ Returns:
+ SyncActionValue.DeleteChatAction proto.
+ """
+ ...
class EvDeleteChatUpdate:
"""Emitted when a chat is deleted via sync action."""
@property
- def data(self) -> DeleteChatUpdateData: ...
+ def data(self) -> DeleteChatUpdateData:
+ """
+ Return the delete-chat update payload.
+
+ Returns:
+ DeleteChatUpdateData with jid and timestamp.
+ """
+ ...
class DeleteMessageForMeUpdateData:
"""Delete-for-me sync action payload for a single message."""
@@ -614,4 +923,11 @@ class EvDeleteMessageForMeUpdate:
"""Emitted when a message is deleted-for-me via sync action."""
@property
- def data(self) -> DeleteMessageForMeUpdateData: ...
+ def data(self) -> DeleteMessageForMeUpdateData:
+ """
+ Return the delete-for-me update payload.
+
+ Returns:
+ DeleteMessageForMeUpdateData with message_id and timestamp.
+ """
+ ...
diff --git a/python/tryx/helpers.pyi b/python/tryx/helpers.pyi
index 88a3e1e..364f633 100644
--- a/python/tryx/helpers.pyi
+++ b/python/tryx/helpers.pyi
@@ -19,23 +19,75 @@ class NewsletterHelpers:
"""Helpers for newsletter message serialization and builders."""
@staticmethod
- def parse_message(data: bytes) -> MessageProto: ...
+ def parse_message(data: bytes) -> MessageProto:
+ """
+ Deserialize protobuf bytes into a Message proto.
+
+ Args:
+ data: Raw protobuf bytes.
+
+ Returns:
+ Parsed Message proto.
+ """
+ ...
@staticmethod
- def serialize_message(message: MessageProto) -> bytes: ...
+ def serialize_message(message: MessageProto) -> bytes:
+ """
+ Serialize a Message proto into protobuf bytes.
+
+ Args:
+ message: Message proto to serialize.
+
+ Returns:
+ Serialized bytes.
+ """
+ ...
@staticmethod
- def build_text_message(text: str) -> MessageProto: ...
+ def build_text_message(text: str) -> MessageProto:
+ """
+ Build a text-only Message proto.
+
+ Args:
+ text: Message body text.
+
+ Returns:
+ Message proto with conversation set.
+ """
+ ...
class GroupsHelpers:
"""Helpers for group invite and option object construction."""
@staticmethod
- def strip_invite_url(code: str) -> str: ...
+ def strip_invite_url(code: str) -> str:
+ """
+ Strip the WhatsApp invite URL prefix from a code.
+
+ Args:
+ code: Full invite URL or raw code.
+
+ Returns:
+ Stripped invite code.
+ """
+ ...
@staticmethod
def build_participant(
jid: JID,
phone_number: JID | None = None,
privacy: bytes | None = None,
- ) -> GroupParticipantOptions: ...
+ ) -> GroupParticipantOptions:
+ """
+ Build a GroupParticipantOptions object.
+
+ Args:
+ jid: Participant JID.
+ phone_number: Optional phone number JID.
+ privacy: Optional privacy bytes.
+
+ Returns:
+ GroupParticipantOptions instance.
+ """
+ ...
@staticmethod
def build_create_options(
subject: str,
@@ -49,7 +101,26 @@ class GroupsHelpers:
closed: bool = False,
allow_non_admin_sub_group_creation: bool = False,
create_general_chat: bool = False,
- ) -> CreateGroupOptions: ...
+ ) -> CreateGroupOptions:
+ """
+ Build a CreateGroupOptions object.
+
+ Args:
+ subject: Group name.
+ participants: List of initial participants.
+ member_link_mode: Who can share the group link.
+ member_add_mode: Who can add members.
+ membership_approval_mode: Require approval for new members.
+ ephemeral_expiration: Disappearing message timer in seconds.
+ is_parent: If ``True``, create as a parent group.
+ closed: If ``True``, only admins can edit group info.
+ allow_non_admin_sub_group_creation: Allow non-admins to create subgroups.
+ create_general_chat: Auto-create a general chat.
+
+ Returns:
+ CreateGroupOptions instance.
+ """
+ ...
class StatusHelpers:
"""Helpers for status privacy and send options."""
@@ -57,25 +128,74 @@ class StatusHelpers:
@staticmethod
def build_send_options(
privacy: StatusPrivacySetting = StatusPrivacySetting.Contacts,
- ) -> StatusSendOptions: ...
+ ) -> StatusSendOptions:
+ """
+ Build a StatusSendOptions object.
+
+ Args:
+ privacy: Privacy setting (Contacts, AllowList, DenyList).
+
+ Returns:
+ StatusSendOptions instance.
+ """
+ ...
@staticmethod
- def default_privacy() -> StatusPrivacySetting: ...
+ def default_privacy() -> StatusPrivacySetting:
+ """
+ Return the default status privacy setting.
+
+ Returns:
+ StatusPrivacySetting.Contacts.
+ """
+ ...
class ChatstateHelpers:
"""Helpers for constructing chat state enum values."""
@staticmethod
- def composing() -> ChatStateType: ...
+ def composing() -> ChatStateType:
+ """
+ Return ChatStateType.Composing.
+
+ Returns:
+ ChatStateType for typing indicator.
+ """
+ ...
@staticmethod
- def recording() -> ChatStateType: ...
+ def recording() -> ChatStateType:
+ """
+ Return ChatStateType.Recording.
+
+ Returns:
+ ChatStateType for recording indicator.
+ """
+ ...
@staticmethod
- def paused() -> ChatStateType: ...
+ def paused() -> ChatStateType:
+ """
+ Return ChatStateType.Paused.
+
+ Returns:
+ ChatStateType for paused indicator.
+ """
+ ...
class BlockingHelpers:
"""Helpers related to blocklist identity matching."""
@staticmethod
- def same_user(a: JID, b: JID) -> bool: ...
+ def same_user(a: JID, b: JID) -> bool:
+ """
+ Check if two JIDs belong to the same user (ignoring device).
+
+ Args:
+ a: First JID.
+ b: Second JID.
+
+ Returns:
+ ``True`` if both JIDs share the same user part.
+ """
+ ...
class PollsHelpers:
"""Helpers for poll vote decryption and aggregation."""
@@ -88,7 +208,22 @@ class PollsHelpers:
poll_msg_id: str,
poll_creator_jid: JID,
voter_jid: JID,
- ) -> list[bytes]: ...
+ ) -> list[bytes]:
+ """
+ Decrypt a single poll vote without LID/PN fallback.
+
+ Args:
+ enc_payload: Encrypted vote payload.
+ enc_iv: Encrypted initialization vector.
+ message_secret: Poll message secret key.
+ poll_msg_id: Poll message ID.
+ poll_creator_jid: Poll creator JID.
+ voter_jid: Voter JID.
+
+ Returns:
+ List of selected option name hashes.
+ """
+ ...
@staticmethod
def aggregate_votes(
poll_options: list[str],
@@ -96,10 +231,31 @@ class PollsHelpers:
message_secret: bytes,
poll_msg_id: str,
poll_creator_jid: JID,
- ) -> list[PollOptionResult]: ...
+ ) -> list[PollOptionResult]:
+ """
+ Aggregate multiple poll votes into per-option results.
+
+ Args:
+ poll_options: List of option name strings.
+ votes: List of (voter_jid, enc_payload, enc_iv) tuples.
+ message_secret: Poll message secret key.
+ poll_msg_id: Poll message ID.
+ poll_creator_jid: Poll creator JID.
+
+ Returns:
+ List of PollOptionResult with name and voters.
+ """
+ ...
class PresenceHelpers:
"""Helpers for default presence values."""
@staticmethod
- def default_status() -> PresenceStatus: ...
+ def default_status() -> PresenceStatus:
+ """
+ Return the default presence status.
+
+ Returns:
+ PresenceStatus.Available.
+ """
+ ...
diff --git a/python/tryx/media.pyi b/python/tryx/media.pyi
index fcc56db..c71ac53 100644
--- a/python/tryx/media.pyi
+++ b/python/tryx/media.pyi
@@ -14,6 +14,7 @@ WA_FRAME_SAMPLES: Final[int]
WA_FRAME_MS: Final[int]
def validate_audio_frame(frame: bytes | bytearray | memoryview) -> bytes: ...
+
@dataclass(frozen=True)
class VideoFrame:
"""One H.264 Annex-B access unit received from or sent to a call."""
@@ -24,62 +25,205 @@ class VideoFrame:
keyframe: bool
width: int | None
height: int | None
- orientation: int = ...
+ orientation: int = 0
class AudioSource:
"""Abstract audio source that produces raw PCM frames."""
- def frames(self) -> AsyncIterator[bytes]: ...
- async def aclose(self) -> None: ...
+ def frames(self) -> AsyncIterator[bytes]:
+ """
+ Yield raw PCM audio frames (16-bit LE, 48 kHz mono).
+
+ Yields:
+ Bytes of raw PCM audio.
+ """
+ ...
+ async def aclose(self) -> None:
+ """
+ Release resources held by this audio source.
+ """
+ ...
class AudioPlayer(AudioSource):
"""Built-in audio player that decodes and plays audio files."""
- def __init__(self, buffer_frames: int = ...) -> None: ...
- def play(self, path: str, mode: str = ...) -> None: ...
- def stop(self) -> None: ...
- def pause(self) -> None: ...
- def resume(self) -> None: ...
- def enqueue(self, path: str) -> None: ...
- def skip(self) -> None: ...
- def clear_queue(self) -> None: ...
+ def __init__(self, buffer_frames: int = 3) -> None:
+ """
+ Create an audio player with a decoder and command channel.
+
+ Args:
+ buffer_frames: Number of decoded frames to buffer (1-30).
+ """
+ ...
+ def play(self, path: str, mode: str | None = None) -> None:
+ """
+ Start playing an audio file.
+
+ Args:
+ path: Filesystem path to the audio file.
+ mode: Playback mode (``'replace'``, ``'queue'``, ``'interrupt'``),
+ or ``None`` for default replace behavior.
+ """
+ ...
+ def stop(self) -> None:
+ """
+ Stop playback and flush the command queue.
+ """
+ ...
+ def pause(self) -> None:
+ """
+ Pause playback (resume with ``resume()``).
+ """
+ ...
+ def resume(self) -> None:
+ """
+ Resume paused playback.
+ """
+ ...
+ def enqueue(self, path: str) -> None:
+ """
+ Add an audio file to the playback queue.
+
+ Args:
+ path: Filesystem path to the audio file.
+ """
+ ...
+ def skip(self) -> None:
+ """
+ Skip the currently playing file and play the next in queue.
+ """
+ ...
+ def clear_queue(self) -> None:
+ """
+ Clear all queued audio files.
+ """
+ ...
@property
- def state(self) -> str: ...
+ def state(self) -> str:
+ """
+ Return the current player state string.
+
+ Returns:
+ State string (``'idle'``, ``'playing'``, ``'paused'``).
+ """
+ ...
class VideoPlayer(VideoSource):
"""Built-in video player that demuxes and decodes video files."""
- def __init__(self, fps: int = ...) -> None: ...
- def play(self, path: str) -> None: ...
- def stop(self) -> None: ...
+ def __init__(self, fps: int = 15) -> None:
+ """
+ Create a video player with FFmpeg demuxer.
+
+ Args:
+ fps: Target frames per second (1-60).
+ """
+ ...
+ def play(self, path: str) -> None:
+ """
+ Start playing a video file.
+
+ Args:
+ path: Filesystem path to the video file.
+ """
+ ...
+ def stop(self) -> None:
+ """
+ Stop video playback.
+ """
+ ...
class AudioSink:
"""Abstract audio sink that consumes raw PCM frames."""
- async def write(self, frame: bytes) -> None: ...
- async def aclose(self) -> None: ...
+ async def write(self, frame: bytes) -> None:
+ """
+ Write a raw PCM audio frame.
+
+ Args:
+ frame: Raw PCM bytes (16-bit LE, 48 kHz mono).
+ """
+ ...
+ async def aclose(self) -> None:
+ """
+ Release resources held by this audio sink.
+ """
+ ...
class VideoSource:
"""Abstract video source that produces decoded video frames."""
- def frames(self) -> AsyncIterator[VideoFrame]: ...
- def rtp_timestamp_stride(self) -> int: ...
- async def aclose(self) -> None: ...
+ def frames(self) -> AsyncIterator[VideoFrame]:
+ """
+ Yield decoded H.264 video frames.
+
+ Yields:
+ VideoFrame access units.
+ """
+ ...
+ def rtp_timestamp_stride(self) -> int:
+ """
+ Return the RTP timestamp stride for this video source.
+
+ Returns:
+ Timestamp stride integer (ticks per frame).
+ """
+ ...
+ async def aclose(self) -> None:
+ """
+ Release resources held by this video source.
+ """
+ ...
class VideoSink:
"""Abstract video sink that consumes decoded video frames."""
- async def write(self, frame: VideoFrame) -> None: ...
- async def aclose(self) -> None: ...
+ async def write(self, frame: VideoFrame) -> None:
+ """
+ Write a decoded video frame.
+
+ Args:
+ frame: VideoFrame access unit.
+ """
+ ...
+ async def aclose(self) -> None:
+ """
+ Release resources held by this video sink.
+ """
+ ...
class EncodedAudioSource:
"""Abstract source that produces encoded audio packets (e.g. Opus)."""
- def frames(self) -> AsyncIterator[bytes]: ...
- async def aclose(self) -> None: ...
+ def frames(self) -> AsyncIterator[bytes]:
+ """
+ Yield encoded audio packets (e.g. Opus).
+
+ Yields:
+ Encoded audio packet bytes.
+ """
+ ...
+ async def aclose(self) -> None:
+ """
+ Release resources held by this encoded audio source.
+ """
+ ...
class EncodedAudioSink:
"""Abstract sink that consumes encoded audio packets."""
- async def write(self, packet: bytes, timestamp: int, sequence: int) -> None: ...
- async def aclose(self) -> None: ...
+ async def write(self, packet: bytes, timestamp: int, sequence: int) -> None:
+ """
+ Write an encoded audio packet.
+
+ Args:
+ packet: Encoded audio bytes.
+ timestamp: RTP timestamp.
+ sequence: Packet sequence number.
+ """
+ ...
+ async def aclose(self) -> None:
+ """
+ Release resources held by this encoded audio sink.
+ """
+ ...
diff --git a/python/tryx/tryx.pyi b/python/tryx/tryx.pyi
index 9958db1..ba4783b 100644
--- a/python/tryx/tryx.pyi
+++ b/python/tryx/tryx.pyi
@@ -226,7 +226,7 @@ from .events import (
DeviceListUpdateType as DeviceListUpdateType,
)
from .events import (
- DeviceNottificationInfo as DeviceNottificationInfo,
+ DeviceNotificationInfo as DeviceNotificationInfo,
)
from .events import (
Dispatcher as Dispatcher,
@@ -409,7 +409,7 @@ from .events import (
PictureUpdateData as PictureUpdateData,
)
from .events import (
- PinUpdatedata as PinUpdatedata,
+ PinUpdateData as PinUpdateData,
)
from .events import (
ReceiptType as ReceiptType,
diff --git a/python/tryx/types.pyi b/python/tryx/types.pyi
index 26ecb63..3cf2b4c 100644
--- a/python/tryx/types.pyi
+++ b/python/tryx/types.pyi
@@ -32,45 +32,157 @@ class MsgBotInfo:
"""Bot edit metadata attached to a message."""
@property
- def edit_type(self) -> Literal["First", "Inner", "Last"] | None: ...
+ def edit_type(self) -> Literal["First", "Inner", "Last"] | None:
+ """
+ Return the edit type (``'First'``, ``'Inner'``, ``'Last'``), or ``None``.
+
+ Returns:
+ Edit type string or ``None``.
+ """
+ ...
@property
- def edit_target_id(self) -> str | None: ...
+ def edit_target_id(self) -> str | None:
+ """
+ Return the edit target message ID, or ``None``.
+
+ Returns:
+ Target message ID string or ``None``.
+ """
+ ...
@property
- def edit_sender_timestamp(self) -> int | None: ...
+ def edit_sender_timestamp(self) -> int | None:
+ """
+ Return the edit sender timestamp, or ``None``.
+
+ Returns:
+ Timestamp integer or ``None``.
+ """
+ ...
class MsgMetaInfo:
"""Additional metadata attached to a message payload."""
@property
- def target_id(self) -> str | None: ...
+ def target_id(self) -> str | None:
+ """
+ Return the target message ID, or ``None``.
+
+ Returns:
+ Target message ID string or ``None``.
+ """
+ ...
@property
- def target_sender(self) -> JID | None: ...
+ def target_sender(self) -> JID | None:
+ """
+ Return the target sender JID, or ``None``.
+
+ Returns:
+ Target sender JID or ``None``.
+ """
+ ...
@property
- def target_chat(self) -> JID | None: ...
+ def target_chat(self) -> JID | None:
+ """
+ Return the target chat JID, or ``None``.
+
+ Returns:
+ Target chat JID or ``None``.
+ """
+ ...
@property
- def deprecated_lid_session(self) -> bool | None: ...
+ def deprecated_lid_session(self) -> bool | None:
+ """
+ Return deprecated LID session flag, or ``None``.
+
+ Returns:
+ Boolean or ``None``.
+ """
+ ...
@property
- def thread_message_id(self) -> str | None: ...
+ def thread_message_id(self) -> str | None:
+ """
+ Return the thread message ID, or ``None``.
+
+ Returns:
+ Thread message ID string or ``None``.
+ """
+ ...
@property
- def thread_message_sender_jid(self) -> JID | None: ...
+ def thread_message_sender_jid(self) -> JID | None:
+ """
+ Return the thread message sender JID, or ``None``.
+
+ Returns:
+ Sender JID or ``None``.
+ """
+ ...
@property
- def content_type(self) -> str | None: ...
+ def content_type(self) -> str | None:
+ """
+ Return the content type string, or ``None``.
+
+ Returns:
+ Content type string or ``None``.
+ """
+ ...
@property
- def appdata(self) -> str | None: ...
+ def appdata(self) -> str | None:
+ """
+ Return the app data string, or ``None``.
+
+ Returns:
+ App data string or ``None``.
+ """
+ ...
@property
- def reporting_tag(self) -> bytes | None: ...
+ def reporting_tag(self) -> bytes | None:
+ """
+ Return the reporting tag bytes, or ``None``.
+
+ Returns:
+ Raw bytes or ``None``.
+ """
+ ...
@property
- def reporting_token(self) -> bytes | None: ...
+ def reporting_token(self) -> bytes | None:
+ """
+ Return the reporting token bytes, or ``None``.
+
+ Returns:
+ Raw bytes or ``None``.
+ """
+ ...
@property
- def reporting_token_version(self) -> int | None: ...
+ def reporting_token_version(self) -> int | None:
+ """
+ Return the reporting token version, or ``None``.
+
+ Returns:
+ Version integer or ``None``.
+ """
+ ...
class DeviceSentMeta:
"""Metadata used for device-sent message synchronization."""
@property
- def destination_jid(self) -> str: ...
+ def destination_jid(self) -> str:
+ """
+ Return the destination JID string.
+
+ Returns:
+ Destination JID string.
+ """
+ ...
@property
- def phash(self) -> str: ...
+ def phash(self) -> str:
+ """
+ Return the phone hash string.
+
+ Returns:
+ Phone hash string.
+ """
+ ...
class MessageInfo:
"""Normalized metadata for a received or sent message."""
@@ -80,79 +192,296 @@ class MessageInfo:
push_name: str
@property
- def source(self) -> MessageSource: ...
+ def source(self) -> MessageSource:
+ """
+ Return the message source (sender, chat, is_from_me).
+
+ Returns:
+ MessageSource with sender and chat JIDs.
+ """
+ ...
@property
- def multicast(self) -> bool: ...
+ def multicast(self) -> bool:
+ """
+ Return ``True`` if the message was sent to multiple recipients.
+
+ Returns:
+ Boolean flag.
+ """
+ ...
@property
- def server_id(self) -> int: ...
+ def server_id(self) -> int:
+ """
+ Return the server-assigned message ID.
+
+ Returns:
+ Server ID integer.
+ """
+ ...
@property
- def timestamp(self) -> datetime: ...
+ def timestamp(self) -> datetime:
+ """
+ Return the message timestamp.
+
+ Returns:
+ datetime of the message.
+ """
+ ...
@property
- def media_type(self) -> str: ...
+ def media_type(self) -> str:
+ """
+ Return the media type string (e.g. ``'image'``, ``'video'``).
+
+ Returns:
+ Media type string.
+ """
+ ...
@property
- def edit(self) -> str: ...
+ def edit(self) -> str:
+ """
+ Return the edit status string, or ``None``.
+
+ Returns:
+ Edit string or ``None``.
+ """
+ ...
@property
- def bot_info(self) -> MsgBotInfo | None: ...
+ def bot_info(self) -> MsgBotInfo | None:
+ """
+ Return bot edit metadata, or ``None``.
+
+ Returns:
+ MsgBotInfo or ``None``.
+ """
+ ...
@property
- def meta_info(self) -> MsgMetaInfo: ...
+ def meta_info(self) -> MsgMetaInfo:
+ """
+ Return additional message metadata.
+
+ Returns:
+ MsgMetaInfo with target_id, content_type, etc.
+ """
+ ...
@property
- def verified_name(self) -> VerifiedNameCertificate | None: ...
+ def verified_name(self) -> VerifiedNameCertificate | None:
+ """
+ Return the verified name certificate, or ``None``.
+
+ Returns:
+ VerifiedNameCertificate or ``None``.
+ """
+ ...
@property
- def device_sent_meta(self) -> DeviceSentMeta | None: ...
+ def device_sent_meta(self) -> DeviceSentMeta | None:
+ """
+ Return device-sent metadata, or ``None``.
+
+ Returns:
+ DeviceSentMeta or ``None``.
+ """
+ ...
@property
- def category(self) -> str: ...
+ def category(self) -> str:
+ """
+ Return the message category string.
+
+ Returns:
+ Category string (e.g. ``'message'``).
+ """
+ ...
@property
- def ephemeral_expiration(self) -> int | None: ...
+ def ephemeral_expiration(self) -> int | None:
+ """
+ Return the ephemeral expiration timer in seconds, or ``None``.
+
+ Returns:
+ Expiration seconds or ``None``.
+ """
+ ...
@property
- def is_offline(self) -> bool: ...
+ def is_offline(self) -> bool:
+ """
+ Return ``True`` if the message was sent while offline.
+
+ Returns:
+ Boolean flag.
+ """
+ ...
@property
- def unavailable_request_id(self) -> str | None: ...
+ def unavailable_request_id(self) -> str | None:
+ """
+ Return the unavailable request ID, or ``None``.
+
+ Returns:
+ Request ID string or ``None``.
+ """
+ ...
@property
- def server_timestamp_us(self) -> int | None: ...
+ def server_timestamp_us(self) -> int | None:
+ """
+ Return the server timestamp in microseconds, or ``None``.
+
+ Returns:
+ Microsecond timestamp or ``None``.
+ """
+ ...
@property
- def verified_level(self) -> str | None: ...
+ def verified_level(self) -> str | None:
+ """
+ Return the verified level string, or ``None``.
+
+ Returns:
+ Level string or ``None``.
+ """
+ ...
@property
- def verified_name_serial(self) -> int | None: ...
+ def verified_name_serial(self) -> int | None:
+ """
+ Return the verified name serial number, or ``None``.
+
+ Returns:
+ Serial integer or ``None``.
+ """
+ ...
@property
- def peer_recipient_pn(self) -> JID | None: ...
+ def peer_recipient_pn(self) -> JID | None:
+ """
+ Return the peer recipient phone JID, or ``None``.
+
+ Returns:
+ JID or ``None``.
+ """
+ ...
@property
- def bcl_participants(self) -> list[JID]: ...
+ def bcl_participants(self) -> list[JID]:
+ """
+ Return the broadcast list participant JIDs.
+
+ Returns:
+ List of JID objects.
+ """
+ ...
class UploadResponse:
"""Result of a media upload call."""
@property
- def url(self) -> str: ...
+ def url(self) -> str:
+ """
+ Return the upload URL.
+
+ Returns:
+ URL string.
+ """
+ ...
@property
- def direct_path(self) -> str: ...
+ def direct_path(self) -> str:
+ """
+ Return the direct download path.
+
+ Returns:
+ Direct path string.
+ """
+ ...
@property
- def media_key(self) -> bytes: ...
+ def media_key(self) -> bytes:
+ """
+ Return the media encryption key.
+
+ Returns:
+ Media key bytes.
+ """
+ ...
@property
- def file_enc_sha256(self) -> bytes: ...
+ def file_enc_sha256(self) -> bytes:
+ """
+ Return the encrypted file SHA-256 hash.
+
+ Returns:
+ SHA-256 hash bytes.
+ """
+ ...
@property
- def file_sha256(self) -> bytes: ...
+ def file_sha256(self) -> bytes:
+ """
+ Return the plaintext file SHA-256 hash.
+
+ Returns:
+ SHA-256 hash bytes.
+ """
+ ...
@property
- def file_length(self) -> int: ...
+ def file_length(self) -> int:
+ """
+ Return the file size in bytes.
+
+ Returns:
+ File length integer.
+ """
+ ...
@property
- def media_key_timestamp(self) -> int: ...
+ def media_key_timestamp(self) -> int:
+ """
+ Return the media key timestamp.
+
+ Returns:
+ Timestamp integer.
+ """
+ ...
@property
- def streaming_sidecar(self) -> bytes | None: ...
+ def streaming_sidecar(self) -> bytes | None:
+ """
+ Return the streaming sidecar bytes, or ``None``.
+
+ Returns:
+ Sidecar bytes or ``None``.
+ """
+ ...
class SendResult:
"""Result metadata for send operations."""
@property
- def message_id(self) -> str: ...
+ def message_id(self) -> str:
+ """
+ Return the server-assigned message ID.
+
+ Returns:
+ Message ID string.
+ """
+ ...
@property
- def to(self) -> JID: ...
+ def to(self) -> JID:
+ """
+ Return the recipient JID.
+
+ Returns:
+ Recipient JID.
+ """
+ ...
class MediaReuploadResult:
"""Result of media reupload request."""
@property
- def status(self) -> str: ...
+ def status(self) -> str:
+ """
+ Return the reupload status string.
+
+ Returns:
+ Status string (e.g. ``'ok'``).
+ """
+ ...
@property
- def direct_path(self) -> str | None: ...
+ def direct_path(self) -> str | None:
+ """
+ Return the new direct path, or ``None``.
+
+ Returns:
+ Direct path string or ``None``.
+ """
+ ...
class ProfilePicture:
"""Metadata about a user's profile picture."""
diff --git a/python/tryx/wacore.pyi b/python/tryx/wacore.pyi
index 95b7ca7..07af6b5 100644
--- a/python/tryx/wacore.pyi
+++ b/python/tryx/wacore.pyi
@@ -25,29 +25,84 @@ class NodeValue:
"""
def __init__(self, value: str) -> None:
- """Create a NodeValue from a string."""
+ """Create a NodeValue from a string.
+
+ Args:
+ value: Initial string value.
+
+ Example::
+
+ val = NodeValue('hello')
+ print(val.value) # 'hello'
+ """
...
@staticmethod
def jid(value: JID) -> NodeValue:
- """Create a NodeValue from a JID."""
+ """Create a NodeValue from a JID.
+
+ Args:
+ value: JID to wrap.
+
+ Returns:
+ NodeValue wrapping the JID.
+
+ Example::
+
+ val = NodeValue.jid(JID('123', 's.whatsapp.net'))
+ print(val.value) # JID object
+ """
...
def set_string(self, value: str) -> None:
- """Replace the current value with a string."""
+ """Replace the current value with a string.
+
+ Args:
+ value: New string value.
+
+ Example::
+
+ val = NodeValue('old')
+ val.set_string('new')
+ """
...
def set_jid(self, value: JID) -> None:
- """Replace the current value with a JID."""
+ """Replace the current value with a JID.
+
+ Args:
+ value: New JID value.
+
+ Example::
+
+ val = NodeValue('default')
+ val.set_jid(JID('123', 's.whatsapp.net'))
+ """
...
@property
def value(self) -> str | JID:
- """Return the current value as either a string or JID."""
+ """Return the current value as either a string or JID.
+
+ Returns:
+ The attribute value (str or JID).
+
+ Raises:
+ TypeError: If the internal type is neither str nor JID.
+ """
...
@value.setter
- def value(self, value: str | JID) -> None: ...
+ def value(self, value: str | JID) -> None:
+ """Set the current value to a string or JID.
+
+ Args:
+ value: New value (string or JID).
+
+ Raises:
+ TypeError: If *value* is not a str or JID.
+ """
+ ...
class NodeContent:
"""Represents node payload content.
@@ -57,7 +112,11 @@ class NodeContent:
@property
def value(self) -> bytes | str | list[Node]:
- """Return the current content value."""
+ """Return the current content value.
+
+ Returns:
+ Content as bytes, string, or list of child Nodes.
+ """
...
def is_bytes(self) -> bool:
@@ -79,7 +138,16 @@ class Attrs:
value: NodeValue
def __init__(self, key: str, value: NodeValue) -> None:
- """Create a node attribute pair."""
+ """Create a node attribute pair.
+
+ Args:
+ key: Attribute name.
+ value: Attribute value.
+
+ Example::
+
+ attr = Attrs('to', NodeValue.jid(JID('123', 's.whatsapp.net')))
+ """
...
class Node:
@@ -95,7 +163,21 @@ class Node:
attrs: list[Attrs],
content: NodeContent | None,
) -> None:
- """Create a protocol node object."""
+ """Create a protocol node object.
+
+ Args:
+ tag: Node tag name.
+ attrs: List of attribute entries.
+ content: Optional payload content.
+
+ Example::
+
+ node = Node(
+ tag='message',
+ attrs=[Attrs('to', NodeValue.jid(JID('123', 's.whatsapp.net')))],
+ content=None,
+ )
+ """
...
class KeyIndexInfo:
diff --git a/python/tryx/waproto/whatsapp_pb2.py b/python/tryx/waproto/whatsapp_pb2.py
index a1bb3ae..f85410f 100644
--- a/python/tryx/waproto/whatsapp_pb2.py
+++ b/python/tryx/waproto/whatsapp_pb2.py
@@ -1,8 +1,8 @@
# -*- coding: utf-8 -*-
# Generated by the protocol buffer compiler. DO NOT EDIT!
# NO CHECKED-IN PROTOBUF GENCODE
-# source: waproto/whatsapp.proto
-# Protobuf Python Version: 7.34.1
+# source: whatsapp.proto
+# Protobuf Python Version: 5.28.3
"""Generated protocol buffer code."""
from google.protobuf import descriptor as _descriptor
from google.protobuf import descriptor_pool as _descriptor_pool
@@ -11,11 +11,11 @@
from google.protobuf.internal import builder as _builder
_runtime_version.ValidateProtobufRuntimeVersion(
_runtime_version.Domain.PUBLIC,
- 7,
- 34,
- 1,
+ 5,
+ 28,
+ 3,
'',
- 'waproto/whatsapp.proto'
+ 'whatsapp.proto'
)
# @@protoc_insertion_point(imports)
@@ -24,11 +24,11 @@
-DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x16waproto/whatsapp.proto\x12\x08whatsapp\"\xaa\x01\n\x11\x41\x44VDeviceIdentity\x12\r\n\x05rawId\x18\x01 \x01(\r\x12\x11\n\ttimestamp\x18\x02 \x01(\x04\x12\x10\n\x08keyIndex\x18\x03 \x01(\r\x12\x30\n\x0b\x61\x63\x63ountType\x18\x04 \x01(\x0e\x32\x1b.whatsapp.ADVEncryptionType\x12/\n\ndeviceType\x18\x05 \x01(\x0e\x32\x1b.whatsapp.ADVEncryptionType\"\x95\x01\n\x0f\x41\x44VKeyIndexList\x12\r\n\x05rawId\x18\x01 \x01(\r\x12\x11\n\ttimestamp\x18\x02 \x01(\x04\x12\x14\n\x0c\x63urrentIndex\x18\x03 \x01(\r\x12\x18\n\x0cvalidIndexes\x18\x04 \x03(\rB\x02\x10\x01\x12\x30\n\x0b\x61\x63\x63ountType\x18\x05 \x01(\x0e\x32\x1b.whatsapp.ADVEncryptionType\"z\n\x17\x41\x44VSignedDeviceIdentity\x12\x0f\n\x07\x64\x65tails\x18\x01 \x01(\x0c\x12\x1b\n\x13\x61\x63\x63ountSignatureKey\x18\x02 \x01(\x0c\x12\x18\n\x10\x61\x63\x63ountSignature\x18\x03 \x01(\x0c\x12\x17\n\x0f\x64\x65viceSignature\x18\x04 \x01(\x0c\"n\n\x1b\x41\x44VSignedDeviceIdentityHMAC\x12\x0f\n\x07\x64\x65tails\x18\x01 \x01(\x0c\x12\x0c\n\x04hmac\x18\x02 \x01(\x0c\x12\x30\n\x0b\x61\x63\x63ountType\x18\x03 \x01(\x0e\x32\x1b.whatsapp.ADVEncryptionType\"_\n\x15\x41\x44VSignedKeyIndexList\x12\x0f\n\x07\x64\x65tails\x18\x01 \x01(\x0c\x12\x18\n\x10\x61\x63\x63ountSignature\x18\x02 \x01(\x0c\x12\x1b\n\x13\x61\x63\x63ountSignatureKey\x18\x03 \x01(\x0c\"\x94\x04\n\x0b\x41IHomeState\x12\x15\n\rlastFetchTime\x18\x01 \x01(\x03\x12=\n\x11\x63\x61pabilityOptions\x18\x02 \x03(\x0b\x32\".whatsapp.AIHomeState.AIHomeOption\x12?\n\x13\x63onversationOptions\x18\x03 \x03(\x0b\x32\".whatsapp.AIHomeState.AIHomeOption\x1a\xed\x02\n\x0c\x41IHomeOption\x12\x41\n\x04type\x18\x01 \x01(\x0e\x32\x33.whatsapp.AIHomeState.AIHomeOption.AIHomeActionType\x12\r\n\x05title\x18\x02 \x01(\t\x12\x12\n\npromptText\x18\x03 \x01(\t\x12\x11\n\tsessionId\x18\x04 \x01(\t\x12\x1a\n\x12imageWdsIdentifier\x18\x05 \x01(\t\x12\x16\n\x0eimageTintColor\x18\x06 \x01(\t\x12\x1c\n\x14imageBackgroundColor\x18\x07 \x01(\t\x12\x12\n\ncardTypeId\x18\x08 \x01(\t\"~\n\x10\x41IHomeActionType\x12\n\n\x06PROMPT\x10\x00\x12\x10\n\x0c\x43REATE_IMAGE\x10\x01\x12\x11\n\rANIMATE_PHOTO\x10\x02\x12\x10\n\x0c\x41NALYZE_FILE\x10\x03\x12\x0f\n\x0b\x43OLLABORATE\x10\x04\x12\x16\n\x12OPEN_GREETING_CARD\x10\x05\"f\n\x18\x41IMediaCollectionMessage\x12\x14\n\x0c\x63ollectionId\x18\x01 \x01(\t\x12\x1a\n\x12\x65xpectedMediaCount\x18\x02 \x01(\r\x12\x18\n\x10hasGlobalCaption\x18\x03 \x01(\x08\"K\n\x19\x41IMediaCollectionMetadata\x12\x14\n\x0c\x63ollectionId\x18\x01 \x01(\t\x12\x18\n\x10uploadOrderIndex\x18\x02 \x01(\r\"M\n\x13\x41IMetadataOperation\x12\x36\n\x11hatchMetadataSync\x18\x01 \x01(\x0b\x32\x1b.whatsapp.HatchMetadataSync\"p\n\rAIQueryFanout\x12(\n\nmessageKey\x18\x01 \x01(\x0b\x32\x14.whatsapp.MessageKey\x12\"\n\x07message\x18\x02 \x01(\x0b\x32\x11.whatsapp.Message\x12\x11\n\ttimestamp\x18\x03 \x01(\x03\"]\n\x14\x41IRegenerateMetadata\x12(\n\nmessageKey\x18\x01 \x01(\x0b\x32\x14.whatsapp.MessageKey\x12\x1b\n\x13responseTimestampMs\x18\x02 \x01(\x03\"\xc1\x04\n\x1a\x41IRichResponseCodeMetadata\x12\x14\n\x0c\x63odeLanguage\x18\x01 \x01(\t\x12P\n\ncodeBlocks\x18\x02 \x03(\x0b\x32<.whatsapp.AIRichResponseCodeMetadata.AIRichResponseCodeBlock\x1a\x8b\x01\n\x17\x41IRichResponseCodeBlock\x12[\n\rhighlightType\x18\x01 \x01(\x0e\x32\x44.whatsapp.AIRichResponseCodeMetadata.AIRichResponseCodeHighlightType\x12\x13\n\x0b\x63odeContent\x18\x02 \x01(\t\"\xac\x02\n\x1f\x41IRichResponseCodeHighlightType\x12+\n\'AI_RICH_RESPONSE_CODE_HIGHLIGHT_DEFAULT\x10\x00\x12+\n\'AI_RICH_RESPONSE_CODE_HIGHLIGHT_KEYWORD\x10\x01\x12*\n&AI_RICH_RESPONSE_CODE_HIGHLIGHT_METHOD\x10\x02\x12*\n&AI_RICH_RESPONSE_CODE_HIGHLIGHT_STRING\x10\x03\x12*\n&AI_RICH_RESPONSE_CODE_HIGHLIGHT_NUMBER\x10\x04\x12+\n\'AI_RICH_RESPONSE_CODE_HIGHLIGHT_COMMENT\x10\x05\"\x89\x04\n\"AIRichResponseContentItemsMetadata\x12\x65\n\ritemsMetadata\x18\x01 \x03(\x0b\x32N.whatsapp.AIRichResponseContentItemsMetadata.AIRichResponseContentItemMetadata\x12M\n\x0b\x63ontentType\x18\x02 \x01(\x0e\x32\x38.whatsapp.AIRichResponseContentItemsMetadata.ContentType\x1a\x99\x01\n!AIRichResponseContentItemMetadata\x12W\n\x08reelItem\x18\x01 \x01(\x0b\x32\x43.whatsapp.AIRichResponseContentItemsMetadata.AIRichResponseReelItemH\x00\x42\x1b\n\x19\x61IRichResponseContentItem\x1ag\n\x16\x41IRichResponseReelItem\x12\r\n\x05title\x18\x01 \x01(\t\x12\x16\n\x0eprofileIconUrl\x18\x02 \x01(\t\x12\x14\n\x0cthumbnailUrl\x18\x03 \x01(\t\x12\x10\n\x08videoUrl\x18\x04 \x01(\t\"(\n\x0b\x43ontentType\x12\x0b\n\x07\x44\x45\x46\x41ULT\x10\x00\x12\x0c\n\x08\x43\x41ROUSEL\x10\x01\"\xe5\x02\n\x1d\x41IRichResponseDynamicMetadata\x12W\n\x04type\x18\x01 \x01(\x0e\x32I.whatsapp.AIRichResponseDynamicMetadata.AIRichResponseDynamicMetadataType\x12\x0f\n\x07version\x18\x02 \x01(\x04\x12\x0b\n\x03url\x18\x03 \x01(\t\x12\x11\n\tloopCount\x18\x04 \x01(\r\"\xb9\x01\n!AIRichResponseDynamicMetadataType\x12\x32\n.AI_RICH_RESPONSE_DYNAMIC_METADATA_TYPE_UNKNOWN\x10\x00\x12\x30\n,AI_RICH_RESPONSE_DYNAMIC_METADATA_TYPE_IMAGE\x10\x01\x12.\n*AI_RICH_RESPONSE_DYNAMIC_METADATA_TYPE_GIF\x10\x02\"\x8e\x01\n\x1f\x41IRichResponseGridImageMetadata\x12\x36\n\x0cgridImageUrl\x18\x01 \x01(\x0b\x32 .whatsapp.AIRichResponseImageURL\x12\x33\n\timageUrls\x18\x02 \x03(\x0b\x32 .whatsapp.AIRichResponseImageURL\"]\n\x16\x41IRichResponseImageURL\x12\x17\n\x0fimagePreviewUrl\x18\x01 \x01(\t\x12\x17\n\x0fimageHighResUrl\x18\x02 \x01(\t\x12\x11\n\tsourceUrl\x18\x03 \x01(\t\"\x95\x03\n!AIRichResponseInlineImageMetadata\x12\x32\n\x08imageUrl\x18\x01 \x01(\x0b\x32 .whatsapp.AIRichResponseImageURL\x12\x11\n\timageText\x18\x02 \x01(\t\x12[\n\talignment\x18\x03 \x01(\x0e\x32H.whatsapp.AIRichResponseInlineImageMetadata.AIRichResponseImageAlignment\x12\x12\n\ntapLinkUrl\x18\x04 \x01(\t\"\xb7\x01\n\x1c\x41IRichResponseImageAlignment\x12\x31\n-AI_RICH_RESPONSE_IMAGE_LAYOUT_LEADING_ALIGNED\x10\x00\x12\x32\n.AI_RICH_RESPONSE_IMAGE_LAYOUT_TRAILING_ALIGNED\x10\x01\x12\x30\n,AI_RICH_RESPONSE_IMAGE_LAYOUT_CENTER_ALIGNED\x10\x02\"\xf0\x02\n\x1b\x41IRichResponseLatexMetadata\x12\x0c\n\x04text\x18\x01 \x01(\t\x12X\n\x0b\x65xpressions\x18\x02 \x03(\x0b\x32\x43.whatsapp.AIRichResponseLatexMetadata.AIRichResponseLatexExpression\x1a\xe8\x01\n\x1d\x41IRichResponseLatexExpression\x12\x17\n\x0flatexExpression\x18\x01 \x01(\t\x12\x0b\n\x03url\x18\x02 \x01(\t\x12\r\n\x05width\x18\x03 \x01(\x01\x12\x0e\n\x06height\x18\x04 \x01(\x01\x12\x12\n\nfontHeight\x18\x05 \x01(\x01\x12\x17\n\x0fimageTopPadding\x18\x06 \x01(\x01\x12\x1b\n\x13imageLeadingPadding\x18\x07 \x01(\x01\x12\x1a\n\x12imageBottomPadding\x18\x08 \x01(\x01\x12\x1c\n\x14imageTrailingPadding\x18\t \x01(\x01\"\xe2\x02\n\x19\x41IRichResponseMapMetadata\x12\x16\n\x0e\x63\x65nterLatitude\x18\x01 \x01(\x01\x12\x17\n\x0f\x63\x65nterLongitude\x18\x02 \x01(\x01\x12\x15\n\rlatitudeDelta\x18\x03 \x01(\x01\x12\x16\n\x0elongitudeDelta\x18\x04 \x01(\x01\x12T\n\x0b\x61nnotations\x18\x05 \x03(\x0b\x32?.whatsapp.AIRichResponseMapMetadata.AIRichResponseMapAnnotation\x12\x14\n\x0cshowInfoList\x18\x06 \x01(\x08\x1ay\n\x1b\x41IRichResponseMapAnnotation\x12\x18\n\x10\x61nnotationNumber\x18\x01 \x01(\r\x12\x10\n\x08latitude\x18\x02 \x01(\x01\x12\x11\n\tlongitude\x18\x03 \x01(\x01\x12\r\n\x05title\x18\x04 \x01(\t\x12\x0c\n\x04\x62ody\x18\x05 \x01(\t\"\xf8\x01\n\x15\x41IRichResponseMessage\x12\x38\n\x0bmessageType\x18\x01 \x01(\x0e\x32#.whatsapp.AIRichResponseMessageType\x12\x37\n\x0bsubmessages\x18\x02 \x03(\x0b\x32\".whatsapp.AIRichResponseSubMessage\x12@\n\x0funifiedResponse\x18\x03 \x01(\x0b\x32\'.whatsapp.AIRichResponseUnifiedResponse\x12*\n\x0b\x63ontextInfo\x18\x04 \x01(\x0b\x32\x15.whatsapp.ContextInfo\"\xf6\x04\n\x18\x41IRichResponseSubMessage\x12;\n\x0bmessageType\x18\x01 \x01(\x0e\x32&.whatsapp.AIRichResponseSubMessageType\x12\x44\n\x11gridImageMetadata\x18\x02 \x01(\x0b\x32).whatsapp.AIRichResponseGridImageMetadata\x12\x13\n\x0bmessageText\x18\x03 \x01(\t\x12\x42\n\rimageMetadata\x18\x04 \x01(\x0b\x32+.whatsapp.AIRichResponseInlineImageMetadata\x12:\n\x0c\x63odeMetadata\x18\x05 \x01(\x0b\x32$.whatsapp.AIRichResponseCodeMetadata\x12<\n\rtableMetadata\x18\x06 \x01(\x0b\x32%.whatsapp.AIRichResponseTableMetadata\x12@\n\x0f\x64ynamicMetadata\x18\x07 \x01(\x0b\x32\'.whatsapp.AIRichResponseDynamicMetadata\x12<\n\rlatexMetadata\x18\x08 \x01(\x0b\x32%.whatsapp.AIRichResponseLatexMetadata\x12\x38\n\x0bmapMetadata\x18\t \x01(\x0b\x32#.whatsapp.AIRichResponseMapMetadata\x12J\n\x14\x63ontentItemsMetadata\x18\n \x01(\x0b\x32,.whatsapp.AIRichResponseContentItemsMetadata\"\xb4\x01\n\x1b\x41IRichResponseTableMetadata\x12J\n\x04rows\x18\x01 \x03(\x0b\x32<.whatsapp.AIRichResponseTableMetadata.AIRichResponseTableRow\x12\r\n\x05title\x18\x02 \x01(\t\x1a:\n\x16\x41IRichResponseTableRow\x12\r\n\x05items\x18\x01 \x03(\t\x12\x11\n\tisHeading\x18\x02 \x01(\x08\"-\n\x1d\x41IRichResponseUnifiedResponse\x12\x0c\n\x04\x64\x61ta\x18\x01 \x01(\x0c\"X\n\x1c\x41ISubscriptionUpsellMetadata\x12\x38\n\x0brequestType\x18\x01 \x01(\x0e\x32#.whatsapp.AISubscriptionRequestType\"\xed\x02\n\x0c\x41IThreadInfo\x12=\n\nserverInfo\x18\x01 \x01(\x0b\x32).whatsapp.AIThreadInfo.AIThreadServerInfo\x12=\n\nclientInfo\x18\x02 \x01(\x0b\x32).whatsapp.AIThreadInfo.AIThreadClientInfo\x1a\xb9\x01\n\x12\x41IThreadClientInfo\x12\x44\n\x04type\x18\x01 \x01(\x0e\x32\x36.whatsapp.AIThreadInfo.AIThreadClientInfo.AIThreadType\x12\x15\n\rsourceChatJid\x18\x02 \x01(\t\"F\n\x0c\x41IThreadType\x12\x0b\n\x07UNKNOWN\x10\x00\x12\x0b\n\x07\x44\x45\x46\x41ULT\x10\x01\x12\r\n\tINCOGNITO\x10\x02\x12\r\n\tSIDE_CHAT\x10\x03\x1a#\n\x12\x41IThreadServerInfo\x12\r\n\x05title\x18\x01 \x01(\t\"X\n\x07\x41\x63\x63ount\x12\x0b\n\x03lid\x18\x01 \x01(\t\x12\x10\n\x08username\x18\x02 \x01(\t\x12\x13\n\x0b\x63ountryCode\x18\x03 \x01(\t\x12\x19\n\x11isUsernameDeleted\x18\x04 \x01(\x08\"g\n\x18\x41\x63\x63ountLinkingOpaqueData\x12\x13\n\x0b\x61\x63\x63\x65sstoken\x18\x01 \x01(\t\x12\x0c\n\x04\x66\x62id\x18\x02 \x01(\t\x12\r\n\x05nonce\x18\x03 \x01(\t\x12\x19\n\x11\x65ncryptedPassword\x18\x04 \x01(\t\".\n\nActionLink\x12\x0b\n\x03url\x18\x01 \x01(\t\x12\x13\n\x0b\x62uttonTitle\x18\x02 \x01(\t\"w\n\x14\x41utoDownloadSettings\x12\x16\n\x0e\x64ownloadImages\x18\x01 \x01(\x08\x12\x15\n\rdownloadAudio\x18\x02 \x01(\x08\x12\x15\n\rdownloadVideo\x18\x03 \x01(\x08\x12\x19\n\x11\x64ownloadDocuments\x18\x04 \x01(\x08\"4\n\x12\x41vatarUserSettings\x12\x0c\n\x04\x66\x62id\x18\x01 \x01(\t\x12\x10\n\x08password\x18\x02 \x01(\t\"\xb2\x02\n\x12\x42izAccountLinkInfo\x12\x1b\n\x13whatsappBizAcctFbid\x18\x01 \x01(\x04\x12\x1a\n\x12whatsappAcctNumber\x18\x02 \x01(\t\x12\x11\n\tissueTime\x18\x03 \x01(\x04\x12\x41\n\x0bhostStorage\x18\x04 \x01(\x0e\x32,.whatsapp.BizAccountLinkInfo.HostStorageType\x12=\n\x0b\x61\x63\x63ountType\x18\x05 \x01(\x0e\x32(.whatsapp.BizAccountLinkInfo.AccountType\"\x1d\n\x0b\x41\x63\x63ountType\x12\x0e\n\nENTERPRISE\x10\x00\"/\n\x0fHostStorageType\x12\x0e\n\nON_PREMISE\x10\x00\x12\x0c\n\x08\x46\x41\x43\x45\x42OOK\x10\x01\"b\n\x11\x42izAccountPayload\x12\x34\n\tvnameCert\x18\x01 \x01(\x0b\x32!.whatsapp.VerifiedNameCertificate\x12\x17\n\x0f\x62izAcctLinkInfo\x18\x02 \x01(\x0c\"\xe6\x03\n\x0f\x42izIdentityInfo\x12<\n\x06vlevel\x18\x01 \x01(\x0e\x32,.whatsapp.BizIdentityInfo.VerifiedLevelValue\x12\x34\n\tvnameCert\x18\x02 \x01(\x0b\x32!.whatsapp.VerifiedNameCertificate\x12\x0e\n\x06signed\x18\x03 \x01(\x08\x12\x0f\n\x07revoked\x18\x04 \x01(\x08\x12>\n\x0bhostStorage\x18\x05 \x01(\x0e\x32).whatsapp.BizIdentityInfo.HostStorageType\x12@\n\x0c\x61\x63tualActors\x18\x06 \x01(\x0e\x32*.whatsapp.BizIdentityInfo.ActualActorsType\x12\x15\n\rprivacyModeTs\x18\x07 \x01(\x04\x12\x17\n\x0f\x66\x65\x61tureControls\x18\x08 \x01(\x04\"%\n\x10\x41\x63tualActorsType\x12\x08\n\x04SELF\x10\x00\x12\x07\n\x03\x42SP\x10\x01\"/\n\x0fHostStorageType\x12\x0e\n\nON_PREMISE\x10\x00\x12\x0c\n\x08\x46\x41\x43\x45\x42OOK\x10\x01\"4\n\x12VerifiedLevelValue\x12\x0b\n\x07UNKNOWN\x10\x00\x12\x07\n\x03LOW\x10\x01\x12\x08\n\x04HIGH\x10\x02\"\xe7\x01\n\x18\x42otAgeCollectionMetadata\x12\x1d\n\x15\x61geCollectionEligible\x18\x01 \x01(\x08\x12*\n\"shouldTriggerAgeCollectionOnClient\x18\x02 \x01(\x08\x12O\n\x11\x61geCollectionType\x18\x03 \x01(\x0e\x32\x34.whatsapp.BotAgeCollectionMetadata.AgeCollectionType\"/\n\x11\x41geCollectionType\x12\x0e\n\nO18_BINARY\x10\x00\x12\n\n\x06WAFFLE\x10\x01\")\n\x18\x42otAgentDeepLinkMetadata\x12\r\n\x05token\x18\x01 \x01(\t\"P\n\x10\x42otAgentMetadata\x12<\n\x10\x64\x65\x65pLinkMetadata\x18\x01 \x01(\x0b\x32\".whatsapp.BotAgentDeepLinkMetadata\"\x89\x12\n\x15\x42otCapabilityMetadata\x12G\n\x0c\x63\x61pabilities\x18\x01 \x03(\x0e\x32\x31.whatsapp.BotCapabilityMetadata.BotCapabilityType\"\xa6\x11\n\x11\x42otCapabilityType\x12\x0b\n\x07UNKNOWN\x10\x00\x12\x16\n\x12PROGRESS_INDICATOR\x10\x01\x12\x19\n\x15RICH_RESPONSE_HEADING\x10\x02\x12\x1d\n\x19RICH_RESPONSE_NESTED_LIST\x10\x03\x12\r\n\tAI_MEMORY\x10\x04\x12 \n\x1cRICH_RESPONSE_THREAD_SURFING\x10\x05\x12\x17\n\x13RICH_RESPONSE_TABLE\x10\x06\x12\x16\n\x12RICH_RESPONSE_CODE\x10\x07\x12%\n!RICH_RESPONSE_STRUCTURED_RESPONSE\x10\x08\x12\x1e\n\x1aRICH_RESPONSE_INLINE_IMAGE\x10\t\x12#\n\x1fWA_IG_1P_PLUGIN_RANKING_CONTROL\x10\n\x12$\n WA_IG_1P_PLUGIN_RANKING_UPDATE_1\x10\x0b\x12$\n WA_IG_1P_PLUGIN_RANKING_UPDATE_2\x10\x0c\x12$\n WA_IG_1P_PLUGIN_RANKING_UPDATE_3\x10\r\x12$\n WA_IG_1P_PLUGIN_RANKING_UPDATE_4\x10\x0e\x12$\n WA_IG_1P_PLUGIN_RANKING_UPDATE_5\x10\x0f\x12$\n WA_IG_1P_PLUGIN_RANKING_UPDATE_6\x10\x10\x12$\n WA_IG_1P_PLUGIN_RANKING_UPDATE_7\x10\x11\x12$\n WA_IG_1P_PLUGIN_RANKING_UPDATE_8\x10\x12\x12$\n WA_IG_1P_PLUGIN_RANKING_UPDATE_9\x10\x13\x12%\n!WA_IG_1P_PLUGIN_RANKING_UPDATE_10\x10\x14\x12\x1d\n\x19RICH_RESPONSE_SUB_HEADING\x10\x15\x12\x1c\n\x18RICH_RESPONSE_GRID_IMAGE\x10\x16\x12\x18\n\x14\x41I_STUDIO_UGC_MEMORY\x10\x17\x12\x17\n\x13RICH_RESPONSE_LATEX\x10\x18\x12\x16\n\x12RICH_RESPONSE_MAPS\x10\x19\x12\x1e\n\x1aRICH_RESPONSE_INLINE_REELS\x10\x1a\x12\x14\n\x10\x41GENTIC_PLANNING\x10\x1b\x12\x13\n\x0f\x41\x43\x43OUNT_LINKING\x10\x1c\x12\x1c\n\x18STREAMING_DISAGGREGATION\x10\x1d\x12\x1f\n\x1bRICH_RESPONSE_GRID_IMAGE_3P\x10\x1e\x12\x1e\n\x1aRICH_RESPONSE_LATEX_INLINE\x10\x1f\x12\x0e\n\nQUERY_PLAN\x10 \x12\x15\n\x11PROACTIVE_MESSAGE\x10!\x12\"\n\x1eRICH_RESPONSE_UNIFIED_RESPONSE\x10\"\x12\x15\n\x11PROMOTION_MESSAGE\x10#\x12\x1b\n\x17SIMPLIFIED_PROFILE_PAGE\x10$\x12$\n RICH_RESPONSE_SOURCES_IN_MESSAGE\x10%\x12%\n!RICH_RESPONSE_SIDE_BY_SIDE_SURVEY\x10&\x12(\n$RICH_RESPONSE_UNIFIED_TEXT_COMPONENT\x10\'\x12\x14\n\x10\x41I_SHARED_MEMORY\x10(\x12!\n\x1dRICH_RESPONSE_UNIFIED_SOURCES\x10)\x12*\n&RICH_RESPONSE_UNIFIED_DOMAIN_CITATIONS\x10*\x12)\n%RICH_RESPONSE_UR_INLINE_REELS_ENABLED\x10+\x12\'\n#RICH_RESPONSE_UR_MEDIA_GRID_ENABLED\x10,\x12*\n&RICH_RESPONSE_UR_TIMESTAMP_PLACEHOLDER\x10-\x12\x1f\n\x1bRICH_RESPONSE_IN_APP_SURVEY\x10.\x12\x1e\n\x1a\x41I_RESPONSE_MODEL_BRANDING\x10/\x12\'\n#SESSION_TRANSPARENCY_SYSTEM_MESSAGE\x10\x30\x12\x1e\n\x1aRICH_RESPONSE_UR_REASONING\x10\x31\x12(\n$RICH_RESPONSE_UR_ZEITGEIST_CITATIONS\x10\x32\x12\'\n#RICH_RESPONSE_UR_ZEITGEIST_CAROUSEL\x10\x33\x12 \n\x1c\x41I_IMAGINE_LOADING_INDICATOR\x10\x34\x12\x1c\n\x18RICH_RESPONSE_UR_IMAGINE\x10\x35\x12-\n)AI_IMAGINE_UR_TO_NATIVE_LOADING_INDICATOR\x10\x36\x12\"\n\x1eRICH_RESPONSE_UR_BLOKS_ENABLED\x10\x37\x12&\n\"RICH_RESPONSE_INLINE_LINKS_ENABLED\x10\x38\x12\"\n\x1eRICH_RESPONSE_UR_IMAGINE_VIDEO\x10\x39\x12\x18\n\x14JSON_PATCH_STREAMING\x10:\x12\x17\n\x13\x41I_TAB_FORCE_CLIPPY\x10;\x12%\n!UNIFIED_RESPONSE_EMBEDDED_SCREENS\x10<\x12\x1b\n\x17\x41I_SUBSCRIPTION_ENABLED\x10=\x12.\n*UNIFIED_RESPONSE_AI_CONTENT_SEARCH_ENABLED\x10>\x12+\n\'UNIFIED_RESPONSE_MARKDOWN_LINKS_ENABLED\x10?\x12$\n AI_RICH_RESPONSE_MAPS_V2_ENABLED\x10@\x12$\n AI_SUBSCRIPTION_METERING_ENABLED\x10\x41\"\\\n\x12\x42otCommandMetadata\x12\x13\n\x0b\x63ommandName\x18\x01 \x01(\t\x12\x1a\n\x12\x63ommandDescription\x18\x02 \x01(\t\x12\x15\n\rcommandPrompt\x18\x03 \x01(\t\"\xa8\x01\n\x1a\x42otDocumentMessageMetadata\x12K\n\npluginType\x18\x01 \x01(\x0e\x32\x37.whatsapp.BotDocumentMessageMetadata.DocumentPluginType\"=\n\x12\x44ocumentPluginType\x12\x13\n\x0fTEXT_EXTRACTION\x10\x00\x12\x12\n\x0eOCR_AND_IMAGES\x10\x01\"\x86\x1a\n\x12\x42otFeedbackMessage\x12(\n\nmessageKey\x18\x01 \x01(\x0b\x32\x14.whatsapp.MessageKey\x12:\n\x04kind\x18\x02 \x01(\x0e\x32,.whatsapp.BotFeedbackMessage.BotFeedbackKind\x12\x0c\n\x04text\x18\x03 \x01(\t\x12\x14\n\x0ckindNegative\x18\x04 \x01(\x04\x12\x14\n\x0ckindPositive\x18\x05 \x01(\x04\x12;\n\nkindReport\x18\x06 \x01(\x0e\x32\'.whatsapp.BotFeedbackMessage.ReportKind\x12W\n\x18sideBySideSurveyMetadata\x18\x07 \x01(\x0b\x32\x35.whatsapp.BotFeedbackMessage.SideBySideSurveyMetadata\x1a\x9d\x0e\n\x18SideBySideSurveyMetadata\x12\x19\n\x11selectedRequestId\x18\x01 \x01(\t\x12\x10\n\x08surveyId\x18\x02 \x01(\r\x12\x18\n\x10simonSessionFbid\x18\x03 \x01(\t\x12\x14\n\x0cresponseOtid\x18\x04 \x01(\t\x12!\n\x19responseTimestampMsString\x18\x05 \x01(\t\x12!\n\x19isSelectedResponsePrimary\x18\x06 \x01(\x08\x12\x17\n\x0fmessageIdToEdit\x18\x07 \x01(\t\x12j\n\ranalyticsData\x18\x08 \x01(\x0b\x32S.whatsapp.BotFeedbackMessage.SideBySideSurveyMetadata.SideBySideSurveyAnalyticsData\x12v\n\x13metaAiAnalyticsData\x18\t \x01(\x0b\x32Y.whatsapp.BotFeedbackMessage.SideBySideSurveyMetadata.SidebySideSurveyMetaAiAnalyticsData\x1ag\n\x1dSideBySideSurveyAnalyticsData\x12\x12\n\ntessaEvent\x18\x01 \x01(\t\x12\x18\n\x10tessaSessionFbid\x18\x02 \x01(\t\x12\x18\n\x10simonSessionFbid\x18\x03 \x01(\t\x1a\xf7\t\n#SidebySideSurveyMetaAiAnalyticsData\x12\x10\n\x08surveyId\x18\x01 \x01(\r\x12\x19\n\x11primaryResponseId\x18\x02 \x01(\t\x12\x13\n\x0btestArmName\x18\x03 \x01(\t\x12\x19\n\x11timestampMsString\x18\x04 \x01(\t\x12\x9d\x01\n\x12\x63taImpressionEvent\x18\x05 \x01(\x0b\x32\x80\x01.whatsapp.BotFeedbackMessage.SideBySideSurveyMetadata.SidebySideSurveyMetaAiAnalyticsData.SideBySideSurveyCTAImpressionEventData\x12\x92\x01\n\rctaClickEvent\x18\x06 \x01(\x0b\x32{.whatsapp.BotFeedbackMessage.SideBySideSurveyMetadata.SidebySideSurveyMetaAiAnalyticsData.SideBySideSurveyCTAClickEventData\x12\x9f\x01\n\x13\x63\x61rdImpressionEvent\x18\x07 \x01(\x0b\x32\x81\x01.whatsapp.BotFeedbackMessage.SideBySideSurveyMetadata.SidebySideSurveyMetaAiAnalyticsData.SideBySideSurveyCardImpressionEventData\x12\x92\x01\n\rresponseEvent\x18\x08 \x01(\x0b\x32{.whatsapp.BotFeedbackMessage.SideBySideSurveyMetadata.SidebySideSurveyMetaAiAnalyticsData.SideBySideSurveyResponseEventData\x12\x90\x01\n\x0c\x61\x62\x61ndonEvent\x18\t \x01(\x0b\x32z.whatsapp.BotFeedbackMessage.SideBySideSurveyMetadata.SidebySideSurveyMetaAiAnalyticsData.SideBySideSurveyAbandonEventData\x1a\x44\n SideBySideSurveyAbandonEventData\x12 \n\x18\x61\x62\x61ndonDwellTimeMsString\x18\x01 \x01(\t\x1a\\\n!SideBySideSurveyCTAClickEventData\x12\x17\n\x0fisSurveyExpired\x18\x01 \x01(\x08\x12\x1e\n\x16\x63lickDwellTimeMsString\x18\x02 \x01(\t\x1a\x41\n&SideBySideSurveyCTAImpressionEventData\x12\x17\n\x0fisSurveyExpired\x18\x01 \x01(\x08\x1a)\n\'SideBySideSurveyCardImpressionEventData\x1a\x62\n!SideBySideSurveyResponseEventData\x12!\n\x19responseDwellTimeMsString\x18\x01 \x01(\t\x12\x1a\n\x12selectedResponseId\x18\x02 \x01(\t\"\xd7\x04\n\x0f\x42otFeedbackKind\x12\x19\n\x15\x42OT_FEEDBACK_POSITIVE\x10\x00\x12!\n\x1d\x42OT_FEEDBACK_NEGATIVE_GENERIC\x10\x01\x12!\n\x1d\x42OT_FEEDBACK_NEGATIVE_HELPFUL\x10\x02\x12%\n!BOT_FEEDBACK_NEGATIVE_INTERESTING\x10\x03\x12\"\n\x1e\x42OT_FEEDBACK_NEGATIVE_ACCURATE\x10\x04\x12\x1e\n\x1a\x42OT_FEEDBACK_NEGATIVE_SAFE\x10\x05\x12\x1f\n\x1b\x42OT_FEEDBACK_NEGATIVE_OTHER\x10\x06\x12!\n\x1d\x42OT_FEEDBACK_NEGATIVE_REFUSED\x10\x07\x12\x30\n,BOT_FEEDBACK_NEGATIVE_NOT_VISUALLY_APPEALING\x10\x08\x12.\n*BOT_FEEDBACK_NEGATIVE_NOT_RELEVANT_TO_TEXT\x10\t\x12&\n\"BOT_FEEDBACK_NEGATIVE_PERSONALIZED\x10\n\x12!\n\x1d\x42OT_FEEDBACK_NEGATIVE_CLARITY\x10\x0b\x12\x35\n1BOT_FEEDBACK_NEGATIVE_DOESNT_LOOK_LIKE_THE_PERSON\x10\x0c\x12\x35\n1BOT_FEEDBACK_NEGATIVE_HALLUCINATION_INTERNAL_ONLY\x10\r\x12\x19\n\x15\x42OT_FEEDBACK_NEGATIVE\x10\x0e\"\xcb\x03\n\x1f\x42otFeedbackKindMultipleNegative\x12*\n&BOT_FEEDBACK_MULTIPLE_NEGATIVE_GENERIC\x10\x01\x12*\n&BOT_FEEDBACK_MULTIPLE_NEGATIVE_HELPFUL\x10\x02\x12.\n*BOT_FEEDBACK_MULTIPLE_NEGATIVE_INTERESTING\x10\x04\x12+\n\'BOT_FEEDBACK_MULTIPLE_NEGATIVE_ACCURATE\x10\x08\x12\'\n#BOT_FEEDBACK_MULTIPLE_NEGATIVE_SAFE\x10\x10\x12(\n$BOT_FEEDBACK_MULTIPLE_NEGATIVE_OTHER\x10 \x12*\n&BOT_FEEDBACK_MULTIPLE_NEGATIVE_REFUSED\x10@\x12:\n5BOT_FEEDBACK_MULTIPLE_NEGATIVE_NOT_VISUALLY_APPEALING\x10\x80\x01\x12\x38\n3BOT_FEEDBACK_MULTIPLE_NEGATIVE_NOT_RELEVANT_TO_TEXT\x10\x80\x02\"M\n\x1f\x42otFeedbackKindMultiplePositive\x12*\n&BOT_FEEDBACK_MULTIPLE_POSITIVE_GENERIC\x10\x01\"#\n\nReportKind\x12\x08\n\x04NONE\x10\x00\x12\x0b\n\x07GENERIC\x10\x01\"W\n\x10\x42otGroupMetadata\x12\x43\n\x14participantsMetadata\x18\x01 \x03(\x0b\x32%.whatsapp.BotGroupParticipantMetadata\".\n\x1b\x42otGroupParticipantMetadata\x12\x0f\n\x07\x62otFbid\x18\x01 \x01(\t\"\xb0\x01\n\x12\x42otImagineMetadata\x12=\n\x0bimagineType\x18\x01 \x01(\x0e\x32(.whatsapp.BotImagineMetadata.ImagineType\x12\x13\n\x0bshortPrompt\x18\x02 \x01(\t\"F\n\x0bImagineType\x12\x0b\n\x07UNKNOWN\x10\x00\x12\x0b\n\x07IMAGINE\x10\x01\x12\x08\n\x04MEMU\x10\x02\x12\t\n\x05\x46LASH\x10\x03\x12\x08\n\x04\x45\x44IT\x10\x04\"\xb0\x01\n\x1c\x42otInfrastructureDiagnostics\x12\x45\n\nbotBackend\x18\x01 \x01(\x0e\x32\x31.whatsapp.BotInfrastructureDiagnostics.BotBackend\x12\x11\n\ttoolsUsed\x18\x02 \x03(\t\x12\x12\n\nisThinking\x18\x03 \x01(\x08\"\"\n\nBotBackend\x12\x08\n\x04\x41\x41PI\x10\x00\x12\n\n\x06\x43LIPPY\x10\x01\"\x89\x01\n\x10\x42otLinkedAccount\x12=\n\x04type\x18\x01 \x01(\x0e\x32/.whatsapp.BotLinkedAccount.BotLinkedAccountType\"6\n\x14\x42otLinkedAccountType\x12\x1e\n\x1a\x42OT_LINKED_ACCOUNT_TYPE_1P\x10\x00\"t\n\x19\x42otLinkedAccountsMetadata\x12,\n\x08\x61\x63\x63ounts\x18\x01 \x03(\x0b\x32\x1a.whatsapp.BotLinkedAccount\x12\x14\n\x0c\x61\x63\x41uthTokens\x18\x02 \x01(\x0c\x12\x13\n\x0b\x61\x63\x45rrorCode\x18\x03 \x01(\x05\"\x89\x02\n\x10\x42otMediaMetadata\x12\x12\n\nfileSha256\x18\x01 \x01(\t\x12\x10\n\x08mediaKey\x18\x02 \x01(\t\x12\x15\n\rfileEncSha256\x18\x03 \x01(\t\x12\x12\n\ndirectPath\x18\x04 \x01(\t\x12\x19\n\x11mediaKeyTimestamp\x18\x05 \x01(\x03\x12\x10\n\x08mimetype\x18\x06 \x01(\t\x12\x43\n\x0forientationType\x18\x07 \x01(\x0e\x32*.whatsapp.BotMediaMetadata.OrientationType\"2\n\x0fOrientationType\x12\n\n\x06\x43\x45NTER\x10\x01\x12\x08\n\x04LEFT\x10\x02\x12\t\n\x05RIGHT\x10\x03\"-\n\rBotMemoryFact\x12\x0c\n\x04\x66\x61\x63t\x18\x01 \x01(\t\x12\x0e\n\x06\x66\x61\x63tId\x18\x02 \x01(\t\"\x83\x01\n\x11\x42otMemoryMetadata\x12+\n\naddedFacts\x18\x01 \x03(\x0b\x32\x17.whatsapp.BotMemoryFact\x12-\n\x0cremovedFacts\x18\x02 \x03(\x0b\x32\x17.whatsapp.BotMemoryFact\x12\x12\n\ndisclaimer\x18\x03 \x01(\t\"A\n\x0f\x42otMemuMetadata\x12.\n\nfaceImages\x18\x01 \x03(\x0b\x32\x1a.whatsapp.BotMediaMetadata\"\x93\x01\n\x10\x42otMessageOrigin\x12=\n\x04type\x18\x01 \x01(\x0e\x32/.whatsapp.BotMessageOrigin.BotMessageOriginType\"@\n\x14\x42otMessageOriginType\x12(\n$BOT_MESSAGE_ORIGIN_TYPE_AI_INITIATED\x10\x00\"G\n\x18\x42otMessageOriginMetadata\x12+\n\x07origins\x18\x01 \x03(\x0b\x32\x1a.whatsapp.BotMessageOrigin\"j\n\x15\x42otMessageSharingInfo\x12;\n\x13\x62otEntryPointOrigin\x18\x01 \x01(\x0e\x32\x1e.whatsapp.BotMetricsEntryPoint\x12\x14\n\x0c\x66orwardScore\x18\x02 \x01(\r\"\xe4\x12\n\x0b\x42otMetadata\x12\x11\n\tpersonaId\x18\x02 \x01(\t\x12\x33\n\x0epluginMetadata\x18\x03 \x01(\x0b\x32\x1b.whatsapp.BotPluginMetadata\x12\x45\n\x17suggestedPromptMetadata\x18\x04 \x01(\x0b\x32$.whatsapp.BotSuggestedPromptMetadata\x12\x12\n\ninvokerJid\x18\x05 \x01(\t\x12\x35\n\x0fsessionMetadata\x18\x06 \x01(\x0b\x32\x1c.whatsapp.BotSessionMetadata\x12/\n\x0cmemuMetadata\x18\x07 \x01(\x0b\x32\x19.whatsapp.BotMemuMetadata\x12\x10\n\x08timezone\x18\x08 \x01(\t\x12\x37\n\x10reminderMetadata\x18\t \x01(\x0b\x32\x1d.whatsapp.BotReminderMetadata\x12\x31\n\rmodelMetadata\x18\n \x01(\x0b\x32\x1a.whatsapp.BotModelMetadata\x12\x1d\n\x15messageDisclaimerText\x18\x0b \x01(\t\x12I\n\x19progressIndicatorMetadata\x18\x0c \x01(\x0b\x32&.whatsapp.BotProgressIndicatorMetadata\x12;\n\x12\x63\x61pabilityMetadata\x18\r \x01(\x0b\x32\x1f.whatsapp.BotCapabilityMetadata\x12\x35\n\x0fimagineMetadata\x18\x0e \x01(\x0b\x32\x1c.whatsapp.BotImagineMetadata\x12\x33\n\x0ememoryMetadata\x18\x0f \x01(\x0b\x32\x1b.whatsapp.BotMemoryMetadata\x12\x39\n\x11renderingMetadata\x18\x10 \x01(\x0b\x32\x1e.whatsapp.BotRenderingMetadata\x12\x38\n\x12\x62otMetricsMetadata\x18\x11 \x01(\x0b\x32\x1c.whatsapp.BotMetricsMetadata\x12\x46\n\x19\x62otLinkedAccountsMetadata\x18\x12 \x01(\x0b\x32#.whatsapp.BotLinkedAccountsMetadata\x12\x41\n\x1brichResponseSourcesMetadata\x18\x13 \x01(\x0b\x32\x1c.whatsapp.BotSourcesMetadata\x12\x1d\n\x15\x61iConversationContext\x18\x14 \x01(\x0c\x12J\n\x1b\x62otPromotionMessageMetadata\x18\x15 \x01(\x0b\x32%.whatsapp.BotPromotionMessageMetadata\x12\x44\n\x18\x62otModeSelectionMetadata\x18\x16 \x01(\x0b\x32\".whatsapp.BotModeSelectionMetadata\x12\x34\n\x10\x62otQuotaMetadata\x18\x17 \x01(\x0b\x32\x1a.whatsapp.BotQuotaMetadata\x12\x44\n\x18\x62otAgeCollectionMetadata\x18\x18 \x01(\x0b\x32\".whatsapp.BotAgeCollectionMetadata\x12#\n\x1b\x63onversationStarterPromptId\x18\x19 \x01(\t\x12\x15\n\rbotResponseId\x18\x1a \x01(\t\x12H\n\x14verificationMetadata\x18\x1b \x01(\x0b\x32*.whatsapp.BotSignatureVerificationMetadata\x12\x45\n\x17unifiedResponseMutation\x18\x1c \x01(\x0b\x32$.whatsapp.BotUnifiedResponseMutation\x12\x44\n\x18\x62otMessageOriginMetadata\x18\x1d \x01(\x0b\x32\".whatsapp.BotMessageOriginMetadata\x12@\n\x16inThreadSurveyMetadata\x18\x1e \x01(\x0b\x32 .whatsapp.InThreadSurveyMetadata\x12-\n\rbotThreadInfo\x18\x1f \x01(\x0b\x32\x16.whatsapp.AIThreadInfo\x12:\n\x12regenerateMetadata\x18 \x01(\x0b\x32\x1e.whatsapp.AIRegenerateMetadata\x12J\n\x1bsessionTransparencyMetadata\x18! \x01(\x0b\x32%.whatsapp.SessionTransparencyMetadata\x12H\n\x1a\x62otDocumentMessageMetadata\x18\" \x01(\x0b\x32$.whatsapp.BotDocumentMessageMetadata\x12\x34\n\x10\x62otGroupMetadata\x18# \x01(\x0b\x32\x1a.whatsapp.BotGroupMetadata\x12H\n\x1a\x62otRenderingConfigMetadata\x18$ \x01(\x0b\x32$.whatsapp.BotRenderingConfigMetadata\x12L\n\x1c\x62otInfrastructureDiagnostics\x18% \x01(\x0b\x32&.whatsapp.BotInfrastructureDiagnostics\x12\x46\n\x19\x61iMediaCollectionMetadata\x18& \x01(\x0b\x32#.whatsapp.AIMediaCollectionMetadata\x12\x35\n\x0f\x63ommandMetadata\x18\' \x01(\x0b\x32\x1c.whatsapp.BotCommandMetadata\x12G\n\x18resolvedToolCallMetadata\x18( \x01(\x0b\x32%.whatsapp.BotResolvedToolCallMetadata\x12J\n\x1asubscriptionUpsellMetadata\x18) \x01(\x0b\x32&.whatsapp.AISubscriptionUpsellMetadata\x12\x39\n\x11pttPromptMetadata\x18* \x01(\x0b\x32\x1e.whatsapp.BotPttPromptMetadata\x12\x19\n\x10internalMetadata\x18\xe7\x07 \x01(\x0c\"\xa6\x01\n\x12\x42otMetricsMetadata\x12\x15\n\rdestinationId\x18\x01 \x01(\t\x12=\n\x15\x64\x65stinationEntryPoint\x18\x02 \x01(\x0e\x32\x1e.whatsapp.BotMetricsEntryPoint\x12:\n\x0cthreadOrigin\x18\x03 \x01(\x0e\x32$.whatsapp.BotMetricsThreadEntryPoint\"\xb6\x01\n\x18\x42otModeSelectionMetadata\x12\x45\n\x04mode\x18\x01 \x03(\x0e\x32\x37.whatsapp.BotModeSelectionMetadata.BotUserSelectionMode\x12\x14\n\x0coverrideMode\x18\x02 \x03(\r\"=\n\x14\x42otUserSelectionMode\x12\x10\n\x0c\x44\x45\x46\x41ULT_MODE\x10\x00\x12\x13\n\x0fTHINK_HARD_MODE\x10\x01\"\xc9\x02\n\x10\x42otModelMetadata\x12\x37\n\tmodelType\x18\x01 \x01(\x0e\x32$.whatsapp.BotModelMetadata.ModelType\x12I\n\x12premiumModelStatus\x18\x02 \x01(\x0e\x32-.whatsapp.BotModelMetadata.PremiumModelStatus\x12\x19\n\x11modelNameOverride\x18\x03 \x01(\t\"E\n\tModelType\x12\x10\n\x0cUNKNOWN_TYPE\x10\x00\x12\x0e\n\nLLAMA_PROD\x10\x01\x12\x16\n\x12LLAMA_PROD_PREMIUM\x10\x02\"O\n\x12PremiumModelStatus\x12\x12\n\x0eUNKNOWN_STATUS\x10\x00\x12\r\n\tAVAILABLE\x10\x01\x12\x16\n\x12QUOTA_EXCEED_LIMIT\x10\x02\"\xf1\x04\n\x11\x42otPluginMetadata\x12<\n\x08provider\x18\x01 \x01(\x0e\x32*.whatsapp.BotPluginMetadata.SearchProvider\x12:\n\npluginType\x18\x02 \x01(\x0e\x32&.whatsapp.BotPluginMetadata.PluginType\x12\x17\n\x0fthumbnailCdnUrl\x18\x03 \x01(\t\x12\x1a\n\x12profilePhotoCdnUrl\x18\x04 \x01(\t\x12\x19\n\x11searchProviderUrl\x18\x05 \x01(\t\x12\x16\n\x0ereferenceIndex\x18\x06 \x01(\r\x12\x1a\n\x12\x65xpectedLinksCount\x18\x07 \x01(\r\x12\x13\n\x0bsearchQuery\x18\t \x01(\t\x12\x34\n\x16parentPluginMessageKey\x18\n \x01(\x0b\x32\x14.whatsapp.MessageKey\x12?\n\x0f\x64\x65precatedField\x18\x0b \x01(\x0e\x32&.whatsapp.BotPluginMetadata.PluginType\x12@\n\x10parentPluginType\x18\x0c \x01(\x0e\x32&.whatsapp.BotPluginMetadata.PluginType\x12\x15\n\rfaviconCdnUrl\x18\r \x01(\t\"7\n\nPluginType\x12\x12\n\x0eUNKNOWN_PLUGIN\x10\x00\x12\t\n\x05REELS\x10\x01\x12\n\n\x06SEARCH\x10\x02\"@\n\x0eSearchProvider\x12\x0b\n\x07UNKNOWN\x10\x00\x12\x08\n\x04\x42ING\x10\x01\x12\n\n\x06GOOGLE\x10\x02\x12\x0b\n\x07SUPPORT\x10\x03\"\xd1\x0b\n\x1c\x42otProgressIndicatorMetadata\x12\x1b\n\x13progressDescription\x18\x01 \x01(\t\x12U\n\rstepsMetadata\x18\x02 \x03(\x0b\x32>.whatsapp.BotProgressIndicatorMetadata.BotPlanningStepMetadata\x12\x1f\n\x17\x65stimatedCompletionTime\x18\x03 \x01(\x03\x1a\x9b\n\n\x17\x42otPlanningStepMetadata\x12\x13\n\x0bstatusTitle\x18\x01 \x01(\t\x12\x12\n\nstatusBody\x18\x02 \x01(\t\x12x\n\x0fsourcesMetadata\x18\x03 \x03(\x0b\x32_.whatsapp.BotProgressIndicatorMetadata.BotPlanningStepMetadata.BotPlanningSearchSourcesMetadata\x12\x61\n\x06status\x18\x04 \x01(\x0e\x32Q.whatsapp.BotProgressIndicatorMetadata.BotPlanningStepMetadata.PlanningStepStatus\x12\x13\n\x0bisReasoning\x18\x05 \x01(\x08\x12\x18\n\x10isEnhancedSearch\x18\x06 \x01(\x08\x12o\n\x08sections\x18\x07 \x03(\x0b\x32].whatsapp.BotProgressIndicatorMetadata.BotPlanningStepMetadata.BotPlanningStepSectionMetadata\x1a\xc1\x01\n\x1f\x42otPlanningSearchSourceMetadata\x12\r\n\x05title\x18\x01 \x01(\t\x12h\n\x08provider\x18\x02 \x01(\x0e\x32V.whatsapp.BotProgressIndicatorMetadata.BotPlanningStepMetadata.BotSearchSourceProvider\x12\x11\n\tsourceUrl\x18\x03 \x01(\t\x12\x12\n\nfavIconUrl\x18\x04 \x01(\t\x1a\xaf\x02\n BotPlanningSearchSourcesMetadata\x12\x13\n\x0bsourceTitle\x18\x01 \x01(\t\x12\x91\x01\n\x08provider\x18\x02 \x01(\x0e\x32\x7f.whatsapp.BotProgressIndicatorMetadata.BotPlanningStepMetadata.BotPlanningSearchSourcesMetadata.BotPlanningSearchSourceProvider\x12\x11\n\tsourceUrl\x18\x03 \x01(\t\"O\n\x1f\x42otPlanningSearchSourceProvider\x12\x0b\n\x07UNKNOWN\x10\x00\x12\t\n\x05OTHER\x10\x01\x12\n\n\x06GOOGLE\x10\x02\x12\x08\n\x04\x42ING\x10\x03\x1a\xc4\x01\n\x1e\x42otPlanningStepSectionMetadata\x12\x14\n\x0csectionTitle\x18\x01 \x01(\t\x12\x13\n\x0bsectionBody\x18\x02 \x01(\t\x12w\n\x0fsourcesMetadata\x18\x03 \x03(\x0b\x32^.whatsapp.BotProgressIndicatorMetadata.BotPlanningStepMetadata.BotPlanningSearchSourceMetadata\"P\n\x17\x42otSearchSourceProvider\x12\x14\n\x10UNKNOWN_PROVIDER\x10\x00\x12\t\n\x05OTHER\x10\x01\x12\n\n\x06GOOGLE\x10\x02\x12\x08\n\x04\x42ING\x10\x03\"K\n\x12PlanningStepStatus\x12\x0b\n\x07UNKNOWN\x10\x00\x12\x0b\n\x07PLANNED\x10\x01\x12\r\n\tEXECUTING\x10\x02\x12\x0c\n\x08\x46INISHED\x10\x03\"\xc5\x01\n\x1b\x42otPromotionMessageMetadata\x12M\n\rpromotionType\x18\x01 \x01(\x0e\x32\x36.whatsapp.BotPromotionMessageMetadata.BotPromotionType\x12\x13\n\x0b\x62uttonTitle\x18\x02 \x01(\t\"B\n\x10\x42otPromotionType\x12\x10\n\x0cUNKNOWN_TYPE\x10\x00\x12\x07\n\x03\x43\x35\x30\x10\x01\x12\x13\n\x0fSURVEY_PLATFORM\x10\x02\"7\n\x13\x42otPromptSuggestion\x12\x0e\n\x06prompt\x18\x01 \x01(\t\x12\x10\n\x08promptId\x18\x02 \x01(\t\"J\n\x14\x42otPromptSuggestions\x12\x32\n\x0bsuggestions\x18\x01 \x03(\x0b\x32\x1d.whatsapp.BotPromptSuggestion\"*\n\x14\x42otPttPromptMetadata\x12\x12\n\ntranscript\x18\x01 \x01(\t\"\xce\x02\n\x10\x42otQuotaMetadata\x12S\n\x17\x62otFeatureQuotaMetadata\x18\x01 \x03(\x0b\x32\x32.whatsapp.BotQuotaMetadata.BotFeatureQuotaMetadata\x1a\xe4\x01\n\x17\x42otFeatureQuotaMetadata\x12V\n\x0b\x66\x65\x61tureType\x18\x01 \x01(\x0e\x32\x41.whatsapp.BotQuotaMetadata.BotFeatureQuotaMetadata.BotFeatureType\x12\x16\n\x0eremainingQuota\x18\x02 \x01(\r\x12\x1b\n\x13\x65xpirationTimestamp\x18\x03 \x01(\x04\"<\n\x0e\x42otFeatureType\x12\x13\n\x0fUNKNOWN_FEATURE\x10\x00\x12\x15\n\x11REASONING_FEATURE\x10\x01\"\x87\x03\n\x13\x42otReminderMetadata\x12/\n\x11requestMessageKey\x18\x01 \x01(\x0b\x32\x14.whatsapp.MessageKey\x12<\n\x06\x61\x63tion\x18\x02 \x01(\x0e\x32,.whatsapp.BotReminderMetadata.ReminderAction\x12\x0c\n\x04name\x18\x03 \x01(\t\x12\x1c\n\x14nextTriggerTimestamp\x18\x04 \x01(\x04\x12\x42\n\tfrequency\x18\x05 \x01(\x0e\x32/.whatsapp.BotReminderMetadata.ReminderFrequency\"@\n\x0eReminderAction\x12\n\n\x06NOTIFY\x10\x01\x12\n\n\x06\x43REATE\x10\x02\x12\n\n\x06\x44\x45LETE\x10\x03\x12\n\n\x06UPDATE\x10\x04\"O\n\x11ReminderFrequency\x12\x08\n\x04ONCE\x10\x01\x12\t\n\x05\x44\x41ILY\x10\x02\x12\n\n\x06WEEKLY\x10\x03\x12\x0c\n\x08\x42IWEEKLY\x10\x04\x12\x0b\n\x07MONTHLY\x10\x05\"M\n\x1a\x42otRenderingConfigMetadata\x12\x19\n\x11\x62loksVersioningId\x18\x01 \x01(\t\x12\x14\n\x0cpixelDensity\x18\x02 \x01(\x01\"\x85\x01\n\x14\x42otRenderingMetadata\x12\x38\n\x08keywords\x18\x01 \x03(\x0b\x32&.whatsapp.BotRenderingMetadata.Keyword\x1a\x33\n\x07Keyword\x12\r\n\x05value\x18\x01 \x01(\t\x12\x19\n\x11\x61ssociatedPrompts\x18\x02 \x03(\t\"S\n\x1b\x42otResolvedToolCallMetadata\x12\x12\n\ntoolCallId\x18\x01 \x01(\t\x12 \n\x18resolutionDataSerialized\x18\x02 \x01(\t\"Z\n\x12\x42otSessionMetadata\x12\x11\n\tsessionId\x18\x01 \x01(\t\x12\x31\n\rsessionSource\x18\x02 \x01(\x0e\x32\x1a.whatsapp.BotSessionSource\"b\n BotSignatureVerificationMetadata\x12>\n\x06proofs\x18\x01 \x03(\x0b\x32..whatsapp.BotSignatureVerificationUseCaseProof\"\x94\x02\n$BotSignatureVerificationUseCaseProof\x12\x0f\n\x07version\x18\x01 \x01(\x05\x12S\n\x07useCase\x18\x02 \x01(\x0e\x32\x42.whatsapp.BotSignatureVerificationUseCaseProof.BotSignatureUseCase\x12\x11\n\tsignature\x18\x03 \x01(\x0c\x12\x18\n\x10\x63\x65rtificateChain\x18\x04 \x03(\x0c\"Y\n\x13\x42otSignatureUseCase\x12\x0f\n\x0bUNSPECIFIED\x10\x00\x12\x0e\n\nWA_BOT_MSG\x10\x01\x12\x12\n\x0eWA_TEE_BOT_MSG\x10\x02\x12\r\n\tP2P_PILLS\x10\x03\"\x8a\x03\n\x12\x42otSourcesMetadata\x12;\n\x07sources\x18\x01 \x03(\x0b\x32*.whatsapp.BotSourcesMetadata.BotSourceItem\x1a\xb6\x02\n\rBotSourceItem\x12K\n\x08provider\x18\x01 \x01(\x0e\x32\x39.whatsapp.BotSourcesMetadata.BotSourceItem.SourceProvider\x12\x17\n\x0fthumbnailCdnUrl\x18\x02 \x01(\t\x12\x19\n\x11sourceProviderUrl\x18\x03 \x01(\t\x12\x13\n\x0bsourceQuery\x18\x04 \x01(\t\x12\x15\n\rfaviconCdnUrl\x18\x05 \x01(\t\x12\x16\n\x0e\x63itationNumber\x18\x06 \x01(\r\x12\x13\n\x0bsourceTitle\x18\x07 \x01(\t\"K\n\x0eSourceProvider\x12\x0b\n\x07UNKNOWN\x10\x00\x12\x08\n\x04\x42ING\x10\x01\x12\n\n\x06GOOGLE\x10\x02\x12\x0b\n\x07SUPPORT\x10\x03\x12\t\n\x05OTHER\x10\x04\"\xa8\x01\n\x1a\x42otSuggestedPromptMetadata\x12\x18\n\x10suggestedPrompts\x18\x01 \x03(\t\x12\x1b\n\x13selectedPromptIndex\x18\x02 \x01(\r\x12\x39\n\x11promptSuggestions\x18\x03 \x01(\x0b\x32\x1e.whatsapp.BotPromptSuggestions\x12\x18\n\x10selectedPromptId\x18\x04 \x01(\t\"\x9f\x03\n\x1a\x42otUnifiedResponseMutation\x12L\n\x0bsbsMetadata\x18\x01 \x01(\x0b\x32\x37.whatsapp.BotUnifiedResponseMutation.SideBySideMetadata\x12[\n\x18mediaDetailsMetadataList\x18\x02 \x03(\x0b\x32\x39.whatsapp.BotUnifiedResponseMutation.MediaDetailsMetadata\x1a\x86\x01\n\x14MediaDetailsMetadata\x12\n\n\x02id\x18\x01 \x01(\t\x12\x30\n\x0chighResMedia\x18\x02 \x01(\x0b\x32\x1a.whatsapp.BotMediaMetadata\x12\x30\n\x0cpreviewMedia\x18\x03 \x01(\x0b\x32\x1a.whatsapp.BotMediaMetadata\x1aM\n\x12SideBySideMetadata\x12\x19\n\x11primaryResponseId\x18\x01 \x01(\t\x12\x1c\n\x14surveyCtaHasRendered\x18\x02 \x01(\x08\"\xe6\x06\n\rCallLogRecord\x12\x36\n\ncallResult\x18\x01 \x01(\x0e\x32\".whatsapp.CallLogRecord.CallResult\x12\x11\n\tisDndMode\x18\x02 \x01(\x08\x12<\n\rsilenceReason\x18\x03 \x01(\x0e\x32%.whatsapp.CallLogRecord.SilenceReason\x12\x10\n\x08\x64uration\x18\x04 \x01(\x03\x12\x11\n\tstartTime\x18\x05 \x01(\x03\x12\x12\n\nisIncoming\x18\x06 \x01(\x08\x12\x0f\n\x07isVideo\x18\x07 \x01(\x08\x12\x12\n\nisCallLink\x18\x08 \x01(\x08\x12\x15\n\rcallLinkToken\x18\t \x01(\t\x12\x17\n\x0fscheduledCallId\x18\n \x01(\t\x12\x0e\n\x06\x63\x61llId\x18\x0b \x01(\t\x12\x16\n\x0e\x63\x61llCreatorJid\x18\x0c \x01(\t\x12\x10\n\x08groupJid\x18\r \x01(\t\x12=\n\x0cparticipants\x18\x0e \x03(\x0b\x32\'.whatsapp.CallLogRecord.ParticipantInfo\x12\x32\n\x08\x63\x61llType\x18\x0f \x01(\x0e\x32 .whatsapp.CallLogRecord.CallType\x1aZ\n\x0fParticipantInfo\x12\x0f\n\x07userJid\x18\x01 \x01(\t\x12\x36\n\ncallResult\x18\x02 \x01(\x0e\x32\".whatsapp.CallLogRecord.CallResult\"\xaf\x01\n\nCallResult\x12\r\n\tCONNECTED\x10\x00\x12\x0c\n\x08REJECTED\x10\x01\x12\r\n\tCANCELLED\x10\x02\x12\x15\n\x11\x41\x43\x43\x45PTEDELSEWHERE\x10\x03\x12\n\n\x06MISSED\x10\x04\x12\x0b\n\x07INVALID\x10\x05\x12\x0f\n\x0bUNAVAILABLE\x10\x06\x12\x0c\n\x08UPCOMING\x10\x07\x12\n\n\x06\x46\x41ILED\x10\x08\x12\r\n\tABANDONED\x10\t\x12\x0b\n\x07ONGOING\x10\n\";\n\x08\x43\x61llType\x12\x0b\n\x07REGULAR\x10\x00\x12\x12\n\x0eSCHEDULED_CALL\x10\x01\x12\x0e\n\nVOICE_CHAT\x10\x02\"F\n\rSilenceReason\x12\x08\n\x04NONE\x10\x00\x12\r\n\tSCHEDULED\x10\x01\x12\x0b\n\x07PRIVACY\x10\x02\x12\x0f\n\x0bLIGHTWEIGHT\x10\x03\"\x97\x02\n\tCertChain\x12\x32\n\x04leaf\x18\x01 \x01(\x0b\x32$.whatsapp.CertChain.NoiseCertificate\x12:\n\x0cintermediate\x18\x02 \x01(\x0b\x32$.whatsapp.CertChain.NoiseCertificate\x1a\x99\x01\n\x10NoiseCertificate\x12\x0f\n\x07\x64\x65tails\x18\x01 \x01(\x0c\x12\x11\n\tsignature\x18\x02 \x01(\x0c\x1a\x61\n\x07\x44\x65tails\x12\x0e\n\x06serial\x18\x01 \x01(\r\x12\x14\n\x0cissuerSerial\x18\x02 \x01(\r\x12\x0b\n\x03key\x18\x03 \x01(\x0c\x12\x11\n\tnotBefore\x18\x04 \x01(\x04\x12\x10\n\x08notAfter\x18\x05 \x01(\x04\"W\n\x10\x43hatLockSettings\x12\x17\n\x0fhideLockedChats\x18\x01 \x01(\x08\x12*\n\nsecretCode\x18\x02 \x01(\x0b\x32\x16.whatsapp.UserPassword\"\xd9\x06\n\x11\x43hatRowOpaqueData\x12>\n\x0c\x64raftMessage\x18\x01 \x01(\x0b\x32(.whatsapp.ChatRowOpaqueData.DraftMessage\x1a\x83\x06\n\x0c\x44raftMessage\x12\x0c\n\x04text\x18\x01 \x01(\t\x12\x12\n\nomittedUrl\x18\x02 \x01(\t\x12Y\n\x13\x63twaContextLinkData\x18\x03 \x01(\x0b\x32<.whatsapp.ChatRowOpaqueData.DraftMessage.CtwaContextLinkData\x12M\n\x0b\x63twaContext\x18\x04 \x01(\x0b\x32\x38.whatsapp.ChatRowOpaqueData.DraftMessage.CtwaContextData\x12\x11\n\ttimestamp\x18\x05 \x01(\x03\x1a\xb5\x03\n\x0f\x43twaContextData\x12\x18\n\x10\x63onversionSource\x18\x01 \x01(\t\x12\x16\n\x0e\x63onversionData\x18\x02 \x01(\x0c\x12\x11\n\tsourceUrl\x18\x03 \x01(\t\x12\x10\n\x08sourceId\x18\x04 \x01(\t\x12\x12\n\nsourceType\x18\x05 \x01(\t\x12\r\n\x05title\x18\x06 \x01(\t\x12\x13\n\x0b\x64\x65scription\x18\x07 \x01(\t\x12\x11\n\tthumbnail\x18\x08 \x01(\t\x12\x14\n\x0cthumbnailUrl\x18\t \x01(\t\x12s\n\tmediaType\x18\n \x01(\x0e\x32`.whatsapp.ChatRowOpaqueData.DraftMessage.CtwaContextData.ContextInfoExternalAdReplyInfoMediaType\x12\x10\n\x08mediaUrl\x18\x0b \x01(\t\x12\x18\n\x10isSuspiciousLink\x18\x0c \x01(\x08\"I\n\'ContextInfoExternalAdReplyInfoMediaType\x12\x08\n\x04NONE\x10\x00\x12\t\n\x05IMAGE\x10\x01\x12\t\n\x05VIDEO\x10\x02\x1a\\\n\x13\x43twaContextLinkData\x12\x0f\n\x07\x63ontext\x18\x01 \x01(\t\x12\x11\n\tsourceUrl\x18\x02 \x01(\t\x12\x12\n\nicebreaker\x18\x03 \x01(\t\x12\r\n\x05phone\x18\x04 \x01(\t\"L\n\x08\x43itation\x12\r\n\x05title\x18\x01 \x02(\t\x12\x10\n\x08subtitle\x18\x02 \x02(\t\x12\r\n\x05\x63msId\x18\x03 \x02(\t\x12\x10\n\x08imageUrl\x18\x04 \x02(\t\"\xbb\x01\n\x12\x43lientPairingProps\x12\x1b\n\x13isChatDbLidMigrated\x18\x01 \x01(\x08\x12\x1d\n\x15isSyncdPureLidSession\x18\x02 \x01(\x08\x12&\n\x1eisSyncdSnapshotRecoveryEnabled\x18\x03 \x01(\x08\x12 \n\x18isHsThumbnailSyncEnabled\x18\x04 \x01(\x08\x12\x1f\n\x17subscriptionSyncPayload\x18\x05 \x01(\x0c\"\xb1#\n\rClientPayload\x12\x10\n\x08username\x18\x01 \x01(\x04\x12\x0f\n\x07passive\x18\x03 \x01(\x08\x12\x34\n\tuserAgent\x18\x05 \x01(\x0b\x32!.whatsapp.ClientPayload.UserAgent\x12\x30\n\x07webInfo\x18\x06 \x01(\x0b\x32\x1f.whatsapp.ClientPayload.WebInfo\x12\x10\n\x08pushName\x18\x07 \x01(\t\x12\x11\n\tsessionId\x18\t \x01(\x0f\x12\x14\n\x0cshortConnect\x18\n \x01(\x08\x12\x38\n\x0b\x63onnectType\x18\x0c \x01(\x0e\x32#.whatsapp.ClientPayload.ConnectType\x12<\n\rconnectReason\x18\r \x01(\x0e\x32%.whatsapp.ClientPayload.ConnectReason\x12\x0e\n\x06shards\x18\x0e \x03(\x05\x12\x34\n\tdnsSource\x18\x0f \x01(\x0b\x32!.whatsapp.ClientPayload.DNSSource\x12\x1b\n\x13\x63onnectAttemptCount\x18\x10 \x01(\r\x12\x0e\n\x06\x64\x65vice\x18\x12 \x01(\r\x12P\n\x11\x64\x65vicePairingData\x18\x13 \x01(\x0b\x32\x35.whatsapp.ClientPayload.DevicePairingRegistrationData\x12\x30\n\x07product\x18\x14 \x01(\x0e\x32\x1f.whatsapp.ClientPayload.Product\x12\r\n\x05\x66\x62\x43\x61t\x18\x15 \x01(\x0c\x12\x13\n\x0b\x66\x62UserAgent\x18\x16 \x01(\x0c\x12\n\n\x02oc\x18\x17 \x01(\x08\x12\n\n\x02lc\x18\x18 \x01(\x05\x12@\n\x0fiosAppExtension\x18\x1e \x01(\x0e\x32\'.whatsapp.ClientPayload.IOSAppExtension\x12\x0f\n\x07\x66\x62\x41ppId\x18\x1f \x01(\x04\x12\x12\n\nfbDeviceId\x18 \x01(\x0c\x12\x0c\n\x04pull\x18! \x01(\x08\x12\x14\n\x0cpaddingBytes\x18\" \x01(\x0c\x12\x11\n\tyearClass\x18$ \x01(\x05\x12\x10\n\x08memClass\x18% \x01(\x05\x12\x38\n\x0binteropData\x18& \x01(\x0b\x32#.whatsapp.ClientPayload.InteropData\x12J\n\x14trafficAnonymization\x18( \x01(\x0e\x32,.whatsapp.ClientPayload.TrafficAnonymization\x12\x15\n\rlidDbMigrated\x18) \x01(\x08\x12\x38\n\x0b\x61\x63\x63ountType\x18* \x01(\x0e\x32#.whatsapp.ClientPayload.AccountType\x12\x1e\n\x16\x63onnectionSequenceInfo\x18+ \x01(\x0f\x12\x0f\n\x07paaLink\x18, \x01(\x08\x12\x14\n\x0cpreacksCount\x18- \x01(\x05\x12\x1b\n\x13processingQueueSize\x18. \x01(\x05\x12\x19\n\x11pairedPeripherals\x18/ \x03(\t\x12\x17\n\x0ftestIsolationId\x18\x30 \x01(\x0c\x1a\xf0\x01\n\tDNSSource\x12H\n\tdnsMethod\x18\x0f \x01(\x0e\x32\x35.whatsapp.ClientPayload.DNSSource.DNSResolutionMethod\x12\x11\n\tappCached\x18\x10 \x01(\x08\"\x85\x01\n\x13\x44NSResolutionMethod\x12\n\n\x06SYSTEM\x10\x00\x12\n\n\x06GOOGLE\x10\x01\x12\r\n\tHARDCODED\x10\x02\x12\x0c\n\x08OVERRIDE\x10\x03\x12\x0c\n\x08\x46\x41LLBACK\x10\x04\x12\x07\n\x03MNS\x10\x05\x12\x11\n\rMNS_SECONDARY\x10\x06\x12\x0f\n\x0bSOCKS_PROXY\x10\x07\x1a\xae\x01\n\x1d\x44\x65vicePairingRegistrationData\x12\x0e\n\x06\x65Regid\x18\x01 \x01(\x0c\x12\x10\n\x08\x65Keytype\x18\x02 \x01(\x0c\x12\x0e\n\x06\x65Ident\x18\x03 \x01(\x0c\x12\x0f\n\x07\x65SkeyId\x18\x04 \x01(\x0c\x12\x10\n\x08\x65SkeyVal\x18\x05 \x01(\x0c\x12\x10\n\x08\x65SkeySig\x18\x06 \x01(\x0c\x12\x11\n\tbuildHash\x18\x07 \x01(\x0c\x12\x13\n\x0b\x64\x65viceProps\x18\x08 \x01(\x0c\x1aK\n\x0bInteropData\x12\x11\n\taccountId\x18\x01 \x01(\x04\x12\r\n\x05token\x18\x02 \x01(\x0c\x12\x1a\n\x12\x65nableReadReceipts\x18\x03 \x01(\x08\x1a\xd5\x0b\n\tUserAgent\x12<\n\x08platform\x18\x01 \x01(\x0e\x32*.whatsapp.ClientPayload.UserAgent.Platform\x12@\n\nappVersion\x18\x02 \x01(\x0b\x32,.whatsapp.ClientPayload.UserAgent.AppVersion\x12\x0b\n\x03mcc\x18\x03 \x01(\t\x12\x0b\n\x03mnc\x18\x04 \x01(\t\x12\x11\n\tosVersion\x18\x05 \x01(\t\x12\x14\n\x0cmanufacturer\x18\x06 \x01(\t\x12\x0e\n\x06\x64\x65vice\x18\x07 \x01(\t\x12\x15\n\rosBuildNumber\x18\x08 \x01(\t\x12\x0f\n\x07phoneId\x18\t \x01(\t\x12H\n\x0ereleaseChannel\x18\n \x01(\x0e\x32\x30.whatsapp.ClientPayload.UserAgent.ReleaseChannel\x12\x1d\n\x15localeLanguageIso6391\x18\x0b \x01(\t\x12#\n\x1blocaleCountryIso31661Alpha2\x18\x0c \x01(\t\x12\x13\n\x0b\x64\x65viceBoard\x18\r \x01(\t\x12\x13\n\x0b\x64\x65viceExpId\x18\x0e \x01(\t\x12@\n\ndeviceType\x18\x0f \x01(\x0e\x32,.whatsapp.ClientPayload.UserAgent.DeviceType\x12\x17\n\x0f\x64\x65viceModelType\x18\x10 \x01(\t\x12R\n\x13\x64istributionChannel\x18\x11 \x01(\x0e\x32\x35.whatsapp.ClientPayload.UserAgent.DistributionChannel\x1ag\n\nAppVersion\x12\x0f\n\x07primary\x18\x01 \x01(\r\x12\x11\n\tsecondary\x18\x02 \x01(\r\x12\x10\n\x08tertiary\x18\x03 \x01(\r\x12\x12\n\nquaternary\x18\x04 \x01(\r\x12\x0f\n\x07quinary\x18\x05 \x01(\r\"F\n\nDeviceType\x12\t\n\x05PHONE\x10\x00\x12\n\n\x06TABLET\x10\x01\x12\x0b\n\x07\x44\x45SKTOP\x10\x02\x12\x0c\n\x08WEARABLE\x10\x03\x12\x06\n\x02VR\x10\x04\"N\n\x13\x44istributionChannel\x12\x0c\n\x08\x41PPSTORE\x10\x00\x12\x0b\n\x07WEBSITE\x10\x01\x12\x0e\n\nTESTFLIGHT\x10\x02\x12\x0c\n\x08INTERNAL\x10\x03\"\xa5\x04\n\x08Platform\x12\x0b\n\x07\x41NDROID\x10\x00\x12\x07\n\x03IOS\x10\x01\x12\x11\n\rWINDOWS_PHONE\x10\x02\x12\x0e\n\nBLACKBERRY\x10\x03\x12\x0f\n\x0b\x42LACKBERRYX\x10\x04\x12\x07\n\x03S40\x10\x05\x12\x07\n\x03S60\x10\x06\x12\x11\n\rPYTHON_CLIENT\x10\x07\x12\t\n\x05TIZEN\x10\x08\x12\x0e\n\nENTERPRISE\x10\t\x12\x0f\n\x0bSMB_ANDROID\x10\n\x12\t\n\x05KAIOS\x10\x0b\x12\x0b\n\x07SMB_IOS\x10\x0c\x12\x0b\n\x07WINDOWS\x10\r\x12\x07\n\x03WEB\x10\x0e\x12\n\n\x06PORTAL\x10\x0f\x12\x11\n\rGREEN_ANDROID\x10\x10\x12\x10\n\x0cGREEN_IPHONE\x10\x11\x12\x10\n\x0c\x42LUE_ANDROID\x10\x12\x12\x0f\n\x0b\x42LUE_IPHONE\x10\x13\x12\x12\n\x0e\x46\x42LITE_ANDROID\x10\x14\x12\x11\n\rMLITE_ANDROID\x10\x15\x12\x12\n\x0eIGLITE_ANDROID\x10\x16\x12\x08\n\x04PAGE\x10\x17\x12\t\n\x05MACOS\x10\x18\x12\x0e\n\nOCULUS_MSG\x10\x19\x12\x0f\n\x0bOCULUS_CALL\x10\x1a\x12\t\n\x05MILAN\x10\x1b\x12\x08\n\x04\x43\x41PI\x10\x1c\x12\n\n\x06WEAROS\x10\x1d\x12\x0c\n\x08\x41RDEVICE\x10\x1e\x12\x0c\n\x08VRDEVICE\x10\x1f\x12\x0c\n\x08\x42LUE_WEB\x10 \x12\x08\n\x04IPAD\x10!\x12\x08\n\x04TEST\x10\"\x12\x11\n\rSMART_GLASSES\x10#\x12\x0b\n\x07\x42LUE_VR\x10$\x12\x0c\n\x08\x41R_WRIST\x10%\"=\n\x0eReleaseChannel\x12\x0b\n\x07RELEASE\x10\x00\x12\x08\n\x04\x42\x45TA\x10\x01\x12\t\n\x05\x41LPHA\x10\x02\x12\t\n\x05\x44\x45\x42UG\x10\x03\x1a\x85\x05\n\x07WebInfo\x12\x10\n\x08refToken\x18\x01 \x01(\t\x12\x0f\n\x07version\x18\x02 \x01(\t\x12@\n\x0bwebdPayload\x18\x03 \x01(\x0b\x32+.whatsapp.ClientPayload.WebInfo.WebdPayload\x12\x46\n\x0ewebSubPlatform\x18\x04 \x01(\x0e\x32..whatsapp.ClientPayload.WebInfo.WebSubPlatform\x12\x0f\n\x07\x62rowser\x18\x05 \x01(\t\x12\x16\n\x0e\x62rowserVersion\x18\x06 \x01(\t\x1a\xbb\x02\n\x0bWebdPayload\x12\x1c\n\x14usesParticipantInKey\x18\x01 \x01(\x08\x12\x1f\n\x17supportsStarredMessages\x18\x02 \x01(\x08\x12 \n\x18supportsDocumentMessages\x18\x03 \x01(\x08\x12\x1b\n\x13supportsUrlMessages\x18\x04 \x01(\x08\x12\x1a\n\x12supportsMediaRetry\x18\x05 \x01(\x08\x12\x18\n\x10supportsE2EImage\x18\x06 \x01(\x08\x12\x18\n\x10supportsE2EVideo\x18\x07 \x01(\x08\x12\x18\n\x10supportsE2EAudio\x18\x08 \x01(\x08\x12\x1b\n\x13supportsE2EDocument\x18\t \x01(\x08\x12\x15\n\rdocumentTypes\x18\n \x01(\t\x12\x10\n\x08\x66\x65\x61tures\x18\x0b \x01(\x0c\"f\n\x0eWebSubPlatform\x12\x0f\n\x0bWEB_BROWSER\x10\x00\x12\r\n\tAPP_STORE\x10\x01\x12\r\n\tWIN_STORE\x10\x02\x12\n\n\x06\x44\x41RWIN\x10\x03\x12\t\n\x05WIN32\x10\x04\x12\x0e\n\nWIN_HYBRID\x10\x05\"%\n\x0b\x41\x63\x63ountType\x12\x0b\n\x07\x44\x45\x46\x41ULT\x10\x00\x12\t\n\x05GUEST\x10\x01\"\x86\x01\n\rConnectReason\x12\x08\n\x04PUSH\x10\x00\x12\x12\n\x0eUSER_ACTIVATED\x10\x01\x12\r\n\tSCHEDULED\x10\x02\x12\x13\n\x0f\x45RROR_RECONNECT\x10\x03\x12\x12\n\x0eNETWORK_SWITCH\x10\x04\x12\x12\n\x0ePING_RECONNECT\x10\x05\x12\x0b\n\x07UNKNOWN\x10\x06\"\xb0\x02\n\x0b\x43onnectType\x12\x14\n\x10\x43\x45LLULAR_UNKNOWN\x10\x00\x12\x10\n\x0cWIFI_UNKNOWN\x10\x01\x12\x11\n\rCELLULAR_EDGE\x10\x64\x12\x11\n\rCELLULAR_IDEN\x10\x65\x12\x11\n\rCELLULAR_UMTS\x10\x66\x12\x11\n\rCELLULAR_EVDO\x10g\x12\x11\n\rCELLULAR_GPRS\x10h\x12\x12\n\x0e\x43\x45LLULAR_HSDPA\x10i\x12\x12\n\x0e\x43\x45LLULAR_HSUPA\x10j\x12\x11\n\rCELLULAR_HSPA\x10k\x12\x11\n\rCELLULAR_CDMA\x10l\x12\x12\n\x0e\x43\x45LLULAR_1XRTT\x10m\x12\x12\n\x0e\x43\x45LLULAR_EHRPD\x10n\x12\x10\n\x0c\x43\x45LLULAR_LTE\x10o\x12\x12\n\x0e\x43\x45LLULAR_HSPAP\x10p\"T\n\x0fIOSAppExtension\x12\x13\n\x0fSHARE_EXTENSION\x10\x00\x12\x15\n\x11SERVICE_EXTENSION\x10\x01\x12\x15\n\x11INTENTS_EXTENSION\x10\x02\"W\n\x07Product\x12\x0c\n\x08WHATSAPP\x10\x00\x12\r\n\tMESSENGER\x10\x01\x12\x0b\n\x07INTEROP\x10\x02\x12\x10\n\x0cINTEROP_MSGR\x10\x03\x12\x10\n\x0cWHATSAPP_LID\x10\x04\"-\n\x14TrafficAnonymization\x12\x07\n\x03OFF\x10\x00\x12\x0c\n\x08STANDARD\x10\x01\"\x91\x01\n\x13\x43ombinedFingerprint\x12\x0f\n\x07version\x18\x01 \x01(\r\x12\x33\n\x10localFingerprint\x18\x02 \x01(\x0b\x32\x19.whatsapp.FingerprintData\x12\x34\n\x11remoteFingerprint\x18\x03 \x01(\x0b\x32\x19.whatsapp.FingerprintData\"w\n\x07\x43ommand\x12\x33\n\x0b\x63ommandType\x18\x01 \x01(\x0e\x32\x1e.whatsapp.COMMAND_COMMAND_TYPE\x12\x0e\n\x06offset\x18\x02 \x01(\r\x12\x0e\n\x06length\x18\x03 \x01(\r\x12\x17\n\x0fvalidationToken\x18\x04 \x01(\t\"U\n\x0f\x43ommentMetadata\x12.\n\x10\x63ommentParentKey\x18\x01 \x01(\x0b\x32\x14.whatsapp.MessageKey\x12\x12\n\nreplyCount\x18\x02 \x01(\r\"#\n\x13\x43ompanionCommitment\x12\x0c\n\x04hash\x18\x01 \x01(\x0c\"t\n\x1a\x43ompanionEphemeralIdentity\x12\x11\n\tpublicKey\x18\x01 \x01(\x0c\x12\x36\n\ndeviceType\x18\x02 \x01(\x0e\x32\".whatsapp.DeviceProps.PlatformType\x12\x0b\n\x03ref\x18\x03 \x01(\t\"\x84\x01\n\x06\x43onfig\x12*\n\x05\x66ield\x18\x01 \x03(\x0b\x32\x1b.whatsapp.Config.FieldEntry\x12\x0f\n\x07version\x18\x02 \x01(\r\x1a=\n\nFieldEntry\x12\x0b\n\x03key\x18\x01 \x01(\r\x12\x1e\n\x05value\x18\x02 \x01(\x0b\x32\x0f.whatsapp.Field:\x02\x38\x01\"\xee\'\n\x13\x43onsumerApplication\x12\x36\n\x07payload\x18\x01 \x01(\x0b\x32%.whatsapp.ConsumerApplication.Payload\x12\x38\n\x08metadata\x18\x02 \x01(\x0b\x32&.whatsapp.ConsumerApplication.Metadata\x1a\x66\n\x0f\x41pplicationData\x12=\n\x06revoke\x18\x01 \x01(\x0b\x32+.whatsapp.ConsumerApplication.RevokeMessageH\x00\x42\x14\n\x12\x61pplicationContent\x1a\x41\n\x0c\x41udioMessage\x12$\n\x05\x61udio\x18\x01 \x01(\x0b\x32\x15.whatsapp.SubProtocol\x12\x0b\n\x03ptt\x18\x02 \x01(\x08\x1a\x38\n\x0e\x43ontactMessage\x12&\n\x07\x63ontact\x18\x01 \x01(\x0b\x32\x15.whatsapp.SubProtocol\x1ak\n\x14\x43ontactsArrayMessage\x12\x13\n\x0b\x64isplayName\x18\x01 \x01(\t\x12>\n\x08\x63ontacts\x18\x02 \x03(\x0b\x32,.whatsapp.ConsumerApplication.ContactMessage\x1a\xbd\n\n\x07\x43ontent\x12,\n\x0bmessageText\x18\x01 \x01(\x0b\x32\x15.whatsapp.MessageTextH\x00\x12\x42\n\x0cimageMessage\x18\x02 \x01(\x0b\x32*.whatsapp.ConsumerApplication.ImageMessageH\x00\x12\x46\n\x0e\x63ontactMessage\x18\x03 \x01(\x0b\x32,.whatsapp.ConsumerApplication.ContactMessageH\x00\x12H\n\x0flocationMessage\x18\x04 \x01(\x0b\x32-.whatsapp.ConsumerApplication.LocationMessageH\x00\x12P\n\x13\x65xtendedTextMessage\x18\x05 \x01(\x0b\x32\x31.whatsapp.ConsumerApplication.ExtendedTextMessageH\x00\x12K\n\x11statusTextMessage\x18\x06 \x01(\x0b\x32..whatsapp.ConsumerApplication.StatusTextMesageH\x00\x12H\n\x0f\x64ocumentMessage\x18\x07 \x01(\x0b\x32-.whatsapp.ConsumerApplication.DocumentMessageH\x00\x12\x42\n\x0c\x61udioMessage\x18\x08 \x01(\x0b\x32*.whatsapp.ConsumerApplication.AudioMessageH\x00\x12\x42\n\x0cvideoMessage\x18\t \x01(\x0b\x32*.whatsapp.ConsumerApplication.VideoMessageH\x00\x12R\n\x14\x63ontactsArrayMessage\x18\n \x01(\x0b\x32\x32.whatsapp.ConsumerApplication.ContactsArrayMessageH\x00\x12P\n\x13liveLocationMessage\x18\x0b \x01(\x0b\x32\x31.whatsapp.ConsumerApplication.LiveLocationMessageH\x00\x12\x46\n\x0estickerMessage\x18\x0c \x01(\x0b\x32,.whatsapp.ConsumerApplication.StickerMessageH\x00\x12N\n\x12groupInviteMessage\x18\r \x01(\x0b\x32\x30.whatsapp.ConsumerApplication.GroupInviteMessageH\x00\x12H\n\x0fviewOnceMessage\x18\x0e \x01(\x0b\x32-.whatsapp.ConsumerApplication.ViewOnceMessageH\x00\x12H\n\x0freactionMessage\x18\x10 \x01(\x0b\x32-.whatsapp.ConsumerApplication.ReactionMessageH\x00\x12P\n\x13pollCreationMessage\x18\x11 \x01(\x0b\x32\x31.whatsapp.ConsumerApplication.PollCreationMessageH\x00\x12L\n\x11pollUpdateMessage\x18\x12 \x01(\x0b\x32/.whatsapp.ConsumerApplication.PollUpdateMessageH\x00\x12@\n\x0b\x65\x64itMessage\x18\x13 \x01(\x0b\x32).whatsapp.ConsumerApplication.EditMessageH\x00\x42\t\n\x07\x63ontent\x1aL\n\x0f\x44ocumentMessage\x12\'\n\x08\x64ocument\x18\x01 \x01(\x0b\x32\x15.whatsapp.SubProtocol\x12\x10\n\x08\x66ileName\x18\x02 \x01(\t\x1am\n\x0b\x45\x64itMessage\x12!\n\x03key\x18\x01 \x01(\x0b\x32\x14.whatsapp.MessageKey\x12&\n\x07message\x18\x02 \x01(\x0b\x32\x15.whatsapp.MessageText\x12\x13\n\x0btimestampMs\x18\x03 \x01(\x03\x1a\x9f\x02\n\x13\x45xtendedTextMessage\x12#\n\x04text\x18\x01 \x01(\x0b\x32\x15.whatsapp.MessageText\x12\x13\n\x0bmatchedText\x18\x02 \x01(\t\x12\x14\n\x0c\x63\x61nonicalUrl\x18\x03 \x01(\t\x12\x13\n\x0b\x64\x65scription\x18\x04 \x01(\t\x12\r\n\x05title\x18\x05 \x01(\t\x12(\n\tthumbnail\x18\x06 \x01(\x0b\x32\x15.whatsapp.SubProtocol\x12j\n\x0bpreviewType\x18\x07 \x01(\x0e\x32U.whatsapp.ConsumerApplication.CONSUMER_APPLICATION_EXTENDED_TEXT_MESSAGE_PREVIEW_TYPE\x1a\xa6\x01\n\x12GroupInviteMessage\x12\x10\n\x08groupJid\x18\x01 \x01(\t\x12\x12\n\ninviteCode\x18\x02 \x01(\t\x12\x18\n\x10inviteExpiration\x18\x03 \x01(\x03\x12\x11\n\tgroupName\x18\x04 \x01(\t\x12\x15\n\rjpegThumbnail\x18\x05 \x01(\x0c\x12&\n\x07\x63\x61ption\x18\x06 \x01(\x0b\x32\x15.whatsapp.MessageText\x1a\\\n\x0cImageMessage\x12$\n\x05image\x18\x01 \x01(\x0b\x32\x15.whatsapp.SubProtocol\x12&\n\x07\x63\x61ption\x18\x02 \x01(\x0b\x32\x15.whatsapp.MessageText\x1a\x9b\x01\n\x15InteractiveAnnotation\x12<\n\x0fpolygonVertices\x18\x01 \x03(\x0b\x32#.whatsapp.ConsumerApplication.Point\x12:\n\x08location\x18\x02 \x01(\x0b\x32&.whatsapp.ConsumerApplication.LocationH\x00\x42\x08\n\x06\x61\x63tion\x1a\xfc\x01\n\x13LiveLocationMessage\x12\x38\n\x08location\x18\x01 \x01(\x0b\x32&.whatsapp.ConsumerApplication.Location\x12\x18\n\x10\x61\x63\x63uracyInMeters\x18\x02 \x01(\r\x12\x12\n\nspeedInMps\x18\x03 \x01(\x02\x12)\n!degreesClockwiseFromMagneticNorth\x18\x04 \x01(\r\x12&\n\x07\x63\x61ption\x18\x05 \x01(\x0b\x32\x15.whatsapp.MessageText\x12\x16\n\x0esequenceNumber\x18\x06 \x01(\x03\x12\x12\n\ntimeOffset\x18\x07 \x01(\r\x1aK\n\x08Location\x12\x17\n\x0f\x64\x65greesLatitude\x18\x01 \x01(\x01\x12\x18\n\x10\x64\x65greesLongitude\x18\x02 \x01(\x01\x12\x0c\n\x04name\x18\x03 \x01(\t\x1a\\\n\x0fLocationMessage\x12\x38\n\x08location\x18\x01 \x01(\x0b\x32&.whatsapp.ConsumerApplication.Location\x12\x0f\n\x07\x61\x64\x64ress\x18\x02 \x01(\t\x1a\x37\n\x0cMediaPayload\x12\'\n\x08protocol\x18\x01 \x01(\x0b\x32\x15.whatsapp.SubProtocol\x1a^\n\x08Metadata\x12R\n\x0fspecialTextSize\x18\x01 \x01(\x0e\x32\x39.whatsapp.CONSUMER_APPLICATION_METADATA_SPECIAL_TEXT_SIZE\x1a\x1c\n\x06Option\x12\x12\n\noptionName\x18\x01 \x01(\t\x1a\x99\x02\n\x07Payload\x12\x38\n\x07\x63ontent\x18\x01 \x01(\x0b\x32%.whatsapp.ConsumerApplication.ContentH\x00\x12H\n\x0f\x61pplicationData\x18\x02 \x01(\x0b\x32-.whatsapp.ConsumerApplication.ApplicationDataH\x00\x12\x36\n\x06signal\x18\x03 \x01(\x0b\x32$.whatsapp.ConsumerApplication.SignalH\x00\x12G\n\x0bsubProtocol\x18\x04 \x01(\x0b\x32\x30.whatsapp.ConsumerApplication.SubProtocolPayloadH\x00\x42\t\n\x07payload\x1a\x1d\n\x05Point\x12\t\n\x01x\x18\x01 \x01(\x01\x12\t\n\x01y\x18\x02 \x01(\x01\x1aP\n\x14PollAddOptionMessage\x12\x38\n\npollOption\x18\x01 \x03(\x0b\x32$.whatsapp.ConsumerApplication.Option\x1a\x8a\x01\n\x13PollCreationMessage\x12\x0e\n\x06\x65ncKey\x18\x01 \x01(\x0c\x12\x0c\n\x04name\x18\x02 \x01(\t\x12\x35\n\x07options\x18\x03 \x03(\x0b\x32$.whatsapp.ConsumerApplication.Option\x12\x1e\n\x16selectableOptionsCount\x18\x04 \x01(\r\x1a\x31\n\x0cPollEncValue\x12\x12\n\nencPayload\x18\x01 \x01(\x0c\x12\r\n\x05\x65ncIv\x18\x02 \x01(\x0c\x1a\xc2\x01\n\x11PollUpdateMessage\x12\x34\n\x16pollCreationMessageKey\x18\x01 \x01(\x0b\x32\x14.whatsapp.MessageKey\x12\x38\n\x04vote\x18\x02 \x01(\x0b\x32*.whatsapp.ConsumerApplication.PollEncValue\x12=\n\taddOption\x18\x03 \x01(\x0b\x32*.whatsapp.ConsumerApplication.PollEncValue\x1a\x45\n\x0fPollVoteMessage\x12\x17\n\x0fselectedOptions\x18\x01 \x03(\x0c\x12\x19\n\x11senderTimestampMs\x18\x02 \x01(\x03\x1a\xa8\x01\n\x0fReactionMessage\x12!\n\x03key\x18\x01 \x01(\x0b\x32\x14.whatsapp.MessageKey\x12\x0c\n\x04text\x18\x02 \x01(\t\x12\x13\n\x0bgroupingKey\x18\x03 \x01(\t\x12\x19\n\x11senderTimestampMs\x18\x04 \x01(\x03\x12%\n\x1dreactionMetadataDataclassData\x18\x05 \x01(\t\x12\r\n\x05style\x18\x06 \x01(\x05\x1a\x32\n\rRevokeMessage\x12!\n\x03key\x18\x01 \x01(\x0b\x32\x14.whatsapp.MessageKey\x1a\x08\n\x06Signal\x1a\xc8\x01\n\x10StatusTextMesage\x12?\n\x04text\x18\x01 \x01(\x0b\x32\x31.whatsapp.ConsumerApplication.ExtendedTextMessage\x12\x10\n\x08textArgb\x18\x06 \x01(\x07\x12\x16\n\x0e\x62\x61\x63kgroundArgb\x18\x07 \x01(\x07\x12I\n\x04\x66ont\x18\x08 \x01(\x0e\x32;.whatsapp.CONSUMER_APPLICATION_STATUS_TEXT_MESAGE_FONT_TYPE\x1a\x38\n\x0eStickerMessage\x12&\n\x07sticker\x18\x01 \x01(\x0b\x32\x15.whatsapp.SubProtocol\x1aJ\n\x12SubProtocolPayload\x12\x34\n\x0b\x66utureProof\x18\x01 \x01(\x0e\x32\x1f.whatsapp.FUTURE_PROOF_BEHAVIOR\x1a\\\n\x0cVideoMessage\x12$\n\x05video\x18\x01 \x01(\x0b\x32\x15.whatsapp.SubProtocol\x12&\n\x07\x63\x61ption\x18\x02 \x01(\x0b\x32\x15.whatsapp.MessageText\x1a\xac\x01\n\x0fViewOnceMessage\x12\x42\n\x0cimageMessage\x18\x01 \x01(\x0b\x32*.whatsapp.ConsumerApplication.ImageMessageH\x00\x12\x42\n\x0cvideoMessage\x18\x02 \x01(\x0b\x32*.whatsapp.ConsumerApplication.VideoMessageH\x00\x42\x11\n\x0fviewOnceContent\"N\n7CONSUMER_APPLICATION_EXTENDED_TEXT_MESSAGE_PREVIEW_TYPE\x12\x08\n\x04NONE\x10\x00\x12\t\n\x05VIDEO\x10\x01\"\xe4\x34\n\x0b\x43ontextInfo\x12\x10\n\x08stanzaId\x18\x01 \x01(\t\x12\x13\n\x0bparticipant\x18\x02 \x01(\t\x12(\n\rquotedMessage\x18\x03 \x01(\x0b\x32\x11.whatsapp.Message\x12\x11\n\tremoteJid\x18\x04 \x01(\t\x12\x14\n\x0cmentionedJid\x18\x0f \x03(\t\x12\x18\n\x10\x63onversionSource\x18\x12 \x01(\t\x12\x16\n\x0e\x63onversionData\x18\x13 \x01(\x0c\x12\x1e\n\x16\x63onversionDelaySeconds\x18\x14 \x01(\r\x12\x17\n\x0f\x66orwardingScore\x18\x15 \x01(\r\x12\x13\n\x0bisForwarded\x18\x16 \x01(\x08\x12\x33\n\x08quotedAd\x18\x17 \x01(\x0b\x32!.whatsapp.ContextInfo.AdReplyInfo\x12,\n\x0eplaceholderKey\x18\x18 \x01(\x0b\x32\x14.whatsapp.MessageKey\x12\x12\n\nexpiration\x18\x19 \x01(\r\x12!\n\x19\x65phemeralSettingTimestamp\x18\x1a \x01(\x03\x12\x1d\n\x15\x65phemeralSharedSecret\x18\x1b \x01(\x0c\x12\x42\n\x0f\x65xternalAdReply\x18\x1c \x01(\x0b\x32).whatsapp.ContextInfo.ExternalAdReplyInfo\x12\"\n\x1a\x65ntryPointConversionSource\x18\x1d \x01(\t\x12\x1f\n\x17\x65ntryPointConversionApp\x18\x1e \x01(\t\x12(\n entryPointConversionDelaySeconds\x18\x1f \x01(\r\x12\x34\n\x10\x64isappearingMode\x18 \x01(\x0b\x32\x1a.whatsapp.DisappearingMode\x12(\n\nactionLink\x18! \x01(\x0b\x32\x14.whatsapp.ActionLink\x12\x14\n\x0cgroupSubject\x18\" \x01(\t\x12\x16\n\x0eparentGroupJid\x18# \x01(\t\x12\x17\n\x0ftrustBannerType\x18% \x01(\t\x12\x19\n\x11trustBannerAction\x18& \x01(\r\x12\x11\n\tisSampled\x18\' \x01(\x08\x12-\n\rgroupMentions\x18( \x03(\x0b\x32\x16.whatsapp.GroupMention\x12*\n\x03utm\x18) \x01(\x0b\x32\x1d.whatsapp.ContextInfo.UTMInfo\x12\\\n\x1e\x66orwardedNewsletterMessageInfo\x18+ \x01(\x0b\x32\x34.whatsapp.ContextInfo.ForwardedNewsletterMessageInfo\x12T\n\x1a\x62usinessMessageForwardInfo\x18, \x01(\x0b\x32\x30.whatsapp.ContextInfo.BusinessMessageForwardInfo\x12\x1b\n\x13smbClientCampaignId\x18- \x01(\t\x12\x1b\n\x13smbServerCampaignId\x18. \x01(\t\x12\x44\n\x12\x64\x61taSharingContext\x18/ \x01(\x0b\x32(.whatsapp.ContextInfo.DataSharingContext\x12\x1f\n\x17\x61lwaysShowAdAttribution\x18\x30 \x01(\x08\x12H\n\x14\x66\x65\x61tureEligibilities\x18\x31 \x01(\x0b\x32*.whatsapp.ContextInfo.FeatureEligibilities\x12*\n\"entryPointConversionExternalSource\x18\x32 \x01(\t\x12*\n\"entryPointConversionExternalMedium\x18\x33 \x01(\t\x12\x13\n\x0b\x63twaSignals\x18\x36 \x01(\t\x12\x13\n\x0b\x63twaPayload\x18\x37 \x01(\x0c\x12\x46\n\x19\x66orwardedAiBotMessageInfo\x18\x38 \x01(\x0b\x32#.whatsapp.ForwardedAIBotMessageInfo\x12J\n\x15statusAttributionType\x18\x39 \x01(\x0e\x32+.whatsapp.ContextInfo.StatusAttributionType\x12\x30\n\x0eurlTrackingMap\x18: \x01(\x0b\x32\x18.whatsapp.UrlTrackingMap\x12>\n\x0fpairedMediaType\x18; \x01(\x0e\x32%.whatsapp.ContextInfo.PairedMediaType\x12\x16\n\x0erankingVersion\x18< \x01(\r\x12*\n\x0bmemberLabel\x18> \x01(\x0b\x32\x15.whatsapp.MemberLabel\x12\x12\n\nisQuestion\x18? \x01(\x08\x12@\n\x10statusSourceType\x18@ \x01(\x0e\x32&.whatsapp.ContextInfo.StatusSourceType\x12\x37\n\x12statusAttributions\x18\x41 \x03(\x0b\x32\x1b.whatsapp.StatusAttribution\x12\x15\n\risGroupStatus\x18\x42 \x01(\x08\x12:\n\rforwardOrigin\x18\x43 \x01(\x0e\x32#.whatsapp.ContextInfo.ForwardOrigin\x12T\n\x1aquestionReplyQuotedMessage\x18\x44 \x01(\x0b\x32\x30.whatsapp.ContextInfo.QuestionReplyQuotedMessage\x12L\n\x16statusAudienceMetadata\x18\x45 \x01(\x0b\x32,.whatsapp.ContextInfo.StatusAudienceMetadata\x12\x16\n\x0enonJidMentions\x18\x46 \x01(\r\x12\x34\n\nquotedType\x18G \x01(\x0e\x32 .whatsapp.ContextInfo.QuotedType\x12>\n\x15\x62otMessageSharingInfo\x18H \x01(\x0b\x32\x1f.whatsapp.BotMessageSharingInfo\x12\x11\n\tisSpoiler\x18I \x01(\x08\x12\x32\n\x0fmediaDomainInfo\x18J \x01(\x0b\x32\x19.whatsapp.MediaDomainInfo\x12P\n\x18partiallySelectedContent\x18K \x01(\x0b\x32..whatsapp.ContextInfo.PartiallySelectedContent\x12\x19\n\x11\x61\x66terReadDuration\x18L \x01(\r\x12<\n\x0e\x63rossAppSource\x18M \x01(\x0e\x32$.whatsapp.ContextInfo.CrossAppSource\x12P\n\x18\x62usinessInteractionPills\x18N \x01(\x0b\x32..whatsapp.ContextInfo.BusinessInteractionPills\x12\x16\n\x0eposterStatusId\x18O \x01(\t\x1a\xba\x01\n\x0b\x41\x64ReplyInfo\x12\x16\n\x0e\x61\x64vertiserName\x18\x01 \x01(\t\x12>\n\tmediaType\x18\x02 \x01(\x0e\x32+.whatsapp.ContextInfo.AdReplyInfo.MediaType\x12\x15\n\rjpegThumbnail\x18\x10 \x01(\x0c\x12\x0f\n\x07\x63\x61ption\x18\x11 \x01(\t\"+\n\tMediaType\x12\x08\n\x04NONE\x10\x00\x12\t\n\x05IMAGE\x10\x01\x12\t\n\x05VIDEO\x10\x02\x1a\xb9\x06\n\x18\x42usinessInteractionPills\x12\x13\n\x0b\x62usinessJid\x18\x01 \x01(\t\x12\x42\n\x05pills\x18\x02 \x03(\x0b\x32\x33.whatsapp.ContextInfo.BusinessInteractionPills.Pill\x12M\n\nentryPoint\x18\x03 \x01(\x0e\x32\x39.whatsapp.ContextInfo.BusinessInteractionPills.EntryPoint\x12\x15\n\rsignedPayload\x18\x04 \x01(\x0c\x12\x45\n\x11signatureEnvelope\x18\x05 \x01(\x0b\x32*.whatsapp.BotSignatureVerificationMetadata\x1a\x64\n\x04Pill\x12I\n\x08pillType\x18\x01 \x01(\x0e\x32\x37.whatsapp.ContextInfo.BusinessInteractionPills.PillType\x12\x11\n\tactionUrl\x18\x02 \x01(\t\x1ai\n\rSignedPayload\x12\x14\n\x0cverifiedName\x18\x01 \x01(\t\x12\x42\n\x05pills\x18\x02 \x03(\x0b\x32\x33.whatsapp.ContextInfo.BusinessInteractionPills.Pill\"\x8d\x01\n\nEntryPoint\x12\x17\n\x13\x45NTRY_POINT_UNKNOWN\x10\x00\x12\x12\n\x0eP2P_LINK_SHARE\x10\x01\x12\x18\n\x14\x43ONTACT_CARD_SHARING\x10\x02\x12\x10\n\x0cPHONE_NUMBER\x10\x03\x12\n\n\x06STATUS\x10\x04\x12\x1a\n\x16IN_THREAD_CONTEXT_CARD\x10\x05\"\xb5\x01\n\x08PillType\x12\x0b\n\x07UNKNOWN\x10\x00\x12\x11\n\rVIEW_BUSINESS\x10\x01\x12\x08\n\x04\x43HAT\x10\x02\x12\x08\n\x04\x43\x41LL\x10\x03\x12\x0b\n\x07\x43\x41TALOG\x10\x04\x12\x0b\n\x07\x43HANNEL\x10\x05\x12\x14\n\x10\x42OOK_APPOINTMENT\x10\x06\x12\n\n\x06OFFERS\x10\x07\x12\x0f\n\x0b\x42\x45STSELLERS\x10\x08\x12\x08\n\x04MENU\x10\t\x12\t\n\x05\x41\x42OUT\x10\n\x12\x08\n\x04SHOP\x10\x0b\x12\t\n\x05ORDER\x10\x0c\x1a\x36\n\x1a\x42usinessMessageForwardInfo\x12\x18\n\x10\x62usinessOwnerJid\x18\x01 \x01(\t\x1a\xa8\x03\n\x12\x44\x61taSharingContext\x12\x18\n\x10showMmDisclosure\x18\x01 \x01(\x08\x12%\n\x1d\x65ncryptedSignalTokenConsented\x18\x02 \x01(\t\x12G\n\nparameters\x18\x03 \x03(\x0b\x32\x33.whatsapp.ContextInfo.DataSharingContext.Parameters\x12\x18\n\x10\x64\x61taSharingFlags\x18\x04 \x01(\x05\x1a\x98\x01\n\nParameters\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\x12\n\nstringData\x18\x02 \x01(\t\x12\x0f\n\x07intData\x18\x03 \x01(\x03\x12\x11\n\tfloatData\x18\x04 \x01(\x02\x12\x45\n\x08\x63ontents\x18\x05 \x01(\x0b\x32\x33.whatsapp.ContextInfo.DataSharingContext.Parameters\"S\n\x10\x44\x61taSharingFlags\x12\x1f\n\x1bSHOW_MM_DISCLOSURE_ON_CLICK\x10\x01\x12\x1e\n\x1aSHOW_MM_DISCLOSURE_ON_READ\x10\x02\x1a\xd6\x07\n\x13\x45xternalAdReplyInfo\x12\r\n\x05title\x18\x01 \x01(\t\x12\x0c\n\x04\x62ody\x18\x02 \x01(\t\x12\x46\n\tmediaType\x18\x03 \x01(\x0e\x32\x33.whatsapp.ContextInfo.ExternalAdReplyInfo.MediaType\x12\x14\n\x0cthumbnailUrl\x18\x04 \x01(\t\x12\x10\n\x08mediaUrl\x18\x05 \x01(\t\x12\x11\n\tthumbnail\x18\x06 \x01(\x0c\x12\x12\n\nsourceType\x18\x07 \x01(\t\x12\x10\n\x08sourceId\x18\x08 \x01(\t\x12\x11\n\tsourceUrl\x18\t \x01(\t\x12\x19\n\x11\x63ontainsAutoReply\x18\n \x01(\x08\x12\x1d\n\x15renderLargerThumbnail\x18\x0b \x01(\x08\x12\x19\n\x11showAdAttribution\x18\x0c \x01(\x08\x12\x10\n\x08\x63twaClid\x18\r \x01(\t\x12\x0b\n\x03ref\x18\x0e \x01(\t\x12\x1b\n\x13\x63lickToWhatsappCall\x18\x0f \x01(\x08\x12!\n\x19\x61\x64\x43ontextPreviewDismissed\x18\x10 \x01(\x08\x12\x11\n\tsourceApp\x18\x11 \x01(\t\x12%\n\x1d\x61utomatedGreetingMessageShown\x18\x12 \x01(\x08\x12\x1b\n\x13greetingMessageBody\x18\x13 \x01(\t\x12\x12\n\nctaPayload\x18\x14 \x01(\t\x12\x14\n\x0c\x64isableNudge\x18\x15 \x01(\x08\x12\x18\n\x10originalImageUrl\x18\x16 \x01(\t\x12\'\n\x1f\x61utomatedGreetingMessageCtaType\x18\x17 \x01(\t\x12\x14\n\x0cwtwaAdFormat\x18\x18 \x01(\x08\x12@\n\x06\x61\x64Type\x18\x19 \x01(\x0e\x32\x30.whatsapp.ContextInfo.ExternalAdReplyInfo.AdType\x12\x16\n\x0ewtwaWebsiteUrl\x18\x1a \x01(\t\x12\x14\n\x0c\x61\x64PreviewUrl\x18\x1b \x01(\t\x12\"\n\x1a\x63ontainsCtwaFlowsAutoReply\x18\x1c \x01(\x08\x12\x1c\n\x14\x61gmThumbnailStrategy\x18\x1d \x01(\x05\x12\x18\n\x10\x61gmTitleStrategy\x18\x1e \x01(\x05\x12\x1b\n\x13\x61gmSubtitleStrategy\x18\x1f \x01(\x05\x12$\n\x1c\x61gmHeaderInteractionStrategy\x18 \x01(\x05\"\x1c\n\x06\x41\x64Type\x12\x08\n\x04\x43TWA\x10\x00\x12\x08\n\x04\x43\x41WC\x10\x01\"+\n\tMediaType\x12\x08\n\x04NONE\x10\x00\x12\t\n\x05IMAGE\x10\x01\x12\t\n\x05VIDEO\x10\x02\x1a\x9a\x01\n\x14\x46\x65\x61tureEligibilities\x12\x19\n\x11\x63\x61nnotBeReactedTo\x18\x01 \x01(\x08\x12\x16\n\x0e\x63\x61nnotBeRanked\x18\x02 \x01(\x08\x12\x1a\n\x12\x63\x61nRequestFeedback\x18\x03 \x01(\x08\x12\x15\n\rcanBeReshared\x18\x04 \x01(\x08\x12\x1c\n\x14\x63\x61nReceiveMultiReact\x18\x05 \x01(\x08\x1a\xaa\x02\n\x1e\x46orwardedNewsletterMessageInfo\x12\x15\n\rnewsletterJid\x18\x01 \x01(\t\x12\x17\n\x0fserverMessageId\x18\x02 \x01(\x05\x12\x16\n\x0enewsletterName\x18\x03 \x01(\t\x12U\n\x0b\x63ontentType\x18\x04 \x01(\x0e\x32@.whatsapp.ContextInfo.ForwardedNewsletterMessageInfo.ContentType\x12\x19\n\x11\x61\x63\x63\x65ssibilityText\x18\x05 \x01(\t\x12\x13\n\x0bprofileName\x18\x06 \x01(\t\"9\n\x0b\x43ontentType\x12\n\n\x06UPDATE\x10\x01\x12\x0f\n\x0bUPDATE_CARD\x10\x02\x12\r\n\tLINK_CARD\x10\x03\x1a(\n\x18PartiallySelectedContent\x12\x0c\n\x04text\x18\x01 \x01(\t\x1a\x8c\x01\n\x1aQuestionReplyQuotedMessage\x12\x18\n\x10serverQuestionId\x18\x01 \x01(\x05\x12)\n\x0equotedQuestion\x18\x02 \x01(\x0b\x32\x11.whatsapp.Message\x12)\n\x0equotedResponse\x18\x03 \x01(\x0b\x32\x11.whatsapp.Message\x1a\xbe\x01\n\x16StatusAudienceMetadata\x12O\n\x0c\x61udienceType\x18\x01 \x01(\x0e\x32\x39.whatsapp.ContextInfo.StatusAudienceMetadata.AudienceType\x12\x10\n\x08listName\x18\x02 \x01(\t\x12\x11\n\tlistEmoji\x18\x03 \x01(\t\".\n\x0c\x41udienceType\x12\x0b\n\x07UNKNOWN\x10\x00\x12\x11\n\rCLOSE_FRIENDS\x10\x01\x1a\x31\n\x07UTMInfo\x12\x11\n\tutmSource\x18\x01 \x01(\t\x12\x13\n\x0butmCampaign\x18\x02 \x01(\t\"m\n\x0e\x43rossAppSource\x12\x1c\n\x18\x43ROSS_APP_SOURCE_UNKNOWN\x10\x00\x12\x1e\n\x1a\x43ROSS_APP_SOURCE_INSTAGRAM\x10\x01\x12\x1d\n\x19\x43ROSS_APP_SOURCE_FACEBOOK\x10\x02\"V\n\rForwardOrigin\x12\x0b\n\x07UNKNOWN\x10\x00\x12\x08\n\x04\x43HAT\x10\x01\x12\n\n\x06STATUS\x10\x02\x12\x0c\n\x08\x43HANNELS\x10\x03\x12\x0b\n\x07META_AI\x10\x04\x12\x07\n\x03UGC\x10\x05\"\xd7\x01\n\x0fPairedMediaType\x12\x14\n\x10NOT_PAIRED_MEDIA\x10\x00\x12\x13\n\x0fSD_VIDEO_PARENT\x10\x01\x12\x12\n\x0eHD_VIDEO_CHILD\x10\x02\x12\x13\n\x0fSD_IMAGE_PARENT\x10\x03\x12\x12\n\x0eHD_IMAGE_CHILD\x10\x04\x12\x17\n\x13MOTION_PHOTO_PARENT\x10\x05\x12\x16\n\x12MOTION_PHOTO_CHILD\x10\x06\x12\x15\n\x11HEVC_VIDEO_PARENT\x10\x07\x12\x14\n\x10HEVC_VIDEO_CHILD\x10\x08\"$\n\nQuotedType\x12\x0c\n\x08\x45XPLICIT\x10\x00\x12\x08\n\x04\x41UTO\x10\x01\"\x92\x01\n\x15StatusAttributionType\x12\x08\n\x04NONE\x10\x00\x12\x19\n\x15RESHARED_FROM_MENTION\x10\x01\x12\x16\n\x12RESHARED_FROM_POST\x10\x02\x12!\n\x1dRESHARED_FROM_POST_MANY_TIMES\x10\x03\x12\x19\n\x15\x46ORWARDED_FROM_STATUS\x10\x04\"\\\n\x10StatusSourceType\x12\t\n\x05IMAGE\x10\x00\x12\t\n\x05VIDEO\x10\x01\x12\x07\n\x03GIF\x10\x02\x12\t\n\x05\x41UDIO\x10\x03\x12\x08\n\x04TEXT\x10\x04\x12\x14\n\x10MUSIC_STANDALONE\x10\x05\"\xe2\x10\n\x0c\x43onversation\x12\n\n\x02id\x18\x01 \x02(\t\x12*\n\x08messages\x18\x02 \x03(\x0b\x32\x18.whatsapp.HistorySyncMsg\x12\x0e\n\x06newJid\x18\x03 \x01(\t\x12\x0e\n\x06oldJid\x18\x04 \x01(\t\x12\x18\n\x10lastMsgTimestamp\x18\x05 \x01(\x04\x12\x13\n\x0bunreadCount\x18\x06 \x01(\r\x12\x10\n\x08readOnly\x18\x07 \x01(\x08\x12\x1c\n\x14\x65ndOfHistoryTransfer\x18\x08 \x01(\x08\x12\x1b\n\x13\x65phemeralExpiration\x18\t \x01(\r\x12!\n\x19\x65phemeralSettingTimestamp\x18\n \x01(\x03\x12Q\n\x18\x65ndOfHistoryTransferType\x18\x0b \x01(\x0e\x32/.whatsapp.Conversation.EndOfHistoryTransferType\x12\x1d\n\x15\x63onversationTimestamp\x18\x0c \x01(\x04\x12\x0c\n\x04name\x18\r \x01(\t\x12\r\n\x05pHash\x18\x0e \x01(\t\x12\x0f\n\x07notSpam\x18\x0f \x01(\x08\x12\x10\n\x08\x61rchived\x18\x10 \x01(\x08\x12\x34\n\x10\x64isappearingMode\x18\x11 \x01(\x0b\x32\x1a.whatsapp.DisappearingMode\x12\x1a\n\x12unreadMentionCount\x18\x12 \x01(\r\x12\x16\n\x0emarkedAsUnread\x18\x13 \x01(\x08\x12/\n\x0bparticipant\x18\x14 \x03(\x0b\x32\x1a.whatsapp.GroupParticipant\x12\x0f\n\x07tcToken\x18\x15 \x01(\x0c\x12\x18\n\x10tcTokenTimestamp\x18\x16 \x01(\x04\x12!\n\x19\x63ontactPrimaryIdentityKey\x18\x17 \x01(\x0c\x12\x0e\n\x06pinned\x18\x18 \x01(\r\x12\x13\n\x0bmuteEndTime\x18\x19 \x01(\x04\x12.\n\twallpaper\x18\x1a \x01(\x0b\x32\x1b.whatsapp.WallpaperSettings\x12\x32\n\x0fmediaVisibility\x18\x1b \x01(\x0e\x32\x19.whatsapp.MediaVisibility\x12\x1e\n\x16tcTokenSenderTimestamp\x18\x1c \x01(\x04\x12\x11\n\tsuspended\x18\x1d \x01(\x08\x12\x12\n\nterminated\x18\x1e \x01(\x08\x12\x11\n\tcreatedAt\x18\x1f \x01(\x04\x12\x11\n\tcreatedBy\x18 \x01(\t\x12\x13\n\x0b\x64\x65scription\x18! \x01(\t\x12\x0f\n\x07support\x18\" \x01(\x08\x12\x15\n\risParentGroup\x18# \x01(\x08\x12\x15\n\rparentGroupId\x18% \x01(\t\x12\x19\n\x11isDefaultSubgroup\x18$ \x01(\x08\x12\x13\n\x0b\x64isplayName\x18& \x01(\t\x12\r\n\x05pnJid\x18\' \x01(\t\x12\x12\n\nshareOwnPn\x18( \x01(\x08\x12\x1d\n\x15pnhDuplicateLidThread\x18) \x01(\x08\x12\x0e\n\x06lidJid\x18* \x01(\t\x12\x10\n\x08username\x18+ \x01(\t\x12\x15\n\rlidOriginType\x18, \x01(\t\x12\x15\n\rcommentsCount\x18- \x01(\r\x12\x0e\n\x06locked\x18. \x01(\x08\x12=\n\x15systemMessageToInsert\x18/ \x01(\x0e\x32\x1e.whatsapp.PrivacySystemMessage\x12\x18\n\x10\x63\x61piCreatedGroup\x18\x30 \x01(\x08\x12\x12\n\naccountLid\x18\x31 \x01(\t\x12\x14\n\x0climitSharing\x18\x32 \x01(\x08\x12$\n\x1climitSharingSettingTimestamp\x18\x33 \x01(\x03\x12?\n\x13limitSharingTrigger\x18\x34 \x01(\x0e\x32\".whatsapp.LimitSharing.TriggerType\x12!\n\x19limitSharingInitiatedByMe\x18\x35 \x01(\x08\x12\x1c\n\x14maibaAiThreadEnabled\x18\x36 \x01(\x08\x12 \n\x18isMarketingMessageThread\x18\x37 \x01(\x08\x12\x1a\n\x12isSenderNewAccount\x18\x38 \x01(\x08\x12\x19\n\x11\x61\x66terReadDuration\x18\x39 \x01(\r\x12\x1a\n\x12isSenderSuspicious\x18: \x01(\x08\x12>\n\x0c\x61ppealStatus\x18; \x01(\x0e\x32(.whatsapp.Conversation.GroupAppealStatus\x12\x18\n\x10\x61ppealUpdateTime\x18< \x01(\x04\x12\"\n\x1a\x61uthAgentParentCompanyName\x18= \x01(\t\x12\x1f\n\x17\x61uthAgentObaPhoneNumber\x18> \x01(\t\"\x80\x02\n\x18\x45ndOfHistoryTransferType\x12\x30\n,COMPLETE_BUT_MORE_MESSAGES_REMAIN_ON_PRIMARY\x10\x00\x12\x32\n.COMPLETE_AND_NO_MORE_MESSAGE_REMAIN_ON_PRIMARY\x10\x01\x12:\n6COMPLETE_ON_DEMAND_SYNC_BUT_MORE_MSG_REMAIN_ON_PRIMARY\x10\x02\x12\x42\n>COMPLETE_ON_DEMAND_SYNC_WITH_MORE_MSG_ON_PRIMARY_BUT_NO_ACCESS\x10\x03\"b\n\x11GroupAppealStatus\x12\r\n\tNO_APPEAL\x10\x00\x12\x14\n\x10\x41PPEAL_IN_REVIEW\x10\x01\x12\x13\n\x0f\x41PPEAL_APPROVED\x10\x02\x12\x13\n\x0f\x41PPEAL_REJECTED\x10\x03\"\xe0\x07\n\x12\x44\x65viceCapabilities\x12O\n\x14\x63hatLockSupportLevel\x18\x01 \x01(\x0e\x32\x31.whatsapp.DeviceCapabilities.ChatLockSupportLevel\x12?\n\x0clidMigration\x18\x02 \x01(\x0b\x32).whatsapp.DeviceCapabilities.LIDMigration\x12I\n\x11\x62usinessBroadcast\x18\x03 \x01(\x0b\x32..whatsapp.DeviceCapabilities.BusinessBroadcast\x12\x41\n\ruserHasAvatar\x18\x04 \x01(\x0b\x32*.whatsapp.DeviceCapabilities.UserHasAvatar\x12]\n\x1bmemberNameTagPrimarySupport\x18\x05 \x01(\x0e\x32\x38.whatsapp.DeviceCapabilities.MemberNameTagPrimarySupport\x12\x37\n\x08\x61iThread\x18\x06 \x01(\x0b\x32%.whatsapp.DeviceCapabilities.AiThread\x1a\x83\x01\n\x08\x41iThread\x12H\n\x0csupportLevel\x18\x01 \x01(\x0e\x32\x32.whatsapp.DeviceCapabilities.AiThread.SupportLevel\"-\n\x0cSupportLevel\x12\x08\n\x04NONE\x10\x00\x12\t\n\x05INFRA\x10\x01\x12\x08\n\x04\x46ULL\x10\x02\x1a\xa1\x01\n\x11\x42usinessBroadcast\x12\x19\n\x11importListEnabled\x18\x01 \x01(\x08\x12\x1f\n\x17\x63ompanionSupportEnabled\x18\x02 \x01(\x08\x12\x1b\n\x13\x63\x61mpaignSyncEnabled\x18\x03 \x01(\x08\x12\x1b\n\x13insightsSyncEnabled\x18\x04 \x01(\x08\x12\x16\n\x0erecipientLimit\x18\x05 \x01(\x05\x1a\x30\n\x0cLIDMigration\x12 \n\x18\x63hatDbMigrationTimestamp\x18\x01 \x01(\x04\x1a&\n\rUserHasAvatar\x12\x15\n\ruserHasAvatar\x18\x01 \x01(\x08\"7\n\x14\x43hatLockSupportLevel\x12\x08\n\x04NONE\x10\x00\x12\x0b\n\x07MINIMAL\x10\x01\x12\x08\n\x04\x46ULL\x10\x02\"U\n\x1bMemberNameTagPrimarySupport\x12\x0c\n\x08\x44ISABLED\x10\x00\x12\x14\n\x10RECEIVER_ENABLED\x10\x01\x12\x12\n\x0eSENDER_ENABLED\x10\x02\"E\n\x1c\x44\x65viceConsistencyCodeMessage\x12\x12\n\ngeneration\x18\x01 \x01(\r\x12\x11\n\tsignature\x18\x02 \x01(\x0c\"\xab\x02\n\x12\x44\x65viceListMetadata\x12\x15\n\rsenderKeyHash\x18\x01 \x01(\x0c\x12\x17\n\x0fsenderTimestamp\x18\x02 \x01(\x04\x12\x1c\n\x10senderKeyIndexes\x18\x03 \x03(\rB\x02\x10\x01\x12\x36\n\x11senderAccountType\x18\x04 \x01(\x0e\x32\x1b.whatsapp.ADVEncryptionType\x12\x38\n\x13receiverAccountType\x18\x05 \x01(\x0e\x32\x1b.whatsapp.ADVEncryptionType\x12\x18\n\x10recipientKeyHash\x18\x08 \x01(\x0c\x12\x1a\n\x12recipientTimestamp\x18\t \x01(\x04\x12\x1f\n\x13recipientKeyIndexes\x18\n \x03(\rB\x02\x10\x01\"\xd1\x0b\n\x0b\x44\x65viceProps\x12\n\n\x02os\x18\x01 \x01(\t\x12\x31\n\x07version\x18\x02 \x01(\x0b\x32 .whatsapp.DeviceProps.AppVersion\x12\x38\n\x0cplatformType\x18\x03 \x01(\x0e\x32\".whatsapp.DeviceProps.PlatformType\x12\x17\n\x0frequireFullSync\x18\x04 \x01(\x08\x12\x42\n\x11historySyncConfig\x18\x05 \x01(\x0b\x32\'.whatsapp.DeviceProps.HistorySyncConfig\x1ag\n\nAppVersion\x12\x0f\n\x07primary\x18\x01 \x01(\r\x12\x11\n\tsecondary\x18\x02 \x01(\r\x12\x10\n\x08tertiary\x18\x03 \x01(\r\x12\x12\n\nquaternary\x18\x04 \x01(\r\x12\x0f\n\x07quinary\x18\x05 \x01(\r\x1a\xa0\x06\n\x11HistorySyncConfig\x12\x19\n\x11\x66ullSyncDaysLimit\x18\x01 \x01(\r\x12\x1b\n\x13\x66ullSyncSizeMbLimit\x18\x02 \x01(\r\x12\x16\n\x0estorageQuotaMb\x18\x03 \x01(\r\x12%\n\x1dinlineInitialPayloadInE2EeMsg\x18\x04 \x01(\x08\x12\x1b\n\x13recentSyncDaysLimit\x18\x05 \x01(\r\x12\x1d\n\x15supportCallLogHistory\x18\x06 \x01(\x08\x12&\n\x1esupportBotUserAgentChatHistory\x18\x07 \x01(\x08\x12#\n\x1bsupportCagReactionsAndPolls\x18\x08 \x01(\x08\x12\x1b\n\x13supportBizHostedMsg\x18\t \x01(\x08\x12\x30\n(supportRecentSyncChunkMessageCountTuning\x18\n \x01(\x08\x12\x1d\n\x15supportHostedGroupMsg\x18\x0b \x01(\x08\x12!\n\x19supportFbidBotChatHistory\x18\x0c \x01(\x08\x12(\n supportAddOnHistorySyncMigration\x18\r \x01(\x08\x12!\n\x19supportMessageAssociation\x18\x0e \x01(\x08\x12\x1b\n\x13supportGroupHistory\x18\x0f \x01(\x08\x12\x15\n\ronDemandReady\x18\x10 \x01(\x08\x12\x18\n\x10supportGuestChat\x18\x11 \x01(\x08\x12\x1d\n\x15\x63ompleteOnDemandReady\x18\x12 \x01(\x08\x12\x1e\n\x16thumbnailSyncDaysLimit\x18\x13 \x01(\r\x12%\n\x1dinitialSyncMaxMessagesPerChat\x18\x14 \x01(\r\x12\x1b\n\x13supportManusHistory\x18\x15 \x01(\x08\x12\x1b\n\x13supportHatchHistory\x18\x16 \x01(\x08\x12 \n\x18supportedBotChannelFbids\x18\x17 \x03(\t\x12\x1d\n\x15supportInlineContacts\x18\x18 \x01(\x08\"\xdf\x02\n\x0cPlatformType\x12\x0b\n\x07UNKNOWN\x10\x00\x12\n\n\x06\x43HROME\x10\x01\x12\x0b\n\x07\x46IREFOX\x10\x02\x12\x06\n\x02IE\x10\x03\x12\t\n\x05OPERA\x10\x04\x12\n\n\x06SAFARI\x10\x05\x12\x08\n\x04\x45\x44GE\x10\x06\x12\x0b\n\x07\x44\x45SKTOP\x10\x07\x12\x08\n\x04IPAD\x10\x08\x12\x12\n\x0e\x41NDROID_TABLET\x10\t\x12\t\n\x05OHANA\x10\n\x12\t\n\x05\x41LOHA\x10\x0b\x12\x0c\n\x08\x43\x41TALINA\x10\x0c\x12\n\n\x06TCL_TV\x10\r\x12\r\n\tIOS_PHONE\x10\x0e\x12\x10\n\x0cIOS_CATALYST\x10\x0f\x12\x11\n\rANDROID_PHONE\x10\x10\x12\x15\n\x11\x41NDROID_AMBIGUOUS\x10\x11\x12\x0b\n\x07WEAR_OS\x10\x12\x12\x0c\n\x08\x41R_WRIST\x10\x13\x12\r\n\tAR_DEVICE\x10\x14\x12\x07\n\x03UWP\x10\x15\x12\x06\n\x02VR\x10\x16\x12\r\n\tCLOUD_API\x10\x17\x12\x10\n\x0cSMARTGLASSES\x10\x18\"\x9f\x03\n\x10\x44isappearingMode\x12\x37\n\tinitiator\x18\x01 \x01(\x0e\x32$.whatsapp.DisappearingMode.Initiator\x12\x33\n\x07trigger\x18\x02 \x01(\x0e\x32\".whatsapp.DisappearingMode.Trigger\x12\x1a\n\x12initiatorDeviceJid\x18\x03 \x01(\t\x12\x15\n\rinitiatedByMe\x18\x04 \x01(\x08\"i\n\tInitiator\x12\x13\n\x0f\x43HANGED_IN_CHAT\x10\x00\x12\x13\n\x0fINITIATED_BY_ME\x10\x01\x12\x16\n\x12INITIATED_BY_OTHER\x10\x02\x12\x1a\n\x16\x42IZ_UPGRADE_FB_HOSTING\x10\x03\"\x7f\n\x07Trigger\x12\x0b\n\x07UNKNOWN\x10\x00\x12\x10\n\x0c\x43HAT_SETTING\x10\x01\x12\x13\n\x0f\x41\x43\x43OUNT_SETTING\x10\x02\x12\x0f\n\x0b\x42ULK_CHANGE\x10\x03\x12\x1b\n\x17\x42IZ_SUPPORTS_FB_HOSTING\x10\x04\x12\x12\n\x0eUNKNOWN_GROUPS\x10\x05\"\x84\x01\n\x0f\x45mbeddedContent\x12\x34\n\x0f\x65mbeddedMessage\x18\x01 \x01(\x0b\x32\x19.whatsapp.EmbeddedMessageH\x00\x12\x30\n\rembeddedMusic\x18\x02 \x01(\x0b\x32\x17.whatsapp.EmbeddedMusicH\x00\x42\t\n\x07\x63ontent\"G\n\x0f\x45mbeddedMessage\x12\x10\n\x08stanzaId\x18\x01 \x01(\t\x12\"\n\x07message\x18\x02 \x01(\x0b\x32\x11.whatsapp.Message\"\xeb\x02\n\rEmbeddedMusic\x12\x1b\n\x13musicContentMediaId\x18\x01 \x01(\t\x12\x0e\n\x06songId\x18\x02 \x01(\t\x12\x0e\n\x06\x61uthor\x18\x03 \x01(\t\x12\r\n\x05title\x18\x04 \x01(\t\x12\x19\n\x11\x61rtworkDirectPath\x18\x05 \x01(\t\x12\x15\n\rartworkSha256\x18\x06 \x01(\x0c\x12\x18\n\x10\x61rtworkEncSha256\x18\x07 \x01(\x0c\x12\x19\n\x11\x61rtistAttribution\x18\x08 \x01(\t\x12\x18\n\x10\x63ountryBlocklist\x18\t \x01(\x0c\x12\x12\n\nisExplicit\x18\n \x01(\x08\x12\x17\n\x0f\x61rtworkMediaKey\x18\x0b \x01(\x0c\x12\x1e\n\x16musicSongStartTimeInMs\x18\x0c \x01(\x03\x12#\n\x1b\x64\x65rivedContentStartTimeInMs\x18\r \x01(\x03\x12\x1b\n\x13overlapDurationInMs\x18\x0e \x01(\x03\"?\n\x17\x45ncryptedPairingRequest\x12\x18\n\x10\x65ncryptedPayload\x18\x01 \x01(\x0c\x12\n\n\x02iv\x18\x02 \x01(\x0c\"7\n\x10\x45phemeralSetting\x12\x10\n\x08\x64uration\x18\x01 \x01(\x0f\x12\x11\n\ttimestamp\x18\x02 \x01(\x10\"*\n\x17\x45ventAdditionalMetadata\x12\x0f\n\x07isStale\x18\x01 \x01(\x08\"\xb1\x01\n\rEventResponse\x12\x35\n\x17\x65ventResponseMessageKey\x18\x01 \x01(\x0b\x32\x14.whatsapp.MessageKey\x12\x13\n\x0btimestampMs\x18\x02 \x01(\x03\x12\x44\n\x14\x65ventResponseMessage\x18\x03 \x01(\x0b\x32&.whatsapp.Message.EventResponseMessage\x12\x0e\n\x06unread\x18\x04 \x01(\x08\"&\n\x08\x45xitCode\x12\x0c\n\x04\x63ode\x18\x01 \x01(\x04\x12\x0c\n\x04text\x18\x02 \x01(\t\"\x8f\x01\n\x15\x45xternalBlobReference\x12\x10\n\x08mediaKey\x18\x01 \x01(\x0c\x12\x12\n\ndirectPath\x18\x02 \x01(\t\x12\x0e\n\x06handle\x18\x03 \x01(\t\x12\x15\n\rfileSizeBytes\x18\x04 \x01(\x04\x12\x12\n\nfileSha256\x18\x05 \x01(\x0c\x12\x15\n\rfileEncSha256\x18\x06 \x01(\x0c\"\xd6\x01\n\x05\x46ield\x12\x12\n\nminVersion\x18\x01 \x01(\r\x12\x12\n\nmaxVersion\x18\x02 \x01(\r\x12\x1f\n\x17notReportableMinVersion\x18\x03 \x01(\r\x12\x11\n\tisMessage\x18\x04 \x01(\x08\x12/\n\x08subfield\x18\x05 \x03(\x0b\x32\x1d.whatsapp.Field.SubfieldEntry\x1a@\n\rSubfieldEntry\x12\x0b\n\x03key\x18\x01 \x01(\r\x12\x1e\n\x05value\x18\x02 \x01(\x0b\x32\x0f.whatsapp.Field:\x02\x38\x01\"\xe7\x01\n\x0f\x46ingerprintData\x12\x11\n\tpublicKey\x18\x01 \x01(\x0c\x12\x14\n\x0cpnIdentifier\x18\x02 \x01(\x0c\x12\x15\n\rlidIdentifier\x18\x03 \x01(\x0c\x12\x1a\n\x12usernameIdentifier\x18\x04 \x01(\x0c\x12:\n\x0bhostedState\x18\x05 \x01(\x0e\x32%.whatsapp.FingerprintData.HostedState\x12\x17\n\x0fhashedPublicKey\x18\x06 \x01(\x0c\"#\n\x0bHostedState\x12\x08\n\x04\x45\x32\x45\x45\x10\x00\x12\n\n\x06HOSTED\x10\x01\"Q\n\x19\x46orwardedAIBotMessageInfo\x12\x0f\n\x07\x62otName\x18\x01 \x01(\t\x12\x0e\n\x06\x62otJid\x18\x02 \x01(\t\x12\x13\n\x0b\x63reatorName\x18\x03 \x01(\t\"\xa5\x07\n\x0eGlobalSettings\x12\x38\n\x13lightThemeWallpaper\x18\x01 \x01(\x0b\x32\x1b.whatsapp.WallpaperSettings\x12\x32\n\x0fmediaVisibility\x18\x02 \x01(\x0e\x32\x19.whatsapp.MediaVisibility\x12\x37\n\x12\x64\x61rkThemeWallpaper\x18\x03 \x01(\x0b\x32\x1b.whatsapp.WallpaperSettings\x12\x38\n\x10\x61utoDownloadWiFi\x18\x04 \x01(\x0b\x32\x1e.whatsapp.AutoDownloadSettings\x12<\n\x14\x61utoDownloadCellular\x18\x05 \x01(\x0b\x32\x1e.whatsapp.AutoDownloadSettings\x12;\n\x13\x61utoDownloadRoaming\x18\x06 \x01(\x0b\x32\x1e.whatsapp.AutoDownloadSettings\x12*\n\"showIndividualNotificationsPreview\x18\x07 \x01(\x08\x12%\n\x1dshowGroupNotificationsPreview\x18\x08 \x01(\x08\x12 \n\x18\x64isappearingModeDuration\x18\t \x01(\x05\x12!\n\x19\x64isappearingModeTimestamp\x18\n \x01(\x03\x12\x38\n\x12\x61vatarUserSettings\x18\x0b \x01(\x0b\x32\x1c.whatsapp.AvatarUserSettings\x12\x10\n\x08\x66ontSize\x18\x0c \x01(\x05\x12\x1d\n\x15securityNotifications\x18\r \x01(\x08\x12\x1a\n\x12\x61utoUnarchiveChats\x18\x0e \x01(\x08\x12\x18\n\x10videoQualityMode\x18\x0f \x01(\x05\x12\x18\n\x10photoQualityMode\x18\x10 \x01(\x05\x12\x46\n\x1eindividualNotificationSettings\x18\x11 \x01(\x0b\x32\x1e.whatsapp.NotificationSettings\x12\x41\n\x19groupNotificationSettings\x18\x12 \x01(\x0b\x32\x1e.whatsapp.NotificationSettings\x12\x34\n\x10\x63hatLockSettings\x18\x13 \x01(\x0b\x32\x1a.whatsapp.ChatLockSettings\x12#\n\x1b\x63hatDbLidMigrationTimestamp\x18\x14 \x01(\x03\"\xfd\x01\n\x0cGroupHistory\x12*\n\x08messages\x18\x01 \x03(\x0b\x32\x18.whatsapp.WebMessageInfo\x12Q\n\x1funcountedAssociatedMessageLists\x18\x02 \x03(\x0b\x32(.whatsapp.UnCountedAssociatedMessageList\x12\x31\n\x0f\x63ommentMessages\x18\x03 \x03(\x0b\x32\x18.whatsapp.WebMessageInfo\x12;\n\x19outOfWindowPinnedMessages\x18\x04 \x03(\x0b\x32\x18.whatsapp.WebMessageInfo\"\xb6\x02\n\x16GroupHistoryBundleInfo\x12N\n\x1e\x64\x65precatedMessageHistoryBundle\x18\x01 \x01(\x0b\x32&.whatsapp.Message.MessageHistoryBundle\x12\x43\n\x0cprocessState\x18\x02 \x01(\x0e\x32-.whatsapp.GroupHistoryBundleInfo.ProcessState\"\x86\x01\n\x0cProcessState\x12\x10\n\x0cNOT_INJECTED\x10\x00\x12\x0c\n\x08INJECTED\x10\x01\x12\x14\n\x10INJECTED_PARTIAL\x10\x02\x12\x14\n\x10INJECTION_FAILED\x10\x03\x12\x1d\n\x19INJECTION_FAILED_NO_RETRY\x10\x04\x12\x0b\n\x07\x44\x45\x44UPED\x10\x05\"y\n!GroupHistoryIndividualMessageInfo\x12.\n\x10\x62undleMessageKey\x18\x01 \x01(\x0b\x32\x14.whatsapp.MessageKey\x12$\n\x1c\x65\x64itedAfterReceivedAsHistory\x18\x02 \x01(\x08\"\xcd\x02\n\x1cGroupHistoryWithMessageBytes\x12:\n\x08messages\x18\x01 \x03(\x0b\x32(.whatsapp.WebMessageInfoWithMessageBytes\x12\x61\n\x1funcountedAssociatedMessageLists\x18\x02 \x03(\x0b\x32\x38.whatsapp.UnCountedAssociatedMessageListWithMessageBytes\x12\x41\n\x0f\x63ommentMessages\x18\x03 \x03(\x0b\x32(.whatsapp.WebMessageInfoWithMessageBytes\x12K\n\x19outOfWindowPinnedMessages\x18\x04 \x03(\x0b\x32(.whatsapp.WebMessageInfoWithMessageBytes\"6\n\x0cGroupMention\x12\x10\n\x08groupJid\x18\x01 \x01(\t\x12\x14\n\x0cgroupSubject\x18\x02 \x01(\t\"\xae\x01\n\x10GroupParticipant\x12\x0f\n\x07userJid\x18\x01 \x02(\t\x12-\n\x04rank\x18\x02 \x01(\x0e\x32\x1f.whatsapp.GroupParticipant.Rank\x12*\n\x0bmemberLabel\x18\x03 \x01(\x0b\x32\x15.whatsapp.MemberLabel\".\n\x04Rank\x12\x0b\n\x07REGULAR\x10\x00\x12\t\n\x05\x41\x44MIN\x10\x01\x12\x0e\n\nSUPERADMIN\x10\x02\"C\n\x11GroupRootKeyShare\x12.\n\x04keys\x18\x01 \x03(\x0b\x32 .whatsapp.GroupRootKeyShareEntry\"t\n\x16GroupRootKeyShareEntry\x12\x14\n\x0cgroupRootKey\x18\x01 \x01(\x0c\x12\r\n\x05keyId\x18\x02 \x01(\t\x12\x19\n\x11\x65xpiryTimestampMs\x18\x03 \x01(\x03\x12\x1a\n\x12\x63reatedTimestampMs\x18\x04 \x01(\x03\"\x8e\x07\n\x10HandshakeMessage\x12;\n\x0b\x63lientHello\x18\x02 \x01(\x0b\x32&.whatsapp.HandshakeMessage.ClientHello\x12;\n\x0bserverHello\x18\x03 \x01(\x0b\x32&.whatsapp.HandshakeMessage.ServerHello\x12=\n\x0c\x63lientFinish\x18\x04 \x01(\x0b\x32\'.whatsapp.HandshakeMessage.ClientFinish\x1ay\n\x0c\x43lientFinish\x12\x0e\n\x06static\x18\x01 \x01(\x0c\x12\x0f\n\x07payload\x18\x02 \x01(\x0c\x12\x1a\n\x12\x65xtendedCiphertext\x18\x03 \x01(\x0c\x12\x13\n\x0bpaddedBytes\x18\x04 \x01(\x0c\x12\x17\n\x0fsimulateXxkemFs\x18\x05 \x01(\x08\x1a\x9b\x02\n\x0b\x43lientHello\x12\x11\n\tephemeral\x18\x01 \x01(\x0c\x12\x0e\n\x06static\x18\x02 \x01(\x0c\x12\x0f\n\x07payload\x18\x03 \x01(\x0c\x12\x13\n\x0buseExtended\x18\x04 \x01(\x08\x12\x1a\n\x12\x65xtendedCiphertext\x18\x05 \x01(\x0c\x12\x13\n\x0bpaddedBytes\x18\x06 \x01(\x0c\x12\"\n\x1asendServerHelloPaddedBytes\x18\x07 \x01(\x08\x12\x17\n\x0fsimulateXxkemFs\x18\x08 \x01(\x08\x12:\n\x06pqMode\x18\t \x01(\x0e\x32*.whatsapp.HandshakeMessage.HandshakePqMode\x12\x19\n\x11\x65xtendedEphemeral\x18\n \x01(\x0c\x1a\x8b\x01\n\x0bServerHello\x12\x11\n\tephemeral\x18\x01 \x01(\x0c\x12\x0e\n\x06static\x18\x02 \x01(\x0c\x12\x0f\n\x07payload\x18\x03 \x01(\x0c\x12\x16\n\x0e\x65xtendedStatic\x18\x04 \x01(\x0c\x12\x14\n\x0cpaddingBytes\x18\x05 \x01(\x0c\x12\x1a\n\x12\x65xtendedCiphertext\x18\x06 \x01(\x0c\"\x99\x01\n\x0fHandshakePqMode\x12\x1d\n\x19HANDSHAKE_PQ_MODE_UNKNOWN\x10\x00\x12\t\n\x05XXKEM\x10\x01\x12\x0c\n\x08XXKEM_FS\x10\x02\x12\x10\n\x0cWA_CLASSICAL\x10\x03\x12\t\n\x05WA_PQ\x10\x04\x12\t\n\x05IKKEM\x10\x05\x12\x0c\n\x08IKKEM_FS\x10\x06\x12\x0b\n\x07XXKEM_2\x10\x07\x12\x0b\n\x07IKKEM_2\x10\x08\"I\n\x11HatchMetadataSync\x12\x0c\n\x04\x64\x61ta\x18\x01 \x01(\x0c\x12\x13\n\x0btimestampMs\x18\x02 \x01(\x03\x12\x11\n\trequestId\x18\x03 \x01(\t\"\x9e\x08\n\x0bHistorySync\x12\x37\n\x08syncType\x18\x01 \x02(\x0e\x32%.whatsapp.HistorySync.HistorySyncType\x12-\n\rconversations\x18\x02 \x03(\x0b\x32\x16.whatsapp.Conversation\x12\x32\n\x10statusV3Messages\x18\x03 \x03(\x0b\x32\x18.whatsapp.WebMessageInfo\x12\x12\n\nchunkOrder\x18\x05 \x01(\r\x12\x10\n\x08progress\x18\x06 \x01(\r\x12%\n\tpushnames\x18\x07 \x03(\x0b\x32\x12.whatsapp.Pushname\x12\x30\n\x0eglobalSettings\x18\x08 \x01(\x0b\x32\x18.whatsapp.GlobalSettings\x12\x1a\n\x12threadIdUserSecret\x18\t \x01(\x0c\x12\x1f\n\x17threadDsTimeframeOffset\x18\n \x01(\r\x12\x31\n\x0erecentStickers\x18\x0b \x03(\x0b\x32\x19.whatsapp.StickerMetadata\x12\x34\n\x10pastParticipants\x18\x0c \x03(\x0b\x32\x1a.whatsapp.PastParticipants\x12/\n\x0e\x63\x61llLogRecords\x18\r \x03(\x0b\x32\x17.whatsapp.CallLogRecord\x12\x41\n\x0f\x61iWaitListState\x18\x0e \x01(\x0e\x32(.whatsapp.HistorySync.BotAIWaitListState\x12\x43\n\x18phoneNumberToLidMappings\x18\x0f \x03(\x0b\x32!.whatsapp.PhoneNumberToLIDMapping\x12\x1a\n\x12\x63ompanionMetaNonce\x18\x10 \x01(\t\x12,\n$shareableChatIdentifierEncryptionKey\x18\x11 \x01(\x0c\x12#\n\x08\x61\x63\x63ounts\x18\x12 \x03(\x0b\x32\x11.whatsapp.Account\x12\x0f\n\x07nctSalt\x18\x13 \x01(\x0c\x12/\n\x0einlineContacts\x18\x14 \x03(\x0b\x32\x17.whatsapp.InlineContact\x12\x1e\n\x16inlineContactsProvided\x18\x15 \x01(\x08\"7\n\x12\x42otAIWaitListState\x12\x0f\n\x0bIN_WAITLIST\x10\x00\x12\x10\n\x0c\x41I_AVAILABLE\x10\x01\"\x8a\x01\n\x0fHistorySyncType\x12\x15\n\x11INITIAL_BOOTSTRAP\x10\x00\x12\x15\n\x11INITIAL_STATUS_V3\x10\x01\x12\x08\n\x04\x46ULL\x10\x02\x12\n\n\x06RECENT\x10\x03\x12\r\n\tPUSH_NAME\x10\x04\x12\x15\n\x11NON_BLOCKING_DATA\x10\x05\x12\r\n\tON_DEMAND\x10\x06\"O\n\x0eHistorySyncMsg\x12)\n\x07message\x18\x01 \x01(\x0b\x32\x18.whatsapp.WebMessageInfo\x12\x12\n\nmsgOrderId\x18\x02 \x01(\x04\"\x99\x05\n\x16HydratedTemplateButton\x12\r\n\x05index\x18\x04 \x01(\r\x12U\n\x10quickReplyButton\x18\x01 \x01(\x0b\x32\x39.whatsapp.HydratedTemplateButton.HydratedQuickReplyButtonH\x00\x12G\n\turlButton\x18\x02 \x01(\x0b\x32\x32.whatsapp.HydratedTemplateButton.HydratedURLButtonH\x00\x12I\n\ncallButton\x18\x03 \x01(\x0b\x32\x33.whatsapp.HydratedTemplateButton.HydratedCallButtonH\x00\x1a>\n\x12HydratedCallButton\x12\x13\n\x0b\x64isplayText\x18\x01 \x01(\t\x12\x13\n\x0bphoneNumber\x18\x02 \x01(\t\x1a;\n\x18HydratedQuickReplyButton\x12\x13\n\x0b\x64isplayText\x18\x01 \x01(\t\x12\n\n\x02id\x18\x02 \x01(\t\x1a\xf5\x01\n\x11HydratedURLButton\x12\x13\n\x0b\x64isplayText\x18\x01 \x01(\t\x12\x0b\n\x03url\x18\x02 \x01(\t\x12\x19\n\x11\x63onsentedUsersUrl\x18\x03 \x01(\t\x12g\n\x13webviewPresentation\x18\x04 \x01(\x0e\x32J.whatsapp.HydratedTemplateButton.HydratedURLButton.WebviewPresentationType\":\n\x17WebviewPresentationType\x12\x08\n\x04\x46ULL\x10\x01\x12\x08\n\x04TALL\x10\x02\x12\x0b\n\x07\x43OMPACT\x10\x03\x42\x10\n\x0ehydratedButton\"A\n\x18IdentityKeyPairStructure\x12\x11\n\tpublicKey\x18\x01 \x01(\x0c\x12\x12\n\nprivateKey\x18\x02 \x01(\x0c\"\x97\x07\n\x16InThreadSurveyMetadata\x12\x16\n\x0etessaSessionId\x18\x01 \x01(\t\x12\x16\n\x0esimonSessionId\x18\x02 \x01(\t\x12\x15\n\rsimonSurveyId\x18\x03 \x01(\t\x12\x13\n\x0btessaRootId\x18\x04 \x01(\t\x12\x11\n\trequestId\x18\x05 \x01(\t\x12\x12\n\ntessaEvent\x18\x06 \x01(\t\x12\x1c\n\x14invitationHeaderText\x18\x07 \x01(\t\x12\x1a\n\x12invitationBodyText\x18\x08 \x01(\t\x12\x19\n\x11invitationCtaText\x18\t \x01(\t\x12\x18\n\x10invitationCtaUrl\x18\n \x01(\t\x12\x13\n\x0bsurveyTitle\x18\x0b \x01(\t\x12J\n\tquestions\x18\x0c \x03(\x0b\x32\x37.whatsapp.InThreadSurveyMetadata.InThreadSurveyQuestion\x12 \n\x18surveyContinueButtonText\x18\r \x01(\t\x12\x1e\n\x16surveySubmitButtonText\x18\x0e \x01(\t\x12\x1c\n\x14privacyStatementFull\x18\x0f \x01(\t\x12\x62\n\x15privacyStatementParts\x18\x10 \x03(\x0b\x32\x43.whatsapp.InThreadSurveyMetadata.InThreadSurveyPrivacyStatementPart\x12\x19\n\x11\x66\x65\x65\x64\x62\x61\x63kToastText\x18\x11 \x01(\t\x12\x1a\n\x12startQuestionIndex\x18\x12 \x01(\x05\x1aY\n\x14InThreadSurveyOption\x12\x13\n\x0bstringValue\x18\x01 \x01(\t\x12\x14\n\x0cnumericValue\x18\x02 \x01(\r\x12\x16\n\x0etextTranslated\x18\x03 \x01(\t\x1a?\n\"InThreadSurveyPrivacyStatementPart\x12\x0c\n\x04text\x18\x01 \x01(\t\x12\x0b\n\x03url\x18\x02 \x01(\t\x1a\x92\x01\n\x16InThreadSurveyQuestion\x12\x14\n\x0cquestionText\x18\x01 \x01(\t\x12\x12\n\nquestionId\x18\x02 \x01(\t\x12N\n\x0fquestionOptions\x18\x03 \x03(\x0b\x32\x35.whatsapp.InThreadSurveyMetadata.InThreadSurveyOption\"e\n\rInlineContact\x12\r\n\x05pnJid\x18\x01 \x01(\t\x12\x0e\n\x06lidJid\x18\x02 \x01(\t\x12\x10\n\x08\x66ullName\x18\x03 \x01(\t\x12\x11\n\tfirstName\x18\x04 \x01(\t\x12\x10\n\x08username\x18\x05 \x01(\t\"\x8f\x04\n\x15InteractiveAnnotation\x12(\n\x0fpolygonVertices\x18\x01 \x03(\x0b\x32\x0f.whatsapp.Point\x12\x1e\n\x16shouldSkipConfirmation\x18\x04 \x01(\x08\x12\x32\n\x0f\x65mbeddedContent\x18\x05 \x01(\x0b\x32\x19.whatsapp.EmbeddedContent\x12\x46\n\x0estatusLinkType\x18\x08 \x01(\x0e\x32..whatsapp.InteractiveAnnotation.StatusLinkType\x12&\n\x08location\x18\x02 \x01(\x0b\x32\x12.whatsapp.LocationH\x00\x12J\n\nnewsletter\x18\x03 \x01(\x0b\x32\x34.whatsapp.ContextInfo.ForwardedNewsletterMessageInfoH\x00\x12\x18\n\x0e\x65mbeddedAction\x18\x06 \x01(\x08H\x00\x12,\n\ttapAction\x18\x07 \x01(\x0b\x32\x17.whatsapp.TapLinkActionH\x00\"j\n\x0eStatusLinkType\x12\x1b\n\x17RASTERIZED_LINK_PREVIEW\x10\x01\x12\x1d\n\x19RASTERIZED_LINK_TRUNCATED\x10\x02\x12\x1c\n\x18RASTERIZED_LINK_FULL_URL\x10\x03\x42\x08\n\x06\x61\x63tion\"E\n$InteractiveMessageAdditionalMetadata\x12\x1d\n\x15isGalaxyFlowCompleted\x18\x01 \x01(\x08\"\xb7\x01\n\nKeepInChat\x12$\n\x08keepType\x18\x01 \x01(\x0e\x32\x12.whatsapp.KeepType\x12\x17\n\x0fserverTimestamp\x18\x02 \x01(\x03\x12!\n\x03key\x18\x03 \x01(\x0b\x32\x14.whatsapp.MessageKey\x12\x11\n\tdeviceJid\x18\x04 \x01(\t\x12\x19\n\x11\x63lientTimestampMs\x18\x05 \x01(\x03\x12\x19\n\x11serverTimestampMs\x18\x06 \x01(\x03\"t\n\x12KeyExchangeMessage\x12\n\n\x02id\x18\x01 \x01(\r\x12\x0f\n\x07\x62\x61seKey\x18\x02 \x01(\x0c\x12\x12\n\nratchetKey\x18\x03 \x01(\x0c\x12\x13\n\x0bidentityKey\x18\x04 \x01(\x0c\x12\x18\n\x10\x62\x61seKeySignature\x18\x05 \x01(\x0c\"\x13\n\x05KeyId\x12\n\n\x02id\x18\x01 \x01(\x0c\"I\n\x13LIDMigrationMapping\x12\n\n\x02pn\x18\x01 \x02(\x04\x12\x13\n\x0b\x61ssignedLid\x18\x02 \x02(\x04\x12\x11\n\tlatestLid\x18\x03 \x01(\x04\"?\n\x1eLIDMigrationMappingSyncMessage\x12\x1d\n\x15\x65ncodedMappingPayload\x18\x01 \x01(\x0c\"z\n\x1eLIDMigrationMappingSyncPayload\x12\x36\n\x0fpnToLidMappings\x18\x01 \x03(\x0b\x32\x1d.whatsapp.LIDMigrationMapping\x12 \n\x18\x63hatDbMigrationTimestamp\x18\x02 \x01(\x04\"\x8a\x01\n\rLegacyMessage\x12\x44\n\x14\x65ventResponseMessage\x18\x01 \x01(\x0b\x32&.whatsapp.Message.EventResponseMessage\x12\x33\n\x08pollVote\x18\x02 \x01(\x0b\x32!.whatsapp.Message.PollVoteMessage\"\xf6\x01\n\x0cLimitSharing\x12\x16\n\x0esharingLimited\x18\x01 \x01(\x08\x12\x33\n\x07trigger\x18\x02 \x01(\x0e\x32\".whatsapp.LimitSharing.TriggerType\x12$\n\x1climitSharingSettingTimestamp\x18\x03 \x01(\x03\x12\x15\n\rinitiatedByMe\x18\x04 \x01(\x08\"\\\n\x0bTriggerType\x12\x0b\n\x07UNKNOWN\x10\x00\x12\x10\n\x0c\x43HAT_SETTING\x10\x01\x12\x1b\n\x17\x42IZ_SUPPORTS_FB_HOSTING\x10\x02\x12\x11\n\rUNKNOWN_GROUP\x10\x03\"=\n\rLocalizedName\x12\n\n\x02lg\x18\x01 \x01(\t\x12\n\n\x02lc\x18\x02 \x01(\t\x12\x14\n\x0cverifiedName\x18\x03 \x01(\t\"K\n\x08Location\x12\x17\n\x0f\x64\x65greesLatitude\x18\x01 \x01(\x01\x12\x18\n\x10\x64\x65greesLongitude\x18\x02 \x01(\x01\x12\x0c\n\x04name\x18\x03 \x01(\t\"\x1e\n\tMediaData\x12\x11\n\tlocalPath\x18\x01 \x01(\t\"Y\n\x0fMediaDomainInfo\x12\x30\n\x0emediaKeyDomain\x18\x01 \x01(\x0e\x32\x18.whatsapp.MediaKeyDomain\x12\x14\n\x0c\x65\x32\x45\x65MediaKey\x18\x02 \x01(\x0c\"\xb9\x05\n\nMediaEntry\x12\x12\n\nfileSha256\x18\x01 \x01(\x0c\x12\x10\n\x08mediaKey\x18\x02 \x01(\x0c\x12\x15\n\rfileEncSha256\x18\x03 \x01(\x0c\x12\x12\n\ndirectPath\x18\x04 \x01(\t\x12\x19\n\x11mediaKeyTimestamp\x18\x05 \x01(\x03\x12\x17\n\x0fserverMediaType\x18\x06 \x01(\t\x12\x13\n\x0buploadToken\x18\x07 \x01(\x0c\x12\x1a\n\x12validatedTimestamp\x18\x08 \x01(\x0c\x12\x0f\n\x07sidecar\x18\t \x01(\x0c\x12\x10\n\x08objectId\x18\n \x01(\t\x12\x0c\n\x04\x66\x62id\x18\x0b \x01(\t\x12I\n\x15\x64ownloadableThumbnail\x18\x0c \x01(\x0b\x32*.whatsapp.MediaEntry.DownloadableThumbnail\x12\x0e\n\x06handle\x18\r \x01(\t\x12\x10\n\x08\x66ilename\x18\x0e \x01(\t\x12K\n\x16progressiveJpegDetails\x18\x0f \x01(\x0b\x32+.whatsapp.MediaEntry.ProgressiveJpegDetails\x12\x0c\n\x04size\x18\x10 \x01(\x03\x12$\n\x1clastDownloadAttemptTimestamp\x18\x11 \x01(\x03\x1a\x95\x01\n\x15\x44ownloadableThumbnail\x12\x12\n\nfileSha256\x18\x01 \x01(\x0c\x12\x15\n\rfileEncSha256\x18\x02 \x01(\x0c\x12\x12\n\ndirectPath\x18\x03 \x01(\t\x12\x10\n\x08mediaKey\x18\x04 \x01(\x0c\x12\x19\n\x11mediaKeyTimestamp\x18\x05 \x01(\x03\x12\x10\n\x08objectId\x18\x06 \x01(\t\x1a>\n\x16ProgressiveJpegDetails\x12\x13\n\x0bscanLengths\x18\x01 \x03(\r\x12\x0f\n\x07sidecar\x18\x02 \x01(\x0c\"W\n\x12MediaNotifyMessage\x12\x16\n\x0e\x65xpressPathUrl\x18\x01 \x01(\t\x12\x15\n\rfileEncSha256\x18\x02 \x01(\x0c\x12\x12\n\nfileLength\x18\x03 \x01(\x04\"\xe5\x01\n\x16MediaRetryNotification\x12\x10\n\x08stanzaId\x18\x01 \x01(\t\x12\x12\n\ndirectPath\x18\x02 \x01(\t\x12;\n\x06result\x18\x03 \x01(\x0e\x32+.whatsapp.MediaRetryNotification.ResultType\x12\x15\n\rmessageSecret\x18\x04 \x01(\x0c\"Q\n\nResultType\x12\x11\n\rGENERAL_ERROR\x10\x00\x12\x0b\n\x07SUCCESS\x10\x01\x12\r\n\tNOT_FOUND\x10\x02\x12\x14\n\x10\x44\x45\x43RYPTION_ERROR\x10\x03\"4\n\x0bMemberLabel\x12\r\n\x05label\x18\x01 \x01(\t\x12\x16\n\x0elabelTimestamp\x18\x02 \x01(\x03\"t\n\x07Mention\x12\x33\n\x0bmentionType\x18\x01 \x01(\x0e\x32\x1e.whatsapp.MENTION_MENTION_TYPE\x12\x14\n\x0cmentionedJid\x18\x02 \x01(\t\x12\x0e\n\x06offset\x18\x03 \x01(\r\x12\x0e\n\x06length\x18\x04 \x01(\r\"\xbf\xff\x02\n\x07Message\x12\x14\n\x0c\x63onversation\x18\x01 \x01(\t\x12T\n\x1csenderKeyDistributionMessage\x18\x02 \x01(\x0b\x32..whatsapp.Message.SenderKeyDistributionMessage\x12\x34\n\x0cimageMessage\x18\x03 \x01(\x0b\x32\x1e.whatsapp.Message.ImageMessage\x12\x38\n\x0e\x63ontactMessage\x18\x04 \x01(\x0b\x32 .whatsapp.Message.ContactMessage\x12:\n\x0flocationMessage\x18\x05 \x01(\x0b\x32!.whatsapp.Message.LocationMessage\x12\x42\n\x13\x65xtendedTextMessage\x18\x06 \x01(\x0b\x32%.whatsapp.Message.ExtendedTextMessage\x12:\n\x0f\x64ocumentMessage\x18\x07 \x01(\x0b\x32!.whatsapp.Message.DocumentMessage\x12\x34\n\x0c\x61udioMessage\x18\x08 \x01(\x0b\x32\x1e.whatsapp.Message.AudioMessage\x12\x34\n\x0cvideoMessage\x18\t \x01(\x0b\x32\x1e.whatsapp.Message.VideoMessage\x12$\n\x04\x63\x61ll\x18\n \x01(\x0b\x32\x16.whatsapp.Message.Call\x12$\n\x04\x63hat\x18\x0b \x01(\x0b\x32\x16.whatsapp.Message.Chat\x12:\n\x0fprotocolMessage\x18\x0c \x01(\x0b\x32!.whatsapp.Message.ProtocolMessage\x12\x44\n\x14\x63ontactsArrayMessage\x18\r \x01(\x0b\x32&.whatsapp.Message.ContactsArrayMessage\x12J\n\x17highlyStructuredMessage\x18\x0e \x01(\x0b\x32).whatsapp.Message.HighlyStructuredMessage\x12\x62\n*fastRatchetKeySenderKeyDistributionMessage\x18\x0f \x01(\x0b\x32..whatsapp.Message.SenderKeyDistributionMessage\x12@\n\x12sendPaymentMessage\x18\x10 \x01(\x0b\x32$.whatsapp.Message.SendPaymentMessage\x12\x42\n\x13liveLocationMessage\x18\x12 \x01(\x0b\x32%.whatsapp.Message.LiveLocationMessage\x12\x46\n\x15requestPaymentMessage\x18\x16 \x01(\x0b\x32\'.whatsapp.Message.RequestPaymentMessage\x12T\n\x1c\x64\x65\x63linePaymentRequestMessage\x18\x17 \x01(\x0b\x32..whatsapp.Message.DeclinePaymentRequestMessage\x12R\n\x1b\x63\x61ncelPaymentRequestMessage\x18\x18 \x01(\x0b\x32-.whatsapp.Message.CancelPaymentRequestMessage\x12:\n\x0ftemplateMessage\x18\x19 \x01(\x0b\x32!.whatsapp.Message.TemplateMessage\x12\x38\n\x0estickerMessage\x18\x1a \x01(\x0b\x32 .whatsapp.Message.StickerMessage\x12@\n\x12groupInviteMessage\x18\x1c \x01(\x0b\x32$.whatsapp.Message.GroupInviteMessage\x12P\n\x1atemplateButtonReplyMessage\x18\x1d \x01(\x0b\x32,.whatsapp.Message.TemplateButtonReplyMessage\x12\x38\n\x0eproductMessage\x18\x1e \x01(\x0b\x32 .whatsapp.Message.ProductMessage\x12>\n\x11\x64\x65viceSentMessage\x18\x1f \x01(\x0b\x32#.whatsapp.Message.DeviceSentMessage\x12\x38\n\x12messageContextInfo\x18# \x01(\x0b\x32\x1c.whatsapp.MessageContextInfo\x12\x32\n\x0blistMessage\x18$ \x01(\x0b\x32\x1d.whatsapp.Message.ListMessage\x12=\n\x0fviewOnceMessage\x18% \x01(\x0b\x32$.whatsapp.Message.FutureProofMessage\x12\x34\n\x0corderMessage\x18& \x01(\x0b\x32\x1e.whatsapp.Message.OrderMessage\x12\x42\n\x13listResponseMessage\x18\' \x01(\x0b\x32%.whatsapp.Message.ListResponseMessage\x12>\n\x10\x65phemeralMessage\x18( \x01(\x0b\x32$.whatsapp.Message.FutureProofMessage\x12\x38\n\x0einvoiceMessage\x18) \x01(\x0b\x32 .whatsapp.Message.InvoiceMessage\x12\x38\n\x0e\x62uttonsMessage\x18* \x01(\x0b\x32 .whatsapp.Message.ButtonsMessage\x12H\n\x16\x62uttonsResponseMessage\x18+ \x01(\x0b\x32(.whatsapp.Message.ButtonsResponseMessage\x12\x44\n\x14paymentInviteMessage\x18, \x01(\x0b\x32&.whatsapp.Message.PaymentInviteMessage\x12@\n\x12interactiveMessage\x18- \x01(\x0b\x32$.whatsapp.Message.InteractiveMessage\x12:\n\x0freactionMessage\x18. \x01(\x0b\x32!.whatsapp.Message.ReactionMessage\x12\x46\n\x15stickerSyncRmrMessage\x18/ \x01(\x0b\x32\'.whatsapp.Message.StickerSyncRMRMessage\x12P\n\x1ainteractiveResponseMessage\x18\x30 \x01(\x0b\x32,.whatsapp.Message.InteractiveResponseMessage\x12\x42\n\x13pollCreationMessage\x18\x31 \x01(\x0b\x32%.whatsapp.Message.PollCreationMessage\x12>\n\x11pollUpdateMessage\x18\x32 \x01(\x0b\x32#.whatsapp.Message.PollUpdateMessage\x12>\n\x11keepInChatMessage\x18\x33 \x01(\x0b\x32#.whatsapp.Message.KeepInChatMessage\x12H\n\x1a\x64ocumentWithCaptionMessage\x18\x35 \x01(\x0b\x32$.whatsapp.Message.FutureProofMessage\x12N\n\x19requestPhoneNumberMessage\x18\x36 \x01(\x0b\x32+.whatsapp.Message.RequestPhoneNumberMessage\x12?\n\x11viewOnceMessageV2\x18\x37 \x01(\x0b\x32$.whatsapp.Message.FutureProofMessage\x12@\n\x12\x65ncReactionMessage\x18\x38 \x01(\x0b\x32$.whatsapp.Message.EncReactionMessage\x12;\n\reditedMessage\x18: \x01(\x0b\x32$.whatsapp.Message.FutureProofMessage\x12H\n\x1aviewOnceMessageV2Extension\x18; \x01(\x0b\x32$.whatsapp.Message.FutureProofMessage\x12\x44\n\x15pollCreationMessageV2\x18< \x01(\x0b\x32%.whatsapp.Message.PollCreationMessage\x12T\n\x1cscheduledCallCreationMessage\x18= \x01(\x0b\x32..whatsapp.Message.ScheduledCallCreationMessage\x12\x43\n\x15groupMentionedMessage\x18> \x01(\x0b\x32$.whatsapp.Message.FutureProofMessage\x12<\n\x10pinInChatMessage\x18? \x01(\x0b\x32\".whatsapp.Message.PinInChatMessage\x12\x44\n\x15pollCreationMessageV3\x18@ \x01(\x0b\x32%.whatsapp.Message.PollCreationMessage\x12L\n\x18scheduledCallEditMessage\x18\x41 \x01(\x0b\x32*.whatsapp.Message.ScheduledCallEditMessage\x12\x32\n\nptvMessage\x18\x42 \x01(\x0b\x32\x1e.whatsapp.Message.VideoMessage\x12>\n\x10\x62otInvokeMessage\x18\x43 \x01(\x0b\x32$.whatsapp.Message.FutureProofMessage\x12\x39\n\x0f\x63\x61llLogMesssage\x18\x45 \x01(\x0b\x32 .whatsapp.Message.CallLogMessage\x12\x44\n\x14messageHistoryBundle\x18\x46 \x01(\x0b\x32&.whatsapp.Message.MessageHistoryBundle\x12>\n\x11\x65ncCommentMessage\x18G \x01(\x0b\x32#.whatsapp.Message.EncCommentMessage\x12\x34\n\x0c\x62\x63\x61llMessage\x18H \x01(\x0b\x32\x1e.whatsapp.Message.BCallMessage\x12\x42\n\x14lottieStickerMessage\x18J \x01(\x0b\x32$.whatsapp.Message.FutureProofMessage\x12\x34\n\x0c\x65ventMessage\x18K \x01(\x0b\x32\x1e.whatsapp.Message.EventMessage\x12J\n\x17\x65ncEventResponseMessage\x18L \x01(\x0b\x32).whatsapp.Message.EncEventResponseMessage\x12\x38\n\x0e\x63ommentMessage\x18M \x01(\x0b\x32 .whatsapp.Message.CommentMessage\x12T\n\x1cnewsletterAdminInviteMessage\x18N \x01(\x0b\x32..whatsapp.Message.NewsletterAdminInviteMessage\x12@\n\x12placeholderMessage\x18P \x01(\x0b\x32$.whatsapp.Message.PlaceholderMessage\x12H\n\x16secretEncryptedMessage\x18R \x01(\x0b\x32(.whatsapp.Message.SecretEncryptedMessage\x12\x34\n\x0c\x61lbumMessage\x18S \x01(\x0b\x32\x1e.whatsapp.Message.AlbumMessage\x12=\n\x0f\x65ventCoverImage\x18U \x01(\x0b\x32$.whatsapp.Message.FutureProofMessage\x12@\n\x12stickerPackMessage\x18V \x01(\x0b\x32$.whatsapp.Message.StickerPackMessage\x12\x42\n\x14statusMentionMessage\x18W \x01(\x0b\x32$.whatsapp.Message.FutureProofMessage\x12N\n\x19pollResultSnapshotMessage\x18X \x01(\x0b\x32+.whatsapp.Message.PollResultSnapshotMessage\x12L\n\x1epollCreationOptionImageMessage\x18Z \x01(\x0b\x32$.whatsapp.Message.FutureProofMessage\x12\x44\n\x16\x61ssociatedChildMessage\x18[ \x01(\x0b\x32$.whatsapp.Message.FutureProofMessage\x12G\n\x19groupStatusMentionMessage\x18\\ \x01(\x0b\x32$.whatsapp.Message.FutureProofMessage\x12\x43\n\x15pollCreationMessageV4\x18] \x01(\x0b\x32$.whatsapp.Message.FutureProofMessage\x12<\n\x0estatusAddYours\x18_ \x01(\x0b\x32$.whatsapp.Message.FutureProofMessage\x12@\n\x12groupStatusMessage\x18` \x01(\x0b\x32$.whatsapp.Message.FutureProofMessage\x12<\n\x13richResponseMessage\x18\x61 \x01(\x0b\x32\x1f.whatsapp.AIRichResponseMessage\x12N\n\x19statusNotificationMessage\x18\x62 \x01(\x0b\x32+.whatsapp.Message.StatusNotificationMessage\x12\x41\n\x13limitSharingMessage\x18\x63 \x01(\x0b\x32$.whatsapp.Message.FutureProofMessage\x12<\n\x0e\x62otTaskMessage\x18\x64 \x01(\x0b\x32$.whatsapp.Message.FutureProofMessage\x12=\n\x0fquestionMessage\x18\x65 \x01(\x0b\x32$.whatsapp.Message.FutureProofMessage\x12\x44\n\x14messageHistoryNotice\x18\x66 \x01(\x0b\x32&.whatsapp.Message.MessageHistoryNotice\x12\x42\n\x14groupStatusMessageV2\x18g \x01(\x0b\x32$.whatsapp.Message.FutureProofMessage\x12\x41\n\x13\x62otForwardedMessage\x18h \x01(\x0b\x32$.whatsapp.Message.FutureProofMessage\x12R\n\x1bstatusQuestionAnswerMessage\x18i \x01(\x0b\x32-.whatsapp.Message.StatusQuestionAnswerMessage\x12\x42\n\x14questionReplyMessage\x18j \x01(\x0b\x32$.whatsapp.Message.FutureProofMessage\x12J\n\x17questionResponseMessage\x18k \x01(\x0b\x32).whatsapp.Message.QuestionResponseMessage\x12\x42\n\x13statusQuotedMessage\x18m \x01(\x0b\x32%.whatsapp.Message.StatusQuotedMessage\x12Z\n\x1fstatusStickerInteractionMessage\x18n \x01(\x0b\x32\x31.whatsapp.Message.StatusStickerInteractionMessage\x12\x44\n\x15pollCreationMessageV5\x18o \x01(\x0b\x32%.whatsapp.Message.PollCreationMessage\x12\\\n!newsletterFollowerInviteMessageV2\x18q \x01(\x0b\x32\x31.whatsapp.Message.NewsletterFollowerInviteMessage\x12P\n\x1bpollResultSnapshotMessageV3\x18s \x01(\x0b\x32+.whatsapp.Message.PollResultSnapshotMessage\x12K\n\x1dnewsletterAdminProfileMessage\x18t \x01(\x0b\x32$.whatsapp.Message.FutureProofMessage\x12M\n\x1fnewsletterAdminProfileMessageV2\x18u \x01(\x0b\x32$.whatsapp.Message.FutureProofMessage\x12<\n\x0espoilerMessage\x18v \x01(\x0b\x32$.whatsapp.Message.FutureProofMessage\x12\x44\n\x15pollCreationMessageV6\x18w \x01(\x0b\x32%.whatsapp.Message.PollCreationMessage\x12L\n\x18\x63onditionalRevealMessage\x18x \x01(\x0b\x32*.whatsapp.Message.ConditionalRevealMessage\x12\x44\n\x14pollAddOptionMessage\x18y \x01(\x0b\x32&.whatsapp.Message.PollAddOptionMessage\x12@\n\x12\x65ventInviteMessage\x18z \x01(\x0b\x32$.whatsapp.Message.EventInviteMessage\x12\x36\n\x11groupRootKeyShare\x18{ \x01(\x0b\x32\x1b.whatsapp.GroupRootKeyShare\x12H\n\x16paymentReminderMessage\x18| \x01(\x0b\x32(.whatsapp.Message.PaymentReminderMessage\x12\x42\n\x13splitPaymentMessage\x18} \x01(\x0b\x32%.whatsapp.Message.SplitPaymentMessage\x12Q\n#newsletterAdminProfileStatusMessage\x18~ \x01(\x0b\x32$.whatsapp.Message.FutureProofMessage\x12R\n\x1brootSecretDistributeMessage\x18\x7f \x01(\x0b\x32-.whatsapp.Message.RootSecretDistributeMessage\x1ar\n\x0c\x41lbumMessage\x12\x1a\n\x12\x65xpectedImageCount\x18\x02 \x01(\r\x12\x1a\n\x12\x65xpectedVideoCount\x18\x03 \x01(\r\x12*\n\x0b\x63ontextInfo\x18\x11 \x01(\x0b\x32\x15.whatsapp.ContextInfo\x1aP\n\"AppStateFatalExceptionNotification\x12\x17\n\x0f\x63ollectionNames\x18\x01 \x03(\t\x12\x11\n\ttimestamp\x18\x02 \x01(\x03\x1a}\n\x0f\x41ppStateSyncKey\x12\x32\n\x05keyId\x18\x01 \x01(\x0b\x32#.whatsapp.Message.AppStateSyncKeyId\x12\x36\n\x07keyData\x18\x02 \x01(\x0b\x32%.whatsapp.Message.AppStateSyncKeyData\x1a|\n\x13\x41ppStateSyncKeyData\x12\x0f\n\x07keyData\x18\x01 \x01(\x0c\x12\x41\n\x0b\x66ingerprint\x18\x02 \x01(\x0b\x32,.whatsapp.Message.AppStateSyncKeyFingerprint\x12\x11\n\ttimestamp\x18\x03 \x01(\x03\x1a\\\n\x1a\x41ppStateSyncKeyFingerprint\x12\r\n\x05rawId\x18\x01 \x01(\r\x12\x14\n\x0c\x63urrentIndex\x18\x02 \x01(\r\x12\x19\n\rdeviceIndexes\x18\x03 \x03(\rB\x02\x10\x01\x1a\"\n\x11\x41ppStateSyncKeyId\x12\r\n\x05keyId\x18\x01 \x01(\x0c\x1aM\n\x16\x41ppStateSyncKeyRequest\x12\x33\n\x06keyIds\x18\x01 \x03(\x0b\x32#.whatsapp.Message.AppStateSyncKeyId\x1aG\n\x14\x41ppStateSyncKeyShare\x12/\n\x04keys\x18\x01 \x03(\x0b\x32!.whatsapp.Message.AppStateSyncKey\x1a\xe9\x02\n\x0c\x41udioMessage\x12\x0b\n\x03url\x18\x01 \x01(\t\x12\x10\n\x08mimetype\x18\x02 \x01(\t\x12\x12\n\nfileSha256\x18\x03 \x01(\x0c\x12\x12\n\nfileLength\x18\x04 \x01(\x04\x12\x0f\n\x07seconds\x18\x05 \x01(\r\x12\x0b\n\x03ptt\x18\x06 \x01(\x08\x12\x10\n\x08mediaKey\x18\x07 \x01(\x0c\x12\x15\n\rfileEncSha256\x18\x08 \x01(\x0c\x12\x12\n\ndirectPath\x18\t \x01(\t\x12\x19\n\x11mediaKeyTimestamp\x18\n \x01(\x03\x12*\n\x0b\x63ontextInfo\x18\x11 \x01(\x0b\x32\x15.whatsapp.ContextInfo\x12\x18\n\x10streamingSidecar\x18\x12 \x01(\x0c\x12\x10\n\x08waveform\x18\x13 \x01(\x0c\x12\x16\n\x0e\x62\x61\x63kgroundArgb\x18\x14 \x01(\x07\x12\x10\n\x08viewOnce\x18\x15 \x01(\x08\x12\x1a\n\x12\x61\x63\x63\x65ssibilityLabel\x18\x16 \x01(\t\x1a\xb2\x01\n\x0c\x42\x43\x61llMessage\x12\x11\n\tsessionId\x18\x01 \x01(\t\x12;\n\tmediaType\x18\x02 \x01(\x0e\x32(.whatsapp.Message.BCallMessage.MediaType\x12\x11\n\tmasterKey\x18\x03 \x01(\x0c\x12\x0f\n\x07\x63\x61ption\x18\x04 \x01(\t\".\n\tMediaType\x12\x0b\n\x07UNKNOWN\x10\x00\x12\t\n\x05\x41UDIO\x10\x01\x12\t\n\x05VIDEO\x10\x02\x1a\xc4\x07\n\x0e\x42uttonsMessage\x12\x13\n\x0b\x63ontentText\x18\x06 \x01(\t\x12\x12\n\nfooterText\x18\x07 \x01(\t\x12*\n\x0b\x63ontextInfo\x18\x08 \x01(\x0b\x32\x15.whatsapp.ContextInfo\x12\x38\n\x07\x62uttons\x18\t \x03(\x0b\x32\'.whatsapp.Message.ButtonsMessage.Button\x12?\n\nheaderType\x18\n \x01(\x0e\x32+.whatsapp.Message.ButtonsMessage.HeaderType\x12\x0e\n\x04text\x18\x01 \x01(\tH\x00\x12<\n\x0f\x64ocumentMessage\x18\x02 \x01(\x0b\x32!.whatsapp.Message.DocumentMessageH\x00\x12\x36\n\x0cimageMessage\x18\x03 \x01(\x0b\x32\x1e.whatsapp.Message.ImageMessageH\x00\x12\x36\n\x0cvideoMessage\x18\x04 \x01(\x0b\x32\x1e.whatsapp.Message.VideoMessageH\x00\x12<\n\x0flocationMessage\x18\x05 \x01(\x0b\x32!.whatsapp.Message.LocationMessageH\x00\x1a\xf9\x02\n\x06\x42utton\x12\x10\n\x08\x62uttonId\x18\x01 \x01(\t\x12\x46\n\nbuttonText\x18\x02 \x01(\x0b\x32\x32.whatsapp.Message.ButtonsMessage.Button.ButtonText\x12:\n\x04type\x18\x03 \x01(\x0e\x32,.whatsapp.Message.ButtonsMessage.Button.Type\x12N\n\x0enativeFlowInfo\x18\x04 \x01(\x0b\x32\x36.whatsapp.Message.ButtonsMessage.Button.NativeFlowInfo\x1a!\n\nButtonText\x12\x13\n\x0b\x64isplayText\x18\x01 \x01(\t\x1a\x32\n\x0eNativeFlowInfo\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x12\n\nparamsJson\x18\x02 \x01(\t\"2\n\x04Type\x12\x0b\n\x07UNKNOWN\x10\x00\x12\x0c\n\x08RESPONSE\x10\x01\x12\x0f\n\x0bNATIVE_FLOW\x10\x02\"`\n\nHeaderType\x12\x0b\n\x07UNKNOWN\x10\x00\x12\t\n\x05\x45MPTY\x10\x01\x12\x08\n\x04TEXT\x10\x02\x12\x0c\n\x08\x44OCUMENT\x10\x03\x12\t\n\x05IMAGE\x10\x04\x12\t\n\x05VIDEO\x10\x05\x12\x0c\n\x08LOCATION\x10\x06\x42\x08\n\x06header\x1a\xed\x01\n\x16\x42uttonsResponseMessage\x12\x18\n\x10selectedButtonId\x18\x01 \x01(\t\x12*\n\x0b\x63ontextInfo\x18\x03 \x01(\x0b\x32\x15.whatsapp.ContextInfo\x12;\n\x04type\x18\x04 \x01(\x0e\x32-.whatsapp.Message.ButtonsResponseMessage.Type\x12\x1d\n\x13selectedDisplayText\x18\x02 \x01(\tH\x00\"%\n\x04Type\x12\x0b\n\x07UNKNOWN\x10\x00\x12\x10\n\x0c\x44ISPLAY_TEXT\x10\x01\x42\n\n\x08response\x1a\xcf\x02\n\x04\x43\x61ll\x12\x0f\n\x07\x63\x61llKey\x18\x01 \x01(\x0c\x12\x18\n\x10\x63onversionSource\x18\x02 \x01(\t\x12\x16\n\x0e\x63onversionData\x18\x03 \x01(\x0c\x12\x1e\n\x16\x63onversionDelaySeconds\x18\x04 \x01(\r\x12\x13\n\x0b\x63twaSignals\x18\x05 \x01(\t\x12\x13\n\x0b\x63twaPayload\x18\x06 \x01(\x0c\x12*\n\x0b\x63ontextInfo\x18\x07 \x01(\x0b\x32\x15.whatsapp.ContextInfo\x12#\n\x1bnativeFlowCallButtonPayload\x18\x08 \x01(\t\x12\x17\n\x0f\x64\x65\x65plinkPayload\x18\t \x01(\t\x12\x38\n\x12messageContextInfo\x18\n \x01(\x0b\x32\x1c.whatsapp.MessageContextInfo\x12\x16\n\x0e\x63\x61llEntryPoint\x18\x0b \x01(\r\x1a\xbb\x04\n\x0e\x43\x61llLogMessage\x12\x0f\n\x07isVideo\x18\x01 \x01(\x08\x12\x41\n\x0b\x63\x61llOutcome\x18\x02 \x01(\x0e\x32,.whatsapp.Message.CallLogMessage.CallOutcome\x12\x14\n\x0c\x64urationSecs\x18\x03 \x01(\x03\x12;\n\x08\x63\x61llType\x18\x04 \x01(\x0e\x32).whatsapp.Message.CallLogMessage.CallType\x12\x46\n\x0cparticipants\x18\x05 \x03(\x0b\x32\x30.whatsapp.Message.CallLogMessage.CallParticipant\x1a\x61\n\x0f\x43\x61llParticipant\x12\x0b\n\x03jid\x18\x01 \x01(\t\x12\x41\n\x0b\x63\x61llOutcome\x18\x02 \x01(\x0e\x32,.whatsapp.Message.CallLogMessage.CallOutcome\"\x99\x01\n\x0b\x43\x61llOutcome\x12\r\n\tCONNECTED\x10\x00\x12\n\n\x06MISSED\x10\x01\x12\n\n\x06\x46\x41ILED\x10\x02\x12\x0c\n\x08REJECTED\x10\x03\x12\x16\n\x12\x41\x43\x43\x45PTED_ELSEWHERE\x10\x04\x12\x0b\n\x07ONGOING\x10\x05\x12\x13\n\x0fSILENCED_BY_DND\x10\x06\x12\x1b\n\x17SILENCED_UNKNOWN_CALLER\x10\x07\";\n\x08\x43\x61llType\x12\x0b\n\x07REGULAR\x10\x00\x12\x12\n\x0eSCHEDULED_CALL\x10\x01\x12\x0e\n\nVOICE_CHAT\x10\x02\x1a@\n\x1b\x43\x61ncelPaymentRequestMessage\x12!\n\x03key\x18\x01 \x01(\x0b\x32\x14.whatsapp.MessageKey\x1a\'\n\x04\x43hat\x12\x13\n\x0b\x64isplayName\x18\x01 \x01(\t\x12\n\n\x02id\x18\x02 \x01(\t\x1a}\n\x18\x43hatCustomImageWallpaper\x12\x12\n\ndirectPath\x18\x01 \x01(\t\x12\x10\n\x08mediaKey\x18\x02 \x01(\x0c\x12\x15\n\rfileEncSha256\x18\x03 \x01(\x0c\x12\x12\n\nfileSha256\x18\x04 \x01(\x0c\x12\x10\n\x08\x64imLevel\x18\x05 \x01(\x02\x1a/\n\x14\x43hatDefaultWallpaper\x12\x17\n\x0fisDoodleEnabled\x18\x01 \x01(\x08\x1aY\n\x17\x43hatSolidColorWallpaper\x12\x12\n\ncolorLight\x18\x01 \x01(\t\x12\x11\n\tcolorDark\x18\x02 \x01(\t\x12\x17\n\x0fisDoodleEnabled\x18\x03 \x01(\x08\x1a\x41\n\x17\x43hatStockImageWallpaper\x12\x14\n\x0cstockImageId\x18\x01 \x01(\t\x12\x10\n\x08\x64imLevel\x18\x02 \x01(\x02\x1a\xef\x02\n\x10\x43hatThemeSetting\x12\x1a\n\x12settingTimestampMs\x18\x01 \x01(\x03\x12\x12\n\nclearTheme\x18\x02 \x01(\x08\x12\x15\n\rcolorSchemeId\x18\x03 \x01(\t\x12\x42\n\x10\x64\x65\x66\x61ultWallpaper\x18\n \x01(\x0b\x32&.whatsapp.Message.ChatDefaultWallpaperH\x00\x12?\n\nsolidColor\x18\x0b \x01(\x0b\x32).whatsapp.Message.ChatSolidColorWallpaperH\x00\x12?\n\nstockImage\x18\x0c \x01(\x0b\x32).whatsapp.Message.ChatStockImageWallpaperH\x00\x12\x41\n\x0b\x63ustomImage\x18\r \x01(\x0b\x32*.whatsapp.Message.ChatCustomImageWallpaperH\x00\x42\x0b\n\twallpaper\x1a\xad\x04\n!CloudAPIThreadControlNotification\x12Y\n\x06status\x18\x01 \x01(\x0e\x32I.whatsapp.Message.CloudAPIThreadControlNotification.CloudAPIThreadControl\x12%\n\x1dsenderNotificationTimestampMs\x18\x02 \x01(\x03\x12\x13\n\x0b\x63onsumerLid\x18\x03 \x01(\t\x12\x1b\n\x13\x63onsumerPhoneNumber\x18\x04 \x01(\t\x12y\n\x13notificationContent\x18\x05 \x01(\x0b\x32\\.whatsapp.Message.CloudAPIThreadControlNotification.CloudAPIThreadControlNotificationContent\x12\"\n\x1ashouldSuppressNotification\x18\x06 \x01(\x08\x1a^\n(CloudAPIThreadControlNotificationContent\x12\x1f\n\x17handoffNotificationText\x18\x01 \x01(\t\x12\x11\n\textraJson\x18\x02 \x01(\t\"U\n\x15\x43loudAPIThreadControl\x12\x0b\n\x07UNKNOWN\x10\x00\x12\x12\n\x0e\x43ONTROL_PASSED\x10\x01\x12\x11\n\rCONTROL_TAKEN\x10\x02\x12\x08\n\x04INFO\x10\x03\x1a\x64\n\x0e\x43ommentMessage\x12\"\n\x07message\x18\x01 \x01(\x0b\x32\x11.whatsapp.Message\x12.\n\x10targetMessageKey\x18\x02 \x01(\x0b\x32\x14.whatsapp.MessageKey\x1a\x85\x02\n\x18\x43onditionalRevealMessage\x12\x12\n\nencPayload\x18\x01 \x01(\x0c\x12\r\n\x05\x65ncIv\x18\x02 \x01(\x0c\x12m\n\x1c\x63onditionalRevealMessageType\x18\x03 \x01(\x0e\x32G.whatsapp.Message.ConditionalRevealMessage.ConditionalRevealMessageType\x12\x13\n\x0brevealKeyId\x18\x04 \x01(\t\"B\n\x1c\x43onditionalRevealMessageType\x12\x0b\n\x07UNKNOWN\x10\x00\x12\x15\n\x11SCHEDULED_MESSAGE\x10\x01\x1aw\n\x0e\x43ontactMessage\x12\x13\n\x0b\x64isplayName\x18\x01 \x01(\t\x12\r\n\x05vcard\x18\x10 \x01(\t\x12*\n\x0b\x63ontextInfo\x18\x11 \x01(\x0b\x32\x15.whatsapp.ContextInfo\x12\x15\n\risSelfContact\x18\x12 \x01(\x08\x1a\x8b\x01\n\x14\x43ontactsArrayMessage\x12\x13\n\x0b\x64isplayName\x18\x01 \x01(\t\x12\x32\n\x08\x63ontacts\x18\x02 \x03(\x0b\x32 .whatsapp.Message.ContactMessage\x12*\n\x0b\x63ontextInfo\x18\x11 \x01(\x0b\x32\x15.whatsapp.ContextInfo\x1a\x41\n\x1c\x44\x65\x63linePaymentRequestMessage\x12!\n\x03key\x18\x01 \x01(\x0b\x32\x14.whatsapp.MessageKey\x1a^\n\x11\x44\x65viceSentMessage\x12\x16\n\x0e\x64\x65stinationJid\x18\x01 \x01(\t\x12\"\n\x07message\x18\x02 \x01(\x0b\x32\x11.whatsapp.Message\x12\r\n\x05phash\x18\x03 \x01(\t\x1a\xed\x03\n\x0f\x44ocumentMessage\x12\x0b\n\x03url\x18\x01 \x01(\t\x12\x10\n\x08mimetype\x18\x02 \x01(\t\x12\r\n\x05title\x18\x03 \x01(\t\x12\x12\n\nfileSha256\x18\x04 \x01(\x0c\x12\x12\n\nfileLength\x18\x05 \x01(\x04\x12\x11\n\tpageCount\x18\x06 \x01(\r\x12\x10\n\x08mediaKey\x18\x07 \x01(\x0c\x12\x10\n\x08\x66ileName\x18\x08 \x01(\t\x12\x15\n\rfileEncSha256\x18\t \x01(\x0c\x12\x12\n\ndirectPath\x18\n \x01(\t\x12\x19\n\x11mediaKeyTimestamp\x18\x0b \x01(\x03\x12\x14\n\x0c\x63ontactVcard\x18\x0c \x01(\x08\x12\x1b\n\x13thumbnailDirectPath\x18\r \x01(\t\x12\x17\n\x0fthumbnailSha256\x18\x0e \x01(\x0c\x12\x1a\n\x12thumbnailEncSha256\x18\x0f \x01(\x0c\x12\x15\n\rjpegThumbnail\x18\x10 \x01(\x0c\x12*\n\x0b\x63ontextInfo\x18\x11 \x01(\x0b\x32\x15.whatsapp.ContextInfo\x12\x17\n\x0fthumbnailHeight\x18\x12 \x01(\r\x12\x16\n\x0ethumbnailWidth\x18\x13 \x01(\r\x12\x0f\n\x07\x63\x61ption\x18\x14 \x01(\t\x12\x1a\n\x12\x61\x63\x63\x65ssibilityLabel\x18\x15 \x01(\t\x1a\x66\n\x11\x45ncCommentMessage\x12.\n\x10targetMessageKey\x18\x01 \x01(\x0b\x32\x14.whatsapp.MessageKey\x12\x12\n\nencPayload\x18\x02 \x01(\x0c\x12\r\n\x05\x65ncIv\x18\x03 \x01(\x0c\x1as\n\x17\x45ncEventResponseMessage\x12\x35\n\x17\x65ventCreationMessageKey\x18\x01 \x01(\x0b\x32\x14.whatsapp.MessageKey\x12\x12\n\nencPayload\x18\x02 \x01(\x0c\x12\r\n\x05\x65ncIv\x18\x03 \x01(\x0c\x1ag\n\x12\x45ncReactionMessage\x12.\n\x10targetMessageKey\x18\x01 \x01(\x0b\x32\x14.whatsapp.MessageKey\x12\x12\n\nencPayload\x18\x02 \x01(\x0c\x12\r\n\x05\x65ncIv\x18\x03 \x01(\x0c\x1a\xd7\x01\n\x12\x45ventInviteMessage\x12*\n\x0b\x63ontextInfo\x18\x01 \x01(\x0b\x32\x15.whatsapp.ContextInfo\x12\x0f\n\x07\x65ventId\x18\x02 \x01(\t\x12\x12\n\neventTitle\x18\x03 \x01(\t\x12\x15\n\rjpegThumbnail\x18\x04 \x01(\x0c\x12\x11\n\tstartTime\x18\x05 \x01(\x03\x12\x0f\n\x07\x63\x61ption\x18\x06 \x01(\t\x12\x12\n\nisCanceled\x18\x07 \x01(\x08\x12\x0f\n\x07\x65ndTime\x18\x08 \x01(\x03\x12\x10\n\x08\x63\x61llLink\x18\t \x01(\t\x1a\xc0\x02\n\x0c\x45ventMessage\x12*\n\x0b\x63ontextInfo\x18\x01 \x01(\x0b\x32\x15.whatsapp.ContextInfo\x12\x12\n\nisCanceled\x18\x02 \x01(\x08\x12\x0c\n\x04name\x18\x03 \x01(\t\x12\x13\n\x0b\x64\x65scription\x18\x04 \x01(\t\x12\x33\n\x08location\x18\x05 \x01(\x0b\x32!.whatsapp.Message.LocationMessage\x12\x10\n\x08joinLink\x18\x06 \x01(\t\x12\x11\n\tstartTime\x18\x07 \x01(\x03\x12\x0f\n\x07\x65ndTime\x18\x08 \x01(\x03\x12\x1a\n\x12\x65xtraGuestsAllowed\x18\t \x01(\x08\x12\x16\n\x0eisScheduleCall\x18\n \x01(\x08\x12\x13\n\x0bhasReminder\x18\x0b \x01(\x08\x12\x19\n\x11reminderOffsetSec\x18\x0c \x01(\x03\x1a\xd7\x01\n\x14\x45ventResponseMessage\x12J\n\x08response\x18\x01 \x01(\x0e\x32\x38.whatsapp.Message.EventResponseMessage.EventResponseType\x12\x13\n\x0btimestampMs\x18\x02 \x01(\x03\x12\x17\n\x0f\x65xtraGuestCount\x18\x03 \x01(\x05\"E\n\x11\x45ventResponseType\x12\x0b\n\x07UNKNOWN\x10\x00\x12\t\n\x05GOING\x10\x01\x12\r\n\tNOT_GOING\x10\x02\x12\t\n\x05MAYBE\x10\x03\x1a\xbf\x0c\n\x13\x45xtendedTextMessage\x12\x0c\n\x04text\x18\x01 \x01(\t\x12\x13\n\x0bmatchedText\x18\x02 \x01(\t\x12\x13\n\x0b\x64\x65scription\x18\x05 \x01(\t\x12\r\n\x05title\x18\x06 \x01(\t\x12\x10\n\x08textArgb\x18\x07 \x01(\x07\x12\x16\n\x0e\x62\x61\x63kgroundArgb\x18\x08 \x01(\x07\x12<\n\x04\x66ont\x18\t \x01(\x0e\x32..whatsapp.Message.ExtendedTextMessage.FontType\x12\x46\n\x0bpreviewType\x18\n \x01(\x0e\x32\x31.whatsapp.Message.ExtendedTextMessage.PreviewType\x12\x15\n\rjpegThumbnail\x18\x10 \x01(\x0c\x12*\n\x0b\x63ontextInfo\x18\x11 \x01(\x0b\x32\x15.whatsapp.ContextInfo\x12\x17\n\x0f\x64oNotPlayInline\x18\x12 \x01(\x08\x12\x1b\n\x13thumbnailDirectPath\x18\x13 \x01(\t\x12\x17\n\x0fthumbnailSha256\x18\x14 \x01(\x0c\x12\x1a\n\x12thumbnailEncSha256\x18\x15 \x01(\x0c\x12\x10\n\x08mediaKey\x18\x16 \x01(\x0c\x12\x19\n\x11mediaKeyTimestamp\x18\x17 \x01(\x03\x12\x17\n\x0fthumbnailHeight\x18\x18 \x01(\r\x12\x16\n\x0ethumbnailWidth\x18\x19 \x01(\r\x12V\n\x13inviteLinkGroupType\x18\x1a \x01(\x0e\x32\x39.whatsapp.Message.ExtendedTextMessage.InviteLinkGroupType\x12&\n\x1einviteLinkParentGroupSubjectV2\x18\x1b \x01(\t\x12(\n inviteLinkParentGroupThumbnailV2\x18\x1c \x01(\x0c\x12X\n\x15inviteLinkGroupTypeV2\x18\x1d \x01(\x0e\x32\x39.whatsapp.Message.ExtendedTextMessage.InviteLinkGroupType\x12\x10\n\x08viewOnce\x18\x1e \x01(\x08\x12\x13\n\x0bvideoHeight\x18\x1f \x01(\r\x12\x12\n\nvideoWidth\x18 \x01(\r\x12\x42\n\x12\x66\x61viconMMSMetadata\x18! \x01(\x0b\x32&.whatsapp.Message.MMSThumbnailMetadata\x12\x42\n\x13linkPreviewMetadata\x18\" \x01(\x0b\x32%.whatsapp.Message.LinkPreviewMetadata\x12\x42\n\x13paymentLinkMetadata\x18# \x01(\x0b\x32%.whatsapp.Message.PaymentLinkMetadata\x12\x34\n\x0c\x65ndCardTiles\x18$ \x03(\x0b\x32\x1e.whatsapp.Message.VideoEndCard\x12\x17\n\x0fvideoContentUrl\x18% \x01(\t\x12.\n\rmusicMetadata\x18& \x01(\x0b\x32\x17.whatsapp.EmbeddedMusic\x12J\n\x17paymentExtendedMetadata\x18\' \x01(\x0b\x32).whatsapp.Message.PaymentExtendedMetadata\"\xa4\x01\n\x08\x46ontType\x12\n\n\x06SYSTEM\x10\x00\x12\x0f\n\x0bSYSTEM_TEXT\x10\x01\x12\r\n\tFB_SCRIPT\x10\x02\x12\x0f\n\x0bSYSTEM_BOLD\x10\x06\x12\x19\n\x15MORNINGBREEZE_REGULAR\x10\x07\x12\x15\n\x11\x43\x41LISTOGA_REGULAR\x10\x08\x12\x12\n\x0e\x45XO2_EXTRABOLD\x10\t\x12\x15\n\x11\x43OURIERPRIME_BOLD\x10\n\"H\n\x13InviteLinkGroupType\x12\x0b\n\x07\x44\x45\x46\x41ULT\x10\x00\x12\n\n\x06PARENT\x10\x01\x12\x07\n\x03SUB\x10\x02\x12\x0f\n\x0b\x44\x45\x46\x41ULT_SUB\x10\x03\"^\n\x0bPreviewType\x12\x08\n\x04NONE\x10\x00\x12\t\n\x05VIDEO\x10\x01\x12\x0f\n\x0bPLACEHOLDER\x10\x04\x12\t\n\x05IMAGE\x10\x05\x12\x11\n\rPAYMENT_LINKS\x10\x06\x12\x0b\n\x07PROFILE\x10\x07\x1aZ\n\x1d\x46ullHistorySyncOnDemandConfig\x12\x1c\n\x14historyFromTimestamp\x18\x01 \x01(\x04\x12\x1b\n\x13historyDurationDays\x18\x02 \x01(\r\x1an\n&FullHistorySyncOnDemandRequestMetadata\x12\x11\n\trequestId\x18\x01 \x01(\t\x12\x17\n\x0f\x62usinessProduct\x18\x02 \x01(\t\x12\x18\n\x10opaqueClientData\x18\x03 \x01(\x0c\x1a\x38\n\x12\x46utureProofMessage\x12\"\n\x07message\x18\x01 \x01(\x0b\x32\x11.whatsapp.Message\x1a\xa4\x02\n\x12GroupInviteMessage\x12\x10\n\x08groupJid\x18\x01 \x01(\t\x12\x12\n\ninviteCode\x18\x02 \x01(\t\x12\x18\n\x10inviteExpiration\x18\x03 \x01(\x03\x12\x11\n\tgroupName\x18\x04 \x01(\t\x12\x15\n\rjpegThumbnail\x18\x05 \x01(\x0c\x12\x0f\n\x07\x63\x61ption\x18\x06 \x01(\t\x12*\n\x0b\x63ontextInfo\x18\x07 \x01(\x0b\x32\x15.whatsapp.ContextInfo\x12\x41\n\tgroupType\x18\x08 \x01(\x0e\x32..whatsapp.Message.GroupInviteMessage.GroupType\"$\n\tGroupType\x12\x0b\n\x07\x44\x45\x46\x41ULT\x10\x00\x12\n\n\x06PARENT\x10\x01\x1a\xc8\x0b\n\x17HighlyStructuredMessage\x12\x11\n\tnamespace\x18\x01 \x01(\t\x12\x13\n\x0b\x65lementName\x18\x02 \x01(\t\x12\x0e\n\x06params\x18\x03 \x03(\t\x12\x12\n\nfallbackLg\x18\x04 \x01(\t\x12\x12\n\nfallbackLc\x18\x05 \x01(\t\x12\\\n\x11localizableParams\x18\x06 \x03(\x0b\x32\x41.whatsapp.Message.HighlyStructuredMessage.HSMLocalizableParameter\x12\x17\n\x0f\x64\x65terministicLg\x18\x07 \x01(\t\x12\x17\n\x0f\x64\x65terministicLc\x18\x08 \x01(\t\x12\x36\n\x0bhydratedHsm\x18\t \x01(\x0b\x32!.whatsapp.Message.TemplateMessage\x1a\x84\t\n\x17HSMLocalizableParameter\x12\x0f\n\x07\x64\x65\x66\x61ult\x18\x01 \x01(\t\x12\x61\n\x08\x63urrency\x18\x02 \x01(\x0b\x32M.whatsapp.Message.HighlyStructuredMessage.HSMLocalizableParameter.HSMCurrencyH\x00\x12\x61\n\x08\x64\x61teTime\x18\x03 \x01(\x0b\x32M.whatsapp.Message.HighlyStructuredMessage.HSMLocalizableParameter.HSMDateTimeH\x00\x1a\x37\n\x0bHSMCurrency\x12\x14\n\x0c\x63urrencyCode\x18\x01 \x01(\t\x12\x12\n\namount1000\x18\x02 \x01(\x03\x1a\xca\x06\n\x0bHSMDateTime\x12w\n\tcomponent\x18\x01 \x01(\x0b\x32\x62.whatsapp.Message.HighlyStructuredMessage.HSMLocalizableParameter.HSMDateTime.HSMDateTimeComponentH\x00\x12w\n\tunixEpoch\x18\x02 \x01(\x0b\x32\x62.whatsapp.Message.HighlyStructuredMessage.HSMLocalizableParameter.HSMDateTime.HSMDateTimeUnixEpochH\x00\x1a\x8c\x04\n\x14HSMDateTimeComponent\x12\x83\x01\n\tdayOfWeek\x18\x01 \x01(\x0e\x32p.whatsapp.Message.HighlyStructuredMessage.HSMLocalizableParameter.HSMDateTime.HSMDateTimeComponent.DayOfWeekType\x12\x0c\n\x04year\x18\x02 \x01(\r\x12\r\n\x05month\x18\x03 \x01(\r\x12\x12\n\ndayOfMonth\x18\x04 \x01(\r\x12\x0c\n\x04hour\x18\x05 \x01(\r\x12\x0e\n\x06minute\x18\x06 \x01(\r\x12\x81\x01\n\x08\x63\x61lendar\x18\x07 \x01(\x0e\x32o.whatsapp.Message.HighlyStructuredMessage.HSMLocalizableParameter.HSMDateTime.HSMDateTimeComponent.CalendarType\".\n\x0c\x43\x61lendarType\x12\r\n\tGREGORIAN\x10\x01\x12\x0f\n\x0bSOLAR_HIJRI\x10\x02\"k\n\rDayOfWeekType\x12\n\n\x06MONDAY\x10\x01\x12\x0b\n\x07TUESDAY\x10\x02\x12\r\n\tWEDNESDAY\x10\x03\x12\x0c\n\x08THURSDAY\x10\x04\x12\n\n\x06\x46RIDAY\x10\x05\x12\x0c\n\x08SATURDAY\x10\x06\x12\n\n\x06SUNDAY\x10\x07\x1a)\n\x14HSMDateTimeUnixEpoch\x12\x11\n\ttimestamp\x18\x01 \x01(\x03\x42\x0f\n\rdatetimeOneofB\x0c\n\nparamOneof\x1a?\n\x1eHistorySyncMessageAccessStatus\x12\x1d\n\x15\x63ompleteAccessGranted\x18\x01 \x01(\x08\x1a\xb3\x04\n\x17HistorySyncNotification\x12\x12\n\nfileSha256\x18\x01 \x01(\x0c\x12\x12\n\nfileLength\x18\x02 \x01(\x04\x12\x10\n\x08mediaKey\x18\x03 \x01(\x0c\x12\x15\n\rfileEncSha256\x18\x04 \x01(\x0c\x12\x12\n\ndirectPath\x18\x05 \x01(\t\x12\x33\n\x08syncType\x18\x06 \x01(\x0e\x32!.whatsapp.Message.HistorySyncType\x12\x12\n\nchunkOrder\x18\x07 \x01(\r\x12\x19\n\x11originalMessageId\x18\x08 \x01(\t\x12\x10\n\x08progress\x18\t \x01(\r\x12$\n\x1coldestMsgInChunkTimestampSec\x18\n \x01(\x03\x12)\n!initialHistBootstrapInlinePayload\x18\x0b \x01(\x0c\x12 \n\x18peerDataRequestSessionId\x18\x0c \x01(\t\x12h\n&fullHistorySyncOnDemandRequestMetadata\x18\r \x01(\x0b\x32\x38.whatsapp.Message.FullHistorySyncOnDemandRequestMetadata\x12\x11\n\tencHandle\x18\x0e \x01(\t\x12M\n\x13messageAccessStatus\x18\x0f \x01(\x0b\x32\x30.whatsapp.Message.HistorySyncMessageAccessStatus\x1a\x9c\x07\n\x0cImageMessage\x12\x0b\n\x03url\x18\x01 \x01(\t\x12\x10\n\x08mimetype\x18\x02 \x01(\t\x12\x0f\n\x07\x63\x61ption\x18\x03 \x01(\t\x12\x12\n\nfileSha256\x18\x04 \x01(\x0c\x12\x12\n\nfileLength\x18\x05 \x01(\x04\x12\x0e\n\x06height\x18\x06 \x01(\r\x12\r\n\x05width\x18\x07 \x01(\r\x12\x10\n\x08mediaKey\x18\x08 \x01(\x0c\x12\x15\n\rfileEncSha256\x18\t \x01(\x0c\x12?\n\x16interactiveAnnotations\x18\n \x03(\x0b\x32\x1f.whatsapp.InteractiveAnnotation\x12\x12\n\ndirectPath\x18\x0b \x01(\t\x12\x19\n\x11mediaKeyTimestamp\x18\x0c \x01(\x03\x12\x15\n\rjpegThumbnail\x18\x10 \x01(\x0c\x12*\n\x0b\x63ontextInfo\x18\x11 \x01(\x0b\x32\x15.whatsapp.ContextInfo\x12\x18\n\x10\x66irstScanSidecar\x18\x12 \x01(\x0c\x12\x17\n\x0f\x66irstScanLength\x18\x13 \x01(\r\x12\x19\n\x11\x65xperimentGroupId\x18\x14 \x01(\r\x12\x14\n\x0cscansSidecar\x18\x15 \x01(\x0c\x12\x13\n\x0bscanLengths\x18\x16 \x03(\r\x12\x1c\n\x14midQualityFileSha256\x18\x17 \x01(\x0c\x12\x1f\n\x17midQualityFileEncSha256\x18\x18 \x01(\x0c\x12\x10\n\x08viewOnce\x18\x19 \x01(\x08\x12\x1b\n\x13thumbnailDirectPath\x18\x1a \x01(\t\x12\x17\n\x0fthumbnailSha256\x18\x1b \x01(\x0c\x12\x1a\n\x12thumbnailEncSha256\x18\x1c \x01(\x0c\x12\x11\n\tstaticUrl\x18\x1d \x01(\t\x12\x34\n\x0b\x61nnotations\x18\x1e \x03(\x0b\x32\x1f.whatsapp.InteractiveAnnotation\x12G\n\x0fimageSourceType\x18\x1f \x01(\x0e\x32..whatsapp.Message.ImageMessage.ImageSourceType\x12\x1a\n\x12\x61\x63\x63\x65ssibilityLabel\x18 \x01(\t\x12\r\n\x05qrUrl\x18\" \x01(\t\"`\n\x0fImageSourceType\x12\x0e\n\nUSER_IMAGE\x10\x00\x12\x10\n\x0c\x41I_GENERATED\x10\x01\x12\x0f\n\x0b\x41I_MODIFIED\x10\x02\x12\x1a\n\x16RASTERIZED_TEXT_STATUS\x10\x03\x1aM\n&InitialSecurityNotificationSettingSync\x12#\n\x1bsecurityNotificationEnabled\x18\x01 \x01(\x08\x1a\xe5\x10\n\x12InteractiveMessage\x12;\n\x06header\x18\x01 \x01(\x0b\x32+.whatsapp.Message.InteractiveMessage.Header\x12\x37\n\x04\x62ody\x18\x02 \x01(\x0b\x32).whatsapp.Message.InteractiveMessage.Body\x12;\n\x06\x66ooter\x18\x03 \x01(\x0b\x32+.whatsapp.Message.InteractiveMessage.Footer\x12\x45\n\x0b\x62loksWidget\x18\x08 \x01(\x0b\x32\x30.whatsapp.Message.InteractiveMessage.BloksWidget\x12*\n\x0b\x63ontextInfo\x18\x0f \x01(\x0b\x32\x15.whatsapp.ContextInfo\x12\x30\n\x0eurlTrackingMap\x18\x10 \x01(\x0b\x32\x18.whatsapp.UrlTrackingMap\x12Q\n\x15shopStorefrontMessage\x18\x04 \x01(\x0b\x32\x30.whatsapp.Message.InteractiveMessage.ShopMessageH\x00\x12S\n\x11\x63ollectionMessage\x18\x05 \x01(\x0b\x32\x36.whatsapp.Message.InteractiveMessage.CollectionMessageH\x00\x12S\n\x11nativeFlowMessage\x18\x06 \x01(\x0b\x32\x36.whatsapp.Message.InteractiveMessage.NativeFlowMessageH\x00\x12O\n\x0f\x63\x61rouselMessage\x18\x07 \x01(\x0b\x32\x34.whatsapp.Message.InteractiveMessage.CarouselMessageH\x00\x1aI\n\x0b\x42loksWidget\x12\x0c\n\x04uuid\x18\x01 \x01(\t\x12\x0c\n\x04\x64\x61ta\x18\x02 \x01(\t\x12\x0c\n\x04type\x18\x03 \x01(\t\x12\x10\n\x08\x66\x61llback\x18\x04 \x01(\t\x1a\x14\n\x04\x42ody\x12\x0c\n\x04text\x18\x01 \x01(\t\x1a\x84\x02\n\x0f\x43\x61rouselMessage\x12\x33\n\x05\x63\x61rds\x18\x01 \x03(\x0b\x32$.whatsapp.Message.InteractiveMessage\x12\x16\n\x0emessageVersion\x18\x02 \x01(\x05\x12_\n\x10\x63\x61rouselCardType\x18\x03 \x01(\x0e\x32\x45.whatsapp.Message.InteractiveMessage.CarouselMessage.CarouselCardType\"C\n\x10\x43\x61rouselCardType\x12\x0b\n\x07UNKNOWN\x10\x00\x12\x11\n\rHSCROLL_CARDS\x10\x01\x12\x0f\n\x0b\x41LBUM_IMAGE\x10\x02\x1aG\n\x11\x43ollectionMessage\x12\x0e\n\x06\x62izJid\x18\x01 \x01(\t\x12\n\n\x02id\x18\x02 \x01(\t\x12\x16\n\x0emessageVersion\x18\x03 \x01(\x05\x1as\n\x06\x46ooter\x12\x0c\n\x04text\x18\x01 \x01(\t\x12\x1a\n\x12hasMediaAttachment\x18\x03 \x01(\x08\x12\x36\n\x0c\x61udioMessage\x18\x02 \x01(\x0b\x32\x1e.whatsapp.Message.AudioMessageH\x00\x42\x07\n\x05media\x1a\xd6\x03\n\x06Header\x12\r\n\x05title\x18\x01 \x01(\t\x12\x10\n\x08subtitle\x18\x02 \x01(\t\x12\x1a\n\x12hasMediaAttachment\x18\x05 \x01(\x08\x12\x45\n\x0b\x62loksWidget\x18\n \x01(\x0b\x32\x30.whatsapp.Message.InteractiveMessage.BloksWidget\x12<\n\x0f\x64ocumentMessage\x18\x03 \x01(\x0b\x32!.whatsapp.Message.DocumentMessageH\x00\x12\x36\n\x0cimageMessage\x18\x04 \x01(\x0b\x32\x1e.whatsapp.Message.ImageMessageH\x00\x12\x17\n\rjpegThumbnail\x18\x06 \x01(\x0cH\x00\x12\x36\n\x0cvideoMessage\x18\x07 \x01(\x0b\x32\x1e.whatsapp.Message.VideoMessageH\x00\x12<\n\x0flocationMessage\x18\x08 \x01(\x0b\x32!.whatsapp.Message.LocationMessageH\x00\x12:\n\x0eproductMessage\x18\t \x01(\x0b\x32 .whatsapp.Message.ProductMessageH\x00\x42\x07\n\x05media\x1a\xdc\x01\n\x11NativeFlowMessage\x12X\n\x07\x62uttons\x18\x01 \x03(\x0b\x32G.whatsapp.Message.InteractiveMessage.NativeFlowMessage.NativeFlowButton\x12\x19\n\x11messageParamsJson\x18\x02 \x01(\t\x12\x16\n\x0emessageVersion\x18\x03 \x01(\x05\x1a:\n\x10NativeFlowButton\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x18\n\x10\x62uttonParamsJson\x18\x02 \x01(\t\x1a\xb4\x01\n\x0bShopMessage\x12\n\n\x02id\x18\x01 \x01(\t\x12I\n\x07surface\x18\x02 \x01(\x0e\x32\x38.whatsapp.Message.InteractiveMessage.ShopMessage.Surface\x12\x16\n\x0emessageVersion\x18\x03 \x01(\x05\"6\n\x07Surface\x12\x13\n\x0fUNKNOWN_SURFACE\x10\x00\x12\x06\n\x02\x46\x42\x10\x01\x12\x06\n\x02IG\x10\x02\x12\x06\n\x02WA\x10\x03\x42\x14\n\x12interactiveMessage\x1a\xee\x03\n\x1aInteractiveResponseMessage\x12?\n\x04\x62ody\x18\x01 \x01(\x0b\x32\x31.whatsapp.Message.InteractiveResponseMessage.Body\x12*\n\x0b\x63ontextInfo\x18\x0f \x01(\x0b\x32\x15.whatsapp.ContextInfo\x12k\n\x19nativeFlowResponseMessage\x18\x02 \x01(\x0b\x32\x46.whatsapp.Message.InteractiveResponseMessage.NativeFlowResponseMessageH\x00\x1a\x87\x01\n\x04\x42ody\x12\x0c\n\x04text\x18\x01 \x01(\t\x12H\n\x06\x66ormat\x18\x02 \x01(\x0e\x32\x38.whatsapp.Message.InteractiveResponseMessage.Body.Format\"\'\n\x06\x46ormat\x12\x0b\n\x07\x44\x45\x46\x41ULT\x10\x00\x12\x10\n\x0c\x45XTENSIONS_1\x10\x01\x1aN\n\x19NativeFlowResponseMessage\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x12\n\nparamsJson\x18\x02 \x01(\t\x12\x0f\n\x07version\x18\x03 \x01(\x05\x42\x1c\n\x1ainteractiveResponseMessage\x1a\xf7\x02\n\x0eInvoiceMessage\x12\x0c\n\x04note\x18\x01 \x01(\t\x12\r\n\x05token\x18\x02 \x01(\t\x12G\n\x0e\x61ttachmentType\x18\x03 \x01(\x0e\x32/.whatsapp.Message.InvoiceMessage.AttachmentType\x12\x1a\n\x12\x61ttachmentMimetype\x18\x04 \x01(\t\x12\x1a\n\x12\x61ttachmentMediaKey\x18\x05 \x01(\x0c\x12#\n\x1b\x61ttachmentMediaKeyTimestamp\x18\x06 \x01(\x03\x12\x1c\n\x14\x61ttachmentFileSha256\x18\x07 \x01(\x0c\x12\x1f\n\x17\x61ttachmentFileEncSha256\x18\x08 \x01(\x0c\x12\x1c\n\x14\x61ttachmentDirectPath\x18\t \x01(\t\x12\x1f\n\x17\x61ttachmentJpegThumbnail\x18\n \x01(\x0c\"$\n\x0e\x41ttachmentType\x12\t\n\x05IMAGE\x10\x00\x12\x07\n\x03PDF\x10\x01\x1aq\n\x11KeepInChatMessage\x12!\n\x03key\x18\x01 \x01(\x0b\x32\x14.whatsapp.MessageKey\x12$\n\x08keepType\x18\x02 \x01(\x0e\x32\x12.whatsapp.KeepType\x12\x13\n\x0btimestampMs\x18\x03 \x01(\x03\x1a\x87\x04\n\x13LinkPreviewMetadata\x12\x42\n\x13paymentLinkMetadata\x18\x01 \x01(\x0b\x32%.whatsapp.Message.PaymentLinkMetadata\x12\x32\n\x0burlMetadata\x18\x02 \x01(\x0b\x32\x1d.whatsapp.Message.URLMetadata\x12\x16\n\x0e\x66\x62\x45xperimentId\x18\x03 \x01(\r\x12\x19\n\x11linkMediaDuration\x18\x04 \x01(\r\x12V\n\x13socialMediaPostType\x18\x05 \x01(\x0e\x32\x39.whatsapp.Message.LinkPreviewMetadata.SocialMediaPostType\x12\x1c\n\x14linkInlineVideoMuted\x18\x06 \x01(\x08\x12\x17\n\x0fvideoContentUrl\x18\x07 \x01(\t\x12.\n\rmusicMetadata\x18\x08 \x01(\x0b\x32\x17.whatsapp.EmbeddedMusic\x12\x1b\n\x13videoContentCaption\x18\t \x01(\t\"i\n\x13SocialMediaPostType\x12\x08\n\x04NONE\x10\x00\x12\x08\n\x04REEL\x10\x01\x12\x0e\n\nLIVE_VIDEO\x10\x02\x12\x0e\n\nLONG_VIDEO\x10\x03\x12\x10\n\x0cSINGLE_IMAGE\x10\x04\x12\x0c\n\x08\x43\x41ROUSEL\x10\x05\x1a\xff\x06\n\x0bListMessage\x12\r\n\x05title\x18\x01 \x01(\t\x12\x13\n\x0b\x64\x65scription\x18\x02 \x01(\t\x12\x12\n\nbuttonText\x18\x03 \x01(\t\x12\x38\n\x08listType\x18\x04 \x01(\x0e\x32&.whatsapp.Message.ListMessage.ListType\x12\x37\n\x08sections\x18\x05 \x03(\x0b\x32%.whatsapp.Message.ListMessage.Section\x12\x46\n\x0fproductListInfo\x18\x06 \x01(\x0b\x32-.whatsapp.Message.ListMessage.ProductListInfo\x12\x12\n\nfooterText\x18\x07 \x01(\t\x12*\n\x0b\x63ontextInfo\x18\x08 \x01(\x0b\x32\x15.whatsapp.ContextInfo\x1a\x1c\n\x07Product\x12\x11\n\tproductId\x18\x01 \x01(\t\x1a\x42\n\x16ProductListHeaderImage\x12\x11\n\tproductId\x18\x01 \x01(\t\x12\x15\n\rjpegThumbnail\x18\x02 \x01(\x0c\x1a\xbd\x01\n\x0fProductListInfo\x12\x45\n\x0fproductSections\x18\x01 \x03(\x0b\x32,.whatsapp.Message.ListMessage.ProductSection\x12I\n\x0bheaderImage\x18\x02 \x01(\x0b\x32\x34.whatsapp.Message.ListMessage.ProductListHeaderImage\x12\x18\n\x10\x62usinessOwnerJid\x18\x03 \x01(\t\x1aX\n\x0eProductSection\x12\r\n\x05title\x18\x01 \x01(\t\x12\x37\n\x08products\x18\x02 \x03(\x0b\x32%.whatsapp.Message.ListMessage.Product\x1a\x38\n\x03Row\x12\r\n\x05title\x18\x01 \x01(\t\x12\x13\n\x0b\x64\x65scription\x18\x02 \x01(\t\x12\r\n\x05rowId\x18\x03 \x01(\t\x1aI\n\x07Section\x12\r\n\x05title\x18\x01 \x01(\t\x12/\n\x04rows\x18\x02 \x03(\x0b\x32!.whatsapp.Message.ListMessage.Row\"<\n\x08ListType\x12\x0b\n\x07UNKNOWN\x10\x00\x12\x11\n\rSINGLE_SELECT\x10\x01\x12\x10\n\x0cPRODUCT_LIST\x10\x02\x1a\xd3\x02\n\x13ListResponseMessage\x12\r\n\x05title\x18\x01 \x01(\t\x12@\n\x08listType\x18\x02 \x01(\x0e\x32..whatsapp.Message.ListResponseMessage.ListType\x12R\n\x11singleSelectReply\x18\x03 \x01(\x0b\x32\x37.whatsapp.Message.ListResponseMessage.SingleSelectReply\x12*\n\x0b\x63ontextInfo\x18\x04 \x01(\x0b\x32\x15.whatsapp.ContextInfo\x12\x13\n\x0b\x64\x65scription\x18\x05 \x01(\t\x1a*\n\x11SingleSelectReply\x12\x15\n\rselectedRowId\x18\x01 \x01(\t\"*\n\x08ListType\x12\x0b\n\x07UNKNOWN\x10\x00\x12\x11\n\rSINGLE_SELECT\x10\x01\x1a\xa1\x02\n\x13LiveLocationMessage\x12\x17\n\x0f\x64\x65greesLatitude\x18\x01 \x01(\x01\x12\x18\n\x10\x64\x65greesLongitude\x18\x02 \x01(\x01\x12\x18\n\x10\x61\x63\x63uracyInMeters\x18\x03 \x01(\r\x12\x12\n\nspeedInMps\x18\x04 \x01(\x02\x12)\n!degreesClockwiseFromMagneticNorth\x18\x05 \x01(\r\x12\x0f\n\x07\x63\x61ption\x18\x06 \x01(\t\x12\x16\n\x0esequenceNumber\x18\x07 \x01(\x03\x12\x12\n\ntimeOffset\x18\x08 \x01(\r\x12\x15\n\rjpegThumbnail\x18\x10 \x01(\x0c\x12*\n\x0b\x63ontextInfo\x18\x11 \x01(\x0b\x32\x15.whatsapp.ContextInfo\x1a\xad\x02\n\x0fLocationMessage\x12\x17\n\x0f\x64\x65greesLatitude\x18\x01 \x01(\x01\x12\x18\n\x10\x64\x65greesLongitude\x18\x02 \x01(\x01\x12\x0c\n\x04name\x18\x03 \x01(\t\x12\x0f\n\x07\x61\x64\x64ress\x18\x04 \x01(\t\x12\x0b\n\x03url\x18\x05 \x01(\t\x12\x0e\n\x06isLive\x18\x06 \x01(\x08\x12\x18\n\x10\x61\x63\x63uracyInMeters\x18\x07 \x01(\r\x12\x12\n\nspeedInMps\x18\x08 \x01(\x02\x12)\n!degreesClockwiseFromMagneticNorth\x18\t \x01(\r\x12\x0f\n\x07\x63omment\x18\x0b \x01(\t\x12\x15\n\rjpegThumbnail\x18\x10 \x01(\x0c\x12*\n\x0b\x63ontextInfo\x18\x11 \x01(\x0b\x32\x15.whatsapp.ContextInfo\x1a\xc6\x01\n\x14MMSThumbnailMetadata\x12\x1b\n\x13thumbnailDirectPath\x18\x01 \x01(\t\x12\x17\n\x0fthumbnailSha256\x18\x02 \x01(\x0c\x12\x1a\n\x12thumbnailEncSha256\x18\x03 \x01(\x0c\x12\x10\n\x08mediaKey\x18\x04 \x01(\x0c\x12\x19\n\x11mediaKeyTimestamp\x18\x05 \x01(\x03\x12\x17\n\x0fthumbnailHeight\x18\x06 \x01(\r\x12\x16\n\x0ethumbnailWidth\x18\x07 \x01(\r\x1a\x8a\x02\n\x14MessageHistoryBundle\x12\x10\n\x08mimetype\x18\x01 \x01(\t\x12\x12\n\nfileSha256\x18\x02 \x01(\x0c\x12\x10\n\x08mediaKey\x18\x03 \x01(\x0c\x12\x15\n\rfileEncSha256\x18\x04 \x01(\x0c\x12\x12\n\ndirectPath\x18\x05 \x01(\t\x12\x19\n\x11mediaKeyTimestamp\x18\x06 \x01(\x03\x12*\n\x0b\x63ontextInfo\x18\x07 \x01(\x0b\x32\x15.whatsapp.ContextInfo\x12H\n\x16messageHistoryMetadata\x18\x08 \x01(\x0b\x32(.whatsapp.Message.MessageHistoryMetadata\x1a\xb5\x01\n\x16MessageHistoryMetadata\x12\x18\n\x10historyReceivers\x18\x01 \x03(\t\x12&\n\x1eoldestMessageTimestampInWindow\x18\x02 \x01(\x03\x12\x14\n\x0cmessageCount\x18\x03 \x01(\x03\x12\x1b\n\x13nonHistoryReceivers\x18\x04 \x03(\t\x12&\n\x1eoldestMessageTimestampInBundle\x18\x05 \x01(\x03\x1a\x8c\x01\n\x14MessageHistoryNotice\x12*\n\x0b\x63ontextInfo\x18\x01 \x01(\x0b\x32\x15.whatsapp.ContextInfo\x12H\n\x16messageHistoryMetadata\x18\x02 \x01(\x0b\x32(.whatsapp.Message.MessageHistoryMetadata\x1a\xbb\x01\n\x1cNewsletterAdminInviteMessage\x12\x15\n\rnewsletterJid\x18\x01 \x01(\t\x12\x16\n\x0enewsletterName\x18\x02 \x01(\t\x12\x15\n\rjpegThumbnail\x18\x03 \x01(\x0c\x12\x0f\n\x07\x63\x61ption\x18\x04 \x01(\t\x12\x18\n\x10inviteExpiration\x18\x05 \x01(\x03\x12*\n\x0b\x63ontextInfo\x18\x06 \x01(\x0b\x32\x15.whatsapp.ContextInfo\x1a\xa4\x01\n\x1fNewsletterFollowerInviteMessage\x12\x15\n\rnewsletterJid\x18\x01 \x01(\t\x12\x16\n\x0enewsletterName\x18\x02 \x01(\t\x12\x15\n\rjpegThumbnail\x18\x03 \x01(\x0c\x12\x0f\n\x07\x63\x61ption\x18\x04 \x01(\t\x12*\n\x0b\x63ontextInfo\x18\x05 \x01(\x0b\x32\x15.whatsapp.ContextInfo\x1a\x9d\x04\n\x0cOrderMessage\x12\x0f\n\x07orderId\x18\x01 \x01(\t\x12\x11\n\tthumbnail\x18\x02 \x01(\x0c\x12\x11\n\titemCount\x18\x03 \x01(\x05\x12:\n\x06status\x18\x04 \x01(\x0e\x32*.whatsapp.Message.OrderMessage.OrderStatus\x12<\n\x07surface\x18\x05 \x01(\x0e\x32+.whatsapp.Message.OrderMessage.OrderSurface\x12\x0f\n\x07message\x18\x06 \x01(\t\x12\x12\n\norderTitle\x18\x07 \x01(\t\x12\x11\n\tsellerJid\x18\x08 \x01(\t\x12\r\n\x05token\x18\t \x01(\t\x12\x17\n\x0ftotalAmount1000\x18\n \x01(\x03\x12\x19\n\x11totalCurrencyCode\x18\x0b \x01(\t\x12*\n\x0b\x63ontextInfo\x18\x11 \x01(\x0b\x32\x15.whatsapp.ContextInfo\x12\x16\n\x0emessageVersion\x18\x0c \x01(\x05\x12\x33\n\x15orderRequestMessageId\x18\r \x01(\x0b\x32\x14.whatsapp.MessageKey\x12\x13\n\x0b\x63\x61talogType\x18\x0f \x01(\t\"6\n\x0bOrderStatus\x12\x0b\n\x07INQUIRY\x10\x01\x12\x0c\n\x08\x41\x43\x43\x45PTED\x10\x02\x12\x0c\n\x08\x44\x45\x43LINED\x10\x03\"\x1b\n\x0cOrderSurface\x12\x0b\n\x07\x43\x41TALOG\x10\x01\x1a\x39\n\x17PaymentExtendedMetadata\x12\x0c\n\x04type\x18\x01 \x01(\r\x12\x10\n\x08platform\x18\x02 \x01(\t\x1a\xcf\x02\n\x14PaymentInviteMessage\x12G\n\x0bserviceType\x18\x01 \x01(\x0e\x32\x32.whatsapp.Message.PaymentInviteMessage.ServiceType\x12\x17\n\x0f\x65xpiryTimestamp\x18\x02 \x01(\x03\x12\x19\n\x11incentiveEligible\x18\x03 \x01(\x08\x12\x12\n\nreferralId\x18\x04 \x01(\t\x12\x45\n\ninviteType\x18\x05 \x01(\x0e\x32\x31.whatsapp.Message.PaymentInviteMessage.InviteType\"%\n\nInviteType\x12\x0b\n\x07\x44\x45\x46\x41ULT\x10\x00\x12\n\n\x06MAPPER\x10\x01\"8\n\x0bServiceType\x12\x0b\n\x07UNKNOWN\x10\x00\x12\t\n\x05\x46\x42PAY\x10\x01\x12\x08\n\x04NOVI\x10\x02\x12\x07\n\x03UPI\x10\x03\x1a\xf8\x03\n\x13PaymentLinkMetadata\x12G\n\x06\x62utton\x18\x01 \x01(\x0b\x32\x37.whatsapp.Message.PaymentLinkMetadata.PaymentLinkButton\x12G\n\x06header\x18\x02 \x01(\x0b\x32\x37.whatsapp.Message.PaymentLinkMetadata.PaymentLinkHeader\x12K\n\x08provider\x18\x03 \x01(\x0b\x32\x39.whatsapp.Message.PaymentLinkMetadata.PaymentLinkProvider\x1a(\n\x11PaymentLinkButton\x12\x13\n\x0b\x64isplayText\x18\x01 \x01(\t\x1a\xac\x01\n\x11PaymentLinkHeader\x12\x61\n\nheaderType\x18\x01 \x01(\x0e\x32M.whatsapp.Message.PaymentLinkMetadata.PaymentLinkHeader.PaymentLinkHeaderType\"4\n\x15PaymentLinkHeaderType\x12\x10\n\x0cLINK_PREVIEW\x10\x00\x12\t\n\x05ORDER\x10\x01\x1a)\n\x13PaymentLinkProvider\x12\x12\n\nparamsJson\x18\x01 \x01(\t\x1a\xb6\x04\n\x16PaymentReminderMessage\x12\x12\n\nreminderId\x18\x01 \x01(\t\x12\x12\n\ninstanceId\x18\x02 \x01(\t\x12\x13\n\x0b\x64\x65scription\x18\x03 \x01(\t\x12M\n\tfrequency\x18\x04 \x01(\x0e\x32:.whatsapp.Message.PaymentReminderMessage.ReminderFrequency\x12G\n\x06status\x18\x05 \x01(\x0e\x32\x37.whatsapp.Message.PaymentReminderMessage.ReminderStatus\x12\x10\n\x08payeeVpa\x18\x06 \x01(\t\x12\x10\n\x08payeeJid\x18\x07 \x01(\t\x12\x10\n\x08payerJid\x18\x08 \x01(\t\x12\x1f\n\x06\x61mount\x18\t \x01(\x0b\x32\x0f.whatsapp.Money\"j\n\x11ReminderFrequency\x12\x1e\n\x1aREMINDER_FREQUENCY_UNKNOWN\x10\x00\x12\n\n\x06WEEKLY\x10\x01\x12\r\n\tBI_WEEKLY\x10\x02\x12\x0b\n\x07MONTHLY\x10\x03\x12\r\n\tQUARTERLY\x10\x04\"\x83\x01\n\x0eReminderStatus\x12\x1b\n\x17REMINDER_STATUS_UNKNOWN\x10\x00\x12\n\n\x06\x41\x43TIVE\x10\x01\x12\x18\n\x14\x43\x41NCELLED_BY_CREATOR\x10\x02\x12\x17\n\x13STOPPED_BY_RECEIVER\x10\x03\x12\x0b\n\x07\x45XPIRED\x10\x04\x12\x08\n\x04PAID\x10\x05\x1a\xf8\x15\n\x1fPeerDataOperationRequestMessage\x12T\n\x1cpeerDataOperationRequestType\x18\x01 \x01(\x0e\x32..whatsapp.Message.PeerDataOperationRequestType\x12h\n\x16requestStickerReupload\x18\x02 \x03(\x0b\x32H.whatsapp.Message.PeerDataOperationRequestMessage.RequestStickerReupload\x12^\n\x11requestUrlPreview\x18\x03 \x03(\x0b\x32\x43.whatsapp.Message.PeerDataOperationRequestMessage.RequestUrlPreview\x12p\n\x1ahistorySyncOnDemandRequest\x18\x04 \x01(\x0b\x32L.whatsapp.Message.PeerDataOperationRequestMessage.HistorySyncOnDemandRequest\x12z\n\x1fplaceholderMessageResendRequest\x18\x05 \x03(\x0b\x32Q.whatsapp.Message.PeerDataOperationRequestMessage.PlaceholderMessageResendRequest\x12x\n\x1e\x66ullHistorySyncOnDemandRequest\x18\x06 \x01(\x0b\x32P.whatsapp.Message.PeerDataOperationRequestMessage.FullHistorySyncOnDemandRequest\x12\x82\x01\n#syncdCollectionFatalRecoveryRequest\x18\x07 \x01(\x0b\x32U.whatsapp.Message.PeerDataOperationRequestMessage.SyncDCollectionFatalRecoveryRequest\x12t\n\x1chistorySyncChunkRetryRequest\x18\x08 \x01(\x0b\x32N.whatsapp.Message.PeerDataOperationRequestMessage.HistorySyncChunkRetryRequest\x12\\\n\x10galaxyFlowAction\x18\t \x01(\x0b\x32\x42.whatsapp.Message.PeerDataOperationRequestMessage.GalaxyFlowAction\x12\x8a\x01\n\'companionCanonicalUserNonceFetchRequest\x18\n \x01(\x0b\x32Y.whatsapp.Message.PeerDataOperationRequestMessage.CompanionCanonicalUserNonceFetchRequest\x12\x88\x01\n&bizBroadcastInsightsContactListRequest\x18\x0b \x01(\x0b\x32X.whatsapp.Message.PeerDataOperationRequestMessage.BizBroadcastInsightsContactListRequest\x12\x80\x01\n\"bizBroadcastInsightsRefreshRequest\x18\x0c \x01(\x0b\x32T.whatsapp.Message.PeerDataOperationRequestMessage.BizBroadcastInsightsRefreshRequest\x1a<\n&BizBroadcastInsightsContactListRequest\x12\x12\n\ncampaignId\x18\x01 \x01(\t\x1a\x38\n\"BizBroadcastInsightsRefreshRequest\x12\x12\n\ncampaignId\x18\x01 \x01(\t\x1a\x46\n\'CompanionCanonicalUserNonceFetchRequest\x12\x1b\n\x13registrationTraceId\x18\x01 \x01(\t\x1a\x8f\x02\n\x1e\x46ullHistorySyncOnDemandRequest\x12Q\n\x0frequestMetadata\x18\x01 \x01(\x0b\x32\x38.whatsapp.Message.FullHistorySyncOnDemandRequestMetadata\x12\x42\n\x11historySyncConfig\x18\x02 \x01(\x0b\x32\'.whatsapp.DeviceProps.HistorySyncConfig\x12V\n\x1d\x66ullHistorySyncOnDemandConfig\x18\x03 \x01(\x0b\x32/.whatsapp.Message.FullHistorySyncOnDemandConfig\x1a\x92\x02\n\x10GalaxyFlowAction\x12\x65\n\x04type\x18\x01 \x01(\x0e\x32W.whatsapp.Message.PeerDataOperationRequestMessage.GalaxyFlowAction.GalaxyFlowActionType\x12\x0e\n\x06\x66lowId\x18\x02 \x01(\t\x12\x10\n\x08stanzaId\x18\x03 \x01(\t\x12#\n\x1bgalaxyFlowDownloadRequestId\x18\x04 \x01(\t\x12\r\n\x05\x61gmId\x18\x05 \x01(\t\"A\n\x14GalaxyFlowActionType\x12\x11\n\rNOTIFY_LAUNCH\x10\x01\x12\x16\n\x12\x44OWNLOAD_RESPONSES\x10\x02\x1a\x9d\x01\n\x1cHistorySyncChunkRetryRequest\x12\x33\n\x08syncType\x18\x01 \x01(\x0e\x32!.whatsapp.Message.HistorySyncType\x12\x12\n\nchunkOrder\x18\x02 \x01(\r\x12\x1b\n\x13\x63hunkNotificationId\x18\x03 \x01(\t\x12\x17\n\x0fregenerateChunk\x18\x04 \x01(\x08\x1a\xc6\x01\n\x1aHistorySyncOnDemandRequest\x12\x0f\n\x07\x63hatJid\x18\x01 \x01(\t\x12\x13\n\x0boldestMsgId\x18\x02 \x01(\t\x12\x17\n\x0foldestMsgFromMe\x18\x03 \x01(\x08\x12\x18\n\x10onDemandMsgCount\x18\x04 \x01(\x05\x12\x1c\n\x14oldestMsgTimestampMs\x18\x05 \x01(\x03\x12\x12\n\naccountLid\x18\x06 \x01(\t\x12\x1d\n\x15supportInlineResponse\x18\x07 \x01(\x08\x1aK\n\x1fPlaceholderMessageResendRequest\x12(\n\nmessageKey\x18\x01 \x01(\x0b\x32\x14.whatsapp.MessageKey\x1a,\n\x16RequestStickerReupload\x12\x12\n\nfileSha256\x18\x01 \x01(\t\x1a<\n\x11RequestUrlPreview\x12\x0b\n\x03url\x18\x01 \x01(\t\x12\x1a\n\x12includeHqThumbnail\x18\x02 \x01(\x08\x1aP\n#SyncDCollectionFatalRecoveryRequest\x12\x16\n\x0e\x63ollectionName\x18\x01 \x01(\t\x12\x11\n\ttimestamp\x18\x02 \x01(\x03\x1a\xef$\n\'PeerDataOperationRequestResponseMessage\x12T\n\x1cpeerDataOperationRequestType\x18\x01 \x01(\x0e\x32..whatsapp.Message.PeerDataOperationRequestType\x12\x10\n\x08stanzaId\x18\x02 \x01(\t\x12r\n\x17peerDataOperationResult\x18\x03 \x03(\x0b\x32Q.whatsapp.Message.PeerDataOperationRequestResponseMessage.PeerDataOperationResult\x1a\xe7\"\n\x17PeerDataOperationResult\x12\x46\n\x11mediaUploadResult\x18\x01 \x01(\x0e\x32+.whatsapp.MediaRetryNotification.ResultType\x12\x38\n\x0estickerMessage\x18\x02 \x01(\x0b\x32 .whatsapp.Message.StickerMessage\x12\x82\x01\n\x13linkPreviewResponse\x18\x03 \x01(\x0b\x32\x65.whatsapp.Message.PeerDataOperationRequestResponseMessage.PeerDataOperationResult.LinkPreviewResponse\x12\x9c\x01\n placeholderMessageResendResponse\x18\x04 \x01(\x0b\x32r.whatsapp.Message.PeerDataOperationRequestResponseMessage.PeerDataOperationResult.PlaceholderMessageResendResponse\x12\x93\x01\n\x1fwaffleNonceFetchRequestResponse\x18\x05 \x01(\x0b\x32j.whatsapp.Message.PeerDataOperationRequestResponseMessage.PeerDataOperationResult.WaffleNonceFetchResponse\x12\xa8\x01\n&fullHistorySyncOnDemandRequestResponse\x18\x06 \x01(\x0b\x32x.whatsapp.Message.PeerDataOperationRequestResponseMessage.PeerDataOperationResult.FullHistorySyncOnDemandRequestResponse\x12\xa1\x01\n&companionMetaNonceFetchRequestResponse\x18\x07 \x01(\x0b\x32q.whatsapp.Message.PeerDataOperationRequestResponseMessage.PeerDataOperationResult.CompanionMetaNonceFetchResponse\x12\xa0\x01\n\"syncdSnapshotFatalRecoveryResponse\x18\x08 \x01(\x0b\x32t.whatsapp.Message.PeerDataOperationRequestResponseMessage.PeerDataOperationResult.SyncDSnapshotFatalRecoveryResponse\x12\xb3\x01\n/companionCanonicalUserNonceFetchRequestResponse\x18\t \x01(\x0b\x32z.whatsapp.Message.PeerDataOperationRequestResponseMessage.PeerDataOperationResult.CompanionCanonicalUserNonceFetchResponse\x12\x96\x01\n\x1dhistorySyncChunkRetryResponse\x18\n \x01(\x0b\x32o.whatsapp.Message.PeerDataOperationRequestResponseMessage.PeerDataOperationResult.HistorySyncChunkRetryResponse\x12\x88\x01\n\x16\x66lowResponsesCsvBundle\x18\x0b \x01(\x0b\x32h.whatsapp.Message.PeerDataOperationRequestResponseMessage.PeerDataOperationResult.FlowResponsesCsvBundle\x12\xaa\x01\n\'bizBroadcastInsightsContactListResponse\x18\x0c \x01(\x0b\x32y.whatsapp.Message.PeerDataOperationRequestResponseMessage.PeerDataOperationResult.BizBroadcastInsightsContactListResponse\x1a\xd9\x01\n\'BizBroadcastInsightsContactListResponse\x12\x12\n\ncampaignId\x18\x01 \x01(\t\x12\x13\n\x0btimestampMs\x18\x02 \x01(\x03\x12\x84\x01\n\x08\x63ontacts\x18\x03 \x03(\x0b\x32r.whatsapp.Message.PeerDataOperationRequestResponseMessage.PeerDataOperationResult.BizBroadcastInsightsContactState\x1am\n BizBroadcastInsightsContactState\x12\x12\n\ncontactJid\x18\x01 \x01(\t\x12\x35\n\x05state\x18\x02 \x01(\x0e\x32&.whatsapp.Message.InsightDeliveryState\x1a_\n(CompanionCanonicalUserNonceFetchResponse\x12\r\n\x05nonce\x18\x01 \x01(\t\x12\x0e\n\x06waFbid\x18\x02 \x01(\t\x12\x14\n\x0c\x66orceRefresh\x18\x03 \x01(\x08\x1a\x30\n\x1f\x43ompanionMetaNonceFetchResponse\x12\r\n\x05nonce\x18\x01 \x01(\t\x1a\xf1\x01\n\x16\x46lowResponsesCsvBundle\x12\x0e\n\x06\x66lowId\x18\x01 \x01(\t\x12#\n\x1bgalaxyFlowDownloadRequestId\x18\x02 \x01(\t\x12\x10\n\x08\x66ileName\x18\x03 \x01(\t\x12\x10\n\x08mimetype\x18\x04 \x01(\t\x12\x12\n\nfileSha256\x18\x05 \x01(\x0c\x12\x10\n\x08mediaKey\x18\x06 \x01(\x0c\x12\x15\n\rfileEncSha256\x18\x07 \x01(\x0c\x12\x12\n\ndirectPath\x18\x08 \x01(\t\x12\x19\n\x11mediaKeyTimestamp\x18\t \x01(\x03\x12\x12\n\nfileLength\x18\n \x01(\x04\x1a\x89\x02\n&FullHistorySyncOnDemandRequestResponse\x12Q\n\x0frequestMetadata\x18\x01 \x01(\x0b\x32\x38.whatsapp.Message.FullHistorySyncOnDemandRequestMetadata\x12\x8b\x01\n\x0cresponseCode\x18\x02 \x01(\x0e\x32u.whatsapp.Message.PeerDataOperationRequestResponseMessage.PeerDataOperationResult.FullHistorySyncOnDemandResponseCode\x1a\x9b\x02\n\x1dHistorySyncChunkRetryResponse\x12\x33\n\x08syncType\x18\x01 \x01(\x0e\x32!.whatsapp.Message.HistorySyncType\x12\x12\n\nchunkOrder\x18\x02 \x01(\r\x12\x11\n\trequestId\x18\x03 \x01(\t\x12\x89\x01\n\x0cresponseCode\x18\x04 \x01(\x0e\x32s.whatsapp.Message.PeerDataOperationRequestResponseMessage.PeerDataOperationResult.HistorySyncChunkRetryResponseCode\x12\x12\n\ncanRecover\x18\x05 \x01(\x08\x1a\xf8\x05\n\x13LinkPreviewResponse\x12\x0b\n\x03url\x18\x01 \x01(\t\x12\r\n\x05title\x18\x02 \x01(\t\x12\x13\n\x0b\x64\x65scription\x18\x03 \x01(\t\x12\x11\n\tthumbData\x18\x04 \x01(\x0c\x12\x11\n\tmatchText\x18\x06 \x01(\t\x12\x13\n\x0bpreviewType\x18\x07 \x01(\t\x12\x9b\x01\n\x0bhqThumbnail\x18\x08 \x01(\x0b\x32\x85\x01.whatsapp.Message.PeerDataOperationRequestResponseMessage.PeerDataOperationResult.LinkPreviewResponse.LinkPreviewHighQualityThumbnail\x12\x9a\x01\n\x0fpreviewMetadata\x18\t \x01(\x0b\x32\x80\x01.whatsapp.Message.PeerDataOperationRequestResponseMessage.PeerDataOperationResult.LinkPreviewResponse.PaymentLinkPreviewMetadata\x1a\xb6\x01\n\x1fLinkPreviewHighQualityThumbnail\x12\x12\n\ndirectPath\x18\x01 \x01(\t\x12\x11\n\tthumbHash\x18\x02 \x01(\t\x12\x14\n\x0c\x65ncThumbHash\x18\x03 \x01(\t\x12\x10\n\x08mediaKey\x18\x04 \x01(\x0c\x12\x1b\n\x13mediaKeyTimestampMs\x18\x05 \x01(\x03\x12\x12\n\nthumbWidth\x18\x06 \x01(\x05\x12\x13\n\x0bthumbHeight\x18\x07 \x01(\x05\x1a\x80\x01\n\x1aPaymentLinkPreviewMetadata\x12\x1a\n\x12isBusinessVerified\x18\x01 \x01(\x08\x12\x14\n\x0cproviderName\x18\x02 \x01(\t\x12\x0e\n\x06\x61mount\x18\x03 \x01(\t\x12\x0e\n\x06offset\x18\x04 \x01(\t\x12\x10\n\x08\x63urrency\x18\x05 \x01(\t\x1a?\n PlaceholderMessageResendResponse\x12\x1b\n\x13webMessageInfoBytes\x18\x01 \x01(\x0c\x1aV\n\"SyncDSnapshotFatalRecoveryResponse\x12\x1a\n\x12\x63ollectionSnapshot\x18\x01 \x01(\x0c\x12\x14\n\x0cisCompressed\x18\x02 \x01(\x08\x1a<\n\x18WaffleNonceFetchResponse\x12\r\n\x05nonce\x18\x01 \x01(\t\x12\x11\n\twaEntFbid\x18\x02 \x01(\t\"\xa7\x02\n#FullHistorySyncOnDemandResponseCode\x12\x13\n\x0fREQUEST_SUCCESS\x10\x00\x12\x18\n\x14REQUEST_TIME_EXPIRED\x10\x01\x12\x1c\n\x18\x44\x45\x43LINED_SHARING_HISTORY\x10\x02\x12\x11\n\rGENERIC_ERROR\x10\x03\x12$\n ERROR_REQUEST_ON_NON_SMB_PRIMARY\x10\x04\x12%\n!ERROR_HOSTED_DEVICE_NOT_CONNECTED\x10\x05\x12*\n&ERROR_HOSTED_DEVICE_LOGIN_TIME_NOT_SET\x10\x06\x12\'\n#ERROR_MULTI_PROVIDER_NOT_CONFIGURED\x10\x07\"\x9e\x01\n!HistorySyncChunkRetryResponseCode\x12\x14\n\x10GENERATION_ERROR\x10\x01\x12\x12\n\x0e\x43HUNK_CONSUMED\x10\x02\x12\x0b\n\x07TIMEOUT\x10\x03\x12\x15\n\x11SESSION_EXHAUSTED\x10\x04\x12\x13\n\x0f\x43HUNK_EXHAUSTED\x10\x05\x12\x16\n\x12\x44UPLICATED_REQUEST\x10\x06\x1a\xc5\x01\n\x10PinInChatMessage\x12!\n\x03key\x18\x01 \x01(\x0b\x32\x14.whatsapp.MessageKey\x12\x35\n\x04type\x18\x02 \x01(\x0e\x32\'.whatsapp.Message.PinInChatMessage.Type\x12\x19\n\x11senderTimestampMs\x18\x03 \x01(\x03\"<\n\x04Type\x12\x10\n\x0cUNKNOWN_TYPE\x10\x00\x12\x0f\n\x0bPIN_FOR_ALL\x10\x01\x12\x11\n\rUNPIN_FOR_ALL\x10\x02\x1a\x84\x01\n\x12PlaceholderMessage\x12\x42\n\x04type\x18\x01 \x01(\x0e\x32\x34.whatsapp.Message.PlaceholderMessage.PlaceholderType\"*\n\x0fPlaceholderType\x12\x17\n\x13MASK_LINKED_DEVICES\x10\x00\x1a\xcc\x01\n\x14PollAddOptionMessage\x12\x34\n\x16pollCreationMessageKey\x18\x01 \x01(\x0b\x32\x14.whatsapp.MessageKey\x12?\n\taddOption\x18\x02 \x01(\x0b\x32,.whatsapp.Message.PollCreationMessage.Option\x12=\n\x08metadata\x18\x03 \x01(\x0b\x32+.whatsapp.Message.PollUpdateMessageMetadata\x1a\xe5\x03\n\x13PollCreationMessage\x12\x0e\n\x06\x65ncKey\x18\x01 \x01(\x0c\x12\x0c\n\x04name\x18\x02 \x01(\t\x12=\n\x07options\x18\x03 \x03(\x0b\x32,.whatsapp.Message.PollCreationMessage.Option\x12\x1e\n\x16selectableOptionsCount\x18\x04 \x01(\r\x12*\n\x0b\x63ontextInfo\x18\x05 \x01(\x0b\x32\x15.whatsapp.ContextInfo\x12:\n\x0fpollContentType\x18\x06 \x01(\x0e\x32!.whatsapp.Message.PollContentType\x12,\n\x08pollType\x18\x07 \x01(\x0e\x32\x1a.whatsapp.Message.PollType\x12\x43\n\rcorrectAnswer\x18\x08 \x01(\x0b\x32,.whatsapp.Message.PollCreationMessage.Option\x12\x0f\n\x07\x65ndTime\x18\t \x01(\x03\x12\x1b\n\x13hideParticipantName\x18\n \x01(\x08\x12\x16\n\x0e\x61llowAddOption\x18\x0b \x01(\x08\x1a\x30\n\x06Option\x12\x12\n\noptionName\x18\x01 \x01(\t\x12\x12\n\noptionHash\x18\x02 \x01(\t\x1a\x31\n\x0cPollEncValue\x12\x12\n\nencPayload\x18\x01 \x01(\x0c\x12\r\n\x05\x65ncIv\x18\x02 \x01(\x0c\x1a\x85\x02\n\x19PollResultSnapshotMessage\x12\x0c\n\x04name\x18\x01 \x01(\t\x12G\n\tpollVotes\x18\x02 \x03(\x0b\x32\x34.whatsapp.Message.PollResultSnapshotMessage.PollVote\x12*\n\x0b\x63ontextInfo\x18\x03 \x01(\x0b\x32\x15.whatsapp.ContextInfo\x12,\n\x08pollType\x18\x04 \x01(\x0e\x32\x1a.whatsapp.Message.PollType\x1a\x37\n\x08PollVote\x12\x12\n\noptionName\x18\x01 \x01(\t\x12\x17\n\x0foptionVoteCount\x18\x02 \x01(\x03\x1a\xd1\x01\n\x11PollUpdateMessage\x12\x34\n\x16pollCreationMessageKey\x18\x01 \x01(\x0b\x32\x14.whatsapp.MessageKey\x12,\n\x04vote\x18\x02 \x01(\x0b\x32\x1e.whatsapp.Message.PollEncValue\x12=\n\x08metadata\x18\x03 \x01(\x0b\x32+.whatsapp.Message.PollUpdateMessageMetadata\x12\x19\n\x11senderTimestampMs\x18\x04 \x01(\x03\x1aK\n\x19PollUpdateMessageMetadata\x12\x14\n\x0cpollNameHash\x18\x01 \x01(\x0c\x12\x18\n\x10lastEditStanzaId\x18\x02 \x01(\t\x1a*\n\x0fPollVoteMessage\x12\x17\n\x0fselectedOptions\x18\x01 \x03(\x0c\x1a\x99\x05\n\x0eProductMessage\x12\x41\n\x07product\x18\x01 \x01(\x0b\x32\x30.whatsapp.Message.ProductMessage.ProductSnapshot\x12\x18\n\x10\x62usinessOwnerJid\x18\x02 \x01(\t\x12\x41\n\x07\x63\x61talog\x18\x04 \x01(\x0b\x32\x30.whatsapp.Message.ProductMessage.CatalogSnapshot\x12\x0c\n\x04\x62ody\x18\x05 \x01(\t\x12\x0e\n\x06\x66ooter\x18\x06 \x01(\t\x12*\n\x0b\x63ontextInfo\x18\x11 \x01(\x0b\x32\x15.whatsapp.ContextInfo\x1ak\n\x0f\x43\x61talogSnapshot\x12\x34\n\x0c\x63\x61talogImage\x18\x01 \x01(\x0b\x32\x1e.whatsapp.Message.ImageMessage\x12\r\n\x05title\x18\x02 \x01(\t\x12\x13\n\x0b\x64\x65scription\x18\x03 \x01(\t\x1a\xaf\x02\n\x0fProductSnapshot\x12\x34\n\x0cproductImage\x18\x01 \x01(\x0b\x32\x1e.whatsapp.Message.ImageMessage\x12\x11\n\tproductId\x18\x02 \x01(\t\x12\r\n\x05title\x18\x03 \x01(\t\x12\x13\n\x0b\x64\x65scription\x18\x04 \x01(\t\x12\x14\n\x0c\x63urrencyCode\x18\x05 \x01(\t\x12\x17\n\x0fpriceAmount1000\x18\x06 \x01(\x03\x12\x12\n\nretailerId\x18\x07 \x01(\t\x12\x0b\n\x03url\x18\x08 \x01(\t\x12\x19\n\x11productImageCount\x18\t \x01(\r\x12\x14\n\x0c\x66irstImageId\x18\x0b \x01(\t\x12\x1b\n\x13salePriceAmount1000\x18\x0c \x01(\x03\x12\x11\n\tsignedUrl\x18\r \x01(\t\x1a\x99\x14\n\x0fProtocolMessage\x12!\n\x03key\x18\x01 \x01(\x0b\x32\x14.whatsapp.MessageKey\x12\x34\n\x04type\x18\x02 \x01(\x0e\x32&.whatsapp.Message.ProtocolMessage.Type\x12\x1b\n\x13\x65phemeralExpiration\x18\x04 \x01(\r\x12!\n\x19\x65phemeralSettingTimestamp\x18\x05 \x01(\x03\x12J\n\x17historySyncNotification\x18\x06 \x01(\x0b\x32).whatsapp.Message.HistorySyncNotification\x12\x44\n\x14\x61ppStateSyncKeyShare\x18\x07 \x01(\x0b\x32&.whatsapp.Message.AppStateSyncKeyShare\x12H\n\x16\x61ppStateSyncKeyRequest\x18\x08 \x01(\x0b\x32(.whatsapp.Message.AppStateSyncKeyRequest\x12h\n&initialSecurityNotificationSettingSync\x18\t \x01(\x0b\x32\x38.whatsapp.Message.InitialSecurityNotificationSettingSync\x12`\n\"appStateFatalExceptionNotification\x18\n \x01(\x0b\x32\x34.whatsapp.Message.AppStateFatalExceptionNotification\x12\x34\n\x10\x64isappearingMode\x18\x0b \x01(\x0b\x32\x1a.whatsapp.DisappearingMode\x12(\n\reditedMessage\x18\x0e \x01(\x0b\x32\x11.whatsapp.Message\x12\x13\n\x0btimestampMs\x18\x0f \x01(\x03\x12Z\n\x1fpeerDataOperationRequestMessage\x18\x10 \x01(\x0b\x32\x31.whatsapp.Message.PeerDataOperationRequestMessage\x12j\n\'peerDataOperationRequestResponseMessage\x18\x11 \x01(\x0b\x32\x39.whatsapp.Message.PeerDataOperationRequestResponseMessage\x12\x38\n\x12\x62otFeedbackMessage\x18\x12 \x01(\x0b\x32\x1c.whatsapp.BotFeedbackMessage\x12\x12\n\ninvokerJid\x18\x13 \x01(\t\x12V\n\x1drequestWelcomeMessageMetadata\x18\x14 \x01(\x0b\x32/.whatsapp.Message.RequestWelcomeMessageMetadata\x12\x38\n\x12mediaNotifyMessage\x18\x15 \x01(\x0b\x32\x1c.whatsapp.MediaNotifyMessage\x12^\n!cloudApiThreadControlNotification\x18\x16 \x01(\x0b\x32\x33.whatsapp.Message.CloudAPIThreadControlNotification\x12P\n\x1elidMigrationMappingSyncMessage\x18\x17 \x01(\x0b\x32(.whatsapp.LIDMigrationMappingSyncMessage\x12,\n\x0climitSharing\x18\x18 \x01(\x0b\x32\x16.whatsapp.LimitSharing\x12\x15\n\raiPsiMetadata\x18\x19 \x01(\x0c\x12.\n\raiQueryFanout\x18\x1a \x01(\x0b\x32\x17.whatsapp.AIQueryFanout\x12*\n\x0bmemberLabel\x18\x1b \x01(\x0b\x32\x15.whatsapp.MemberLabel\x12\x44\n\x18\x61iMediaCollectionMessage\x18\x1c \x01(\x0b\x32\".whatsapp.AIMediaCollectionMessage\x12\x19\n\x11\x61\x66terReadDuration\x18\x1d \x01(\r\x12<\n\x10\x63hatThemeSetting\x18\x1e \x01(\x0b\x32\".whatsapp.Message.ChatThemeSetting\x12:\n\x13\x61iMetadataOperation\x18\x1f \x01(\x0b\x32\x1d.whatsapp.AIMetadataOperation\"\xf9\x06\n\x04Type\x12\n\n\x06REVOKE\x10\x00\x12\x15\n\x11\x45PHEMERAL_SETTING\x10\x03\x12\x1b\n\x17\x45PHEMERAL_SYNC_RESPONSE\x10\x04\x12\x1d\n\x19HISTORY_SYNC_NOTIFICATION\x10\x05\x12\x1c\n\x18\x41PP_STATE_SYNC_KEY_SHARE\x10\x06\x12\x1e\n\x1a\x41PP_STATE_SYNC_KEY_REQUEST\x10\x07\x12\x1f\n\x1bMSG_FANOUT_BACKFILL_REQUEST\x10\x08\x12.\n*INITIAL_SECURITY_NOTIFICATION_SETTING_SYNC\x10\t\x12*\n&APP_STATE_FATAL_EXCEPTION_NOTIFICATION\x10\n\x12\x16\n\x12SHARE_PHONE_NUMBER\x10\x0b\x12\x10\n\x0cMESSAGE_EDIT\x10\x0e\x12\'\n#PEER_DATA_OPERATION_REQUEST_MESSAGE\x10\x10\x12\x30\n,PEER_DATA_OPERATION_REQUEST_RESPONSE_MESSAGE\x10\x11\x12\x1b\n\x17REQUEST_WELCOME_MESSAGE\x10\x12\x12\x18\n\x14\x42OT_FEEDBACK_MESSAGE\x10\x13\x12\x18\n\x14MEDIA_NOTIFY_MESSAGE\x10\x14\x12)\n%CLOUD_API_THREAD_CONTROL_NOTIFICATION\x10\x15\x12\x1e\n\x1aLID_MIGRATION_MAPPING_SYNC\x10\x16\x12\x14\n\x10REMINDER_MESSAGE\x10\x17\x12\x1f\n\x1b\x42OT_MEMU_ONBOARDING_MESSAGE\x10\x18\x12\x1a\n\x16STATUS_MENTION_MESSAGE\x10\x19\x12\x1b\n\x17STOP_GENERATION_MESSAGE\x10\x1a\x12\x11\n\rLIMIT_SHARING\x10\x1b\x12\x13\n\x0f\x41I_PSI_METADATA\x10\x1c\x12\x13\n\x0f\x41I_QUERY_FANOUT\x10\x1d\x12\x1d\n\x19GROUP_MEMBER_LABEL_CHANGE\x10\x1e\x12\x1f\n\x1b\x41I_MEDIA_COLLECTION_MESSAGE\x10\x1f\x12\x16\n\x12MESSAGE_UNSCHEDULE\x10 \x12\x16\n\x12\x43HAT_THEME_SETTING\x10\"\x12\x19\n\x15\x41I_METADATA_OPERATION\x10#\x1aJ\n\x17QuestionResponseMessage\x12!\n\x03key\x18\x01 \x01(\x0b\x32\x14.whatsapp.MessageKey\x12\x0c\n\x04text\x18\x02 \x01(\t\x1ar\n\x0fReactionMessage\x12!\n\x03key\x18\x01 \x01(\x0b\x32\x14.whatsapp.MessageKey\x12\x0c\n\x04text\x18\x02 \x01(\t\x12\x13\n\x0bgroupingKey\x18\x03 \x01(\t\x12\x19\n\x11senderTimestampMs\x18\x04 \x01(\x03\x1a\xf0\x01\n\x15RequestPaymentMessage\x12&\n\x0bnoteMessage\x18\x04 \x01(\x0b\x32\x11.whatsapp.Message\x12\x1b\n\x13\x63urrencyCodeIso4217\x18\x01 \x01(\t\x12\x12\n\namount1000\x18\x02 \x01(\x04\x12\x13\n\x0brequestFrom\x18\x03 \x01(\t\x12\x17\n\x0f\x65xpiryTimestamp\x18\x05 \x01(\x03\x12\x1f\n\x06\x61mount\x18\x06 \x01(\x0b\x32\x0f.whatsapp.Money\x12/\n\nbackground\x18\x07 \x01(\x0b\x32\x1b.whatsapp.PaymentBackground\x1aG\n\x19RequestPhoneNumberMessage\x12*\n\x0b\x63ontextInfo\x18\x01 \x01(\x0b\x32\x15.whatsapp.ContextInfo\x1a\xe9\x02\n\x1dRequestWelcomeMessageMetadata\x12V\n\x0elocalChatState\x18\x01 \x01(\x0e\x32>.whatsapp.Message.RequestWelcomeMessageMetadata.LocalChatState\x12V\n\x0ewelcomeTrigger\x18\x02 \x01(\x0e\x32>.whatsapp.Message.RequestWelcomeMessageMetadata.WelcomeTrigger\x12\x34\n\x10\x62otAgentMetadata\x18\x03 \x01(\x0b\x32\x1a.whatsapp.BotAgentMetadata\"*\n\x0eLocalChatState\x12\t\n\x05\x45MPTY\x10\x00\x12\r\n\tNON_EMPTY\x10\x01\"6\n\x0eWelcomeTrigger\x12\r\n\tCHAT_OPEN\x10\x00\x12\x15\n\x11\x43OMPANION_PAIRING\x10\x01\x1a.\n\x1bRootSecretDistributeMessage\x12\x0f\n\x07\x63hatJid\x18\x01 \x01(\t\x1a\xc5\x01\n\x1cScheduledCallCreationMessage\x12\x1c\n\x14scheduledTimestampMs\x18\x01 \x01(\x03\x12I\n\x08\x63\x61llType\x18\x02 \x01(\x0e\x32\x37.whatsapp.Message.ScheduledCallCreationMessage.CallType\x12\r\n\x05title\x18\x03 \x01(\t\"-\n\x08\x43\x61llType\x12\x0b\n\x07UNKNOWN\x10\x00\x12\t\n\x05VOICE\x10\x01\x12\t\n\x05VIDEO\x10\x02\x1a\xa9\x01\n\x18ScheduledCallEditMessage\x12!\n\x03key\x18\x01 \x01(\x0b\x32\x14.whatsapp.MessageKey\x12\x45\n\x08\x65\x64itType\x18\x02 \x01(\x0e\x32\x33.whatsapp.Message.ScheduledCallEditMessage.EditType\"#\n\x08\x45\x64itType\x12\x0b\n\x07UNKNOWN\x10\x00\x12\n\n\x06\x43\x41NCEL\x10\x01\x1a\xc9\x02\n\x16SecretEncryptedMessage\x12.\n\x10targetMessageKey\x18\x01 \x01(\x0b\x32\x14.whatsapp.MessageKey\x12\x12\n\nencPayload\x18\x02 \x01(\x0c\x12\r\n\x05\x65ncIv\x18\x03 \x01(\x0c\x12M\n\rsecretEncType\x18\x04 \x01(\x0e\x32\x36.whatsapp.Message.SecretEncryptedMessage.SecretEncType\x12\x13\n\x0bremoteKeyId\x18\x05 \x01(\t\"x\n\rSecretEncType\x12\x0b\n\x07UNKNOWN\x10\x00\x12\x0e\n\nEVENT_EDIT\x10\x01\x12\x10\n\x0cMESSAGE_EDIT\x10\x02\x12\x14\n\x10MESSAGE_SCHEDULE\x10\x03\x12\r\n\tPOLL_EDIT\x10\x04\x12\x13\n\x0fPOLL_ADD_OPTION\x10\x05\x1a\xb7\x01\n\x12SendPaymentMessage\x12&\n\x0bnoteMessage\x18\x02 \x01(\x0b\x32\x11.whatsapp.Message\x12/\n\x11requestMessageKey\x18\x03 \x01(\x0b\x32\x14.whatsapp.MessageKey\x12/\n\nbackground\x18\x04 \x01(\x0b\x32\x1b.whatsapp.PaymentBackground\x12\x17\n\x0ftransactionData\x18\x05 \x01(\t\x1a\\\n\x1cSenderKeyDistributionMessage\x12\x0f\n\x07groupId\x18\x01 \x01(\t\x12+\n#axolotlSenderKeyDistributionMessage\x18\x02 \x01(\x0c\x1a\xf9\x01\n\x13SplitPaymentMessage\x12\x0f\n\x07splitId\x18\x01 \x01(\t\x12$\n\x0btotalAmount\x18\x02 \x01(\x0b\x32\x0f.whatsapp.Money\x12\x13\n\x0b\x64\x65scription\x18\x03 \x01(\t\x12\x14\n\x0crequesterJid\x18\x04 \x01(\t\x12?\n\x0cparticipants\x18\x05 \x03(\x0b\x32).whatsapp.Message.SplitPaymentParticipant\x12\x13\n\x0b\x63reatedAtMs\x18\x06 \x01(\x03\x12*\n\x0b\x63ontextInfo\x18\x11 \x01(\x0b\x32\x15.whatsapp.ContextInfo\x1a\xc2\x01\n\x17SplitPaymentParticipant\x12\x0b\n\x03jid\x18\x01 \x01(\t\x12\x1f\n\x06\x61mount\x18\x02 \x01(\x0b\x32\x0f.whatsapp.Money\x12L\n\x06status\x18\x03 \x01(\x0e\x32<.whatsapp.Message.SplitPaymentParticipant.SplitPaymentStatus\"+\n\x12SplitPaymentStatus\x12\x0b\n\x07PENDING\x10\x00\x12\x08\n\x04PAID\x10\x01\x1a\xc6\x02\n\x19StatusNotificationMessage\x12\x30\n\x12responseMessageKey\x18\x01 \x01(\x0b\x32\x14.whatsapp.MessageKey\x12\x30\n\x12originalMessageKey\x18\x02 \x01(\x0b\x32\x14.whatsapp.MessageKey\x12P\n\x04type\x18\x03 \x01(\x0e\x32\x42.whatsapp.Message.StatusNotificationMessage.StatusNotificationType\"s\n\x16StatusNotificationType\x12\x0b\n\x07UNKNOWN\x10\x00\x12\x14\n\x10STATUS_ADD_YOURS\x10\x01\x12\x12\n\x0eSTATUS_RESHARE\x10\x02\x12\"\n\x1eSTATUS_QUESTION_ANSWER_RESHARE\x10\x03\x1aN\n\x1bStatusQuestionAnswerMessage\x12!\n\x03key\x18\x01 \x01(\x0b\x32\x14.whatsapp.MessageKey\x12\x0c\n\x04text\x18\x02 \x01(\t\x1a\xe3\x01\n\x13StatusQuotedMessage\x12K\n\x04type\x18\x01 \x01(\x0e\x32=.whatsapp.Message.StatusQuotedMessage.StatusQuotedMessageType\x12\x0c\n\x04text\x18\x02 \x01(\t\x12\x11\n\tthumbnail\x18\x03 \x01(\x0c\x12.\n\x10originalStatusId\x18\x04 \x01(\x0b\x32\x14.whatsapp.MessageKey\".\n\x17StatusQuotedMessageType\x12\x13\n\x0fQUESTION_ANSWER\x10\x01\x1a\xdb\x01\n\x1fStatusStickerInteractionMessage\x12!\n\x03key\x18\x01 \x01(\x0b\x32\x14.whatsapp.MessageKey\x12\x12\n\nstickerKey\x18\x02 \x01(\t\x12Q\n\x04type\x18\x03 \x01(\x0e\x32\x43.whatsapp.Message.StatusStickerInteractionMessage.StatusStickerType\".\n\x11StatusStickerType\x12\x0b\n\x07UNKNOWN\x10\x00\x12\x0c\n\x08REACTION\x10\x01\x1a\xe6\x03\n\x0eStickerMessage\x12\x0b\n\x03url\x18\x01 \x01(\t\x12\x12\n\nfileSha256\x18\x02 \x01(\x0c\x12\x15\n\rfileEncSha256\x18\x03 \x01(\x0c\x12\x10\n\x08mediaKey\x18\x04 \x01(\x0c\x12\x10\n\x08mimetype\x18\x05 \x01(\t\x12\x0e\n\x06height\x18\x06 \x01(\r\x12\r\n\x05width\x18\x07 \x01(\r\x12\x12\n\ndirectPath\x18\x08 \x01(\t\x12\x12\n\nfileLength\x18\t \x01(\x04\x12\x19\n\x11mediaKeyTimestamp\x18\n \x01(\x03\x12\x18\n\x10\x66irstFrameLength\x18\x0b \x01(\r\x12\x19\n\x11\x66irstFrameSidecar\x18\x0c \x01(\x0c\x12\x12\n\nisAnimated\x18\r \x01(\x08\x12\x14\n\x0cpngThumbnail\x18\x10 \x01(\x0c\x12*\n\x0b\x63ontextInfo\x18\x11 \x01(\x0b\x32\x15.whatsapp.ContextInfo\x12\x15\n\rstickerSentTs\x18\x12 \x01(\x03\x12\x10\n\x08isAvatar\x18\x13 \x01(\x08\x12\x13\n\x0bisAiSticker\x18\x14 \x01(\x08\x12\x10\n\x08isLottie\x18\x15 \x01(\x08\x12\x1a\n\x12\x61\x63\x63\x65ssibilityLabel\x18\x16 \x01(\t\x12\x0f\n\x07premium\x18\x18 \x01(\x05\x12\x0e\n\x06\x65mojis\x18\x19 \x01(\t\x1a\xde\x06\n\x12StickerPackMessage\x12\x15\n\rstickerPackId\x18\x01 \x01(\t\x12\x0c\n\x04name\x18\x02 \x01(\t\x12\x11\n\tpublisher\x18\x03 \x01(\t\x12>\n\x08stickers\x18\x04 \x03(\x0b\x32,.whatsapp.Message.StickerPackMessage.Sticker\x12\x12\n\nfileLength\x18\x05 \x01(\x04\x12\x12\n\nfileSha256\x18\x06 \x01(\x0c\x12\x15\n\rfileEncSha256\x18\x07 \x01(\x0c\x12\x10\n\x08mediaKey\x18\x08 \x01(\x0c\x12\x12\n\ndirectPath\x18\t \x01(\t\x12\x0f\n\x07\x63\x61ption\x18\n \x01(\t\x12*\n\x0b\x63ontextInfo\x18\x0b \x01(\x0b\x32\x15.whatsapp.ContextInfo\x12\x17\n\x0fpackDescription\x18\x0c \x01(\t\x12\x19\n\x11mediaKeyTimestamp\x18\r \x01(\x03\x12\x18\n\x10trayIconFileName\x18\x0e \x01(\t\x12\x1b\n\x13thumbnailDirectPath\x18\x0f \x01(\t\x12\x17\n\x0fthumbnailSha256\x18\x10 \x01(\x0c\x12\x1a\n\x12thumbnailEncSha256\x18\x11 \x01(\x0c\x12\x17\n\x0fthumbnailHeight\x18\x12 \x01(\r\x12\x16\n\x0ethumbnailWidth\x18\x13 \x01(\r\x12\x15\n\rimageDataHash\x18\x14 \x01(\t\x12\x17\n\x0fstickerPackSize\x18\x15 \x01(\x04\x12Q\n\x11stickerPackOrigin\x18\x16 \x01(\x0e\x32\x36.whatsapp.Message.StickerPackMessage.StickerPackOrigin\x1a\x90\x01\n\x07Sticker\x12\x10\n\x08\x66ileName\x18\x01 \x01(\t\x12\x12\n\nisAnimated\x18\x02 \x01(\x08\x12\x0e\n\x06\x65mojis\x18\x03 \x03(\t\x12\x1a\n\x12\x61\x63\x63\x65ssibilityLabel\x18\x04 \x01(\t\x12\x10\n\x08isLottie\x18\x05 \x01(\x08\x12\x10\n\x08mimetype\x18\x06 \x01(\t\x12\x0f\n\x07premium\x18\x07 \x01(\x05\"G\n\x11StickerPackOrigin\x12\x0f\n\x0b\x46IRST_PARTY\x10\x00\x12\x0f\n\x0bTHIRD_PARTY\x10\x01\x12\x10\n\x0cUSER_CREATED\x10\x02\x1aV\n\x15StickerSyncRMRMessage\x12\x10\n\x08\x66ilehash\x18\x01 \x03(\t\x12\x11\n\trmrSource\x18\x02 \x01(\t\x12\x18\n\x10requestTimestamp\x18\x03 \x01(\x03\x1a\xb3\x01\n\x1aTemplateButtonReplyMessage\x12\x12\n\nselectedId\x18\x01 \x01(\t\x12\x1b\n\x13selectedDisplayText\x18\x02 \x01(\t\x12*\n\x0b\x63ontextInfo\x18\x03 \x01(\x0b\x32\x15.whatsapp.ContextInfo\x12\x15\n\rselectedIndex\x18\x04 \x01(\r\x12!\n\x19selectedCarouselCardIndex\x18\x05 \x01(\r\x1a\xf2\n\n\x0fTemplateMessage\x12*\n\x0b\x63ontextInfo\x18\x03 \x01(\x0b\x32\x15.whatsapp.ContextInfo\x12S\n\x10hydratedTemplate\x18\x04 \x01(\x0b\x32\x39.whatsapp.Message.TemplateMessage.HydratedFourRowTemplate\x12\x12\n\ntemplateId\x18\t \x01(\t\x12L\n\x0f\x66ourRowTemplate\x18\x01 \x01(\x0b\x32\x31.whatsapp.Message.TemplateMessage.FourRowTemplateH\x00\x12\\\n\x17hydratedFourRowTemplate\x18\x02 \x01(\x0b\x32\x39.whatsapp.Message.TemplateMessage.HydratedFourRowTemplateH\x00\x12J\n\x1ainteractiveMessageTemplate\x18\x05 \x01(\x0b\x32$.whatsapp.Message.InteractiveMessageH\x00\x1a\xf6\x03\n\x0f\x46ourRowTemplate\x12:\n\x07\x63ontent\x18\x06 \x01(\x0b\x32).whatsapp.Message.HighlyStructuredMessage\x12\x39\n\x06\x66ooter\x18\x07 \x01(\x0b\x32).whatsapp.Message.HighlyStructuredMessage\x12)\n\x07\x62uttons\x18\x08 \x03(\x0b\x32\x18.whatsapp.TemplateButton\x12<\n\x0f\x64ocumentMessage\x18\x01 \x01(\x0b\x32!.whatsapp.Message.DocumentMessageH\x00\x12L\n\x17highlyStructuredMessage\x18\x02 \x01(\x0b\x32).whatsapp.Message.HighlyStructuredMessageH\x00\x12\x36\n\x0cimageMessage\x18\x03 \x01(\x0b\x32\x1e.whatsapp.Message.ImageMessageH\x00\x12\x36\n\x0cvideoMessage\x18\x04 \x01(\x0b\x32\x1e.whatsapp.Message.VideoMessageH\x00\x12<\n\x0flocationMessage\x18\x05 \x01(\x0b\x32!.whatsapp.Message.LocationMessageH\x00\x42\x07\n\x05title\x1a\xce\x03\n\x17HydratedFourRowTemplate\x12\x1b\n\x13hydratedContentText\x18\x06 \x01(\t\x12\x1a\n\x12hydratedFooterText\x18\x07 \x01(\t\x12\x39\n\x0fhydratedButtons\x18\x08 \x03(\x0b\x32 .whatsapp.HydratedTemplateButton\x12\x12\n\ntemplateId\x18\t \x01(\t\x12\x19\n\x11maskLinkedDevices\x18\n \x01(\x08\x12<\n\x0f\x64ocumentMessage\x18\x01 \x01(\x0b\x32!.whatsapp.Message.DocumentMessageH\x00\x12\x1b\n\x11hydratedTitleText\x18\x02 \x01(\tH\x00\x12\x36\n\x0cimageMessage\x18\x03 \x01(\x0b\x32\x1e.whatsapp.Message.ImageMessageH\x00\x12\x36\n\x0cvideoMessage\x18\x04 \x01(\x0b\x32\x1e.whatsapp.Message.VideoMessageH\x00\x12<\n\x0flocationMessage\x18\x05 \x01(\x0b\x32!.whatsapp.Message.LocationMessageH\x00\x42\x07\n\x05titleB\x08\n\x06\x66ormat\x1a%\n\x0bURLMetadata\x12\x16\n\x0e\x66\x62\x45xperimentId\x18\x01 \x01(\r\x1ag\n\x0cVideoEndCard\x12\x10\n\x08username\x18\x01 \x02(\t\x12\x0f\n\x07\x63\x61ption\x18\x02 \x02(\t\x12\x19\n\x11thumbnailImageUrl\x18\x03 \x02(\t\x12\x19\n\x11profilePictureUrl\x18\x04 \x02(\t\x1a\x88\x08\n\x0cVideoMessage\x12\x0b\n\x03url\x18\x01 \x01(\t\x12\x10\n\x08mimetype\x18\x02 \x01(\t\x12\x12\n\nfileSha256\x18\x03 \x01(\x0c\x12\x12\n\nfileLength\x18\x04 \x01(\x04\x12\x0f\n\x07seconds\x18\x05 \x01(\r\x12\x10\n\x08mediaKey\x18\x06 \x01(\x0c\x12\x0f\n\x07\x63\x61ption\x18\x07 \x01(\t\x12\x13\n\x0bgifPlayback\x18\x08 \x01(\x08\x12\x0e\n\x06height\x18\t \x01(\r\x12\r\n\x05width\x18\n \x01(\r\x12\x15\n\rfileEncSha256\x18\x0b \x01(\x0c\x12?\n\x16interactiveAnnotations\x18\x0c \x03(\x0b\x32\x1f.whatsapp.InteractiveAnnotation\x12\x12\n\ndirectPath\x18\r \x01(\t\x12\x19\n\x11mediaKeyTimestamp\x18\x0e \x01(\x03\x12\x15\n\rjpegThumbnail\x18\x10 \x01(\x0c\x12*\n\x0b\x63ontextInfo\x18\x11 \x01(\x0b\x32\x15.whatsapp.ContextInfo\x12\x18\n\x10streamingSidecar\x18\x12 \x01(\x0c\x12\x42\n\x0egifAttribution\x18\x13 \x01(\x0e\x32*.whatsapp.Message.VideoMessage.Attribution\x12\x10\n\x08viewOnce\x18\x14 \x01(\x08\x12\x1b\n\x13thumbnailDirectPath\x18\x15 \x01(\t\x12\x17\n\x0fthumbnailSha256\x18\x16 \x01(\x0c\x12\x1a\n\x12thumbnailEncSha256\x18\x17 \x01(\x0c\x12\x11\n\tstaticUrl\x18\x18 \x01(\t\x12\x34\n\x0b\x61nnotations\x18\x19 \x03(\x0b\x32\x1f.whatsapp.InteractiveAnnotation\x12\x1a\n\x12\x61\x63\x63\x65ssibilityLabel\x18\x1a \x01(\t\x12\x31\n\x0fprocessedVideos\x18\x1b \x03(\x0b\x32\x18.whatsapp.ProcessedVideo\x12/\n\'externalShareFullVideoDurationInSeconds\x18\x1c \x01(\r\x12\'\n\x1fmotionPhotoPresentationOffsetMs\x18\x1d \x01(\x04\x12\x13\n\x0bmetadataUrl\x18\x1e \x01(\t\x12G\n\x0fvideoSourceType\x18\x1f \x01(\x0e\x32..whatsapp.Message.VideoMessage.VideoSourceType\"8\n\x0b\x41ttribution\x12\x08\n\x04NONE\x10\x00\x12\t\n\x05GIPHY\x10\x01\x12\t\n\x05TENOR\x10\x02\x12\t\n\x05KLIPY\x10\x03\"3\n\x0fVideoSourceType\x12\x0e\n\nUSER_VIDEO\x10\x00\x12\x10\n\x0c\x41I_GENERATED\x10\x01\"\xb5\x01\n\x0fHistorySyncType\x12\x15\n\x11INITIAL_BOOTSTRAP\x10\x00\x12\x15\n\x11INITIAL_STATUS_V3\x10\x01\x12\x08\n\x04\x46ULL\x10\x02\x12\n\n\x06RECENT\x10\x03\x12\r\n\tPUSH_NAME\x10\x04\x12\x15\n\x11NON_BLOCKING_DATA\x10\x05\x12\r\n\tON_DEMAND\x10\x06\x12\x0e\n\nNO_HISTORY\x10\x07\x12\x19\n\x15MESSAGE_ACCESS_STATUS\x10\x08\"Y\n\x14InsightDeliveryState\x12\x08\n\x04SENT\x10\x00\x12\r\n\tDELIVERED\x10\x01\x12\x08\n\x04READ\x10\x02\x12\x0b\n\x07REPLIED\x10\x03\x12\x11\n\rQUICK_REPLIED\x10\x04\"\xf1\x03\n\x1cPeerDataOperationRequestType\x12\x12\n\x0eUPLOAD_STICKER\x10\x00\x12!\n\x1dSEND_RECENT_STICKER_BOOTSTRAP\x10\x01\x12\x19\n\x15GENERATE_LINK_PREVIEW\x10\x02\x12\x1a\n\x16HISTORY_SYNC_ON_DEMAND\x10\x03\x12\x1e\n\x1aPLACEHOLDER_MESSAGE_RESEND\x10\x04\x12\x1e\n\x1aWAFFLE_LINKING_NONCE_FETCH\x10\x05\x12\x1f\n\x1b\x46ULL_HISTORY_SYNC_ON_DEMAND\x10\x06\x12\x1e\n\x1a\x43OMPANION_META_NONCE_FETCH\x10\x07\x12+\n\'COMPANION_SYNCD_SNAPSHOT_FATAL_RECOVERY\x10\x08\x12(\n$COMPANION_CANONICAL_USER_NONCE_FETCH\x10\t\x12\x1c\n\x18HISTORY_SYNC_CHUNK_RETRY\x10\n\x12\x16\n\x12GALAXY_FLOW_ACTION\x10\x0b\x12,\n(BUSINESS_BROADCAST_INSIGHTS_DELIVERED_TO\x10\x0c\x12\'\n#BUSINESS_BROADCAST_INSIGHTS_REFRESH\x10\r\"3\n\x0fPollContentType\x12\x0b\n\x07UNKNOWN\x10\x00\x12\x08\n\x04TEXT\x10\x01\x12\t\n\x05IMAGE\x10\x02\"\x1e\n\x08PollType\x12\x08\n\x04POLL\x10\x00\x12\x08\n\x04QUIZ\x10\x01\"\xe4\x03\n\x0cMessageAddOn\x12\x41\n\x10messageAddOnType\x18\x01 \x01(\x0e\x32\'.whatsapp.MessageAddOn.MessageAddOnType\x12\'\n\x0cmessageAddOn\x18\x02 \x01(\x0b\x32\x11.whatsapp.Message\x12\x19\n\x11senderTimestampMs\x18\x03 \x01(\x03\x12\x19\n\x11serverTimestampMs\x18\x04 \x01(\x03\x12/\n\x06status\x18\x05 \x01(\x0e\x32\x1f.whatsapp.WebMessageInfo.Status\x12;\n\x10\x61\x64\x64OnContextInfo\x18\x06 \x01(\x0b\x32!.whatsapp.MessageAddOnContextInfo\x12-\n\x0fmessageAddOnKey\x18\x07 \x01(\x0b\x32\x14.whatsapp.MessageKey\x12.\n\rlegacyMessage\x18\x08 \x01(\x0b\x32\x17.whatsapp.LegacyMessage\"e\n\x10MessageAddOnType\x12\r\n\tUNDEFINED\x10\x00\x12\x0c\n\x08REACTION\x10\x01\x12\x12\n\x0e\x45VENT_RESPONSE\x10\x02\x12\x0f\n\x0bPOLL_UPDATE\x10\x03\x12\x0f\n\x0bPIN_IN_CHAT\x10\x04\"\x92\x01\n\x17MessageAddOnContextInfo\x12\"\n\x1amessageAddOnDurationInSecs\x18\x01 \x01(\r\x12S\n\x16messageAddOnExpiryType\x18\x02 \x01(\x0e\x32\x33.whatsapp.MessageContextInfo.MessageAddonExpiryType\"\x8c\x05\n\x12MessageAssociation\x12\x45\n\x0f\x61ssociationType\x18\x01 \x01(\x0e\x32,.whatsapp.MessageAssociation.AssociationType\x12.\n\x10parentMessageKey\x18\x02 \x01(\x0b\x32\x14.whatsapp.MessageKey\x12\x14\n\x0cmessageIndex\x18\x03 \x01(\x05\"\xe8\x03\n\x0f\x41ssociationType\x12\x0b\n\x07UNKNOWN\x10\x00\x12\x0f\n\x0bMEDIA_ALBUM\x10\x01\x12\x0e\n\nBOT_PLUGIN\x10\x02\x12\x15\n\x11\x45VENT_COVER_IMAGE\x10\x03\x12\x0f\n\x0bSTATUS_POLL\x10\x04\x12\x18\n\x14HD_VIDEO_DUAL_UPLOAD\x10\x05\x12\x1b\n\x17STATUS_EXTERNAL_RESHARE\x10\x06\x12\x0e\n\nMEDIA_POLL\x10\x07\x12\x14\n\x10STATUS_ADD_YOURS\x10\x08\x12\x17\n\x13STATUS_NOTIFICATION\x10\t\x12\x18\n\x14HD_IMAGE_DUAL_UPLOAD\x10\n\x12\x16\n\x12STICKER_ANNOTATION\x10\x0b\x12\x10\n\x0cMOTION_PHOTO\x10\x0c\x12\x16\n\x12STATUS_LINK_ACTION\x10\r\x12\x14\n\x10VIEW_ALL_REPLIES\x10\x0e\x12\x1f\n\x1bSTATUS_ADD_YOURS_AI_IMAGINE\x10\x0f\x12\x13\n\x0fSTATUS_QUESTION\x10\x10\x12\x1b\n\x17STATUS_ADD_YOURS_DIWALI\x10\x11\x12\x13\n\x0fSTATUS_REACTION\x10\x12\x12\x1a\n\x16HEVC_VIDEO_DUAL_UPLOAD\x10\x13\x12\x13\n\x0fPOLL_ADD_OPTION\x10\x14\"\xff\x05\n\x12MessageContextInfo\x12\x38\n\x12\x64\x65viceListMetadata\x18\x01 \x01(\x0b\x32\x1c.whatsapp.DeviceListMetadata\x12!\n\x19\x64\x65viceListMetadataVersion\x18\x02 \x01(\x05\x12\x15\n\rmessageSecret\x18\x03 \x01(\x0c\x12\x14\n\x0cpaddingBytes\x18\x04 \x01(\x0c\x12\"\n\x1amessageAddOnDurationInSecs\x18\x05 \x01(\r\x12\x18\n\x10\x62otMessageSecret\x18\x06 \x01(\x0c\x12*\n\x0b\x62otMetadata\x18\x07 \x01(\x0b\x32\x15.whatsapp.BotMetadata\x12\x1d\n\x15reportingTokenVersion\x18\x08 \x01(\x05\x12S\n\x16messageAddOnExpiryType\x18\t \x01(\x0e\x32\x33.whatsapp.MessageContextInfo.MessageAddonExpiryType\x12\x38\n\x12messageAssociation\x18\n \x01(\x0b\x32\x1c.whatsapp.MessageAssociation\x12\x18\n\x10\x63\x61piCreatedGroup\x18\x0b \x01(\x08\x12\x16\n\x0esupportPayload\x18\x0c \x01(\t\x12,\n\x0climitSharing\x18\r \x01(\x0b\x32\x16.whatsapp.LimitSharing\x12.\n\x0elimitSharingV2\x18\x0e \x01(\x0b\x32\x16.whatsapp.LimitSharing\x12$\n\x08threadId\x18\x0f \x03(\x0b\x32\x12.whatsapp.ThreadID\x12:\n\x13weblinkRenderConfig\x18\x10 \x01(\x0e\x32\x1d.whatsapp.WebLinkRenderConfig\x12\x16\n\x0eteeBotMetadata\x18\x11 \x01(\x0c\"=\n\x16MessageAddonExpiryType\x12\n\n\x06STATIC\x10\x01\x12\x17\n\x13\x44\x45PENDENT_ON_PARENT\x10\x02\"P\n\nMessageKey\x12\x11\n\tremoteJid\x18\x01 \x01(\t\x12\x0e\n\x06\x66romMe\x18\x02 \x01(\x08\x12\n\n\x02id\x18\x03 \x01(\t\x12\x13\n\x0bparticipant\x18\x04 \x01(\t\"J\n\x14MessageSecretMessage\x12\x0f\n\x07version\x18\x01 \x01(\x0f\x12\r\n\x05\x65ncIv\x18\x02 \x01(\x0c\x12\x12\n\nencPayload\x18\x03 \x01(\x0c\"{\n\x0bMessageText\x12\x0c\n\x04text\x18\x01 \x01(\t\x12\x14\n\x0cmentionedJid\x18\x02 \x03(\t\x12#\n\x08\x63ommands\x18\x03 \x03(\x0b\x32\x11.whatsapp.Command\x12#\n\x08mentions\x18\x04 \x03(\x0b\x32\x11.whatsapp.Mention\"<\n\x05Money\x12\r\n\x05value\x18\x01 \x01(\x03\x12\x0e\n\x06offset\x18\x02 \x01(\r\x12\x14\n\x0c\x63urrencyCode\x18\x03 \x01(\t\"\xa7\x10\n\rMsgOpaqueData\x12\x0c\n\x04\x62ody\x18\x01 \x01(\t\x12\x0f\n\x07\x63\x61ption\x18\x03 \x01(\t\x12\x0b\n\x03lng\x18\x05 \x01(\x01\x12\x0e\n\x06isLive\x18\x06 \x01(\x08\x12\x0b\n\x03lat\x18\x07 \x01(\x01\x12\x19\n\x11paymentAmount1000\x18\x08 \x01(\x05\x12\x1a\n\x12paymentNoteMsgBody\x18\t \x01(\t\x12\x13\n\x0bmatchedText\x18\x0b \x01(\t\x12\r\n\x05title\x18\x0c \x01(\t\x12\x13\n\x0b\x64\x65scription\x18\r \x01(\t\x12\x19\n\x11\x66utureproofBuffer\x18\x0e \x01(\x0c\x12\x11\n\tclientUrl\x18\x0f \x01(\t\x12\x0b\n\x03loc\x18\x10 \x01(\t\x12\x10\n\x08pollName\x18\x11 \x01(\t\x12\x37\n\x0bpollOptions\x18\x12 \x03(\x0b\x32\".whatsapp.MsgOpaqueData.PollOption\x12\"\n\x1apollSelectableOptionsCount\x18\x14 \x01(\r\x12\x15\n\rmessageSecret\x18\x15 \x01(\x0c\x12\x1a\n\x12originalSelfAuthor\x18\x33 \x01(\t\x12\x19\n\x11senderTimestampMs\x18\x16 \x01(\x03\x12\x1b\n\x13pollUpdateParentKey\x18\x17 \x01(\t\x12+\n\x0b\x65ncPollVote\x18\x18 \x01(\x0b\x32\x16.whatsapp.PollEncValue\x12\x1d\n\x15isSentCagPollCreation\x18\x1c \x01(\x08\x12@\n\x0fpollContentType\x18* \x01(\x0e\x32\'.whatsapp.MsgOpaqueData.PollContentType\x12\x32\n\x08pollType\x18. \x01(\x0e\x32 .whatsapp.MsgOpaqueData.PollType\x12\x1a\n\x12\x63orrectOptionIndex\x18/ \x01(\x05\x12\x44\n\x11pollVotesSnapshot\x18) \x01(\x0b\x32).whatsapp.MsgOpaqueData.PollVotesSnapshot\x12#\n\x1b\x65ncReactionTargetMessageKey\x18\x19 \x01(\t\x12\x1d\n\x15\x65ncReactionEncPayload\x18\x1a \x01(\x0c\x12\x18\n\x10\x65ncReactionEncIv\x18\x1b \x01(\x0c\x12\x18\n\x10\x62otMessageSecret\x18\x1d \x01(\x0c\x12\x18\n\x10targetMessageKey\x18\x1e \x01(\t\x12\x12\n\nencPayload\x18\x1f \x01(\x0c\x12\r\n\x05\x65ncIv\x18 \x01(\x0c\x12\x11\n\teventName\x18! \x01(\t\x12\x17\n\x0fisEventCanceled\x18\" \x01(\x08\x12\x18\n\x10\x65ventDescription\x18# \x01(\t\x12\x15\n\reventJoinLink\x18$ \x01(\t\x12\x16\n\x0e\x65ventStartTime\x18% \x01(\x03\x12<\n\reventLocation\x18& \x01(\x0b\x32%.whatsapp.MsgOpaqueData.EventLocation\x12\x14\n\x0c\x65ventEndTime\x18( \x01(\x03\x12\x1c\n\x14\x65ventIsScheduledCall\x18, \x01(\x08\x12\x1f\n\x17\x65ventExtraGuestsAllowed\x18- \x01(\x08\x12\x1a\n\x12plainProtobufBytes\x18+ \x01(\x0c\x12\x1f\n\x17quarantineExtractedText\x18\x30 \x01(\t\x12\x13\n\x0bpollEndTime\x18\x31 \x01(\x03\x12\x1a\n\x12pollHideVoterNames\x18\x32 \x01(\x08\x12\x1a\n\x12pollAllowAddOption\x18\x34 \x01(\x08\x12\x1d\n\x15sharableEventInviteId\x18\x35 \x01(\t\x12 \n\x18sharableEventInviteTitle\x18\x36 \x01(\t\x12$\n\x1csharableEventInviteStartTime\x18\x37 \x01(\x03\x12\"\n\x1asharableEventInviteEndTime\x18\x38 \x01(\x03\x12\"\n\x1asharableEventInviteCaption\x18\x39 \x01(\t\x12%\n\x1dsharableEventInviteIsCanceled\x18: \x01(\x08\x12(\n sharableEventInviteJpegThumbnail\x18; \x01(\x0c\x12#\n\x1bsharableEventInviteCallLink\x18< \x01(\t\x1a\x85\x01\n\rEventLocation\x12\x17\n\x0f\x64\x65greesLatitude\x18\x01 \x01(\x01\x12\x18\n\x10\x64\x65greesLongitude\x18\x02 \x01(\x01\x12\x0c\n\x04name\x18\x03 \x01(\t\x12\x0f\n\x07\x61\x64\x64ress\x18\x04 \x01(\t\x12\x0b\n\x03url\x18\x05 \x01(\t\x12\x15\n\rjpegThumbnail\x18\x06 \x01(\x0c\x1a(\n\nPollOption\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x0c\n\x04hash\x18\x02 \x01(\t\x1a_\n\x10PollVoteSnapshot\x12\x32\n\x06option\x18\x01 \x01(\x0b\x32\".whatsapp.MsgOpaqueData.PollOption\x12\x17\n\x0foptionVoteCount\x18\x02 \x01(\x05\x1aP\n\x11PollVotesSnapshot\x12;\n\tpollVotes\x18\x01 \x03(\x0b\x32(.whatsapp.MsgOpaqueData.PollVoteSnapshot\"3\n\x0fPollContentType\x12\x0b\n\x07UNKNOWN\x10\x00\x12\x08\n\x04TEXT\x10\x01\x12\t\n\x05IMAGE\x10\x02\"\x1e\n\x08PollType\x12\x08\n\x04POLL\x10\x00\x12\x08\n\x04QUIZ\x10\x01\"k\n\x10MsgRowOpaqueData\x12+\n\ncurrentMsg\x18\x01 \x01(\x0b\x32\x17.whatsapp.MsgOpaqueData\x12*\n\tquotedMsg\x18\x02 \x01(\x0b\x32\x17.whatsapp.MsgOpaqueData\"\x90\x01\n\x10NoiseCertificate\x12\x0f\n\x07\x64\x65tails\x18\x01 \x01(\x0c\x12\x11\n\tsignature\x18\x02 \x01(\x0c\x1aX\n\x07\x44\x65tails\x12\x0e\n\x06serial\x18\x01 \x01(\r\x12\x0e\n\x06issuer\x18\x02 \x01(\t\x12\x0f\n\x07\x65xpires\x18\x03 \x01(\x04\x12\x0f\n\x07subject\x18\x04 \x01(\t\x12\x0b\n\x03key\x18\x05 \x01(\x0c\"\x8f\x01\n\x17NotificationMessageInfo\x12!\n\x03key\x18\x01 \x01(\x0b\x32\x14.whatsapp.MessageKey\x12\"\n\x07message\x18\x02 \x01(\x0b\x32\x11.whatsapp.Message\x12\x18\n\x10messageTimestamp\x18\x03 \x01(\x04\x12\x13\n\x0bparticipant\x18\x04 \x01(\t\"\xa9\x01\n\x14NotificationSettings\x12\x16\n\x0emessageVibrate\x18\x01 \x01(\t\x12\x14\n\x0cmessagePopup\x18\x02 \x01(\t\x12\x14\n\x0cmessageLight\x18\x03 \x01(\t\x12 \n\x18lowPriorityNotifications\x18\x04 \x01(\x08\x12\x16\n\x0ereactionsMuted\x18\x05 \x01(\x08\x12\x13\n\x0b\x63\x61llVibrate\x18\x06 \x01(\t\"]\n\x0ePairingRequest\x12\x1a\n\x12\x63ompanionPublicKey\x18\x01 \x01(\x0c\x12\x1c\n\x14\x63ompanionIdentityKey\x18\x02 \x01(\x0c\x12\x11\n\tadvSecret\x18\x03 \x01(\x0c\"\x95\x01\n\x0fPastParticipant\x12\x0f\n\x07userJid\x18\x01 \x01(\t\x12:\n\x0bleaveReason\x18\x02 \x01(\x0e\x32%.whatsapp.PastParticipant.LeaveReason\x12\x0f\n\x07leaveTs\x18\x03 \x01(\x04\"$\n\x0bLeaveReason\x12\x08\n\x04LEFT\x10\x00\x12\x0b\n\x07REMOVED\x10\x01\"Y\n\x10PastParticipants\x12\x10\n\x08groupJid\x18\x01 \x01(\t\x12\x33\n\x10pastParticipants\x18\x02 \x03(\x0b\x32\x19.whatsapp.PastParticipant\"\xd6\x03\n\x0ePatchDebugData\x12\x15\n\rcurrentLthash\x18\x01 \x01(\x0c\x12\x11\n\tnewLthash\x18\x02 \x01(\x0c\x12\x14\n\x0cpatchVersion\x18\x03 \x01(\x0c\x12\x16\n\x0e\x63ollectionName\x18\x04 \x01(\x0c\x12/\n\'firstFourBytesFromAHashOfSnapshotMacKey\x18\x05 \x01(\x0c\x12\x19\n\x11newLthashSubtract\x18\x06 \x01(\x0c\x12\x11\n\tnumberAdd\x18\x07 \x01(\x05\x12\x14\n\x0cnumberRemove\x18\x08 \x01(\x05\x12\x16\n\x0enumberOverride\x18\t \x01(\x05\x12\x39\n\x0esenderPlatform\x18\n \x01(\x0e\x32!.whatsapp.PatchDebugData.Platform\x12\x17\n\x0fisSenderPrimary\x18\x0b \x01(\x08\"\x8a\x01\n\x08Platform\x12\x0b\n\x07\x41NDROID\x10\x00\x12\x08\n\x04SMBA\x10\x01\x12\n\n\x06IPHONE\x10\x02\x12\x08\n\x04SMBI\x10\x03\x12\x07\n\x03WEB\x10\x04\x12\x07\n\x03UWP\x10\x05\x12\n\n\x06\x44\x41RWIN\x10\x06\x12\x08\n\x04IPAD\x10\x07\x12\n\n\x06WEAROS\x10\x08\x12\x08\n\x04WASG\x10\t\x12\t\n\x05WEARM\x10\n\x12\x08\n\x04\x43\x41PI\x10\x0b\"\xa9\x03\n\x11PaymentBackground\x12\n\n\x02id\x18\x01 \x01(\t\x12\x12\n\nfileLength\x18\x02 \x01(\x04\x12\r\n\x05width\x18\x03 \x01(\r\x12\x0e\n\x06height\x18\x04 \x01(\r\x12\x10\n\x08mimetype\x18\x05 \x01(\t\x12\x17\n\x0fplaceholderArgb\x18\x06 \x01(\x07\x12\x10\n\x08textArgb\x18\x07 \x01(\x07\x12\x13\n\x0bsubtextArgb\x18\x08 \x01(\x07\x12\x38\n\tmediaData\x18\t \x01(\x0b\x32%.whatsapp.PaymentBackground.MediaData\x12.\n\x04type\x18\n \x01(\x0e\x32 .whatsapp.PaymentBackground.Type\x1aw\n\tMediaData\x12\x10\n\x08mediaKey\x18\x01 \x01(\x0c\x12\x19\n\x11mediaKeyTimestamp\x18\x02 \x01(\x03\x12\x12\n\nfileSha256\x18\x03 \x01(\x0c\x12\x15\n\rfileEncSha256\x18\x04 \x01(\x0c\x12\x12\n\ndirectPath\x18\x05 \x01(\t\" \n\x04Type\x12\x0b\n\x07UNKNOWN\x10\x00\x12\x0b\n\x07\x44\x45\x46\x41ULT\x10\x01\"\xe7\n\n\x0bPaymentInfo\x12:\n\x12\x63urrencyDeprecated\x18\x01 \x01(\x0e\x32\x1e.whatsapp.PaymentInfo.Currency\x12\x12\n\namount1000\x18\x02 \x01(\x04\x12\x13\n\x0breceiverJid\x18\x03 \x01(\t\x12,\n\x06status\x18\x04 \x01(\x0e\x32\x1c.whatsapp.PaymentInfo.Status\x12\x1c\n\x14transactionTimestamp\x18\x05 \x01(\x04\x12/\n\x11requestMessageKey\x18\x06 \x01(\x0b\x32\x14.whatsapp.MessageKey\x12\x17\n\x0f\x65xpiryTimestamp\x18\x07 \x01(\x04\x12\x15\n\rfutureproofed\x18\x08 \x01(\x08\x12\x10\n\x08\x63urrency\x18\t \x01(\t\x12\x32\n\ttxnStatus\x18\n \x01(\x0e\x32\x1f.whatsapp.PaymentInfo.TxnStatus\x12\x19\n\x11useNoviFiatFormat\x18\x0b \x01(\x08\x12&\n\rprimaryAmount\x18\x0c \x01(\x0b\x32\x0f.whatsapp.Money\x12\'\n\x0e\x65xchangeAmount\x18\r \x01(\x0b\x32\x0f.whatsapp.Money\")\n\x08\x43urrency\x12\x14\n\x10UNKNOWN_CURRENCY\x10\x00\x12\x07\n\x03INR\x10\x01\"\xcc\x01\n\x06Status\x12\x12\n\x0eUNKNOWN_STATUS\x10\x00\x12\x0e\n\nPROCESSING\x10\x01\x12\x08\n\x04SENT\x10\x02\x12\x12\n\x0eNEED_TO_ACCEPT\x10\x03\x12\x0c\n\x08\x43OMPLETE\x10\x04\x12\x16\n\x12\x43OULD_NOT_COMPLETE\x10\x05\x12\x0c\n\x08REFUNDED\x10\x06\x12\x0b\n\x07\x45XPIRED\x10\x07\x12\x0c\n\x08REJECTED\x10\x08\x12\r\n\tCANCELLED\x10\t\x12\x15\n\x11WAITING_FOR_PAYER\x10\n\x12\x0b\n\x07WAITING\x10\x0b\"\x99\x05\n\tTxnStatus\x12\x0b\n\x07UNKNOWN\x10\x00\x12\x11\n\rPENDING_SETUP\x10\x01\x12\x1a\n\x16PENDING_RECEIVER_SETUP\x10\x02\x12\x08\n\x04INIT\x10\x03\x12\x0b\n\x07SUCCESS\x10\x04\x12\r\n\tCOMPLETED\x10\x05\x12\n\n\x06\x46\x41ILED\x10\x06\x12\x0f\n\x0b\x46\x41ILED_RISK\x10\x07\x12\x15\n\x11\x46\x41ILED_PROCESSING\x10\x08\x12\x1e\n\x1a\x46\x41ILED_RECEIVER_PROCESSING\x10\t\x12\r\n\tFAILED_DA\x10\n\x12\x13\n\x0f\x46\x41ILED_DA_FINAL\x10\x0b\x12\x10\n\x0cREFUNDED_TXN\x10\x0c\x12\x11\n\rREFUND_FAILED\x10\r\x12\x1c\n\x18REFUND_FAILED_PROCESSING\x10\x0e\x12\x14\n\x10REFUND_FAILED_DA\x10\x0f\x12\x0f\n\x0b\x45XPIRED_TXN\x10\x10\x12\x11\n\rAUTH_CANCELED\x10\x11\x12!\n\x1d\x41UTH_CANCEL_FAILED_PROCESSING\x10\x12\x12\x16\n\x12\x41UTH_CANCEL_FAILED\x10\x13\x12\x10\n\x0c\x43OLLECT_INIT\x10\x14\x12\x13\n\x0f\x43OLLECT_SUCCESS\x10\x15\x12\x12\n\x0e\x43OLLECT_FAILED\x10\x16\x12\x17\n\x13\x43OLLECT_FAILED_RISK\x10\x17\x12\x14\n\x10\x43OLLECT_REJECTED\x10\x18\x12\x13\n\x0f\x43OLLECT_EXPIRED\x10\x19\x12\x14\n\x10\x43OLLECT_CANCELED\x10\x1a\x12\x16\n\x12\x43OLLECT_CANCELLING\x10\x1b\x12\r\n\tIN_REVIEW\x10\x1c\x12\x14\n\x10REVERSAL_SUCCESS\x10\x1d\x12\x14\n\x10REVERSAL_PENDING\x10\x1e\x12\x12\n\x0eREFUND_PENDING\x10\x1f\"8\n\x17PhoneNumberToLIDMapping\x12\r\n\x05pnJid\x18\x01 \x01(\t\x12\x0e\n\x06lidJid\x18\x02 \x01(\t\"E\n\x0bPhotoChange\x12\x10\n\x08oldPhoto\x18\x01 \x01(\x0c\x12\x10\n\x08newPhoto\x18\x02 \x01(\x0c\x12\x12\n\nnewPhotoId\x18\x03 \x01(\r\"\x8e\x02\n\tPinInChat\x12&\n\x04type\x18\x01 \x01(\x0e\x32\x18.whatsapp.PinInChat.Type\x12!\n\x03key\x18\x02 \x01(\x0b\x32\x14.whatsapp.MessageKey\x12\x19\n\x11senderTimestampMs\x18\x03 \x01(\x03\x12\x19\n\x11serverTimestampMs\x18\x04 \x01(\x03\x12\x42\n\x17messageAddOnContextInfo\x18\x05 \x01(\x0b\x32!.whatsapp.MessageAddOnContextInfo\"<\n\x04Type\x12\x10\n\x0cUNKNOWN_TYPE\x10\x00\x12\x0f\n\x0bPIN_FOR_ALL\x10\x01\x12\x11\n\rUNPIN_FOR_ALL\x10\x02\"G\n\x05Point\x12\x13\n\x0bxDeprecated\x18\x01 \x01(\x05\x12\x13\n\x0byDeprecated\x18\x02 \x01(\x05\x12\t\n\x01x\x18\x03 \x01(\x01\x12\t\n\x01y\x18\x04 \x01(\x01\"\xd1\x01\n\x16PollAdditionalMetadata\x12\x17\n\x0fpollInvalidated\x18\x01 \x01(\x08\x12V\n\x13pollNameHashHistory\x18\x02 \x03(\x0b\x32\x39.whatsapp.PollAdditionalMetadata.PollNameHashHistoryEntry\x1a\x46\n\x18PollNameHashHistoryEntry\x12\x14\n\x0c\x65\x64itStanzaId\x18\x01 \x01(\t\x12\x14\n\x0cpollNameHash\x18\x02 \x01(\x0c\"1\n\x0cPollEncValue\x12\x12\n\nencPayload\x18\x01 \x01(\x0c\x12\r\n\x05\x65ncIv\x18\x02 \x01(\x0c\"\xf6\x01\n\nPollUpdate\x12\x32\n\x14pollUpdateMessageKey\x18\x01 \x01(\x0b\x32\x14.whatsapp.MessageKey\x12/\n\x04vote\x18\x02 \x01(\x0b\x32!.whatsapp.Message.PollVoteMessage\x12\x19\n\x11senderTimestampMs\x18\x03 \x01(\x03\x12\x19\n\x11serverTimestampMs\x18\x04 \x01(\x03\x12\x0e\n\x06unread\x18\x05 \x01(\x08\x12=\n\x08metadata\x18\x06 \x01(\x0b\x32+.whatsapp.Message.PollUpdateMessageMetadata\"J\n\x15PreKeyRecordStructure\x12\n\n\x02id\x18\x01 \x01(\r\x12\x11\n\tpublicKey\x18\x02 \x01(\x0c\x12\x12\n\nprivateKey\x18\x03 \x01(\x0c\"\x8e\x01\n\x13PreKeySignalMessage\x12\x16\n\x0eregistrationId\x18\x05 \x01(\r\x12\x10\n\x08preKeyId\x18\x01 \x01(\r\x12\x16\n\x0esignedPreKeyId\x18\x06 \x01(\r\x12\x0f\n\x07\x62\x61seKey\x18\x02 \x01(\x0c\x12\x13\n\x0bidentityKey\x18\x03 \x01(\x0c\x12\x0f\n\x07message\x18\x04 \x01(\x0c\".\n\x12PremiumMessageInfo\x12\x18\n\x10serverCampaignId\x18\x01 \x01(\t\"<\n\x18PrimaryEphemeralIdentity\x12\x11\n\tpublicKey\x18\x01 \x01(\x0c\x12\r\n\x05nonce\x18\x02 \x01(\x0c\"\x85\x02\n\x0eProcessedVideo\x12\x12\n\ndirectPath\x18\x01 \x01(\t\x12\x12\n\nfileSha256\x18\x02 \x01(\x0c\x12\x0e\n\x06height\x18\x03 \x01(\r\x12\r\n\x05width\x18\x04 \x01(\r\x12\x12\n\nfileLength\x18\x05 \x01(\x04\x12\x0f\n\x07\x62itrate\x18\x06 \x01(\r\x12\x36\n\x07quality\x18\x07 \x01(\x0e\x32%.whatsapp.ProcessedVideo.VideoQuality\x12\x14\n\x0c\x63\x61pabilities\x18\x08 \x03(\t\"9\n\x0cVideoQuality\x12\r\n\tUNDEFINED\x10\x00\x12\x07\n\x03LOW\x10\x01\x12\x07\n\x03MID\x10\x02\x12\x08\n\x04HIGH\x10\x03\"h\n\x0fProloguePayload\x12\"\n\x1a\x63ompanionEphemeralIdentity\x18\x01 \x01(\x0c\x12\x31\n\ncommitment\x18\x02 \x01(\x0b\x32\x1d.whatsapp.CompanionCommitment\"(\n\x08Pushname\x12\n\n\x02id\x18\x01 \x01(\t\x12\x10\n\x08pushname\x18\x02 \x01(\t\"\xbc\x04\n\x02QP\x1a\xcf\x01\n\x06\x46ilter\x12\x12\n\nfilterName\x18\x01 \x02(\t\x12\x31\n\nparameters\x18\x02 \x03(\x0b\x32\x1d.whatsapp.QP.FilterParameters\x12/\n\x0c\x66ilterResult\x18\x03 \x01(\x0e\x32\x19.whatsapp.QP.FilterResult\x12M\n\x18\x63lientNotSupportedConfig\x18\x04 \x02(\x0e\x32+.whatsapp.QP.FilterClientNotSupportedConfig\x1a\x8d\x01\n\x0c\x46ilterClause\x12+\n\nclauseType\x18\x01 \x02(\x0e\x32\x17.whatsapp.QP.ClauseType\x12*\n\x07\x63lauses\x18\x02 \x03(\x0b\x32\x19.whatsapp.QP.FilterClause\x12$\n\x07\x66ilters\x18\x03 \x03(\x0b\x32\x13.whatsapp.QP.Filter\x1a.\n\x10\x46ilterParameters\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t\"&\n\nClauseType\x12\x07\n\x03\x41ND\x10\x01\x12\x06\n\x02OR\x10\x02\x12\x07\n\x03NOR\x10\x03\"J\n\x1e\x46ilterClientNotSupportedConfig\x12\x13\n\x0fPASS_BY_DEFAULT\x10\x01\x12\x13\n\x0f\x46\x41IL_BY_DEFAULT\x10\x02\"0\n\x0c\x46ilterResult\x12\x08\n\x04TRUE\x10\x01\x12\t\n\x05\x46\x41LSE\x10\x02\x12\x0b\n\x07UNKNOWN\x10\x03\"A\n\x12QuarantinedMessage\x12\x14\n\x0coriginalData\x18\x01 \x01(\x0c\x12\x15\n\rextractedText\x18\x02 \x01(\t\"{\n\x08Reaction\x12!\n\x03key\x18\x01 \x01(\x0b\x32\x14.whatsapp.MessageKey\x12\x0c\n\x04text\x18\x02 \x01(\t\x12\x13\n\x0bgroupingKey\x18\x03 \x01(\t\x12\x19\n\x11senderTimestampMs\x18\x04 \x01(\x03\x12\x0e\n\x06unread\x18\x05 \x01(\x08\"2\n\x11RecentEmojiWeight\x12\r\n\x05\x65moji\x18\x01 \x01(\t\x12\x0e\n\x06weight\x18\x02 \x01(\x02\"{\n\x0fRecordStructure\x12\x32\n\x0e\x63urrentSession\x18\x01 \x01(\x0b\x32\x1a.whatsapp.SessionStructure\x12\x34\n\x10previousSessions\x18\x02 \x03(\x0b\x32\x1a.whatsapp.SessionStructure\"d\n\nReportable\x12\x12\n\nminVersion\x18\x01 \x01(\r\x12\x12\n\nmaxVersion\x18\x02 \x01(\r\x12\x1f\n\x17notReportableMinVersion\x18\x03 \x01(\r\x12\r\n\x05never\x18\x04 \x01(\x08\"*\n\x12ReportingTokenInfo\x12\x14\n\x0creportingTag\x18\x01 \x01(\x0c\"w\n\x0bRoutingInfo\x12\x10\n\x08regionId\x18\x01 \x03(\x05\x12\x11\n\tclusterId\x18\x02 \x03(\x05\x12\x0e\n\x06taskId\x18\x03 \x01(\x05\x12\r\n\x05\x64\x65\x62ug\x18\x04 \x01(\x08\x12\x0e\n\x06tcpBbr\x18\x05 \x01(\x08\x12\x14\n\x0ctcpKeepalive\x18\x06 \x01(\x08\"Y\n\x18ScheduledMessageMetadata\x12\x13\n\x0brevealKeyId\x18\x01 \x01(\t\x12\x11\n\trevealKey\x18\x02 \x01(\x0c\x12\x15\n\rscheduledTime\x18\x03 \x01(\x04\"c\n\x1cSenderKeyDistributionMessage\x12\n\n\x02id\x18\x01 \x01(\r\x12\x11\n\titeration\x18\x02 \x01(\r\x12\x10\n\x08\x63hainKey\x18\x03 \x01(\x0c\x12\x12\n\nsigningKey\x18\x04 \x01(\x0c\"E\n\x10SenderKeyMessage\x12\n\n\x02id\x18\x01 \x01(\r\x12\x11\n\titeration\x18\x02 \x01(\r\x12\x12\n\nciphertext\x18\x03 \x01(\x0c\"V\n\x18SenderKeyRecordStructure\x12:\n\x0fsenderKeyStates\x18\x01 \x03(\x0b\x32!.whatsapp.SenderKeyStateStructure\"\xb2\x03\n\x17SenderKeyStateStructure\x12\x13\n\x0bsenderKeyId\x18\x01 \x01(\r\x12H\n\x0esenderChainKey\x18\x02 \x01(\x0b\x32\x30.whatsapp.SenderKeyStateStructure.SenderChainKey\x12L\n\x10senderSigningKey\x18\x03 \x01(\x0b\x32\x32.whatsapp.SenderKeyStateStructure.SenderSigningKey\x12M\n\x11senderMessageKeys\x18\x04 \x03(\x0b\x32\x32.whatsapp.SenderKeyStateStructure.SenderMessageKey\x1a\x31\n\x0eSenderChainKey\x12\x11\n\titeration\x18\x01 \x01(\r\x12\x0c\n\x04seed\x18\x02 \x01(\x0c\x1a\x33\n\x10SenderMessageKey\x12\x11\n\titeration\x18\x01 \x01(\r\x12\x0c\n\x04seed\x18\x02 \x01(\x0c\x1a\x33\n\x10SenderSigningKey\x12\x0e\n\x06public\x18\x01 \x01(\x0c\x12\x0f\n\x07private\x18\x02 \x01(\x0c\"&\n\x12ServerErrorReceipt\x12\x10\n\x08stanzaId\x18\x01 \x01(\t\"\xc7\x08\n\x10SessionStructure\x12\x16\n\x0esessionVersion\x18\x01 \x01(\r\x12\x1b\n\x13localIdentityPublic\x18\x02 \x01(\x0c\x12\x1c\n\x14remoteIdentityPublic\x18\x03 \x01(\x0c\x12\x0f\n\x07rootKey\x18\x04 \x01(\x0c\x12\x17\n\x0fpreviousCounter\x18\x05 \x01(\r\x12\x35\n\x0bsenderChain\x18\x06 \x01(\x0b\x32 .whatsapp.SessionStructure.Chain\x12\x38\n\x0ereceiverChains\x18\x07 \x03(\x0b\x32 .whatsapp.SessionStructure.Chain\x12I\n\x12pendingKeyExchange\x18\x08 \x01(\x0b\x32-.whatsapp.SessionStructure.PendingKeyExchange\x12?\n\rpendingPreKey\x18\t \x01(\x0b\x32(.whatsapp.SessionStructure.PendingPreKey\x12\x1c\n\x14remoteRegistrationId\x18\n \x01(\r\x12\x1b\n\x13localRegistrationId\x18\x0b \x01(\r\x12\x14\n\x0cneedsRefresh\x18\x0c \x01(\x08\x12\x14\n\x0c\x61liceBaseKey\x18\r \x01(\x0c\x1a\xb5\x02\n\x05\x43hain\x12\x18\n\x10senderRatchetKey\x18\x01 \x01(\x0c\x12\x1f\n\x17senderRatchetKeyPrivate\x18\x02 \x01(\x0c\x12;\n\x08\x63hainKey\x18\x03 \x01(\x0b\x32).whatsapp.SessionStructure.Chain.ChainKey\x12@\n\x0bmessageKeys\x18\x04 \x03(\x0b\x32+.whatsapp.SessionStructure.Chain.MessageKey\x1a&\n\x08\x43hainKey\x12\r\n\x05index\x18\x01 \x01(\r\x12\x0b\n\x03key\x18\x02 \x01(\x0c\x1aJ\n\nMessageKey\x12\r\n\x05index\x18\x01 \x01(\r\x12\x11\n\tcipherKey\x18\x02 \x01(\x0c\x12\x0e\n\x06macKey\x18\x03 \x01(\x0c\x12\n\n\x02iv\x18\x04 \x01(\x0c\x1a\xcd\x01\n\x12PendingKeyExchange\x12\x10\n\x08sequence\x18\x01 \x01(\r\x12\x14\n\x0clocalBaseKey\x18\x02 \x01(\x0c\x12\x1b\n\x13localBaseKeyPrivate\x18\x03 \x01(\x0c\x12\x17\n\x0flocalRatchetKey\x18\x04 \x01(\x0c\x12\x1e\n\x16localRatchetKeyPrivate\x18\x05 \x01(\x0c\x12\x18\n\x10localIdentityKey\x18\x07 \x01(\x0c\x12\x1f\n\x17localIdentityKeyPrivate\x18\x08 \x01(\x0c\x1aJ\n\rPendingPreKey\x12\x10\n\x08preKeyId\x18\x01 \x01(\r\x12\x16\n\x0esignedPreKeyId\x18\x03 \x01(\x05\x12\x0f\n\x07\x62\x61seKey\x18\x02 \x01(\x0c\"\x88\x01\n\x1bSessionTransparencyMetadata\x12\x16\n\x0e\x64isclaimerText\x18\x01 \x01(\t\x12\r\n\x05hcaId\x18\x02 \x01(\t\x12\x42\n\x17sessionTransparencyType\x18\x03 \x01(\x0e\x32!.whatsapp.SessionTransparencyType\"a\n\rSignalMessage\x12\x12\n\nratchetKey\x18\x01 \x01(\x0c\x12\x0f\n\x07\x63ounter\x18\x02 \x01(\r\x12\x17\n\x0fpreviousCounter\x18\x03 \x01(\r\x12\x12\n\nciphertext\x18\x04 \x01(\x0c\"v\n\x1bSignedPreKeyRecordStructure\x12\n\n\x02id\x18\x01 \x01(\r\x12\x11\n\tpublicKey\x18\x02 \x01(\x0c\x12\x12\n\nprivateKey\x18\x03 \x01(\x0c\x12\x11\n\tsignature\x18\x04 \x01(\x0c\x12\x11\n\ttimestamp\x18\x05 \x01(\x06\"\xfe\x0e\n\x11StatusAttribution\x12.\n\x04type\x18\x01 \x01(\x0e\x32 .whatsapp.StatusAttribution.Type\x12\x11\n\tactionUrl\x18\x02 \x01(\t\x12\x42\n\rstatusReshare\x18\x03 \x01(\x0b\x32).whatsapp.StatusAttribution.StatusReshareH\x00\x12\x42\n\rexternalShare\x18\x04 \x01(\x0b\x32).whatsapp.StatusAttribution.ExternalShareH\x00\x12\x32\n\x05music\x18\x05 \x01(\x0b\x32!.whatsapp.StatusAttribution.MusicH\x00\x12>\n\x0bgroupStatus\x18\x06 \x01(\x0b\x32\'.whatsapp.StatusAttribution.GroupStatusH\x00\x12\x42\n\rrlAttribution\x18\x07 \x01(\x0b\x32).whatsapp.StatusAttribution.RLAttributionH\x00\x12P\n\x14\x61iCreatedAttribution\x18\x08 \x01(\x0b\x32\x30.whatsapp.StatusAttribution.AiCreatedAttributionH\x00\x1a\x8a\x01\n\x14\x41iCreatedAttribution\x12G\n\x06source\x18\x01 \x01(\x0e\x32\x37.whatsapp.StatusAttribution.AiCreatedAttribution.Source\")\n\x06Source\x12\x0b\n\x07UNKNOWN\x10\x00\x12\x12\n\x0eSTATUS_MIMICRY\x10\x01\x1a\xda\x02\n\rExternalShare\x12\x11\n\tactionUrl\x18\x01 \x01(\t\x12@\n\x06source\x18\x02 \x01(\x0e\x32\x30.whatsapp.StatusAttribution.ExternalShare.Source\x12\x10\n\x08\x64uration\x18\x03 \x01(\x05\x12\x19\n\x11\x61\x63tionFallbackUrl\x18\x04 \x01(\t\"\xc6\x01\n\x06Source\x12\x0b\n\x07UNKNOWN\x10\x00\x12\r\n\tINSTAGRAM\x10\x01\x12\x0c\n\x08\x46\x41\x43\x45\x42OOK\x10\x02\x12\r\n\tMESSENGER\x10\x03\x12\x0b\n\x07SPOTIFY\x10\x04\x12\x0b\n\x07YOUTUBE\x10\x05\x12\r\n\tPINTEREST\x10\x06\x12\x0b\n\x07THREADS\x10\x07\x12\x0f\n\x0b\x41PPLE_MUSIC\x10\x08\x12\r\n\tSHARECHAT\x10\t\x12\x11\n\rGOOGLE_PHOTOS\x10\n\x12\x0e\n\nSOUNDCLOUD\x10\x0b\x12\n\n\x06SHAZAM\x10\x0c\x1a \n\x0bGroupStatus\x12\x11\n\tauthorJid\x18\x01 \x01(\t\x1ay\n\x05Music\x12\x12\n\nauthorName\x18\x01 \x01(\t\x12\x0e\n\x06songId\x18\x02 \x01(\t\x12\r\n\x05title\x18\x03 \x01(\t\x12\x0e\n\x06\x61uthor\x18\x04 \x01(\t\x12\x19\n\x11\x61rtistAttribution\x18\x05 \x01(\t\x12\x12\n\nisExplicit\x18\x06 \x01(\x08\x1a\xb2\x01\n\rRLAttribution\x12@\n\x06source\x18\x01 \x01(\x0e\x32\x30.whatsapp.StatusAttribution.RLAttribution.Source\"_\n\x06Source\x12\x0b\n\x07UNKNOWN\x10\x00\x12\x18\n\x14RAY_BAN_META_GLASSES\x10\x01\x12\x17\n\x13OAKLEY_META_GLASSES\x10\x02\x12\x15\n\x11HYPERNOVA_GLASSES\x10\x03\x1a\xe4\x02\n\rStatusReshare\x12@\n\x06source\x18\x01 \x01(\x0e\x32\x30.whatsapp.StatusAttribution.StatusReshare.Source\x12\x44\n\x08metadata\x18\x02 \x01(\x0b\x32\x32.whatsapp.StatusAttribution.StatusReshare.Metadata\x1ag\n\x08Metadata\x12\x10\n\x08\x64uration\x18\x01 \x01(\x05\x12\x12\n\nchannelJid\x18\x02 \x01(\t\x12\x18\n\x10\x63hannelMessageId\x18\x03 \x01(\x05\x12\x1b\n\x13hasMultipleReshares\x18\x04 \x01(\x08\"b\n\x06Source\x12\x0b\n\x07UNKNOWN\x10\x00\x12\x14\n\x10INTERNAL_RESHARE\x10\x01\x12\x13\n\x0fMENTION_RESHARE\x10\x02\x12\x13\n\x0f\x43HANNEL_RESHARE\x10\x03\x12\x0b\n\x07\x46ORWARD\x10\x04\"\xdd\x01\n\x04Type\x12\x0b\n\x07UNKNOWN\x10\x00\x12\x0b\n\x07RESHARE\x10\x01\x12\x12\n\x0e\x45XTERNAL_SHARE\x10\x02\x12\t\n\x05MUSIC\x10\x03\x12\x12\n\x0eSTATUS_MENTION\x10\x04\x12\x10\n\x0cGROUP_STATUS\x10\x05\x12\x12\n\x0eRL_ATTRIBUTION\x10\x06\x12\x0e\n\nAI_CREATED\x10\x07\x12\x0b\n\x07LAYOUTS\x10\x08\x12\x15\n\x11NEWSLETTER_STATUS\x10\t\x12\x18\n\x14STATUS_CLOSE_SHARING\x10\n\x12\x14\n\x10PAID_PARTNERSHIP\x10\x0b\x42\x11\n\x0f\x61ttributionData\"?\n\x14StatusMentionMessage\x12\'\n\x0cquotedStatus\x18\x01 \x01(\x0b\x32\x11.whatsapp.Message\"D\n\tStatusPSA\x12\x12\n\ncampaignId\x18, \x02(\x04\x12#\n\x1b\x63\x61mpaignExpirationTimestamp\x18- \x01(\x04\"\x9d\x02\n\x0fStickerMetadata\x12\x0b\n\x03url\x18\x01 \x01(\t\x12\x12\n\nfileSha256\x18\x02 \x01(\x0c\x12\x15\n\rfileEncSha256\x18\x03 \x01(\x0c\x12\x10\n\x08mediaKey\x18\x04 \x01(\x0c\x12\x10\n\x08mimetype\x18\x05 \x01(\t\x12\x0e\n\x06height\x18\x06 \x01(\r\x12\r\n\x05width\x18\x07 \x01(\r\x12\x12\n\ndirectPath\x18\x08 \x01(\t\x12\x12\n\nfileLength\x18\t \x01(\x04\x12\x0e\n\x06weight\x18\n \x01(\x02\x12\x19\n\x11lastStickerSentTs\x18\x0b \x01(\x03\x12\x10\n\x08isLottie\x18\x0c \x01(\x08\x12\x11\n\timageHash\x18\r \x01(\t\x12\x17\n\x0fisAvatarSticker\x18\x0e \x01(\x08\"/\n\x0bSubProtocol\x12\x0f\n\x07payload\x18\x01 \x01(\x0c\x12\x0f\n\x07version\x18\x02 \x01(\x05\"k\n\x0eSyncActionData\x12\r\n\x05index\x18\x01 \x01(\x0c\x12(\n\x05value\x18\x02 \x01(\x0b\x32\x19.whatsapp.SyncActionValue\x12\x0f\n\x07padding\x18\x03 \x01(\x0c\x12\x0f\n\x07version\x18\x04 \x01(\x05\"\xf9\x8e\x01\n\x0fSyncActionValue\x12\x11\n\ttimestamp\x18\x01 \x01(\x03\x12\x38\n\nstarAction\x18\x02 \x01(\x0b\x32$.whatsapp.SyncActionValue.StarAction\x12>\n\rcontactAction\x18\x03 \x01(\x0b\x32\'.whatsapp.SyncActionValue.ContactAction\x12\x38\n\nmuteAction\x18\x04 \x01(\x0b\x32$.whatsapp.SyncActionValue.MuteAction\x12\x36\n\tpinAction\x18\x05 \x01(\x0b\x32#.whatsapp.SyncActionValue.PinAction\x12\x42\n\x0fpushNameSetting\x18\x07 \x01(\x0b\x32).whatsapp.SyncActionValue.PushNameSetting\x12\x44\n\x10quickReplyAction\x18\x08 \x01(\x0b\x32*.whatsapp.SyncActionValue.QuickReplyAction\x12T\n\x18recentEmojiWeightsAction\x18\x0b \x01(\x0b\x32\x32.whatsapp.SyncActionValue.RecentEmojiWeightsAction\x12\x42\n\x0flabelEditAction\x18\x0e \x01(\x0b\x32).whatsapp.SyncActionValue.LabelEditAction\x12P\n\x16labelAssociationAction\x18\x0f \x01(\x0b\x32\x30.whatsapp.SyncActionValue.LabelAssociationAction\x12>\n\rlocaleSetting\x18\x10 \x01(\x0b\x32\'.whatsapp.SyncActionValue.LocaleSetting\x12\x46\n\x11\x61rchiveChatAction\x18\x11 \x01(\x0b\x32+.whatsapp.SyncActionValue.ArchiveChatAction\x12T\n\x18\x64\x65leteMessageForMeAction\x18\x12 \x01(\x0b\x32\x32.whatsapp.SyncActionValue.DeleteMessageForMeAction\x12>\n\rkeyExpiration\x18\x13 \x01(\x0b\x32\'.whatsapp.SyncActionValue.KeyExpiration\x12L\n\x14markChatAsReadAction\x18\x14 \x01(\x0b\x32..whatsapp.SyncActionValue.MarkChatAsReadAction\x12\x42\n\x0f\x63learChatAction\x18\x15 \x01(\x0b\x32).whatsapp.SyncActionValue.ClearChatAction\x12\x44\n\x10\x64\x65leteChatAction\x18\x16 \x01(\x0b\x32*.whatsapp.SyncActionValue.DeleteChatAction\x12N\n\x15unarchiveChatsSetting\x18\x17 \x01(\x0b\x32/.whatsapp.SyncActionValue.UnarchiveChatsSetting\x12@\n\x0eprimaryFeature\x18\x18 \x01(\x0b\x32(.whatsapp.SyncActionValue.PrimaryFeature\x12V\n\x19\x61ndroidUnsupportedActions\x18\x1a \x01(\x0b\x32\x33.whatsapp.SyncActionValue.AndroidUnsupportedActions\x12:\n\x0b\x61gentAction\x18\x1b \x01(\x0b\x32%.whatsapp.SyncActionValue.AgentAction\x12H\n\x12subscriptionAction\x18\x1c \x01(\x0b\x32,.whatsapp.SyncActionValue.SubscriptionAction\x12L\n\x14userStatusMuteAction\x18\x1d \x01(\x0b\x32..whatsapp.SyncActionValue.UserStatusMuteAction\x12\x44\n\x10timeFormatAction\x18\x1e \x01(\x0b\x32*.whatsapp.SyncActionValue.TimeFormatAction\x12\x36\n\tnuxAction\x18\x1f \x01(\x0b\x32#.whatsapp.SyncActionValue.NuxAction\x12L\n\x14primaryVersionAction\x18 \x01(\x0b\x32..whatsapp.SyncActionValue.PrimaryVersionAction\x12>\n\rstickerAction\x18! \x01(\x0b\x32\'.whatsapp.SyncActionValue.StickerAction\x12V\n\x19removeRecentStickerAction\x18\" \x01(\x0b\x32\x33.whatsapp.SyncActionValue.RemoveRecentStickerAction\x12\x46\n\x0e\x63hatAssignment\x18# \x01(\x0b\x32..whatsapp.SyncActionValue.ChatAssignmentAction\x12^\n\x1a\x63hatAssignmentOpenedStatus\x18$ \x01(\x0b\x32:.whatsapp.SyncActionValue.ChatAssignmentOpenedStatusAction\x12H\n\x12pnForLidChatAction\x18% \x01(\x0b\x32,.whatsapp.SyncActionValue.PnForLidChatAction\x12P\n\x16marketingMessageAction\x18& \x01(\x0b\x32\x30.whatsapp.SyncActionValue.MarketingMessageAction\x12\x62\n\x1fmarketingMessageBroadcastAction\x18\' \x01(\x0b\x32\x39.whatsapp.SyncActionValue.MarketingMessageBroadcastAction\x12N\n\x15\x65xternalWebBetaAction\x18( \x01(\x0b\x32/.whatsapp.SyncActionValue.ExternalWebBetaAction\x12Z\n\x1bprivacySettingRelayAllCalls\x18) \x01(\x0b\x32\x35.whatsapp.SyncActionValue.PrivacySettingRelayAllCalls\x12>\n\rcallLogAction\x18* \x01(\x0b\x32\'.whatsapp.SyncActionValue.CallLogAction\x12\x30\n\x06ugcBot\x18+ \x01(\x0b\x32 .whatsapp.SyncActionValue.UGCBot\x12\x44\n\rstatusPrivacy\x18, \x01(\x0b\x32-.whatsapp.SyncActionValue.StatusPrivacyAction\x12R\n\x17\x62otWelcomeRequestAction\x18- \x01(\x0b\x32\x31.whatsapp.SyncActionValue.BotWelcomeRequestAction\x12X\n\x17\x64\x65leteIndividualCallLog\x18. \x01(\x0b\x32\x37.whatsapp.SyncActionValue.DeleteIndividualCallLogAction\x12N\n\x15labelReorderingAction\x18/ \x01(\x0b\x32/.whatsapp.SyncActionValue.LabelReorderingAction\x12\x46\n\x11paymentInfoAction\x18\x30 \x01(\x0b\x32+.whatsapp.SyncActionValue.PaymentInfoAction\x12X\n\x1a\x63ustomPaymentMethodsAction\x18\x31 \x01(\x0b\x32\x34.whatsapp.SyncActionValue.CustomPaymentMethodsAction\x12@\n\x0elockChatAction\x18\x32 \x01(\x0b\x32(.whatsapp.SyncActionValue.LockChatAction\x12\x34\n\x10\x63hatLockSettings\x18\x33 \x01(\x0b\x32\x1a.whatsapp.ChatLockSettings\x12T\n\x18wamoUserIdentifierAction\x18\x34 \x01(\x0b\x32\x32.whatsapp.SyncActionValue.WamoUserIdentifierAction\x12r\n\'privacySettingDisableLinkPreviewsAction\x18\x35 \x01(\x0b\x32\x41.whatsapp.SyncActionValue.PrivacySettingDisableLinkPreviewsAction\x12\x38\n\x12\x64\x65viceCapabilities\x18\x36 \x01(\x0b\x32\x1c.whatsapp.DeviceCapabilities\x12@\n\x0enoteEditAction\x18\x37 \x01(\x0b\x32(.whatsapp.SyncActionValue.NoteEditAction\x12\x42\n\x0f\x66\x61voritesAction\x18\x38 \x01(\x0b\x32).whatsapp.SyncActionValue.FavoritesAction\x12\\\n\x1cmerchantPaymentPartnerAction\x18\x39 \x01(\x0b\x32\x36.whatsapp.SyncActionValue.MerchantPaymentPartnerAction\x12\\\n\x1cwaffleAccountLinkStateAction\x18: \x01(\x0b\x32\x36.whatsapp.SyncActionValue.WaffleAccountLinkStateAction\x12T\n\x15usernameChatStartMode\x18; \x01(\x0b\x32\x35.whatsapp.SyncActionValue.UsernameChatStartModeAction\x12\x66\n!notificationActivitySettingAction\x18< \x01(\x0b\x32;.whatsapp.SyncActionValue.NotificationActivitySettingAction\x12\x44\n\x10lidContactAction\x18= \x01(\x0b\x32*.whatsapp.SyncActionValue.LidContactAction\x12\x64\n ctwaPerCustomerDataSharingAction\x18> \x01(\x0b\x32:.whatsapp.SyncActionValue.CtwaPerCustomerDataSharingAction\x12\x44\n\x10paymentTosAction\x18? \x01(\x0b\x32*.whatsapp.SyncActionValue.PaymentTosAction\x12\x90\x01\n6privacySettingChannelsPersonalisedRecommendationAction\x18@ \x01(\x0b\x32P.whatsapp.SyncActionValue.PrivacySettingChannelsPersonalisedRecommendationAction\x12\\\n\x1c\x64\x65tectedOutcomesStatusAction\x18\x42 \x01(\x0b\x32\x36.whatsapp.SyncActionValue.DetectedOutcomesStatusAction\x12\\\n\x1cmaibaAiFeaturesControlAction\x18\x44 \x01(\x0b\x32\x36.whatsapp.SyncActionValue.MaibaAIFeaturesControlAction\x12Z\n\x1b\x62usinessBroadcastListAction\x18\x45 \x01(\x0b\x32\x35.whatsapp.SyncActionValue.BusinessBroadcastListAction\x12\x46\n\x11musicUserIdAction\x18\x46 \x01(\x0b\x32+.whatsapp.SyncActionValue.MusicUserIdAction\x12|\n,statusPostOptInNotificationPreferencesAction\x18G \x01(\x0b\x32\x46.whatsapp.SyncActionValue.StatusPostOptInNotificationPreferencesAction\x12J\n\x13\x61vatarUpdatedAction\x18H \x01(\x0b\x32-.whatsapp.SyncActionValue.AvatarUpdatedAction\x12`\n\x1eprivateProcessingSettingAction\x18J \x01(\x0b\x32\x38.whatsapp.SyncActionValue.PrivateProcessingSettingAction\x12`\n\x1enewsletterSavedInterestsAction\x18K \x01(\x0b\x32\x38.whatsapp.SyncActionValue.NewsletterSavedInterestsAction\x12L\n\x14\x61iThreadRenameAction\x18L \x01(\x0b\x32..whatsapp.SyncActionValue.AiThreadRenameAction\x12T\n\x18interactiveMessageAction\x18M \x01(\x0b\x32\x32.whatsapp.SyncActionValue.InteractiveMessageAction\x12H\n\x12settingsSyncAction\x18N \x01(\x0b\x32,.whatsapp.SyncActionValue.SettingsSyncAction\x12\x44\n\x10outContactAction\x18O \x01(\x0b\x32*.whatsapp.SyncActionValue.OutContactAction\x12\x46\n\x11nctSaltSyncAction\x18P \x01(\x0b\x32+.whatsapp.SyncActionValue.NctSaltSyncAction\x12\x62\n\x1f\x62usinessBroadcastCampaignAction\x18Q \x01(\x0b\x32\x39.whatsapp.SyncActionValue.BusinessBroadcastCampaignAction\x12\x62\n\x1f\x62usinessBroadcastInsightsAction\x18R \x01(\x0b\x32\x39.whatsapp.SyncActionValue.BusinessBroadcastInsightsAction\x12H\n\x12\x63ustomerDataAction\x18S \x01(\x0b\x32,.whatsapp.SyncActionValue.CustomerDataAction\x12V\n\x19subscriptionsSyncV2Action\x18T \x01(\x0b\x32\x33.whatsapp.SyncActionValue.SubscriptionsSyncV2Action\x12\x42\n\x0fthreadPinAction\x18U \x01(\x0b\x32).whatsapp.SyncActionValue.ThreadPinAction\x12\x62\n\x1f\x61utoOrganizeBusinessChatSetting\x18V \x01(\x0b\x32\x39.whatsapp.SyncActionValue.AutoOrganizeBusinessChatSetting\x12T\n\x18\x62izAiSettingsNudgeAction\x18W \x01(\x0b\x32\x32.whatsapp.SyncActionValue.BizAISettingsNudgeAction\x1a@\n\x0b\x41gentAction\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x10\n\x08\x64\x65viceID\x18\x02 \x01(\x05\x12\x11\n\tisDeleted\x18\x03 \x01(\x08\x1a(\n\x14\x41iThreadRenameAction\x12\x10\n\x08newTitle\x18\x01 \x01(\t\x1a,\n\x19\x41ndroidUnsupportedActions\x12\x0f\n\x07\x61llowed\x18\x01 \x01(\x08\x1am\n\x11\x41rchiveChatAction\x12\x10\n\x08\x61rchived\x18\x01 \x01(\x08\x12\x46\n\x0cmessageRange\x18\x02 \x01(\x0b\x32\x30.whatsapp.SyncActionValue.SyncActionMessageRange\x1a\x37\n\x1f\x41utoOrganizeBusinessChatSetting\x12\x14\n\x0c\x61utoOrganize\x18\x01 \x01(\x08\x1a\xe8\x01\n\x13\x41vatarUpdatedAction\x12P\n\teventType\x18\x01 \x01(\x0e\x32=.whatsapp.SyncActionValue.AvatarUpdatedAction.AvatarEventType\x12\x45\n\x14recentAvatarStickers\x18\x02 \x03(\x0b\x32\'.whatsapp.SyncActionValue.StickerAction\"8\n\x0f\x41vatarEventType\x12\x0b\n\x07UPDATED\x10\x00\x12\x0b\n\x07\x43REATED\x10\x01\x12\x0b\n\x07\x44\x45LETED\x10\x02\x1a\xa0\x02\n\x18\x42izAISettingsNudgeAction\x12Z\n\x08\x63\x61tegory\x18\x01 \x01(\x0e\x32H.whatsapp.SyncActionValue.BizAISettingsNudgeAction.BizAISettingsCategory\x12\x0f\n\x07version\x18\x02 \x01(\x03\x12\x13\n\x0bupdatedAtMs\x18\x03 \x01(\x03\"\x81\x01\n\x15\x42izAISettingsCategory\x12\x0b\n\x07UNKNOWN\x10\x00\x12\x10\n\x0cINSTRUCTIONS\x10\x01\x12\x15\n\x11RESPONSE_SETTINGS\x10\x02\x12\x15\n\x11\x45XAMPLE_RESPONSES\x10\x03\x12\r\n\tKNOWLEDGE\x10\x04\x12\x0c\n\x08LEAD_GEN\x10\x05\x1a)\n\x17\x42otWelcomeRequestAction\x12\x0e\n\x06isSent\x18\x01 \x01(\x08\x1a\x39\n\x18\x42roadcastListParticipant\x12\x0e\n\x06lidJid\x18\x01 \x02(\t\x12\r\n\x05pnJid\x18\x02 \x01(\t\x1a\x35\n\"BusinessBroadcastAssociationAction\x12\x0f\n\x07\x64\x65leted\x18\x01 \x01(\x08\x1a\x8b\x02\n\x1f\x42usinessBroadcastCampaignAction\x12\x10\n\x08\x64\x65viceId\x18\x01 \x01(\x05\x12\x0c\n\x04\x61\x64Id\x18\x02 \x01(\t\x12\x0c\n\x04name\x18\x03 \x01(\t\x12\r\n\x05msgId\x18\x04 \x01(\t\x12\x14\n\x0c\x62roadcastJid\x18\x05 \x01(\t\x12\x15\n\rreservedQuota\x18\x06 \x01(\x05\x12\x1a\n\x12scheduledTimestamp\x18\x07 \x01(\x03\x12\x17\n\x0f\x63reateTimestamp\x18\x08 \x01(\x03\x12I\n\x06status\x18\t \x01(\x0e\x32\x39.whatsapp.SyncActionValue.BusinessBroadcastCampaignStatus\x1a\x93\x01\n\x1f\x42usinessBroadcastInsightsAction\x12\x16\n\x0erecipientCount\x18\x01 \x01(\x05\x12\x16\n\x0e\x64\x65liveredCount\x18\x02 \x01(\x05\x12\x11\n\treadCount\x18\x03 \x01(\x05\x12\x14\n\x0crepliedCount\x18\x04 \x01(\x05\x12\x17\n\x0fquickReplyCount\x18\x05 \x01(\x05\x1a\xb8\x01\n\x1b\x42usinessBroadcastListAction\x12\x0f\n\x07\x64\x65leted\x18\x01 \x01(\x08\x12H\n\x0cparticipants\x18\x02 \x03(\x0b\x32\x32.whatsapp.SyncActionValue.BroadcastListParticipant\x12\x10\n\x08listName\x18\x03 \x01(\t\x12\x10\n\x08labelIds\x18\x04 \x03(\t\x12\x1a\n\x12\x61udienceExpression\x18\x05 \x01(\t\x1a?\n\rCallLogAction\x12.\n\rcallLogRecord\x18\x01 \x01(\x0b\x32\x17.whatsapp.CallLogRecord\x1a-\n\x14\x43hatAssignmentAction\x12\x15\n\rdeviceAgentID\x18\x01 \x01(\t\x1a\x36\n ChatAssignmentOpenedStatusAction\x12\x12\n\nchatOpened\x18\x01 \x01(\x08\x1aY\n\x0f\x43learChatAction\x12\x46\n\x0cmessageRange\x18\x01 \x01(\x0b\x32\x30.whatsapp.SyncActionValue.SyncActionMessageRange\x1a\x87\x01\n\rContactAction\x12\x10\n\x08\x66ullName\x18\x01 \x01(\t\x12\x11\n\tfirstName\x18\x02 \x01(\t\x12\x0e\n\x06lidJid\x18\x03 \x01(\t\x12 \n\x18saveOnPrimaryAddressbook\x18\x04 \x01(\x08\x12\r\n\x05pnJid\x18\x05 \x01(\t\x12\x10\n\x08username\x18\x06 \x01(\t\x1aO\n CtwaPerCustomerDataSharingAction\x12+\n#isCtwaPerCustomerDataSharingEnabled\x18\x01 \x01(\x08\x1a\x93\x01\n\x13\x43ustomPaymentMethod\x12\x14\n\x0c\x63redentialId\x18\x01 \x02(\t\x12\x0f\n\x07\x63ountry\x18\x02 \x02(\t\x12\x0c\n\x04type\x18\x03 \x02(\t\x12G\n\x08metadata\x18\x04 \x03(\x0b\x32\x35.whatsapp.SyncActionValue.CustomPaymentMethodMetadata\x1a\x39\n\x1b\x43ustomPaymentMethodMetadata\x12\x0b\n\x03key\x18\x01 \x02(\t\x12\r\n\x05value\x18\x02 \x02(\t\x1ai\n\x1a\x43ustomPaymentMethodsAction\x12K\n\x14\x63ustomPaymentMethods\x18\x01 \x03(\x0b\x32-.whatsapp.SyncActionValue.CustomPaymentMethod\x1a\xed\x01\n\x12\x43ustomerDataAction\x12\x0f\n\x07\x63hatJid\x18\x01 \x01(\t\x12\x13\n\x0b\x63ontactType\x18\x02 \x01(\x05\x12\r\n\x05\x65mail\x18\x03 \x01(\t\x12\x17\n\x0f\x61ltPhoneNumbers\x18\x04 \x01(\t\x12\x10\n\x08\x62irthday\x18\x05 \x01(\x03\x12\x0f\n\x07\x61\x64\x64ress\x18\x06 \x01(\t\x12\x19\n\x11\x61\x63quisitionSource\x18\x07 \x01(\x05\x12\x11\n\tleadStage\x18\x08 \x01(\x05\x12\x11\n\tlastOrder\x18\t \x01(\x03\x12\x11\n\tcreatedAt\x18\n \x01(\x03\x12\x12\n\nmodifiedAt\x18\x0b \x01(\x03\x1aZ\n\x10\x44\x65leteChatAction\x12\x46\n\x0cmessageRange\x18\x01 \x01(\x0b\x32\x30.whatsapp.SyncActionValue.SyncActionMessageRange\x1a\x44\n\x1d\x44\x65leteIndividualCallLogAction\x12\x0f\n\x07peerJid\x18\x01 \x01(\t\x12\x12\n\nisIncoming\x18\x02 \x01(\x08\x1aI\n\x18\x44\x65leteMessageForMeAction\x12\x13\n\x0b\x64\x65leteMedia\x18\x01 \x01(\x08\x12\x18\n\x10messageTimestamp\x18\x02 \x01(\x03\x1a\x31\n\x1c\x44\x65tectedOutcomesStatusAction\x12\x11\n\tisEnabled\x18\x01 \x01(\x08\x1a(\n\x15\x45xternalWebBetaAction\x12\x0f\n\x07isOptIn\x18\x01 \x01(\x08\x1ap\n\x0f\x46\x61voritesAction\x12\x45\n\tfavorites\x18\x01 \x03(\x0b\x32\x32.whatsapp.SyncActionValue.FavoritesAction.Favorite\x1a\x16\n\x08\x46\x61vorite\x12\n\n\x02id\x18\x01 \x01(\t\x1a\xb9\x01\n\x18InteractiveMessageAction\x12]\n\x04type\x18\x01 \x02(\x0e\x32O.whatsapp.SyncActionValue.InteractiveMessageAction.InteractiveMessageActionMode\x12\r\n\x05\x61gmId\x18\x02 \x01(\t\"/\n\x1cInteractiveMessageActionMode\x12\x0f\n\x0b\x44ISABLE_CTA\x10\x01\x1a(\n\rKeyExpiration\x12\x17\n\x0f\x65xpiredKeyEpoch\x18\x01 \x01(\x05\x1a@\n\x16LabelAssociationAction\x12\x0f\n\x07labeled\x18\x01 \x01(\x08\x12\x15\n\rmodelMetaData\x18\x02 \x01(\t\x1a\xdd\x03\n\x0fLabelEditAction\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\r\n\x05\x63olor\x18\x02 \x01(\x05\x12\x14\n\x0cpredefinedId\x18\x03 \x01(\x05\x12\x0f\n\x07\x64\x65leted\x18\x04 \x01(\x08\x12\x12\n\norderIndex\x18\x05 \x01(\x05\x12\x10\n\x08isActive\x18\x06 \x01(\x08\x12@\n\x04type\x18\x07 \x01(\x0e\x32\x32.whatsapp.SyncActionValue.LabelEditAction.ListType\x12\x13\n\x0bisImmutable\x18\x08 \x01(\x08\x12\x15\n\rmuteEndTimeMs\x18\t \x01(\x03\"\xf1\x01\n\x08ListType\x12\x08\n\x04NONE\x10\x00\x12\n\n\x06UNREAD\x10\x01\x12\n\n\x06GROUPS\x10\x02\x12\r\n\tFAVORITES\x10\x03\x12\x0e\n\nPREDEFINED\x10\x04\x12\n\n\x06\x43USTOM\x10\x05\x12\r\n\tCOMMUNITY\x10\x06\x12\x13\n\x0fSERVER_ASSIGNED\x10\x07\x12\x0b\n\x07\x44RAFTED\x10\x08\x12\x0e\n\nAI_HANDOFF\x10\t\x12\x0c\n\x08\x43HANNELS\x10\n\x12\x11\n\rAI_RESPONDING\x10\x0b\x12\x0c\n\x08\x41RCHIVED\x10\x0c\x12\n\n\x06LOCKED\x10\r\x12\x0b\n\x07INVITES\x10\x0e\x12\x0f\n\x0bTHIRD_PARTY\x10\x0f\x1a/\n\x15LabelReorderingAction\x12\x16\n\x0esortedLabelIds\x18\x01 \x03(\x05\x1aI\n\x10LidContactAction\x12\x10\n\x08\x66ullName\x18\x01 \x01(\t\x12\x11\n\tfirstName\x18\x02 \x01(\t\x12\x10\n\x08username\x18\x03 \x01(\t\x1a\x1f\n\rLocaleSetting\x12\x0e\n\x06locale\x18\x01 \x01(\t\x1a \n\x0eLockChatAction\x12\x0e\n\x06locked\x18\x01 \x01(\x08\x1a\xed\x02\n\x1cMaibaAIFeaturesControlAction\x12\x64\n\x0f\x61iFeatureStatus\x18\x01 \x01(\x0e\x32K.whatsapp.SyncActionValue.MaibaAIFeaturesControlAction.MaibaAIFeatureStatus\x12\\\n\x0b\x61iReplyMode\x18\x02 \x01(\x0e\x32G.whatsapp.SyncActionValue.MaibaAIFeaturesControlAction.MaibaAIReplyMode\"K\n\x14MaibaAIFeatureStatus\x12\x0b\n\x07\x45NABLED\x10\x00\x12\x18\n\x14\x45NABLED_HAS_LEARNING\x10\x01\x12\x0c\n\x08\x44ISABLED\x10\x02\"<\n\x10MaibaAIReplyMode\x12\t\n\x05MUTED\x10\x00\x12\x0c\n\x08\x41I_AGENT\x10\x01\x12\x0f\n\x0bSUGGESTIONS\x10\x02\x1al\n\x14MarkChatAsReadAction\x12\x0c\n\x04read\x18\x01 \x01(\x08\x12\x46\n\x0cmessageRange\x18\x02 \x01(\x0b\x32\x30.whatsapp.SyncActionValue.SyncActionMessageRange\x1a\x93\x02\n\x16MarketingMessageAction\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x0f\n\x07message\x18\x02 \x01(\t\x12\\\n\x04type\x18\x03 \x01(\x0e\x32N.whatsapp.SyncActionValue.MarketingMessageAction.MarketingMessagePrototypeType\x12\x11\n\tcreatedAt\x18\x04 \x01(\x03\x12\x12\n\nlastSentAt\x18\x05 \x01(\x03\x12\x11\n\tisDeleted\x18\x06 \x01(\x08\x12\x0f\n\x07mediaId\x18\x07 \x01(\t\"1\n\x1dMarketingMessagePrototypeType\x12\x10\n\x0cPERSONALIZED\x10\x00\x1a\x37\n\x1fMarketingMessageBroadcastAction\x12\x14\n\x0crepliedCount\x18\x01 \x01(\x05\x1a\xcd\x01\n\x1cMerchantPaymentPartnerAction\x12M\n\x06status\x18\x01 \x02(\x0e\x32=.whatsapp.SyncActionValue.MerchantPaymentPartnerAction.Status\x12\x0f\n\x07\x63ountry\x18\x02 \x02(\t\x12\x13\n\x0bgatewayName\x18\x03 \x01(\t\x12\x14\n\x0c\x63redentialId\x18\x04 \x01(\t\"\"\n\x06Status\x12\n\n\x06\x41\x43TIVE\x10\x00\x12\x0c\n\x08INACTIVE\x10\x01\x1a\xbb\x01\n\x11MusicUserIdAction\x12\x13\n\x0bmusicUserId\x18\x01 \x01(\t\x12Z\n\x11music_user_id_map\x18\x02 \x03(\x0b\x32?.whatsapp.SyncActionValue.MusicUserIdAction.MusicUserIdMapEntry\x1a\x35\n\x13MusicUserIdMapEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\x1aq\n\nMuteAction\x12\r\n\x05muted\x18\x01 \x01(\x08\x12\x18\n\x10muteEndTimestamp\x18\x02 \x01(\x03\x12\x11\n\tautoMuted\x18\x03 \x01(\x08\x12\'\n\x1fmuteEveryoneMentionEndTimestamp\x18\x04 \x01(\x03\x1a!\n\x11NctSaltSyncAction\x12\x0c\n\x04salt\x18\x01 \x01(\x0c\x1a\x42\n\x1eNewsletterSavedInterestsAction\x12 \n\x18newsletterSavedInterests\x18\x01 \x01(\t\x1a\xd1\x01\n\x0eNoteEditAction\x12?\n\x04type\x18\x01 \x01(\x0e\x32\x31.whatsapp.SyncActionValue.NoteEditAction.NoteType\x12\x0f\n\x07\x63hatJid\x18\x02 \x01(\t\x12\x11\n\tcreatedAt\x18\x03 \x01(\x03\x12\x0f\n\x07\x64\x65leted\x18\x04 \x01(\x08\x12\x1b\n\x13unstructuredContent\x18\x05 \x01(\t\",\n\x08NoteType\x12\x10\n\x0cUNSTRUCTURED\x10\x01\x12\x0e\n\nSTRUCTURED\x10\x02\x1a\x94\x02\n!NotificationActivitySettingAction\x12|\n\x1bnotificationActivitySetting\x18\x01 \x01(\x0e\x32W.whatsapp.SyncActionValue.NotificationActivitySettingAction.NotificationActivitySetting\"q\n\x1bNotificationActivitySetting\x12\x18\n\x14\x44\x45\x46\x41ULT_ALL_MESSAGES\x10\x00\x12\x10\n\x0c\x41LL_MESSAGES\x10\x01\x12\x0e\n\nHIGHLIGHTS\x10\x02\x12\x16\n\x12\x44\x45\x46\x41ULT_HIGHLIGHTS\x10\x03\x1a!\n\tNuxAction\x12\x14\n\x0c\x61\x63knowledged\x18\x01 \x01(\x08\x1a\x37\n\x10OutContactAction\x12\x10\n\x08\x66ullName\x18\x01 \x01(\t\x12\x11\n\tfirstName\x18\x02 \x01(\t\x1a \n\x11PaymentInfoAction\x12\x0b\n\x03\x63pi\x18\x01 \x01(\t\x1a\xa1\x01\n\x10PaymentTosAction\x12O\n\rpaymentNotice\x18\x01 \x02(\x0e\x32\x38.whatsapp.SyncActionValue.PaymentTosAction.PaymentNotice\x12\x10\n\x08\x61\x63\x63\x65pted\x18\x02 \x02(\x08\"*\n\rPaymentNotice\x12\x19\n\x15\x42R_PAY_PRIVACY_POLICY\x10\x00\x1a\x1b\n\tPinAction\x12\x0e\n\x06pinned\x18\x01 \x01(\x08\x1a#\n\x12PnForLidChatAction\x12\r\n\x05pnJid\x18\x01 \x01(\t\x1a\x1f\n\x0ePrimaryFeature\x12\r\n\x05\x66lags\x18\x01 \x03(\t\x1a\'\n\x14PrimaryVersionAction\x12\x0f\n\x07version\x18\x01 \x01(\t\x1aP\n6PrivacySettingChannelsPersonalisedRecommendationAction\x12\x16\n\x0eisUserOptedOut\x18\x01 \x01(\x08\x1a\x45\n\'PrivacySettingDisableLinkPreviewsAction\x12\x1a\n\x12isPreviewsDisabled\x18\x01 \x01(\x08\x1a\x30\n\x1bPrivacySettingRelayAllCalls\x12\x11\n\tisEnabled\x18\x01 \x01(\x08\x1a\xd8\x01\n\x1ePrivateProcessingSettingAction\x12q\n\x17privateProcessingStatus\x18\x01 \x01(\x0e\x32P.whatsapp.SyncActionValue.PrivateProcessingSettingAction.PrivateProcessingStatus\"C\n\x17PrivateProcessingStatus\x12\r\n\tUNDEFINED\x10\x00\x12\x0b\n\x07\x45NABLED\x10\x01\x12\x0c\n\x08\x44ISABLED\x10\x02\x1a\x1f\n\x0fPushNameSetting\x12\x0c\n\x04name\x18\x01 \x01(\t\x1a\x83\x01\n\x10QuickReplyAction\x12\x10\n\x08shortcut\x18\x01 \x01(\t\x12\x0f\n\x07message\x18\x02 \x01(\t\x12\x10\n\x08keywords\x18\x03 \x03(\t\x12\r\n\x05\x63ount\x18\x04 \x01(\x05\x12\x0f\n\x07\x64\x65leted\x18\x05 \x01(\x08\x12\x1a\n\x12\x61ssociatedLabelIds\x18\x06 \x03(\t\x1aH\n\x18RecentEmojiWeightsAction\x12,\n\x07weights\x18\x01 \x03(\x0b\x32\x1b.whatsapp.RecentEmojiWeight\x1a\x36\n\x19RemoveRecentStickerAction\x12\x19\n\x11lastStickerSentTs\x18\x01 \x01(\x03\x1a\xbe\x14\n\x12SettingsSyncAction\x12\x14\n\x0cstartAtLogin\x18\x01 \x01(\x08\x12\x16\n\x0eminimizeToTray\x18\x02 \x01(\x08\x12\x10\n\x08language\x18\x03 \x01(\t\x12\x1c\n\x14replaceTextWithEmoji\x18\x04 \x01(\x08\x12_\n\x1d\x62\x61nnerNotificationDisplayMode\x18\x05 \x01(\x0e\x32\x38.whatsapp.SyncActionValue.SettingsSyncAction.DisplayMode\x12_\n\x1dunreadCounterBadgeDisplayMode\x18\x06 \x01(\x0e\x32\x38.whatsapp.SyncActionValue.SettingsSyncAction.DisplayMode\x12%\n\x1disMessagesNotificationEnabled\x18\x07 \x01(\x08\x12\"\n\x1aisCallsNotificationEnabled\x18\x08 \x01(\x08\x12&\n\x1eisReactionsNotificationEnabled\x18\t \x01(\x08\x12,\n$isStatusReactionsNotificationEnabled\x18\n \x01(\x08\x12+\n#isTextPreviewForNotificationEnabled\x18\x0b \x01(\x08\x12!\n\x19\x64\x65\x66\x61ultNotificationToneId\x18\x0c \x01(\x05\x12&\n\x1egroupDefaultNotificationToneId\x18\r \x01(\x05\x12\x10\n\x08\x61ppTheme\x18\x0e \x01(\x05\x12\x13\n\x0bwallpaperId\x18\x0f \x01(\x05\x12 \n\x18isDoodleWallpaperEnabled\x18\x10 \x01(\x08\x12\x10\n\x08\x66ontSize\x18\x11 \x01(\x05\x12#\n\x1bisPhotosAutodownloadEnabled\x18\x12 \x01(\x08\x12#\n\x1bisAudiosAutodownloadEnabled\x18\x13 \x01(\x08\x12#\n\x1bisVideosAutodownloadEnabled\x18\x14 \x01(\x08\x12&\n\x1eisDocumentsAutodownloadEnabled\x18\x15 \x01(\x08\x12\x1b\n\x13\x64isableLinkPreviews\x18\x16 \x01(\x08\x12\x1a\n\x12notificationToneId\x18\x17 \x01(\x05\x12\\\n\x12mediaUploadQuality\x18\x18 \x01(\x0e\x32@.whatsapp.SyncActionValue.SettingsSyncAction.MediaQualitySetting\x12\x1b\n\x13isSpellCheckEnabled\x18\x19 \x01(\x08\x12\x1c\n\x14isEnterToSendEnabled\x18\x1a \x01(\x08\x12)\n!isGroupMessageNotificationEnabled\x18\x1b \x01(\x08\x12+\n#isGroupReactionsNotificationEnabled\x18\x1c \x01(\x08\x12#\n\x1bisStatusNotificationEnabled\x18\x1d \x01(\x08\x12 \n\x18statusNotificationToneId\x18\x1e \x01(\x05\x12*\n\"shouldPlaySoundForCallNotification\x18\x1f \x01(\x08\x12\x13\n\x0b\x63hatThemeId\x18 \x01(\t\x12\x15\n\rcolorSchemeId\x18! \x01(\t\"Y\n\x0b\x44isplayMode\x12\x18\n\x14\x44ISPLAY_MODE_UNKNOWN\x10\x00\x12\n\n\x06\x41LWAYS\x10\x01\x12\t\n\x05NEVER\x10\x02\x12\x19\n\x15ONLY_WHEN_APP_IS_OPEN\x10\x03\"F\n\x13MediaQualitySetting\x12\x19\n\x15MEDIA_QUALITY_UNKNOWN\x10\x00\x12\x0c\n\x08STANDARD\x10\x01\x12\x06\n\x02HD\x10\x02\"\xbc\x08\n\nSettingKey\x12\x17\n\x13SETTING_KEY_UNKNOWN\x10\x00\x12\x12\n\x0eSTART_AT_LOGIN\x10\x01\x12\x14\n\x10MINIMIZE_TO_TRAY\x10\x02\x12\x0c\n\x08LANGUAGE\x10\x03\x12\x1b\n\x17REPLACE_TEXT_WITH_EMOJI\x10\x04\x12$\n BANNER_NOTIFICATION_DISPLAY_MODE\x10\x05\x12%\n!UNREAD_COUNTER_BADGE_DISPLAY_MODE\x10\x06\x12$\n IS_MESSAGES_NOTIFICATION_ENABLED\x10\x07\x12!\n\x1dIS_CALLS_NOTIFICATION_ENABLED\x10\x08\x12%\n!IS_REACTIONS_NOTIFICATION_ENABLED\x10\t\x12,\n(IS_STATUS_REACTIONS_NOTIFICATION_ENABLED\x10\n\x12,\n(IS_TEXT_PREVIEW_FOR_NOTIFICATION_ENABLED\x10\x0b\x12 \n\x1c\x44\x45\x46\x41ULT_NOTIFICATION_TONE_ID\x10\x0c\x12&\n\"GROUP_DEFAULT_NOTIFICATION_TONE_ID\x10\r\x12\r\n\tAPP_THEME\x10\x0e\x12\x10\n\x0cWALLPAPER_ID\x10\x0f\x12\x1f\n\x1bIS_DOODLE_WALLPAPER_ENABLED\x10\x10\x12\r\n\tFONT_SIZE\x10\x11\x12\"\n\x1eIS_PHOTOS_AUTODOWNLOAD_ENABLED\x10\x12\x12\"\n\x1eIS_AUDIOS_AUTODOWNLOAD_ENABLED\x10\x13\x12\"\n\x1eIS_VIDEOS_AUTODOWNLOAD_ENABLED\x10\x14\x12%\n!IS_DOCUMENTS_AUTODOWNLOAD_ENABLED\x10\x15\x12\x19\n\x15\x44ISABLE_LINK_PREVIEWS\x10\x16\x12\x18\n\x14NOTIFICATION_TONE_ID\x10\x17\x12\x18\n\x14MEDIA_UPLOAD_QUALITY\x10\x18\x12\x1a\n\x16IS_SPELL_CHECK_ENABLED\x10\x19\x12\x1c\n\x18IS_ENTER_TO_SEND_ENABLED\x10\x1a\x12)\n%IS_GROUP_MESSAGE_NOTIFICATION_ENABLED\x10\x1b\x12+\n\'IS_GROUP_REACTIONS_NOTIFICATION_ENABLED\x10\x1c\x12\"\n\x1eIS_STATUS_NOTIFICATION_ENABLED\x10\x1d\x12\x1f\n\x1bSTATUS_NOTIFICATION_TONE_ID\x10\x1e\x12+\n\'SHOULD_PLAY_SOUND_FOR_CALL_NOTIFICATION\x10\x1f\x12\x11\n\rCHAT_THEME_ID\x10 \x12\x13\n\x0f\x43OLOR_SCHEME_ID\x10!\"R\n\x0fSettingPlatform\x12\x14\n\x10PLATFORM_UNKNOWN\x10\x00\x12\x07\n\x03WEB\x10\x01\x12\n\n\x06HYBRID\x10\x02\x12\x0b\n\x07WINDOWS\x10\x03\x12\x07\n\x03MAC\x10\x04\x1a\x1d\n\nStarAction\x12\x0f\n\x07starred\x18\x01 \x01(\x08\x1a?\n,StatusPostOptInNotificationPreferencesAction\x12\x0f\n\x07\x65nabled\x18\x01 \x01(\x08\x1a\x8f\x04\n\x13StatusPrivacyAction\x12R\n\x04mode\x18\x01 \x01(\x0e\x32\x44.whatsapp.SyncActionValue.StatusPrivacyAction.StatusDistributionMode\x12\x0f\n\x07userJid\x18\x02 \x03(\t\x12\x11\n\tshareToFB\x18\x03 \x01(\x08\x12\x11\n\tshareToIG\x18\x04 \x01(\x08\x12M\n\x0b\x63ustomLists\x18\x05 \x03(\x0b\x32\x38.whatsapp.SyncActionValue.StatusPrivacyAction.CustomList\x12S\n\x05modes\x18\x06 \x03(\x0e\x32\x44.whatsapp.SyncActionValue.StatusPrivacyAction.StatusDistributionMode\x1a^\n\nCustomList\x12\x0e\n\x06listId\x18\x01 \x01(\t\x12\x0c\n\x04name\x18\x02 \x01(\t\x12\r\n\x05\x65moji\x18\x03 \x01(\t\x12\x12\n\nisSelected\x18\x04 \x01(\x08\x12\x0f\n\x07userJid\x18\x05 \x03(\t\"i\n\x16StatusDistributionMode\x12\x0e\n\nALLOW_LIST\x10\x00\x12\r\n\tDENY_LIST\x10\x01\x12\x0c\n\x08\x43ONTACTS\x10\x02\x12\x11\n\rCLOSE_FRIENDS\x10\x03\x12\x0f\n\x0b\x43USTOM_LIST\x10\x04\x1a\x86\x02\n\rStickerAction\x12\x0b\n\x03url\x18\x01 \x01(\t\x12\x15\n\rfileEncSha256\x18\x02 \x01(\x0c\x12\x10\n\x08mediaKey\x18\x03 \x01(\x0c\x12\x10\n\x08mimetype\x18\x04 \x01(\t\x12\x0e\n\x06height\x18\x05 \x01(\r\x12\r\n\x05width\x18\x06 \x01(\r\x12\x12\n\ndirectPath\x18\x07 \x01(\t\x12\x12\n\nfileLength\x18\x08 \x01(\x04\x12\x12\n\nisFavorite\x18\t \x01(\x08\x12\x14\n\x0c\x64\x65viceIdHint\x18\n \x01(\r\x12\x10\n\x08isLottie\x18\x0b \x01(\x08\x12\x11\n\timageHash\x18\x0c \x01(\t\x12\x17\n\x0fisAvatarSticker\x18\r \x01(\x08\x1a[\n\x12SubscriptionAction\x12\x15\n\risDeactivated\x18\x01 \x01(\x08\x12\x16\n\x0eisAutoRenewing\x18\x02 \x01(\x08\x12\x16\n\x0e\x65xpirationDate\x18\x03 \x01(\x03\x1a\xc7\x03\n\x19SubscriptionsSyncV2Action\x12[\n\rsubscriptions\x18\x01 \x03(\x0b\x32\x44.whatsapp.SyncActionValue.SubscriptionsSyncV2Action.SubscriptionInfo\x12T\n\x0bpaidFeature\x18\x02 \x03(\x0b\x32?.whatsapp.SyncActionValue.SubscriptionsSyncV2Action.PaidFeature\x1aS\n\x0bPaidFeature\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x0f\n\x07\x65nabled\x18\x02 \x01(\x08\x12\r\n\x05limit\x18\x03 \x01(\x05\x12\x16\n\x0e\x65xpirationTime\x18\x04 \x01(\x03\x1a\xa1\x01\n\x10SubscriptionInfo\x12\n\n\x02id\x18\x01 \x01(\t\x12\x0c\n\x04tier\x18\x02 \x01(\x05\x12\x0e\n\x06status\x18\x03 \x01(\t\x12\x11\n\tstartTime\x18\x04 \x01(\x03\x12\x0f\n\x07\x65ndTime\x18\x05 \x01(\x03\x12\x19\n\x11isPlatformChanged\x18\x06 \x01(\x08\x12\x0e\n\x06source\x18\x07 \x01(\t\x12\x14\n\x0c\x63reationTime\x18\x08 \x01(\x03\x1aI\n\x11SyncActionMessage\x12!\n\x03key\x18\x01 \x01(\x0b\x32\x14.whatsapp.MessageKey\x12\x11\n\ttimestamp\x18\x02 \x01(\x03\x1a\x99\x01\n\x16SyncActionMessageRange\x12\x1c\n\x14lastMessageTimestamp\x18\x01 \x01(\x03\x12\"\n\x1alastSystemMessageTimestamp\x18\x02 \x01(\x03\x12=\n\x08messages\x18\x03 \x03(\x0b\x32+.whatsapp.SyncActionValue.SyncActionMessage\x1a!\n\x0fThreadPinAction\x12\x0e\n\x06pinned\x18\x01 \x01(\x08\x1a\x39\n\x10TimeFormatAction\x12%\n\x1disTwentyFourHourFormatEnabled\x18\x01 \x01(\x08\x1a\x1c\n\x06UGCBot\x12\x12\n\ndefinition\x18\x01 \x01(\x0c\x1a/\n\x15UnarchiveChatsSetting\x12\x16\n\x0eunarchiveChats\x18\x01 \x01(\x08\x1a%\n\x14UserStatusMuteAction\x12\r\n\x05muted\x18\x01 \x01(\x08\x1a\x9b\x01\n\x1bUsernameChatStartModeAction\x12Z\n\rchatStartMode\x18\x01 \x01(\x0e\x32\x43.whatsapp.SyncActionValue.UsernameChatStartModeAction.ChatStartMode\" \n\rChatStartMode\x12\x07\n\x03LID\x10\x01\x12\x06\n\x02PN\x10\x02\x1a\xb4\x01\n\x1cWaffleAccountLinkStateAction\x12Z\n\tlinkState\x18\x02 \x01(\x0e\x32G.whatsapp.SyncActionValue.WaffleAccountLinkStateAction.AccountLinkState\"8\n\x10\x41\x63\x63ountLinkState\x12\n\n\x06\x41\x43TIVE\x10\x00\x12\n\n\x06PAUSED\x10\x01\x12\x0c\n\x08UNLINKED\x10\x02\x1a.\n\x18WamoUserIdentifierAction\x12\x12\n\nidentifier\x18\x01 \x01(\t\"a\n\x1f\x42usinessBroadcastCampaignStatus\x12\t\n\x05\x44RAFT\x10\x01\x12\r\n\tSCHEDULED\x10\x02\x12\x0e\n\nPROCESSING\x10\x03\x12\n\n\x06\x46\x41ILED\x10\x04\x12\x08\n\x04SENT\x10\x05\"\x1a\n\nSyncdIndex\x12\x0c\n\x04\x62lob\x18\x01 \x01(\x0c\"\x98\x01\n\rSyncdMutation\x12\x39\n\toperation\x18\x01 \x01(\x0e\x32&.whatsapp.SyncdMutation.SyncdOperation\x12%\n\x06record\x18\x02 \x01(\x0b\x32\x15.whatsapp.SyncdRecord\"%\n\x0eSyncdOperation\x12\x07\n\x03SET\x10\x00\x12\n\n\x06REMOVE\x10\x01\"<\n\x0eSyncdMutations\x12*\n\tmutations\x18\x01 \x03(\x0b\x32\x17.whatsapp.SyncdMutation\"\xb8\x02\n\nSyncdPatch\x12\'\n\x07version\x18\x01 \x01(\x0b\x32\x16.whatsapp.SyncdVersion\x12*\n\tmutations\x18\x02 \x03(\x0b\x32\x17.whatsapp.SyncdMutation\x12:\n\x11\x65xternalMutations\x18\x03 \x01(\x0b\x32\x1f.whatsapp.ExternalBlobReference\x12\x13\n\x0bsnapshotMac\x18\x04 \x01(\x0c\x12\x10\n\x08patchMac\x18\x05 \x01(\x0c\x12\x1e\n\x05keyId\x18\x06 \x01(\x0b\x32\x0f.whatsapp.KeyId\x12$\n\x08\x65xitCode\x18\x07 \x01(\x0b\x32\x12.whatsapp.ExitCode\x12\x13\n\x0b\x64\x65viceIndex\x18\x08 \x01(\r\x12\x17\n\x0f\x63lientDebugData\x18\t \x01(\x0c\"[\n\x14SyncdPlainTextRecord\x12\'\n\x05value\x18\x01 \x01(\x0b\x32\x18.whatsapp.SyncActionData\x12\r\n\x05keyId\x18\x02 \x01(\x0c\x12\x0b\n\x03mac\x18\x03 \x01(\x0c\"w\n\x0bSyncdRecord\x12#\n\x05index\x18\x01 \x01(\x0b\x32\x14.whatsapp.SyncdIndex\x12#\n\x05value\x18\x02 \x01(\x0b\x32\x14.whatsapp.SyncdValue\x12\x1e\n\x05keyId\x18\x03 \x01(\x0b\x32\x0f.whatsapp.KeyId\"\x8d\x01\n\rSyncdSnapshot\x12\'\n\x07version\x18\x01 \x01(\x0b\x32\x16.whatsapp.SyncdVersion\x12&\n\x07records\x18\x02 \x03(\x0b\x32\x15.whatsapp.SyncdRecord\x12\x0b\n\x03mac\x18\x03 \x01(\x0c\x12\x1e\n\x05keyId\x18\x04 \x01(\x0b\x32\x0f.whatsapp.KeyId\"\xab\x01\n\x15SyncdSnapshotRecovery\x12\'\n\x07version\x18\x01 \x01(\x0b\x32\x16.whatsapp.SyncdVersion\x12\x16\n\x0e\x63ollectionName\x18\x02 \x01(\t\x12\x37\n\x0fmutationRecords\x18\x03 \x03(\x0b\x32\x1e.whatsapp.SyncdPlainTextRecord\x12\x18\n\x10\x63ollectionLthash\x18\x04 \x01(\x0c\"\x1a\n\nSyncdValue\x12\x0c\n\x04\x62lob\x18\x01 \x01(\x0c\"\x1f\n\x0cSyncdVersion\x12\x0f\n\x07version\x18\x01 \x01(\x04\".\n\rTapLinkAction\x12\r\n\x05title\x18\x01 \x01(\t\x12\x0e\n\x06tapUrl\x18\x02 \x01(\t\"\xd9\x04\n\x0eTemplateButton\x12\r\n\x05index\x18\x04 \x01(\r\x12\x45\n\x10quickReplyButton\x18\x01 \x01(\x0b\x32).whatsapp.TemplateButton.QuickReplyButtonH\x00\x12\x37\n\turlButton\x18\x02 \x01(\x0b\x32\".whatsapp.TemplateButton.URLButtonH\x00\x12\x39\n\ncallButton\x18\x03 \x01(\x0b\x32#.whatsapp.TemplateButton.CallButtonH\x00\x1a\x8c\x01\n\nCallButton\x12>\n\x0b\x64isplayText\x18\x01 \x01(\x0b\x32).whatsapp.Message.HighlyStructuredMessage\x12>\n\x0bphoneNumber\x18\x02 \x01(\x0b\x32).whatsapp.Message.HighlyStructuredMessage\x1a^\n\x10QuickReplyButton\x12>\n\x0b\x64isplayText\x18\x01 \x01(\x0b\x32).whatsapp.Message.HighlyStructuredMessage\x12\n\n\x02id\x18\x02 \x01(\t\x1a\x83\x01\n\tURLButton\x12>\n\x0b\x64isplayText\x18\x01 \x01(\x0b\x32).whatsapp.Message.HighlyStructuredMessage\x12\x36\n\x03url\x18\x02 \x01(\x0b\x32).whatsapp.Message.HighlyStructuredMessageB\x08\n\x06\x62utton\"\xa2\x01\n\x08ThreadID\x12\x31\n\nthreadType\x18\x01 \x01(\x0e\x32\x1d.whatsapp.ThreadID.ThreadType\x12\'\n\tthreadKey\x18\x02 \x01(\x0b\x32\x14.whatsapp.MessageKey\":\n\nThreadType\x12\x0b\n\x07UNKNOWN\x10\x00\x12\x10\n\x0cVIEW_REPLIES\x10\x01\x12\r\n\tAI_THREAD\x10\x02\"\xc0\x01\n\x1eUnCountedAssociatedMessageList\x12*\n\x08messages\x18\x01 \x03(\x0b\x32\x18.whatsapp.WebMessageInfo\x12+\n\rparentMessage\x18\x02 \x01(\x0b\x32\x14.whatsapp.MessageKey\x12\x45\n\x0f\x61ssociationType\x18\x03 \x01(\x0e\x32,.whatsapp.MessageAssociation.AssociationType\"\x99\x01\n.UnCountedAssociatedMessageListWithMessageBytes\x12:\n\x08messages\x18\x01 \x03(\x0b\x32(.whatsapp.WebMessageInfoWithMessageBytes\x12+\n\rparentMessage\x18\x02 \x01(\x0b\x32\x14.whatsapp.MessageKey\"\xd9\x01\n\x0eUrlTrackingMap\x12N\n\x16urlTrackingMapElements\x18\x01 \x03(\x0b\x32..whatsapp.UrlTrackingMap.UrlTrackingMapElement\x1aw\n\x15UrlTrackingMapElement\x12\x13\n\x0boriginalUrl\x18\x01 \x01(\t\x12\x1b\n\x13unconsentedUsersUrl\x18\x02 \x01(\t\x12\x19\n\x11\x63onsentedUsersUrl\x18\x03 \x01(\t\x12\x11\n\tcardIndex\x18\x04 \x01(\r\"\xdf\x03\n\x0cUserPassword\x12\x31\n\x08\x65ncoding\x18\x01 \x01(\x0e\x32\x1f.whatsapp.UserPassword.Encoding\x12\x37\n\x0btransformer\x18\x02 \x01(\x0e\x32\".whatsapp.UserPassword.Transformer\x12=\n\x0etransformerArg\x18\x03 \x03(\x0b\x32%.whatsapp.UserPassword.TransformerArg\x12\x17\n\x0ftransformedData\x18\x04 \x01(\x0c\x1a\x9a\x01\n\x0eTransformerArg\x12\x0b\n\x03key\x18\x01 \x01(\t\x12:\n\x05value\x18\x02 \x01(\x0b\x32+.whatsapp.UserPassword.TransformerArg.Value\x1a?\n\x05Value\x12\x10\n\x06\x61sBlob\x18\x01 \x01(\x0cH\x00\x12\x1b\n\x11\x61sUnsignedInteger\x18\x02 \x01(\rH\x00\x42\x07\n\x05value\"%\n\x08\x45ncoding\x12\x08\n\x04UTF8\x10\x00\x12\x0f\n\x0bUTF8_BROKEN\x10\x01\"G\n\x0bTransformer\x12\x08\n\x04NONE\x10\x00\x12\x16\n\x12PBKDF2_HMAC_SHA512\x10\x01\x12\x16\n\x12PBKDF2_HMAC_SHA384\x10\x02\"\x9e\x01\n\x0bUserReceipt\x12\x0f\n\x07userJid\x18\x01 \x02(\t\x12\x18\n\x10receiptTimestamp\x18\x02 \x01(\x03\x12\x15\n\rreadTimestamp\x18\x03 \x01(\x03\x12\x17\n\x0fplayedTimestamp\x18\x04 \x01(\x03\x12\x18\n\x10pendingDeviceJid\x18\x05 \x03(\t\x12\x1a\n\x12\x64\x65liveredDeviceJid\x18\x06 \x03(\t\"\xdc\x01\n\x17VerifiedNameCertificate\x12\x0f\n\x07\x64\x65tails\x18\x01 \x01(\x0c\x12\x11\n\tsignature\x18\x02 \x01(\x0c\x12\x17\n\x0fserverSignature\x18\x03 \x01(\x0c\x1a\x83\x01\n\x07\x44\x65tails\x12\x0e\n\x06serial\x18\x01 \x01(\x04\x12\x0e\n\x06issuer\x18\x02 \x01(\t\x12\x14\n\x0cverifiedName\x18\x04 \x01(\t\x12/\n\x0elocalizedNames\x18\x08 \x03(\x0b\x32\x17.whatsapp.LocalizedName\x12\x11\n\tissueTime\x18\n \x01(\x04\"G\n\x11WallpaperSettings\x12\x10\n\x08\x66ilename\x18\x01 \x01(\t\x12\x0f\n\x07opacity\x18\x02 \x01(\r\x12\x0f\n\x07isGenAi\x18\x03 \x01(\x08\"\xe2\x13\n\x0bWebFeatures\x12\x31\n\rlabelsDisplay\x18\x01 \x01(\x0e\x32\x1a.whatsapp.WebFeatures.Flag\x12:\n\x16voipIndividualOutgoing\x18\x02 \x01(\x0e\x32\x1a.whatsapp.WebFeatures.Flag\x12,\n\x08groupsV3\x18\x03 \x01(\x0e\x32\x1a.whatsapp.WebFeatures.Flag\x12\x32\n\x0egroupsV3Create\x18\x04 \x01(\x0e\x32\x1a.whatsapp.WebFeatures.Flag\x12\x32\n\x0e\x63hangeNumberV2\x18\x05 \x01(\x0e\x32\x1a.whatsapp.WebFeatures.Flag\x12:\n\x16queryStatusV3Thumbnail\x18\x06 \x01(\x0e\x32\x1a.whatsapp.WebFeatures.Flag\x12\x31\n\rliveLocations\x18\x07 \x01(\x0e\x32\x1a.whatsapp.WebFeatures.Flag\x12.\n\nqueryVname\x18\x08 \x01(\x0e\x32\x1a.whatsapp.WebFeatures.Flag\x12:\n\x16voipIndividualIncoming\x18\t \x01(\x0e\x32\x1a.whatsapp.WebFeatures.Flag\x12\x35\n\x11quickRepliesQuery\x18\n \x01(\x0e\x32\x1a.whatsapp.WebFeatures.Flag\x12,\n\x08payments\x18\x0b \x01(\x0e\x32\x1a.whatsapp.WebFeatures.Flag\x12\x34\n\x10stickerPackQuery\x18\x0c \x01(\x0e\x32\x1a.whatsapp.WebFeatures.Flag\x12\x36\n\x12liveLocationsFinal\x18\r \x01(\x0e\x32\x1a.whatsapp.WebFeatures.Flag\x12.\n\nlabelsEdit\x18\x0e \x01(\x0e\x32\x1a.whatsapp.WebFeatures.Flag\x12/\n\x0bmediaUpload\x18\x0f \x01(\x0e\x32\x1a.whatsapp.WebFeatures.Flag\x12?\n\x1bmediaUploadRichQuickReplies\x18\x12 \x01(\x0e\x32\x1a.whatsapp.WebFeatures.Flag\x12+\n\x07vnameV2\x18\x13 \x01(\x0e\x32\x1a.whatsapp.WebFeatures.Flag\x12\x34\n\x10videoPlaybackUrl\x18\x14 \x01(\x0e\x32\x1a.whatsapp.WebFeatures.Flag\x12\x31\n\rstatusRanking\x18\x15 \x01(\x0e\x32\x1a.whatsapp.WebFeatures.Flag\x12\x37\n\x13voipIndividualVideo\x18\x16 \x01(\x0e\x32\x1a.whatsapp.WebFeatures.Flag\x12\x36\n\x12thirdPartyStickers\x18\x17 \x01(\x0e\x32\x1a.whatsapp.WebFeatures.Flag\x12>\n\x1a\x66requentlyForwardedSetting\x18\x18 \x01(\x0e\x32\x1a.whatsapp.WebFeatures.Flag\x12:\n\x16groupsV4JoinPermission\x18\x19 \x01(\x0e\x32\x1a.whatsapp.WebFeatures.Flag\x12\x32\n\x0erecentStickers\x18\x1a \x01(\x0e\x32\x1a.whatsapp.WebFeatures.Flag\x12+\n\x07\x63\x61talog\x18\x1b \x01(\x0e\x32\x1a.whatsapp.WebFeatures.Flag\x12\x33\n\x0fstarredStickers\x18\x1c \x01(\x0e\x32\x1a.whatsapp.WebFeatures.Flag\x12\x31\n\rvoipGroupCall\x18\x1d \x01(\x0e\x32\x1a.whatsapp.WebFeatures.Flag\x12\x33\n\x0ftemplateMessage\x18\x1e \x01(\x0e\x32\x1a.whatsapp.WebFeatures.Flag\x12@\n\x1ctemplateMessageInteractivity\x18\x1f \x01(\x0e\x32\x1a.whatsapp.WebFeatures.Flag\x12\x35\n\x11\x65phemeralMessages\x18 \x01(\x0e\x32\x1a.whatsapp.WebFeatures.Flag\x12\x37\n\x13\x65\x32\x45NotificationSync\x18! \x01(\x0e\x32\x1a.whatsapp.WebFeatures.Flag\x12\x34\n\x10recentStickersV2\x18\" \x01(\x0e\x32\x1a.whatsapp.WebFeatures.Flag\x12\x34\n\x10recentStickersV3\x18$ \x01(\x0e\x32\x1a.whatsapp.WebFeatures.Flag\x12.\n\nuserNotice\x18% \x01(\x0e\x32\x1a.whatsapp.WebFeatures.Flag\x12+\n\x07support\x18\' \x01(\x0e\x32\x1a.whatsapp.WebFeatures.Flag\x12\x33\n\x0fgroupUiiCleanup\x18( \x01(\x0e\x32\x1a.whatsapp.WebFeatures.Flag\x12?\n\x1bgroupDogfoodingInternalOnly\x18) \x01(\x0e\x32\x1a.whatsapp.WebFeatures.Flag\x12\x30\n\x0csettingsSync\x18* \x01(\x0e\x32\x1a.whatsapp.WebFeatures.Flag\x12-\n\tarchiveV2\x18+ \x01(\x0e\x32\x1a.whatsapp.WebFeatures.Flag\x12>\n\x1a\x65phemeralAllowGroupMembers\x18, \x01(\x0e\x32\x1a.whatsapp.WebFeatures.Flag\x12\x38\n\x14\x65phemeral24HDuration\x18- \x01(\x0e\x32\x1a.whatsapp.WebFeatures.Flag\x12\x32\n\x0emdForceUpgrade\x18. \x01(\x0e\x32\x1a.whatsapp.WebFeatures.Flag\x12\x34\n\x10\x64isappearingMode\x18/ \x01(\x0e\x32\x1a.whatsapp.WebFeatures.Flag\x12<\n\x18\x65xternalMdOptInAvailable\x18\x30 \x01(\x0e\x32\x1a.whatsapp.WebFeatures.Flag\x12<\n\x18noDeleteMessageTimeLimit\x18\x31 \x01(\x0e\x32\x1a.whatsapp.WebFeatures.Flag\"K\n\x04\x46lag\x12\x0f\n\x0bNOT_STARTED\x10\x00\x12\x11\n\rFORCE_UPGRADE\x10\x01\x12\x0f\n\x0b\x44\x45VELOPMENT\x10\x02\x12\x0e\n\nPRODUCTION\x10\x03\"\xcdR\n\x0eWebMessageInfo\x12!\n\x03key\x18\x01 \x02(\x0b\x32\x14.whatsapp.MessageKey\x12\"\n\x07message\x18\x02 \x01(\x0b\x32\x11.whatsapp.Message\x12\x18\n\x10messageTimestamp\x18\x03 \x01(\x04\x12/\n\x06status\x18\x04 \x01(\x0e\x32\x1f.whatsapp.WebMessageInfo.Status\x12\x13\n\x0bparticipant\x18\x05 \x01(\t\x12\x1b\n\x13messageC2STimestamp\x18\x06 \x01(\x04\x12\x0e\n\x06ignore\x18\x10 \x01(\x08\x12\x0f\n\x07starred\x18\x11 \x01(\x08\x12\x11\n\tbroadcast\x18\x12 \x01(\x08\x12\x10\n\x08pushName\x18\x13 \x01(\t\x12\x1d\n\x15mediaCiphertextSha256\x18\x14 \x01(\x0c\x12\x11\n\tmulticast\x18\x15 \x01(\x08\x12\x0f\n\x07urlText\x18\x16 \x01(\x08\x12\x11\n\turlNumber\x18\x17 \x01(\x08\x12:\n\x0fmessageStubType\x18\x18 \x01(\x0e\x32!.whatsapp.WebMessageInfo.StubType\x12\x12\n\nclearMedia\x18\x19 \x01(\x08\x12\x1d\n\x15messageStubParameters\x18\x1a \x03(\t\x12\x10\n\x08\x64uration\x18\x1b \x01(\r\x12\x0e\n\x06labels\x18\x1c \x03(\t\x12*\n\x0bpaymentInfo\x18\x1d \x01(\x0b\x32\x15.whatsapp.PaymentInfo\x12@\n\x11\x66inalLiveLocation\x18\x1e \x01(\x0b\x32%.whatsapp.Message.LiveLocationMessage\x12\x30\n\x11quotedPaymentInfo\x18\x1f \x01(\x0b\x32\x15.whatsapp.PaymentInfo\x12\x1f\n\x17\x65phemeralStartTimestamp\x18 \x01(\x04\x12\x19\n\x11\x65phemeralDuration\x18! \x01(\r\x12\x18\n\x10\x65phemeralOffToOn\x18\" \x01(\x08\x12\x1a\n\x12\x65phemeralOutOfSync\x18# \x01(\x08\x12\x43\n\x10\x62izPrivacyStatus\x18$ \x01(\x0e\x32).whatsapp.WebMessageInfo.BizPrivacyStatus\x12\x17\n\x0fverifiedBizName\x18% \x01(\t\x12&\n\tmediaData\x18& \x01(\x0b\x32\x13.whatsapp.MediaData\x12*\n\x0bphotoChange\x18\' \x01(\x0b\x32\x15.whatsapp.PhotoChange\x12*\n\x0buserReceipt\x18( \x03(\x0b\x32\x15.whatsapp.UserReceipt\x12%\n\treactions\x18) \x03(\x0b\x32\x12.whatsapp.Reaction\x12.\n\x11quotedStickerData\x18* \x01(\x0b\x32\x13.whatsapp.MediaData\x12\x17\n\x0f\x66utureproofData\x18+ \x01(\x0c\x12&\n\tstatusPsa\x18, \x01(\x0b\x32\x13.whatsapp.StatusPSA\x12)\n\x0bpollUpdates\x18- \x03(\x0b\x32\x14.whatsapp.PollUpdate\x12@\n\x16pollAdditionalMetadata\x18. \x01(\x0b\x32 .whatsapp.PollAdditionalMetadata\x12\x0f\n\x07\x61gentId\x18/ \x01(\t\x12\x1b\n\x13statusAlreadyViewed\x18\x30 \x01(\x08\x12\x15\n\rmessageSecret\x18\x31 \x01(\x0c\x12(\n\nkeepInChat\x18\x32 \x01(\x0b\x32\x14.whatsapp.KeepInChat\x12\'\n\x1foriginalSelfAuthorUserJidString\x18\x33 \x01(\t\x12\x1e\n\x16revokeMessageTimestamp\x18\x34 \x01(\x04\x12&\n\tpinInChat\x18\x36 \x01(\x0b\x32\x13.whatsapp.PinInChat\x12\x38\n\x12premiumMessageInfo\x18\x37 \x01(\x0b\x32\x1c.whatsapp.PremiumMessageInfo\x12\x19\n\x11is1PBizBotMessage\x18\x38 \x01(\x08\x12\x1d\n\x15isGroupHistoryMessage\x18\x39 \x01(\x08\x12\x1c\n\x14\x62otMessageInvokerJid\x18: \x01(\t\x12\x32\n\x0f\x63ommentMetadata\x18; \x01(\x0b\x32\x19.whatsapp.CommentMetadata\x12/\n\x0e\x65ventResponses\x18= \x03(\x0b\x32\x17.whatsapp.EventResponse\x12\x38\n\x12reportingTokenInfo\x18> \x01(\x0b\x32\x1c.whatsapp.ReportingTokenInfo\x12\x1a\n\x12newsletterServerId\x18? \x01(\x04\x12\x42\n\x17\x65ventAdditionalMetadata\x18@ \x01(\x0b\x32!.whatsapp.EventAdditionalMetadata\x12\x1b\n\x13isMentionedInStatus\x18\x41 \x01(\x08\x12\x16\n\x0estatusMentions\x18\x42 \x03(\t\x12-\n\x0ftargetMessageId\x18\x43 \x01(\x0b\x32\x14.whatsapp.MessageKey\x12-\n\rmessageAddOns\x18\x44 \x03(\x0b\x32\x16.whatsapp.MessageAddOn\x12@\n\x18statusMentionMessageInfo\x18\x45 \x01(\x0b\x32\x1e.whatsapp.StatusMentionMessage\x12\x1a\n\x12isSupportAiMessage\x18\x46 \x01(\x08\x12\x1c\n\x14statusMentionSources\x18G \x03(\t\x12.\n\x12supportAiCitations\x18H \x03(\x0b\x32\x12.whatsapp.Citation\x12\x13\n\x0b\x62otTargetId\x18I \x01(\t\x12V\n!groupHistoryIndividualMessageInfo\x18J \x01(\x0b\x32+.whatsapp.GroupHistoryIndividualMessageInfo\x12@\n\x16groupHistoryBundleInfo\x18K \x01(\x0b\x32 .whatsapp.GroupHistoryBundleInfo\x12\\\n$interactiveMessageAdditionalMetadata\x18L \x01(\x0b\x32..whatsapp.InteractiveMessageAdditionalMetadata\x12\x38\n\x12quarantinedMessage\x18M \x01(\x0b\x32\x1c.whatsapp.QuarantinedMessage\x12\x16\n\x0enonJidMentions\x18N \x01(\r\x12\x0e\n\x06hsmTag\x18O \x01(\t\x12$\n\x1c\x65phemeralExpirationTimestamp\x18P \x01(\x04\x12\x44\n\x18scheduledMessageMetadata\x18Q \x01(\x0b\x32\".whatsapp.ScheduledMessageMetadata\x12\x12\n\ndecisionId\x18R \x01(\t\x12\x17\n\x0f\x64\x65\x63isionSources\x18S \x03(\t\"=\n\x10\x42izPrivacyStatus\x12\x08\n\x04\x45\x32\x45\x45\x10\x00\x12\x06\n\x02\x46\x42\x10\x02\x12\x07\n\x03\x42SP\x10\x01\x12\x0e\n\nBSP_AND_FB\x10\x03\"X\n\x06Status\x12\t\n\x05\x45RROR\x10\x00\x12\x0b\n\x07PENDING\x10\x01\x12\x0e\n\nSERVER_ACK\x10\x02\x12\x10\n\x0c\x44\x45LIVERY_ACK\x10\x03\x12\x08\n\x04READ\x10\x04\x12\n\n\x06PLAYED\x10\x05\"\x83<\n\x08StubType\x12\x0b\n\x07UNKNOWN\x10\x00\x12\n\n\x06REVOKE\x10\x01\x12\x0e\n\nCIPHERTEXT\x10\x02\x12\x0f\n\x0b\x46UTUREPROOF\x10\x03\x12\x1b\n\x17NON_VERIFIED_TRANSITION\x10\x04\x12\x19\n\x15UNVERIFIED_TRANSITION\x10\x05\x12\x17\n\x13VERIFIED_TRANSITION\x10\x06\x12\x18\n\x14VERIFIED_LOW_UNKNOWN\x10\x07\x12\x11\n\rVERIFIED_HIGH\x10\x08\x12\x1c\n\x18VERIFIED_INITIAL_UNKNOWN\x10\t\x12\x18\n\x14VERIFIED_INITIAL_LOW\x10\n\x12\x19\n\x15VERIFIED_INITIAL_HIGH\x10\x0b\x12#\n\x1fVERIFIED_TRANSITION_ANY_TO_NONE\x10\x0c\x12#\n\x1fVERIFIED_TRANSITION_ANY_TO_HIGH\x10\r\x12#\n\x1fVERIFIED_TRANSITION_HIGH_TO_LOW\x10\x0e\x12\'\n#VERIFIED_TRANSITION_HIGH_TO_UNKNOWN\x10\x0f\x12&\n\"VERIFIED_TRANSITION_UNKNOWN_TO_LOW\x10\x10\x12&\n\"VERIFIED_TRANSITION_LOW_TO_UNKNOWN\x10\x11\x12#\n\x1fVERIFIED_TRANSITION_NONE_TO_LOW\x10\x12\x12\'\n#VERIFIED_TRANSITION_NONE_TO_UNKNOWN\x10\x13\x12\x10\n\x0cGROUP_CREATE\x10\x14\x12\x18\n\x14GROUP_CHANGE_SUBJECT\x10\x15\x12\x15\n\x11GROUP_CHANGE_ICON\x10\x16\x12\x1c\n\x18GROUP_CHANGE_INVITE_LINK\x10\x17\x12\x1c\n\x18GROUP_CHANGE_DESCRIPTION\x10\x18\x12\x19\n\x15GROUP_CHANGE_RESTRICT\x10\x19\x12\x19\n\x15GROUP_CHANGE_ANNOUNCE\x10\x1a\x12\x19\n\x15GROUP_PARTICIPANT_ADD\x10\x1b\x12\x1c\n\x18GROUP_PARTICIPANT_REMOVE\x10\x1c\x12\x1d\n\x19GROUP_PARTICIPANT_PROMOTE\x10\x1d\x12\x1c\n\x18GROUP_PARTICIPANT_DEMOTE\x10\x1e\x12\x1c\n\x18GROUP_PARTICIPANT_INVITE\x10\x1f\x12\x1b\n\x17GROUP_PARTICIPANT_LEAVE\x10 \x12#\n\x1fGROUP_PARTICIPANT_CHANGE_NUMBER\x10!\x12\x14\n\x10\x42ROADCAST_CREATE\x10\"\x12\x11\n\rBROADCAST_ADD\x10#\x12\x14\n\x10\x42ROADCAST_REMOVE\x10$\x12\x18\n\x14GENERIC_NOTIFICATION\x10%\x12\x18\n\x14\x45\x32\x45_IDENTITY_CHANGED\x10&\x12\x11\n\rE2E_ENCRYPTED\x10\'\x12\x15\n\x11\x43\x41LL_MISSED_VOICE\x10(\x12\x15\n\x11\x43\x41LL_MISSED_VIDEO\x10)\x12\x1c\n\x18INDIVIDUAL_CHANGE_NUMBER\x10*\x12\x10\n\x0cGROUP_DELETE\x10+\x12&\n\"GROUP_ANNOUNCE_MODE_MESSAGE_BOUNCE\x10,\x12\x1b\n\x17\x43\x41LL_MISSED_GROUP_VOICE\x10-\x12\x1b\n\x17\x43\x41LL_MISSED_GROUP_VIDEO\x10.\x12\x16\n\x12PAYMENT_CIPHERTEXT\x10/\x12\x17\n\x13PAYMENT_FUTUREPROOF\x10\x30\x12,\n(PAYMENT_TRANSACTION_STATUS_UPDATE_FAILED\x10\x31\x12.\n*PAYMENT_TRANSACTION_STATUS_UPDATE_REFUNDED\x10\x32\x12\x33\n/PAYMENT_TRANSACTION_STATUS_UPDATE_REFUND_FAILED\x10\x33\x12\x35\n1PAYMENT_TRANSACTION_STATUS_RECEIVER_PENDING_SETUP\x10\x34\x12<\n8PAYMENT_TRANSACTION_STATUS_RECEIVER_SUCCESS_AFTER_HICCUP\x10\x35\x12)\n%PAYMENT_ACTION_ACCOUNT_SETUP_REMINDER\x10\x36\x12(\n$PAYMENT_ACTION_SEND_PAYMENT_REMINDER\x10\x37\x12*\n&PAYMENT_ACTION_SEND_PAYMENT_INVITATION\x10\x38\x12#\n\x1fPAYMENT_ACTION_REQUEST_DECLINED\x10\x39\x12\"\n\x1ePAYMENT_ACTION_REQUEST_EXPIRED\x10:\x12$\n PAYMENT_ACTION_REQUEST_CANCELLED\x10;\x12)\n%BIZ_VERIFIED_TRANSITION_TOP_TO_BOTTOM\x10<\x12)\n%BIZ_VERIFIED_TRANSITION_BOTTOM_TO_TOP\x10=\x12\x11\n\rBIZ_INTRO_TOP\x10>\x12\x14\n\x10\x42IZ_INTRO_BOTTOM\x10?\x12\x13\n\x0f\x42IZ_NAME_CHANGE\x10@\x12\x1c\n\x18\x42IZ_MOVE_TO_CONSUMER_APP\x10\x41\x12\x1e\n\x1a\x42IZ_TWO_TIER_MIGRATION_TOP\x10\x42\x12!\n\x1d\x42IZ_TWO_TIER_MIGRATION_BOTTOM\x10\x43\x12\r\n\tOVERSIZED\x10\x44\x12(\n$GROUP_CHANGE_NO_FREQUENTLY_FORWARDED\x10\x45\x12\x1c\n\x18GROUP_V4_ADD_INVITE_SENT\x10\x46\x12&\n\"GROUP_PARTICIPANT_ADD_REQUEST_JOIN\x10G\x12\x1c\n\x18\x43HANGE_EPHEMERAL_SETTING\x10H\x12\x16\n\x12\x45\x32\x45_DEVICE_CHANGED\x10I\x12\x0f\n\x0bVIEWED_ONCE\x10J\x12\x15\n\x11\x45\x32\x45_ENCRYPTED_NOW\x10K\x12\"\n\x1e\x42LUE_MSG_BSP_FB_TO_BSP_PREMISE\x10L\x12\x1e\n\x1a\x42LUE_MSG_BSP_FB_TO_SELF_FB\x10M\x12#\n\x1f\x42LUE_MSG_BSP_FB_TO_SELF_PREMISE\x10N\x12\x1e\n\x1a\x42LUE_MSG_BSP_FB_UNVERIFIED\x10O\x12\x37\n3BLUE_MSG_BSP_FB_UNVERIFIED_TO_SELF_PREMISE_VERIFIED\x10P\x12\x1c\n\x18\x42LUE_MSG_BSP_FB_VERIFIED\x10Q\x12\x37\n3BLUE_MSG_BSP_FB_VERIFIED_TO_SELF_PREMISE_UNVERIFIED\x10R\x12(\n$BLUE_MSG_BSP_PREMISE_TO_SELF_PREMISE\x10S\x12#\n\x1f\x42LUE_MSG_BSP_PREMISE_UNVERIFIED\x10T\x12<\n8BLUE_MSG_BSP_PREMISE_UNVERIFIED_TO_SELF_PREMISE_VERIFIED\x10U\x12!\n\x1d\x42LUE_MSG_BSP_PREMISE_VERIFIED\x10V\x12<\n8BLUE_MSG_BSP_PREMISE_VERIFIED_TO_SELF_PREMISE_UNVERIFIED\x10W\x12*\n&BLUE_MSG_CONSUMER_TO_BSP_FB_UNVERIFIED\x10X\x12/\n+BLUE_MSG_CONSUMER_TO_BSP_PREMISE_UNVERIFIED\x10Y\x12+\n\'BLUE_MSG_CONSUMER_TO_SELF_FB_UNVERIFIED\x10Z\x12\x30\n,BLUE_MSG_CONSUMER_TO_SELF_PREMISE_UNVERIFIED\x10[\x12#\n\x1f\x42LUE_MSG_SELF_FB_TO_BSP_PREMISE\x10\\\x12$\n BLUE_MSG_SELF_FB_TO_SELF_PREMISE\x10]\x12\x1f\n\x1b\x42LUE_MSG_SELF_FB_UNVERIFIED\x10^\x12\x38\n4BLUE_MSG_SELF_FB_UNVERIFIED_TO_SELF_PREMISE_VERIFIED\x10_\x12\x1d\n\x19\x42LUE_MSG_SELF_FB_VERIFIED\x10`\x12\x38\n4BLUE_MSG_SELF_FB_VERIFIED_TO_SELF_PREMISE_UNVERIFIED\x10\x61\x12(\n$BLUE_MSG_SELF_PREMISE_TO_BSP_PREMISE\x10\x62\x12$\n BLUE_MSG_SELF_PREMISE_UNVERIFIED\x10\x63\x12\"\n\x1e\x42LUE_MSG_SELF_PREMISE_VERIFIED\x10\x64\x12\x16\n\x12\x42LUE_MSG_TO_BSP_FB\x10\x65\x12\x18\n\x14\x42LUE_MSG_TO_CONSUMER\x10\x66\x12\x17\n\x13\x42LUE_MSG_TO_SELF_FB\x10g\x12*\n&BLUE_MSG_UNVERIFIED_TO_BSP_FB_VERIFIED\x10h\x12/\n+BLUE_MSG_UNVERIFIED_TO_BSP_PREMISE_VERIFIED\x10i\x12+\n\'BLUE_MSG_UNVERIFIED_TO_SELF_FB_VERIFIED\x10j\x12#\n\x1f\x42LUE_MSG_UNVERIFIED_TO_VERIFIED\x10k\x12*\n&BLUE_MSG_VERIFIED_TO_BSP_FB_UNVERIFIED\x10l\x12/\n+BLUE_MSG_VERIFIED_TO_BSP_PREMISE_UNVERIFIED\x10m\x12+\n\'BLUE_MSG_VERIFIED_TO_SELF_FB_UNVERIFIED\x10n\x12#\n\x1f\x42LUE_MSG_VERIFIED_TO_UNVERIFIED\x10o\x12\x36\n2BLUE_MSG_BSP_FB_UNVERIFIED_TO_BSP_PREMISE_VERIFIED\x10p\x12\x32\n.BLUE_MSG_BSP_FB_UNVERIFIED_TO_SELF_FB_VERIFIED\x10q\x12\x36\n2BLUE_MSG_BSP_FB_VERIFIED_TO_BSP_PREMISE_UNVERIFIED\x10r\x12\x32\n.BLUE_MSG_BSP_FB_VERIFIED_TO_SELF_FB_UNVERIFIED\x10s\x12\x37\n3BLUE_MSG_SELF_FB_UNVERIFIED_TO_BSP_PREMISE_VERIFIED\x10t\x12\x37\n3BLUE_MSG_SELF_FB_VERIFIED_TO_BSP_PREMISE_UNVERIFIED\x10u\x12\x1c\n\x18\x45\x32\x45_IDENTITY_UNAVAILABLE\x10v\x12\x12\n\x0eGROUP_CREATING\x10w\x12\x17\n\x13GROUP_CREATE_FAILED\x10x\x12\x11\n\rGROUP_BOUNCED\x10y\x12\x11\n\rBLOCK_CONTACT\x10z\x12!\n\x1d\x45PHEMERAL_SETTING_NOT_APPLIED\x10{\x12\x0f\n\x0bSYNC_FAILED\x10|\x12\x0b\n\x07SYNCING\x10}\x12\x1c\n\x18\x42IZ_PRIVACY_MODE_INIT_FB\x10~\x12\x1d\n\x19\x42IZ_PRIVACY_MODE_INIT_BSP\x10\x7f\x12\x1b\n\x16\x42IZ_PRIVACY_MODE_TO_FB\x10\x80\x01\x12\x1c\n\x17\x42IZ_PRIVACY_MODE_TO_BSP\x10\x81\x01\x12\x16\n\x11\x44ISAPPEARING_MODE\x10\x82\x01\x12\x1c\n\x17\x45\x32\x45_DEVICE_FETCH_FAILED\x10\x83\x01\x12\x11\n\x0c\x41\x44MIN_REVOKE\x10\x84\x01\x12$\n\x1fGROUP_INVITE_LINK_GROWTH_LOCKED\x10\x85\x01\x12 \n\x1b\x43OMMUNITY_LINK_PARENT_GROUP\x10\x86\x01\x12!\n\x1c\x43OMMUNITY_LINK_SIBLING_GROUP\x10\x87\x01\x12\x1d\n\x18\x43OMMUNITY_LINK_SUB_GROUP\x10\x88\x01\x12\"\n\x1d\x43OMMUNITY_UNLINK_PARENT_GROUP\x10\x89\x01\x12#\n\x1e\x43OMMUNITY_UNLINK_SIBLING_GROUP\x10\x8a\x01\x12\x1f\n\x1a\x43OMMUNITY_UNLINK_SUB_GROUP\x10\x8b\x01\x12\x1d\n\x18GROUP_PARTICIPANT_ACCEPT\x10\x8c\x01\x12(\n#GROUP_PARTICIPANT_LINKED_GROUP_JOIN\x10\x8d\x01\x12\x15\n\x10\x43OMMUNITY_CREATE\x10\x8e\x01\x12\x1b\n\x16\x45PHEMERAL_KEEP_IN_CHAT\x10\x8f\x01\x12+\n&GROUP_MEMBERSHIP_JOIN_APPROVAL_REQUEST\x10\x90\x01\x12(\n#GROUP_MEMBERSHIP_JOIN_APPROVAL_MODE\x10\x91\x01\x12\"\n\x1dINTEGRITY_UNLINK_PARENT_GROUP\x10\x92\x01\x12\"\n\x1d\x43OMMUNITY_PARTICIPANT_PROMOTE\x10\x93\x01\x12!\n\x1c\x43OMMUNITY_PARTICIPANT_DEMOTE\x10\x94\x01\x12#\n\x1e\x43OMMUNITY_PARENT_GROUP_DELETED\x10\x95\x01\x12\x34\n/COMMUNITY_LINK_PARENT_GROUP_MEMBERSHIP_APPROVAL\x10\x96\x01\x12\x34\n/GROUP_PARTICIPANT_JOINED_GROUP_AND_PARENT_GROUP\x10\x97\x01\x12\x1a\n\x15MASKED_THREAD_CREATED\x10\x98\x01\x12\x1b\n\x16MASKED_THREAD_UNMASKED\x10\x99\x01\x12\x18\n\x13\x42IZ_CHAT_ASSIGNMENT\x10\x9a\x01\x12\r\n\x08\x43HAT_PSA\x10\x9b\x01\x12\x1f\n\x1a\x43HAT_POLL_CREATION_MESSAGE\x10\x9c\x01\x12\x1e\n\x19\x43\x41G_MASKED_THREAD_CREATED\x10\x9d\x01\x12+\n&COMMUNITY_PARENT_GROUP_SUBJECT_CHANGED\x10\x9e\x01\x12\x18\n\x13\x43\x41G_INVITE_AUTO_ADD\x10\x9f\x01\x12!\n\x1c\x42IZ_CHAT_ASSIGNMENT_UNASSIGN\x10\xa0\x01\x12\x1b\n\x16\x43\x41G_INVITE_AUTO_JOINED\x10\xa1\x01\x12!\n\x1cSCHEDULED_CALL_START_MESSAGE\x10\xa2\x01\x12\x1a\n\x15\x43OMMUNITY_INVITE_RICH\x10\xa3\x01\x12#\n\x1e\x43OMMUNITY_INVITE_AUTO_ADD_RICH\x10\xa4\x01\x12\x1a\n\x15SUB_GROUP_INVITE_RICH\x10\xa5\x01\x12#\n\x1eSUB_GROUP_PARTICIPANT_ADD_RICH\x10\xa6\x01\x12%\n COMMUNITY_LINK_PARENT_GROUP_RICH\x10\xa7\x01\x12#\n\x1e\x43OMMUNITY_PARTICIPANT_ADD_RICH\x10\xa8\x01\x12\"\n\x1dSILENCED_UNKNOWN_CALLER_AUDIO\x10\xa9\x01\x12\"\n\x1dSILENCED_UNKNOWN_CALLER_VIDEO\x10\xaa\x01\x12\x1a\n\x15GROUP_MEMBER_ADD_MODE\x10\xab\x01\x12\x39\n4GROUP_MEMBERSHIP_JOIN_APPROVAL_REQUEST_NON_ADMIN_ADD\x10\xac\x01\x12!\n\x1c\x43OMMUNITY_CHANGE_DESCRIPTION\x10\xad\x01\x12\x12\n\rSENDER_INVITE\x10\xae\x01\x12\x14\n\x0fRECEIVER_INVITE\x10\xaf\x01\x12(\n#COMMUNITY_ALLOW_MEMBER_ADDED_GROUPS\x10\xb0\x01\x12\x1b\n\x16PINNED_MESSAGE_IN_CHAT\x10\xb1\x01\x12!\n\x1cPAYMENT_INVITE_SETUP_INVITER\x10\xb2\x01\x12.\n)PAYMENT_INVITE_SETUP_INVITEE_RECEIVE_ONLY\x10\xb3\x01\x12\x32\n-PAYMENT_INVITE_SETUP_INVITEE_SEND_AND_RECEIVE\x10\xb4\x01\x12\x1c\n\x17LINKED_GROUP_CALL_START\x10\xb5\x01\x12#\n\x1eREPORT_TO_ADMIN_ENABLED_STATUS\x10\xb6\x01\x12\x1a\n\x15\x45MPTY_SUBGROUP_CREATE\x10\xb7\x01\x12\x1a\n\x15SCHEDULED_CALL_CANCEL\x10\xb8\x01\x12+\n&SUBGROUP_ADMIN_TRIGGERED_AUTO_ADD_RICH\x10\xb9\x01\x12(\n#GROUP_CHANGE_RECENT_HISTORY_SHARING\x10\xba\x01\x12$\n\x1fPAID_MESSAGE_SERVER_CAMPAIGN_ID\x10\xbb\x01\x12\x18\n\x13GENERAL_CHAT_CREATE\x10\xbc\x01\x12\x15\n\x10GENERAL_CHAT_ADD\x10\xbd\x01\x12#\n\x1eGENERAL_CHAT_AUTO_ADD_DISABLED\x10\xbe\x01\x12 \n\x1bSUGGESTED_SUBGROUP_ANNOUNCE\x10\xbf\x01\x12!\n\x1c\x42IZ_BOT_1P_MESSAGING_ENABLED\x10\xc0\x01\x12\x14\n\x0f\x43HANGE_USERNAME\x10\xc1\x01\x12\x1f\n\x1a\x42IZ_COEX_PRIVACY_INIT_SELF\x10\xc2\x01\x12%\n BIZ_COEX_PRIVACY_TRANSITION_SELF\x10\xc3\x01\x12\x19\n\x14SUPPORT_AI_EDUCATION\x10\xc4\x01\x12!\n\x1c\x42IZ_BOT_3P_MESSAGING_ENABLED\x10\xc5\x01\x12\x1b\n\x16REMINDER_SETUP_MESSAGE\x10\xc6\x01\x12\x1a\n\x15REMINDER_SENT_MESSAGE\x10\xc7\x01\x12\x1c\n\x17REMINDER_CANCEL_MESSAGE\x10\xc8\x01\x12\x1a\n\x15\x42IZ_COEX_PRIVACY_INIT\x10\xc9\x01\x12 \n\x1b\x42IZ_COEX_PRIVACY_TRANSITION\x10\xca\x01\x12\x16\n\x11GROUP_DEACTIVATED\x10\xcb\x01\x12\'\n\"COMMUNITY_DEACTIVATE_SIBLING_GROUP\x10\xcc\x01\x12\x12\n\rEVENT_UPDATED\x10\xcd\x01\x12\x13\n\x0e\x45VENT_CANCELED\x10\xce\x01\x12\x1c\n\x17\x43OMMUNITY_OWNER_UPDATED\x10\xcf\x01\x12*\n%COMMUNITY_SUB_GROUP_VISIBILITY_HIDDEN\x10\xd0\x01\x12$\n\x1f\x43\x41PI_GROUP_NE2EE_SYSTEM_MESSAGE\x10\xd1\x01\x12\x13\n\x0eSTATUS_MENTION\x10\xd2\x01\x12!\n\x1cUSER_CONTROLS_SYSTEM_MESSAGE\x10\xd3\x01\x12\x1b\n\x16SUPPORT_SYSTEM_MESSAGE\x10\xd4\x01\x12\x0f\n\nCHANGE_LID\x10\xd5\x01\x12\x31\n,BIZ_CUSTOMER_3PD_DATA_SHARING_OPT_IN_MESSAGE\x10\xd6\x01\x12\x32\n-BIZ_CUSTOMER_3PD_DATA_SHARING_OPT_OUT_MESSAGE\x10\xd7\x01\x12\x19\n\x14\x43HANGE_LIMIT_SHARING\x10\xd8\x01\x12\x1b\n\x16GROUP_MEMBER_LINK_MODE\x10\xd9\x01\x12\x32\n-BIZ_AUTOMATICALLY_LABELED_CHAT_SYSTEM_MESSAGE\x10\xda\x01\x12\x30\n+PHONE_NUMBER_HIDING_CHAT_DEPRECATED_MESSAGE\x10\xdb\x01\x12\x18\n\x13QUARANTINED_MESSAGE\x10\xdc\x01\x12*\n%GROUP_MEMBER_SHARE_GROUP_HISTORY_MODE\x10\xdd\x01\x12\x19\n\x14GROUP_OPEN_BOT_ADDED\x10\xde\x01\x12\x18\n\x13GROUP_TEE_BOT_ADDED\x10\xdf\x01\x12\x11\n\x0c\x43ONTACT_INFO\x10\xe0\x01\x12\x1e\n\x19SCHEDULED_MESSAGE_CREATED\x10\xe1\x01\"Y\n\x1eWebMessageInfoWithMessageBytes\x12!\n\x03key\x18\x01 \x01(\x0b\x32\x14.whatsapp.MessageKey\x12\x14\n\x0cmessageBytes\x18\x02 \x01(\x0c\"\x8c\x01\n\x14WebNotificationsInfo\x12\x11\n\ttimestamp\x18\x02 \x01(\x04\x12\x13\n\x0bunreadChats\x18\x03 \x01(\r\x12\x1a\n\x12notifyMessageCount\x18\x04 \x01(\r\x12\x30\n\x0enotifyMessages\x18\x05 \x03(\x0b\x32\x18.whatsapp.WebMessageInfo*7\n\x11\x41\x44VEncryptionType\x12\x08\n\x04\x45\x32\x45\x45\x10\x00\x12\n\n\x06HOSTED\x10\x01\x12\x0c\n\x08NON_E2EE\x10\x02*b\n\x19\x41IRichResponseMessageType\x12!\n\x1d\x41I_RICH_RESPONSE_TYPE_UNKNOWN\x10\x00\x12\"\n\x1e\x41I_RICH_RESPONSE_TYPE_STANDARD\x10\x01*\xca\x02\n\x1c\x41IRichResponseSubMessageType\x12\x1c\n\x18\x41I_RICH_RESPONSE_UNKNOWN\x10\x00\x12\x1f\n\x1b\x41I_RICH_RESPONSE_GRID_IMAGE\x10\x01\x12\x19\n\x15\x41I_RICH_RESPONSE_TEXT\x10\x02\x12!\n\x1d\x41I_RICH_RESPONSE_INLINE_IMAGE\x10\x03\x12\x1a\n\x16\x41I_RICH_RESPONSE_TABLE\x10\x04\x12\x19\n\x15\x41I_RICH_RESPONSE_CODE\x10\x05\x12\x1c\n\x18\x41I_RICH_RESPONSE_DYNAMIC\x10\x06\x12\x18\n\x14\x41I_RICH_RESPONSE_MAP\x10\x07\x12\x1a\n\x16\x41I_RICH_RESPONSE_LATEX\x10\x08\x12\"\n\x1e\x41I_RICH_RESPONSE_CONTENT_ITEMS\x10\t*Z\n\x19\x41ISubscriptionRequestType\x12\x0f\n\x0bUNSPECIFIED\x10\x00\x12\x0e\n\nTHINK_HARD\x10\x01\x12\r\n\tIMAGE_GEN\x10\x02\x12\r\n\tVIDEO_GEN\x10\x03*\x8e\n\n\x14\x42otMetricsEntryPoint\x12\x19\n\x15UNDEFINED_ENTRY_POINT\x10\x00\x12\x0b\n\x07\x46\x41VICON\x10\x01\x12\x0c\n\x08\x43HATLIST\x10\x02\x12#\n\x1f\x41ISEARCH_NULL_STATE_PAPER_PLANE\x10\x03\x12\"\n\x1e\x41ISEARCH_NULL_STATE_SUGGESTION\x10\x04\x12\"\n\x1e\x41ISEARCH_TYPE_AHEAD_SUGGESTION\x10\x05\x12#\n\x1f\x41ISEARCH_TYPE_AHEAD_PAPER_PLANE\x10\x06\x12\'\n#AISEARCH_TYPE_AHEAD_RESULT_CHATLIST\x10\x07\x12\'\n#AISEARCH_TYPE_AHEAD_RESULT_MESSAGES\x10\x08\x12\x16\n\x12\x41IVOICE_SEARCH_BAR\x10\t\x12\x13\n\x0f\x41IVOICE_FAVICON\x10\n\x12\x0c\n\x08\x41ISTUDIO\x10\x0b\x12\x0c\n\x08\x44\x45\x45PLINK\x10\x0c\x12\x10\n\x0cNOTIFICATION\x10\r\x12\x1a\n\x16PROFILE_MESSAGE_BUTTON\x10\x0e\x12\x0b\n\x07\x46ORWARD\x10\x0f\x12\x10\n\x0c\x41PP_SHORTCUT\x10\x10\x12\r\n\tFF_FAMILY\x10\x11\x12\n\n\x06\x41I_TAB\x10\x12\x12\x0b\n\x07\x41I_HOME\x10\x13\x12\x19\n\x15\x41I_DEEPLINK_IMMERSIVE\x10\x14\x12\x0f\n\x0b\x41I_DEEPLINK\x10\x15\x12#\n\x1fMETA_AI_CHAT_SHORTCUT_AI_STUDIO\x10\x16\x12\x1f\n\x1bUGC_CHAT_SHORTCUT_AI_STUDIO\x10\x17\x12\x16\n\x12NEW_CHAT_AI_STUDIO\x10\x18\x12 \n\x1c\x41IVOICE_FAVICON_CALL_HISTORY\x10\x19\x12\x1c\n\x18\x41SK_META_AI_CONTEXT_MENU\x10\x1a\x12!\n\x1d\x41SK_META_AI_CONTEXT_MENU_1ON1\x10\x1b\x12\"\n\x1e\x41SK_META_AI_CONTEXT_MENU_GROUP\x10\x1c\x12\x17\n\x13INVOKE_META_AI_1ON1\x10\x1d\x12\x18\n\x14INVOKE_META_AI_GROUP\x10\x1e\x12\x13\n\x0fMETA_AI_FORWARD\x10\x1f\x12\x17\n\x13NEW_CHAT_AI_CONTACT\x10 \x12$\n MESSAGE_QUICK_ACTION_1_ON_1_CHAT\x10!\x12#\n\x1fMESSAGE_QUICK_ACTION_GROUP_CHAT\x10\"\x12\x1f\n\x1b\x41TTACHMENT_TRAY_1_ON_1_CHAT\x10#\x12\x1e\n\x1a\x41TTACHMENT_TRAY_GROUP_CHAT\x10$\x12!\n\x1d\x41SK_META_AI_MEDIA_VIEWER_1ON1\x10%\x12\"\n\x1e\x41SK_META_AI_MEDIA_VIEWER_GROUP\x10&\x12\x1c\n\x18MEDIA_PICKER_1_ON_1_CHAT\x10\'\x12\x1b\n\x17MEDIA_PICKER_GROUP_CHAT\x10(\x12!\n\x1d\x41SK_META_AI_NO_SEARCH_RESULTS\x10)\x12\x14\n\x10META_AI_SETTINGS\x10-\x12\x13\n\x0fWEB_INTRO_PANEL\x10.\x12\x16\n\x12WEB_NAVIGATION_BAR\x10/\x12\x10\n\x0cGROUP_MEMBER\x10\x36\x12\x13\n\x0f\x43HATLIST_SEARCH\x10\x37\x12\x11\n\rNEW_CHAT_LIST\x10\x38*\xa2\x01\n\x1a\x42otMetricsThreadEntryPoint\x12\x11\n\rAI_TAB_THREAD\x10\x01\x12\x12\n\x0e\x41I_HOME_THREAD\x10\x02\x12 \n\x1c\x41I_DEEPLINK_IMMERSIVE_THREAD\x10\x03\x12\x16\n\x12\x41I_DEEPLINK_THREAD\x10\x04\x12#\n\x1f\x41SK_META_AI_CONTEXT_MENU_THREAD\x10\x05*\x92\x01\n\x10\x42otSessionSource\x12\x08\n\x04NONE\x10\x00\x12\x0e\n\nNULL_STATE\x10\x01\x12\r\n\tTYPEAHEAD\x10\x02\x12\x0e\n\nUSER_INPUT\x10\x03\x12\r\n\tEMU_FLASH\x10\x04\x12\x16\n\x12\x45MU_FLASH_FOLLOWUP\x10\x05\x12\t\n\x05VOICE\x10\x06\x12\x13\n\x0f\x41I_HOME_SESSION\x10\x07*H\n\x14\x43OMMAND_COMMAND_TYPE\x12\x0c\n\x08\x45VERYONE\x10\x01\x12\n\n\x06SILENT\x10\x02\x12\x06\n\x02\x41I\x10\x03\x12\x0e\n\nAI_IMAGINE\x10\x04*S\n/CONSUMER_APPLICATION_METADATA_SPECIAL_TEXT_SIZE\x12\t\n\x05SMALL\x10\x01\x12\n\n\x06MEDIUM\x10\x02\x12\t\n\x05LARGE\x10\x03*\x9f\x01\n1CONSUMER_APPLICATION_STATUS_TEXT_MESAGE_FONT_TYPE\x12\x0e\n\nSANS_SERIF\x10\x00\x12\t\n\x05SERIF\x10\x01\x12\x13\n\x0fNORICAN_REGULAR\x10\x02\x12\x11\n\rBRYNDAN_WRITE\x10\x03\x12\x15\n\x11\x42\x45\x42\x41SNEUE_REGULAR\x10\x04\x12\x10\n\x0cOSWALD_HEAVY\x10\x05*\x8b\x01\n\x0e\x43ollectionName\x12\x1b\n\x17\x43OLLECTION_NAME_UNKNOWN\x10\x00\x12\x0b\n\x07REGULAR\x10\x01\x12\x0f\n\x0bREGULAR_LOW\x10\x02\x12\x10\n\x0cREGULAR_HIGH\x10\x03\x12\x12\n\x0e\x43RITICAL_BLOCK\x10\x04\x12\x18\n\x14\x43RITICAL_UNBLOCK_LOW\x10\x05*H\n\x15\x46UTURE_PROOF_BEHAVIOR\x12\x0f\n\x0bPLACEHOLDER\x10\x00\x12\x12\n\x0eNO_PLACEHOLDER\x10\x01\x12\n\n\x06IGNORE\x10\x02*@\n\x08KeepType\x12\x0b\n\x07UNKNOWN\x10\x00\x12\x10\n\x0cKEEP_FOR_ALL\x10\x01\x12\x15\n\x11UNDO_KEEP_FOR_ALL\x10\x02*#\n\x14MENTION_MENTION_TYPE\x12\x0b\n\x07PROFILE\x10\x00*h\n\x0eMediaKeyDomain\x12\x1c\n\x18MEDIA_KEY_DOMAIN_UNKNOWN\x10\x00\x12\x19\n\x15MEDIA_KEY_DOMAIN_E2EE\x10\x01\x12\x1d\n\x19MEDIA_KEY_DOMAIN_NON_E2EE\x10\x02*/\n\x0fMediaVisibility\x12\x0b\n\x07\x44\x45\x46\x41ULT\x10\x00\x12\x07\n\x03OFF\x10\x01\x12\x06\n\x02ON\x10\x02*\xb2\x13\n\rMutationProps\x12\x0f\n\x0bSTAR_ACTION\x10\x02\x12\x12\n\x0e\x43ONTACT_ACTION\x10\x03\x12\x0f\n\x0bMUTE_ACTION\x10\x04\x12\x0e\n\nPIN_ACTION\x10\x05\x12!\n\x1dSECURITY_NOTIFICATION_SETTING\x10\x06\x12\x15\n\x11PUSH_NAME_SETTING\x10\x07\x12\x16\n\x12QUICK_REPLY_ACTION\x10\x08\x12\x1f\n\x1bRECENT_EMOJI_WEIGHTS_ACTION\x10\x0b\x12\x18\n\x14LABEL_MESSAGE_ACTION\x10\r\x12\x15\n\x11LABEL_EDIT_ACTION\x10\x0e\x12\x1c\n\x18LABEL_ASSOCIATION_ACTION\x10\x0f\x12\x12\n\x0eLOCALE_SETTING\x10\x10\x12\x17\n\x13\x41RCHIVE_CHAT_ACTION\x10\x11\x12 \n\x1c\x44\x45LETE_MESSAGE_FOR_ME_ACTION\x10\x12\x12\x12\n\x0eKEY_EXPIRATION\x10\x13\x12\x1c\n\x18MARK_CHAT_AS_READ_ACTION\x10\x14\x12\x15\n\x11\x43LEAR_CHAT_ACTION\x10\x15\x12\x16\n\x12\x44\x45LETE_CHAT_ACTION\x10\x16\x12\x1b\n\x17UNARCHIVE_CHATS_SETTING\x10\x17\x12\x13\n\x0fPRIMARY_FEATURE\x10\x18\x12\x1f\n\x1b\x41NDROID_UNSUPPORTED_ACTIONS\x10\x1a\x12\x10\n\x0c\x41GENT_ACTION\x10\x1b\x12\x17\n\x13SUBSCRIPTION_ACTION\x10\x1c\x12\x1b\n\x17USER_STATUS_MUTE_ACTION\x10\x1d\x12\x16\n\x12TIME_FORMAT_ACTION\x10\x1e\x12\x0e\n\nNUX_ACTION\x10\x1f\x12\x1a\n\x16PRIMARY_VERSION_ACTION\x10 \x12\x12\n\x0eSTICKER_ACTION\x10!\x12 \n\x1cREMOVE_RECENT_STICKER_ACTION\x10\"\x12\x13\n\x0f\x43HAT_ASSIGNMENT\x10#\x12!\n\x1d\x43HAT_ASSIGNMENT_OPENED_STATUS\x10$\x12\x1a\n\x16PN_FOR_LID_CHAT_ACTION\x10%\x12\x1c\n\x18MARKETING_MESSAGE_ACTION\x10&\x12&\n\"MARKETING_MESSAGE_BROADCAST_ACTION\x10\'\x12\x1c\n\x18\x45XTERNAL_WEB_BETA_ACTION\x10(\x12#\n\x1fPRIVACY_SETTING_RELAY_ALL_CALLS\x10)\x12\x13\n\x0f\x43\x41LL_LOG_ACTION\x10*\x12\x0b\n\x07UGC_BOT\x10+\x12\x12\n\x0eSTATUS_PRIVACY\x10,\x12\x1e\n\x1a\x42OT_WELCOME_REQUEST_ACTION\x10-\x12\x1e\n\x1a\x44\x45LETE_INDIVIDUAL_CALL_LOG\x10.\x12\x1b\n\x17LABEL_REORDERING_ACTION\x10/\x12\x17\n\x13PAYMENT_INFO_ACTION\x10\x30\x12!\n\x1d\x43USTOM_PAYMENT_METHODS_ACTION\x10\x31\x12\x14\n\x10LOCK_CHAT_ACTION\x10\x32\x12\x16\n\x12\x43HAT_LOCK_SETTINGS\x10\x33\x12\x1f\n\x1bWAMO_USER_IDENTIFIER_ACTION\x10\x34\x12\x30\n,PRIVACY_SETTING_DISABLE_LINK_PREVIEWS_ACTION\x10\x35\x12\x17\n\x13\x44\x45VICE_CAPABILITIES\x10\x36\x12\x14\n\x10NOTE_EDIT_ACTION\x10\x37\x12\x14\n\x10\x46\x41VORITES_ACTION\x10\x38\x12#\n\x1fMERCHANT_PAYMENT_PARTNER_ACTION\x10\x39\x12$\n WAFFLE_ACCOUNT_LINK_STATE_ACTION\x10:\x12\x1c\n\x18USERNAME_CHAT_START_MODE\x10;\x12(\n$NOTIFICATION_ACTIVITY_SETTING_ACTION\x10<\x12\x16\n\x12LID_CONTACT_ACTION\x10=\x12)\n%CTWA_PER_CUSTOMER_DATA_SHARING_ACTION\x10>\x12\x16\n\x12PAYMENT_TOS_ACTION\x10?\x12?\n;PRIVACY_SETTING_CHANNELS_PERSONALISED_RECOMMENDATION_ACTION\x10@\x12)\n%BUSINESS_BROADCAST_ASSOCIATION_ACTION\x10\x41\x12#\n\x1f\x44\x45TECTED_OUTCOMES_STATUS_ACTION\x10\x42\x12$\n MAIBA_AI_FEATURES_CONTROL_ACTION\x10\x44\x12\"\n\x1e\x42USINESS_BROADCAST_LIST_ACTION\x10\x45\x12\x18\n\x14MUSIC_USER_ID_ACTION\x10\x46\x12\x36\n2STATUS_POST_OPT_IN_NOTIFICATION_PREFERENCES_ACTION\x10G\x12\x19\n\x15\x41VATAR_UPDATED_ACTION\x10H\x12\x16\n\x12GALAXY_FLOW_ACTION\x10I\x12%\n!PRIVATE_PROCESSING_SETTING_ACTION\x10J\x12%\n!NEWSLETTER_SAVED_INTERESTS_ACTION\x10K\x12\x1b\n\x17\x41I_THREAD_RENAME_ACTION\x10L\x12\x1e\n\x1aINTERACTIVE_MESSAGE_ACTION\x10M\x12\x18\n\x14SETTINGS_SYNC_ACTION\x10N\x12\x16\n\x12OUT_CONTACT_ACTION\x10O\x12\x18\n\x14NCT_SALT_SYNC_ACTION\x10P\x12&\n\"BUSINESS_BROADCAST_CAMPAIGN_ACTION\x10Q\x12&\n\"BUSINESS_BROADCAST_INSIGHTS_ACTION\x10R\x12\x18\n\x14\x43USTOMER_DATA_ACTION\x10S\x12 \n\x1cSUBSCRIPTIONS_SYNC_V2_ACTION\x10T\x12\x15\n\x11THREAD_PIN_ACTION\x10U\x12\'\n#AUTO_ORGANIZE_BUSINESS_CHAT_SETTING\x10V\x12 \n\x1c\x42IZ_AI_SETTINGS_NUDGE_ACTION\x10W\x12\x11\n\x0cSHARE_OWN_PN\x10\x91N\x12\x1e\n\x19\x42USINESS_BROADCAST_ACTION\x10\x92N\x12\x1c\n\x17\x41I_THREAD_DELETE_ACTION\x10\x93N*E\n\x14PrivacySystemMessage\x12\x0c\n\x08\x45\x32\x45\x45_MSG\x10\x01\x12\x0e\n\nNE2EE_SELF\x10\x02\x12\x0f\n\x0bNE2EE_OTHER\x10\x03*H\n\x17SessionTransparencyType\x12\x10\n\x0cUNKNOWN_TYPE\x10\x00\x12\x1b\n\x17NY_AI_SAFETY_DISCLAIMER\x10\x01*.\n\x13WebLinkRenderConfig\x12\x0b\n\x07WEBVIEW\x10\x00\x12\n\n\x06SYSTEM\x10\x01')
+DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x0ewhatsapp.proto\x12\x08whatsapp\"\xb6\x01\n\x11\x41\x44VDeviceIdentity\x12\r\n\x05rawId\x18\x01 \x01(\r\x12\x11\n\ttimestamp\x18\x02 \x01(\x04\x12\x10\n\x08keyIndex\x18\x03 \x01(\r\x12\x36\n\x0b\x61\x63\x63ountType\x18\x04 \x01(\x0e\x32\x1b.whatsapp.ADVEncryptionType:\x04\x45\x32\x45\x45\x12\x35\n\ndeviceType\x18\x05 \x01(\x0e\x32\x1b.whatsapp.ADVEncryptionType:\x04\x45\x32\x45\x45\"\x9b\x01\n\x0f\x41\x44VKeyIndexList\x12\r\n\x05rawId\x18\x01 \x01(\r\x12\x11\n\ttimestamp\x18\x02 \x01(\x04\x12\x14\n\x0c\x63urrentIndex\x18\x03 \x01(\r\x12\x18\n\x0cvalidIndexes\x18\x04 \x03(\rB\x02\x10\x01\x12\x36\n\x0b\x61\x63\x63ountType\x18\x05 \x01(\x0e\x32\x1b.whatsapp.ADVEncryptionType:\x04\x45\x32\x45\x45\"z\n\x17\x41\x44VSignedDeviceIdentity\x12\x0f\n\x07\x64\x65tails\x18\x01 \x01(\x0c\x12\x1b\n\x13\x61\x63\x63ountSignatureKey\x18\x02 \x01(\x0c\x12\x18\n\x10\x61\x63\x63ountSignature\x18\x03 \x01(\x0c\x12\x17\n\x0f\x64\x65viceSignature\x18\x04 \x01(\x0c\"t\n\x1b\x41\x44VSignedDeviceIdentityHMAC\x12\x0f\n\x07\x64\x65tails\x18\x01 \x01(\x0c\x12\x0c\n\x04hmac\x18\x02 \x01(\x0c\x12\x36\n\x0b\x61\x63\x63ountType\x18\x03 \x01(\x0e\x32\x1b.whatsapp.ADVEncryptionType:\x04\x45\x32\x45\x45\"_\n\x15\x41\x44VSignedKeyIndexList\x12\x0f\n\x07\x64\x65tails\x18\x01 \x01(\x0c\x12\x18\n\x10\x61\x63\x63ountSignature\x18\x02 \x01(\x0c\x12\x1b\n\x13\x61\x63\x63ountSignatureKey\x18\x03 \x01(\x0c\"\x94\x04\n\x0b\x41IHomeState\x12\x15\n\rlastFetchTime\x18\x01 \x01(\x03\x12=\n\x11\x63\x61pabilityOptions\x18\x02 \x03(\x0b\x32\".whatsapp.AIHomeState.AIHomeOption\x12?\n\x13\x63onversationOptions\x18\x03 \x03(\x0b\x32\".whatsapp.AIHomeState.AIHomeOption\x1a\xed\x02\n\x0c\x41IHomeOption\x12\x41\n\x04type\x18\x01 \x01(\x0e\x32\x33.whatsapp.AIHomeState.AIHomeOption.AIHomeActionType\x12\r\n\x05title\x18\x02 \x01(\t\x12\x12\n\npromptText\x18\x03 \x01(\t\x12\x11\n\tsessionId\x18\x04 \x01(\t\x12\x1a\n\x12imageWdsIdentifier\x18\x05 \x01(\t\x12\x16\n\x0eimageTintColor\x18\x06 \x01(\t\x12\x1c\n\x14imageBackgroundColor\x18\x07 \x01(\t\x12\x12\n\ncardTypeId\x18\x08 \x01(\t\"~\n\x10\x41IHomeActionType\x12\n\n\x06PROMPT\x10\x00\x12\x10\n\x0c\x43REATE_IMAGE\x10\x01\x12\x11\n\rANIMATE_PHOTO\x10\x02\x12\x10\n\x0c\x41NALYZE_FILE\x10\x03\x12\x0f\n\x0b\x43OLLABORATE\x10\x04\x12\x16\n\x12OPEN_GREETING_CARD\x10\x05\"f\n\x18\x41IMediaCollectionMessage\x12\x14\n\x0c\x63ollectionId\x18\x01 \x01(\t\x12\x1a\n\x12\x65xpectedMediaCount\x18\x02 \x01(\r\x12\x18\n\x10hasGlobalCaption\x18\x03 \x01(\x08\"K\n\x19\x41IMediaCollectionMetadata\x12\x14\n\x0c\x63ollectionId\x18\x01 \x01(\t\x12\x18\n\x10uploadOrderIndex\x18\x02 \x01(\r\"M\n\x13\x41IMetadataOperation\x12\x36\n\x11hatchMetadataSync\x18\x01 \x01(\x0b\x32\x1b.whatsapp.HatchMetadataSync\"\xbb\x01\n\x0c\x41IProvenance\x12\x35\n\x0c\x63\x32PaMetadata\x18\x01 \x01(\x0b\x32\x1f.whatsapp.AIProvenance.Metadata\x12\x35\n\x0ciptcMetadata\x18\x02 \x01(\x0b\x32\x1f.whatsapp.AIProvenance.Metadata\x1a=\n\x08Metadata\x12\x18\n\x10\x63reatedWithGenAi\x18\x01 \x01(\x08\x12\x17\n\x0f\x65\x64itedWithGenAi\x18\x02 \x01(\x08\"p\n\rAIQueryFanout\x12(\n\nmessageKey\x18\x01 \x01(\x0b\x32\x14.whatsapp.MessageKey\x12\"\n\x07message\x18\x02 \x01(\x0b\x32\x11.whatsapp.Message\x12\x11\n\ttimestamp\x18\x03 \x01(\x03\"]\n\x14\x41IRegenerateMetadata\x12(\n\nmessageKey\x18\x01 \x01(\x0b\x32\x14.whatsapp.MessageKey\x12\x1b\n\x13responseTimestampMs\x18\x02 \x01(\x03\"\xc1\x04\n\x1a\x41IRichResponseCodeMetadata\x12\x14\n\x0c\x63odeLanguage\x18\x01 \x01(\t\x12P\n\ncodeBlocks\x18\x02 \x03(\x0b\x32<.whatsapp.AIRichResponseCodeMetadata.AIRichResponseCodeBlock\x1a\x8b\x01\n\x17\x41IRichResponseCodeBlock\x12[\n\rhighlightType\x18\x01 \x01(\x0e\x32\x44.whatsapp.AIRichResponseCodeMetadata.AIRichResponseCodeHighlightType\x12\x13\n\x0b\x63odeContent\x18\x02 \x01(\t\"\xac\x02\n\x1f\x41IRichResponseCodeHighlightType\x12+\n\'AI_RICH_RESPONSE_CODE_HIGHLIGHT_DEFAULT\x10\x00\x12+\n\'AI_RICH_RESPONSE_CODE_HIGHLIGHT_KEYWORD\x10\x01\x12*\n&AI_RICH_RESPONSE_CODE_HIGHLIGHT_METHOD\x10\x02\x12*\n&AI_RICH_RESPONSE_CODE_HIGHLIGHT_STRING\x10\x03\x12*\n&AI_RICH_RESPONSE_CODE_HIGHLIGHT_NUMBER\x10\x04\x12+\n\'AI_RICH_RESPONSE_CODE_HIGHLIGHT_COMMENT\x10\x05\"\x89\x04\n\"AIRichResponseContentItemsMetadata\x12\x65\n\ritemsMetadata\x18\x01 \x03(\x0b\x32N.whatsapp.AIRichResponseContentItemsMetadata.AIRichResponseContentItemMetadata\x12M\n\x0b\x63ontentType\x18\x02 \x01(\x0e\x32\x38.whatsapp.AIRichResponseContentItemsMetadata.ContentType\x1a\x99\x01\n!AIRichResponseContentItemMetadata\x12W\n\x08reelItem\x18\x01 \x01(\x0b\x32\x43.whatsapp.AIRichResponseContentItemsMetadata.AIRichResponseReelItemH\x00\x42\x1b\n\x19\x61iRichResponseContentItem\x1ag\n\x16\x41IRichResponseReelItem\x12\r\n\x05title\x18\x01 \x01(\t\x12\x16\n\x0eprofileIconUrl\x18\x02 \x01(\t\x12\x14\n\x0cthumbnailUrl\x18\x03 \x01(\t\x12\x10\n\x08videoUrl\x18\x04 \x01(\t\"(\n\x0b\x43ontentType\x12\x0b\n\x07\x44\x45\x46\x41ULT\x10\x00\x12\x0c\n\x08\x43\x41ROUSEL\x10\x01\"\xe5\x02\n\x1d\x41IRichResponseDynamicMetadata\x12W\n\x04type\x18\x01 \x01(\x0e\x32I.whatsapp.AIRichResponseDynamicMetadata.AIRichResponseDynamicMetadataType\x12\x0f\n\x07version\x18\x02 \x01(\x04\x12\x0b\n\x03url\x18\x03 \x01(\t\x12\x11\n\tloopCount\x18\x04 \x01(\r\"\xb9\x01\n!AIRichResponseDynamicMetadataType\x12\x32\n.AI_RICH_RESPONSE_DYNAMIC_METADATA_TYPE_UNKNOWN\x10\x00\x12\x30\n,AI_RICH_RESPONSE_DYNAMIC_METADATA_TYPE_IMAGE\x10\x01\x12.\n*AI_RICH_RESPONSE_DYNAMIC_METADATA_TYPE_GIF\x10\x02\"\x8e\x01\n\x1f\x41IRichResponseGridImageMetadata\x12\x36\n\x0cgridImageUrl\x18\x01 \x01(\x0b\x32 .whatsapp.AIRichResponseImageURL\x12\x33\n\timageUrls\x18\x02 \x03(\x0b\x32 .whatsapp.AIRichResponseImageURL\"]\n\x16\x41IRichResponseImageURL\x12\x17\n\x0fimagePreviewUrl\x18\x01 \x01(\t\x12\x17\n\x0fimageHighResUrl\x18\x02 \x01(\t\x12\x11\n\tsourceUrl\x18\x03 \x01(\t\"\x95\x03\n!AIRichResponseInlineImageMetadata\x12\x32\n\x08imageUrl\x18\x01 \x01(\x0b\x32 .whatsapp.AIRichResponseImageURL\x12\x11\n\timageText\x18\x02 \x01(\t\x12[\n\talignment\x18\x03 \x01(\x0e\x32H.whatsapp.AIRichResponseInlineImageMetadata.AIRichResponseImageAlignment\x12\x12\n\ntapLinkUrl\x18\x04 \x01(\t\"\xb7\x01\n\x1c\x41IRichResponseImageAlignment\x12\x31\n-AI_RICH_RESPONSE_IMAGE_LAYOUT_LEADING_ALIGNED\x10\x00\x12\x32\n.AI_RICH_RESPONSE_IMAGE_LAYOUT_TRAILING_ALIGNED\x10\x01\x12\x30\n,AI_RICH_RESPONSE_IMAGE_LAYOUT_CENTER_ALIGNED\x10\x02\"\xf0\x02\n\x1b\x41IRichResponseLatexMetadata\x12\x0c\n\x04text\x18\x01 \x01(\t\x12X\n\x0b\x65xpressions\x18\x02 \x03(\x0b\x32\x43.whatsapp.AIRichResponseLatexMetadata.AIRichResponseLatexExpression\x1a\xe8\x01\n\x1d\x41IRichResponseLatexExpression\x12\x17\n\x0flatexExpression\x18\x01 \x01(\t\x12\x0b\n\x03url\x18\x02 \x01(\t\x12\r\n\x05width\x18\x03 \x01(\x01\x12\x0e\n\x06height\x18\x04 \x01(\x01\x12\x12\n\nfontHeight\x18\x05 \x01(\x01\x12\x17\n\x0fimageTopPadding\x18\x06 \x01(\x01\x12\x1b\n\x13imageLeadingPadding\x18\x07 \x01(\x01\x12\x1a\n\x12imageBottomPadding\x18\x08 \x01(\x01\x12\x1c\n\x14imageTrailingPadding\x18\t \x01(\x01\"\xe2\x02\n\x19\x41IRichResponseMapMetadata\x12\x16\n\x0e\x63\x65nterLatitude\x18\x01 \x01(\x01\x12\x17\n\x0f\x63\x65nterLongitude\x18\x02 \x01(\x01\x12\x15\n\rlatitudeDelta\x18\x03 \x01(\x01\x12\x16\n\x0elongitudeDelta\x18\x04 \x01(\x01\x12T\n\x0b\x61nnotations\x18\x05 \x03(\x0b\x32?.whatsapp.AIRichResponseMapMetadata.AIRichResponseMapAnnotation\x12\x14\n\x0cshowInfoList\x18\x06 \x01(\x08\x1ay\n\x1b\x41IRichResponseMapAnnotation\x12\x18\n\x10\x61nnotationNumber\x18\x01 \x01(\r\x12\x10\n\x08latitude\x18\x02 \x01(\x01\x12\x11\n\tlongitude\x18\x03 \x01(\x01\x12\r\n\x05title\x18\x04 \x01(\t\x12\x0c\n\x04\x62ody\x18\x05 \x01(\t\"\xf8\x01\n\x15\x41IRichResponseMessage\x12\x38\n\x0bmessageType\x18\x01 \x01(\x0e\x32#.whatsapp.AIRichResponseMessageType\x12\x37\n\x0bsubmessages\x18\x02 \x03(\x0b\x32\".whatsapp.AIRichResponseSubMessage\x12@\n\x0funifiedResponse\x18\x03 \x01(\x0b\x32\'.whatsapp.AIRichResponseUnifiedResponse\x12*\n\x0b\x63ontextInfo\x18\x04 \x01(\x0b\x32\x15.whatsapp.ContextInfo\"\xf6\x04\n\x18\x41IRichResponseSubMessage\x12;\n\x0bmessageType\x18\x01 \x01(\x0e\x32&.whatsapp.AIRichResponseSubMessageType\x12\x44\n\x11gridImageMetadata\x18\x02 \x01(\x0b\x32).whatsapp.AIRichResponseGridImageMetadata\x12\x13\n\x0bmessageText\x18\x03 \x01(\t\x12\x42\n\rimageMetadata\x18\x04 \x01(\x0b\x32+.whatsapp.AIRichResponseInlineImageMetadata\x12:\n\x0c\x63odeMetadata\x18\x05 \x01(\x0b\x32$.whatsapp.AIRichResponseCodeMetadata\x12<\n\rtableMetadata\x18\x06 \x01(\x0b\x32%.whatsapp.AIRichResponseTableMetadata\x12@\n\x0f\x64ynamicMetadata\x18\x07 \x01(\x0b\x32\'.whatsapp.AIRichResponseDynamicMetadata\x12<\n\rlatexMetadata\x18\x08 \x01(\x0b\x32%.whatsapp.AIRichResponseLatexMetadata\x12\x38\n\x0bmapMetadata\x18\t \x01(\x0b\x32#.whatsapp.AIRichResponseMapMetadata\x12J\n\x14\x63ontentItemsMetadata\x18\n \x01(\x0b\x32,.whatsapp.AIRichResponseContentItemsMetadata\"\xb4\x01\n\x1b\x41IRichResponseTableMetadata\x12J\n\x04rows\x18\x01 \x03(\x0b\x32<.whatsapp.AIRichResponseTableMetadata.AIRichResponseTableRow\x12\r\n\x05title\x18\x02 \x01(\t\x1a:\n\x16\x41IRichResponseTableRow\x12\r\n\x05items\x18\x01 \x03(\t\x12\x11\n\tisHeading\x18\x02 \x01(\x08\"-\n\x1d\x41IRichResponseUnifiedResponse\x12\x0c\n\x04\x64\x61ta\x18\x01 \x01(\x0c\"X\n\x1c\x41ISubscriptionUpsellMetadata\x12\x38\n\x0brequestType\x18\x01 \x01(\x0e\x32#.whatsapp.AISubscriptionRequestType\"\xed\x02\n\x0c\x41IThreadInfo\x12=\n\nserverInfo\x18\x01 \x01(\x0b\x32).whatsapp.AIThreadInfo.AIThreadServerInfo\x12=\n\nclientInfo\x18\x02 \x01(\x0b\x32).whatsapp.AIThreadInfo.AIThreadClientInfo\x1a\xb9\x01\n\x12\x41IThreadClientInfo\x12\x44\n\x04type\x18\x01 \x01(\x0e\x32\x36.whatsapp.AIThreadInfo.AIThreadClientInfo.AIThreadType\x12\x15\n\rsourceChatJid\x18\x02 \x01(\t\"F\n\x0c\x41IThreadType\x12\x0b\n\x07UNKNOWN\x10\x00\x12\x0b\n\x07\x44\x45\x46\x41ULT\x10\x01\x12\r\n\tINCOGNITO\x10\x02\x12\r\n\tSIDE_CHAT\x10\x03\x1a#\n\x12\x41IThreadServerInfo\x12\r\n\x05title\x18\x01 \x01(\t\"X\n\x07\x41\x63\x63ount\x12\x0b\n\x03lid\x18\x01 \x01(\t\x12\x10\n\x08username\x18\x02 \x01(\t\x12\x13\n\x0b\x63ountryCode\x18\x03 \x01(\t\x12\x19\n\x11isUsernameDeleted\x18\x04 \x01(\x08\"g\n\x18\x41\x63\x63ountLinkingOpaqueData\x12\x13\n\x0b\x61\x63\x63\x65sstoken\x18\x01 \x01(\t\x12\x0c\n\x04\x66\x62id\x18\x02 \x01(\t\x12\r\n\x05nonce\x18\x03 \x01(\t\x12\x19\n\x11\x65ncryptedPassword\x18\x04 \x01(\t\".\n\nActionLink\x12\x0b\n\x03url\x18\x01 \x01(\t\x12\x13\n\x0b\x62uttonTitle\x18\x02 \x01(\t\"w\n\x14\x41utoDownloadSettings\x12\x16\n\x0e\x64ownloadImages\x18\x01 \x01(\x08\x12\x15\n\rdownloadAudio\x18\x02 \x01(\x08\x12\x15\n\rdownloadVideo\x18\x03 \x01(\x08\x12\x19\n\x11\x64ownloadDocuments\x18\x04 \x01(\x08\"4\n\x12\x41vatarUserSettings\x12\x0c\n\x04\x66\x62id\x18\x01 \x01(\t\x12\x10\n\x08password\x18\x02 \x01(\t\"x\n\x0c\x42\x61\x63kwardEdge\x12 \n\x18\x65ncryptedPrevEpochAnonId\x18\x01 \x01(\x0c\x12!\n\x19\x65ncryptedPrevEpochRootKey\x18\x02 \x01(\x0c\x12#\n\x1bprevEpochRootKeyFingerprint\x18\x03 \x01(\x0c\"\xb2\x02\n\x12\x42izAccountLinkInfo\x12\x1b\n\x13whatsappBizAcctFbid\x18\x01 \x01(\x04\x12\x1a\n\x12whatsappAcctNumber\x18\x02 \x01(\t\x12\x11\n\tissueTime\x18\x03 \x01(\x04\x12\x41\n\x0bhostStorage\x18\x04 \x01(\x0e\x32,.whatsapp.BizAccountLinkInfo.HostStorageType\x12=\n\x0b\x61\x63\x63ountType\x18\x05 \x01(\x0e\x32(.whatsapp.BizAccountLinkInfo.AccountType\"\x1d\n\x0b\x41\x63\x63ountType\x12\x0e\n\nENTERPRISE\x10\x00\"/\n\x0fHostStorageType\x12\x0e\n\nON_PREMISE\x10\x00\x12\x0c\n\x08\x46\x41\x43\x45\x42OOK\x10\x01\"b\n\x11\x42izAccountPayload\x12\x34\n\tvnameCert\x18\x01 \x01(\x0b\x32!.whatsapp.VerifiedNameCertificate\x12\x17\n\x0f\x62izAcctLinkInfo\x18\x02 \x01(\x0c\"\xe6\x03\n\x0f\x42izIdentityInfo\x12<\n\x06vlevel\x18\x01 \x01(\x0e\x32,.whatsapp.BizIdentityInfo.VerifiedLevelValue\x12\x34\n\tvnameCert\x18\x02 \x01(\x0b\x32!.whatsapp.VerifiedNameCertificate\x12\x0e\n\x06signed\x18\x03 \x01(\x08\x12\x0f\n\x07revoked\x18\x04 \x01(\x08\x12>\n\x0bhostStorage\x18\x05 \x01(\x0e\x32).whatsapp.BizIdentityInfo.HostStorageType\x12@\n\x0c\x61\x63tualActors\x18\x06 \x01(\x0e\x32*.whatsapp.BizIdentityInfo.ActualActorsType\x12\x15\n\rprivacyModeTs\x18\x07 \x01(\x04\x12\x17\n\x0f\x66\x65\x61tureControls\x18\x08 \x01(\x04\"%\n\x10\x41\x63tualActorsType\x12\x08\n\x04SELF\x10\x00\x12\x07\n\x03\x42SP\x10\x01\"/\n\x0fHostStorageType\x12\x0e\n\nON_PREMISE\x10\x00\x12\x0c\n\x08\x46\x41\x43\x45\x42OOK\x10\x01\"4\n\x12VerifiedLevelValue\x12\x0b\n\x07UNKNOWN\x10\x00\x12\x07\n\x03LOW\x10\x01\x12\x08\n\x04HIGH\x10\x02\"\xe7\x01\n\x18\x42otAgeCollectionMetadata\x12\x1d\n\x15\x61geCollectionEligible\x18\x01 \x01(\x08\x12*\n\"shouldTriggerAgeCollectionOnClient\x18\x02 \x01(\x08\x12O\n\x11\x61geCollectionType\x18\x03 \x01(\x0e\x32\x34.whatsapp.BotAgeCollectionMetadata.AgeCollectionType\"/\n\x11\x41geCollectionType\x12\x0e\n\nO18_BINARY\x10\x00\x12\n\n\x06WAFFLE\x10\x01\"B\n\x18\x42otAgentDeepLinkMetadata\x12\r\n\x05token\x18\x01 \x01(\t\x12\x17\n\x0f\x63lientPublicKey\x18\x02 \x01(\x0c\"P\n\x10\x42otAgentMetadata\x12<\n\x10\x64\x65\x65pLinkMetadata\x18\x01 \x01(\x0b\x32\".whatsapp.BotAgentDeepLinkMetadata\"\xaf\x13\n\x15\x42otCapabilityMetadata\x12G\n\x0c\x63\x61pabilities\x18\x01 \x03(\x0e\x32\x31.whatsapp.BotCapabilityMetadata.BotCapabilityType\"\xcc\x12\n\x11\x42otCapabilityType\x12\x0b\n\x07UNKNOWN\x10\x00\x12\x16\n\x12PROGRESS_INDICATOR\x10\x01\x12\x19\n\x15RICH_RESPONSE_HEADING\x10\x02\x12\x1d\n\x19RICH_RESPONSE_NESTED_LIST\x10\x03\x12\r\n\tAI_MEMORY\x10\x04\x12 \n\x1cRICH_RESPONSE_THREAD_SURFING\x10\x05\x12\x17\n\x13RICH_RESPONSE_TABLE\x10\x06\x12\x16\n\x12RICH_RESPONSE_CODE\x10\x07\x12%\n!RICH_RESPONSE_STRUCTURED_RESPONSE\x10\x08\x12\x1e\n\x1aRICH_RESPONSE_INLINE_IMAGE\x10\t\x12#\n\x1fWA_IG_1P_PLUGIN_RANKING_CONTROL\x10\n\x12$\n WA_IG_1P_PLUGIN_RANKING_UPDATE_1\x10\x0b\x12$\n WA_IG_1P_PLUGIN_RANKING_UPDATE_2\x10\x0c\x12$\n WA_IG_1P_PLUGIN_RANKING_UPDATE_3\x10\r\x12$\n WA_IG_1P_PLUGIN_RANKING_UPDATE_4\x10\x0e\x12$\n WA_IG_1P_PLUGIN_RANKING_UPDATE_5\x10\x0f\x12$\n WA_IG_1P_PLUGIN_RANKING_UPDATE_6\x10\x10\x12$\n WA_IG_1P_PLUGIN_RANKING_UPDATE_7\x10\x11\x12$\n WA_IG_1P_PLUGIN_RANKING_UPDATE_8\x10\x12\x12$\n WA_IG_1P_PLUGIN_RANKING_UPDATE_9\x10\x13\x12%\n!WA_IG_1P_PLUGIN_RANKING_UPDATE_10\x10\x14\x12\x1d\n\x19RICH_RESPONSE_SUB_HEADING\x10\x15\x12\x1c\n\x18RICH_RESPONSE_GRID_IMAGE\x10\x16\x12\x18\n\x14\x41I_STUDIO_UGC_MEMORY\x10\x17\x12\x17\n\x13RICH_RESPONSE_LATEX\x10\x18\x12\x16\n\x12RICH_RESPONSE_MAPS\x10\x19\x12\x1e\n\x1aRICH_RESPONSE_INLINE_REELS\x10\x1a\x12\x14\n\x10\x41GENTIC_PLANNING\x10\x1b\x12\x13\n\x0f\x41\x43\x43OUNT_LINKING\x10\x1c\x12\x1c\n\x18STREAMING_DISAGGREGATION\x10\x1d\x12\x1f\n\x1bRICH_RESPONSE_GRID_IMAGE_3P\x10\x1e\x12\x1e\n\x1aRICH_RESPONSE_LATEX_INLINE\x10\x1f\x12\x0e\n\nQUERY_PLAN\x10 \x12\x15\n\x11PROACTIVE_MESSAGE\x10!\x12\"\n\x1eRICH_RESPONSE_UNIFIED_RESPONSE\x10\"\x12\x15\n\x11PROMOTION_MESSAGE\x10#\x12\x1b\n\x17SIMPLIFIED_PROFILE_PAGE\x10$\x12$\n RICH_RESPONSE_SOURCES_IN_MESSAGE\x10%\x12%\n!RICH_RESPONSE_SIDE_BY_SIDE_SURVEY\x10&\x12(\n$RICH_RESPONSE_UNIFIED_TEXT_COMPONENT\x10\'\x12\x14\n\x10\x41I_SHARED_MEMORY\x10(\x12!\n\x1dRICH_RESPONSE_UNIFIED_SOURCES\x10)\x12*\n&RICH_RESPONSE_UNIFIED_DOMAIN_CITATIONS\x10*\x12)\n%RICH_RESPONSE_UR_INLINE_REELS_ENABLED\x10+\x12\'\n#RICH_RESPONSE_UR_MEDIA_GRID_ENABLED\x10,\x12*\n&RICH_RESPONSE_UR_TIMESTAMP_PLACEHOLDER\x10-\x12\x1f\n\x1bRICH_RESPONSE_IN_APP_SURVEY\x10.\x12\x1e\n\x1a\x41I_RESPONSE_MODEL_BRANDING\x10/\x12\'\n#SESSION_TRANSPARENCY_SYSTEM_MESSAGE\x10\x30\x12\x1e\n\x1aRICH_RESPONSE_UR_REASONING\x10\x31\x12(\n$RICH_RESPONSE_UR_ZEITGEIST_CITATIONS\x10\x32\x12\'\n#RICH_RESPONSE_UR_ZEITGEIST_CAROUSEL\x10\x33\x12 \n\x1c\x41I_IMAGINE_LOADING_INDICATOR\x10\x34\x12\x1c\n\x18RICH_RESPONSE_UR_IMAGINE\x10\x35\x12-\n)AI_IMAGINE_UR_TO_NATIVE_LOADING_INDICATOR\x10\x36\x12\"\n\x1eRICH_RESPONSE_UR_BLOKS_ENABLED\x10\x37\x12&\n\"RICH_RESPONSE_INLINE_LINKS_ENABLED\x10\x38\x12\"\n\x1eRICH_RESPONSE_UR_IMAGINE_VIDEO\x10\x39\x12\x18\n\x14JSON_PATCH_STREAMING\x10:\x12\x17\n\x13\x41I_TAB_FORCE_CLIPPY\x10;\x12%\n!UNIFIED_RESPONSE_EMBEDDED_SCREENS\x10<\x12\x1b\n\x17\x41I_SUBSCRIPTION_ENABLED\x10=\x12.\n*UNIFIED_RESPONSE_AI_CONTENT_SEARCH_ENABLED\x10>\x12+\n\'UNIFIED_RESPONSE_MARKDOWN_LINKS_ENABLED\x10?\x12$\n AI_RICH_RESPONSE_MAPS_V2_ENABLED\x10@\x12$\n AI_SUBSCRIPTION_METERING_ENABLED\x10\x41\x12\'\n#RICH_RESPONSE_SPORTS_WIDGET_ENABLED\x10\x42\x12&\n\"AI_RICH_RESPONSE_ARTIFACTS_ENABLED\x10\x43\x12+\n\'AI_RICH_RESPONSE_EMAIL_CALENDAR_ENABLED\x10\x44\x12&\n\"AI_RICH_RESPONSE_REMINDERS_ENABLED\x10\x45\"\\\n\x12\x42otCommandMetadata\x12\x13\n\x0b\x63ommandName\x18\x01 \x01(\t\x12\x1a\n\x12\x63ommandDescription\x18\x02 \x01(\t\x12\x15\n\rcommandPrompt\x18\x03 \x01(\t\"\xa8\x01\n\x1a\x42otDocumentMessageMetadata\x12K\n\npluginType\x18\x01 \x01(\x0e\x32\x37.whatsapp.BotDocumentMessageMetadata.DocumentPluginType\"=\n\x12\x44ocumentPluginType\x12\x13\n\x0fTEXT_EXTRACTION\x10\x00\x12\x12\n\x0eOCR_AND_IMAGES\x10\x01\"\x86\x1a\n\x12\x42otFeedbackMessage\x12(\n\nmessageKey\x18\x01 \x01(\x0b\x32\x14.whatsapp.MessageKey\x12:\n\x04kind\x18\x02 \x01(\x0e\x32,.whatsapp.BotFeedbackMessage.BotFeedbackKind\x12\x0c\n\x04text\x18\x03 \x01(\t\x12\x14\n\x0ckindNegative\x18\x04 \x01(\x04\x12\x14\n\x0ckindPositive\x18\x05 \x01(\x04\x12;\n\nkindReport\x18\x06 \x01(\x0e\x32\'.whatsapp.BotFeedbackMessage.ReportKind\x12W\n\x18sideBySideSurveyMetadata\x18\x07 \x01(\x0b\x32\x35.whatsapp.BotFeedbackMessage.SideBySideSurveyMetadata\x1a\x9d\x0e\n\x18SideBySideSurveyMetadata\x12\x19\n\x11selectedRequestId\x18\x01 \x01(\t\x12\x10\n\x08surveyId\x18\x02 \x01(\r\x12\x18\n\x10simonSessionFbid\x18\x03 \x01(\t\x12\x14\n\x0cresponseOtid\x18\x04 \x01(\t\x12!\n\x19responseTimestampMsString\x18\x05 \x01(\t\x12!\n\x19isSelectedResponsePrimary\x18\x06 \x01(\x08\x12\x17\n\x0fmessageIdToEdit\x18\x07 \x01(\t\x12j\n\ranalyticsData\x18\x08 \x01(\x0b\x32S.whatsapp.BotFeedbackMessage.SideBySideSurveyMetadata.SideBySideSurveyAnalyticsData\x12v\n\x13metaAiAnalyticsData\x18\t \x01(\x0b\x32Y.whatsapp.BotFeedbackMessage.SideBySideSurveyMetadata.SidebySideSurveyMetaAiAnalyticsData\x1ag\n\x1dSideBySideSurveyAnalyticsData\x12\x12\n\ntessaEvent\x18\x01 \x01(\t\x12\x18\n\x10tessaSessionFbid\x18\x02 \x01(\t\x12\x18\n\x10simonSessionFbid\x18\x03 \x01(\t\x1a\xf7\t\n#SidebySideSurveyMetaAiAnalyticsData\x12\x10\n\x08surveyId\x18\x01 \x01(\r\x12\x19\n\x11primaryResponseId\x18\x02 \x01(\t\x12\x13\n\x0btestArmName\x18\x03 \x01(\t\x12\x19\n\x11timestampMsString\x18\x04 \x01(\t\x12\x9d\x01\n\x12\x63taImpressionEvent\x18\x05 \x01(\x0b\x32\x80\x01.whatsapp.BotFeedbackMessage.SideBySideSurveyMetadata.SidebySideSurveyMetaAiAnalyticsData.SideBySideSurveyCTAImpressionEventData\x12\x92\x01\n\rctaClickEvent\x18\x06 \x01(\x0b\x32{.whatsapp.BotFeedbackMessage.SideBySideSurveyMetadata.SidebySideSurveyMetaAiAnalyticsData.SideBySideSurveyCTAClickEventData\x12\x9f\x01\n\x13\x63\x61rdImpressionEvent\x18\x07 \x01(\x0b\x32\x81\x01.whatsapp.BotFeedbackMessage.SideBySideSurveyMetadata.SidebySideSurveyMetaAiAnalyticsData.SideBySideSurveyCardImpressionEventData\x12\x92\x01\n\rresponseEvent\x18\x08 \x01(\x0b\x32{.whatsapp.BotFeedbackMessage.SideBySideSurveyMetadata.SidebySideSurveyMetaAiAnalyticsData.SideBySideSurveyResponseEventData\x12\x90\x01\n\x0c\x61\x62\x61ndonEvent\x18\t \x01(\x0b\x32z.whatsapp.BotFeedbackMessage.SideBySideSurveyMetadata.SidebySideSurveyMetaAiAnalyticsData.SideBySideSurveyAbandonEventData\x1a\x44\n SideBySideSurveyAbandonEventData\x12 \n\x18\x61\x62\x61ndonDwellTimeMsString\x18\x01 \x01(\t\x1a\\\n!SideBySideSurveyCTAClickEventData\x12\x17\n\x0fisSurveyExpired\x18\x01 \x01(\x08\x12\x1e\n\x16\x63lickDwellTimeMsString\x18\x02 \x01(\t\x1a\x41\n&SideBySideSurveyCTAImpressionEventData\x12\x17\n\x0fisSurveyExpired\x18\x01 \x01(\x08\x1a)\n\'SideBySideSurveyCardImpressionEventData\x1a\x62\n!SideBySideSurveyResponseEventData\x12!\n\x19responseDwellTimeMsString\x18\x01 \x01(\t\x12\x1a\n\x12selectedResponseId\x18\x02 \x01(\t\"\xd7\x04\n\x0f\x42otFeedbackKind\x12\x19\n\x15\x42OT_FEEDBACK_POSITIVE\x10\x00\x12!\n\x1d\x42OT_FEEDBACK_NEGATIVE_GENERIC\x10\x01\x12!\n\x1d\x42OT_FEEDBACK_NEGATIVE_HELPFUL\x10\x02\x12%\n!BOT_FEEDBACK_NEGATIVE_INTERESTING\x10\x03\x12\"\n\x1e\x42OT_FEEDBACK_NEGATIVE_ACCURATE\x10\x04\x12\x1e\n\x1a\x42OT_FEEDBACK_NEGATIVE_SAFE\x10\x05\x12\x1f\n\x1b\x42OT_FEEDBACK_NEGATIVE_OTHER\x10\x06\x12!\n\x1d\x42OT_FEEDBACK_NEGATIVE_REFUSED\x10\x07\x12\x30\n,BOT_FEEDBACK_NEGATIVE_NOT_VISUALLY_APPEALING\x10\x08\x12.\n*BOT_FEEDBACK_NEGATIVE_NOT_RELEVANT_TO_TEXT\x10\t\x12&\n\"BOT_FEEDBACK_NEGATIVE_PERSONALIZED\x10\n\x12!\n\x1d\x42OT_FEEDBACK_NEGATIVE_CLARITY\x10\x0b\x12\x35\n1BOT_FEEDBACK_NEGATIVE_DOESNT_LOOK_LIKE_THE_PERSON\x10\x0c\x12\x35\n1BOT_FEEDBACK_NEGATIVE_HALLUCINATION_INTERNAL_ONLY\x10\r\x12\x19\n\x15\x42OT_FEEDBACK_NEGATIVE\x10\x0e\"\xcb\x03\n\x1f\x42otFeedbackKindMultipleNegative\x12*\n&BOT_FEEDBACK_MULTIPLE_NEGATIVE_GENERIC\x10\x01\x12*\n&BOT_FEEDBACK_MULTIPLE_NEGATIVE_HELPFUL\x10\x02\x12.\n*BOT_FEEDBACK_MULTIPLE_NEGATIVE_INTERESTING\x10\x04\x12+\n\'BOT_FEEDBACK_MULTIPLE_NEGATIVE_ACCURATE\x10\x08\x12\'\n#BOT_FEEDBACK_MULTIPLE_NEGATIVE_SAFE\x10\x10\x12(\n$BOT_FEEDBACK_MULTIPLE_NEGATIVE_OTHER\x10 \x12*\n&BOT_FEEDBACK_MULTIPLE_NEGATIVE_REFUSED\x10@\x12:\n5BOT_FEEDBACK_MULTIPLE_NEGATIVE_NOT_VISUALLY_APPEALING\x10\x80\x01\x12\x38\n3BOT_FEEDBACK_MULTIPLE_NEGATIVE_NOT_RELEVANT_TO_TEXT\x10\x80\x02\"M\n\x1f\x42otFeedbackKindMultiplePositive\x12*\n&BOT_FEEDBACK_MULTIPLE_POSITIVE_GENERIC\x10\x01\"#\n\nReportKind\x12\x08\n\x04NONE\x10\x00\x12\x0b\n\x07GENERIC\x10\x01\"W\n\x10\x42otGroupMetadata\x12\x43\n\x14participantsMetadata\x18\x01 \x03(\x0b\x32%.whatsapp.BotGroupParticipantMetadata\".\n\x1b\x42otGroupParticipantMetadata\x12\x0f\n\x07\x62otFbid\x18\x01 \x01(\t\"^\n\x17\x42otHistoryShareMetadata\x12\x43\n\x14participantsMetadata\x18\x01 \x03(\x0b\x32%.whatsapp.BotGroupParticipantMetadata\"\xb0\x01\n\x12\x42otImagineMetadata\x12=\n\x0bimagineType\x18\x01 \x01(\x0e\x32(.whatsapp.BotImagineMetadata.ImagineType\x12\x13\n\x0bshortPrompt\x18\x02 \x01(\t\"F\n\x0bImagineType\x12\x0b\n\x07UNKNOWN\x10\x00\x12\x0b\n\x07IMAGINE\x10\x01\x12\x08\n\x04MEMU\x10\x02\x12\t\n\x05\x46LASH\x10\x03\x12\x08\n\x04\x45\x44IT\x10\x04\"\xb0\x01\n\x1c\x42otInfrastructureDiagnostics\x12\x45\n\nbotBackend\x18\x01 \x01(\x0e\x32\x31.whatsapp.BotInfrastructureDiagnostics.BotBackend\x12\x11\n\ttoolsUsed\x18\x02 \x03(\t\x12\x12\n\nisThinking\x18\x03 \x01(\x08\"\"\n\nBotBackend\x12\x08\n\x04\x41\x41PI\x10\x00\x12\n\n\x06\x43LIPPY\x10\x01\"\x89\x01\n\x10\x42otLinkedAccount\x12=\n\x04type\x18\x01 \x01(\x0e\x32/.whatsapp.BotLinkedAccount.BotLinkedAccountType\"6\n\x14\x42otLinkedAccountType\x12\x1e\n\x1a\x42OT_LINKED_ACCOUNT_TYPE_1P\x10\x00\"t\n\x19\x42otLinkedAccountsMetadata\x12,\n\x08\x61\x63\x63ounts\x18\x01 \x03(\x0b\x32\x1a.whatsapp.BotLinkedAccount\x12\x14\n\x0c\x61\x63\x41uthTokens\x18\x02 \x01(\x0c\x12\x13\n\x0b\x61\x63\x45rrorCode\x18\x03 \x01(\x05\"\x89\x02\n\x10\x42otMediaMetadata\x12\x12\n\nfileSha256\x18\x01 \x01(\t\x12\x10\n\x08mediaKey\x18\x02 \x01(\t\x12\x15\n\rfileEncSha256\x18\x03 \x01(\t\x12\x12\n\ndirectPath\x18\x04 \x01(\t\x12\x19\n\x11mediaKeyTimestamp\x18\x05 \x01(\x03\x12\x10\n\x08mimetype\x18\x06 \x01(\t\x12\x43\n\x0forientationType\x18\x07 \x01(\x0e\x32*.whatsapp.BotMediaMetadata.OrientationType\"2\n\x0fOrientationType\x12\n\n\x06\x43\x45NTER\x10\x01\x12\x08\n\x04LEFT\x10\x02\x12\t\n\x05RIGHT\x10\x03\"-\n\rBotMemoryFact\x12\x0c\n\x04\x66\x61\x63t\x18\x01 \x01(\t\x12\x0e\n\x06\x66\x61\x63tId\x18\x02 \x01(\t\"\x83\x01\n\x11\x42otMemoryMetadata\x12+\n\naddedFacts\x18\x01 \x03(\x0b\x32\x17.whatsapp.BotMemoryFact\x12-\n\x0cremovedFacts\x18\x02 \x03(\x0b\x32\x17.whatsapp.BotMemoryFact\x12\x12\n\ndisclaimer\x18\x03 \x01(\t\"A\n\x0f\x42otMemuMetadata\x12.\n\nfaceImages\x18\x01 \x03(\x0b\x32\x1a.whatsapp.BotMediaMetadata\"\x93\x01\n\x10\x42otMessageOrigin\x12=\n\x04type\x18\x01 \x01(\x0e\x32/.whatsapp.BotMessageOrigin.BotMessageOriginType\"@\n\x14\x42otMessageOriginType\x12(\n$BOT_MESSAGE_ORIGIN_TYPE_AI_INITIATED\x10\x00\"G\n\x18\x42otMessageOriginMetadata\x12+\n\x07origins\x18\x01 \x03(\x0b\x32\x1a.whatsapp.BotMessageOrigin\"j\n\x15\x42otMessageSharingInfo\x12;\n\x13\x62otEntryPointOrigin\x18\x01 \x01(\x0e\x32\x1e.whatsapp.BotMetricsEntryPoint\x12\x14\n\x0c\x66orwardScore\x18\x02 \x01(\r\"\xa8\x13\n\x0b\x42otMetadata\x12\x11\n\tpersonaId\x18\x02 \x01(\t\x12\x33\n\x0epluginMetadata\x18\x03 \x01(\x0b\x32\x1b.whatsapp.BotPluginMetadata\x12\x45\n\x17suggestedPromptMetadata\x18\x04 \x01(\x0b\x32$.whatsapp.BotSuggestedPromptMetadata\x12\x12\n\ninvokerJid\x18\x05 \x01(\t\x12\x35\n\x0fsessionMetadata\x18\x06 \x01(\x0b\x32\x1c.whatsapp.BotSessionMetadata\x12/\n\x0cmemuMetadata\x18\x07 \x01(\x0b\x32\x19.whatsapp.BotMemuMetadata\x12\x10\n\x08timezone\x18\x08 \x01(\t\x12\x37\n\x10reminderMetadata\x18\t \x01(\x0b\x32\x1d.whatsapp.BotReminderMetadata\x12\x31\n\rmodelMetadata\x18\n \x01(\x0b\x32\x1a.whatsapp.BotModelMetadata\x12\x1d\n\x15messageDisclaimerText\x18\x0b \x01(\t\x12I\n\x19progressIndicatorMetadata\x18\x0c \x01(\x0b\x32&.whatsapp.BotProgressIndicatorMetadata\x12;\n\x12\x63\x61pabilityMetadata\x18\r \x01(\x0b\x32\x1f.whatsapp.BotCapabilityMetadata\x12\x35\n\x0fimagineMetadata\x18\x0e \x01(\x0b\x32\x1c.whatsapp.BotImagineMetadata\x12\x33\n\x0ememoryMetadata\x18\x0f \x01(\x0b\x32\x1b.whatsapp.BotMemoryMetadata\x12\x39\n\x11renderingMetadata\x18\x10 \x01(\x0b\x32\x1e.whatsapp.BotRenderingMetadata\x12\x38\n\x12\x62otMetricsMetadata\x18\x11 \x01(\x0b\x32\x1c.whatsapp.BotMetricsMetadata\x12\x46\n\x19\x62otLinkedAccountsMetadata\x18\x12 \x01(\x0b\x32#.whatsapp.BotLinkedAccountsMetadata\x12\x41\n\x1brichResponseSourcesMetadata\x18\x13 \x01(\x0b\x32\x1c.whatsapp.BotSourcesMetadata\x12\x1d\n\x15\x61iConversationContext\x18\x14 \x01(\x0c\x12J\n\x1b\x62otPromotionMessageMetadata\x18\x15 \x01(\x0b\x32%.whatsapp.BotPromotionMessageMetadata\x12\x44\n\x18\x62otModeSelectionMetadata\x18\x16 \x01(\x0b\x32\".whatsapp.BotModeSelectionMetadata\x12\x34\n\x10\x62otQuotaMetadata\x18\x17 \x01(\x0b\x32\x1a.whatsapp.BotQuotaMetadata\x12\x44\n\x18\x62otAgeCollectionMetadata\x18\x18 \x01(\x0b\x32\".whatsapp.BotAgeCollectionMetadata\x12#\n\x1b\x63onversationStarterPromptId\x18\x19 \x01(\t\x12\x15\n\rbotResponseId\x18\x1a \x01(\t\x12H\n\x14verificationMetadata\x18\x1b \x01(\x0b\x32*.whatsapp.BotSignatureVerificationMetadata\x12\x45\n\x17unifiedResponseMutation\x18\x1c \x01(\x0b\x32$.whatsapp.BotUnifiedResponseMutation\x12\x44\n\x18\x62otMessageOriginMetadata\x18\x1d \x01(\x0b\x32\".whatsapp.BotMessageOriginMetadata\x12@\n\x16inThreadSurveyMetadata\x18\x1e \x01(\x0b\x32 .whatsapp.InThreadSurveyMetadata\x12-\n\rbotThreadInfo\x18\x1f \x01(\x0b\x32\x16.whatsapp.AIThreadInfo\x12:\n\x12regenerateMetadata\x18 \x01(\x0b\x32\x1e.whatsapp.AIRegenerateMetadata\x12J\n\x1bsessionTransparencyMetadata\x18! \x01(\x0b\x32%.whatsapp.SessionTransparencyMetadata\x12H\n\x1a\x62otDocumentMessageMetadata\x18\" \x01(\x0b\x32$.whatsapp.BotDocumentMessageMetadata\x12\x34\n\x10\x62otGroupMetadata\x18# \x01(\x0b\x32\x1a.whatsapp.BotGroupMetadata\x12H\n\x1a\x62otRenderingConfigMetadata\x18$ \x01(\x0b\x32$.whatsapp.BotRenderingConfigMetadata\x12L\n\x1c\x62otInfrastructureDiagnostics\x18% \x01(\x0b\x32&.whatsapp.BotInfrastructureDiagnostics\x12\x46\n\x19\x61iMediaCollectionMetadata\x18& \x01(\x0b\x32#.whatsapp.AIMediaCollectionMetadata\x12\x35\n\x0f\x63ommandMetadata\x18\' \x01(\x0b\x32\x1c.whatsapp.BotCommandMetadata\x12G\n\x18resolvedToolCallMetadata\x18( \x01(\x0b\x32%.whatsapp.BotResolvedToolCallMetadata\x12J\n\x1asubscriptionUpsellMetadata\x18) \x01(\x0b\x32&.whatsapp.AISubscriptionUpsellMetadata\x12\x39\n\x11pttPromptMetadata\x18* \x01(\x0b\x32\x1e.whatsapp.BotPttPromptMetadata\x12\x42\n\x17\x62otHistoryShareMetadata\x18+ \x01(\x0b\x32!.whatsapp.BotHistoryShareMetadata\x12\x19\n\x10internalMetadata\x18\xe7\x07 \x01(\x0c\"\xa6\x01\n\x12\x42otMetricsMetadata\x12\x15\n\rdestinationId\x18\x01 \x01(\t\x12=\n\x15\x64\x65stinationEntryPoint\x18\x02 \x01(\x0e\x32\x1e.whatsapp.BotMetricsEntryPoint\x12:\n\x0cthreadOrigin\x18\x03 \x01(\x0e\x32$.whatsapp.BotMetricsThreadEntryPoint\"\xb6\x01\n\x18\x42otModeSelectionMetadata\x12\x45\n\x04mode\x18\x01 \x03(\x0e\x32\x37.whatsapp.BotModeSelectionMetadata.BotUserSelectionMode\x12\x14\n\x0coverrideMode\x18\x02 \x03(\r\"=\n\x14\x42otUserSelectionMode\x12\x10\n\x0c\x44\x45\x46\x41ULT_MODE\x10\x00\x12\x13\n\x0fTHINK_HARD_MODE\x10\x01\"\xc9\x02\n\x10\x42otModelMetadata\x12\x37\n\tmodelType\x18\x01 \x01(\x0e\x32$.whatsapp.BotModelMetadata.ModelType\x12I\n\x12premiumModelStatus\x18\x02 \x01(\x0e\x32-.whatsapp.BotModelMetadata.PremiumModelStatus\x12\x19\n\x11modelNameOverride\x18\x03 \x01(\t\"E\n\tModelType\x12\x10\n\x0cUNKNOWN_TYPE\x10\x00\x12\x0e\n\nLLAMA_PROD\x10\x01\x12\x16\n\x12LLAMA_PROD_PREMIUM\x10\x02\"O\n\x12PremiumModelStatus\x12\x12\n\x0eUNKNOWN_STATUS\x10\x00\x12\r\n\tAVAILABLE\x10\x01\x12\x16\n\x12QUOTA_EXCEED_LIMIT\x10\x02\"\xf1\x04\n\x11\x42otPluginMetadata\x12<\n\x08provider\x18\x01 \x01(\x0e\x32*.whatsapp.BotPluginMetadata.SearchProvider\x12:\n\npluginType\x18\x02 \x01(\x0e\x32&.whatsapp.BotPluginMetadata.PluginType\x12\x17\n\x0fthumbnailCdnUrl\x18\x03 \x01(\t\x12\x1a\n\x12profilePhotoCdnUrl\x18\x04 \x01(\t\x12\x19\n\x11searchProviderUrl\x18\x05 \x01(\t\x12\x16\n\x0ereferenceIndex\x18\x06 \x01(\r\x12\x1a\n\x12\x65xpectedLinksCount\x18\x07 \x01(\r\x12\x13\n\x0bsearchQuery\x18\t \x01(\t\x12\x34\n\x16parentPluginMessageKey\x18\n \x01(\x0b\x32\x14.whatsapp.MessageKey\x12?\n\x0f\x64\x65precatedField\x18\x0b \x01(\x0e\x32&.whatsapp.BotPluginMetadata.PluginType\x12@\n\x10parentPluginType\x18\x0c \x01(\x0e\x32&.whatsapp.BotPluginMetadata.PluginType\x12\x15\n\rfaviconCdnUrl\x18\r \x01(\t\"7\n\nPluginType\x12\x12\n\x0eUNKNOWN_PLUGIN\x10\x00\x12\t\n\x05REELS\x10\x01\x12\n\n\x06SEARCH\x10\x02\"@\n\x0eSearchProvider\x12\x0b\n\x07UNKNOWN\x10\x00\x12\x08\n\x04\x42ING\x10\x01\x12\n\n\x06GOOGLE\x10\x02\x12\x0b\n\x07SUPPORT\x10\x03\"\xd1\x0b\n\x1c\x42otProgressIndicatorMetadata\x12\x1b\n\x13progressDescription\x18\x01 \x01(\t\x12U\n\rstepsMetadata\x18\x02 \x03(\x0b\x32>.whatsapp.BotProgressIndicatorMetadata.BotPlanningStepMetadata\x12\x1f\n\x17\x65stimatedCompletionTime\x18\x03 \x01(\x03\x1a\x9b\n\n\x17\x42otPlanningStepMetadata\x12\x13\n\x0bstatusTitle\x18\x01 \x01(\t\x12\x12\n\nstatusBody\x18\x02 \x01(\t\x12x\n\x0fsourcesMetadata\x18\x03 \x03(\x0b\x32_.whatsapp.BotProgressIndicatorMetadata.BotPlanningStepMetadata.BotPlanningSearchSourcesMetadata\x12\x61\n\x06status\x18\x04 \x01(\x0e\x32Q.whatsapp.BotProgressIndicatorMetadata.BotPlanningStepMetadata.PlanningStepStatus\x12\x13\n\x0bisReasoning\x18\x05 \x01(\x08\x12\x18\n\x10isEnhancedSearch\x18\x06 \x01(\x08\x12o\n\x08sections\x18\x07 \x03(\x0b\x32].whatsapp.BotProgressIndicatorMetadata.BotPlanningStepMetadata.BotPlanningStepSectionMetadata\x1a\xc1\x01\n\x1f\x42otPlanningSearchSourceMetadata\x12\r\n\x05title\x18\x01 \x01(\t\x12h\n\x08provider\x18\x02 \x01(\x0e\x32V.whatsapp.BotProgressIndicatorMetadata.BotPlanningStepMetadata.BotSearchSourceProvider\x12\x11\n\tsourceUrl\x18\x03 \x01(\t\x12\x12\n\nfavIconUrl\x18\x04 \x01(\t\x1a\xaf\x02\n BotPlanningSearchSourcesMetadata\x12\x13\n\x0bsourceTitle\x18\x01 \x01(\t\x12\x91\x01\n\x08provider\x18\x02 \x01(\x0e\x32\x7f.whatsapp.BotProgressIndicatorMetadata.BotPlanningStepMetadata.BotPlanningSearchSourcesMetadata.BotPlanningSearchSourceProvider\x12\x11\n\tsourceUrl\x18\x03 \x01(\t\"O\n\x1f\x42otPlanningSearchSourceProvider\x12\x0b\n\x07UNKNOWN\x10\x00\x12\t\n\x05OTHER\x10\x01\x12\n\n\x06GOOGLE\x10\x02\x12\x08\n\x04\x42ING\x10\x03\x1a\xc4\x01\n\x1e\x42otPlanningStepSectionMetadata\x12\x14\n\x0csectionTitle\x18\x01 \x01(\t\x12\x13\n\x0bsectionBody\x18\x02 \x01(\t\x12w\n\x0fsourcesMetadata\x18\x03 \x03(\x0b\x32^.whatsapp.BotProgressIndicatorMetadata.BotPlanningStepMetadata.BotPlanningSearchSourceMetadata\"P\n\x17\x42otSearchSourceProvider\x12\x14\n\x10UNKNOWN_PROVIDER\x10\x00\x12\t\n\x05OTHER\x10\x01\x12\n\n\x06GOOGLE\x10\x02\x12\x08\n\x04\x42ING\x10\x03\"K\n\x12PlanningStepStatus\x12\x0b\n\x07UNKNOWN\x10\x00\x12\x0b\n\x07PLANNED\x10\x01\x12\r\n\tEXECUTING\x10\x02\x12\x0c\n\x08\x46INISHED\x10\x03\"\xc5\x01\n\x1b\x42otPromotionMessageMetadata\x12M\n\rpromotionType\x18\x01 \x01(\x0e\x32\x36.whatsapp.BotPromotionMessageMetadata.BotPromotionType\x12\x13\n\x0b\x62uttonTitle\x18\x02 \x01(\t\"B\n\x10\x42otPromotionType\x12\x10\n\x0cUNKNOWN_TYPE\x10\x00\x12\x07\n\x03\x43\x35\x30\x10\x01\x12\x13\n\x0fSURVEY_PLATFORM\x10\x02\"7\n\x13\x42otPromptSuggestion\x12\x0e\n\x06prompt\x18\x01 \x01(\t\x12\x10\n\x08promptId\x18\x02 \x01(\t\"J\n\x14\x42otPromptSuggestions\x12\x32\n\x0bsuggestions\x18\x01 \x03(\x0b\x32\x1d.whatsapp.BotPromptSuggestion\"*\n\x14\x42otPttPromptMetadata\x12\x12\n\ntranscript\x18\x01 \x01(\t\"\xce\x02\n\x10\x42otQuotaMetadata\x12S\n\x17\x62otFeatureQuotaMetadata\x18\x01 \x03(\x0b\x32\x32.whatsapp.BotQuotaMetadata.BotFeatureQuotaMetadata\x1a\xe4\x01\n\x17\x42otFeatureQuotaMetadata\x12V\n\x0b\x66\x65\x61tureType\x18\x01 \x01(\x0e\x32\x41.whatsapp.BotQuotaMetadata.BotFeatureQuotaMetadata.BotFeatureType\x12\x16\n\x0eremainingQuota\x18\x02 \x01(\r\x12\x1b\n\x13\x65xpirationTimestamp\x18\x03 \x01(\x04\"<\n\x0e\x42otFeatureType\x12\x13\n\x0fUNKNOWN_FEATURE\x10\x00\x12\x15\n\x11REASONING_FEATURE\x10\x01\"\x87\x03\n\x13\x42otReminderMetadata\x12/\n\x11requestMessageKey\x18\x01 \x01(\x0b\x32\x14.whatsapp.MessageKey\x12<\n\x06\x61\x63tion\x18\x02 \x01(\x0e\x32,.whatsapp.BotReminderMetadata.ReminderAction\x12\x0c\n\x04name\x18\x03 \x01(\t\x12\x1c\n\x14nextTriggerTimestamp\x18\x04 \x01(\x04\x12\x42\n\tfrequency\x18\x05 \x01(\x0e\x32/.whatsapp.BotReminderMetadata.ReminderFrequency\"@\n\x0eReminderAction\x12\n\n\x06NOTIFY\x10\x01\x12\n\n\x06\x43REATE\x10\x02\x12\n\n\x06\x44\x45LETE\x10\x03\x12\n\n\x06UPDATE\x10\x04\"O\n\x11ReminderFrequency\x12\x08\n\x04ONCE\x10\x01\x12\t\n\x05\x44\x41ILY\x10\x02\x12\n\n\x06WEEKLY\x10\x03\x12\x0c\n\x08\x42IWEEKLY\x10\x04\x12\x0b\n\x07MONTHLY\x10\x05\"M\n\x1a\x42otRenderingConfigMetadata\x12\x19\n\x11\x62loksVersioningId\x18\x01 \x01(\t\x12\x14\n\x0cpixelDensity\x18\x02 \x01(\x01\"\x85\x01\n\x14\x42otRenderingMetadata\x12\x38\n\x08keywords\x18\x01 \x03(\x0b\x32&.whatsapp.BotRenderingMetadata.Keyword\x1a\x33\n\x07Keyword\x12\r\n\x05value\x18\x01 \x01(\t\x12\x19\n\x11\x61ssociatedPrompts\x18\x02 \x03(\t\"S\n\x1b\x42otResolvedToolCallMetadata\x12\x12\n\ntoolCallId\x18\x01 \x01(\t\x12 \n\x18resolutionDataSerialized\x18\x02 \x01(\t\"Z\n\x12\x42otSessionMetadata\x12\x11\n\tsessionId\x18\x01 \x01(\t\x12\x31\n\rsessionSource\x18\x02 \x01(\x0e\x32\x1a.whatsapp.BotSessionSource\"b\n BotSignatureVerificationMetadata\x12>\n\x06proofs\x18\x01 \x03(\x0b\x32..whatsapp.BotSignatureVerificationUseCaseProof\"\x87\x04\n$BotSignatureVerificationUseCaseProof\x12\x0f\n\x07version\x18\x01 \x01(\x05\x12S\n\x07useCase\x18\x02 \x01(\x0e\x32\x42.whatsapp.BotSignatureVerificationUseCaseProof.BotSignatureUseCase\x12\x11\n\tsignature\x18\x03 \x01(\x0c\x12\x18\n\x10\x63\x65rtificateChain\x18\x04 \x03(\x0c\x12Z\n\x13\x63\x65rtificateChainSki\x18\x05 \x03(\x0b\x32=.whatsapp.BotSignatureVerificationUseCaseProof.CertificateSKI\x1ar\n\x0e\x43\x65rtificateSKI\x12S\n\x07useCase\x18\x01 \x01(\x0e\x32\x42.whatsapp.BotSignatureVerificationUseCaseProof.BotSignatureUseCase\x12\x0b\n\x03ski\x18\x02 \x01(\x0c\"|\n\x13\x42otSignatureUseCase\x12\x0f\n\x0bUNSPECIFIED\x10\x00\x12\x0e\n\nWA_BOT_MSG\x10\x01\x12\x12\n\x0eWA_TEE_BOT_MSG\x10\x02\x12\r\n\tP2P_PILLS\x10\x03\x12\r\n\tWA_WAFFLE\x10\x04\x12\x12\n\x0eWA_FEATURE_PKI\x10\x05\"\x8a\x03\n\x12\x42otSourcesMetadata\x12;\n\x07sources\x18\x01 \x03(\x0b\x32*.whatsapp.BotSourcesMetadata.BotSourceItem\x1a\xb6\x02\n\rBotSourceItem\x12K\n\x08provider\x18\x01 \x01(\x0e\x32\x39.whatsapp.BotSourcesMetadata.BotSourceItem.SourceProvider\x12\x17\n\x0fthumbnailCdnUrl\x18\x02 \x01(\t\x12\x19\n\x11sourceProviderUrl\x18\x03 \x01(\t\x12\x13\n\x0bsourceQuery\x18\x04 \x01(\t\x12\x15\n\rfaviconCdnUrl\x18\x05 \x01(\t\x12\x16\n\x0e\x63itationNumber\x18\x06 \x01(\r\x12\x13\n\x0bsourceTitle\x18\x07 \x01(\t\"K\n\x0eSourceProvider\x12\x0b\n\x07UNKNOWN\x10\x00\x12\x08\n\x04\x42ING\x10\x01\x12\n\n\x06GOOGLE\x10\x02\x12\x0b\n\x07SUPPORT\x10\x03\x12\t\n\x05OTHER\x10\x04\"\xa8\x01\n\x1a\x42otSuggestedPromptMetadata\x12\x18\n\x10suggestedPrompts\x18\x01 \x03(\t\x12\x1b\n\x13selectedPromptIndex\x18\x02 \x01(\r\x12\x39\n\x11promptSuggestions\x18\x03 \x01(\x0b\x32\x1e.whatsapp.BotPromptSuggestions\x12\x18\n\x10selectedPromptId\x18\x04 \x01(\t\"\x9f\x03\n\x1a\x42otUnifiedResponseMutation\x12L\n\x0bsbsMetadata\x18\x01 \x01(\x0b\x32\x37.whatsapp.BotUnifiedResponseMutation.SideBySideMetadata\x12[\n\x18mediaDetailsMetadataList\x18\x02 \x03(\x0b\x32\x39.whatsapp.BotUnifiedResponseMutation.MediaDetailsMetadata\x1a\x86\x01\n\x14MediaDetailsMetadata\x12\n\n\x02id\x18\x01 \x01(\t\x12\x30\n\x0chighResMedia\x18\x02 \x01(\x0b\x32\x1a.whatsapp.BotMediaMetadata\x12\x30\n\x0cpreviewMedia\x18\x03 \x01(\x0b\x32\x1a.whatsapp.BotMediaMetadata\x1aM\n\x12SideBySideMetadata\x12\x19\n\x11primaryResponseId\x18\x01 \x01(\t\x12\x1c\n\x14surveyCtaHasRendered\x18\x02 \x01(\x08\"\xe6\x06\n\rCallLogRecord\x12\x36\n\ncallResult\x18\x01 \x01(\x0e\x32\".whatsapp.CallLogRecord.CallResult\x12\x11\n\tisDndMode\x18\x02 \x01(\x08\x12<\n\rsilenceReason\x18\x03 \x01(\x0e\x32%.whatsapp.CallLogRecord.SilenceReason\x12\x10\n\x08\x64uration\x18\x04 \x01(\x03\x12\x11\n\tstartTime\x18\x05 \x01(\x03\x12\x12\n\nisIncoming\x18\x06 \x01(\x08\x12\x0f\n\x07isVideo\x18\x07 \x01(\x08\x12\x12\n\nisCallLink\x18\x08 \x01(\x08\x12\x15\n\rcallLinkToken\x18\t \x01(\t\x12\x17\n\x0fscheduledCallId\x18\n \x01(\t\x12\x0e\n\x06\x63\x61llId\x18\x0b \x01(\t\x12\x16\n\x0e\x63\x61llCreatorJid\x18\x0c \x01(\t\x12\x10\n\x08groupJid\x18\r \x01(\t\x12=\n\x0cparticipants\x18\x0e \x03(\x0b\x32\'.whatsapp.CallLogRecord.ParticipantInfo\x12\x32\n\x08\x63\x61llType\x18\x0f \x01(\x0e\x32 .whatsapp.CallLogRecord.CallType\x1aZ\n\x0fParticipantInfo\x12\x0f\n\x07userJid\x18\x01 \x01(\t\x12\x36\n\ncallResult\x18\x02 \x01(\x0e\x32\".whatsapp.CallLogRecord.CallResult\"\xaf\x01\n\nCallResult\x12\r\n\tCONNECTED\x10\x00\x12\x0c\n\x08REJECTED\x10\x01\x12\r\n\tCANCELLED\x10\x02\x12\x15\n\x11\x41\x43\x43\x45PTEDELSEWHERE\x10\x03\x12\n\n\x06MISSED\x10\x04\x12\x0b\n\x07INVALID\x10\x05\x12\x0f\n\x0bUNAVAILABLE\x10\x06\x12\x0c\n\x08UPCOMING\x10\x07\x12\n\n\x06\x46\x41ILED\x10\x08\x12\r\n\tABANDONED\x10\t\x12\x0b\n\x07ONGOING\x10\n\";\n\x08\x43\x61llType\x12\x0b\n\x07REGULAR\x10\x00\x12\x12\n\x0eSCHEDULED_CALL\x10\x01\x12\x0e\n\nVOICE_CHAT\x10\x02\"F\n\rSilenceReason\x12\x08\n\x04NONE\x10\x00\x12\r\n\tSCHEDULED\x10\x01\x12\x0b\n\x07PRIVACY\x10\x02\x12\x0f\n\x0bLIGHTWEIGHT\x10\x03\"\x97\x02\n\tCertChain\x12\x32\n\x04leaf\x18\x01 \x01(\x0b\x32$.whatsapp.CertChain.NoiseCertificate\x12:\n\x0cintermediate\x18\x02 \x01(\x0b\x32$.whatsapp.CertChain.NoiseCertificate\x1a\x99\x01\n\x10NoiseCertificate\x12\x0f\n\x07\x64\x65tails\x18\x01 \x01(\x0c\x12\x11\n\tsignature\x18\x02 \x01(\x0c\x1a\x61\n\x07\x44\x65tails\x12\x0e\n\x06serial\x18\x01 \x01(\r\x12\x14\n\x0cissuerSerial\x18\x02 \x01(\r\x12\x0b\n\x03key\x18\x03 \x01(\x0c\x12\x11\n\tnotBefore\x18\x04 \x01(\x04\x12\x10\n\x08notAfter\x18\x05 \x01(\x04\"W\n\x10\x43hatLockSettings\x12\x17\n\x0fhideLockedChats\x18\x01 \x01(\x08\x12*\n\nsecretCode\x18\x02 \x01(\x0b\x32\x16.whatsapp.UserPassword\"\xd9\x06\n\x11\x43hatRowOpaqueData\x12>\n\x0c\x64raftMessage\x18\x01 \x01(\x0b\x32(.whatsapp.ChatRowOpaqueData.DraftMessage\x1a\x83\x06\n\x0c\x44raftMessage\x12\x0c\n\x04text\x18\x01 \x01(\t\x12\x12\n\nomittedUrl\x18\x02 \x01(\t\x12Y\n\x13\x63twaContextLinkData\x18\x03 \x01(\x0b\x32<.whatsapp.ChatRowOpaqueData.DraftMessage.CtwaContextLinkData\x12M\n\x0b\x63twaContext\x18\x04 \x01(\x0b\x32\x38.whatsapp.ChatRowOpaqueData.DraftMessage.CtwaContextData\x12\x11\n\ttimestamp\x18\x05 \x01(\x03\x1a\xb5\x03\n\x0f\x43twaContextData\x12\x18\n\x10\x63onversionSource\x18\x01 \x01(\t\x12\x16\n\x0e\x63onversionData\x18\x02 \x01(\x0c\x12\x11\n\tsourceUrl\x18\x03 \x01(\t\x12\x10\n\x08sourceId\x18\x04 \x01(\t\x12\x12\n\nsourceType\x18\x05 \x01(\t\x12\r\n\x05title\x18\x06 \x01(\t\x12\x13\n\x0b\x64\x65scription\x18\x07 \x01(\t\x12\x11\n\tthumbnail\x18\x08 \x01(\t\x12\x14\n\x0cthumbnailUrl\x18\t \x01(\t\x12s\n\tmediaType\x18\n \x01(\x0e\x32`.whatsapp.ChatRowOpaqueData.DraftMessage.CtwaContextData.ContextInfoExternalAdReplyInfoMediaType\x12\x10\n\x08mediaUrl\x18\x0b \x01(\t\x12\x18\n\x10isSuspiciousLink\x18\x0c \x01(\x08\"I\n\'ContextInfoExternalAdReplyInfoMediaType\x12\x08\n\x04NONE\x10\x00\x12\t\n\x05IMAGE\x10\x01\x12\t\n\x05VIDEO\x10\x02\x1a\\\n\x13\x43twaContextLinkData\x12\x0f\n\x07\x63ontext\x18\x01 \x01(\t\x12\x11\n\tsourceUrl\x18\x02 \x01(\t\x12\x12\n\nicebreaker\x18\x03 \x01(\t\x12\r\n\x05phone\x18\x04 \x01(\t\"L\n\x08\x43itation\x12\r\n\x05title\x18\x01 \x02(\t\x12\x10\n\x08subtitle\x18\x02 \x02(\t\x12\r\n\x05\x63msId\x18\x03 \x02(\t\x12\x10\n\x08imageUrl\x18\x04 \x02(\t\"\xbb\x01\n\x12\x43lientPairingProps\x12\x1b\n\x13isChatDbLidMigrated\x18\x01 \x01(\x08\x12\x1d\n\x15isSyncdPureLidSession\x18\x02 \x01(\x08\x12&\n\x1eisSyncdSnapshotRecoveryEnabled\x18\x03 \x01(\x08\x12 \n\x18isHsThumbnailSyncEnabled\x18\x04 \x01(\x08\x12\x1f\n\x17subscriptionSyncPayload\x18\x05 \x01(\x0c\"\xbb#\n\rClientPayload\x12\x10\n\x08username\x18\x01 \x01(\x04\x12\x0f\n\x07passive\x18\x03 \x01(\x08\x12\x34\n\tuserAgent\x18\x05 \x01(\x0b\x32!.whatsapp.ClientPayload.UserAgent\x12\x30\n\x07webInfo\x18\x06 \x01(\x0b\x32\x1f.whatsapp.ClientPayload.WebInfo\x12\x10\n\x08pushName\x18\x07 \x01(\t\x12\x11\n\tsessionId\x18\t \x01(\x0f\x12\x14\n\x0cshortConnect\x18\n \x01(\x08\x12\x38\n\x0b\x63onnectType\x18\x0c \x01(\x0e\x32#.whatsapp.ClientPayload.ConnectType\x12<\n\rconnectReason\x18\r \x01(\x0e\x32%.whatsapp.ClientPayload.ConnectReason\x12\x0e\n\x06shards\x18\x0e \x03(\x05\x12\x34\n\tdnsSource\x18\x0f \x01(\x0b\x32!.whatsapp.ClientPayload.DNSSource\x12\x1b\n\x13\x63onnectAttemptCount\x18\x10 \x01(\r\x12\x0e\n\x06\x64\x65vice\x18\x12 \x01(\r\x12P\n\x11\x64\x65vicePairingData\x18\x13 \x01(\x0b\x32\x35.whatsapp.ClientPayload.DevicePairingRegistrationData\x12\x30\n\x07product\x18\x14 \x01(\x0e\x32\x1f.whatsapp.ClientPayload.Product\x12\r\n\x05\x66\x62\x43\x61t\x18\x15 \x01(\x0c\x12\x13\n\x0b\x66\x62UserAgent\x18\x16 \x01(\x0c\x12\n\n\x02oc\x18\x17 \x01(\x08\x12\n\n\x02lc\x18\x18 \x01(\x05\x12@\n\x0fiosAppExtension\x18\x1e \x01(\x0e\x32\'.whatsapp.ClientPayload.IOSAppExtension\x12\x0f\n\x07\x66\x62\x41ppId\x18\x1f \x01(\x04\x12\x12\n\nfbDeviceId\x18 \x01(\x0c\x12\x0c\n\x04pull\x18! \x01(\x08\x12\x14\n\x0cpaddingBytes\x18\" \x01(\x0c\x12\x11\n\tyearClass\x18$ \x01(\x05\x12\x10\n\x08memClass\x18% \x01(\x05\x12\x38\n\x0binteropData\x18& \x01(\x0b\x32#.whatsapp.ClientPayload.InteropData\x12J\n\x14trafficAnonymization\x18( \x01(\x0e\x32,.whatsapp.ClientPayload.TrafficAnonymization\x12\x15\n\rlidDbMigrated\x18) \x01(\x08\x12\x38\n\x0b\x61\x63\x63ountType\x18* \x01(\x0e\x32#.whatsapp.ClientPayload.AccountType\x12\x1e\n\x16\x63onnectionSequenceInfo\x18+ \x01(\x0f\x12\x0f\n\x07paaLink\x18, \x01(\x08\x12\x14\n\x0cpreacksCount\x18- \x01(\x05\x12\x1b\n\x13processingQueueSize\x18. \x01(\x05\x12\x19\n\x11pairedPeripherals\x18/ \x03(\t\x12\x17\n\x0ftestIsolationId\x18\x30 \x01(\x0c\x1a\xf0\x01\n\tDNSSource\x12H\n\tdnsMethod\x18\x0f \x01(\x0e\x32\x35.whatsapp.ClientPayload.DNSSource.DNSResolutionMethod\x12\x11\n\tappCached\x18\x10 \x01(\x08\"\x85\x01\n\x13\x44NSResolutionMethod\x12\n\n\x06SYSTEM\x10\x00\x12\n\n\x06GOOGLE\x10\x01\x12\r\n\tHARDCODED\x10\x02\x12\x0c\n\x08OVERRIDE\x10\x03\x12\x0c\n\x08\x46\x41LLBACK\x10\x04\x12\x07\n\x03MNS\x10\x05\x12\x11\n\rMNS_SECONDARY\x10\x06\x12\x0f\n\x0bSOCKS_PROXY\x10\x07\x1a\xae\x01\n\x1d\x44\x65vicePairingRegistrationData\x12\x0e\n\x06\x65Regid\x18\x01 \x01(\x0c\x12\x10\n\x08\x65Keytype\x18\x02 \x01(\x0c\x12\x0e\n\x06\x65Ident\x18\x03 \x01(\x0c\x12\x0f\n\x07\x65SkeyId\x18\x04 \x01(\x0c\x12\x10\n\x08\x65SkeyVal\x18\x05 \x01(\x0c\x12\x10\n\x08\x65SkeySig\x18\x06 \x01(\x0c\x12\x11\n\tbuildHash\x18\x07 \x01(\x0c\x12\x13\n\x0b\x64\x65viceProps\x18\x08 \x01(\x0c\x1aK\n\x0bInteropData\x12\x11\n\taccountId\x18\x01 \x01(\x04\x12\r\n\x05token\x18\x02 \x01(\x0c\x12\x1a\n\x12\x65nableReadReceipts\x18\x03 \x01(\x08\x1a\xdf\x0b\n\tUserAgent\x12<\n\x08platform\x18\x01 \x01(\x0e\x32*.whatsapp.ClientPayload.UserAgent.Platform\x12@\n\nappVersion\x18\x02 \x01(\x0b\x32,.whatsapp.ClientPayload.UserAgent.AppVersion\x12\x0b\n\x03mcc\x18\x03 \x01(\t\x12\x0b\n\x03mnc\x18\x04 \x01(\t\x12\x11\n\tosVersion\x18\x05 \x01(\t\x12\x14\n\x0cmanufacturer\x18\x06 \x01(\t\x12\x0e\n\x06\x64\x65vice\x18\x07 \x01(\t\x12\x15\n\rosBuildNumber\x18\x08 \x01(\t\x12\x0f\n\x07phoneId\x18\t \x01(\t\x12H\n\x0ereleaseChannel\x18\n \x01(\x0e\x32\x30.whatsapp.ClientPayload.UserAgent.ReleaseChannel\x12\x1d\n\x15localeLanguageIso6391\x18\x0b \x01(\t\x12#\n\x1blocaleCountryIso31661Alpha2\x18\x0c \x01(\t\x12\x13\n\x0b\x64\x65viceBoard\x18\r \x01(\t\x12\x13\n\x0b\x64\x65viceExpId\x18\x0e \x01(\t\x12@\n\ndeviceType\x18\x0f \x01(\x0e\x32,.whatsapp.ClientPayload.UserAgent.DeviceType\x12\x17\n\x0f\x64\x65viceModelType\x18\x10 \x01(\t\x12R\n\x13\x64istributionChannel\x18\x11 \x01(\x0e\x32\x35.whatsapp.ClientPayload.UserAgent.DistributionChannel\x1ag\n\nAppVersion\x12\x0f\n\x07primary\x18\x01 \x01(\r\x12\x11\n\tsecondary\x18\x02 \x01(\r\x12\x10\n\x08tertiary\x18\x03 \x01(\r\x12\x12\n\nquaternary\x18\x04 \x01(\r\x12\x0f\n\x07quinary\x18\x05 \x01(\r\"F\n\nDeviceType\x12\t\n\x05PHONE\x10\x00\x12\n\n\x06TABLET\x10\x01\x12\x0b\n\x07\x44\x45SKTOP\x10\x02\x12\x0c\n\x08WEARABLE\x10\x03\x12\x06\n\x02VR\x10\x04\"N\n\x13\x44istributionChannel\x12\x0c\n\x08\x41PPSTORE\x10\x00\x12\x0b\n\x07WEBSITE\x10\x01\x12\x0e\n\nTESTFLIGHT\x10\x02\x12\x0c\n\x08INTERNAL\x10\x03\"\xaf\x04\n\x08Platform\x12\x0b\n\x07\x41NDROID\x10\x00\x12\x07\n\x03IOS\x10\x01\x12\x11\n\rWINDOWS_PHONE\x10\x02\x12\x0e\n\nBLACKBERRY\x10\x03\x12\x0f\n\x0b\x42LACKBERRYX\x10\x04\x12\x07\n\x03S40\x10\x05\x12\x07\n\x03S60\x10\x06\x12\x11\n\rPYTHON_CLIENT\x10\x07\x12\t\n\x05TIZEN\x10\x08\x12\x0e\n\nENTERPRISE\x10\t\x12\x0f\n\x0bSMB_ANDROID\x10\n\x12\t\n\x05KAIOS\x10\x0b\x12\x0b\n\x07SMB_IOS\x10\x0c\x12\x0b\n\x07WINDOWS\x10\r\x12\x07\n\x03WEB\x10\x0e\x12\n\n\x06PORTAL\x10\x0f\x12\x11\n\rGREEN_ANDROID\x10\x10\x12\x10\n\x0cGREEN_IPHONE\x10\x11\x12\x10\n\x0c\x42LUE_ANDROID\x10\x12\x12\x0f\n\x0b\x42LUE_IPHONE\x10\x13\x12\x12\n\x0e\x46\x42LITE_ANDROID\x10\x14\x12\x11\n\rMLITE_ANDROID\x10\x15\x12\x12\n\x0eIGLITE_ANDROID\x10\x16\x12\x08\n\x04PAGE\x10\x17\x12\t\n\x05MACOS\x10\x18\x12\x0e\n\nOCULUS_MSG\x10\x19\x12\x0f\n\x0bOCULUS_CALL\x10\x1a\x12\t\n\x05MILAN\x10\x1b\x12\x08\n\x04\x43\x41PI\x10\x1c\x12\n\n\x06WEAROS\x10\x1d\x12\x0c\n\x08\x41RDEVICE\x10\x1e\x12\x0c\n\x08VRDEVICE\x10\x1f\x12\x0c\n\x08\x42LUE_WEB\x10 \x12\x08\n\x04IPAD\x10!\x12\x08\n\x04TEST\x10\"\x12\x11\n\rSMART_GLASSES\x10#\x12\x0b\n\x07\x42LUE_VR\x10$\x12\x0c\n\x08\x41R_WRIST\x10%\x12\x08\n\x04WAIL\x10&\"=\n\x0eReleaseChannel\x12\x0b\n\x07RELEASE\x10\x00\x12\x08\n\x04\x42\x45TA\x10\x01\x12\t\n\x05\x41LPHA\x10\x02\x12\t\n\x05\x44\x45\x42UG\x10\x03\x1a\x85\x05\n\x07WebInfo\x12\x10\n\x08refToken\x18\x01 \x01(\t\x12\x0f\n\x07version\x18\x02 \x01(\t\x12@\n\x0bwebdPayload\x18\x03 \x01(\x0b\x32+.whatsapp.ClientPayload.WebInfo.WebdPayload\x12\x46\n\x0ewebSubPlatform\x18\x04 \x01(\x0e\x32..whatsapp.ClientPayload.WebInfo.WebSubPlatform\x12\x0f\n\x07\x62rowser\x18\x05 \x01(\t\x12\x16\n\x0e\x62rowserVersion\x18\x06 \x01(\t\x1a\xbb\x02\n\x0bWebdPayload\x12\x1c\n\x14usesParticipantInKey\x18\x01 \x01(\x08\x12\x1f\n\x17supportsStarredMessages\x18\x02 \x01(\x08\x12 \n\x18supportsDocumentMessages\x18\x03 \x01(\x08\x12\x1b\n\x13supportsUrlMessages\x18\x04 \x01(\x08\x12\x1a\n\x12supportsMediaRetry\x18\x05 \x01(\x08\x12\x18\n\x10supportsE2EImage\x18\x06 \x01(\x08\x12\x18\n\x10supportsE2EVideo\x18\x07 \x01(\x08\x12\x18\n\x10supportsE2EAudio\x18\x08 \x01(\x08\x12\x1b\n\x13supportsE2EDocument\x18\t \x01(\x08\x12\x15\n\rdocumentTypes\x18\n \x01(\t\x12\x10\n\x08\x66\x65\x61tures\x18\x0b \x01(\x0c\"f\n\x0eWebSubPlatform\x12\x0f\n\x0bWEB_BROWSER\x10\x00\x12\r\n\tAPP_STORE\x10\x01\x12\r\n\tWIN_STORE\x10\x02\x12\n\n\x06\x44\x41RWIN\x10\x03\x12\t\n\x05WIN32\x10\x04\x12\x0e\n\nWIN_HYBRID\x10\x05\"%\n\x0b\x41\x63\x63ountType\x12\x0b\n\x07\x44\x45\x46\x41ULT\x10\x00\x12\t\n\x05GUEST\x10\x01\"\x86\x01\n\rConnectReason\x12\x08\n\x04PUSH\x10\x00\x12\x12\n\x0eUSER_ACTIVATED\x10\x01\x12\r\n\tSCHEDULED\x10\x02\x12\x13\n\x0f\x45RROR_RECONNECT\x10\x03\x12\x12\n\x0eNETWORK_SWITCH\x10\x04\x12\x12\n\x0ePING_RECONNECT\x10\x05\x12\x0b\n\x07UNKNOWN\x10\x06\"\xb0\x02\n\x0b\x43onnectType\x12\x14\n\x10\x43\x45LLULAR_UNKNOWN\x10\x00\x12\x10\n\x0cWIFI_UNKNOWN\x10\x01\x12\x11\n\rCELLULAR_EDGE\x10\x64\x12\x11\n\rCELLULAR_IDEN\x10\x65\x12\x11\n\rCELLULAR_UMTS\x10\x66\x12\x11\n\rCELLULAR_EVDO\x10g\x12\x11\n\rCELLULAR_GPRS\x10h\x12\x12\n\x0e\x43\x45LLULAR_HSDPA\x10i\x12\x12\n\x0e\x43\x45LLULAR_HSUPA\x10j\x12\x11\n\rCELLULAR_HSPA\x10k\x12\x11\n\rCELLULAR_CDMA\x10l\x12\x12\n\x0e\x43\x45LLULAR_1XRTT\x10m\x12\x12\n\x0e\x43\x45LLULAR_EHRPD\x10n\x12\x10\n\x0c\x43\x45LLULAR_LTE\x10o\x12\x12\n\x0e\x43\x45LLULAR_HSPAP\x10p\"T\n\x0fIOSAppExtension\x12\x13\n\x0fSHARE_EXTENSION\x10\x00\x12\x15\n\x11SERVICE_EXTENSION\x10\x01\x12\x15\n\x11INTENTS_EXTENSION\x10\x02\"W\n\x07Product\x12\x0c\n\x08WHATSAPP\x10\x00\x12\r\n\tMESSENGER\x10\x01\x12\x0b\n\x07INTEROP\x10\x02\x12\x10\n\x0cINTEROP_MSGR\x10\x03\x12\x10\n\x0cWHATSAPP_LID\x10\x04\"-\n\x14TrafficAnonymization\x12\x07\n\x03OFF\x10\x00\x12\x0c\n\x08STANDARD\x10\x01\"\xe1\x02\n\rCoexStateSync\x12H\n\x13\x63ollectionMutations\x18\x01 \x03(\x0b\x32+.whatsapp.CoexStateSync.CollectionMutations\x1a^\n\x13\x43ollectionMutations\x12\x12\n\ncollection\x18\x01 \x01(\t\x12\x33\n\tmutations\x18\x02 \x03(\x0b\x32 .whatsapp.CoexStateSync.Mutation\x1a\xa5\x01\n\x08Mutation\x12#\n\x05index\x18\x01 \x01(\x0b\x32\x14.whatsapp.SyncdIndex\x12#\n\x05value\x18\x02 \x01(\x0b\x32\x14.whatsapp.SyncdValue\x12\x14\n\x0c\x64irtyVersion\x18\x03 \x01(\x04\x12\x39\n\toperation\x18\x04 \x01(\x0e\x32&.whatsapp.SyncdMutation.SyncdOperation\"\x91\x01\n\x13\x43ombinedFingerprint\x12\x0f\n\x07version\x18\x01 \x01(\r\x12\x33\n\x10localFingerprint\x18\x02 \x01(\x0b\x32\x19.whatsapp.FingerprintData\x12\x34\n\x11remoteFingerprint\x18\x03 \x01(\x0b\x32\x19.whatsapp.FingerprintData\"w\n\x07\x43ommand\x12\x33\n\x0b\x63ommandType\x18\x01 \x01(\x0e\x32\x1e.whatsapp.COMMAND_COMMAND_TYPE\x12\x0e\n\x06offset\x18\x02 \x01(\r\x12\x0e\n\x06length\x18\x03 \x01(\r\x12\x17\n\x0fvalidationToken\x18\x04 \x01(\t\"U\n\x0f\x43ommentMetadata\x12.\n\x10\x63ommentParentKey\x18\x01 \x01(\x0b\x32\x14.whatsapp.MessageKey\x12\x12\n\nreplyCount\x18\x02 \x01(\r\"#\n\x13\x43ompanionCommitment\x12\x0c\n\x04hash\x18\x01 \x01(\x0c\"t\n\x1a\x43ompanionEphemeralIdentity\x12\x11\n\tpublicKey\x18\x01 \x01(\x0c\x12\x36\n\ndeviceType\x18\x02 \x01(\x0e\x32\".whatsapp.DeviceProps.PlatformType\x12\x0b\n\x03ref\x18\x03 \x01(\t\"\x84\x01\n\x06\x43onfig\x12*\n\x05\x66ield\x18\x01 \x03(\x0b\x32\x1b.whatsapp.Config.FieldEntry\x12\x0f\n\x07version\x18\x02 \x01(\r\x1a=\n\nFieldEntry\x12\x0b\n\x03key\x18\x01 \x01(\r\x12\x1e\n\x05value\x18\x02 \x01(\x0b\x32\x0f.whatsapp.Field:\x02\x38\x01\"\xee\'\n\x13\x43onsumerApplication\x12\x36\n\x07payload\x18\x01 \x01(\x0b\x32%.whatsapp.ConsumerApplication.Payload\x12\x38\n\x08metadata\x18\x02 \x01(\x0b\x32&.whatsapp.ConsumerApplication.Metadata\x1a\x66\n\x0f\x41pplicationData\x12=\n\x06revoke\x18\x01 \x01(\x0b\x32+.whatsapp.ConsumerApplication.RevokeMessageH\x00\x42\x14\n\x12\x61pplicationContent\x1a\x41\n\x0c\x41udioMessage\x12$\n\x05\x61udio\x18\x01 \x01(\x0b\x32\x15.whatsapp.SubProtocol\x12\x0b\n\x03ptt\x18\x02 \x01(\x08\x1a\x38\n\x0e\x43ontactMessage\x12&\n\x07\x63ontact\x18\x01 \x01(\x0b\x32\x15.whatsapp.SubProtocol\x1ak\n\x14\x43ontactsArrayMessage\x12\x13\n\x0b\x64isplayName\x18\x01 \x01(\t\x12>\n\x08\x63ontacts\x18\x02 \x03(\x0b\x32,.whatsapp.ConsumerApplication.ContactMessage\x1a\xbd\n\n\x07\x43ontent\x12,\n\x0bmessageText\x18\x01 \x01(\x0b\x32\x15.whatsapp.MessageTextH\x00\x12\x42\n\x0cimageMessage\x18\x02 \x01(\x0b\x32*.whatsapp.ConsumerApplication.ImageMessageH\x00\x12\x46\n\x0e\x63ontactMessage\x18\x03 \x01(\x0b\x32,.whatsapp.ConsumerApplication.ContactMessageH\x00\x12H\n\x0flocationMessage\x18\x04 \x01(\x0b\x32-.whatsapp.ConsumerApplication.LocationMessageH\x00\x12P\n\x13\x65xtendedTextMessage\x18\x05 \x01(\x0b\x32\x31.whatsapp.ConsumerApplication.ExtendedTextMessageH\x00\x12K\n\x11statusTextMessage\x18\x06 \x01(\x0b\x32..whatsapp.ConsumerApplication.StatusTextMesageH\x00\x12H\n\x0f\x64ocumentMessage\x18\x07 \x01(\x0b\x32-.whatsapp.ConsumerApplication.DocumentMessageH\x00\x12\x42\n\x0c\x61udioMessage\x18\x08 \x01(\x0b\x32*.whatsapp.ConsumerApplication.AudioMessageH\x00\x12\x42\n\x0cvideoMessage\x18\t \x01(\x0b\x32*.whatsapp.ConsumerApplication.VideoMessageH\x00\x12R\n\x14\x63ontactsArrayMessage\x18\n \x01(\x0b\x32\x32.whatsapp.ConsumerApplication.ContactsArrayMessageH\x00\x12P\n\x13liveLocationMessage\x18\x0b \x01(\x0b\x32\x31.whatsapp.ConsumerApplication.LiveLocationMessageH\x00\x12\x46\n\x0estickerMessage\x18\x0c \x01(\x0b\x32,.whatsapp.ConsumerApplication.StickerMessageH\x00\x12N\n\x12groupInviteMessage\x18\r \x01(\x0b\x32\x30.whatsapp.ConsumerApplication.GroupInviteMessageH\x00\x12H\n\x0fviewOnceMessage\x18\x0e \x01(\x0b\x32-.whatsapp.ConsumerApplication.ViewOnceMessageH\x00\x12H\n\x0freactionMessage\x18\x10 \x01(\x0b\x32-.whatsapp.ConsumerApplication.ReactionMessageH\x00\x12P\n\x13pollCreationMessage\x18\x11 \x01(\x0b\x32\x31.whatsapp.ConsumerApplication.PollCreationMessageH\x00\x12L\n\x11pollUpdateMessage\x18\x12 \x01(\x0b\x32/.whatsapp.ConsumerApplication.PollUpdateMessageH\x00\x12@\n\x0b\x65\x64itMessage\x18\x13 \x01(\x0b\x32).whatsapp.ConsumerApplication.EditMessageH\x00\x42\t\n\x07\x63ontent\x1aL\n\x0f\x44ocumentMessage\x12\'\n\x08\x64ocument\x18\x01 \x01(\x0b\x32\x15.whatsapp.SubProtocol\x12\x10\n\x08\x66ileName\x18\x02 \x01(\t\x1am\n\x0b\x45\x64itMessage\x12!\n\x03key\x18\x01 \x01(\x0b\x32\x14.whatsapp.MessageKey\x12&\n\x07message\x18\x02 \x01(\x0b\x32\x15.whatsapp.MessageText\x12\x13\n\x0btimestampMs\x18\x03 \x01(\x03\x1a\x9f\x02\n\x13\x45xtendedTextMessage\x12#\n\x04text\x18\x01 \x01(\x0b\x32\x15.whatsapp.MessageText\x12\x13\n\x0bmatchedText\x18\x02 \x01(\t\x12\x14\n\x0c\x63\x61nonicalUrl\x18\x03 \x01(\t\x12\x13\n\x0b\x64\x65scription\x18\x04 \x01(\t\x12\r\n\x05title\x18\x05 \x01(\t\x12(\n\tthumbnail\x18\x06 \x01(\x0b\x32\x15.whatsapp.SubProtocol\x12j\n\x0bpreviewType\x18\x07 \x01(\x0e\x32U.whatsapp.ConsumerApplication.CONSUMER_APPLICATION_EXTENDED_TEXT_MESSAGE_PREVIEW_TYPE\x1a\xa6\x01\n\x12GroupInviteMessage\x12\x10\n\x08groupJid\x18\x01 \x01(\t\x12\x12\n\ninviteCode\x18\x02 \x01(\t\x12\x18\n\x10inviteExpiration\x18\x03 \x01(\x03\x12\x11\n\tgroupName\x18\x04 \x01(\t\x12\x15\n\rjpegThumbnail\x18\x05 \x01(\x0c\x12&\n\x07\x63\x61ption\x18\x06 \x01(\x0b\x32\x15.whatsapp.MessageText\x1a\\\n\x0cImageMessage\x12$\n\x05image\x18\x01 \x01(\x0b\x32\x15.whatsapp.SubProtocol\x12&\n\x07\x63\x61ption\x18\x02 \x01(\x0b\x32\x15.whatsapp.MessageText\x1a\x9b\x01\n\x15InteractiveAnnotation\x12<\n\x0fpolygonVertices\x18\x01 \x03(\x0b\x32#.whatsapp.ConsumerApplication.Point\x12:\n\x08location\x18\x02 \x01(\x0b\x32&.whatsapp.ConsumerApplication.LocationH\x00\x42\x08\n\x06\x61\x63tion\x1a\xfc\x01\n\x13LiveLocationMessage\x12\x38\n\x08location\x18\x01 \x01(\x0b\x32&.whatsapp.ConsumerApplication.Location\x12\x18\n\x10\x61\x63\x63uracyInMeters\x18\x02 \x01(\r\x12\x12\n\nspeedInMps\x18\x03 \x01(\x02\x12)\n!degreesClockwiseFromMagneticNorth\x18\x04 \x01(\r\x12&\n\x07\x63\x61ption\x18\x05 \x01(\x0b\x32\x15.whatsapp.MessageText\x12\x16\n\x0esequenceNumber\x18\x06 \x01(\x03\x12\x12\n\ntimeOffset\x18\x07 \x01(\r\x1aK\n\x08Location\x12\x17\n\x0f\x64\x65greesLatitude\x18\x01 \x01(\x01\x12\x18\n\x10\x64\x65greesLongitude\x18\x02 \x01(\x01\x12\x0c\n\x04name\x18\x03 \x01(\t\x1a\\\n\x0fLocationMessage\x12\x38\n\x08location\x18\x01 \x01(\x0b\x32&.whatsapp.ConsumerApplication.Location\x12\x0f\n\x07\x61\x64\x64ress\x18\x02 \x01(\t\x1a\x37\n\x0cMediaPayload\x12\'\n\x08protocol\x18\x01 \x01(\x0b\x32\x15.whatsapp.SubProtocol\x1a^\n\x08Metadata\x12R\n\x0fspecialTextSize\x18\x01 \x01(\x0e\x32\x39.whatsapp.CONSUMER_APPLICATION_METADATA_SPECIAL_TEXT_SIZE\x1a\x1c\n\x06Option\x12\x12\n\noptionName\x18\x01 \x01(\t\x1a\x99\x02\n\x07Payload\x12\x38\n\x07\x63ontent\x18\x01 \x01(\x0b\x32%.whatsapp.ConsumerApplication.ContentH\x00\x12H\n\x0f\x61pplicationData\x18\x02 \x01(\x0b\x32-.whatsapp.ConsumerApplication.ApplicationDataH\x00\x12\x36\n\x06signal\x18\x03 \x01(\x0b\x32$.whatsapp.ConsumerApplication.SignalH\x00\x12G\n\x0bsubProtocol\x18\x04 \x01(\x0b\x32\x30.whatsapp.ConsumerApplication.SubProtocolPayloadH\x00\x42\t\n\x07payload\x1a\x1d\n\x05Point\x12\t\n\x01x\x18\x01 \x01(\x01\x12\t\n\x01y\x18\x02 \x01(\x01\x1aP\n\x14PollAddOptionMessage\x12\x38\n\npollOption\x18\x01 \x03(\x0b\x32$.whatsapp.ConsumerApplication.Option\x1a\x8a\x01\n\x13PollCreationMessage\x12\x0e\n\x06\x65ncKey\x18\x01 \x01(\x0c\x12\x0c\n\x04name\x18\x02 \x01(\t\x12\x35\n\x07options\x18\x03 \x03(\x0b\x32$.whatsapp.ConsumerApplication.Option\x12\x1e\n\x16selectableOptionsCount\x18\x04 \x01(\r\x1a\x31\n\x0cPollEncValue\x12\x12\n\nencPayload\x18\x01 \x01(\x0c\x12\r\n\x05\x65ncIv\x18\x02 \x01(\x0c\x1a\xc2\x01\n\x11PollUpdateMessage\x12\x34\n\x16pollCreationMessageKey\x18\x01 \x01(\x0b\x32\x14.whatsapp.MessageKey\x12\x38\n\x04vote\x18\x02 \x01(\x0b\x32*.whatsapp.ConsumerApplication.PollEncValue\x12=\n\taddOption\x18\x03 \x01(\x0b\x32*.whatsapp.ConsumerApplication.PollEncValue\x1a\x45\n\x0fPollVoteMessage\x12\x17\n\x0fselectedOptions\x18\x01 \x03(\x0c\x12\x19\n\x11senderTimestampMs\x18\x02 \x01(\x03\x1a\xa8\x01\n\x0fReactionMessage\x12!\n\x03key\x18\x01 \x01(\x0b\x32\x14.whatsapp.MessageKey\x12\x0c\n\x04text\x18\x02 \x01(\t\x12\x13\n\x0bgroupingKey\x18\x03 \x01(\t\x12\x19\n\x11senderTimestampMs\x18\x04 \x01(\x03\x12%\n\x1dreactionMetadataDataclassData\x18\x05 \x01(\t\x12\r\n\x05style\x18\x06 \x01(\x05\x1a\x32\n\rRevokeMessage\x12!\n\x03key\x18\x01 \x01(\x0b\x32\x14.whatsapp.MessageKey\x1a\x08\n\x06Signal\x1a\xc8\x01\n\x10StatusTextMesage\x12?\n\x04text\x18\x01 \x01(\x0b\x32\x31.whatsapp.ConsumerApplication.ExtendedTextMessage\x12\x10\n\x08textArgb\x18\x06 \x01(\x07\x12\x16\n\x0e\x62\x61\x63kgroundArgb\x18\x07 \x01(\x07\x12I\n\x04\x66ont\x18\x08 \x01(\x0e\x32;.whatsapp.CONSUMER_APPLICATION_STATUS_TEXT_MESAGE_FONT_TYPE\x1a\x38\n\x0eStickerMessage\x12&\n\x07sticker\x18\x01 \x01(\x0b\x32\x15.whatsapp.SubProtocol\x1aJ\n\x12SubProtocolPayload\x12\x34\n\x0b\x66utureProof\x18\x01 \x01(\x0e\x32\x1f.whatsapp.FUTURE_PROOF_BEHAVIOR\x1a\\\n\x0cVideoMessage\x12$\n\x05video\x18\x01 \x01(\x0b\x32\x15.whatsapp.SubProtocol\x12&\n\x07\x63\x61ption\x18\x02 \x01(\x0b\x32\x15.whatsapp.MessageText\x1a\xac\x01\n\x0fViewOnceMessage\x12\x42\n\x0cimageMessage\x18\x01 \x01(\x0b\x32*.whatsapp.ConsumerApplication.ImageMessageH\x00\x12\x42\n\x0cvideoMessage\x18\x02 \x01(\x0b\x32*.whatsapp.ConsumerApplication.VideoMessageH\x00\x42\x11\n\x0fviewOnceContent\"N\n7CONSUMER_APPLICATION_EXTENDED_TEXT_MESSAGE_PREVIEW_TYPE\x12\x08\n\x04NONE\x10\x00\x12\t\n\x05VIDEO\x10\x01\"\xa8\x38\n\x0b\x43ontextInfo\x12\x10\n\x08stanzaId\x18\x01 \x01(\t\x12\x13\n\x0bparticipant\x18\x02 \x01(\t\x12(\n\rquotedMessage\x18\x03 \x01(\x0b\x32\x11.whatsapp.Message\x12\x11\n\tremoteJid\x18\x04 \x01(\t\x12\x14\n\x0cmentionedJid\x18\x0f \x03(\t\x12\x18\n\x10\x63onversionSource\x18\x12 \x01(\t\x12\x16\n\x0e\x63onversionData\x18\x13 \x01(\x0c\x12\x1e\n\x16\x63onversionDelaySeconds\x18\x14 \x01(\r\x12\x17\n\x0f\x66orwardingScore\x18\x15 \x01(\r\x12\x13\n\x0bisForwarded\x18\x16 \x01(\x08\x12\x33\n\x08quotedAd\x18\x17 \x01(\x0b\x32!.whatsapp.ContextInfo.AdReplyInfo\x12,\n\x0eplaceholderKey\x18\x18 \x01(\x0b\x32\x14.whatsapp.MessageKey\x12\x12\n\nexpiration\x18\x19 \x01(\r\x12!\n\x19\x65phemeralSettingTimestamp\x18\x1a \x01(\x03\x12\x1d\n\x15\x65phemeralSharedSecret\x18\x1b \x01(\x0c\x12\x42\n\x0f\x65xternalAdReply\x18\x1c \x01(\x0b\x32).whatsapp.ContextInfo.ExternalAdReplyInfo\x12\"\n\x1a\x65ntryPointConversionSource\x18\x1d \x01(\t\x12\x1f\n\x17\x65ntryPointConversionApp\x18\x1e \x01(\t\x12(\n entryPointConversionDelaySeconds\x18\x1f \x01(\r\x12\x34\n\x10\x64isappearingMode\x18 \x01(\x0b\x32\x1a.whatsapp.DisappearingMode\x12(\n\nactionLink\x18! \x01(\x0b\x32\x14.whatsapp.ActionLink\x12\x14\n\x0cgroupSubject\x18\" \x01(\t\x12\x16\n\x0eparentGroupJid\x18# \x01(\t\x12\x17\n\x0ftrustBannerType\x18% \x01(\t\x12\x19\n\x11trustBannerAction\x18& \x01(\r\x12\x11\n\tisSampled\x18\' \x01(\x08\x12-\n\rgroupMentions\x18( \x03(\x0b\x32\x16.whatsapp.GroupMention\x12*\n\x03utm\x18) \x01(\x0b\x32\x1d.whatsapp.ContextInfo.UTMInfo\x12\\\n\x1e\x66orwardedNewsletterMessageInfo\x18+ \x01(\x0b\x32\x34.whatsapp.ContextInfo.ForwardedNewsletterMessageInfo\x12T\n\x1a\x62usinessMessageForwardInfo\x18, \x01(\x0b\x32\x30.whatsapp.ContextInfo.BusinessMessageForwardInfo\x12\x1b\n\x13smbClientCampaignId\x18- \x01(\t\x12\x1b\n\x13smbServerCampaignId\x18. \x01(\t\x12\x44\n\x12\x64\x61taSharingContext\x18/ \x01(\x0b\x32(.whatsapp.ContextInfo.DataSharingContext\x12\x1f\n\x17\x61lwaysShowAdAttribution\x18\x30 \x01(\x08\x12H\n\x14\x66\x65\x61tureEligibilities\x18\x31 \x01(\x0b\x32*.whatsapp.ContextInfo.FeatureEligibilities\x12*\n\"entryPointConversionExternalSource\x18\x32 \x01(\t\x12*\n\"entryPointConversionExternalMedium\x18\x33 \x01(\t\x12\x13\n\x0b\x63twaSignals\x18\x36 \x01(\t\x12\x13\n\x0b\x63twaPayload\x18\x37 \x01(\x0c\x12\x46\n\x19\x66orwardedAiBotMessageInfo\x18\x38 \x01(\x0b\x32#.whatsapp.ForwardedAIBotMessageInfo\x12J\n\x15statusAttributionType\x18\x39 \x01(\x0e\x32+.whatsapp.ContextInfo.StatusAttributionType\x12\x30\n\x0eurlTrackingMap\x18: \x01(\x0b\x32\x18.whatsapp.UrlTrackingMap\x12>\n\x0fpairedMediaType\x18; \x01(\x0e\x32%.whatsapp.ContextInfo.PairedMediaType\x12\x16\n\x0erankingVersion\x18< \x01(\r\x12*\n\x0bmemberLabel\x18> \x01(\x0b\x32\x15.whatsapp.MemberLabel\x12\x12\n\nisQuestion\x18? \x01(\x08\x12@\n\x10statusSourceType\x18@ \x01(\x0e\x32&.whatsapp.ContextInfo.StatusSourceType\x12\x37\n\x12statusAttributions\x18\x41 \x03(\x0b\x32\x1b.whatsapp.StatusAttribution\x12\x15\n\risGroupStatus\x18\x42 \x01(\x08\x12:\n\rforwardOrigin\x18\x43 \x01(\x0e\x32#.whatsapp.ContextInfo.ForwardOrigin\x12T\n\x1aquestionReplyQuotedMessage\x18\x44 \x01(\x0b\x32\x30.whatsapp.ContextInfo.QuestionReplyQuotedMessage\x12L\n\x16statusAudienceMetadata\x18\x45 \x01(\x0b\x32,.whatsapp.ContextInfo.StatusAudienceMetadata\x12\x16\n\x0enonJidMentions\x18\x46 \x01(\r\x12\x34\n\nquotedType\x18G \x01(\x0e\x32 .whatsapp.ContextInfo.QuotedType\x12>\n\x15\x62otMessageSharingInfo\x18H \x01(\x0b\x32\x1f.whatsapp.BotMessageSharingInfo\x12\x11\n\tisSpoiler\x18I \x01(\x08\x12\x32\n\x0fmediaDomainInfo\x18J \x01(\x0b\x32\x19.whatsapp.MediaDomainInfo\x12P\n\x18partiallySelectedContent\x18K \x01(\x0b\x32..whatsapp.ContextInfo.PartiallySelectedContent\x12\x19\n\x11\x61\x66terReadDuration\x18L \x01(\r\x12<\n\x0e\x63rossAppSource\x18M \x01(\x0e\x32$.whatsapp.ContextInfo.CrossAppSource\x12P\n\x18\x62usinessInteractionPills\x18N \x01(\x0b\x32..whatsapp.ContextInfo.BusinessInteractionPills\x12\x16\n\x0eposterStatusId\x18O \x01(\t\x12\x46\n\x13instagramThreadLink\x18P \x01(\x0b\x32).whatsapp.ContextInfo.InstagramThreadLink\x12,\n\x0c\x61iProvenance\x18Q \x01(\x0b\x32\x16.whatsapp.AIProvenance\x1a\xba\x01\n\x0b\x41\x64ReplyInfo\x12\x16\n\x0e\x61\x64vertiserName\x18\x01 \x01(\t\x12>\n\tmediaType\x18\x02 \x01(\x0e\x32+.whatsapp.ContextInfo.AdReplyInfo.MediaType\x12\x15\n\rjpegThumbnail\x18\x10 \x01(\x0c\x12\x0f\n\x07\x63\x61ption\x18\x11 \x01(\t\"+\n\tMediaType\x12\x08\n\x04NONE\x10\x00\x12\t\n\x05IMAGE\x10\x01\x12\t\n\x05VIDEO\x10\x02\x1a\xc0\x08\n\x18\x42usinessInteractionPills\x12\x13\n\x0b\x62usinessJid\x18\x01 \x01(\t\x12\x42\n\x05pills\x18\x02 \x03(\x0b\x32\x33.whatsapp.ContextInfo.BusinessInteractionPills.Pill\x12M\n\nentryPoint\x18\x03 \x01(\x0e\x32\x39.whatsapp.ContextInfo.BusinessInteractionPills.EntryPoint\x12\x15\n\rsignedPayload\x18\x04 \x01(\x0c\x12\x45\n\x11signatureEnvelope\x18\x05 \x01(\x0b\x32*.whatsapp.BotSignatureVerificationMetadata\x12w\n\x1funauthenticatedBusinessMetadata\x18\x06 \x01(\x0b\x32N.whatsapp.ContextInfo.BusinessInteractionPills.UnauthenticatedBusinessMetadata\x1a\x64\n\x04Pill\x12I\n\x08pillType\x18\x01 \x01(\x0e\x32\x37.whatsapp.ContextInfo.BusinessInteractionPills.PillType\x12\x11\n\tactionUrl\x18\x02 \x01(\t\x1ai\n\rSignedPayload\x12\x14\n\x0cverifiedName\x18\x01 \x01(\t\x12\x42\n\x05pills\x18\x02 \x03(\x0b\x32\x33.whatsapp.ContextInfo.BusinessInteractionPills.Pill\x1a\x8b\x01\n\x1fUnauthenticatedBusinessMetadata\x12\x14\n\x0c\x62usinessName\x18\x01 \x01(\t\x12\x18\n\x10\x62usinessCategory\x18\x02 \x01(\t\x12\x16\n\x0e\x62usinessIsOpen\x18\x03 \x01(\x08\x12 \n\x18\x62usinessIsOpenSnapshotMs\x18\x04 \x01(\x03\"\x8d\x01\n\nEntryPoint\x12\x17\n\x13\x45NTRY_POINT_UNKNOWN\x10\x00\x12\x12\n\x0eP2P_LINK_SHARE\x10\x01\x12\x18\n\x14\x43ONTACT_CARD_SHARING\x10\x02\x12\x10\n\x0cPHONE_NUMBER\x10\x03\x12\n\n\x06STATUS\x10\x04\x12\x1a\n\x16IN_THREAD_CONTEXT_CARD\x10\x05\"\xb5\x01\n\x08PillType\x12\x0b\n\x07UNKNOWN\x10\x00\x12\x11\n\rVIEW_BUSINESS\x10\x01\x12\x08\n\x04\x43HAT\x10\x02\x12\x08\n\x04\x43\x41LL\x10\x03\x12\x0b\n\x07\x43\x41TALOG\x10\x04\x12\x0b\n\x07\x43HANNEL\x10\x05\x12\x14\n\x10\x42OOK_APPOINTMENT\x10\x06\x12\n\n\x06OFFERS\x10\x07\x12\x0f\n\x0b\x42\x45STSELLERS\x10\x08\x12\x08\n\x04MENU\x10\t\x12\t\n\x05\x41\x42OUT\x10\n\x12\x08\n\x04SHOP\x10\x0b\x12\t\n\x05ORDER\x10\x0c\x1a\x36\n\x1a\x42usinessMessageForwardInfo\x12\x18\n\x10\x62usinessOwnerJid\x18\x01 \x01(\t\x1a\xa8\x03\n\x12\x44\x61taSharingContext\x12\x18\n\x10showMmDisclosure\x18\x01 \x01(\x08\x12%\n\x1d\x65ncryptedSignalTokenConsented\x18\x02 \x01(\t\x12G\n\nparameters\x18\x03 \x03(\x0b\x32\x33.whatsapp.ContextInfo.DataSharingContext.Parameters\x12\x18\n\x10\x64\x61taSharingFlags\x18\x04 \x01(\x05\x1a\x98\x01\n\nParameters\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\x12\n\nstringData\x18\x02 \x01(\t\x12\x0f\n\x07intData\x18\x03 \x01(\x03\x12\x11\n\tfloatData\x18\x04 \x01(\x02\x12\x45\n\x08\x63ontents\x18\x05 \x01(\x0b\x32\x33.whatsapp.ContextInfo.DataSharingContext.Parameters\"S\n\x10\x44\x61taSharingFlags\x12\x1f\n\x1bSHOW_MM_DISCLOSURE_ON_CLICK\x10\x01\x12\x1e\n\x1aSHOW_MM_DISCLOSURE_ON_READ\x10\x02\x1a\xd6\x07\n\x13\x45xternalAdReplyInfo\x12\r\n\x05title\x18\x01 \x01(\t\x12\x0c\n\x04\x62ody\x18\x02 \x01(\t\x12\x46\n\tmediaType\x18\x03 \x01(\x0e\x32\x33.whatsapp.ContextInfo.ExternalAdReplyInfo.MediaType\x12\x14\n\x0cthumbnailUrl\x18\x04 \x01(\t\x12\x10\n\x08mediaUrl\x18\x05 \x01(\t\x12\x11\n\tthumbnail\x18\x06 \x01(\x0c\x12\x12\n\nsourceType\x18\x07 \x01(\t\x12\x10\n\x08sourceId\x18\x08 \x01(\t\x12\x11\n\tsourceUrl\x18\t \x01(\t\x12\x19\n\x11\x63ontainsAutoReply\x18\n \x01(\x08\x12\x1d\n\x15renderLargerThumbnail\x18\x0b \x01(\x08\x12\x19\n\x11showAdAttribution\x18\x0c \x01(\x08\x12\x10\n\x08\x63twaClid\x18\r \x01(\t\x12\x0b\n\x03ref\x18\x0e \x01(\t\x12\x1b\n\x13\x63lickToWhatsappCall\x18\x0f \x01(\x08\x12!\n\x19\x61\x64\x43ontextPreviewDismissed\x18\x10 \x01(\x08\x12\x11\n\tsourceApp\x18\x11 \x01(\t\x12%\n\x1d\x61utomatedGreetingMessageShown\x18\x12 \x01(\x08\x12\x1b\n\x13greetingMessageBody\x18\x13 \x01(\t\x12\x12\n\nctaPayload\x18\x14 \x01(\t\x12\x14\n\x0c\x64isableNudge\x18\x15 \x01(\x08\x12\x18\n\x10originalImageUrl\x18\x16 \x01(\t\x12\'\n\x1f\x61utomatedGreetingMessageCtaType\x18\x17 \x01(\t\x12\x14\n\x0cwtwaAdFormat\x18\x18 \x01(\x08\x12@\n\x06\x61\x64Type\x18\x19 \x01(\x0e\x32\x30.whatsapp.ContextInfo.ExternalAdReplyInfo.AdType\x12\x16\n\x0ewtwaWebsiteUrl\x18\x1a \x01(\t\x12\x14\n\x0c\x61\x64PreviewUrl\x18\x1b \x01(\t\x12\"\n\x1a\x63ontainsCtwaFlowsAutoReply\x18\x1c \x01(\x08\x12\x1c\n\x14\x61gmThumbnailStrategy\x18\x1d \x01(\x05\x12\x18\n\x10\x61gmTitleStrategy\x18\x1e \x01(\x05\x12\x1b\n\x13\x61gmSubtitleStrategy\x18\x1f \x01(\x05\x12$\n\x1c\x61gmHeaderInteractionStrategy\x18 \x01(\x05\"\x1c\n\x06\x41\x64Type\x12\x08\n\x04\x43TWA\x10\x00\x12\x08\n\x04\x43\x41WC\x10\x01\"+\n\tMediaType\x12\x08\n\x04NONE\x10\x00\x12\t\n\x05IMAGE\x10\x01\x12\t\n\x05VIDEO\x10\x02\x1a\xbd\x01\n\x14\x46\x65\x61tureEligibilities\x12 \n\x11\x63\x61nnotBeReactedTo\x18\x01 \x01(\x08:\x05\x66\x61lse\x12\x1d\n\x0e\x63\x61nnotBeRanked\x18\x02 \x01(\x08:\x05\x66\x61lse\x12!\n\x12\x63\x61nRequestFeedback\x18\x03 \x01(\x08:\x05\x66\x61lse\x12\x1c\n\rcanBeReshared\x18\x04 \x01(\x08:\x05\x66\x61lse\x12#\n\x14\x63\x61nReceiveMultiReact\x18\x05 \x01(\x08:\x05\x66\x61lse\x1a\xaa\x02\n\x1e\x46orwardedNewsletterMessageInfo\x12\x15\n\rnewsletterJid\x18\x01 \x01(\t\x12\x17\n\x0fserverMessageId\x18\x02 \x01(\x05\x12\x16\n\x0enewsletterName\x18\x03 \x01(\t\x12U\n\x0b\x63ontentType\x18\x04 \x01(\x0e\x32@.whatsapp.ContextInfo.ForwardedNewsletterMessageInfo.ContentType\x12\x19\n\x11\x61\x63\x63\x65ssibilityText\x18\x05 \x01(\t\x12\x13\n\x0bprofileName\x18\x06 \x01(\t\"9\n\x0b\x43ontentType\x12\n\n\x06UPDATE\x10\x01\x12\x0f\n\x0bUPDATE_CARD\x10\x02\x12\r\n\tLINK_CARD\x10\x03\x1a\"\n\x13InstagramThreadLink\x12\x0b\n\x03url\x18\x01 \x01(\t\x1a(\n\x18PartiallySelectedContent\x12\x0c\n\x04text\x18\x01 \x01(\t\x1a\x8c\x01\n\x1aQuestionReplyQuotedMessage\x12\x18\n\x10serverQuestionId\x18\x01 \x01(\x05\x12)\n\x0equotedQuestion\x18\x02 \x01(\x0b\x32\x11.whatsapp.Message\x12)\n\x0equotedResponse\x18\x03 \x01(\x0b\x32\x11.whatsapp.Message\x1a\xbe\x01\n\x16StatusAudienceMetadata\x12O\n\x0c\x61udienceType\x18\x01 \x01(\x0e\x32\x39.whatsapp.ContextInfo.StatusAudienceMetadata.AudienceType\x12\x10\n\x08listName\x18\x02 \x01(\t\x12\x11\n\tlistEmoji\x18\x03 \x01(\t\".\n\x0c\x41udienceType\x12\x0b\n\x07UNKNOWN\x10\x00\x12\x11\n\rCLOSE_FRIENDS\x10\x01\x1a\x31\n\x07UTMInfo\x12\x11\n\tutmSource\x18\x01 \x01(\t\x12\x13\n\x0butmCampaign\x18\x02 \x01(\t\"m\n\x0e\x43rossAppSource\x12\x1c\n\x18\x43ROSS_APP_SOURCE_UNKNOWN\x10\x00\x12\x1e\n\x1a\x43ROSS_APP_SOURCE_INSTAGRAM\x10\x01\x12\x1d\n\x19\x43ROSS_APP_SOURCE_FACEBOOK\x10\x02\"V\n\rForwardOrigin\x12\x0b\n\x07UNKNOWN\x10\x00\x12\x08\n\x04\x43HAT\x10\x01\x12\n\n\x06STATUS\x10\x02\x12\x0c\n\x08\x43HANNELS\x10\x03\x12\x0b\n\x07META_AI\x10\x04\x12\x07\n\x03UGC\x10\x05\"\xd7\x01\n\x0fPairedMediaType\x12\x14\n\x10NOT_PAIRED_MEDIA\x10\x00\x12\x13\n\x0fSD_VIDEO_PARENT\x10\x01\x12\x12\n\x0eHD_VIDEO_CHILD\x10\x02\x12\x13\n\x0fSD_IMAGE_PARENT\x10\x03\x12\x12\n\x0eHD_IMAGE_CHILD\x10\x04\x12\x17\n\x13MOTION_PHOTO_PARENT\x10\x05\x12\x16\n\x12MOTION_PHOTO_CHILD\x10\x06\x12\x15\n\x11HEVC_VIDEO_PARENT\x10\x07\x12\x14\n\x10HEVC_VIDEO_CHILD\x10\x08\"$\n\nQuotedType\x12\x0c\n\x08\x45XPLICIT\x10\x00\x12\x08\n\x04\x41UTO\x10\x01\"\x92\x01\n\x15StatusAttributionType\x12\x08\n\x04NONE\x10\x00\x12\x19\n\x15RESHARED_FROM_MENTION\x10\x01\x12\x16\n\x12RESHARED_FROM_POST\x10\x02\x12!\n\x1dRESHARED_FROM_POST_MANY_TIMES\x10\x03\x12\x19\n\x15\x46ORWARDED_FROM_STATUS\x10\x04\"\\\n\x10StatusSourceType\x12\t\n\x05IMAGE\x10\x00\x12\t\n\x05VIDEO\x10\x01\x12\x07\n\x03GIF\x10\x02\x12\t\n\x05\x41UDIO\x10\x03\x12\x08\n\x04TEXT\x10\x04\x12\x14\n\x10MUSIC_STANDALONE\x10\x05\"\xa5\x11\n\x0c\x43onversation\x12\n\n\x02id\x18\x01 \x02(\t\x12*\n\x08messages\x18\x02 \x03(\x0b\x32\x18.whatsapp.HistorySyncMsg\x12\x0e\n\x06newJid\x18\x03 \x01(\t\x12\x0e\n\x06oldJid\x18\x04 \x01(\t\x12\x18\n\x10lastMsgTimestamp\x18\x05 \x01(\x04\x12\x13\n\x0bunreadCount\x18\x06 \x01(\r\x12\x10\n\x08readOnly\x18\x07 \x01(\x08\x12\x1c\n\x14\x65ndOfHistoryTransfer\x18\x08 \x01(\x08\x12\x1b\n\x13\x65phemeralExpiration\x18\t \x01(\r\x12!\n\x19\x65phemeralSettingTimestamp\x18\n \x01(\x03\x12Q\n\x18\x65ndOfHistoryTransferType\x18\x0b \x01(\x0e\x32/.whatsapp.Conversation.EndOfHistoryTransferType\x12\x1d\n\x15\x63onversationTimestamp\x18\x0c \x01(\x04\x12\x0c\n\x04name\x18\r \x01(\t\x12\r\n\x05pHash\x18\x0e \x01(\t\x12\x0f\n\x07notSpam\x18\x0f \x01(\x08\x12\x10\n\x08\x61rchived\x18\x10 \x01(\x08\x12\x34\n\x10\x64isappearingMode\x18\x11 \x01(\x0b\x32\x1a.whatsapp.DisappearingMode\x12\x1a\n\x12unreadMentionCount\x18\x12 \x01(\r\x12\x16\n\x0emarkedAsUnread\x18\x13 \x01(\x08\x12/\n\x0bparticipant\x18\x14 \x03(\x0b\x32\x1a.whatsapp.GroupParticipant\x12\x0f\n\x07tcToken\x18\x15 \x01(\x0c\x12\x18\n\x10tcTokenTimestamp\x18\x16 \x01(\x04\x12!\n\x19\x63ontactPrimaryIdentityKey\x18\x17 \x01(\x0c\x12\x0e\n\x06pinned\x18\x18 \x01(\r\x12\x13\n\x0bmuteEndTime\x18\x19 \x01(\x04\x12.\n\twallpaper\x18\x1a \x01(\x0b\x32\x1b.whatsapp.WallpaperSettings\x12\x32\n\x0fmediaVisibility\x18\x1b \x01(\x0e\x32\x19.whatsapp.MediaVisibility\x12\x1e\n\x16tcTokenSenderTimestamp\x18\x1c \x01(\x04\x12\x11\n\tsuspended\x18\x1d \x01(\x08\x12\x12\n\nterminated\x18\x1e \x01(\x08\x12\x11\n\tcreatedAt\x18\x1f \x01(\x04\x12\x11\n\tcreatedBy\x18 \x01(\t\x12\x13\n\x0b\x64\x65scription\x18! \x01(\t\x12\x0f\n\x07support\x18\" \x01(\x08\x12\x15\n\risParentGroup\x18# \x01(\x08\x12\x15\n\rparentGroupId\x18% \x01(\t\x12\x19\n\x11isDefaultSubgroup\x18$ \x01(\x08\x12\x13\n\x0b\x64isplayName\x18& \x01(\t\x12\r\n\x05pnJid\x18\' \x01(\t\x12\x12\n\nshareOwnPn\x18( \x01(\x08\x12\x1d\n\x15pnhDuplicateLidThread\x18) \x01(\x08\x12\x0e\n\x06lidJid\x18* \x01(\t\x12\x10\n\x08username\x18+ \x01(\t\x12\x15\n\rlidOriginType\x18, \x01(\t\x12\x15\n\rcommentsCount\x18- \x01(\r\x12\x0e\n\x06locked\x18. \x01(\x08\x12=\n\x15systemMessageToInsert\x18/ \x01(\x0e\x32\x1e.whatsapp.PrivacySystemMessage\x12\x18\n\x10\x63\x61piCreatedGroup\x18\x30 \x01(\x08\x12\x12\n\naccountLid\x18\x31 \x01(\t\x12\x14\n\x0climitSharing\x18\x32 \x01(\x08\x12$\n\x1climitSharingSettingTimestamp\x18\x33 \x01(\x03\x12?\n\x13limitSharingTrigger\x18\x34 \x01(\x0e\x32\".whatsapp.LimitSharing.TriggerType\x12!\n\x19limitSharingInitiatedByMe\x18\x35 \x01(\x08\x12\x1c\n\x14maibaAiThreadEnabled\x18\x36 \x01(\x08\x12 \n\x18isMarketingMessageThread\x18\x37 \x01(\x08\x12\x1a\n\x12isSenderNewAccount\x18\x38 \x01(\x08\x12\x19\n\x11\x61\x66terReadDuration\x18\x39 \x01(\r\x12\x1a\n\x12isSenderSuspicious\x18: \x01(\x08\x12>\n\x0c\x61ppealStatus\x18; \x01(\x0e\x32(.whatsapp.Conversation.GroupAppealStatus\x12\x18\n\x10\x61ppealUpdateTime\x18< \x01(\x04\x12\"\n\x1a\x61uthAgentParentCompanyName\x18= \x01(\t\x12\x1f\n\x17\x61uthAgentObaPhoneNumber\x18> \x01(\t\x12\x41\n\x14identityVerification\x18? \x01(\x0b\x32#.whatsapp.IdentityVerificationState\"\x80\x02\n\x18\x45ndOfHistoryTransferType\x12\x30\n,COMPLETE_BUT_MORE_MESSAGES_REMAIN_ON_PRIMARY\x10\x00\x12\x32\n.COMPLETE_AND_NO_MORE_MESSAGE_REMAIN_ON_PRIMARY\x10\x01\x12:\n6COMPLETE_ON_DEMAND_SYNC_BUT_MORE_MSG_REMAIN_ON_PRIMARY\x10\x02\x12\x42\n>COMPLETE_ON_DEMAND_SYNC_WITH_MORE_MSG_ON_PRIMARY_BUT_NO_ACCESS\x10\x03\"b\n\x11GroupAppealStatus\x12\r\n\tNO_APPEAL\x10\x00\x12\x14\n\x10\x41PPEAL_IN_REVIEW\x10\x01\x12\x13\n\x0f\x41PPEAL_APPROVED\x10\x02\x12\x13\n\x0f\x41PPEAL_REJECTED\x10\x03\"9\n\x11\x43reateBackupInput\x12\x14\n\x0crecoveryCode\x18\x01 \x02(\t\x12\x0e\n\x06userId\x18\x02 \x02(\x04\"\xc1\x01\n\x12\x43reateBackupOutput\x12&\n\x06\x64\x65vice\x18\x01 \x01(\x0b\x32\x16.whatsapp.DeviceOutput\x12\x34\n\rvirtualDevice\x18\x02 \x01(\x0b\x32\x1d.whatsapp.VirtualDeviceOutput\x12&\n\x06\x65poch0\x18\x03 \x01(\x0b\x32\x16.whatsapp.Epoch0Output\x12\x16\n\x0emailboxRootKey\x18\x04 \x01(\x0c\x12\r\n\x05\x65rror\x18\x05 \x01(\t\"\xd8\x03\n1DecryptMekForDistributionFromTransportSenderInput\x12\x82\x01\n\x0fmekDistribution\x18\x01 \x02(\x0b\x32i.whatsapp.DecryptMekForDistributionFromTransportSenderInput.TransportSenderMEKDistributionSingleRecipient\x12\r\n\x05mekId\x18\x02 \x02(\x0c\x12\x12\n\nrosterHash\x18\x03 \x02(\x0c\x12\x16\n\x0erecipientEncSk\x18\x04 \x02(\x0c\x12\x0f\n\x07version\x18\x05 \x02(\x04\x12)\n\x04\x63onf\x18\x06 \x01(\x0b\x32\x1b.whatsapp.MinosClientConfig\x1a\xa6\x01\n-TransportSenderMEKDistributionSingleRecipient\x12\x14\n\x0c\x65ncryptedMek\x18\x01 \x02(\x0c\x12\x1d\n\x15\x65phemeralEncryptionPk\x18\x02 \x02(\x0c\x12\x11\n\tsigningPk\x18\x03 \x02(\x0c\x12\x11\n\tsignature\x18\x04 \x02(\x0c\x12\x1a\n\x12recipientEpochHead\x18\x05 \x01(\x0c\"\xa8\x01\n2DecryptMekForDistributionFromTransportSenderResult\x12P\n\x07success\x18\x01 \x01(\x0b\x32=.whatsapp.DecryptMekForDistributionFromTransportSenderSuccessH\x00\x12\x16\n\x0c\x65rrorMessage\x18\x02 \x01(\tH\x00\x42\x08\n\x06result\"B\n3DecryptMekForDistributionFromTransportSenderSuccess\x12\x0b\n\x03mek\x18\x01 \x02(\x0c\"\xf3\x01\n\x1e\x44\x65\x63ryptMekForDistributionInput\x12\x13\n\x0btoMailboxSk\x18\x01 \x02(\x0c\x12\x0e\n\x06\x66romPk\x18\x02 \x02(\x0c\x12\r\n\x05mekId\x18\x03 \x02(\x0c\x12\x17\n\x0fsenderEpochHead\x18\x04 \x02(\x0c\x12\x12\n\nrosterHash\x18\x05 \x02(\x0c\x12\x12\n\nciphertext\x18\x06 \x02(\x0c\x12\x13\n\x0btoEpochHead\x18\x07 \x01(\x0c\x12\x1c\n\x14mekEncryptionVersion\x18\x08 \x01(\x05\x12)\n\x04\x63onf\x18\t \x01(\x0b\x32\x1b.whatsapp.MinosClientConfig\"\x82\x01\n\x1f\x44\x65\x63ryptMekForDistributionResult\x12=\n\x07success\x18\x01 \x01(\x0b\x32*.whatsapp.DecryptMekForDistributionSuccessH\x00\x12\x16\n\x0c\x65rrorMessage\x18\x02 \x01(\tH\x00\x42\x08\n\x06result\"/\n DecryptMekForDistributionSuccess\x12\x0b\n\x03mek\x18\x01 \x02(\x0c\"\x81\x01\n\x13\x44\x65\x63ryptMessageInput\x12\x14\n\x0c\x65pochRootKey\x18\x01 \x02(\x0c\x12\x13\n\x0b\x65pochAnonId\x18\x02 \x02(\x0c\x12\x10\n\x08threadId\x18\x03 \x02(\t\x12\x19\n\x11\x65ncryptionVersion\x18\x04 \x02(\x05\x12\x12\n\nciphertext\x18\x05 \x02(\x0c\"?\n\x14\x44\x65\x63ryptMessageOutput\x12\x18\n\x10plaintextPayload\x18\x01 \x01(\x0c\x12\r\n\x05\x65rror\x18\x02 \x01(\t\"g\n\x1f\x44\x65\x63ryptSelfMmkDistributionInput\x12\x14\n\x0c\x65ncryptedMmk\x18\x01 \x02(\x0c\x12\x15\n\rexportRootKey\x18\x02 \x02(\x0c\x12\x17\n\x0fmailboxHeadHash\x18\x03 \x02(\x0c\"\x84\x01\n DecryptSelfMmkDistributionResult\x12>\n\x07success\x18\x01 \x01(\x0b\x32+.whatsapp.DecryptSelfMmkDistributionSuccessH\x00\x12\x16\n\x0c\x65rrorMessage\x18\x02 \x01(\tH\x00\x42\x08\n\x06result\"4\n!DecryptSelfMmkDistributionSuccess\x12\x0f\n\x07mmkSeed\x18\x01 \x02(\x0c\":\n&DeriveAttachmentAccessTokenSecretInput\x12\x10\n\x08mediaKey\x18\x01 \x02(\x0c\"N\n\'DeriveAttachmentAccessTokenSecretResult\x12#\n\x1b\x61ttachmentAccessTokenSecret\x18\x01 \x02(\x0c\"9\n%DeriveAttachmentPrimaryKeySecretInput\x12\x10\n\x08mediaKey\x18\x01 \x02(\x0c\"L\n&DeriveAttachmentPrimaryKeySecretResult\x12\"\n\x1a\x61ttachmentPrimaryKeySecret\x18\x01 \x02(\x0c\"K\n\x1d\x44\x65riveMailboxAuthKeypairInput\x12\x15\n\rexportRootKey\x18\x01 \x02(\x0c\x12\x13\n\x0b\x65pochNumber\x18\x02 \x02(\x04\"]\n\x1e\x44\x65riveMailboxAuthKeypairResult\x12\x1c\n\x14mailboxAuthPublicKey\x18\x01 \x02(\x0c\x12\x1d\n\x15mailboxAuthPrivateKey\x18\x02 \x02(\x0c\"Q\n#DeriveMailboxEncryptionKeypairInput\x12\x15\n\rexportRootKey\x18\x01 \x02(\x0c\x12\x13\n\x0b\x65pochNumber\x18\x02 \x02(\x04\"o\n$DeriveMailboxEncryptionKeypairResult\x12\"\n\x1amailboxEncryptionPublicKey\x18\x01 \x02(\x0c\x12#\n\x1bmailboxEncryptionPrivateKey\x18\x02 \x02(\x0c\"N\n DeriveMailboxSigningKeypairInput\x12\x15\n\rexportRootKey\x18\x01 \x02(\x0c\x12\x13\n\x0b\x65pochNumber\x18\x02 \x02(\x04\"\x86\x01\n!DeriveMailboxSigningKeypairResult\x12?\n\x07success\x18\x01 \x01(\x0b\x32,.whatsapp.DeriveMailboxSigningKeypairSuccessH\x00\x12\x16\n\x0c\x65rrorMessage\x18\x02 \x01(\tH\x00\x42\x08\n\x06result\"g\n\"DeriveMailboxSigningKeypairSuccess\x12\x1f\n\x17mailboxSigningPublicKey\x18\x01 \x02(\x0c\x12 \n\x18mailboxSigningPrivateKey\x18\x02 \x02(\x0c\"T\n\x15\x44\x65riveMessageKeyInput\x12\x14\n\x0c\x65pochRootKey\x18\x01 \x02(\x0c\x12\x13\n\x0b\x65pochAnonId\x18\x02 \x02(\x0c\x12\x10\n\x08threadId\x18\x03 \x02(\t\";\n\x16\x44\x65riveMessageKeyOutput\x12\x12\n\nmessageKey\x18\x01 \x01(\x0c\x12\r\n\x05\x65rror\x18\x02 \x01(\t\"6\n#DeriveMessagingMailboxKeypairsInput\x12\x0f\n\x07mmkSeed\x18\x01 \x02(\x0c\"\x8c\x01\n$DeriveMessagingMailboxKeypairsResult\x12\x42\n\x07success\x18\x01 \x01(\x0b\x32/.whatsapp.DeriveMessagingMailboxKeypairsSuccessH\x00\x12\x16\n\x0c\x65rrorMessage\x18\x02 \x01(\tH\x00\x42\x08\n\x06result\"e\n%DeriveMessagingMailboxKeypairsSuccess\x12\r\n\x05\x65ncSk\x18\x01 \x02(\x0c\x12\r\n\x05\x65ncPk\x18\x02 \x02(\x0c\x12\x0e\n\x06\x61uthSk\x18\x03 \x01(\x0c\x12\x0e\n\x06\x61uthPk\x18\x04 \x01(\x0c\"{\n\x18\x44\x65tachedDevicePublicData\x12\x10\n\x08\x64\x65viceId\x18\x01 \x02(\x04\x12\x0c\n\x04name\x18\x02 \x02(\x0c\x12\r\n\x05sigPk\x18\x03 \x02(\x0c\x12\x0e\n\x06\x61uthPk\x18\x04 \x02(\x0c\x12\r\n\x05\x65ncPk\x18\x05 \x02(\x0c\x12\x11\n\tsignature\x18\x06 \x02(\x0c\"\xd2\n\n\x12\x44\x65viceCapabilities\x12O\n\x14\x63hatLockSupportLevel\x18\x01 \x01(\x0e\x32\x31.whatsapp.DeviceCapabilities.ChatLockSupportLevel\x12?\n\x0clidMigration\x18\x02 \x01(\x0b\x32).whatsapp.DeviceCapabilities.LIDMigration\x12I\n\x11\x62usinessBroadcast\x18\x03 \x01(\x0b\x32..whatsapp.DeviceCapabilities.BusinessBroadcast\x12\x41\n\ruserHasAvatar\x18\x04 \x01(\x0b\x32*.whatsapp.DeviceCapabilities.UserHasAvatar\x12]\n\x1bmemberNameTagPrimarySupport\x18\x05 \x01(\x0e\x32\x38.whatsapp.DeviceCapabilities.MemberNameTagPrimarySupport\x12\x37\n\x08\x61iThread\x18\x06 \x01(\x0b\x32%.whatsapp.DeviceCapabilities.AiThread\x12\x45\n\x0f\x61iFbidMigration\x18\x07 \x01(\x0b\x32,.whatsapp.DeviceCapabilities.AiFbidMigration\x12I\n\x11\x62izAiSettingsSync\x18\x08 \x01(\x0b\x32..whatsapp.DeviceCapabilities.BizAiSettingsSync\x12\x43\n\x0e\x63ontactRefresh\x18\t \x01(\x0b\x32+.whatsapp.DeviceCapabilities.ContactRefresh\x1a\x33\n\x0f\x41iFbidMigration\x12 \n\x18\x63hatDbMigrationTimestamp\x18\x01 \x01(\x04\x1a\x83\x01\n\x08\x41iThread\x12H\n\x0csupportLevel\x18\x01 \x01(\x0e\x32\x32.whatsapp.DeviceCapabilities.AiThread.SupportLevel\"-\n\x0cSupportLevel\x12\x08\n\x04NONE\x10\x00\x12\t\n\x05INFRA\x10\x01\x12\x08\n\x04\x46ULL\x10\x02\x1a\x38\n\x11\x42izAiSettingsSync\x12#\n\x1bhandoffRemovalTimingEnabled\x18\x01 \x01(\x08\x1a\xa1\x01\n\x11\x42usinessBroadcast\x12\x19\n\x11importListEnabled\x18\x01 \x01(\x08\x12\x1f\n\x17\x63ompanionSupportEnabled\x18\x02 \x01(\x08\x12\x1b\n\x13\x63\x61mpaignSyncEnabled\x18\x03 \x01(\x08\x12\x1b\n\x13insightsSyncEnabled\x18\x04 \x01(\x08\x12\x16\n\x0erecipientLimit\x18\x05 \x01(\x05\x1a*\n\x0e\x43ontactRefresh\x12\x18\n\x10refreshSupported\x18\x01 \x01(\x08\x1a\x30\n\x0cLIDMigration\x12 \n\x18\x63hatDbMigrationTimestamp\x18\x01 \x01(\x04\x1a&\n\rUserHasAvatar\x12\x15\n\ruserHasAvatar\x18\x01 \x01(\x08\"7\n\x14\x43hatLockSupportLevel\x12\x08\n\x04NONE\x10\x00\x12\x0b\n\x07MINIMAL\x10\x01\x12\x08\n\x04\x46ULL\x10\x02\"U\n\x1bMemberNameTagPrimarySupport\x12\x0c\n\x08\x44ISABLED\x10\x00\x12\x14\n\x10RECEIVER_ENABLED\x10\x01\x12\x12\n\x0eSENDER_ENABLED\x10\x02\"E\n\x1c\x44\x65viceConsistencyCodeMessage\x12\x12\n\ngeneration\x18\x01 \x01(\r\x12\x11\n\tsignature\x18\x02 \x01(\x0c\"\xb7\x02\n\x12\x44\x65viceListMetadata\x12\x15\n\rsenderKeyHash\x18\x01 \x01(\x0c\x12\x17\n\x0fsenderTimestamp\x18\x02 \x01(\x04\x12\x1c\n\x10senderKeyIndexes\x18\x03 \x03(\rB\x02\x10\x01\x12<\n\x11senderAccountType\x18\x04 \x01(\x0e\x32\x1b.whatsapp.ADVEncryptionType:\x04\x45\x32\x45\x45\x12>\n\x13receiverAccountType\x18\x05 \x01(\x0e\x32\x1b.whatsapp.ADVEncryptionType:\x04\x45\x32\x45\x45\x12\x18\n\x10recipientKeyHash\x18\x08 \x01(\x0c\x12\x1a\n\x12recipientTimestamp\x18\t \x01(\x04\x12\x1f\n\x13recipientKeyIndexes\x18\n \x03(\rB\x02\x10\x01\"\xb6\x02\n\x0c\x44\x65viceOutput\x12\x11\n\tpublicKey\x18\x01 \x02(\x0c\x12\x1a\n\x12\x65pochAuthPublicKey\x18\x02 \x02(\x0c\x12\x1d\n\x15\x65pochAuthPublicKeySig\x18\x03 \x02(\x0c\x12\x1d\n\x15\x65pochStoragePublicKey\x18\x04 \x02(\x0c\x12 \n\x18\x65pochStoragePublicKeySig\x18\x05 \x02(\x0c\x12#\n\x1bsupportedEncryptionVersions\x18\x06 \x03(\x05\x12\"\n\x1a\x65ncryptionVersionSignature\x18\x07 \x02(\x0c\x12\x15\n\rclientVersion\x18\x08 \x02(\x05\x12\x17\n\x0focmfClientState\x18\t \x02(\x0c\x12\x1e\n\x16\x65pochStoragePrivateKey\x18\n \x02(\x0c\"\xf6\x0b\n\x0b\x44\x65viceProps\x12\n\n\x02os\x18\x01 \x01(\t\x12\x31\n\x07version\x18\x02 \x01(\x0b\x32 .whatsapp.DeviceProps.AppVersion\x12\x38\n\x0cplatformType\x18\x03 \x01(\x0e\x32\".whatsapp.DeviceProps.PlatformType\x12\x17\n\x0frequireFullSync\x18\x04 \x01(\x08\x12\x42\n\x11historySyncConfig\x18\x05 \x01(\x0b\x32\'.whatsapp.DeviceProps.HistorySyncConfig\x1ag\n\nAppVersion\x12\x0f\n\x07primary\x18\x01 \x01(\r\x12\x11\n\tsecondary\x18\x02 \x01(\r\x12\x10\n\x08tertiary\x18\x03 \x01(\r\x12\x12\n\nquaternary\x18\x04 \x01(\r\x12\x0f\n\x07quinary\x18\x05 \x01(\r\x1a\xbb\x06\n\x11HistorySyncConfig\x12\x19\n\x11\x66ullSyncDaysLimit\x18\x01 \x01(\r\x12\x1b\n\x13\x66ullSyncSizeMbLimit\x18\x02 \x01(\r\x12\x16\n\x0estorageQuotaMb\x18\x03 \x01(\r\x12%\n\x1dinlineInitialPayloadInE2EeMsg\x18\x04 \x01(\x08\x12\x1b\n\x13recentSyncDaysLimit\x18\x05 \x01(\r\x12\x1d\n\x15supportCallLogHistory\x18\x06 \x01(\x08\x12&\n\x1esupportBotUserAgentChatHistory\x18\x07 \x01(\x08\x12#\n\x1bsupportCagReactionsAndPolls\x18\x08 \x01(\x08\x12\x1b\n\x13supportBizHostedMsg\x18\t \x01(\x08\x12\x30\n(supportRecentSyncChunkMessageCountTuning\x18\n \x01(\x08\x12\x1d\n\x15supportHostedGroupMsg\x18\x0b \x01(\x08\x12!\n\x19supportFbidBotChatHistory\x18\x0c \x01(\x08\x12(\n supportAddOnHistorySyncMigration\x18\r \x01(\x08\x12!\n\x19supportMessageAssociation\x18\x0e \x01(\x08\x12\x1b\n\x13supportGroupHistory\x18\x0f \x01(\x08\x12\x15\n\ronDemandReady\x18\x10 \x01(\x08\x12\x18\n\x10supportGuestChat\x18\x11 \x01(\x08\x12\x1d\n\x15\x63ompleteOnDemandReady\x18\x12 \x01(\x08\x12\x1e\n\x16thumbnailSyncDaysLimit\x18\x13 \x01(\r\x12%\n\x1dinitialSyncMaxMessagesPerChat\x18\x14 \x01(\r\x12\x1b\n\x13supportManusHistory\x18\x15 \x01(\x08\x12\x1b\n\x13supportHatchHistory\x18\x16 \x01(\x08\x12 \n\x18supportedBotChannelFbids\x18\x17 \x03(\t\x12\x1d\n\x15supportInlineContacts\x18\x18 \x01(\x08\x12\x19\n\x11supportNewsletter\x18\x19 \x01(\x08\"\xe9\x02\n\x0cPlatformType\x12\x0b\n\x07UNKNOWN\x10\x00\x12\n\n\x06\x43HROME\x10\x01\x12\x0b\n\x07\x46IREFOX\x10\x02\x12\x06\n\x02IE\x10\x03\x12\t\n\x05OPERA\x10\x04\x12\n\n\x06SAFARI\x10\x05\x12\x08\n\x04\x45\x44GE\x10\x06\x12\x0b\n\x07\x44\x45SKTOP\x10\x07\x12\x08\n\x04IPAD\x10\x08\x12\x12\n\x0e\x41NDROID_TABLET\x10\t\x12\t\n\x05OHANA\x10\n\x12\t\n\x05\x41LOHA\x10\x0b\x12\x0c\n\x08\x43\x41TALINA\x10\x0c\x12\n\n\x06TCL_TV\x10\r\x12\r\n\tIOS_PHONE\x10\x0e\x12\x10\n\x0cIOS_CATALYST\x10\x0f\x12\x11\n\rANDROID_PHONE\x10\x10\x12\x15\n\x11\x41NDROID_AMBIGUOUS\x10\x11\x12\x0b\n\x07WEAR_OS\x10\x12\x12\x0c\n\x08\x41R_WRIST\x10\x13\x12\r\n\tAR_DEVICE\x10\x14\x12\x07\n\x03UWP\x10\x15\x12\x06\n\x02VR\x10\x16\x12\r\n\tCLOUD_API\x10\x17\x12\x10\n\x0cSMARTGLASSES\x10\x18\x12\x08\n\x04WAIL\x10\x19\"\x9f\x03\n\x10\x44isappearingMode\x12\x37\n\tinitiator\x18\x01 \x01(\x0e\x32$.whatsapp.DisappearingMode.Initiator\x12\x33\n\x07trigger\x18\x02 \x01(\x0e\x32\".whatsapp.DisappearingMode.Trigger\x12\x1a\n\x12initiatorDeviceJid\x18\x03 \x01(\t\x12\x15\n\rinitiatedByMe\x18\x04 \x01(\x08\"i\n\tInitiator\x12\x13\n\x0f\x43HANGED_IN_CHAT\x10\x00\x12\x13\n\x0fINITIATED_BY_ME\x10\x01\x12\x16\n\x12INITIATED_BY_OTHER\x10\x02\x12\x1a\n\x16\x42IZ_UPGRADE_FB_HOSTING\x10\x03\"\x7f\n\x07Trigger\x12\x0b\n\x07UNKNOWN\x10\x00\x12\x10\n\x0c\x43HAT_SETTING\x10\x01\x12\x13\n\x0f\x41\x43\x43OUNT_SETTING\x10\x02\x12\x0f\n\x0b\x42ULK_CHANGE\x10\x03\x12\x1b\n\x17\x42IZ_SUPPORTS_FB_HOSTING\x10\x04\x12\x12\n\x0eUNKNOWN_GROUPS\x10\x05\"\x84\x01\n\x0f\x45mbeddedContent\x12\x34\n\x0f\x65mbeddedMessage\x18\x01 \x01(\x0b\x32\x19.whatsapp.EmbeddedMessageH\x00\x12\x30\n\rembeddedMusic\x18\x02 \x01(\x0b\x32\x17.whatsapp.EmbeddedMusicH\x00\x42\t\n\x07\x63ontent\"G\n\x0f\x45mbeddedMessage\x12\x10\n\x08stanzaId\x18\x01 \x01(\t\x12\"\n\x07message\x18\x02 \x01(\x0b\x32\x11.whatsapp.Message\"\xeb\x02\n\rEmbeddedMusic\x12\x1b\n\x13musicContentMediaId\x18\x01 \x01(\t\x12\x0e\n\x06songId\x18\x02 \x01(\t\x12\x0e\n\x06\x61uthor\x18\x03 \x01(\t\x12\r\n\x05title\x18\x04 \x01(\t\x12\x19\n\x11\x61rtworkDirectPath\x18\x05 \x01(\t\x12\x15\n\rartworkSha256\x18\x06 \x01(\x0c\x12\x18\n\x10\x61rtworkEncSha256\x18\x07 \x01(\x0c\x12\x19\n\x11\x61rtistAttribution\x18\x08 \x01(\t\x12\x18\n\x10\x63ountryBlocklist\x18\t \x01(\x0c\x12\x12\n\nisExplicit\x18\n \x01(\x08\x12\x17\n\x0f\x61rtworkMediaKey\x18\x0b \x01(\x0c\x12\x1e\n\x16musicSongStartTimeInMs\x18\x0c \x01(\x03\x12#\n\x1b\x64\x65rivedContentStartTimeInMs\x18\r \x01(\x03\x12\x1b\n\x13overlapDurationInMs\x18\x0e \x01(\x03\"\xa6\x02\n\x1e\x45ncryptMekForDistributionInput\x12\x17\n\x0fsenderEpochHead\x18\x01 \x02(\x0c\x12\x13\n\x0btoMailboxPk\x18\x02 \x02(\x0c\x12K\n\x0b\x66romKeypair\x18\x03 \x02(\x0b\x32\x36.whatsapp.EncryptMekForDistributionInput.MailboxAuthKP\x12 \n\x03mek\x18\x04 \x02(\x0b\x32\x13.whatsapp.MekBundle\x12\x13\n\x0btoEpochHead\x18\x05 \x01(\x0c\x12)\n\x04\x63onf\x18\x06 \x01(\x0b\x32\x1b.whatsapp.MinosClientConfig\x1a\'\n\rMailboxAuthKP\x12\n\n\x02sk\x18\x01 \x02(\x0c\x12\n\n\x02pk\x18\x02 \x02(\x0c\"F\n\x1f\x45ncryptMekForDistributionResult\x12\x12\n\nciphertext\x18\x01 \x02(\x0c\x12\x0f\n\x07version\x18\x02 \x02(\x04\"\xe0\x02\n2EncryptMeksForDistributionFromTransportSenderInput\x12 \n\x03mek\x18\x01 \x02(\x0b\x32\x13.whatsapp.MekBundle\x12k\n\x12transportSigningKp\x18\x02 \x02(\x0b\x32O.whatsapp.EncryptMeksForDistributionFromTransportSenderInput.TransportSigningKP\x12%\n\x1drecipientMailboxEncryptionPks\x18\x03 \x03(\x0c\x12\x1b\n\x13recipientEpochHeads\x18\x04 \x03(\x0c\x12)\n\x04\x63onf\x18\x05 \x01(\x0b\x32\x1b.whatsapp.MinosClientConfig\x1a,\n\x12TransportSigningKP\x12\n\n\x02sk\x18\x01 \x02(\x0c\x12\n\n\x02pk\x18\x02 \x02(\x0c\"\xa2\x01\n3EncryptMeksForDistributionFromTransportSenderResult\x12\x15\n\rencryptedMeks\x18\x01 \x03(\x0c\x12\x1d\n\x15\x65phemeralEncryptionPk\x18\x02 \x02(\x0c\x12\x11\n\tsigningPk\x18\x03 \x02(\x0c\x12\x11\n\tsignature\x18\x04 \x02(\x0c\x12\x0f\n\x07version\x18\x05 \x02(\x04\"\x83\x02\n\x13\x45ncryptMessageInput\x12\x14\n\x0c\x65pochRootKey\x18\x01 \x02(\x0c\x12\x16\n\x0emailboxRootKey\x18\x02 \x02(\x0c\x12\x16\n\x0eorfClientState\x18\x03 \x02(\x0c\x12\x13\n\x0b\x65pochAnonId\x18\x04 \x02(\x0c\x12\x0f\n\x07\x65pochId\x18\x05 \x02(\x04\x12\x10\n\x08threadId\x18\x06 \x02(\t\x12\x1b\n\x13waCanonicalUserFbid\x18\x07 \x02(\x04\x12\x13\n\x0btimestampMs\x18\x08 \x02(\x04\x12\x10\n\x08\x62\x61\x63kupId\x18\t \x02(\x04\x12\x18\n\x10plaintextPayload\x18\n \x02(\x0c\x12\x10\n\x08stanzaId\x18\x0b \x02(\t\"\x9e\x01\n\x14\x45ncryptMessageOutput\x12\x19\n\x11\x65ncryptedProtobuf\x18\x01 \x01(\x0c\x12\x13\n\x0borfThreadId\x18\x02 \x01(\x0c\x12\x16\n\x0evalueSecretRef\x18\x03 \x01(\t\x12\x1a\n\x12offlineThreadingId\x18\x04 \x01(\x04\x12\x13\n\x0btimestampMs\x18\x05 \x01(\x04\x12\r\n\x05\x65rror\x18\x07 \x01(\t\"?\n\x17\x45ncryptedPairingRequest\x12\x18\n\x10\x65ncryptedPayload\x18\x01 \x01(\x0c\x12\n\n\x02iv\x18\x02 \x01(\x0c\"\xbf\x02\n\x1b\x45ncryptedSecretValuesOutput\x12!\n\x19\x65ncryptedDevicePrivateKey\x18\x01 \x02(\x0c\x12-\n%encryptedObliviousValidationTokenBlob\x18\x02 \x02(\x0c\x12\'\n\x1f\x65ncryptedEpochStoragePrivateKey\x18\x03 \x02(\x0c\x12 \n\x18\x65ncryptedOcmfClientState\x18\x04 \x02(\x0c\x12!\n\x19\x65ncryptedOrfClientStateV2\x18\x05 \x01(\x0c\x12#\n\x1b\x65ncryptedMailboxRootKeyBlob\x18\x06 \x02(\x0c\x12\x1c\n\x14\x65ncryptedEpochAnonId\x18\x07 \x02(\x0c\x12\x1d\n\x15\x65ncryptedEpochRootKey\x18\x08 \x02(\x0c\"7\n\x10\x45phemeralSetting\x12\x10\n\x08\x64uration\x18\x01 \x01(\x0f\x12\x11\n\ttimestamp\x18\x02 \x01(\x10\"\xb7\x01\n\x0c\x45poch0Output\x12\x11\n\tepochFbid\x18\x01 \x02(\x04\x12\x13\n\x0b\x65pochAnonId\x18\x02 \x02(\x0c\x12\x11\n\tepochData\x18\x03 \x02(\x0c\x12\x1d\n\x15wrappedRootKeyForSelf\x18\x04 \x02(\x0c\x12\x16\n\x0e\x65pochSignature\x18\x05 \x02(\x0c\x12\x1f\n\x17\x65pochRootKeyFingerprint\x18\x06 \x02(\x0c\x12\x14\n\x0c\x65pochRootKey\x18\x07 \x01(\x0c\"\xa1\x01\n\x0f\x45pochPublicData\x12\x13\n\x0b\x65pochNumber\x18\x01 \x02(\x04\x12\x10\n\x08userFbid\x18\x02 \x02(\t\x12\x18\n\x10mailboxSigningPk\x18\x03 \x02(\x0c\x12\x1b\n\x13mailboxEncryptionPk\x18\x04 \x02(\x0c\x12\x15\n\rmailboxAuthPk\x18\x05 \x02(\x0c\x12\x19\n\x11previousEpochHead\x18\x06 \x01(\x0c\"?\n\x0f\x45pochSignatures\x12\x15\n\rselfSignature\x18\x01 \x02(\x0c\x12\x15\n\rprevSignature\x18\x02 \x01(\x0c\"*\n\x17\x45ventAdditionalMetadata\x12\x0f\n\x07isStale\x18\x01 \x01(\x08\"\xb1\x01\n\rEventResponse\x12\x35\n\x17\x65ventResponseMessageKey\x18\x01 \x01(\x0b\x32\x14.whatsapp.MessageKey\x12\x13\n\x0btimestampMs\x18\x02 \x01(\x03\x12\x44\n\x14\x65ventResponseMessage\x18\x03 \x01(\x0b\x32&.whatsapp.Message.EventResponseMessage\x12\x0e\n\x06unread\x18\x04 \x01(\x08\"&\n\x08\x45xitCode\x12\x0c\n\x04\x63ode\x18\x01 \x01(\x04\x12\x0c\n\x04text\x18\x02 \x01(\t\"\xc7\x0b\n\x16\x45xtendedContentMessage\x12\x30\n\x11\x61ssociatedMessage\x18\x01 \x01(\x0b\x32\x15.whatsapp.SubProtocol\x12L\n\ntargetType\x18\x02 \x01(\x0e\x32\x38.whatsapp.EXTENDED_CONTENT_MESSAGE_EXTENDED_CONTENT_TYPE\x12\x16\n\x0etargetUsername\x18\x03 \x01(\t\x12\x10\n\x08targetId\x18\x04 \x01(\t\x12\x1b\n\x13targetExpiringAtSec\x18\x05 \x01(\x03\x12I\n\rxmaLayoutType\x18\x06 \x01(\x0e\x32\x32.whatsapp.EXTENDED_CONTENT_MESSAGE_XMA_LAYOUT_TYPE\x12\x32\n\x04\x63tas\x18\x07 \x03(\x0b\x32$.whatsapp.ExtendedContentMessage.CTA\x12\'\n\x08previews\x18\x08 \x03(\x0b\x32\x15.whatsapp.SubProtocol\x12\x11\n\ttitleText\x18\t \x01(\t\x12\x14\n\x0csubtitleText\x18\n \x01(\t\x12\x1a\n\x12maxTitleNumOfLines\x18\x0b \x01(\r\x12\x1d\n\x15maxSubtitleNumOfLines\x18\x0c \x01(\r\x12&\n\x07\x66\x61vicon\x18\r \x01(\x0b\x32\x15.whatsapp.SubProtocol\x12*\n\x0bheaderImage\x18\x0e \x01(\x0b\x32\x15.whatsapp.SubProtocol\x12\x13\n\x0bheaderTitle\x18\x0f \x01(\t\x12\x66\n\x10overlayIconGlyph\x18\x10 \x01(\x0e\x32L.whatsapp.ExtendedContentMessage.EXTENDED_CONTENT_MESSAGE_OVERLAY_ICON_GLYPH\x12\x14\n\x0coverlayTitle\x18\x11 \x01(\t\x12\x1a\n\x12overlayDescription\x18\x12 \x01(\t\x12\x19\n\x11sentWithMessageId\x18\x13 \x01(\t\x12\x13\n\x0bmessageText\x18\x14 \x01(\t\x12\x16\n\x0eheaderSubtitle\x18\x15 \x01(\t\x12\x14\n\x0cxmaDataclass\x18\x16 \x01(\t\x12\x12\n\ncontentRef\x18\x17 \x01(\t\x12\x14\n\x0cmentionedJid\x18\x18 \x03(\t\x12#\n\x08\x63ommands\x18\x19 \x03(\x0b\x32\x11.whatsapp.Command\x12#\n\x08mentions\x18\x1a \x03(\x0b\x32\x11.whatsapp.Mention\x12O\n\x10xmaDataclassType\x18\x1b \x01(\x0e\x32\x35.whatsapp.EXTENDED_CONTENT_MESSAGE_XMA_DATACLASS_TYPE\x12$\n\x1csignedXmaDataclassValidation\x18\x1c \x01(\t\x12\x1e\n\x16\x66\x65\x61tureSharedSessionId\x18\x1d \x01(\t\x1a\xae\x01\n\x03\x43TA\x12\x46\n\nbuttonType\x18\x01 \x01(\x0e\x32\x32.whatsapp.EXTENDED_CONTENT_MESSAGE_CTA_BUTTON_TYPE\x12\r\n\x05title\x18\x02 \x01(\t\x12\x11\n\tactionUrl\x18\x03 \x01(\t\x12\x11\n\tnativeUrl\x18\x04 \x01(\t\x12\x0f\n\x07\x63taType\x18\x05 \x01(\t\x12\x19\n\x11\x61\x63tionContentBlob\x18\x06 \x01(\t\"\xbc\x01\n+EXTENDED_CONTENT_MESSAGE_OVERLAY_ICON_GLYPH\x12\x08\n\x04INFO\x10\x00\x12\x0b\n\x07\x45YE_OFF\x10\x01\x12\x0c\n\x08NEWS_OFF\x10\x02\x12\x0b\n\x07WARNING\x10\x03\x12\x0b\n\x07PRIVATE\x10\x04\x12\x08\n\x04NONE\x10\x05\x12\x0f\n\x0bMEDIA_LABEL\x10\x06\x12\x0e\n\nPOST_COVER\x10\x07\x12\x0e\n\nPOST_LABEL\x10\x08\x12\x13\n\x0fWARNING_SCREENS\x10\t\"\x8f\x01\n\x15\x45xternalBlobReference\x12\x10\n\x08mediaKey\x18\x01 \x01(\x0c\x12\x12\n\ndirectPath\x18\x02 \x01(\t\x12\x0e\n\x06handle\x18\x03 \x01(\t\x12\x15\n\rfileSizeBytes\x18\x04 \x01(\x04\x12\x12\n\nfileSha256\x18\x05 \x01(\x0c\x12\x15\n\rfileEncSha256\x18\x06 \x01(\x0c\"\xd9\x01\n\x05\x46ield\x12\x15\n\nminVersion\x18\x01 \x01(\r:\x01\x31\x12\x12\n\nmaxVersion\x18\x02 \x01(\r\x12\x1f\n\x17notReportableMinVersion\x18\x03 \x01(\r\x12\x11\n\tisMessage\x18\x04 \x01(\x08\x12/\n\x08subfield\x18\x05 \x03(\x0b\x32\x1d.whatsapp.Field.SubfieldEntry\x1a@\n\rSubfieldEntry\x12\x0b\n\x03key\x18\x01 \x01(\r\x12\x1e\n\x05value\x18\x02 \x01(\x0b\x32\x0f.whatsapp.Field:\x02\x38\x01\"\xe7\x01\n\x0f\x46ingerprintData\x12\x11\n\tpublicKey\x18\x01 \x01(\x0c\x12\x14\n\x0cpnIdentifier\x18\x02 \x01(\x0c\x12\x15\n\rlidIdentifier\x18\x03 \x01(\x0c\x12\x1a\n\x12usernameIdentifier\x18\x04 \x01(\x0c\x12:\n\x0bhostedState\x18\x05 \x01(\x0e\x32%.whatsapp.FingerprintData.HostedState\x12\x17\n\x0fhashedPublicKey\x18\x06 \x01(\x0c\"#\n\x0bHostedState\x12\x08\n\x04\x45\x32\x45\x45\x10\x00\x12\n\n\x06HOSTED\x10\x01\"Q\n\x19\x46orwardedAIBotMessageInfo\x12\x0f\n\x07\x62otName\x18\x01 \x01(\t\x12\x0e\n\x06\x62otJid\x18\x02 \x01(\t\x12\x13\n\x0b\x63reatorName\x18\x03 \x01(\t\"&\n\x10GenerateMekInput\x12\x12\n\nepochHeads\x18\x01 \x03(\x0c\"5\n\x11GenerateMekResult\x12 \n\x03mek\x18\x01 \x02(\x0b\x32\x13.whatsapp.MekBundle\"0\n\x1aGenerateMekRosterHashInput\x12\x12\n\nepochHeads\x18\x01 \x03(\x0c\"1\n\x1bGenerateMekRosterHashResult\x12\x12\n\nrosterHash\x18\x01 \x02(\x0c\"\xa5\x07\n\x0eGlobalSettings\x12\x38\n\x13lightThemeWallpaper\x18\x01 \x01(\x0b\x32\x1b.whatsapp.WallpaperSettings\x12\x32\n\x0fmediaVisibility\x18\x02 \x01(\x0e\x32\x19.whatsapp.MediaVisibility\x12\x37\n\x12\x64\x61rkThemeWallpaper\x18\x03 \x01(\x0b\x32\x1b.whatsapp.WallpaperSettings\x12\x38\n\x10\x61utoDownloadWiFi\x18\x04 \x01(\x0b\x32\x1e.whatsapp.AutoDownloadSettings\x12<\n\x14\x61utoDownloadCellular\x18\x05 \x01(\x0b\x32\x1e.whatsapp.AutoDownloadSettings\x12;\n\x13\x61utoDownloadRoaming\x18\x06 \x01(\x0b\x32\x1e.whatsapp.AutoDownloadSettings\x12*\n\"showIndividualNotificationsPreview\x18\x07 \x01(\x08\x12%\n\x1dshowGroupNotificationsPreview\x18\x08 \x01(\x08\x12 \n\x18\x64isappearingModeDuration\x18\t \x01(\x05\x12!\n\x19\x64isappearingModeTimestamp\x18\n \x01(\x03\x12\x38\n\x12\x61vatarUserSettings\x18\x0b \x01(\x0b\x32\x1c.whatsapp.AvatarUserSettings\x12\x10\n\x08\x66ontSize\x18\x0c \x01(\x05\x12\x1d\n\x15securityNotifications\x18\r \x01(\x08\x12\x1a\n\x12\x61utoUnarchiveChats\x18\x0e \x01(\x08\x12\x18\n\x10videoQualityMode\x18\x0f \x01(\x05\x12\x18\n\x10photoQualityMode\x18\x10 \x01(\x05\x12\x46\n\x1eindividualNotificationSettings\x18\x11 \x01(\x0b\x32\x1e.whatsapp.NotificationSettings\x12\x41\n\x19groupNotificationSettings\x18\x12 \x01(\x0b\x32\x1e.whatsapp.NotificationSettings\x12\x34\n\x10\x63hatLockSettings\x18\x13 \x01(\x0b\x32\x1a.whatsapp.ChatLockSettings\x12#\n\x1b\x63hatDbLidMigrationTimestamp\x18\x14 \x01(\x03\"\xfd\x01\n\x0cGroupHistory\x12*\n\x08messages\x18\x01 \x03(\x0b\x32\x18.whatsapp.WebMessageInfo\x12Q\n\x1funcountedAssociatedMessageLists\x18\x02 \x03(\x0b\x32(.whatsapp.UnCountedAssociatedMessageList\x12\x31\n\x0f\x63ommentMessages\x18\x03 \x03(\x0b\x32\x18.whatsapp.WebMessageInfo\x12;\n\x19outOfWindowPinnedMessages\x18\x04 \x03(\x0b\x32\x18.whatsapp.WebMessageInfo\"\xb6\x02\n\x16GroupHistoryBundleInfo\x12N\n\x1e\x64\x65precatedMessageHistoryBundle\x18\x01 \x01(\x0b\x32&.whatsapp.Message.MessageHistoryBundle\x12\x43\n\x0cprocessState\x18\x02 \x01(\x0e\x32-.whatsapp.GroupHistoryBundleInfo.ProcessState\"\x86\x01\n\x0cProcessState\x12\x10\n\x0cNOT_INJECTED\x10\x00\x12\x0c\n\x08INJECTED\x10\x01\x12\x14\n\x10INJECTED_PARTIAL\x10\x02\x12\x14\n\x10INJECTION_FAILED\x10\x03\x12\x1d\n\x19INJECTION_FAILED_NO_RETRY\x10\x04\x12\x0b\n\x07\x44\x45\x44UPED\x10\x05\"y\n!GroupHistoryIndividualMessageInfo\x12.\n\x10\x62undleMessageKey\x18\x01 \x01(\x0b\x32\x14.whatsapp.MessageKey\x12$\n\x1c\x65\x64itedAfterReceivedAsHistory\x18\x02 \x01(\x08\"\xcd\x02\n\x1cGroupHistoryWithMessageBytes\x12:\n\x08messages\x18\x01 \x03(\x0b\x32(.whatsapp.WebMessageInfoWithMessageBytes\x12\x61\n\x1funcountedAssociatedMessageLists\x18\x02 \x03(\x0b\x32\x38.whatsapp.UnCountedAssociatedMessageListWithMessageBytes\x12\x41\n\x0f\x63ommentMessages\x18\x03 \x03(\x0b\x32(.whatsapp.WebMessageInfoWithMessageBytes\x12K\n\x19outOfWindowPinnedMessages\x18\x04 \x03(\x0b\x32(.whatsapp.WebMessageInfoWithMessageBytes\"6\n\x0cGroupMention\x12\x10\n\x08groupJid\x18\x01 \x01(\t\x12\x14\n\x0cgroupSubject\x18\x02 \x01(\t\"\xae\x01\n\x10GroupParticipant\x12\x0f\n\x07userJid\x18\x01 \x02(\t\x12-\n\x04rank\x18\x02 \x01(\x0e\x32\x1f.whatsapp.GroupParticipant.Rank\x12*\n\x0bmemberLabel\x18\x03 \x01(\x0b\x32\x15.whatsapp.MemberLabel\".\n\x04Rank\x12\x0b\n\x07REGULAR\x10\x00\x12\t\n\x05\x41\x44MIN\x10\x01\x12\x0e\n\nSUPERADMIN\x10\x02\"C\n\x11GroupRootKeyShare\x12.\n\x04keys\x18\x01 \x03(\x0b\x32 .whatsapp.GroupRootKeyShareEntry\"t\n\x16GroupRootKeyShareEntry\x12\x14\n\x0cgroupRootKey\x18\x01 \x01(\x0c\x12\r\n\x05keyId\x18\x02 \x01(\t\x12\x19\n\x11\x65xpiryTimestampMs\x18\x03 \x01(\x03\x12\x1a\n\x12\x63reatedTimestampMs\x18\x04 \x01(\x03\"\x9d\x07\n\x10HandshakeMessage\x12;\n\x0b\x63lientHello\x18\x02 \x01(\x0b\x32&.whatsapp.HandshakeMessage.ClientHello\x12;\n\x0bserverHello\x18\x03 \x01(\x0b\x32&.whatsapp.HandshakeMessage.ServerHello\x12=\n\x0c\x63lientFinish\x18\x04 \x01(\x0b\x32\'.whatsapp.HandshakeMessage.ClientFinish\x1ay\n\x0c\x43lientFinish\x12\x0e\n\x06static\x18\x01 \x01(\x0c\x12\x0f\n\x07payload\x18\x02 \x01(\x0c\x12\x1a\n\x12\x65xtendedCiphertext\x18\x03 \x01(\x0c\x12\x13\n\x0bpaddedBytes\x18\x04 \x01(\x0c\x12\x17\n\x0fsimulateXxkemFs\x18\x05 \x01(\x08\x1a\x9b\x02\n\x0b\x43lientHello\x12\x11\n\tephemeral\x18\x01 \x01(\x0c\x12\x0e\n\x06static\x18\x02 \x01(\x0c\x12\x0f\n\x07payload\x18\x03 \x01(\x0c\x12\x13\n\x0buseExtended\x18\x04 \x01(\x08\x12\x1a\n\x12\x65xtendedCiphertext\x18\x05 \x01(\x0c\x12\x13\n\x0bpaddedBytes\x18\x06 \x01(\x0c\x12\"\n\x1asendServerHelloPaddedBytes\x18\x07 \x01(\x08\x12\x17\n\x0fsimulateXxkemFs\x18\x08 \x01(\x08\x12:\n\x06pqMode\x18\t \x01(\x0e\x32*.whatsapp.HandshakeMessage.HandshakePqMode\x12\x19\n\x11\x65xtendedEphemeral\x18\n \x01(\x0c\x1a\x8b\x01\n\x0bServerHello\x12\x11\n\tephemeral\x18\x01 \x01(\x0c\x12\x0e\n\x06static\x18\x02 \x01(\x0c\x12\x0f\n\x07payload\x18\x03 \x01(\x0c\x12\x16\n\x0e\x65xtendedStatic\x18\x04 \x01(\x0c\x12\x14\n\x0cpaddingBytes\x18\x05 \x01(\x0c\x12\x1a\n\x12\x65xtendedCiphertext\x18\x06 \x01(\x0c\"\xa8\x01\n\x0fHandshakePqMode\x12\x1d\n\x19HANDSHAKE_PQ_MODE_UNKNOWN\x10\x00\x12\t\n\x05XXKEM\x10\x01\x12\x0c\n\x08XXKEM_FS\x10\x02\x12\r\n\tXXKEM_EPH\x10\t\x12\x10\n\x0cWA_CLASSICAL\x10\x03\x12\t\n\x05WA_PQ\x10\x04\x12\t\n\x05IKKEM\x10\x05\x12\x0c\n\x08IKKEM_FS\x10\x06\x12\x0b\n\x07XXKEM_2\x10\x07\x12\x0b\n\x07IKKEM_2\x10\x08\"I\n\x11HatchMetadataSync\x12\x0c\n\x04\x64\x61ta\x18\x01 \x01(\x0c\x12\x13\n\x0btimestampMs\x18\x02 \x01(\x03\x12\x11\n\trequestId\x18\x03 \x01(\t\"\x9e\x08\n\x0bHistorySync\x12\x37\n\x08syncType\x18\x01 \x02(\x0e\x32%.whatsapp.HistorySync.HistorySyncType\x12-\n\rconversations\x18\x02 \x03(\x0b\x32\x16.whatsapp.Conversation\x12\x32\n\x10statusV3Messages\x18\x03 \x03(\x0b\x32\x18.whatsapp.WebMessageInfo\x12\x12\n\nchunkOrder\x18\x05 \x01(\r\x12\x10\n\x08progress\x18\x06 \x01(\r\x12%\n\tpushnames\x18\x07 \x03(\x0b\x32\x12.whatsapp.Pushname\x12\x30\n\x0eglobalSettings\x18\x08 \x01(\x0b\x32\x18.whatsapp.GlobalSettings\x12\x1a\n\x12threadIdUserSecret\x18\t \x01(\x0c\x12\x1f\n\x17threadDsTimeframeOffset\x18\n \x01(\r\x12\x31\n\x0erecentStickers\x18\x0b \x03(\x0b\x32\x19.whatsapp.StickerMetadata\x12\x34\n\x10pastParticipants\x18\x0c \x03(\x0b\x32\x1a.whatsapp.PastParticipants\x12/\n\x0e\x63\x61llLogRecords\x18\r \x03(\x0b\x32\x17.whatsapp.CallLogRecord\x12\x41\n\x0f\x61iWaitListState\x18\x0e \x01(\x0e\x32(.whatsapp.HistorySync.BotAIWaitListState\x12\x43\n\x18phoneNumberToLidMappings\x18\x0f \x03(\x0b\x32!.whatsapp.PhoneNumberToLIDMapping\x12\x1a\n\x12\x63ompanionMetaNonce\x18\x10 \x01(\t\x12,\n$shareableChatIdentifierEncryptionKey\x18\x11 \x01(\x0c\x12#\n\x08\x61\x63\x63ounts\x18\x12 \x03(\x0b\x32\x11.whatsapp.Account\x12\x0f\n\x07nctSalt\x18\x13 \x01(\x0c\x12/\n\x0einlineContacts\x18\x14 \x03(\x0b\x32\x17.whatsapp.InlineContact\x12\x1e\n\x16inlineContactsProvided\x18\x15 \x01(\x08\"7\n\x12\x42otAIWaitListState\x12\x0f\n\x0bIN_WAITLIST\x10\x00\x12\x10\n\x0c\x41I_AVAILABLE\x10\x01\"\x8a\x01\n\x0fHistorySyncType\x12\x15\n\x11INITIAL_BOOTSTRAP\x10\x00\x12\x15\n\x11INITIAL_STATUS_V3\x10\x01\x12\x08\n\x04\x46ULL\x10\x02\x12\n\n\x06RECENT\x10\x03\x12\r\n\tPUSH_NAME\x10\x04\x12\x15\n\x11NON_BLOCKING_DATA\x10\x05\x12\r\n\tON_DEMAND\x10\x06\"O\n\x0eHistorySyncMsg\x12)\n\x07message\x18\x01 \x01(\x0b\x32\x18.whatsapp.WebMessageInfo\x12\x12\n\nmsgOrderId\x18\x02 \x01(\x04\"\x99\x05\n\x16HydratedTemplateButton\x12\r\n\x05index\x18\x04 \x01(\r\x12U\n\x10quickReplyButton\x18\x01 \x01(\x0b\x32\x39.whatsapp.HydratedTemplateButton.HydratedQuickReplyButtonH\x00\x12G\n\turlButton\x18\x02 \x01(\x0b\x32\x32.whatsapp.HydratedTemplateButton.HydratedURLButtonH\x00\x12I\n\ncallButton\x18\x03 \x01(\x0b\x32\x33.whatsapp.HydratedTemplateButton.HydratedCallButtonH\x00\x1a>\n\x12HydratedCallButton\x12\x13\n\x0b\x64isplayText\x18\x01 \x01(\t\x12\x13\n\x0bphoneNumber\x18\x02 \x01(\t\x1a;\n\x18HydratedQuickReplyButton\x12\x13\n\x0b\x64isplayText\x18\x01 \x01(\t\x12\n\n\x02id\x18\x02 \x01(\t\x1a\xf5\x01\n\x11HydratedURLButton\x12\x13\n\x0b\x64isplayText\x18\x01 \x01(\t\x12\x0b\n\x03url\x18\x02 \x01(\t\x12\x19\n\x11\x63onsentedUsersUrl\x18\x03 \x01(\t\x12g\n\x13webviewPresentation\x18\x04 \x01(\x0e\x32J.whatsapp.HydratedTemplateButton.HydratedURLButton.WebviewPresentationType\":\n\x17WebviewPresentationType\x12\x08\n\x04\x46ULL\x10\x01\x12\x08\n\x04TALL\x10\x02\x12\x0b\n\x07\x43OMPACT\x10\x03\x42\x10\n\x0ehydratedButton\"A\n\x18IdentityKeyPairStructure\x12\x11\n\tpublicKey\x18\x01 \x01(\x0c\x12\x12\n\nprivateKey\x18\x02 \x01(\x0c\"@\n\x19IdentityVerificationState\x12\x10\n\x08verified\x18\x01 \x01(\x08\x12\x11\n\tactionSeq\x18\x02 \x01(\x04\"\x97\x07\n\x16InThreadSurveyMetadata\x12\x16\n\x0etessaSessionId\x18\x01 \x01(\t\x12\x16\n\x0esimonSessionId\x18\x02 \x01(\t\x12\x15\n\rsimonSurveyId\x18\x03 \x01(\t\x12\x13\n\x0btessaRootId\x18\x04 \x01(\t\x12\x11\n\trequestId\x18\x05 \x01(\t\x12\x12\n\ntessaEvent\x18\x06 \x01(\t\x12\x1c\n\x14invitationHeaderText\x18\x07 \x01(\t\x12\x1a\n\x12invitationBodyText\x18\x08 \x01(\t\x12\x19\n\x11invitationCtaText\x18\t \x01(\t\x12\x18\n\x10invitationCtaUrl\x18\n \x01(\t\x12\x13\n\x0bsurveyTitle\x18\x0b \x01(\t\x12J\n\tquestions\x18\x0c \x03(\x0b\x32\x37.whatsapp.InThreadSurveyMetadata.InThreadSurveyQuestion\x12 \n\x18surveyContinueButtonText\x18\r \x01(\t\x12\x1e\n\x16surveySubmitButtonText\x18\x0e \x01(\t\x12\x1c\n\x14privacyStatementFull\x18\x0f \x01(\t\x12\x62\n\x15privacyStatementParts\x18\x10 \x03(\x0b\x32\x43.whatsapp.InThreadSurveyMetadata.InThreadSurveyPrivacyStatementPart\x12\x19\n\x11\x66\x65\x65\x64\x62\x61\x63kToastText\x18\x11 \x01(\t\x12\x1a\n\x12startQuestionIndex\x18\x12 \x01(\x05\x1aY\n\x14InThreadSurveyOption\x12\x13\n\x0bstringValue\x18\x01 \x01(\t\x12\x14\n\x0cnumericValue\x18\x02 \x01(\r\x12\x16\n\x0etextTranslated\x18\x03 \x01(\t\x1a?\n\"InThreadSurveyPrivacyStatementPart\x12\x0c\n\x04text\x18\x01 \x01(\t\x12\x0b\n\x03url\x18\x02 \x01(\t\x1a\x92\x01\n\x16InThreadSurveyQuestion\x12\x14\n\x0cquestionText\x18\x01 \x01(\t\x12\x12\n\nquestionId\x18\x02 \x01(\t\x12N\n\x0fquestionOptions\x18\x03 \x03(\x0b\x32\x35.whatsapp.InThreadSurveyMetadata.InThreadSurveyOption\"e\n\rInlineContact\x12\r\n\x05pnJid\x18\x01 \x01(\t\x12\x0e\n\x06lidJid\x18\x02 \x01(\t\x12\x10\n\x08\x66ullName\x18\x03 \x01(\t\x12\x11\n\tfirstName\x18\x04 \x01(\t\x12\x10\n\x08username\x18\x05 \x01(\t\"\x8f\x04\n\x15InteractiveAnnotation\x12(\n\x0fpolygonVertices\x18\x01 \x03(\x0b\x32\x0f.whatsapp.Point\x12\x1e\n\x16shouldSkipConfirmation\x18\x04 \x01(\x08\x12\x32\n\x0f\x65mbeddedContent\x18\x05 \x01(\x0b\x32\x19.whatsapp.EmbeddedContent\x12\x46\n\x0estatusLinkType\x18\x08 \x01(\x0e\x32..whatsapp.InteractiveAnnotation.StatusLinkType\x12&\n\x08location\x18\x02 \x01(\x0b\x32\x12.whatsapp.LocationH\x00\x12J\n\nnewsletter\x18\x03 \x01(\x0b\x32\x34.whatsapp.ContextInfo.ForwardedNewsletterMessageInfoH\x00\x12\x18\n\x0e\x65mbeddedAction\x18\x06 \x01(\x08H\x00\x12,\n\ttapAction\x18\x07 \x01(\x0b\x32\x17.whatsapp.TapLinkActionH\x00\"j\n\x0eStatusLinkType\x12\x1b\n\x17RASTERIZED_LINK_PREVIEW\x10\x01\x12\x1d\n\x19RASTERIZED_LINK_TRUNCATED\x10\x02\x12\x1c\n\x18RASTERIZED_LINK_FULL_URL\x10\x03\x42\x08\n\x06\x61\x63tion\"E\n$InteractiveMessageAdditionalMetadata\x12\x1d\n\x15isGalaxyFlowCompleted\x18\x01 \x01(\x08\"\xb7\x01\n\nKeepInChat\x12$\n\x08keepType\x18\x01 \x01(\x0e\x32\x12.whatsapp.KeepType\x12\x17\n\x0fserverTimestamp\x18\x02 \x01(\x03\x12!\n\x03key\x18\x03 \x01(\x0b\x32\x14.whatsapp.MessageKey\x12\x11\n\tdeviceJid\x18\x04 \x01(\t\x12\x19\n\x11\x63lientTimestampMs\x18\x05 \x01(\x03\x12\x19\n\x11serverTimestampMs\x18\x06 \x01(\x03\"t\n\x12KeyExchangeMessage\x12\n\n\x02id\x18\x01 \x01(\r\x12\x0f\n\x07\x62\x61seKey\x18\x02 \x01(\x0c\x12\x12\n\nratchetKey\x18\x03 \x01(\x0c\x12\x13\n\x0bidentityKey\x18\x04 \x01(\x0c\x12\x18\n\x10\x62\x61seKeySignature\x18\x05 \x01(\x0c\"\x13\n\x05KeyId\x12\n\n\x02id\x18\x01 \x01(\x0c\"?\n\x1eLIDMigrationMappingSyncMessage\x12\x1d\n\x15\x65ncodedMappingPayload\x18\x01 \x01(\x0c\"I\n\x13LIDMigrationMapping\x12\n\n\x02pn\x18\x01 \x02(\x04\x12\x13\n\x0b\x61ssignedLid\x18\x02 \x02(\x04\x12\x11\n\tlatestLid\x18\x03 \x01(\x04\"z\n\x1eLIDMigrationMappingSyncPayload\x12\x36\n\x0fpnToLidMappings\x18\x01 \x03(\x0b\x32\x1d.whatsapp.LIDMigrationMapping\x12 \n\x18\x63hatDbMigrationTimestamp\x18\x02 \x01(\x04\"\x8c\x03\n\x12LabyrinthWaCommand\x12\x38\n\x11\x63reateBackupInput\x18\x01 \x01(\x0b\x32\x1b.whatsapp.CreateBackupInputH\x00\x12<\n\x13\x65ncryptMessageInput\x18\x02 \x01(\x0b\x32\x1d.whatsapp.EncryptMessageInputH\x00\x12<\n\x13\x64\x65\x63ryptMessageInput\x18\x03 \x01(\x0b\x32\x1d.whatsapp.DecryptMessageInputH\x00\x12\x36\n\x10orfThreadIdInput\x18\x04 \x01(\x0b\x32\x1a.whatsapp.OrfThreadIdInputH\x00\x12@\n\x15\x64\x65riveMessageKeyInput\x18\x05 \x01(\x0b\x32\x1f.whatsapp.DeriveMessageKeyInputH\x00\x12\x36\n\x10rotateEpochInput\x18\x06 \x01(\x0b\x32\x1a.whatsapp.RotateEpochInputH\x00\x42\x0e\n\x0c\x63ommandInput\"\x8a\x01\n\rLegacyMessage\x12\x44\n\x14\x65ventResponseMessage\x18\x01 \x01(\x0b\x32&.whatsapp.Message.EventResponseMessage\x12\x33\n\x08pollVote\x18\x02 \x01(\x0b\x32!.whatsapp.Message.PollVoteMessage\"\xff\x01\n\x0cLimitSharing\x12\x16\n\x0esharingLimited\x18\x01 \x01(\x08\x12<\n\x07trigger\x18\x02 \x01(\x0e\x32\".whatsapp.LimitSharing.TriggerType:\x07UNKNOWN\x12$\n\x1climitSharingSettingTimestamp\x18\x03 \x01(\x03\x12\x15\n\rinitiatedByMe\x18\x04 \x01(\x08\"\\\n\x0bTriggerType\x12\x0b\n\x07UNKNOWN\x10\x00\x12\x10\n\x0c\x43HAT_SETTING\x10\x01\x12\x1b\n\x17\x42IZ_SUPPORTS_FB_HOSTING\x10\x02\x12\x11\n\rUNKNOWN_GROUP\x10\x03\"=\n\rLocalizedName\x12\n\n\x02lg\x18\x01 \x01(\t\x12\n\n\x02lc\x18\x02 \x01(\t\x12\x14\n\x0cverifiedName\x18\x03 \x01(\t\"K\n\x08Location\x12\x17\n\x0f\x64\x65greesLatitude\x18\x01 \x01(\x01\x12\x18\n\x10\x64\x65greesLongitude\x18\x02 \x01(\x01\x12\x0c\n\x04name\x18\x03 \x01(\t\"\xb4\x06\n\x17MandrakeDecryptMekInput\x12\x14\n\x0c\x65ncryptedMek\x18\x01 \x02(\x0c\x12\x16\n\x0erecipientsHash\x18\x04 \x02(\x0c\x12\x16\n\x0erecipientEncSk\x18\x05 \x02(\x0c\x12\x1c\n\x14mekEncryptionVersion\x18\x06 \x01(\x04\x12)\n\x04\x63onf\x18\x07 \x01(\x0b\x32\x1b.whatsapp.MinosClientConfig\x12:\n\x0crecipientMmk\x18\x08 \x02(\x0b\x32$.whatsapp.MessagingMailboxPublicData\x12\r\n\x05mekId\x18\t \x01(\x0c\x12\x41\n\x18recipientMembershipProof\x18\n \x01(\x0b\x32\x1f.whatsapp.MerkleMembershipProof\x12J\n\tmmkSender\x18\x02 \x01(\x0b\x32\x35.whatsapp.MandrakeDecryptMekInput.MmkSenderPublicDataH\x00\x12N\n\x0b\x65pochSender\x18\x03 \x01(\x0b\x32\x37.whatsapp.MandrakeDecryptMekInput.EpochSenderPublicDataH\x00\x12\x64\n\x16precomputedEpochSender\x18\x0b \x01(\x0b\x32\x42.whatsapp.MandrakeDecryptMekInput.PrecomputedEpochSenderPublicDataH\x00\x1aK\n\x15\x45pochSenderPublicData\x12\x32\n\x0f\x65pochPublicData\x18\x01 \x02(\x0b\x32\x19.whatsapp.EpochPublicData\x1aR\n\x13MmkSenderPublicData\x12;\n\rmmkPublicData\x18\x01 \x02(\x0b\x32$.whatsapp.MessagingMailboxPublicData\x1a\x45\n PrecomputedEpochSenderPublicData\x12\x0e\n\x06\x61uthPk\x18\x01 \x02(\x0c\x12\x11\n\tepochHead\x18\x02 \x02(\x0c\x42\x12\n\x10senderPublicData\"t\n\x18MandrakeDecryptMekResult\x12\x36\n\x07success\x18\x01 \x01(\x0b\x32#.whatsapp.MandrakeDecryptMekSuccessH\x00\x12\x16\n\x0c\x65rrorMessage\x18\x02 \x01(\tH\x00\x42\x08\n\x06result\"(\n\x19MandrakeDecryptMekSuccess\x12\x0b\n\x03mek\x18\x01 \x02(\x0c\"\xdd\x05\n\x17MandrakeEncryptMekInput\x12(\n\x03mek\x18\x01 \x02(\x0b\x32\x1b.whatsapp.MandrakeMekBundle\x12\x38\n\nrecipients\x18\x02 \x03(\x0b\x32$.whatsapp.MessagingMailboxPublicData\x12)\n\x04\x63onf\x18\x05 \x01(\x0b\x32\x1b.whatsapp.MinosClientConfig\x12@\n\tmmkSender\x18\x03 \x01(\x0b\x32+.whatsapp.MandrakeEncryptMekInput.MmkSenderH\x00\x12\x44\n\x0b\x65pochSender\x18\x04 \x01(\x0b\x32-.whatsapp.MandrakeEncryptMekInput.EpochSenderH\x00\x12V\n\x14\x64\x65tachedDeviceSender\x18\x06 \x01(\x0b\x32\x36.whatsapp.MandrakeEncryptMekInput.DetachedDeviceSenderH\x00\x1a|\n\x14\x44\x65tachedDeviceSender\x12\x44\n\x18\x64\x65tachedDevicePublicData\x18\x01 \x02(\x0b\x32\".whatsapp.DetachedDevicePublicData\x12\x0e\n\x06\x61uthSk\x18\x02 \x02(\x0c\x12\x0e\n\x06\x61uthPk\x18\x03 \x02(\x0c\x1a\x61\n\x0b\x45pochSender\x12\x32\n\x0f\x65pochPublicData\x18\x01 \x02(\x0b\x32\x19.whatsapp.EpochPublicData\x12\x0e\n\x06\x61uthSk\x18\x02 \x02(\x0c\x12\x0e\n\x06\x61uthPk\x18\x03 \x02(\x0c\x1ah\n\tMmkSender\x12;\n\rmmkPublicData\x18\x01 \x02(\x0b\x32$.whatsapp.MessagingMailboxPublicData\x12\x0e\n\x06\x61uthSk\x18\x02 \x02(\x0c\x12\x0e\n\x06\x61uthPk\x18\x03 \x02(\x0c\x42\x08\n\x06sender\"t\n\x18MandrakeEncryptMekResult\x12\x36\n\x07success\x18\x01 \x01(\x0b\x32#.whatsapp.MandrakeEncryptMekSuccessH\x00\x12\x16\n\x0c\x65rrorMessage\x18\x02 \x01(\tH\x00\x42\x08\n\x06result\"\xd0\x02\n\x19MandrakeEncryptMekSuccess\x12Y\n\rdistributions\x18\x01 \x03(\x0b\x32\x42.whatsapp.MandrakeEncryptMekSuccess.MekDistributionSingleRecipient\x12\x16\n\x0erecipientsHash\x18\x02 \x02(\x0c\x12\x0f\n\x07version\x18\x03 \x02(\x04\x1a\xae\x01\n\x1eMekDistributionSingleRecipient\x12\x14\n\x0c\x65ncryptedMek\x18\x01 \x02(\x0c\x12\x33\n\x05toMmk\x18\x02 \x02(\x0b\x32$.whatsapp.MessagingMailboxPublicData\x12\x41\n\x18recipientMembershipProof\x18\x03 \x01(\x0b\x32\x1f.whatsapp.MerkleMembershipProof\"H\n\x11MandrakeMekBundle\x12\x0b\n\x03key\x18\x01 \x02(\x0c\x12\r\n\x05mekId\x18\x02 \x02(\x0c\x12\x17\n\x0fmailboxHeadHash\x18\x03 \x02(\x0c\"\xa5\x02\n\x16MandrakeOpenEpochInput\x12\x10\n\x08userFbid\x18\x01 \x02(\t\x12\x13\n\x0b\x65pochNumber\x18\x02 \x02(\x04\x12\x15\n\rexportRootKey\x18\x03 \x02(\x0c\x12\x1d\n\x15previousExportRootKey\x18\x04 \x02(\x0c\x12\x1b\n\x13previousEpochNumber\x18\x05 \x02(\x04\x12\x19\n\x11previousEpochHead\x18\x06 \x02(\x0c\x12\x39\n\x0bpreviousMmk\x18\x07 \x01(\x0b\x32$.whatsapp.MessagingMailboxPublicData\x12;\n\x0f\x64\x65tachedDevices\x18\x08 \x03(\x0b\x32\".whatsapp.DetachedDevicePublicData\"r\n\x17MandrakeOpenEpochResult\x12\x35\n\x07success\x18\x01 \x01(\x0b\x32\".whatsapp.MandrakeOpenEpochSuccessH\x00\x12\x16\n\x0c\x65rrorMessage\x18\x02 \x01(\tH\x00\x42\x08\n\x06result\"\x9b\x01\n\x18MandrakeOpenEpochSuccess\x12\x34\n\x10minosSignedEpoch\x18\x01 \x02(\x0b\x32\x1a.whatsapp.MinosSignedEpoch\x12I\n\x15signedMmkDistribution\x18\x02 \x02(\x0b\x32*.whatsapp.SignedMmkDistributionFromMailbox\"\x9a\x01\n\x1dMandrakeOpenInitialEpochInput\x12\x10\n\x08userFbid\x18\x01 \x02(\t\x12\x13\n\x0b\x65pochNumber\x18\x02 \x02(\x04\x12\x15\n\rexportRootKey\x18\x03 \x02(\x0c\x12;\n\x0f\x64\x65tachedDevices\x18\x04 \x03(\x0b\x32\".whatsapp.DetachedDevicePublicData\"y\n\x1eMandrakeOpenInitialEpochResult\x12\x35\n\x07success\x18\x01 \x01(\x0b\x32\".whatsapp.MandrakeOpenEpochSuccessH\x00\x12\x16\n\x0c\x65rrorMessage\x18\x02 \x01(\tH\x00\x42\x08\n\x06result\"\xb1\x01\n-MandrakeValidateNewMmkFromDetachedDeviceInput\x12\x36\n\rmmkFromDevice\x18\x01 \x02(\x0b\x32\x1f.whatsapp.MmkFromDetachedDevice\x12\x11\n\tsignature\x18\x02 \x02(\x0c\x12\x35\n\x07prevMmk\x18\x03 \x02(\x0b\x32$.whatsapp.MessagingMailboxPublicData\"\xdc\x01\n&MandrakeValidateNewMmkFromMailboxInput\x12\x34\n\x06newMmk\x18\x01 \x02(\x0b\x32$.whatsapp.MessagingMailboxPublicData\x12\x11\n\tsignature\x18\x02 \x02(\x0c\x12\x35\n\x07prevMmk\x18\x03 \x01(\x0b\x32$.whatsapp.MessagingMailboxPublicData\x12\x32\n\x0f\x65pochPublicData\x18\x04 \x02(\x0b\x32\x19.whatsapp.EpochPublicData\"Q\n\x1cMandrakeValidateNewMmkResult\x12\x0f\n\x05valid\x18\x01 \x01(\x08H\x00\x12\x16\n\x0c\x65rrorMessage\x18\x02 \x01(\tH\x00\x42\x08\n\x06result\"\x1e\n\tMediaData\x12\x11\n\tlocalPath\x18\x01 \x01(\t\"Y\n\x0fMediaDomainInfo\x12\x30\n\x0emediaKeyDomain\x18\x01 \x01(\x0e\x32\x18.whatsapp.MediaKeyDomain\x12\x14\n\x0c\x65\x32\x45\x65MediaKey\x18\x02 \x01(\x0c\"\xb9\x05\n\nMediaEntry\x12\x12\n\nfileSha256\x18\x01 \x01(\x0c\x12\x10\n\x08mediaKey\x18\x02 \x01(\x0c\x12\x15\n\rfileEncSha256\x18\x03 \x01(\x0c\x12\x12\n\ndirectPath\x18\x04 \x01(\t\x12\x19\n\x11mediaKeyTimestamp\x18\x05 \x01(\x03\x12\x17\n\x0fserverMediaType\x18\x06 \x01(\t\x12\x13\n\x0buploadToken\x18\x07 \x01(\x0c\x12\x1a\n\x12validatedTimestamp\x18\x08 \x01(\x0c\x12\x0f\n\x07sidecar\x18\t \x01(\x0c\x12\x10\n\x08objectId\x18\n \x01(\t\x12\x0c\n\x04\x66\x62id\x18\x0b \x01(\t\x12I\n\x15\x64ownloadableThumbnail\x18\x0c \x01(\x0b\x32*.whatsapp.MediaEntry.DownloadableThumbnail\x12\x0e\n\x06handle\x18\r \x01(\t\x12\x10\n\x08\x66ilename\x18\x0e \x01(\t\x12K\n\x16progressiveJpegDetails\x18\x0f \x01(\x0b\x32+.whatsapp.MediaEntry.ProgressiveJpegDetails\x12\x0c\n\x04size\x18\x10 \x01(\x03\x12$\n\x1clastDownloadAttemptTimestamp\x18\x11 \x01(\x03\x1a\x95\x01\n\x15\x44ownloadableThumbnail\x12\x12\n\nfileSha256\x18\x01 \x01(\x0c\x12\x15\n\rfileEncSha256\x18\x02 \x01(\x0c\x12\x12\n\ndirectPath\x18\x03 \x01(\t\x12\x10\n\x08mediaKey\x18\x04 \x01(\x0c\x12\x19\n\x11mediaKeyTimestamp\x18\x05 \x01(\x03\x12\x10\n\x08objectId\x18\x06 \x01(\t\x1a>\n\x16ProgressiveJpegDetails\x12\x13\n\x0bscanLengths\x18\x01 \x03(\r\x12\x0f\n\x07sidecar\x18\x02 \x01(\x0c\"W\n\x12MediaNotifyMessage\x12\x16\n\x0e\x65xpressPathUrl\x18\x01 \x01(\t\x12\x15\n\rfileEncSha256\x18\x02 \x01(\x0c\x12\x12\n\nfileLength\x18\x03 \x01(\x04\"\xe5\x01\n\x16MediaRetryNotification\x12\x10\n\x08stanzaId\x18\x01 \x01(\t\x12\x12\n\ndirectPath\x18\x02 \x01(\t\x12;\n\x06result\x18\x03 \x01(\x0e\x32+.whatsapp.MediaRetryNotification.ResultType\x12\x15\n\rmessageSecret\x18\x04 \x01(\x0c\"Q\n\nResultType\x12\x11\n\rGENERAL_ERROR\x10\x00\x12\x0b\n\x07SUCCESS\x10\x01\x12\r\n\tNOT_FOUND\x10\x02\x12\x14\n\x10\x44\x45\x43RYPTION_ERROR\x10\x03\";\n\tMekBundle\x12\x0b\n\x03key\x18\x01 \x02(\x0c\x12\r\n\x05mekId\x18\x02 \x02(\x0c\x12\x12\n\nrosterHash\x18\x03 \x02(\x0c\"4\n\x0bMemberLabel\x12\r\n\x05label\x18\x01 \x01(\t\x12\x16\n\x0elabelTimestamp\x18\x02 \x01(\x03\"t\n\x07Mention\x12\x33\n\x0bmentionType\x18\x01 \x01(\x0e\x32\x1e.whatsapp.MENTION_MENTION_TYPE\x12\x14\n\x0cmentionedJid\x18\x02 \x01(\t\x12\x0e\n\x06offset\x18\x03 \x01(\r\x12\x0e\n\x06length\x18\x04 \x01(\r\"\\\n\x15MerkleMembershipProof\x12\r\n\x05proof\x18\x01 \x02(\x0c\x12\x0c\n\x04root\x18\x02 \x02(\x0c\x12\x11\n\tleafIndex\x18\x03 \x02(\x04\x12\x13\n\x0btotalLeaves\x18\x04 \x02(\x04\"\xa3\x8d\x03\n\x07Message\x12\x14\n\x0c\x63onversation\x18\x01 \x01(\t\x12T\n\x1csenderKeyDistributionMessage\x18\x02 \x01(\x0b\x32..whatsapp.Message.SenderKeyDistributionMessage\x12\x34\n\x0cimageMessage\x18\x03 \x01(\x0b\x32\x1e.whatsapp.Message.ImageMessage\x12\x38\n\x0e\x63ontactMessage\x18\x04 \x01(\x0b\x32 .whatsapp.Message.ContactMessage\x12:\n\x0flocationMessage\x18\x05 \x01(\x0b\x32!.whatsapp.Message.LocationMessage\x12\x42\n\x13\x65xtendedTextMessage\x18\x06 \x01(\x0b\x32%.whatsapp.Message.ExtendedTextMessage\x12:\n\x0f\x64ocumentMessage\x18\x07 \x01(\x0b\x32!.whatsapp.Message.DocumentMessage\x12\x34\n\x0c\x61udioMessage\x18\x08 \x01(\x0b\x32\x1e.whatsapp.Message.AudioMessage\x12\x34\n\x0cvideoMessage\x18\t \x01(\x0b\x32\x1e.whatsapp.Message.VideoMessage\x12$\n\x04\x63\x61ll\x18\n \x01(\x0b\x32\x16.whatsapp.Message.Call\x12$\n\x04\x63hat\x18\x0b \x01(\x0b\x32\x16.whatsapp.Message.Chat\x12:\n\x0fprotocolMessage\x18\x0c \x01(\x0b\x32!.whatsapp.Message.ProtocolMessage\x12\x44\n\x14\x63ontactsArrayMessage\x18\r \x01(\x0b\x32&.whatsapp.Message.ContactsArrayMessage\x12J\n\x17highlyStructuredMessage\x18\x0e \x01(\x0b\x32).whatsapp.Message.HighlyStructuredMessage\x12\x62\n*fastRatchetKeySenderKeyDistributionMessage\x18\x0f \x01(\x0b\x32..whatsapp.Message.SenderKeyDistributionMessage\x12@\n\x12sendPaymentMessage\x18\x10 \x01(\x0b\x32$.whatsapp.Message.SendPaymentMessage\x12\x42\n\x13liveLocationMessage\x18\x12 \x01(\x0b\x32%.whatsapp.Message.LiveLocationMessage\x12\x46\n\x15requestPaymentMessage\x18\x16 \x01(\x0b\x32\'.whatsapp.Message.RequestPaymentMessage\x12T\n\x1c\x64\x65\x63linePaymentRequestMessage\x18\x17 \x01(\x0b\x32..whatsapp.Message.DeclinePaymentRequestMessage\x12R\n\x1b\x63\x61ncelPaymentRequestMessage\x18\x18 \x01(\x0b\x32-.whatsapp.Message.CancelPaymentRequestMessage\x12:\n\x0ftemplateMessage\x18\x19 \x01(\x0b\x32!.whatsapp.Message.TemplateMessage\x12\x38\n\x0estickerMessage\x18\x1a \x01(\x0b\x32 .whatsapp.Message.StickerMessage\x12@\n\x12groupInviteMessage\x18\x1c \x01(\x0b\x32$.whatsapp.Message.GroupInviteMessage\x12P\n\x1atemplateButtonReplyMessage\x18\x1d \x01(\x0b\x32,.whatsapp.Message.TemplateButtonReplyMessage\x12\x38\n\x0eproductMessage\x18\x1e \x01(\x0b\x32 .whatsapp.Message.ProductMessage\x12>\n\x11\x64\x65viceSentMessage\x18\x1f \x01(\x0b\x32#.whatsapp.Message.DeviceSentMessage\x12\x38\n\x12messageContextInfo\x18# \x01(\x0b\x32\x1c.whatsapp.MessageContextInfo\x12\x32\n\x0blistMessage\x18$ \x01(\x0b\x32\x1d.whatsapp.Message.ListMessage\x12=\n\x0fviewOnceMessage\x18% \x01(\x0b\x32$.whatsapp.Message.FutureProofMessage\x12\x34\n\x0corderMessage\x18& \x01(\x0b\x32\x1e.whatsapp.Message.OrderMessage\x12\x42\n\x13listResponseMessage\x18\' \x01(\x0b\x32%.whatsapp.Message.ListResponseMessage\x12>\n\x10\x65phemeralMessage\x18( \x01(\x0b\x32$.whatsapp.Message.FutureProofMessage\x12\x38\n\x0einvoiceMessage\x18) \x01(\x0b\x32 .whatsapp.Message.InvoiceMessage\x12\x38\n\x0e\x62uttonsMessage\x18* \x01(\x0b\x32 .whatsapp.Message.ButtonsMessage\x12H\n\x16\x62uttonsResponseMessage\x18+ \x01(\x0b\x32(.whatsapp.Message.ButtonsResponseMessage\x12\x44\n\x14paymentInviteMessage\x18, \x01(\x0b\x32&.whatsapp.Message.PaymentInviteMessage\x12@\n\x12interactiveMessage\x18- \x01(\x0b\x32$.whatsapp.Message.InteractiveMessage\x12:\n\x0freactionMessage\x18. \x01(\x0b\x32!.whatsapp.Message.ReactionMessage\x12\x46\n\x15stickerSyncRmrMessage\x18/ \x01(\x0b\x32\'.whatsapp.Message.StickerSyncRMRMessage\x12P\n\x1ainteractiveResponseMessage\x18\x30 \x01(\x0b\x32,.whatsapp.Message.InteractiveResponseMessage\x12\x42\n\x13pollCreationMessage\x18\x31 \x01(\x0b\x32%.whatsapp.Message.PollCreationMessage\x12>\n\x11pollUpdateMessage\x18\x32 \x01(\x0b\x32#.whatsapp.Message.PollUpdateMessage\x12>\n\x11keepInChatMessage\x18\x33 \x01(\x0b\x32#.whatsapp.Message.KeepInChatMessage\x12H\n\x1a\x64ocumentWithCaptionMessage\x18\x35 \x01(\x0b\x32$.whatsapp.Message.FutureProofMessage\x12N\n\x19requestPhoneNumberMessage\x18\x36 \x01(\x0b\x32+.whatsapp.Message.RequestPhoneNumberMessage\x12?\n\x11viewOnceMessageV2\x18\x37 \x01(\x0b\x32$.whatsapp.Message.FutureProofMessage\x12@\n\x12\x65ncReactionMessage\x18\x38 \x01(\x0b\x32$.whatsapp.Message.EncReactionMessage\x12;\n\reditedMessage\x18: \x01(\x0b\x32$.whatsapp.Message.FutureProofMessage\x12H\n\x1aviewOnceMessageV2Extension\x18; \x01(\x0b\x32$.whatsapp.Message.FutureProofMessage\x12\x44\n\x15pollCreationMessageV2\x18< \x01(\x0b\x32%.whatsapp.Message.PollCreationMessage\x12T\n\x1cscheduledCallCreationMessage\x18= \x01(\x0b\x32..whatsapp.Message.ScheduledCallCreationMessage\x12\x43\n\x15groupMentionedMessage\x18> \x01(\x0b\x32$.whatsapp.Message.FutureProofMessage\x12<\n\x10pinInChatMessage\x18? \x01(\x0b\x32\".whatsapp.Message.PinInChatMessage\x12\x44\n\x15pollCreationMessageV3\x18@ \x01(\x0b\x32%.whatsapp.Message.PollCreationMessage\x12L\n\x18scheduledCallEditMessage\x18\x41 \x01(\x0b\x32*.whatsapp.Message.ScheduledCallEditMessage\x12\x32\n\nptvMessage\x18\x42 \x01(\x0b\x32\x1e.whatsapp.Message.VideoMessage\x12>\n\x10\x62otInvokeMessage\x18\x43 \x01(\x0b\x32$.whatsapp.Message.FutureProofMessage\x12\x39\n\x0f\x63\x61llLogMesssage\x18\x45 \x01(\x0b\x32 .whatsapp.Message.CallLogMessage\x12\x44\n\x14messageHistoryBundle\x18\x46 \x01(\x0b\x32&.whatsapp.Message.MessageHistoryBundle\x12>\n\x11\x65ncCommentMessage\x18G \x01(\x0b\x32#.whatsapp.Message.EncCommentMessage\x12\x34\n\x0c\x62\x63\x61llMessage\x18H \x01(\x0b\x32\x1e.whatsapp.Message.BCallMessage\x12\x42\n\x14lottieStickerMessage\x18J \x01(\x0b\x32$.whatsapp.Message.FutureProofMessage\x12\x34\n\x0c\x65ventMessage\x18K \x01(\x0b\x32\x1e.whatsapp.Message.EventMessage\x12J\n\x17\x65ncEventResponseMessage\x18L \x01(\x0b\x32).whatsapp.Message.EncEventResponseMessage\x12\x38\n\x0e\x63ommentMessage\x18M \x01(\x0b\x32 .whatsapp.Message.CommentMessage\x12T\n\x1cnewsletterAdminInviteMessage\x18N \x01(\x0b\x32..whatsapp.Message.NewsletterAdminInviteMessage\x12@\n\x12placeholderMessage\x18P \x01(\x0b\x32$.whatsapp.Message.PlaceholderMessage\x12H\n\x16secretEncryptedMessage\x18R \x01(\x0b\x32(.whatsapp.Message.SecretEncryptedMessage\x12\x34\n\x0c\x61lbumMessage\x18S \x01(\x0b\x32\x1e.whatsapp.Message.AlbumMessage\x12=\n\x0f\x65ventCoverImage\x18U \x01(\x0b\x32$.whatsapp.Message.FutureProofMessage\x12@\n\x12stickerPackMessage\x18V \x01(\x0b\x32$.whatsapp.Message.StickerPackMessage\x12\x42\n\x14statusMentionMessage\x18W \x01(\x0b\x32$.whatsapp.Message.FutureProofMessage\x12N\n\x19pollResultSnapshotMessage\x18X \x01(\x0b\x32+.whatsapp.Message.PollResultSnapshotMessage\x12L\n\x1epollCreationOptionImageMessage\x18Z \x01(\x0b\x32$.whatsapp.Message.FutureProofMessage\x12\x44\n\x16\x61ssociatedChildMessage\x18[ \x01(\x0b\x32$.whatsapp.Message.FutureProofMessage\x12G\n\x19groupStatusMentionMessage\x18\\ \x01(\x0b\x32$.whatsapp.Message.FutureProofMessage\x12\x43\n\x15pollCreationMessageV4\x18] \x01(\x0b\x32$.whatsapp.Message.FutureProofMessage\x12<\n\x0estatusAddYours\x18_ \x01(\x0b\x32$.whatsapp.Message.FutureProofMessage\x12@\n\x12groupStatusMessage\x18` \x01(\x0b\x32$.whatsapp.Message.FutureProofMessage\x12<\n\x13richResponseMessage\x18\x61 \x01(\x0b\x32\x1f.whatsapp.AIRichResponseMessage\x12N\n\x19statusNotificationMessage\x18\x62 \x01(\x0b\x32+.whatsapp.Message.StatusNotificationMessage\x12\x41\n\x13limitSharingMessage\x18\x63 \x01(\x0b\x32$.whatsapp.Message.FutureProofMessage\x12<\n\x0e\x62otTaskMessage\x18\x64 \x01(\x0b\x32$.whatsapp.Message.FutureProofMessage\x12=\n\x0fquestionMessage\x18\x65 \x01(\x0b\x32$.whatsapp.Message.FutureProofMessage\x12\x44\n\x14messageHistoryNotice\x18\x66 \x01(\x0b\x32&.whatsapp.Message.MessageHistoryNotice\x12\x42\n\x14groupStatusMessageV2\x18g \x01(\x0b\x32$.whatsapp.Message.FutureProofMessage\x12\x41\n\x13\x62otForwardedMessage\x18h \x01(\x0b\x32$.whatsapp.Message.FutureProofMessage\x12R\n\x1bstatusQuestionAnswerMessage\x18i \x01(\x0b\x32-.whatsapp.Message.StatusQuestionAnswerMessage\x12\x42\n\x14questionReplyMessage\x18j \x01(\x0b\x32$.whatsapp.Message.FutureProofMessage\x12J\n\x17questionResponseMessage\x18k \x01(\x0b\x32).whatsapp.Message.QuestionResponseMessage\x12\x42\n\x13statusQuotedMessage\x18m \x01(\x0b\x32%.whatsapp.Message.StatusQuotedMessage\x12Z\n\x1fstatusStickerInteractionMessage\x18n \x01(\x0b\x32\x31.whatsapp.Message.StatusStickerInteractionMessage\x12\x44\n\x15pollCreationMessageV5\x18o \x01(\x0b\x32%.whatsapp.Message.PollCreationMessage\x12\\\n!newsletterFollowerInviteMessageV2\x18q \x01(\x0b\x32\x31.whatsapp.Message.NewsletterFollowerInviteMessage\x12P\n\x1bpollResultSnapshotMessageV3\x18s \x01(\x0b\x32+.whatsapp.Message.PollResultSnapshotMessage\x12K\n\x1dnewsletterAdminProfileMessage\x18t \x01(\x0b\x32$.whatsapp.Message.FutureProofMessage\x12M\n\x1fnewsletterAdminProfileMessageV2\x18u \x01(\x0b\x32$.whatsapp.Message.FutureProofMessage\x12<\n\x0espoilerMessage\x18v \x01(\x0b\x32$.whatsapp.Message.FutureProofMessage\x12\x44\n\x15pollCreationMessageV6\x18w \x01(\x0b\x32%.whatsapp.Message.PollCreationMessage\x12L\n\x18\x63onditionalRevealMessage\x18x \x01(\x0b\x32*.whatsapp.Message.ConditionalRevealMessage\x12\x44\n\x14pollAddOptionMessage\x18y \x01(\x0b\x32&.whatsapp.Message.PollAddOptionMessage\x12@\n\x12\x65ventInviteMessage\x18z \x01(\x0b\x32$.whatsapp.Message.EventInviteMessage\x12\x36\n\x11groupRootKeyShare\x18{ \x01(\x0b\x32\x1b.whatsapp.GroupRootKeyShare\x12H\n\x16paymentReminderMessage\x18| \x01(\x0b\x32(.whatsapp.Message.PaymentReminderMessage\x12\x42\n\x13splitPaymentMessage\x18} \x01(\x0b\x32%.whatsapp.Message.SplitPaymentMessage\x12Q\n#newsletterAdminProfileStatusMessage\x18~ \x01(\x0b\x32$.whatsapp.Message.FutureProofMessage\x12R\n\x1brootSecretDistributeMessage\x18\x7f \x01(\x0b\x32-.whatsapp.Message.RootSecretDistributeMessage\x12O\n\x19splitPaymentUpdateMessage\x18\x80\x01 \x01(\x0b\x32+.whatsapp.Message.SplitPaymentUpdateMessage\x12\x35\n\x0cmusicMessage\x18\x81\x01 \x01(\x0b\x32\x1e.whatsapp.Message.MusicMessage\x12O\n\x19statusLinkPreviewMetadata\x18\x82\x01 \x01(\x0b\x32+.whatsapp.Message.StatusLinkPreviewMetadata\x12T\n%botPlatformRegistrationSuccessMessage\x18\x83\x01 \x01(\x0b\x32$.whatsapp.Message.FutureProofMessage\x1ar\n\x0c\x41lbumMessage\x12\x1a\n\x12\x65xpectedImageCount\x18\x02 \x01(\r\x12\x1a\n\x12\x65xpectedVideoCount\x18\x03 \x01(\r\x12*\n\x0b\x63ontextInfo\x18\x11 \x01(\x0b\x32\x15.whatsapp.ContextInfo\x1aP\n\"AppStateFatalExceptionNotification\x12\x17\n\x0f\x63ollectionNames\x18\x01 \x03(\t\x12\x11\n\ttimestamp\x18\x02 \x01(\x03\x1a}\n\x0f\x41ppStateSyncKey\x12\x32\n\x05keyId\x18\x01 \x01(\x0b\x32#.whatsapp.Message.AppStateSyncKeyId\x12\x36\n\x07keyData\x18\x02 \x01(\x0b\x32%.whatsapp.Message.AppStateSyncKeyData\x1a|\n\x13\x41ppStateSyncKeyData\x12\x0f\n\x07keyData\x18\x01 \x01(\x0c\x12\x41\n\x0b\x66ingerprint\x18\x02 \x01(\x0b\x32,.whatsapp.Message.AppStateSyncKeyFingerprint\x12\x11\n\ttimestamp\x18\x03 \x01(\x03\x1a\\\n\x1a\x41ppStateSyncKeyFingerprint\x12\r\n\x05rawId\x18\x01 \x01(\r\x12\x14\n\x0c\x63urrentIndex\x18\x02 \x01(\r\x12\x19\n\rdeviceIndexes\x18\x03 \x03(\rB\x02\x10\x01\x1a\"\n\x11\x41ppStateSyncKeyId\x12\r\n\x05keyId\x18\x01 \x01(\x0c\x1aM\n\x16\x41ppStateSyncKeyRequest\x12\x33\n\x06keyIds\x18\x01 \x03(\x0b\x32#.whatsapp.Message.AppStateSyncKeyId\x1aG\n\x14\x41ppStateSyncKeyShare\x12/\n\x04keys\x18\x01 \x03(\x0b\x32!.whatsapp.Message.AppStateSyncKey\x1a\xe9\x02\n\x0c\x41udioMessage\x12\x0b\n\x03url\x18\x01 \x01(\t\x12\x10\n\x08mimetype\x18\x02 \x01(\t\x12\x12\n\nfileSha256\x18\x03 \x01(\x0c\x12\x12\n\nfileLength\x18\x04 \x01(\x04\x12\x0f\n\x07seconds\x18\x05 \x01(\r\x12\x0b\n\x03ptt\x18\x06 \x01(\x08\x12\x10\n\x08mediaKey\x18\x07 \x01(\x0c\x12\x15\n\rfileEncSha256\x18\x08 \x01(\x0c\x12\x12\n\ndirectPath\x18\t \x01(\t\x12\x19\n\x11mediaKeyTimestamp\x18\n \x01(\x03\x12*\n\x0b\x63ontextInfo\x18\x11 \x01(\x0b\x32\x15.whatsapp.ContextInfo\x12\x18\n\x10streamingSidecar\x18\x12 \x01(\x0c\x12\x10\n\x08waveform\x18\x13 \x01(\x0c\x12\x16\n\x0e\x62\x61\x63kgroundArgb\x18\x14 \x01(\x07\x12\x10\n\x08viewOnce\x18\x15 \x01(\x08\x12\x1a\n\x12\x61\x63\x63\x65ssibilityLabel\x18\x16 \x01(\t\x1a\xb2\x01\n\x0c\x42\x43\x61llMessage\x12\x11\n\tsessionId\x18\x01 \x01(\t\x12;\n\tmediaType\x18\x02 \x01(\x0e\x32(.whatsapp.Message.BCallMessage.MediaType\x12\x11\n\tmasterKey\x18\x03 \x01(\x0c\x12\x0f\n\x07\x63\x61ption\x18\x04 \x01(\t\".\n\tMediaType\x12\x0b\n\x07UNKNOWN\x10\x00\x12\t\n\x05\x41UDIO\x10\x01\x12\t\n\x05VIDEO\x10\x02\x1a\x9c\x01\n\x1b\x42otHistoryShareSyncMetadata\x12\x0e\n\x06\x62otJid\x18\x01 \x01(\t\x12#\n\x1bhistoryShareCutoffTimestamp\x18\x02 \x01(\x03\x12H\n\x14historyShareMessages\x18\x03 \x03(\x0b\x32*.whatsapp.Message.HistoryShareMessageEntry\x1a\xc4\x07\n\x0e\x42uttonsMessage\x12\x13\n\x0b\x63ontentText\x18\x06 \x01(\t\x12\x12\n\nfooterText\x18\x07 \x01(\t\x12*\n\x0b\x63ontextInfo\x18\x08 \x01(\x0b\x32\x15.whatsapp.ContextInfo\x12\x38\n\x07\x62uttons\x18\t \x03(\x0b\x32\'.whatsapp.Message.ButtonsMessage.Button\x12?\n\nheaderType\x18\n \x01(\x0e\x32+.whatsapp.Message.ButtonsMessage.HeaderType\x12\x0e\n\x04text\x18\x01 \x01(\tH\x00\x12<\n\x0f\x64ocumentMessage\x18\x02 \x01(\x0b\x32!.whatsapp.Message.DocumentMessageH\x00\x12\x36\n\x0cimageMessage\x18\x03 \x01(\x0b\x32\x1e.whatsapp.Message.ImageMessageH\x00\x12\x36\n\x0cvideoMessage\x18\x04 \x01(\x0b\x32\x1e.whatsapp.Message.VideoMessageH\x00\x12<\n\x0flocationMessage\x18\x05 \x01(\x0b\x32!.whatsapp.Message.LocationMessageH\x00\x1a\xf9\x02\n\x06\x42utton\x12\x10\n\x08\x62uttonId\x18\x01 \x01(\t\x12\x46\n\nbuttonText\x18\x02 \x01(\x0b\x32\x32.whatsapp.Message.ButtonsMessage.Button.ButtonText\x12:\n\x04type\x18\x03 \x01(\x0e\x32,.whatsapp.Message.ButtonsMessage.Button.Type\x12N\n\x0enativeFlowInfo\x18\x04 \x01(\x0b\x32\x36.whatsapp.Message.ButtonsMessage.Button.NativeFlowInfo\x1a!\n\nButtonText\x12\x13\n\x0b\x64isplayText\x18\x01 \x01(\t\x1a\x32\n\x0eNativeFlowInfo\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x12\n\nparamsJson\x18\x02 \x01(\t\"2\n\x04Type\x12\x0b\n\x07UNKNOWN\x10\x00\x12\x0c\n\x08RESPONSE\x10\x01\x12\x0f\n\x0bNATIVE_FLOW\x10\x02\"`\n\nHeaderType\x12\x0b\n\x07UNKNOWN\x10\x00\x12\t\n\x05\x45MPTY\x10\x01\x12\x08\n\x04TEXT\x10\x02\x12\x0c\n\x08\x44OCUMENT\x10\x03\x12\t\n\x05IMAGE\x10\x04\x12\t\n\x05VIDEO\x10\x05\x12\x0c\n\x08LOCATION\x10\x06\x42\x08\n\x06header\x1a\xed\x01\n\x16\x42uttonsResponseMessage\x12\x18\n\x10selectedButtonId\x18\x01 \x01(\t\x12*\n\x0b\x63ontextInfo\x18\x03 \x01(\x0b\x32\x15.whatsapp.ContextInfo\x12;\n\x04type\x18\x04 \x01(\x0e\x32-.whatsapp.Message.ButtonsResponseMessage.Type\x12\x1d\n\x13selectedDisplayText\x18\x02 \x01(\tH\x00\"%\n\x04Type\x12\x0b\n\x07UNKNOWN\x10\x00\x12\x10\n\x0c\x44ISPLAY_TEXT\x10\x01\x42\n\n\x08response\x1a\xe3\x02\n\x04\x43\x61ll\x12\x0f\n\x07\x63\x61llKey\x18\x01 \x01(\x0c\x12\x18\n\x10\x63onversionSource\x18\x02 \x01(\t\x12\x16\n\x0e\x63onversionData\x18\x03 \x01(\x0c\x12\x1e\n\x16\x63onversionDelaySeconds\x18\x04 \x01(\r\x12\x13\n\x0b\x63twaSignals\x18\x05 \x01(\t\x12\x13\n\x0b\x63twaPayload\x18\x06 \x01(\x0c\x12*\n\x0b\x63ontextInfo\x18\x07 \x01(\x0b\x32\x15.whatsapp.ContextInfo\x12#\n\x1bnativeFlowCallButtonPayload\x18\x08 \x01(\t\x12\x17\n\x0f\x64\x65\x65plinkPayload\x18\t \x01(\t\x12\x38\n\x12messageContextInfo\x18\n \x01(\x0b\x32\x1c.whatsapp.MessageContextInfo\x12\x16\n\x0e\x63\x61llEntryPoint\x18\x0b \x01(\r\x12\x12\n\ncallReason\x18\x0c \x01(\t\x1a\xbb\x04\n\x0e\x43\x61llLogMessage\x12\x0f\n\x07isVideo\x18\x01 \x01(\x08\x12\x41\n\x0b\x63\x61llOutcome\x18\x02 \x01(\x0e\x32,.whatsapp.Message.CallLogMessage.CallOutcome\x12\x14\n\x0c\x64urationSecs\x18\x03 \x01(\x03\x12;\n\x08\x63\x61llType\x18\x04 \x01(\x0e\x32).whatsapp.Message.CallLogMessage.CallType\x12\x46\n\x0cparticipants\x18\x05 \x03(\x0b\x32\x30.whatsapp.Message.CallLogMessage.CallParticipant\x1a\x61\n\x0f\x43\x61llParticipant\x12\x0b\n\x03jid\x18\x01 \x01(\t\x12\x41\n\x0b\x63\x61llOutcome\x18\x02 \x01(\x0e\x32,.whatsapp.Message.CallLogMessage.CallOutcome\"\x99\x01\n\x0b\x43\x61llOutcome\x12\r\n\tCONNECTED\x10\x00\x12\n\n\x06MISSED\x10\x01\x12\n\n\x06\x46\x41ILED\x10\x02\x12\x0c\n\x08REJECTED\x10\x03\x12\x16\n\x12\x41\x43\x43\x45PTED_ELSEWHERE\x10\x04\x12\x0b\n\x07ONGOING\x10\x05\x12\x13\n\x0fSILENCED_BY_DND\x10\x06\x12\x1b\n\x17SILENCED_UNKNOWN_CALLER\x10\x07\";\n\x08\x43\x61llType\x12\x0b\n\x07REGULAR\x10\x00\x12\x12\n\x0eSCHEDULED_CALL\x10\x01\x12\x0e\n\nVOICE_CHAT\x10\x02\x1a@\n\x1b\x43\x61ncelPaymentRequestMessage\x12!\n\x03key\x18\x01 \x01(\x0b\x32\x14.whatsapp.MessageKey\x1a\'\n\x04\x43hat\x12\x13\n\x0b\x64isplayName\x18\x01 \x01(\t\x12\n\n\x02id\x18\x02 \x01(\t\x1a}\n\x18\x43hatCustomImageWallpaper\x12\x12\n\ndirectPath\x18\x01 \x01(\t\x12\x10\n\x08mediaKey\x18\x02 \x01(\x0c\x12\x15\n\rfileEncSha256\x18\x03 \x01(\x0c\x12\x12\n\nfileSha256\x18\x04 \x01(\x0c\x12\x10\n\x08\x64imLevel\x18\x05 \x01(\x02\x1a/\n\x14\x43hatDefaultWallpaper\x12\x17\n\x0fisDoodleEnabled\x18\x01 \x01(\x08\x1aY\n\x17\x43hatSolidColorWallpaper\x12\x12\n\ncolorLight\x18\x01 \x01(\t\x12\x11\n\tcolorDark\x18\x02 \x01(\t\x12\x17\n\x0fisDoodleEnabled\x18\x03 \x01(\x08\x1a\x41\n\x17\x43hatStockImageWallpaper\x12\x14\n\x0cstockImageId\x18\x01 \x01(\t\x12\x10\n\x08\x64imLevel\x18\x02 \x01(\x02\x1a\xef\x02\n\x10\x43hatThemeSetting\x12\x1a\n\x12settingTimestampMs\x18\x01 \x01(\x03\x12\x12\n\nclearTheme\x18\x02 \x01(\x08\x12\x15\n\rcolorSchemeId\x18\x03 \x01(\t\x12\x42\n\x10\x64\x65\x66\x61ultWallpaper\x18\n \x01(\x0b\x32&.whatsapp.Message.ChatDefaultWallpaperH\x00\x12?\n\nsolidColor\x18\x0b \x01(\x0b\x32).whatsapp.Message.ChatSolidColorWallpaperH\x00\x12?\n\nstockImage\x18\x0c \x01(\x0b\x32).whatsapp.Message.ChatStockImageWallpaperH\x00\x12\x41\n\x0b\x63ustomImage\x18\r \x01(\x0b\x32*.whatsapp.Message.ChatCustomImageWallpaperH\x00\x42\x0b\n\twallpaper\x1a\xad\x04\n!CloudAPIThreadControlNotification\x12Y\n\x06status\x18\x01 \x01(\x0e\x32I.whatsapp.Message.CloudAPIThreadControlNotification.CloudAPIThreadControl\x12%\n\x1dsenderNotificationTimestampMs\x18\x02 \x01(\x03\x12\x13\n\x0b\x63onsumerLid\x18\x03 \x01(\t\x12\x1b\n\x13\x63onsumerPhoneNumber\x18\x04 \x01(\t\x12y\n\x13notificationContent\x18\x05 \x01(\x0b\x32\\.whatsapp.Message.CloudAPIThreadControlNotification.CloudAPIThreadControlNotificationContent\x12\"\n\x1ashouldSuppressNotification\x18\x06 \x01(\x08\x1a^\n(CloudAPIThreadControlNotificationContent\x12\x1f\n\x17handoffNotificationText\x18\x01 \x01(\t\x12\x11\n\textraJson\x18\x02 \x01(\t\"U\n\x15\x43loudAPIThreadControl\x12\x0b\n\x07UNKNOWN\x10\x00\x12\x12\n\x0e\x43ONTROL_PASSED\x10\x01\x12\x11\n\rCONTROL_TAKEN\x10\x02\x12\x08\n\x04INFO\x10\x03\x1a\x64\n\x0e\x43ommentMessage\x12\"\n\x07message\x18\x01 \x01(\x0b\x32\x11.whatsapp.Message\x12.\n\x10targetMessageKey\x18\x02 \x01(\x0b\x32\x14.whatsapp.MessageKey\x1a\x85\x02\n\x18\x43onditionalRevealMessage\x12\x12\n\nencPayload\x18\x01 \x01(\x0c\x12\r\n\x05\x65ncIv\x18\x02 \x01(\x0c\x12m\n\x1c\x63onditionalRevealMessageType\x18\x03 \x01(\x0e\x32G.whatsapp.Message.ConditionalRevealMessage.ConditionalRevealMessageType\x12\x13\n\x0brevealKeyId\x18\x04 \x01(\t\"B\n\x1c\x43onditionalRevealMessageType\x12\x0b\n\x07UNKNOWN\x10\x00\x12\x15\n\x11SCHEDULED_MESSAGE\x10\x01\x1aw\n\x0e\x43ontactMessage\x12\x13\n\x0b\x64isplayName\x18\x01 \x01(\t\x12\r\n\x05vcard\x18\x10 \x01(\t\x12*\n\x0b\x63ontextInfo\x18\x11 \x01(\x0b\x32\x15.whatsapp.ContextInfo\x12\x15\n\risSelfContact\x18\x12 \x01(\x08\x1a\x8b\x01\n\x14\x43ontactsArrayMessage\x12\x13\n\x0b\x64isplayName\x18\x01 \x01(\t\x12\x32\n\x08\x63ontacts\x18\x02 \x03(\x0b\x32 .whatsapp.Message.ContactMessage\x12*\n\x0b\x63ontextInfo\x18\x11 \x01(\x0b\x32\x15.whatsapp.ContextInfo\x1a\x41\n\x1c\x44\x65\x63linePaymentRequestMessage\x12!\n\x03key\x18\x01 \x01(\x0b\x32\x14.whatsapp.MessageKey\x1a^\n\x11\x44\x65viceSentMessage\x12\x16\n\x0e\x64\x65stinationJid\x18\x01 \x01(\t\x12\"\n\x07message\x18\x02 \x01(\x0b\x32\x11.whatsapp.Message\x12\r\n\x05phash\x18\x03 \x01(\t\x1a\xed\x03\n\x0f\x44ocumentMessage\x12\x0b\n\x03url\x18\x01 \x01(\t\x12\x10\n\x08mimetype\x18\x02 \x01(\t\x12\r\n\x05title\x18\x03 \x01(\t\x12\x12\n\nfileSha256\x18\x04 \x01(\x0c\x12\x12\n\nfileLength\x18\x05 \x01(\x04\x12\x11\n\tpageCount\x18\x06 \x01(\r\x12\x10\n\x08mediaKey\x18\x07 \x01(\x0c\x12\x10\n\x08\x66ileName\x18\x08 \x01(\t\x12\x15\n\rfileEncSha256\x18\t \x01(\x0c\x12\x12\n\ndirectPath\x18\n \x01(\t\x12\x19\n\x11mediaKeyTimestamp\x18\x0b \x01(\x03\x12\x14\n\x0c\x63ontactVcard\x18\x0c \x01(\x08\x12\x1b\n\x13thumbnailDirectPath\x18\r \x01(\t\x12\x17\n\x0fthumbnailSha256\x18\x0e \x01(\x0c\x12\x1a\n\x12thumbnailEncSha256\x18\x0f \x01(\x0c\x12\x15\n\rjpegThumbnail\x18\x10 \x01(\x0c\x12*\n\x0b\x63ontextInfo\x18\x11 \x01(\x0b\x32\x15.whatsapp.ContextInfo\x12\x17\n\x0fthumbnailHeight\x18\x12 \x01(\r\x12\x16\n\x0ethumbnailWidth\x18\x13 \x01(\r\x12\x0f\n\x07\x63\x61ption\x18\x14 \x01(\t\x12\x1a\n\x12\x61\x63\x63\x65ssibilityLabel\x18\x15 \x01(\t\x1a\x66\n\x11\x45ncCommentMessage\x12.\n\x10targetMessageKey\x18\x01 \x01(\x0b\x32\x14.whatsapp.MessageKey\x12\x12\n\nencPayload\x18\x02 \x01(\x0c\x12\r\n\x05\x65ncIv\x18\x03 \x01(\x0c\x1as\n\x17\x45ncEventResponseMessage\x12\x35\n\x17\x65ventCreationMessageKey\x18\x01 \x01(\x0b\x32\x14.whatsapp.MessageKey\x12\x12\n\nencPayload\x18\x02 \x01(\x0c\x12\r\n\x05\x65ncIv\x18\x03 \x01(\x0c\x1ag\n\x12\x45ncReactionMessage\x12.\n\x10targetMessageKey\x18\x01 \x01(\x0b\x32\x14.whatsapp.MessageKey\x12\x12\n\nencPayload\x18\x02 \x01(\x0c\x12\r\n\x05\x65ncIv\x18\x03 \x01(\x0c\x1a\xd7\x01\n\x12\x45ventInviteMessage\x12*\n\x0b\x63ontextInfo\x18\x01 \x01(\x0b\x32\x15.whatsapp.ContextInfo\x12\x0f\n\x07\x65ventId\x18\x02 \x01(\t\x12\x12\n\neventTitle\x18\x03 \x01(\t\x12\x15\n\rjpegThumbnail\x18\x04 \x01(\x0c\x12\x11\n\tstartTime\x18\x05 \x01(\x03\x12\x0f\n\x07\x63\x61ption\x18\x06 \x01(\t\x12\x12\n\nisCanceled\x18\x07 \x01(\x08\x12\x0f\n\x07\x65ndTime\x18\x08 \x01(\x03\x12\x10\n\x08\x63\x61llLink\x18\t \x01(\t\x1a\xc0\x02\n\x0c\x45ventMessage\x12*\n\x0b\x63ontextInfo\x18\x01 \x01(\x0b\x32\x15.whatsapp.ContextInfo\x12\x12\n\nisCanceled\x18\x02 \x01(\x08\x12\x0c\n\x04name\x18\x03 \x01(\t\x12\x13\n\x0b\x64\x65scription\x18\x04 \x01(\t\x12\x33\n\x08location\x18\x05 \x01(\x0b\x32!.whatsapp.Message.LocationMessage\x12\x10\n\x08joinLink\x18\x06 \x01(\t\x12\x11\n\tstartTime\x18\x07 \x01(\x03\x12\x0f\n\x07\x65ndTime\x18\x08 \x01(\x03\x12\x1a\n\x12\x65xtraGuestsAllowed\x18\t \x01(\x08\x12\x16\n\x0eisScheduleCall\x18\n \x01(\x08\x12\x13\n\x0bhasReminder\x18\x0b \x01(\x08\x12\x19\n\x11reminderOffsetSec\x18\x0c \x01(\x03\x1a\xd7\x01\n\x14\x45ventResponseMessage\x12J\n\x08response\x18\x01 \x01(\x0e\x32\x38.whatsapp.Message.EventResponseMessage.EventResponseType\x12\x13\n\x0btimestampMs\x18\x02 \x01(\x03\x12\x17\n\x0f\x65xtraGuestCount\x18\x03 \x01(\x05\"E\n\x11\x45ventResponseType\x12\x0b\n\x07UNKNOWN\x10\x00\x12\t\n\x05GOING\x10\x01\x12\r\n\tNOT_GOING\x10\x02\x12\t\n\x05MAYBE\x10\x03\x1a\xbf\x0c\n\x13\x45xtendedTextMessage\x12\x0c\n\x04text\x18\x01 \x01(\t\x12\x13\n\x0bmatchedText\x18\x02 \x01(\t\x12\x13\n\x0b\x64\x65scription\x18\x05 \x01(\t\x12\r\n\x05title\x18\x06 \x01(\t\x12\x10\n\x08textArgb\x18\x07 \x01(\x07\x12\x16\n\x0e\x62\x61\x63kgroundArgb\x18\x08 \x01(\x07\x12<\n\x04\x66ont\x18\t \x01(\x0e\x32..whatsapp.Message.ExtendedTextMessage.FontType\x12\x46\n\x0bpreviewType\x18\n \x01(\x0e\x32\x31.whatsapp.Message.ExtendedTextMessage.PreviewType\x12\x15\n\rjpegThumbnail\x18\x10 \x01(\x0c\x12*\n\x0b\x63ontextInfo\x18\x11 \x01(\x0b\x32\x15.whatsapp.ContextInfo\x12\x17\n\x0f\x64oNotPlayInline\x18\x12 \x01(\x08\x12\x1b\n\x13thumbnailDirectPath\x18\x13 \x01(\t\x12\x17\n\x0fthumbnailSha256\x18\x14 \x01(\x0c\x12\x1a\n\x12thumbnailEncSha256\x18\x15 \x01(\x0c\x12\x10\n\x08mediaKey\x18\x16 \x01(\x0c\x12\x19\n\x11mediaKeyTimestamp\x18\x17 \x01(\x03\x12\x17\n\x0fthumbnailHeight\x18\x18 \x01(\r\x12\x16\n\x0ethumbnailWidth\x18\x19 \x01(\r\x12V\n\x13inviteLinkGroupType\x18\x1a \x01(\x0e\x32\x39.whatsapp.Message.ExtendedTextMessage.InviteLinkGroupType\x12&\n\x1einviteLinkParentGroupSubjectV2\x18\x1b \x01(\t\x12(\n inviteLinkParentGroupThumbnailV2\x18\x1c \x01(\x0c\x12X\n\x15inviteLinkGroupTypeV2\x18\x1d \x01(\x0e\x32\x39.whatsapp.Message.ExtendedTextMessage.InviteLinkGroupType\x12\x10\n\x08viewOnce\x18\x1e \x01(\x08\x12\x13\n\x0bvideoHeight\x18\x1f \x01(\r\x12\x12\n\nvideoWidth\x18 \x01(\r\x12\x42\n\x12\x66\x61viconMmsMetadata\x18! \x01(\x0b\x32&.whatsapp.Message.MMSThumbnailMetadata\x12\x42\n\x13linkPreviewMetadata\x18\" \x01(\x0b\x32%.whatsapp.Message.LinkPreviewMetadata\x12\x42\n\x13paymentLinkMetadata\x18# \x01(\x0b\x32%.whatsapp.Message.PaymentLinkMetadata\x12\x34\n\x0c\x65ndCardTiles\x18$ \x03(\x0b\x32\x1e.whatsapp.Message.VideoEndCard\x12\x17\n\x0fvideoContentUrl\x18% \x01(\t\x12.\n\rmusicMetadata\x18& \x01(\x0b\x32\x17.whatsapp.EmbeddedMusic\x12J\n\x17paymentExtendedMetadata\x18\' \x01(\x0b\x32).whatsapp.Message.PaymentExtendedMetadata\"\xa4\x01\n\x08\x46ontType\x12\n\n\x06SYSTEM\x10\x00\x12\x0f\n\x0bSYSTEM_TEXT\x10\x01\x12\r\n\tFB_SCRIPT\x10\x02\x12\x0f\n\x0bSYSTEM_BOLD\x10\x06\x12\x19\n\x15MORNINGBREEZE_REGULAR\x10\x07\x12\x15\n\x11\x43\x41LISTOGA_REGULAR\x10\x08\x12\x12\n\x0e\x45XO2_EXTRABOLD\x10\t\x12\x15\n\x11\x43OURIERPRIME_BOLD\x10\n\"H\n\x13InviteLinkGroupType\x12\x0b\n\x07\x44\x45\x46\x41ULT\x10\x00\x12\n\n\x06PARENT\x10\x01\x12\x07\n\x03SUB\x10\x02\x12\x0f\n\x0b\x44\x45\x46\x41ULT_SUB\x10\x03\"^\n\x0bPreviewType\x12\x08\n\x04NONE\x10\x00\x12\t\n\x05VIDEO\x10\x01\x12\x0f\n\x0bPLACEHOLDER\x10\x04\x12\t\n\x05IMAGE\x10\x05\x12\x11\n\rPAYMENT_LINKS\x10\x06\x12\x0b\n\x07PROFILE\x10\x07\x1aZ\n\x1d\x46ullHistorySyncOnDemandConfig\x12\x1c\n\x14historyFromTimestamp\x18\x01 \x01(\x04\x12\x1b\n\x13historyDurationDays\x18\x02 \x01(\r\x1an\n&FullHistorySyncOnDemandRequestMetadata\x12\x11\n\trequestId\x18\x01 \x01(\t\x12\x17\n\x0f\x62usinessProduct\x18\x02 \x01(\t\x12\x18\n\x10opaqueClientData\x18\x03 \x01(\x0c\x1a\x38\n\x12\x46utureProofMessage\x12\"\n\x07message\x18\x01 \x01(\x0b\x32\x11.whatsapp.Message\x1a\xa4\x02\n\x12GroupInviteMessage\x12\x10\n\x08groupJid\x18\x01 \x01(\t\x12\x12\n\ninviteCode\x18\x02 \x01(\t\x12\x18\n\x10inviteExpiration\x18\x03 \x01(\x03\x12\x11\n\tgroupName\x18\x04 \x01(\t\x12\x15\n\rjpegThumbnail\x18\x05 \x01(\x0c\x12\x0f\n\x07\x63\x61ption\x18\x06 \x01(\t\x12*\n\x0b\x63ontextInfo\x18\x07 \x01(\x0b\x32\x15.whatsapp.ContextInfo\x12\x41\n\tgroupType\x18\x08 \x01(\x0e\x32..whatsapp.Message.GroupInviteMessage.GroupType\"$\n\tGroupType\x12\x0b\n\x07\x44\x45\x46\x41ULT\x10\x00\x12\n\n\x06PARENT\x10\x01\x1a\xc8\x0b\n\x17HighlyStructuredMessage\x12\x11\n\tnamespace\x18\x01 \x01(\t\x12\x13\n\x0b\x65lementName\x18\x02 \x01(\t\x12\x0e\n\x06params\x18\x03 \x03(\t\x12\x12\n\nfallbackLg\x18\x04 \x01(\t\x12\x12\n\nfallbackLc\x18\x05 \x01(\t\x12\\\n\x11localizableParams\x18\x06 \x03(\x0b\x32\x41.whatsapp.Message.HighlyStructuredMessage.HSMLocalizableParameter\x12\x17\n\x0f\x64\x65terministicLg\x18\x07 \x01(\t\x12\x17\n\x0f\x64\x65terministicLc\x18\x08 \x01(\t\x12\x36\n\x0bhydratedHsm\x18\t \x01(\x0b\x32!.whatsapp.Message.TemplateMessage\x1a\x84\t\n\x17HSMLocalizableParameter\x12\x0f\n\x07\x64\x65\x66\x61ult\x18\x01 \x01(\t\x12\x61\n\x08\x63urrency\x18\x02 \x01(\x0b\x32M.whatsapp.Message.HighlyStructuredMessage.HSMLocalizableParameter.HSMCurrencyH\x00\x12\x61\n\x08\x64\x61teTime\x18\x03 \x01(\x0b\x32M.whatsapp.Message.HighlyStructuredMessage.HSMLocalizableParameter.HSMDateTimeH\x00\x1a\x37\n\x0bHSMCurrency\x12\x14\n\x0c\x63urrencyCode\x18\x01 \x01(\t\x12\x12\n\namount1000\x18\x02 \x01(\x03\x1a\xca\x06\n\x0bHSMDateTime\x12w\n\tcomponent\x18\x01 \x01(\x0b\x32\x62.whatsapp.Message.HighlyStructuredMessage.HSMLocalizableParameter.HSMDateTime.HSMDateTimeComponentH\x00\x12w\n\tunixEpoch\x18\x02 \x01(\x0b\x32\x62.whatsapp.Message.HighlyStructuredMessage.HSMLocalizableParameter.HSMDateTime.HSMDateTimeUnixEpochH\x00\x1a\x8c\x04\n\x14HSMDateTimeComponent\x12\x83\x01\n\tdayOfWeek\x18\x01 \x01(\x0e\x32p.whatsapp.Message.HighlyStructuredMessage.HSMLocalizableParameter.HSMDateTime.HSMDateTimeComponent.DayOfWeekType\x12\x0c\n\x04year\x18\x02 \x01(\r\x12\r\n\x05month\x18\x03 \x01(\r\x12\x12\n\ndayOfMonth\x18\x04 \x01(\r\x12\x0c\n\x04hour\x18\x05 \x01(\r\x12\x0e\n\x06minute\x18\x06 \x01(\r\x12\x81\x01\n\x08\x63\x61lendar\x18\x07 \x01(\x0e\x32o.whatsapp.Message.HighlyStructuredMessage.HSMLocalizableParameter.HSMDateTime.HSMDateTimeComponent.CalendarType\".\n\x0c\x43\x61lendarType\x12\r\n\tGREGORIAN\x10\x01\x12\x0f\n\x0bSOLAR_HIJRI\x10\x02\"k\n\rDayOfWeekType\x12\n\n\x06MONDAY\x10\x01\x12\x0b\n\x07TUESDAY\x10\x02\x12\r\n\tWEDNESDAY\x10\x03\x12\x0c\n\x08THURSDAY\x10\x04\x12\n\n\x06\x46RIDAY\x10\x05\x12\x0c\n\x08SATURDAY\x10\x06\x12\n\n\x06SUNDAY\x10\x07\x1a)\n\x14HSMDateTimeUnixEpoch\x12\x11\n\ttimestamp\x18\x01 \x01(\x03\x42\x0f\n\rdatetimeOneofB\x0c\n\nparamOneof\x1aH\n\x18HistoryShareMessageEntry\x12\x10\n\x08stanzaId\x18\x01 \x01(\t\x12\x1a\n\x12messageSecretProof\x18\x02 \x01(\x0c\x1a?\n\x1eHistorySyncMessageAccessStatus\x12\x1d\n\x15\x63ompleteAccessGranted\x18\x01 \x01(\x08\x1a\xb3\x04\n\x17HistorySyncNotification\x12\x12\n\nfileSha256\x18\x01 \x01(\x0c\x12\x12\n\nfileLength\x18\x02 \x01(\x04\x12\x10\n\x08mediaKey\x18\x03 \x01(\x0c\x12\x15\n\rfileEncSha256\x18\x04 \x01(\x0c\x12\x12\n\ndirectPath\x18\x05 \x01(\t\x12\x33\n\x08syncType\x18\x06 \x01(\x0e\x32!.whatsapp.Message.HistorySyncType\x12\x12\n\nchunkOrder\x18\x07 \x01(\r\x12\x19\n\x11originalMessageId\x18\x08 \x01(\t\x12\x10\n\x08progress\x18\t \x01(\r\x12$\n\x1coldestMsgInChunkTimestampSec\x18\n \x01(\x03\x12)\n!initialHistBootstrapInlinePayload\x18\x0b \x01(\x0c\x12 \n\x18peerDataRequestSessionId\x18\x0c \x01(\t\x12h\n&fullHistorySyncOnDemandRequestMetadata\x18\r \x01(\x0b\x32\x38.whatsapp.Message.FullHistorySyncOnDemandRequestMetadata\x12\x11\n\tencHandle\x18\x0e \x01(\t\x12M\n\x13messageAccessStatus\x18\x0f \x01(\x0b\x32\x30.whatsapp.Message.HistorySyncMessageAccessStatus\x1a\x9c\x07\n\x0cImageMessage\x12\x0b\n\x03url\x18\x01 \x01(\t\x12\x10\n\x08mimetype\x18\x02 \x01(\t\x12\x0f\n\x07\x63\x61ption\x18\x03 \x01(\t\x12\x12\n\nfileSha256\x18\x04 \x01(\x0c\x12\x12\n\nfileLength\x18\x05 \x01(\x04\x12\x0e\n\x06height\x18\x06 \x01(\r\x12\r\n\x05width\x18\x07 \x01(\r\x12\x10\n\x08mediaKey\x18\x08 \x01(\x0c\x12\x15\n\rfileEncSha256\x18\t \x01(\x0c\x12?\n\x16interactiveAnnotations\x18\n \x03(\x0b\x32\x1f.whatsapp.InteractiveAnnotation\x12\x12\n\ndirectPath\x18\x0b \x01(\t\x12\x19\n\x11mediaKeyTimestamp\x18\x0c \x01(\x03\x12\x15\n\rjpegThumbnail\x18\x10 \x01(\x0c\x12*\n\x0b\x63ontextInfo\x18\x11 \x01(\x0b\x32\x15.whatsapp.ContextInfo\x12\x18\n\x10\x66irstScanSidecar\x18\x12 \x01(\x0c\x12\x17\n\x0f\x66irstScanLength\x18\x13 \x01(\r\x12\x19\n\x11\x65xperimentGroupId\x18\x14 \x01(\r\x12\x14\n\x0cscansSidecar\x18\x15 \x01(\x0c\x12\x13\n\x0bscanLengths\x18\x16 \x03(\r\x12\x1c\n\x14midQualityFileSha256\x18\x17 \x01(\x0c\x12\x1f\n\x17midQualityFileEncSha256\x18\x18 \x01(\x0c\x12\x10\n\x08viewOnce\x18\x19 \x01(\x08\x12\x1b\n\x13thumbnailDirectPath\x18\x1a \x01(\t\x12\x17\n\x0fthumbnailSha256\x18\x1b \x01(\x0c\x12\x1a\n\x12thumbnailEncSha256\x18\x1c \x01(\x0c\x12\x11\n\tstaticUrl\x18\x1d \x01(\t\x12\x34\n\x0b\x61nnotations\x18\x1e \x03(\x0b\x32\x1f.whatsapp.InteractiveAnnotation\x12G\n\x0fimageSourceType\x18\x1f \x01(\x0e\x32..whatsapp.Message.ImageMessage.ImageSourceType\x12\x1a\n\x12\x61\x63\x63\x65ssibilityLabel\x18 \x01(\t\x12\r\n\x05qrUrl\x18\" \x01(\t\"`\n\x0fImageSourceType\x12\x0e\n\nUSER_IMAGE\x10\x00\x12\x10\n\x0c\x41I_GENERATED\x10\x01\x12\x0f\n\x0b\x41I_MODIFIED\x10\x02\x12\x1a\n\x16RASTERIZED_TEXT_STATUS\x10\x03\x1aM\n&InitialSecurityNotificationSettingSync\x12#\n\x1bsecurityNotificationEnabled\x18\x01 \x01(\x08\x1a\x80\x11\n\x12InteractiveMessage\x12;\n\x06header\x18\x01 \x01(\x0b\x32+.whatsapp.Message.InteractiveMessage.Header\x12\x37\n\x04\x62ody\x18\x02 \x01(\x0b\x32).whatsapp.Message.InteractiveMessage.Body\x12;\n\x06\x66ooter\x18\x03 \x01(\x0b\x32+.whatsapp.Message.InteractiveMessage.Footer\x12\x45\n\x0b\x62loksWidget\x18\x08 \x01(\x0b\x32\x30.whatsapp.Message.InteractiveMessage.BloksWidget\x12*\n\x0b\x63ontextInfo\x18\x0f \x01(\x0b\x32\x15.whatsapp.ContextInfo\x12\x30\n\x0eurlTrackingMap\x18\x10 \x01(\x0b\x32\x18.whatsapp.UrlTrackingMap\x12Q\n\x15shopStorefrontMessage\x18\x04 \x01(\x0b\x32\x30.whatsapp.Message.InteractiveMessage.ShopMessageH\x00\x12S\n\x11\x63ollectionMessage\x18\x05 \x01(\x0b\x32\x36.whatsapp.Message.InteractiveMessage.CollectionMessageH\x00\x12S\n\x11nativeFlowMessage\x18\x06 \x01(\x0b\x32\x36.whatsapp.Message.InteractiveMessage.NativeFlowMessageH\x00\x12O\n\x0f\x63\x61rouselMessage\x18\x07 \x01(\x0b\x32\x34.whatsapp.Message.InteractiveMessage.CarouselMessageH\x00\x1aI\n\x0b\x42loksWidget\x12\x0c\n\x04uuid\x18\x01 \x01(\t\x12\x0c\n\x04\x64\x61ta\x18\x02 \x01(\t\x12\x0c\n\x04type\x18\x03 \x01(\t\x12\x10\n\x08\x66\x61llback\x18\x04 \x01(\t\x1a\x14\n\x04\x42ody\x12\x0c\n\x04text\x18\x01 \x01(\t\x1a\x96\x02\n\x0f\x43\x61rouselMessage\x12\x33\n\x05\x63\x61rds\x18\x01 \x03(\x0b\x32$.whatsapp.Message.InteractiveMessage\x12\x19\n\x0emessageVersion\x18\x02 \x01(\x05:\x01\x31\x12n\n\x10\x63\x61rouselCardType\x18\x03 \x01(\x0e\x32\x45.whatsapp.Message.InteractiveMessage.CarouselMessage.CarouselCardType:\rHSCROLL_CARDS\"C\n\x10\x43\x61rouselCardType\x12\x0b\n\x07UNKNOWN\x10\x00\x12\x11\n\rHSCROLL_CARDS\x10\x01\x12\x0f\n\x0b\x41LBUM_IMAGE\x10\x02\x1aJ\n\x11\x43ollectionMessage\x12\x0e\n\x06\x62izJid\x18\x01 \x01(\t\x12\n\n\x02id\x18\x02 \x01(\t\x12\x19\n\x0emessageVersion\x18\x03 \x01(\x05:\x01\x31\x1as\n\x06\x46ooter\x12\x0c\n\x04text\x18\x01 \x01(\t\x12\x1a\n\x12hasMediaAttachment\x18\x03 \x01(\x08\x12\x36\n\x0c\x61udioMessage\x18\x02 \x01(\x0b\x32\x1e.whatsapp.Message.AudioMessageH\x00\x42\x07\n\x05media\x1a\xd6\x03\n\x06Header\x12\r\n\x05title\x18\x01 \x01(\t\x12\x10\n\x08subtitle\x18\x02 \x01(\t\x12\x1a\n\x12hasMediaAttachment\x18\x05 \x01(\x08\x12\x45\n\x0b\x62loksWidget\x18\n \x01(\x0b\x32\x30.whatsapp.Message.InteractiveMessage.BloksWidget\x12<\n\x0f\x64ocumentMessage\x18\x03 \x01(\x0b\x32!.whatsapp.Message.DocumentMessageH\x00\x12\x36\n\x0cimageMessage\x18\x04 \x01(\x0b\x32\x1e.whatsapp.Message.ImageMessageH\x00\x12\x17\n\rjpegThumbnail\x18\x06 \x01(\x0cH\x00\x12\x36\n\x0cvideoMessage\x18\x07 \x01(\x0b\x32\x1e.whatsapp.Message.VideoMessageH\x00\x12<\n\x0flocationMessage\x18\x08 \x01(\x0b\x32!.whatsapp.Message.LocationMessageH\x00\x12:\n\x0eproductMessage\x18\t \x01(\x0b\x32 .whatsapp.Message.ProductMessageH\x00\x42\x07\n\x05media\x1a\xdf\x01\n\x11NativeFlowMessage\x12X\n\x07\x62uttons\x18\x01 \x03(\x0b\x32G.whatsapp.Message.InteractiveMessage.NativeFlowMessage.NativeFlowButton\x12\x19\n\x11messageParamsJson\x18\x02 \x01(\t\x12\x19\n\x0emessageVersion\x18\x03 \x01(\x05:\x01\x31\x1a:\n\x10NativeFlowButton\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x18\n\x10\x62uttonParamsJson\x18\x02 \x01(\t\x1a\xb7\x01\n\x0bShopMessage\x12\n\n\x02id\x18\x01 \x01(\t\x12I\n\x07surface\x18\x02 \x01(\x0e\x32\x38.whatsapp.Message.InteractiveMessage.ShopMessage.Surface\x12\x19\n\x0emessageVersion\x18\x03 \x01(\x05:\x01\x31\"6\n\x07Surface\x12\x13\n\x0fUNKNOWN_SURFACE\x10\x00\x12\x06\n\x02\x46\x42\x10\x01\x12\x06\n\x02IG\x10\x02\x12\x06\n\x02WA\x10\x03\x42\x14\n\x12interactiveMessage\x1a\xfa\x03\n\x1aInteractiveResponseMessage\x12?\n\x04\x62ody\x18\x01 \x01(\x0b\x32\x31.whatsapp.Message.InteractiveResponseMessage.Body\x12*\n\x0b\x63ontextInfo\x18\x0f \x01(\x0b\x32\x15.whatsapp.ContextInfo\x12k\n\x19nativeFlowResponseMessage\x18\x02 \x01(\x0b\x32\x46.whatsapp.Message.InteractiveResponseMessage.NativeFlowResponseMessageH\x00\x1a\x90\x01\n\x04\x42ody\x12\x0c\n\x04text\x18\x01 \x01(\t\x12Q\n\x06\x66ormat\x18\x02 \x01(\x0e\x32\x38.whatsapp.Message.InteractiveResponseMessage.Body.Format:\x07\x44\x45\x46\x41ULT\"\'\n\x06\x46ormat\x12\x0b\n\x07\x44\x45\x46\x41ULT\x10\x00\x12\x10\n\x0c\x45XTENSIONS_1\x10\x01\x1aQ\n\x19NativeFlowResponseMessage\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x12\n\nparamsJson\x18\x02 \x01(\t\x12\x12\n\x07version\x18\x03 \x01(\x05:\x01\x31\x42\x1c\n\x1ainteractiveResponseMessage\x1a\xf7\x02\n\x0eInvoiceMessage\x12\x0c\n\x04note\x18\x01 \x01(\t\x12\r\n\x05token\x18\x02 \x01(\t\x12G\n\x0e\x61ttachmentType\x18\x03 \x01(\x0e\x32/.whatsapp.Message.InvoiceMessage.AttachmentType\x12\x1a\n\x12\x61ttachmentMimetype\x18\x04 \x01(\t\x12\x1a\n\x12\x61ttachmentMediaKey\x18\x05 \x01(\x0c\x12#\n\x1b\x61ttachmentMediaKeyTimestamp\x18\x06 \x01(\x03\x12\x1c\n\x14\x61ttachmentFileSha256\x18\x07 \x01(\x0c\x12\x1f\n\x17\x61ttachmentFileEncSha256\x18\x08 \x01(\x0c\x12\x1c\n\x14\x61ttachmentDirectPath\x18\t \x01(\t\x12\x1f\n\x17\x61ttachmentJpegThumbnail\x18\n \x01(\x0c\"$\n\x0e\x41ttachmentType\x12\t\n\x05IMAGE\x10\x00\x12\x07\n\x03PDF\x10\x01\x1aq\n\x11KeepInChatMessage\x12!\n\x03key\x18\x01 \x01(\x0b\x32\x14.whatsapp.MessageKey\x12$\n\x08keepType\x18\x02 \x01(\x0e\x32\x12.whatsapp.KeepType\x12\x13\n\x0btimestampMs\x18\x03 \x01(\x03\x1a\x87\x04\n\x13LinkPreviewMetadata\x12\x42\n\x13paymentLinkMetadata\x18\x01 \x01(\x0b\x32%.whatsapp.Message.PaymentLinkMetadata\x12\x32\n\x0burlMetadata\x18\x02 \x01(\x0b\x32\x1d.whatsapp.Message.URLMetadata\x12\x16\n\x0e\x66\x62\x45xperimentId\x18\x03 \x01(\r\x12\x19\n\x11linkMediaDuration\x18\x04 \x01(\r\x12V\n\x13socialMediaPostType\x18\x05 \x01(\x0e\x32\x39.whatsapp.Message.LinkPreviewMetadata.SocialMediaPostType\x12\x1c\n\x14linkInlineVideoMuted\x18\x06 \x01(\x08\x12\x17\n\x0fvideoContentUrl\x18\x07 \x01(\t\x12.\n\rmusicMetadata\x18\x08 \x01(\x0b\x32\x17.whatsapp.EmbeddedMusic\x12\x1b\n\x13videoContentCaption\x18\t \x01(\t\"i\n\x13SocialMediaPostType\x12\x08\n\x04NONE\x10\x00\x12\x08\n\x04REEL\x10\x01\x12\x0e\n\nLIVE_VIDEO\x10\x02\x12\x0e\n\nLONG_VIDEO\x10\x03\x12\x10\n\x0cSINGLE_IMAGE\x10\x04\x12\x0c\n\x08\x43\x41ROUSEL\x10\x05\x1a\xff\x06\n\x0bListMessage\x12\r\n\x05title\x18\x01 \x01(\t\x12\x13\n\x0b\x64\x65scription\x18\x02 \x01(\t\x12\x12\n\nbuttonText\x18\x03 \x01(\t\x12\x38\n\x08listType\x18\x04 \x01(\x0e\x32&.whatsapp.Message.ListMessage.ListType\x12\x37\n\x08sections\x18\x05 \x03(\x0b\x32%.whatsapp.Message.ListMessage.Section\x12\x46\n\x0fproductListInfo\x18\x06 \x01(\x0b\x32-.whatsapp.Message.ListMessage.ProductListInfo\x12\x12\n\nfooterText\x18\x07 \x01(\t\x12*\n\x0b\x63ontextInfo\x18\x08 \x01(\x0b\x32\x15.whatsapp.ContextInfo\x1a\x1c\n\x07Product\x12\x11\n\tproductId\x18\x01 \x01(\t\x1a\x42\n\x16ProductListHeaderImage\x12\x11\n\tproductId\x18\x01 \x01(\t\x12\x15\n\rjpegThumbnail\x18\x02 \x01(\x0c\x1a\xbd\x01\n\x0fProductListInfo\x12\x45\n\x0fproductSections\x18\x01 \x03(\x0b\x32,.whatsapp.Message.ListMessage.ProductSection\x12I\n\x0bheaderImage\x18\x02 \x01(\x0b\x32\x34.whatsapp.Message.ListMessage.ProductListHeaderImage\x12\x18\n\x10\x62usinessOwnerJid\x18\x03 \x01(\t\x1aX\n\x0eProductSection\x12\r\n\x05title\x18\x01 \x01(\t\x12\x37\n\x08products\x18\x02 \x03(\x0b\x32%.whatsapp.Message.ListMessage.Product\x1a\x38\n\x03Row\x12\r\n\x05title\x18\x01 \x01(\t\x12\x13\n\x0b\x64\x65scription\x18\x02 \x01(\t\x12\r\n\x05rowId\x18\x03 \x01(\t\x1aI\n\x07Section\x12\r\n\x05title\x18\x01 \x01(\t\x12/\n\x04rows\x18\x02 \x03(\x0b\x32!.whatsapp.Message.ListMessage.Row\"<\n\x08ListType\x12\x0b\n\x07UNKNOWN\x10\x00\x12\x11\n\rSINGLE_SELECT\x10\x01\x12\x10\n\x0cPRODUCT_LIST\x10\x02\x1a\xd3\x02\n\x13ListResponseMessage\x12\r\n\x05title\x18\x01 \x01(\t\x12@\n\x08listType\x18\x02 \x01(\x0e\x32..whatsapp.Message.ListResponseMessage.ListType\x12R\n\x11singleSelectReply\x18\x03 \x01(\x0b\x32\x37.whatsapp.Message.ListResponseMessage.SingleSelectReply\x12*\n\x0b\x63ontextInfo\x18\x04 \x01(\x0b\x32\x15.whatsapp.ContextInfo\x12\x13\n\x0b\x64\x65scription\x18\x05 \x01(\t\x1a*\n\x11SingleSelectReply\x12\x15\n\rselectedRowId\x18\x01 \x01(\t\"*\n\x08ListType\x12\x0b\n\x07UNKNOWN\x10\x00\x12\x11\n\rSINGLE_SELECT\x10\x01\x1a\xa1\x02\n\x13LiveLocationMessage\x12\x17\n\x0f\x64\x65greesLatitude\x18\x01 \x01(\x01\x12\x18\n\x10\x64\x65greesLongitude\x18\x02 \x01(\x01\x12\x18\n\x10\x61\x63\x63uracyInMeters\x18\x03 \x01(\r\x12\x12\n\nspeedInMps\x18\x04 \x01(\x02\x12)\n!degreesClockwiseFromMagneticNorth\x18\x05 \x01(\r\x12\x0f\n\x07\x63\x61ption\x18\x06 \x01(\t\x12\x16\n\x0esequenceNumber\x18\x07 \x01(\x03\x12\x12\n\ntimeOffset\x18\x08 \x01(\r\x12\x15\n\rjpegThumbnail\x18\x10 \x01(\x0c\x12*\n\x0b\x63ontextInfo\x18\x11 \x01(\x0b\x32\x15.whatsapp.ContextInfo\x1a\xad\x02\n\x0fLocationMessage\x12\x17\n\x0f\x64\x65greesLatitude\x18\x01 \x01(\x01\x12\x18\n\x10\x64\x65greesLongitude\x18\x02 \x01(\x01\x12\x0c\n\x04name\x18\x03 \x01(\t\x12\x0f\n\x07\x61\x64\x64ress\x18\x04 \x01(\t\x12\x0b\n\x03url\x18\x05 \x01(\t\x12\x0e\n\x06isLive\x18\x06 \x01(\x08\x12\x18\n\x10\x61\x63\x63uracyInMeters\x18\x07 \x01(\r\x12\x12\n\nspeedInMps\x18\x08 \x01(\x02\x12)\n!degreesClockwiseFromMagneticNorth\x18\t \x01(\r\x12\x0f\n\x07\x63omment\x18\x0b \x01(\t\x12\x15\n\rjpegThumbnail\x18\x10 \x01(\x0c\x12*\n\x0b\x63ontextInfo\x18\x11 \x01(\x0b\x32\x15.whatsapp.ContextInfo\x1a\xc6\x01\n\x14MMSThumbnailMetadata\x12\x1b\n\x13thumbnailDirectPath\x18\x01 \x01(\t\x12\x17\n\x0fthumbnailSha256\x18\x02 \x01(\x0c\x12\x1a\n\x12thumbnailEncSha256\x18\x03 \x01(\x0c\x12\x10\n\x08mediaKey\x18\x04 \x01(\x0c\x12\x19\n\x11mediaKeyTimestamp\x18\x05 \x01(\x03\x12\x17\n\x0fthumbnailHeight\x18\x06 \x01(\r\x12\x16\n\x0ethumbnailWidth\x18\x07 \x01(\r\x1ao\n\x14MarkAsVerifiedAction\x12\x15\n\ruserJidString\x18\x01 \x01(\t\x12\x10\n\x08verified\x18\x02 \x01(\x08\x12\x1b\n\x13verifiedIdentityKey\x18\x03 \x01(\x0c\x12\x11\n\tactionSeq\x18\x04 \x01(\x04\x1a\x8a\x02\n\x14MessageHistoryBundle\x12\x10\n\x08mimetype\x18\x01 \x01(\t\x12\x12\n\nfileSha256\x18\x02 \x01(\x0c\x12\x10\n\x08mediaKey\x18\x03 \x01(\x0c\x12\x15\n\rfileEncSha256\x18\x04 \x01(\x0c\x12\x12\n\ndirectPath\x18\x05 \x01(\t\x12\x19\n\x11mediaKeyTimestamp\x18\x06 \x01(\x03\x12*\n\x0b\x63ontextInfo\x18\x07 \x01(\x0b\x32\x15.whatsapp.ContextInfo\x12H\n\x16messageHistoryMetadata\x18\x08 \x01(\x0b\x32(.whatsapp.Message.MessageHistoryMetadata\x1a\xb5\x01\n\x16MessageHistoryMetadata\x12\x18\n\x10historyReceivers\x18\x01 \x03(\t\x12&\n\x1eoldestMessageTimestampInWindow\x18\x02 \x01(\x03\x12\x14\n\x0cmessageCount\x18\x03 \x01(\x03\x12\x1b\n\x13nonHistoryReceivers\x18\x04 \x03(\t\x12&\n\x1eoldestMessageTimestampInBundle\x18\x05 \x01(\x03\x1a\xe0\x01\n\x14MessageHistoryNotice\x12*\n\x0b\x63ontextInfo\x18\x01 \x01(\x0b\x32\x15.whatsapp.ContextInfo\x12H\n\x16messageHistoryMetadata\x18\x02 \x01(\x0b\x32(.whatsapp.Message.MessageHistoryMetadata\x12R\n\x1b\x62otHistoryShareSyncMetadata\x18\x03 \x01(\x0b\x32-.whatsapp.Message.BotHistoryShareSyncMetadata\x1a\xcb\x01\n\x0cMusicMessage\x12.\n\rembeddedMusic\x18\x01 \x01(\x0b\x32\x17.whatsapp.EmbeddedMusic\x12\x0f\n\x07songUri\x18\x02 \x01(\t\x12\x12\n\nartworkUri\x18\x03 \x01(\t\x12\r\n\x05style\x18\x04 \x01(\x05\x12*\n\x0b\x63ontextInfo\x18\x05 \x01(\x0b\x32\x15.whatsapp.ContextInfo\"+\n\x11MusicMessageStyle\x12\x0b\n\x07UNKNOWN\x10\x00\x12\t\n\x05VINYL\x10\x01\x1a\xbb\x01\n\x1cNewsletterAdminInviteMessage\x12\x15\n\rnewsletterJid\x18\x01 \x01(\t\x12\x16\n\x0enewsletterName\x18\x02 \x01(\t\x12\x15\n\rjpegThumbnail\x18\x03 \x01(\x0c\x12\x0f\n\x07\x63\x61ption\x18\x04 \x01(\t\x12\x18\n\x10inviteExpiration\x18\x05 \x01(\x03\x12*\n\x0b\x63ontextInfo\x18\x06 \x01(\x0b\x32\x15.whatsapp.ContextInfo\x1a\xa4\x01\n\x1fNewsletterFollowerInviteMessage\x12\x15\n\rnewsletterJid\x18\x01 \x01(\t\x12\x16\n\x0enewsletterName\x18\x02 \x01(\t\x12\x15\n\rjpegThumbnail\x18\x03 \x01(\x0c\x12\x0f\n\x07\x63\x61ption\x18\x04 \x01(\t\x12*\n\x0b\x63ontextInfo\x18\x05 \x01(\x0b\x32\x15.whatsapp.ContextInfo\x1a\xa0\x04\n\x0cOrderMessage\x12\x0f\n\x07orderId\x18\x01 \x01(\t\x12\x11\n\tthumbnail\x18\x02 \x01(\x0c\x12\x11\n\titemCount\x18\x03 \x01(\x05\x12:\n\x06status\x18\x04 \x01(\x0e\x32*.whatsapp.Message.OrderMessage.OrderStatus\x12<\n\x07surface\x18\x05 \x01(\x0e\x32+.whatsapp.Message.OrderMessage.OrderSurface\x12\x0f\n\x07message\x18\x06 \x01(\t\x12\x12\n\norderTitle\x18\x07 \x01(\t\x12\x11\n\tsellerJid\x18\x08 \x01(\t\x12\r\n\x05token\x18\t \x01(\t\x12\x17\n\x0ftotalAmount1000\x18\n \x01(\x03\x12\x19\n\x11totalCurrencyCode\x18\x0b \x01(\t\x12*\n\x0b\x63ontextInfo\x18\x11 \x01(\x0b\x32\x15.whatsapp.ContextInfo\x12\x19\n\x0emessageVersion\x18\x0c \x01(\x05:\x01\x31\x12\x33\n\x15orderRequestMessageId\x18\r \x01(\x0b\x32\x14.whatsapp.MessageKey\x12\x13\n\x0b\x63\x61talogType\x18\x0f \x01(\t\"6\n\x0bOrderStatus\x12\x0b\n\x07INQUIRY\x10\x01\x12\x0c\n\x08\x41\x43\x43\x45PTED\x10\x02\x12\x0c\n\x08\x44\x45\x43LINED\x10\x03\"\x1b\n\x0cOrderSurface\x12\x0b\n\x07\x43\x41TALOG\x10\x01\x1aT\n\x17PaymentExtendedMetadata\x12\x0c\n\x04type\x18\x01 \x01(\r\x12\x10\n\x08platform\x18\x02 \x01(\t\x12\x19\n\x11messageParamsJson\x18\x03 \x01(\t\x1a\xd8\x02\n\x14PaymentInviteMessage\x12G\n\x0bserviceType\x18\x01 \x01(\x0e\x32\x32.whatsapp.Message.PaymentInviteMessage.ServiceType\x12\x17\n\x0f\x65xpiryTimestamp\x18\x02 \x01(\x03\x12\x19\n\x11incentiveEligible\x18\x03 \x01(\x08\x12\x12\n\nreferralId\x18\x04 \x01(\t\x12\x45\n\ninviteType\x18\x05 \x01(\x0e\x32\x31.whatsapp.Message.PaymentInviteMessage.InviteType\"%\n\nInviteType\x12\x0b\n\x07\x44\x45\x46\x41ULT\x10\x00\x12\n\n\x06MAPPER\x10\x01\"A\n\x0bServiceType\x12\x0b\n\x07UNKNOWN\x10\x00\x12\t\n\x05\x46\x42PAY\x10\x01\x12\x08\n\x04NOVI\x10\x02\x12\x07\n\x03UPI\x10\x03\x12\x07\n\x03PIX\x10\x04\x1a\xf8\x03\n\x13PaymentLinkMetadata\x12G\n\x06\x62utton\x18\x01 \x01(\x0b\x32\x37.whatsapp.Message.PaymentLinkMetadata.PaymentLinkButton\x12G\n\x06header\x18\x02 \x01(\x0b\x32\x37.whatsapp.Message.PaymentLinkMetadata.PaymentLinkHeader\x12K\n\x08provider\x18\x03 \x01(\x0b\x32\x39.whatsapp.Message.PaymentLinkMetadata.PaymentLinkProvider\x1a(\n\x11PaymentLinkButton\x12\x13\n\x0b\x64isplayText\x18\x01 \x01(\t\x1a\xac\x01\n\x11PaymentLinkHeader\x12\x61\n\nheaderType\x18\x01 \x01(\x0e\x32M.whatsapp.Message.PaymentLinkMetadata.PaymentLinkHeader.PaymentLinkHeaderType\"4\n\x15PaymentLinkHeaderType\x12\x10\n\x0cLINK_PREVIEW\x10\x00\x12\t\n\x05ORDER\x10\x01\x1a)\n\x13PaymentLinkProvider\x12\x12\n\nparamsJson\x18\x01 \x01(\t\x1a\xb6\x04\n\x16PaymentReminderMessage\x12\x12\n\nreminderId\x18\x01 \x01(\t\x12\x12\n\ninstanceId\x18\x02 \x01(\t\x12\x13\n\x0b\x64\x65scription\x18\x03 \x01(\t\x12M\n\tfrequency\x18\x04 \x01(\x0e\x32:.whatsapp.Message.PaymentReminderMessage.ReminderFrequency\x12G\n\x06status\x18\x05 \x01(\x0e\x32\x37.whatsapp.Message.PaymentReminderMessage.ReminderStatus\x12\x10\n\x08payeeVpa\x18\x06 \x01(\t\x12\x10\n\x08payeeJid\x18\x07 \x01(\t\x12\x10\n\x08payerJid\x18\x08 \x01(\t\x12\x1f\n\x06\x61mount\x18\t \x01(\x0b\x32\x0f.whatsapp.Money\"j\n\x11ReminderFrequency\x12\x1e\n\x1aREMINDER_FREQUENCY_UNKNOWN\x10\x00\x12\n\n\x06WEEKLY\x10\x01\x12\r\n\tBI_WEEKLY\x10\x02\x12\x0b\n\x07MONTHLY\x10\x03\x12\r\n\tQUARTERLY\x10\x04\"\x83\x01\n\x0eReminderStatus\x12\x1b\n\x17REMINDER_STATUS_UNKNOWN\x10\x00\x12\n\n\x06\x41\x43TIVE\x10\x01\x12\x18\n\x14\x43\x41NCELLED_BY_CREATOR\x10\x02\x12\x17\n\x13STOPPED_BY_RECEIVER\x10\x03\x12\x0b\n\x07\x45XPIRED\x10\x04\x12\x08\n\x04PAID\x10\x05\x1a\xf8\x15\n\x1fPeerDataOperationRequestMessage\x12T\n\x1cpeerDataOperationRequestType\x18\x01 \x01(\x0e\x32..whatsapp.Message.PeerDataOperationRequestType\x12h\n\x16requestStickerReupload\x18\x02 \x03(\x0b\x32H.whatsapp.Message.PeerDataOperationRequestMessage.RequestStickerReupload\x12^\n\x11requestUrlPreview\x18\x03 \x03(\x0b\x32\x43.whatsapp.Message.PeerDataOperationRequestMessage.RequestUrlPreview\x12p\n\x1ahistorySyncOnDemandRequest\x18\x04 \x01(\x0b\x32L.whatsapp.Message.PeerDataOperationRequestMessage.HistorySyncOnDemandRequest\x12z\n\x1fplaceholderMessageResendRequest\x18\x05 \x03(\x0b\x32Q.whatsapp.Message.PeerDataOperationRequestMessage.PlaceholderMessageResendRequest\x12x\n\x1e\x66ullHistorySyncOnDemandRequest\x18\x06 \x01(\x0b\x32P.whatsapp.Message.PeerDataOperationRequestMessage.FullHistorySyncOnDemandRequest\x12\x82\x01\n#syncdCollectionFatalRecoveryRequest\x18\x07 \x01(\x0b\x32U.whatsapp.Message.PeerDataOperationRequestMessage.SyncDCollectionFatalRecoveryRequest\x12t\n\x1chistorySyncChunkRetryRequest\x18\x08 \x01(\x0b\x32N.whatsapp.Message.PeerDataOperationRequestMessage.HistorySyncChunkRetryRequest\x12\\\n\x10galaxyFlowAction\x18\t \x01(\x0b\x32\x42.whatsapp.Message.PeerDataOperationRequestMessage.GalaxyFlowAction\x12\x8a\x01\n\'companionCanonicalUserNonceFetchRequest\x18\n \x01(\x0b\x32Y.whatsapp.Message.PeerDataOperationRequestMessage.CompanionCanonicalUserNonceFetchRequest\x12\x88\x01\n&bizBroadcastInsightsContactListRequest\x18\x0b \x01(\x0b\x32X.whatsapp.Message.PeerDataOperationRequestMessage.BizBroadcastInsightsContactListRequest\x12\x80\x01\n\"bizBroadcastInsightsRefreshRequest\x18\x0c \x01(\x0b\x32T.whatsapp.Message.PeerDataOperationRequestMessage.BizBroadcastInsightsRefreshRequest\x1a<\n&BizBroadcastInsightsContactListRequest\x12\x12\n\ncampaignId\x18\x01 \x01(\t\x1a\x38\n\"BizBroadcastInsightsRefreshRequest\x12\x12\n\ncampaignId\x18\x01 \x01(\t\x1a\x46\n\'CompanionCanonicalUserNonceFetchRequest\x12\x1b\n\x13registrationTraceId\x18\x01 \x01(\t\x1a\x8f\x02\n\x1e\x46ullHistorySyncOnDemandRequest\x12Q\n\x0frequestMetadata\x18\x01 \x01(\x0b\x32\x38.whatsapp.Message.FullHistorySyncOnDemandRequestMetadata\x12\x42\n\x11historySyncConfig\x18\x02 \x01(\x0b\x32\'.whatsapp.DeviceProps.HistorySyncConfig\x12V\n\x1d\x66ullHistorySyncOnDemandConfig\x18\x03 \x01(\x0b\x32/.whatsapp.Message.FullHistorySyncOnDemandConfig\x1a\x92\x02\n\x10GalaxyFlowAction\x12\x65\n\x04type\x18\x01 \x01(\x0e\x32W.whatsapp.Message.PeerDataOperationRequestMessage.GalaxyFlowAction.GalaxyFlowActionType\x12\x0e\n\x06\x66lowId\x18\x02 \x01(\t\x12\x10\n\x08stanzaId\x18\x03 \x01(\t\x12#\n\x1bgalaxyFlowDownloadRequestId\x18\x04 \x01(\t\x12\r\n\x05\x61gmId\x18\x05 \x01(\t\"A\n\x14GalaxyFlowActionType\x12\x11\n\rNOTIFY_LAUNCH\x10\x01\x12\x16\n\x12\x44OWNLOAD_RESPONSES\x10\x02\x1a\x9d\x01\n\x1cHistorySyncChunkRetryRequest\x12\x33\n\x08syncType\x18\x01 \x01(\x0e\x32!.whatsapp.Message.HistorySyncType\x12\x12\n\nchunkOrder\x18\x02 \x01(\r\x12\x1b\n\x13\x63hunkNotificationId\x18\x03 \x01(\t\x12\x17\n\x0fregenerateChunk\x18\x04 \x01(\x08\x1a\xc6\x01\n\x1aHistorySyncOnDemandRequest\x12\x0f\n\x07\x63hatJid\x18\x01 \x01(\t\x12\x13\n\x0boldestMsgId\x18\x02 \x01(\t\x12\x17\n\x0foldestMsgFromMe\x18\x03 \x01(\x08\x12\x18\n\x10onDemandMsgCount\x18\x04 \x01(\x05\x12\x1c\n\x14oldestMsgTimestampMs\x18\x05 \x01(\x03\x12\x12\n\naccountLid\x18\x06 \x01(\t\x12\x1d\n\x15supportInlineResponse\x18\x07 \x01(\x08\x1aK\n\x1fPlaceholderMessageResendRequest\x12(\n\nmessageKey\x18\x01 \x01(\x0b\x32\x14.whatsapp.MessageKey\x1a,\n\x16RequestStickerReupload\x12\x12\n\nfileSha256\x18\x01 \x01(\t\x1a<\n\x11RequestUrlPreview\x12\x0b\n\x03url\x18\x01 \x01(\t\x12\x1a\n\x12includeHqThumbnail\x18\x02 \x01(\x08\x1aP\n#SyncDCollectionFatalRecoveryRequest\x12\x16\n\x0e\x63ollectionName\x18\x01 \x01(\t\x12\x11\n\ttimestamp\x18\x02 \x01(\x03\x1a\x82\'\n\'PeerDataOperationRequestResponseMessage\x12T\n\x1cpeerDataOperationRequestType\x18\x01 \x01(\x0e\x32..whatsapp.Message.PeerDataOperationRequestType\x12\x10\n\x08stanzaId\x18\x02 \x01(\t\x12r\n\x17peerDataOperationResult\x18\x03 \x03(\x0b\x32Q.whatsapp.Message.PeerDataOperationRequestResponseMessage.PeerDataOperationResult\x1a\xfa$\n\x17PeerDataOperationResult\x12\x46\n\x11mediaUploadResult\x18\x01 \x01(\x0e\x32+.whatsapp.MediaRetryNotification.ResultType\x12\x38\n\x0estickerMessage\x18\x02 \x01(\x0b\x32 .whatsapp.Message.StickerMessage\x12\x82\x01\n\x13linkPreviewResponse\x18\x03 \x01(\x0b\x32\x65.whatsapp.Message.PeerDataOperationRequestResponseMessage.PeerDataOperationResult.LinkPreviewResponse\x12\x9c\x01\n placeholderMessageResendResponse\x18\x04 \x01(\x0b\x32r.whatsapp.Message.PeerDataOperationRequestResponseMessage.PeerDataOperationResult.PlaceholderMessageResendResponse\x12\x93\x01\n\x1fwaffleNonceFetchRequestResponse\x18\x05 \x01(\x0b\x32j.whatsapp.Message.PeerDataOperationRequestResponseMessage.PeerDataOperationResult.WaffleNonceFetchResponse\x12\xa8\x01\n&fullHistorySyncOnDemandRequestResponse\x18\x06 \x01(\x0b\x32x.whatsapp.Message.PeerDataOperationRequestResponseMessage.PeerDataOperationResult.FullHistorySyncOnDemandRequestResponse\x12\xa1\x01\n&companionMetaNonceFetchRequestResponse\x18\x07 \x01(\x0b\x32q.whatsapp.Message.PeerDataOperationRequestResponseMessage.PeerDataOperationResult.CompanionMetaNonceFetchResponse\x12\xa0\x01\n\"syncdSnapshotFatalRecoveryResponse\x18\x08 \x01(\x0b\x32t.whatsapp.Message.PeerDataOperationRequestResponseMessage.PeerDataOperationResult.SyncDSnapshotFatalRecoveryResponse\x12\xb3\x01\n/companionCanonicalUserNonceFetchRequestResponse\x18\t \x01(\x0b\x32z.whatsapp.Message.PeerDataOperationRequestResponseMessage.PeerDataOperationResult.CompanionCanonicalUserNonceFetchResponse\x12\x96\x01\n\x1dhistorySyncChunkRetryResponse\x18\n \x01(\x0b\x32o.whatsapp.Message.PeerDataOperationRequestResponseMessage.PeerDataOperationResult.HistorySyncChunkRetryResponse\x12\x88\x01\n\x16\x66lowResponsesCsvBundle\x18\x0b \x01(\x0b\x32h.whatsapp.Message.PeerDataOperationRequestResponseMessage.PeerDataOperationResult.FlowResponsesCsvBundle\x12\xaa\x01\n\'bizBroadcastInsightsContactListResponse\x18\x0c \x01(\x0b\x32y.whatsapp.Message.PeerDataOperationRequestResponseMessage.PeerDataOperationResult.BizBroadcastInsightsContactListResponse\x12\x88\x01\n\x16\x63ontactRefreshResponse\x18\r \x01(\x0b\x32h.whatsapp.Message.PeerDataOperationRequestResponseMessage.PeerDataOperationResult.ContactRefreshResponse\x1a\xd9\x01\n\'BizBroadcastInsightsContactListResponse\x12\x12\n\ncampaignId\x18\x01 \x01(\t\x12\x13\n\x0btimestampMs\x18\x02 \x01(\x03\x12\x84\x01\n\x08\x63ontacts\x18\x03 \x03(\x0b\x32r.whatsapp.Message.PeerDataOperationRequestResponseMessage.PeerDataOperationResult.BizBroadcastInsightsContactState\x1am\n BizBroadcastInsightsContactState\x12\x12\n\ncontactJid\x18\x01 \x01(\t\x12\x35\n\x05state\x18\x02 \x01(\x0e\x32&.whatsapp.Message.InsightDeliveryState\x1a_\n(CompanionCanonicalUserNonceFetchResponse\x12\r\n\x05nonce\x18\x01 \x01(\t\x12\x0e\n\x06waFbid\x18\x02 \x01(\t\x12\x14\n\x0c\x66orceRefresh\x18\x03 \x01(\x08\x1a\x30\n\x1f\x43ompanionMetaNonceFetchResponse\x12\r\n\x05nonce\x18\x01 \x01(\t\x1a\x85\x01\n\x16\x43ontactRefreshResponse\x12\x19\n\x11\x63overedRequestIds\x18\x01 \x03(\t\x12\x19\n\x11\x63ollectionVersion\x18\x02 \x01(\x04\x12\x19\n\x11primaryDurationMs\x18\x03 \x01(\x03\x12\x1a\n\x12uniqueContactCount\x18\x04 \x01(\r\x1a\xf1\x01\n\x16\x46lowResponsesCsvBundle\x12\x0e\n\x06\x66lowId\x18\x01 \x01(\t\x12#\n\x1bgalaxyFlowDownloadRequestId\x18\x02 \x01(\t\x12\x10\n\x08\x66ileName\x18\x03 \x01(\t\x12\x10\n\x08mimetype\x18\x04 \x01(\t\x12\x12\n\nfileSha256\x18\x05 \x01(\x0c\x12\x10\n\x08mediaKey\x18\x06 \x01(\x0c\x12\x15\n\rfileEncSha256\x18\x07 \x01(\x0c\x12\x12\n\ndirectPath\x18\x08 \x01(\t\x12\x19\n\x11mediaKeyTimestamp\x18\t \x01(\x03\x12\x12\n\nfileLength\x18\n \x01(\x04\x1a\x89\x02\n&FullHistorySyncOnDemandRequestResponse\x12Q\n\x0frequestMetadata\x18\x01 \x01(\x0b\x32\x38.whatsapp.Message.FullHistorySyncOnDemandRequestMetadata\x12\x8b\x01\n\x0cresponseCode\x18\x02 \x01(\x0e\x32u.whatsapp.Message.PeerDataOperationRequestResponseMessage.PeerDataOperationResult.FullHistorySyncOnDemandResponseCode\x1a\x9b\x02\n\x1dHistorySyncChunkRetryResponse\x12\x33\n\x08syncType\x18\x01 \x01(\x0e\x32!.whatsapp.Message.HistorySyncType\x12\x12\n\nchunkOrder\x18\x02 \x01(\r\x12\x11\n\trequestId\x18\x03 \x01(\t\x12\x89\x01\n\x0cresponseCode\x18\x04 \x01(\x0e\x32s.whatsapp.Message.PeerDataOperationRequestResponseMessage.PeerDataOperationResult.HistorySyncChunkRetryResponseCode\x12\x12\n\ncanRecover\x18\x05 \x01(\x08\x1a\xf8\x05\n\x13LinkPreviewResponse\x12\x0b\n\x03url\x18\x01 \x01(\t\x12\r\n\x05title\x18\x02 \x01(\t\x12\x13\n\x0b\x64\x65scription\x18\x03 \x01(\t\x12\x11\n\tthumbData\x18\x04 \x01(\x0c\x12\x11\n\tmatchText\x18\x06 \x01(\t\x12\x13\n\x0bpreviewType\x18\x07 \x01(\t\x12\x9b\x01\n\x0bhqThumbnail\x18\x08 \x01(\x0b\x32\x85\x01.whatsapp.Message.PeerDataOperationRequestResponseMessage.PeerDataOperationResult.LinkPreviewResponse.LinkPreviewHighQualityThumbnail\x12\x9a\x01\n\x0fpreviewMetadata\x18\t \x01(\x0b\x32\x80\x01.whatsapp.Message.PeerDataOperationRequestResponseMessage.PeerDataOperationResult.LinkPreviewResponse.PaymentLinkPreviewMetadata\x1a\xb6\x01\n\x1fLinkPreviewHighQualityThumbnail\x12\x12\n\ndirectPath\x18\x01 \x01(\t\x12\x11\n\tthumbHash\x18\x02 \x01(\t\x12\x14\n\x0c\x65ncThumbHash\x18\x03 \x01(\t\x12\x10\n\x08mediaKey\x18\x04 \x01(\x0c\x12\x1b\n\x13mediaKeyTimestampMs\x18\x05 \x01(\x03\x12\x12\n\nthumbWidth\x18\x06 \x01(\x05\x12\x13\n\x0bthumbHeight\x18\x07 \x01(\x05\x1a\x80\x01\n\x1aPaymentLinkPreviewMetadata\x12\x1a\n\x12isBusinessVerified\x18\x01 \x01(\x08\x12\x14\n\x0cproviderName\x18\x02 \x01(\t\x12\x0e\n\x06\x61mount\x18\x03 \x01(\t\x12\x0e\n\x06offset\x18\x04 \x01(\t\x12\x10\n\x08\x63urrency\x18\x05 \x01(\t\x1a?\n PlaceholderMessageResendResponse\x12\x1b\n\x13webMessageInfoBytes\x18\x01 \x01(\x0c\x1aV\n\"SyncDSnapshotFatalRecoveryResponse\x12\x1a\n\x12\x63ollectionSnapshot\x18\x01 \x01(\x0c\x12\x14\n\x0cisCompressed\x18\x02 \x01(\x08\x1a<\n\x18WaffleNonceFetchResponse\x12\r\n\x05nonce\x18\x01 \x01(\t\x12\x11\n\twaEntFbid\x18\x02 \x01(\t\"\xa7\x02\n#FullHistorySyncOnDemandResponseCode\x12\x13\n\x0fREQUEST_SUCCESS\x10\x00\x12\x18\n\x14REQUEST_TIME_EXPIRED\x10\x01\x12\x1c\n\x18\x44\x45\x43LINED_SHARING_HISTORY\x10\x02\x12\x11\n\rGENERIC_ERROR\x10\x03\x12$\n ERROR_REQUEST_ON_NON_SMB_PRIMARY\x10\x04\x12%\n!ERROR_HOSTED_DEVICE_NOT_CONNECTED\x10\x05\x12*\n&ERROR_HOSTED_DEVICE_LOGIN_TIME_NOT_SET\x10\x06\x12\'\n#ERROR_MULTI_PROVIDER_NOT_CONFIGURED\x10\x07\"\x9e\x01\n!HistorySyncChunkRetryResponseCode\x12\x14\n\x10GENERATION_ERROR\x10\x01\x12\x12\n\x0e\x43HUNK_CONSUMED\x10\x02\x12\x0b\n\x07TIMEOUT\x10\x03\x12\x15\n\x11SESSION_EXHAUSTED\x10\x04\x12\x13\n\x0f\x43HUNK_EXHAUSTED\x10\x05\x12\x16\n\x12\x44UPLICATED_REQUEST\x10\x06\x1a\xc5\x01\n\x10PinInChatMessage\x12!\n\x03key\x18\x01 \x01(\x0b\x32\x14.whatsapp.MessageKey\x12\x35\n\x04type\x18\x02 \x01(\x0e\x32\'.whatsapp.Message.PinInChatMessage.Type\x12\x19\n\x11senderTimestampMs\x18\x03 \x01(\x03\"<\n\x04Type\x12\x10\n\x0cUNKNOWN_TYPE\x10\x00\x12\x0f\n\x0bPIN_FOR_ALL\x10\x01\x12\x11\n\rUNPIN_FOR_ALL\x10\x02\x1a\x84\x01\n\x12PlaceholderMessage\x12\x42\n\x04type\x18\x01 \x01(\x0e\x32\x34.whatsapp.Message.PlaceholderMessage.PlaceholderType\"*\n\x0fPlaceholderType\x12\x17\n\x13MASK_LINKED_DEVICES\x10\x00\x1a\xcc\x01\n\x14PollAddOptionMessage\x12\x34\n\x16pollCreationMessageKey\x18\x01 \x01(\x0b\x32\x14.whatsapp.MessageKey\x12?\n\taddOption\x18\x02 \x01(\x0b\x32,.whatsapp.Message.PollCreationMessage.Option\x12=\n\x08metadata\x18\x03 \x01(\x0b\x32+.whatsapp.Message.PollUpdateMessageMetadata\x1a\xe5\x03\n\x13PollCreationMessage\x12\x0e\n\x06\x65ncKey\x18\x01 \x01(\x0c\x12\x0c\n\x04name\x18\x02 \x01(\t\x12=\n\x07options\x18\x03 \x03(\x0b\x32,.whatsapp.Message.PollCreationMessage.Option\x12\x1e\n\x16selectableOptionsCount\x18\x04 \x01(\r\x12*\n\x0b\x63ontextInfo\x18\x05 \x01(\x0b\x32\x15.whatsapp.ContextInfo\x12:\n\x0fpollContentType\x18\x06 \x01(\x0e\x32!.whatsapp.Message.PollContentType\x12,\n\x08pollType\x18\x07 \x01(\x0e\x32\x1a.whatsapp.Message.PollType\x12\x43\n\rcorrectAnswer\x18\x08 \x01(\x0b\x32,.whatsapp.Message.PollCreationMessage.Option\x12\x0f\n\x07\x65ndTime\x18\t \x01(\x03\x12\x1b\n\x13hideParticipantName\x18\n \x01(\x08\x12\x16\n\x0e\x61llowAddOption\x18\x0b \x01(\x08\x1a\x30\n\x06Option\x12\x12\n\noptionName\x18\x01 \x01(\t\x12\x12\n\noptionHash\x18\x02 \x01(\t\x1a\x31\n\x0cPollEncValue\x12\x12\n\nencPayload\x18\x01 \x01(\x0c\x12\r\n\x05\x65ncIv\x18\x02 \x01(\x0c\x1a\x85\x02\n\x19PollResultSnapshotMessage\x12\x0c\n\x04name\x18\x01 \x01(\t\x12G\n\tpollVotes\x18\x02 \x03(\x0b\x32\x34.whatsapp.Message.PollResultSnapshotMessage.PollVote\x12*\n\x0b\x63ontextInfo\x18\x03 \x01(\x0b\x32\x15.whatsapp.ContextInfo\x12,\n\x08pollType\x18\x04 \x01(\x0e\x32\x1a.whatsapp.Message.PollType\x1a\x37\n\x08PollVote\x12\x12\n\noptionName\x18\x01 \x01(\t\x12\x17\n\x0foptionVoteCount\x18\x02 \x01(\x03\x1a\xd1\x01\n\x11PollUpdateMessage\x12\x34\n\x16pollCreationMessageKey\x18\x01 \x01(\x0b\x32\x14.whatsapp.MessageKey\x12,\n\x04vote\x18\x02 \x01(\x0b\x32\x1e.whatsapp.Message.PollEncValue\x12=\n\x08metadata\x18\x03 \x01(\x0b\x32+.whatsapp.Message.PollUpdateMessageMetadata\x12\x19\n\x11senderTimestampMs\x18\x04 \x01(\x03\x1aK\n\x19PollUpdateMessageMetadata\x12\x14\n\x0cpollNameHash\x18\x01 \x01(\x0c\x12\x18\n\x10lastEditStanzaId\x18\x02 \x01(\t\x1a*\n\x0fPollVoteMessage\x12\x17\n\x0fselectedOptions\x18\x01 \x03(\x0c\x1a\x99\x05\n\x0eProductMessage\x12\x41\n\x07product\x18\x01 \x01(\x0b\x32\x30.whatsapp.Message.ProductMessage.ProductSnapshot\x12\x18\n\x10\x62usinessOwnerJid\x18\x02 \x01(\t\x12\x41\n\x07\x63\x61talog\x18\x04 \x01(\x0b\x32\x30.whatsapp.Message.ProductMessage.CatalogSnapshot\x12\x0c\n\x04\x62ody\x18\x05 \x01(\t\x12\x0e\n\x06\x66ooter\x18\x06 \x01(\t\x12*\n\x0b\x63ontextInfo\x18\x11 \x01(\x0b\x32\x15.whatsapp.ContextInfo\x1ak\n\x0f\x43\x61talogSnapshot\x12\x34\n\x0c\x63\x61talogImage\x18\x01 \x01(\x0b\x32\x1e.whatsapp.Message.ImageMessage\x12\r\n\x05title\x18\x02 \x01(\t\x12\x13\n\x0b\x64\x65scription\x18\x03 \x01(\t\x1a\xaf\x02\n\x0fProductSnapshot\x12\x34\n\x0cproductImage\x18\x01 \x01(\x0b\x32\x1e.whatsapp.Message.ImageMessage\x12\x11\n\tproductId\x18\x02 \x01(\t\x12\r\n\x05title\x18\x03 \x01(\t\x12\x13\n\x0b\x64\x65scription\x18\x04 \x01(\t\x12\x14\n\x0c\x63urrencyCode\x18\x05 \x01(\t\x12\x17\n\x0fpriceAmount1000\x18\x06 \x01(\x03\x12\x12\n\nretailerId\x18\x07 \x01(\t\x12\x0b\n\x03url\x18\x08 \x01(\t\x12\x19\n\x11productImageCount\x18\t \x01(\r\x12\x14\n\x0c\x66irstImageId\x18\x0b \x01(\t\x12\x1b\n\x13salePriceAmount1000\x18\x0c \x01(\x03\x12\x11\n\tsignedUrl\x18\r \x01(\t\x1a\xc1\x15\n\x0fProtocolMessage\x12!\n\x03key\x18\x01 \x01(\x0b\x32\x14.whatsapp.MessageKey\x12\x34\n\x04type\x18\x02 \x01(\x0e\x32&.whatsapp.Message.ProtocolMessage.Type\x12\x1b\n\x13\x65phemeralExpiration\x18\x04 \x01(\r\x12!\n\x19\x65phemeralSettingTimestamp\x18\x05 \x01(\x03\x12J\n\x17historySyncNotification\x18\x06 \x01(\x0b\x32).whatsapp.Message.HistorySyncNotification\x12\x44\n\x14\x61ppStateSyncKeyShare\x18\x07 \x01(\x0b\x32&.whatsapp.Message.AppStateSyncKeyShare\x12H\n\x16\x61ppStateSyncKeyRequest\x18\x08 \x01(\x0b\x32(.whatsapp.Message.AppStateSyncKeyRequest\x12h\n&initialSecurityNotificationSettingSync\x18\t \x01(\x0b\x32\x38.whatsapp.Message.InitialSecurityNotificationSettingSync\x12`\n\"appStateFatalExceptionNotification\x18\n \x01(\x0b\x32\x34.whatsapp.Message.AppStateFatalExceptionNotification\x12\x34\n\x10\x64isappearingMode\x18\x0b \x01(\x0b\x32\x1a.whatsapp.DisappearingMode\x12(\n\reditedMessage\x18\x0e \x01(\x0b\x32\x11.whatsapp.Message\x12\x13\n\x0btimestampMs\x18\x0f \x01(\x03\x12Z\n\x1fpeerDataOperationRequestMessage\x18\x10 \x01(\x0b\x32\x31.whatsapp.Message.PeerDataOperationRequestMessage\x12j\n\'peerDataOperationRequestResponseMessage\x18\x11 \x01(\x0b\x32\x39.whatsapp.Message.PeerDataOperationRequestResponseMessage\x12\x38\n\x12\x62otFeedbackMessage\x18\x12 \x01(\x0b\x32\x1c.whatsapp.BotFeedbackMessage\x12\x12\n\ninvokerJid\x18\x13 \x01(\t\x12V\n\x1drequestWelcomeMessageMetadata\x18\x14 \x01(\x0b\x32/.whatsapp.Message.RequestWelcomeMessageMetadata\x12\x38\n\x12mediaNotifyMessage\x18\x15 \x01(\x0b\x32\x1c.whatsapp.MediaNotifyMessage\x12^\n!cloudApiThreadControlNotification\x18\x16 \x01(\x0b\x32\x33.whatsapp.Message.CloudAPIThreadControlNotification\x12P\n\x1elidMigrationMappingSyncMessage\x18\x17 \x01(\x0b\x32(.whatsapp.LIDMigrationMappingSyncMessage\x12,\n\x0climitSharing\x18\x18 \x01(\x0b\x32\x16.whatsapp.LimitSharing\x12\x15\n\raiPsiMetadata\x18\x19 \x01(\x0c\x12.\n\raiQueryFanout\x18\x1a \x01(\x0b\x32\x17.whatsapp.AIQueryFanout\x12*\n\x0bmemberLabel\x18\x1b \x01(\x0b\x32\x15.whatsapp.MemberLabel\x12\x44\n\x18\x61iMediaCollectionMessage\x18\x1c \x01(\x0b\x32\".whatsapp.AIMediaCollectionMessage\x12\x19\n\x11\x61\x66terReadDuration\x18\x1d \x01(\r\x12<\n\x10\x63hatThemeSetting\x18\x1e \x01(\x0b\x32\".whatsapp.Message.ChatThemeSetting\x12:\n\x13\x61iMetadataOperation\x18\x1f \x01(\x0b\x32\x1d.whatsapp.AIMetadataOperation\x12\x44\n\x14markAsVerifiedAction\x18 \x01(\x0b\x32&.whatsapp.Message.MarkAsVerifiedAction\x12.\n\rcoexStateSync\x18! \x01(\x0b\x32\x17.whatsapp.CoexStateSync\"\xab\x07\n\x04Type\x12\n\n\x06REVOKE\x10\x00\x12\x15\n\x11\x45PHEMERAL_SETTING\x10\x03\x12\x1b\n\x17\x45PHEMERAL_SYNC_RESPONSE\x10\x04\x12\x1d\n\x19HISTORY_SYNC_NOTIFICATION\x10\x05\x12\x1c\n\x18\x41PP_STATE_SYNC_KEY_SHARE\x10\x06\x12\x1e\n\x1a\x41PP_STATE_SYNC_KEY_REQUEST\x10\x07\x12\x1f\n\x1bMSG_FANOUT_BACKFILL_REQUEST\x10\x08\x12.\n*INITIAL_SECURITY_NOTIFICATION_SETTING_SYNC\x10\t\x12*\n&APP_STATE_FATAL_EXCEPTION_NOTIFICATION\x10\n\x12\x16\n\x12SHARE_PHONE_NUMBER\x10\x0b\x12\x10\n\x0cMESSAGE_EDIT\x10\x0e\x12\'\n#PEER_DATA_OPERATION_REQUEST_MESSAGE\x10\x10\x12\x30\n,PEER_DATA_OPERATION_REQUEST_RESPONSE_MESSAGE\x10\x11\x12\x1b\n\x17REQUEST_WELCOME_MESSAGE\x10\x12\x12\x18\n\x14\x42OT_FEEDBACK_MESSAGE\x10\x13\x12\x18\n\x14MEDIA_NOTIFY_MESSAGE\x10\x14\x12)\n%CLOUD_API_THREAD_CONTROL_NOTIFICATION\x10\x15\x12\x1e\n\x1aLID_MIGRATION_MAPPING_SYNC\x10\x16\x12\x14\n\x10REMINDER_MESSAGE\x10\x17\x12\x1f\n\x1b\x42OT_MEMU_ONBOARDING_MESSAGE\x10\x18\x12\x1a\n\x16STATUS_MENTION_MESSAGE\x10\x19\x12\x1b\n\x17STOP_GENERATION_MESSAGE\x10\x1a\x12\x11\n\rLIMIT_SHARING\x10\x1b\x12\x13\n\x0f\x41I_PSI_METADATA\x10\x1c\x12\x13\n\x0f\x41I_QUERY_FANOUT\x10\x1d\x12\x1d\n\x19GROUP_MEMBER_LABEL_CHANGE\x10\x1e\x12\x1f\n\x1b\x41I_MEDIA_COLLECTION_MESSAGE\x10\x1f\x12\x16\n\x12MESSAGE_UNSCHEDULE\x10 \x12\x16\n\x12\x43HAT_THEME_SETTING\x10\"\x12\x19\n\x15\x41I_METADATA_OPERATION\x10#\x12\x1b\n\x17MARK_AS_VERIFIED_ACTION\x10$\x12\x13\n\x0f\x43OEX_STATE_SYNC\x10%\x1aJ\n\x17QuestionResponseMessage\x12!\n\x03key\x18\x01 \x01(\x0b\x32\x14.whatsapp.MessageKey\x12\x0c\n\x04text\x18\x02 \x01(\t\x1ar\n\x0fReactionMessage\x12!\n\x03key\x18\x01 \x01(\x0b\x32\x14.whatsapp.MessageKey\x12\x0c\n\x04text\x18\x02 \x01(\t\x12\x13\n\x0bgroupingKey\x18\x03 \x01(\t\x12\x19\n\x11senderTimestampMs\x18\x04 \x01(\x03\x1a\xf0\x01\n\x15RequestPaymentMessage\x12&\n\x0bnoteMessage\x18\x04 \x01(\x0b\x32\x11.whatsapp.Message\x12\x1b\n\x13\x63urrencyCodeIso4217\x18\x01 \x01(\t\x12\x12\n\namount1000\x18\x02 \x01(\x04\x12\x13\n\x0brequestFrom\x18\x03 \x01(\t\x12\x17\n\x0f\x65xpiryTimestamp\x18\x05 \x01(\x03\x12\x1f\n\x06\x61mount\x18\x06 \x01(\x0b\x32\x0f.whatsapp.Money\x12/\n\nbackground\x18\x07 \x01(\x0b\x32\x1b.whatsapp.PaymentBackground\x1aG\n\x19RequestPhoneNumberMessage\x12*\n\x0b\x63ontextInfo\x18\x01 \x01(\x0b\x32\x15.whatsapp.ContextInfo\x1a\xe9\x02\n\x1dRequestWelcomeMessageMetadata\x12V\n\x0elocalChatState\x18\x01 \x01(\x0e\x32>.whatsapp.Message.RequestWelcomeMessageMetadata.LocalChatState\x12V\n\x0ewelcomeTrigger\x18\x02 \x01(\x0e\x32>.whatsapp.Message.RequestWelcomeMessageMetadata.WelcomeTrigger\x12\x34\n\x10\x62otAgentMetadata\x18\x03 \x01(\x0b\x32\x1a.whatsapp.BotAgentMetadata\"*\n\x0eLocalChatState\x12\t\n\x05\x45MPTY\x10\x00\x12\r\n\tNON_EMPTY\x10\x01\"6\n\x0eWelcomeTrigger\x12\r\n\tCHAT_OPEN\x10\x00\x12\x15\n\x11\x43OMPANION_PAIRING\x10\x01\x1a.\n\x1bRootSecretDistributeMessage\x12\x0f\n\x07\x63hatJid\x18\x01 \x01(\t\x1a\xc5\x01\n\x1cScheduledCallCreationMessage\x12\x1c\n\x14scheduledTimestampMs\x18\x01 \x01(\x03\x12I\n\x08\x63\x61llType\x18\x02 \x01(\x0e\x32\x37.whatsapp.Message.ScheduledCallCreationMessage.CallType\x12\r\n\x05title\x18\x03 \x01(\t\"-\n\x08\x43\x61llType\x12\x0b\n\x07UNKNOWN\x10\x00\x12\t\n\x05VOICE\x10\x01\x12\t\n\x05VIDEO\x10\x02\x1a\xa9\x01\n\x18ScheduledCallEditMessage\x12!\n\x03key\x18\x01 \x01(\x0b\x32\x14.whatsapp.MessageKey\x12\x45\n\x08\x65\x64itType\x18\x02 \x01(\x0e\x32\x33.whatsapp.Message.ScheduledCallEditMessage.EditType\"#\n\x08\x45\x64itType\x12\x0b\n\x07UNKNOWN\x10\x00\x12\n\n\x06\x43\x41NCEL\x10\x01\x1a\xc9\x02\n\x16SecretEncryptedMessage\x12.\n\x10targetMessageKey\x18\x01 \x01(\x0b\x32\x14.whatsapp.MessageKey\x12\x12\n\nencPayload\x18\x02 \x01(\x0c\x12\r\n\x05\x65ncIv\x18\x03 \x01(\x0c\x12M\n\rsecretEncType\x18\x04 \x01(\x0e\x32\x36.whatsapp.Message.SecretEncryptedMessage.SecretEncType\x12\x13\n\x0bremoteKeyId\x18\x05 \x01(\t\"x\n\rSecretEncType\x12\x0b\n\x07UNKNOWN\x10\x00\x12\x0e\n\nEVENT_EDIT\x10\x01\x12\x10\n\x0cMESSAGE_EDIT\x10\x02\x12\x14\n\x10MESSAGE_SCHEDULE\x10\x03\x12\r\n\tPOLL_EDIT\x10\x04\x12\x13\n\x0fPOLL_ADD_OPTION\x10\x05\x1a\xb7\x01\n\x12SendPaymentMessage\x12&\n\x0bnoteMessage\x18\x02 \x01(\x0b\x32\x11.whatsapp.Message\x12/\n\x11requestMessageKey\x18\x03 \x01(\x0b\x32\x14.whatsapp.MessageKey\x12/\n\nbackground\x18\x04 \x01(\x0b\x32\x1b.whatsapp.PaymentBackground\x12\x17\n\x0ftransactionData\x18\x05 \x01(\t\x1a\\\n\x1cSenderKeyDistributionMessage\x12\x0f\n\x07groupId\x18\x01 \x01(\t\x12+\n#axolotlSenderKeyDistributionMessage\x18\x02 \x01(\x0c\x1a\xf9\x01\n\x13SplitPaymentMessage\x12\x0f\n\x07splitId\x18\x01 \x01(\t\x12$\n\x0btotalAmount\x18\x02 \x01(\x0b\x32\x0f.whatsapp.Money\x12\x13\n\x0b\x64\x65scription\x18\x03 \x01(\t\x12\x14\n\x0crequesterJid\x18\x04 \x01(\t\x12?\n\x0cparticipants\x18\x05 \x03(\x0b\x32).whatsapp.Message.SplitPaymentParticipant\x12\x13\n\x0b\x63reatedAtMs\x18\x06 \x01(\x03\x12*\n\x0b\x63ontextInfo\x18\x11 \x01(\x0b\x32\x15.whatsapp.ContextInfo\x1a\xc2\x01\n\x17SplitPaymentParticipant\x12\x0b\n\x03jid\x18\x01 \x01(\t\x12\x1f\n\x06\x61mount\x18\x02 \x01(\x0b\x32\x0f.whatsapp.Money\x12L\n\x06status\x18\x03 \x01(\x0e\x32<.whatsapp.Message.SplitPaymentParticipant.SplitPaymentStatus\"+\n\x12SplitPaymentStatus\x12\x0b\n\x07PENDING\x10\x00\x12\x08\n\x04PAID\x10\x01\x1a\x44\n\x19SplitPaymentUpdateMessage\x12\x0f\n\x07splitId\x18\x01 \x01(\t\x12\x16\n\x0eparticipantJid\x18\x02 \x01(\t\x1a\x96\x01\n\x19StatusLinkPreviewMetadata\x12@\n\x05style\x18\x01 \x01(\x0e\x32\x31.whatsapp.Message.StatusLinkPreviewMetadata.Style\"7\n\x05Style\x12\x08\n\x04\x41UTO\x10\x00\x12\x0b\n\x07\x43OMPACT\x10\x01\x12\x08\n\x04\x46ULL\x10\x02\x12\r\n\tIMMERSIVE\x10\x03\x1a\xe6\x02\n\x19StatusNotificationMessage\x12\x30\n\x12responseMessageKey\x18\x01 \x01(\x0b\x32\x14.whatsapp.MessageKey\x12\x30\n\x12originalMessageKey\x18\x02 \x01(\x0b\x32\x14.whatsapp.MessageKey\x12P\n\x04type\x18\x03 \x01(\x0e\x32\x42.whatsapp.Message.StatusNotificationMessage.StatusNotificationType\"\x92\x01\n\x16StatusNotificationType\x12\x0b\n\x07UNKNOWN\x10\x00\x12\x14\n\x10STATUS_ADD_YOURS\x10\x01\x12\x12\n\x0eSTATUS_RESHARE\x10\x02\x12\"\n\x1eSTATUS_QUESTION_ANSWER_RESHARE\x10\x03\x12\x1d\n\x19STATUS_GROUP_STATUS_REPLY\x10\x04\x1aN\n\x1bStatusQuestionAnswerMessage\x12!\n\x03key\x18\x01 \x01(\x0b\x32\x14.whatsapp.MessageKey\x12\x0c\n\x04text\x18\x02 \x01(\t\x1a\xe3\x01\n\x13StatusQuotedMessage\x12K\n\x04type\x18\x01 \x01(\x0e\x32=.whatsapp.Message.StatusQuotedMessage.StatusQuotedMessageType\x12\x0c\n\x04text\x18\x02 \x01(\t\x12\x11\n\tthumbnail\x18\x03 \x01(\x0c\x12.\n\x10originalStatusId\x18\x04 \x01(\x0b\x32\x14.whatsapp.MessageKey\".\n\x17StatusQuotedMessageType\x12\x13\n\x0fQUESTION_ANSWER\x10\x01\x1a\xdb\x01\n\x1fStatusStickerInteractionMessage\x12!\n\x03key\x18\x01 \x01(\x0b\x32\x14.whatsapp.MessageKey\x12\x12\n\nstickerKey\x18\x02 \x01(\t\x12Q\n\x04type\x18\x03 \x01(\x0e\x32\x43.whatsapp.Message.StatusStickerInteractionMessage.StatusStickerType\".\n\x11StatusStickerType\x12\x0b\n\x07UNKNOWN\x10\x00\x12\x0c\n\x08REACTION\x10\x01\x1a\xe6\x03\n\x0eStickerMessage\x12\x0b\n\x03url\x18\x01 \x01(\t\x12\x12\n\nfileSha256\x18\x02 \x01(\x0c\x12\x15\n\rfileEncSha256\x18\x03 \x01(\x0c\x12\x10\n\x08mediaKey\x18\x04 \x01(\x0c\x12\x10\n\x08mimetype\x18\x05 \x01(\t\x12\x0e\n\x06height\x18\x06 \x01(\r\x12\r\n\x05width\x18\x07 \x01(\r\x12\x12\n\ndirectPath\x18\x08 \x01(\t\x12\x12\n\nfileLength\x18\t \x01(\x04\x12\x19\n\x11mediaKeyTimestamp\x18\n \x01(\x03\x12\x18\n\x10\x66irstFrameLength\x18\x0b \x01(\r\x12\x19\n\x11\x66irstFrameSidecar\x18\x0c \x01(\x0c\x12\x12\n\nisAnimated\x18\r \x01(\x08\x12\x14\n\x0cpngThumbnail\x18\x10 \x01(\x0c\x12*\n\x0b\x63ontextInfo\x18\x11 \x01(\x0b\x32\x15.whatsapp.ContextInfo\x12\x15\n\rstickerSentTs\x18\x12 \x01(\x03\x12\x10\n\x08isAvatar\x18\x13 \x01(\x08\x12\x13\n\x0bisAiSticker\x18\x14 \x01(\x08\x12\x10\n\x08isLottie\x18\x15 \x01(\x08\x12\x1a\n\x12\x61\x63\x63\x65ssibilityLabel\x18\x16 \x01(\t\x12\x0f\n\x07premium\x18\x18 \x01(\x05\x12\x0e\n\x06\x65mojis\x18\x19 \x01(\t\x1a\xde\x06\n\x12StickerPackMessage\x12\x15\n\rstickerPackId\x18\x01 \x01(\t\x12\x0c\n\x04name\x18\x02 \x01(\t\x12\x11\n\tpublisher\x18\x03 \x01(\t\x12>\n\x08stickers\x18\x04 \x03(\x0b\x32,.whatsapp.Message.StickerPackMessage.Sticker\x12\x12\n\nfileLength\x18\x05 \x01(\x04\x12\x12\n\nfileSha256\x18\x06 \x01(\x0c\x12\x15\n\rfileEncSha256\x18\x07 \x01(\x0c\x12\x10\n\x08mediaKey\x18\x08 \x01(\x0c\x12\x12\n\ndirectPath\x18\t \x01(\t\x12\x0f\n\x07\x63\x61ption\x18\n \x01(\t\x12*\n\x0b\x63ontextInfo\x18\x0b \x01(\x0b\x32\x15.whatsapp.ContextInfo\x12\x17\n\x0fpackDescription\x18\x0c \x01(\t\x12\x19\n\x11mediaKeyTimestamp\x18\r \x01(\x03\x12\x18\n\x10trayIconFileName\x18\x0e \x01(\t\x12\x1b\n\x13thumbnailDirectPath\x18\x0f \x01(\t\x12\x17\n\x0fthumbnailSha256\x18\x10 \x01(\x0c\x12\x1a\n\x12thumbnailEncSha256\x18\x11 \x01(\x0c\x12\x17\n\x0fthumbnailHeight\x18\x12 \x01(\r\x12\x16\n\x0ethumbnailWidth\x18\x13 \x01(\r\x12\x15\n\rimageDataHash\x18\x14 \x01(\t\x12\x17\n\x0fstickerPackSize\x18\x15 \x01(\x04\x12Q\n\x11stickerPackOrigin\x18\x16 \x01(\x0e\x32\x36.whatsapp.Message.StickerPackMessage.StickerPackOrigin\x1a\x90\x01\n\x07Sticker\x12\x10\n\x08\x66ileName\x18\x01 \x01(\t\x12\x12\n\nisAnimated\x18\x02 \x01(\x08\x12\x0e\n\x06\x65mojis\x18\x03 \x03(\t\x12\x1a\n\x12\x61\x63\x63\x65ssibilityLabel\x18\x04 \x01(\t\x12\x10\n\x08isLottie\x18\x05 \x01(\x08\x12\x10\n\x08mimetype\x18\x06 \x01(\t\x12\x0f\n\x07premium\x18\x07 \x01(\x05\"G\n\x11StickerPackOrigin\x12\x0f\n\x0b\x46IRST_PARTY\x10\x00\x12\x0f\n\x0bTHIRD_PARTY\x10\x01\x12\x10\n\x0cUSER_CREATED\x10\x02\x1aV\n\x15StickerSyncRMRMessage\x12\x10\n\x08\x66ilehash\x18\x01 \x03(\t\x12\x11\n\trmrSource\x18\x02 \x01(\t\x12\x18\n\x10requestTimestamp\x18\x03 \x01(\x03\x1a\xb3\x01\n\x1aTemplateButtonReplyMessage\x12\x12\n\nselectedId\x18\x01 \x01(\t\x12\x1b\n\x13selectedDisplayText\x18\x02 \x01(\t\x12*\n\x0b\x63ontextInfo\x18\x03 \x01(\x0b\x32\x15.whatsapp.ContextInfo\x12\x15\n\rselectedIndex\x18\x04 \x01(\r\x12!\n\x19selectedCarouselCardIndex\x18\x05 \x01(\r\x1a\xf2\n\n\x0fTemplateMessage\x12*\n\x0b\x63ontextInfo\x18\x03 \x01(\x0b\x32\x15.whatsapp.ContextInfo\x12S\n\x10hydratedTemplate\x18\x04 \x01(\x0b\x32\x39.whatsapp.Message.TemplateMessage.HydratedFourRowTemplate\x12\x12\n\ntemplateId\x18\t \x01(\t\x12L\n\x0f\x66ourRowTemplate\x18\x01 \x01(\x0b\x32\x31.whatsapp.Message.TemplateMessage.FourRowTemplateH\x00\x12\\\n\x17hydratedFourRowTemplate\x18\x02 \x01(\x0b\x32\x39.whatsapp.Message.TemplateMessage.HydratedFourRowTemplateH\x00\x12J\n\x1ainteractiveMessageTemplate\x18\x05 \x01(\x0b\x32$.whatsapp.Message.InteractiveMessageH\x00\x1a\xf6\x03\n\x0f\x46ourRowTemplate\x12:\n\x07\x63ontent\x18\x06 \x01(\x0b\x32).whatsapp.Message.HighlyStructuredMessage\x12\x39\n\x06\x66ooter\x18\x07 \x01(\x0b\x32).whatsapp.Message.HighlyStructuredMessage\x12)\n\x07\x62uttons\x18\x08 \x03(\x0b\x32\x18.whatsapp.TemplateButton\x12<\n\x0f\x64ocumentMessage\x18\x01 \x01(\x0b\x32!.whatsapp.Message.DocumentMessageH\x00\x12L\n\x17highlyStructuredMessage\x18\x02 \x01(\x0b\x32).whatsapp.Message.HighlyStructuredMessageH\x00\x12\x36\n\x0cimageMessage\x18\x03 \x01(\x0b\x32\x1e.whatsapp.Message.ImageMessageH\x00\x12\x36\n\x0cvideoMessage\x18\x04 \x01(\x0b\x32\x1e.whatsapp.Message.VideoMessageH\x00\x12<\n\x0flocationMessage\x18\x05 \x01(\x0b\x32!.whatsapp.Message.LocationMessageH\x00\x42\x07\n\x05title\x1a\xce\x03\n\x17HydratedFourRowTemplate\x12\x1b\n\x13hydratedContentText\x18\x06 \x01(\t\x12\x1a\n\x12hydratedFooterText\x18\x07 \x01(\t\x12\x39\n\x0fhydratedButtons\x18\x08 \x03(\x0b\x32 .whatsapp.HydratedTemplateButton\x12\x12\n\ntemplateId\x18\t \x01(\t\x12\x19\n\x11maskLinkedDevices\x18\n \x01(\x08\x12<\n\x0f\x64ocumentMessage\x18\x01 \x01(\x0b\x32!.whatsapp.Message.DocumentMessageH\x00\x12\x1b\n\x11hydratedTitleText\x18\x02 \x01(\tH\x00\x12\x36\n\x0cimageMessage\x18\x03 \x01(\x0b\x32\x1e.whatsapp.Message.ImageMessageH\x00\x12\x36\n\x0cvideoMessage\x18\x04 \x01(\x0b\x32\x1e.whatsapp.Message.VideoMessageH\x00\x12<\n\x0flocationMessage\x18\x05 \x01(\x0b\x32!.whatsapp.Message.LocationMessageH\x00\x42\x07\n\x05titleB\x08\n\x06\x66ormat\x1a%\n\x0bURLMetadata\x12\x16\n\x0e\x66\x62\x45xperimentId\x18\x01 \x01(\r\x1ag\n\x0cVideoEndCard\x12\x10\n\x08username\x18\x01 \x02(\t\x12\x0f\n\x07\x63\x61ption\x18\x02 \x02(\t\x12\x19\n\x11thumbnailImageUrl\x18\x03 \x02(\t\x12\x19\n\x11profilePictureUrl\x18\x04 \x02(\t\x1a\x88\x08\n\x0cVideoMessage\x12\x0b\n\x03url\x18\x01 \x01(\t\x12\x10\n\x08mimetype\x18\x02 \x01(\t\x12\x12\n\nfileSha256\x18\x03 \x01(\x0c\x12\x12\n\nfileLength\x18\x04 \x01(\x04\x12\x0f\n\x07seconds\x18\x05 \x01(\r\x12\x10\n\x08mediaKey\x18\x06 \x01(\x0c\x12\x0f\n\x07\x63\x61ption\x18\x07 \x01(\t\x12\x13\n\x0bgifPlayback\x18\x08 \x01(\x08\x12\x0e\n\x06height\x18\t \x01(\r\x12\r\n\x05width\x18\n \x01(\r\x12\x15\n\rfileEncSha256\x18\x0b \x01(\x0c\x12?\n\x16interactiveAnnotations\x18\x0c \x03(\x0b\x32\x1f.whatsapp.InteractiveAnnotation\x12\x12\n\ndirectPath\x18\r \x01(\t\x12\x19\n\x11mediaKeyTimestamp\x18\x0e \x01(\x03\x12\x15\n\rjpegThumbnail\x18\x10 \x01(\x0c\x12*\n\x0b\x63ontextInfo\x18\x11 \x01(\x0b\x32\x15.whatsapp.ContextInfo\x12\x18\n\x10streamingSidecar\x18\x12 \x01(\x0c\x12\x42\n\x0egifAttribution\x18\x13 \x01(\x0e\x32*.whatsapp.Message.VideoMessage.Attribution\x12\x10\n\x08viewOnce\x18\x14 \x01(\x08\x12\x1b\n\x13thumbnailDirectPath\x18\x15 \x01(\t\x12\x17\n\x0fthumbnailSha256\x18\x16 \x01(\x0c\x12\x1a\n\x12thumbnailEncSha256\x18\x17 \x01(\x0c\x12\x11\n\tstaticUrl\x18\x18 \x01(\t\x12\x34\n\x0b\x61nnotations\x18\x19 \x03(\x0b\x32\x1f.whatsapp.InteractiveAnnotation\x12\x1a\n\x12\x61\x63\x63\x65ssibilityLabel\x18\x1a \x01(\t\x12\x31\n\x0fprocessedVideos\x18\x1b \x03(\x0b\x32\x18.whatsapp.ProcessedVideo\x12/\n\'externalShareFullVideoDurationInSeconds\x18\x1c \x01(\r\x12\'\n\x1fmotionPhotoPresentationOffsetMs\x18\x1d \x01(\x04\x12\x13\n\x0bmetadataUrl\x18\x1e \x01(\t\x12G\n\x0fvideoSourceType\x18\x1f \x01(\x0e\x32..whatsapp.Message.VideoMessage.VideoSourceType\"8\n\x0b\x41ttribution\x12\x08\n\x04NONE\x10\x00\x12\t\n\x05GIPHY\x10\x01\x12\t\n\x05TENOR\x10\x02\x12\t\n\x05KLIPY\x10\x03\"3\n\x0fVideoSourceType\x12\x0e\n\nUSER_VIDEO\x10\x00\x12\x10\n\x0c\x41I_GENERATED\x10\x01\"\xb5\x01\n\x0fHistorySyncType\x12\x15\n\x11INITIAL_BOOTSTRAP\x10\x00\x12\x15\n\x11INITIAL_STATUS_V3\x10\x01\x12\x08\n\x04\x46ULL\x10\x02\x12\n\n\x06RECENT\x10\x03\x12\r\n\tPUSH_NAME\x10\x04\x12\x15\n\x11NON_BLOCKING_DATA\x10\x05\x12\r\n\tON_DEMAND\x10\x06\x12\x0e\n\nNO_HISTORY\x10\x07\x12\x19\n\x15MESSAGE_ACCESS_STATUS\x10\x08\"Y\n\x14InsightDeliveryState\x12\x08\n\x04SENT\x10\x00\x12\r\n\tDELIVERED\x10\x01\x12\x08\n\x04READ\x10\x02\x12\x0b\n\x07REPLIED\x10\x03\x12\x11\n\rQUICK_REPLIED\x10\x04\"\x8e\x04\n\x1cPeerDataOperationRequestType\x12\x12\n\x0eUPLOAD_STICKER\x10\x00\x12!\n\x1dSEND_RECENT_STICKER_BOOTSTRAP\x10\x01\x12\x19\n\x15GENERATE_LINK_PREVIEW\x10\x02\x12\x1a\n\x16HISTORY_SYNC_ON_DEMAND\x10\x03\x12\x1e\n\x1aPLACEHOLDER_MESSAGE_RESEND\x10\x04\x12\x1e\n\x1aWAFFLE_LINKING_NONCE_FETCH\x10\x05\x12\x1f\n\x1b\x46ULL_HISTORY_SYNC_ON_DEMAND\x10\x06\x12\x1e\n\x1a\x43OMPANION_META_NONCE_FETCH\x10\x07\x12+\n\'COMPANION_SYNCD_SNAPSHOT_FATAL_RECOVERY\x10\x08\x12(\n$COMPANION_CANONICAL_USER_NONCE_FETCH\x10\t\x12\x1c\n\x18HISTORY_SYNC_CHUNK_RETRY\x10\n\x12\x16\n\x12GALAXY_FLOW_ACTION\x10\x0b\x12,\n(BUSINESS_BROADCAST_INSIGHTS_DELIVERED_TO\x10\x0c\x12\'\n#BUSINESS_BROADCAST_INSIGHTS_REFRESH\x10\r\x12\x1b\n\x17\x43ONTACT_REFRESH_REQUEST\x10\x0e\"3\n\x0fPollContentType\x12\x0b\n\x07UNKNOWN\x10\x00\x12\x08\n\x04TEXT\x10\x01\x12\t\n\x05IMAGE\x10\x02\"\x1e\n\x08PollType\x12\x08\n\x04POLL\x10\x00\x12\x08\n\x04QUIZ\x10\x01\"\xed\x03\n\x0cMessageAddOn\x12\x41\n\x10messageAddOnType\x18\x01 \x01(\x0e\x32\'.whatsapp.MessageAddOn.MessageAddOnType\x12\'\n\x0cmessageAddOn\x18\x02 \x01(\x0b\x32\x11.whatsapp.Message\x12\x19\n\x11senderTimestampMs\x18\x03 \x01(\x03\x12\x19\n\x11serverTimestampMs\x18\x04 \x01(\x03\x12\x38\n\x06status\x18\x05 \x01(\x0e\x32\x1f.whatsapp.WebMessageInfo.Status:\x07PENDING\x12;\n\x10\x61\x64\x64OnContextInfo\x18\x06 \x01(\x0b\x32!.whatsapp.MessageAddOnContextInfo\x12-\n\x0fmessageAddOnKey\x18\x07 \x01(\x0b\x32\x14.whatsapp.MessageKey\x12.\n\rlegacyMessage\x18\x08 \x01(\x0b\x32\x17.whatsapp.LegacyMessage\"e\n\x10MessageAddOnType\x12\r\n\tUNDEFINED\x10\x00\x12\x0c\n\x08REACTION\x10\x01\x12\x12\n\x0e\x45VENT_RESPONSE\x10\x02\x12\x0f\n\x0bPOLL_UPDATE\x10\x03\x12\x0f\n\x0bPIN_IN_CHAT\x10\x04\"\x92\x01\n\x17MessageAddOnContextInfo\x12\"\n\x1amessageAddOnDurationInSecs\x18\x01 \x01(\r\x12S\n\x16messageAddOnExpiryType\x18\x02 \x01(\x0e\x32\x33.whatsapp.MessageContextInfo.MessageAddonExpiryType\"\x8c\x05\n\x12MessageAssociation\x12\x45\n\x0f\x61ssociationType\x18\x01 \x01(\x0e\x32,.whatsapp.MessageAssociation.AssociationType\x12.\n\x10parentMessageKey\x18\x02 \x01(\x0b\x32\x14.whatsapp.MessageKey\x12\x14\n\x0cmessageIndex\x18\x03 \x01(\x05\"\xe8\x03\n\x0f\x41ssociationType\x12\x0b\n\x07UNKNOWN\x10\x00\x12\x0f\n\x0bMEDIA_ALBUM\x10\x01\x12\x0e\n\nBOT_PLUGIN\x10\x02\x12\x15\n\x11\x45VENT_COVER_IMAGE\x10\x03\x12\x0f\n\x0bSTATUS_POLL\x10\x04\x12\x18\n\x14HD_VIDEO_DUAL_UPLOAD\x10\x05\x12\x1b\n\x17STATUS_EXTERNAL_RESHARE\x10\x06\x12\x0e\n\nMEDIA_POLL\x10\x07\x12\x14\n\x10STATUS_ADD_YOURS\x10\x08\x12\x17\n\x13STATUS_NOTIFICATION\x10\t\x12\x18\n\x14HD_IMAGE_DUAL_UPLOAD\x10\n\x12\x16\n\x12STICKER_ANNOTATION\x10\x0b\x12\x10\n\x0cMOTION_PHOTO\x10\x0c\x12\x16\n\x12STATUS_LINK_ACTION\x10\r\x12\x14\n\x10VIEW_ALL_REPLIES\x10\x0e\x12\x1f\n\x1bSTATUS_ADD_YOURS_AI_IMAGINE\x10\x0f\x12\x13\n\x0fSTATUS_QUESTION\x10\x10\x12\x1b\n\x17STATUS_ADD_YOURS_DIWALI\x10\x11\x12\x13\n\x0fSTATUS_REACTION\x10\x12\x12\x1a\n\x16HEVC_VIDEO_DUAL_UPLOAD\x10\x13\x12\x13\n\x0fPOLL_ADD_OPTION\x10\x14\"\xe9\x06\n\x12MessageContextInfo\x12\x38\n\x12\x64\x65viceListMetadata\x18\x01 \x01(\x0b\x32\x1c.whatsapp.DeviceListMetadata\x12!\n\x19\x64\x65viceListMetadataVersion\x18\x02 \x01(\x05\x12\x15\n\rmessageSecret\x18\x03 \x01(\x0c\x12\x14\n\x0cpaddingBytes\x18\x04 \x01(\x0c\x12\"\n\x1amessageAddOnDurationInSecs\x18\x05 \x01(\r\x12\x18\n\x10\x62otMessageSecret\x18\x06 \x01(\x0c\x12*\n\x0b\x62otMetadata\x18\x07 \x01(\x0b\x32\x15.whatsapp.BotMetadata\x12\x1d\n\x15reportingTokenVersion\x18\x08 \x01(\x05\x12S\n\x16messageAddOnExpiryType\x18\t \x01(\x0e\x32\x33.whatsapp.MessageContextInfo.MessageAddonExpiryType\x12\x38\n\x12messageAssociation\x18\n \x01(\x0b\x32\x1c.whatsapp.MessageAssociation\x12\x18\n\x10\x63\x61piCreatedGroup\x18\x0b \x01(\x08\x12\x16\n\x0esupportPayload\x18\x0c \x01(\t\x12,\n\x0climitSharing\x18\r \x01(\x0b\x32\x16.whatsapp.LimitSharing\x12.\n\x0elimitSharingV2\x18\x0e \x01(\x0b\x32\x16.whatsapp.LimitSharing\x12$\n\x08threadId\x18\x0f \x03(\x0b\x32\x12.whatsapp.ThreadID\x12:\n\x13weblinkRenderConfig\x18\x10 \x01(\x0e\x32\x1d.whatsapp.WebLinkRenderConfig\x12\x16\n\x0eteeBotMetadata\x18\x11 \x01(\x0c\x12\x42\n\x1c\x61\x63\x63ountEncryptionAttestation\x18\x12 \x01(\x0b\x32\x1c.whatsapp.NonE2EEAttestation\x12$\n\x1c\x61ssociatedPrimaryIdentityKey\x18\x13 \x01(\x0c\"=\n\x16MessageAddonExpiryType\x12\n\n\x06STATIC\x10\x01\x12\x17\n\x13\x44\x45PENDENT_ON_PARENT\x10\x02\"P\n\nMessageKey\x12\x11\n\tremoteJid\x18\x01 \x01(\t\x12\x0e\n\x06\x66romMe\x18\x02 \x01(\x08\x12\n\n\x02id\x18\x03 \x01(\t\x12\x13\n\x0bparticipant\x18\x04 \x01(\t\"J\n\x14MessageSecretMessage\x12\x0f\n\x07version\x18\x01 \x01(\x0f\x12\r\n\x05\x65ncIv\x18\x02 \x01(\x0c\x12\x12\n\nencPayload\x18\x03 \x01(\x0c\"{\n\x0bMessageText\x12\x0c\n\x04text\x18\x01 \x01(\t\x12\x14\n\x0cmentionedJid\x18\x02 \x03(\t\x12#\n\x08\x63ommands\x18\x03 \x03(\x0b\x32\x11.whatsapp.Command\x12#\n\x08mentions\x18\x04 \x03(\x0b\x32\x11.whatsapp.Mention\"\x8f\x01\n\x1aMessagingMailboxPublicData\x12\x11\n\tepochHead\x18\x01 \x02(\x0c\x12\x18\n\x10\x64\x65viceRosterHash\x18\x02 \x02(\x0c\x12\x16\n\x0esequenceNumber\x18\x03 \x02(\x04\x12\r\n\x05sigPk\x18\x04 \x02(\x0c\x12\r\n\x05\x65ncPk\x18\x05 \x02(\x0c\x12\x0e\n\x06\x61uthPk\x18\x06 \x02(\x0c\"e\n\x11MinosClientConfig\x12)\n!preferredMessageEncryptionVersion\x18\x01 \x02(\x05\x12%\n\x1dpreferredMekEncryptionVersion\x18\x02 \x02(\x05\"\xdf\x12\n\x0cMinosCommand\x12J\n\x15\x65ncryptAndSignMessage\x18\x01 \x01(\x0b\x32).whatsapp.MinosEncryptAndSignMessageInputH\x00\x12N\n\x17\x64\x65\x63ryptAndVerifyMessage\x18\x02 \x01(\x0b\x32+.whatsapp.MinosDecryptAndVerifyMessageInputH\x00\x12\x31\n\x0bgenerateMek\x18\x03 \x01(\x0b\x32\x1a.whatsapp.GenerateMekInputH\x00\x12\x45\n\x15generateMekRosterHash\x18\x04 \x01(\x0b\x32$.whatsapp.GenerateMekRosterHashInputH\x00\x12M\n\x19\x65ncryptMekForDistribution\x18\x05 \x01(\x0b\x32(.whatsapp.EncryptMekForDistributionInputH\x00\x12M\n\x19\x64\x65\x63ryptMekForDistribution\x18\x06 \x01(\x0b\x32(.whatsapp.DecryptMekForDistributionInputH\x00\x12u\n-encryptMeksForDistributionFromTransportSender\x18\x07 \x01(\x0b\x32<.whatsapp.EncryptMeksForDistributionFromTransportSenderInputH\x00\x12s\n,decryptMekForDistributionFromTransportSender\x18\x08 \x01(\x0b\x32;.whatsapp.DecryptMekForDistributionFromTransportSenderInputH\x00\x12U\n\x1dwrapTransportSigningPublicKey\x18\t \x01(\x0b\x32,.whatsapp.WrapTransportSigningPublicKeyInputH\x00\x12U\n\x1dwrapTransportSigningSecretKey\x18\n \x01(\x0b\x32,.whatsapp.WrapTransportSigningSecretKeyInputH\x00\x12Q\n\x1b\x64\x65riveMailboxSigningKeypair\x18\x0b \x01(\x0b\x32*.whatsapp.DeriveMailboxSigningKeypairInputH\x00\x12W\n\x1e\x64\x65riveMailboxEncryptionKeypair\x18\x0c \x01(\x0b\x32-.whatsapp.DeriveMailboxEncryptionKeypairInputH\x00\x12K\n\x18\x64\x65riveMailboxAuthKeypair\x18\r \x01(\x0b\x32\'.whatsapp.DeriveMailboxAuthKeypairInputH\x00\x12]\n!deriveAttachmentAccessTokenSecret\x18\x0e \x01(\x0b\x32\x30.whatsapp.DeriveAttachmentAccessTokenSecretInputH\x00\x12[\n deriveAttachmentPrimaryKeySecret\x18\x0f \x01(\x0b\x32/.whatsapp.DeriveAttachmentPrimaryKeySecretInputH\x00\x12\x45\n\x15minosOpenInitialEpoch\x18\x10 \x01(\x0b\x32$.whatsapp.MinosOpenInitialEpochInputH\x00\x12\x37\n\x0eminosOpenEpoch\x18\x11 \x01(\x0b\x32\x1d.whatsapp.MinosOpenEpochInputH\x00\x12?\n\x12minosValidateEpoch\x18\x12 \x01(\x0b\x32!.whatsapp.MinosValidateEpochInputH\x00\x12G\n\x16minosVerifySingleEpoch\x18\x13 \x01(\x0b\x32%.whatsapp.MinosVerifySingleEpochInputH\x00\x12Y\n\x1fminosThreadIdFromOneToOneThread\x18\x14 \x01(\x0b\x32..whatsapp.MinosThreadIdFromOneToOneThreadInputH\x00\x12S\n\x1cminosThreadIdFromActThreadId\x18\x15 \x01(\x0b\x32+.whatsapp.MinosThreadIdFromActThreadIdInputH\x00\x12=\n\x11mandrakeOpenEpoch\x18\x16 \x01(\x0b\x32 .whatsapp.MandrakeOpenEpochInputH\x00\x12?\n\x12mandrakeEncryptMek\x18\x17 \x01(\x0b\x32!.whatsapp.MandrakeEncryptMekInputH\x00\x12?\n\x12mandrakeDecryptMek\x18\x18 \x01(\x0b\x32!.whatsapp.MandrakeDecryptMekInputH\x00\x12K\n\x18mandrakeOpenInitialEpoch\x18\x19 \x01(\x0b\x32\'.whatsapp.MandrakeOpenInitialEpochInputH\x00\x12]\n!mandrakeValidateNewMmkFromMailbox\x18\x1b \x01(\x0b\x32\x30.whatsapp.MandrakeValidateNewMmkFromMailboxInputH\x00\x12k\n(mandrakeValidateNewMmkFromDetachedDevice\x18\x1c \x01(\x0b\x32\x37.whatsapp.MandrakeValidateNewMmkFromDetachedDeviceInputH\x00\x12W\n\x1e\x64\x65riveMessagingMailboxKeypairs\x18\x1d \x01(\x0b\x32-.whatsapp.DeriveMessagingMailboxKeypairsInputH\x00\x12O\n\x1a\x64\x65\x63ryptSelfMmkDistribution\x18\x1e \x01(\x0b\x32).whatsapp.DecryptSelfMmkDistributionInputH\x00\x42\x0e\n\x0c\x63ommandInput\"\x92\x02\n!MinosDecryptAndVerifyMessageInput\x12\x1a\n\x12transportSigningPk\x18\x01 \x02(\x0c\x12\x0b\n\x03mek\x18\x02 \x02(\x0c\x12\"\n\x1a\x65ncryptedMessageCiphertext\x18\x03 \x02(\x0c\x12!\n\x19\x65ncryptedMessageSignature\x18\x04 \x02(\x0c\x12\x30\n\x08metadata\x18\x05 \x02(\x0b\x32\x1e.whatsapp.MinosMessageMetadata\x12 \n\x18messageEncryptionVersion\x18\x06 \x01(\x05\x12)\n\x04\x63onf\x18\x07 \x01(\x0b\x32\x1b.whatsapp.MinosClientConfig\"\x88\x01\n\"MinosDecryptAndVerifyMessageResult\x12@\n\x07success\x18\x01 \x01(\x0b\x32-.whatsapp.MinosDecryptAndVerifyMessageSuccessH\x00\x12\x16\n\x0c\x65rrorMessage\x18\x02 \x01(\tH\x00\x42\x08\n\x06result\"8\n#MinosDecryptAndVerifyMessageSuccess\x12\x11\n\tplaintext\x18\x01 \x02(\x0c\"\xd6\x01\n\x1fMinosEncryptAndSignMessageInput\x12\x1a\n\x12transportSigningSk\x18\x01 \x02(\x0c\x12\x0b\n\x03mek\x18\x02 \x02(\x0c\x12\x11\n\tplaintext\x18\x03 \x02(\x0c\x12\x30\n\x08metadata\x18\x04 \x02(\x0b\x32\x1e.whatsapp.MinosMessageMetadata\x12\x1a\n\x12transportSigningPk\x18\x05 \x01(\x0c\x12)\n\x04\x63onf\x18\x06 \x01(\x0b\x32\x1b.whatsapp.MinosClientConfig\"Z\n MinosEncryptAndSignMessageResult\x12\x12\n\nciphertext\x18\x01 \x02(\x0c\x12\x11\n\tsignature\x18\x02 \x02(\x0c\x12\x0f\n\x07version\x18\x03 \x02(\x05\"]\n\x14MinosMessageMetadata\x12\r\n\x05mekId\x18\x01 \x02(\x0c\x12\x11\n\ttimestamp\x18\x02 \x02(\x04\x12\x11\n\tmessageId\x18\x03 \x02(\t\x12\x10\n\x08threadId\x18\x04 \x02(\x0c\"\xaa\x01\n\x13MinosOpenEpochInput\x12\x10\n\x08userFbid\x18\x01 \x02(\t\x12\x13\n\x0b\x65pochNumber\x18\x02 \x02(\x04\x12\x15\n\rexportRootKey\x18\x03 \x02(\x0c\x12\x1d\n\x15previousExportRootKey\x18\x04 \x02(\x0c\x12\x1b\n\x13previousEpochNumber\x18\x05 \x02(\x04\x12\x19\n\x11previousEpochHead\x18\x06 \x02(\x0c\"L\n\x14MinosOpenEpochResult\x12\x34\n\x10minosSignedEpoch\x18\x01 \x02(\x0b\x32\x1a.whatsapp.MinosSignedEpoch\"Z\n\x1aMinosOpenInitialEpochInput\x12\x10\n\x08userFbid\x18\x01 \x02(\t\x12\x13\n\x0b\x65pochNumber\x18\x02 \x02(\x04\x12\x15\n\rexportRootKey\x18\x03 \x02(\x0c\"S\n\x1bMinosOpenInitialEpochResult\x12\x34\n\x10minosSignedEpoch\x18\x01 \x02(\x0b\x32\x1a.whatsapp.MinosSignedEpoch\"\x88\x01\n\x10MinosSignedEpoch\x12\x32\n\x0f\x65pochPublicData\x18\x01 \x02(\x0b\x32\x19.whatsapp.EpochPublicData\x12-\n\nsignatures\x18\x02 \x02(\x0b\x32\x19.whatsapp.EpochSignatures\x12\x11\n\tepochHead\x18\x03 \x02(\x0c\"8\n!MinosThreadIdFromActThreadIdInput\x12\x13\n\x0b\x61\x63tThreadId\x18\x01 \x02(\t\"6\n\"MinosThreadIdFromActThreadIdResult\x12\x10\n\x08threadId\x18\x01 \x02(\x0c\"M\n$MinosThreadIdFromOneToOneThreadInput\x12\x13\n\x0b\x61\x63tThreadId\x18\x01 \x02(\t\x12\x10\n\x08selfFbid\x18\x02 \x02(\t\"9\n%MinosThreadIdFromOneToOneThreadResult\x12\x10\n\x08threadId\x18\x01 \x02(\x0c\"\xb8\x01\n\x17MinosValidateEpochInput\x12\x32\n\x0f\x65pochPublicData\x18\x01 \x02(\x0b\x32\x19.whatsapp.EpochPublicData\x12:\n\x17previousEpochPublicData\x18\x02 \x02(\x0b\x32\x19.whatsapp.EpochPublicData\x12-\n\nsignatures\x18\x03 \x02(\x0b\x32\x19.whatsapp.EpochSignatures\"M\n\x18MinosValidateEpochResult\x12\x0f\n\x05valid\x18\x01 \x01(\x08H\x00\x12\x16\n\x0c\x65rrorMessage\x18\x02 \x01(\tH\x00\x42\x08\n\x06result\"d\n\x1bMinosVerifySingleEpochInput\x12\x32\n\x0f\x65pochPublicData\x18\x01 \x02(\x0b\x32\x19.whatsapp.EpochPublicData\x12\x11\n\tsignature\x18\x02 \x02(\x0c\"-\n\x1cMinosVerifySingleEpochResult\x12\r\n\x05valid\x18\x01 \x02(\x08\"\x9f\x01\n\x0fMmkDistribution\x12\x44\n\x11toDetachedDevices\x18\x01 \x03(\x0b\x32).whatsapp.MmkDistributionToDetachedDevice\x12\x35\n\ttoMailbox\x18\x02 \x02(\x0b\x32\".whatsapp.MmkDistributionToMailbox\x12\x0f\n\x07version\x18\x03 \x02(\x04\"P\n\x1fMmkDistributionToDetachedDevice\x12\x14\n\x0c\x65ncryptedMmk\x18\x01 \x02(\x0c\x12\x17\n\x0frecipDeviceHash\x18\x02 \x02(\x0c\"N\n\x18MmkDistributionToMailbox\x12\x14\n\x0c\x65ncryptedMmk\x18\x01 \x02(\x0c\x12\x1c\n\x14recipMailboxHeadHash\x18\x02 \x02(\x0c\"\xc4\x01\n\x15MmkFromDetachedDevice\x12\x31\n\x03mmk\x18\x01 \x02(\x0b\x32$.whatsapp.MessagingMailboxPublicData\x12>\n\x12\x66romDetachedDevice\x18\x02 \x02(\x0b\x32\".whatsapp.DetachedDevicePublicData\x12\x38\n\x0fmembershipProof\x18\x03 \x02(\x0b\x32\x1f.whatsapp.MerkleMembershipProof\"<\n\x05Money\x12\r\n\x05value\x18\x01 \x01(\x03\x12\x0e\n\x06offset\x18\x02 \x01(\r\x12\x14\n\x0c\x63urrencyCode\x18\x03 \x01(\t\"\xa7\x10\n\rMsgOpaqueData\x12\x0c\n\x04\x62ody\x18\x01 \x01(\t\x12\x0f\n\x07\x63\x61ption\x18\x03 \x01(\t\x12\x0b\n\x03lng\x18\x05 \x01(\x01\x12\x0e\n\x06isLive\x18\x06 \x01(\x08\x12\x0b\n\x03lat\x18\x07 \x01(\x01\x12\x19\n\x11paymentAmount1000\x18\x08 \x01(\x05\x12\x1a\n\x12paymentNoteMsgBody\x18\t \x01(\t\x12\x13\n\x0bmatchedText\x18\x0b \x01(\t\x12\r\n\x05title\x18\x0c \x01(\t\x12\x13\n\x0b\x64\x65scription\x18\r \x01(\t\x12\x19\n\x11\x66utureproofBuffer\x18\x0e \x01(\x0c\x12\x11\n\tclientUrl\x18\x0f \x01(\t\x12\x0b\n\x03loc\x18\x10 \x01(\t\x12\x10\n\x08pollName\x18\x11 \x01(\t\x12\x37\n\x0bpollOptions\x18\x12 \x03(\x0b\x32\".whatsapp.MsgOpaqueData.PollOption\x12\"\n\x1apollSelectableOptionsCount\x18\x14 \x01(\r\x12\x15\n\rmessageSecret\x18\x15 \x01(\x0c\x12\x1a\n\x12originalSelfAuthor\x18\x33 \x01(\t\x12\x19\n\x11senderTimestampMs\x18\x16 \x01(\x03\x12\x1b\n\x13pollUpdateParentKey\x18\x17 \x01(\t\x12+\n\x0b\x65ncPollVote\x18\x18 \x01(\x0b\x32\x16.whatsapp.PollEncValue\x12\x1d\n\x15isSentCagPollCreation\x18\x1c \x01(\x08\x12@\n\x0fpollContentType\x18* \x01(\x0e\x32\'.whatsapp.MsgOpaqueData.PollContentType\x12\x32\n\x08pollType\x18. \x01(\x0e\x32 .whatsapp.MsgOpaqueData.PollType\x12\x1a\n\x12\x63orrectOptionIndex\x18/ \x01(\x05\x12\x44\n\x11pollVotesSnapshot\x18) \x01(\x0b\x32).whatsapp.MsgOpaqueData.PollVotesSnapshot\x12#\n\x1b\x65ncReactionTargetMessageKey\x18\x19 \x01(\t\x12\x1d\n\x15\x65ncReactionEncPayload\x18\x1a \x01(\x0c\x12\x18\n\x10\x65ncReactionEncIv\x18\x1b \x01(\x0c\x12\x18\n\x10\x62otMessageSecret\x18\x1d \x01(\x0c\x12\x18\n\x10targetMessageKey\x18\x1e \x01(\t\x12\x12\n\nencPayload\x18\x1f \x01(\x0c\x12\r\n\x05\x65ncIv\x18 \x01(\x0c\x12\x11\n\teventName\x18! \x01(\t\x12\x17\n\x0fisEventCanceled\x18\" \x01(\x08\x12\x18\n\x10\x65ventDescription\x18# \x01(\t\x12\x15\n\reventJoinLink\x18$ \x01(\t\x12\x16\n\x0e\x65ventStartTime\x18% \x01(\x03\x12<\n\reventLocation\x18& \x01(\x0b\x32%.whatsapp.MsgOpaqueData.EventLocation\x12\x14\n\x0c\x65ventEndTime\x18( \x01(\x03\x12\x1c\n\x14\x65ventIsScheduledCall\x18, \x01(\x08\x12\x1f\n\x17\x65ventExtraGuestsAllowed\x18- \x01(\x08\x12\x1a\n\x12plainProtobufBytes\x18+ \x01(\x0c\x12\x1f\n\x17quarantineExtractedText\x18\x30 \x01(\t\x12\x13\n\x0bpollEndTime\x18\x31 \x01(\x03\x12\x1a\n\x12pollHideVoterNames\x18\x32 \x01(\x08\x12\x1a\n\x12pollAllowAddOption\x18\x34 \x01(\x08\x12\x1d\n\x15sharableEventInviteId\x18\x35 \x01(\t\x12 \n\x18sharableEventInviteTitle\x18\x36 \x01(\t\x12$\n\x1csharableEventInviteStartTime\x18\x37 \x01(\x03\x12\"\n\x1asharableEventInviteEndTime\x18\x38 \x01(\x03\x12\"\n\x1asharableEventInviteCaption\x18\x39 \x01(\t\x12%\n\x1dsharableEventInviteIsCanceled\x18: \x01(\x08\x12(\n sharableEventInviteJpegThumbnail\x18; \x01(\x0c\x12#\n\x1bsharableEventInviteCallLink\x18< \x01(\t\x1a\x85\x01\n\rEventLocation\x12\x17\n\x0f\x64\x65greesLatitude\x18\x01 \x01(\x01\x12\x18\n\x10\x64\x65greesLongitude\x18\x02 \x01(\x01\x12\x0c\n\x04name\x18\x03 \x01(\t\x12\x0f\n\x07\x61\x64\x64ress\x18\x04 \x01(\t\x12\x0b\n\x03url\x18\x05 \x01(\t\x12\x15\n\rjpegThumbnail\x18\x06 \x01(\x0c\x1a(\n\nPollOption\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x0c\n\x04hash\x18\x02 \x01(\t\x1a_\n\x10PollVoteSnapshot\x12\x32\n\x06option\x18\x01 \x01(\x0b\x32\".whatsapp.MsgOpaqueData.PollOption\x12\x17\n\x0foptionVoteCount\x18\x02 \x01(\x05\x1aP\n\x11PollVotesSnapshot\x12;\n\tpollVotes\x18\x01 \x03(\x0b\x32(.whatsapp.MsgOpaqueData.PollVoteSnapshot\"3\n\x0fPollContentType\x12\x0b\n\x07UNKNOWN\x10\x00\x12\x08\n\x04TEXT\x10\x01\x12\t\n\x05IMAGE\x10\x02\"\x1e\n\x08PollType\x12\x08\n\x04POLL\x10\x00\x12\x08\n\x04QUIZ\x10\x01\"k\n\x10MsgRowOpaqueData\x12+\n\ncurrentMsg\x18\x01 \x01(\x0b\x32\x17.whatsapp.MsgOpaqueData\x12*\n\tquotedMsg\x18\x02 \x01(\x0b\x32\x17.whatsapp.MsgOpaqueData\"\x90\x01\n\x10NoiseCertificate\x12\x0f\n\x07\x64\x65tails\x18\x01 \x01(\x0c\x12\x11\n\tsignature\x18\x02 \x01(\x0c\x1aX\n\x07\x44\x65tails\x12\x0e\n\x06serial\x18\x01 \x01(\r\x12\x0e\n\x06issuer\x18\x02 \x01(\t\x12\x0f\n\x07\x65xpires\x18\x03 \x01(\x04\x12\x0f\n\x07subject\x18\x04 \x01(\t\x12\x0b\n\x03key\x18\x05 \x01(\x0c\"\x8b\x01\n\x12NonE2EEAttestation\x12=\n\x0b\x61\x63\x63ountType\x18\x01 \x01(\x0e\x32(.whatsapp.NonE2EEAttestation.AccountType\"6\n\x0b\x41\x63\x63ountType\x12\x08\n\x04\x45\x32\x45\x45\x10\x00\x12\x0f\n\x0bHYBRID_E2EE\x10\x01\x12\x0c\n\x08NON_E2EE\x10\x02\"\x8f\x01\n\x17NotificationMessageInfo\x12!\n\x03key\x18\x01 \x01(\x0b\x32\x14.whatsapp.MessageKey\x12\"\n\x07message\x18\x02 \x01(\x0b\x32\x11.whatsapp.Message\x12\x18\n\x10messageTimestamp\x18\x03 \x01(\x04\x12\x13\n\x0bparticipant\x18\x04 \x01(\t\"\xa9\x01\n\x14NotificationSettings\x12\x16\n\x0emessageVibrate\x18\x01 \x01(\t\x12\x14\n\x0cmessagePopup\x18\x02 \x01(\t\x12\x14\n\x0cmessageLight\x18\x03 \x01(\t\x12 \n\x18lowPriorityNotifications\x18\x04 \x01(\x08\x12\x16\n\x0ereactionsMuted\x18\x05 \x01(\x08\x12\x13\n\x0b\x63\x61llVibrate\x18\x06 \x01(\t\"<\n\x10OrfThreadIdInput\x12\x16\n\x0eorfClientState\x18\x01 \x02(\x0c\x12\x10\n\x08threadId\x18\x02 \x02(\t\"7\n\x11OrfThreadIdOutput\x12\x13\n\x0borfThreadId\x18\x01 \x01(\x0c\x12\r\n\x05\x65rror\x18\x02 \x01(\t\"]\n\x0ePairingRequest\x12\x1a\n\x12\x63ompanionPublicKey\x18\x01 \x01(\x0c\x12\x1c\n\x14\x63ompanionIdentityKey\x18\x02 \x01(\x0c\x12\x11\n\tadvSecret\x18\x03 \x01(\x0c\"\x95\x01\n\x0fPastParticipant\x12\x0f\n\x07userJid\x18\x01 \x01(\t\x12:\n\x0bleaveReason\x18\x02 \x01(\x0e\x32%.whatsapp.PastParticipant.LeaveReason\x12\x0f\n\x07leaveTs\x18\x03 \x01(\x04\"$\n\x0bLeaveReason\x12\x08\n\x04LEFT\x10\x00\x12\x0b\n\x07REMOVED\x10\x01\"Y\n\x10PastParticipants\x12\x10\n\x08groupJid\x18\x01 \x01(\t\x12\x33\n\x10pastParticipants\x18\x02 \x03(\x0b\x32\x19.whatsapp.PastParticipant\"\xd6\x03\n\x0ePatchDebugData\x12\x15\n\rcurrentLthash\x18\x01 \x01(\x0c\x12\x11\n\tnewLthash\x18\x02 \x01(\x0c\x12\x14\n\x0cpatchVersion\x18\x03 \x01(\x0c\x12\x16\n\x0e\x63ollectionName\x18\x04 \x01(\x0c\x12/\n\'firstFourBytesFromAHashOfSnapshotMacKey\x18\x05 \x01(\x0c\x12\x19\n\x11newLthashSubtract\x18\x06 \x01(\x0c\x12\x11\n\tnumberAdd\x18\x07 \x01(\x05\x12\x14\n\x0cnumberRemove\x18\x08 \x01(\x05\x12\x16\n\x0enumberOverride\x18\t \x01(\x05\x12\x39\n\x0esenderPlatform\x18\n \x01(\x0e\x32!.whatsapp.PatchDebugData.Platform\x12\x17\n\x0fisSenderPrimary\x18\x0b \x01(\x08\"\x8a\x01\n\x08Platform\x12\x0b\n\x07\x41NDROID\x10\x00\x12\x08\n\x04SMBA\x10\x01\x12\n\n\x06IPHONE\x10\x02\x12\x08\n\x04SMBI\x10\x03\x12\x07\n\x03WEB\x10\x04\x12\x07\n\x03UWP\x10\x05\x12\n\n\x06\x44\x41RWIN\x10\x06\x12\x08\n\x04IPAD\x10\x07\x12\n\n\x06WEAROS\x10\x08\x12\x08\n\x04WASG\x10\t\x12\t\n\x05WEARM\x10\n\x12\x08\n\x04\x43\x41PI\x10\x0b\"\xa9\x03\n\x11PaymentBackground\x12\n\n\x02id\x18\x01 \x01(\t\x12\x12\n\nfileLength\x18\x02 \x01(\x04\x12\r\n\x05width\x18\x03 \x01(\r\x12\x0e\n\x06height\x18\x04 \x01(\r\x12\x10\n\x08mimetype\x18\x05 \x01(\t\x12\x17\n\x0fplaceholderArgb\x18\x06 \x01(\x07\x12\x10\n\x08textArgb\x18\x07 \x01(\x07\x12\x13\n\x0bsubtextArgb\x18\x08 \x01(\x07\x12\x38\n\tmediaData\x18\t \x01(\x0b\x32%.whatsapp.PaymentBackground.MediaData\x12.\n\x04type\x18\n \x01(\x0e\x32 .whatsapp.PaymentBackground.Type\x1aw\n\tMediaData\x12\x10\n\x08mediaKey\x18\x01 \x01(\x0c\x12\x19\n\x11mediaKeyTimestamp\x18\x02 \x01(\x03\x12\x12\n\nfileSha256\x18\x03 \x01(\x0c\x12\x15\n\rfileEncSha256\x18\x04 \x01(\x0c\x12\x12\n\ndirectPath\x18\x05 \x01(\t\" \n\x04Type\x12\x0b\n\x07UNKNOWN\x10\x00\x12\x0b\n\x07\x44\x45\x46\x41ULT\x10\x01\"\xe7\n\n\x0bPaymentInfo\x12:\n\x12\x63urrencyDeprecated\x18\x01 \x01(\x0e\x32\x1e.whatsapp.PaymentInfo.Currency\x12\x12\n\namount1000\x18\x02 \x01(\x04\x12\x13\n\x0breceiverJid\x18\x03 \x01(\t\x12,\n\x06status\x18\x04 \x01(\x0e\x32\x1c.whatsapp.PaymentInfo.Status\x12\x1c\n\x14transactionTimestamp\x18\x05 \x01(\x04\x12/\n\x11requestMessageKey\x18\x06 \x01(\x0b\x32\x14.whatsapp.MessageKey\x12\x17\n\x0f\x65xpiryTimestamp\x18\x07 \x01(\x04\x12\x15\n\rfutureproofed\x18\x08 \x01(\x08\x12\x10\n\x08\x63urrency\x18\t \x01(\t\x12\x32\n\ttxnStatus\x18\n \x01(\x0e\x32\x1f.whatsapp.PaymentInfo.TxnStatus\x12\x19\n\x11useNoviFiatFormat\x18\x0b \x01(\x08\x12&\n\rprimaryAmount\x18\x0c \x01(\x0b\x32\x0f.whatsapp.Money\x12\'\n\x0e\x65xchangeAmount\x18\r \x01(\x0b\x32\x0f.whatsapp.Money\")\n\x08\x43urrency\x12\x14\n\x10UNKNOWN_CURRENCY\x10\x00\x12\x07\n\x03INR\x10\x01\"\xcc\x01\n\x06Status\x12\x12\n\x0eUNKNOWN_STATUS\x10\x00\x12\x0e\n\nPROCESSING\x10\x01\x12\x08\n\x04SENT\x10\x02\x12\x12\n\x0eNEED_TO_ACCEPT\x10\x03\x12\x0c\n\x08\x43OMPLETE\x10\x04\x12\x16\n\x12\x43OULD_NOT_COMPLETE\x10\x05\x12\x0c\n\x08REFUNDED\x10\x06\x12\x0b\n\x07\x45XPIRED\x10\x07\x12\x0c\n\x08REJECTED\x10\x08\x12\r\n\tCANCELLED\x10\t\x12\x15\n\x11WAITING_FOR_PAYER\x10\n\x12\x0b\n\x07WAITING\x10\x0b\"\x99\x05\n\tTxnStatus\x12\x0b\n\x07UNKNOWN\x10\x00\x12\x11\n\rPENDING_SETUP\x10\x01\x12\x1a\n\x16PENDING_RECEIVER_SETUP\x10\x02\x12\x08\n\x04INIT\x10\x03\x12\x0b\n\x07SUCCESS\x10\x04\x12\r\n\tCOMPLETED\x10\x05\x12\n\n\x06\x46\x41ILED\x10\x06\x12\x0f\n\x0b\x46\x41ILED_RISK\x10\x07\x12\x15\n\x11\x46\x41ILED_PROCESSING\x10\x08\x12\x1e\n\x1a\x46\x41ILED_RECEIVER_PROCESSING\x10\t\x12\r\n\tFAILED_DA\x10\n\x12\x13\n\x0f\x46\x41ILED_DA_FINAL\x10\x0b\x12\x10\n\x0cREFUNDED_TXN\x10\x0c\x12\x11\n\rREFUND_FAILED\x10\r\x12\x1c\n\x18REFUND_FAILED_PROCESSING\x10\x0e\x12\x14\n\x10REFUND_FAILED_DA\x10\x0f\x12\x0f\n\x0b\x45XPIRED_TXN\x10\x10\x12\x11\n\rAUTH_CANCELED\x10\x11\x12!\n\x1d\x41UTH_CANCEL_FAILED_PROCESSING\x10\x12\x12\x16\n\x12\x41UTH_CANCEL_FAILED\x10\x13\x12\x10\n\x0c\x43OLLECT_INIT\x10\x14\x12\x13\n\x0f\x43OLLECT_SUCCESS\x10\x15\x12\x12\n\x0e\x43OLLECT_FAILED\x10\x16\x12\x17\n\x13\x43OLLECT_FAILED_RISK\x10\x17\x12\x14\n\x10\x43OLLECT_REJECTED\x10\x18\x12\x13\n\x0f\x43OLLECT_EXPIRED\x10\x19\x12\x14\n\x10\x43OLLECT_CANCELED\x10\x1a\x12\x16\n\x12\x43OLLECT_CANCELLING\x10\x1b\x12\r\n\tIN_REVIEW\x10\x1c\x12\x14\n\x10REVERSAL_SUCCESS\x10\x1d\x12\x14\n\x10REVERSAL_PENDING\x10\x1e\x12\x12\n\x0eREFUND_PENDING\x10\x1f\"8\n\x17PhoneNumberToLIDMapping\x12\r\n\x05pnJid\x18\x01 \x01(\t\x12\x0e\n\x06lidJid\x18\x02 \x01(\t\"E\n\x0bPhotoChange\x12\x10\n\x08oldPhoto\x18\x01 \x01(\x0c\x12\x10\n\x08newPhoto\x18\x02 \x01(\x0c\x12\x12\n\nnewPhotoId\x18\x03 \x01(\r\"\x8e\x02\n\tPinInChat\x12&\n\x04type\x18\x01 \x01(\x0e\x32\x18.whatsapp.PinInChat.Type\x12!\n\x03key\x18\x02 \x01(\x0b\x32\x14.whatsapp.MessageKey\x12\x19\n\x11senderTimestampMs\x18\x03 \x01(\x03\x12\x19\n\x11serverTimestampMs\x18\x04 \x01(\x03\x12\x42\n\x17messageAddOnContextInfo\x18\x05 \x01(\x0b\x32!.whatsapp.MessageAddOnContextInfo\"<\n\x04Type\x12\x10\n\x0cUNKNOWN_TYPE\x10\x00\x12\x0f\n\x0bPIN_FOR_ALL\x10\x01\x12\x11\n\rUNPIN_FOR_ALL\x10\x02\"G\n\x05Point\x12\x13\n\x0bxDeprecated\x18\x01 \x01(\x05\x12\x13\n\x0byDeprecated\x18\x02 \x01(\x05\x12\t\n\x01x\x18\x03 \x01(\x01\x12\t\n\x01y\x18\x04 \x01(\x01\"\xd1\x01\n\x16PollAdditionalMetadata\x12\x17\n\x0fpollInvalidated\x18\x01 \x01(\x08\x12V\n\x13pollNameHashHistory\x18\x02 \x03(\x0b\x32\x39.whatsapp.PollAdditionalMetadata.PollNameHashHistoryEntry\x1a\x46\n\x18PollNameHashHistoryEntry\x12\x14\n\x0c\x65\x64itStanzaId\x18\x01 \x01(\t\x12\x14\n\x0cpollNameHash\x18\x02 \x01(\x0c\"1\n\x0cPollEncValue\x12\x12\n\nencPayload\x18\x01 \x01(\x0c\x12\r\n\x05\x65ncIv\x18\x02 \x01(\x0c\"\xf6\x01\n\nPollUpdate\x12\x32\n\x14pollUpdateMessageKey\x18\x01 \x01(\x0b\x32\x14.whatsapp.MessageKey\x12/\n\x04vote\x18\x02 \x01(\x0b\x32!.whatsapp.Message.PollVoteMessage\x12\x19\n\x11senderTimestampMs\x18\x03 \x01(\x03\x12\x19\n\x11serverTimestampMs\x18\x04 \x01(\x03\x12\x0e\n\x06unread\x18\x05 \x01(\x08\x12=\n\x08metadata\x18\x06 \x01(\x0b\x32+.whatsapp.Message.PollUpdateMessageMetadata\"J\n\x15PreKeyRecordStructure\x12\n\n\x02id\x18\x01 \x01(\r\x12\x11\n\tpublicKey\x18\x02 \x01(\x0c\x12\x12\n\nprivateKey\x18\x03 \x01(\x0c\"\xbe\x01\n\x13PreKeySignalMessage\x12\x16\n\x0eregistrationId\x18\x05 \x01(\r\x12\x10\n\x08preKeyId\x18\x01 \x01(\r\x12\x16\n\x0esignedPreKeyId\x18\x06 \x01(\r\x12\x0f\n\x07\x62\x61seKey\x18\x02 \x01(\x0c\x12\x13\n\x0bidentityKey\x18\x03 \x01(\x0c\x12\x0f\n\x07message\x18\x04 \x01(\x0c\x12\x15\n\rkyberPreKeyId\x18\x07 \x01(\r\x12\x17\n\x0fkyberCiphertext\x18\x08 \x01(\x0c\".\n\x12PremiumMessageInfo\x12\x18\n\x10serverCampaignId\x18\x01 \x01(\t\"<\n\x18PrimaryEphemeralIdentity\x12\x11\n\tpublicKey\x18\x01 \x01(\x0c\x12\r\n\x05nonce\x18\x02 \x01(\x0c\"\x85\x02\n\x0eProcessedVideo\x12\x12\n\ndirectPath\x18\x01 \x01(\t\x12\x12\n\nfileSha256\x18\x02 \x01(\x0c\x12\x0e\n\x06height\x18\x03 \x01(\r\x12\r\n\x05width\x18\x04 \x01(\r\x12\x12\n\nfileLength\x18\x05 \x01(\x04\x12\x0f\n\x07\x62itrate\x18\x06 \x01(\r\x12\x36\n\x07quality\x18\x07 \x01(\x0e\x32%.whatsapp.ProcessedVideo.VideoQuality\x12\x14\n\x0c\x63\x61pabilities\x18\x08 \x03(\t\"9\n\x0cVideoQuality\x12\r\n\tUNDEFINED\x10\x00\x12\x07\n\x03LOW\x10\x01\x12\x07\n\x03MID\x10\x02\x12\x08\n\x04HIGH\x10\x03\"h\n\x0fProloguePayload\x12\"\n\x1a\x63ompanionEphemeralIdentity\x18\x01 \x01(\x0c\x12\x31\n\ncommitment\x18\x02 \x01(\x0b\x32\x1d.whatsapp.CompanionCommitment\"(\n\x08Pushname\x12\n\n\x02id\x18\x01 \x01(\t\x12\x10\n\x08pushname\x18\x02 \x01(\t\"\xbc\x04\n\x02QP\x1a\xcf\x01\n\x06\x46ilter\x12\x12\n\nfilterName\x18\x01 \x02(\t\x12\x31\n\nparameters\x18\x02 \x03(\x0b\x32\x1d.whatsapp.QP.FilterParameters\x12/\n\x0c\x66ilterResult\x18\x03 \x01(\x0e\x32\x19.whatsapp.QP.FilterResult\x12M\n\x18\x63lientNotSupportedConfig\x18\x04 \x02(\x0e\x32+.whatsapp.QP.FilterClientNotSupportedConfig\x1a\x8d\x01\n\x0c\x46ilterClause\x12+\n\nclauseType\x18\x01 \x02(\x0e\x32\x17.whatsapp.QP.ClauseType\x12*\n\x07\x63lauses\x18\x02 \x03(\x0b\x32\x19.whatsapp.QP.FilterClause\x12$\n\x07\x66ilters\x18\x03 \x03(\x0b\x32\x13.whatsapp.QP.Filter\x1a.\n\x10\x46ilterParameters\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t\"&\n\nClauseType\x12\x07\n\x03\x41ND\x10\x01\x12\x06\n\x02OR\x10\x02\x12\x07\n\x03NOR\x10\x03\"J\n\x1e\x46ilterClientNotSupportedConfig\x12\x13\n\x0fPASS_BY_DEFAULT\x10\x01\x12\x13\n\x0f\x46\x41IL_BY_DEFAULT\x10\x02\"0\n\x0c\x46ilterResult\x12\x08\n\x04TRUE\x10\x01\x12\t\n\x05\x46\x41LSE\x10\x02\x12\x0b\n\x07UNKNOWN\x10\x03\"A\n\x12QuarantinedMessage\x12\x14\n\x0coriginalData\x18\x01 \x01(\x0c\x12\x15\n\rextractedText\x18\x02 \x01(\t\"{\n\x08Reaction\x12!\n\x03key\x18\x01 \x01(\x0b\x32\x14.whatsapp.MessageKey\x12\x0c\n\x04text\x18\x02 \x01(\t\x12\x13\n\x0bgroupingKey\x18\x03 \x01(\t\x12\x19\n\x11senderTimestampMs\x18\x04 \x01(\x03\x12\x0e\n\x06unread\x18\x05 \x01(\x08\"2\n\x11RecentEmojiWeight\x12\r\n\x05\x65moji\x18\x01 \x01(\t\x12\x0e\n\x06weight\x18\x02 \x01(\x02\"{\n\x0fRecordStructure\x12\x32\n\x0e\x63urrentSession\x18\x01 \x01(\x0b\x32\x1a.whatsapp.SessionStructure\x12\x34\n\x10previousSessions\x18\x02 \x03(\x0b\x32\x1a.whatsapp.SessionStructure\"g\n\nReportable\x12\x15\n\nminVersion\x18\x01 \x01(\r:\x01\x31\x12\x12\n\nmaxVersion\x18\x02 \x01(\r\x12\x1f\n\x17notReportableMinVersion\x18\x03 \x01(\r\x12\r\n\x05never\x18\x04 \x01(\x08\"I\n\x12ReportingTokenInfo\x12\x14\n\x0creportingTag\x18\x01 \x01(\x0c\x12\x1d\n\x15reportingTagTimestamp\x18\x02 \x01(\x04\"\xb8\x01\n\x10RotateEpochInput\x12\x1b\n\x13\x63urrentEpochRootKey\x18\x01 \x02(\x0c\x12\x1a\n\x12\x63urrentEpochAnonId\x18\x02 \x02(\x0c\x12\x18\n\x10\x63urrentEpochFbid\x18\x03 \x02(\x04\x12\x1e\n\x16\x65pochStoragePrivateKey\x18\x04 \x02(\x0c\x12\x31\n\x07members\x18\x05 \x03(\x0b\x32 .whatsapp.RotateEpochMemberInput\"]\n\x15RotateEpochMemberEdge\x12\x10\n\x08\x64\x65viceId\x18\x01 \x01(\x04\x12\x19\n\x11\x65ncryptedEpochKey\x18\x02 \x01(\x0c\x12\x17\n\x0f\x64\x65viceEpochHmac\x18\x03 \x01(\x0c\"b\n\x16RotateEpochMemberInput\x12\x10\n\x08\x64\x65viceId\x18\x01 \x02(\x04\x12\x1d\n\x15\x65pochStoragePublicKey\x18\x02 \x02(\x0c\x12\x17\n\x0f\x64\x65vicePublicKey\x18\x03 \x02(\x0c\"\x83\x02\n\x11RotateEpochOutput\x12\x17\n\x0fnewEpochRootKey\x18\x01 \x01(\x0c\x12\x16\n\x0enewEpochAnonId\x18\x02 \x01(\x04\x12\x14\n\x0cnewEpochFbid\x18\x08 \x01(\x04\x12\x13\n\x0b\x65pochAnonId\x18\x03 \x01(\x0c\x12,\n\x0c\x62\x61\x63kwardEdge\x18\x04 \x01(\x0b\x32\x16.whatsapp.BackwardEdge\x12\x34\n\x0bmemberEdges\x18\x05 \x03(\x0b\x32\x1f.whatsapp.RotateEpochMemberEdge\x12\x1f\n\x17\x65pochRootKeyFingerprint\x18\x06 \x01(\x0c\x12\r\n\x05\x65rror\x18\x07 \x01(\t\"\x89\x01\n\x0bRoutingInfo\x12\x10\n\x08regionId\x18\x01 \x03(\x05\x12\x11\n\tclusterId\x18\x02 \x03(\x05\x12\x12\n\x06taskId\x18\x03 \x01(\x05:\x02-1\x12\x14\n\x05\x64\x65\x62ug\x18\x04 \x01(\x08:\x05\x66\x61lse\x12\x15\n\x06tcpBbr\x18\x05 \x01(\x08:\x05\x66\x61lse\x12\x14\n\x0ctcpKeepalive\x18\x06 \x01(\x08\"Y\n\x18ScheduledMessageMetadata\x12\x13\n\x0brevealKeyId\x18\x01 \x01(\t\x12\x11\n\trevealKey\x18\x02 \x01(\x0c\x12\x15\n\rscheduledTime\x18\x03 \x01(\x04\"c\n\x1cSenderKeyDistributionMessage\x12\n\n\x02id\x18\x01 \x01(\r\x12\x11\n\titeration\x18\x02 \x01(\r\x12\x10\n\x08\x63hainKey\x18\x03 \x01(\x0c\x12\x12\n\nsigningKey\x18\x04 \x01(\x0c\"E\n\x10SenderKeyMessage\x12\n\n\x02id\x18\x01 \x01(\r\x12\x11\n\titeration\x18\x02 \x01(\r\x12\x12\n\nciphertext\x18\x03 \x01(\x0c\"V\n\x18SenderKeyRecordStructure\x12:\n\x0fsenderKeyStates\x18\x01 \x03(\x0b\x32!.whatsapp.SenderKeyStateStructure\"\xb2\x03\n\x17SenderKeyStateStructure\x12\x13\n\x0bsenderKeyId\x18\x01 \x01(\r\x12H\n\x0esenderChainKey\x18\x02 \x01(\x0b\x32\x30.whatsapp.SenderKeyStateStructure.SenderChainKey\x12L\n\x10senderSigningKey\x18\x03 \x01(\x0b\x32\x32.whatsapp.SenderKeyStateStructure.SenderSigningKey\x12M\n\x11senderMessageKeys\x18\x04 \x03(\x0b\x32\x32.whatsapp.SenderKeyStateStructure.SenderMessageKey\x1a\x31\n\x0eSenderChainKey\x12\x11\n\titeration\x18\x01 \x01(\r\x12\x0c\n\x04seed\x18\x02 \x01(\x0c\x1a\x33\n\x10SenderMessageKey\x12\x11\n\titeration\x18\x01 \x01(\r\x12\x0c\n\x04seed\x18\x02 \x01(\x0c\x1a\x33\n\x10SenderSigningKey\x12\x0e\n\x06public\x18\x01 \x01(\x0c\x12\x0f\n\x07private\x18\x02 \x01(\x0c\"&\n\x12ServerErrorReceipt\x12\x10\n\x08stanzaId\x18\x01 \x01(\t\"\xf7\x08\n\x10SessionStructure\x12\x16\n\x0esessionVersion\x18\x01 \x01(\r\x12\x1b\n\x13localIdentityPublic\x18\x02 \x01(\x0c\x12\x1c\n\x14remoteIdentityPublic\x18\x03 \x01(\x0c\x12\x0f\n\x07rootKey\x18\x04 \x01(\x0c\x12\x17\n\x0fpreviousCounter\x18\x05 \x01(\r\x12\x35\n\x0bsenderChain\x18\x06 \x01(\x0b\x32 .whatsapp.SessionStructure.Chain\x12\x38\n\x0ereceiverChains\x18\x07 \x03(\x0b\x32 .whatsapp.SessionStructure.Chain\x12I\n\x12pendingKeyExchange\x18\x08 \x01(\x0b\x32-.whatsapp.SessionStructure.PendingKeyExchange\x12?\n\rpendingPreKey\x18\t \x01(\x0b\x32(.whatsapp.SessionStructure.PendingPreKey\x12\x1c\n\x14remoteRegistrationId\x18\n \x01(\r\x12\x1b\n\x13localRegistrationId\x18\x0b \x01(\r\x12\x14\n\x0cneedsRefresh\x18\x0c \x01(\x08\x12\x14\n\x0c\x61liceBaseKey\x18\r \x01(\x0c\x1a\xb5\x02\n\x05\x43hain\x12\x18\n\x10senderRatchetKey\x18\x01 \x01(\x0c\x12\x1f\n\x17senderRatchetKeyPrivate\x18\x02 \x01(\x0c\x12;\n\x08\x63hainKey\x18\x03 \x01(\x0b\x32).whatsapp.SessionStructure.Chain.ChainKey\x12@\n\x0bmessageKeys\x18\x04 \x03(\x0b\x32+.whatsapp.SessionStructure.Chain.MessageKey\x1a&\n\x08\x43hainKey\x12\r\n\x05index\x18\x01 \x01(\r\x12\x0b\n\x03key\x18\x02 \x01(\x0c\x1aJ\n\nMessageKey\x12\r\n\x05index\x18\x01 \x01(\r\x12\x11\n\tcipherKey\x18\x02 \x01(\x0c\x12\x0e\n\x06macKey\x18\x03 \x01(\x0c\x12\n\n\x02iv\x18\x04 \x01(\x0c\x1a\xcd\x01\n\x12PendingKeyExchange\x12\x10\n\x08sequence\x18\x01 \x01(\r\x12\x14\n\x0clocalBaseKey\x18\x02 \x01(\x0c\x12\x1b\n\x13localBaseKeyPrivate\x18\x03 \x01(\x0c\x12\x17\n\x0flocalRatchetKey\x18\x04 \x01(\x0c\x12\x1e\n\x16localRatchetKeyPrivate\x18\x05 \x01(\x0c\x12\x18\n\x10localIdentityKey\x18\x07 \x01(\x0c\x12\x1f\n\x17localIdentityKeyPrivate\x18\x08 \x01(\x0c\x1az\n\rPendingPreKey\x12\x10\n\x08preKeyId\x18\x01 \x01(\r\x12\x16\n\x0esignedPreKeyId\x18\x03 \x01(\x05\x12\x0f\n\x07\x62\x61seKey\x18\x02 \x01(\x0c\x12\x15\n\rkyberPreKeyId\x18\x04 \x01(\r\x12\x17\n\x0fkyberCiphertext\x18\x05 \x01(\x0c\"\x88\x01\n\x1bSessionTransparencyMetadata\x12\x16\n\x0e\x64isclaimerText\x18\x01 \x01(\t\x12\r\n\x05hcaId\x18\x02 \x01(\t\x12\x42\n\x17sessionTransparencyType\x18\x03 \x01(\x0e\x32!.whatsapp.SessionTransparencyType\"a\n\rSignalMessage\x12\x12\n\nratchetKey\x18\x01 \x01(\x0c\x12\x0f\n\x07\x63ounter\x18\x02 \x01(\r\x12\x17\n\x0fpreviousCounter\x18\x03 \x01(\r\x12\x12\n\nciphertext\x18\x04 \x01(\x0c\"\xa4\x01\n SignedMmkDistributionFromMailbox\x12\x32\n\x0fmmkDistribution\x18\x01 \x02(\x0b\x32\x19.whatsapp.MmkDistribution\x12\x11\n\tsignature\x18\x02 \x02(\x0c\x12\x39\n\x0b\x66romMailbox\x18\x03 \x02(\x0b\x32$.whatsapp.MessagingMailboxPublicData\"v\n\x1bSignedPreKeyRecordStructure\x12\n\n\x02id\x18\x01 \x01(\r\x12\x11\n\tpublicKey\x18\x02 \x01(\x0c\x12\x12\n\nprivateKey\x18\x03 \x01(\x0c\x12\x11\n\tsignature\x18\x04 \x01(\x0c\x12\x11\n\ttimestamp\x18\x05 \x01(\x06\"\xa0\x0f\n\x11StatusAttribution\x12.\n\x04type\x18\x01 \x01(\x0e\x32 .whatsapp.StatusAttribution.Type\x12\x11\n\tactionUrl\x18\x02 \x01(\t\x12\x42\n\rstatusReshare\x18\x03 \x01(\x0b\x32).whatsapp.StatusAttribution.StatusReshareH\x00\x12\x42\n\rexternalShare\x18\x04 \x01(\x0b\x32).whatsapp.StatusAttribution.ExternalShareH\x00\x12\x32\n\x05music\x18\x05 \x01(\x0b\x32!.whatsapp.StatusAttribution.MusicH\x00\x12>\n\x0bgroupStatus\x18\x06 \x01(\x0b\x32\'.whatsapp.StatusAttribution.GroupStatusH\x00\x12\x42\n\rrlAttribution\x18\x07 \x01(\x0b\x32).whatsapp.StatusAttribution.RLAttributionH\x00\x12P\n\x14\x61iCreatedAttribution\x18\x08 \x01(\x0b\x32\x30.whatsapp.StatusAttribution.AiCreatedAttributionH\x00\x1a\x8a\x01\n\x14\x41iCreatedAttribution\x12G\n\x06source\x18\x01 \x01(\x0e\x32\x37.whatsapp.StatusAttribution.AiCreatedAttribution.Source\")\n\x06Source\x12\x0b\n\x07UNKNOWN\x10\x00\x12\x12\n\x0eSTATUS_MIMICRY\x10\x01\x1a\xe7\x02\n\rExternalShare\x12\x11\n\tactionUrl\x18\x01 \x01(\t\x12@\n\x06source\x18\x02 \x01(\x0e\x32\x30.whatsapp.StatusAttribution.ExternalShare.Source\x12\x10\n\x08\x64uration\x18\x03 \x01(\x05\x12\x19\n\x11\x61\x63tionFallbackUrl\x18\x04 \x01(\t\"\xd3\x01\n\x06Source\x12\x0b\n\x07UNKNOWN\x10\x00\x12\r\n\tINSTAGRAM\x10\x01\x12\x0c\n\x08\x46\x41\x43\x45\x42OOK\x10\x02\x12\r\n\tMESSENGER\x10\x03\x12\x0b\n\x07SPOTIFY\x10\x04\x12\x0b\n\x07YOUTUBE\x10\x05\x12\r\n\tPINTEREST\x10\x06\x12\x0b\n\x07THREADS\x10\x07\x12\x0f\n\x0b\x41PPLE_MUSIC\x10\x08\x12\r\n\tSHARECHAT\x10\t\x12\x11\n\rGOOGLE_PHOTOS\x10\n\x12\x0e\n\nSOUNDCLOUD\x10\x0b\x12\n\n\x06SHAZAM\x10\x0c\x12\x0b\n\x07PICSART\x10\r\x1a \n\x0bGroupStatus\x12\x11\n\tauthorJid\x18\x01 \x01(\t\x1ay\n\x05Music\x12\x12\n\nauthorName\x18\x01 \x01(\t\x12\x0e\n\x06songId\x18\x02 \x01(\t\x12\r\n\x05title\x18\x03 \x01(\t\x12\x0e\n\x06\x61uthor\x18\x04 \x01(\t\x12\x19\n\x11\x61rtistAttribution\x18\x05 \x01(\t\x12\x12\n\nisExplicit\x18\x06 \x01(\x08\x1a\xb2\x01\n\rRLAttribution\x12@\n\x06source\x18\x01 \x01(\x0e\x32\x30.whatsapp.StatusAttribution.RLAttribution.Source\"_\n\x06Source\x12\x0b\n\x07UNKNOWN\x10\x00\x12\x18\n\x14RAY_BAN_META_GLASSES\x10\x01\x12\x17\n\x13OAKLEY_META_GLASSES\x10\x02\x12\x15\n\x11HYPERNOVA_GLASSES\x10\x03\x1a\xe4\x02\n\rStatusReshare\x12@\n\x06source\x18\x01 \x01(\x0e\x32\x30.whatsapp.StatusAttribution.StatusReshare.Source\x12\x44\n\x08metadata\x18\x02 \x01(\x0b\x32\x32.whatsapp.StatusAttribution.StatusReshare.Metadata\x1ag\n\x08Metadata\x12\x10\n\x08\x64uration\x18\x01 \x01(\x05\x12\x12\n\nchannelJid\x18\x02 \x01(\t\x12\x18\n\x10\x63hannelMessageId\x18\x03 \x01(\x05\x12\x1b\n\x13hasMultipleReshares\x18\x04 \x01(\x08\"b\n\x06Source\x12\x0b\n\x07UNKNOWN\x10\x00\x12\x14\n\x10INTERNAL_RESHARE\x10\x01\x12\x13\n\x0fMENTION_RESHARE\x10\x02\x12\x13\n\x0f\x43HANNEL_RESHARE\x10\x03\x12\x0b\n\x07\x46ORWARD\x10\x04\"\xf2\x01\n\x04Type\x12\x0b\n\x07UNKNOWN\x10\x00\x12\x0b\n\x07RESHARE\x10\x01\x12\x12\n\x0e\x45XTERNAL_SHARE\x10\x02\x12\t\n\x05MUSIC\x10\x03\x12\x12\n\x0eSTATUS_MENTION\x10\x04\x12\x10\n\x0cGROUP_STATUS\x10\x05\x12\x12\n\x0eRL_ATTRIBUTION\x10\x06\x12\x0e\n\nAI_CREATED\x10\x07\x12\x0b\n\x07LAYOUTS\x10\x08\x12\x15\n\x11NEWSLETTER_STATUS\x10\t\x12\x18\n\x14STATUS_CLOSE_SHARING\x10\n\x12\x14\n\x10PAID_PARTNERSHIP\x10\x0b\x12\x13\n\x0fUSERNAME_STATUS\x10\x0c\x42\x11\n\x0f\x61ttributionData\"?\n\x14StatusMentionMessage\x12\'\n\x0cquotedStatus\x18\x01 \x01(\x0b\x32\x11.whatsapp.Message\"D\n\tStatusPSA\x12\x12\n\ncampaignId\x18, \x02(\x04\x12#\n\x1b\x63\x61mpaignExpirationTimestamp\x18- \x01(\x04\"\x9d\x02\n\x0fStickerMetadata\x12\x0b\n\x03url\x18\x01 \x01(\t\x12\x12\n\nfileSha256\x18\x02 \x01(\x0c\x12\x15\n\rfileEncSha256\x18\x03 \x01(\x0c\x12\x10\n\x08mediaKey\x18\x04 \x01(\x0c\x12\x10\n\x08mimetype\x18\x05 \x01(\t\x12\x0e\n\x06height\x18\x06 \x01(\r\x12\r\n\x05width\x18\x07 \x01(\r\x12\x12\n\ndirectPath\x18\x08 \x01(\t\x12\x12\n\nfileLength\x18\t \x01(\x04\x12\x0e\n\x06weight\x18\n \x01(\x02\x12\x19\n\x11lastStickerSentTs\x18\x0b \x01(\x03\x12\x10\n\x08isLottie\x18\x0c \x01(\x08\x12\x11\n\timageHash\x18\r \x01(\t\x12\x17\n\x0fisAvatarSticker\x18\x0e \x01(\x08\"/\n\x0bSubProtocol\x12\x0f\n\x07payload\x18\x01 \x01(\x0c\x12\x0f\n\x07version\x18\x02 \x01(\x05\"k\n\x0eSyncActionData\x12\r\n\x05index\x18\x01 \x01(\x0c\x12(\n\x05value\x18\x02 \x01(\x0b\x32\x19.whatsapp.SyncActionValue\x12\x0f\n\x07padding\x18\x03 \x01(\x0c\x12\x0f\n\x07version\x18\x04 \x01(\x05\"\xbe\x97\x01\n\x0fSyncActionValue\x12\x11\n\ttimestamp\x18\x01 \x01(\x03\x12\x38\n\nstarAction\x18\x02 \x01(\x0b\x32$.whatsapp.SyncActionValue.StarAction\x12>\n\rcontactAction\x18\x03 \x01(\x0b\x32\'.whatsapp.SyncActionValue.ContactAction\x12\x38\n\nmuteAction\x18\x04 \x01(\x0b\x32$.whatsapp.SyncActionValue.MuteAction\x12\x36\n\tpinAction\x18\x05 \x01(\x0b\x32#.whatsapp.SyncActionValue.PinAction\x12\x42\n\x0fpushNameSetting\x18\x07 \x01(\x0b\x32).whatsapp.SyncActionValue.PushNameSetting\x12\x44\n\x10quickReplyAction\x18\x08 \x01(\x0b\x32*.whatsapp.SyncActionValue.QuickReplyAction\x12T\n\x18recentEmojiWeightsAction\x18\x0b \x01(\x0b\x32\x32.whatsapp.SyncActionValue.RecentEmojiWeightsAction\x12\x42\n\x0flabelEditAction\x18\x0e \x01(\x0b\x32).whatsapp.SyncActionValue.LabelEditAction\x12P\n\x16labelAssociationAction\x18\x0f \x01(\x0b\x32\x30.whatsapp.SyncActionValue.LabelAssociationAction\x12>\n\rlocaleSetting\x18\x10 \x01(\x0b\x32\'.whatsapp.SyncActionValue.LocaleSetting\x12\x46\n\x11\x61rchiveChatAction\x18\x11 \x01(\x0b\x32+.whatsapp.SyncActionValue.ArchiveChatAction\x12T\n\x18\x64\x65leteMessageForMeAction\x18\x12 \x01(\x0b\x32\x32.whatsapp.SyncActionValue.DeleteMessageForMeAction\x12>\n\rkeyExpiration\x18\x13 \x01(\x0b\x32\'.whatsapp.SyncActionValue.KeyExpiration\x12L\n\x14markChatAsReadAction\x18\x14 \x01(\x0b\x32..whatsapp.SyncActionValue.MarkChatAsReadAction\x12\x42\n\x0f\x63learChatAction\x18\x15 \x01(\x0b\x32).whatsapp.SyncActionValue.ClearChatAction\x12\x44\n\x10\x64\x65leteChatAction\x18\x16 \x01(\x0b\x32*.whatsapp.SyncActionValue.DeleteChatAction\x12N\n\x15unarchiveChatsSetting\x18\x17 \x01(\x0b\x32/.whatsapp.SyncActionValue.UnarchiveChatsSetting\x12@\n\x0eprimaryFeature\x18\x18 \x01(\x0b\x32(.whatsapp.SyncActionValue.PrimaryFeature\x12V\n\x19\x61ndroidUnsupportedActions\x18\x1a \x01(\x0b\x32\x33.whatsapp.SyncActionValue.AndroidUnsupportedActions\x12:\n\x0b\x61gentAction\x18\x1b \x01(\x0b\x32%.whatsapp.SyncActionValue.AgentAction\x12H\n\x12subscriptionAction\x18\x1c \x01(\x0b\x32,.whatsapp.SyncActionValue.SubscriptionAction\x12L\n\x14userStatusMuteAction\x18\x1d \x01(\x0b\x32..whatsapp.SyncActionValue.UserStatusMuteAction\x12\x44\n\x10timeFormatAction\x18\x1e \x01(\x0b\x32*.whatsapp.SyncActionValue.TimeFormatAction\x12\x36\n\tnuxAction\x18\x1f \x01(\x0b\x32#.whatsapp.SyncActionValue.NuxAction\x12L\n\x14primaryVersionAction\x18 \x01(\x0b\x32..whatsapp.SyncActionValue.PrimaryVersionAction\x12>\n\rstickerAction\x18! \x01(\x0b\x32\'.whatsapp.SyncActionValue.StickerAction\x12V\n\x19removeRecentStickerAction\x18\" \x01(\x0b\x32\x33.whatsapp.SyncActionValue.RemoveRecentStickerAction\x12\x46\n\x0e\x63hatAssignment\x18# \x01(\x0b\x32..whatsapp.SyncActionValue.ChatAssignmentAction\x12^\n\x1a\x63hatAssignmentOpenedStatus\x18$ \x01(\x0b\x32:.whatsapp.SyncActionValue.ChatAssignmentOpenedStatusAction\x12H\n\x12pnForLidChatAction\x18% \x01(\x0b\x32,.whatsapp.SyncActionValue.PnForLidChatAction\x12P\n\x16marketingMessageAction\x18& \x01(\x0b\x32\x30.whatsapp.SyncActionValue.MarketingMessageAction\x12\x62\n\x1fmarketingMessageBroadcastAction\x18\' \x01(\x0b\x32\x39.whatsapp.SyncActionValue.MarketingMessageBroadcastAction\x12N\n\x15\x65xternalWebBetaAction\x18( \x01(\x0b\x32/.whatsapp.SyncActionValue.ExternalWebBetaAction\x12Z\n\x1bprivacySettingRelayAllCalls\x18) \x01(\x0b\x32\x35.whatsapp.SyncActionValue.PrivacySettingRelayAllCalls\x12>\n\rcallLogAction\x18* \x01(\x0b\x32\'.whatsapp.SyncActionValue.CallLogAction\x12\x30\n\x06ugcBot\x18+ \x01(\x0b\x32 .whatsapp.SyncActionValue.UGCBot\x12\x44\n\rstatusPrivacy\x18, \x01(\x0b\x32-.whatsapp.SyncActionValue.StatusPrivacyAction\x12R\n\x17\x62otWelcomeRequestAction\x18- \x01(\x0b\x32\x31.whatsapp.SyncActionValue.BotWelcomeRequestAction\x12X\n\x17\x64\x65leteIndividualCallLog\x18. \x01(\x0b\x32\x37.whatsapp.SyncActionValue.DeleteIndividualCallLogAction\x12N\n\x15labelReorderingAction\x18/ \x01(\x0b\x32/.whatsapp.SyncActionValue.LabelReorderingAction\x12\x46\n\x11paymentInfoAction\x18\x30 \x01(\x0b\x32+.whatsapp.SyncActionValue.PaymentInfoAction\x12X\n\x1a\x63ustomPaymentMethodsAction\x18\x31 \x01(\x0b\x32\x34.whatsapp.SyncActionValue.CustomPaymentMethodsAction\x12@\n\x0elockChatAction\x18\x32 \x01(\x0b\x32(.whatsapp.SyncActionValue.LockChatAction\x12\x34\n\x10\x63hatLockSettings\x18\x33 \x01(\x0b\x32\x1a.whatsapp.ChatLockSettings\x12T\n\x18wamoUserIdentifierAction\x18\x34 \x01(\x0b\x32\x32.whatsapp.SyncActionValue.WamoUserIdentifierAction\x12r\n\'privacySettingDisableLinkPreviewsAction\x18\x35 \x01(\x0b\x32\x41.whatsapp.SyncActionValue.PrivacySettingDisableLinkPreviewsAction\x12\x38\n\x12\x64\x65viceCapabilities\x18\x36 \x01(\x0b\x32\x1c.whatsapp.DeviceCapabilities\x12@\n\x0enoteEditAction\x18\x37 \x01(\x0b\x32(.whatsapp.SyncActionValue.NoteEditAction\x12\x42\n\x0f\x66\x61voritesAction\x18\x38 \x01(\x0b\x32).whatsapp.SyncActionValue.FavoritesAction\x12\\\n\x1cmerchantPaymentPartnerAction\x18\x39 \x01(\x0b\x32\x36.whatsapp.SyncActionValue.MerchantPaymentPartnerAction\x12\\\n\x1cwaffleAccountLinkStateAction\x18: \x01(\x0b\x32\x36.whatsapp.SyncActionValue.WaffleAccountLinkStateAction\x12T\n\x15usernameChatStartMode\x18; \x01(\x0b\x32\x35.whatsapp.SyncActionValue.UsernameChatStartModeAction\x12\x66\n!notificationActivitySettingAction\x18< \x01(\x0b\x32;.whatsapp.SyncActionValue.NotificationActivitySettingAction\x12\x44\n\x10lidContactAction\x18= \x01(\x0b\x32*.whatsapp.SyncActionValue.LidContactAction\x12\x64\n ctwaPerCustomerDataSharingAction\x18> \x01(\x0b\x32:.whatsapp.SyncActionValue.CtwaPerCustomerDataSharingAction\x12\x44\n\x10paymentTosAction\x18? \x01(\x0b\x32*.whatsapp.SyncActionValue.PaymentTosAction\x12\x90\x01\n6privacySettingChannelsPersonalisedRecommendationAction\x18@ \x01(\x0b\x32P.whatsapp.SyncActionValue.PrivacySettingChannelsPersonalisedRecommendationAction\x12\\\n\x1c\x64\x65tectedOutcomesStatusAction\x18\x42 \x01(\x0b\x32\x36.whatsapp.SyncActionValue.DetectedOutcomesStatusAction\x12\\\n\x1cmaibaAiFeaturesControlAction\x18\x44 \x01(\x0b\x32\x36.whatsapp.SyncActionValue.MaibaAIFeaturesControlAction\x12Z\n\x1b\x62usinessBroadcastListAction\x18\x45 \x01(\x0b\x32\x35.whatsapp.SyncActionValue.BusinessBroadcastListAction\x12\x46\n\x11musicUserIdAction\x18\x46 \x01(\x0b\x32+.whatsapp.SyncActionValue.MusicUserIdAction\x12|\n,statusPostOptInNotificationPreferencesAction\x18G \x01(\x0b\x32\x46.whatsapp.SyncActionValue.StatusPostOptInNotificationPreferencesAction\x12J\n\x13\x61vatarUpdatedAction\x18H \x01(\x0b\x32-.whatsapp.SyncActionValue.AvatarUpdatedAction\x12`\n\x1eprivateProcessingSettingAction\x18J \x01(\x0b\x32\x38.whatsapp.SyncActionValue.PrivateProcessingSettingAction\x12`\n\x1enewsletterSavedInterestsAction\x18K \x01(\x0b\x32\x38.whatsapp.SyncActionValue.NewsletterSavedInterestsAction\x12L\n\x14\x61iThreadRenameAction\x18L \x01(\x0b\x32..whatsapp.SyncActionValue.AiThreadRenameAction\x12T\n\x18interactiveMessageAction\x18M \x01(\x0b\x32\x32.whatsapp.SyncActionValue.InteractiveMessageAction\x12H\n\x12settingsSyncAction\x18N \x01(\x0b\x32,.whatsapp.SyncActionValue.SettingsSyncAction\x12\x44\n\x10outContactAction\x18O \x01(\x0b\x32*.whatsapp.SyncActionValue.OutContactAction\x12\x46\n\x11nctSaltSyncAction\x18P \x01(\x0b\x32+.whatsapp.SyncActionValue.NctSaltSyncAction\x12\x62\n\x1f\x62usinessBroadcastCampaignAction\x18Q \x01(\x0b\x32\x39.whatsapp.SyncActionValue.BusinessBroadcastCampaignAction\x12\x62\n\x1f\x62usinessBroadcastInsightsAction\x18R \x01(\x0b\x32\x39.whatsapp.SyncActionValue.BusinessBroadcastInsightsAction\x12H\n\x12\x63ustomerDataAction\x18S \x01(\x0b\x32,.whatsapp.SyncActionValue.CustomerDataAction\x12V\n\x19subscriptionsSyncV2Action\x18T \x01(\x0b\x32\x33.whatsapp.SyncActionValue.SubscriptionsSyncV2Action\x12\x42\n\x0fthreadPinAction\x18U \x01(\x0b\x32).whatsapp.SyncActionValue.ThreadPinAction\x12\x62\n\x1f\x61utoOrganizeBusinessChatSetting\x18V \x01(\x0b\x32\x39.whatsapp.SyncActionValue.AutoOrganizeBusinessChatSetting\x12T\n\x18\x62izAiSettingsNudgeAction\x18W \x01(\x0b\x32\x32.whatsapp.SyncActionValue.BizAISettingsNudgeAction\x12J\n\x13\x63oexV2VersionAction\x18X \x01(\x0b\x32-.whatsapp.SyncActionValue.CoexV2VersionAction\x12L\n\x14wasaRootSecretAction\x18Y \x01(\x0b\x32..whatsapp.SyncActionValue.WASARootSecretAction\x12R\n\x17\x62ubbleLockMessageAction\x18Z \x01(\x0b\x32\x31.whatsapp.SyncActionValue.BubbleLockMessageAction\x12H\n\x12labelSublistAction\x18[ \x01(\x0b\x32,.whatsapp.SyncActionValue.LabelSublistAction\x12:\n\x14\x64\x65viceCapabilitiesV2\x18\\ \x01(\x0b\x32\x1c.whatsapp.DeviceCapabilities\x12V\n\x19\x63twaMessageReceivedAction\x18] \x01(\x0b\x32\x33.whatsapp.SyncActionValue.CtwaMessageReceivedAction\x1a@\n\x0b\x41gentAction\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x10\n\x08\x64\x65viceId\x18\x02 \x01(\x05\x12\x11\n\tisDeleted\x18\x03 \x01(\x08\x1a(\n\x14\x41iThreadRenameAction\x12\x10\n\x08newTitle\x18\x01 \x01(\t\x1a,\n\x19\x41ndroidUnsupportedActions\x12\x0f\n\x07\x61llowed\x18\x01 \x01(\x08\x1am\n\x11\x41rchiveChatAction\x12\x10\n\x08\x61rchived\x18\x01 \x01(\x08\x12\x46\n\x0cmessageRange\x18\x02 \x01(\x0b\x32\x30.whatsapp.SyncActionValue.SyncActionMessageRange\x1a\x37\n\x1f\x41utoOrganizeBusinessChatSetting\x12\x14\n\x0c\x61utoOrganize\x18\x01 \x01(\x08\x1a\xe8\x01\n\x13\x41vatarUpdatedAction\x12P\n\teventType\x18\x01 \x01(\x0e\x32=.whatsapp.SyncActionValue.AvatarUpdatedAction.AvatarEventType\x12\x45\n\x14recentAvatarStickers\x18\x02 \x03(\x0b\x32\'.whatsapp.SyncActionValue.StickerAction\"8\n\x0f\x41vatarEventType\x12\x0b\n\x07UPDATED\x10\x00\x12\x0b\n\x07\x43REATED\x10\x01\x12\x0b\n\x07\x44\x45LETED\x10\x02\x1a\xbc\x02\n\x18\x42izAISettingsNudgeAction\x12Z\n\x08\x63\x61tegory\x18\x01 \x01(\x0e\x32H.whatsapp.SyncActionValue.BizAISettingsNudgeAction.BizAISettingsCategory\x12\x0f\n\x07version\x18\x02 \x01(\x03\x12\x13\n\x0bupdatedAtMs\x18\x03 \x01(\x03\"\x9d\x01\n\x15\x42izAISettingsCategory\x12\x0b\n\x07UNKNOWN\x10\x00\x12\x10\n\x0cINSTRUCTIONS\x10\x01\x12\x15\n\x11RESPONSE_SETTINGS\x10\x02\x12\x15\n\x11\x45XAMPLE_RESPONSES\x10\x03\x12\r\n\tKNOWLEDGE\x10\x04\x12\x0c\n\x08LEAD_GEN\x10\x05\x12\x1a\n\x16HANDOFF_REMOVAL_TIMING\x10\x06\x1a)\n\x17\x42otWelcomeRequestAction\x12\x0e\n\x06isSent\x18\x01 \x01(\x08\x1a\x39\n\x18\x42roadcastListParticipant\x12\x0e\n\x06lidJid\x18\x01 \x02(\t\x12\r\n\x05pnJid\x18\x02 \x01(\t\x1a)\n\x17\x42ubbleLockMessageAction\x12\x0e\n\x06locked\x18\x01 \x01(\x08\x1a\x35\n\"BusinessBroadcastAssociationAction\x12\x0f\n\x07\x64\x65leted\x18\x01 \x01(\x08\x1a\x8b\x02\n\x1f\x42usinessBroadcastCampaignAction\x12\x10\n\x08\x64\x65viceId\x18\x01 \x01(\x05\x12\x0c\n\x04\x61\x64Id\x18\x02 \x01(\t\x12\x0c\n\x04name\x18\x03 \x01(\t\x12\r\n\x05msgId\x18\x04 \x01(\t\x12\x14\n\x0c\x62roadcastJid\x18\x05 \x01(\t\x12\x15\n\rreservedQuota\x18\x06 \x01(\x05\x12\x1a\n\x12scheduledTimestamp\x18\x07 \x01(\x03\x12\x17\n\x0f\x63reateTimestamp\x18\x08 \x01(\x03\x12I\n\x06status\x18\t \x01(\x0e\x32\x39.whatsapp.SyncActionValue.BusinessBroadcastCampaignStatus\x1a\x93\x01\n\x1f\x42usinessBroadcastInsightsAction\x12\x16\n\x0erecipientCount\x18\x01 \x01(\x05\x12\x16\n\x0e\x64\x65liveredCount\x18\x02 \x01(\x05\x12\x11\n\treadCount\x18\x03 \x01(\x05\x12\x14\n\x0crepliedCount\x18\x04 \x01(\x05\x12\x17\n\x0fquickReplyCount\x18\x05 \x01(\x05\x1a\xd4\x01\n\x1b\x42usinessBroadcastListAction\x12\x0f\n\x07\x64\x65leted\x18\x01 \x01(\x08\x12H\n\x0cparticipants\x18\x02 \x03(\x0b\x32\x32.whatsapp.SyncActionValue.BroadcastListParticipant\x12\x10\n\x08listName\x18\x03 \x01(\t\x12\x10\n\x08labelIds\x18\x04 \x03(\t\x12\x1a\n\x12\x61udienceExpression\x18\x05 \x01(\t\x12\x1a\n\x12\x63ustomAudienceFbid\x18\x06 \x01(\t\x1a?\n\rCallLogAction\x12.\n\rcallLogRecord\x18\x01 \x01(\x0b\x32\x17.whatsapp.CallLogRecord\x1a-\n\x14\x43hatAssignmentAction\x12\x15\n\rdeviceAgentId\x18\x01 \x01(\t\x1a\x36\n ChatAssignmentOpenedStatusAction\x12\x12\n\nchatOpened\x18\x01 \x01(\x08\x1aY\n\x0f\x43learChatAction\x12\x46\n\x0cmessageRange\x18\x01 \x01(\x0b\x32\x30.whatsapp.SyncActionValue.SyncActionMessageRange\x1a&\n\x13\x43oexV2VersionAction\x12\x0f\n\x07version\x18\x01 \x01(\x04\x1a\x87\x01\n\rContactAction\x12\x10\n\x08\x66ullName\x18\x01 \x01(\t\x12\x11\n\tfirstName\x18\x02 \x01(\t\x12\x0e\n\x06lidJid\x18\x03 \x01(\t\x12 \n\x18saveOnPrimaryAddressbook\x18\x04 \x01(\x08\x12\r\n\x05pnJid\x18\x05 \x01(\t\x12\x10\n\x08username\x18\x06 \x01(\t\x1a:\n\x19\x43twaMessageReceivedAction\x12\x1d\n\x15isCtwaMessageReceived\x18\x01 \x01(\x08\x1aO\n CtwaPerCustomerDataSharingAction\x12+\n#isCtwaPerCustomerDataSharingEnabled\x18\x01 \x01(\x08\x1a\x93\x01\n\x13\x43ustomPaymentMethod\x12\x14\n\x0c\x63redentialId\x18\x01 \x02(\t\x12\x0f\n\x07\x63ountry\x18\x02 \x02(\t\x12\x0c\n\x04type\x18\x03 \x02(\t\x12G\n\x08metadata\x18\x04 \x03(\x0b\x32\x35.whatsapp.SyncActionValue.CustomPaymentMethodMetadata\x1a\x39\n\x1b\x43ustomPaymentMethodMetadata\x12\x0b\n\x03key\x18\x01 \x02(\t\x12\r\n\x05value\x18\x02 \x02(\t\x1ai\n\x1a\x43ustomPaymentMethodsAction\x12K\n\x14\x63ustomPaymentMethods\x18\x01 \x03(\x0b\x32-.whatsapp.SyncActionValue.CustomPaymentMethod\x1a\xed\x01\n\x12\x43ustomerDataAction\x12\x0f\n\x07\x63hatJid\x18\x01 \x01(\t\x12\x13\n\x0b\x63ontactType\x18\x02 \x01(\x05\x12\r\n\x05\x65mail\x18\x03 \x01(\t\x12\x17\n\x0f\x61ltPhoneNumbers\x18\x04 \x01(\t\x12\x10\n\x08\x62irthday\x18\x05 \x01(\x03\x12\x0f\n\x07\x61\x64\x64ress\x18\x06 \x01(\t\x12\x19\n\x11\x61\x63quisitionSource\x18\x07 \x01(\x05\x12\x11\n\tleadStage\x18\x08 \x01(\x05\x12\x11\n\tlastOrder\x18\t \x01(\x03\x12\x11\n\tcreatedAt\x18\n \x01(\x03\x12\x12\n\nmodifiedAt\x18\x0b \x01(\x03\x1aZ\n\x10\x44\x65leteChatAction\x12\x46\n\x0cmessageRange\x18\x01 \x01(\x0b\x32\x30.whatsapp.SyncActionValue.SyncActionMessageRange\x1a\x44\n\x1d\x44\x65leteIndividualCallLogAction\x12\x0f\n\x07peerJid\x18\x01 \x01(\t\x12\x12\n\nisIncoming\x18\x02 \x01(\x08\x1aI\n\x18\x44\x65leteMessageForMeAction\x12\x13\n\x0b\x64\x65leteMedia\x18\x01 \x01(\x08\x12\x18\n\x10messageTimestamp\x18\x02 \x01(\x03\x1a\x31\n\x1c\x44\x65tectedOutcomesStatusAction\x12\x11\n\tisEnabled\x18\x01 \x01(\x08\x1a(\n\x15\x45xternalWebBetaAction\x12\x0f\n\x07isOptIn\x18\x01 \x01(\x08\x1ap\n\x0f\x46\x61voritesAction\x12\x45\n\tfavorites\x18\x01 \x03(\x0b\x32\x32.whatsapp.SyncActionValue.FavoritesAction.Favorite\x1a\x16\n\x08\x46\x61vorite\x12\n\n\x02id\x18\x01 \x01(\t\x1a\xb9\x01\n\x18InteractiveMessageAction\x12]\n\x04type\x18\x01 \x02(\x0e\x32O.whatsapp.SyncActionValue.InteractiveMessageAction.InteractiveMessageActionMode\x12\r\n\x05\x61gmId\x18\x02 \x01(\t\"/\n\x1cInteractiveMessageActionMode\x12\x0f\n\x0b\x44ISABLE_CTA\x10\x01\x1a(\n\rKeyExpiration\x12\x17\n\x0f\x65xpiredKeyEpoch\x18\x01 \x01(\x05\x1a@\n\x16LabelAssociationAction\x12\x0f\n\x07labeled\x18\x01 \x01(\x08\x12\x15\n\rmodelMetaData\x18\x02 \x01(\t\x1a\x81\x04\n\x0fLabelEditAction\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\r\n\x05\x63olor\x18\x02 \x01(\x05\x12\x14\n\x0cpredefinedId\x18\x03 \x01(\x05\x12\x0f\n\x07\x64\x65leted\x18\x04 \x01(\x08\x12\x12\n\norderIndex\x18\x05 \x01(\x05\x12\x10\n\x08isActive\x18\x06 \x01(\x08\x12@\n\x04type\x18\x07 \x01(\x0e\x32\x32.whatsapp.SyncActionValue.LabelEditAction.ListType\x12\x13\n\x0bisImmutable\x18\x08 \x01(\x08\x12\x15\n\rmuteEndTimeMs\x18\t \x01(\x03\"\x95\x02\n\x08ListType\x12\x08\n\x04NONE\x10\x00\x12\n\n\x06UNREAD\x10\x01\x12\n\n\x06GROUPS\x10\x02\x12\r\n\tFAVORITES\x10\x03\x12\x0e\n\nPREDEFINED\x10\x04\x12\n\n\x06\x43USTOM\x10\x05\x12\r\n\tCOMMUNITY\x10\x06\x12\x13\n\x0fSERVER_ASSIGNED\x10\x07\x12\x0b\n\x07\x44RAFTED\x10\x08\x12\x0e\n\nAI_HANDOFF\x10\t\x12\x0c\n\x08\x43HANNELS\x10\n\x12\x11\n\rAI_RESPONDING\x10\x0b\x12\x0c\n\x08\x41RCHIVED\x10\x0c\x12\n\n\x06LOCKED\x10\r\x12\x0b\n\x07INVITES\x10\x0e\x12\x0f\n\x0bTHIRD_PARTY\x10\x0f\x12\x08\n\x04LEAD\x10\x10\x12\x18\n\x14MENTIONS_AND_REPLIES\x10\x11\x1a/\n\x15LabelReorderingAction\x12\x16\n\x0esortedLabelIds\x18\x01 \x03(\x05\x1a\'\n\x12LabelSublistAction\x12\x11\n\tsubListId\x18\x01 \x01(\x05\x1aI\n\x10LidContactAction\x12\x10\n\x08\x66ullName\x18\x01 \x01(\t\x12\x11\n\tfirstName\x18\x02 \x01(\t\x12\x10\n\x08username\x18\x03 \x01(\t\x1a\x1f\n\rLocaleSetting\x12\x0e\n\x06locale\x18\x01 \x01(\t\x1a \n\x0eLockChatAction\x12\x0e\n\x06locked\x18\x01 \x01(\x08\x1a\xed\x02\n\x1cMaibaAIFeaturesControlAction\x12\x64\n\x0f\x61iFeatureStatus\x18\x01 \x01(\x0e\x32K.whatsapp.SyncActionValue.MaibaAIFeaturesControlAction.MaibaAIFeatureStatus\x12\\\n\x0b\x61iReplyMode\x18\x02 \x01(\x0e\x32G.whatsapp.SyncActionValue.MaibaAIFeaturesControlAction.MaibaAIReplyMode\"K\n\x14MaibaAIFeatureStatus\x12\x0b\n\x07\x45NABLED\x10\x00\x12\x18\n\x14\x45NABLED_HAS_LEARNING\x10\x01\x12\x0c\n\x08\x44ISABLED\x10\x02\"<\n\x10MaibaAIReplyMode\x12\t\n\x05MUTED\x10\x00\x12\x0c\n\x08\x41I_AGENT\x10\x01\x12\x0f\n\x0bSUGGESTIONS\x10\x02\x1al\n\x14MarkChatAsReadAction\x12\x0c\n\x04read\x18\x01 \x01(\x08\x12\x46\n\x0cmessageRange\x18\x02 \x01(\x0b\x32\x30.whatsapp.SyncActionValue.SyncActionMessageRange\x1a\x93\x02\n\x16MarketingMessageAction\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x0f\n\x07message\x18\x02 \x01(\t\x12\\\n\x04type\x18\x03 \x01(\x0e\x32N.whatsapp.SyncActionValue.MarketingMessageAction.MarketingMessagePrototypeType\x12\x11\n\tcreatedAt\x18\x04 \x01(\x03\x12\x12\n\nlastSentAt\x18\x05 \x01(\x03\x12\x11\n\tisDeleted\x18\x06 \x01(\x08\x12\x0f\n\x07mediaId\x18\x07 \x01(\t\"1\n\x1dMarketingMessagePrototypeType\x12\x10\n\x0cPERSONALIZED\x10\x00\x1a\x37\n\x1fMarketingMessageBroadcastAction\x12\x14\n\x0crepliedCount\x18\x01 \x01(\x05\x1a\xcd\x01\n\x1cMerchantPaymentPartnerAction\x12M\n\x06status\x18\x01 \x02(\x0e\x32=.whatsapp.SyncActionValue.MerchantPaymentPartnerAction.Status\x12\x0f\n\x07\x63ountry\x18\x02 \x02(\t\x12\x13\n\x0bgatewayName\x18\x03 \x01(\t\x12\x14\n\x0c\x63redentialId\x18\x04 \x01(\t\"\"\n\x06Status\x12\n\n\x06\x41\x43TIVE\x10\x00\x12\x0c\n\x08INACTIVE\x10\x01\x1a\xbb\x01\n\x11MusicUserIdAction\x12\x13\n\x0bmusicUserId\x18\x01 \x01(\t\x12Z\n\x11music_user_id_map\x18\x02 \x03(\x0b\x32?.whatsapp.SyncActionValue.MusicUserIdAction.MusicUserIdMapEntry\x1a\x35\n\x13MusicUserIdMapEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\x1aq\n\nMuteAction\x12\r\n\x05muted\x18\x01 \x01(\x08\x12\x18\n\x10muteEndTimestamp\x18\x02 \x01(\x03\x12\x11\n\tautoMuted\x18\x03 \x01(\x08\x12\'\n\x1fmuteEveryoneMentionEndTimestamp\x18\x04 \x01(\x03\x1a!\n\x11NctSaltSyncAction\x12\x0c\n\x04salt\x18\x01 \x01(\x0c\x1a\x42\n\x1eNewsletterSavedInterestsAction\x12 \n\x18newsletterSavedInterests\x18\x01 \x01(\t\x1a\xd1\x01\n\x0eNoteEditAction\x12?\n\x04type\x18\x01 \x01(\x0e\x32\x31.whatsapp.SyncActionValue.NoteEditAction.NoteType\x12\x0f\n\x07\x63hatJid\x18\x02 \x01(\t\x12\x11\n\tcreatedAt\x18\x03 \x01(\x03\x12\x0f\n\x07\x64\x65leted\x18\x04 \x01(\x08\x12\x1b\n\x13unstructuredContent\x18\x05 \x01(\t\",\n\x08NoteType\x12\x10\n\x0cUNSTRUCTURED\x10\x01\x12\x0e\n\nSTRUCTURED\x10\x02\x1a\x94\x02\n!NotificationActivitySettingAction\x12|\n\x1bnotificationActivitySetting\x18\x01 \x01(\x0e\x32W.whatsapp.SyncActionValue.NotificationActivitySettingAction.NotificationActivitySetting\"q\n\x1bNotificationActivitySetting\x12\x18\n\x14\x44\x45\x46\x41ULT_ALL_MESSAGES\x10\x00\x12\x10\n\x0c\x41LL_MESSAGES\x10\x01\x12\x0e\n\nHIGHLIGHTS\x10\x02\x12\x16\n\x12\x44\x45\x46\x41ULT_HIGHLIGHTS\x10\x03\x1a!\n\tNuxAction\x12\x14\n\x0c\x61\x63knowledged\x18\x01 \x01(\x08\x1a\x37\n\x10OutContactAction\x12\x10\n\x08\x66ullName\x18\x01 \x01(\t\x12\x11\n\tfirstName\x18\x02 \x01(\t\x1a \n\x11PaymentInfoAction\x12\x0b\n\x03\x63pi\x18\x01 \x01(\t\x1a\xa1\x01\n\x10PaymentTosAction\x12O\n\rpaymentNotice\x18\x01 \x02(\x0e\x32\x38.whatsapp.SyncActionValue.PaymentTosAction.PaymentNotice\x12\x10\n\x08\x61\x63\x63\x65pted\x18\x02 \x02(\x08\"*\n\rPaymentNotice\x12\x19\n\x15\x42R_PAY_PRIVACY_POLICY\x10\x00\x1a\x1b\n\tPinAction\x12\x0e\n\x06pinned\x18\x01 \x01(\x08\x1a#\n\x12PnForLidChatAction\x12\r\n\x05pnJid\x18\x01 \x01(\t\x1a\x1f\n\x0ePrimaryFeature\x12\r\n\x05\x66lags\x18\x01 \x03(\t\x1a\'\n\x14PrimaryVersionAction\x12\x0f\n\x07version\x18\x01 \x01(\t\x1aP\n6PrivacySettingChannelsPersonalisedRecommendationAction\x12\x16\n\x0eisUserOptedOut\x18\x01 \x01(\x08\x1a\x45\n\'PrivacySettingDisableLinkPreviewsAction\x12\x1a\n\x12isPreviewsDisabled\x18\x01 \x01(\x08\x1a\x30\n\x1bPrivacySettingRelayAllCalls\x12\x11\n\tisEnabled\x18\x01 \x01(\x08\x1a\xd8\x01\n\x1ePrivateProcessingSettingAction\x12q\n\x17privateProcessingStatus\x18\x01 \x01(\x0e\x32P.whatsapp.SyncActionValue.PrivateProcessingSettingAction.PrivateProcessingStatus\"C\n\x17PrivateProcessingStatus\x12\r\n\tUNDEFINED\x10\x00\x12\x0b\n\x07\x45NABLED\x10\x01\x12\x0c\n\x08\x44ISABLED\x10\x02\x1a\x1f\n\x0fPushNameSetting\x12\x0c\n\x04name\x18\x01 \x01(\t\x1a\x83\x01\n\x10QuickReplyAction\x12\x10\n\x08shortcut\x18\x01 \x01(\t\x12\x0f\n\x07message\x18\x02 \x01(\t\x12\x10\n\x08keywords\x18\x03 \x03(\t\x12\r\n\x05\x63ount\x18\x04 \x01(\x05\x12\x0f\n\x07\x64\x65leted\x18\x05 \x01(\x08\x12\x1a\n\x12\x61ssociatedLabelIds\x18\x06 \x03(\t\x1aH\n\x18RecentEmojiWeightsAction\x12,\n\x07weights\x18\x01 \x03(\x0b\x32\x1b.whatsapp.RecentEmojiWeight\x1a\x36\n\x19RemoveRecentStickerAction\x12\x19\n\x11lastStickerSentTs\x18\x01 \x01(\x03\x1a\xfb\x14\n\x12SettingsSyncAction\x12\x14\n\x0cstartAtLogin\x18\x01 \x01(\x08\x12\x16\n\x0eminimizeToTray\x18\x02 \x01(\x08\x12\x10\n\x08language\x18\x03 \x01(\t\x12\x1c\n\x14replaceTextWithEmoji\x18\x04 \x01(\x08\x12_\n\x1d\x62\x61nnerNotificationDisplayMode\x18\x05 \x01(\x0e\x32\x38.whatsapp.SyncActionValue.SettingsSyncAction.DisplayMode\x12_\n\x1dunreadCounterBadgeDisplayMode\x18\x06 \x01(\x0e\x32\x38.whatsapp.SyncActionValue.SettingsSyncAction.DisplayMode\x12%\n\x1disMessagesNotificationEnabled\x18\x07 \x01(\x08\x12\"\n\x1aisCallsNotificationEnabled\x18\x08 \x01(\x08\x12&\n\x1eisReactionsNotificationEnabled\x18\t \x01(\x08\x12,\n$isStatusReactionsNotificationEnabled\x18\n \x01(\x08\x12+\n#isTextPreviewForNotificationEnabled\x18\x0b \x01(\x08\x12!\n\x19\x64\x65\x66\x61ultNotificationToneId\x18\x0c \x01(\x05\x12&\n\x1egroupDefaultNotificationToneId\x18\r \x01(\x05\x12\x10\n\x08\x61ppTheme\x18\x0e \x01(\x05\x12\x13\n\x0bwallpaperId\x18\x0f \x01(\x05\x12 \n\x18isDoodleWallpaperEnabled\x18\x10 \x01(\x08\x12\x10\n\x08\x66ontSize\x18\x11 \x01(\x05\x12#\n\x1bisPhotosAutodownloadEnabled\x18\x12 \x01(\x08\x12#\n\x1bisAudiosAutodownloadEnabled\x18\x13 \x01(\x08\x12#\n\x1bisVideosAutodownloadEnabled\x18\x14 \x01(\x08\x12&\n\x1eisDocumentsAutodownloadEnabled\x18\x15 \x01(\x08\x12\x1b\n\x13\x64isableLinkPreviews\x18\x16 \x01(\x08\x12\x1a\n\x12notificationToneId\x18\x17 \x01(\x05\x12\\\n\x12mediaUploadQuality\x18\x18 \x01(\x0e\x32@.whatsapp.SyncActionValue.SettingsSyncAction.MediaQualitySetting\x12\x1b\n\x13isSpellCheckEnabled\x18\x19 \x01(\x08\x12\x1c\n\x14isEnterToSendEnabled\x18\x1a \x01(\x08\x12)\n!isGroupMessageNotificationEnabled\x18\x1b \x01(\x08\x12+\n#isGroupReactionsNotificationEnabled\x18\x1c \x01(\x08\x12#\n\x1bisStatusNotificationEnabled\x18\x1d \x01(\x08\x12 \n\x18statusNotificationToneId\x18\x1e \x01(\x05\x12*\n\"shouldPlaySoundForCallNotification\x18\x1f \x01(\x08\x12\x13\n\x0b\x63hatThemeId\x18 \x01(\t\x12\x15\n\rcolorSchemeId\x18! \x01(\t\x12\x1d\n\x15stockWallpaperImageId\x18\" \x01(\t\"Y\n\x0b\x44isplayMode\x12\x18\n\x14\x44ISPLAY_MODE_UNKNOWN\x10\x00\x12\n\n\x06\x41LWAYS\x10\x01\x12\t\n\x05NEVER\x10\x02\x12\x19\n\x15ONLY_WHEN_APP_IS_OPEN\x10\x03\"F\n\x13MediaQualitySetting\x12\x19\n\x15MEDIA_QUALITY_UNKNOWN\x10\x00\x12\x0c\n\x08STANDARD\x10\x01\x12\x06\n\x02HD\x10\x02\"\xda\x08\n\nSettingKey\x12\x17\n\x13SETTING_KEY_UNKNOWN\x10\x00\x12\x12\n\x0eSTART_AT_LOGIN\x10\x01\x12\x14\n\x10MINIMIZE_TO_TRAY\x10\x02\x12\x0c\n\x08LANGUAGE\x10\x03\x12\x1b\n\x17REPLACE_TEXT_WITH_EMOJI\x10\x04\x12$\n BANNER_NOTIFICATION_DISPLAY_MODE\x10\x05\x12%\n!UNREAD_COUNTER_BADGE_DISPLAY_MODE\x10\x06\x12$\n IS_MESSAGES_NOTIFICATION_ENABLED\x10\x07\x12!\n\x1dIS_CALLS_NOTIFICATION_ENABLED\x10\x08\x12%\n!IS_REACTIONS_NOTIFICATION_ENABLED\x10\t\x12,\n(IS_STATUS_REACTIONS_NOTIFICATION_ENABLED\x10\n\x12,\n(IS_TEXT_PREVIEW_FOR_NOTIFICATION_ENABLED\x10\x0b\x12 \n\x1c\x44\x45\x46\x41ULT_NOTIFICATION_TONE_ID\x10\x0c\x12&\n\"GROUP_DEFAULT_NOTIFICATION_TONE_ID\x10\r\x12\r\n\tAPP_THEME\x10\x0e\x12\x10\n\x0cWALLPAPER_ID\x10\x0f\x12\x1f\n\x1bIS_DOODLE_WALLPAPER_ENABLED\x10\x10\x12\r\n\tFONT_SIZE\x10\x11\x12\"\n\x1eIS_PHOTOS_AUTODOWNLOAD_ENABLED\x10\x12\x12\"\n\x1eIS_AUDIOS_AUTODOWNLOAD_ENABLED\x10\x13\x12\"\n\x1eIS_VIDEOS_AUTODOWNLOAD_ENABLED\x10\x14\x12%\n!IS_DOCUMENTS_AUTODOWNLOAD_ENABLED\x10\x15\x12\x19\n\x15\x44ISABLE_LINK_PREVIEWS\x10\x16\x12\x18\n\x14NOTIFICATION_TONE_ID\x10\x17\x12\x18\n\x14MEDIA_UPLOAD_QUALITY\x10\x18\x12\x1a\n\x16IS_SPELL_CHECK_ENABLED\x10\x19\x12\x1c\n\x18IS_ENTER_TO_SEND_ENABLED\x10\x1a\x12)\n%IS_GROUP_MESSAGE_NOTIFICATION_ENABLED\x10\x1b\x12+\n\'IS_GROUP_REACTIONS_NOTIFICATION_ENABLED\x10\x1c\x12\"\n\x1eIS_STATUS_NOTIFICATION_ENABLED\x10\x1d\x12\x1f\n\x1bSTATUS_NOTIFICATION_TONE_ID\x10\x1e\x12+\n\'SHOULD_PLAY_SOUND_FOR_CALL_NOTIFICATION\x10\x1f\x12\x11\n\rCHAT_THEME_ID\x10 \x12\x13\n\x0f\x43OLOR_SCHEME_ID\x10!\x12\x1c\n\x18STOCK_WALLPAPER_IMAGE_ID\x10\"\"R\n\x0fSettingPlatform\x12\x14\n\x10PLATFORM_UNKNOWN\x10\x00\x12\x07\n\x03WEB\x10\x01\x12\n\n\x06HYBRID\x10\x02\x12\x0b\n\x07WINDOWS\x10\x03\x12\x07\n\x03MAC\x10\x04\x1a\x1d\n\nStarAction\x12\x0f\n\x07starred\x18\x01 \x01(\x08\x1a?\n,StatusPostOptInNotificationPreferencesAction\x12\x0f\n\x07\x65nabled\x18\x01 \x01(\x08\x1a\x8f\x04\n\x13StatusPrivacyAction\x12R\n\x04mode\x18\x01 \x01(\x0e\x32\x44.whatsapp.SyncActionValue.StatusPrivacyAction.StatusDistributionMode\x12\x0f\n\x07userJid\x18\x02 \x03(\t\x12\x11\n\tshareToFb\x18\x03 \x01(\x08\x12\x11\n\tshareToIg\x18\x04 \x01(\x08\x12M\n\x0b\x63ustomLists\x18\x05 \x03(\x0b\x32\x38.whatsapp.SyncActionValue.StatusPrivacyAction.CustomList\x12S\n\x05modes\x18\x06 \x03(\x0e\x32\x44.whatsapp.SyncActionValue.StatusPrivacyAction.StatusDistributionMode\x1a^\n\nCustomList\x12\x0e\n\x06listId\x18\x01 \x01(\t\x12\x0c\n\x04name\x18\x02 \x01(\t\x12\r\n\x05\x65moji\x18\x03 \x01(\t\x12\x12\n\nisSelected\x18\x04 \x01(\x08\x12\x0f\n\x07userJid\x18\x05 \x03(\t\"i\n\x16StatusDistributionMode\x12\x0e\n\nALLOW_LIST\x10\x00\x12\r\n\tDENY_LIST\x10\x01\x12\x0c\n\x08\x43ONTACTS\x10\x02\x12\x11\n\rCLOSE_FRIENDS\x10\x03\x12\x0f\n\x0b\x43USTOM_LIST\x10\x04\x1a\x86\x02\n\rStickerAction\x12\x0b\n\x03url\x18\x01 \x01(\t\x12\x15\n\rfileEncSha256\x18\x02 \x01(\x0c\x12\x10\n\x08mediaKey\x18\x03 \x01(\x0c\x12\x10\n\x08mimetype\x18\x04 \x01(\t\x12\x0e\n\x06height\x18\x05 \x01(\r\x12\r\n\x05width\x18\x06 \x01(\r\x12\x12\n\ndirectPath\x18\x07 \x01(\t\x12\x12\n\nfileLength\x18\x08 \x01(\x04\x12\x12\n\nisFavorite\x18\t \x01(\x08\x12\x14\n\x0c\x64\x65viceIdHint\x18\n \x01(\r\x12\x10\n\x08isLottie\x18\x0b \x01(\x08\x12\x11\n\timageHash\x18\x0c \x01(\t\x12\x17\n\x0fisAvatarSticker\x18\r \x01(\x08\x1a[\n\x12SubscriptionAction\x12\x15\n\risDeactivated\x18\x01 \x01(\x08\x12\x16\n\x0eisAutoRenewing\x18\x02 \x01(\x08\x12\x16\n\x0e\x65xpirationDate\x18\x03 \x01(\x03\x1a\xc7\x03\n\x19SubscriptionsSyncV2Action\x12[\n\rsubscriptions\x18\x01 \x03(\x0b\x32\x44.whatsapp.SyncActionValue.SubscriptionsSyncV2Action.SubscriptionInfo\x12T\n\x0bpaidFeature\x18\x02 \x03(\x0b\x32?.whatsapp.SyncActionValue.SubscriptionsSyncV2Action.PaidFeature\x1aS\n\x0bPaidFeature\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x0f\n\x07\x65nabled\x18\x02 \x01(\x08\x12\r\n\x05limit\x18\x03 \x01(\x05\x12\x16\n\x0e\x65xpirationTime\x18\x04 \x01(\x03\x1a\xa1\x01\n\x10SubscriptionInfo\x12\n\n\x02id\x18\x01 \x01(\t\x12\x0c\n\x04tier\x18\x02 \x01(\x05\x12\x0e\n\x06status\x18\x03 \x01(\t\x12\x11\n\tstartTime\x18\x04 \x01(\x03\x12\x0f\n\x07\x65ndTime\x18\x05 \x01(\x03\x12\x19\n\x11isPlatformChanged\x18\x06 \x01(\x08\x12\x0e\n\x06source\x18\x07 \x01(\t\x12\x14\n\x0c\x63reationTime\x18\x08 \x01(\x03\x1aI\n\x11SyncActionMessage\x12!\n\x03key\x18\x01 \x01(\x0b\x32\x14.whatsapp.MessageKey\x12\x11\n\ttimestamp\x18\x02 \x01(\x03\x1a\x99\x01\n\x16SyncActionMessageRange\x12\x1c\n\x14lastMessageTimestamp\x18\x01 \x01(\x03\x12\"\n\x1alastSystemMessageTimestamp\x18\x02 \x01(\x03\x12=\n\x08messages\x18\x03 \x03(\x0b\x32+.whatsapp.SyncActionValue.SyncActionMessage\x1a!\n\x0fThreadPinAction\x12\x0e\n\x06pinned\x18\x01 \x01(\x08\x1a\x39\n\x10TimeFormatAction\x12%\n\x1disTwentyFourHourFormatEnabled\x18\x01 \x01(\x08\x1a\x1c\n\x06UGCBot\x12\x12\n\ndefinition\x18\x01 \x01(\x0c\x1a/\n\x15UnarchiveChatsSetting\x12\x16\n\x0eunarchiveChats\x18\x01 \x01(\x08\x1a%\n\x14UserStatusMuteAction\x12\r\n\x05muted\x18\x01 \x01(\x08\x1a\x9b\x01\n\x1bUsernameChatStartModeAction\x12Z\n\rchatStartMode\x18\x01 \x01(\x0e\x32\x43.whatsapp.SyncActionValue.UsernameChatStartModeAction.ChatStartMode\" \n\rChatStartMode\x12\x07\n\x03LID\x10\x01\x12\x06\n\x02PN\x10\x02\x1a\xa5\x02\n\x14WASARootSecretAction\x12O\n\x07secrets\x18\x01 \x03(\x0b\x32>.whatsapp.SyncActionValue.WASARootSecretAction.RootSecretEntry\x1a\xbb\x01\n\x0fRootSecretEntry\x12\n\n\x02id\x18\x01 \x01(\t\x12\x12\n\nrootSecret\x18\x02 \x01(\x0c\x12\r\n\x05\x65poch\x18\x03 \x01(\x03\x12U\n\x06status\x18\x04 \x01(\x0e\x32\x45.whatsapp.SyncActionValue.WASARootSecretAction.RootSecretEntry.Status\"\"\n\x06Status\x12\x0c\n\x08INACTIVE\x10\x00\x12\n\n\x06\x41\x43TIVE\x10\x01\x1a\xb4\x01\n\x1cWaffleAccountLinkStateAction\x12Z\n\tlinkState\x18\x02 \x01(\x0e\x32G.whatsapp.SyncActionValue.WaffleAccountLinkStateAction.AccountLinkState\"8\n\x10\x41\x63\x63ountLinkState\x12\n\n\x06\x41\x43TIVE\x10\x00\x12\n\n\x06PAUSED\x10\x01\x12\x0c\n\x08UNLINKED\x10\x02\x1a.\n\x18WamoUserIdentifierAction\x12\x12\n\nidentifier\x18\x01 \x01(\t\"a\n\x1f\x42usinessBroadcastCampaignStatus\x12\t\n\x05\x44RAFT\x10\x01\x12\r\n\tSCHEDULED\x10\x02\x12\x0e\n\nPROCESSING\x10\x03\x12\n\n\x06\x46\x41ILED\x10\x04\x12\x08\n\x04SENT\x10\x05\"\x1a\n\nSyncdIndex\x12\x0c\n\x04\x62lob\x18\x01 \x01(\x0c\"\x98\x01\n\rSyncdMutation\x12\x39\n\toperation\x18\x01 \x01(\x0e\x32&.whatsapp.SyncdMutation.SyncdOperation\x12%\n\x06record\x18\x02 \x01(\x0b\x32\x15.whatsapp.SyncdRecord\"%\n\x0eSyncdOperation\x12\x07\n\x03SET\x10\x00\x12\n\n\x06REMOVE\x10\x01\"<\n\x0eSyncdMutations\x12*\n\tmutations\x18\x01 \x03(\x0b\x32\x17.whatsapp.SyncdMutation\"\xb8\x02\n\nSyncdPatch\x12\'\n\x07version\x18\x01 \x01(\x0b\x32\x16.whatsapp.SyncdVersion\x12*\n\tmutations\x18\x02 \x03(\x0b\x32\x17.whatsapp.SyncdMutation\x12:\n\x11\x65xternalMutations\x18\x03 \x01(\x0b\x32\x1f.whatsapp.ExternalBlobReference\x12\x13\n\x0bsnapshotMac\x18\x04 \x01(\x0c\x12\x10\n\x08patchMac\x18\x05 \x01(\x0c\x12\x1e\n\x05keyId\x18\x06 \x01(\x0b\x32\x0f.whatsapp.KeyId\x12$\n\x08\x65xitCode\x18\x07 \x01(\x0b\x32\x12.whatsapp.ExitCode\x12\x13\n\x0b\x64\x65viceIndex\x18\x08 \x01(\r\x12\x17\n\x0f\x63lientDebugData\x18\t \x01(\x0c\"[\n\x14SyncdPlainTextRecord\x12\'\n\x05value\x18\x01 \x01(\x0b\x32\x18.whatsapp.SyncActionData\x12\r\n\x05keyId\x18\x02 \x01(\x0c\x12\x0b\n\x03mac\x18\x03 \x01(\x0c\"w\n\x0bSyncdRecord\x12#\n\x05index\x18\x01 \x01(\x0b\x32\x14.whatsapp.SyncdIndex\x12#\n\x05value\x18\x02 \x01(\x0b\x32\x14.whatsapp.SyncdValue\x12\x1e\n\x05keyId\x18\x03 \x01(\x0b\x32\x0f.whatsapp.KeyId\"\x8d\x01\n\rSyncdSnapshot\x12\'\n\x07version\x18\x01 \x01(\x0b\x32\x16.whatsapp.SyncdVersion\x12&\n\x07records\x18\x02 \x03(\x0b\x32\x15.whatsapp.SyncdRecord\x12\x0b\n\x03mac\x18\x03 \x01(\x0c\x12\x1e\n\x05keyId\x18\x04 \x01(\x0b\x32\x0f.whatsapp.KeyId\"\xab\x01\n\x15SyncdSnapshotRecovery\x12\'\n\x07version\x18\x01 \x01(\x0b\x32\x16.whatsapp.SyncdVersion\x12\x16\n\x0e\x63ollectionName\x18\x02 \x01(\t\x12\x37\n\x0fmutationRecords\x18\x03 \x03(\x0b\x32\x1e.whatsapp.SyncdPlainTextRecord\x12\x18\n\x10\x63ollectionLthash\x18\x04 \x01(\x0c\"\x1a\n\nSyncdValue\x12\x0c\n\x04\x62lob\x18\x01 \x01(\x0c\"\x1f\n\x0cSyncdVersion\x12\x0f\n\x07version\x18\x01 \x01(\x04\".\n\rTapLinkAction\x12\r\n\x05title\x18\x01 \x01(\t\x12\x0e\n\x06tapUrl\x18\x02 \x01(\t\"\xd9\x04\n\x0eTemplateButton\x12\r\n\x05index\x18\x04 \x01(\r\x12\x45\n\x10quickReplyButton\x18\x01 \x01(\x0b\x32).whatsapp.TemplateButton.QuickReplyButtonH\x00\x12\x37\n\turlButton\x18\x02 \x01(\x0b\x32\".whatsapp.TemplateButton.URLButtonH\x00\x12\x39\n\ncallButton\x18\x03 \x01(\x0b\x32#.whatsapp.TemplateButton.CallButtonH\x00\x1a\x8c\x01\n\nCallButton\x12>\n\x0b\x64isplayText\x18\x01 \x01(\x0b\x32).whatsapp.Message.HighlyStructuredMessage\x12>\n\x0bphoneNumber\x18\x02 \x01(\x0b\x32).whatsapp.Message.HighlyStructuredMessage\x1a^\n\x10QuickReplyButton\x12>\n\x0b\x64isplayText\x18\x01 \x01(\x0b\x32).whatsapp.Message.HighlyStructuredMessage\x12\n\n\x02id\x18\x02 \x01(\t\x1a\x83\x01\n\tURLButton\x12>\n\x0b\x64isplayText\x18\x01 \x01(\x0b\x32).whatsapp.Message.HighlyStructuredMessage\x12\x36\n\x03url\x18\x02 \x01(\x0b\x32).whatsapp.Message.HighlyStructuredMessageB\x08\n\x06\x62utton\"\xa2\x01\n\x08ThreadID\x12\x31\n\nthreadType\x18\x01 \x01(\x0e\x32\x1d.whatsapp.ThreadID.ThreadType\x12\'\n\tthreadKey\x18\x02 \x01(\x0b\x32\x14.whatsapp.MessageKey\":\n\nThreadType\x12\x0b\n\x07UNKNOWN\x10\x00\x12\x10\n\x0cVIEW_REPLIES\x10\x01\x12\r\n\tAI_THREAD\x10\x02\"\xc0\x01\n\x1eUnCountedAssociatedMessageList\x12*\n\x08messages\x18\x01 \x03(\x0b\x32\x18.whatsapp.WebMessageInfo\x12+\n\rparentMessage\x18\x02 \x01(\x0b\x32\x14.whatsapp.MessageKey\x12\x45\n\x0f\x61ssociationType\x18\x03 \x01(\x0e\x32,.whatsapp.MessageAssociation.AssociationType\"\x99\x01\n.UnCountedAssociatedMessageListWithMessageBytes\x12:\n\x08messages\x18\x01 \x03(\x0b\x32(.whatsapp.WebMessageInfoWithMessageBytes\x12+\n\rparentMessage\x18\x02 \x01(\x0b\x32\x14.whatsapp.MessageKey\"\xd9\x01\n\x0eUrlTrackingMap\x12N\n\x16urlTrackingMapElements\x18\x01 \x03(\x0b\x32..whatsapp.UrlTrackingMap.UrlTrackingMapElement\x1aw\n\x15UrlTrackingMapElement\x12\x13\n\x0boriginalUrl\x18\x01 \x01(\t\x12\x1b\n\x13unconsentedUsersUrl\x18\x02 \x01(\t\x12\x19\n\x11\x63onsentedUsersUrl\x18\x03 \x01(\t\x12\x11\n\tcardIndex\x18\x04 \x01(\r\"\xdf\x03\n\x0cUserPassword\x12\x31\n\x08\x65ncoding\x18\x01 \x01(\x0e\x32\x1f.whatsapp.UserPassword.Encoding\x12\x37\n\x0btransformer\x18\x02 \x01(\x0e\x32\".whatsapp.UserPassword.Transformer\x12=\n\x0etransformerArg\x18\x03 \x03(\x0b\x32%.whatsapp.UserPassword.TransformerArg\x12\x17\n\x0ftransformedData\x18\x04 \x01(\x0c\x1a\x9a\x01\n\x0eTransformerArg\x12\x0b\n\x03key\x18\x01 \x01(\t\x12:\n\x05value\x18\x02 \x01(\x0b\x32+.whatsapp.UserPassword.TransformerArg.Value\x1a?\n\x05Value\x12\x10\n\x06\x61sBlob\x18\x01 \x01(\x0cH\x00\x12\x1b\n\x11\x61sUnsignedInteger\x18\x02 \x01(\rH\x00\x42\x07\n\x05value\"%\n\x08\x45ncoding\x12\x08\n\x04UTF8\x10\x00\x12\x0f\n\x0bUTF8_BROKEN\x10\x01\"G\n\x0bTransformer\x12\x08\n\x04NONE\x10\x00\x12\x16\n\x12PBKDF2_HMAC_SHA512\x10\x01\x12\x16\n\x12PBKDF2_HMAC_SHA384\x10\x02\"\x9e\x01\n\x0bUserReceipt\x12\x0f\n\x07userJid\x18\x01 \x02(\t\x12\x18\n\x10receiptTimestamp\x18\x02 \x01(\x03\x12\x15\n\rreadTimestamp\x18\x03 \x01(\x03\x12\x17\n\x0fplayedTimestamp\x18\x04 \x01(\x03\x12\x18\n\x10pendingDeviceJid\x18\x05 \x03(\t\x12\x1a\n\x12\x64\x65liveredDeviceJid\x18\x06 \x03(\t\"\xdc\x01\n\x17VerifiedNameCertificate\x12\x0f\n\x07\x64\x65tails\x18\x01 \x01(\x0c\x12\x11\n\tsignature\x18\x02 \x01(\x0c\x12\x17\n\x0fserverSignature\x18\x03 \x01(\x0c\x1a\x83\x01\n\x07\x44\x65tails\x12\x0e\n\x06serial\x18\x01 \x01(\x04\x12\x0e\n\x06issuer\x18\x02 \x01(\t\x12\x14\n\x0cverifiedName\x18\x04 \x01(\t\x12/\n\x0elocalizedNames\x18\x08 \x03(\x0b\x32\x17.whatsapp.LocalizedName\x12\x11\n\tissueTime\x18\n \x01(\x04\"\xf7\x01\n\x13VirtualDeviceOutput\x12\x0c\n\x04vdId\x18\x01 \x02(\x0c\x12\x13\n\x0bvdPublicKey\x18\x02 \x02(\x0c\x12\x1f\n\x17vdEpochStoragePublicKey\x18\x03 \x02(\x0c\x12\"\n\x1avdEpochStoragePublicKeySig\x18\x04 \x02(\x0c\x12\x19\n\x11ocmfRotationToken\x18\x05 \x02(\x0c\x12\x17\n\x0f\x64\x65viceEpochHmac\x18\x06 \x02(\x0c\x12\x44\n\x15\x65ncryptedSecretValues\x18\x07 \x02(\x0b\x32%.whatsapp.EncryptedSecretValuesOutput\"G\n\x11WallpaperSettings\x12\x10\n\x08\x66ilename\x18\x01 \x01(\t\x12\x0f\n\x07opacity\x18\x02 \x01(\r\x12\x0f\n\x07isGenAi\x18\x03 \x01(\x08\"\xe2\x13\n\x0bWebFeatures\x12\x31\n\rlabelsDisplay\x18\x01 \x01(\x0e\x32\x1a.whatsapp.WebFeatures.Flag\x12:\n\x16voipIndividualOutgoing\x18\x02 \x01(\x0e\x32\x1a.whatsapp.WebFeatures.Flag\x12,\n\x08groupsV3\x18\x03 \x01(\x0e\x32\x1a.whatsapp.WebFeatures.Flag\x12\x32\n\x0egroupsV3Create\x18\x04 \x01(\x0e\x32\x1a.whatsapp.WebFeatures.Flag\x12\x32\n\x0e\x63hangeNumberV2\x18\x05 \x01(\x0e\x32\x1a.whatsapp.WebFeatures.Flag\x12:\n\x16queryStatusV3Thumbnail\x18\x06 \x01(\x0e\x32\x1a.whatsapp.WebFeatures.Flag\x12\x31\n\rliveLocations\x18\x07 \x01(\x0e\x32\x1a.whatsapp.WebFeatures.Flag\x12.\n\nqueryVname\x18\x08 \x01(\x0e\x32\x1a.whatsapp.WebFeatures.Flag\x12:\n\x16voipIndividualIncoming\x18\t \x01(\x0e\x32\x1a.whatsapp.WebFeatures.Flag\x12\x35\n\x11quickRepliesQuery\x18\n \x01(\x0e\x32\x1a.whatsapp.WebFeatures.Flag\x12,\n\x08payments\x18\x0b \x01(\x0e\x32\x1a.whatsapp.WebFeatures.Flag\x12\x34\n\x10stickerPackQuery\x18\x0c \x01(\x0e\x32\x1a.whatsapp.WebFeatures.Flag\x12\x36\n\x12liveLocationsFinal\x18\r \x01(\x0e\x32\x1a.whatsapp.WebFeatures.Flag\x12.\n\nlabelsEdit\x18\x0e \x01(\x0e\x32\x1a.whatsapp.WebFeatures.Flag\x12/\n\x0bmediaUpload\x18\x0f \x01(\x0e\x32\x1a.whatsapp.WebFeatures.Flag\x12?\n\x1bmediaUploadRichQuickReplies\x18\x12 \x01(\x0e\x32\x1a.whatsapp.WebFeatures.Flag\x12+\n\x07vnameV2\x18\x13 \x01(\x0e\x32\x1a.whatsapp.WebFeatures.Flag\x12\x34\n\x10videoPlaybackUrl\x18\x14 \x01(\x0e\x32\x1a.whatsapp.WebFeatures.Flag\x12\x31\n\rstatusRanking\x18\x15 \x01(\x0e\x32\x1a.whatsapp.WebFeatures.Flag\x12\x37\n\x13voipIndividualVideo\x18\x16 \x01(\x0e\x32\x1a.whatsapp.WebFeatures.Flag\x12\x36\n\x12thirdPartyStickers\x18\x17 \x01(\x0e\x32\x1a.whatsapp.WebFeatures.Flag\x12>\n\x1a\x66requentlyForwardedSetting\x18\x18 \x01(\x0e\x32\x1a.whatsapp.WebFeatures.Flag\x12:\n\x16groupsV4JoinPermission\x18\x19 \x01(\x0e\x32\x1a.whatsapp.WebFeatures.Flag\x12\x32\n\x0erecentStickers\x18\x1a \x01(\x0e\x32\x1a.whatsapp.WebFeatures.Flag\x12+\n\x07\x63\x61talog\x18\x1b \x01(\x0e\x32\x1a.whatsapp.WebFeatures.Flag\x12\x33\n\x0fstarredStickers\x18\x1c \x01(\x0e\x32\x1a.whatsapp.WebFeatures.Flag\x12\x31\n\rvoipGroupCall\x18\x1d \x01(\x0e\x32\x1a.whatsapp.WebFeatures.Flag\x12\x33\n\x0ftemplateMessage\x18\x1e \x01(\x0e\x32\x1a.whatsapp.WebFeatures.Flag\x12@\n\x1ctemplateMessageInteractivity\x18\x1f \x01(\x0e\x32\x1a.whatsapp.WebFeatures.Flag\x12\x35\n\x11\x65phemeralMessages\x18 \x01(\x0e\x32\x1a.whatsapp.WebFeatures.Flag\x12\x37\n\x13\x65\x32\x45NotificationSync\x18! \x01(\x0e\x32\x1a.whatsapp.WebFeatures.Flag\x12\x34\n\x10recentStickersV2\x18\" \x01(\x0e\x32\x1a.whatsapp.WebFeatures.Flag\x12\x34\n\x10recentStickersV3\x18$ \x01(\x0e\x32\x1a.whatsapp.WebFeatures.Flag\x12.\n\nuserNotice\x18% \x01(\x0e\x32\x1a.whatsapp.WebFeatures.Flag\x12+\n\x07support\x18\' \x01(\x0e\x32\x1a.whatsapp.WebFeatures.Flag\x12\x33\n\x0fgroupUiiCleanup\x18( \x01(\x0e\x32\x1a.whatsapp.WebFeatures.Flag\x12?\n\x1bgroupDogfoodingInternalOnly\x18) \x01(\x0e\x32\x1a.whatsapp.WebFeatures.Flag\x12\x30\n\x0csettingsSync\x18* \x01(\x0e\x32\x1a.whatsapp.WebFeatures.Flag\x12-\n\tarchiveV2\x18+ \x01(\x0e\x32\x1a.whatsapp.WebFeatures.Flag\x12>\n\x1a\x65phemeralAllowGroupMembers\x18, \x01(\x0e\x32\x1a.whatsapp.WebFeatures.Flag\x12\x38\n\x14\x65phemeral24HDuration\x18- \x01(\x0e\x32\x1a.whatsapp.WebFeatures.Flag\x12\x32\n\x0emdForceUpgrade\x18. \x01(\x0e\x32\x1a.whatsapp.WebFeatures.Flag\x12\x34\n\x10\x64isappearingMode\x18/ \x01(\x0e\x32\x1a.whatsapp.WebFeatures.Flag\x12<\n\x18\x65xternalMdOptInAvailable\x18\x30 \x01(\x0e\x32\x1a.whatsapp.WebFeatures.Flag\x12<\n\x18noDeleteMessageTimeLimit\x18\x31 \x01(\x0e\x32\x1a.whatsapp.WebFeatures.Flag\"K\n\x04\x46lag\x12\x0f\n\x0bNOT_STARTED\x10\x00\x12\x11\n\rFORCE_UPGRADE\x10\x01\x12\x0f\n\x0b\x44\x45VELOPMENT\x10\x02\x12\x0e\n\nPRODUCTION\x10\x03\"\xccS\n\x0eWebMessageInfo\x12!\n\x03key\x18\x01 \x02(\x0b\x32\x14.whatsapp.MessageKey\x12\"\n\x07message\x18\x02 \x01(\x0b\x32\x11.whatsapp.Message\x12\x18\n\x10messageTimestamp\x18\x03 \x01(\x04\x12\x38\n\x06status\x18\x04 \x01(\x0e\x32\x1f.whatsapp.WebMessageInfo.Status:\x07PENDING\x12\x13\n\x0bparticipant\x18\x05 \x01(\t\x12\x1b\n\x13messageC2STimestamp\x18\x06 \x01(\x04\x12\x0e\n\x06ignore\x18\x10 \x01(\x08\x12\x0f\n\x07starred\x18\x11 \x01(\x08\x12\x11\n\tbroadcast\x18\x12 \x01(\x08\x12\x10\n\x08pushName\x18\x13 \x01(\t\x12\x1d\n\x15mediaCiphertextSha256\x18\x14 \x01(\x0c\x12\x11\n\tmulticast\x18\x15 \x01(\x08\x12\x0f\n\x07urlText\x18\x16 \x01(\x08\x12\x11\n\turlNumber\x18\x17 \x01(\x08\x12:\n\x0fmessageStubType\x18\x18 \x01(\x0e\x32!.whatsapp.WebMessageInfo.StubType\x12\x12\n\nclearMedia\x18\x19 \x01(\x08\x12\x1d\n\x15messageStubParameters\x18\x1a \x03(\t\x12\x10\n\x08\x64uration\x18\x1b \x01(\r\x12\x0e\n\x06labels\x18\x1c \x03(\t\x12*\n\x0bpaymentInfo\x18\x1d \x01(\x0b\x32\x15.whatsapp.PaymentInfo\x12@\n\x11\x66inalLiveLocation\x18\x1e \x01(\x0b\x32%.whatsapp.Message.LiveLocationMessage\x12\x30\n\x11quotedPaymentInfo\x18\x1f \x01(\x0b\x32\x15.whatsapp.PaymentInfo\x12\x1f\n\x17\x65phemeralStartTimestamp\x18 \x01(\x04\x12\x19\n\x11\x65phemeralDuration\x18! \x01(\r\x12\x18\n\x10\x65phemeralOffToOn\x18\" \x01(\x08\x12\x1a\n\x12\x65phemeralOutOfSync\x18# \x01(\x08\x12\x43\n\x10\x62izPrivacyStatus\x18$ \x01(\x0e\x32).whatsapp.WebMessageInfo.BizPrivacyStatus\x12\x17\n\x0fverifiedBizName\x18% \x01(\t\x12&\n\tmediaData\x18& \x01(\x0b\x32\x13.whatsapp.MediaData\x12*\n\x0bphotoChange\x18\' \x01(\x0b\x32\x15.whatsapp.PhotoChange\x12*\n\x0buserReceipt\x18( \x03(\x0b\x32\x15.whatsapp.UserReceipt\x12%\n\treactions\x18) \x03(\x0b\x32\x12.whatsapp.Reaction\x12.\n\x11quotedStickerData\x18* \x01(\x0b\x32\x13.whatsapp.MediaData\x12\x17\n\x0f\x66utureproofData\x18+ \x01(\x0c\x12&\n\tstatusPsa\x18, \x01(\x0b\x32\x13.whatsapp.StatusPSA\x12)\n\x0bpollUpdates\x18- \x03(\x0b\x32\x14.whatsapp.PollUpdate\x12@\n\x16pollAdditionalMetadata\x18. \x01(\x0b\x32 .whatsapp.PollAdditionalMetadata\x12\x0f\n\x07\x61gentId\x18/ \x01(\t\x12\x1b\n\x13statusAlreadyViewed\x18\x30 \x01(\x08\x12\x15\n\rmessageSecret\x18\x31 \x01(\x0c\x12(\n\nkeepInChat\x18\x32 \x01(\x0b\x32\x14.whatsapp.KeepInChat\x12\'\n\x1foriginalSelfAuthorUserJidString\x18\x33 \x01(\t\x12\x1e\n\x16revokeMessageTimestamp\x18\x34 \x01(\x04\x12&\n\tpinInChat\x18\x36 \x01(\x0b\x32\x13.whatsapp.PinInChat\x12\x38\n\x12premiumMessageInfo\x18\x37 \x01(\x0b\x32\x1c.whatsapp.PremiumMessageInfo\x12\x19\n\x11is1PBizBotMessage\x18\x38 \x01(\x08\x12\x1d\n\x15isGroupHistoryMessage\x18\x39 \x01(\x08\x12\x1c\n\x14\x62otMessageInvokerJid\x18: \x01(\t\x12\x32\n\x0f\x63ommentMetadata\x18; \x01(\x0b\x32\x19.whatsapp.CommentMetadata\x12/\n\x0e\x65ventResponses\x18= \x03(\x0b\x32\x17.whatsapp.EventResponse\x12\x38\n\x12reportingTokenInfo\x18> \x01(\x0b\x32\x1c.whatsapp.ReportingTokenInfo\x12\x1a\n\x12newsletterServerId\x18? \x01(\x04\x12\x42\n\x17\x65ventAdditionalMetadata\x18@ \x01(\x0b\x32!.whatsapp.EventAdditionalMetadata\x12\x1b\n\x13isMentionedInStatus\x18\x41 \x01(\x08\x12\x16\n\x0estatusMentions\x18\x42 \x03(\t\x12-\n\x0ftargetMessageId\x18\x43 \x01(\x0b\x32\x14.whatsapp.MessageKey\x12-\n\rmessageAddOns\x18\x44 \x03(\x0b\x32\x16.whatsapp.MessageAddOn\x12@\n\x18statusMentionMessageInfo\x18\x45 \x01(\x0b\x32\x1e.whatsapp.StatusMentionMessage\x12\x1a\n\x12isSupportAiMessage\x18\x46 \x01(\x08\x12\x1c\n\x14statusMentionSources\x18G \x03(\t\x12.\n\x12supportAiCitations\x18H \x03(\x0b\x32\x12.whatsapp.Citation\x12\x13\n\x0b\x62otTargetId\x18I \x01(\t\x12V\n!groupHistoryIndividualMessageInfo\x18J \x01(\x0b\x32+.whatsapp.GroupHistoryIndividualMessageInfo\x12@\n\x16groupHistoryBundleInfo\x18K \x01(\x0b\x32 .whatsapp.GroupHistoryBundleInfo\x12\\\n$interactiveMessageAdditionalMetadata\x18L \x01(\x0b\x32..whatsapp.InteractiveMessageAdditionalMetadata\x12\x38\n\x12quarantinedMessage\x18M \x01(\x0b\x32\x1c.whatsapp.QuarantinedMessage\x12\x16\n\x0enonJidMentions\x18N \x01(\r\x12\x0e\n\x06hsmTag\x18O \x01(\t\x12$\n\x1c\x65phemeralExpirationTimestamp\x18P \x01(\x04\x12\x44\n\x18scheduledMessageMetadata\x18Q \x01(\x0b\x32\".whatsapp.ScheduledMessageMetadata\x12\x12\n\ndecisionId\x18R \x01(\t\x12\x17\n\x0f\x64\x65\x63isionSources\x18S \x03(\t\"=\n\x10\x42izPrivacyStatus\x12\x08\n\x04\x45\x32\x45\x45\x10\x00\x12\x06\n\x02\x46\x42\x10\x02\x12\x07\n\x03\x42SP\x10\x01\x12\x0e\n\nBSP_AND_FB\x10\x03\"X\n\x06Status\x12\t\n\x05\x45RROR\x10\x00\x12\x0b\n\x07PENDING\x10\x01\x12\x0e\n\nSERVER_ACK\x10\x02\x12\x10\n\x0c\x44\x45LIVERY_ACK\x10\x03\x12\x08\n\x04READ\x10\x04\x12\n\n\x06PLAYED\x10\x05\"\xf9<\n\x08StubType\x12\x0b\n\x07UNKNOWN\x10\x00\x12\n\n\x06REVOKE\x10\x01\x12\x0e\n\nCIPHERTEXT\x10\x02\x12\x0f\n\x0b\x46UTUREPROOF\x10\x03\x12\x1b\n\x17NON_VERIFIED_TRANSITION\x10\x04\x12\x19\n\x15UNVERIFIED_TRANSITION\x10\x05\x12\x17\n\x13VERIFIED_TRANSITION\x10\x06\x12\x18\n\x14VERIFIED_LOW_UNKNOWN\x10\x07\x12\x11\n\rVERIFIED_HIGH\x10\x08\x12\x1c\n\x18VERIFIED_INITIAL_UNKNOWN\x10\t\x12\x18\n\x14VERIFIED_INITIAL_LOW\x10\n\x12\x19\n\x15VERIFIED_INITIAL_HIGH\x10\x0b\x12#\n\x1fVERIFIED_TRANSITION_ANY_TO_NONE\x10\x0c\x12#\n\x1fVERIFIED_TRANSITION_ANY_TO_HIGH\x10\r\x12#\n\x1fVERIFIED_TRANSITION_HIGH_TO_LOW\x10\x0e\x12\'\n#VERIFIED_TRANSITION_HIGH_TO_UNKNOWN\x10\x0f\x12&\n\"VERIFIED_TRANSITION_UNKNOWN_TO_LOW\x10\x10\x12&\n\"VERIFIED_TRANSITION_LOW_TO_UNKNOWN\x10\x11\x12#\n\x1fVERIFIED_TRANSITION_NONE_TO_LOW\x10\x12\x12\'\n#VERIFIED_TRANSITION_NONE_TO_UNKNOWN\x10\x13\x12\x10\n\x0cGROUP_CREATE\x10\x14\x12\x18\n\x14GROUP_CHANGE_SUBJECT\x10\x15\x12\x15\n\x11GROUP_CHANGE_ICON\x10\x16\x12\x1c\n\x18GROUP_CHANGE_INVITE_LINK\x10\x17\x12\x1c\n\x18GROUP_CHANGE_DESCRIPTION\x10\x18\x12\x19\n\x15GROUP_CHANGE_RESTRICT\x10\x19\x12\x19\n\x15GROUP_CHANGE_ANNOUNCE\x10\x1a\x12\x19\n\x15GROUP_PARTICIPANT_ADD\x10\x1b\x12\x1c\n\x18GROUP_PARTICIPANT_REMOVE\x10\x1c\x12\x1d\n\x19GROUP_PARTICIPANT_PROMOTE\x10\x1d\x12\x1c\n\x18GROUP_PARTICIPANT_DEMOTE\x10\x1e\x12\x1c\n\x18GROUP_PARTICIPANT_INVITE\x10\x1f\x12\x1b\n\x17GROUP_PARTICIPANT_LEAVE\x10 \x12#\n\x1fGROUP_PARTICIPANT_CHANGE_NUMBER\x10!\x12\x14\n\x10\x42ROADCAST_CREATE\x10\"\x12\x11\n\rBROADCAST_ADD\x10#\x12\x14\n\x10\x42ROADCAST_REMOVE\x10$\x12\x18\n\x14GENERIC_NOTIFICATION\x10%\x12\x18\n\x14\x45\x32\x45_IDENTITY_CHANGED\x10&\x12\x11\n\rE2E_ENCRYPTED\x10\'\x12\x15\n\x11\x43\x41LL_MISSED_VOICE\x10(\x12\x15\n\x11\x43\x41LL_MISSED_VIDEO\x10)\x12\x1c\n\x18INDIVIDUAL_CHANGE_NUMBER\x10*\x12\x10\n\x0cGROUP_DELETE\x10+\x12&\n\"GROUP_ANNOUNCE_MODE_MESSAGE_BOUNCE\x10,\x12\x1b\n\x17\x43\x41LL_MISSED_GROUP_VOICE\x10-\x12\x1b\n\x17\x43\x41LL_MISSED_GROUP_VIDEO\x10.\x12\x16\n\x12PAYMENT_CIPHERTEXT\x10/\x12\x17\n\x13PAYMENT_FUTUREPROOF\x10\x30\x12,\n(PAYMENT_TRANSACTION_STATUS_UPDATE_FAILED\x10\x31\x12.\n*PAYMENT_TRANSACTION_STATUS_UPDATE_REFUNDED\x10\x32\x12\x33\n/PAYMENT_TRANSACTION_STATUS_UPDATE_REFUND_FAILED\x10\x33\x12\x35\n1PAYMENT_TRANSACTION_STATUS_RECEIVER_PENDING_SETUP\x10\x34\x12<\n8PAYMENT_TRANSACTION_STATUS_RECEIVER_SUCCESS_AFTER_HICCUP\x10\x35\x12)\n%PAYMENT_ACTION_ACCOUNT_SETUP_REMINDER\x10\x36\x12(\n$PAYMENT_ACTION_SEND_PAYMENT_REMINDER\x10\x37\x12*\n&PAYMENT_ACTION_SEND_PAYMENT_INVITATION\x10\x38\x12#\n\x1fPAYMENT_ACTION_REQUEST_DECLINED\x10\x39\x12\"\n\x1ePAYMENT_ACTION_REQUEST_EXPIRED\x10:\x12$\n PAYMENT_ACTION_REQUEST_CANCELLED\x10;\x12)\n%BIZ_VERIFIED_TRANSITION_TOP_TO_BOTTOM\x10<\x12)\n%BIZ_VERIFIED_TRANSITION_BOTTOM_TO_TOP\x10=\x12\x11\n\rBIZ_INTRO_TOP\x10>\x12\x14\n\x10\x42IZ_INTRO_BOTTOM\x10?\x12\x13\n\x0f\x42IZ_NAME_CHANGE\x10@\x12\x1c\n\x18\x42IZ_MOVE_TO_CONSUMER_APP\x10\x41\x12\x1e\n\x1a\x42IZ_TWO_TIER_MIGRATION_TOP\x10\x42\x12!\n\x1d\x42IZ_TWO_TIER_MIGRATION_BOTTOM\x10\x43\x12\r\n\tOVERSIZED\x10\x44\x12(\n$GROUP_CHANGE_NO_FREQUENTLY_FORWARDED\x10\x45\x12\x1c\n\x18GROUP_V4_ADD_INVITE_SENT\x10\x46\x12&\n\"GROUP_PARTICIPANT_ADD_REQUEST_JOIN\x10G\x12\x1c\n\x18\x43HANGE_EPHEMERAL_SETTING\x10H\x12\x16\n\x12\x45\x32\x45_DEVICE_CHANGED\x10I\x12\x0f\n\x0bVIEWED_ONCE\x10J\x12\x15\n\x11\x45\x32\x45_ENCRYPTED_NOW\x10K\x12\"\n\x1e\x42LUE_MSG_BSP_FB_TO_BSP_PREMISE\x10L\x12\x1e\n\x1a\x42LUE_MSG_BSP_FB_TO_SELF_FB\x10M\x12#\n\x1f\x42LUE_MSG_BSP_FB_TO_SELF_PREMISE\x10N\x12\x1e\n\x1a\x42LUE_MSG_BSP_FB_UNVERIFIED\x10O\x12\x37\n3BLUE_MSG_BSP_FB_UNVERIFIED_TO_SELF_PREMISE_VERIFIED\x10P\x12\x1c\n\x18\x42LUE_MSG_BSP_FB_VERIFIED\x10Q\x12\x37\n3BLUE_MSG_BSP_FB_VERIFIED_TO_SELF_PREMISE_UNVERIFIED\x10R\x12(\n$BLUE_MSG_BSP_PREMISE_TO_SELF_PREMISE\x10S\x12#\n\x1f\x42LUE_MSG_BSP_PREMISE_UNVERIFIED\x10T\x12<\n8BLUE_MSG_BSP_PREMISE_UNVERIFIED_TO_SELF_PREMISE_VERIFIED\x10U\x12!\n\x1d\x42LUE_MSG_BSP_PREMISE_VERIFIED\x10V\x12<\n8BLUE_MSG_BSP_PREMISE_VERIFIED_TO_SELF_PREMISE_UNVERIFIED\x10W\x12*\n&BLUE_MSG_CONSUMER_TO_BSP_FB_UNVERIFIED\x10X\x12/\n+BLUE_MSG_CONSUMER_TO_BSP_PREMISE_UNVERIFIED\x10Y\x12+\n\'BLUE_MSG_CONSUMER_TO_SELF_FB_UNVERIFIED\x10Z\x12\x30\n,BLUE_MSG_CONSUMER_TO_SELF_PREMISE_UNVERIFIED\x10[\x12#\n\x1f\x42LUE_MSG_SELF_FB_TO_BSP_PREMISE\x10\\\x12$\n BLUE_MSG_SELF_FB_TO_SELF_PREMISE\x10]\x12\x1f\n\x1b\x42LUE_MSG_SELF_FB_UNVERIFIED\x10^\x12\x38\n4BLUE_MSG_SELF_FB_UNVERIFIED_TO_SELF_PREMISE_VERIFIED\x10_\x12\x1d\n\x19\x42LUE_MSG_SELF_FB_VERIFIED\x10`\x12\x38\n4BLUE_MSG_SELF_FB_VERIFIED_TO_SELF_PREMISE_UNVERIFIED\x10\x61\x12(\n$BLUE_MSG_SELF_PREMISE_TO_BSP_PREMISE\x10\x62\x12$\n BLUE_MSG_SELF_PREMISE_UNVERIFIED\x10\x63\x12\"\n\x1e\x42LUE_MSG_SELF_PREMISE_VERIFIED\x10\x64\x12\x16\n\x12\x42LUE_MSG_TO_BSP_FB\x10\x65\x12\x18\n\x14\x42LUE_MSG_TO_CONSUMER\x10\x66\x12\x17\n\x13\x42LUE_MSG_TO_SELF_FB\x10g\x12*\n&BLUE_MSG_UNVERIFIED_TO_BSP_FB_VERIFIED\x10h\x12/\n+BLUE_MSG_UNVERIFIED_TO_BSP_PREMISE_VERIFIED\x10i\x12+\n\'BLUE_MSG_UNVERIFIED_TO_SELF_FB_VERIFIED\x10j\x12#\n\x1f\x42LUE_MSG_UNVERIFIED_TO_VERIFIED\x10k\x12*\n&BLUE_MSG_VERIFIED_TO_BSP_FB_UNVERIFIED\x10l\x12/\n+BLUE_MSG_VERIFIED_TO_BSP_PREMISE_UNVERIFIED\x10m\x12+\n\'BLUE_MSG_VERIFIED_TO_SELF_FB_UNVERIFIED\x10n\x12#\n\x1f\x42LUE_MSG_VERIFIED_TO_UNVERIFIED\x10o\x12\x36\n2BLUE_MSG_BSP_FB_UNVERIFIED_TO_BSP_PREMISE_VERIFIED\x10p\x12\x32\n.BLUE_MSG_BSP_FB_UNVERIFIED_TO_SELF_FB_VERIFIED\x10q\x12\x36\n2BLUE_MSG_BSP_FB_VERIFIED_TO_BSP_PREMISE_UNVERIFIED\x10r\x12\x32\n.BLUE_MSG_BSP_FB_VERIFIED_TO_SELF_FB_UNVERIFIED\x10s\x12\x37\n3BLUE_MSG_SELF_FB_UNVERIFIED_TO_BSP_PREMISE_VERIFIED\x10t\x12\x37\n3BLUE_MSG_SELF_FB_VERIFIED_TO_BSP_PREMISE_UNVERIFIED\x10u\x12\x1c\n\x18\x45\x32\x45_IDENTITY_UNAVAILABLE\x10v\x12\x12\n\x0eGROUP_CREATING\x10w\x12\x17\n\x13GROUP_CREATE_FAILED\x10x\x12\x11\n\rGROUP_BOUNCED\x10y\x12\x11\n\rBLOCK_CONTACT\x10z\x12!\n\x1d\x45PHEMERAL_SETTING_NOT_APPLIED\x10{\x12\x0f\n\x0bSYNC_FAILED\x10|\x12\x0b\n\x07SYNCING\x10}\x12\x1c\n\x18\x42IZ_PRIVACY_MODE_INIT_FB\x10~\x12\x1d\n\x19\x42IZ_PRIVACY_MODE_INIT_BSP\x10\x7f\x12\x1b\n\x16\x42IZ_PRIVACY_MODE_TO_FB\x10\x80\x01\x12\x1c\n\x17\x42IZ_PRIVACY_MODE_TO_BSP\x10\x81\x01\x12\x16\n\x11\x44ISAPPEARING_MODE\x10\x82\x01\x12\x1c\n\x17\x45\x32\x45_DEVICE_FETCH_FAILED\x10\x83\x01\x12\x11\n\x0c\x41\x44MIN_REVOKE\x10\x84\x01\x12$\n\x1fGROUP_INVITE_LINK_GROWTH_LOCKED\x10\x85\x01\x12 \n\x1b\x43OMMUNITY_LINK_PARENT_GROUP\x10\x86\x01\x12!\n\x1c\x43OMMUNITY_LINK_SIBLING_GROUP\x10\x87\x01\x12\x1d\n\x18\x43OMMUNITY_LINK_SUB_GROUP\x10\x88\x01\x12\"\n\x1d\x43OMMUNITY_UNLINK_PARENT_GROUP\x10\x89\x01\x12#\n\x1e\x43OMMUNITY_UNLINK_SIBLING_GROUP\x10\x8a\x01\x12\x1f\n\x1a\x43OMMUNITY_UNLINK_SUB_GROUP\x10\x8b\x01\x12\x1d\n\x18GROUP_PARTICIPANT_ACCEPT\x10\x8c\x01\x12(\n#GROUP_PARTICIPANT_LINKED_GROUP_JOIN\x10\x8d\x01\x12\x15\n\x10\x43OMMUNITY_CREATE\x10\x8e\x01\x12\x1b\n\x16\x45PHEMERAL_KEEP_IN_CHAT\x10\x8f\x01\x12+\n&GROUP_MEMBERSHIP_JOIN_APPROVAL_REQUEST\x10\x90\x01\x12(\n#GROUP_MEMBERSHIP_JOIN_APPROVAL_MODE\x10\x91\x01\x12\"\n\x1dINTEGRITY_UNLINK_PARENT_GROUP\x10\x92\x01\x12\"\n\x1d\x43OMMUNITY_PARTICIPANT_PROMOTE\x10\x93\x01\x12!\n\x1c\x43OMMUNITY_PARTICIPANT_DEMOTE\x10\x94\x01\x12#\n\x1e\x43OMMUNITY_PARENT_GROUP_DELETED\x10\x95\x01\x12\x34\n/COMMUNITY_LINK_PARENT_GROUP_MEMBERSHIP_APPROVAL\x10\x96\x01\x12\x34\n/GROUP_PARTICIPANT_JOINED_GROUP_AND_PARENT_GROUP\x10\x97\x01\x12\x1a\n\x15MASKED_THREAD_CREATED\x10\x98\x01\x12\x1b\n\x16MASKED_THREAD_UNMASKED\x10\x99\x01\x12\x18\n\x13\x42IZ_CHAT_ASSIGNMENT\x10\x9a\x01\x12\r\n\x08\x43HAT_PSA\x10\x9b\x01\x12\x1f\n\x1a\x43HAT_POLL_CREATION_MESSAGE\x10\x9c\x01\x12\x1e\n\x19\x43\x41G_MASKED_THREAD_CREATED\x10\x9d\x01\x12+\n&COMMUNITY_PARENT_GROUP_SUBJECT_CHANGED\x10\x9e\x01\x12\x18\n\x13\x43\x41G_INVITE_AUTO_ADD\x10\x9f\x01\x12!\n\x1c\x42IZ_CHAT_ASSIGNMENT_UNASSIGN\x10\xa0\x01\x12\x1b\n\x16\x43\x41G_INVITE_AUTO_JOINED\x10\xa1\x01\x12!\n\x1cSCHEDULED_CALL_START_MESSAGE\x10\xa2\x01\x12\x1a\n\x15\x43OMMUNITY_INVITE_RICH\x10\xa3\x01\x12#\n\x1e\x43OMMUNITY_INVITE_AUTO_ADD_RICH\x10\xa4\x01\x12\x1a\n\x15SUB_GROUP_INVITE_RICH\x10\xa5\x01\x12#\n\x1eSUB_GROUP_PARTICIPANT_ADD_RICH\x10\xa6\x01\x12%\n COMMUNITY_LINK_PARENT_GROUP_RICH\x10\xa7\x01\x12#\n\x1e\x43OMMUNITY_PARTICIPANT_ADD_RICH\x10\xa8\x01\x12\"\n\x1dSILENCED_UNKNOWN_CALLER_AUDIO\x10\xa9\x01\x12\"\n\x1dSILENCED_UNKNOWN_CALLER_VIDEO\x10\xaa\x01\x12\x1a\n\x15GROUP_MEMBER_ADD_MODE\x10\xab\x01\x12\x39\n4GROUP_MEMBERSHIP_JOIN_APPROVAL_REQUEST_NON_ADMIN_ADD\x10\xac\x01\x12!\n\x1c\x43OMMUNITY_CHANGE_DESCRIPTION\x10\xad\x01\x12\x12\n\rSENDER_INVITE\x10\xae\x01\x12\x14\n\x0fRECEIVER_INVITE\x10\xaf\x01\x12(\n#COMMUNITY_ALLOW_MEMBER_ADDED_GROUPS\x10\xb0\x01\x12\x1b\n\x16PINNED_MESSAGE_IN_CHAT\x10\xb1\x01\x12!\n\x1cPAYMENT_INVITE_SETUP_INVITER\x10\xb2\x01\x12.\n)PAYMENT_INVITE_SETUP_INVITEE_RECEIVE_ONLY\x10\xb3\x01\x12\x32\n-PAYMENT_INVITE_SETUP_INVITEE_SEND_AND_RECEIVE\x10\xb4\x01\x12\x1c\n\x17LINKED_GROUP_CALL_START\x10\xb5\x01\x12#\n\x1eREPORT_TO_ADMIN_ENABLED_STATUS\x10\xb6\x01\x12\x1a\n\x15\x45MPTY_SUBGROUP_CREATE\x10\xb7\x01\x12\x1a\n\x15SCHEDULED_CALL_CANCEL\x10\xb8\x01\x12+\n&SUBGROUP_ADMIN_TRIGGERED_AUTO_ADD_RICH\x10\xb9\x01\x12(\n#GROUP_CHANGE_RECENT_HISTORY_SHARING\x10\xba\x01\x12$\n\x1fPAID_MESSAGE_SERVER_CAMPAIGN_ID\x10\xbb\x01\x12\x18\n\x13GENERAL_CHAT_CREATE\x10\xbc\x01\x12\x15\n\x10GENERAL_CHAT_ADD\x10\xbd\x01\x12#\n\x1eGENERAL_CHAT_AUTO_ADD_DISABLED\x10\xbe\x01\x12 \n\x1bSUGGESTED_SUBGROUP_ANNOUNCE\x10\xbf\x01\x12!\n\x1c\x42IZ_BOT_1P_MESSAGING_ENABLED\x10\xc0\x01\x12\x14\n\x0f\x43HANGE_USERNAME\x10\xc1\x01\x12\x1f\n\x1a\x42IZ_COEX_PRIVACY_INIT_SELF\x10\xc2\x01\x12%\n BIZ_COEX_PRIVACY_TRANSITION_SELF\x10\xc3\x01\x12\x19\n\x14SUPPORT_AI_EDUCATION\x10\xc4\x01\x12!\n\x1c\x42IZ_BOT_3P_MESSAGING_ENABLED\x10\xc5\x01\x12\x1b\n\x16REMINDER_SETUP_MESSAGE\x10\xc6\x01\x12\x1a\n\x15REMINDER_SENT_MESSAGE\x10\xc7\x01\x12\x1c\n\x17REMINDER_CANCEL_MESSAGE\x10\xc8\x01\x12\x1a\n\x15\x42IZ_COEX_PRIVACY_INIT\x10\xc9\x01\x12 \n\x1b\x42IZ_COEX_PRIVACY_TRANSITION\x10\xca\x01\x12\x16\n\x11GROUP_DEACTIVATED\x10\xcb\x01\x12\'\n\"COMMUNITY_DEACTIVATE_SIBLING_GROUP\x10\xcc\x01\x12\x12\n\rEVENT_UPDATED\x10\xcd\x01\x12\x13\n\x0e\x45VENT_CANCELED\x10\xce\x01\x12\x1c\n\x17\x43OMMUNITY_OWNER_UPDATED\x10\xcf\x01\x12*\n%COMMUNITY_SUB_GROUP_VISIBILITY_HIDDEN\x10\xd0\x01\x12$\n\x1f\x43\x41PI_GROUP_NE2EE_SYSTEM_MESSAGE\x10\xd1\x01\x12\x13\n\x0eSTATUS_MENTION\x10\xd2\x01\x12!\n\x1cUSER_CONTROLS_SYSTEM_MESSAGE\x10\xd3\x01\x12\x1b\n\x16SUPPORT_SYSTEM_MESSAGE\x10\xd4\x01\x12\x0f\n\nCHANGE_LID\x10\xd5\x01\x12\x31\n,BIZ_CUSTOMER_3PD_DATA_SHARING_OPT_IN_MESSAGE\x10\xd6\x01\x12\x32\n-BIZ_CUSTOMER_3PD_DATA_SHARING_OPT_OUT_MESSAGE\x10\xd7\x01\x12\x19\n\x14\x43HANGE_LIMIT_SHARING\x10\xd8\x01\x12\x1b\n\x16GROUP_MEMBER_LINK_MODE\x10\xd9\x01\x12\x32\n-BIZ_AUTOMATICALLY_LABELED_CHAT_SYSTEM_MESSAGE\x10\xda\x01\x12\x30\n+PHONE_NUMBER_HIDING_CHAT_DEPRECATED_MESSAGE\x10\xdb\x01\x12\x18\n\x13QUARANTINED_MESSAGE\x10\xdc\x01\x12*\n%GROUP_MEMBER_SHARE_GROUP_HISTORY_MODE\x10\xdd\x01\x12\x19\n\x14GROUP_OPEN_BOT_ADDED\x10\xde\x01\x12\x18\n\x13GROUP_TEE_BOT_ADDED\x10\xdf\x01\x12\x11\n\x0c\x43ONTACT_INFO\x10\xe0\x01\x12\x1e\n\x19SCHEDULED_MESSAGE_CREATED\x10\xe1\x01\x12\x1a\n\x15IDENTITY_TRUST_MARKED\x10\xe2\x01\x12\x1c\n\x17IDENTITY_TRUST_UNMARKED\x10\xe3\x01\x12\x1b\n\x16IDENTITY_TRUST_REVOKED\x10\xe4\x01\x12\x1d\n\x18\x43TWA_CONSUMER_DISCLOSURE\x10\xe6\x01\"Y\n\x1eWebMessageInfoWithMessageBytes\x12!\n\x03key\x18\x01 \x01(\x0b\x32\x14.whatsapp.MessageKey\x12\x14\n\x0cmessageBytes\x18\x02 \x01(\x0c\"\x8c\x01\n\x14WebNotificationsInfo\x12\x11\n\ttimestamp\x18\x02 \x01(\x04\x12\x13\n\x0bunreadChats\x18\x03 \x01(\r\x12\x1a\n\x12notifyMessageCount\x18\x04 \x01(\r\x12\x30\n\x0enotifyMessages\x18\x05 \x03(\x0b\x32\x18.whatsapp.WebMessageInfo\"6\n\"WrapTransportSigningPublicKeyInput\x12\x10\n\x08keyBytes\x18\x01 \x02(\x0c\":\n#WrapTransportSigningPublicKeyResult\x12\x13\n\x0bprefixedKey\x18\x01 \x02(\x0c\"6\n\"WrapTransportSigningSecretKeyInput\x12\x10\n\x08keyBytes\x18\x01 \x02(\x0c\":\n#WrapTransportSigningSecretKeyResult\x12\x13\n\x0bprefixedKey\x18\x01 \x02(\x0c*7\n\x11\x41\x44VEncryptionType\x12\x08\n\x04\x45\x32\x45\x45\x10\x00\x12\n\n\x06HOSTED\x10\x01\x12\x0c\n\x08NON_E2EE\x10\x02*b\n\x19\x41IRichResponseMessageType\x12!\n\x1d\x41I_RICH_RESPONSE_TYPE_UNKNOWN\x10\x00\x12\"\n\x1e\x41I_RICH_RESPONSE_TYPE_STANDARD\x10\x01*\xca\x02\n\x1c\x41IRichResponseSubMessageType\x12\x1c\n\x18\x41I_RICH_RESPONSE_UNKNOWN\x10\x00\x12\x1f\n\x1b\x41I_RICH_RESPONSE_GRID_IMAGE\x10\x01\x12\x19\n\x15\x41I_RICH_RESPONSE_TEXT\x10\x02\x12!\n\x1d\x41I_RICH_RESPONSE_INLINE_IMAGE\x10\x03\x12\x1a\n\x16\x41I_RICH_RESPONSE_TABLE\x10\x04\x12\x19\n\x15\x41I_RICH_RESPONSE_CODE\x10\x05\x12\x1c\n\x18\x41I_RICH_RESPONSE_DYNAMIC\x10\x06\x12\x18\n\x14\x41I_RICH_RESPONSE_MAP\x10\x07\x12\x1a\n\x16\x41I_RICH_RESPONSE_LATEX\x10\x08\x12\"\n\x1e\x41I_RICH_RESPONSE_CONTENT_ITEMS\x10\t*Z\n\x19\x41ISubscriptionRequestType\x12\x0f\n\x0bUNSPECIFIED\x10\x00\x12\x0e\n\nTHINK_HARD\x10\x01\x12\r\n\tIMAGE_GEN\x10\x02\x12\r\n\tVIDEO_GEN\x10\x03*\xa0\n\n\x14\x42otMetricsEntryPoint\x12\x19\n\x15UNDEFINED_ENTRY_POINT\x10\x00\x12\x0b\n\x07\x46\x41VICON\x10\x01\x12\x0c\n\x08\x43HATLIST\x10\x02\x12#\n\x1f\x41ISEARCH_NULL_STATE_PAPER_PLANE\x10\x03\x12\"\n\x1e\x41ISEARCH_NULL_STATE_SUGGESTION\x10\x04\x12\"\n\x1e\x41ISEARCH_TYPE_AHEAD_SUGGESTION\x10\x05\x12#\n\x1f\x41ISEARCH_TYPE_AHEAD_PAPER_PLANE\x10\x06\x12\'\n#AISEARCH_TYPE_AHEAD_RESULT_CHATLIST\x10\x07\x12\'\n#AISEARCH_TYPE_AHEAD_RESULT_MESSAGES\x10\x08\x12\x16\n\x12\x41IVOICE_SEARCH_BAR\x10\t\x12\x13\n\x0f\x41IVOICE_FAVICON\x10\n\x12\x0c\n\x08\x41ISTUDIO\x10\x0b\x12\x0c\n\x08\x44\x45\x45PLINK\x10\x0c\x12\x10\n\x0cNOTIFICATION\x10\r\x12\x1a\n\x16PROFILE_MESSAGE_BUTTON\x10\x0e\x12\x0b\n\x07\x46ORWARD\x10\x0f\x12\x10\n\x0c\x41PP_SHORTCUT\x10\x10\x12\r\n\tFF_FAMILY\x10\x11\x12\n\n\x06\x41I_TAB\x10\x12\x12\x0b\n\x07\x41I_HOME\x10\x13\x12\x19\n\x15\x41I_DEEPLINK_IMMERSIVE\x10\x14\x12\x0f\n\x0b\x41I_DEEPLINK\x10\x15\x12#\n\x1fMETA_AI_CHAT_SHORTCUT_AI_STUDIO\x10\x16\x12\x1f\n\x1bUGC_CHAT_SHORTCUT_AI_STUDIO\x10\x17\x12\x16\n\x12NEW_CHAT_AI_STUDIO\x10\x18\x12 \n\x1c\x41IVOICE_FAVICON_CALL_HISTORY\x10\x19\x12\x1c\n\x18\x41SK_META_AI_CONTEXT_MENU\x10\x1a\x12!\n\x1d\x41SK_META_AI_CONTEXT_MENU_1ON1\x10\x1b\x12\"\n\x1e\x41SK_META_AI_CONTEXT_MENU_GROUP\x10\x1c\x12\x17\n\x13INVOKE_META_AI_1ON1\x10\x1d\x12\x18\n\x14INVOKE_META_AI_GROUP\x10\x1e\x12\x13\n\x0fMETA_AI_FORWARD\x10\x1f\x12\x17\n\x13NEW_CHAT_AI_CONTACT\x10 \x12$\n MESSAGE_QUICK_ACTION_1_ON_1_CHAT\x10!\x12#\n\x1fMESSAGE_QUICK_ACTION_GROUP_CHAT\x10\"\x12\x1f\n\x1b\x41TTACHMENT_TRAY_1_ON_1_CHAT\x10#\x12\x1e\n\x1a\x41TTACHMENT_TRAY_GROUP_CHAT\x10$\x12!\n\x1d\x41SK_META_AI_MEDIA_VIEWER_1ON1\x10%\x12\"\n\x1e\x41SK_META_AI_MEDIA_VIEWER_GROUP\x10&\x12\x1c\n\x18MEDIA_PICKER_1_ON_1_CHAT\x10\'\x12\x1b\n\x17MEDIA_PICKER_GROUP_CHAT\x10(\x12!\n\x1d\x41SK_META_AI_NO_SEARCH_RESULTS\x10)\x12\x14\n\x10META_AI_SETTINGS\x10-\x12\x13\n\x0fWEB_INTRO_PANEL\x10.\x12\x16\n\x12WEB_NAVIGATION_BAR\x10/\x12\x10\n\x0cGROUP_MEMBER\x10\x36\x12\x13\n\x0f\x43HATLIST_SEARCH\x10\x37\x12\x11\n\rNEW_CHAT_LIST\x10\x38\x12\x10\n\x0c\x43ONTACTS_TAB\x10\x39*\xa2\x01\n\x1a\x42otMetricsThreadEntryPoint\x12\x11\n\rAI_TAB_THREAD\x10\x01\x12\x12\n\x0e\x41I_HOME_THREAD\x10\x02\x12 \n\x1c\x41I_DEEPLINK_IMMERSIVE_THREAD\x10\x03\x12\x16\n\x12\x41I_DEEPLINK_THREAD\x10\x04\x12#\n\x1f\x41SK_META_AI_CONTEXT_MENU_THREAD\x10\x05*\x92\x01\n\x10\x42otSessionSource\x12\x08\n\x04NONE\x10\x00\x12\x0e\n\nNULL_STATE\x10\x01\x12\r\n\tTYPEAHEAD\x10\x02\x12\x0e\n\nUSER_INPUT\x10\x03\x12\r\n\tEMU_FLASH\x10\x04\x12\x16\n\x12\x45MU_FLASH_FOLLOWUP\x10\x05\x12\t\n\x05VOICE\x10\x06\x12\x13\n\x0f\x41I_HOME_SESSION\x10\x07*H\n\x14\x43OMMAND_COMMAND_TYPE\x12\x0c\n\x08\x45VERYONE\x10\x01\x12\n\n\x06SILENT\x10\x02\x12\x06\n\x02\x41I\x10\x03\x12\x0e\n\nAI_IMAGINE\x10\x04*S\n/CONSUMER_APPLICATION_METADATA_SPECIAL_TEXT_SIZE\x12\t\n\x05SMALL\x10\x01\x12\n\n\x06MEDIUM\x10\x02\x12\t\n\x05LARGE\x10\x03*\x9f\x01\n1CONSUMER_APPLICATION_STATUS_TEXT_MESAGE_FONT_TYPE\x12\x0e\n\nSANS_SERIF\x10\x00\x12\t\n\x05SERIF\x10\x01\x12\x13\n\x0fNORICAN_REGULAR\x10\x02\x12\x11\n\rBRYNDAN_WRITE\x10\x03\x12\x15\n\x11\x42\x45\x42\x41SNEUE_REGULAR\x10\x04\x12\x10\n\x0cOSWALD_HEAVY\x10\x05*\x8b\x01\n\x0e\x43ollectionName\x12\x1b\n\x17\x43OLLECTION_NAME_UNKNOWN\x10\x00\x12\x0b\n\x07REGULAR\x10\x01\x12\x0f\n\x0bREGULAR_LOW\x10\x02\x12\x10\n\x0cREGULAR_HIGH\x10\x03\x12\x12\n\x0e\x43RITICAL_BLOCK\x10\x04\x12\x18\n\x14\x43RITICAL_UNBLOCK_LOW\x10\x05*;\n(EXTENDED_CONTENT_MESSAGE_CTA_BUTTON_TYPE\x12\x0f\n\x0bOPEN_NATIVE\x10\x0b*\xc9\x11\n.EXTENDED_CONTENT_MESSAGE_EXTENDED_CONTENT_TYPE\x12\x18\n\x0bUNSUPPORTED\x10\xff\xff\xff\xff\xff\xff\xff\xff\xff\x01\x12\x1a\n\x16IG_STORY_PHOTO_MENTION\x10\x04\x12\x1e\n\x1aIG_SINGLE_IMAGE_POST_SHARE\x10\t\x12\x16\n\x12IG_MULTIPOST_SHARE\x10\n\x12\x1e\n\x1aIG_SINGLE_VIDEO_POST_SHARE\x10\x0b\x12\x18\n\x14IG_STORY_PHOTO_SHARE\x10\x0c\x12\x18\n\x14IG_STORY_VIDEO_SHARE\x10\r\x12\x12\n\x0eIG_CLIPS_SHARE\x10\x0e\x12\x11\n\rIG_IGTV_SHARE\x10\x0f\x12\x11\n\rIG_SHOP_SHARE\x10\x10\x12\x14\n\x10IG_PROFILE_SHARE\x10\x13\x12\"\n\x1eIG_STORY_PHOTO_HIGHLIGHT_SHARE\x10\x14\x12\"\n\x1eIG_STORY_VIDEO_HIGHLIGHT_SHARE\x10\x15\x12\x12\n\x0eIG_STORY_REPLY\x10\x16\x12\x15\n\x11IG_STORY_REACTION\x10\x17\x12\x1a\n\x16IG_STORY_VIDEO_MENTION\x10\x18\x12\x1c\n\x18IG_STORY_HIGHLIGHT_REPLY\x10\x19\x12\x1f\n\x1bIG_STORY_HIGHLIGHT_REACTION\x10\x1a\x12\x14\n\x10IG_EXTERNAL_LINK\x10\x1b\x12\x15\n\x11IG_RECEIVER_FETCH\x10\x1c\x12\x12\n\rFB_FEED_SHARE\x10\xe8\x07\x12\x13\n\x0e\x46\x42_STORY_REPLY\x10\xe9\x07\x12\x13\n\x0e\x46\x42_STORY_SHARE\x10\xea\x07\x12\x15\n\x10\x46\x42_STORY_MENTION\x10\xeb\x07\x12\x18\n\x13\x46\x42_FEED_VIDEO_SHARE\x10\xec\x07\x12\x1c\n\x17\x46\x42_GAMING_CUSTOM_UPDATE\x10\xed\x07\x12\x1c\n\x17\x46\x42_PRODUCER_STORY_REPLY\x10\xee\x07\x12\r\n\x08\x46\x42_EVENT\x10\xef\x07\x12\x1f\n\x1a\x46\x42_FEED_POST_PRIVATE_REPLY\x10\xf0\x07\x12\r\n\x08\x46\x42_SHORT\x10\xf1\x07\x12\x1d\n\x18\x46\x42_COMMENT_MENTION_SHARE\x10\xf2\x07\x12\x14\n\x0f\x46\x42_POST_MENTION\x10\xf3\x07\x12\x1e\n\x19\x46\x42_PROFILE_DIRECTORY_ITEM\x10\xf5\x07\x12 \n\x1b\x46\x42_FEED_POST_REACTION_REPLY\x10\xf6\x07\x12\x17\n\x12\x46\x42_QUICKSNAP_REPLY\x10\xf7\x07\x12\x1c\n\x17MSG_EXTERNAL_LINK_SHARE\x10\xd0\x0f\x12\x14\n\x0fMSG_P2P_PAYMENT\x10\xd1\x0f\x12\x19\n\x14MSG_LOCATION_SHARING\x10\xd2\x0f\x12\x1c\n\x17MSG_LOCATION_SHARING_V2\x10\xd3\x0f\x12,\n\'MSG_HIGHLIGHTS_TAB_FRIEND_UPDATES_REPLY\x10\xd4\x0f\x12)\n$MSG_HIGHLIGHTS_TAB_LOCAL_EVENT_REPLY\x10\xd5\x0f\x12\x17\n\x12MSG_RECEIVER_FETCH\x10\xd6\x0f\x12\x17\n\x12MSG_IG_MEDIA_SHARE\x10\xd7\x0f\x12&\n!MSG_GEN_AI_SEARCH_PLUGIN_RESPONSE\x10\xd8\x0f\x12\x13\n\x0eMSG_REELS_LIST\x10\xd9\x0f\x12\x10\n\x0bMSG_CONTACT\x10\xda\x0f\x12\x1b\n\x16MSG_THREADS_POST_SHARE\x10\xdb\x0f\x12\r\n\x08MSG_FILE\x10\xdc\x0f\x12\x17\n\x12MSG_AVATAR_DETAILS\x10\xdd\x0f\x12\x13\n\x0eMSG_AI_CONTACT\x10\xde\x0f\x12\x17\n\x12MSG_MEMORIES_SHARE\x10\xdf\x0f\x12\x1b\n\x16MSG_SHARED_ALBUM_REPLY\x10\xe0\x0f\x12\x15\n\x10MSG_SHARED_ALBUM\x10\xe1\x0f\x12\x18\n\x13MSG_OCCAMADILLO_XMA\x10\xe2\x0f\x12\x1c\n\x17MSG_GEN_AI_SUBSCRIPTION\x10\xe5\x0f\x12\x18\n\x13MSG_GEN_AI_REMINDER\x10\xe6\x0f\x12(\n#MSG_GEN_AI_MEMU_ONBOARDING_RESPONSE\x10\xe7\x0f\x12\x13\n\x0eMSG_NOTE_REPLY\x10\xe8\x0f\x12\x15\n\x10MSG_NOTE_MENTION\x10\xe9\x0f\x12\x12\n\rGEN_AI_ENTITY\x10\xea\x0f\x12\x18\n\x13MSG_OPG_P2P_PAYMENT\x10\xeb\x0f\x12\x19\n\x14GEN_AI_RICH_RESPONSE\x10\xec\x0f\x12\x16\n\x11MSG_MUSIC_STICKER\x10\xed\x0f\x12\x15\n\x10MSG_PHONE_NUMBER\x10\xee\x0f\x12\x16\n\x11\x41I_ACTIVITY_SHARE\x10\xef\x0f\x12\x14\n\x0fMSG_PRIVATE_XMA\x10\xf0\x0f\x12\x1c\n\x17MSG_SOCIAL_CUE_MEMORIES\x10\xf1\x0f\x12\x1e\n\x19MSG_MANUS_GROWTH_REFERRAL\x10\x8c\x10\x12\x14\n\x0fMSG_MOMENT_LINK\x10\x8d\x10\x12\x15\n\x10MSG_HORIZON_WEEL\x10\x8e\x10\x12\x15\n\x10MSG_MOMENT_ADDED\x10\x8f\x10\x12\x13\n\x0eRTC_AUDIO_CALL\x10\xb8\x17\x12\x13\n\x0eRTC_VIDEO_CALL\x10\xb9\x17\x12\x1a\n\x15RTC_MISSED_AUDIO_CALL\x10\xba\x17\x12\x1a\n\x15RTC_MISSED_VIDEO_CALL\x10\xbb\x17\x12\x19\n\x14RTC_GROUP_AUDIO_CALL\x10\xbc\x17\x12\x19\n\x14RTC_GROUP_VIDEO_CALL\x10\xbd\x17\x12 \n\x1bRTC_MISSED_GROUP_AUDIO_CALL\x10\xbe\x17\x12 \n\x1bRTC_MISSED_GROUP_VIDEO_CALL\x10\xbf\x17\x12\x1b\n\x16RTC_ONGOING_AUDIO_CALL\x10\xc0\x17\x12\x1b\n\x16RTC_ONGOING_VIDEO_CALL\x10\xc1\x17\x12 \n\x1bMSG_RECEIVER_FETCH_FALLBACK\x10\xd1\x17\x12\x1a\n\x15\x44\x41TACLASS_SENDER_COPY\x10\xa0\x1f*]\n+EXTENDED_CONTENT_MESSAGE_XMA_DATACLASS_TYPE\x12\x0f\n\x0bSENDER_COPY\x10\x00\x12\n\n\x06SERVER\x10\x01\x12\x11\n\rSIGNED_CLIENT\x10\x02*}\n(EXTENDED_CONTENT_MESSAGE_XMA_LAYOUT_TYPE\x12\n\n\x06SINGLE\x10\x00\x12\x0b\n\x07HSCROLL\x10\x01\x12\x0c\n\x08PORTRAIT\x10\x03\x12\x11\n\rSTANDARD_DXMA\x10\x0c\x12\r\n\tLIST_DXMA\x10\x0f\x12\x08\n\x04GRID\x10\x10*H\n\x15\x46UTURE_PROOF_BEHAVIOR\x12\x0f\n\x0bPLACEHOLDER\x10\x00\x12\x12\n\x0eNO_PLACEHOLDER\x10\x01\x12\n\n\x06IGNORE\x10\x02*@\n\x08KeepType\x12\x0b\n\x07UNKNOWN\x10\x00\x12\x10\n\x0cKEEP_FOR_ALL\x10\x01\x12\x15\n\x11UNDO_KEEP_FOR_ALL\x10\x02*#\n\x14MENTION_MENTION_TYPE\x12\x0b\n\x07PROFILE\x10\x00*h\n\x0eMediaKeyDomain\x12\x1c\n\x18MEDIA_KEY_DOMAIN_UNKNOWN\x10\x00\x12\x19\n\x15MEDIA_KEY_DOMAIN_E2EE\x10\x01\x12\x1d\n\x19MEDIA_KEY_DOMAIN_NON_E2EE\x10\x02*/\n\x0fMediaVisibility\x12\x0b\n\x07\x44\x45\x46\x41ULT\x10\x00\x12\x07\n\x03OFF\x10\x01\x12\x06\n\x02ON\x10\x02*\xe3\x14\n\rMutationProps\x12\x0f\n\x0bSTAR_ACTION\x10\x02\x12\x12\n\x0e\x43ONTACT_ACTION\x10\x03\x12\x0f\n\x0bMUTE_ACTION\x10\x04\x12\x0e\n\nPIN_ACTION\x10\x05\x12!\n\x1dSECURITY_NOTIFICATION_SETTING\x10\x06\x12\x15\n\x11PUSH_NAME_SETTING\x10\x07\x12\x16\n\x12QUICK_REPLY_ACTION\x10\x08\x12\x1f\n\x1bRECENT_EMOJI_WEIGHTS_ACTION\x10\x0b\x12\x18\n\x14LABEL_MESSAGE_ACTION\x10\r\x12\x15\n\x11LABEL_EDIT_ACTION\x10\x0e\x12\x1c\n\x18LABEL_ASSOCIATION_ACTION\x10\x0f\x12\x12\n\x0eLOCALE_SETTING\x10\x10\x12\x17\n\x13\x41RCHIVE_CHAT_ACTION\x10\x11\x12 \n\x1c\x44\x45LETE_MESSAGE_FOR_ME_ACTION\x10\x12\x12\x12\n\x0eKEY_EXPIRATION\x10\x13\x12\x1c\n\x18MARK_CHAT_AS_READ_ACTION\x10\x14\x12\x15\n\x11\x43LEAR_CHAT_ACTION\x10\x15\x12\x16\n\x12\x44\x45LETE_CHAT_ACTION\x10\x16\x12\x1b\n\x17UNARCHIVE_CHATS_SETTING\x10\x17\x12\x13\n\x0fPRIMARY_FEATURE\x10\x18\x12\x1f\n\x1b\x41NDROID_UNSUPPORTED_ACTIONS\x10\x1a\x12\x10\n\x0c\x41GENT_ACTION\x10\x1b\x12\x17\n\x13SUBSCRIPTION_ACTION\x10\x1c\x12\x1b\n\x17USER_STATUS_MUTE_ACTION\x10\x1d\x12\x16\n\x12TIME_FORMAT_ACTION\x10\x1e\x12\x0e\n\nNUX_ACTION\x10\x1f\x12\x1a\n\x16PRIMARY_VERSION_ACTION\x10 \x12\x12\n\x0eSTICKER_ACTION\x10!\x12 \n\x1cREMOVE_RECENT_STICKER_ACTION\x10\"\x12\x13\n\x0f\x43HAT_ASSIGNMENT\x10#\x12!\n\x1d\x43HAT_ASSIGNMENT_OPENED_STATUS\x10$\x12\x1a\n\x16PN_FOR_LID_CHAT_ACTION\x10%\x12\x1c\n\x18MARKETING_MESSAGE_ACTION\x10&\x12&\n\"MARKETING_MESSAGE_BROADCAST_ACTION\x10\'\x12\x1c\n\x18\x45XTERNAL_WEB_BETA_ACTION\x10(\x12#\n\x1fPRIVACY_SETTING_RELAY_ALL_CALLS\x10)\x12\x13\n\x0f\x43\x41LL_LOG_ACTION\x10*\x12\x0b\n\x07UGC_BOT\x10+\x12\x12\n\x0eSTATUS_PRIVACY\x10,\x12\x1e\n\x1a\x42OT_WELCOME_REQUEST_ACTION\x10-\x12\x1e\n\x1a\x44\x45LETE_INDIVIDUAL_CALL_LOG\x10.\x12\x1b\n\x17LABEL_REORDERING_ACTION\x10/\x12\x17\n\x13PAYMENT_INFO_ACTION\x10\x30\x12!\n\x1d\x43USTOM_PAYMENT_METHODS_ACTION\x10\x31\x12\x14\n\x10LOCK_CHAT_ACTION\x10\x32\x12\x16\n\x12\x43HAT_LOCK_SETTINGS\x10\x33\x12\x1f\n\x1bWAMO_USER_IDENTIFIER_ACTION\x10\x34\x12\x30\n,PRIVACY_SETTING_DISABLE_LINK_PREVIEWS_ACTION\x10\x35\x12\x17\n\x13\x44\x45VICE_CAPABILITIES\x10\x36\x12\x14\n\x10NOTE_EDIT_ACTION\x10\x37\x12\x14\n\x10\x46\x41VORITES_ACTION\x10\x38\x12#\n\x1fMERCHANT_PAYMENT_PARTNER_ACTION\x10\x39\x12$\n WAFFLE_ACCOUNT_LINK_STATE_ACTION\x10:\x12\x1c\n\x18USERNAME_CHAT_START_MODE\x10;\x12(\n$NOTIFICATION_ACTIVITY_SETTING_ACTION\x10<\x12\x16\n\x12LID_CONTACT_ACTION\x10=\x12)\n%CTWA_PER_CUSTOMER_DATA_SHARING_ACTION\x10>\x12\x16\n\x12PAYMENT_TOS_ACTION\x10?\x12?\n;PRIVACY_SETTING_CHANNELS_PERSONALISED_RECOMMENDATION_ACTION\x10@\x12)\n%BUSINESS_BROADCAST_ASSOCIATION_ACTION\x10\x41\x12#\n\x1f\x44\x45TECTED_OUTCOMES_STATUS_ACTION\x10\x42\x12$\n MAIBA_AI_FEATURES_CONTROL_ACTION\x10\x44\x12\"\n\x1e\x42USINESS_BROADCAST_LIST_ACTION\x10\x45\x12\x18\n\x14MUSIC_USER_ID_ACTION\x10\x46\x12\x36\n2STATUS_POST_OPT_IN_NOTIFICATION_PREFERENCES_ACTION\x10G\x12\x19\n\x15\x41VATAR_UPDATED_ACTION\x10H\x12\x16\n\x12GALAXY_FLOW_ACTION\x10I\x12%\n!PRIVATE_PROCESSING_SETTING_ACTION\x10J\x12%\n!NEWSLETTER_SAVED_INTERESTS_ACTION\x10K\x12\x1b\n\x17\x41I_THREAD_RENAME_ACTION\x10L\x12\x1e\n\x1aINTERACTIVE_MESSAGE_ACTION\x10M\x12\x18\n\x14SETTINGS_SYNC_ACTION\x10N\x12\x16\n\x12OUT_CONTACT_ACTION\x10O\x12\x18\n\x14NCT_SALT_SYNC_ACTION\x10P\x12&\n\"BUSINESS_BROADCAST_CAMPAIGN_ACTION\x10Q\x12&\n\"BUSINESS_BROADCAST_INSIGHTS_ACTION\x10R\x12\x18\n\x14\x43USTOMER_DATA_ACTION\x10S\x12 \n\x1cSUBSCRIPTIONS_SYNC_V2_ACTION\x10T\x12\x15\n\x11THREAD_PIN_ACTION\x10U\x12\'\n#AUTO_ORGANIZE_BUSINESS_CHAT_SETTING\x10V\x12 \n\x1c\x42IZ_AI_SETTINGS_NUDGE_ACTION\x10W\x12\x1a\n\x16\x43OEX_V2_VERSION_ACTION\x10X\x12\x1b\n\x17WASA_ROOT_SECRET_ACTION\x10Y\x12\x1e\n\x1a\x42UBBLE_LOCK_MESSAGE_ACTION\x10Z\x12\x18\n\x14LABEL_SUBLIST_ACTION\x10[\x12\x1a\n\x16\x44\x45VICE_CAPABILITIES_V2\x10\\\x12 \n\x1c\x43TWA_MESSAGE_RECEIVED_ACTION\x10]\x12\x11\n\x0cSHARE_OWN_PN\x10\x91N\x12\x1e\n\x19\x42USINESS_BROADCAST_ACTION\x10\x92N\x12\x1c\n\x17\x41I_THREAD_DELETE_ACTION\x10\x93N*E\n\x14PrivacySystemMessage\x12\x0c\n\x08\x45\x32\x45\x45_MSG\x10\x01\x12\x0e\n\nNE2EE_SELF\x10\x02\x12\x0f\n\x0bNE2EE_OTHER\x10\x03*H\n\x17SessionTransparencyType\x12\x10\n\x0cUNKNOWN_TYPE\x10\x00\x12\x1b\n\x17NY_AI_SAFETY_DISCLAIMER\x10\x01*.\n\x13WebLinkRenderConfig\x12\x0b\n\x07WEBVIEW\x10\x00\x12\n\n\x06SYSTEM\x10\x01')
_globals = globals()
_builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals)
-_builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'waproto.whatsapp_pb2', _globals)
+_builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'whatsapp_pb2', _globals)
if not _descriptor._USE_C_DESCRIPTORS:
DESCRIPTOR._loaded_options = None
_globals['_ADVKEYINDEXLIST'].fields_by_name['validIndexes']._loaded_options = None
@@ -45,1648 +45,1948 @@
_globals['_MESSAGE_APPSTATESYNCKEYFINGERPRINT'].fields_by_name['deviceIndexes']._serialized_options = b'\020\001'
_globals['_SYNCACTIONVALUE_MUSICUSERIDACTION_MUSICUSERIDMAPENTRY']._loaded_options = None
_globals['_SYNCACTIONVALUE_MUSICUSERIDACTION_MUSICUSERIDMAPENTRY']._serialized_options = b'8\001'
- _globals['_ADVENCRYPTIONTYPE']._serialized_start=158805
- _globals['_ADVENCRYPTIONTYPE']._serialized_end=158860
- _globals['_AIRICHRESPONSEMESSAGETYPE']._serialized_start=158862
- _globals['_AIRICHRESPONSEMESSAGETYPE']._serialized_end=158960
- _globals['_AIRICHRESPONSESUBMESSAGETYPE']._serialized_start=158963
- _globals['_AIRICHRESPONSESUBMESSAGETYPE']._serialized_end=159293
- _globals['_AISUBSCRIPTIONREQUESTTYPE']._serialized_start=159295
- _globals['_AISUBSCRIPTIONREQUESTTYPE']._serialized_end=159385
- _globals['_BOTMETRICSENTRYPOINT']._serialized_start=159388
- _globals['_BOTMETRICSENTRYPOINT']._serialized_end=160682
- _globals['_BOTMETRICSTHREADENTRYPOINT']._serialized_start=160685
- _globals['_BOTMETRICSTHREADENTRYPOINT']._serialized_end=160847
- _globals['_BOTSESSIONSOURCE']._serialized_start=160850
- _globals['_BOTSESSIONSOURCE']._serialized_end=160996
- _globals['_COMMAND_COMMAND_TYPE']._serialized_start=160998
- _globals['_COMMAND_COMMAND_TYPE']._serialized_end=161070
- _globals['_CONSUMER_APPLICATION_METADATA_SPECIAL_TEXT_SIZE']._serialized_start=161072
- _globals['_CONSUMER_APPLICATION_METADATA_SPECIAL_TEXT_SIZE']._serialized_end=161155
- _globals['_CONSUMER_APPLICATION_STATUS_TEXT_MESAGE_FONT_TYPE']._serialized_start=161158
- _globals['_CONSUMER_APPLICATION_STATUS_TEXT_MESAGE_FONT_TYPE']._serialized_end=161317
- _globals['_COLLECTIONNAME']._serialized_start=161320
- _globals['_COLLECTIONNAME']._serialized_end=161459
- _globals['_FUTURE_PROOF_BEHAVIOR']._serialized_start=161461
- _globals['_FUTURE_PROOF_BEHAVIOR']._serialized_end=161533
- _globals['_KEEPTYPE']._serialized_start=161535
- _globals['_KEEPTYPE']._serialized_end=161599
- _globals['_MENTION_MENTION_TYPE']._serialized_start=161601
- _globals['_MENTION_MENTION_TYPE']._serialized_end=161636
- _globals['_MEDIAKEYDOMAIN']._serialized_start=161638
- _globals['_MEDIAKEYDOMAIN']._serialized_end=161742
- _globals['_MEDIAVISIBILITY']._serialized_start=161744
- _globals['_MEDIAVISIBILITY']._serialized_end=161791
- _globals['_MUTATIONPROPS']._serialized_start=161794
- _globals['_MUTATIONPROPS']._serialized_end=164276
- _globals['_PRIVACYSYSTEMMESSAGE']._serialized_start=164278
- _globals['_PRIVACYSYSTEMMESSAGE']._serialized_end=164347
- _globals['_SESSIONTRANSPARENCYTYPE']._serialized_start=164349
- _globals['_SESSIONTRANSPARENCYTYPE']._serialized_end=164421
- _globals['_WEBLINKRENDERCONFIG']._serialized_start=164423
- _globals['_WEBLINKRENDERCONFIG']._serialized_end=164469
- _globals['_ADVDEVICEIDENTITY']._serialized_start=37
- _globals['_ADVDEVICEIDENTITY']._serialized_end=207
- _globals['_ADVKEYINDEXLIST']._serialized_start=210
- _globals['_ADVKEYINDEXLIST']._serialized_end=359
- _globals['_ADVSIGNEDDEVICEIDENTITY']._serialized_start=361
- _globals['_ADVSIGNEDDEVICEIDENTITY']._serialized_end=483
- _globals['_ADVSIGNEDDEVICEIDENTITYHMAC']._serialized_start=485
- _globals['_ADVSIGNEDDEVICEIDENTITYHMAC']._serialized_end=595
- _globals['_ADVSIGNEDKEYINDEXLIST']._serialized_start=597
- _globals['_ADVSIGNEDKEYINDEXLIST']._serialized_end=692
- _globals['_AIHOMESTATE']._serialized_start=695
- _globals['_AIHOMESTATE']._serialized_end=1227
- _globals['_AIHOMESTATE_AIHOMEOPTION']._serialized_start=862
- _globals['_AIHOMESTATE_AIHOMEOPTION']._serialized_end=1227
- _globals['_AIHOMESTATE_AIHOMEOPTION_AIHOMEACTIONTYPE']._serialized_start=1101
- _globals['_AIHOMESTATE_AIHOMEOPTION_AIHOMEACTIONTYPE']._serialized_end=1227
- _globals['_AIMEDIACOLLECTIONMESSAGE']._serialized_start=1229
- _globals['_AIMEDIACOLLECTIONMESSAGE']._serialized_end=1331
- _globals['_AIMEDIACOLLECTIONMETADATA']._serialized_start=1333
- _globals['_AIMEDIACOLLECTIONMETADATA']._serialized_end=1408
- _globals['_AIMETADATAOPERATION']._serialized_start=1410
- _globals['_AIMETADATAOPERATION']._serialized_end=1487
- _globals['_AIQUERYFANOUT']._serialized_start=1489
- _globals['_AIQUERYFANOUT']._serialized_end=1601
- _globals['_AIREGENERATEMETADATA']._serialized_start=1603
- _globals['_AIREGENERATEMETADATA']._serialized_end=1696
- _globals['_AIRICHRESPONSECODEMETADATA']._serialized_start=1699
- _globals['_AIRICHRESPONSECODEMETADATA']._serialized_end=2276
- _globals['_AIRICHRESPONSECODEMETADATA_AIRICHRESPONSECODEBLOCK']._serialized_start=1834
- _globals['_AIRICHRESPONSECODEMETADATA_AIRICHRESPONSECODEBLOCK']._serialized_end=1973
- _globals['_AIRICHRESPONSECODEMETADATA_AIRICHRESPONSECODEHIGHLIGHTTYPE']._serialized_start=1976
- _globals['_AIRICHRESPONSECODEMETADATA_AIRICHRESPONSECODEHIGHLIGHTTYPE']._serialized_end=2276
- _globals['_AIRICHRESPONSECONTENTITEMSMETADATA']._serialized_start=2279
- _globals['_AIRICHRESPONSECONTENTITEMSMETADATA']._serialized_end=2800
- _globals['_AIRICHRESPONSECONTENTITEMSMETADATA_AIRICHRESPONSECONTENTITEMMETADATA']._serialized_start=2500
- _globals['_AIRICHRESPONSECONTENTITEMSMETADATA_AIRICHRESPONSECONTENTITEMMETADATA']._serialized_end=2653
- _globals['_AIRICHRESPONSECONTENTITEMSMETADATA_AIRICHRESPONSEREELITEM']._serialized_start=2655
- _globals['_AIRICHRESPONSECONTENTITEMSMETADATA_AIRICHRESPONSEREELITEM']._serialized_end=2758
- _globals['_AIRICHRESPONSECONTENTITEMSMETADATA_CONTENTTYPE']._serialized_start=2760
- _globals['_AIRICHRESPONSECONTENTITEMSMETADATA_CONTENTTYPE']._serialized_end=2800
- _globals['_AIRICHRESPONSEDYNAMICMETADATA']._serialized_start=2803
- _globals['_AIRICHRESPONSEDYNAMICMETADATA']._serialized_end=3160
- _globals['_AIRICHRESPONSEDYNAMICMETADATA_AIRICHRESPONSEDYNAMICMETADATATYPE']._serialized_start=2975
- _globals['_AIRICHRESPONSEDYNAMICMETADATA_AIRICHRESPONSEDYNAMICMETADATATYPE']._serialized_end=3160
- _globals['_AIRICHRESPONSEGRIDIMAGEMETADATA']._serialized_start=3163
- _globals['_AIRICHRESPONSEGRIDIMAGEMETADATA']._serialized_end=3305
- _globals['_AIRICHRESPONSEIMAGEURL']._serialized_start=3307
- _globals['_AIRICHRESPONSEIMAGEURL']._serialized_end=3400
- _globals['_AIRICHRESPONSEINLINEIMAGEMETADATA']._serialized_start=3403
- _globals['_AIRICHRESPONSEINLINEIMAGEMETADATA']._serialized_end=3808
- _globals['_AIRICHRESPONSEINLINEIMAGEMETADATA_AIRICHRESPONSEIMAGEALIGNMENT']._serialized_start=3625
- _globals['_AIRICHRESPONSEINLINEIMAGEMETADATA_AIRICHRESPONSEIMAGEALIGNMENT']._serialized_end=3808
- _globals['_AIRICHRESPONSELATEXMETADATA']._serialized_start=3811
- _globals['_AIRICHRESPONSELATEXMETADATA']._serialized_end=4179
- _globals['_AIRICHRESPONSELATEXMETADATA_AIRICHRESPONSELATEXEXPRESSION']._serialized_start=3947
- _globals['_AIRICHRESPONSELATEXMETADATA_AIRICHRESPONSELATEXEXPRESSION']._serialized_end=4179
- _globals['_AIRICHRESPONSEMAPMETADATA']._serialized_start=4182
- _globals['_AIRICHRESPONSEMAPMETADATA']._serialized_end=4536
- _globals['_AIRICHRESPONSEMAPMETADATA_AIRICHRESPONSEMAPANNOTATION']._serialized_start=4415
- _globals['_AIRICHRESPONSEMAPMETADATA_AIRICHRESPONSEMAPANNOTATION']._serialized_end=4536
- _globals['_AIRICHRESPONSEMESSAGE']._serialized_start=4539
- _globals['_AIRICHRESPONSEMESSAGE']._serialized_end=4787
- _globals['_AIRICHRESPONSESUBMESSAGE']._serialized_start=4790
- _globals['_AIRICHRESPONSESUBMESSAGE']._serialized_end=5420
- _globals['_AIRICHRESPONSETABLEMETADATA']._serialized_start=5423
- _globals['_AIRICHRESPONSETABLEMETADATA']._serialized_end=5603
- _globals['_AIRICHRESPONSETABLEMETADATA_AIRICHRESPONSETABLEROW']._serialized_start=5545
- _globals['_AIRICHRESPONSETABLEMETADATA_AIRICHRESPONSETABLEROW']._serialized_end=5603
- _globals['_AIRICHRESPONSEUNIFIEDRESPONSE']._serialized_start=5605
- _globals['_AIRICHRESPONSEUNIFIEDRESPONSE']._serialized_end=5650
- _globals['_AISUBSCRIPTIONUPSELLMETADATA']._serialized_start=5652
- _globals['_AISUBSCRIPTIONUPSELLMETADATA']._serialized_end=5740
- _globals['_AITHREADINFO']._serialized_start=5743
- _globals['_AITHREADINFO']._serialized_end=6108
- _globals['_AITHREADINFO_AITHREADCLIENTINFO']._serialized_start=5886
- _globals['_AITHREADINFO_AITHREADCLIENTINFO']._serialized_end=6071
- _globals['_AITHREADINFO_AITHREADCLIENTINFO_AITHREADTYPE']._serialized_start=6001
- _globals['_AITHREADINFO_AITHREADCLIENTINFO_AITHREADTYPE']._serialized_end=6071
- _globals['_AITHREADINFO_AITHREADSERVERINFO']._serialized_start=6073
- _globals['_AITHREADINFO_AITHREADSERVERINFO']._serialized_end=6108
- _globals['_ACCOUNT']._serialized_start=6110
- _globals['_ACCOUNT']._serialized_end=6198
- _globals['_ACCOUNTLINKINGOPAQUEDATA']._serialized_start=6200
- _globals['_ACCOUNTLINKINGOPAQUEDATA']._serialized_end=6303
- _globals['_ACTIONLINK']._serialized_start=6305
- _globals['_ACTIONLINK']._serialized_end=6351
- _globals['_AUTODOWNLOADSETTINGS']._serialized_start=6353
- _globals['_AUTODOWNLOADSETTINGS']._serialized_end=6472
- _globals['_AVATARUSERSETTINGS']._serialized_start=6474
- _globals['_AVATARUSERSETTINGS']._serialized_end=6526
- _globals['_BIZACCOUNTLINKINFO']._serialized_start=6529
- _globals['_BIZACCOUNTLINKINFO']._serialized_end=6835
- _globals['_BIZACCOUNTLINKINFO_ACCOUNTTYPE']._serialized_start=6757
- _globals['_BIZACCOUNTLINKINFO_ACCOUNTTYPE']._serialized_end=6786
- _globals['_BIZACCOUNTLINKINFO_HOSTSTORAGETYPE']._serialized_start=6788
- _globals['_BIZACCOUNTLINKINFO_HOSTSTORAGETYPE']._serialized_end=6835
- _globals['_BIZACCOUNTPAYLOAD']._serialized_start=6837
- _globals['_BIZACCOUNTPAYLOAD']._serialized_end=6935
- _globals['_BIZIDENTITYINFO']._serialized_start=6938
- _globals['_BIZIDENTITYINFO']._serialized_end=7424
- _globals['_BIZIDENTITYINFO_ACTUALACTORSTYPE']._serialized_start=7284
- _globals['_BIZIDENTITYINFO_ACTUALACTORSTYPE']._serialized_end=7321
- _globals['_BIZIDENTITYINFO_HOSTSTORAGETYPE']._serialized_start=6788
- _globals['_BIZIDENTITYINFO_HOSTSTORAGETYPE']._serialized_end=6835
- _globals['_BIZIDENTITYINFO_VERIFIEDLEVELVALUE']._serialized_start=7372
- _globals['_BIZIDENTITYINFO_VERIFIEDLEVELVALUE']._serialized_end=7424
- _globals['_BOTAGECOLLECTIONMETADATA']._serialized_start=7427
- _globals['_BOTAGECOLLECTIONMETADATA']._serialized_end=7658
- _globals['_BOTAGECOLLECTIONMETADATA_AGECOLLECTIONTYPE']._serialized_start=7611
- _globals['_BOTAGECOLLECTIONMETADATA_AGECOLLECTIONTYPE']._serialized_end=7658
- _globals['_BOTAGENTDEEPLINKMETADATA']._serialized_start=7660
- _globals['_BOTAGENTDEEPLINKMETADATA']._serialized_end=7701
- _globals['_BOTAGENTMETADATA']._serialized_start=7703
- _globals['_BOTAGENTMETADATA']._serialized_end=7783
- _globals['_BOTCAPABILITYMETADATA']._serialized_start=7786
- _globals['_BOTCAPABILITYMETADATA']._serialized_end=10099
- _globals['_BOTCAPABILITYMETADATA_BOTCAPABILITYTYPE']._serialized_start=7885
- _globals['_BOTCAPABILITYMETADATA_BOTCAPABILITYTYPE']._serialized_end=10099
- _globals['_BOTCOMMANDMETADATA']._serialized_start=10101
- _globals['_BOTCOMMANDMETADATA']._serialized_end=10193
- _globals['_BOTDOCUMENTMESSAGEMETADATA']._serialized_start=10196
- _globals['_BOTDOCUMENTMESSAGEMETADATA']._serialized_end=10364
- _globals['_BOTDOCUMENTMESSAGEMETADATA_DOCUMENTPLUGINTYPE']._serialized_start=10303
- _globals['_BOTDOCUMENTMESSAGEMETADATA_DOCUMENTPLUGINTYPE']._serialized_end=10364
- _globals['_BOTFEEDBACKMESSAGE']._serialized_start=10367
- _globals['_BOTFEEDBACKMESSAGE']._serialized_end=13701
- _globals['_BOTFEEDBACKMESSAGE_SIDEBYSIDESURVEYMETADATA']._serialized_start=10700
- _globals['_BOTFEEDBACKMESSAGE_SIDEBYSIDESURVEYMETADATA']._serialized_end=12521
- _globals['_BOTFEEDBACKMESSAGE_SIDEBYSIDESURVEYMETADATA_SIDEBYSIDESURVEYANALYTICSDATA']._serialized_start=11144
- _globals['_BOTFEEDBACKMESSAGE_SIDEBYSIDESURVEYMETADATA_SIDEBYSIDESURVEYANALYTICSDATA']._serialized_end=11247
- _globals['_BOTFEEDBACKMESSAGE_SIDEBYSIDESURVEYMETADATA_SIDEBYSIDESURVEYMETAAIANALYTICSDATA']._serialized_start=11250
- _globals['_BOTFEEDBACKMESSAGE_SIDEBYSIDESURVEYMETADATA_SIDEBYSIDESURVEYMETAAIANALYTICSDATA']._serialized_end=12521
- _globals['_BOTFEEDBACKMESSAGE_SIDEBYSIDESURVEYMETADATA_SIDEBYSIDESURVEYMETAAIANALYTICSDATA_SIDEBYSIDESURVEYABANDONEVENTDATA']._serialized_start=12149
- _globals['_BOTFEEDBACKMESSAGE_SIDEBYSIDESURVEYMETADATA_SIDEBYSIDESURVEYMETAAIANALYTICSDATA_SIDEBYSIDESURVEYABANDONEVENTDATA']._serialized_end=12217
- _globals['_BOTFEEDBACKMESSAGE_SIDEBYSIDESURVEYMETADATA_SIDEBYSIDESURVEYMETAAIANALYTICSDATA_SIDEBYSIDESURVEYCTACLICKEVENTDATA']._serialized_start=12219
- _globals['_BOTFEEDBACKMESSAGE_SIDEBYSIDESURVEYMETADATA_SIDEBYSIDESURVEYMETAAIANALYTICSDATA_SIDEBYSIDESURVEYCTACLICKEVENTDATA']._serialized_end=12311
- _globals['_BOTFEEDBACKMESSAGE_SIDEBYSIDESURVEYMETADATA_SIDEBYSIDESURVEYMETAAIANALYTICSDATA_SIDEBYSIDESURVEYCTAIMPRESSIONEVENTDATA']._serialized_start=12313
- _globals['_BOTFEEDBACKMESSAGE_SIDEBYSIDESURVEYMETADATA_SIDEBYSIDESURVEYMETAAIANALYTICSDATA_SIDEBYSIDESURVEYCTAIMPRESSIONEVENTDATA']._serialized_end=12378
- _globals['_BOTFEEDBACKMESSAGE_SIDEBYSIDESURVEYMETADATA_SIDEBYSIDESURVEYMETAAIANALYTICSDATA_SIDEBYSIDESURVEYCARDIMPRESSIONEVENTDATA']._serialized_start=12380
- _globals['_BOTFEEDBACKMESSAGE_SIDEBYSIDESURVEYMETADATA_SIDEBYSIDESURVEYMETAAIANALYTICSDATA_SIDEBYSIDESURVEYCARDIMPRESSIONEVENTDATA']._serialized_end=12421
- _globals['_BOTFEEDBACKMESSAGE_SIDEBYSIDESURVEYMETADATA_SIDEBYSIDESURVEYMETAAIANALYTICSDATA_SIDEBYSIDESURVEYRESPONSEEVENTDATA']._serialized_start=12423
- _globals['_BOTFEEDBACKMESSAGE_SIDEBYSIDESURVEYMETADATA_SIDEBYSIDESURVEYMETAAIANALYTICSDATA_SIDEBYSIDESURVEYRESPONSEEVENTDATA']._serialized_end=12521
- _globals['_BOTFEEDBACKMESSAGE_BOTFEEDBACKKIND']._serialized_start=12524
- _globals['_BOTFEEDBACKMESSAGE_BOTFEEDBACKKIND']._serialized_end=13123
- _globals['_BOTFEEDBACKMESSAGE_BOTFEEDBACKKINDMULTIPLENEGATIVE']._serialized_start=13126
- _globals['_BOTFEEDBACKMESSAGE_BOTFEEDBACKKINDMULTIPLENEGATIVE']._serialized_end=13585
- _globals['_BOTFEEDBACKMESSAGE_BOTFEEDBACKKINDMULTIPLEPOSITIVE']._serialized_start=13587
- _globals['_BOTFEEDBACKMESSAGE_BOTFEEDBACKKINDMULTIPLEPOSITIVE']._serialized_end=13664
- _globals['_BOTFEEDBACKMESSAGE_REPORTKIND']._serialized_start=13666
- _globals['_BOTFEEDBACKMESSAGE_REPORTKIND']._serialized_end=13701
- _globals['_BOTGROUPMETADATA']._serialized_start=13703
- _globals['_BOTGROUPMETADATA']._serialized_end=13790
- _globals['_BOTGROUPPARTICIPANTMETADATA']._serialized_start=13792
- _globals['_BOTGROUPPARTICIPANTMETADATA']._serialized_end=13838
- _globals['_BOTIMAGINEMETADATA']._serialized_start=13841
- _globals['_BOTIMAGINEMETADATA']._serialized_end=14017
- _globals['_BOTIMAGINEMETADATA_IMAGINETYPE']._serialized_start=13947
- _globals['_BOTIMAGINEMETADATA_IMAGINETYPE']._serialized_end=14017
- _globals['_BOTINFRASTRUCTUREDIAGNOSTICS']._serialized_start=14020
- _globals['_BOTINFRASTRUCTUREDIAGNOSTICS']._serialized_end=14196
- _globals['_BOTINFRASTRUCTUREDIAGNOSTICS_BOTBACKEND']._serialized_start=14162
- _globals['_BOTINFRASTRUCTUREDIAGNOSTICS_BOTBACKEND']._serialized_end=14196
- _globals['_BOTLINKEDACCOUNT']._serialized_start=14199
- _globals['_BOTLINKEDACCOUNT']._serialized_end=14336
- _globals['_BOTLINKEDACCOUNT_BOTLINKEDACCOUNTTYPE']._serialized_start=14282
- _globals['_BOTLINKEDACCOUNT_BOTLINKEDACCOUNTTYPE']._serialized_end=14336
- _globals['_BOTLINKEDACCOUNTSMETADATA']._serialized_start=14338
- _globals['_BOTLINKEDACCOUNTSMETADATA']._serialized_end=14454
- _globals['_BOTMEDIAMETADATA']._serialized_start=14457
- _globals['_BOTMEDIAMETADATA']._serialized_end=14722
- _globals['_BOTMEDIAMETADATA_ORIENTATIONTYPE']._serialized_start=14672
- _globals['_BOTMEDIAMETADATA_ORIENTATIONTYPE']._serialized_end=14722
- _globals['_BOTMEMORYFACT']._serialized_start=14724
- _globals['_BOTMEMORYFACT']._serialized_end=14769
- _globals['_BOTMEMORYMETADATA']._serialized_start=14772
- _globals['_BOTMEMORYMETADATA']._serialized_end=14903
- _globals['_BOTMEMUMETADATA']._serialized_start=14905
- _globals['_BOTMEMUMETADATA']._serialized_end=14970
- _globals['_BOTMESSAGEORIGIN']._serialized_start=14973
- _globals['_BOTMESSAGEORIGIN']._serialized_end=15120
- _globals['_BOTMESSAGEORIGIN_BOTMESSAGEORIGINTYPE']._serialized_start=15056
- _globals['_BOTMESSAGEORIGIN_BOTMESSAGEORIGINTYPE']._serialized_end=15120
- _globals['_BOTMESSAGEORIGINMETADATA']._serialized_start=15122
- _globals['_BOTMESSAGEORIGINMETADATA']._serialized_end=15193
- _globals['_BOTMESSAGESHARINGINFO']._serialized_start=15195
- _globals['_BOTMESSAGESHARINGINFO']._serialized_end=15301
- _globals['_BOTMETADATA']._serialized_start=15304
- _globals['_BOTMETADATA']._serialized_end=17708
- _globals['_BOTMETRICSMETADATA']._serialized_start=17711
- _globals['_BOTMETRICSMETADATA']._serialized_end=17877
- _globals['_BOTMODESELECTIONMETADATA']._serialized_start=17880
- _globals['_BOTMODESELECTIONMETADATA']._serialized_end=18062
- _globals['_BOTMODESELECTIONMETADATA_BOTUSERSELECTIONMODE']._serialized_start=18001
- _globals['_BOTMODESELECTIONMETADATA_BOTUSERSELECTIONMODE']._serialized_end=18062
- _globals['_BOTMODELMETADATA']._serialized_start=18065
- _globals['_BOTMODELMETADATA']._serialized_end=18394
- _globals['_BOTMODELMETADATA_MODELTYPE']._serialized_start=18244
- _globals['_BOTMODELMETADATA_MODELTYPE']._serialized_end=18313
- _globals['_BOTMODELMETADATA_PREMIUMMODELSTATUS']._serialized_start=18315
- _globals['_BOTMODELMETADATA_PREMIUMMODELSTATUS']._serialized_end=18394
- _globals['_BOTPLUGINMETADATA']._serialized_start=18397
- _globals['_BOTPLUGINMETADATA']._serialized_end=19022
- _globals['_BOTPLUGINMETADATA_PLUGINTYPE']._serialized_start=18901
- _globals['_BOTPLUGINMETADATA_PLUGINTYPE']._serialized_end=18956
- _globals['_BOTPLUGINMETADATA_SEARCHPROVIDER']._serialized_start=18958
- _globals['_BOTPLUGINMETADATA_SEARCHPROVIDER']._serialized_end=19022
- _globals['_BOTPROGRESSINDICATORMETADATA']._serialized_start=19025
- _globals['_BOTPROGRESSINDICATORMETADATA']._serialized_end=20514
- _globals['_BOTPROGRESSINDICATORMETADATA_BOTPLANNINGSTEPMETADATA']._serialized_start=19207
- _globals['_BOTPROGRESSINDICATORMETADATA_BOTPLANNINGSTEPMETADATA']._serialized_end=20514
- _globals['_BOTPROGRESSINDICATORMETADATA_BOTPLANNINGSTEPMETADATA_BOTPLANNINGSEARCHSOURCEMETADATA']._serialized_start=19657
- _globals['_BOTPROGRESSINDICATORMETADATA_BOTPLANNINGSTEPMETADATA_BOTPLANNINGSEARCHSOURCEMETADATA']._serialized_end=19850
- _globals['_BOTPROGRESSINDICATORMETADATA_BOTPLANNINGSTEPMETADATA_BOTPLANNINGSEARCHSOURCESMETADATA']._serialized_start=19853
- _globals['_BOTPROGRESSINDICATORMETADATA_BOTPLANNINGSTEPMETADATA_BOTPLANNINGSEARCHSOURCESMETADATA']._serialized_end=20156
- _globals['_BOTPROGRESSINDICATORMETADATA_BOTPLANNINGSTEPMETADATA_BOTPLANNINGSEARCHSOURCESMETADATA_BOTPLANNINGSEARCHSOURCEPROVIDER']._serialized_start=20077
- _globals['_BOTPROGRESSINDICATORMETADATA_BOTPLANNINGSTEPMETADATA_BOTPLANNINGSEARCHSOURCESMETADATA_BOTPLANNINGSEARCHSOURCEPROVIDER']._serialized_end=20156
- _globals['_BOTPROGRESSINDICATORMETADATA_BOTPLANNINGSTEPMETADATA_BOTPLANNINGSTEPSECTIONMETADATA']._serialized_start=20159
- _globals['_BOTPROGRESSINDICATORMETADATA_BOTPLANNINGSTEPMETADATA_BOTPLANNINGSTEPSECTIONMETADATA']._serialized_end=20355
- _globals['_BOTPROGRESSINDICATORMETADATA_BOTPLANNINGSTEPMETADATA_BOTSEARCHSOURCEPROVIDER']._serialized_start=20357
- _globals['_BOTPROGRESSINDICATORMETADATA_BOTPLANNINGSTEPMETADATA_BOTSEARCHSOURCEPROVIDER']._serialized_end=20437
- _globals['_BOTPROGRESSINDICATORMETADATA_BOTPLANNINGSTEPMETADATA_PLANNINGSTEPSTATUS']._serialized_start=20439
- _globals['_BOTPROGRESSINDICATORMETADATA_BOTPLANNINGSTEPMETADATA_PLANNINGSTEPSTATUS']._serialized_end=20514
- _globals['_BOTPROMOTIONMESSAGEMETADATA']._serialized_start=20517
- _globals['_BOTPROMOTIONMESSAGEMETADATA']._serialized_end=20714
- _globals['_BOTPROMOTIONMESSAGEMETADATA_BOTPROMOTIONTYPE']._serialized_start=20648
- _globals['_BOTPROMOTIONMESSAGEMETADATA_BOTPROMOTIONTYPE']._serialized_end=20714
- _globals['_BOTPROMPTSUGGESTION']._serialized_start=20716
- _globals['_BOTPROMPTSUGGESTION']._serialized_end=20771
- _globals['_BOTPROMPTSUGGESTIONS']._serialized_start=20773
- _globals['_BOTPROMPTSUGGESTIONS']._serialized_end=20847
- _globals['_BOTPTTPROMPTMETADATA']._serialized_start=20849
- _globals['_BOTPTTPROMPTMETADATA']._serialized_end=20891
- _globals['_BOTQUOTAMETADATA']._serialized_start=20894
- _globals['_BOTQUOTAMETADATA']._serialized_end=21228
- _globals['_BOTQUOTAMETADATA_BOTFEATUREQUOTAMETADATA']._serialized_start=21000
- _globals['_BOTQUOTAMETADATA_BOTFEATUREQUOTAMETADATA']._serialized_end=21228
- _globals['_BOTQUOTAMETADATA_BOTFEATUREQUOTAMETADATA_BOTFEATURETYPE']._serialized_start=21168
- _globals['_BOTQUOTAMETADATA_BOTFEATUREQUOTAMETADATA_BOTFEATURETYPE']._serialized_end=21228
- _globals['_BOTREMINDERMETADATA']._serialized_start=21231
- _globals['_BOTREMINDERMETADATA']._serialized_end=21622
- _globals['_BOTREMINDERMETADATA_REMINDERACTION']._serialized_start=21477
- _globals['_BOTREMINDERMETADATA_REMINDERACTION']._serialized_end=21541
- _globals['_BOTREMINDERMETADATA_REMINDERFREQUENCY']._serialized_start=21543
- _globals['_BOTREMINDERMETADATA_REMINDERFREQUENCY']._serialized_end=21622
- _globals['_BOTRENDERINGCONFIGMETADATA']._serialized_start=21624
- _globals['_BOTRENDERINGCONFIGMETADATA']._serialized_end=21701
- _globals['_BOTRENDERINGMETADATA']._serialized_start=21704
- _globals['_BOTRENDERINGMETADATA']._serialized_end=21837
- _globals['_BOTRENDERINGMETADATA_KEYWORD']._serialized_start=21786
- _globals['_BOTRENDERINGMETADATA_KEYWORD']._serialized_end=21837
- _globals['_BOTRESOLVEDTOOLCALLMETADATA']._serialized_start=21839
- _globals['_BOTRESOLVEDTOOLCALLMETADATA']._serialized_end=21922
- _globals['_BOTSESSIONMETADATA']._serialized_start=21924
- _globals['_BOTSESSIONMETADATA']._serialized_end=22014
- _globals['_BOTSIGNATUREVERIFICATIONMETADATA']._serialized_start=22016
- _globals['_BOTSIGNATUREVERIFICATIONMETADATA']._serialized_end=22114
- _globals['_BOTSIGNATUREVERIFICATIONUSECASEPROOF']._serialized_start=22117
- _globals['_BOTSIGNATUREVERIFICATIONUSECASEPROOF']._serialized_end=22393
- _globals['_BOTSIGNATUREVERIFICATIONUSECASEPROOF_BOTSIGNATUREUSECASE']._serialized_start=22304
- _globals['_BOTSIGNATUREVERIFICATIONUSECASEPROOF_BOTSIGNATUREUSECASE']._serialized_end=22393
- _globals['_BOTSOURCESMETADATA']._serialized_start=22396
- _globals['_BOTSOURCESMETADATA']._serialized_end=22790
- _globals['_BOTSOURCESMETADATA_BOTSOURCEITEM']._serialized_start=22480
- _globals['_BOTSOURCESMETADATA_BOTSOURCEITEM']._serialized_end=22790
- _globals['_BOTSOURCESMETADATA_BOTSOURCEITEM_SOURCEPROVIDER']._serialized_start=22715
- _globals['_BOTSOURCESMETADATA_BOTSOURCEITEM_SOURCEPROVIDER']._serialized_end=22790
- _globals['_BOTSUGGESTEDPROMPTMETADATA']._serialized_start=22793
- _globals['_BOTSUGGESTEDPROMPTMETADATA']._serialized_end=22961
- _globals['_BOTUNIFIEDRESPONSEMUTATION']._serialized_start=22964
- _globals['_BOTUNIFIEDRESPONSEMUTATION']._serialized_end=23379
- _globals['_BOTUNIFIEDRESPONSEMUTATION_MEDIADETAILSMETADATA']._serialized_start=23166
- _globals['_BOTUNIFIEDRESPONSEMUTATION_MEDIADETAILSMETADATA']._serialized_end=23300
- _globals['_BOTUNIFIEDRESPONSEMUTATION_SIDEBYSIDEMETADATA']._serialized_start=23302
- _globals['_BOTUNIFIEDRESPONSEMUTATION_SIDEBYSIDEMETADATA']._serialized_end=23379
- _globals['_CALLLOGRECORD']._serialized_start=23382
- _globals['_CALLLOGRECORD']._serialized_end=24252
- _globals['_CALLLOGRECORD_PARTICIPANTINFO']._serialized_start=23851
- _globals['_CALLLOGRECORD_PARTICIPANTINFO']._serialized_end=23941
- _globals['_CALLLOGRECORD_CALLRESULT']._serialized_start=23944
- _globals['_CALLLOGRECORD_CALLRESULT']._serialized_end=24119
- _globals['_CALLLOGRECORD_CALLTYPE']._serialized_start=24121
- _globals['_CALLLOGRECORD_CALLTYPE']._serialized_end=24180
- _globals['_CALLLOGRECORD_SILENCEREASON']._serialized_start=24182
- _globals['_CALLLOGRECORD_SILENCEREASON']._serialized_end=24252
- _globals['_CERTCHAIN']._serialized_start=24255
- _globals['_CERTCHAIN']._serialized_end=24534
- _globals['_CERTCHAIN_NOISECERTIFICATE']._serialized_start=24381
- _globals['_CERTCHAIN_NOISECERTIFICATE']._serialized_end=24534
- _globals['_CERTCHAIN_NOISECERTIFICATE_DETAILS']._serialized_start=24437
- _globals['_CERTCHAIN_NOISECERTIFICATE_DETAILS']._serialized_end=24534
- _globals['_CHATLOCKSETTINGS']._serialized_start=24536
- _globals['_CHATLOCKSETTINGS']._serialized_end=24623
- _globals['_CHATROWOPAQUEDATA']._serialized_start=24626
- _globals['_CHATROWOPAQUEDATA']._serialized_end=25483
- _globals['_CHATROWOPAQUEDATA_DRAFTMESSAGE']._serialized_start=24712
- _globals['_CHATROWOPAQUEDATA_DRAFTMESSAGE']._serialized_end=25483
- _globals['_CHATROWOPAQUEDATA_DRAFTMESSAGE_CTWACONTEXTDATA']._serialized_start=24952
- _globals['_CHATROWOPAQUEDATA_DRAFTMESSAGE_CTWACONTEXTDATA']._serialized_end=25389
- _globals['_CHATROWOPAQUEDATA_DRAFTMESSAGE_CTWACONTEXTDATA_CONTEXTINFOEXTERNALADREPLYINFOMEDIATYPE']._serialized_start=25316
- _globals['_CHATROWOPAQUEDATA_DRAFTMESSAGE_CTWACONTEXTDATA_CONTEXTINFOEXTERNALADREPLYINFOMEDIATYPE']._serialized_end=25389
- _globals['_CHATROWOPAQUEDATA_DRAFTMESSAGE_CTWACONTEXTLINKDATA']._serialized_start=25391
- _globals['_CHATROWOPAQUEDATA_DRAFTMESSAGE_CTWACONTEXTLINKDATA']._serialized_end=25483
- _globals['_CITATION']._serialized_start=25485
- _globals['_CITATION']._serialized_end=25561
- _globals['_CLIENTPAIRINGPROPS']._serialized_start=25564
- _globals['_CLIENTPAIRINGPROPS']._serialized_end=25751
- _globals['_CLIENTPAYLOAD']._serialized_start=25754
- _globals['_CLIENTPAYLOAD']._serialized_end=30283
- _globals['_CLIENTPAYLOAD_DNSSOURCE']._serialized_start=26940
- _globals['_CLIENTPAYLOAD_DNSSOURCE']._serialized_end=27180
- _globals['_CLIENTPAYLOAD_DNSSOURCE_DNSRESOLUTIONMETHOD']._serialized_start=27047
- _globals['_CLIENTPAYLOAD_DNSSOURCE_DNSRESOLUTIONMETHOD']._serialized_end=27180
- _globals['_CLIENTPAYLOAD_DEVICEPAIRINGREGISTRATIONDATA']._serialized_start=27183
- _globals['_CLIENTPAYLOAD_DEVICEPAIRINGREGISTRATIONDATA']._serialized_end=27357
- _globals['_CLIENTPAYLOAD_INTEROPDATA']._serialized_start=27359
- _globals['_CLIENTPAYLOAD_INTEROPDATA']._serialized_end=27434
- _globals['_CLIENTPAYLOAD_USERAGENT']._serialized_start=27437
- _globals['_CLIENTPAYLOAD_USERAGENT']._serialized_end=28930
- _globals['_CLIENTPAYLOAD_USERAGENT_APPVERSION']._serialized_start=28060
- _globals['_CLIENTPAYLOAD_USERAGENT_APPVERSION']._serialized_end=28163
- _globals['_CLIENTPAYLOAD_USERAGENT_DEVICETYPE']._serialized_start=28165
- _globals['_CLIENTPAYLOAD_USERAGENT_DEVICETYPE']._serialized_end=28235
- _globals['_CLIENTPAYLOAD_USERAGENT_DISTRIBUTIONCHANNEL']._serialized_start=28237
- _globals['_CLIENTPAYLOAD_USERAGENT_DISTRIBUTIONCHANNEL']._serialized_end=28315
- _globals['_CLIENTPAYLOAD_USERAGENT_PLATFORM']._serialized_start=28318
- _globals['_CLIENTPAYLOAD_USERAGENT_PLATFORM']._serialized_end=28867
- _globals['_CLIENTPAYLOAD_USERAGENT_RELEASECHANNEL']._serialized_start=28869
- _globals['_CLIENTPAYLOAD_USERAGENT_RELEASECHANNEL']._serialized_end=28930
- _globals['_CLIENTPAYLOAD_WEBINFO']._serialized_start=28933
- _globals['_CLIENTPAYLOAD_WEBINFO']._serialized_end=29578
- _globals['_CLIENTPAYLOAD_WEBINFO_WEBDPAYLOAD']._serialized_start=29159
- _globals['_CLIENTPAYLOAD_WEBINFO_WEBDPAYLOAD']._serialized_end=29474
- _globals['_CLIENTPAYLOAD_WEBINFO_WEBSUBPLATFORM']._serialized_start=29476
- _globals['_CLIENTPAYLOAD_WEBINFO_WEBSUBPLATFORM']._serialized_end=29578
- _globals['_CLIENTPAYLOAD_ACCOUNTTYPE']._serialized_start=29580
- _globals['_CLIENTPAYLOAD_ACCOUNTTYPE']._serialized_end=29617
- _globals['_CLIENTPAYLOAD_CONNECTREASON']._serialized_start=29620
- _globals['_CLIENTPAYLOAD_CONNECTREASON']._serialized_end=29754
- _globals['_CLIENTPAYLOAD_CONNECTTYPE']._serialized_start=29757
- _globals['_CLIENTPAYLOAD_CONNECTTYPE']._serialized_end=30061
- _globals['_CLIENTPAYLOAD_IOSAPPEXTENSION']._serialized_start=30063
- _globals['_CLIENTPAYLOAD_IOSAPPEXTENSION']._serialized_end=30147
- _globals['_CLIENTPAYLOAD_PRODUCT']._serialized_start=30149
- _globals['_CLIENTPAYLOAD_PRODUCT']._serialized_end=30236
- _globals['_CLIENTPAYLOAD_TRAFFICANONYMIZATION']._serialized_start=30238
- _globals['_CLIENTPAYLOAD_TRAFFICANONYMIZATION']._serialized_end=30283
- _globals['_COMBINEDFINGERPRINT']._serialized_start=30286
- _globals['_COMBINEDFINGERPRINT']._serialized_end=30431
- _globals['_COMMAND']._serialized_start=30433
- _globals['_COMMAND']._serialized_end=30552
- _globals['_COMMENTMETADATA']._serialized_start=30554
- _globals['_COMMENTMETADATA']._serialized_end=30639
- _globals['_COMPANIONCOMMITMENT']._serialized_start=30641
- _globals['_COMPANIONCOMMITMENT']._serialized_end=30676
- _globals['_COMPANIONEPHEMERALIDENTITY']._serialized_start=30678
- _globals['_COMPANIONEPHEMERALIDENTITY']._serialized_end=30794
- _globals['_CONFIG']._serialized_start=30797
- _globals['_CONFIG']._serialized_end=30929
- _globals['_CONFIG_FIELDENTRY']._serialized_start=30868
- _globals['_CONFIG_FIELDENTRY']._serialized_end=30929
- _globals['_CONSUMERAPPLICATION']._serialized_start=30932
- _globals['_CONSUMERAPPLICATION']._serialized_end=36034
- _globals['_CONSUMERAPPLICATION_APPLICATIONDATA']._serialized_start=31069
- _globals['_CONSUMERAPPLICATION_APPLICATIONDATA']._serialized_end=31171
- _globals['_CONSUMERAPPLICATION_AUDIOMESSAGE']._serialized_start=31173
- _globals['_CONSUMERAPPLICATION_AUDIOMESSAGE']._serialized_end=31238
- _globals['_CONSUMERAPPLICATION_CONTACTMESSAGE']._serialized_start=31240
- _globals['_CONSUMERAPPLICATION_CONTACTMESSAGE']._serialized_end=31296
- _globals['_CONSUMERAPPLICATION_CONTACTSARRAYMESSAGE']._serialized_start=31298
- _globals['_CONSUMERAPPLICATION_CONTACTSARRAYMESSAGE']._serialized_end=31405
- _globals['_CONSUMERAPPLICATION_CONTENT']._serialized_start=31408
- _globals['_CONSUMERAPPLICATION_CONTENT']._serialized_end=32749
- _globals['_CONSUMERAPPLICATION_DOCUMENTMESSAGE']._serialized_start=32751
- _globals['_CONSUMERAPPLICATION_DOCUMENTMESSAGE']._serialized_end=32827
- _globals['_CONSUMERAPPLICATION_EDITMESSAGE']._serialized_start=32829
- _globals['_CONSUMERAPPLICATION_EDITMESSAGE']._serialized_end=32938
- _globals['_CONSUMERAPPLICATION_EXTENDEDTEXTMESSAGE']._serialized_start=32941
- _globals['_CONSUMERAPPLICATION_EXTENDEDTEXTMESSAGE']._serialized_end=33228
- _globals['_CONSUMERAPPLICATION_GROUPINVITEMESSAGE']._serialized_start=33231
- _globals['_CONSUMERAPPLICATION_GROUPINVITEMESSAGE']._serialized_end=33397
- _globals['_CONSUMERAPPLICATION_IMAGEMESSAGE']._serialized_start=33399
- _globals['_CONSUMERAPPLICATION_IMAGEMESSAGE']._serialized_end=33491
- _globals['_CONSUMERAPPLICATION_INTERACTIVEANNOTATION']._serialized_start=33494
- _globals['_CONSUMERAPPLICATION_INTERACTIVEANNOTATION']._serialized_end=33649
- _globals['_CONSUMERAPPLICATION_LIVELOCATIONMESSAGE']._serialized_start=33652
- _globals['_CONSUMERAPPLICATION_LIVELOCATIONMESSAGE']._serialized_end=33904
- _globals['_CONSUMERAPPLICATION_LOCATION']._serialized_start=33906
- _globals['_CONSUMERAPPLICATION_LOCATION']._serialized_end=33981
- _globals['_CONSUMERAPPLICATION_LOCATIONMESSAGE']._serialized_start=33983
- _globals['_CONSUMERAPPLICATION_LOCATIONMESSAGE']._serialized_end=34075
- _globals['_CONSUMERAPPLICATION_MEDIAPAYLOAD']._serialized_start=34077
- _globals['_CONSUMERAPPLICATION_MEDIAPAYLOAD']._serialized_end=34132
- _globals['_CONSUMERAPPLICATION_METADATA']._serialized_start=34134
- _globals['_CONSUMERAPPLICATION_METADATA']._serialized_end=34228
- _globals['_CONSUMERAPPLICATION_OPTION']._serialized_start=34230
- _globals['_CONSUMERAPPLICATION_OPTION']._serialized_end=34258
- _globals['_CONSUMERAPPLICATION_PAYLOAD']._serialized_start=34261
- _globals['_CONSUMERAPPLICATION_PAYLOAD']._serialized_end=34542
- _globals['_CONSUMERAPPLICATION_POINT']._serialized_start=34544
- _globals['_CONSUMERAPPLICATION_POINT']._serialized_end=34573
- _globals['_CONSUMERAPPLICATION_POLLADDOPTIONMESSAGE']._serialized_start=34575
- _globals['_CONSUMERAPPLICATION_POLLADDOPTIONMESSAGE']._serialized_end=34655
- _globals['_CONSUMERAPPLICATION_POLLCREATIONMESSAGE']._serialized_start=34658
- _globals['_CONSUMERAPPLICATION_POLLCREATIONMESSAGE']._serialized_end=34796
- _globals['_CONSUMERAPPLICATION_POLLENCVALUE']._serialized_start=34798
- _globals['_CONSUMERAPPLICATION_POLLENCVALUE']._serialized_end=34847
- _globals['_CONSUMERAPPLICATION_POLLUPDATEMESSAGE']._serialized_start=34850
- _globals['_CONSUMERAPPLICATION_POLLUPDATEMESSAGE']._serialized_end=35044
- _globals['_CONSUMERAPPLICATION_POLLVOTEMESSAGE']._serialized_start=35046
- _globals['_CONSUMERAPPLICATION_POLLVOTEMESSAGE']._serialized_end=35115
- _globals['_CONSUMERAPPLICATION_REACTIONMESSAGE']._serialized_start=35118
- _globals['_CONSUMERAPPLICATION_REACTIONMESSAGE']._serialized_end=35286
- _globals['_CONSUMERAPPLICATION_REVOKEMESSAGE']._serialized_start=35288
- _globals['_CONSUMERAPPLICATION_REVOKEMESSAGE']._serialized_end=35338
- _globals['_CONSUMERAPPLICATION_SIGNAL']._serialized_start=35340
- _globals['_CONSUMERAPPLICATION_SIGNAL']._serialized_end=35348
- _globals['_CONSUMERAPPLICATION_STATUSTEXTMESAGE']._serialized_start=35351
- _globals['_CONSUMERAPPLICATION_STATUSTEXTMESAGE']._serialized_end=35551
- _globals['_CONSUMERAPPLICATION_STICKERMESSAGE']._serialized_start=35553
- _globals['_CONSUMERAPPLICATION_STICKERMESSAGE']._serialized_end=35609
- _globals['_CONSUMERAPPLICATION_SUBPROTOCOLPAYLOAD']._serialized_start=35611
- _globals['_CONSUMERAPPLICATION_SUBPROTOCOLPAYLOAD']._serialized_end=35685
- _globals['_CONSUMERAPPLICATION_VIDEOMESSAGE']._serialized_start=35687
- _globals['_CONSUMERAPPLICATION_VIDEOMESSAGE']._serialized_end=35779
- _globals['_CONSUMERAPPLICATION_VIEWONCEMESSAGE']._serialized_start=35782
- _globals['_CONSUMERAPPLICATION_VIEWONCEMESSAGE']._serialized_end=35954
- _globals['_CONSUMERAPPLICATION_CONSUMER_APPLICATION_EXTENDED_TEXT_MESSAGE_PREVIEW_TYPE']._serialized_start=35956
- _globals['_CONSUMERAPPLICATION_CONSUMER_APPLICATION_EXTENDED_TEXT_MESSAGE_PREVIEW_TYPE']._serialized_end=36034
- _globals['_CONTEXTINFO']._serialized_start=36037
- _globals['_CONTEXTINFO']._serialized_end=42793
- _globals['_CONTEXTINFO_ADREPLYINFO']._serialized_start=38726
- _globals['_CONTEXTINFO_ADREPLYINFO']._serialized_end=38912
- _globals['_CONTEXTINFO_ADREPLYINFO_MEDIATYPE']._serialized_start=38869
- _globals['_CONTEXTINFO_ADREPLYINFO_MEDIATYPE']._serialized_end=38912
- _globals['_CONTEXTINFO_BUSINESSINTERACTIONPILLS']._serialized_start=38915
- _globals['_CONTEXTINFO_BUSINESSINTERACTIONPILLS']._serialized_end=39740
- _globals['_CONTEXTINFO_BUSINESSINTERACTIONPILLS_PILL']._serialized_start=39205
- _globals['_CONTEXTINFO_BUSINESSINTERACTIONPILLS_PILL']._serialized_end=39305
- _globals['_CONTEXTINFO_BUSINESSINTERACTIONPILLS_SIGNEDPAYLOAD']._serialized_start=39307
- _globals['_CONTEXTINFO_BUSINESSINTERACTIONPILLS_SIGNEDPAYLOAD']._serialized_end=39412
- _globals['_CONTEXTINFO_BUSINESSINTERACTIONPILLS_ENTRYPOINT']._serialized_start=39415
- _globals['_CONTEXTINFO_BUSINESSINTERACTIONPILLS_ENTRYPOINT']._serialized_end=39556
- _globals['_CONTEXTINFO_BUSINESSINTERACTIONPILLS_PILLTYPE']._serialized_start=39559
- _globals['_CONTEXTINFO_BUSINESSINTERACTIONPILLS_PILLTYPE']._serialized_end=39740
- _globals['_CONTEXTINFO_BUSINESSMESSAGEFORWARDINFO']._serialized_start=39742
- _globals['_CONTEXTINFO_BUSINESSMESSAGEFORWARDINFO']._serialized_end=39796
- _globals['_CONTEXTINFO_DATASHARINGCONTEXT']._serialized_start=39799
- _globals['_CONTEXTINFO_DATASHARINGCONTEXT']._serialized_end=40223
- _globals['_CONTEXTINFO_DATASHARINGCONTEXT_PARAMETERS']._serialized_start=39986
- _globals['_CONTEXTINFO_DATASHARINGCONTEXT_PARAMETERS']._serialized_end=40138
- _globals['_CONTEXTINFO_DATASHARINGCONTEXT_DATASHARINGFLAGS']._serialized_start=40140
- _globals['_CONTEXTINFO_DATASHARINGCONTEXT_DATASHARINGFLAGS']._serialized_end=40223
- _globals['_CONTEXTINFO_EXTERNALADREPLYINFO']._serialized_start=40226
- _globals['_CONTEXTINFO_EXTERNALADREPLYINFO']._serialized_end=41208
- _globals['_CONTEXTINFO_EXTERNALADREPLYINFO_ADTYPE']._serialized_start=41135
- _globals['_CONTEXTINFO_EXTERNALADREPLYINFO_ADTYPE']._serialized_end=41163
- _globals['_CONTEXTINFO_EXTERNALADREPLYINFO_MEDIATYPE']._serialized_start=38869
- _globals['_CONTEXTINFO_EXTERNALADREPLYINFO_MEDIATYPE']._serialized_end=38912
- _globals['_CONTEXTINFO_FEATUREELIGIBILITIES']._serialized_start=41211
- _globals['_CONTEXTINFO_FEATUREELIGIBILITIES']._serialized_end=41365
- _globals['_CONTEXTINFO_FORWARDEDNEWSLETTERMESSAGEINFO']._serialized_start=41368
- _globals['_CONTEXTINFO_FORWARDEDNEWSLETTERMESSAGEINFO']._serialized_end=41666
- _globals['_CONTEXTINFO_FORWARDEDNEWSLETTERMESSAGEINFO_CONTENTTYPE']._serialized_start=41609
- _globals['_CONTEXTINFO_FORWARDEDNEWSLETTERMESSAGEINFO_CONTENTTYPE']._serialized_end=41666
- _globals['_CONTEXTINFO_PARTIALLYSELECTEDCONTENT']._serialized_start=41668
- _globals['_CONTEXTINFO_PARTIALLYSELECTEDCONTENT']._serialized_end=41708
- _globals['_CONTEXTINFO_QUESTIONREPLYQUOTEDMESSAGE']._serialized_start=41711
- _globals['_CONTEXTINFO_QUESTIONREPLYQUOTEDMESSAGE']._serialized_end=41851
- _globals['_CONTEXTINFO_STATUSAUDIENCEMETADATA']._serialized_start=41854
- _globals['_CONTEXTINFO_STATUSAUDIENCEMETADATA']._serialized_end=42044
- _globals['_CONTEXTINFO_STATUSAUDIENCEMETADATA_AUDIENCETYPE']._serialized_start=41998
- _globals['_CONTEXTINFO_STATUSAUDIENCEMETADATA_AUDIENCETYPE']._serialized_end=42044
- _globals['_CONTEXTINFO_UTMINFO']._serialized_start=42046
- _globals['_CONTEXTINFO_UTMINFO']._serialized_end=42095
- _globals['_CONTEXTINFO_CROSSAPPSOURCE']._serialized_start=42097
- _globals['_CONTEXTINFO_CROSSAPPSOURCE']._serialized_end=42206
- _globals['_CONTEXTINFO_FORWARDORIGIN']._serialized_start=42208
- _globals['_CONTEXTINFO_FORWARDORIGIN']._serialized_end=42294
- _globals['_CONTEXTINFO_PAIREDMEDIATYPE']._serialized_start=42297
- _globals['_CONTEXTINFO_PAIREDMEDIATYPE']._serialized_end=42512
- _globals['_CONTEXTINFO_QUOTEDTYPE']._serialized_start=42514
- _globals['_CONTEXTINFO_QUOTEDTYPE']._serialized_end=42550
- _globals['_CONTEXTINFO_STATUSATTRIBUTIONTYPE']._serialized_start=42553
- _globals['_CONTEXTINFO_STATUSATTRIBUTIONTYPE']._serialized_end=42699
- _globals['_CONTEXTINFO_STATUSSOURCETYPE']._serialized_start=42701
- _globals['_CONTEXTINFO_STATUSSOURCETYPE']._serialized_end=42793
- _globals['_CONVERSATION']._serialized_start=42796
- _globals['_CONVERSATION']._serialized_end=44942
- _globals['_CONVERSATION_ENDOFHISTORYTRANSFERTYPE']._serialized_start=44586
- _globals['_CONVERSATION_ENDOFHISTORYTRANSFERTYPE']._serialized_end=44842
- _globals['_CONVERSATION_GROUPAPPEALSTATUS']._serialized_start=44844
- _globals['_CONVERSATION_GROUPAPPEALSTATUS']._serialized_end=44942
- _globals['_DEVICECAPABILITIES']._serialized_start=44945
- _globals['_DEVICECAPABILITIES']._serialized_end=45937
- _globals['_DEVICECAPABILITIES_AITHREAD']._serialized_start=45408
- _globals['_DEVICECAPABILITIES_AITHREAD']._serialized_end=45539
- _globals['_DEVICECAPABILITIES_AITHREAD_SUPPORTLEVEL']._serialized_start=45494
- _globals['_DEVICECAPABILITIES_AITHREAD_SUPPORTLEVEL']._serialized_end=45539
- _globals['_DEVICECAPABILITIES_BUSINESSBROADCAST']._serialized_start=45542
- _globals['_DEVICECAPABILITIES_BUSINESSBROADCAST']._serialized_end=45703
- _globals['_DEVICECAPABILITIES_LIDMIGRATION']._serialized_start=45705
- _globals['_DEVICECAPABILITIES_LIDMIGRATION']._serialized_end=45753
- _globals['_DEVICECAPABILITIES_USERHASAVATAR']._serialized_start=45755
- _globals['_DEVICECAPABILITIES_USERHASAVATAR']._serialized_end=45793
- _globals['_DEVICECAPABILITIES_CHATLOCKSUPPORTLEVEL']._serialized_start=45795
- _globals['_DEVICECAPABILITIES_CHATLOCKSUPPORTLEVEL']._serialized_end=45850
- _globals['_DEVICECAPABILITIES_MEMBERNAMETAGPRIMARYSUPPORT']._serialized_start=45852
- _globals['_DEVICECAPABILITIES_MEMBERNAMETAGPRIMARYSUPPORT']._serialized_end=45937
- _globals['_DEVICECONSISTENCYCODEMESSAGE']._serialized_start=45939
- _globals['_DEVICECONSISTENCYCODEMESSAGE']._serialized_end=46008
- _globals['_DEVICELISTMETADATA']._serialized_start=46011
- _globals['_DEVICELISTMETADATA']._serialized_end=46310
- _globals['_DEVICEPROPS']._serialized_start=46313
- _globals['_DEVICEPROPS']._serialized_end=47802
- _globals['_DEVICEPROPS_APPVERSION']._serialized_start=28060
- _globals['_DEVICEPROPS_APPVERSION']._serialized_end=28163
- _globals['_DEVICEPROPS_HISTORYSYNCCONFIG']._serialized_start=46648
- _globals['_DEVICEPROPS_HISTORYSYNCCONFIG']._serialized_end=47448
- _globals['_DEVICEPROPS_PLATFORMTYPE']._serialized_start=47451
- _globals['_DEVICEPROPS_PLATFORMTYPE']._serialized_end=47802
- _globals['_DISAPPEARINGMODE']._serialized_start=47805
- _globals['_DISAPPEARINGMODE']._serialized_end=48220
- _globals['_DISAPPEARINGMODE_INITIATOR']._serialized_start=47986
- _globals['_DISAPPEARINGMODE_INITIATOR']._serialized_end=48091
- _globals['_DISAPPEARINGMODE_TRIGGER']._serialized_start=48093
- _globals['_DISAPPEARINGMODE_TRIGGER']._serialized_end=48220
- _globals['_EMBEDDEDCONTENT']._serialized_start=48223
- _globals['_EMBEDDEDCONTENT']._serialized_end=48355
- _globals['_EMBEDDEDMESSAGE']._serialized_start=48357
- _globals['_EMBEDDEDMESSAGE']._serialized_end=48428
- _globals['_EMBEDDEDMUSIC']._serialized_start=48431
- _globals['_EMBEDDEDMUSIC']._serialized_end=48794
- _globals['_ENCRYPTEDPAIRINGREQUEST']._serialized_start=48796
- _globals['_ENCRYPTEDPAIRINGREQUEST']._serialized_end=48859
- _globals['_EPHEMERALSETTING']._serialized_start=48861
- _globals['_EPHEMERALSETTING']._serialized_end=48916
- _globals['_EVENTADDITIONALMETADATA']._serialized_start=48918
- _globals['_EVENTADDITIONALMETADATA']._serialized_end=48960
- _globals['_EVENTRESPONSE']._serialized_start=48963
- _globals['_EVENTRESPONSE']._serialized_end=49140
- _globals['_EXITCODE']._serialized_start=49142
- _globals['_EXITCODE']._serialized_end=49180
- _globals['_EXTERNALBLOBREFERENCE']._serialized_start=49183
- _globals['_EXTERNALBLOBREFERENCE']._serialized_end=49326
- _globals['_FIELD']._serialized_start=49329
- _globals['_FIELD']._serialized_end=49543
- _globals['_FIELD_SUBFIELDENTRY']._serialized_start=49479
- _globals['_FIELD_SUBFIELDENTRY']._serialized_end=49543
- _globals['_FINGERPRINTDATA']._serialized_start=49546
- _globals['_FINGERPRINTDATA']._serialized_end=49777
- _globals['_FINGERPRINTDATA_HOSTEDSTATE']._serialized_start=49742
- _globals['_FINGERPRINTDATA_HOSTEDSTATE']._serialized_end=49777
- _globals['_FORWARDEDAIBOTMESSAGEINFO']._serialized_start=49779
- _globals['_FORWARDEDAIBOTMESSAGEINFO']._serialized_end=49860
- _globals['_GLOBALSETTINGS']._serialized_start=49863
- _globals['_GLOBALSETTINGS']._serialized_end=50796
- _globals['_GROUPHISTORY']._serialized_start=50799
- _globals['_GROUPHISTORY']._serialized_end=51052
- _globals['_GROUPHISTORYBUNDLEINFO']._serialized_start=51055
- _globals['_GROUPHISTORYBUNDLEINFO']._serialized_end=51365
- _globals['_GROUPHISTORYBUNDLEINFO_PROCESSSTATE']._serialized_start=51231
- _globals['_GROUPHISTORYBUNDLEINFO_PROCESSSTATE']._serialized_end=51365
- _globals['_GROUPHISTORYINDIVIDUALMESSAGEINFO']._serialized_start=51367
- _globals['_GROUPHISTORYINDIVIDUALMESSAGEINFO']._serialized_end=51488
- _globals['_GROUPHISTORYWITHMESSAGEBYTES']._serialized_start=51491
- _globals['_GROUPHISTORYWITHMESSAGEBYTES']._serialized_end=51824
- _globals['_GROUPMENTION']._serialized_start=51826
- _globals['_GROUPMENTION']._serialized_end=51880
- _globals['_GROUPPARTICIPANT']._serialized_start=51883
- _globals['_GROUPPARTICIPANT']._serialized_end=52057
- _globals['_GROUPPARTICIPANT_RANK']._serialized_start=52011
- _globals['_GROUPPARTICIPANT_RANK']._serialized_end=52057
- _globals['_GROUPROOTKEYSHARE']._serialized_start=52059
- _globals['_GROUPROOTKEYSHARE']._serialized_end=52126
- _globals['_GROUPROOTKEYSHAREENTRY']._serialized_start=52128
- _globals['_GROUPROOTKEYSHAREENTRY']._serialized_end=52244
- _globals['_HANDSHAKEMESSAGE']._serialized_start=52247
- _globals['_HANDSHAKEMESSAGE']._serialized_end=53157
- _globals['_HANDSHAKEMESSAGE_CLIENTFINISH']._serialized_start=52452
- _globals['_HANDSHAKEMESSAGE_CLIENTFINISH']._serialized_end=52573
- _globals['_HANDSHAKEMESSAGE_CLIENTHELLO']._serialized_start=52576
- _globals['_HANDSHAKEMESSAGE_CLIENTHELLO']._serialized_end=52859
- _globals['_HANDSHAKEMESSAGE_SERVERHELLO']._serialized_start=52862
- _globals['_HANDSHAKEMESSAGE_SERVERHELLO']._serialized_end=53001
- _globals['_HANDSHAKEMESSAGE_HANDSHAKEPQMODE']._serialized_start=53004
- _globals['_HANDSHAKEMESSAGE_HANDSHAKEPQMODE']._serialized_end=53157
- _globals['_HATCHMETADATASYNC']._serialized_start=53159
- _globals['_HATCHMETADATASYNC']._serialized_end=53232
- _globals['_HISTORYSYNC']._serialized_start=53235
- _globals['_HISTORYSYNC']._serialized_end=54289
- _globals['_HISTORYSYNC_BOTAIWAITLISTSTATE']._serialized_start=54093
- _globals['_HISTORYSYNC_BOTAIWAITLISTSTATE']._serialized_end=54148
- _globals['_HISTORYSYNC_HISTORYSYNCTYPE']._serialized_start=54151
- _globals['_HISTORYSYNC_HISTORYSYNCTYPE']._serialized_end=54289
- _globals['_HISTORYSYNCMSG']._serialized_start=54291
- _globals['_HISTORYSYNCMSG']._serialized_end=54370
- _globals['_HYDRATEDTEMPLATEBUTTON']._serialized_start=54373
- _globals['_HYDRATEDTEMPLATEBUTTON']._serialized_end=55038
- _globals['_HYDRATEDTEMPLATEBUTTON_HYDRATEDCALLBUTTON']._serialized_start=54649
- _globals['_HYDRATEDTEMPLATEBUTTON_HYDRATEDCALLBUTTON']._serialized_end=54711
- _globals['_HYDRATEDTEMPLATEBUTTON_HYDRATEDQUICKREPLYBUTTON']._serialized_start=54713
- _globals['_HYDRATEDTEMPLATEBUTTON_HYDRATEDQUICKREPLYBUTTON']._serialized_end=54772
- _globals['_HYDRATEDTEMPLATEBUTTON_HYDRATEDURLBUTTON']._serialized_start=54775
- _globals['_HYDRATEDTEMPLATEBUTTON_HYDRATEDURLBUTTON']._serialized_end=55020
- _globals['_HYDRATEDTEMPLATEBUTTON_HYDRATEDURLBUTTON_WEBVIEWPRESENTATIONTYPE']._serialized_start=54962
- _globals['_HYDRATEDTEMPLATEBUTTON_HYDRATEDURLBUTTON_WEBVIEWPRESENTATIONTYPE']._serialized_end=55020
- _globals['_IDENTITYKEYPAIRSTRUCTURE']._serialized_start=55040
- _globals['_IDENTITYKEYPAIRSTRUCTURE']._serialized_end=55105
- _globals['_INTHREADSURVEYMETADATA']._serialized_start=55108
- _globals['_INTHREADSURVEYMETADATA']._serialized_end=56027
- _globals['_INTHREADSURVEYMETADATA_INTHREADSURVEYOPTION']._serialized_start=55724
- _globals['_INTHREADSURVEYMETADATA_INTHREADSURVEYOPTION']._serialized_end=55813
- _globals['_INTHREADSURVEYMETADATA_INTHREADSURVEYPRIVACYSTATEMENTPART']._serialized_start=55815
- _globals['_INTHREADSURVEYMETADATA_INTHREADSURVEYPRIVACYSTATEMENTPART']._serialized_end=55878
- _globals['_INTHREADSURVEYMETADATA_INTHREADSURVEYQUESTION']._serialized_start=55881
- _globals['_INTHREADSURVEYMETADATA_INTHREADSURVEYQUESTION']._serialized_end=56027
- _globals['_INLINECONTACT']._serialized_start=56029
- _globals['_INLINECONTACT']._serialized_end=56130
- _globals['_INTERACTIVEANNOTATION']._serialized_start=56133
- _globals['_INTERACTIVEANNOTATION']._serialized_end=56660
- _globals['_INTERACTIVEANNOTATION_STATUSLINKTYPE']._serialized_start=56544
- _globals['_INTERACTIVEANNOTATION_STATUSLINKTYPE']._serialized_end=56650
- _globals['_INTERACTIVEMESSAGEADDITIONALMETADATA']._serialized_start=56662
- _globals['_INTERACTIVEMESSAGEADDITIONALMETADATA']._serialized_end=56731
- _globals['_KEEPINCHAT']._serialized_start=56734
- _globals['_KEEPINCHAT']._serialized_end=56917
- _globals['_KEYEXCHANGEMESSAGE']._serialized_start=56919
- _globals['_KEYEXCHANGEMESSAGE']._serialized_end=57035
- _globals['_KEYID']._serialized_start=57037
- _globals['_KEYID']._serialized_end=57056
- _globals['_LIDMIGRATIONMAPPING']._serialized_start=57058
- _globals['_LIDMIGRATIONMAPPING']._serialized_end=57131
- _globals['_LIDMIGRATIONMAPPINGSYNCMESSAGE']._serialized_start=57133
- _globals['_LIDMIGRATIONMAPPINGSYNCMESSAGE']._serialized_end=57196
- _globals['_LIDMIGRATIONMAPPINGSYNCPAYLOAD']._serialized_start=57198
- _globals['_LIDMIGRATIONMAPPINGSYNCPAYLOAD']._serialized_end=57320
- _globals['_LEGACYMESSAGE']._serialized_start=57323
- _globals['_LEGACYMESSAGE']._serialized_end=57461
- _globals['_LIMITSHARING']._serialized_start=57464
- _globals['_LIMITSHARING']._serialized_end=57710
- _globals['_LIMITSHARING_TRIGGERTYPE']._serialized_start=57618
- _globals['_LIMITSHARING_TRIGGERTYPE']._serialized_end=57710
- _globals['_LOCALIZEDNAME']._serialized_start=57712
- _globals['_LOCALIZEDNAME']._serialized_end=57773
- _globals['_LOCATION']._serialized_start=33906
- _globals['_LOCATION']._serialized_end=33981
- _globals['_MEDIADATA']._serialized_start=57852
- _globals['_MEDIADATA']._serialized_end=57882
- _globals['_MEDIADOMAININFO']._serialized_start=57884
- _globals['_MEDIADOMAININFO']._serialized_end=57973
- _globals['_MEDIAENTRY']._serialized_start=57976
- _globals['_MEDIAENTRY']._serialized_end=58673
- _globals['_MEDIAENTRY_DOWNLOADABLETHUMBNAIL']._serialized_start=58460
- _globals['_MEDIAENTRY_DOWNLOADABLETHUMBNAIL']._serialized_end=58609
- _globals['_MEDIAENTRY_PROGRESSIVEJPEGDETAILS']._serialized_start=58611
- _globals['_MEDIAENTRY_PROGRESSIVEJPEGDETAILS']._serialized_end=58673
- _globals['_MEDIANOTIFYMESSAGE']._serialized_start=58675
- _globals['_MEDIANOTIFYMESSAGE']._serialized_end=58762
- _globals['_MEDIARETRYNOTIFICATION']._serialized_start=58765
- _globals['_MEDIARETRYNOTIFICATION']._serialized_end=58994
- _globals['_MEDIARETRYNOTIFICATION_RESULTTYPE']._serialized_start=58913
- _globals['_MEDIARETRYNOTIFICATION_RESULTTYPE']._serialized_end=58994
- _globals['_MEMBERLABEL']._serialized_start=58996
- _globals['_MEMBERLABEL']._serialized_end=59048
- _globals['_MENTION']._serialized_start=59050
- _globals['_MENTION']._serialized_end=59166
- _globals['_MESSAGE']._serialized_start=59170
- _globals['_MESSAGE']._serialized_end=108257
- _globals['_MESSAGE_ALBUMMESSAGE']._serialized_start=66427
- _globals['_MESSAGE_ALBUMMESSAGE']._serialized_end=66541
- _globals['_MESSAGE_APPSTATEFATALEXCEPTIONNOTIFICATION']._serialized_start=66543
- _globals['_MESSAGE_APPSTATEFATALEXCEPTIONNOTIFICATION']._serialized_end=66623
- _globals['_MESSAGE_APPSTATESYNCKEY']._serialized_start=66625
- _globals['_MESSAGE_APPSTATESYNCKEY']._serialized_end=66750
- _globals['_MESSAGE_APPSTATESYNCKEYDATA']._serialized_start=66752
- _globals['_MESSAGE_APPSTATESYNCKEYDATA']._serialized_end=66876
- _globals['_MESSAGE_APPSTATESYNCKEYFINGERPRINT']._serialized_start=66878
- _globals['_MESSAGE_APPSTATESYNCKEYFINGERPRINT']._serialized_end=66970
- _globals['_MESSAGE_APPSTATESYNCKEYID']._serialized_start=66972
- _globals['_MESSAGE_APPSTATESYNCKEYID']._serialized_end=67006
- _globals['_MESSAGE_APPSTATESYNCKEYREQUEST']._serialized_start=67008
- _globals['_MESSAGE_APPSTATESYNCKEYREQUEST']._serialized_end=67085
- _globals['_MESSAGE_APPSTATESYNCKEYSHARE']._serialized_start=67087
- _globals['_MESSAGE_APPSTATESYNCKEYSHARE']._serialized_end=67158
- _globals['_MESSAGE_AUDIOMESSAGE']._serialized_start=67161
- _globals['_MESSAGE_AUDIOMESSAGE']._serialized_end=67522
- _globals['_MESSAGE_BCALLMESSAGE']._serialized_start=67525
- _globals['_MESSAGE_BCALLMESSAGE']._serialized_end=67703
- _globals['_MESSAGE_BCALLMESSAGE_MEDIATYPE']._serialized_start=67657
- _globals['_MESSAGE_BCALLMESSAGE_MEDIATYPE']._serialized_end=67703
- _globals['_MESSAGE_BUTTONSMESSAGE']._serialized_start=67706
- _globals['_MESSAGE_BUTTONSMESSAGE']._serialized_end=68670
- _globals['_MESSAGE_BUTTONSMESSAGE_BUTTON']._serialized_start=68185
- _globals['_MESSAGE_BUTTONSMESSAGE_BUTTON']._serialized_end=68562
- _globals['_MESSAGE_BUTTONSMESSAGE_BUTTON_BUTTONTEXT']._serialized_start=68425
- _globals['_MESSAGE_BUTTONSMESSAGE_BUTTON_BUTTONTEXT']._serialized_end=68458
- _globals['_MESSAGE_BUTTONSMESSAGE_BUTTON_NATIVEFLOWINFO']._serialized_start=68460
- _globals['_MESSAGE_BUTTONSMESSAGE_BUTTON_NATIVEFLOWINFO']._serialized_end=68510
- _globals['_MESSAGE_BUTTONSMESSAGE_BUTTON_TYPE']._serialized_start=68512
- _globals['_MESSAGE_BUTTONSMESSAGE_BUTTON_TYPE']._serialized_end=68562
- _globals['_MESSAGE_BUTTONSMESSAGE_HEADERTYPE']._serialized_start=68564
- _globals['_MESSAGE_BUTTONSMESSAGE_HEADERTYPE']._serialized_end=68660
- _globals['_MESSAGE_BUTTONSRESPONSEMESSAGE']._serialized_start=68673
- _globals['_MESSAGE_BUTTONSRESPONSEMESSAGE']._serialized_end=68910
- _globals['_MESSAGE_BUTTONSRESPONSEMESSAGE_TYPE']._serialized_start=68861
- _globals['_MESSAGE_BUTTONSRESPONSEMESSAGE_TYPE']._serialized_end=68898
- _globals['_MESSAGE_CALL']._serialized_start=68913
- _globals['_MESSAGE_CALL']._serialized_end=69248
- _globals['_MESSAGE_CALLLOGMESSAGE']._serialized_start=69251
- _globals['_MESSAGE_CALLLOGMESSAGE']._serialized_end=69822
- _globals['_MESSAGE_CALLLOGMESSAGE_CALLPARTICIPANT']._serialized_start=69508
- _globals['_MESSAGE_CALLLOGMESSAGE_CALLPARTICIPANT']._serialized_end=69605
- _globals['_MESSAGE_CALLLOGMESSAGE_CALLOUTCOME']._serialized_start=69608
- _globals['_MESSAGE_CALLLOGMESSAGE_CALLOUTCOME']._serialized_end=69761
- _globals['_MESSAGE_CALLLOGMESSAGE_CALLTYPE']._serialized_start=24121
- _globals['_MESSAGE_CALLLOGMESSAGE_CALLTYPE']._serialized_end=24180
- _globals['_MESSAGE_CANCELPAYMENTREQUESTMESSAGE']._serialized_start=69824
- _globals['_MESSAGE_CANCELPAYMENTREQUESTMESSAGE']._serialized_end=69888
- _globals['_MESSAGE_CHAT']._serialized_start=69890
- _globals['_MESSAGE_CHAT']._serialized_end=69929
- _globals['_MESSAGE_CHATCUSTOMIMAGEWALLPAPER']._serialized_start=69931
- _globals['_MESSAGE_CHATCUSTOMIMAGEWALLPAPER']._serialized_end=70056
- _globals['_MESSAGE_CHATDEFAULTWALLPAPER']._serialized_start=70058
- _globals['_MESSAGE_CHATDEFAULTWALLPAPER']._serialized_end=70105
- _globals['_MESSAGE_CHATSOLIDCOLORWALLPAPER']._serialized_start=70107
- _globals['_MESSAGE_CHATSOLIDCOLORWALLPAPER']._serialized_end=70196
- _globals['_MESSAGE_CHATSTOCKIMAGEWALLPAPER']._serialized_start=70198
- _globals['_MESSAGE_CHATSTOCKIMAGEWALLPAPER']._serialized_end=70263
- _globals['_MESSAGE_CHATTHEMESETTING']._serialized_start=70266
- _globals['_MESSAGE_CHATTHEMESETTING']._serialized_end=70633
- _globals['_MESSAGE_CLOUDAPITHREADCONTROLNOTIFICATION']._serialized_start=70636
- _globals['_MESSAGE_CLOUDAPITHREADCONTROLNOTIFICATION']._serialized_end=71193
- _globals['_MESSAGE_CLOUDAPITHREADCONTROLNOTIFICATION_CLOUDAPITHREADCONTROLNOTIFICATIONCONTENT']._serialized_start=71012
- _globals['_MESSAGE_CLOUDAPITHREADCONTROLNOTIFICATION_CLOUDAPITHREADCONTROLNOTIFICATIONCONTENT']._serialized_end=71106
- _globals['_MESSAGE_CLOUDAPITHREADCONTROLNOTIFICATION_CLOUDAPITHREADCONTROL']._serialized_start=71108
- _globals['_MESSAGE_CLOUDAPITHREADCONTROLNOTIFICATION_CLOUDAPITHREADCONTROL']._serialized_end=71193
- _globals['_MESSAGE_COMMENTMESSAGE']._serialized_start=71195
- _globals['_MESSAGE_COMMENTMESSAGE']._serialized_end=71295
- _globals['_MESSAGE_CONDITIONALREVEALMESSAGE']._serialized_start=71298
- _globals['_MESSAGE_CONDITIONALREVEALMESSAGE']._serialized_end=71559
- _globals['_MESSAGE_CONDITIONALREVEALMESSAGE_CONDITIONALREVEALMESSAGETYPE']._serialized_start=71493
- _globals['_MESSAGE_CONDITIONALREVEALMESSAGE_CONDITIONALREVEALMESSAGETYPE']._serialized_end=71559
- _globals['_MESSAGE_CONTACTMESSAGE']._serialized_start=71561
- _globals['_MESSAGE_CONTACTMESSAGE']._serialized_end=71680
- _globals['_MESSAGE_CONTACTSARRAYMESSAGE']._serialized_start=71683
- _globals['_MESSAGE_CONTACTSARRAYMESSAGE']._serialized_end=71822
- _globals['_MESSAGE_DECLINEPAYMENTREQUESTMESSAGE']._serialized_start=71824
- _globals['_MESSAGE_DECLINEPAYMENTREQUESTMESSAGE']._serialized_end=71889
- _globals['_MESSAGE_DEVICESENTMESSAGE']._serialized_start=71891
- _globals['_MESSAGE_DEVICESENTMESSAGE']._serialized_end=71985
- _globals['_MESSAGE_DOCUMENTMESSAGE']._serialized_start=71988
- _globals['_MESSAGE_DOCUMENTMESSAGE']._serialized_end=72481
- _globals['_MESSAGE_ENCCOMMENTMESSAGE']._serialized_start=72483
- _globals['_MESSAGE_ENCCOMMENTMESSAGE']._serialized_end=72585
- _globals['_MESSAGE_ENCEVENTRESPONSEMESSAGE']._serialized_start=72587
- _globals['_MESSAGE_ENCEVENTRESPONSEMESSAGE']._serialized_end=72702
- _globals['_MESSAGE_ENCREACTIONMESSAGE']._serialized_start=72704
- _globals['_MESSAGE_ENCREACTIONMESSAGE']._serialized_end=72807
- _globals['_MESSAGE_EVENTINVITEMESSAGE']._serialized_start=72810
- _globals['_MESSAGE_EVENTINVITEMESSAGE']._serialized_end=73025
- _globals['_MESSAGE_EVENTMESSAGE']._serialized_start=73028
- _globals['_MESSAGE_EVENTMESSAGE']._serialized_end=73348
- _globals['_MESSAGE_EVENTRESPONSEMESSAGE']._serialized_start=73351
- _globals['_MESSAGE_EVENTRESPONSEMESSAGE']._serialized_end=73566
- _globals['_MESSAGE_EVENTRESPONSEMESSAGE_EVENTRESPONSETYPE']._serialized_start=73497
- _globals['_MESSAGE_EVENTRESPONSEMESSAGE_EVENTRESPONSETYPE']._serialized_end=73566
- _globals['_MESSAGE_EXTENDEDTEXTMESSAGE']._serialized_start=73569
- _globals['_MESSAGE_EXTENDEDTEXTMESSAGE']._serialized_end=75168
- _globals['_MESSAGE_EXTENDEDTEXTMESSAGE_FONTTYPE']._serialized_start=74834
- _globals['_MESSAGE_EXTENDEDTEXTMESSAGE_FONTTYPE']._serialized_end=74998
- _globals['_MESSAGE_EXTENDEDTEXTMESSAGE_INVITELINKGROUPTYPE']._serialized_start=75000
- _globals['_MESSAGE_EXTENDEDTEXTMESSAGE_INVITELINKGROUPTYPE']._serialized_end=75072
- _globals['_MESSAGE_EXTENDEDTEXTMESSAGE_PREVIEWTYPE']._serialized_start=75074
- _globals['_MESSAGE_EXTENDEDTEXTMESSAGE_PREVIEWTYPE']._serialized_end=75168
- _globals['_MESSAGE_FULLHISTORYSYNCONDEMANDCONFIG']._serialized_start=75170
- _globals['_MESSAGE_FULLHISTORYSYNCONDEMANDCONFIG']._serialized_end=75260
- _globals['_MESSAGE_FULLHISTORYSYNCONDEMANDREQUESTMETADATA']._serialized_start=75262
- _globals['_MESSAGE_FULLHISTORYSYNCONDEMANDREQUESTMETADATA']._serialized_end=75372
- _globals['_MESSAGE_FUTUREPROOFMESSAGE']._serialized_start=75374
- _globals['_MESSAGE_FUTUREPROOFMESSAGE']._serialized_end=75430
- _globals['_MESSAGE_GROUPINVITEMESSAGE']._serialized_start=75433
- _globals['_MESSAGE_GROUPINVITEMESSAGE']._serialized_end=75725
- _globals['_MESSAGE_GROUPINVITEMESSAGE_GROUPTYPE']._serialized_start=75689
- _globals['_MESSAGE_GROUPINVITEMESSAGE_GROUPTYPE']._serialized_end=75725
- _globals['_MESSAGE_HIGHLYSTRUCTUREDMESSAGE']._serialized_start=75728
- _globals['_MESSAGE_HIGHLYSTRUCTUREDMESSAGE']._serialized_end=77208
- _globals['_MESSAGE_HIGHLYSTRUCTUREDMESSAGE_HSMLOCALIZABLEPARAMETER']._serialized_start=76052
- _globals['_MESSAGE_HIGHLYSTRUCTUREDMESSAGE_HSMLOCALIZABLEPARAMETER']._serialized_end=77208
- _globals['_MESSAGE_HIGHLYSTRUCTUREDMESSAGE_HSMLOCALIZABLEPARAMETER_HSMCURRENCY']._serialized_start=76294
- _globals['_MESSAGE_HIGHLYSTRUCTUREDMESSAGE_HSMLOCALIZABLEPARAMETER_HSMCURRENCY']._serialized_end=76349
- _globals['_MESSAGE_HIGHLYSTRUCTUREDMESSAGE_HSMLOCALIZABLEPARAMETER_HSMDATETIME']._serialized_start=76352
- _globals['_MESSAGE_HIGHLYSTRUCTUREDMESSAGE_HSMLOCALIZABLEPARAMETER_HSMDATETIME']._serialized_end=77194
- _globals['_MESSAGE_HIGHLYSTRUCTUREDMESSAGE_HSMLOCALIZABLEPARAMETER_HSMDATETIME_HSMDATETIMECOMPONENT']._serialized_start=76610
- _globals['_MESSAGE_HIGHLYSTRUCTUREDMESSAGE_HSMLOCALIZABLEPARAMETER_HSMDATETIME_HSMDATETIMECOMPONENT']._serialized_end=77134
- _globals['_MESSAGE_HIGHLYSTRUCTUREDMESSAGE_HSMLOCALIZABLEPARAMETER_HSMDATETIME_HSMDATETIMECOMPONENT_CALENDARTYPE']._serialized_start=76979
- _globals['_MESSAGE_HIGHLYSTRUCTUREDMESSAGE_HSMLOCALIZABLEPARAMETER_HSMDATETIME_HSMDATETIMECOMPONENT_CALENDARTYPE']._serialized_end=77025
- _globals['_MESSAGE_HIGHLYSTRUCTUREDMESSAGE_HSMLOCALIZABLEPARAMETER_HSMDATETIME_HSMDATETIMECOMPONENT_DAYOFWEEKTYPE']._serialized_start=77027
- _globals['_MESSAGE_HIGHLYSTRUCTUREDMESSAGE_HSMLOCALIZABLEPARAMETER_HSMDATETIME_HSMDATETIMECOMPONENT_DAYOFWEEKTYPE']._serialized_end=77134
- _globals['_MESSAGE_HIGHLYSTRUCTUREDMESSAGE_HSMLOCALIZABLEPARAMETER_HSMDATETIME_HSMDATETIMEUNIXEPOCH']._serialized_start=77136
- _globals['_MESSAGE_HIGHLYSTRUCTUREDMESSAGE_HSMLOCALIZABLEPARAMETER_HSMDATETIME_HSMDATETIMEUNIXEPOCH']._serialized_end=77177
- _globals['_MESSAGE_HISTORYSYNCMESSAGEACCESSSTATUS']._serialized_start=77210
- _globals['_MESSAGE_HISTORYSYNCMESSAGEACCESSSTATUS']._serialized_end=77273
- _globals['_MESSAGE_HISTORYSYNCNOTIFICATION']._serialized_start=77276
- _globals['_MESSAGE_HISTORYSYNCNOTIFICATION']._serialized_end=77839
- _globals['_MESSAGE_IMAGEMESSAGE']._serialized_start=77842
- _globals['_MESSAGE_IMAGEMESSAGE']._serialized_end=78766
- _globals['_MESSAGE_IMAGEMESSAGE_IMAGESOURCETYPE']._serialized_start=78670
- _globals['_MESSAGE_IMAGEMESSAGE_IMAGESOURCETYPE']._serialized_end=78766
- _globals['_MESSAGE_INITIALSECURITYNOTIFICATIONSETTINGSYNC']._serialized_start=78768
- _globals['_MESSAGE_INITIALSECURITYNOTIFICATIONSETTINGSYNC']._serialized_end=78845
- _globals['_MESSAGE_INTERACTIVEMESSAGE']._serialized_start=78848
- _globals['_MESSAGE_INTERACTIVEMESSAGE']._serialized_end=80997
- _globals['_MESSAGE_INTERACTIVEMESSAGE_BLOKSWIDGET']._serialized_start=79548
- _globals['_MESSAGE_INTERACTIVEMESSAGE_BLOKSWIDGET']._serialized_end=79621
- _globals['_MESSAGE_INTERACTIVEMESSAGE_BODY']._serialized_start=79623
- _globals['_MESSAGE_INTERACTIVEMESSAGE_BODY']._serialized_end=79643
- _globals['_MESSAGE_INTERACTIVEMESSAGE_CAROUSELMESSAGE']._serialized_start=79646
- _globals['_MESSAGE_INTERACTIVEMESSAGE_CAROUSELMESSAGE']._serialized_end=79906
- _globals['_MESSAGE_INTERACTIVEMESSAGE_CAROUSELMESSAGE_CAROUSELCARDTYPE']._serialized_start=79839
- _globals['_MESSAGE_INTERACTIVEMESSAGE_CAROUSELMESSAGE_CAROUSELCARDTYPE']._serialized_end=79906
- _globals['_MESSAGE_INTERACTIVEMESSAGE_COLLECTIONMESSAGE']._serialized_start=79908
- _globals['_MESSAGE_INTERACTIVEMESSAGE_COLLECTIONMESSAGE']._serialized_end=79979
- _globals['_MESSAGE_INTERACTIVEMESSAGE_FOOTER']._serialized_start=79981
- _globals['_MESSAGE_INTERACTIVEMESSAGE_FOOTER']._serialized_end=80096
- _globals['_MESSAGE_INTERACTIVEMESSAGE_HEADER']._serialized_start=80099
- _globals['_MESSAGE_INTERACTIVEMESSAGE_HEADER']._serialized_end=80569
- _globals['_MESSAGE_INTERACTIVEMESSAGE_NATIVEFLOWMESSAGE']._serialized_start=80572
- _globals['_MESSAGE_INTERACTIVEMESSAGE_NATIVEFLOWMESSAGE']._serialized_end=80792
- _globals['_MESSAGE_INTERACTIVEMESSAGE_NATIVEFLOWMESSAGE_NATIVEFLOWBUTTON']._serialized_start=80734
- _globals['_MESSAGE_INTERACTIVEMESSAGE_NATIVEFLOWMESSAGE_NATIVEFLOWBUTTON']._serialized_end=80792
- _globals['_MESSAGE_INTERACTIVEMESSAGE_SHOPMESSAGE']._serialized_start=80795
- _globals['_MESSAGE_INTERACTIVEMESSAGE_SHOPMESSAGE']._serialized_end=80975
- _globals['_MESSAGE_INTERACTIVEMESSAGE_SHOPMESSAGE_SURFACE']._serialized_start=80921
- _globals['_MESSAGE_INTERACTIVEMESSAGE_SHOPMESSAGE_SURFACE']._serialized_end=80975
- _globals['_MESSAGE_INTERACTIVERESPONSEMESSAGE']._serialized_start=81000
- _globals['_MESSAGE_INTERACTIVERESPONSEMESSAGE']._serialized_end=81494
- _globals['_MESSAGE_INTERACTIVERESPONSEMESSAGE_BODY']._serialized_start=81249
- _globals['_MESSAGE_INTERACTIVERESPONSEMESSAGE_BODY']._serialized_end=81384
- _globals['_MESSAGE_INTERACTIVERESPONSEMESSAGE_BODY_FORMAT']._serialized_start=81345
- _globals['_MESSAGE_INTERACTIVERESPONSEMESSAGE_BODY_FORMAT']._serialized_end=81384
- _globals['_MESSAGE_INTERACTIVERESPONSEMESSAGE_NATIVEFLOWRESPONSEMESSAGE']._serialized_start=81386
- _globals['_MESSAGE_INTERACTIVERESPONSEMESSAGE_NATIVEFLOWRESPONSEMESSAGE']._serialized_end=81464
- _globals['_MESSAGE_INVOICEMESSAGE']._serialized_start=81497
- _globals['_MESSAGE_INVOICEMESSAGE']._serialized_end=81872
- _globals['_MESSAGE_INVOICEMESSAGE_ATTACHMENTTYPE']._serialized_start=81836
- _globals['_MESSAGE_INVOICEMESSAGE_ATTACHMENTTYPE']._serialized_end=81872
- _globals['_MESSAGE_KEEPINCHATMESSAGE']._serialized_start=81874
- _globals['_MESSAGE_KEEPINCHATMESSAGE']._serialized_end=81987
- _globals['_MESSAGE_LINKPREVIEWMETADATA']._serialized_start=81990
- _globals['_MESSAGE_LINKPREVIEWMETADATA']._serialized_end=82509
- _globals['_MESSAGE_LINKPREVIEWMETADATA_SOCIALMEDIAPOSTTYPE']._serialized_start=82404
- _globals['_MESSAGE_LINKPREVIEWMETADATA_SOCIALMEDIAPOSTTYPE']._serialized_end=82509
- _globals['_MESSAGE_LISTMESSAGE']._serialized_start=82512
- _globals['_MESSAGE_LISTMESSAGE']._serialized_end=83407
- _globals['_MESSAGE_LISTMESSAGE_PRODUCT']._serialized_start=82834
- _globals['_MESSAGE_LISTMESSAGE_PRODUCT']._serialized_end=82862
- _globals['_MESSAGE_LISTMESSAGE_PRODUCTLISTHEADERIMAGE']._serialized_start=82864
- _globals['_MESSAGE_LISTMESSAGE_PRODUCTLISTHEADERIMAGE']._serialized_end=82930
- _globals['_MESSAGE_LISTMESSAGE_PRODUCTLISTINFO']._serialized_start=82933
- _globals['_MESSAGE_LISTMESSAGE_PRODUCTLISTINFO']._serialized_end=83122
- _globals['_MESSAGE_LISTMESSAGE_PRODUCTSECTION']._serialized_start=83124
- _globals['_MESSAGE_LISTMESSAGE_PRODUCTSECTION']._serialized_end=83212
- _globals['_MESSAGE_LISTMESSAGE_ROW']._serialized_start=83214
- _globals['_MESSAGE_LISTMESSAGE_ROW']._serialized_end=83270
- _globals['_MESSAGE_LISTMESSAGE_SECTION']._serialized_start=83272
- _globals['_MESSAGE_LISTMESSAGE_SECTION']._serialized_end=83345
- _globals['_MESSAGE_LISTMESSAGE_LISTTYPE']._serialized_start=83347
- _globals['_MESSAGE_LISTMESSAGE_LISTTYPE']._serialized_end=83407
- _globals['_MESSAGE_LISTRESPONSEMESSAGE']._serialized_start=83410
- _globals['_MESSAGE_LISTRESPONSEMESSAGE']._serialized_end=83749
- _globals['_MESSAGE_LISTRESPONSEMESSAGE_SINGLESELECTREPLY']._serialized_start=83663
- _globals['_MESSAGE_LISTRESPONSEMESSAGE_SINGLESELECTREPLY']._serialized_end=83705
- _globals['_MESSAGE_LISTRESPONSEMESSAGE_LISTTYPE']._serialized_start=83347
- _globals['_MESSAGE_LISTRESPONSEMESSAGE_LISTTYPE']._serialized_end=83389
- _globals['_MESSAGE_LIVELOCATIONMESSAGE']._serialized_start=83752
- _globals['_MESSAGE_LIVELOCATIONMESSAGE']._serialized_end=84041
- _globals['_MESSAGE_LOCATIONMESSAGE']._serialized_start=84044
- _globals['_MESSAGE_LOCATIONMESSAGE']._serialized_end=84345
- _globals['_MESSAGE_MMSTHUMBNAILMETADATA']._serialized_start=84348
- _globals['_MESSAGE_MMSTHUMBNAILMETADATA']._serialized_end=84546
- _globals['_MESSAGE_MESSAGEHISTORYBUNDLE']._serialized_start=84549
- _globals['_MESSAGE_MESSAGEHISTORYBUNDLE']._serialized_end=84815
- _globals['_MESSAGE_MESSAGEHISTORYMETADATA']._serialized_start=84818
- _globals['_MESSAGE_MESSAGEHISTORYMETADATA']._serialized_end=84999
- _globals['_MESSAGE_MESSAGEHISTORYNOTICE']._serialized_start=85002
- _globals['_MESSAGE_MESSAGEHISTORYNOTICE']._serialized_end=85142
- _globals['_MESSAGE_NEWSLETTERADMININVITEMESSAGE']._serialized_start=85145
- _globals['_MESSAGE_NEWSLETTERADMININVITEMESSAGE']._serialized_end=85332
- _globals['_MESSAGE_NEWSLETTERFOLLOWERINVITEMESSAGE']._serialized_start=85335
- _globals['_MESSAGE_NEWSLETTERFOLLOWERINVITEMESSAGE']._serialized_end=85499
- _globals['_MESSAGE_ORDERMESSAGE']._serialized_start=85502
- _globals['_MESSAGE_ORDERMESSAGE']._serialized_end=86043
- _globals['_MESSAGE_ORDERMESSAGE_ORDERSTATUS']._serialized_start=85960
- _globals['_MESSAGE_ORDERMESSAGE_ORDERSTATUS']._serialized_end=86014
- _globals['_MESSAGE_ORDERMESSAGE_ORDERSURFACE']._serialized_start=86016
- _globals['_MESSAGE_ORDERMESSAGE_ORDERSURFACE']._serialized_end=86043
- _globals['_MESSAGE_PAYMENTEXTENDEDMETADATA']._serialized_start=86045
- _globals['_MESSAGE_PAYMENTEXTENDEDMETADATA']._serialized_end=86102
- _globals['_MESSAGE_PAYMENTINVITEMESSAGE']._serialized_start=86105
- _globals['_MESSAGE_PAYMENTINVITEMESSAGE']._serialized_end=86440
- _globals['_MESSAGE_PAYMENTINVITEMESSAGE_INVITETYPE']._serialized_start=86345
- _globals['_MESSAGE_PAYMENTINVITEMESSAGE_INVITETYPE']._serialized_end=86382
- _globals['_MESSAGE_PAYMENTINVITEMESSAGE_SERVICETYPE']._serialized_start=86384
- _globals['_MESSAGE_PAYMENTINVITEMESSAGE_SERVICETYPE']._serialized_end=86440
- _globals['_MESSAGE_PAYMENTLINKMETADATA']._serialized_start=86443
- _globals['_MESSAGE_PAYMENTLINKMETADATA']._serialized_end=86947
- _globals['_MESSAGE_PAYMENTLINKMETADATA_PAYMENTLINKBUTTON']._serialized_start=86689
- _globals['_MESSAGE_PAYMENTLINKMETADATA_PAYMENTLINKBUTTON']._serialized_end=86729
- _globals['_MESSAGE_PAYMENTLINKMETADATA_PAYMENTLINKHEADER']._serialized_start=86732
- _globals['_MESSAGE_PAYMENTLINKMETADATA_PAYMENTLINKHEADER']._serialized_end=86904
- _globals['_MESSAGE_PAYMENTLINKMETADATA_PAYMENTLINKHEADER_PAYMENTLINKHEADERTYPE']._serialized_start=86852
- _globals['_MESSAGE_PAYMENTLINKMETADATA_PAYMENTLINKHEADER_PAYMENTLINKHEADERTYPE']._serialized_end=86904
- _globals['_MESSAGE_PAYMENTLINKMETADATA_PAYMENTLINKPROVIDER']._serialized_start=86906
- _globals['_MESSAGE_PAYMENTLINKMETADATA_PAYMENTLINKPROVIDER']._serialized_end=86947
- _globals['_MESSAGE_PAYMENTREMINDERMESSAGE']._serialized_start=86950
- _globals['_MESSAGE_PAYMENTREMINDERMESSAGE']._serialized_end=87516
- _globals['_MESSAGE_PAYMENTREMINDERMESSAGE_REMINDERFREQUENCY']._serialized_start=87276
- _globals['_MESSAGE_PAYMENTREMINDERMESSAGE_REMINDERFREQUENCY']._serialized_end=87382
- _globals['_MESSAGE_PAYMENTREMINDERMESSAGE_REMINDERSTATUS']._serialized_start=87385
- _globals['_MESSAGE_PAYMENTREMINDERMESSAGE_REMINDERSTATUS']._serialized_end=87516
- _globals['_MESSAGE_PEERDATAOPERATIONREQUESTMESSAGE']._serialized_start=87519
- _globals['_MESSAGE_PEERDATAOPERATIONREQUESTMESSAGE']._serialized_end=90327
- _globals['_MESSAGE_PEERDATAOPERATIONREQUESTMESSAGE_BIZBROADCASTINSIGHTSCONTACTLISTREQUEST']._serialized_start=88958
- _globals['_MESSAGE_PEERDATAOPERATIONREQUESTMESSAGE_BIZBROADCASTINSIGHTSCONTACTLISTREQUEST']._serialized_end=89018
- _globals['_MESSAGE_PEERDATAOPERATIONREQUESTMESSAGE_BIZBROADCASTINSIGHTSREFRESHREQUEST']._serialized_start=89020
- _globals['_MESSAGE_PEERDATAOPERATIONREQUESTMESSAGE_BIZBROADCASTINSIGHTSREFRESHREQUEST']._serialized_end=89076
- _globals['_MESSAGE_PEERDATAOPERATIONREQUESTMESSAGE_COMPANIONCANONICALUSERNONCEFETCHREQUEST']._serialized_start=89078
- _globals['_MESSAGE_PEERDATAOPERATIONREQUESTMESSAGE_COMPANIONCANONICALUSERNONCEFETCHREQUEST']._serialized_end=89148
- _globals['_MESSAGE_PEERDATAOPERATIONREQUESTMESSAGE_FULLHISTORYSYNCONDEMANDREQUEST']._serialized_start=89151
- _globals['_MESSAGE_PEERDATAOPERATIONREQUESTMESSAGE_FULLHISTORYSYNCONDEMANDREQUEST']._serialized_end=89422
- _globals['_MESSAGE_PEERDATAOPERATIONREQUESTMESSAGE_GALAXYFLOWACTION']._serialized_start=89425
- _globals['_MESSAGE_PEERDATAOPERATIONREQUESTMESSAGE_GALAXYFLOWACTION']._serialized_end=89699
- _globals['_MESSAGE_PEERDATAOPERATIONREQUESTMESSAGE_GALAXYFLOWACTION_GALAXYFLOWACTIONTYPE']._serialized_start=89634
- _globals['_MESSAGE_PEERDATAOPERATIONREQUESTMESSAGE_GALAXYFLOWACTION_GALAXYFLOWACTIONTYPE']._serialized_end=89699
- _globals['_MESSAGE_PEERDATAOPERATIONREQUESTMESSAGE_HISTORYSYNCCHUNKRETRYREQUEST']._serialized_start=89702
- _globals['_MESSAGE_PEERDATAOPERATIONREQUESTMESSAGE_HISTORYSYNCCHUNKRETRYREQUEST']._serialized_end=89859
- _globals['_MESSAGE_PEERDATAOPERATIONREQUESTMESSAGE_HISTORYSYNCONDEMANDREQUEST']._serialized_start=89862
- _globals['_MESSAGE_PEERDATAOPERATIONREQUESTMESSAGE_HISTORYSYNCONDEMANDREQUEST']._serialized_end=90060
- _globals['_MESSAGE_PEERDATAOPERATIONREQUESTMESSAGE_PLACEHOLDERMESSAGERESENDREQUEST']._serialized_start=90062
- _globals['_MESSAGE_PEERDATAOPERATIONREQUESTMESSAGE_PLACEHOLDERMESSAGERESENDREQUEST']._serialized_end=90137
- _globals['_MESSAGE_PEERDATAOPERATIONREQUESTMESSAGE_REQUESTSTICKERREUPLOAD']._serialized_start=90139
- _globals['_MESSAGE_PEERDATAOPERATIONREQUESTMESSAGE_REQUESTSTICKERREUPLOAD']._serialized_end=90183
- _globals['_MESSAGE_PEERDATAOPERATIONREQUESTMESSAGE_REQUESTURLPREVIEW']._serialized_start=90185
- _globals['_MESSAGE_PEERDATAOPERATIONREQUESTMESSAGE_REQUESTURLPREVIEW']._serialized_end=90245
- _globals['_MESSAGE_PEERDATAOPERATIONREQUESTMESSAGE_SYNCDCOLLECTIONFATALRECOVERYREQUEST']._serialized_start=90247
- _globals['_MESSAGE_PEERDATAOPERATIONREQUESTMESSAGE_SYNCDCOLLECTIONFATALRECOVERYREQUEST']._serialized_end=90327
- _globals['_MESSAGE_PEERDATAOPERATIONREQUESTRESPONSEMESSAGE']._serialized_start=90330
- _globals['_MESSAGE_PEERDATAOPERATIONREQUESTRESPONSEMESSAGE']._serialized_end=95049
- _globals['_MESSAGE_PEERDATAOPERATIONREQUESTRESPONSEMESSAGE_PEERDATAOPERATIONRESULT']._serialized_start=90594
- _globals['_MESSAGE_PEERDATAOPERATIONREQUESTRESPONSEMESSAGE_PEERDATAOPERATIONRESULT']._serialized_end=95049
- _globals['_MESSAGE_PEERDATAOPERATIONREQUESTRESPONSEMESSAGE_PEERDATAOPERATIONRESULT_BIZBROADCASTINSIGHTSCONTACTLISTRESPONSE']._serialized_start=92339
- _globals['_MESSAGE_PEERDATAOPERATIONREQUESTRESPONSEMESSAGE_PEERDATAOPERATIONRESULT_BIZBROADCASTINSIGHTSCONTACTLISTRESPONSE']._serialized_end=92556
- _globals['_MESSAGE_PEERDATAOPERATIONREQUESTRESPONSEMESSAGE_PEERDATAOPERATIONRESULT_BIZBROADCASTINSIGHTSCONTACTSTATE']._serialized_start=92558
- _globals['_MESSAGE_PEERDATAOPERATIONREQUESTRESPONSEMESSAGE_PEERDATAOPERATIONRESULT_BIZBROADCASTINSIGHTSCONTACTSTATE']._serialized_end=92667
- _globals['_MESSAGE_PEERDATAOPERATIONREQUESTRESPONSEMESSAGE_PEERDATAOPERATIONRESULT_COMPANIONCANONICALUSERNONCEFETCHRESPONSE']._serialized_start=92669
- _globals['_MESSAGE_PEERDATAOPERATIONREQUESTRESPONSEMESSAGE_PEERDATAOPERATIONRESULT_COMPANIONCANONICALUSERNONCEFETCHRESPONSE']._serialized_end=92764
- _globals['_MESSAGE_PEERDATAOPERATIONREQUESTRESPONSEMESSAGE_PEERDATAOPERATIONRESULT_COMPANIONMETANONCEFETCHRESPONSE']._serialized_start=92766
- _globals['_MESSAGE_PEERDATAOPERATIONREQUESTRESPONSEMESSAGE_PEERDATAOPERATIONRESULT_COMPANIONMETANONCEFETCHRESPONSE']._serialized_end=92814
- _globals['_MESSAGE_PEERDATAOPERATIONREQUESTRESPONSEMESSAGE_PEERDATAOPERATIONRESULT_FLOWRESPONSESCSVBUNDLE']._serialized_start=92817
- _globals['_MESSAGE_PEERDATAOPERATIONREQUESTRESPONSEMESSAGE_PEERDATAOPERATIONRESULT_FLOWRESPONSESCSVBUNDLE']._serialized_end=93058
- _globals['_MESSAGE_PEERDATAOPERATIONREQUESTRESPONSEMESSAGE_PEERDATAOPERATIONRESULT_FULLHISTORYSYNCONDEMANDREQUESTRESPONSE']._serialized_start=93061
- _globals['_MESSAGE_PEERDATAOPERATIONREQUESTRESPONSEMESSAGE_PEERDATAOPERATIONRESULT_FULLHISTORYSYNCONDEMANDREQUESTRESPONSE']._serialized_end=93326
- _globals['_MESSAGE_PEERDATAOPERATIONREQUESTRESPONSEMESSAGE_PEERDATAOPERATIONRESULT_HISTORYSYNCCHUNKRETRYRESPONSE']._serialized_start=93329
- _globals['_MESSAGE_PEERDATAOPERATIONREQUESTRESPONSEMESSAGE_PEERDATAOPERATIONRESULT_HISTORYSYNCCHUNKRETRYRESPONSE']._serialized_end=93612
- _globals['_MESSAGE_PEERDATAOPERATIONREQUESTRESPONSEMESSAGE_PEERDATAOPERATIONRESULT_LINKPREVIEWRESPONSE']._serialized_start=93615
- _globals['_MESSAGE_PEERDATAOPERATIONREQUESTRESPONSEMESSAGE_PEERDATAOPERATIONRESULT_LINKPREVIEWRESPONSE']._serialized_end=94375
- _globals['_MESSAGE_PEERDATAOPERATIONREQUESTRESPONSEMESSAGE_PEERDATAOPERATIONRESULT_LINKPREVIEWRESPONSE_LINKPREVIEWHIGHQUALITYTHUMBNAIL']._serialized_start=94062
- _globals['_MESSAGE_PEERDATAOPERATIONREQUESTRESPONSEMESSAGE_PEERDATAOPERATIONRESULT_LINKPREVIEWRESPONSE_LINKPREVIEWHIGHQUALITYTHUMBNAIL']._serialized_end=94244
- _globals['_MESSAGE_PEERDATAOPERATIONREQUESTRESPONSEMESSAGE_PEERDATAOPERATIONRESULT_LINKPREVIEWRESPONSE_PAYMENTLINKPREVIEWMETADATA']._serialized_start=94247
- _globals['_MESSAGE_PEERDATAOPERATIONREQUESTRESPONSEMESSAGE_PEERDATAOPERATIONRESULT_LINKPREVIEWRESPONSE_PAYMENTLINKPREVIEWMETADATA']._serialized_end=94375
- _globals['_MESSAGE_PEERDATAOPERATIONREQUESTRESPONSEMESSAGE_PEERDATAOPERATIONRESULT_PLACEHOLDERMESSAGERESENDRESPONSE']._serialized_start=94377
- _globals['_MESSAGE_PEERDATAOPERATIONREQUESTRESPONSEMESSAGE_PEERDATAOPERATIONRESULT_PLACEHOLDERMESSAGERESENDRESPONSE']._serialized_end=94440
- _globals['_MESSAGE_PEERDATAOPERATIONREQUESTRESPONSEMESSAGE_PEERDATAOPERATIONRESULT_SYNCDSNAPSHOTFATALRECOVERYRESPONSE']._serialized_start=94442
- _globals['_MESSAGE_PEERDATAOPERATIONREQUESTRESPONSEMESSAGE_PEERDATAOPERATIONRESULT_SYNCDSNAPSHOTFATALRECOVERYRESPONSE']._serialized_end=94528
- _globals['_MESSAGE_PEERDATAOPERATIONREQUESTRESPONSEMESSAGE_PEERDATAOPERATIONRESULT_WAFFLENONCEFETCHRESPONSE']._serialized_start=94530
- _globals['_MESSAGE_PEERDATAOPERATIONREQUESTRESPONSEMESSAGE_PEERDATAOPERATIONRESULT_WAFFLENONCEFETCHRESPONSE']._serialized_end=94590
- _globals['_MESSAGE_PEERDATAOPERATIONREQUESTRESPONSEMESSAGE_PEERDATAOPERATIONRESULT_FULLHISTORYSYNCONDEMANDRESPONSECODE']._serialized_start=94593
- _globals['_MESSAGE_PEERDATAOPERATIONREQUESTRESPONSEMESSAGE_PEERDATAOPERATIONRESULT_FULLHISTORYSYNCONDEMANDRESPONSECODE']._serialized_end=94888
- _globals['_MESSAGE_PEERDATAOPERATIONREQUESTRESPONSEMESSAGE_PEERDATAOPERATIONRESULT_HISTORYSYNCCHUNKRETRYRESPONSECODE']._serialized_start=94891
- _globals['_MESSAGE_PEERDATAOPERATIONREQUESTRESPONSEMESSAGE_PEERDATAOPERATIONRESULT_HISTORYSYNCCHUNKRETRYRESPONSECODE']._serialized_end=95049
- _globals['_MESSAGE_PININCHATMESSAGE']._serialized_start=95052
- _globals['_MESSAGE_PININCHATMESSAGE']._serialized_end=95249
- _globals['_MESSAGE_PININCHATMESSAGE_TYPE']._serialized_start=95189
- _globals['_MESSAGE_PININCHATMESSAGE_TYPE']._serialized_end=95249
- _globals['_MESSAGE_PLACEHOLDERMESSAGE']._serialized_start=95252
- _globals['_MESSAGE_PLACEHOLDERMESSAGE']._serialized_end=95384
- _globals['_MESSAGE_PLACEHOLDERMESSAGE_PLACEHOLDERTYPE']._serialized_start=95342
- _globals['_MESSAGE_PLACEHOLDERMESSAGE_PLACEHOLDERTYPE']._serialized_end=95384
- _globals['_MESSAGE_POLLADDOPTIONMESSAGE']._serialized_start=95387
- _globals['_MESSAGE_POLLADDOPTIONMESSAGE']._serialized_end=95591
- _globals['_MESSAGE_POLLCREATIONMESSAGE']._serialized_start=95594
- _globals['_MESSAGE_POLLCREATIONMESSAGE']._serialized_end=96079
- _globals['_MESSAGE_POLLCREATIONMESSAGE_OPTION']._serialized_start=96031
- _globals['_MESSAGE_POLLCREATIONMESSAGE_OPTION']._serialized_end=96079
- _globals['_MESSAGE_POLLENCVALUE']._serialized_start=34798
- _globals['_MESSAGE_POLLENCVALUE']._serialized_end=34847
- _globals['_MESSAGE_POLLRESULTSNAPSHOTMESSAGE']._serialized_start=96133
- _globals['_MESSAGE_POLLRESULTSNAPSHOTMESSAGE']._serialized_end=96394
- _globals['_MESSAGE_POLLRESULTSNAPSHOTMESSAGE_POLLVOTE']._serialized_start=96339
- _globals['_MESSAGE_POLLRESULTSNAPSHOTMESSAGE_POLLVOTE']._serialized_end=96394
- _globals['_MESSAGE_POLLUPDATEMESSAGE']._serialized_start=96397
- _globals['_MESSAGE_POLLUPDATEMESSAGE']._serialized_end=96606
- _globals['_MESSAGE_POLLUPDATEMESSAGEMETADATA']._serialized_start=96608
- _globals['_MESSAGE_POLLUPDATEMESSAGEMETADATA']._serialized_end=96683
- _globals['_MESSAGE_POLLVOTEMESSAGE']._serialized_start=35046
- _globals['_MESSAGE_POLLVOTEMESSAGE']._serialized_end=35088
- _globals['_MESSAGE_PRODUCTMESSAGE']._serialized_start=96730
- _globals['_MESSAGE_PRODUCTMESSAGE']._serialized_end=97395
- _globals['_MESSAGE_PRODUCTMESSAGE_CATALOGSNAPSHOT']._serialized_start=96982
- _globals['_MESSAGE_PRODUCTMESSAGE_CATALOGSNAPSHOT']._serialized_end=97089
- _globals['_MESSAGE_PRODUCTMESSAGE_PRODUCTSNAPSHOT']._serialized_start=97092
- _globals['_MESSAGE_PRODUCTMESSAGE_PRODUCTSNAPSHOT']._serialized_end=97395
- _globals['_MESSAGE_PROTOCOLMESSAGE']._serialized_start=97398
- _globals['_MESSAGE_PROTOCOLMESSAGE']._serialized_end=99983
- _globals['_MESSAGE_PROTOCOLMESSAGE_TYPE']._serialized_start=99094
- _globals['_MESSAGE_PROTOCOLMESSAGE_TYPE']._serialized_end=99983
- _globals['_MESSAGE_QUESTIONRESPONSEMESSAGE']._serialized_start=99985
- _globals['_MESSAGE_QUESTIONRESPONSEMESSAGE']._serialized_end=100059
- _globals['_MESSAGE_REACTIONMESSAGE']._serialized_start=35118
- _globals['_MESSAGE_REACTIONMESSAGE']._serialized_end=35232
- _globals['_MESSAGE_REQUESTPAYMENTMESSAGE']._serialized_start=100178
- _globals['_MESSAGE_REQUESTPAYMENTMESSAGE']._serialized_end=100418
- _globals['_MESSAGE_REQUESTPHONENUMBERMESSAGE']._serialized_start=100420
- _globals['_MESSAGE_REQUESTPHONENUMBERMESSAGE']._serialized_end=100491
- _globals['_MESSAGE_REQUESTWELCOMEMESSAGEMETADATA']._serialized_start=100494
- _globals['_MESSAGE_REQUESTWELCOMEMESSAGEMETADATA']._serialized_end=100855
- _globals['_MESSAGE_REQUESTWELCOMEMESSAGEMETADATA_LOCALCHATSTATE']._serialized_start=100757
- _globals['_MESSAGE_REQUESTWELCOMEMESSAGEMETADATA_LOCALCHATSTATE']._serialized_end=100799
- _globals['_MESSAGE_REQUESTWELCOMEMESSAGEMETADATA_WELCOMETRIGGER']._serialized_start=100801
- _globals['_MESSAGE_REQUESTWELCOMEMESSAGEMETADATA_WELCOMETRIGGER']._serialized_end=100855
- _globals['_MESSAGE_ROOTSECRETDISTRIBUTEMESSAGE']._serialized_start=100857
- _globals['_MESSAGE_ROOTSECRETDISTRIBUTEMESSAGE']._serialized_end=100903
- _globals['_MESSAGE_SCHEDULEDCALLCREATIONMESSAGE']._serialized_start=100906
- _globals['_MESSAGE_SCHEDULEDCALLCREATIONMESSAGE']._serialized_end=101103
- _globals['_MESSAGE_SCHEDULEDCALLCREATIONMESSAGE_CALLTYPE']._serialized_start=101058
- _globals['_MESSAGE_SCHEDULEDCALLCREATIONMESSAGE_CALLTYPE']._serialized_end=101103
- _globals['_MESSAGE_SCHEDULEDCALLEDITMESSAGE']._serialized_start=101106
- _globals['_MESSAGE_SCHEDULEDCALLEDITMESSAGE']._serialized_end=101275
- _globals['_MESSAGE_SCHEDULEDCALLEDITMESSAGE_EDITTYPE']._serialized_start=101240
- _globals['_MESSAGE_SCHEDULEDCALLEDITMESSAGE_EDITTYPE']._serialized_end=101275
- _globals['_MESSAGE_SECRETENCRYPTEDMESSAGE']._serialized_start=101278
- _globals['_MESSAGE_SECRETENCRYPTEDMESSAGE']._serialized_end=101607
- _globals['_MESSAGE_SECRETENCRYPTEDMESSAGE_SECRETENCTYPE']._serialized_start=101487
- _globals['_MESSAGE_SECRETENCRYPTEDMESSAGE_SECRETENCTYPE']._serialized_end=101607
- _globals['_MESSAGE_SENDPAYMENTMESSAGE']._serialized_start=101610
- _globals['_MESSAGE_SENDPAYMENTMESSAGE']._serialized_end=101793
- _globals['_MESSAGE_SENDERKEYDISTRIBUTIONMESSAGE']._serialized_start=101795
- _globals['_MESSAGE_SENDERKEYDISTRIBUTIONMESSAGE']._serialized_end=101887
- _globals['_MESSAGE_SPLITPAYMENTMESSAGE']._serialized_start=101890
- _globals['_MESSAGE_SPLITPAYMENTMESSAGE']._serialized_end=102139
- _globals['_MESSAGE_SPLITPAYMENTPARTICIPANT']._serialized_start=102142
- _globals['_MESSAGE_SPLITPAYMENTPARTICIPANT']._serialized_end=102336
- _globals['_MESSAGE_SPLITPAYMENTPARTICIPANT_SPLITPAYMENTSTATUS']._serialized_start=102293
- _globals['_MESSAGE_SPLITPAYMENTPARTICIPANT_SPLITPAYMENTSTATUS']._serialized_end=102336
- _globals['_MESSAGE_STATUSNOTIFICATIONMESSAGE']._serialized_start=102339
- _globals['_MESSAGE_STATUSNOTIFICATIONMESSAGE']._serialized_end=102665
- _globals['_MESSAGE_STATUSNOTIFICATIONMESSAGE_STATUSNOTIFICATIONTYPE']._serialized_start=102550
- _globals['_MESSAGE_STATUSNOTIFICATIONMESSAGE_STATUSNOTIFICATIONTYPE']._serialized_end=102665
- _globals['_MESSAGE_STATUSQUESTIONANSWERMESSAGE']._serialized_start=102667
- _globals['_MESSAGE_STATUSQUESTIONANSWERMESSAGE']._serialized_end=102745
- _globals['_MESSAGE_STATUSQUOTEDMESSAGE']._serialized_start=102748
- _globals['_MESSAGE_STATUSQUOTEDMESSAGE']._serialized_end=102975
- _globals['_MESSAGE_STATUSQUOTEDMESSAGE_STATUSQUOTEDMESSAGETYPE']._serialized_start=102929
- _globals['_MESSAGE_STATUSQUOTEDMESSAGE_STATUSQUOTEDMESSAGETYPE']._serialized_end=102975
- _globals['_MESSAGE_STATUSSTICKERINTERACTIONMESSAGE']._serialized_start=102978
- _globals['_MESSAGE_STATUSSTICKERINTERACTIONMESSAGE']._serialized_end=103197
- _globals['_MESSAGE_STATUSSTICKERINTERACTIONMESSAGE_STATUSSTICKERTYPE']._serialized_start=103151
- _globals['_MESSAGE_STATUSSTICKERINTERACTIONMESSAGE_STATUSSTICKERTYPE']._serialized_end=103197
- _globals['_MESSAGE_STICKERMESSAGE']._serialized_start=103200
- _globals['_MESSAGE_STICKERMESSAGE']._serialized_end=103686
- _globals['_MESSAGE_STICKERPACKMESSAGE']._serialized_start=103689
- _globals['_MESSAGE_STICKERPACKMESSAGE']._serialized_end=104551
- _globals['_MESSAGE_STICKERPACKMESSAGE_STICKER']._serialized_start=104334
- _globals['_MESSAGE_STICKERPACKMESSAGE_STICKER']._serialized_end=104478
- _globals['_MESSAGE_STICKERPACKMESSAGE_STICKERPACKORIGIN']._serialized_start=104480
- _globals['_MESSAGE_STICKERPACKMESSAGE_STICKERPACKORIGIN']._serialized_end=104551
- _globals['_MESSAGE_STICKERSYNCRMRMESSAGE']._serialized_start=104553
- _globals['_MESSAGE_STICKERSYNCRMRMESSAGE']._serialized_end=104639
- _globals['_MESSAGE_TEMPLATEBUTTONREPLYMESSAGE']._serialized_start=104642
- _globals['_MESSAGE_TEMPLATEBUTTONREPLYMESSAGE']._serialized_end=104821
- _globals['_MESSAGE_TEMPLATEMESSAGE']._serialized_start=104824
- _globals['_MESSAGE_TEMPLATEMESSAGE']._serialized_end=106218
- _globals['_MESSAGE_TEMPLATEMESSAGE_FOURROWTEMPLATE']._serialized_start=105241
- _globals['_MESSAGE_TEMPLATEMESSAGE_FOURROWTEMPLATE']._serialized_end=105743
- _globals['_MESSAGE_TEMPLATEMESSAGE_HYDRATEDFOURROWTEMPLATE']._serialized_start=105746
- _globals['_MESSAGE_TEMPLATEMESSAGE_HYDRATEDFOURROWTEMPLATE']._serialized_end=106208
- _globals['_MESSAGE_URLMETADATA']._serialized_start=106220
- _globals['_MESSAGE_URLMETADATA']._serialized_end=106257
- _globals['_MESSAGE_VIDEOENDCARD']._serialized_start=106259
- _globals['_MESSAGE_VIDEOENDCARD']._serialized_end=106362
- _globals['_MESSAGE_VIDEOMESSAGE']._serialized_start=106365
- _globals['_MESSAGE_VIDEOMESSAGE']._serialized_end=107397
- _globals['_MESSAGE_VIDEOMESSAGE_ATTRIBUTION']._serialized_start=107288
- _globals['_MESSAGE_VIDEOMESSAGE_ATTRIBUTION']._serialized_end=107344
- _globals['_MESSAGE_VIDEOMESSAGE_VIDEOSOURCETYPE']._serialized_start=107346
- _globals['_MESSAGE_VIDEOMESSAGE_VIDEOSOURCETYPE']._serialized_end=107397
- _globals['_MESSAGE_HISTORYSYNCTYPE']._serialized_start=107400
- _globals['_MESSAGE_HISTORYSYNCTYPE']._serialized_end=107581
- _globals['_MESSAGE_INSIGHTDELIVERYSTATE']._serialized_start=107583
- _globals['_MESSAGE_INSIGHTDELIVERYSTATE']._serialized_end=107672
- _globals['_MESSAGE_PEERDATAOPERATIONREQUESTTYPE']._serialized_start=107675
- _globals['_MESSAGE_PEERDATAOPERATIONREQUESTTYPE']._serialized_end=108172
- _globals['_MESSAGE_POLLCONTENTTYPE']._serialized_start=108174
- _globals['_MESSAGE_POLLCONTENTTYPE']._serialized_end=108225
- _globals['_MESSAGE_POLLTYPE']._serialized_start=108227
- _globals['_MESSAGE_POLLTYPE']._serialized_end=108257
- _globals['_MESSAGEADDON']._serialized_start=108260
- _globals['_MESSAGEADDON']._serialized_end=108744
- _globals['_MESSAGEADDON_MESSAGEADDONTYPE']._serialized_start=108643
- _globals['_MESSAGEADDON_MESSAGEADDONTYPE']._serialized_end=108744
- _globals['_MESSAGEADDONCONTEXTINFO']._serialized_start=108747
- _globals['_MESSAGEADDONCONTEXTINFO']._serialized_end=108893
- _globals['_MESSAGEASSOCIATION']._serialized_start=108896
- _globals['_MESSAGEASSOCIATION']._serialized_end=109548
- _globals['_MESSAGEASSOCIATION_ASSOCIATIONTYPE']._serialized_start=109060
- _globals['_MESSAGEASSOCIATION_ASSOCIATIONTYPE']._serialized_end=109548
- _globals['_MESSAGECONTEXTINFO']._serialized_start=109551
- _globals['_MESSAGECONTEXTINFO']._serialized_end=110318
- _globals['_MESSAGECONTEXTINFO_MESSAGEADDONEXPIRYTYPE']._serialized_start=110257
- _globals['_MESSAGECONTEXTINFO_MESSAGEADDONEXPIRYTYPE']._serialized_end=110318
- _globals['_MESSAGEKEY']._serialized_start=110320
- _globals['_MESSAGEKEY']._serialized_end=110400
- _globals['_MESSAGESECRETMESSAGE']._serialized_start=110402
- _globals['_MESSAGESECRETMESSAGE']._serialized_end=110476
- _globals['_MESSAGETEXT']._serialized_start=110478
- _globals['_MESSAGETEXT']._serialized_end=110601
- _globals['_MONEY']._serialized_start=110603
- _globals['_MONEY']._serialized_end=110663
- _globals['_MSGOPAQUEDATA']._serialized_start=110666
- _globals['_MSGOPAQUEDATA']._serialized_end=112753
- _globals['_MSGOPAQUEDATA_EVENTLOCATION']._serialized_start=112314
- _globals['_MSGOPAQUEDATA_EVENTLOCATION']._serialized_end=112447
- _globals['_MSGOPAQUEDATA_POLLOPTION']._serialized_start=112449
- _globals['_MSGOPAQUEDATA_POLLOPTION']._serialized_end=112489
- _globals['_MSGOPAQUEDATA_POLLVOTESNAPSHOT']._serialized_start=112491
- _globals['_MSGOPAQUEDATA_POLLVOTESNAPSHOT']._serialized_end=112586
- _globals['_MSGOPAQUEDATA_POLLVOTESSNAPSHOT']._serialized_start=112588
- _globals['_MSGOPAQUEDATA_POLLVOTESSNAPSHOT']._serialized_end=112668
- _globals['_MSGOPAQUEDATA_POLLCONTENTTYPE']._serialized_start=108174
- _globals['_MSGOPAQUEDATA_POLLCONTENTTYPE']._serialized_end=108225
- _globals['_MSGOPAQUEDATA_POLLTYPE']._serialized_start=108227
- _globals['_MSGOPAQUEDATA_POLLTYPE']._serialized_end=108257
- _globals['_MSGROWOPAQUEDATA']._serialized_start=112755
- _globals['_MSGROWOPAQUEDATA']._serialized_end=112862
- _globals['_NOISECERTIFICATE']._serialized_start=112865
- _globals['_NOISECERTIFICATE']._serialized_end=113009
- _globals['_NOISECERTIFICATE_DETAILS']._serialized_start=112921
- _globals['_NOISECERTIFICATE_DETAILS']._serialized_end=113009
- _globals['_NOTIFICATIONMESSAGEINFO']._serialized_start=113012
- _globals['_NOTIFICATIONMESSAGEINFO']._serialized_end=113155
- _globals['_NOTIFICATIONSETTINGS']._serialized_start=113158
- _globals['_NOTIFICATIONSETTINGS']._serialized_end=113327
- _globals['_PAIRINGREQUEST']._serialized_start=113329
- _globals['_PAIRINGREQUEST']._serialized_end=113422
- _globals['_PASTPARTICIPANT']._serialized_start=113425
- _globals['_PASTPARTICIPANT']._serialized_end=113574
- _globals['_PASTPARTICIPANT_LEAVEREASON']._serialized_start=113538
- _globals['_PASTPARTICIPANT_LEAVEREASON']._serialized_end=113574
- _globals['_PASTPARTICIPANTS']._serialized_start=113576
- _globals['_PASTPARTICIPANTS']._serialized_end=113665
- _globals['_PATCHDEBUGDATA']._serialized_start=113668
- _globals['_PATCHDEBUGDATA']._serialized_end=114138
- _globals['_PATCHDEBUGDATA_PLATFORM']._serialized_start=114000
- _globals['_PATCHDEBUGDATA_PLATFORM']._serialized_end=114138
- _globals['_PAYMENTBACKGROUND']._serialized_start=114141
- _globals['_PAYMENTBACKGROUND']._serialized_end=114566
- _globals['_PAYMENTBACKGROUND_MEDIADATA']._serialized_start=114413
- _globals['_PAYMENTBACKGROUND_MEDIADATA']._serialized_end=114532
- _globals['_PAYMENTBACKGROUND_TYPE']._serialized_start=114534
- _globals['_PAYMENTBACKGROUND_TYPE']._serialized_end=114566
- _globals['_PAYMENTINFO']._serialized_start=114569
- _globals['_PAYMENTINFO']._serialized_end=115952
- _globals['_PAYMENTINFO_CURRENCY']._serialized_start=115036
- _globals['_PAYMENTINFO_CURRENCY']._serialized_end=115077
- _globals['_PAYMENTINFO_STATUS']._serialized_start=115080
- _globals['_PAYMENTINFO_STATUS']._serialized_end=115284
- _globals['_PAYMENTINFO_TXNSTATUS']._serialized_start=115287
- _globals['_PAYMENTINFO_TXNSTATUS']._serialized_end=115952
- _globals['_PHONENUMBERTOLIDMAPPING']._serialized_start=115954
- _globals['_PHONENUMBERTOLIDMAPPING']._serialized_end=116010
- _globals['_PHOTOCHANGE']._serialized_start=116012
- _globals['_PHOTOCHANGE']._serialized_end=116081
- _globals['_PININCHAT']._serialized_start=116084
- _globals['_PININCHAT']._serialized_end=116354
- _globals['_PININCHAT_TYPE']._serialized_start=95189
- _globals['_PININCHAT_TYPE']._serialized_end=95249
- _globals['_POINT']._serialized_start=116356
- _globals['_POINT']._serialized_end=116427
- _globals['_POLLADDITIONALMETADATA']._serialized_start=116430
- _globals['_POLLADDITIONALMETADATA']._serialized_end=116639
- _globals['_POLLADDITIONALMETADATA_POLLNAMEHASHHISTORYENTRY']._serialized_start=116569
- _globals['_POLLADDITIONALMETADATA_POLLNAMEHASHHISTORYENTRY']._serialized_end=116639
- _globals['_POLLENCVALUE']._serialized_start=34798
- _globals['_POLLENCVALUE']._serialized_end=34847
- _globals['_POLLUPDATE']._serialized_start=116693
- _globals['_POLLUPDATE']._serialized_end=116939
- _globals['_PREKEYRECORDSTRUCTURE']._serialized_start=116941
- _globals['_PREKEYRECORDSTRUCTURE']._serialized_end=117015
- _globals['_PREKEYSIGNALMESSAGE']._serialized_start=117018
- _globals['_PREKEYSIGNALMESSAGE']._serialized_end=117160
- _globals['_PREMIUMMESSAGEINFO']._serialized_start=117162
- _globals['_PREMIUMMESSAGEINFO']._serialized_end=117208
- _globals['_PRIMARYEPHEMERALIDENTITY']._serialized_start=117210
- _globals['_PRIMARYEPHEMERALIDENTITY']._serialized_end=117270
- _globals['_PROCESSEDVIDEO']._serialized_start=117273
- _globals['_PROCESSEDVIDEO']._serialized_end=117534
- _globals['_PROCESSEDVIDEO_VIDEOQUALITY']._serialized_start=117477
- _globals['_PROCESSEDVIDEO_VIDEOQUALITY']._serialized_end=117534
- _globals['_PROLOGUEPAYLOAD']._serialized_start=117536
- _globals['_PROLOGUEPAYLOAD']._serialized_end=117640
- _globals['_PUSHNAME']._serialized_start=117642
- _globals['_PUSHNAME']._serialized_end=117682
- _globals['_QP']._serialized_start=117685
- _globals['_QP']._serialized_end=118257
- _globals['_QP_FILTER']._serialized_start=117692
- _globals['_QP_FILTER']._serialized_end=117899
- _globals['_QP_FILTERCLAUSE']._serialized_start=117902
- _globals['_QP_FILTERCLAUSE']._serialized_end=118043
- _globals['_QP_FILTERPARAMETERS']._serialized_start=118045
- _globals['_QP_FILTERPARAMETERS']._serialized_end=118091
- _globals['_QP_CLAUSETYPE']._serialized_start=118093
- _globals['_QP_CLAUSETYPE']._serialized_end=118131
- _globals['_QP_FILTERCLIENTNOTSUPPORTEDCONFIG']._serialized_start=118133
- _globals['_QP_FILTERCLIENTNOTSUPPORTEDCONFIG']._serialized_end=118207
- _globals['_QP_FILTERRESULT']._serialized_start=118209
- _globals['_QP_FILTERRESULT']._serialized_end=118257
- _globals['_QUARANTINEDMESSAGE']._serialized_start=118259
- _globals['_QUARANTINEDMESSAGE']._serialized_end=118324
- _globals['_REACTION']._serialized_start=118326
- _globals['_REACTION']._serialized_end=118449
- _globals['_RECENTEMOJIWEIGHT']._serialized_start=118451
- _globals['_RECENTEMOJIWEIGHT']._serialized_end=118501
- _globals['_RECORDSTRUCTURE']._serialized_start=118503
- _globals['_RECORDSTRUCTURE']._serialized_end=118626
- _globals['_REPORTABLE']._serialized_start=118628
- _globals['_REPORTABLE']._serialized_end=118728
- _globals['_REPORTINGTOKENINFO']._serialized_start=118730
- _globals['_REPORTINGTOKENINFO']._serialized_end=118772
- _globals['_ROUTINGINFO']._serialized_start=118774
- _globals['_ROUTINGINFO']._serialized_end=118893
- _globals['_SCHEDULEDMESSAGEMETADATA']._serialized_start=118895
- _globals['_SCHEDULEDMESSAGEMETADATA']._serialized_end=118984
- _globals['_SENDERKEYDISTRIBUTIONMESSAGE']._serialized_start=118986
- _globals['_SENDERKEYDISTRIBUTIONMESSAGE']._serialized_end=119085
- _globals['_SENDERKEYMESSAGE']._serialized_start=119087
- _globals['_SENDERKEYMESSAGE']._serialized_end=119156
- _globals['_SENDERKEYRECORDSTRUCTURE']._serialized_start=119158
- _globals['_SENDERKEYRECORDSTRUCTURE']._serialized_end=119244
- _globals['_SENDERKEYSTATESTRUCTURE']._serialized_start=119247
- _globals['_SENDERKEYSTATESTRUCTURE']._serialized_end=119681
- _globals['_SENDERKEYSTATESTRUCTURE_SENDERCHAINKEY']._serialized_start=119526
- _globals['_SENDERKEYSTATESTRUCTURE_SENDERCHAINKEY']._serialized_end=119575
- _globals['_SENDERKEYSTATESTRUCTURE_SENDERMESSAGEKEY']._serialized_start=119577
- _globals['_SENDERKEYSTATESTRUCTURE_SENDERMESSAGEKEY']._serialized_end=119628
- _globals['_SENDERKEYSTATESTRUCTURE_SENDERSIGNINGKEY']._serialized_start=119630
- _globals['_SENDERKEYSTATESTRUCTURE_SENDERSIGNINGKEY']._serialized_end=119681
- _globals['_SERVERERRORRECEIPT']._serialized_start=119683
- _globals['_SERVERERRORRECEIPT']._serialized_end=119721
- _globals['_SESSIONSTRUCTURE']._serialized_start=119724
- _globals['_SESSIONSTRUCTURE']._serialized_end=120819
- _globals['_SESSIONSTRUCTURE_CHAIN']._serialized_start=120226
- _globals['_SESSIONSTRUCTURE_CHAIN']._serialized_end=120535
- _globals['_SESSIONSTRUCTURE_CHAIN_CHAINKEY']._serialized_start=120421
- _globals['_SESSIONSTRUCTURE_CHAIN_CHAINKEY']._serialized_end=120459
- _globals['_SESSIONSTRUCTURE_CHAIN_MESSAGEKEY']._serialized_start=120461
- _globals['_SESSIONSTRUCTURE_CHAIN_MESSAGEKEY']._serialized_end=120535
- _globals['_SESSIONSTRUCTURE_PENDINGKEYEXCHANGE']._serialized_start=120538
- _globals['_SESSIONSTRUCTURE_PENDINGKEYEXCHANGE']._serialized_end=120743
- _globals['_SESSIONSTRUCTURE_PENDINGPREKEY']._serialized_start=120745
- _globals['_SESSIONSTRUCTURE_PENDINGPREKEY']._serialized_end=120819
- _globals['_SESSIONTRANSPARENCYMETADATA']._serialized_start=120822
- _globals['_SESSIONTRANSPARENCYMETADATA']._serialized_end=120958
- _globals['_SIGNALMESSAGE']._serialized_start=120960
- _globals['_SIGNALMESSAGE']._serialized_end=121057
- _globals['_SIGNEDPREKEYRECORDSTRUCTURE']._serialized_start=121059
- _globals['_SIGNEDPREKEYRECORDSTRUCTURE']._serialized_end=121177
- _globals['_STATUSATTRIBUTION']._serialized_start=121180
- _globals['_STATUSATTRIBUTION']._serialized_end=123098
- _globals['_STATUSATTRIBUTION_AICREATEDATTRIBUTION']._serialized_start=121671
- _globals['_STATUSATTRIBUTION_AICREATEDATTRIBUTION']._serialized_end=121809
- _globals['_STATUSATTRIBUTION_AICREATEDATTRIBUTION_SOURCE']._serialized_start=121768
- _globals['_STATUSATTRIBUTION_AICREATEDATTRIBUTION_SOURCE']._serialized_end=121809
- _globals['_STATUSATTRIBUTION_EXTERNALSHARE']._serialized_start=121812
- _globals['_STATUSATTRIBUTION_EXTERNALSHARE']._serialized_end=122158
- _globals['_STATUSATTRIBUTION_EXTERNALSHARE_SOURCE']._serialized_start=121960
- _globals['_STATUSATTRIBUTION_EXTERNALSHARE_SOURCE']._serialized_end=122158
- _globals['_STATUSATTRIBUTION_GROUPSTATUS']._serialized_start=122160
- _globals['_STATUSATTRIBUTION_GROUPSTATUS']._serialized_end=122192
- _globals['_STATUSATTRIBUTION_MUSIC']._serialized_start=122194
- _globals['_STATUSATTRIBUTION_MUSIC']._serialized_end=122315
- _globals['_STATUSATTRIBUTION_RLATTRIBUTION']._serialized_start=122318
- _globals['_STATUSATTRIBUTION_RLATTRIBUTION']._serialized_end=122496
- _globals['_STATUSATTRIBUTION_RLATTRIBUTION_SOURCE']._serialized_start=122401
- _globals['_STATUSATTRIBUTION_RLATTRIBUTION_SOURCE']._serialized_end=122496
- _globals['_STATUSATTRIBUTION_STATUSRESHARE']._serialized_start=122499
- _globals['_STATUSATTRIBUTION_STATUSRESHARE']._serialized_end=122855
- _globals['_STATUSATTRIBUTION_STATUSRESHARE_METADATA']._serialized_start=122652
- _globals['_STATUSATTRIBUTION_STATUSRESHARE_METADATA']._serialized_end=122755
- _globals['_STATUSATTRIBUTION_STATUSRESHARE_SOURCE']._serialized_start=122757
- _globals['_STATUSATTRIBUTION_STATUSRESHARE_SOURCE']._serialized_end=122855
- _globals['_STATUSATTRIBUTION_TYPE']._serialized_start=122858
- _globals['_STATUSATTRIBUTION_TYPE']._serialized_end=123079
- _globals['_STATUSMENTIONMESSAGE']._serialized_start=123100
- _globals['_STATUSMENTIONMESSAGE']._serialized_end=123163
- _globals['_STATUSPSA']._serialized_start=123165
- _globals['_STATUSPSA']._serialized_end=123233
- _globals['_STICKERMETADATA']._serialized_start=123236
- _globals['_STICKERMETADATA']._serialized_end=123521
- _globals['_SUBPROTOCOL']._serialized_start=123523
- _globals['_SUBPROTOCOL']._serialized_end=123570
- _globals['_SYNCACTIONDATA']._serialized_start=123572
- _globals['_SYNCACTIONDATA']._serialized_end=123679
- _globals['_SYNCACTIONVALUE']._serialized_start=123683
- _globals['_SYNCACTIONVALUE']._serialized_end=141980
- _globals['_SYNCACTIONVALUE_AGENTACTION']._serialized_start=129858
- _globals['_SYNCACTIONVALUE_AGENTACTION']._serialized_end=129922
- _globals['_SYNCACTIONVALUE_AITHREADRENAMEACTION']._serialized_start=129924
- _globals['_SYNCACTIONVALUE_AITHREADRENAMEACTION']._serialized_end=129964
- _globals['_SYNCACTIONVALUE_ANDROIDUNSUPPORTEDACTIONS']._serialized_start=129966
- _globals['_SYNCACTIONVALUE_ANDROIDUNSUPPORTEDACTIONS']._serialized_end=130010
- _globals['_SYNCACTIONVALUE_ARCHIVECHATACTION']._serialized_start=130012
- _globals['_SYNCACTIONVALUE_ARCHIVECHATACTION']._serialized_end=130121
- _globals['_SYNCACTIONVALUE_AUTOORGANIZEBUSINESSCHATSETTING']._serialized_start=130123
- _globals['_SYNCACTIONVALUE_AUTOORGANIZEBUSINESSCHATSETTING']._serialized_end=130178
- _globals['_SYNCACTIONVALUE_AVATARUPDATEDACTION']._serialized_start=130181
- _globals['_SYNCACTIONVALUE_AVATARUPDATEDACTION']._serialized_end=130413
- _globals['_SYNCACTIONVALUE_AVATARUPDATEDACTION_AVATAREVENTTYPE']._serialized_start=130357
- _globals['_SYNCACTIONVALUE_AVATARUPDATEDACTION_AVATAREVENTTYPE']._serialized_end=130413
- _globals['_SYNCACTIONVALUE_BIZAISETTINGSNUDGEACTION']._serialized_start=130416
- _globals['_SYNCACTIONVALUE_BIZAISETTINGSNUDGEACTION']._serialized_end=130704
- _globals['_SYNCACTIONVALUE_BIZAISETTINGSNUDGEACTION_BIZAISETTINGSCATEGORY']._serialized_start=130575
- _globals['_SYNCACTIONVALUE_BIZAISETTINGSNUDGEACTION_BIZAISETTINGSCATEGORY']._serialized_end=130704
- _globals['_SYNCACTIONVALUE_BOTWELCOMEREQUESTACTION']._serialized_start=130706
- _globals['_SYNCACTIONVALUE_BOTWELCOMEREQUESTACTION']._serialized_end=130747
- _globals['_SYNCACTIONVALUE_BROADCASTLISTPARTICIPANT']._serialized_start=130749
- _globals['_SYNCACTIONVALUE_BROADCASTLISTPARTICIPANT']._serialized_end=130806
- _globals['_SYNCACTIONVALUE_BUSINESSBROADCASTASSOCIATIONACTION']._serialized_start=130808
- _globals['_SYNCACTIONVALUE_BUSINESSBROADCASTASSOCIATIONACTION']._serialized_end=130861
- _globals['_SYNCACTIONVALUE_BUSINESSBROADCASTCAMPAIGNACTION']._serialized_start=130864
- _globals['_SYNCACTIONVALUE_BUSINESSBROADCASTCAMPAIGNACTION']._serialized_end=131131
- _globals['_SYNCACTIONVALUE_BUSINESSBROADCASTINSIGHTSACTION']._serialized_start=131134
- _globals['_SYNCACTIONVALUE_BUSINESSBROADCASTINSIGHTSACTION']._serialized_end=131281
- _globals['_SYNCACTIONVALUE_BUSINESSBROADCASTLISTACTION']._serialized_start=131284
- _globals['_SYNCACTIONVALUE_BUSINESSBROADCASTLISTACTION']._serialized_end=131468
- _globals['_SYNCACTIONVALUE_CALLLOGACTION']._serialized_start=131470
- _globals['_SYNCACTIONVALUE_CALLLOGACTION']._serialized_end=131533
- _globals['_SYNCACTIONVALUE_CHATASSIGNMENTACTION']._serialized_start=131535
- _globals['_SYNCACTIONVALUE_CHATASSIGNMENTACTION']._serialized_end=131580
- _globals['_SYNCACTIONVALUE_CHATASSIGNMENTOPENEDSTATUSACTION']._serialized_start=131582
- _globals['_SYNCACTIONVALUE_CHATASSIGNMENTOPENEDSTATUSACTION']._serialized_end=131636
- _globals['_SYNCACTIONVALUE_CLEARCHATACTION']._serialized_start=131638
- _globals['_SYNCACTIONVALUE_CLEARCHATACTION']._serialized_end=131727
- _globals['_SYNCACTIONVALUE_CONTACTACTION']._serialized_start=131730
- _globals['_SYNCACTIONVALUE_CONTACTACTION']._serialized_end=131865
- _globals['_SYNCACTIONVALUE_CTWAPERCUSTOMERDATASHARINGACTION']._serialized_start=131867
- _globals['_SYNCACTIONVALUE_CTWAPERCUSTOMERDATASHARINGACTION']._serialized_end=131946
- _globals['_SYNCACTIONVALUE_CUSTOMPAYMENTMETHOD']._serialized_start=131949
- _globals['_SYNCACTIONVALUE_CUSTOMPAYMENTMETHOD']._serialized_end=132096
- _globals['_SYNCACTIONVALUE_CUSTOMPAYMENTMETHODMETADATA']._serialized_start=132098
- _globals['_SYNCACTIONVALUE_CUSTOMPAYMENTMETHODMETADATA']._serialized_end=132155
- _globals['_SYNCACTIONVALUE_CUSTOMPAYMENTMETHODSACTION']._serialized_start=132157
- _globals['_SYNCACTIONVALUE_CUSTOMPAYMENTMETHODSACTION']._serialized_end=132262
- _globals['_SYNCACTIONVALUE_CUSTOMERDATAACTION']._serialized_start=132265
- _globals['_SYNCACTIONVALUE_CUSTOMERDATAACTION']._serialized_end=132502
- _globals['_SYNCACTIONVALUE_DELETECHATACTION']._serialized_start=132504
- _globals['_SYNCACTIONVALUE_DELETECHATACTION']._serialized_end=132594
- _globals['_SYNCACTIONVALUE_DELETEINDIVIDUALCALLLOGACTION']._serialized_start=132596
- _globals['_SYNCACTIONVALUE_DELETEINDIVIDUALCALLLOGACTION']._serialized_end=132664
- _globals['_SYNCACTIONVALUE_DELETEMESSAGEFORMEACTION']._serialized_start=132666
- _globals['_SYNCACTIONVALUE_DELETEMESSAGEFORMEACTION']._serialized_end=132739
- _globals['_SYNCACTIONVALUE_DETECTEDOUTCOMESSTATUSACTION']._serialized_start=132741
- _globals['_SYNCACTIONVALUE_DETECTEDOUTCOMESSTATUSACTION']._serialized_end=132790
- _globals['_SYNCACTIONVALUE_EXTERNALWEBBETAACTION']._serialized_start=132792
- _globals['_SYNCACTIONVALUE_EXTERNALWEBBETAACTION']._serialized_end=132832
- _globals['_SYNCACTIONVALUE_FAVORITESACTION']._serialized_start=132834
- _globals['_SYNCACTIONVALUE_FAVORITESACTION']._serialized_end=132946
- _globals['_SYNCACTIONVALUE_FAVORITESACTION_FAVORITE']._serialized_start=132924
- _globals['_SYNCACTIONVALUE_FAVORITESACTION_FAVORITE']._serialized_end=132946
- _globals['_SYNCACTIONVALUE_INTERACTIVEMESSAGEACTION']._serialized_start=132949
- _globals['_SYNCACTIONVALUE_INTERACTIVEMESSAGEACTION']._serialized_end=133134
- _globals['_SYNCACTIONVALUE_INTERACTIVEMESSAGEACTION_INTERACTIVEMESSAGEACTIONMODE']._serialized_start=133087
- _globals['_SYNCACTIONVALUE_INTERACTIVEMESSAGEACTION_INTERACTIVEMESSAGEACTIONMODE']._serialized_end=133134
- _globals['_SYNCACTIONVALUE_KEYEXPIRATION']._serialized_start=133136
- _globals['_SYNCACTIONVALUE_KEYEXPIRATION']._serialized_end=133176
- _globals['_SYNCACTIONVALUE_LABELASSOCIATIONACTION']._serialized_start=133178
- _globals['_SYNCACTIONVALUE_LABELASSOCIATIONACTION']._serialized_end=133242
- _globals['_SYNCACTIONVALUE_LABELEDITACTION']._serialized_start=133245
- _globals['_SYNCACTIONVALUE_LABELEDITACTION']._serialized_end=133722
- _globals['_SYNCACTIONVALUE_LABELEDITACTION_LISTTYPE']._serialized_start=133481
- _globals['_SYNCACTIONVALUE_LABELEDITACTION_LISTTYPE']._serialized_end=133722
- _globals['_SYNCACTIONVALUE_LABELREORDERINGACTION']._serialized_start=133724
- _globals['_SYNCACTIONVALUE_LABELREORDERINGACTION']._serialized_end=133771
- _globals['_SYNCACTIONVALUE_LIDCONTACTACTION']._serialized_start=133773
- _globals['_SYNCACTIONVALUE_LIDCONTACTACTION']._serialized_end=133846
- _globals['_SYNCACTIONVALUE_LOCALESETTING']._serialized_start=133848
- _globals['_SYNCACTIONVALUE_LOCALESETTING']._serialized_end=133879
- _globals['_SYNCACTIONVALUE_LOCKCHATACTION']._serialized_start=133881
- _globals['_SYNCACTIONVALUE_LOCKCHATACTION']._serialized_end=133913
- _globals['_SYNCACTIONVALUE_MAIBAAIFEATURESCONTROLACTION']._serialized_start=133916
- _globals['_SYNCACTIONVALUE_MAIBAAIFEATURESCONTROLACTION']._serialized_end=134281
- _globals['_SYNCACTIONVALUE_MAIBAAIFEATURESCONTROLACTION_MAIBAAIFEATURESTATUS']._serialized_start=134144
- _globals['_SYNCACTIONVALUE_MAIBAAIFEATURESCONTROLACTION_MAIBAAIFEATURESTATUS']._serialized_end=134219
- _globals['_SYNCACTIONVALUE_MAIBAAIFEATURESCONTROLACTION_MAIBAAIREPLYMODE']._serialized_start=134221
- _globals['_SYNCACTIONVALUE_MAIBAAIFEATURESCONTROLACTION_MAIBAAIREPLYMODE']._serialized_end=134281
- _globals['_SYNCACTIONVALUE_MARKCHATASREADACTION']._serialized_start=134283
- _globals['_SYNCACTIONVALUE_MARKCHATASREADACTION']._serialized_end=134391
- _globals['_SYNCACTIONVALUE_MARKETINGMESSAGEACTION']._serialized_start=134394
- _globals['_SYNCACTIONVALUE_MARKETINGMESSAGEACTION']._serialized_end=134669
- _globals['_SYNCACTIONVALUE_MARKETINGMESSAGEACTION_MARKETINGMESSAGEPROTOTYPETYPE']._serialized_start=134620
- _globals['_SYNCACTIONVALUE_MARKETINGMESSAGEACTION_MARKETINGMESSAGEPROTOTYPETYPE']._serialized_end=134669
- _globals['_SYNCACTIONVALUE_MARKETINGMESSAGEBROADCASTACTION']._serialized_start=134671
- _globals['_SYNCACTIONVALUE_MARKETINGMESSAGEBROADCASTACTION']._serialized_end=134726
- _globals['_SYNCACTIONVALUE_MERCHANTPAYMENTPARTNERACTION']._serialized_start=134729
- _globals['_SYNCACTIONVALUE_MERCHANTPAYMENTPARTNERACTION']._serialized_end=134934
- _globals['_SYNCACTIONVALUE_MERCHANTPAYMENTPARTNERACTION_STATUS']._serialized_start=134900
- _globals['_SYNCACTIONVALUE_MERCHANTPAYMENTPARTNERACTION_STATUS']._serialized_end=134934
- _globals['_SYNCACTIONVALUE_MUSICUSERIDACTION']._serialized_start=134937
- _globals['_SYNCACTIONVALUE_MUSICUSERIDACTION']._serialized_end=135124
- _globals['_SYNCACTIONVALUE_MUSICUSERIDACTION_MUSICUSERIDMAPENTRY']._serialized_start=135071
- _globals['_SYNCACTIONVALUE_MUSICUSERIDACTION_MUSICUSERIDMAPENTRY']._serialized_end=135124
- _globals['_SYNCACTIONVALUE_MUTEACTION']._serialized_start=135126
- _globals['_SYNCACTIONVALUE_MUTEACTION']._serialized_end=135239
- _globals['_SYNCACTIONVALUE_NCTSALTSYNCACTION']._serialized_start=135241
- _globals['_SYNCACTIONVALUE_NCTSALTSYNCACTION']._serialized_end=135274
- _globals['_SYNCACTIONVALUE_NEWSLETTERSAVEDINTERESTSACTION']._serialized_start=135276
- _globals['_SYNCACTIONVALUE_NEWSLETTERSAVEDINTERESTSACTION']._serialized_end=135342
- _globals['_SYNCACTIONVALUE_NOTEEDITACTION']._serialized_start=135345
- _globals['_SYNCACTIONVALUE_NOTEEDITACTION']._serialized_end=135554
- _globals['_SYNCACTIONVALUE_NOTEEDITACTION_NOTETYPE']._serialized_start=135510
- _globals['_SYNCACTIONVALUE_NOTEEDITACTION_NOTETYPE']._serialized_end=135554
- _globals['_SYNCACTIONVALUE_NOTIFICATIONACTIVITYSETTINGACTION']._serialized_start=135557
- _globals['_SYNCACTIONVALUE_NOTIFICATIONACTIVITYSETTINGACTION']._serialized_end=135833
- _globals['_SYNCACTIONVALUE_NOTIFICATIONACTIVITYSETTINGACTION_NOTIFICATIONACTIVITYSETTING']._serialized_start=135720
- _globals['_SYNCACTIONVALUE_NOTIFICATIONACTIVITYSETTINGACTION_NOTIFICATIONACTIVITYSETTING']._serialized_end=135833
- _globals['_SYNCACTIONVALUE_NUXACTION']._serialized_start=135835
- _globals['_SYNCACTIONVALUE_NUXACTION']._serialized_end=135868
- _globals['_SYNCACTIONVALUE_OUTCONTACTACTION']._serialized_start=135870
- _globals['_SYNCACTIONVALUE_OUTCONTACTACTION']._serialized_end=135925
- _globals['_SYNCACTIONVALUE_PAYMENTINFOACTION']._serialized_start=135927
- _globals['_SYNCACTIONVALUE_PAYMENTINFOACTION']._serialized_end=135959
- _globals['_SYNCACTIONVALUE_PAYMENTTOSACTION']._serialized_start=135962
- _globals['_SYNCACTIONVALUE_PAYMENTTOSACTION']._serialized_end=136123
- _globals['_SYNCACTIONVALUE_PAYMENTTOSACTION_PAYMENTNOTICE']._serialized_start=136081
- _globals['_SYNCACTIONVALUE_PAYMENTTOSACTION_PAYMENTNOTICE']._serialized_end=136123
- _globals['_SYNCACTIONVALUE_PINACTION']._serialized_start=136125
- _globals['_SYNCACTIONVALUE_PINACTION']._serialized_end=136152
- _globals['_SYNCACTIONVALUE_PNFORLIDCHATACTION']._serialized_start=136154
- _globals['_SYNCACTIONVALUE_PNFORLIDCHATACTION']._serialized_end=136189
- _globals['_SYNCACTIONVALUE_PRIMARYFEATURE']._serialized_start=136191
- _globals['_SYNCACTIONVALUE_PRIMARYFEATURE']._serialized_end=136222
- _globals['_SYNCACTIONVALUE_PRIMARYVERSIONACTION']._serialized_start=136224
- _globals['_SYNCACTIONVALUE_PRIMARYVERSIONACTION']._serialized_end=136263
- _globals['_SYNCACTIONVALUE_PRIVACYSETTINGCHANNELSPERSONALISEDRECOMMENDATIONACTION']._serialized_start=136265
- _globals['_SYNCACTIONVALUE_PRIVACYSETTINGCHANNELSPERSONALISEDRECOMMENDATIONACTION']._serialized_end=136345
- _globals['_SYNCACTIONVALUE_PRIVACYSETTINGDISABLELINKPREVIEWSACTION']._serialized_start=136347
- _globals['_SYNCACTIONVALUE_PRIVACYSETTINGDISABLELINKPREVIEWSACTION']._serialized_end=136416
- _globals['_SYNCACTIONVALUE_PRIVACYSETTINGRELAYALLCALLS']._serialized_start=136418
- _globals['_SYNCACTIONVALUE_PRIVACYSETTINGRELAYALLCALLS']._serialized_end=136466
- _globals['_SYNCACTIONVALUE_PRIVATEPROCESSINGSETTINGACTION']._serialized_start=136469
- _globals['_SYNCACTIONVALUE_PRIVATEPROCESSINGSETTINGACTION']._serialized_end=136685
- _globals['_SYNCACTIONVALUE_PRIVATEPROCESSINGSETTINGACTION_PRIVATEPROCESSINGSTATUS']._serialized_start=136618
- _globals['_SYNCACTIONVALUE_PRIVATEPROCESSINGSETTINGACTION_PRIVATEPROCESSINGSTATUS']._serialized_end=136685
- _globals['_SYNCACTIONVALUE_PUSHNAMESETTING']._serialized_start=136687
- _globals['_SYNCACTIONVALUE_PUSHNAMESETTING']._serialized_end=136718
- _globals['_SYNCACTIONVALUE_QUICKREPLYACTION']._serialized_start=136721
- _globals['_SYNCACTIONVALUE_QUICKREPLYACTION']._serialized_end=136852
- _globals['_SYNCACTIONVALUE_RECENTEMOJIWEIGHTSACTION']._serialized_start=136854
- _globals['_SYNCACTIONVALUE_RECENTEMOJIWEIGHTSACTION']._serialized_end=136926
- _globals['_SYNCACTIONVALUE_REMOVERECENTSTICKERACTION']._serialized_start=136928
- _globals['_SYNCACTIONVALUE_REMOVERECENTSTICKERACTION']._serialized_end=136982
- _globals['_SYNCACTIONVALUE_SETTINGSSYNCACTION']._serialized_start=136985
- _globals['_SYNCACTIONVALUE_SETTINGSSYNCACTION']._serialized_end=139607
- _globals['_SYNCACTIONVALUE_SETTINGSSYNCACTION_DISPLAYMODE']._serialized_start=138275
- _globals['_SYNCACTIONVALUE_SETTINGSSYNCACTION_DISPLAYMODE']._serialized_end=138364
- _globals['_SYNCACTIONVALUE_SETTINGSSYNCACTION_MEDIAQUALITYSETTING']._serialized_start=138366
- _globals['_SYNCACTIONVALUE_SETTINGSSYNCACTION_MEDIAQUALITYSETTING']._serialized_end=138436
- _globals['_SYNCACTIONVALUE_SETTINGSSYNCACTION_SETTINGKEY']._serialized_start=138439
- _globals['_SYNCACTIONVALUE_SETTINGSSYNCACTION_SETTINGKEY']._serialized_end=139523
- _globals['_SYNCACTIONVALUE_SETTINGSSYNCACTION_SETTINGPLATFORM']._serialized_start=139525
- _globals['_SYNCACTIONVALUE_SETTINGSSYNCACTION_SETTINGPLATFORM']._serialized_end=139607
- _globals['_SYNCACTIONVALUE_STARACTION']._serialized_start=139609
- _globals['_SYNCACTIONVALUE_STARACTION']._serialized_end=139638
- _globals['_SYNCACTIONVALUE_STATUSPOSTOPTINNOTIFICATIONPREFERENCESACTION']._serialized_start=139640
- _globals['_SYNCACTIONVALUE_STATUSPOSTOPTINNOTIFICATIONPREFERENCESACTION']._serialized_end=139703
- _globals['_SYNCACTIONVALUE_STATUSPRIVACYACTION']._serialized_start=139706
- _globals['_SYNCACTIONVALUE_STATUSPRIVACYACTION']._serialized_end=140233
- _globals['_SYNCACTIONVALUE_STATUSPRIVACYACTION_CUSTOMLIST']._serialized_start=140032
- _globals['_SYNCACTIONVALUE_STATUSPRIVACYACTION_CUSTOMLIST']._serialized_end=140126
- _globals['_SYNCACTIONVALUE_STATUSPRIVACYACTION_STATUSDISTRIBUTIONMODE']._serialized_start=140128
- _globals['_SYNCACTIONVALUE_STATUSPRIVACYACTION_STATUSDISTRIBUTIONMODE']._serialized_end=140233
- _globals['_SYNCACTIONVALUE_STICKERACTION']._serialized_start=140236
- _globals['_SYNCACTIONVALUE_STICKERACTION']._serialized_end=140498
- _globals['_SYNCACTIONVALUE_SUBSCRIPTIONACTION']._serialized_start=140500
- _globals['_SYNCACTIONVALUE_SUBSCRIPTIONACTION']._serialized_end=140591
- _globals['_SYNCACTIONVALUE_SUBSCRIPTIONSSYNCV2ACTION']._serialized_start=140594
- _globals['_SYNCACTIONVALUE_SUBSCRIPTIONSSYNCV2ACTION']._serialized_end=141049
- _globals['_SYNCACTIONVALUE_SUBSCRIPTIONSSYNCV2ACTION_PAIDFEATURE']._serialized_start=140802
- _globals['_SYNCACTIONVALUE_SUBSCRIPTIONSSYNCV2ACTION_PAIDFEATURE']._serialized_end=140885
- _globals['_SYNCACTIONVALUE_SUBSCRIPTIONSSYNCV2ACTION_SUBSCRIPTIONINFO']._serialized_start=140888
- _globals['_SYNCACTIONVALUE_SUBSCRIPTIONSSYNCV2ACTION_SUBSCRIPTIONINFO']._serialized_end=141049
- _globals['_SYNCACTIONVALUE_SYNCACTIONMESSAGE']._serialized_start=141051
- _globals['_SYNCACTIONVALUE_SYNCACTIONMESSAGE']._serialized_end=141124
- _globals['_SYNCACTIONVALUE_SYNCACTIONMESSAGERANGE']._serialized_start=141127
- _globals['_SYNCACTIONVALUE_SYNCACTIONMESSAGERANGE']._serialized_end=141280
- _globals['_SYNCACTIONVALUE_THREADPINACTION']._serialized_start=141282
- _globals['_SYNCACTIONVALUE_THREADPINACTION']._serialized_end=141315
- _globals['_SYNCACTIONVALUE_TIMEFORMATACTION']._serialized_start=141317
- _globals['_SYNCACTIONVALUE_TIMEFORMATACTION']._serialized_end=141374
- _globals['_SYNCACTIONVALUE_UGCBOT']._serialized_start=141376
- _globals['_SYNCACTIONVALUE_UGCBOT']._serialized_end=141404
- _globals['_SYNCACTIONVALUE_UNARCHIVECHATSSETTING']._serialized_start=141406
- _globals['_SYNCACTIONVALUE_UNARCHIVECHATSSETTING']._serialized_end=141453
- _globals['_SYNCACTIONVALUE_USERSTATUSMUTEACTION']._serialized_start=141455
- _globals['_SYNCACTIONVALUE_USERSTATUSMUTEACTION']._serialized_end=141492
- _globals['_SYNCACTIONVALUE_USERNAMECHATSTARTMODEACTION']._serialized_start=141495
- _globals['_SYNCACTIONVALUE_USERNAMECHATSTARTMODEACTION']._serialized_end=141650
- _globals['_SYNCACTIONVALUE_USERNAMECHATSTARTMODEACTION_CHATSTARTMODE']._serialized_start=141618
- _globals['_SYNCACTIONVALUE_USERNAMECHATSTARTMODEACTION_CHATSTARTMODE']._serialized_end=141650
- _globals['_SYNCACTIONVALUE_WAFFLEACCOUNTLINKSTATEACTION']._serialized_start=141653
- _globals['_SYNCACTIONVALUE_WAFFLEACCOUNTLINKSTATEACTION']._serialized_end=141833
- _globals['_SYNCACTIONVALUE_WAFFLEACCOUNTLINKSTATEACTION_ACCOUNTLINKSTATE']._serialized_start=141777
- _globals['_SYNCACTIONVALUE_WAFFLEACCOUNTLINKSTATEACTION_ACCOUNTLINKSTATE']._serialized_end=141833
- _globals['_SYNCACTIONVALUE_WAMOUSERIDENTIFIERACTION']._serialized_start=141835
- _globals['_SYNCACTIONVALUE_WAMOUSERIDENTIFIERACTION']._serialized_end=141881
- _globals['_SYNCACTIONVALUE_BUSINESSBROADCASTCAMPAIGNSTATUS']._serialized_start=141883
- _globals['_SYNCACTIONVALUE_BUSINESSBROADCASTCAMPAIGNSTATUS']._serialized_end=141980
- _globals['_SYNCDINDEX']._serialized_start=141982
- _globals['_SYNCDINDEX']._serialized_end=142008
- _globals['_SYNCDMUTATION']._serialized_start=142011
- _globals['_SYNCDMUTATION']._serialized_end=142163
- _globals['_SYNCDMUTATION_SYNCDOPERATION']._serialized_start=142126
- _globals['_SYNCDMUTATION_SYNCDOPERATION']._serialized_end=142163
- _globals['_SYNCDMUTATIONS']._serialized_start=142165
- _globals['_SYNCDMUTATIONS']._serialized_end=142225
- _globals['_SYNCDPATCH']._serialized_start=142228
- _globals['_SYNCDPATCH']._serialized_end=142540
- _globals['_SYNCDPLAINTEXTRECORD']._serialized_start=142542
- _globals['_SYNCDPLAINTEXTRECORD']._serialized_end=142633
- _globals['_SYNCDRECORD']._serialized_start=142635
- _globals['_SYNCDRECORD']._serialized_end=142754
- _globals['_SYNCDSNAPSHOT']._serialized_start=142757
- _globals['_SYNCDSNAPSHOT']._serialized_end=142898
- _globals['_SYNCDSNAPSHOTRECOVERY']._serialized_start=142901
- _globals['_SYNCDSNAPSHOTRECOVERY']._serialized_end=143072
- _globals['_SYNCDVALUE']._serialized_start=143074
- _globals['_SYNCDVALUE']._serialized_end=143100
- _globals['_SYNCDVERSION']._serialized_start=143102
- _globals['_SYNCDVERSION']._serialized_end=143133
- _globals['_TAPLINKACTION']._serialized_start=143135
- _globals['_TAPLINKACTION']._serialized_end=143181
- _globals['_TEMPLATEBUTTON']._serialized_start=143184
- _globals['_TEMPLATEBUTTON']._serialized_end=143785
- _globals['_TEMPLATEBUTTON_CALLBUTTON']._serialized_start=143405
- _globals['_TEMPLATEBUTTON_CALLBUTTON']._serialized_end=143545
- _globals['_TEMPLATEBUTTON_QUICKREPLYBUTTON']._serialized_start=143547
- _globals['_TEMPLATEBUTTON_QUICKREPLYBUTTON']._serialized_end=143641
- _globals['_TEMPLATEBUTTON_URLBUTTON']._serialized_start=143644
- _globals['_TEMPLATEBUTTON_URLBUTTON']._serialized_end=143775
- _globals['_THREADID']._serialized_start=143788
- _globals['_THREADID']._serialized_end=143950
- _globals['_THREADID_THREADTYPE']._serialized_start=143892
- _globals['_THREADID_THREADTYPE']._serialized_end=143950
- _globals['_UNCOUNTEDASSOCIATEDMESSAGELIST']._serialized_start=143953
- _globals['_UNCOUNTEDASSOCIATEDMESSAGELIST']._serialized_end=144145
- _globals['_UNCOUNTEDASSOCIATEDMESSAGELISTWITHMESSAGEBYTES']._serialized_start=144148
- _globals['_UNCOUNTEDASSOCIATEDMESSAGELISTWITHMESSAGEBYTES']._serialized_end=144301
- _globals['_URLTRACKINGMAP']._serialized_start=144304
- _globals['_URLTRACKINGMAP']._serialized_end=144521
- _globals['_URLTRACKINGMAP_URLTRACKINGMAPELEMENT']._serialized_start=144402
- _globals['_URLTRACKINGMAP_URLTRACKINGMAPELEMENT']._serialized_end=144521
- _globals['_USERPASSWORD']._serialized_start=144524
- _globals['_USERPASSWORD']._serialized_end=145003
- _globals['_USERPASSWORD_TRANSFORMERARG']._serialized_start=144737
- _globals['_USERPASSWORD_TRANSFORMERARG']._serialized_end=144891
- _globals['_USERPASSWORD_TRANSFORMERARG_VALUE']._serialized_start=144828
- _globals['_USERPASSWORD_TRANSFORMERARG_VALUE']._serialized_end=144891
- _globals['_USERPASSWORD_ENCODING']._serialized_start=144893
- _globals['_USERPASSWORD_ENCODING']._serialized_end=144930
- _globals['_USERPASSWORD_TRANSFORMER']._serialized_start=144932
- _globals['_USERPASSWORD_TRANSFORMER']._serialized_end=145003
- _globals['_USERRECEIPT']._serialized_start=145006
- _globals['_USERRECEIPT']._serialized_end=145164
- _globals['_VERIFIEDNAMECERTIFICATE']._serialized_start=145167
- _globals['_VERIFIEDNAMECERTIFICATE']._serialized_end=145387
- _globals['_VERIFIEDNAMECERTIFICATE_DETAILS']._serialized_start=145256
- _globals['_VERIFIEDNAMECERTIFICATE_DETAILS']._serialized_end=145387
- _globals['_WALLPAPERSETTINGS']._serialized_start=145389
- _globals['_WALLPAPERSETTINGS']._serialized_end=145460
- _globals['_WEBFEATURES']._serialized_start=145463
- _globals['_WEBFEATURES']._serialized_end=147993
- _globals['_WEBFEATURES_FLAG']._serialized_start=147918
- _globals['_WEBFEATURES_FLAG']._serialized_end=147993
- _globals['_WEBMESSAGEINFO']._serialized_start=147996
- _globals['_WEBMESSAGEINFO']._serialized_end=158569
- _globals['_WEBMESSAGEINFO_BIZPRIVACYSTATUS']._serialized_start=150732
- _globals['_WEBMESSAGEINFO_BIZPRIVACYSTATUS']._serialized_end=150793
- _globals['_WEBMESSAGEINFO_STATUS']._serialized_start=150795
- _globals['_WEBMESSAGEINFO_STATUS']._serialized_end=150883
- _globals['_WEBMESSAGEINFO_STUBTYPE']._serialized_start=150886
- _globals['_WEBMESSAGEINFO_STUBTYPE']._serialized_end=158569
- _globals['_WEBMESSAGEINFOWITHMESSAGEBYTES']._serialized_start=158571
- _globals['_WEBMESSAGEINFOWITHMESSAGEBYTES']._serialized_end=158660
- _globals['_WEBNOTIFICATIONSINFO']._serialized_start=158663
- _globals['_WEBNOTIFICATIONSINFO']._serialized_end=158803
+ _globals['_ADVENCRYPTIONTYPE']._serialized_start=182859
+ _globals['_ADVENCRYPTIONTYPE']._serialized_end=182914
+ _globals['_AIRICHRESPONSEMESSAGETYPE']._serialized_start=182916
+ _globals['_AIRICHRESPONSEMESSAGETYPE']._serialized_end=183014
+ _globals['_AIRICHRESPONSESUBMESSAGETYPE']._serialized_start=183017
+ _globals['_AIRICHRESPONSESUBMESSAGETYPE']._serialized_end=183347
+ _globals['_AISUBSCRIPTIONREQUESTTYPE']._serialized_start=183349
+ _globals['_AISUBSCRIPTIONREQUESTTYPE']._serialized_end=183439
+ _globals['_BOTMETRICSENTRYPOINT']._serialized_start=183442
+ _globals['_BOTMETRICSENTRYPOINT']._serialized_end=184754
+ _globals['_BOTMETRICSTHREADENTRYPOINT']._serialized_start=184757
+ _globals['_BOTMETRICSTHREADENTRYPOINT']._serialized_end=184919
+ _globals['_BOTSESSIONSOURCE']._serialized_start=184922
+ _globals['_BOTSESSIONSOURCE']._serialized_end=185068
+ _globals['_COMMAND_COMMAND_TYPE']._serialized_start=185070
+ _globals['_COMMAND_COMMAND_TYPE']._serialized_end=185142
+ _globals['_CONSUMER_APPLICATION_METADATA_SPECIAL_TEXT_SIZE']._serialized_start=185144
+ _globals['_CONSUMER_APPLICATION_METADATA_SPECIAL_TEXT_SIZE']._serialized_end=185227
+ _globals['_CONSUMER_APPLICATION_STATUS_TEXT_MESAGE_FONT_TYPE']._serialized_start=185230
+ _globals['_CONSUMER_APPLICATION_STATUS_TEXT_MESAGE_FONT_TYPE']._serialized_end=185389
+ _globals['_COLLECTIONNAME']._serialized_start=185392
+ _globals['_COLLECTIONNAME']._serialized_end=185531
+ _globals['_EXTENDED_CONTENT_MESSAGE_CTA_BUTTON_TYPE']._serialized_start=185533
+ _globals['_EXTENDED_CONTENT_MESSAGE_CTA_BUTTON_TYPE']._serialized_end=185592
+ _globals['_EXTENDED_CONTENT_MESSAGE_EXTENDED_CONTENT_TYPE']._serialized_start=185595
+ _globals['_EXTENDED_CONTENT_MESSAGE_EXTENDED_CONTENT_TYPE']._serialized_end=187844
+ _globals['_EXTENDED_CONTENT_MESSAGE_XMA_DATACLASS_TYPE']._serialized_start=187846
+ _globals['_EXTENDED_CONTENT_MESSAGE_XMA_DATACLASS_TYPE']._serialized_end=187939
+ _globals['_EXTENDED_CONTENT_MESSAGE_XMA_LAYOUT_TYPE']._serialized_start=187941
+ _globals['_EXTENDED_CONTENT_MESSAGE_XMA_LAYOUT_TYPE']._serialized_end=188066
+ _globals['_FUTURE_PROOF_BEHAVIOR']._serialized_start=188068
+ _globals['_FUTURE_PROOF_BEHAVIOR']._serialized_end=188140
+ _globals['_KEEPTYPE']._serialized_start=188142
+ _globals['_KEEPTYPE']._serialized_end=188206
+ _globals['_MENTION_MENTION_TYPE']._serialized_start=188208
+ _globals['_MENTION_MENTION_TYPE']._serialized_end=188243
+ _globals['_MEDIAKEYDOMAIN']._serialized_start=188245
+ _globals['_MEDIAKEYDOMAIN']._serialized_end=188349
+ _globals['_MEDIAVISIBILITY']._serialized_start=188351
+ _globals['_MEDIAVISIBILITY']._serialized_end=188398
+ _globals['_MUTATIONPROPS']._serialized_start=188401
+ _globals['_MUTATIONPROPS']._serialized_end=191060
+ _globals['_PRIVACYSYSTEMMESSAGE']._serialized_start=191062
+ _globals['_PRIVACYSYSTEMMESSAGE']._serialized_end=191131
+ _globals['_SESSIONTRANSPARENCYTYPE']._serialized_start=191133
+ _globals['_SESSIONTRANSPARENCYTYPE']._serialized_end=191205
+ _globals['_WEBLINKRENDERCONFIG']._serialized_start=191207
+ _globals['_WEBLINKRENDERCONFIG']._serialized_end=191253
+ _globals['_ADVDEVICEIDENTITY']._serialized_start=29
+ _globals['_ADVDEVICEIDENTITY']._serialized_end=211
+ _globals['_ADVKEYINDEXLIST']._serialized_start=214
+ _globals['_ADVKEYINDEXLIST']._serialized_end=369
+ _globals['_ADVSIGNEDDEVICEIDENTITY']._serialized_start=371
+ _globals['_ADVSIGNEDDEVICEIDENTITY']._serialized_end=493
+ _globals['_ADVSIGNEDDEVICEIDENTITYHMAC']._serialized_start=495
+ _globals['_ADVSIGNEDDEVICEIDENTITYHMAC']._serialized_end=611
+ _globals['_ADVSIGNEDKEYINDEXLIST']._serialized_start=613
+ _globals['_ADVSIGNEDKEYINDEXLIST']._serialized_end=708
+ _globals['_AIHOMESTATE']._serialized_start=711
+ _globals['_AIHOMESTATE']._serialized_end=1243
+ _globals['_AIHOMESTATE_AIHOMEOPTION']._serialized_start=878
+ _globals['_AIHOMESTATE_AIHOMEOPTION']._serialized_end=1243
+ _globals['_AIHOMESTATE_AIHOMEOPTION_AIHOMEACTIONTYPE']._serialized_start=1117
+ _globals['_AIHOMESTATE_AIHOMEOPTION_AIHOMEACTIONTYPE']._serialized_end=1243
+ _globals['_AIMEDIACOLLECTIONMESSAGE']._serialized_start=1245
+ _globals['_AIMEDIACOLLECTIONMESSAGE']._serialized_end=1347
+ _globals['_AIMEDIACOLLECTIONMETADATA']._serialized_start=1349
+ _globals['_AIMEDIACOLLECTIONMETADATA']._serialized_end=1424
+ _globals['_AIMETADATAOPERATION']._serialized_start=1426
+ _globals['_AIMETADATAOPERATION']._serialized_end=1503
+ _globals['_AIPROVENANCE']._serialized_start=1506
+ _globals['_AIPROVENANCE']._serialized_end=1693
+ _globals['_AIPROVENANCE_METADATA']._serialized_start=1632
+ _globals['_AIPROVENANCE_METADATA']._serialized_end=1693
+ _globals['_AIQUERYFANOUT']._serialized_start=1695
+ _globals['_AIQUERYFANOUT']._serialized_end=1807
+ _globals['_AIREGENERATEMETADATA']._serialized_start=1809
+ _globals['_AIREGENERATEMETADATA']._serialized_end=1902
+ _globals['_AIRICHRESPONSECODEMETADATA']._serialized_start=1905
+ _globals['_AIRICHRESPONSECODEMETADATA']._serialized_end=2482
+ _globals['_AIRICHRESPONSECODEMETADATA_AIRICHRESPONSECODEBLOCK']._serialized_start=2040
+ _globals['_AIRICHRESPONSECODEMETADATA_AIRICHRESPONSECODEBLOCK']._serialized_end=2179
+ _globals['_AIRICHRESPONSECODEMETADATA_AIRICHRESPONSECODEHIGHLIGHTTYPE']._serialized_start=2182
+ _globals['_AIRICHRESPONSECODEMETADATA_AIRICHRESPONSECODEHIGHLIGHTTYPE']._serialized_end=2482
+ _globals['_AIRICHRESPONSECONTENTITEMSMETADATA']._serialized_start=2485
+ _globals['_AIRICHRESPONSECONTENTITEMSMETADATA']._serialized_end=3006
+ _globals['_AIRICHRESPONSECONTENTITEMSMETADATA_AIRICHRESPONSECONTENTITEMMETADATA']._serialized_start=2706
+ _globals['_AIRICHRESPONSECONTENTITEMSMETADATA_AIRICHRESPONSECONTENTITEMMETADATA']._serialized_end=2859
+ _globals['_AIRICHRESPONSECONTENTITEMSMETADATA_AIRICHRESPONSEREELITEM']._serialized_start=2861
+ _globals['_AIRICHRESPONSECONTENTITEMSMETADATA_AIRICHRESPONSEREELITEM']._serialized_end=2964
+ _globals['_AIRICHRESPONSECONTENTITEMSMETADATA_CONTENTTYPE']._serialized_start=2966
+ _globals['_AIRICHRESPONSECONTENTITEMSMETADATA_CONTENTTYPE']._serialized_end=3006
+ _globals['_AIRICHRESPONSEDYNAMICMETADATA']._serialized_start=3009
+ _globals['_AIRICHRESPONSEDYNAMICMETADATA']._serialized_end=3366
+ _globals['_AIRICHRESPONSEDYNAMICMETADATA_AIRICHRESPONSEDYNAMICMETADATATYPE']._serialized_start=3181
+ _globals['_AIRICHRESPONSEDYNAMICMETADATA_AIRICHRESPONSEDYNAMICMETADATATYPE']._serialized_end=3366
+ _globals['_AIRICHRESPONSEGRIDIMAGEMETADATA']._serialized_start=3369
+ _globals['_AIRICHRESPONSEGRIDIMAGEMETADATA']._serialized_end=3511
+ _globals['_AIRICHRESPONSEIMAGEURL']._serialized_start=3513
+ _globals['_AIRICHRESPONSEIMAGEURL']._serialized_end=3606
+ _globals['_AIRICHRESPONSEINLINEIMAGEMETADATA']._serialized_start=3609
+ _globals['_AIRICHRESPONSEINLINEIMAGEMETADATA']._serialized_end=4014
+ _globals['_AIRICHRESPONSEINLINEIMAGEMETADATA_AIRICHRESPONSEIMAGEALIGNMENT']._serialized_start=3831
+ _globals['_AIRICHRESPONSEINLINEIMAGEMETADATA_AIRICHRESPONSEIMAGEALIGNMENT']._serialized_end=4014
+ _globals['_AIRICHRESPONSELATEXMETADATA']._serialized_start=4017
+ _globals['_AIRICHRESPONSELATEXMETADATA']._serialized_end=4385
+ _globals['_AIRICHRESPONSELATEXMETADATA_AIRICHRESPONSELATEXEXPRESSION']._serialized_start=4153
+ _globals['_AIRICHRESPONSELATEXMETADATA_AIRICHRESPONSELATEXEXPRESSION']._serialized_end=4385
+ _globals['_AIRICHRESPONSEMAPMETADATA']._serialized_start=4388
+ _globals['_AIRICHRESPONSEMAPMETADATA']._serialized_end=4742
+ _globals['_AIRICHRESPONSEMAPMETADATA_AIRICHRESPONSEMAPANNOTATION']._serialized_start=4621
+ _globals['_AIRICHRESPONSEMAPMETADATA_AIRICHRESPONSEMAPANNOTATION']._serialized_end=4742
+ _globals['_AIRICHRESPONSEMESSAGE']._serialized_start=4745
+ _globals['_AIRICHRESPONSEMESSAGE']._serialized_end=4993
+ _globals['_AIRICHRESPONSESUBMESSAGE']._serialized_start=4996
+ _globals['_AIRICHRESPONSESUBMESSAGE']._serialized_end=5626
+ _globals['_AIRICHRESPONSETABLEMETADATA']._serialized_start=5629
+ _globals['_AIRICHRESPONSETABLEMETADATA']._serialized_end=5809
+ _globals['_AIRICHRESPONSETABLEMETADATA_AIRICHRESPONSETABLEROW']._serialized_start=5751
+ _globals['_AIRICHRESPONSETABLEMETADATA_AIRICHRESPONSETABLEROW']._serialized_end=5809
+ _globals['_AIRICHRESPONSEUNIFIEDRESPONSE']._serialized_start=5811
+ _globals['_AIRICHRESPONSEUNIFIEDRESPONSE']._serialized_end=5856
+ _globals['_AISUBSCRIPTIONUPSELLMETADATA']._serialized_start=5858
+ _globals['_AISUBSCRIPTIONUPSELLMETADATA']._serialized_end=5946
+ _globals['_AITHREADINFO']._serialized_start=5949
+ _globals['_AITHREADINFO']._serialized_end=6314
+ _globals['_AITHREADINFO_AITHREADCLIENTINFO']._serialized_start=6092
+ _globals['_AITHREADINFO_AITHREADCLIENTINFO']._serialized_end=6277
+ _globals['_AITHREADINFO_AITHREADCLIENTINFO_AITHREADTYPE']._serialized_start=6207
+ _globals['_AITHREADINFO_AITHREADCLIENTINFO_AITHREADTYPE']._serialized_end=6277
+ _globals['_AITHREADINFO_AITHREADSERVERINFO']._serialized_start=6279
+ _globals['_AITHREADINFO_AITHREADSERVERINFO']._serialized_end=6314
+ _globals['_ACCOUNT']._serialized_start=6316
+ _globals['_ACCOUNT']._serialized_end=6404
+ _globals['_ACCOUNTLINKINGOPAQUEDATA']._serialized_start=6406
+ _globals['_ACCOUNTLINKINGOPAQUEDATA']._serialized_end=6509
+ _globals['_ACTIONLINK']._serialized_start=6511
+ _globals['_ACTIONLINK']._serialized_end=6557
+ _globals['_AUTODOWNLOADSETTINGS']._serialized_start=6559
+ _globals['_AUTODOWNLOADSETTINGS']._serialized_end=6678
+ _globals['_AVATARUSERSETTINGS']._serialized_start=6680
+ _globals['_AVATARUSERSETTINGS']._serialized_end=6732
+ _globals['_BACKWARDEDGE']._serialized_start=6734
+ _globals['_BACKWARDEDGE']._serialized_end=6854
+ _globals['_BIZACCOUNTLINKINFO']._serialized_start=6857
+ _globals['_BIZACCOUNTLINKINFO']._serialized_end=7163
+ _globals['_BIZACCOUNTLINKINFO_ACCOUNTTYPE']._serialized_start=7085
+ _globals['_BIZACCOUNTLINKINFO_ACCOUNTTYPE']._serialized_end=7114
+ _globals['_BIZACCOUNTLINKINFO_HOSTSTORAGETYPE']._serialized_start=7116
+ _globals['_BIZACCOUNTLINKINFO_HOSTSTORAGETYPE']._serialized_end=7163
+ _globals['_BIZACCOUNTPAYLOAD']._serialized_start=7165
+ _globals['_BIZACCOUNTPAYLOAD']._serialized_end=7263
+ _globals['_BIZIDENTITYINFO']._serialized_start=7266
+ _globals['_BIZIDENTITYINFO']._serialized_end=7752
+ _globals['_BIZIDENTITYINFO_ACTUALACTORSTYPE']._serialized_start=7612
+ _globals['_BIZIDENTITYINFO_ACTUALACTORSTYPE']._serialized_end=7649
+ _globals['_BIZIDENTITYINFO_HOSTSTORAGETYPE']._serialized_start=7116
+ _globals['_BIZIDENTITYINFO_HOSTSTORAGETYPE']._serialized_end=7163
+ _globals['_BIZIDENTITYINFO_VERIFIEDLEVELVALUE']._serialized_start=7700
+ _globals['_BIZIDENTITYINFO_VERIFIEDLEVELVALUE']._serialized_end=7752
+ _globals['_BOTAGECOLLECTIONMETADATA']._serialized_start=7755
+ _globals['_BOTAGECOLLECTIONMETADATA']._serialized_end=7986
+ _globals['_BOTAGECOLLECTIONMETADATA_AGECOLLECTIONTYPE']._serialized_start=7939
+ _globals['_BOTAGECOLLECTIONMETADATA_AGECOLLECTIONTYPE']._serialized_end=7986
+ _globals['_BOTAGENTDEEPLINKMETADATA']._serialized_start=7988
+ _globals['_BOTAGENTDEEPLINKMETADATA']._serialized_end=8054
+ _globals['_BOTAGENTMETADATA']._serialized_start=8056
+ _globals['_BOTAGENTMETADATA']._serialized_end=8136
+ _globals['_BOTCAPABILITYMETADATA']._serialized_start=8139
+ _globals['_BOTCAPABILITYMETADATA']._serialized_end=10618
+ _globals['_BOTCAPABILITYMETADATA_BOTCAPABILITYTYPE']._serialized_start=8238
+ _globals['_BOTCAPABILITYMETADATA_BOTCAPABILITYTYPE']._serialized_end=10618
+ _globals['_BOTCOMMANDMETADATA']._serialized_start=10620
+ _globals['_BOTCOMMANDMETADATA']._serialized_end=10712
+ _globals['_BOTDOCUMENTMESSAGEMETADATA']._serialized_start=10715
+ _globals['_BOTDOCUMENTMESSAGEMETADATA']._serialized_end=10883
+ _globals['_BOTDOCUMENTMESSAGEMETADATA_DOCUMENTPLUGINTYPE']._serialized_start=10822
+ _globals['_BOTDOCUMENTMESSAGEMETADATA_DOCUMENTPLUGINTYPE']._serialized_end=10883
+ _globals['_BOTFEEDBACKMESSAGE']._serialized_start=10886
+ _globals['_BOTFEEDBACKMESSAGE']._serialized_end=14220
+ _globals['_BOTFEEDBACKMESSAGE_SIDEBYSIDESURVEYMETADATA']._serialized_start=11219
+ _globals['_BOTFEEDBACKMESSAGE_SIDEBYSIDESURVEYMETADATA']._serialized_end=13040
+ _globals['_BOTFEEDBACKMESSAGE_SIDEBYSIDESURVEYMETADATA_SIDEBYSIDESURVEYANALYTICSDATA']._serialized_start=11663
+ _globals['_BOTFEEDBACKMESSAGE_SIDEBYSIDESURVEYMETADATA_SIDEBYSIDESURVEYANALYTICSDATA']._serialized_end=11766
+ _globals['_BOTFEEDBACKMESSAGE_SIDEBYSIDESURVEYMETADATA_SIDEBYSIDESURVEYMETAAIANALYTICSDATA']._serialized_start=11769
+ _globals['_BOTFEEDBACKMESSAGE_SIDEBYSIDESURVEYMETADATA_SIDEBYSIDESURVEYMETAAIANALYTICSDATA']._serialized_end=13040
+ _globals['_BOTFEEDBACKMESSAGE_SIDEBYSIDESURVEYMETADATA_SIDEBYSIDESURVEYMETAAIANALYTICSDATA_SIDEBYSIDESURVEYABANDONEVENTDATA']._serialized_start=12668
+ _globals['_BOTFEEDBACKMESSAGE_SIDEBYSIDESURVEYMETADATA_SIDEBYSIDESURVEYMETAAIANALYTICSDATA_SIDEBYSIDESURVEYABANDONEVENTDATA']._serialized_end=12736
+ _globals['_BOTFEEDBACKMESSAGE_SIDEBYSIDESURVEYMETADATA_SIDEBYSIDESURVEYMETAAIANALYTICSDATA_SIDEBYSIDESURVEYCTACLICKEVENTDATA']._serialized_start=12738
+ _globals['_BOTFEEDBACKMESSAGE_SIDEBYSIDESURVEYMETADATA_SIDEBYSIDESURVEYMETAAIANALYTICSDATA_SIDEBYSIDESURVEYCTACLICKEVENTDATA']._serialized_end=12830
+ _globals['_BOTFEEDBACKMESSAGE_SIDEBYSIDESURVEYMETADATA_SIDEBYSIDESURVEYMETAAIANALYTICSDATA_SIDEBYSIDESURVEYCTAIMPRESSIONEVENTDATA']._serialized_start=12832
+ _globals['_BOTFEEDBACKMESSAGE_SIDEBYSIDESURVEYMETADATA_SIDEBYSIDESURVEYMETAAIANALYTICSDATA_SIDEBYSIDESURVEYCTAIMPRESSIONEVENTDATA']._serialized_end=12897
+ _globals['_BOTFEEDBACKMESSAGE_SIDEBYSIDESURVEYMETADATA_SIDEBYSIDESURVEYMETAAIANALYTICSDATA_SIDEBYSIDESURVEYCARDIMPRESSIONEVENTDATA']._serialized_start=12899
+ _globals['_BOTFEEDBACKMESSAGE_SIDEBYSIDESURVEYMETADATA_SIDEBYSIDESURVEYMETAAIANALYTICSDATA_SIDEBYSIDESURVEYCARDIMPRESSIONEVENTDATA']._serialized_end=12940
+ _globals['_BOTFEEDBACKMESSAGE_SIDEBYSIDESURVEYMETADATA_SIDEBYSIDESURVEYMETAAIANALYTICSDATA_SIDEBYSIDESURVEYRESPONSEEVENTDATA']._serialized_start=12942
+ _globals['_BOTFEEDBACKMESSAGE_SIDEBYSIDESURVEYMETADATA_SIDEBYSIDESURVEYMETAAIANALYTICSDATA_SIDEBYSIDESURVEYRESPONSEEVENTDATA']._serialized_end=13040
+ _globals['_BOTFEEDBACKMESSAGE_BOTFEEDBACKKIND']._serialized_start=13043
+ _globals['_BOTFEEDBACKMESSAGE_BOTFEEDBACKKIND']._serialized_end=13642
+ _globals['_BOTFEEDBACKMESSAGE_BOTFEEDBACKKINDMULTIPLENEGATIVE']._serialized_start=13645
+ _globals['_BOTFEEDBACKMESSAGE_BOTFEEDBACKKINDMULTIPLENEGATIVE']._serialized_end=14104
+ _globals['_BOTFEEDBACKMESSAGE_BOTFEEDBACKKINDMULTIPLEPOSITIVE']._serialized_start=14106
+ _globals['_BOTFEEDBACKMESSAGE_BOTFEEDBACKKINDMULTIPLEPOSITIVE']._serialized_end=14183
+ _globals['_BOTFEEDBACKMESSAGE_REPORTKIND']._serialized_start=14185
+ _globals['_BOTFEEDBACKMESSAGE_REPORTKIND']._serialized_end=14220
+ _globals['_BOTGROUPMETADATA']._serialized_start=14222
+ _globals['_BOTGROUPMETADATA']._serialized_end=14309
+ _globals['_BOTGROUPPARTICIPANTMETADATA']._serialized_start=14311
+ _globals['_BOTGROUPPARTICIPANTMETADATA']._serialized_end=14357
+ _globals['_BOTHISTORYSHAREMETADATA']._serialized_start=14359
+ _globals['_BOTHISTORYSHAREMETADATA']._serialized_end=14453
+ _globals['_BOTIMAGINEMETADATA']._serialized_start=14456
+ _globals['_BOTIMAGINEMETADATA']._serialized_end=14632
+ _globals['_BOTIMAGINEMETADATA_IMAGINETYPE']._serialized_start=14562
+ _globals['_BOTIMAGINEMETADATA_IMAGINETYPE']._serialized_end=14632
+ _globals['_BOTINFRASTRUCTUREDIAGNOSTICS']._serialized_start=14635
+ _globals['_BOTINFRASTRUCTUREDIAGNOSTICS']._serialized_end=14811
+ _globals['_BOTINFRASTRUCTUREDIAGNOSTICS_BOTBACKEND']._serialized_start=14777
+ _globals['_BOTINFRASTRUCTUREDIAGNOSTICS_BOTBACKEND']._serialized_end=14811
+ _globals['_BOTLINKEDACCOUNT']._serialized_start=14814
+ _globals['_BOTLINKEDACCOUNT']._serialized_end=14951
+ _globals['_BOTLINKEDACCOUNT_BOTLINKEDACCOUNTTYPE']._serialized_start=14897
+ _globals['_BOTLINKEDACCOUNT_BOTLINKEDACCOUNTTYPE']._serialized_end=14951
+ _globals['_BOTLINKEDACCOUNTSMETADATA']._serialized_start=14953
+ _globals['_BOTLINKEDACCOUNTSMETADATA']._serialized_end=15069
+ _globals['_BOTMEDIAMETADATA']._serialized_start=15072
+ _globals['_BOTMEDIAMETADATA']._serialized_end=15337
+ _globals['_BOTMEDIAMETADATA_ORIENTATIONTYPE']._serialized_start=15287
+ _globals['_BOTMEDIAMETADATA_ORIENTATIONTYPE']._serialized_end=15337
+ _globals['_BOTMEMORYFACT']._serialized_start=15339
+ _globals['_BOTMEMORYFACT']._serialized_end=15384
+ _globals['_BOTMEMORYMETADATA']._serialized_start=15387
+ _globals['_BOTMEMORYMETADATA']._serialized_end=15518
+ _globals['_BOTMEMUMETADATA']._serialized_start=15520
+ _globals['_BOTMEMUMETADATA']._serialized_end=15585
+ _globals['_BOTMESSAGEORIGIN']._serialized_start=15588
+ _globals['_BOTMESSAGEORIGIN']._serialized_end=15735
+ _globals['_BOTMESSAGEORIGIN_BOTMESSAGEORIGINTYPE']._serialized_start=15671
+ _globals['_BOTMESSAGEORIGIN_BOTMESSAGEORIGINTYPE']._serialized_end=15735
+ _globals['_BOTMESSAGEORIGINMETADATA']._serialized_start=15737
+ _globals['_BOTMESSAGEORIGINMETADATA']._serialized_end=15808
+ _globals['_BOTMESSAGESHARINGINFO']._serialized_start=15810
+ _globals['_BOTMESSAGESHARINGINFO']._serialized_end=15916
+ _globals['_BOTMETADATA']._serialized_start=15919
+ _globals['_BOTMETADATA']._serialized_end=18391
+ _globals['_BOTMETRICSMETADATA']._serialized_start=18394
+ _globals['_BOTMETRICSMETADATA']._serialized_end=18560
+ _globals['_BOTMODESELECTIONMETADATA']._serialized_start=18563
+ _globals['_BOTMODESELECTIONMETADATA']._serialized_end=18745
+ _globals['_BOTMODESELECTIONMETADATA_BOTUSERSELECTIONMODE']._serialized_start=18684
+ _globals['_BOTMODESELECTIONMETADATA_BOTUSERSELECTIONMODE']._serialized_end=18745
+ _globals['_BOTMODELMETADATA']._serialized_start=18748
+ _globals['_BOTMODELMETADATA']._serialized_end=19077
+ _globals['_BOTMODELMETADATA_MODELTYPE']._serialized_start=18927
+ _globals['_BOTMODELMETADATA_MODELTYPE']._serialized_end=18996
+ _globals['_BOTMODELMETADATA_PREMIUMMODELSTATUS']._serialized_start=18998
+ _globals['_BOTMODELMETADATA_PREMIUMMODELSTATUS']._serialized_end=19077
+ _globals['_BOTPLUGINMETADATA']._serialized_start=19080
+ _globals['_BOTPLUGINMETADATA']._serialized_end=19705
+ _globals['_BOTPLUGINMETADATA_PLUGINTYPE']._serialized_start=19584
+ _globals['_BOTPLUGINMETADATA_PLUGINTYPE']._serialized_end=19639
+ _globals['_BOTPLUGINMETADATA_SEARCHPROVIDER']._serialized_start=19641
+ _globals['_BOTPLUGINMETADATA_SEARCHPROVIDER']._serialized_end=19705
+ _globals['_BOTPROGRESSINDICATORMETADATA']._serialized_start=19708
+ _globals['_BOTPROGRESSINDICATORMETADATA']._serialized_end=21197
+ _globals['_BOTPROGRESSINDICATORMETADATA_BOTPLANNINGSTEPMETADATA']._serialized_start=19890
+ _globals['_BOTPROGRESSINDICATORMETADATA_BOTPLANNINGSTEPMETADATA']._serialized_end=21197
+ _globals['_BOTPROGRESSINDICATORMETADATA_BOTPLANNINGSTEPMETADATA_BOTPLANNINGSEARCHSOURCEMETADATA']._serialized_start=20340
+ _globals['_BOTPROGRESSINDICATORMETADATA_BOTPLANNINGSTEPMETADATA_BOTPLANNINGSEARCHSOURCEMETADATA']._serialized_end=20533
+ _globals['_BOTPROGRESSINDICATORMETADATA_BOTPLANNINGSTEPMETADATA_BOTPLANNINGSEARCHSOURCESMETADATA']._serialized_start=20536
+ _globals['_BOTPROGRESSINDICATORMETADATA_BOTPLANNINGSTEPMETADATA_BOTPLANNINGSEARCHSOURCESMETADATA']._serialized_end=20839
+ _globals['_BOTPROGRESSINDICATORMETADATA_BOTPLANNINGSTEPMETADATA_BOTPLANNINGSEARCHSOURCESMETADATA_BOTPLANNINGSEARCHSOURCEPROVIDER']._serialized_start=20760
+ _globals['_BOTPROGRESSINDICATORMETADATA_BOTPLANNINGSTEPMETADATA_BOTPLANNINGSEARCHSOURCESMETADATA_BOTPLANNINGSEARCHSOURCEPROVIDER']._serialized_end=20839
+ _globals['_BOTPROGRESSINDICATORMETADATA_BOTPLANNINGSTEPMETADATA_BOTPLANNINGSTEPSECTIONMETADATA']._serialized_start=20842
+ _globals['_BOTPROGRESSINDICATORMETADATA_BOTPLANNINGSTEPMETADATA_BOTPLANNINGSTEPSECTIONMETADATA']._serialized_end=21038
+ _globals['_BOTPROGRESSINDICATORMETADATA_BOTPLANNINGSTEPMETADATA_BOTSEARCHSOURCEPROVIDER']._serialized_start=21040
+ _globals['_BOTPROGRESSINDICATORMETADATA_BOTPLANNINGSTEPMETADATA_BOTSEARCHSOURCEPROVIDER']._serialized_end=21120
+ _globals['_BOTPROGRESSINDICATORMETADATA_BOTPLANNINGSTEPMETADATA_PLANNINGSTEPSTATUS']._serialized_start=21122
+ _globals['_BOTPROGRESSINDICATORMETADATA_BOTPLANNINGSTEPMETADATA_PLANNINGSTEPSTATUS']._serialized_end=21197
+ _globals['_BOTPROMOTIONMESSAGEMETADATA']._serialized_start=21200
+ _globals['_BOTPROMOTIONMESSAGEMETADATA']._serialized_end=21397
+ _globals['_BOTPROMOTIONMESSAGEMETADATA_BOTPROMOTIONTYPE']._serialized_start=21331
+ _globals['_BOTPROMOTIONMESSAGEMETADATA_BOTPROMOTIONTYPE']._serialized_end=21397
+ _globals['_BOTPROMPTSUGGESTION']._serialized_start=21399
+ _globals['_BOTPROMPTSUGGESTION']._serialized_end=21454
+ _globals['_BOTPROMPTSUGGESTIONS']._serialized_start=21456
+ _globals['_BOTPROMPTSUGGESTIONS']._serialized_end=21530
+ _globals['_BOTPTTPROMPTMETADATA']._serialized_start=21532
+ _globals['_BOTPTTPROMPTMETADATA']._serialized_end=21574
+ _globals['_BOTQUOTAMETADATA']._serialized_start=21577
+ _globals['_BOTQUOTAMETADATA']._serialized_end=21911
+ _globals['_BOTQUOTAMETADATA_BOTFEATUREQUOTAMETADATA']._serialized_start=21683
+ _globals['_BOTQUOTAMETADATA_BOTFEATUREQUOTAMETADATA']._serialized_end=21911
+ _globals['_BOTQUOTAMETADATA_BOTFEATUREQUOTAMETADATA_BOTFEATURETYPE']._serialized_start=21851
+ _globals['_BOTQUOTAMETADATA_BOTFEATUREQUOTAMETADATA_BOTFEATURETYPE']._serialized_end=21911
+ _globals['_BOTREMINDERMETADATA']._serialized_start=21914
+ _globals['_BOTREMINDERMETADATA']._serialized_end=22305
+ _globals['_BOTREMINDERMETADATA_REMINDERACTION']._serialized_start=22160
+ _globals['_BOTREMINDERMETADATA_REMINDERACTION']._serialized_end=22224
+ _globals['_BOTREMINDERMETADATA_REMINDERFREQUENCY']._serialized_start=22226
+ _globals['_BOTREMINDERMETADATA_REMINDERFREQUENCY']._serialized_end=22305
+ _globals['_BOTRENDERINGCONFIGMETADATA']._serialized_start=22307
+ _globals['_BOTRENDERINGCONFIGMETADATA']._serialized_end=22384
+ _globals['_BOTRENDERINGMETADATA']._serialized_start=22387
+ _globals['_BOTRENDERINGMETADATA']._serialized_end=22520
+ _globals['_BOTRENDERINGMETADATA_KEYWORD']._serialized_start=22469
+ _globals['_BOTRENDERINGMETADATA_KEYWORD']._serialized_end=22520
+ _globals['_BOTRESOLVEDTOOLCALLMETADATA']._serialized_start=22522
+ _globals['_BOTRESOLVEDTOOLCALLMETADATA']._serialized_end=22605
+ _globals['_BOTSESSIONMETADATA']._serialized_start=22607
+ _globals['_BOTSESSIONMETADATA']._serialized_end=22697
+ _globals['_BOTSIGNATUREVERIFICATIONMETADATA']._serialized_start=22699
+ _globals['_BOTSIGNATUREVERIFICATIONMETADATA']._serialized_end=22797
+ _globals['_BOTSIGNATUREVERIFICATIONUSECASEPROOF']._serialized_start=22800
+ _globals['_BOTSIGNATUREVERIFICATIONUSECASEPROOF']._serialized_end=23319
+ _globals['_BOTSIGNATUREVERIFICATIONUSECASEPROOF_CERTIFICATESKI']._serialized_start=23079
+ _globals['_BOTSIGNATUREVERIFICATIONUSECASEPROOF_CERTIFICATESKI']._serialized_end=23193
+ _globals['_BOTSIGNATUREVERIFICATIONUSECASEPROOF_BOTSIGNATUREUSECASE']._serialized_start=23195
+ _globals['_BOTSIGNATUREVERIFICATIONUSECASEPROOF_BOTSIGNATUREUSECASE']._serialized_end=23319
+ _globals['_BOTSOURCESMETADATA']._serialized_start=23322
+ _globals['_BOTSOURCESMETADATA']._serialized_end=23716
+ _globals['_BOTSOURCESMETADATA_BOTSOURCEITEM']._serialized_start=23406
+ _globals['_BOTSOURCESMETADATA_BOTSOURCEITEM']._serialized_end=23716
+ _globals['_BOTSOURCESMETADATA_BOTSOURCEITEM_SOURCEPROVIDER']._serialized_start=23641
+ _globals['_BOTSOURCESMETADATA_BOTSOURCEITEM_SOURCEPROVIDER']._serialized_end=23716
+ _globals['_BOTSUGGESTEDPROMPTMETADATA']._serialized_start=23719
+ _globals['_BOTSUGGESTEDPROMPTMETADATA']._serialized_end=23887
+ _globals['_BOTUNIFIEDRESPONSEMUTATION']._serialized_start=23890
+ _globals['_BOTUNIFIEDRESPONSEMUTATION']._serialized_end=24305
+ _globals['_BOTUNIFIEDRESPONSEMUTATION_MEDIADETAILSMETADATA']._serialized_start=24092
+ _globals['_BOTUNIFIEDRESPONSEMUTATION_MEDIADETAILSMETADATA']._serialized_end=24226
+ _globals['_BOTUNIFIEDRESPONSEMUTATION_SIDEBYSIDEMETADATA']._serialized_start=24228
+ _globals['_BOTUNIFIEDRESPONSEMUTATION_SIDEBYSIDEMETADATA']._serialized_end=24305
+ _globals['_CALLLOGRECORD']._serialized_start=24308
+ _globals['_CALLLOGRECORD']._serialized_end=25178
+ _globals['_CALLLOGRECORD_PARTICIPANTINFO']._serialized_start=24777
+ _globals['_CALLLOGRECORD_PARTICIPANTINFO']._serialized_end=24867
+ _globals['_CALLLOGRECORD_CALLRESULT']._serialized_start=24870
+ _globals['_CALLLOGRECORD_CALLRESULT']._serialized_end=25045
+ _globals['_CALLLOGRECORD_CALLTYPE']._serialized_start=25047
+ _globals['_CALLLOGRECORD_CALLTYPE']._serialized_end=25106
+ _globals['_CALLLOGRECORD_SILENCEREASON']._serialized_start=25108
+ _globals['_CALLLOGRECORD_SILENCEREASON']._serialized_end=25178
+ _globals['_CERTCHAIN']._serialized_start=25181
+ _globals['_CERTCHAIN']._serialized_end=25460
+ _globals['_CERTCHAIN_NOISECERTIFICATE']._serialized_start=25307
+ _globals['_CERTCHAIN_NOISECERTIFICATE']._serialized_end=25460
+ _globals['_CERTCHAIN_NOISECERTIFICATE_DETAILS']._serialized_start=25363
+ _globals['_CERTCHAIN_NOISECERTIFICATE_DETAILS']._serialized_end=25460
+ _globals['_CHATLOCKSETTINGS']._serialized_start=25462
+ _globals['_CHATLOCKSETTINGS']._serialized_end=25549
+ _globals['_CHATROWOPAQUEDATA']._serialized_start=25552
+ _globals['_CHATROWOPAQUEDATA']._serialized_end=26409
+ _globals['_CHATROWOPAQUEDATA_DRAFTMESSAGE']._serialized_start=25638
+ _globals['_CHATROWOPAQUEDATA_DRAFTMESSAGE']._serialized_end=26409
+ _globals['_CHATROWOPAQUEDATA_DRAFTMESSAGE_CTWACONTEXTDATA']._serialized_start=25878
+ _globals['_CHATROWOPAQUEDATA_DRAFTMESSAGE_CTWACONTEXTDATA']._serialized_end=26315
+ _globals['_CHATROWOPAQUEDATA_DRAFTMESSAGE_CTWACONTEXTDATA_CONTEXTINFOEXTERNALADREPLYINFOMEDIATYPE']._serialized_start=26242
+ _globals['_CHATROWOPAQUEDATA_DRAFTMESSAGE_CTWACONTEXTDATA_CONTEXTINFOEXTERNALADREPLYINFOMEDIATYPE']._serialized_end=26315
+ _globals['_CHATROWOPAQUEDATA_DRAFTMESSAGE_CTWACONTEXTLINKDATA']._serialized_start=26317
+ _globals['_CHATROWOPAQUEDATA_DRAFTMESSAGE_CTWACONTEXTLINKDATA']._serialized_end=26409
+ _globals['_CITATION']._serialized_start=26411
+ _globals['_CITATION']._serialized_end=26487
+ _globals['_CLIENTPAIRINGPROPS']._serialized_start=26490
+ _globals['_CLIENTPAIRINGPROPS']._serialized_end=26677
+ _globals['_CLIENTPAYLOAD']._serialized_start=26680
+ _globals['_CLIENTPAYLOAD']._serialized_end=31219
+ _globals['_CLIENTPAYLOAD_DNSSOURCE']._serialized_start=27866
+ _globals['_CLIENTPAYLOAD_DNSSOURCE']._serialized_end=28106
+ _globals['_CLIENTPAYLOAD_DNSSOURCE_DNSRESOLUTIONMETHOD']._serialized_start=27973
+ _globals['_CLIENTPAYLOAD_DNSSOURCE_DNSRESOLUTIONMETHOD']._serialized_end=28106
+ _globals['_CLIENTPAYLOAD_DEVICEPAIRINGREGISTRATIONDATA']._serialized_start=28109
+ _globals['_CLIENTPAYLOAD_DEVICEPAIRINGREGISTRATIONDATA']._serialized_end=28283
+ _globals['_CLIENTPAYLOAD_INTEROPDATA']._serialized_start=28285
+ _globals['_CLIENTPAYLOAD_INTEROPDATA']._serialized_end=28360
+ _globals['_CLIENTPAYLOAD_USERAGENT']._serialized_start=28363
+ _globals['_CLIENTPAYLOAD_USERAGENT']._serialized_end=29866
+ _globals['_CLIENTPAYLOAD_USERAGENT_APPVERSION']._serialized_start=28986
+ _globals['_CLIENTPAYLOAD_USERAGENT_APPVERSION']._serialized_end=29089
+ _globals['_CLIENTPAYLOAD_USERAGENT_DEVICETYPE']._serialized_start=29091
+ _globals['_CLIENTPAYLOAD_USERAGENT_DEVICETYPE']._serialized_end=29161
+ _globals['_CLIENTPAYLOAD_USERAGENT_DISTRIBUTIONCHANNEL']._serialized_start=29163
+ _globals['_CLIENTPAYLOAD_USERAGENT_DISTRIBUTIONCHANNEL']._serialized_end=29241
+ _globals['_CLIENTPAYLOAD_USERAGENT_PLATFORM']._serialized_start=29244
+ _globals['_CLIENTPAYLOAD_USERAGENT_PLATFORM']._serialized_end=29803
+ _globals['_CLIENTPAYLOAD_USERAGENT_RELEASECHANNEL']._serialized_start=29805
+ _globals['_CLIENTPAYLOAD_USERAGENT_RELEASECHANNEL']._serialized_end=29866
+ _globals['_CLIENTPAYLOAD_WEBINFO']._serialized_start=29869
+ _globals['_CLIENTPAYLOAD_WEBINFO']._serialized_end=30514
+ _globals['_CLIENTPAYLOAD_WEBINFO_WEBDPAYLOAD']._serialized_start=30095
+ _globals['_CLIENTPAYLOAD_WEBINFO_WEBDPAYLOAD']._serialized_end=30410
+ _globals['_CLIENTPAYLOAD_WEBINFO_WEBSUBPLATFORM']._serialized_start=30412
+ _globals['_CLIENTPAYLOAD_WEBINFO_WEBSUBPLATFORM']._serialized_end=30514
+ _globals['_CLIENTPAYLOAD_ACCOUNTTYPE']._serialized_start=30516
+ _globals['_CLIENTPAYLOAD_ACCOUNTTYPE']._serialized_end=30553
+ _globals['_CLIENTPAYLOAD_CONNECTREASON']._serialized_start=30556
+ _globals['_CLIENTPAYLOAD_CONNECTREASON']._serialized_end=30690
+ _globals['_CLIENTPAYLOAD_CONNECTTYPE']._serialized_start=30693
+ _globals['_CLIENTPAYLOAD_CONNECTTYPE']._serialized_end=30997
+ _globals['_CLIENTPAYLOAD_IOSAPPEXTENSION']._serialized_start=30999
+ _globals['_CLIENTPAYLOAD_IOSAPPEXTENSION']._serialized_end=31083
+ _globals['_CLIENTPAYLOAD_PRODUCT']._serialized_start=31085
+ _globals['_CLIENTPAYLOAD_PRODUCT']._serialized_end=31172
+ _globals['_CLIENTPAYLOAD_TRAFFICANONYMIZATION']._serialized_start=31174
+ _globals['_CLIENTPAYLOAD_TRAFFICANONYMIZATION']._serialized_end=31219
+ _globals['_COEXSTATESYNC']._serialized_start=31222
+ _globals['_COEXSTATESYNC']._serialized_end=31575
+ _globals['_COEXSTATESYNC_COLLECTIONMUTATIONS']._serialized_start=31313
+ _globals['_COEXSTATESYNC_COLLECTIONMUTATIONS']._serialized_end=31407
+ _globals['_COEXSTATESYNC_MUTATION']._serialized_start=31410
+ _globals['_COEXSTATESYNC_MUTATION']._serialized_end=31575
+ _globals['_COMBINEDFINGERPRINT']._serialized_start=31578
+ _globals['_COMBINEDFINGERPRINT']._serialized_end=31723
+ _globals['_COMMAND']._serialized_start=31725
+ _globals['_COMMAND']._serialized_end=31844
+ _globals['_COMMENTMETADATA']._serialized_start=31846
+ _globals['_COMMENTMETADATA']._serialized_end=31931
+ _globals['_COMPANIONCOMMITMENT']._serialized_start=31933
+ _globals['_COMPANIONCOMMITMENT']._serialized_end=31968
+ _globals['_COMPANIONEPHEMERALIDENTITY']._serialized_start=31970
+ _globals['_COMPANIONEPHEMERALIDENTITY']._serialized_end=32086
+ _globals['_CONFIG']._serialized_start=32089
+ _globals['_CONFIG']._serialized_end=32221
+ _globals['_CONFIG_FIELDENTRY']._serialized_start=32160
+ _globals['_CONFIG_FIELDENTRY']._serialized_end=32221
+ _globals['_CONSUMERAPPLICATION']._serialized_start=32224
+ _globals['_CONSUMERAPPLICATION']._serialized_end=37326
+ _globals['_CONSUMERAPPLICATION_APPLICATIONDATA']._serialized_start=32361
+ _globals['_CONSUMERAPPLICATION_APPLICATIONDATA']._serialized_end=32463
+ _globals['_CONSUMERAPPLICATION_AUDIOMESSAGE']._serialized_start=32465
+ _globals['_CONSUMERAPPLICATION_AUDIOMESSAGE']._serialized_end=32530
+ _globals['_CONSUMERAPPLICATION_CONTACTMESSAGE']._serialized_start=32532
+ _globals['_CONSUMERAPPLICATION_CONTACTMESSAGE']._serialized_end=32588
+ _globals['_CONSUMERAPPLICATION_CONTACTSARRAYMESSAGE']._serialized_start=32590
+ _globals['_CONSUMERAPPLICATION_CONTACTSARRAYMESSAGE']._serialized_end=32697
+ _globals['_CONSUMERAPPLICATION_CONTENT']._serialized_start=32700
+ _globals['_CONSUMERAPPLICATION_CONTENT']._serialized_end=34041
+ _globals['_CONSUMERAPPLICATION_DOCUMENTMESSAGE']._serialized_start=34043
+ _globals['_CONSUMERAPPLICATION_DOCUMENTMESSAGE']._serialized_end=34119
+ _globals['_CONSUMERAPPLICATION_EDITMESSAGE']._serialized_start=34121
+ _globals['_CONSUMERAPPLICATION_EDITMESSAGE']._serialized_end=34230
+ _globals['_CONSUMERAPPLICATION_EXTENDEDTEXTMESSAGE']._serialized_start=34233
+ _globals['_CONSUMERAPPLICATION_EXTENDEDTEXTMESSAGE']._serialized_end=34520
+ _globals['_CONSUMERAPPLICATION_GROUPINVITEMESSAGE']._serialized_start=34523
+ _globals['_CONSUMERAPPLICATION_GROUPINVITEMESSAGE']._serialized_end=34689
+ _globals['_CONSUMERAPPLICATION_IMAGEMESSAGE']._serialized_start=34691
+ _globals['_CONSUMERAPPLICATION_IMAGEMESSAGE']._serialized_end=34783
+ _globals['_CONSUMERAPPLICATION_INTERACTIVEANNOTATION']._serialized_start=34786
+ _globals['_CONSUMERAPPLICATION_INTERACTIVEANNOTATION']._serialized_end=34941
+ _globals['_CONSUMERAPPLICATION_LIVELOCATIONMESSAGE']._serialized_start=34944
+ _globals['_CONSUMERAPPLICATION_LIVELOCATIONMESSAGE']._serialized_end=35196
+ _globals['_CONSUMERAPPLICATION_LOCATION']._serialized_start=35198
+ _globals['_CONSUMERAPPLICATION_LOCATION']._serialized_end=35273
+ _globals['_CONSUMERAPPLICATION_LOCATIONMESSAGE']._serialized_start=35275
+ _globals['_CONSUMERAPPLICATION_LOCATIONMESSAGE']._serialized_end=35367
+ _globals['_CONSUMERAPPLICATION_MEDIAPAYLOAD']._serialized_start=35369
+ _globals['_CONSUMERAPPLICATION_MEDIAPAYLOAD']._serialized_end=35424
+ _globals['_CONSUMERAPPLICATION_METADATA']._serialized_start=35426
+ _globals['_CONSUMERAPPLICATION_METADATA']._serialized_end=35520
+ _globals['_CONSUMERAPPLICATION_OPTION']._serialized_start=35522
+ _globals['_CONSUMERAPPLICATION_OPTION']._serialized_end=35550
+ _globals['_CONSUMERAPPLICATION_PAYLOAD']._serialized_start=35553
+ _globals['_CONSUMERAPPLICATION_PAYLOAD']._serialized_end=35834
+ _globals['_CONSUMERAPPLICATION_POINT']._serialized_start=35836
+ _globals['_CONSUMERAPPLICATION_POINT']._serialized_end=35865
+ _globals['_CONSUMERAPPLICATION_POLLADDOPTIONMESSAGE']._serialized_start=35867
+ _globals['_CONSUMERAPPLICATION_POLLADDOPTIONMESSAGE']._serialized_end=35947
+ _globals['_CONSUMERAPPLICATION_POLLCREATIONMESSAGE']._serialized_start=35950
+ _globals['_CONSUMERAPPLICATION_POLLCREATIONMESSAGE']._serialized_end=36088
+ _globals['_CONSUMERAPPLICATION_POLLENCVALUE']._serialized_start=36090
+ _globals['_CONSUMERAPPLICATION_POLLENCVALUE']._serialized_end=36139
+ _globals['_CONSUMERAPPLICATION_POLLUPDATEMESSAGE']._serialized_start=36142
+ _globals['_CONSUMERAPPLICATION_POLLUPDATEMESSAGE']._serialized_end=36336
+ _globals['_CONSUMERAPPLICATION_POLLVOTEMESSAGE']._serialized_start=36338
+ _globals['_CONSUMERAPPLICATION_POLLVOTEMESSAGE']._serialized_end=36407
+ _globals['_CONSUMERAPPLICATION_REACTIONMESSAGE']._serialized_start=36410
+ _globals['_CONSUMERAPPLICATION_REACTIONMESSAGE']._serialized_end=36578
+ _globals['_CONSUMERAPPLICATION_REVOKEMESSAGE']._serialized_start=36580
+ _globals['_CONSUMERAPPLICATION_REVOKEMESSAGE']._serialized_end=36630
+ _globals['_CONSUMERAPPLICATION_SIGNAL']._serialized_start=36632
+ _globals['_CONSUMERAPPLICATION_SIGNAL']._serialized_end=36640
+ _globals['_CONSUMERAPPLICATION_STATUSTEXTMESAGE']._serialized_start=36643
+ _globals['_CONSUMERAPPLICATION_STATUSTEXTMESAGE']._serialized_end=36843
+ _globals['_CONSUMERAPPLICATION_STICKERMESSAGE']._serialized_start=36845
+ _globals['_CONSUMERAPPLICATION_STICKERMESSAGE']._serialized_end=36901
+ _globals['_CONSUMERAPPLICATION_SUBPROTOCOLPAYLOAD']._serialized_start=36903
+ _globals['_CONSUMERAPPLICATION_SUBPROTOCOLPAYLOAD']._serialized_end=36977
+ _globals['_CONSUMERAPPLICATION_VIDEOMESSAGE']._serialized_start=36979
+ _globals['_CONSUMERAPPLICATION_VIDEOMESSAGE']._serialized_end=37071
+ _globals['_CONSUMERAPPLICATION_VIEWONCEMESSAGE']._serialized_start=37074
+ _globals['_CONSUMERAPPLICATION_VIEWONCEMESSAGE']._serialized_end=37246
+ _globals['_CONSUMERAPPLICATION_CONSUMER_APPLICATION_EXTENDED_TEXT_MESSAGE_PREVIEW_TYPE']._serialized_start=37248
+ _globals['_CONSUMERAPPLICATION_CONSUMER_APPLICATION_EXTENDED_TEXT_MESSAGE_PREVIEW_TYPE']._serialized_end=37326
+ _globals['_CONTEXTINFO']._serialized_start=37329
+ _globals['_CONTEXTINFO']._serialized_end=44537
+ _globals['_CONTEXTINFO_ADREPLYINFO']._serialized_start=40136
+ _globals['_CONTEXTINFO_ADREPLYINFO']._serialized_end=40322
+ _globals['_CONTEXTINFO_ADREPLYINFO_MEDIATYPE']._serialized_start=40279
+ _globals['_CONTEXTINFO_ADREPLYINFO_MEDIATYPE']._serialized_end=40322
+ _globals['_CONTEXTINFO_BUSINESSINTERACTIONPILLS']._serialized_start=40325
+ _globals['_CONTEXTINFO_BUSINESSINTERACTIONPILLS']._serialized_end=41413
+ _globals['_CONTEXTINFO_BUSINESSINTERACTIONPILLS_PILL']._serialized_start=40736
+ _globals['_CONTEXTINFO_BUSINESSINTERACTIONPILLS_PILL']._serialized_end=40836
+ _globals['_CONTEXTINFO_BUSINESSINTERACTIONPILLS_SIGNEDPAYLOAD']._serialized_start=40838
+ _globals['_CONTEXTINFO_BUSINESSINTERACTIONPILLS_SIGNEDPAYLOAD']._serialized_end=40943
+ _globals['_CONTEXTINFO_BUSINESSINTERACTIONPILLS_UNAUTHENTICATEDBUSINESSMETADATA']._serialized_start=40946
+ _globals['_CONTEXTINFO_BUSINESSINTERACTIONPILLS_UNAUTHENTICATEDBUSINESSMETADATA']._serialized_end=41085
+ _globals['_CONTEXTINFO_BUSINESSINTERACTIONPILLS_ENTRYPOINT']._serialized_start=41088
+ _globals['_CONTEXTINFO_BUSINESSINTERACTIONPILLS_ENTRYPOINT']._serialized_end=41229
+ _globals['_CONTEXTINFO_BUSINESSINTERACTIONPILLS_PILLTYPE']._serialized_start=41232
+ _globals['_CONTEXTINFO_BUSINESSINTERACTIONPILLS_PILLTYPE']._serialized_end=41413
+ _globals['_CONTEXTINFO_BUSINESSMESSAGEFORWARDINFO']._serialized_start=41415
+ _globals['_CONTEXTINFO_BUSINESSMESSAGEFORWARDINFO']._serialized_end=41469
+ _globals['_CONTEXTINFO_DATASHARINGCONTEXT']._serialized_start=41472
+ _globals['_CONTEXTINFO_DATASHARINGCONTEXT']._serialized_end=41896
+ _globals['_CONTEXTINFO_DATASHARINGCONTEXT_PARAMETERS']._serialized_start=41659
+ _globals['_CONTEXTINFO_DATASHARINGCONTEXT_PARAMETERS']._serialized_end=41811
+ _globals['_CONTEXTINFO_DATASHARINGCONTEXT_DATASHARINGFLAGS']._serialized_start=41813
+ _globals['_CONTEXTINFO_DATASHARINGCONTEXT_DATASHARINGFLAGS']._serialized_end=41896
+ _globals['_CONTEXTINFO_EXTERNALADREPLYINFO']._serialized_start=41899
+ _globals['_CONTEXTINFO_EXTERNALADREPLYINFO']._serialized_end=42881
+ _globals['_CONTEXTINFO_EXTERNALADREPLYINFO_ADTYPE']._serialized_start=42808
+ _globals['_CONTEXTINFO_EXTERNALADREPLYINFO_ADTYPE']._serialized_end=42836
+ _globals['_CONTEXTINFO_EXTERNALADREPLYINFO_MEDIATYPE']._serialized_start=40279
+ _globals['_CONTEXTINFO_EXTERNALADREPLYINFO_MEDIATYPE']._serialized_end=40322
+ _globals['_CONTEXTINFO_FEATUREELIGIBILITIES']._serialized_start=42884
+ _globals['_CONTEXTINFO_FEATUREELIGIBILITIES']._serialized_end=43073
+ _globals['_CONTEXTINFO_FORWARDEDNEWSLETTERMESSAGEINFO']._serialized_start=43076
+ _globals['_CONTEXTINFO_FORWARDEDNEWSLETTERMESSAGEINFO']._serialized_end=43374
+ _globals['_CONTEXTINFO_FORWARDEDNEWSLETTERMESSAGEINFO_CONTENTTYPE']._serialized_start=43317
+ _globals['_CONTEXTINFO_FORWARDEDNEWSLETTERMESSAGEINFO_CONTENTTYPE']._serialized_end=43374
+ _globals['_CONTEXTINFO_INSTAGRAMTHREADLINK']._serialized_start=43376
+ _globals['_CONTEXTINFO_INSTAGRAMTHREADLINK']._serialized_end=43410
+ _globals['_CONTEXTINFO_PARTIALLYSELECTEDCONTENT']._serialized_start=43412
+ _globals['_CONTEXTINFO_PARTIALLYSELECTEDCONTENT']._serialized_end=43452
+ _globals['_CONTEXTINFO_QUESTIONREPLYQUOTEDMESSAGE']._serialized_start=43455
+ _globals['_CONTEXTINFO_QUESTIONREPLYQUOTEDMESSAGE']._serialized_end=43595
+ _globals['_CONTEXTINFO_STATUSAUDIENCEMETADATA']._serialized_start=43598
+ _globals['_CONTEXTINFO_STATUSAUDIENCEMETADATA']._serialized_end=43788
+ _globals['_CONTEXTINFO_STATUSAUDIENCEMETADATA_AUDIENCETYPE']._serialized_start=43742
+ _globals['_CONTEXTINFO_STATUSAUDIENCEMETADATA_AUDIENCETYPE']._serialized_end=43788
+ _globals['_CONTEXTINFO_UTMINFO']._serialized_start=43790
+ _globals['_CONTEXTINFO_UTMINFO']._serialized_end=43839
+ _globals['_CONTEXTINFO_CROSSAPPSOURCE']._serialized_start=43841
+ _globals['_CONTEXTINFO_CROSSAPPSOURCE']._serialized_end=43950
+ _globals['_CONTEXTINFO_FORWARDORIGIN']._serialized_start=43952
+ _globals['_CONTEXTINFO_FORWARDORIGIN']._serialized_end=44038
+ _globals['_CONTEXTINFO_PAIREDMEDIATYPE']._serialized_start=44041
+ _globals['_CONTEXTINFO_PAIREDMEDIATYPE']._serialized_end=44256
+ _globals['_CONTEXTINFO_QUOTEDTYPE']._serialized_start=44258
+ _globals['_CONTEXTINFO_QUOTEDTYPE']._serialized_end=44294
+ _globals['_CONTEXTINFO_STATUSATTRIBUTIONTYPE']._serialized_start=44297
+ _globals['_CONTEXTINFO_STATUSATTRIBUTIONTYPE']._serialized_end=44443
+ _globals['_CONTEXTINFO_STATUSSOURCETYPE']._serialized_start=44445
+ _globals['_CONTEXTINFO_STATUSSOURCETYPE']._serialized_end=44537
+ _globals['_CONVERSATION']._serialized_start=44540
+ _globals['_CONVERSATION']._serialized_end=46753
+ _globals['_CONVERSATION_ENDOFHISTORYTRANSFERTYPE']._serialized_start=46397
+ _globals['_CONVERSATION_ENDOFHISTORYTRANSFERTYPE']._serialized_end=46653
+ _globals['_CONVERSATION_GROUPAPPEALSTATUS']._serialized_start=46655
+ _globals['_CONVERSATION_GROUPAPPEALSTATUS']._serialized_end=46753
+ _globals['_CREATEBACKUPINPUT']._serialized_start=46755
+ _globals['_CREATEBACKUPINPUT']._serialized_end=46812
+ _globals['_CREATEBACKUPOUTPUT']._serialized_start=46815
+ _globals['_CREATEBACKUPOUTPUT']._serialized_end=47008
+ _globals['_DECRYPTMEKFORDISTRIBUTIONFROMTRANSPORTSENDERINPUT']._serialized_start=47011
+ _globals['_DECRYPTMEKFORDISTRIBUTIONFROMTRANSPORTSENDERINPUT']._serialized_end=47483
+ _globals['_DECRYPTMEKFORDISTRIBUTIONFROMTRANSPORTSENDERINPUT_TRANSPORTSENDERMEKDISTRIBUTIONSINGLERECIPIENT']._serialized_start=47317
+ _globals['_DECRYPTMEKFORDISTRIBUTIONFROMTRANSPORTSENDERINPUT_TRANSPORTSENDERMEKDISTRIBUTIONSINGLERECIPIENT']._serialized_end=47483
+ _globals['_DECRYPTMEKFORDISTRIBUTIONFROMTRANSPORTSENDERRESULT']._serialized_start=47486
+ _globals['_DECRYPTMEKFORDISTRIBUTIONFROMTRANSPORTSENDERRESULT']._serialized_end=47654
+ _globals['_DECRYPTMEKFORDISTRIBUTIONFROMTRANSPORTSENDERSUCCESS']._serialized_start=47656
+ _globals['_DECRYPTMEKFORDISTRIBUTIONFROMTRANSPORTSENDERSUCCESS']._serialized_end=47722
+ _globals['_DECRYPTMEKFORDISTRIBUTIONINPUT']._serialized_start=47725
+ _globals['_DECRYPTMEKFORDISTRIBUTIONINPUT']._serialized_end=47968
+ _globals['_DECRYPTMEKFORDISTRIBUTIONRESULT']._serialized_start=47971
+ _globals['_DECRYPTMEKFORDISTRIBUTIONRESULT']._serialized_end=48101
+ _globals['_DECRYPTMEKFORDISTRIBUTIONSUCCESS']._serialized_start=48103
+ _globals['_DECRYPTMEKFORDISTRIBUTIONSUCCESS']._serialized_end=48150
+ _globals['_DECRYPTMESSAGEINPUT']._serialized_start=48153
+ _globals['_DECRYPTMESSAGEINPUT']._serialized_end=48282
+ _globals['_DECRYPTMESSAGEOUTPUT']._serialized_start=48284
+ _globals['_DECRYPTMESSAGEOUTPUT']._serialized_end=48347
+ _globals['_DECRYPTSELFMMKDISTRIBUTIONINPUT']._serialized_start=48349
+ _globals['_DECRYPTSELFMMKDISTRIBUTIONINPUT']._serialized_end=48452
+ _globals['_DECRYPTSELFMMKDISTRIBUTIONRESULT']._serialized_start=48455
+ _globals['_DECRYPTSELFMMKDISTRIBUTIONRESULT']._serialized_end=48587
+ _globals['_DECRYPTSELFMMKDISTRIBUTIONSUCCESS']._serialized_start=48589
+ _globals['_DECRYPTSELFMMKDISTRIBUTIONSUCCESS']._serialized_end=48641
+ _globals['_DERIVEATTACHMENTACCESSTOKENSECRETINPUT']._serialized_start=48643
+ _globals['_DERIVEATTACHMENTACCESSTOKENSECRETINPUT']._serialized_end=48701
+ _globals['_DERIVEATTACHMENTACCESSTOKENSECRETRESULT']._serialized_start=48703
+ _globals['_DERIVEATTACHMENTACCESSTOKENSECRETRESULT']._serialized_end=48781
+ _globals['_DERIVEATTACHMENTPRIMARYKEYSECRETINPUT']._serialized_start=48783
+ _globals['_DERIVEATTACHMENTPRIMARYKEYSECRETINPUT']._serialized_end=48840
+ _globals['_DERIVEATTACHMENTPRIMARYKEYSECRETRESULT']._serialized_start=48842
+ _globals['_DERIVEATTACHMENTPRIMARYKEYSECRETRESULT']._serialized_end=48918
+ _globals['_DERIVEMAILBOXAUTHKEYPAIRINPUT']._serialized_start=48920
+ _globals['_DERIVEMAILBOXAUTHKEYPAIRINPUT']._serialized_end=48995
+ _globals['_DERIVEMAILBOXAUTHKEYPAIRRESULT']._serialized_start=48997
+ _globals['_DERIVEMAILBOXAUTHKEYPAIRRESULT']._serialized_end=49090
+ _globals['_DERIVEMAILBOXENCRYPTIONKEYPAIRINPUT']._serialized_start=49092
+ _globals['_DERIVEMAILBOXENCRYPTIONKEYPAIRINPUT']._serialized_end=49173
+ _globals['_DERIVEMAILBOXENCRYPTIONKEYPAIRRESULT']._serialized_start=49175
+ _globals['_DERIVEMAILBOXENCRYPTIONKEYPAIRRESULT']._serialized_end=49286
+ _globals['_DERIVEMAILBOXSIGNINGKEYPAIRINPUT']._serialized_start=49288
+ _globals['_DERIVEMAILBOXSIGNINGKEYPAIRINPUT']._serialized_end=49366
+ _globals['_DERIVEMAILBOXSIGNINGKEYPAIRRESULT']._serialized_start=49369
+ _globals['_DERIVEMAILBOXSIGNINGKEYPAIRRESULT']._serialized_end=49503
+ _globals['_DERIVEMAILBOXSIGNINGKEYPAIRSUCCESS']._serialized_start=49505
+ _globals['_DERIVEMAILBOXSIGNINGKEYPAIRSUCCESS']._serialized_end=49608
+ _globals['_DERIVEMESSAGEKEYINPUT']._serialized_start=49610
+ _globals['_DERIVEMESSAGEKEYINPUT']._serialized_end=49694
+ _globals['_DERIVEMESSAGEKEYOUTPUT']._serialized_start=49696
+ _globals['_DERIVEMESSAGEKEYOUTPUT']._serialized_end=49755
+ _globals['_DERIVEMESSAGINGMAILBOXKEYPAIRSINPUT']._serialized_start=49757
+ _globals['_DERIVEMESSAGINGMAILBOXKEYPAIRSINPUT']._serialized_end=49811
+ _globals['_DERIVEMESSAGINGMAILBOXKEYPAIRSRESULT']._serialized_start=49814
+ _globals['_DERIVEMESSAGINGMAILBOXKEYPAIRSRESULT']._serialized_end=49954
+ _globals['_DERIVEMESSAGINGMAILBOXKEYPAIRSSUCCESS']._serialized_start=49956
+ _globals['_DERIVEMESSAGINGMAILBOXKEYPAIRSSUCCESS']._serialized_end=50057
+ _globals['_DETACHEDDEVICEPUBLICDATA']._serialized_start=50059
+ _globals['_DETACHEDDEVICEPUBLICDATA']._serialized_end=50182
+ _globals['_DEVICECAPABILITIES']._serialized_start=50185
+ _globals['_DEVICECAPABILITIES']._serialized_end=51547
+ _globals['_DEVICECAPABILITIES_AIFBIDMIGRATION']._serialized_start=50862
+ _globals['_DEVICECAPABILITIES_AIFBIDMIGRATION']._serialized_end=50913
+ _globals['_DEVICECAPABILITIES_AITHREAD']._serialized_start=50916
+ _globals['_DEVICECAPABILITIES_AITHREAD']._serialized_end=51047
+ _globals['_DEVICECAPABILITIES_AITHREAD_SUPPORTLEVEL']._serialized_start=51002
+ _globals['_DEVICECAPABILITIES_AITHREAD_SUPPORTLEVEL']._serialized_end=51047
+ _globals['_DEVICECAPABILITIES_BIZAISETTINGSSYNC']._serialized_start=51049
+ _globals['_DEVICECAPABILITIES_BIZAISETTINGSSYNC']._serialized_end=51105
+ _globals['_DEVICECAPABILITIES_BUSINESSBROADCAST']._serialized_start=51108
+ _globals['_DEVICECAPABILITIES_BUSINESSBROADCAST']._serialized_end=51269
+ _globals['_DEVICECAPABILITIES_CONTACTREFRESH']._serialized_start=51271
+ _globals['_DEVICECAPABILITIES_CONTACTREFRESH']._serialized_end=51313
+ _globals['_DEVICECAPABILITIES_LIDMIGRATION']._serialized_start=51315
+ _globals['_DEVICECAPABILITIES_LIDMIGRATION']._serialized_end=51363
+ _globals['_DEVICECAPABILITIES_USERHASAVATAR']._serialized_start=51365
+ _globals['_DEVICECAPABILITIES_USERHASAVATAR']._serialized_end=51403
+ _globals['_DEVICECAPABILITIES_CHATLOCKSUPPORTLEVEL']._serialized_start=51405
+ _globals['_DEVICECAPABILITIES_CHATLOCKSUPPORTLEVEL']._serialized_end=51460
+ _globals['_DEVICECAPABILITIES_MEMBERNAMETAGPRIMARYSUPPORT']._serialized_start=51462
+ _globals['_DEVICECAPABILITIES_MEMBERNAMETAGPRIMARYSUPPORT']._serialized_end=51547
+ _globals['_DEVICECONSISTENCYCODEMESSAGE']._serialized_start=51549
+ _globals['_DEVICECONSISTENCYCODEMESSAGE']._serialized_end=51618
+ _globals['_DEVICELISTMETADATA']._serialized_start=51621
+ _globals['_DEVICELISTMETADATA']._serialized_end=51932
+ _globals['_DEVICEOUTPUT']._serialized_start=51935
+ _globals['_DEVICEOUTPUT']._serialized_end=52245
+ _globals['_DEVICEPROPS']._serialized_start=52248
+ _globals['_DEVICEPROPS']._serialized_end=53774
+ _globals['_DEVICEPROPS_APPVERSION']._serialized_start=28986
+ _globals['_DEVICEPROPS_APPVERSION']._serialized_end=29089
+ _globals['_DEVICEPROPS_HISTORYSYNCCONFIG']._serialized_start=52583
+ _globals['_DEVICEPROPS_HISTORYSYNCCONFIG']._serialized_end=53410
+ _globals['_DEVICEPROPS_PLATFORMTYPE']._serialized_start=53413
+ _globals['_DEVICEPROPS_PLATFORMTYPE']._serialized_end=53774
+ _globals['_DISAPPEARINGMODE']._serialized_start=53777
+ _globals['_DISAPPEARINGMODE']._serialized_end=54192
+ _globals['_DISAPPEARINGMODE_INITIATOR']._serialized_start=53958
+ _globals['_DISAPPEARINGMODE_INITIATOR']._serialized_end=54063
+ _globals['_DISAPPEARINGMODE_TRIGGER']._serialized_start=54065
+ _globals['_DISAPPEARINGMODE_TRIGGER']._serialized_end=54192
+ _globals['_EMBEDDEDCONTENT']._serialized_start=54195
+ _globals['_EMBEDDEDCONTENT']._serialized_end=54327
+ _globals['_EMBEDDEDMESSAGE']._serialized_start=54329
+ _globals['_EMBEDDEDMESSAGE']._serialized_end=54400
+ _globals['_EMBEDDEDMUSIC']._serialized_start=54403
+ _globals['_EMBEDDEDMUSIC']._serialized_end=54766
+ _globals['_ENCRYPTMEKFORDISTRIBUTIONINPUT']._serialized_start=54769
+ _globals['_ENCRYPTMEKFORDISTRIBUTIONINPUT']._serialized_end=55063
+ _globals['_ENCRYPTMEKFORDISTRIBUTIONINPUT_MAILBOXAUTHKP']._serialized_start=55024
+ _globals['_ENCRYPTMEKFORDISTRIBUTIONINPUT_MAILBOXAUTHKP']._serialized_end=55063
+ _globals['_ENCRYPTMEKFORDISTRIBUTIONRESULT']._serialized_start=55065
+ _globals['_ENCRYPTMEKFORDISTRIBUTIONRESULT']._serialized_end=55135
+ _globals['_ENCRYPTMEKSFORDISTRIBUTIONFROMTRANSPORTSENDERINPUT']._serialized_start=55138
+ _globals['_ENCRYPTMEKSFORDISTRIBUTIONFROMTRANSPORTSENDERINPUT']._serialized_end=55490
+ _globals['_ENCRYPTMEKSFORDISTRIBUTIONFROMTRANSPORTSENDERINPUT_TRANSPORTSIGNINGKP']._serialized_start=55446
+ _globals['_ENCRYPTMEKSFORDISTRIBUTIONFROMTRANSPORTSENDERINPUT_TRANSPORTSIGNINGKP']._serialized_end=55490
+ _globals['_ENCRYPTMEKSFORDISTRIBUTIONFROMTRANSPORTSENDERRESULT']._serialized_start=55493
+ _globals['_ENCRYPTMEKSFORDISTRIBUTIONFROMTRANSPORTSENDERRESULT']._serialized_end=55655
+ _globals['_ENCRYPTMESSAGEINPUT']._serialized_start=55658
+ _globals['_ENCRYPTMESSAGEINPUT']._serialized_end=55917
+ _globals['_ENCRYPTMESSAGEOUTPUT']._serialized_start=55920
+ _globals['_ENCRYPTMESSAGEOUTPUT']._serialized_end=56078
+ _globals['_ENCRYPTEDPAIRINGREQUEST']._serialized_start=56080
+ _globals['_ENCRYPTEDPAIRINGREQUEST']._serialized_end=56143
+ _globals['_ENCRYPTEDSECRETVALUESOUTPUT']._serialized_start=56146
+ _globals['_ENCRYPTEDSECRETVALUESOUTPUT']._serialized_end=56465
+ _globals['_EPHEMERALSETTING']._serialized_start=56467
+ _globals['_EPHEMERALSETTING']._serialized_end=56522
+ _globals['_EPOCH0OUTPUT']._serialized_start=56525
+ _globals['_EPOCH0OUTPUT']._serialized_end=56708
+ _globals['_EPOCHPUBLICDATA']._serialized_start=56711
+ _globals['_EPOCHPUBLICDATA']._serialized_end=56872
+ _globals['_EPOCHSIGNATURES']._serialized_start=56874
+ _globals['_EPOCHSIGNATURES']._serialized_end=56937
+ _globals['_EVENTADDITIONALMETADATA']._serialized_start=56939
+ _globals['_EVENTADDITIONALMETADATA']._serialized_end=56981
+ _globals['_EVENTRESPONSE']._serialized_start=56984
+ _globals['_EVENTRESPONSE']._serialized_end=57161
+ _globals['_EXITCODE']._serialized_start=57163
+ _globals['_EXITCODE']._serialized_end=57201
+ _globals['_EXTENDEDCONTENTMESSAGE']._serialized_start=57204
+ _globals['_EXTENDEDCONTENTMESSAGE']._serialized_end=58683
+ _globals['_EXTENDEDCONTENTMESSAGE_CTA']._serialized_start=58318
+ _globals['_EXTENDEDCONTENTMESSAGE_CTA']._serialized_end=58492
+ _globals['_EXTENDEDCONTENTMESSAGE_EXTENDED_CONTENT_MESSAGE_OVERLAY_ICON_GLYPH']._serialized_start=58495
+ _globals['_EXTENDEDCONTENTMESSAGE_EXTENDED_CONTENT_MESSAGE_OVERLAY_ICON_GLYPH']._serialized_end=58683
+ _globals['_EXTERNALBLOBREFERENCE']._serialized_start=58686
+ _globals['_EXTERNALBLOBREFERENCE']._serialized_end=58829
+ _globals['_FIELD']._serialized_start=58832
+ _globals['_FIELD']._serialized_end=59049
+ _globals['_FIELD_SUBFIELDENTRY']._serialized_start=58985
+ _globals['_FIELD_SUBFIELDENTRY']._serialized_end=59049
+ _globals['_FINGERPRINTDATA']._serialized_start=59052
+ _globals['_FINGERPRINTDATA']._serialized_end=59283
+ _globals['_FINGERPRINTDATA_HOSTEDSTATE']._serialized_start=59248
+ _globals['_FINGERPRINTDATA_HOSTEDSTATE']._serialized_end=59283
+ _globals['_FORWARDEDAIBOTMESSAGEINFO']._serialized_start=59285
+ _globals['_FORWARDEDAIBOTMESSAGEINFO']._serialized_end=59366
+ _globals['_GENERATEMEKINPUT']._serialized_start=59368
+ _globals['_GENERATEMEKINPUT']._serialized_end=59406
+ _globals['_GENERATEMEKRESULT']._serialized_start=59408
+ _globals['_GENERATEMEKRESULT']._serialized_end=59461
+ _globals['_GENERATEMEKROSTERHASHINPUT']._serialized_start=59463
+ _globals['_GENERATEMEKROSTERHASHINPUT']._serialized_end=59511
+ _globals['_GENERATEMEKROSTERHASHRESULT']._serialized_start=59513
+ _globals['_GENERATEMEKROSTERHASHRESULT']._serialized_end=59562
+ _globals['_GLOBALSETTINGS']._serialized_start=59565
+ _globals['_GLOBALSETTINGS']._serialized_end=60498
+ _globals['_GROUPHISTORY']._serialized_start=60501
+ _globals['_GROUPHISTORY']._serialized_end=60754
+ _globals['_GROUPHISTORYBUNDLEINFO']._serialized_start=60757
+ _globals['_GROUPHISTORYBUNDLEINFO']._serialized_end=61067
+ _globals['_GROUPHISTORYBUNDLEINFO_PROCESSSTATE']._serialized_start=60933
+ _globals['_GROUPHISTORYBUNDLEINFO_PROCESSSTATE']._serialized_end=61067
+ _globals['_GROUPHISTORYINDIVIDUALMESSAGEINFO']._serialized_start=61069
+ _globals['_GROUPHISTORYINDIVIDUALMESSAGEINFO']._serialized_end=61190
+ _globals['_GROUPHISTORYWITHMESSAGEBYTES']._serialized_start=61193
+ _globals['_GROUPHISTORYWITHMESSAGEBYTES']._serialized_end=61526
+ _globals['_GROUPMENTION']._serialized_start=61528
+ _globals['_GROUPMENTION']._serialized_end=61582
+ _globals['_GROUPPARTICIPANT']._serialized_start=61585
+ _globals['_GROUPPARTICIPANT']._serialized_end=61759
+ _globals['_GROUPPARTICIPANT_RANK']._serialized_start=61713
+ _globals['_GROUPPARTICIPANT_RANK']._serialized_end=61759
+ _globals['_GROUPROOTKEYSHARE']._serialized_start=61761
+ _globals['_GROUPROOTKEYSHARE']._serialized_end=61828
+ _globals['_GROUPROOTKEYSHAREENTRY']._serialized_start=61830
+ _globals['_GROUPROOTKEYSHAREENTRY']._serialized_end=61946
+ _globals['_HANDSHAKEMESSAGE']._serialized_start=61949
+ _globals['_HANDSHAKEMESSAGE']._serialized_end=62874
+ _globals['_HANDSHAKEMESSAGE_CLIENTFINISH']._serialized_start=62154
+ _globals['_HANDSHAKEMESSAGE_CLIENTFINISH']._serialized_end=62275
+ _globals['_HANDSHAKEMESSAGE_CLIENTHELLO']._serialized_start=62278
+ _globals['_HANDSHAKEMESSAGE_CLIENTHELLO']._serialized_end=62561
+ _globals['_HANDSHAKEMESSAGE_SERVERHELLO']._serialized_start=62564
+ _globals['_HANDSHAKEMESSAGE_SERVERHELLO']._serialized_end=62703
+ _globals['_HANDSHAKEMESSAGE_HANDSHAKEPQMODE']._serialized_start=62706
+ _globals['_HANDSHAKEMESSAGE_HANDSHAKEPQMODE']._serialized_end=62874
+ _globals['_HATCHMETADATASYNC']._serialized_start=62876
+ _globals['_HATCHMETADATASYNC']._serialized_end=62949
+ _globals['_HISTORYSYNC']._serialized_start=62952
+ _globals['_HISTORYSYNC']._serialized_end=64006
+ _globals['_HISTORYSYNC_BOTAIWAITLISTSTATE']._serialized_start=63810
+ _globals['_HISTORYSYNC_BOTAIWAITLISTSTATE']._serialized_end=63865
+ _globals['_HISTORYSYNC_HISTORYSYNCTYPE']._serialized_start=63868
+ _globals['_HISTORYSYNC_HISTORYSYNCTYPE']._serialized_end=64006
+ _globals['_HISTORYSYNCMSG']._serialized_start=64008
+ _globals['_HISTORYSYNCMSG']._serialized_end=64087
+ _globals['_HYDRATEDTEMPLATEBUTTON']._serialized_start=64090
+ _globals['_HYDRATEDTEMPLATEBUTTON']._serialized_end=64755
+ _globals['_HYDRATEDTEMPLATEBUTTON_HYDRATEDCALLBUTTON']._serialized_start=64366
+ _globals['_HYDRATEDTEMPLATEBUTTON_HYDRATEDCALLBUTTON']._serialized_end=64428
+ _globals['_HYDRATEDTEMPLATEBUTTON_HYDRATEDQUICKREPLYBUTTON']._serialized_start=64430
+ _globals['_HYDRATEDTEMPLATEBUTTON_HYDRATEDQUICKREPLYBUTTON']._serialized_end=64489
+ _globals['_HYDRATEDTEMPLATEBUTTON_HYDRATEDURLBUTTON']._serialized_start=64492
+ _globals['_HYDRATEDTEMPLATEBUTTON_HYDRATEDURLBUTTON']._serialized_end=64737
+ _globals['_HYDRATEDTEMPLATEBUTTON_HYDRATEDURLBUTTON_WEBVIEWPRESENTATIONTYPE']._serialized_start=64679
+ _globals['_HYDRATEDTEMPLATEBUTTON_HYDRATEDURLBUTTON_WEBVIEWPRESENTATIONTYPE']._serialized_end=64737
+ _globals['_IDENTITYKEYPAIRSTRUCTURE']._serialized_start=64757
+ _globals['_IDENTITYKEYPAIRSTRUCTURE']._serialized_end=64822
+ _globals['_IDENTITYVERIFICATIONSTATE']._serialized_start=64824
+ _globals['_IDENTITYVERIFICATIONSTATE']._serialized_end=64888
+ _globals['_INTHREADSURVEYMETADATA']._serialized_start=64891
+ _globals['_INTHREADSURVEYMETADATA']._serialized_end=65810
+ _globals['_INTHREADSURVEYMETADATA_INTHREADSURVEYOPTION']._serialized_start=65507
+ _globals['_INTHREADSURVEYMETADATA_INTHREADSURVEYOPTION']._serialized_end=65596
+ _globals['_INTHREADSURVEYMETADATA_INTHREADSURVEYPRIVACYSTATEMENTPART']._serialized_start=65598
+ _globals['_INTHREADSURVEYMETADATA_INTHREADSURVEYPRIVACYSTATEMENTPART']._serialized_end=65661
+ _globals['_INTHREADSURVEYMETADATA_INTHREADSURVEYQUESTION']._serialized_start=65664
+ _globals['_INTHREADSURVEYMETADATA_INTHREADSURVEYQUESTION']._serialized_end=65810
+ _globals['_INLINECONTACT']._serialized_start=65812
+ _globals['_INLINECONTACT']._serialized_end=65913
+ _globals['_INTERACTIVEANNOTATION']._serialized_start=65916
+ _globals['_INTERACTIVEANNOTATION']._serialized_end=66443
+ _globals['_INTERACTIVEANNOTATION_STATUSLINKTYPE']._serialized_start=66327
+ _globals['_INTERACTIVEANNOTATION_STATUSLINKTYPE']._serialized_end=66433
+ _globals['_INTERACTIVEMESSAGEADDITIONALMETADATA']._serialized_start=66445
+ _globals['_INTERACTIVEMESSAGEADDITIONALMETADATA']._serialized_end=66514
+ _globals['_KEEPINCHAT']._serialized_start=66517
+ _globals['_KEEPINCHAT']._serialized_end=66700
+ _globals['_KEYEXCHANGEMESSAGE']._serialized_start=66702
+ _globals['_KEYEXCHANGEMESSAGE']._serialized_end=66818
+ _globals['_KEYID']._serialized_start=66820
+ _globals['_KEYID']._serialized_end=66839
+ _globals['_LIDMIGRATIONMAPPINGSYNCMESSAGE']._serialized_start=66841
+ _globals['_LIDMIGRATIONMAPPINGSYNCMESSAGE']._serialized_end=66904
+ _globals['_LIDMIGRATIONMAPPING']._serialized_start=66906
+ _globals['_LIDMIGRATIONMAPPING']._serialized_end=66979
+ _globals['_LIDMIGRATIONMAPPINGSYNCPAYLOAD']._serialized_start=66981
+ _globals['_LIDMIGRATIONMAPPINGSYNCPAYLOAD']._serialized_end=67103
+ _globals['_LABYRINTHWACOMMAND']._serialized_start=67106
+ _globals['_LABYRINTHWACOMMAND']._serialized_end=67502
+ _globals['_LEGACYMESSAGE']._serialized_start=67505
+ _globals['_LEGACYMESSAGE']._serialized_end=67643
+ _globals['_LIMITSHARING']._serialized_start=67646
+ _globals['_LIMITSHARING']._serialized_end=67901
+ _globals['_LIMITSHARING_TRIGGERTYPE']._serialized_start=67809
+ _globals['_LIMITSHARING_TRIGGERTYPE']._serialized_end=67901
+ _globals['_LOCALIZEDNAME']._serialized_start=67903
+ _globals['_LOCALIZEDNAME']._serialized_end=67964
+ _globals['_LOCATION']._serialized_start=35198
+ _globals['_LOCATION']._serialized_end=35273
+ _globals['_MANDRAKEDECRYPTMEKINPUT']._serialized_start=68044
+ _globals['_MANDRAKEDECRYPTMEKINPUT']._serialized_end=68864
+ _globals['_MANDRAKEDECRYPTMEKINPUT_EPOCHSENDERPUBLICDATA']._serialized_start=68614
+ _globals['_MANDRAKEDECRYPTMEKINPUT_EPOCHSENDERPUBLICDATA']._serialized_end=68689
+ _globals['_MANDRAKEDECRYPTMEKINPUT_MMKSENDERPUBLICDATA']._serialized_start=68691
+ _globals['_MANDRAKEDECRYPTMEKINPUT_MMKSENDERPUBLICDATA']._serialized_end=68773
+ _globals['_MANDRAKEDECRYPTMEKINPUT_PRECOMPUTEDEPOCHSENDERPUBLICDATA']._serialized_start=68775
+ _globals['_MANDRAKEDECRYPTMEKINPUT_PRECOMPUTEDEPOCHSENDERPUBLICDATA']._serialized_end=68844
+ _globals['_MANDRAKEDECRYPTMEKRESULT']._serialized_start=68866
+ _globals['_MANDRAKEDECRYPTMEKRESULT']._serialized_end=68982
+ _globals['_MANDRAKEDECRYPTMEKSUCCESS']._serialized_start=68984
+ _globals['_MANDRAKEDECRYPTMEKSUCCESS']._serialized_end=69024
+ _globals['_MANDRAKEENCRYPTMEKINPUT']._serialized_start=69027
+ _globals['_MANDRAKEENCRYPTMEKINPUT']._serialized_end=69760
+ _globals['_MANDRAKEENCRYPTMEKINPUT_DETACHEDDEVICESENDER']._serialized_start=69421
+ _globals['_MANDRAKEENCRYPTMEKINPUT_DETACHEDDEVICESENDER']._serialized_end=69545
+ _globals['_MANDRAKEENCRYPTMEKINPUT_EPOCHSENDER']._serialized_start=69547
+ _globals['_MANDRAKEENCRYPTMEKINPUT_EPOCHSENDER']._serialized_end=69644
+ _globals['_MANDRAKEENCRYPTMEKINPUT_MMKSENDER']._serialized_start=69646
+ _globals['_MANDRAKEENCRYPTMEKINPUT_MMKSENDER']._serialized_end=69750
+ _globals['_MANDRAKEENCRYPTMEKRESULT']._serialized_start=69762
+ _globals['_MANDRAKEENCRYPTMEKRESULT']._serialized_end=69878
+ _globals['_MANDRAKEENCRYPTMEKSUCCESS']._serialized_start=69881
+ _globals['_MANDRAKEENCRYPTMEKSUCCESS']._serialized_end=70217
+ _globals['_MANDRAKEENCRYPTMEKSUCCESS_MEKDISTRIBUTIONSINGLERECIPIENT']._serialized_start=70043
+ _globals['_MANDRAKEENCRYPTMEKSUCCESS_MEKDISTRIBUTIONSINGLERECIPIENT']._serialized_end=70217
+ _globals['_MANDRAKEMEKBUNDLE']._serialized_start=70219
+ _globals['_MANDRAKEMEKBUNDLE']._serialized_end=70291
+ _globals['_MANDRAKEOPENEPOCHINPUT']._serialized_start=70294
+ _globals['_MANDRAKEOPENEPOCHINPUT']._serialized_end=70587
+ _globals['_MANDRAKEOPENEPOCHRESULT']._serialized_start=70589
+ _globals['_MANDRAKEOPENEPOCHRESULT']._serialized_end=70703
+ _globals['_MANDRAKEOPENEPOCHSUCCESS']._serialized_start=70706
+ _globals['_MANDRAKEOPENEPOCHSUCCESS']._serialized_end=70861
+ _globals['_MANDRAKEOPENINITIALEPOCHINPUT']._serialized_start=70864
+ _globals['_MANDRAKEOPENINITIALEPOCHINPUT']._serialized_end=71018
+ _globals['_MANDRAKEOPENINITIALEPOCHRESULT']._serialized_start=71020
+ _globals['_MANDRAKEOPENINITIALEPOCHRESULT']._serialized_end=71141
+ _globals['_MANDRAKEVALIDATENEWMMKFROMDETACHEDDEVICEINPUT']._serialized_start=71144
+ _globals['_MANDRAKEVALIDATENEWMMKFROMDETACHEDDEVICEINPUT']._serialized_end=71321
+ _globals['_MANDRAKEVALIDATENEWMMKFROMMAILBOXINPUT']._serialized_start=71324
+ _globals['_MANDRAKEVALIDATENEWMMKFROMMAILBOXINPUT']._serialized_end=71544
+ _globals['_MANDRAKEVALIDATENEWMMKRESULT']._serialized_start=71546
+ _globals['_MANDRAKEVALIDATENEWMMKRESULT']._serialized_end=71627
+ _globals['_MEDIADATA']._serialized_start=71629
+ _globals['_MEDIADATA']._serialized_end=71659
+ _globals['_MEDIADOMAININFO']._serialized_start=71661
+ _globals['_MEDIADOMAININFO']._serialized_end=71750
+ _globals['_MEDIAENTRY']._serialized_start=71753
+ _globals['_MEDIAENTRY']._serialized_end=72450
+ _globals['_MEDIAENTRY_DOWNLOADABLETHUMBNAIL']._serialized_start=72237
+ _globals['_MEDIAENTRY_DOWNLOADABLETHUMBNAIL']._serialized_end=72386
+ _globals['_MEDIAENTRY_PROGRESSIVEJPEGDETAILS']._serialized_start=72388
+ _globals['_MEDIAENTRY_PROGRESSIVEJPEGDETAILS']._serialized_end=72450
+ _globals['_MEDIANOTIFYMESSAGE']._serialized_start=72452
+ _globals['_MEDIANOTIFYMESSAGE']._serialized_end=72539
+ _globals['_MEDIARETRYNOTIFICATION']._serialized_start=72542
+ _globals['_MEDIARETRYNOTIFICATION']._serialized_end=72771
+ _globals['_MEDIARETRYNOTIFICATION_RESULTTYPE']._serialized_start=72690
+ _globals['_MEDIARETRYNOTIFICATION_RESULTTYPE']._serialized_end=72771
+ _globals['_MEKBUNDLE']._serialized_start=72773
+ _globals['_MEKBUNDLE']._serialized_end=72832
+ _globals['_MEMBERLABEL']._serialized_start=72834
+ _globals['_MEMBERLABEL']._serialized_end=72886
+ _globals['_MENTION']._serialized_start=72888
+ _globals['_MENTION']._serialized_end=73004
+ _globals['_MERKLEMEMBERSHIPPROOF']._serialized_start=73006
+ _globals['_MERKLEMEMBERSHIPPROOF']._serialized_end=73098
+ _globals['_MESSAGE']._serialized_start=73102
+ _globals['_MESSAGE']._serialized_end=123953
+ _globals['_MESSAGE_ALBUMMESSAGE']._serialized_start=80662
+ _globals['_MESSAGE_ALBUMMESSAGE']._serialized_end=80776
+ _globals['_MESSAGE_APPSTATEFATALEXCEPTIONNOTIFICATION']._serialized_start=80778
+ _globals['_MESSAGE_APPSTATEFATALEXCEPTIONNOTIFICATION']._serialized_end=80858
+ _globals['_MESSAGE_APPSTATESYNCKEY']._serialized_start=80860
+ _globals['_MESSAGE_APPSTATESYNCKEY']._serialized_end=80985
+ _globals['_MESSAGE_APPSTATESYNCKEYDATA']._serialized_start=80987
+ _globals['_MESSAGE_APPSTATESYNCKEYDATA']._serialized_end=81111
+ _globals['_MESSAGE_APPSTATESYNCKEYFINGERPRINT']._serialized_start=81113
+ _globals['_MESSAGE_APPSTATESYNCKEYFINGERPRINT']._serialized_end=81205
+ _globals['_MESSAGE_APPSTATESYNCKEYID']._serialized_start=81207
+ _globals['_MESSAGE_APPSTATESYNCKEYID']._serialized_end=81241
+ _globals['_MESSAGE_APPSTATESYNCKEYREQUEST']._serialized_start=81243
+ _globals['_MESSAGE_APPSTATESYNCKEYREQUEST']._serialized_end=81320
+ _globals['_MESSAGE_APPSTATESYNCKEYSHARE']._serialized_start=81322
+ _globals['_MESSAGE_APPSTATESYNCKEYSHARE']._serialized_end=81393
+ _globals['_MESSAGE_AUDIOMESSAGE']._serialized_start=81396
+ _globals['_MESSAGE_AUDIOMESSAGE']._serialized_end=81757
+ _globals['_MESSAGE_BCALLMESSAGE']._serialized_start=81760
+ _globals['_MESSAGE_BCALLMESSAGE']._serialized_end=81938
+ _globals['_MESSAGE_BCALLMESSAGE_MEDIATYPE']._serialized_start=81892
+ _globals['_MESSAGE_BCALLMESSAGE_MEDIATYPE']._serialized_end=81938
+ _globals['_MESSAGE_BOTHISTORYSHARESYNCMETADATA']._serialized_start=81941
+ _globals['_MESSAGE_BOTHISTORYSHARESYNCMETADATA']._serialized_end=82097
+ _globals['_MESSAGE_BUTTONSMESSAGE']._serialized_start=82100
+ _globals['_MESSAGE_BUTTONSMESSAGE']._serialized_end=83064
+ _globals['_MESSAGE_BUTTONSMESSAGE_BUTTON']._serialized_start=82579
+ _globals['_MESSAGE_BUTTONSMESSAGE_BUTTON']._serialized_end=82956
+ _globals['_MESSAGE_BUTTONSMESSAGE_BUTTON_BUTTONTEXT']._serialized_start=82819
+ _globals['_MESSAGE_BUTTONSMESSAGE_BUTTON_BUTTONTEXT']._serialized_end=82852
+ _globals['_MESSAGE_BUTTONSMESSAGE_BUTTON_NATIVEFLOWINFO']._serialized_start=82854
+ _globals['_MESSAGE_BUTTONSMESSAGE_BUTTON_NATIVEFLOWINFO']._serialized_end=82904
+ _globals['_MESSAGE_BUTTONSMESSAGE_BUTTON_TYPE']._serialized_start=82906
+ _globals['_MESSAGE_BUTTONSMESSAGE_BUTTON_TYPE']._serialized_end=82956
+ _globals['_MESSAGE_BUTTONSMESSAGE_HEADERTYPE']._serialized_start=82958
+ _globals['_MESSAGE_BUTTONSMESSAGE_HEADERTYPE']._serialized_end=83054
+ _globals['_MESSAGE_BUTTONSRESPONSEMESSAGE']._serialized_start=83067
+ _globals['_MESSAGE_BUTTONSRESPONSEMESSAGE']._serialized_end=83304
+ _globals['_MESSAGE_BUTTONSRESPONSEMESSAGE_TYPE']._serialized_start=83255
+ _globals['_MESSAGE_BUTTONSRESPONSEMESSAGE_TYPE']._serialized_end=83292
+ _globals['_MESSAGE_CALL']._serialized_start=83307
+ _globals['_MESSAGE_CALL']._serialized_end=83662
+ _globals['_MESSAGE_CALLLOGMESSAGE']._serialized_start=83665
+ _globals['_MESSAGE_CALLLOGMESSAGE']._serialized_end=84236
+ _globals['_MESSAGE_CALLLOGMESSAGE_CALLPARTICIPANT']._serialized_start=83922
+ _globals['_MESSAGE_CALLLOGMESSAGE_CALLPARTICIPANT']._serialized_end=84019
+ _globals['_MESSAGE_CALLLOGMESSAGE_CALLOUTCOME']._serialized_start=84022
+ _globals['_MESSAGE_CALLLOGMESSAGE_CALLOUTCOME']._serialized_end=84175
+ _globals['_MESSAGE_CALLLOGMESSAGE_CALLTYPE']._serialized_start=25047
+ _globals['_MESSAGE_CALLLOGMESSAGE_CALLTYPE']._serialized_end=25106
+ _globals['_MESSAGE_CANCELPAYMENTREQUESTMESSAGE']._serialized_start=84238
+ _globals['_MESSAGE_CANCELPAYMENTREQUESTMESSAGE']._serialized_end=84302
+ _globals['_MESSAGE_CHAT']._serialized_start=84304
+ _globals['_MESSAGE_CHAT']._serialized_end=84343
+ _globals['_MESSAGE_CHATCUSTOMIMAGEWALLPAPER']._serialized_start=84345
+ _globals['_MESSAGE_CHATCUSTOMIMAGEWALLPAPER']._serialized_end=84470
+ _globals['_MESSAGE_CHATDEFAULTWALLPAPER']._serialized_start=84472
+ _globals['_MESSAGE_CHATDEFAULTWALLPAPER']._serialized_end=84519
+ _globals['_MESSAGE_CHATSOLIDCOLORWALLPAPER']._serialized_start=84521
+ _globals['_MESSAGE_CHATSOLIDCOLORWALLPAPER']._serialized_end=84610
+ _globals['_MESSAGE_CHATSTOCKIMAGEWALLPAPER']._serialized_start=84612
+ _globals['_MESSAGE_CHATSTOCKIMAGEWALLPAPER']._serialized_end=84677
+ _globals['_MESSAGE_CHATTHEMESETTING']._serialized_start=84680
+ _globals['_MESSAGE_CHATTHEMESETTING']._serialized_end=85047
+ _globals['_MESSAGE_CLOUDAPITHREADCONTROLNOTIFICATION']._serialized_start=85050
+ _globals['_MESSAGE_CLOUDAPITHREADCONTROLNOTIFICATION']._serialized_end=85607
+ _globals['_MESSAGE_CLOUDAPITHREADCONTROLNOTIFICATION_CLOUDAPITHREADCONTROLNOTIFICATIONCONTENT']._serialized_start=85426
+ _globals['_MESSAGE_CLOUDAPITHREADCONTROLNOTIFICATION_CLOUDAPITHREADCONTROLNOTIFICATIONCONTENT']._serialized_end=85520
+ _globals['_MESSAGE_CLOUDAPITHREADCONTROLNOTIFICATION_CLOUDAPITHREADCONTROL']._serialized_start=85522
+ _globals['_MESSAGE_CLOUDAPITHREADCONTROLNOTIFICATION_CLOUDAPITHREADCONTROL']._serialized_end=85607
+ _globals['_MESSAGE_COMMENTMESSAGE']._serialized_start=85609
+ _globals['_MESSAGE_COMMENTMESSAGE']._serialized_end=85709
+ _globals['_MESSAGE_CONDITIONALREVEALMESSAGE']._serialized_start=85712
+ _globals['_MESSAGE_CONDITIONALREVEALMESSAGE']._serialized_end=85973
+ _globals['_MESSAGE_CONDITIONALREVEALMESSAGE_CONDITIONALREVEALMESSAGETYPE']._serialized_start=85907
+ _globals['_MESSAGE_CONDITIONALREVEALMESSAGE_CONDITIONALREVEALMESSAGETYPE']._serialized_end=85973
+ _globals['_MESSAGE_CONTACTMESSAGE']._serialized_start=85975
+ _globals['_MESSAGE_CONTACTMESSAGE']._serialized_end=86094
+ _globals['_MESSAGE_CONTACTSARRAYMESSAGE']._serialized_start=86097
+ _globals['_MESSAGE_CONTACTSARRAYMESSAGE']._serialized_end=86236
+ _globals['_MESSAGE_DECLINEPAYMENTREQUESTMESSAGE']._serialized_start=86238
+ _globals['_MESSAGE_DECLINEPAYMENTREQUESTMESSAGE']._serialized_end=86303
+ _globals['_MESSAGE_DEVICESENTMESSAGE']._serialized_start=86305
+ _globals['_MESSAGE_DEVICESENTMESSAGE']._serialized_end=86399
+ _globals['_MESSAGE_DOCUMENTMESSAGE']._serialized_start=86402
+ _globals['_MESSAGE_DOCUMENTMESSAGE']._serialized_end=86895
+ _globals['_MESSAGE_ENCCOMMENTMESSAGE']._serialized_start=86897
+ _globals['_MESSAGE_ENCCOMMENTMESSAGE']._serialized_end=86999
+ _globals['_MESSAGE_ENCEVENTRESPONSEMESSAGE']._serialized_start=87001
+ _globals['_MESSAGE_ENCEVENTRESPONSEMESSAGE']._serialized_end=87116
+ _globals['_MESSAGE_ENCREACTIONMESSAGE']._serialized_start=87118
+ _globals['_MESSAGE_ENCREACTIONMESSAGE']._serialized_end=87221
+ _globals['_MESSAGE_EVENTINVITEMESSAGE']._serialized_start=87224
+ _globals['_MESSAGE_EVENTINVITEMESSAGE']._serialized_end=87439
+ _globals['_MESSAGE_EVENTMESSAGE']._serialized_start=87442
+ _globals['_MESSAGE_EVENTMESSAGE']._serialized_end=87762
+ _globals['_MESSAGE_EVENTRESPONSEMESSAGE']._serialized_start=87765
+ _globals['_MESSAGE_EVENTRESPONSEMESSAGE']._serialized_end=87980
+ _globals['_MESSAGE_EVENTRESPONSEMESSAGE_EVENTRESPONSETYPE']._serialized_start=87911
+ _globals['_MESSAGE_EVENTRESPONSEMESSAGE_EVENTRESPONSETYPE']._serialized_end=87980
+ _globals['_MESSAGE_EXTENDEDTEXTMESSAGE']._serialized_start=87983
+ _globals['_MESSAGE_EXTENDEDTEXTMESSAGE']._serialized_end=89582
+ _globals['_MESSAGE_EXTENDEDTEXTMESSAGE_FONTTYPE']._serialized_start=89248
+ _globals['_MESSAGE_EXTENDEDTEXTMESSAGE_FONTTYPE']._serialized_end=89412
+ _globals['_MESSAGE_EXTENDEDTEXTMESSAGE_INVITELINKGROUPTYPE']._serialized_start=89414
+ _globals['_MESSAGE_EXTENDEDTEXTMESSAGE_INVITELINKGROUPTYPE']._serialized_end=89486
+ _globals['_MESSAGE_EXTENDEDTEXTMESSAGE_PREVIEWTYPE']._serialized_start=89488
+ _globals['_MESSAGE_EXTENDEDTEXTMESSAGE_PREVIEWTYPE']._serialized_end=89582
+ _globals['_MESSAGE_FULLHISTORYSYNCONDEMANDCONFIG']._serialized_start=89584
+ _globals['_MESSAGE_FULLHISTORYSYNCONDEMANDCONFIG']._serialized_end=89674
+ _globals['_MESSAGE_FULLHISTORYSYNCONDEMANDREQUESTMETADATA']._serialized_start=89676
+ _globals['_MESSAGE_FULLHISTORYSYNCONDEMANDREQUESTMETADATA']._serialized_end=89786
+ _globals['_MESSAGE_FUTUREPROOFMESSAGE']._serialized_start=89788
+ _globals['_MESSAGE_FUTUREPROOFMESSAGE']._serialized_end=89844
+ _globals['_MESSAGE_GROUPINVITEMESSAGE']._serialized_start=89847
+ _globals['_MESSAGE_GROUPINVITEMESSAGE']._serialized_end=90139
+ _globals['_MESSAGE_GROUPINVITEMESSAGE_GROUPTYPE']._serialized_start=90103
+ _globals['_MESSAGE_GROUPINVITEMESSAGE_GROUPTYPE']._serialized_end=90139
+ _globals['_MESSAGE_HIGHLYSTRUCTUREDMESSAGE']._serialized_start=90142
+ _globals['_MESSAGE_HIGHLYSTRUCTUREDMESSAGE']._serialized_end=91622
+ _globals['_MESSAGE_HIGHLYSTRUCTUREDMESSAGE_HSMLOCALIZABLEPARAMETER']._serialized_start=90466
+ _globals['_MESSAGE_HIGHLYSTRUCTUREDMESSAGE_HSMLOCALIZABLEPARAMETER']._serialized_end=91622
+ _globals['_MESSAGE_HIGHLYSTRUCTUREDMESSAGE_HSMLOCALIZABLEPARAMETER_HSMCURRENCY']._serialized_start=90708
+ _globals['_MESSAGE_HIGHLYSTRUCTUREDMESSAGE_HSMLOCALIZABLEPARAMETER_HSMCURRENCY']._serialized_end=90763
+ _globals['_MESSAGE_HIGHLYSTRUCTUREDMESSAGE_HSMLOCALIZABLEPARAMETER_HSMDATETIME']._serialized_start=90766
+ _globals['_MESSAGE_HIGHLYSTRUCTUREDMESSAGE_HSMLOCALIZABLEPARAMETER_HSMDATETIME']._serialized_end=91608
+ _globals['_MESSAGE_HIGHLYSTRUCTUREDMESSAGE_HSMLOCALIZABLEPARAMETER_HSMDATETIME_HSMDATETIMECOMPONENT']._serialized_start=91024
+ _globals['_MESSAGE_HIGHLYSTRUCTUREDMESSAGE_HSMLOCALIZABLEPARAMETER_HSMDATETIME_HSMDATETIMECOMPONENT']._serialized_end=91548
+ _globals['_MESSAGE_HIGHLYSTRUCTUREDMESSAGE_HSMLOCALIZABLEPARAMETER_HSMDATETIME_HSMDATETIMECOMPONENT_CALENDARTYPE']._serialized_start=91393
+ _globals['_MESSAGE_HIGHLYSTRUCTUREDMESSAGE_HSMLOCALIZABLEPARAMETER_HSMDATETIME_HSMDATETIMECOMPONENT_CALENDARTYPE']._serialized_end=91439
+ _globals['_MESSAGE_HIGHLYSTRUCTUREDMESSAGE_HSMLOCALIZABLEPARAMETER_HSMDATETIME_HSMDATETIMECOMPONENT_DAYOFWEEKTYPE']._serialized_start=91441
+ _globals['_MESSAGE_HIGHLYSTRUCTUREDMESSAGE_HSMLOCALIZABLEPARAMETER_HSMDATETIME_HSMDATETIMECOMPONENT_DAYOFWEEKTYPE']._serialized_end=91548
+ _globals['_MESSAGE_HIGHLYSTRUCTUREDMESSAGE_HSMLOCALIZABLEPARAMETER_HSMDATETIME_HSMDATETIMEUNIXEPOCH']._serialized_start=91550
+ _globals['_MESSAGE_HIGHLYSTRUCTUREDMESSAGE_HSMLOCALIZABLEPARAMETER_HSMDATETIME_HSMDATETIMEUNIXEPOCH']._serialized_end=91591
+ _globals['_MESSAGE_HISTORYSHAREMESSAGEENTRY']._serialized_start=91624
+ _globals['_MESSAGE_HISTORYSHAREMESSAGEENTRY']._serialized_end=91696
+ _globals['_MESSAGE_HISTORYSYNCMESSAGEACCESSSTATUS']._serialized_start=91698
+ _globals['_MESSAGE_HISTORYSYNCMESSAGEACCESSSTATUS']._serialized_end=91761
+ _globals['_MESSAGE_HISTORYSYNCNOTIFICATION']._serialized_start=91764
+ _globals['_MESSAGE_HISTORYSYNCNOTIFICATION']._serialized_end=92327
+ _globals['_MESSAGE_IMAGEMESSAGE']._serialized_start=92330
+ _globals['_MESSAGE_IMAGEMESSAGE']._serialized_end=93254
+ _globals['_MESSAGE_IMAGEMESSAGE_IMAGESOURCETYPE']._serialized_start=93158
+ _globals['_MESSAGE_IMAGEMESSAGE_IMAGESOURCETYPE']._serialized_end=93254
+ _globals['_MESSAGE_INITIALSECURITYNOTIFICATIONSETTINGSYNC']._serialized_start=93256
+ _globals['_MESSAGE_INITIALSECURITYNOTIFICATIONSETTINGSYNC']._serialized_end=93333
+ _globals['_MESSAGE_INTERACTIVEMESSAGE']._serialized_start=93336
+ _globals['_MESSAGE_INTERACTIVEMESSAGE']._serialized_end=95512
+ _globals['_MESSAGE_INTERACTIVEMESSAGE_BLOKSWIDGET']._serialized_start=94036
+ _globals['_MESSAGE_INTERACTIVEMESSAGE_BLOKSWIDGET']._serialized_end=94109
+ _globals['_MESSAGE_INTERACTIVEMESSAGE_BODY']._serialized_start=94111
+ _globals['_MESSAGE_INTERACTIVEMESSAGE_BODY']._serialized_end=94131
+ _globals['_MESSAGE_INTERACTIVEMESSAGE_CAROUSELMESSAGE']._serialized_start=94134
+ _globals['_MESSAGE_INTERACTIVEMESSAGE_CAROUSELMESSAGE']._serialized_end=94412
+ _globals['_MESSAGE_INTERACTIVEMESSAGE_CAROUSELMESSAGE_CAROUSELCARDTYPE']._serialized_start=94345
+ _globals['_MESSAGE_INTERACTIVEMESSAGE_CAROUSELMESSAGE_CAROUSELCARDTYPE']._serialized_end=94412
+ _globals['_MESSAGE_INTERACTIVEMESSAGE_COLLECTIONMESSAGE']._serialized_start=94414
+ _globals['_MESSAGE_INTERACTIVEMESSAGE_COLLECTIONMESSAGE']._serialized_end=94488
+ _globals['_MESSAGE_INTERACTIVEMESSAGE_FOOTER']._serialized_start=94490
+ _globals['_MESSAGE_INTERACTIVEMESSAGE_FOOTER']._serialized_end=94605
+ _globals['_MESSAGE_INTERACTIVEMESSAGE_HEADER']._serialized_start=94608
+ _globals['_MESSAGE_INTERACTIVEMESSAGE_HEADER']._serialized_end=95078
+ _globals['_MESSAGE_INTERACTIVEMESSAGE_NATIVEFLOWMESSAGE']._serialized_start=95081
+ _globals['_MESSAGE_INTERACTIVEMESSAGE_NATIVEFLOWMESSAGE']._serialized_end=95304
+ _globals['_MESSAGE_INTERACTIVEMESSAGE_NATIVEFLOWMESSAGE_NATIVEFLOWBUTTON']._serialized_start=95246
+ _globals['_MESSAGE_INTERACTIVEMESSAGE_NATIVEFLOWMESSAGE_NATIVEFLOWBUTTON']._serialized_end=95304
+ _globals['_MESSAGE_INTERACTIVEMESSAGE_SHOPMESSAGE']._serialized_start=95307
+ _globals['_MESSAGE_INTERACTIVEMESSAGE_SHOPMESSAGE']._serialized_end=95490
+ _globals['_MESSAGE_INTERACTIVEMESSAGE_SHOPMESSAGE_SURFACE']._serialized_start=95436
+ _globals['_MESSAGE_INTERACTIVEMESSAGE_SHOPMESSAGE_SURFACE']._serialized_end=95490
+ _globals['_MESSAGE_INTERACTIVERESPONSEMESSAGE']._serialized_start=95515
+ _globals['_MESSAGE_INTERACTIVERESPONSEMESSAGE']._serialized_end=96021
+ _globals['_MESSAGE_INTERACTIVERESPONSEMESSAGE_BODY']._serialized_start=95764
+ _globals['_MESSAGE_INTERACTIVERESPONSEMESSAGE_BODY']._serialized_end=95908
+ _globals['_MESSAGE_INTERACTIVERESPONSEMESSAGE_BODY_FORMAT']._serialized_start=95869
+ _globals['_MESSAGE_INTERACTIVERESPONSEMESSAGE_BODY_FORMAT']._serialized_end=95908
+ _globals['_MESSAGE_INTERACTIVERESPONSEMESSAGE_NATIVEFLOWRESPONSEMESSAGE']._serialized_start=95910
+ _globals['_MESSAGE_INTERACTIVERESPONSEMESSAGE_NATIVEFLOWRESPONSEMESSAGE']._serialized_end=95991
+ _globals['_MESSAGE_INVOICEMESSAGE']._serialized_start=96024
+ _globals['_MESSAGE_INVOICEMESSAGE']._serialized_end=96399
+ _globals['_MESSAGE_INVOICEMESSAGE_ATTACHMENTTYPE']._serialized_start=96363
+ _globals['_MESSAGE_INVOICEMESSAGE_ATTACHMENTTYPE']._serialized_end=96399
+ _globals['_MESSAGE_KEEPINCHATMESSAGE']._serialized_start=96401
+ _globals['_MESSAGE_KEEPINCHATMESSAGE']._serialized_end=96514
+ _globals['_MESSAGE_LINKPREVIEWMETADATA']._serialized_start=96517
+ _globals['_MESSAGE_LINKPREVIEWMETADATA']._serialized_end=97036
+ _globals['_MESSAGE_LINKPREVIEWMETADATA_SOCIALMEDIAPOSTTYPE']._serialized_start=96931
+ _globals['_MESSAGE_LINKPREVIEWMETADATA_SOCIALMEDIAPOSTTYPE']._serialized_end=97036
+ _globals['_MESSAGE_LISTMESSAGE']._serialized_start=97039
+ _globals['_MESSAGE_LISTMESSAGE']._serialized_end=97934
+ _globals['_MESSAGE_LISTMESSAGE_PRODUCT']._serialized_start=97361
+ _globals['_MESSAGE_LISTMESSAGE_PRODUCT']._serialized_end=97389
+ _globals['_MESSAGE_LISTMESSAGE_PRODUCTLISTHEADERIMAGE']._serialized_start=97391
+ _globals['_MESSAGE_LISTMESSAGE_PRODUCTLISTHEADERIMAGE']._serialized_end=97457
+ _globals['_MESSAGE_LISTMESSAGE_PRODUCTLISTINFO']._serialized_start=97460
+ _globals['_MESSAGE_LISTMESSAGE_PRODUCTLISTINFO']._serialized_end=97649
+ _globals['_MESSAGE_LISTMESSAGE_PRODUCTSECTION']._serialized_start=97651
+ _globals['_MESSAGE_LISTMESSAGE_PRODUCTSECTION']._serialized_end=97739
+ _globals['_MESSAGE_LISTMESSAGE_ROW']._serialized_start=97741
+ _globals['_MESSAGE_LISTMESSAGE_ROW']._serialized_end=97797
+ _globals['_MESSAGE_LISTMESSAGE_SECTION']._serialized_start=97799
+ _globals['_MESSAGE_LISTMESSAGE_SECTION']._serialized_end=97872
+ _globals['_MESSAGE_LISTMESSAGE_LISTTYPE']._serialized_start=97874
+ _globals['_MESSAGE_LISTMESSAGE_LISTTYPE']._serialized_end=97934
+ _globals['_MESSAGE_LISTRESPONSEMESSAGE']._serialized_start=97937
+ _globals['_MESSAGE_LISTRESPONSEMESSAGE']._serialized_end=98276
+ _globals['_MESSAGE_LISTRESPONSEMESSAGE_SINGLESELECTREPLY']._serialized_start=98190
+ _globals['_MESSAGE_LISTRESPONSEMESSAGE_SINGLESELECTREPLY']._serialized_end=98232
+ _globals['_MESSAGE_LISTRESPONSEMESSAGE_LISTTYPE']._serialized_start=97874
+ _globals['_MESSAGE_LISTRESPONSEMESSAGE_LISTTYPE']._serialized_end=97916
+ _globals['_MESSAGE_LIVELOCATIONMESSAGE']._serialized_start=98279
+ _globals['_MESSAGE_LIVELOCATIONMESSAGE']._serialized_end=98568
+ _globals['_MESSAGE_LOCATIONMESSAGE']._serialized_start=98571
+ _globals['_MESSAGE_LOCATIONMESSAGE']._serialized_end=98872
+ _globals['_MESSAGE_MMSTHUMBNAILMETADATA']._serialized_start=98875
+ _globals['_MESSAGE_MMSTHUMBNAILMETADATA']._serialized_end=99073
+ _globals['_MESSAGE_MARKASVERIFIEDACTION']._serialized_start=99075
+ _globals['_MESSAGE_MARKASVERIFIEDACTION']._serialized_end=99186
+ _globals['_MESSAGE_MESSAGEHISTORYBUNDLE']._serialized_start=99189
+ _globals['_MESSAGE_MESSAGEHISTORYBUNDLE']._serialized_end=99455
+ _globals['_MESSAGE_MESSAGEHISTORYMETADATA']._serialized_start=99458
+ _globals['_MESSAGE_MESSAGEHISTORYMETADATA']._serialized_end=99639
+ _globals['_MESSAGE_MESSAGEHISTORYNOTICE']._serialized_start=99642
+ _globals['_MESSAGE_MESSAGEHISTORYNOTICE']._serialized_end=99866
+ _globals['_MESSAGE_MUSICMESSAGE']._serialized_start=99869
+ _globals['_MESSAGE_MUSICMESSAGE']._serialized_end=100072
+ _globals['_MESSAGE_MUSICMESSAGE_MUSICMESSAGESTYLE']._serialized_start=100029
+ _globals['_MESSAGE_MUSICMESSAGE_MUSICMESSAGESTYLE']._serialized_end=100072
+ _globals['_MESSAGE_NEWSLETTERADMININVITEMESSAGE']._serialized_start=100075
+ _globals['_MESSAGE_NEWSLETTERADMININVITEMESSAGE']._serialized_end=100262
+ _globals['_MESSAGE_NEWSLETTERFOLLOWERINVITEMESSAGE']._serialized_start=100265
+ _globals['_MESSAGE_NEWSLETTERFOLLOWERINVITEMESSAGE']._serialized_end=100429
+ _globals['_MESSAGE_ORDERMESSAGE']._serialized_start=100432
+ _globals['_MESSAGE_ORDERMESSAGE']._serialized_end=100976
+ _globals['_MESSAGE_ORDERMESSAGE_ORDERSTATUS']._serialized_start=100893
+ _globals['_MESSAGE_ORDERMESSAGE_ORDERSTATUS']._serialized_end=100947
+ _globals['_MESSAGE_ORDERMESSAGE_ORDERSURFACE']._serialized_start=100949
+ _globals['_MESSAGE_ORDERMESSAGE_ORDERSURFACE']._serialized_end=100976
+ _globals['_MESSAGE_PAYMENTEXTENDEDMETADATA']._serialized_start=100978
+ _globals['_MESSAGE_PAYMENTEXTENDEDMETADATA']._serialized_end=101062
+ _globals['_MESSAGE_PAYMENTINVITEMESSAGE']._serialized_start=101065
+ _globals['_MESSAGE_PAYMENTINVITEMESSAGE']._serialized_end=101409
+ _globals['_MESSAGE_PAYMENTINVITEMESSAGE_INVITETYPE']._serialized_start=101305
+ _globals['_MESSAGE_PAYMENTINVITEMESSAGE_INVITETYPE']._serialized_end=101342
+ _globals['_MESSAGE_PAYMENTINVITEMESSAGE_SERVICETYPE']._serialized_start=101344
+ _globals['_MESSAGE_PAYMENTINVITEMESSAGE_SERVICETYPE']._serialized_end=101409
+ _globals['_MESSAGE_PAYMENTLINKMETADATA']._serialized_start=101412
+ _globals['_MESSAGE_PAYMENTLINKMETADATA']._serialized_end=101916
+ _globals['_MESSAGE_PAYMENTLINKMETADATA_PAYMENTLINKBUTTON']._serialized_start=101658
+ _globals['_MESSAGE_PAYMENTLINKMETADATA_PAYMENTLINKBUTTON']._serialized_end=101698
+ _globals['_MESSAGE_PAYMENTLINKMETADATA_PAYMENTLINKHEADER']._serialized_start=101701
+ _globals['_MESSAGE_PAYMENTLINKMETADATA_PAYMENTLINKHEADER']._serialized_end=101873
+ _globals['_MESSAGE_PAYMENTLINKMETADATA_PAYMENTLINKHEADER_PAYMENTLINKHEADERTYPE']._serialized_start=101821
+ _globals['_MESSAGE_PAYMENTLINKMETADATA_PAYMENTLINKHEADER_PAYMENTLINKHEADERTYPE']._serialized_end=101873
+ _globals['_MESSAGE_PAYMENTLINKMETADATA_PAYMENTLINKPROVIDER']._serialized_start=101875
+ _globals['_MESSAGE_PAYMENTLINKMETADATA_PAYMENTLINKPROVIDER']._serialized_end=101916
+ _globals['_MESSAGE_PAYMENTREMINDERMESSAGE']._serialized_start=101919
+ _globals['_MESSAGE_PAYMENTREMINDERMESSAGE']._serialized_end=102485
+ _globals['_MESSAGE_PAYMENTREMINDERMESSAGE_REMINDERFREQUENCY']._serialized_start=102245
+ _globals['_MESSAGE_PAYMENTREMINDERMESSAGE_REMINDERFREQUENCY']._serialized_end=102351
+ _globals['_MESSAGE_PAYMENTREMINDERMESSAGE_REMINDERSTATUS']._serialized_start=102354
+ _globals['_MESSAGE_PAYMENTREMINDERMESSAGE_REMINDERSTATUS']._serialized_end=102485
+ _globals['_MESSAGE_PEERDATAOPERATIONREQUESTMESSAGE']._serialized_start=102488
+ _globals['_MESSAGE_PEERDATAOPERATIONREQUESTMESSAGE']._serialized_end=105296
+ _globals['_MESSAGE_PEERDATAOPERATIONREQUESTMESSAGE_BIZBROADCASTINSIGHTSCONTACTLISTREQUEST']._serialized_start=103927
+ _globals['_MESSAGE_PEERDATAOPERATIONREQUESTMESSAGE_BIZBROADCASTINSIGHTSCONTACTLISTREQUEST']._serialized_end=103987
+ _globals['_MESSAGE_PEERDATAOPERATIONREQUESTMESSAGE_BIZBROADCASTINSIGHTSREFRESHREQUEST']._serialized_start=103989
+ _globals['_MESSAGE_PEERDATAOPERATIONREQUESTMESSAGE_BIZBROADCASTINSIGHTSREFRESHREQUEST']._serialized_end=104045
+ _globals['_MESSAGE_PEERDATAOPERATIONREQUESTMESSAGE_COMPANIONCANONICALUSERNONCEFETCHREQUEST']._serialized_start=104047
+ _globals['_MESSAGE_PEERDATAOPERATIONREQUESTMESSAGE_COMPANIONCANONICALUSERNONCEFETCHREQUEST']._serialized_end=104117
+ _globals['_MESSAGE_PEERDATAOPERATIONREQUESTMESSAGE_FULLHISTORYSYNCONDEMANDREQUEST']._serialized_start=104120
+ _globals['_MESSAGE_PEERDATAOPERATIONREQUESTMESSAGE_FULLHISTORYSYNCONDEMANDREQUEST']._serialized_end=104391
+ _globals['_MESSAGE_PEERDATAOPERATIONREQUESTMESSAGE_GALAXYFLOWACTION']._serialized_start=104394
+ _globals['_MESSAGE_PEERDATAOPERATIONREQUESTMESSAGE_GALAXYFLOWACTION']._serialized_end=104668
+ _globals['_MESSAGE_PEERDATAOPERATIONREQUESTMESSAGE_GALAXYFLOWACTION_GALAXYFLOWACTIONTYPE']._serialized_start=104603
+ _globals['_MESSAGE_PEERDATAOPERATIONREQUESTMESSAGE_GALAXYFLOWACTION_GALAXYFLOWACTIONTYPE']._serialized_end=104668
+ _globals['_MESSAGE_PEERDATAOPERATIONREQUESTMESSAGE_HISTORYSYNCCHUNKRETRYREQUEST']._serialized_start=104671
+ _globals['_MESSAGE_PEERDATAOPERATIONREQUESTMESSAGE_HISTORYSYNCCHUNKRETRYREQUEST']._serialized_end=104828
+ _globals['_MESSAGE_PEERDATAOPERATIONREQUESTMESSAGE_HISTORYSYNCONDEMANDREQUEST']._serialized_start=104831
+ _globals['_MESSAGE_PEERDATAOPERATIONREQUESTMESSAGE_HISTORYSYNCONDEMANDREQUEST']._serialized_end=105029
+ _globals['_MESSAGE_PEERDATAOPERATIONREQUESTMESSAGE_PLACEHOLDERMESSAGERESENDREQUEST']._serialized_start=105031
+ _globals['_MESSAGE_PEERDATAOPERATIONREQUESTMESSAGE_PLACEHOLDERMESSAGERESENDREQUEST']._serialized_end=105106
+ _globals['_MESSAGE_PEERDATAOPERATIONREQUESTMESSAGE_REQUESTSTICKERREUPLOAD']._serialized_start=105108
+ _globals['_MESSAGE_PEERDATAOPERATIONREQUESTMESSAGE_REQUESTSTICKERREUPLOAD']._serialized_end=105152
+ _globals['_MESSAGE_PEERDATAOPERATIONREQUESTMESSAGE_REQUESTURLPREVIEW']._serialized_start=105154
+ _globals['_MESSAGE_PEERDATAOPERATIONREQUESTMESSAGE_REQUESTURLPREVIEW']._serialized_end=105214
+ _globals['_MESSAGE_PEERDATAOPERATIONREQUESTMESSAGE_SYNCDCOLLECTIONFATALRECOVERYREQUEST']._serialized_start=105216
+ _globals['_MESSAGE_PEERDATAOPERATIONREQUESTMESSAGE_SYNCDCOLLECTIONFATALRECOVERYREQUEST']._serialized_end=105296
+ _globals['_MESSAGE_PEERDATAOPERATIONREQUESTRESPONSEMESSAGE']._serialized_start=105299
+ _globals['_MESSAGE_PEERDATAOPERATIONREQUESTRESPONSEMESSAGE']._serialized_end=110293
+ _globals['_MESSAGE_PEERDATAOPERATIONREQUESTRESPONSEMESSAGE_PEERDATAOPERATIONRESULT']._serialized_start=105563
+ _globals['_MESSAGE_PEERDATAOPERATIONREQUESTRESPONSEMESSAGE_PEERDATAOPERATIONRESULT']._serialized_end=110293
+ _globals['_MESSAGE_PEERDATAOPERATIONREQUESTRESPONSEMESSAGE_PEERDATAOPERATIONRESULT_BIZBROADCASTINSIGHTSCONTACTLISTRESPONSE']._serialized_start=107447
+ _globals['_MESSAGE_PEERDATAOPERATIONREQUESTRESPONSEMESSAGE_PEERDATAOPERATIONRESULT_BIZBROADCASTINSIGHTSCONTACTLISTRESPONSE']._serialized_end=107664
+ _globals['_MESSAGE_PEERDATAOPERATIONREQUESTRESPONSEMESSAGE_PEERDATAOPERATIONRESULT_BIZBROADCASTINSIGHTSCONTACTSTATE']._serialized_start=107666
+ _globals['_MESSAGE_PEERDATAOPERATIONREQUESTRESPONSEMESSAGE_PEERDATAOPERATIONRESULT_BIZBROADCASTINSIGHTSCONTACTSTATE']._serialized_end=107775
+ _globals['_MESSAGE_PEERDATAOPERATIONREQUESTRESPONSEMESSAGE_PEERDATAOPERATIONRESULT_COMPANIONCANONICALUSERNONCEFETCHRESPONSE']._serialized_start=107777
+ _globals['_MESSAGE_PEERDATAOPERATIONREQUESTRESPONSEMESSAGE_PEERDATAOPERATIONRESULT_COMPANIONCANONICALUSERNONCEFETCHRESPONSE']._serialized_end=107872
+ _globals['_MESSAGE_PEERDATAOPERATIONREQUESTRESPONSEMESSAGE_PEERDATAOPERATIONRESULT_COMPANIONMETANONCEFETCHRESPONSE']._serialized_start=107874
+ _globals['_MESSAGE_PEERDATAOPERATIONREQUESTRESPONSEMESSAGE_PEERDATAOPERATIONRESULT_COMPANIONMETANONCEFETCHRESPONSE']._serialized_end=107922
+ _globals['_MESSAGE_PEERDATAOPERATIONREQUESTRESPONSEMESSAGE_PEERDATAOPERATIONRESULT_CONTACTREFRESHRESPONSE']._serialized_start=107925
+ _globals['_MESSAGE_PEERDATAOPERATIONREQUESTRESPONSEMESSAGE_PEERDATAOPERATIONRESULT_CONTACTREFRESHRESPONSE']._serialized_end=108058
+ _globals['_MESSAGE_PEERDATAOPERATIONREQUESTRESPONSEMESSAGE_PEERDATAOPERATIONRESULT_FLOWRESPONSESCSVBUNDLE']._serialized_start=108061
+ _globals['_MESSAGE_PEERDATAOPERATIONREQUESTRESPONSEMESSAGE_PEERDATAOPERATIONRESULT_FLOWRESPONSESCSVBUNDLE']._serialized_end=108302
+ _globals['_MESSAGE_PEERDATAOPERATIONREQUESTRESPONSEMESSAGE_PEERDATAOPERATIONRESULT_FULLHISTORYSYNCONDEMANDREQUESTRESPONSE']._serialized_start=108305
+ _globals['_MESSAGE_PEERDATAOPERATIONREQUESTRESPONSEMESSAGE_PEERDATAOPERATIONRESULT_FULLHISTORYSYNCONDEMANDREQUESTRESPONSE']._serialized_end=108570
+ _globals['_MESSAGE_PEERDATAOPERATIONREQUESTRESPONSEMESSAGE_PEERDATAOPERATIONRESULT_HISTORYSYNCCHUNKRETRYRESPONSE']._serialized_start=108573
+ _globals['_MESSAGE_PEERDATAOPERATIONREQUESTRESPONSEMESSAGE_PEERDATAOPERATIONRESULT_HISTORYSYNCCHUNKRETRYRESPONSE']._serialized_end=108856
+ _globals['_MESSAGE_PEERDATAOPERATIONREQUESTRESPONSEMESSAGE_PEERDATAOPERATIONRESULT_LINKPREVIEWRESPONSE']._serialized_start=108859
+ _globals['_MESSAGE_PEERDATAOPERATIONREQUESTRESPONSEMESSAGE_PEERDATAOPERATIONRESULT_LINKPREVIEWRESPONSE']._serialized_end=109619
+ _globals['_MESSAGE_PEERDATAOPERATIONREQUESTRESPONSEMESSAGE_PEERDATAOPERATIONRESULT_LINKPREVIEWRESPONSE_LINKPREVIEWHIGHQUALITYTHUMBNAIL']._serialized_start=109306
+ _globals['_MESSAGE_PEERDATAOPERATIONREQUESTRESPONSEMESSAGE_PEERDATAOPERATIONRESULT_LINKPREVIEWRESPONSE_LINKPREVIEWHIGHQUALITYTHUMBNAIL']._serialized_end=109488
+ _globals['_MESSAGE_PEERDATAOPERATIONREQUESTRESPONSEMESSAGE_PEERDATAOPERATIONRESULT_LINKPREVIEWRESPONSE_PAYMENTLINKPREVIEWMETADATA']._serialized_start=109491
+ _globals['_MESSAGE_PEERDATAOPERATIONREQUESTRESPONSEMESSAGE_PEERDATAOPERATIONRESULT_LINKPREVIEWRESPONSE_PAYMENTLINKPREVIEWMETADATA']._serialized_end=109619
+ _globals['_MESSAGE_PEERDATAOPERATIONREQUESTRESPONSEMESSAGE_PEERDATAOPERATIONRESULT_PLACEHOLDERMESSAGERESENDRESPONSE']._serialized_start=109621
+ _globals['_MESSAGE_PEERDATAOPERATIONREQUESTRESPONSEMESSAGE_PEERDATAOPERATIONRESULT_PLACEHOLDERMESSAGERESENDRESPONSE']._serialized_end=109684
+ _globals['_MESSAGE_PEERDATAOPERATIONREQUESTRESPONSEMESSAGE_PEERDATAOPERATIONRESULT_SYNCDSNAPSHOTFATALRECOVERYRESPONSE']._serialized_start=109686
+ _globals['_MESSAGE_PEERDATAOPERATIONREQUESTRESPONSEMESSAGE_PEERDATAOPERATIONRESULT_SYNCDSNAPSHOTFATALRECOVERYRESPONSE']._serialized_end=109772
+ _globals['_MESSAGE_PEERDATAOPERATIONREQUESTRESPONSEMESSAGE_PEERDATAOPERATIONRESULT_WAFFLENONCEFETCHRESPONSE']._serialized_start=109774
+ _globals['_MESSAGE_PEERDATAOPERATIONREQUESTRESPONSEMESSAGE_PEERDATAOPERATIONRESULT_WAFFLENONCEFETCHRESPONSE']._serialized_end=109834
+ _globals['_MESSAGE_PEERDATAOPERATIONREQUESTRESPONSEMESSAGE_PEERDATAOPERATIONRESULT_FULLHISTORYSYNCONDEMANDRESPONSECODE']._serialized_start=109837
+ _globals['_MESSAGE_PEERDATAOPERATIONREQUESTRESPONSEMESSAGE_PEERDATAOPERATIONRESULT_FULLHISTORYSYNCONDEMANDRESPONSECODE']._serialized_end=110132
+ _globals['_MESSAGE_PEERDATAOPERATIONREQUESTRESPONSEMESSAGE_PEERDATAOPERATIONRESULT_HISTORYSYNCCHUNKRETRYRESPONSECODE']._serialized_start=110135
+ _globals['_MESSAGE_PEERDATAOPERATIONREQUESTRESPONSEMESSAGE_PEERDATAOPERATIONRESULT_HISTORYSYNCCHUNKRETRYRESPONSECODE']._serialized_end=110293
+ _globals['_MESSAGE_PININCHATMESSAGE']._serialized_start=110296
+ _globals['_MESSAGE_PININCHATMESSAGE']._serialized_end=110493
+ _globals['_MESSAGE_PININCHATMESSAGE_TYPE']._serialized_start=110433
+ _globals['_MESSAGE_PININCHATMESSAGE_TYPE']._serialized_end=110493
+ _globals['_MESSAGE_PLACEHOLDERMESSAGE']._serialized_start=110496
+ _globals['_MESSAGE_PLACEHOLDERMESSAGE']._serialized_end=110628
+ _globals['_MESSAGE_PLACEHOLDERMESSAGE_PLACEHOLDERTYPE']._serialized_start=110586
+ _globals['_MESSAGE_PLACEHOLDERMESSAGE_PLACEHOLDERTYPE']._serialized_end=110628
+ _globals['_MESSAGE_POLLADDOPTIONMESSAGE']._serialized_start=110631
+ _globals['_MESSAGE_POLLADDOPTIONMESSAGE']._serialized_end=110835
+ _globals['_MESSAGE_POLLCREATIONMESSAGE']._serialized_start=110838
+ _globals['_MESSAGE_POLLCREATIONMESSAGE']._serialized_end=111323
+ _globals['_MESSAGE_POLLCREATIONMESSAGE_OPTION']._serialized_start=111275
+ _globals['_MESSAGE_POLLCREATIONMESSAGE_OPTION']._serialized_end=111323
+ _globals['_MESSAGE_POLLENCVALUE']._serialized_start=36090
+ _globals['_MESSAGE_POLLENCVALUE']._serialized_end=36139
+ _globals['_MESSAGE_POLLRESULTSNAPSHOTMESSAGE']._serialized_start=111377
+ _globals['_MESSAGE_POLLRESULTSNAPSHOTMESSAGE']._serialized_end=111638
+ _globals['_MESSAGE_POLLRESULTSNAPSHOTMESSAGE_POLLVOTE']._serialized_start=111583
+ _globals['_MESSAGE_POLLRESULTSNAPSHOTMESSAGE_POLLVOTE']._serialized_end=111638
+ _globals['_MESSAGE_POLLUPDATEMESSAGE']._serialized_start=111641
+ _globals['_MESSAGE_POLLUPDATEMESSAGE']._serialized_end=111850
+ _globals['_MESSAGE_POLLUPDATEMESSAGEMETADATA']._serialized_start=111852
+ _globals['_MESSAGE_POLLUPDATEMESSAGEMETADATA']._serialized_end=111927
+ _globals['_MESSAGE_POLLVOTEMESSAGE']._serialized_start=36338
+ _globals['_MESSAGE_POLLVOTEMESSAGE']._serialized_end=36380
+ _globals['_MESSAGE_PRODUCTMESSAGE']._serialized_start=111974
+ _globals['_MESSAGE_PRODUCTMESSAGE']._serialized_end=112639
+ _globals['_MESSAGE_PRODUCTMESSAGE_CATALOGSNAPSHOT']._serialized_start=112226
+ _globals['_MESSAGE_PRODUCTMESSAGE_CATALOGSNAPSHOT']._serialized_end=112333
+ _globals['_MESSAGE_PRODUCTMESSAGE_PRODUCTSNAPSHOT']._serialized_start=112336
+ _globals['_MESSAGE_PRODUCTMESSAGE_PRODUCTSNAPSHOT']._serialized_end=112639
+ _globals['_MESSAGE_PROTOCOLMESSAGE']._serialized_start=112642
+ _globals['_MESSAGE_PROTOCOLMESSAGE']._serialized_end=115395
+ _globals['_MESSAGE_PROTOCOLMESSAGE_TYPE']._serialized_start=114456
+ _globals['_MESSAGE_PROTOCOLMESSAGE_TYPE']._serialized_end=115395
+ _globals['_MESSAGE_QUESTIONRESPONSEMESSAGE']._serialized_start=115397
+ _globals['_MESSAGE_QUESTIONRESPONSEMESSAGE']._serialized_end=115471
+ _globals['_MESSAGE_REACTIONMESSAGE']._serialized_start=36410
+ _globals['_MESSAGE_REACTIONMESSAGE']._serialized_end=36524
+ _globals['_MESSAGE_REQUESTPAYMENTMESSAGE']._serialized_start=115590
+ _globals['_MESSAGE_REQUESTPAYMENTMESSAGE']._serialized_end=115830
+ _globals['_MESSAGE_REQUESTPHONENUMBERMESSAGE']._serialized_start=115832
+ _globals['_MESSAGE_REQUESTPHONENUMBERMESSAGE']._serialized_end=115903
+ _globals['_MESSAGE_REQUESTWELCOMEMESSAGEMETADATA']._serialized_start=115906
+ _globals['_MESSAGE_REQUESTWELCOMEMESSAGEMETADATA']._serialized_end=116267
+ _globals['_MESSAGE_REQUESTWELCOMEMESSAGEMETADATA_LOCALCHATSTATE']._serialized_start=116169
+ _globals['_MESSAGE_REQUESTWELCOMEMESSAGEMETADATA_LOCALCHATSTATE']._serialized_end=116211
+ _globals['_MESSAGE_REQUESTWELCOMEMESSAGEMETADATA_WELCOMETRIGGER']._serialized_start=116213
+ _globals['_MESSAGE_REQUESTWELCOMEMESSAGEMETADATA_WELCOMETRIGGER']._serialized_end=116267
+ _globals['_MESSAGE_ROOTSECRETDISTRIBUTEMESSAGE']._serialized_start=116269
+ _globals['_MESSAGE_ROOTSECRETDISTRIBUTEMESSAGE']._serialized_end=116315
+ _globals['_MESSAGE_SCHEDULEDCALLCREATIONMESSAGE']._serialized_start=116318
+ _globals['_MESSAGE_SCHEDULEDCALLCREATIONMESSAGE']._serialized_end=116515
+ _globals['_MESSAGE_SCHEDULEDCALLCREATIONMESSAGE_CALLTYPE']._serialized_start=116470
+ _globals['_MESSAGE_SCHEDULEDCALLCREATIONMESSAGE_CALLTYPE']._serialized_end=116515
+ _globals['_MESSAGE_SCHEDULEDCALLEDITMESSAGE']._serialized_start=116518
+ _globals['_MESSAGE_SCHEDULEDCALLEDITMESSAGE']._serialized_end=116687
+ _globals['_MESSAGE_SCHEDULEDCALLEDITMESSAGE_EDITTYPE']._serialized_start=116652
+ _globals['_MESSAGE_SCHEDULEDCALLEDITMESSAGE_EDITTYPE']._serialized_end=116687
+ _globals['_MESSAGE_SECRETENCRYPTEDMESSAGE']._serialized_start=116690
+ _globals['_MESSAGE_SECRETENCRYPTEDMESSAGE']._serialized_end=117019
+ _globals['_MESSAGE_SECRETENCRYPTEDMESSAGE_SECRETENCTYPE']._serialized_start=116899
+ _globals['_MESSAGE_SECRETENCRYPTEDMESSAGE_SECRETENCTYPE']._serialized_end=117019
+ _globals['_MESSAGE_SENDPAYMENTMESSAGE']._serialized_start=117022
+ _globals['_MESSAGE_SENDPAYMENTMESSAGE']._serialized_end=117205
+ _globals['_MESSAGE_SENDERKEYDISTRIBUTIONMESSAGE']._serialized_start=117207
+ _globals['_MESSAGE_SENDERKEYDISTRIBUTIONMESSAGE']._serialized_end=117299
+ _globals['_MESSAGE_SPLITPAYMENTMESSAGE']._serialized_start=117302
+ _globals['_MESSAGE_SPLITPAYMENTMESSAGE']._serialized_end=117551
+ _globals['_MESSAGE_SPLITPAYMENTPARTICIPANT']._serialized_start=117554
+ _globals['_MESSAGE_SPLITPAYMENTPARTICIPANT']._serialized_end=117748
+ _globals['_MESSAGE_SPLITPAYMENTPARTICIPANT_SPLITPAYMENTSTATUS']._serialized_start=117705
+ _globals['_MESSAGE_SPLITPAYMENTPARTICIPANT_SPLITPAYMENTSTATUS']._serialized_end=117748
+ _globals['_MESSAGE_SPLITPAYMENTUPDATEMESSAGE']._serialized_start=117750
+ _globals['_MESSAGE_SPLITPAYMENTUPDATEMESSAGE']._serialized_end=117818
+ _globals['_MESSAGE_STATUSLINKPREVIEWMETADATA']._serialized_start=117821
+ _globals['_MESSAGE_STATUSLINKPREVIEWMETADATA']._serialized_end=117971
+ _globals['_MESSAGE_STATUSLINKPREVIEWMETADATA_STYLE']._serialized_start=117916
+ _globals['_MESSAGE_STATUSLINKPREVIEWMETADATA_STYLE']._serialized_end=117971
+ _globals['_MESSAGE_STATUSNOTIFICATIONMESSAGE']._serialized_start=117974
+ _globals['_MESSAGE_STATUSNOTIFICATIONMESSAGE']._serialized_end=118332
+ _globals['_MESSAGE_STATUSNOTIFICATIONMESSAGE_STATUSNOTIFICATIONTYPE']._serialized_start=118186
+ _globals['_MESSAGE_STATUSNOTIFICATIONMESSAGE_STATUSNOTIFICATIONTYPE']._serialized_end=118332
+ _globals['_MESSAGE_STATUSQUESTIONANSWERMESSAGE']._serialized_start=118334
+ _globals['_MESSAGE_STATUSQUESTIONANSWERMESSAGE']._serialized_end=118412
+ _globals['_MESSAGE_STATUSQUOTEDMESSAGE']._serialized_start=118415
+ _globals['_MESSAGE_STATUSQUOTEDMESSAGE']._serialized_end=118642
+ _globals['_MESSAGE_STATUSQUOTEDMESSAGE_STATUSQUOTEDMESSAGETYPE']._serialized_start=118596
+ _globals['_MESSAGE_STATUSQUOTEDMESSAGE_STATUSQUOTEDMESSAGETYPE']._serialized_end=118642
+ _globals['_MESSAGE_STATUSSTICKERINTERACTIONMESSAGE']._serialized_start=118645
+ _globals['_MESSAGE_STATUSSTICKERINTERACTIONMESSAGE']._serialized_end=118864
+ _globals['_MESSAGE_STATUSSTICKERINTERACTIONMESSAGE_STATUSSTICKERTYPE']._serialized_start=118818
+ _globals['_MESSAGE_STATUSSTICKERINTERACTIONMESSAGE_STATUSSTICKERTYPE']._serialized_end=118864
+ _globals['_MESSAGE_STICKERMESSAGE']._serialized_start=118867
+ _globals['_MESSAGE_STICKERMESSAGE']._serialized_end=119353
+ _globals['_MESSAGE_STICKERPACKMESSAGE']._serialized_start=119356
+ _globals['_MESSAGE_STICKERPACKMESSAGE']._serialized_end=120218
+ _globals['_MESSAGE_STICKERPACKMESSAGE_STICKER']._serialized_start=120001
+ _globals['_MESSAGE_STICKERPACKMESSAGE_STICKER']._serialized_end=120145
+ _globals['_MESSAGE_STICKERPACKMESSAGE_STICKERPACKORIGIN']._serialized_start=120147
+ _globals['_MESSAGE_STICKERPACKMESSAGE_STICKERPACKORIGIN']._serialized_end=120218
+ _globals['_MESSAGE_STICKERSYNCRMRMESSAGE']._serialized_start=120220
+ _globals['_MESSAGE_STICKERSYNCRMRMESSAGE']._serialized_end=120306
+ _globals['_MESSAGE_TEMPLATEBUTTONREPLYMESSAGE']._serialized_start=120309
+ _globals['_MESSAGE_TEMPLATEBUTTONREPLYMESSAGE']._serialized_end=120488
+ _globals['_MESSAGE_TEMPLATEMESSAGE']._serialized_start=120491
+ _globals['_MESSAGE_TEMPLATEMESSAGE']._serialized_end=121885
+ _globals['_MESSAGE_TEMPLATEMESSAGE_FOURROWTEMPLATE']._serialized_start=120908
+ _globals['_MESSAGE_TEMPLATEMESSAGE_FOURROWTEMPLATE']._serialized_end=121410
+ _globals['_MESSAGE_TEMPLATEMESSAGE_HYDRATEDFOURROWTEMPLATE']._serialized_start=121413
+ _globals['_MESSAGE_TEMPLATEMESSAGE_HYDRATEDFOURROWTEMPLATE']._serialized_end=121875
+ _globals['_MESSAGE_URLMETADATA']._serialized_start=121887
+ _globals['_MESSAGE_URLMETADATA']._serialized_end=121924
+ _globals['_MESSAGE_VIDEOENDCARD']._serialized_start=121926
+ _globals['_MESSAGE_VIDEOENDCARD']._serialized_end=122029
+ _globals['_MESSAGE_VIDEOMESSAGE']._serialized_start=122032
+ _globals['_MESSAGE_VIDEOMESSAGE']._serialized_end=123064
+ _globals['_MESSAGE_VIDEOMESSAGE_ATTRIBUTION']._serialized_start=122955
+ _globals['_MESSAGE_VIDEOMESSAGE_ATTRIBUTION']._serialized_end=123011
+ _globals['_MESSAGE_VIDEOMESSAGE_VIDEOSOURCETYPE']._serialized_start=123013
+ _globals['_MESSAGE_VIDEOMESSAGE_VIDEOSOURCETYPE']._serialized_end=123064
+ _globals['_MESSAGE_HISTORYSYNCTYPE']._serialized_start=123067
+ _globals['_MESSAGE_HISTORYSYNCTYPE']._serialized_end=123248
+ _globals['_MESSAGE_INSIGHTDELIVERYSTATE']._serialized_start=123250
+ _globals['_MESSAGE_INSIGHTDELIVERYSTATE']._serialized_end=123339
+ _globals['_MESSAGE_PEERDATAOPERATIONREQUESTTYPE']._serialized_start=123342
+ _globals['_MESSAGE_PEERDATAOPERATIONREQUESTTYPE']._serialized_end=123868
+ _globals['_MESSAGE_POLLCONTENTTYPE']._serialized_start=123870
+ _globals['_MESSAGE_POLLCONTENTTYPE']._serialized_end=123921
+ _globals['_MESSAGE_POLLTYPE']._serialized_start=123923
+ _globals['_MESSAGE_POLLTYPE']._serialized_end=123953
+ _globals['_MESSAGEADDON']._serialized_start=123956
+ _globals['_MESSAGEADDON']._serialized_end=124449
+ _globals['_MESSAGEADDON_MESSAGEADDONTYPE']._serialized_start=124348
+ _globals['_MESSAGEADDON_MESSAGEADDONTYPE']._serialized_end=124449
+ _globals['_MESSAGEADDONCONTEXTINFO']._serialized_start=124452
+ _globals['_MESSAGEADDONCONTEXTINFO']._serialized_end=124598
+ _globals['_MESSAGEASSOCIATION']._serialized_start=124601
+ _globals['_MESSAGEASSOCIATION']._serialized_end=125253
+ _globals['_MESSAGEASSOCIATION_ASSOCIATIONTYPE']._serialized_start=124765
+ _globals['_MESSAGEASSOCIATION_ASSOCIATIONTYPE']._serialized_end=125253
+ _globals['_MESSAGECONTEXTINFO']._serialized_start=125256
+ _globals['_MESSAGECONTEXTINFO']._serialized_end=126129
+ _globals['_MESSAGECONTEXTINFO_MESSAGEADDONEXPIRYTYPE']._serialized_start=126068
+ _globals['_MESSAGECONTEXTINFO_MESSAGEADDONEXPIRYTYPE']._serialized_end=126129
+ _globals['_MESSAGEKEY']._serialized_start=126131
+ _globals['_MESSAGEKEY']._serialized_end=126211
+ _globals['_MESSAGESECRETMESSAGE']._serialized_start=126213
+ _globals['_MESSAGESECRETMESSAGE']._serialized_end=126287
+ _globals['_MESSAGETEXT']._serialized_start=126289
+ _globals['_MESSAGETEXT']._serialized_end=126412
+ _globals['_MESSAGINGMAILBOXPUBLICDATA']._serialized_start=126415
+ _globals['_MESSAGINGMAILBOXPUBLICDATA']._serialized_end=126558
+ _globals['_MINOSCLIENTCONFIG']._serialized_start=126560
+ _globals['_MINOSCLIENTCONFIG']._serialized_end=126661
+ _globals['_MINOSCOMMAND']._serialized_start=126664
+ _globals['_MINOSCOMMAND']._serialized_end=129063
+ _globals['_MINOSDECRYPTANDVERIFYMESSAGEINPUT']._serialized_start=129066
+ _globals['_MINOSDECRYPTANDVERIFYMESSAGEINPUT']._serialized_end=129340
+ _globals['_MINOSDECRYPTANDVERIFYMESSAGERESULT']._serialized_start=129343
+ _globals['_MINOSDECRYPTANDVERIFYMESSAGERESULT']._serialized_end=129479
+ _globals['_MINOSDECRYPTANDVERIFYMESSAGESUCCESS']._serialized_start=129481
+ _globals['_MINOSDECRYPTANDVERIFYMESSAGESUCCESS']._serialized_end=129537
+ _globals['_MINOSENCRYPTANDSIGNMESSAGEINPUT']._serialized_start=129540
+ _globals['_MINOSENCRYPTANDSIGNMESSAGEINPUT']._serialized_end=129754
+ _globals['_MINOSENCRYPTANDSIGNMESSAGERESULT']._serialized_start=129756
+ _globals['_MINOSENCRYPTANDSIGNMESSAGERESULT']._serialized_end=129846
+ _globals['_MINOSMESSAGEMETADATA']._serialized_start=129848
+ _globals['_MINOSMESSAGEMETADATA']._serialized_end=129941
+ _globals['_MINOSOPENEPOCHINPUT']._serialized_start=129944
+ _globals['_MINOSOPENEPOCHINPUT']._serialized_end=130114
+ _globals['_MINOSOPENEPOCHRESULT']._serialized_start=130116
+ _globals['_MINOSOPENEPOCHRESULT']._serialized_end=130192
+ _globals['_MINOSOPENINITIALEPOCHINPUT']._serialized_start=130194
+ _globals['_MINOSOPENINITIALEPOCHINPUT']._serialized_end=130284
+ _globals['_MINOSOPENINITIALEPOCHRESULT']._serialized_start=130286
+ _globals['_MINOSOPENINITIALEPOCHRESULT']._serialized_end=130369
+ _globals['_MINOSSIGNEDEPOCH']._serialized_start=130372
+ _globals['_MINOSSIGNEDEPOCH']._serialized_end=130508
+ _globals['_MINOSTHREADIDFROMACTTHREADIDINPUT']._serialized_start=130510
+ _globals['_MINOSTHREADIDFROMACTTHREADIDINPUT']._serialized_end=130566
+ _globals['_MINOSTHREADIDFROMACTTHREADIDRESULT']._serialized_start=130568
+ _globals['_MINOSTHREADIDFROMACTTHREADIDRESULT']._serialized_end=130622
+ _globals['_MINOSTHREADIDFROMONETOONETHREADINPUT']._serialized_start=130624
+ _globals['_MINOSTHREADIDFROMONETOONETHREADINPUT']._serialized_end=130701
+ _globals['_MINOSTHREADIDFROMONETOONETHREADRESULT']._serialized_start=130703
+ _globals['_MINOSTHREADIDFROMONETOONETHREADRESULT']._serialized_end=130760
+ _globals['_MINOSVALIDATEEPOCHINPUT']._serialized_start=130763
+ _globals['_MINOSVALIDATEEPOCHINPUT']._serialized_end=130947
+ _globals['_MINOSVALIDATEEPOCHRESULT']._serialized_start=130949
+ _globals['_MINOSVALIDATEEPOCHRESULT']._serialized_end=131026
+ _globals['_MINOSVERIFYSINGLEEPOCHINPUT']._serialized_start=131028
+ _globals['_MINOSVERIFYSINGLEEPOCHINPUT']._serialized_end=131128
+ _globals['_MINOSVERIFYSINGLEEPOCHRESULT']._serialized_start=131130
+ _globals['_MINOSVERIFYSINGLEEPOCHRESULT']._serialized_end=131175
+ _globals['_MMKDISTRIBUTION']._serialized_start=131178
+ _globals['_MMKDISTRIBUTION']._serialized_end=131337
+ _globals['_MMKDISTRIBUTIONTODETACHEDDEVICE']._serialized_start=131339
+ _globals['_MMKDISTRIBUTIONTODETACHEDDEVICE']._serialized_end=131419
+ _globals['_MMKDISTRIBUTIONTOMAILBOX']._serialized_start=131421
+ _globals['_MMKDISTRIBUTIONTOMAILBOX']._serialized_end=131499
+ _globals['_MMKFROMDETACHEDDEVICE']._serialized_start=131502
+ _globals['_MMKFROMDETACHEDDEVICE']._serialized_end=131698
+ _globals['_MONEY']._serialized_start=131700
+ _globals['_MONEY']._serialized_end=131760
+ _globals['_MSGOPAQUEDATA']._serialized_start=131763
+ _globals['_MSGOPAQUEDATA']._serialized_end=133850
+ _globals['_MSGOPAQUEDATA_EVENTLOCATION']._serialized_start=133411
+ _globals['_MSGOPAQUEDATA_EVENTLOCATION']._serialized_end=133544
+ _globals['_MSGOPAQUEDATA_POLLOPTION']._serialized_start=133546
+ _globals['_MSGOPAQUEDATA_POLLOPTION']._serialized_end=133586
+ _globals['_MSGOPAQUEDATA_POLLVOTESNAPSHOT']._serialized_start=133588
+ _globals['_MSGOPAQUEDATA_POLLVOTESNAPSHOT']._serialized_end=133683
+ _globals['_MSGOPAQUEDATA_POLLVOTESSNAPSHOT']._serialized_start=133685
+ _globals['_MSGOPAQUEDATA_POLLVOTESSNAPSHOT']._serialized_end=133765
+ _globals['_MSGOPAQUEDATA_POLLCONTENTTYPE']._serialized_start=123870
+ _globals['_MSGOPAQUEDATA_POLLCONTENTTYPE']._serialized_end=123921
+ _globals['_MSGOPAQUEDATA_POLLTYPE']._serialized_start=123923
+ _globals['_MSGOPAQUEDATA_POLLTYPE']._serialized_end=123953
+ _globals['_MSGROWOPAQUEDATA']._serialized_start=133852
+ _globals['_MSGROWOPAQUEDATA']._serialized_end=133959
+ _globals['_NOISECERTIFICATE']._serialized_start=133962
+ _globals['_NOISECERTIFICATE']._serialized_end=134106
+ _globals['_NOISECERTIFICATE_DETAILS']._serialized_start=134018
+ _globals['_NOISECERTIFICATE_DETAILS']._serialized_end=134106
+ _globals['_NONE2EEATTESTATION']._serialized_start=134109
+ _globals['_NONE2EEATTESTATION']._serialized_end=134248
+ _globals['_NONE2EEATTESTATION_ACCOUNTTYPE']._serialized_start=134194
+ _globals['_NONE2EEATTESTATION_ACCOUNTTYPE']._serialized_end=134248
+ _globals['_NOTIFICATIONMESSAGEINFO']._serialized_start=134251
+ _globals['_NOTIFICATIONMESSAGEINFO']._serialized_end=134394
+ _globals['_NOTIFICATIONSETTINGS']._serialized_start=134397
+ _globals['_NOTIFICATIONSETTINGS']._serialized_end=134566
+ _globals['_ORFTHREADIDINPUT']._serialized_start=134568
+ _globals['_ORFTHREADIDINPUT']._serialized_end=134628
+ _globals['_ORFTHREADIDOUTPUT']._serialized_start=134630
+ _globals['_ORFTHREADIDOUTPUT']._serialized_end=134685
+ _globals['_PAIRINGREQUEST']._serialized_start=134687
+ _globals['_PAIRINGREQUEST']._serialized_end=134780
+ _globals['_PASTPARTICIPANT']._serialized_start=134783
+ _globals['_PASTPARTICIPANT']._serialized_end=134932
+ _globals['_PASTPARTICIPANT_LEAVEREASON']._serialized_start=134896
+ _globals['_PASTPARTICIPANT_LEAVEREASON']._serialized_end=134932
+ _globals['_PASTPARTICIPANTS']._serialized_start=134934
+ _globals['_PASTPARTICIPANTS']._serialized_end=135023
+ _globals['_PATCHDEBUGDATA']._serialized_start=135026
+ _globals['_PATCHDEBUGDATA']._serialized_end=135496
+ _globals['_PATCHDEBUGDATA_PLATFORM']._serialized_start=135358
+ _globals['_PATCHDEBUGDATA_PLATFORM']._serialized_end=135496
+ _globals['_PAYMENTBACKGROUND']._serialized_start=135499
+ _globals['_PAYMENTBACKGROUND']._serialized_end=135924
+ _globals['_PAYMENTBACKGROUND_MEDIADATA']._serialized_start=135771
+ _globals['_PAYMENTBACKGROUND_MEDIADATA']._serialized_end=135890
+ _globals['_PAYMENTBACKGROUND_TYPE']._serialized_start=135892
+ _globals['_PAYMENTBACKGROUND_TYPE']._serialized_end=135924
+ _globals['_PAYMENTINFO']._serialized_start=135927
+ _globals['_PAYMENTINFO']._serialized_end=137310
+ _globals['_PAYMENTINFO_CURRENCY']._serialized_start=136394
+ _globals['_PAYMENTINFO_CURRENCY']._serialized_end=136435
+ _globals['_PAYMENTINFO_STATUS']._serialized_start=136438
+ _globals['_PAYMENTINFO_STATUS']._serialized_end=136642
+ _globals['_PAYMENTINFO_TXNSTATUS']._serialized_start=136645
+ _globals['_PAYMENTINFO_TXNSTATUS']._serialized_end=137310
+ _globals['_PHONENUMBERTOLIDMAPPING']._serialized_start=137312
+ _globals['_PHONENUMBERTOLIDMAPPING']._serialized_end=137368
+ _globals['_PHOTOCHANGE']._serialized_start=137370
+ _globals['_PHOTOCHANGE']._serialized_end=137439
+ _globals['_PININCHAT']._serialized_start=137442
+ _globals['_PININCHAT']._serialized_end=137712
+ _globals['_PININCHAT_TYPE']._serialized_start=110433
+ _globals['_PININCHAT_TYPE']._serialized_end=110493
+ _globals['_POINT']._serialized_start=137714
+ _globals['_POINT']._serialized_end=137785
+ _globals['_POLLADDITIONALMETADATA']._serialized_start=137788
+ _globals['_POLLADDITIONALMETADATA']._serialized_end=137997
+ _globals['_POLLADDITIONALMETADATA_POLLNAMEHASHHISTORYENTRY']._serialized_start=137927
+ _globals['_POLLADDITIONALMETADATA_POLLNAMEHASHHISTORYENTRY']._serialized_end=137997
+ _globals['_POLLENCVALUE']._serialized_start=36090
+ _globals['_POLLENCVALUE']._serialized_end=36139
+ _globals['_POLLUPDATE']._serialized_start=138051
+ _globals['_POLLUPDATE']._serialized_end=138297
+ _globals['_PREKEYRECORDSTRUCTURE']._serialized_start=138299
+ _globals['_PREKEYRECORDSTRUCTURE']._serialized_end=138373
+ _globals['_PREKEYSIGNALMESSAGE']._serialized_start=138376
+ _globals['_PREKEYSIGNALMESSAGE']._serialized_end=138566
+ _globals['_PREMIUMMESSAGEINFO']._serialized_start=138568
+ _globals['_PREMIUMMESSAGEINFO']._serialized_end=138614
+ _globals['_PRIMARYEPHEMERALIDENTITY']._serialized_start=138616
+ _globals['_PRIMARYEPHEMERALIDENTITY']._serialized_end=138676
+ _globals['_PROCESSEDVIDEO']._serialized_start=138679
+ _globals['_PROCESSEDVIDEO']._serialized_end=138940
+ _globals['_PROCESSEDVIDEO_VIDEOQUALITY']._serialized_start=138883
+ _globals['_PROCESSEDVIDEO_VIDEOQUALITY']._serialized_end=138940
+ _globals['_PROLOGUEPAYLOAD']._serialized_start=138942
+ _globals['_PROLOGUEPAYLOAD']._serialized_end=139046
+ _globals['_PUSHNAME']._serialized_start=139048
+ _globals['_PUSHNAME']._serialized_end=139088
+ _globals['_QP']._serialized_start=139091
+ _globals['_QP']._serialized_end=139663
+ _globals['_QP_FILTER']._serialized_start=139098
+ _globals['_QP_FILTER']._serialized_end=139305
+ _globals['_QP_FILTERCLAUSE']._serialized_start=139308
+ _globals['_QP_FILTERCLAUSE']._serialized_end=139449
+ _globals['_QP_FILTERPARAMETERS']._serialized_start=139451
+ _globals['_QP_FILTERPARAMETERS']._serialized_end=139497
+ _globals['_QP_CLAUSETYPE']._serialized_start=139499
+ _globals['_QP_CLAUSETYPE']._serialized_end=139537
+ _globals['_QP_FILTERCLIENTNOTSUPPORTEDCONFIG']._serialized_start=139539
+ _globals['_QP_FILTERCLIENTNOTSUPPORTEDCONFIG']._serialized_end=139613
+ _globals['_QP_FILTERRESULT']._serialized_start=139615
+ _globals['_QP_FILTERRESULT']._serialized_end=139663
+ _globals['_QUARANTINEDMESSAGE']._serialized_start=139665
+ _globals['_QUARANTINEDMESSAGE']._serialized_end=139730
+ _globals['_REACTION']._serialized_start=139732
+ _globals['_REACTION']._serialized_end=139855
+ _globals['_RECENTEMOJIWEIGHT']._serialized_start=139857
+ _globals['_RECENTEMOJIWEIGHT']._serialized_end=139907
+ _globals['_RECORDSTRUCTURE']._serialized_start=139909
+ _globals['_RECORDSTRUCTURE']._serialized_end=140032
+ _globals['_REPORTABLE']._serialized_start=140034
+ _globals['_REPORTABLE']._serialized_end=140137
+ _globals['_REPORTINGTOKENINFO']._serialized_start=140139
+ _globals['_REPORTINGTOKENINFO']._serialized_end=140212
+ _globals['_ROTATEEPOCHINPUT']._serialized_start=140215
+ _globals['_ROTATEEPOCHINPUT']._serialized_end=140399
+ _globals['_ROTATEEPOCHMEMBEREDGE']._serialized_start=140401
+ _globals['_ROTATEEPOCHMEMBEREDGE']._serialized_end=140494
+ _globals['_ROTATEEPOCHMEMBERINPUT']._serialized_start=140496
+ _globals['_ROTATEEPOCHMEMBERINPUT']._serialized_end=140594
+ _globals['_ROTATEEPOCHOUTPUT']._serialized_start=140597
+ _globals['_ROTATEEPOCHOUTPUT']._serialized_end=140856
+ _globals['_ROUTINGINFO']._serialized_start=140859
+ _globals['_ROUTINGINFO']._serialized_end=140996
+ _globals['_SCHEDULEDMESSAGEMETADATA']._serialized_start=140998
+ _globals['_SCHEDULEDMESSAGEMETADATA']._serialized_end=141087
+ _globals['_SENDERKEYDISTRIBUTIONMESSAGE']._serialized_start=141089
+ _globals['_SENDERKEYDISTRIBUTIONMESSAGE']._serialized_end=141188
+ _globals['_SENDERKEYMESSAGE']._serialized_start=141190
+ _globals['_SENDERKEYMESSAGE']._serialized_end=141259
+ _globals['_SENDERKEYRECORDSTRUCTURE']._serialized_start=141261
+ _globals['_SENDERKEYRECORDSTRUCTURE']._serialized_end=141347
+ _globals['_SENDERKEYSTATESTRUCTURE']._serialized_start=141350
+ _globals['_SENDERKEYSTATESTRUCTURE']._serialized_end=141784
+ _globals['_SENDERKEYSTATESTRUCTURE_SENDERCHAINKEY']._serialized_start=141629
+ _globals['_SENDERKEYSTATESTRUCTURE_SENDERCHAINKEY']._serialized_end=141678
+ _globals['_SENDERKEYSTATESTRUCTURE_SENDERMESSAGEKEY']._serialized_start=141680
+ _globals['_SENDERKEYSTATESTRUCTURE_SENDERMESSAGEKEY']._serialized_end=141731
+ _globals['_SENDERKEYSTATESTRUCTURE_SENDERSIGNINGKEY']._serialized_start=141733
+ _globals['_SENDERKEYSTATESTRUCTURE_SENDERSIGNINGKEY']._serialized_end=141784
+ _globals['_SERVERERRORRECEIPT']._serialized_start=141786
+ _globals['_SERVERERRORRECEIPT']._serialized_end=141824
+ _globals['_SESSIONSTRUCTURE']._serialized_start=141827
+ _globals['_SESSIONSTRUCTURE']._serialized_end=142970
+ _globals['_SESSIONSTRUCTURE_CHAIN']._serialized_start=142329
+ _globals['_SESSIONSTRUCTURE_CHAIN']._serialized_end=142638
+ _globals['_SESSIONSTRUCTURE_CHAIN_CHAINKEY']._serialized_start=142524
+ _globals['_SESSIONSTRUCTURE_CHAIN_CHAINKEY']._serialized_end=142562
+ _globals['_SESSIONSTRUCTURE_CHAIN_MESSAGEKEY']._serialized_start=142564
+ _globals['_SESSIONSTRUCTURE_CHAIN_MESSAGEKEY']._serialized_end=142638
+ _globals['_SESSIONSTRUCTURE_PENDINGKEYEXCHANGE']._serialized_start=142641
+ _globals['_SESSIONSTRUCTURE_PENDINGKEYEXCHANGE']._serialized_end=142846
+ _globals['_SESSIONSTRUCTURE_PENDINGPREKEY']._serialized_start=142848
+ _globals['_SESSIONSTRUCTURE_PENDINGPREKEY']._serialized_end=142970
+ _globals['_SESSIONTRANSPARENCYMETADATA']._serialized_start=142973
+ _globals['_SESSIONTRANSPARENCYMETADATA']._serialized_end=143109
+ _globals['_SIGNALMESSAGE']._serialized_start=143111
+ _globals['_SIGNALMESSAGE']._serialized_end=143208
+ _globals['_SIGNEDMMKDISTRIBUTIONFROMMAILBOX']._serialized_start=143211
+ _globals['_SIGNEDMMKDISTRIBUTIONFROMMAILBOX']._serialized_end=143375
+ _globals['_SIGNEDPREKEYRECORDSTRUCTURE']._serialized_start=143377
+ _globals['_SIGNEDPREKEYRECORDSTRUCTURE']._serialized_end=143495
+ _globals['_STATUSATTRIBUTION']._serialized_start=143498
+ _globals['_STATUSATTRIBUTION']._serialized_end=145450
+ _globals['_STATUSATTRIBUTION_AICREATEDATTRIBUTION']._serialized_start=143989
+ _globals['_STATUSATTRIBUTION_AICREATEDATTRIBUTION']._serialized_end=144127
+ _globals['_STATUSATTRIBUTION_AICREATEDATTRIBUTION_SOURCE']._serialized_start=144086
+ _globals['_STATUSATTRIBUTION_AICREATEDATTRIBUTION_SOURCE']._serialized_end=144127
+ _globals['_STATUSATTRIBUTION_EXTERNALSHARE']._serialized_start=144130
+ _globals['_STATUSATTRIBUTION_EXTERNALSHARE']._serialized_end=144489
+ _globals['_STATUSATTRIBUTION_EXTERNALSHARE_SOURCE']._serialized_start=144278
+ _globals['_STATUSATTRIBUTION_EXTERNALSHARE_SOURCE']._serialized_end=144489
+ _globals['_STATUSATTRIBUTION_GROUPSTATUS']._serialized_start=144491
+ _globals['_STATUSATTRIBUTION_GROUPSTATUS']._serialized_end=144523
+ _globals['_STATUSATTRIBUTION_MUSIC']._serialized_start=144525
+ _globals['_STATUSATTRIBUTION_MUSIC']._serialized_end=144646
+ _globals['_STATUSATTRIBUTION_RLATTRIBUTION']._serialized_start=144649
+ _globals['_STATUSATTRIBUTION_RLATTRIBUTION']._serialized_end=144827
+ _globals['_STATUSATTRIBUTION_RLATTRIBUTION_SOURCE']._serialized_start=144732
+ _globals['_STATUSATTRIBUTION_RLATTRIBUTION_SOURCE']._serialized_end=144827
+ _globals['_STATUSATTRIBUTION_STATUSRESHARE']._serialized_start=144830
+ _globals['_STATUSATTRIBUTION_STATUSRESHARE']._serialized_end=145186
+ _globals['_STATUSATTRIBUTION_STATUSRESHARE_METADATA']._serialized_start=144983
+ _globals['_STATUSATTRIBUTION_STATUSRESHARE_METADATA']._serialized_end=145086
+ _globals['_STATUSATTRIBUTION_STATUSRESHARE_SOURCE']._serialized_start=145088
+ _globals['_STATUSATTRIBUTION_STATUSRESHARE_SOURCE']._serialized_end=145186
+ _globals['_STATUSATTRIBUTION_TYPE']._serialized_start=145189
+ _globals['_STATUSATTRIBUTION_TYPE']._serialized_end=145431
+ _globals['_STATUSMENTIONMESSAGE']._serialized_start=145452
+ _globals['_STATUSMENTIONMESSAGE']._serialized_end=145515
+ _globals['_STATUSPSA']._serialized_start=145517
+ _globals['_STATUSPSA']._serialized_end=145585
+ _globals['_STICKERMETADATA']._serialized_start=145588
+ _globals['_STICKERMETADATA']._serialized_end=145873
+ _globals['_SUBPROTOCOL']._serialized_start=145875
+ _globals['_SUBPROTOCOL']._serialized_end=145922
+ _globals['_SYNCACTIONDATA']._serialized_start=145924
+ _globals['_SYNCACTIONDATA']._serialized_end=146031
+ _globals['_SYNCACTIONVALUE']._serialized_start=146035
+ _globals['_SYNCACTIONVALUE']._serialized_end=165425
+ _globals['_SYNCACTIONVALUE_AGENTACTION']._serialized_start=152670
+ _globals['_SYNCACTIONVALUE_AGENTACTION']._serialized_end=152734
+ _globals['_SYNCACTIONVALUE_AITHREADRENAMEACTION']._serialized_start=152736
+ _globals['_SYNCACTIONVALUE_AITHREADRENAMEACTION']._serialized_end=152776
+ _globals['_SYNCACTIONVALUE_ANDROIDUNSUPPORTEDACTIONS']._serialized_start=152778
+ _globals['_SYNCACTIONVALUE_ANDROIDUNSUPPORTEDACTIONS']._serialized_end=152822
+ _globals['_SYNCACTIONVALUE_ARCHIVECHATACTION']._serialized_start=152824
+ _globals['_SYNCACTIONVALUE_ARCHIVECHATACTION']._serialized_end=152933
+ _globals['_SYNCACTIONVALUE_AUTOORGANIZEBUSINESSCHATSETTING']._serialized_start=152935
+ _globals['_SYNCACTIONVALUE_AUTOORGANIZEBUSINESSCHATSETTING']._serialized_end=152990
+ _globals['_SYNCACTIONVALUE_AVATARUPDATEDACTION']._serialized_start=152993
+ _globals['_SYNCACTIONVALUE_AVATARUPDATEDACTION']._serialized_end=153225
+ _globals['_SYNCACTIONVALUE_AVATARUPDATEDACTION_AVATAREVENTTYPE']._serialized_start=153169
+ _globals['_SYNCACTIONVALUE_AVATARUPDATEDACTION_AVATAREVENTTYPE']._serialized_end=153225
+ _globals['_SYNCACTIONVALUE_BIZAISETTINGSNUDGEACTION']._serialized_start=153228
+ _globals['_SYNCACTIONVALUE_BIZAISETTINGSNUDGEACTION']._serialized_end=153544
+ _globals['_SYNCACTIONVALUE_BIZAISETTINGSNUDGEACTION_BIZAISETTINGSCATEGORY']._serialized_start=153387
+ _globals['_SYNCACTIONVALUE_BIZAISETTINGSNUDGEACTION_BIZAISETTINGSCATEGORY']._serialized_end=153544
+ _globals['_SYNCACTIONVALUE_BOTWELCOMEREQUESTACTION']._serialized_start=153546
+ _globals['_SYNCACTIONVALUE_BOTWELCOMEREQUESTACTION']._serialized_end=153587
+ _globals['_SYNCACTIONVALUE_BROADCASTLISTPARTICIPANT']._serialized_start=153589
+ _globals['_SYNCACTIONVALUE_BROADCASTLISTPARTICIPANT']._serialized_end=153646
+ _globals['_SYNCACTIONVALUE_BUBBLELOCKMESSAGEACTION']._serialized_start=153648
+ _globals['_SYNCACTIONVALUE_BUBBLELOCKMESSAGEACTION']._serialized_end=153689
+ _globals['_SYNCACTIONVALUE_BUSINESSBROADCASTASSOCIATIONACTION']._serialized_start=153691
+ _globals['_SYNCACTIONVALUE_BUSINESSBROADCASTASSOCIATIONACTION']._serialized_end=153744
+ _globals['_SYNCACTIONVALUE_BUSINESSBROADCASTCAMPAIGNACTION']._serialized_start=153747
+ _globals['_SYNCACTIONVALUE_BUSINESSBROADCASTCAMPAIGNACTION']._serialized_end=154014
+ _globals['_SYNCACTIONVALUE_BUSINESSBROADCASTINSIGHTSACTION']._serialized_start=154017
+ _globals['_SYNCACTIONVALUE_BUSINESSBROADCASTINSIGHTSACTION']._serialized_end=154164
+ _globals['_SYNCACTIONVALUE_BUSINESSBROADCASTLISTACTION']._serialized_start=154167
+ _globals['_SYNCACTIONVALUE_BUSINESSBROADCASTLISTACTION']._serialized_end=154379
+ _globals['_SYNCACTIONVALUE_CALLLOGACTION']._serialized_start=154381
+ _globals['_SYNCACTIONVALUE_CALLLOGACTION']._serialized_end=154444
+ _globals['_SYNCACTIONVALUE_CHATASSIGNMENTACTION']._serialized_start=154446
+ _globals['_SYNCACTIONVALUE_CHATASSIGNMENTACTION']._serialized_end=154491
+ _globals['_SYNCACTIONVALUE_CHATASSIGNMENTOPENEDSTATUSACTION']._serialized_start=154493
+ _globals['_SYNCACTIONVALUE_CHATASSIGNMENTOPENEDSTATUSACTION']._serialized_end=154547
+ _globals['_SYNCACTIONVALUE_CLEARCHATACTION']._serialized_start=154549
+ _globals['_SYNCACTIONVALUE_CLEARCHATACTION']._serialized_end=154638
+ _globals['_SYNCACTIONVALUE_COEXV2VERSIONACTION']._serialized_start=154640
+ _globals['_SYNCACTIONVALUE_COEXV2VERSIONACTION']._serialized_end=154678
+ _globals['_SYNCACTIONVALUE_CONTACTACTION']._serialized_start=154681
+ _globals['_SYNCACTIONVALUE_CONTACTACTION']._serialized_end=154816
+ _globals['_SYNCACTIONVALUE_CTWAMESSAGERECEIVEDACTION']._serialized_start=154818
+ _globals['_SYNCACTIONVALUE_CTWAMESSAGERECEIVEDACTION']._serialized_end=154876
+ _globals['_SYNCACTIONVALUE_CTWAPERCUSTOMERDATASHARINGACTION']._serialized_start=154878
+ _globals['_SYNCACTIONVALUE_CTWAPERCUSTOMERDATASHARINGACTION']._serialized_end=154957
+ _globals['_SYNCACTIONVALUE_CUSTOMPAYMENTMETHOD']._serialized_start=154960
+ _globals['_SYNCACTIONVALUE_CUSTOMPAYMENTMETHOD']._serialized_end=155107
+ _globals['_SYNCACTIONVALUE_CUSTOMPAYMENTMETHODMETADATA']._serialized_start=155109
+ _globals['_SYNCACTIONVALUE_CUSTOMPAYMENTMETHODMETADATA']._serialized_end=155166
+ _globals['_SYNCACTIONVALUE_CUSTOMPAYMENTMETHODSACTION']._serialized_start=155168
+ _globals['_SYNCACTIONVALUE_CUSTOMPAYMENTMETHODSACTION']._serialized_end=155273
+ _globals['_SYNCACTIONVALUE_CUSTOMERDATAACTION']._serialized_start=155276
+ _globals['_SYNCACTIONVALUE_CUSTOMERDATAACTION']._serialized_end=155513
+ _globals['_SYNCACTIONVALUE_DELETECHATACTION']._serialized_start=155515
+ _globals['_SYNCACTIONVALUE_DELETECHATACTION']._serialized_end=155605
+ _globals['_SYNCACTIONVALUE_DELETEINDIVIDUALCALLLOGACTION']._serialized_start=155607
+ _globals['_SYNCACTIONVALUE_DELETEINDIVIDUALCALLLOGACTION']._serialized_end=155675
+ _globals['_SYNCACTIONVALUE_DELETEMESSAGEFORMEACTION']._serialized_start=155677
+ _globals['_SYNCACTIONVALUE_DELETEMESSAGEFORMEACTION']._serialized_end=155750
+ _globals['_SYNCACTIONVALUE_DETECTEDOUTCOMESSTATUSACTION']._serialized_start=155752
+ _globals['_SYNCACTIONVALUE_DETECTEDOUTCOMESSTATUSACTION']._serialized_end=155801
+ _globals['_SYNCACTIONVALUE_EXTERNALWEBBETAACTION']._serialized_start=155803
+ _globals['_SYNCACTIONVALUE_EXTERNALWEBBETAACTION']._serialized_end=155843
+ _globals['_SYNCACTIONVALUE_FAVORITESACTION']._serialized_start=155845
+ _globals['_SYNCACTIONVALUE_FAVORITESACTION']._serialized_end=155957
+ _globals['_SYNCACTIONVALUE_FAVORITESACTION_FAVORITE']._serialized_start=155935
+ _globals['_SYNCACTIONVALUE_FAVORITESACTION_FAVORITE']._serialized_end=155957
+ _globals['_SYNCACTIONVALUE_INTERACTIVEMESSAGEACTION']._serialized_start=155960
+ _globals['_SYNCACTIONVALUE_INTERACTIVEMESSAGEACTION']._serialized_end=156145
+ _globals['_SYNCACTIONVALUE_INTERACTIVEMESSAGEACTION_INTERACTIVEMESSAGEACTIONMODE']._serialized_start=156098
+ _globals['_SYNCACTIONVALUE_INTERACTIVEMESSAGEACTION_INTERACTIVEMESSAGEACTIONMODE']._serialized_end=156145
+ _globals['_SYNCACTIONVALUE_KEYEXPIRATION']._serialized_start=156147
+ _globals['_SYNCACTIONVALUE_KEYEXPIRATION']._serialized_end=156187
+ _globals['_SYNCACTIONVALUE_LABELASSOCIATIONACTION']._serialized_start=156189
+ _globals['_SYNCACTIONVALUE_LABELASSOCIATIONACTION']._serialized_end=156253
+ _globals['_SYNCACTIONVALUE_LABELEDITACTION']._serialized_start=156256
+ _globals['_SYNCACTIONVALUE_LABELEDITACTION']._serialized_end=156769
+ _globals['_SYNCACTIONVALUE_LABELEDITACTION_LISTTYPE']._serialized_start=156492
+ _globals['_SYNCACTIONVALUE_LABELEDITACTION_LISTTYPE']._serialized_end=156769
+ _globals['_SYNCACTIONVALUE_LABELREORDERINGACTION']._serialized_start=156771
+ _globals['_SYNCACTIONVALUE_LABELREORDERINGACTION']._serialized_end=156818
+ _globals['_SYNCACTIONVALUE_LABELSUBLISTACTION']._serialized_start=156820
+ _globals['_SYNCACTIONVALUE_LABELSUBLISTACTION']._serialized_end=156859
+ _globals['_SYNCACTIONVALUE_LIDCONTACTACTION']._serialized_start=156861
+ _globals['_SYNCACTIONVALUE_LIDCONTACTACTION']._serialized_end=156934
+ _globals['_SYNCACTIONVALUE_LOCALESETTING']._serialized_start=156936
+ _globals['_SYNCACTIONVALUE_LOCALESETTING']._serialized_end=156967
+ _globals['_SYNCACTIONVALUE_LOCKCHATACTION']._serialized_start=156969
+ _globals['_SYNCACTIONVALUE_LOCKCHATACTION']._serialized_end=157001
+ _globals['_SYNCACTIONVALUE_MAIBAAIFEATURESCONTROLACTION']._serialized_start=157004
+ _globals['_SYNCACTIONVALUE_MAIBAAIFEATURESCONTROLACTION']._serialized_end=157369
+ _globals['_SYNCACTIONVALUE_MAIBAAIFEATURESCONTROLACTION_MAIBAAIFEATURESTATUS']._serialized_start=157232
+ _globals['_SYNCACTIONVALUE_MAIBAAIFEATURESCONTROLACTION_MAIBAAIFEATURESTATUS']._serialized_end=157307
+ _globals['_SYNCACTIONVALUE_MAIBAAIFEATURESCONTROLACTION_MAIBAAIREPLYMODE']._serialized_start=157309
+ _globals['_SYNCACTIONVALUE_MAIBAAIFEATURESCONTROLACTION_MAIBAAIREPLYMODE']._serialized_end=157369
+ _globals['_SYNCACTIONVALUE_MARKCHATASREADACTION']._serialized_start=157371
+ _globals['_SYNCACTIONVALUE_MARKCHATASREADACTION']._serialized_end=157479
+ _globals['_SYNCACTIONVALUE_MARKETINGMESSAGEACTION']._serialized_start=157482
+ _globals['_SYNCACTIONVALUE_MARKETINGMESSAGEACTION']._serialized_end=157757
+ _globals['_SYNCACTIONVALUE_MARKETINGMESSAGEACTION_MARKETINGMESSAGEPROTOTYPETYPE']._serialized_start=157708
+ _globals['_SYNCACTIONVALUE_MARKETINGMESSAGEACTION_MARKETINGMESSAGEPROTOTYPETYPE']._serialized_end=157757
+ _globals['_SYNCACTIONVALUE_MARKETINGMESSAGEBROADCASTACTION']._serialized_start=157759
+ _globals['_SYNCACTIONVALUE_MARKETINGMESSAGEBROADCASTACTION']._serialized_end=157814
+ _globals['_SYNCACTIONVALUE_MERCHANTPAYMENTPARTNERACTION']._serialized_start=157817
+ _globals['_SYNCACTIONVALUE_MERCHANTPAYMENTPARTNERACTION']._serialized_end=158022
+ _globals['_SYNCACTIONVALUE_MERCHANTPAYMENTPARTNERACTION_STATUS']._serialized_start=157988
+ _globals['_SYNCACTIONVALUE_MERCHANTPAYMENTPARTNERACTION_STATUS']._serialized_end=158022
+ _globals['_SYNCACTIONVALUE_MUSICUSERIDACTION']._serialized_start=158025
+ _globals['_SYNCACTIONVALUE_MUSICUSERIDACTION']._serialized_end=158212
+ _globals['_SYNCACTIONVALUE_MUSICUSERIDACTION_MUSICUSERIDMAPENTRY']._serialized_start=158159
+ _globals['_SYNCACTIONVALUE_MUSICUSERIDACTION_MUSICUSERIDMAPENTRY']._serialized_end=158212
+ _globals['_SYNCACTIONVALUE_MUTEACTION']._serialized_start=158214
+ _globals['_SYNCACTIONVALUE_MUTEACTION']._serialized_end=158327
+ _globals['_SYNCACTIONVALUE_NCTSALTSYNCACTION']._serialized_start=158329
+ _globals['_SYNCACTIONVALUE_NCTSALTSYNCACTION']._serialized_end=158362
+ _globals['_SYNCACTIONVALUE_NEWSLETTERSAVEDINTERESTSACTION']._serialized_start=158364
+ _globals['_SYNCACTIONVALUE_NEWSLETTERSAVEDINTERESTSACTION']._serialized_end=158430
+ _globals['_SYNCACTIONVALUE_NOTEEDITACTION']._serialized_start=158433
+ _globals['_SYNCACTIONVALUE_NOTEEDITACTION']._serialized_end=158642
+ _globals['_SYNCACTIONVALUE_NOTEEDITACTION_NOTETYPE']._serialized_start=158598
+ _globals['_SYNCACTIONVALUE_NOTEEDITACTION_NOTETYPE']._serialized_end=158642
+ _globals['_SYNCACTIONVALUE_NOTIFICATIONACTIVITYSETTINGACTION']._serialized_start=158645
+ _globals['_SYNCACTIONVALUE_NOTIFICATIONACTIVITYSETTINGACTION']._serialized_end=158921
+ _globals['_SYNCACTIONVALUE_NOTIFICATIONACTIVITYSETTINGACTION_NOTIFICATIONACTIVITYSETTING']._serialized_start=158808
+ _globals['_SYNCACTIONVALUE_NOTIFICATIONACTIVITYSETTINGACTION_NOTIFICATIONACTIVITYSETTING']._serialized_end=158921
+ _globals['_SYNCACTIONVALUE_NUXACTION']._serialized_start=158923
+ _globals['_SYNCACTIONVALUE_NUXACTION']._serialized_end=158956
+ _globals['_SYNCACTIONVALUE_OUTCONTACTACTION']._serialized_start=158958
+ _globals['_SYNCACTIONVALUE_OUTCONTACTACTION']._serialized_end=159013
+ _globals['_SYNCACTIONVALUE_PAYMENTINFOACTION']._serialized_start=159015
+ _globals['_SYNCACTIONVALUE_PAYMENTINFOACTION']._serialized_end=159047
+ _globals['_SYNCACTIONVALUE_PAYMENTTOSACTION']._serialized_start=159050
+ _globals['_SYNCACTIONVALUE_PAYMENTTOSACTION']._serialized_end=159211
+ _globals['_SYNCACTIONVALUE_PAYMENTTOSACTION_PAYMENTNOTICE']._serialized_start=159169
+ _globals['_SYNCACTIONVALUE_PAYMENTTOSACTION_PAYMENTNOTICE']._serialized_end=159211
+ _globals['_SYNCACTIONVALUE_PINACTION']._serialized_start=159213
+ _globals['_SYNCACTIONVALUE_PINACTION']._serialized_end=159240
+ _globals['_SYNCACTIONVALUE_PNFORLIDCHATACTION']._serialized_start=159242
+ _globals['_SYNCACTIONVALUE_PNFORLIDCHATACTION']._serialized_end=159277
+ _globals['_SYNCACTIONVALUE_PRIMARYFEATURE']._serialized_start=159279
+ _globals['_SYNCACTIONVALUE_PRIMARYFEATURE']._serialized_end=159310
+ _globals['_SYNCACTIONVALUE_PRIMARYVERSIONACTION']._serialized_start=159312
+ _globals['_SYNCACTIONVALUE_PRIMARYVERSIONACTION']._serialized_end=159351
+ _globals['_SYNCACTIONVALUE_PRIVACYSETTINGCHANNELSPERSONALISEDRECOMMENDATIONACTION']._serialized_start=159353
+ _globals['_SYNCACTIONVALUE_PRIVACYSETTINGCHANNELSPERSONALISEDRECOMMENDATIONACTION']._serialized_end=159433
+ _globals['_SYNCACTIONVALUE_PRIVACYSETTINGDISABLELINKPREVIEWSACTION']._serialized_start=159435
+ _globals['_SYNCACTIONVALUE_PRIVACYSETTINGDISABLELINKPREVIEWSACTION']._serialized_end=159504
+ _globals['_SYNCACTIONVALUE_PRIVACYSETTINGRELAYALLCALLS']._serialized_start=159506
+ _globals['_SYNCACTIONVALUE_PRIVACYSETTINGRELAYALLCALLS']._serialized_end=159554
+ _globals['_SYNCACTIONVALUE_PRIVATEPROCESSINGSETTINGACTION']._serialized_start=159557
+ _globals['_SYNCACTIONVALUE_PRIVATEPROCESSINGSETTINGACTION']._serialized_end=159773
+ _globals['_SYNCACTIONVALUE_PRIVATEPROCESSINGSETTINGACTION_PRIVATEPROCESSINGSTATUS']._serialized_start=159706
+ _globals['_SYNCACTIONVALUE_PRIVATEPROCESSINGSETTINGACTION_PRIVATEPROCESSINGSTATUS']._serialized_end=159773
+ _globals['_SYNCACTIONVALUE_PUSHNAMESETTING']._serialized_start=159775
+ _globals['_SYNCACTIONVALUE_PUSHNAMESETTING']._serialized_end=159806
+ _globals['_SYNCACTIONVALUE_QUICKREPLYACTION']._serialized_start=159809
+ _globals['_SYNCACTIONVALUE_QUICKREPLYACTION']._serialized_end=159940
+ _globals['_SYNCACTIONVALUE_RECENTEMOJIWEIGHTSACTION']._serialized_start=159942
+ _globals['_SYNCACTIONVALUE_RECENTEMOJIWEIGHTSACTION']._serialized_end=160014
+ _globals['_SYNCACTIONVALUE_REMOVERECENTSTICKERACTION']._serialized_start=160016
+ _globals['_SYNCACTIONVALUE_REMOVERECENTSTICKERACTION']._serialized_end=160070
+ _globals['_SYNCACTIONVALUE_SETTINGSSYNCACTION']._serialized_start=160073
+ _globals['_SYNCACTIONVALUE_SETTINGSSYNCACTION']._serialized_end=162756
+ _globals['_SYNCACTIONVALUE_SETTINGSSYNCACTION_DISPLAYMODE']._serialized_start=161394
+ _globals['_SYNCACTIONVALUE_SETTINGSSYNCACTION_DISPLAYMODE']._serialized_end=161483
+ _globals['_SYNCACTIONVALUE_SETTINGSSYNCACTION_MEDIAQUALITYSETTING']._serialized_start=161485
+ _globals['_SYNCACTIONVALUE_SETTINGSSYNCACTION_MEDIAQUALITYSETTING']._serialized_end=161555
+ _globals['_SYNCACTIONVALUE_SETTINGSSYNCACTION_SETTINGKEY']._serialized_start=161558
+ _globals['_SYNCACTIONVALUE_SETTINGSSYNCACTION_SETTINGKEY']._serialized_end=162672
+ _globals['_SYNCACTIONVALUE_SETTINGSSYNCACTION_SETTINGPLATFORM']._serialized_start=162674
+ _globals['_SYNCACTIONVALUE_SETTINGSSYNCACTION_SETTINGPLATFORM']._serialized_end=162756
+ _globals['_SYNCACTIONVALUE_STARACTION']._serialized_start=162758
+ _globals['_SYNCACTIONVALUE_STARACTION']._serialized_end=162787
+ _globals['_SYNCACTIONVALUE_STATUSPOSTOPTINNOTIFICATIONPREFERENCESACTION']._serialized_start=162789
+ _globals['_SYNCACTIONVALUE_STATUSPOSTOPTINNOTIFICATIONPREFERENCESACTION']._serialized_end=162852
+ _globals['_SYNCACTIONVALUE_STATUSPRIVACYACTION']._serialized_start=162855
+ _globals['_SYNCACTIONVALUE_STATUSPRIVACYACTION']._serialized_end=163382
+ _globals['_SYNCACTIONVALUE_STATUSPRIVACYACTION_CUSTOMLIST']._serialized_start=163181
+ _globals['_SYNCACTIONVALUE_STATUSPRIVACYACTION_CUSTOMLIST']._serialized_end=163275
+ _globals['_SYNCACTIONVALUE_STATUSPRIVACYACTION_STATUSDISTRIBUTIONMODE']._serialized_start=163277
+ _globals['_SYNCACTIONVALUE_STATUSPRIVACYACTION_STATUSDISTRIBUTIONMODE']._serialized_end=163382
+ _globals['_SYNCACTIONVALUE_STICKERACTION']._serialized_start=163385
+ _globals['_SYNCACTIONVALUE_STICKERACTION']._serialized_end=163647
+ _globals['_SYNCACTIONVALUE_SUBSCRIPTIONACTION']._serialized_start=163649
+ _globals['_SYNCACTIONVALUE_SUBSCRIPTIONACTION']._serialized_end=163740
+ _globals['_SYNCACTIONVALUE_SUBSCRIPTIONSSYNCV2ACTION']._serialized_start=163743
+ _globals['_SYNCACTIONVALUE_SUBSCRIPTIONSSYNCV2ACTION']._serialized_end=164198
+ _globals['_SYNCACTIONVALUE_SUBSCRIPTIONSSYNCV2ACTION_PAIDFEATURE']._serialized_start=163951
+ _globals['_SYNCACTIONVALUE_SUBSCRIPTIONSSYNCV2ACTION_PAIDFEATURE']._serialized_end=164034
+ _globals['_SYNCACTIONVALUE_SUBSCRIPTIONSSYNCV2ACTION_SUBSCRIPTIONINFO']._serialized_start=164037
+ _globals['_SYNCACTIONVALUE_SUBSCRIPTIONSSYNCV2ACTION_SUBSCRIPTIONINFO']._serialized_end=164198
+ _globals['_SYNCACTIONVALUE_SYNCACTIONMESSAGE']._serialized_start=164200
+ _globals['_SYNCACTIONVALUE_SYNCACTIONMESSAGE']._serialized_end=164273
+ _globals['_SYNCACTIONVALUE_SYNCACTIONMESSAGERANGE']._serialized_start=164276
+ _globals['_SYNCACTIONVALUE_SYNCACTIONMESSAGERANGE']._serialized_end=164429
+ _globals['_SYNCACTIONVALUE_THREADPINACTION']._serialized_start=164431
+ _globals['_SYNCACTIONVALUE_THREADPINACTION']._serialized_end=164464
+ _globals['_SYNCACTIONVALUE_TIMEFORMATACTION']._serialized_start=164466
+ _globals['_SYNCACTIONVALUE_TIMEFORMATACTION']._serialized_end=164523
+ _globals['_SYNCACTIONVALUE_UGCBOT']._serialized_start=164525
+ _globals['_SYNCACTIONVALUE_UGCBOT']._serialized_end=164553
+ _globals['_SYNCACTIONVALUE_UNARCHIVECHATSSETTING']._serialized_start=164555
+ _globals['_SYNCACTIONVALUE_UNARCHIVECHATSSETTING']._serialized_end=164602
+ _globals['_SYNCACTIONVALUE_USERSTATUSMUTEACTION']._serialized_start=164604
+ _globals['_SYNCACTIONVALUE_USERSTATUSMUTEACTION']._serialized_end=164641
+ _globals['_SYNCACTIONVALUE_USERNAMECHATSTARTMODEACTION']._serialized_start=164644
+ _globals['_SYNCACTIONVALUE_USERNAMECHATSTARTMODEACTION']._serialized_end=164799
+ _globals['_SYNCACTIONVALUE_USERNAMECHATSTARTMODEACTION_CHATSTARTMODE']._serialized_start=164767
+ _globals['_SYNCACTIONVALUE_USERNAMECHATSTARTMODEACTION_CHATSTARTMODE']._serialized_end=164799
+ _globals['_SYNCACTIONVALUE_WASAROOTSECRETACTION']._serialized_start=164802
+ _globals['_SYNCACTIONVALUE_WASAROOTSECRETACTION']._serialized_end=165095
+ _globals['_SYNCACTIONVALUE_WASAROOTSECRETACTION_ROOTSECRETENTRY']._serialized_start=164908
+ _globals['_SYNCACTIONVALUE_WASAROOTSECRETACTION_ROOTSECRETENTRY']._serialized_end=165095
+ _globals['_SYNCACTIONVALUE_WASAROOTSECRETACTION_ROOTSECRETENTRY_STATUS']._serialized_start=165061
+ _globals['_SYNCACTIONVALUE_WASAROOTSECRETACTION_ROOTSECRETENTRY_STATUS']._serialized_end=165095
+ _globals['_SYNCACTIONVALUE_WAFFLEACCOUNTLINKSTATEACTION']._serialized_start=165098
+ _globals['_SYNCACTIONVALUE_WAFFLEACCOUNTLINKSTATEACTION']._serialized_end=165278
+ _globals['_SYNCACTIONVALUE_WAFFLEACCOUNTLINKSTATEACTION_ACCOUNTLINKSTATE']._serialized_start=165222
+ _globals['_SYNCACTIONVALUE_WAFFLEACCOUNTLINKSTATEACTION_ACCOUNTLINKSTATE']._serialized_end=165278
+ _globals['_SYNCACTIONVALUE_WAMOUSERIDENTIFIERACTION']._serialized_start=165280
+ _globals['_SYNCACTIONVALUE_WAMOUSERIDENTIFIERACTION']._serialized_end=165326
+ _globals['_SYNCACTIONVALUE_BUSINESSBROADCASTCAMPAIGNSTATUS']._serialized_start=165328
+ _globals['_SYNCACTIONVALUE_BUSINESSBROADCASTCAMPAIGNSTATUS']._serialized_end=165425
+ _globals['_SYNCDINDEX']._serialized_start=165427
+ _globals['_SYNCDINDEX']._serialized_end=165453
+ _globals['_SYNCDMUTATION']._serialized_start=165456
+ _globals['_SYNCDMUTATION']._serialized_end=165608
+ _globals['_SYNCDMUTATION_SYNCDOPERATION']._serialized_start=165571
+ _globals['_SYNCDMUTATION_SYNCDOPERATION']._serialized_end=165608
+ _globals['_SYNCDMUTATIONS']._serialized_start=165610
+ _globals['_SYNCDMUTATIONS']._serialized_end=165670
+ _globals['_SYNCDPATCH']._serialized_start=165673
+ _globals['_SYNCDPATCH']._serialized_end=165985
+ _globals['_SYNCDPLAINTEXTRECORD']._serialized_start=165987
+ _globals['_SYNCDPLAINTEXTRECORD']._serialized_end=166078
+ _globals['_SYNCDRECORD']._serialized_start=166080
+ _globals['_SYNCDRECORD']._serialized_end=166199
+ _globals['_SYNCDSNAPSHOT']._serialized_start=166202
+ _globals['_SYNCDSNAPSHOT']._serialized_end=166343
+ _globals['_SYNCDSNAPSHOTRECOVERY']._serialized_start=166346
+ _globals['_SYNCDSNAPSHOTRECOVERY']._serialized_end=166517
+ _globals['_SYNCDVALUE']._serialized_start=166519
+ _globals['_SYNCDVALUE']._serialized_end=166545
+ _globals['_SYNCDVERSION']._serialized_start=166547
+ _globals['_SYNCDVERSION']._serialized_end=166578
+ _globals['_TAPLINKACTION']._serialized_start=166580
+ _globals['_TAPLINKACTION']._serialized_end=166626
+ _globals['_TEMPLATEBUTTON']._serialized_start=166629
+ _globals['_TEMPLATEBUTTON']._serialized_end=167230
+ _globals['_TEMPLATEBUTTON_CALLBUTTON']._serialized_start=166850
+ _globals['_TEMPLATEBUTTON_CALLBUTTON']._serialized_end=166990
+ _globals['_TEMPLATEBUTTON_QUICKREPLYBUTTON']._serialized_start=166992
+ _globals['_TEMPLATEBUTTON_QUICKREPLYBUTTON']._serialized_end=167086
+ _globals['_TEMPLATEBUTTON_URLBUTTON']._serialized_start=167089
+ _globals['_TEMPLATEBUTTON_URLBUTTON']._serialized_end=167220
+ _globals['_THREADID']._serialized_start=167233
+ _globals['_THREADID']._serialized_end=167395
+ _globals['_THREADID_THREADTYPE']._serialized_start=167337
+ _globals['_THREADID_THREADTYPE']._serialized_end=167395
+ _globals['_UNCOUNTEDASSOCIATEDMESSAGELIST']._serialized_start=167398
+ _globals['_UNCOUNTEDASSOCIATEDMESSAGELIST']._serialized_end=167590
+ _globals['_UNCOUNTEDASSOCIATEDMESSAGELISTWITHMESSAGEBYTES']._serialized_start=167593
+ _globals['_UNCOUNTEDASSOCIATEDMESSAGELISTWITHMESSAGEBYTES']._serialized_end=167746
+ _globals['_URLTRACKINGMAP']._serialized_start=167749
+ _globals['_URLTRACKINGMAP']._serialized_end=167966
+ _globals['_URLTRACKINGMAP_URLTRACKINGMAPELEMENT']._serialized_start=167847
+ _globals['_URLTRACKINGMAP_URLTRACKINGMAPELEMENT']._serialized_end=167966
+ _globals['_USERPASSWORD']._serialized_start=167969
+ _globals['_USERPASSWORD']._serialized_end=168448
+ _globals['_USERPASSWORD_TRANSFORMERARG']._serialized_start=168182
+ _globals['_USERPASSWORD_TRANSFORMERARG']._serialized_end=168336
+ _globals['_USERPASSWORD_TRANSFORMERARG_VALUE']._serialized_start=168273
+ _globals['_USERPASSWORD_TRANSFORMERARG_VALUE']._serialized_end=168336
+ _globals['_USERPASSWORD_ENCODING']._serialized_start=168338
+ _globals['_USERPASSWORD_ENCODING']._serialized_end=168375
+ _globals['_USERPASSWORD_TRANSFORMER']._serialized_start=168377
+ _globals['_USERPASSWORD_TRANSFORMER']._serialized_end=168448
+ _globals['_USERRECEIPT']._serialized_start=168451
+ _globals['_USERRECEIPT']._serialized_end=168609
+ _globals['_VERIFIEDNAMECERTIFICATE']._serialized_start=168612
+ _globals['_VERIFIEDNAMECERTIFICATE']._serialized_end=168832
+ _globals['_VERIFIEDNAMECERTIFICATE_DETAILS']._serialized_start=168701
+ _globals['_VERIFIEDNAMECERTIFICATE_DETAILS']._serialized_end=168832
+ _globals['_VIRTUALDEVICEOUTPUT']._serialized_start=168835
+ _globals['_VIRTUALDEVICEOUTPUT']._serialized_end=169082
+ _globals['_WALLPAPERSETTINGS']._serialized_start=169084
+ _globals['_WALLPAPERSETTINGS']._serialized_end=169155
+ _globals['_WEBFEATURES']._serialized_start=169158
+ _globals['_WEBFEATURES']._serialized_end=171688
+ _globals['_WEBFEATURES_FLAG']._serialized_start=171613
+ _globals['_WEBFEATURES_FLAG']._serialized_end=171688
+ _globals['_WEBMESSAGEINFO']._serialized_start=171691
+ _globals['_WEBMESSAGEINFO']._serialized_end=182391
+ _globals['_WEBMESSAGEINFO_BIZPRIVACYSTATUS']._serialized_start=174436
+ _globals['_WEBMESSAGEINFO_BIZPRIVACYSTATUS']._serialized_end=174497
+ _globals['_WEBMESSAGEINFO_STATUS']._serialized_start=174499
+ _globals['_WEBMESSAGEINFO_STATUS']._serialized_end=174587
+ _globals['_WEBMESSAGEINFO_STUBTYPE']._serialized_start=174590
+ _globals['_WEBMESSAGEINFO_STUBTYPE']._serialized_end=182391
+ _globals['_WEBMESSAGEINFOWITHMESSAGEBYTES']._serialized_start=182393
+ _globals['_WEBMESSAGEINFOWITHMESSAGEBYTES']._serialized_end=182482
+ _globals['_WEBNOTIFICATIONSINFO']._serialized_start=182485
+ _globals['_WEBNOTIFICATIONSINFO']._serialized_end=182625
+ _globals['_WRAPTRANSPORTSIGNINGPUBLICKEYINPUT']._serialized_start=182627
+ _globals['_WRAPTRANSPORTSIGNINGPUBLICKEYINPUT']._serialized_end=182681
+ _globals['_WRAPTRANSPORTSIGNINGPUBLICKEYRESULT']._serialized_start=182683
+ _globals['_WRAPTRANSPORTSIGNINGPUBLICKEYRESULT']._serialized_end=182741
+ _globals['_WRAPTRANSPORTSIGNINGSECRETKEYINPUT']._serialized_start=182743
+ _globals['_WRAPTRANSPORTSIGNINGSECRETKEYINPUT']._serialized_end=182797
+ _globals['_WRAPTRANSPORTSIGNINGSECRETKEYRESULT']._serialized_start=182799
+ _globals['_WRAPTRANSPORTSIGNINGSECRETKEYRESULT']._serialized_end=182857
# @@protoc_insertion_point(module_scope)
diff --git a/python/tryx/waproto/whatsapp_pb2.pyi b/python/tryx/waproto/whatsapp_pb2.pyi
index 7638688..41273d8 100644
--- a/python/tryx/waproto/whatsapp_pb2.pyi
+++ b/python/tryx/waproto/whatsapp_pb2.pyi
@@ -155,6 +155,7 @@ class _BotMetricsEntryPointEnumTypeWrapper(_enum_type_wrapper._EnumTypeWrapper[_
GROUP_MEMBER: _BotMetricsEntryPoint.ValueType # 54
CHATLIST_SEARCH: _BotMetricsEntryPoint.ValueType # 55
NEW_CHAT_LIST: _BotMetricsEntryPoint.ValueType # 56
+ CONTACTS_TAB: _BotMetricsEntryPoint.ValueType # 57
class BotMetricsEntryPoint(_BotMetricsEntryPoint, metaclass=_BotMetricsEntryPointEnumTypeWrapper): ...
@@ -206,6 +207,7 @@ WEB_NAVIGATION_BAR: BotMetricsEntryPoint.ValueType # 47
GROUP_MEMBER: BotMetricsEntryPoint.ValueType # 54
CHATLIST_SEARCH: BotMetricsEntryPoint.ValueType # 55
NEW_CHAT_LIST: BotMetricsEntryPoint.ValueType # 56
+CONTACTS_TAB: BotMetricsEntryPoint.ValueType # 57
Global___BotMetricsEntryPoint: _TypeAlias = BotMetricsEntryPoint # noqa: Y015
class _BotMetricsThreadEntryPoint:
@@ -338,6 +340,236 @@ CRITICAL_BLOCK: CollectionName.ValueType # 4
CRITICAL_UNBLOCK_LOW: CollectionName.ValueType # 5
Global___CollectionName: _TypeAlias = CollectionName # noqa: Y015
+class _EXTENDED_CONTENT_MESSAGE_CTA_BUTTON_TYPE:
+ ValueType = _typing.NewType("ValueType", _builtins.int)
+ V: _TypeAlias = ValueType # noqa: Y015
+
+class _EXTENDED_CONTENT_MESSAGE_CTA_BUTTON_TYPEEnumTypeWrapper(_enum_type_wrapper._EnumTypeWrapper[_EXTENDED_CONTENT_MESSAGE_CTA_BUTTON_TYPE.ValueType], _builtins.type):
+ DESCRIPTOR: _descriptor.EnumDescriptor
+ OPEN_NATIVE: _EXTENDED_CONTENT_MESSAGE_CTA_BUTTON_TYPE.ValueType # 11
+
+class EXTENDED_CONTENT_MESSAGE_CTA_BUTTON_TYPE(_EXTENDED_CONTENT_MESSAGE_CTA_BUTTON_TYPE, metaclass=_EXTENDED_CONTENT_MESSAGE_CTA_BUTTON_TYPEEnumTypeWrapper): ...
+
+OPEN_NATIVE: EXTENDED_CONTENT_MESSAGE_CTA_BUTTON_TYPE.ValueType # 11
+Global___EXTENDED_CONTENT_MESSAGE_CTA_BUTTON_TYPE: _TypeAlias = EXTENDED_CONTENT_MESSAGE_CTA_BUTTON_TYPE # noqa: Y015
+
+class _EXTENDED_CONTENT_MESSAGE_EXTENDED_CONTENT_TYPE:
+ ValueType = _typing.NewType("ValueType", _builtins.int)
+ V: _TypeAlias = ValueType # noqa: Y015
+
+class _EXTENDED_CONTENT_MESSAGE_EXTENDED_CONTENT_TYPEEnumTypeWrapper(_enum_type_wrapper._EnumTypeWrapper[_EXTENDED_CONTENT_MESSAGE_EXTENDED_CONTENT_TYPE.ValueType], _builtins.type):
+ DESCRIPTOR: _descriptor.EnumDescriptor
+ UNSUPPORTED: _EXTENDED_CONTENT_MESSAGE_EXTENDED_CONTENT_TYPE.ValueType # -1
+ IG_STORY_PHOTO_MENTION: _EXTENDED_CONTENT_MESSAGE_EXTENDED_CONTENT_TYPE.ValueType # 4
+ IG_SINGLE_IMAGE_POST_SHARE: _EXTENDED_CONTENT_MESSAGE_EXTENDED_CONTENT_TYPE.ValueType # 9
+ IG_MULTIPOST_SHARE: _EXTENDED_CONTENT_MESSAGE_EXTENDED_CONTENT_TYPE.ValueType # 10
+ IG_SINGLE_VIDEO_POST_SHARE: _EXTENDED_CONTENT_MESSAGE_EXTENDED_CONTENT_TYPE.ValueType # 11
+ IG_STORY_PHOTO_SHARE: _EXTENDED_CONTENT_MESSAGE_EXTENDED_CONTENT_TYPE.ValueType # 12
+ IG_STORY_VIDEO_SHARE: _EXTENDED_CONTENT_MESSAGE_EXTENDED_CONTENT_TYPE.ValueType # 13
+ IG_CLIPS_SHARE: _EXTENDED_CONTENT_MESSAGE_EXTENDED_CONTENT_TYPE.ValueType # 14
+ IG_IGTV_SHARE: _EXTENDED_CONTENT_MESSAGE_EXTENDED_CONTENT_TYPE.ValueType # 15
+ IG_SHOP_SHARE: _EXTENDED_CONTENT_MESSAGE_EXTENDED_CONTENT_TYPE.ValueType # 16
+ IG_PROFILE_SHARE: _EXTENDED_CONTENT_MESSAGE_EXTENDED_CONTENT_TYPE.ValueType # 19
+ IG_STORY_PHOTO_HIGHLIGHT_SHARE: _EXTENDED_CONTENT_MESSAGE_EXTENDED_CONTENT_TYPE.ValueType # 20
+ IG_STORY_VIDEO_HIGHLIGHT_SHARE: _EXTENDED_CONTENT_MESSAGE_EXTENDED_CONTENT_TYPE.ValueType # 21
+ IG_STORY_REPLY: _EXTENDED_CONTENT_MESSAGE_EXTENDED_CONTENT_TYPE.ValueType # 22
+ IG_STORY_REACTION: _EXTENDED_CONTENT_MESSAGE_EXTENDED_CONTENT_TYPE.ValueType # 23
+ IG_STORY_VIDEO_MENTION: _EXTENDED_CONTENT_MESSAGE_EXTENDED_CONTENT_TYPE.ValueType # 24
+ IG_STORY_HIGHLIGHT_REPLY: _EXTENDED_CONTENT_MESSAGE_EXTENDED_CONTENT_TYPE.ValueType # 25
+ IG_STORY_HIGHLIGHT_REACTION: _EXTENDED_CONTENT_MESSAGE_EXTENDED_CONTENT_TYPE.ValueType # 26
+ IG_EXTERNAL_LINK: _EXTENDED_CONTENT_MESSAGE_EXTENDED_CONTENT_TYPE.ValueType # 27
+ IG_RECEIVER_FETCH: _EXTENDED_CONTENT_MESSAGE_EXTENDED_CONTENT_TYPE.ValueType # 28
+ FB_FEED_SHARE: _EXTENDED_CONTENT_MESSAGE_EXTENDED_CONTENT_TYPE.ValueType # 1000
+ FB_STORY_REPLY: _EXTENDED_CONTENT_MESSAGE_EXTENDED_CONTENT_TYPE.ValueType # 1001
+ FB_STORY_SHARE: _EXTENDED_CONTENT_MESSAGE_EXTENDED_CONTENT_TYPE.ValueType # 1002
+ FB_STORY_MENTION: _EXTENDED_CONTENT_MESSAGE_EXTENDED_CONTENT_TYPE.ValueType # 1003
+ FB_FEED_VIDEO_SHARE: _EXTENDED_CONTENT_MESSAGE_EXTENDED_CONTENT_TYPE.ValueType # 1004
+ FB_GAMING_CUSTOM_UPDATE: _EXTENDED_CONTENT_MESSAGE_EXTENDED_CONTENT_TYPE.ValueType # 1005
+ FB_PRODUCER_STORY_REPLY: _EXTENDED_CONTENT_MESSAGE_EXTENDED_CONTENT_TYPE.ValueType # 1006
+ FB_EVENT: _EXTENDED_CONTENT_MESSAGE_EXTENDED_CONTENT_TYPE.ValueType # 1007
+ FB_FEED_POST_PRIVATE_REPLY: _EXTENDED_CONTENT_MESSAGE_EXTENDED_CONTENT_TYPE.ValueType # 1008
+ FB_SHORT: _EXTENDED_CONTENT_MESSAGE_EXTENDED_CONTENT_TYPE.ValueType # 1009
+ FB_COMMENT_MENTION_SHARE: _EXTENDED_CONTENT_MESSAGE_EXTENDED_CONTENT_TYPE.ValueType # 1010
+ FB_POST_MENTION: _EXTENDED_CONTENT_MESSAGE_EXTENDED_CONTENT_TYPE.ValueType # 1011
+ FB_PROFILE_DIRECTORY_ITEM: _EXTENDED_CONTENT_MESSAGE_EXTENDED_CONTENT_TYPE.ValueType # 1013
+ FB_FEED_POST_REACTION_REPLY: _EXTENDED_CONTENT_MESSAGE_EXTENDED_CONTENT_TYPE.ValueType # 1014
+ FB_QUICKSNAP_REPLY: _EXTENDED_CONTENT_MESSAGE_EXTENDED_CONTENT_TYPE.ValueType # 1015
+ MSG_EXTERNAL_LINK_SHARE: _EXTENDED_CONTENT_MESSAGE_EXTENDED_CONTENT_TYPE.ValueType # 2000
+ MSG_P2P_PAYMENT: _EXTENDED_CONTENT_MESSAGE_EXTENDED_CONTENT_TYPE.ValueType # 2001
+ MSG_LOCATION_SHARING: _EXTENDED_CONTENT_MESSAGE_EXTENDED_CONTENT_TYPE.ValueType # 2002
+ MSG_LOCATION_SHARING_V2: _EXTENDED_CONTENT_MESSAGE_EXTENDED_CONTENT_TYPE.ValueType # 2003
+ MSG_HIGHLIGHTS_TAB_FRIEND_UPDATES_REPLY: _EXTENDED_CONTENT_MESSAGE_EXTENDED_CONTENT_TYPE.ValueType # 2004
+ MSG_HIGHLIGHTS_TAB_LOCAL_EVENT_REPLY: _EXTENDED_CONTENT_MESSAGE_EXTENDED_CONTENT_TYPE.ValueType # 2005
+ MSG_RECEIVER_FETCH: _EXTENDED_CONTENT_MESSAGE_EXTENDED_CONTENT_TYPE.ValueType # 2006
+ MSG_IG_MEDIA_SHARE: _EXTENDED_CONTENT_MESSAGE_EXTENDED_CONTENT_TYPE.ValueType # 2007
+ MSG_GEN_AI_SEARCH_PLUGIN_RESPONSE: _EXTENDED_CONTENT_MESSAGE_EXTENDED_CONTENT_TYPE.ValueType # 2008
+ MSG_REELS_LIST: _EXTENDED_CONTENT_MESSAGE_EXTENDED_CONTENT_TYPE.ValueType # 2009
+ MSG_CONTACT: _EXTENDED_CONTENT_MESSAGE_EXTENDED_CONTENT_TYPE.ValueType # 2010
+ MSG_THREADS_POST_SHARE: _EXTENDED_CONTENT_MESSAGE_EXTENDED_CONTENT_TYPE.ValueType # 2011
+ MSG_FILE: _EXTENDED_CONTENT_MESSAGE_EXTENDED_CONTENT_TYPE.ValueType # 2012
+ MSG_AVATAR_DETAILS: _EXTENDED_CONTENT_MESSAGE_EXTENDED_CONTENT_TYPE.ValueType # 2013
+ MSG_AI_CONTACT: _EXTENDED_CONTENT_MESSAGE_EXTENDED_CONTENT_TYPE.ValueType # 2014
+ MSG_MEMORIES_SHARE: _EXTENDED_CONTENT_MESSAGE_EXTENDED_CONTENT_TYPE.ValueType # 2015
+ MSG_SHARED_ALBUM_REPLY: _EXTENDED_CONTENT_MESSAGE_EXTENDED_CONTENT_TYPE.ValueType # 2016
+ MSG_SHARED_ALBUM: _EXTENDED_CONTENT_MESSAGE_EXTENDED_CONTENT_TYPE.ValueType # 2017
+ MSG_OCCAMADILLO_XMA: _EXTENDED_CONTENT_MESSAGE_EXTENDED_CONTENT_TYPE.ValueType # 2018
+ MSG_GEN_AI_SUBSCRIPTION: _EXTENDED_CONTENT_MESSAGE_EXTENDED_CONTENT_TYPE.ValueType # 2021
+ MSG_GEN_AI_REMINDER: _EXTENDED_CONTENT_MESSAGE_EXTENDED_CONTENT_TYPE.ValueType # 2022
+ MSG_GEN_AI_MEMU_ONBOARDING_RESPONSE: _EXTENDED_CONTENT_MESSAGE_EXTENDED_CONTENT_TYPE.ValueType # 2023
+ MSG_NOTE_REPLY: _EXTENDED_CONTENT_MESSAGE_EXTENDED_CONTENT_TYPE.ValueType # 2024
+ MSG_NOTE_MENTION: _EXTENDED_CONTENT_MESSAGE_EXTENDED_CONTENT_TYPE.ValueType # 2025
+ GEN_AI_ENTITY: _EXTENDED_CONTENT_MESSAGE_EXTENDED_CONTENT_TYPE.ValueType # 2026
+ MSG_OPG_P2P_PAYMENT: _EXTENDED_CONTENT_MESSAGE_EXTENDED_CONTENT_TYPE.ValueType # 2027
+ GEN_AI_RICH_RESPONSE: _EXTENDED_CONTENT_MESSAGE_EXTENDED_CONTENT_TYPE.ValueType # 2028
+ MSG_MUSIC_STICKER: _EXTENDED_CONTENT_MESSAGE_EXTENDED_CONTENT_TYPE.ValueType # 2029
+ MSG_PHONE_NUMBER: _EXTENDED_CONTENT_MESSAGE_EXTENDED_CONTENT_TYPE.ValueType # 2030
+ AI_ACTIVITY_SHARE: _EXTENDED_CONTENT_MESSAGE_EXTENDED_CONTENT_TYPE.ValueType # 2031
+ MSG_PRIVATE_XMA: _EXTENDED_CONTENT_MESSAGE_EXTENDED_CONTENT_TYPE.ValueType # 2032
+ MSG_SOCIAL_CUE_MEMORIES: _EXTENDED_CONTENT_MESSAGE_EXTENDED_CONTENT_TYPE.ValueType # 2033
+ MSG_MANUS_GROWTH_REFERRAL: _EXTENDED_CONTENT_MESSAGE_EXTENDED_CONTENT_TYPE.ValueType # 2060
+ MSG_MOMENT_LINK: _EXTENDED_CONTENT_MESSAGE_EXTENDED_CONTENT_TYPE.ValueType # 2061
+ MSG_HORIZON_WEEL: _EXTENDED_CONTENT_MESSAGE_EXTENDED_CONTENT_TYPE.ValueType # 2062
+ MSG_MOMENT_ADDED: _EXTENDED_CONTENT_MESSAGE_EXTENDED_CONTENT_TYPE.ValueType # 2063
+ RTC_AUDIO_CALL: _EXTENDED_CONTENT_MESSAGE_EXTENDED_CONTENT_TYPE.ValueType # 3000
+ RTC_VIDEO_CALL: _EXTENDED_CONTENT_MESSAGE_EXTENDED_CONTENT_TYPE.ValueType # 3001
+ RTC_MISSED_AUDIO_CALL: _EXTENDED_CONTENT_MESSAGE_EXTENDED_CONTENT_TYPE.ValueType # 3002
+ RTC_MISSED_VIDEO_CALL: _EXTENDED_CONTENT_MESSAGE_EXTENDED_CONTENT_TYPE.ValueType # 3003
+ RTC_GROUP_AUDIO_CALL: _EXTENDED_CONTENT_MESSAGE_EXTENDED_CONTENT_TYPE.ValueType # 3004
+ RTC_GROUP_VIDEO_CALL: _EXTENDED_CONTENT_MESSAGE_EXTENDED_CONTENT_TYPE.ValueType # 3005
+ RTC_MISSED_GROUP_AUDIO_CALL: _EXTENDED_CONTENT_MESSAGE_EXTENDED_CONTENT_TYPE.ValueType # 3006
+ RTC_MISSED_GROUP_VIDEO_CALL: _EXTENDED_CONTENT_MESSAGE_EXTENDED_CONTENT_TYPE.ValueType # 3007
+ RTC_ONGOING_AUDIO_CALL: _EXTENDED_CONTENT_MESSAGE_EXTENDED_CONTENT_TYPE.ValueType # 3008
+ RTC_ONGOING_VIDEO_CALL: _EXTENDED_CONTENT_MESSAGE_EXTENDED_CONTENT_TYPE.ValueType # 3009
+ MSG_RECEIVER_FETCH_FALLBACK: _EXTENDED_CONTENT_MESSAGE_EXTENDED_CONTENT_TYPE.ValueType # 3025
+ DATACLASS_SENDER_COPY: _EXTENDED_CONTENT_MESSAGE_EXTENDED_CONTENT_TYPE.ValueType # 4000
+
+class EXTENDED_CONTENT_MESSAGE_EXTENDED_CONTENT_TYPE(_EXTENDED_CONTENT_MESSAGE_EXTENDED_CONTENT_TYPE, metaclass=_EXTENDED_CONTENT_MESSAGE_EXTENDED_CONTENT_TYPEEnumTypeWrapper): ...
+
+UNSUPPORTED: EXTENDED_CONTENT_MESSAGE_EXTENDED_CONTENT_TYPE.ValueType # -1
+IG_STORY_PHOTO_MENTION: EXTENDED_CONTENT_MESSAGE_EXTENDED_CONTENT_TYPE.ValueType # 4
+IG_SINGLE_IMAGE_POST_SHARE: EXTENDED_CONTENT_MESSAGE_EXTENDED_CONTENT_TYPE.ValueType # 9
+IG_MULTIPOST_SHARE: EXTENDED_CONTENT_MESSAGE_EXTENDED_CONTENT_TYPE.ValueType # 10
+IG_SINGLE_VIDEO_POST_SHARE: EXTENDED_CONTENT_MESSAGE_EXTENDED_CONTENT_TYPE.ValueType # 11
+IG_STORY_PHOTO_SHARE: EXTENDED_CONTENT_MESSAGE_EXTENDED_CONTENT_TYPE.ValueType # 12
+IG_STORY_VIDEO_SHARE: EXTENDED_CONTENT_MESSAGE_EXTENDED_CONTENT_TYPE.ValueType # 13
+IG_CLIPS_SHARE: EXTENDED_CONTENT_MESSAGE_EXTENDED_CONTENT_TYPE.ValueType # 14
+IG_IGTV_SHARE: EXTENDED_CONTENT_MESSAGE_EXTENDED_CONTENT_TYPE.ValueType # 15
+IG_SHOP_SHARE: EXTENDED_CONTENT_MESSAGE_EXTENDED_CONTENT_TYPE.ValueType # 16
+IG_PROFILE_SHARE: EXTENDED_CONTENT_MESSAGE_EXTENDED_CONTENT_TYPE.ValueType # 19
+IG_STORY_PHOTO_HIGHLIGHT_SHARE: EXTENDED_CONTENT_MESSAGE_EXTENDED_CONTENT_TYPE.ValueType # 20
+IG_STORY_VIDEO_HIGHLIGHT_SHARE: EXTENDED_CONTENT_MESSAGE_EXTENDED_CONTENT_TYPE.ValueType # 21
+IG_STORY_REPLY: EXTENDED_CONTENT_MESSAGE_EXTENDED_CONTENT_TYPE.ValueType # 22
+IG_STORY_REACTION: EXTENDED_CONTENT_MESSAGE_EXTENDED_CONTENT_TYPE.ValueType # 23
+IG_STORY_VIDEO_MENTION: EXTENDED_CONTENT_MESSAGE_EXTENDED_CONTENT_TYPE.ValueType # 24
+IG_STORY_HIGHLIGHT_REPLY: EXTENDED_CONTENT_MESSAGE_EXTENDED_CONTENT_TYPE.ValueType # 25
+IG_STORY_HIGHLIGHT_REACTION: EXTENDED_CONTENT_MESSAGE_EXTENDED_CONTENT_TYPE.ValueType # 26
+IG_EXTERNAL_LINK: EXTENDED_CONTENT_MESSAGE_EXTENDED_CONTENT_TYPE.ValueType # 27
+IG_RECEIVER_FETCH: EXTENDED_CONTENT_MESSAGE_EXTENDED_CONTENT_TYPE.ValueType # 28
+FB_FEED_SHARE: EXTENDED_CONTENT_MESSAGE_EXTENDED_CONTENT_TYPE.ValueType # 1000
+FB_STORY_REPLY: EXTENDED_CONTENT_MESSAGE_EXTENDED_CONTENT_TYPE.ValueType # 1001
+FB_STORY_SHARE: EXTENDED_CONTENT_MESSAGE_EXTENDED_CONTENT_TYPE.ValueType # 1002
+FB_STORY_MENTION: EXTENDED_CONTENT_MESSAGE_EXTENDED_CONTENT_TYPE.ValueType # 1003
+FB_FEED_VIDEO_SHARE: EXTENDED_CONTENT_MESSAGE_EXTENDED_CONTENT_TYPE.ValueType # 1004
+FB_GAMING_CUSTOM_UPDATE: EXTENDED_CONTENT_MESSAGE_EXTENDED_CONTENT_TYPE.ValueType # 1005
+FB_PRODUCER_STORY_REPLY: EXTENDED_CONTENT_MESSAGE_EXTENDED_CONTENT_TYPE.ValueType # 1006
+FB_EVENT: EXTENDED_CONTENT_MESSAGE_EXTENDED_CONTENT_TYPE.ValueType # 1007
+FB_FEED_POST_PRIVATE_REPLY: EXTENDED_CONTENT_MESSAGE_EXTENDED_CONTENT_TYPE.ValueType # 1008
+FB_SHORT: EXTENDED_CONTENT_MESSAGE_EXTENDED_CONTENT_TYPE.ValueType # 1009
+FB_COMMENT_MENTION_SHARE: EXTENDED_CONTENT_MESSAGE_EXTENDED_CONTENT_TYPE.ValueType # 1010
+FB_POST_MENTION: EXTENDED_CONTENT_MESSAGE_EXTENDED_CONTENT_TYPE.ValueType # 1011
+FB_PROFILE_DIRECTORY_ITEM: EXTENDED_CONTENT_MESSAGE_EXTENDED_CONTENT_TYPE.ValueType # 1013
+FB_FEED_POST_REACTION_REPLY: EXTENDED_CONTENT_MESSAGE_EXTENDED_CONTENT_TYPE.ValueType # 1014
+FB_QUICKSNAP_REPLY: EXTENDED_CONTENT_MESSAGE_EXTENDED_CONTENT_TYPE.ValueType # 1015
+MSG_EXTERNAL_LINK_SHARE: EXTENDED_CONTENT_MESSAGE_EXTENDED_CONTENT_TYPE.ValueType # 2000
+MSG_P2P_PAYMENT: EXTENDED_CONTENT_MESSAGE_EXTENDED_CONTENT_TYPE.ValueType # 2001
+MSG_LOCATION_SHARING: EXTENDED_CONTENT_MESSAGE_EXTENDED_CONTENT_TYPE.ValueType # 2002
+MSG_LOCATION_SHARING_V2: EXTENDED_CONTENT_MESSAGE_EXTENDED_CONTENT_TYPE.ValueType # 2003
+MSG_HIGHLIGHTS_TAB_FRIEND_UPDATES_REPLY: EXTENDED_CONTENT_MESSAGE_EXTENDED_CONTENT_TYPE.ValueType # 2004
+MSG_HIGHLIGHTS_TAB_LOCAL_EVENT_REPLY: EXTENDED_CONTENT_MESSAGE_EXTENDED_CONTENT_TYPE.ValueType # 2005
+MSG_RECEIVER_FETCH: EXTENDED_CONTENT_MESSAGE_EXTENDED_CONTENT_TYPE.ValueType # 2006
+MSG_IG_MEDIA_SHARE: EXTENDED_CONTENT_MESSAGE_EXTENDED_CONTENT_TYPE.ValueType # 2007
+MSG_GEN_AI_SEARCH_PLUGIN_RESPONSE: EXTENDED_CONTENT_MESSAGE_EXTENDED_CONTENT_TYPE.ValueType # 2008
+MSG_REELS_LIST: EXTENDED_CONTENT_MESSAGE_EXTENDED_CONTENT_TYPE.ValueType # 2009
+MSG_CONTACT: EXTENDED_CONTENT_MESSAGE_EXTENDED_CONTENT_TYPE.ValueType # 2010
+MSG_THREADS_POST_SHARE: EXTENDED_CONTENT_MESSAGE_EXTENDED_CONTENT_TYPE.ValueType # 2011
+MSG_FILE: EXTENDED_CONTENT_MESSAGE_EXTENDED_CONTENT_TYPE.ValueType # 2012
+MSG_AVATAR_DETAILS: EXTENDED_CONTENT_MESSAGE_EXTENDED_CONTENT_TYPE.ValueType # 2013
+MSG_AI_CONTACT: EXTENDED_CONTENT_MESSAGE_EXTENDED_CONTENT_TYPE.ValueType # 2014
+MSG_MEMORIES_SHARE: EXTENDED_CONTENT_MESSAGE_EXTENDED_CONTENT_TYPE.ValueType # 2015
+MSG_SHARED_ALBUM_REPLY: EXTENDED_CONTENT_MESSAGE_EXTENDED_CONTENT_TYPE.ValueType # 2016
+MSG_SHARED_ALBUM: EXTENDED_CONTENT_MESSAGE_EXTENDED_CONTENT_TYPE.ValueType # 2017
+MSG_OCCAMADILLO_XMA: EXTENDED_CONTENT_MESSAGE_EXTENDED_CONTENT_TYPE.ValueType # 2018
+MSG_GEN_AI_SUBSCRIPTION: EXTENDED_CONTENT_MESSAGE_EXTENDED_CONTENT_TYPE.ValueType # 2021
+MSG_GEN_AI_REMINDER: EXTENDED_CONTENT_MESSAGE_EXTENDED_CONTENT_TYPE.ValueType # 2022
+MSG_GEN_AI_MEMU_ONBOARDING_RESPONSE: EXTENDED_CONTENT_MESSAGE_EXTENDED_CONTENT_TYPE.ValueType # 2023
+MSG_NOTE_REPLY: EXTENDED_CONTENT_MESSAGE_EXTENDED_CONTENT_TYPE.ValueType # 2024
+MSG_NOTE_MENTION: EXTENDED_CONTENT_MESSAGE_EXTENDED_CONTENT_TYPE.ValueType # 2025
+GEN_AI_ENTITY: EXTENDED_CONTENT_MESSAGE_EXTENDED_CONTENT_TYPE.ValueType # 2026
+MSG_OPG_P2P_PAYMENT: EXTENDED_CONTENT_MESSAGE_EXTENDED_CONTENT_TYPE.ValueType # 2027
+GEN_AI_RICH_RESPONSE: EXTENDED_CONTENT_MESSAGE_EXTENDED_CONTENT_TYPE.ValueType # 2028
+MSG_MUSIC_STICKER: EXTENDED_CONTENT_MESSAGE_EXTENDED_CONTENT_TYPE.ValueType # 2029
+MSG_PHONE_NUMBER: EXTENDED_CONTENT_MESSAGE_EXTENDED_CONTENT_TYPE.ValueType # 2030
+AI_ACTIVITY_SHARE: EXTENDED_CONTENT_MESSAGE_EXTENDED_CONTENT_TYPE.ValueType # 2031
+MSG_PRIVATE_XMA: EXTENDED_CONTENT_MESSAGE_EXTENDED_CONTENT_TYPE.ValueType # 2032
+MSG_SOCIAL_CUE_MEMORIES: EXTENDED_CONTENT_MESSAGE_EXTENDED_CONTENT_TYPE.ValueType # 2033
+MSG_MANUS_GROWTH_REFERRAL: EXTENDED_CONTENT_MESSAGE_EXTENDED_CONTENT_TYPE.ValueType # 2060
+MSG_MOMENT_LINK: EXTENDED_CONTENT_MESSAGE_EXTENDED_CONTENT_TYPE.ValueType # 2061
+MSG_HORIZON_WEEL: EXTENDED_CONTENT_MESSAGE_EXTENDED_CONTENT_TYPE.ValueType # 2062
+MSG_MOMENT_ADDED: EXTENDED_CONTENT_MESSAGE_EXTENDED_CONTENT_TYPE.ValueType # 2063
+RTC_AUDIO_CALL: EXTENDED_CONTENT_MESSAGE_EXTENDED_CONTENT_TYPE.ValueType # 3000
+RTC_VIDEO_CALL: EXTENDED_CONTENT_MESSAGE_EXTENDED_CONTENT_TYPE.ValueType # 3001
+RTC_MISSED_AUDIO_CALL: EXTENDED_CONTENT_MESSAGE_EXTENDED_CONTENT_TYPE.ValueType # 3002
+RTC_MISSED_VIDEO_CALL: EXTENDED_CONTENT_MESSAGE_EXTENDED_CONTENT_TYPE.ValueType # 3003
+RTC_GROUP_AUDIO_CALL: EXTENDED_CONTENT_MESSAGE_EXTENDED_CONTENT_TYPE.ValueType # 3004
+RTC_GROUP_VIDEO_CALL: EXTENDED_CONTENT_MESSAGE_EXTENDED_CONTENT_TYPE.ValueType # 3005
+RTC_MISSED_GROUP_AUDIO_CALL: EXTENDED_CONTENT_MESSAGE_EXTENDED_CONTENT_TYPE.ValueType # 3006
+RTC_MISSED_GROUP_VIDEO_CALL: EXTENDED_CONTENT_MESSAGE_EXTENDED_CONTENT_TYPE.ValueType # 3007
+RTC_ONGOING_AUDIO_CALL: EXTENDED_CONTENT_MESSAGE_EXTENDED_CONTENT_TYPE.ValueType # 3008
+RTC_ONGOING_VIDEO_CALL: EXTENDED_CONTENT_MESSAGE_EXTENDED_CONTENT_TYPE.ValueType # 3009
+MSG_RECEIVER_FETCH_FALLBACK: EXTENDED_CONTENT_MESSAGE_EXTENDED_CONTENT_TYPE.ValueType # 3025
+DATACLASS_SENDER_COPY: EXTENDED_CONTENT_MESSAGE_EXTENDED_CONTENT_TYPE.ValueType # 4000
+Global___EXTENDED_CONTENT_MESSAGE_EXTENDED_CONTENT_TYPE: _TypeAlias = EXTENDED_CONTENT_MESSAGE_EXTENDED_CONTENT_TYPE # noqa: Y015
+
+class _EXTENDED_CONTENT_MESSAGE_XMA_DATACLASS_TYPE:
+ ValueType = _typing.NewType("ValueType", _builtins.int)
+ V: _TypeAlias = ValueType # noqa: Y015
+
+class _EXTENDED_CONTENT_MESSAGE_XMA_DATACLASS_TYPEEnumTypeWrapper(_enum_type_wrapper._EnumTypeWrapper[_EXTENDED_CONTENT_MESSAGE_XMA_DATACLASS_TYPE.ValueType], _builtins.type):
+ DESCRIPTOR: _descriptor.EnumDescriptor
+ SENDER_COPY: _EXTENDED_CONTENT_MESSAGE_XMA_DATACLASS_TYPE.ValueType # 0
+ SERVER: _EXTENDED_CONTENT_MESSAGE_XMA_DATACLASS_TYPE.ValueType # 1
+ SIGNED_CLIENT: _EXTENDED_CONTENT_MESSAGE_XMA_DATACLASS_TYPE.ValueType # 2
+
+class EXTENDED_CONTENT_MESSAGE_XMA_DATACLASS_TYPE(_EXTENDED_CONTENT_MESSAGE_XMA_DATACLASS_TYPE, metaclass=_EXTENDED_CONTENT_MESSAGE_XMA_DATACLASS_TYPEEnumTypeWrapper): ...
+
+SENDER_COPY: EXTENDED_CONTENT_MESSAGE_XMA_DATACLASS_TYPE.ValueType # 0
+SERVER: EXTENDED_CONTENT_MESSAGE_XMA_DATACLASS_TYPE.ValueType # 1
+SIGNED_CLIENT: EXTENDED_CONTENT_MESSAGE_XMA_DATACLASS_TYPE.ValueType # 2
+Global___EXTENDED_CONTENT_MESSAGE_XMA_DATACLASS_TYPE: _TypeAlias = EXTENDED_CONTENT_MESSAGE_XMA_DATACLASS_TYPE # noqa: Y015
+
+class _EXTENDED_CONTENT_MESSAGE_XMA_LAYOUT_TYPE:
+ ValueType = _typing.NewType("ValueType", _builtins.int)
+ V: _TypeAlias = ValueType # noqa: Y015
+
+class _EXTENDED_CONTENT_MESSAGE_XMA_LAYOUT_TYPEEnumTypeWrapper(_enum_type_wrapper._EnumTypeWrapper[_EXTENDED_CONTENT_MESSAGE_XMA_LAYOUT_TYPE.ValueType], _builtins.type):
+ DESCRIPTOR: _descriptor.EnumDescriptor
+ SINGLE: _EXTENDED_CONTENT_MESSAGE_XMA_LAYOUT_TYPE.ValueType # 0
+ HSCROLL: _EXTENDED_CONTENT_MESSAGE_XMA_LAYOUT_TYPE.ValueType # 1
+ PORTRAIT: _EXTENDED_CONTENT_MESSAGE_XMA_LAYOUT_TYPE.ValueType # 3
+ STANDARD_DXMA: _EXTENDED_CONTENT_MESSAGE_XMA_LAYOUT_TYPE.ValueType # 12
+ LIST_DXMA: _EXTENDED_CONTENT_MESSAGE_XMA_LAYOUT_TYPE.ValueType # 15
+ GRID: _EXTENDED_CONTENT_MESSAGE_XMA_LAYOUT_TYPE.ValueType # 16
+
+class EXTENDED_CONTENT_MESSAGE_XMA_LAYOUT_TYPE(_EXTENDED_CONTENT_MESSAGE_XMA_LAYOUT_TYPE, metaclass=_EXTENDED_CONTENT_MESSAGE_XMA_LAYOUT_TYPEEnumTypeWrapper): ...
+
+SINGLE: EXTENDED_CONTENT_MESSAGE_XMA_LAYOUT_TYPE.ValueType # 0
+HSCROLL: EXTENDED_CONTENT_MESSAGE_XMA_LAYOUT_TYPE.ValueType # 1
+PORTRAIT: EXTENDED_CONTENT_MESSAGE_XMA_LAYOUT_TYPE.ValueType # 3
+STANDARD_DXMA: EXTENDED_CONTENT_MESSAGE_XMA_LAYOUT_TYPE.ValueType # 12
+LIST_DXMA: EXTENDED_CONTENT_MESSAGE_XMA_LAYOUT_TYPE.ValueType # 15
+GRID: EXTENDED_CONTENT_MESSAGE_XMA_LAYOUT_TYPE.ValueType # 16
+Global___EXTENDED_CONTENT_MESSAGE_XMA_LAYOUT_TYPE: _TypeAlias = EXTENDED_CONTENT_MESSAGE_XMA_LAYOUT_TYPE # noqa: Y015
+
class _FUTURE_PROOF_BEHAVIOR:
ValueType = _typing.NewType("ValueType", _builtins.int)
V: _TypeAlias = ValueType # noqa: Y015
@@ -506,6 +738,12 @@ class _MutationPropsEnumTypeWrapper(_enum_type_wrapper._EnumTypeWrapper[_Mutatio
THREAD_PIN_ACTION: _MutationProps.ValueType # 85
AUTO_ORGANIZE_BUSINESS_CHAT_SETTING: _MutationProps.ValueType # 86
BIZ_AI_SETTINGS_NUDGE_ACTION: _MutationProps.ValueType # 87
+ COEX_V2_VERSION_ACTION: _MutationProps.ValueType # 88
+ WASA_ROOT_SECRET_ACTION: _MutationProps.ValueType # 89
+ BUBBLE_LOCK_MESSAGE_ACTION: _MutationProps.ValueType # 90
+ LABEL_SUBLIST_ACTION: _MutationProps.ValueType # 91
+ DEVICE_CAPABILITIES_V2: _MutationProps.ValueType # 92
+ CTWA_MESSAGE_RECEIVED_ACTION: _MutationProps.ValueType # 93
SHARE_OWN_PN: _MutationProps.ValueType # 10001
BUSINESS_BROADCAST_ACTION: _MutationProps.ValueType # 10002
AI_THREAD_DELETE_ACTION: _MutationProps.ValueType # 10003
@@ -593,6 +831,12 @@ SUBSCRIPTIONS_SYNC_V2_ACTION: MutationProps.ValueType # 84
THREAD_PIN_ACTION: MutationProps.ValueType # 85
AUTO_ORGANIZE_BUSINESS_CHAT_SETTING: MutationProps.ValueType # 86
BIZ_AI_SETTINGS_NUDGE_ACTION: MutationProps.ValueType # 87
+COEX_V2_VERSION_ACTION: MutationProps.ValueType # 88
+WASA_ROOT_SECRET_ACTION: MutationProps.ValueType # 89
+BUBBLE_LOCK_MESSAGE_ACTION: MutationProps.ValueType # 90
+LABEL_SUBLIST_ACTION: MutationProps.ValueType # 91
+DEVICE_CAPABILITIES_V2: MutationProps.ValueType # 92
+CTWA_MESSAGE_RECEIVED_ACTION: MutationProps.ValueType # 93
SHARE_OWN_PN: MutationProps.ValueType # 10001
BUSINESS_BROADCAST_ACTION: MutationProps.ValueType # 10002
AI_THREAD_DELETE_ACTION: MutationProps.ValueType # 10003
@@ -647,7 +891,7 @@ Global___WebLinkRenderConfig: _TypeAlias = WebLinkRenderConfig # noqa: Y015
@_typing.final
class ADVDeviceIdentity(_message.Message):
- """/ WhatsApp Version: 2.3000.1040878135"""
+ """/ WhatsApp Version: 2.3000.1045368834"""
DESCRIPTOR: _descriptor.Descriptor
@@ -931,6 +1175,48 @@ class AIMetadataOperation(_message.Message):
Global___AIMetadataOperation: _TypeAlias = AIMetadataOperation # noqa: Y015
+@_typing.final
+class AIProvenance(_message.Message):
+ DESCRIPTOR: _descriptor.Descriptor
+
+ @_typing.final
+ class Metadata(_message.Message):
+ DESCRIPTOR: _descriptor.Descriptor
+
+ CREATEDWITHGENAI_FIELD_NUMBER: _builtins.int
+ EDITEDWITHGENAI_FIELD_NUMBER: _builtins.int
+ createdWithGenAi: _builtins.bool
+ editedWithGenAi: _builtins.bool
+ def __init__(
+ self,
+ *,
+ createdWithGenAi: _builtins.bool | None = ...,
+ editedWithGenAi: _builtins.bool | None = ...,
+ ) -> None: ...
+ _HasFieldArgType: _TypeAlias = _typing.Literal["createdWithGenAi", b"createdWithGenAi", "editedWithGenAi", b"editedWithGenAi"] # noqa: Y015
+ def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ...
+ _ClearFieldArgType: _TypeAlias = _typing.Literal["createdWithGenAi", b"createdWithGenAi", "editedWithGenAi", b"editedWithGenAi"] # noqa: Y015
+ def ClearField(self, field_name: _ClearFieldArgType) -> None: ...
+
+ C2PAMETADATA_FIELD_NUMBER: _builtins.int
+ IPTCMETADATA_FIELD_NUMBER: _builtins.int
+ @_builtins.property
+ def c2PaMetadata(self) -> Global___AIProvenance.Metadata: ...
+ @_builtins.property
+ def iptcMetadata(self) -> Global___AIProvenance.Metadata: ...
+ def __init__(
+ self,
+ *,
+ c2PaMetadata: Global___AIProvenance.Metadata | None = ...,
+ iptcMetadata: Global___AIProvenance.Metadata | None = ...,
+ ) -> None: ...
+ _HasFieldArgType: _TypeAlias = _typing.Literal["c2PaMetadata", b"c2PaMetadata", "iptcMetadata", b"iptcMetadata"] # noqa: Y015
+ def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ...
+ _ClearFieldArgType: _TypeAlias = _typing.Literal["c2PaMetadata", b"c2PaMetadata", "iptcMetadata", b"iptcMetadata"] # noqa: Y015
+ def ClearField(self, field_name: _ClearFieldArgType) -> None: ...
+
+Global___AIProvenance: _TypeAlias = AIProvenance # noqa: Y015
+
@_typing.final
class AIQueryFanout(_message.Message):
DESCRIPTOR: _descriptor.Descriptor
@@ -1070,13 +1356,13 @@ class AIRichResponseContentItemsMetadata(_message.Message):
*,
reelItem: Global___AIRichResponseContentItemsMetadata.AIRichResponseReelItem | None = ...,
) -> None: ...
- _HasFieldArgType: _TypeAlias = _typing.Literal["aIRichResponseContentItem", b"aIRichResponseContentItem", "reelItem", b"reelItem"] # noqa: Y015
+ _HasFieldArgType: _TypeAlias = _typing.Literal["aiRichResponseContentItem", b"aiRichResponseContentItem", "reelItem", b"reelItem"] # noqa: Y015
def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ...
- _ClearFieldArgType: _TypeAlias = _typing.Literal["aIRichResponseContentItem", b"aIRichResponseContentItem", "reelItem", b"reelItem"] # noqa: Y015
+ _ClearFieldArgType: _TypeAlias = _typing.Literal["aiRichResponseContentItem", b"aiRichResponseContentItem", "reelItem", b"reelItem"] # noqa: Y015
def ClearField(self, field_name: _ClearFieldArgType) -> None: ...
- _WhichOneofReturnType_aIRichResponseContentItem: _TypeAlias = _typing.Literal["reelItem"] # noqa: Y015
- _WhichOneofArgType_aIRichResponseContentItem: _TypeAlias = _typing.Literal["aIRichResponseContentItem", b"aIRichResponseContentItem"] # noqa: Y015
- def WhichOneof(self, oneof_group: _WhichOneofArgType_aIRichResponseContentItem) -> _WhichOneofReturnType_aIRichResponseContentItem | None: ...
+ _WhichOneofReturnType_aiRichResponseContentItem: _TypeAlias = _typing.Literal["reelItem"] # noqa: Y015
+ _WhichOneofArgType_aiRichResponseContentItem: _TypeAlias = _typing.Literal["aiRichResponseContentItem", b"aiRichResponseContentItem"] # noqa: Y015
+ def WhichOneof(self, oneof_group: _WhichOneofArgType_aiRichResponseContentItem) -> _WhichOneofReturnType_aiRichResponseContentItem | None: ...
@_typing.final
class AIRichResponseReelItem(_message.Message):
@@ -1736,6 +2022,30 @@ class AvatarUserSettings(_message.Message):
Global___AvatarUserSettings: _TypeAlias = AvatarUserSettings # noqa: Y015
+@_typing.final
+class BackwardEdge(_message.Message):
+ DESCRIPTOR: _descriptor.Descriptor
+
+ ENCRYPTEDPREVEPOCHANONID_FIELD_NUMBER: _builtins.int
+ ENCRYPTEDPREVEPOCHROOTKEY_FIELD_NUMBER: _builtins.int
+ PREVEPOCHROOTKEYFINGERPRINT_FIELD_NUMBER: _builtins.int
+ encryptedPrevEpochAnonId: _builtins.bytes
+ encryptedPrevEpochRootKey: _builtins.bytes
+ prevEpochRootKeyFingerprint: _builtins.bytes
+ def __init__(
+ self,
+ *,
+ encryptedPrevEpochAnonId: _builtins.bytes | None = ...,
+ encryptedPrevEpochRootKey: _builtins.bytes | None = ...,
+ prevEpochRootKeyFingerprint: _builtins.bytes | None = ...,
+ ) -> None: ...
+ _HasFieldArgType: _TypeAlias = _typing.Literal["encryptedPrevEpochAnonId", b"encryptedPrevEpochAnonId", "encryptedPrevEpochRootKey", b"encryptedPrevEpochRootKey", "prevEpochRootKeyFingerprint", b"prevEpochRootKeyFingerprint"] # noqa: Y015
+ def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ...
+ _ClearFieldArgType: _TypeAlias = _typing.Literal["encryptedPrevEpochAnonId", b"encryptedPrevEpochAnonId", "encryptedPrevEpochRootKey", b"encryptedPrevEpochRootKey", "prevEpochRootKeyFingerprint", b"prevEpochRootKeyFingerprint"] # noqa: Y015
+ def ClearField(self, field_name: _ClearFieldArgType) -> None: ...
+
+Global___BackwardEdge: _TypeAlias = BackwardEdge # noqa: Y015
+
@_typing.final
class BizAccountLinkInfo(_message.Message):
DESCRIPTOR: _descriptor.Descriptor
@@ -1935,15 +2245,18 @@ class BotAgentDeepLinkMetadata(_message.Message):
DESCRIPTOR: _descriptor.Descriptor
TOKEN_FIELD_NUMBER: _builtins.int
+ CLIENTPUBLICKEY_FIELD_NUMBER: _builtins.int
token: _builtins.str
+ clientPublicKey: _builtins.bytes
def __init__(
self,
*,
token: _builtins.str | None = ...,
+ clientPublicKey: _builtins.bytes | None = ...,
) -> None: ...
- _HasFieldArgType: _TypeAlias = _typing.Literal["token", b"token"] # noqa: Y015
+ _HasFieldArgType: _TypeAlias = _typing.Literal["clientPublicKey", b"clientPublicKey", "token", b"token"] # noqa: Y015
def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ...
- _ClearFieldArgType: _TypeAlias = _typing.Literal["token", b"token"] # noqa: Y015
+ _ClearFieldArgType: _TypeAlias = _typing.Literal["clientPublicKey", b"clientPublicKey", "token", b"token"] # noqa: Y015
def ClearField(self, field_name: _ClearFieldArgType) -> None: ...
Global___BotAgentDeepLinkMetadata: _TypeAlias = BotAgentDeepLinkMetadata # noqa: Y015
@@ -2043,6 +2356,10 @@ class BotCapabilityMetadata(_message.Message):
UNIFIED_RESPONSE_MARKDOWN_LINKS_ENABLED: BotCapabilityMetadata._BotCapabilityType.ValueType # 63
AI_RICH_RESPONSE_MAPS_V2_ENABLED: BotCapabilityMetadata._BotCapabilityType.ValueType # 64
AI_SUBSCRIPTION_METERING_ENABLED: BotCapabilityMetadata._BotCapabilityType.ValueType # 65
+ RICH_RESPONSE_SPORTS_WIDGET_ENABLED: BotCapabilityMetadata._BotCapabilityType.ValueType # 66
+ AI_RICH_RESPONSE_ARTIFACTS_ENABLED: BotCapabilityMetadata._BotCapabilityType.ValueType # 67
+ AI_RICH_RESPONSE_EMAIL_CALENDAR_ENABLED: BotCapabilityMetadata._BotCapabilityType.ValueType # 68
+ AI_RICH_RESPONSE_REMINDERS_ENABLED: BotCapabilityMetadata._BotCapabilityType.ValueType # 69
class BotCapabilityType(_BotCapabilityType, metaclass=_BotCapabilityTypeEnumTypeWrapper): ...
UNKNOWN: BotCapabilityMetadata.BotCapabilityType.ValueType # 0
@@ -2111,6 +2428,10 @@ class BotCapabilityMetadata(_message.Message):
UNIFIED_RESPONSE_MARKDOWN_LINKS_ENABLED: BotCapabilityMetadata.BotCapabilityType.ValueType # 63
AI_RICH_RESPONSE_MAPS_V2_ENABLED: BotCapabilityMetadata.BotCapabilityType.ValueType # 64
AI_SUBSCRIPTION_METERING_ENABLED: BotCapabilityMetadata.BotCapabilityType.ValueType # 65
+ RICH_RESPONSE_SPORTS_WIDGET_ENABLED: BotCapabilityMetadata.BotCapabilityType.ValueType # 66
+ AI_RICH_RESPONSE_ARTIFACTS_ENABLED: BotCapabilityMetadata.BotCapabilityType.ValueType # 67
+ AI_RICH_RESPONSE_EMAIL_CALENDAR_ENABLED: BotCapabilityMetadata.BotCapabilityType.ValueType # 68
+ AI_RICH_RESPONSE_REMINDERS_ENABLED: BotCapabilityMetadata.BotCapabilityType.ValueType # 69
CAPABILITIES_FIELD_NUMBER: _builtins.int
@_builtins.property
@@ -2530,6 +2851,23 @@ class BotGroupParticipantMetadata(_message.Message):
Global___BotGroupParticipantMetadata: _TypeAlias = BotGroupParticipantMetadata # noqa: Y015
+@_typing.final
+class BotHistoryShareMetadata(_message.Message):
+ DESCRIPTOR: _descriptor.Descriptor
+
+ PARTICIPANTSMETADATA_FIELD_NUMBER: _builtins.int
+ @_builtins.property
+ def participantsMetadata(self) -> _containers.RepeatedCompositeFieldContainer[Global___BotGroupParticipantMetadata]: ...
+ def __init__(
+ self,
+ *,
+ participantsMetadata: _abc.Iterable[Global___BotGroupParticipantMetadata] | None = ...,
+ ) -> None: ...
+ _ClearFieldArgType: _TypeAlias = _typing.Literal["participantsMetadata", b"participantsMetadata"] # noqa: Y015
+ def ClearField(self, field_name: _ClearFieldArgType) -> None: ...
+
+Global___BotHistoryShareMetadata: _TypeAlias = BotHistoryShareMetadata # noqa: Y015
+
@_typing.final
class BotImagineMetadata(_message.Message):
DESCRIPTOR: _descriptor.Descriptor
@@ -2889,6 +3227,7 @@ class BotMetadata(_message.Message):
RESOLVEDTOOLCALLMETADATA_FIELD_NUMBER: _builtins.int
SUBSCRIPTIONUPSELLMETADATA_FIELD_NUMBER: _builtins.int
PTTPROMPTMETADATA_FIELD_NUMBER: _builtins.int
+ BOTHISTORYSHAREMETADATA_FIELD_NUMBER: _builtins.int
INTERNALMETADATA_FIELD_NUMBER: _builtins.int
personaId: _builtins.str
invokerJid: _builtins.str
@@ -2966,6 +3305,8 @@ class BotMetadata(_message.Message):
def subscriptionUpsellMetadata(self) -> Global___AISubscriptionUpsellMetadata: ...
@_builtins.property
def pttPromptMetadata(self) -> Global___BotPttPromptMetadata: ...
+ @_builtins.property
+ def botHistoryShareMetadata(self) -> Global___BotHistoryShareMetadata: ...
def __init__(
self,
*,
@@ -3010,11 +3351,12 @@ class BotMetadata(_message.Message):
resolvedToolCallMetadata: Global___BotResolvedToolCallMetadata | None = ...,
subscriptionUpsellMetadata: Global___AISubscriptionUpsellMetadata | None = ...,
pttPromptMetadata: Global___BotPttPromptMetadata | None = ...,
+ botHistoryShareMetadata: Global___BotHistoryShareMetadata | None = ...,
internalMetadata: _builtins.bytes | None = ...,
) -> None: ...
- _HasFieldArgType: _TypeAlias = _typing.Literal["aiConversationContext", b"aiConversationContext", "aiMediaCollectionMetadata", b"aiMediaCollectionMetadata", "botAgeCollectionMetadata", b"botAgeCollectionMetadata", "botDocumentMessageMetadata", b"botDocumentMessageMetadata", "botGroupMetadata", b"botGroupMetadata", "botInfrastructureDiagnostics", b"botInfrastructureDiagnostics", "botLinkedAccountsMetadata", b"botLinkedAccountsMetadata", "botMessageOriginMetadata", b"botMessageOriginMetadata", "botMetricsMetadata", b"botMetricsMetadata", "botModeSelectionMetadata", b"botModeSelectionMetadata", "botPromotionMessageMetadata", b"botPromotionMessageMetadata", "botQuotaMetadata", b"botQuotaMetadata", "botRenderingConfigMetadata", b"botRenderingConfigMetadata", "botResponseId", b"botResponseId", "botThreadInfo", b"botThreadInfo", "capabilityMetadata", b"capabilityMetadata", "commandMetadata", b"commandMetadata", "conversationStarterPromptId", b"conversationStarterPromptId", "imagineMetadata", b"imagineMetadata", "inThreadSurveyMetadata", b"inThreadSurveyMetadata", "internalMetadata", b"internalMetadata", "invokerJid", b"invokerJid", "memoryMetadata", b"memoryMetadata", "memuMetadata", b"memuMetadata", "messageDisclaimerText", b"messageDisclaimerText", "modelMetadata", b"modelMetadata", "personaId", b"personaId", "pluginMetadata", b"pluginMetadata", "progressIndicatorMetadata", b"progressIndicatorMetadata", "pttPromptMetadata", b"pttPromptMetadata", "regenerateMetadata", b"regenerateMetadata", "reminderMetadata", b"reminderMetadata", "renderingMetadata", b"renderingMetadata", "resolvedToolCallMetadata", b"resolvedToolCallMetadata", "richResponseSourcesMetadata", b"richResponseSourcesMetadata", "sessionMetadata", b"sessionMetadata", "sessionTransparencyMetadata", b"sessionTransparencyMetadata", "subscriptionUpsellMetadata", b"subscriptionUpsellMetadata", "suggestedPromptMetadata", b"suggestedPromptMetadata", "timezone", b"timezone", "unifiedResponseMutation", b"unifiedResponseMutation", "verificationMetadata", b"verificationMetadata"] # noqa: Y015
+ _HasFieldArgType: _TypeAlias = _typing.Literal["aiConversationContext", b"aiConversationContext", "aiMediaCollectionMetadata", b"aiMediaCollectionMetadata", "botAgeCollectionMetadata", b"botAgeCollectionMetadata", "botDocumentMessageMetadata", b"botDocumentMessageMetadata", "botGroupMetadata", b"botGroupMetadata", "botHistoryShareMetadata", b"botHistoryShareMetadata", "botInfrastructureDiagnostics", b"botInfrastructureDiagnostics", "botLinkedAccountsMetadata", b"botLinkedAccountsMetadata", "botMessageOriginMetadata", b"botMessageOriginMetadata", "botMetricsMetadata", b"botMetricsMetadata", "botModeSelectionMetadata", b"botModeSelectionMetadata", "botPromotionMessageMetadata", b"botPromotionMessageMetadata", "botQuotaMetadata", b"botQuotaMetadata", "botRenderingConfigMetadata", b"botRenderingConfigMetadata", "botResponseId", b"botResponseId", "botThreadInfo", b"botThreadInfo", "capabilityMetadata", b"capabilityMetadata", "commandMetadata", b"commandMetadata", "conversationStarterPromptId", b"conversationStarterPromptId", "imagineMetadata", b"imagineMetadata", "inThreadSurveyMetadata", b"inThreadSurveyMetadata", "internalMetadata", b"internalMetadata", "invokerJid", b"invokerJid", "memoryMetadata", b"memoryMetadata", "memuMetadata", b"memuMetadata", "messageDisclaimerText", b"messageDisclaimerText", "modelMetadata", b"modelMetadata", "personaId", b"personaId", "pluginMetadata", b"pluginMetadata", "progressIndicatorMetadata", b"progressIndicatorMetadata", "pttPromptMetadata", b"pttPromptMetadata", "regenerateMetadata", b"regenerateMetadata", "reminderMetadata", b"reminderMetadata", "renderingMetadata", b"renderingMetadata", "resolvedToolCallMetadata", b"resolvedToolCallMetadata", "richResponseSourcesMetadata", b"richResponseSourcesMetadata", "sessionMetadata", b"sessionMetadata", "sessionTransparencyMetadata", b"sessionTransparencyMetadata", "subscriptionUpsellMetadata", b"subscriptionUpsellMetadata", "suggestedPromptMetadata", b"suggestedPromptMetadata", "timezone", b"timezone", "unifiedResponseMutation", b"unifiedResponseMutation", "verificationMetadata", b"verificationMetadata"] # noqa: Y015
def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ...
- _ClearFieldArgType: _TypeAlias = _typing.Literal["aiConversationContext", b"aiConversationContext", "aiMediaCollectionMetadata", b"aiMediaCollectionMetadata", "botAgeCollectionMetadata", b"botAgeCollectionMetadata", "botDocumentMessageMetadata", b"botDocumentMessageMetadata", "botGroupMetadata", b"botGroupMetadata", "botInfrastructureDiagnostics", b"botInfrastructureDiagnostics", "botLinkedAccountsMetadata", b"botLinkedAccountsMetadata", "botMessageOriginMetadata", b"botMessageOriginMetadata", "botMetricsMetadata", b"botMetricsMetadata", "botModeSelectionMetadata", b"botModeSelectionMetadata", "botPromotionMessageMetadata", b"botPromotionMessageMetadata", "botQuotaMetadata", b"botQuotaMetadata", "botRenderingConfigMetadata", b"botRenderingConfigMetadata", "botResponseId", b"botResponseId", "botThreadInfo", b"botThreadInfo", "capabilityMetadata", b"capabilityMetadata", "commandMetadata", b"commandMetadata", "conversationStarterPromptId", b"conversationStarterPromptId", "imagineMetadata", b"imagineMetadata", "inThreadSurveyMetadata", b"inThreadSurveyMetadata", "internalMetadata", b"internalMetadata", "invokerJid", b"invokerJid", "memoryMetadata", b"memoryMetadata", "memuMetadata", b"memuMetadata", "messageDisclaimerText", b"messageDisclaimerText", "modelMetadata", b"modelMetadata", "personaId", b"personaId", "pluginMetadata", b"pluginMetadata", "progressIndicatorMetadata", b"progressIndicatorMetadata", "pttPromptMetadata", b"pttPromptMetadata", "regenerateMetadata", b"regenerateMetadata", "reminderMetadata", b"reminderMetadata", "renderingMetadata", b"renderingMetadata", "resolvedToolCallMetadata", b"resolvedToolCallMetadata", "richResponseSourcesMetadata", b"richResponseSourcesMetadata", "sessionMetadata", b"sessionMetadata", "sessionTransparencyMetadata", b"sessionTransparencyMetadata", "subscriptionUpsellMetadata", b"subscriptionUpsellMetadata", "suggestedPromptMetadata", b"suggestedPromptMetadata", "timezone", b"timezone", "unifiedResponseMutation", b"unifiedResponseMutation", "verificationMetadata", b"verificationMetadata"] # noqa: Y015
+ _ClearFieldArgType: _TypeAlias = _typing.Literal["aiConversationContext", b"aiConversationContext", "aiMediaCollectionMetadata", b"aiMediaCollectionMetadata", "botAgeCollectionMetadata", b"botAgeCollectionMetadata", "botDocumentMessageMetadata", b"botDocumentMessageMetadata", "botGroupMetadata", b"botGroupMetadata", "botHistoryShareMetadata", b"botHistoryShareMetadata", "botInfrastructureDiagnostics", b"botInfrastructureDiagnostics", "botLinkedAccountsMetadata", b"botLinkedAccountsMetadata", "botMessageOriginMetadata", b"botMessageOriginMetadata", "botMetricsMetadata", b"botMetricsMetadata", "botModeSelectionMetadata", b"botModeSelectionMetadata", "botPromotionMessageMetadata", b"botPromotionMessageMetadata", "botQuotaMetadata", b"botQuotaMetadata", "botRenderingConfigMetadata", b"botRenderingConfigMetadata", "botResponseId", b"botResponseId", "botThreadInfo", b"botThreadInfo", "capabilityMetadata", b"capabilityMetadata", "commandMetadata", b"commandMetadata", "conversationStarterPromptId", b"conversationStarterPromptId", "imagineMetadata", b"imagineMetadata", "inThreadSurveyMetadata", b"inThreadSurveyMetadata", "internalMetadata", b"internalMetadata", "invokerJid", b"invokerJid", "memoryMetadata", b"memoryMetadata", "memuMetadata", b"memuMetadata", "messageDisclaimerText", b"messageDisclaimerText", "modelMetadata", b"modelMetadata", "personaId", b"personaId", "pluginMetadata", b"pluginMetadata", "progressIndicatorMetadata", b"progressIndicatorMetadata", "pttPromptMetadata", b"pttPromptMetadata", "regenerateMetadata", b"regenerateMetadata", "reminderMetadata", b"reminderMetadata", "renderingMetadata", b"renderingMetadata", "resolvedToolCallMetadata", b"resolvedToolCallMetadata", "richResponseSourcesMetadata", b"richResponseSourcesMetadata", "sessionMetadata", b"sessionMetadata", "sessionTransparencyMetadata", b"sessionTransparencyMetadata", "subscriptionUpsellMetadata", b"subscriptionUpsellMetadata", "suggestedPromptMetadata", b"suggestedPromptMetadata", "timezone", b"timezone", "unifiedResponseMutation", b"unifiedResponseMutation", "verificationMetadata", b"verificationMetadata"] # noqa: Y015
def ClearField(self, field_name: _ClearFieldArgType) -> None: ...
Global___BotMetadata: _TypeAlias = BotMetadata # noqa: Y015
@@ -3739,22 +4081,48 @@ class BotSignatureVerificationUseCaseProof(_message.Message):
WA_BOT_MSG: BotSignatureVerificationUseCaseProof._BotSignatureUseCase.ValueType # 1
WA_TEE_BOT_MSG: BotSignatureVerificationUseCaseProof._BotSignatureUseCase.ValueType # 2
P2P_PILLS: BotSignatureVerificationUseCaseProof._BotSignatureUseCase.ValueType # 3
+ WA_WAFFLE: BotSignatureVerificationUseCaseProof._BotSignatureUseCase.ValueType # 4
+ WA_FEATURE_PKI: BotSignatureVerificationUseCaseProof._BotSignatureUseCase.ValueType # 5
class BotSignatureUseCase(_BotSignatureUseCase, metaclass=_BotSignatureUseCaseEnumTypeWrapper): ...
UNSPECIFIED: BotSignatureVerificationUseCaseProof.BotSignatureUseCase.ValueType # 0
WA_BOT_MSG: BotSignatureVerificationUseCaseProof.BotSignatureUseCase.ValueType # 1
WA_TEE_BOT_MSG: BotSignatureVerificationUseCaseProof.BotSignatureUseCase.ValueType # 2
P2P_PILLS: BotSignatureVerificationUseCaseProof.BotSignatureUseCase.ValueType # 3
+ WA_WAFFLE: BotSignatureVerificationUseCaseProof.BotSignatureUseCase.ValueType # 4
+ WA_FEATURE_PKI: BotSignatureVerificationUseCaseProof.BotSignatureUseCase.ValueType # 5
+
+ @_typing.final
+ class CertificateSKI(_message.Message):
+ DESCRIPTOR: _descriptor.Descriptor
+
+ USECASE_FIELD_NUMBER: _builtins.int
+ SKI_FIELD_NUMBER: _builtins.int
+ useCase: Global___BotSignatureVerificationUseCaseProof.BotSignatureUseCase.ValueType
+ ski: _builtins.bytes
+ def __init__(
+ self,
+ *,
+ useCase: Global___BotSignatureVerificationUseCaseProof.BotSignatureUseCase.ValueType | None = ...,
+ ski: _builtins.bytes | None = ...,
+ ) -> None: ...
+ _HasFieldArgType: _TypeAlias = _typing.Literal["ski", b"ski", "useCase", b"useCase"] # noqa: Y015
+ def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ...
+ _ClearFieldArgType: _TypeAlias = _typing.Literal["ski", b"ski", "useCase", b"useCase"] # noqa: Y015
+ def ClearField(self, field_name: _ClearFieldArgType) -> None: ...
VERSION_FIELD_NUMBER: _builtins.int
USECASE_FIELD_NUMBER: _builtins.int
SIGNATURE_FIELD_NUMBER: _builtins.int
CERTIFICATECHAIN_FIELD_NUMBER: _builtins.int
+ CERTIFICATECHAINSKI_FIELD_NUMBER: _builtins.int
version: _builtins.int
useCase: Global___BotSignatureVerificationUseCaseProof.BotSignatureUseCase.ValueType
signature: _builtins.bytes
@_builtins.property
def certificateChain(self) -> _containers.RepeatedScalarFieldContainer[_builtins.bytes]: ...
+ @_builtins.property
+ def certificateChainSki(self) -> _containers.RepeatedCompositeFieldContainer[Global___BotSignatureVerificationUseCaseProof.CertificateSKI]: ...
def __init__(
self,
*,
@@ -3762,10 +4130,11 @@ class BotSignatureVerificationUseCaseProof(_message.Message):
useCase: Global___BotSignatureVerificationUseCaseProof.BotSignatureUseCase.ValueType | None = ...,
signature: _builtins.bytes | None = ...,
certificateChain: _abc.Iterable[_builtins.bytes] | None = ...,
+ certificateChainSki: _abc.Iterable[Global___BotSignatureVerificationUseCaseProof.CertificateSKI] | None = ...,
) -> None: ...
_HasFieldArgType: _TypeAlias = _typing.Literal["signature", b"signature", "useCase", b"useCase", "version", b"version"] # noqa: Y015
def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ...
- _ClearFieldArgType: _TypeAlias = _typing.Literal["certificateChain", b"certificateChain", "signature", b"signature", "useCase", b"useCase", "version", b"version"] # noqa: Y015
+ _ClearFieldArgType: _TypeAlias = _typing.Literal["certificateChain", b"certificateChain", "certificateChainSki", b"certificateChainSki", "signature", b"signature", "useCase", b"useCase", "version", b"version"] # noqa: Y015
def ClearField(self, field_name: _ClearFieldArgType) -> None: ...
Global___BotSignatureVerificationUseCaseProof: _TypeAlias = BotSignatureVerificationUseCaseProof # noqa: Y015
@@ -4678,6 +5047,7 @@ class ClientPayload(_message.Message):
SMART_GLASSES: ClientPayload.UserAgent._Platform.ValueType # 35
BLUE_VR: ClientPayload.UserAgent._Platform.ValueType # 36
AR_WRIST: ClientPayload.UserAgent._Platform.ValueType # 37
+ WAIL: ClientPayload.UserAgent._Platform.ValueType # 38
class Platform(_Platform, metaclass=_PlatformEnumTypeWrapper): ...
ANDROID: ClientPayload.UserAgent.Platform.ValueType # 0
@@ -4718,6 +5088,7 @@ class ClientPayload(_message.Message):
SMART_GLASSES: ClientPayload.UserAgent.Platform.ValueType # 35
BLUE_VR: ClientPayload.UserAgent.Platform.ValueType # 36
AR_WRIST: ClientPayload.UserAgent.Platform.ValueType # 37
+ WAIL: ClientPayload.UserAgent.Platform.ValueType # 38
class _ReleaseChannel:
ValueType = _typing.NewType("ValueType", _builtins.int)
@@ -5050,6 +5421,70 @@ class ClientPayload(_message.Message):
Global___ClientPayload: _TypeAlias = ClientPayload # noqa: Y015
+@_typing.final
+class CoexStateSync(_message.Message):
+ DESCRIPTOR: _descriptor.Descriptor
+
+ @_typing.final
+ class CollectionMutations(_message.Message):
+ DESCRIPTOR: _descriptor.Descriptor
+
+ COLLECTION_FIELD_NUMBER: _builtins.int
+ MUTATIONS_FIELD_NUMBER: _builtins.int
+ collection: _builtins.str
+ @_builtins.property
+ def mutations(self) -> _containers.RepeatedCompositeFieldContainer[Global___CoexStateSync.Mutation]: ...
+ def __init__(
+ self,
+ *,
+ collection: _builtins.str | None = ...,
+ mutations: _abc.Iterable[Global___CoexStateSync.Mutation] | None = ...,
+ ) -> None: ...
+ _HasFieldArgType: _TypeAlias = _typing.Literal["collection", b"collection"] # noqa: Y015
+ def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ...
+ _ClearFieldArgType: _TypeAlias = _typing.Literal["collection", b"collection", "mutations", b"mutations"] # noqa: Y015
+ def ClearField(self, field_name: _ClearFieldArgType) -> None: ...
+
+ @_typing.final
+ class Mutation(_message.Message):
+ DESCRIPTOR: _descriptor.Descriptor
+
+ INDEX_FIELD_NUMBER: _builtins.int
+ VALUE_FIELD_NUMBER: _builtins.int
+ DIRTYVERSION_FIELD_NUMBER: _builtins.int
+ OPERATION_FIELD_NUMBER: _builtins.int
+ dirtyVersion: _builtins.int
+ operation: Global___SyncdMutation.SyncdOperation.ValueType
+ @_builtins.property
+ def index(self) -> Global___SyncdIndex: ...
+ @_builtins.property
+ def value(self) -> Global___SyncdValue: ...
+ def __init__(
+ self,
+ *,
+ index: Global___SyncdIndex | None = ...,
+ value: Global___SyncdValue | None = ...,
+ dirtyVersion: _builtins.int | None = ...,
+ operation: Global___SyncdMutation.SyncdOperation.ValueType | None = ...,
+ ) -> None: ...
+ _HasFieldArgType: _TypeAlias = _typing.Literal["dirtyVersion", b"dirtyVersion", "index", b"index", "operation", b"operation", "value", b"value"] # noqa: Y015
+ def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ...
+ _ClearFieldArgType: _TypeAlias = _typing.Literal["dirtyVersion", b"dirtyVersion", "index", b"index", "operation", b"operation", "value", b"value"] # noqa: Y015
+ def ClearField(self, field_name: _ClearFieldArgType) -> None: ...
+
+ COLLECTIONMUTATIONS_FIELD_NUMBER: _builtins.int
+ @_builtins.property
+ def collectionMutations(self) -> _containers.RepeatedCompositeFieldContainer[Global___CoexStateSync.CollectionMutations]: ...
+ def __init__(
+ self,
+ *,
+ collectionMutations: _abc.Iterable[Global___CoexStateSync.CollectionMutations] | None = ...,
+ ) -> None: ...
+ _ClearFieldArgType: _TypeAlias = _typing.Literal["collectionMutations", b"collectionMutations"] # noqa: Y015
+ def ClearField(self, field_name: _ClearFieldArgType) -> None: ...
+
+Global___CoexStateSync: _TypeAlias = CoexStateSync # noqa: Y015
+
@_typing.final
class CombinedFingerprint(_message.Message):
DESCRIPTOR: _descriptor.Descriptor
@@ -6270,11 +6705,37 @@ class ContextInfo(_message.Message):
_ClearFieldArgType: _TypeAlias = _typing.Literal["pills", b"pills", "verifiedName", b"verifiedName"] # noqa: Y015
def ClearField(self, field_name: _ClearFieldArgType) -> None: ...
+ @_typing.final
+ class UnauthenticatedBusinessMetadata(_message.Message):
+ DESCRIPTOR: _descriptor.Descriptor
+
+ BUSINESSNAME_FIELD_NUMBER: _builtins.int
+ BUSINESSCATEGORY_FIELD_NUMBER: _builtins.int
+ BUSINESSISOPEN_FIELD_NUMBER: _builtins.int
+ BUSINESSISOPENSNAPSHOTMS_FIELD_NUMBER: _builtins.int
+ businessName: _builtins.str
+ businessCategory: _builtins.str
+ businessIsOpen: _builtins.bool
+ businessIsOpenSnapshotMs: _builtins.int
+ def __init__(
+ self,
+ *,
+ businessName: _builtins.str | None = ...,
+ businessCategory: _builtins.str | None = ...,
+ businessIsOpen: _builtins.bool | None = ...,
+ businessIsOpenSnapshotMs: _builtins.int | None = ...,
+ ) -> None: ...
+ _HasFieldArgType: _TypeAlias = _typing.Literal["businessCategory", b"businessCategory", "businessIsOpen", b"businessIsOpen", "businessIsOpenSnapshotMs", b"businessIsOpenSnapshotMs", "businessName", b"businessName"] # noqa: Y015
+ def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ...
+ _ClearFieldArgType: _TypeAlias = _typing.Literal["businessCategory", b"businessCategory", "businessIsOpen", b"businessIsOpen", "businessIsOpenSnapshotMs", b"businessIsOpenSnapshotMs", "businessName", b"businessName"] # noqa: Y015
+ def ClearField(self, field_name: _ClearFieldArgType) -> None: ...
+
BUSINESSJID_FIELD_NUMBER: _builtins.int
PILLS_FIELD_NUMBER: _builtins.int
ENTRYPOINT_FIELD_NUMBER: _builtins.int
SIGNEDPAYLOAD_FIELD_NUMBER: _builtins.int
SIGNATUREENVELOPE_FIELD_NUMBER: _builtins.int
+ UNAUTHENTICATEDBUSINESSMETADATA_FIELD_NUMBER: _builtins.int
businessJid: _builtins.str
entryPoint: Global___ContextInfo.BusinessInteractionPills.EntryPoint.ValueType
signedPayload: _builtins.bytes
@@ -6282,6 +6743,8 @@ class ContextInfo(_message.Message):
def pills(self) -> _containers.RepeatedCompositeFieldContainer[Global___ContextInfo.BusinessInteractionPills.Pill]: ...
@_builtins.property
def signatureEnvelope(self) -> Global___BotSignatureVerificationMetadata: ...
+ @_builtins.property
+ def unauthenticatedBusinessMetadata(self) -> Global___ContextInfo.BusinessInteractionPills.UnauthenticatedBusinessMetadata: ...
def __init__(
self,
*,
@@ -6290,10 +6753,11 @@ class ContextInfo(_message.Message):
entryPoint: Global___ContextInfo.BusinessInteractionPills.EntryPoint.ValueType | None = ...,
signedPayload: _builtins.bytes | None = ...,
signatureEnvelope: Global___BotSignatureVerificationMetadata | None = ...,
+ unauthenticatedBusinessMetadata: Global___ContextInfo.BusinessInteractionPills.UnauthenticatedBusinessMetadata | None = ...,
) -> None: ...
- _HasFieldArgType: _TypeAlias = _typing.Literal["businessJid", b"businessJid", "entryPoint", b"entryPoint", "signatureEnvelope", b"signatureEnvelope", "signedPayload", b"signedPayload"] # noqa: Y015
+ _HasFieldArgType: _TypeAlias = _typing.Literal["businessJid", b"businessJid", "entryPoint", b"entryPoint", "signatureEnvelope", b"signatureEnvelope", "signedPayload", b"signedPayload", "unauthenticatedBusinessMetadata", b"unauthenticatedBusinessMetadata"] # noqa: Y015
def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ...
- _ClearFieldArgType: _TypeAlias = _typing.Literal["businessJid", b"businessJid", "entryPoint", b"entryPoint", "pills", b"pills", "signatureEnvelope", b"signatureEnvelope", "signedPayload", b"signedPayload"] # noqa: Y015
+ _ClearFieldArgType: _TypeAlias = _typing.Literal["businessJid", b"businessJid", "entryPoint", b"entryPoint", "pills", b"pills", "signatureEnvelope", b"signatureEnvelope", "signedPayload", b"signedPayload", "unauthenticatedBusinessMetadata", b"unauthenticatedBusinessMetadata"] # noqa: Y015
def ClearField(self, field_name: _ClearFieldArgType) -> None: ...
@_typing.final
@@ -6591,6 +7055,22 @@ class ContextInfo(_message.Message):
_ClearFieldArgType: _TypeAlias = _typing.Literal["accessibilityText", b"accessibilityText", "contentType", b"contentType", "newsletterJid", b"newsletterJid", "newsletterName", b"newsletterName", "profileName", b"profileName", "serverMessageId", b"serverMessageId"] # noqa: Y015
def ClearField(self, field_name: _ClearFieldArgType) -> None: ...
+ @_typing.final
+ class InstagramThreadLink(_message.Message):
+ DESCRIPTOR: _descriptor.Descriptor
+
+ URL_FIELD_NUMBER: _builtins.int
+ url: _builtins.str
+ def __init__(
+ self,
+ *,
+ url: _builtins.str | None = ...,
+ ) -> None: ...
+ _HasFieldArgType: _TypeAlias = _typing.Literal["url", b"url"] # noqa: Y015
+ def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ...
+ _ClearFieldArgType: _TypeAlias = _typing.Literal["url", b"url"] # noqa: Y015
+ def ClearField(self, field_name: _ClearFieldArgType) -> None: ...
+
@_typing.final
class PartiallySelectedContent(_message.Message):
DESCRIPTOR: _descriptor.Descriptor
@@ -6747,6 +7227,8 @@ class ContextInfo(_message.Message):
CROSSAPPSOURCE_FIELD_NUMBER: _builtins.int
BUSINESSINTERACTIONPILLS_FIELD_NUMBER: _builtins.int
POSTERSTATUSID_FIELD_NUMBER: _builtins.int
+ INSTAGRAMTHREADLINK_FIELD_NUMBER: _builtins.int
+ AIPROVENANCE_FIELD_NUMBER: _builtins.int
stanzaId: _builtins.str
participant: _builtins.str
remoteJid: _builtins.str
@@ -6832,6 +7314,10 @@ class ContextInfo(_message.Message):
def partiallySelectedContent(self) -> Global___ContextInfo.PartiallySelectedContent: ...
@_builtins.property
def businessInteractionPills(self) -> Global___ContextInfo.BusinessInteractionPills: ...
+ @_builtins.property
+ def instagramThreadLink(self) -> Global___ContextInfo.InstagramThreadLink: ...
+ @_builtins.property
+ def aiProvenance(self) -> Global___AIProvenance: ...
def __init__(
self,
*,
@@ -6897,10 +7383,12 @@ class ContextInfo(_message.Message):
crossAppSource: Global___ContextInfo.CrossAppSource.ValueType | None = ...,
businessInteractionPills: Global___ContextInfo.BusinessInteractionPills | None = ...,
posterStatusId: _builtins.str | None = ...,
+ instagramThreadLink: Global___ContextInfo.InstagramThreadLink | None = ...,
+ aiProvenance: Global___AIProvenance | None = ...,
) -> None: ...
- _HasFieldArgType: _TypeAlias = _typing.Literal["actionLink", b"actionLink", "afterReadDuration", b"afterReadDuration", "alwaysShowAdAttribution", b"alwaysShowAdAttribution", "botMessageSharingInfo", b"botMessageSharingInfo", "businessInteractionPills", b"businessInteractionPills", "businessMessageForwardInfo", b"businessMessageForwardInfo", "conversionData", b"conversionData", "conversionDelaySeconds", b"conversionDelaySeconds", "conversionSource", b"conversionSource", "crossAppSource", b"crossAppSource", "ctwaPayload", b"ctwaPayload", "ctwaSignals", b"ctwaSignals", "dataSharingContext", b"dataSharingContext", "disappearingMode", b"disappearingMode", "entryPointConversionApp", b"entryPointConversionApp", "entryPointConversionDelaySeconds", b"entryPointConversionDelaySeconds", "entryPointConversionExternalMedium", b"entryPointConversionExternalMedium", "entryPointConversionExternalSource", b"entryPointConversionExternalSource", "entryPointConversionSource", b"entryPointConversionSource", "ephemeralSettingTimestamp", b"ephemeralSettingTimestamp", "ephemeralSharedSecret", b"ephemeralSharedSecret", "expiration", b"expiration", "externalAdReply", b"externalAdReply", "featureEligibilities", b"featureEligibilities", "forwardOrigin", b"forwardOrigin", "forwardedAiBotMessageInfo", b"forwardedAiBotMessageInfo", "forwardedNewsletterMessageInfo", b"forwardedNewsletterMessageInfo", "forwardingScore", b"forwardingScore", "groupSubject", b"groupSubject", "isForwarded", b"isForwarded", "isGroupStatus", b"isGroupStatus", "isQuestion", b"isQuestion", "isSampled", b"isSampled", "isSpoiler", b"isSpoiler", "mediaDomainInfo", b"mediaDomainInfo", "memberLabel", b"memberLabel", "nonJidMentions", b"nonJidMentions", "pairedMediaType", b"pairedMediaType", "parentGroupJid", b"parentGroupJid", "partiallySelectedContent", b"partiallySelectedContent", "participant", b"participant", "placeholderKey", b"placeholderKey", "posterStatusId", b"posterStatusId", "questionReplyQuotedMessage", b"questionReplyQuotedMessage", "quotedAd", b"quotedAd", "quotedMessage", b"quotedMessage", "quotedType", b"quotedType", "rankingVersion", b"rankingVersion", "remoteJid", b"remoteJid", "smbClientCampaignId", b"smbClientCampaignId", "smbServerCampaignId", b"smbServerCampaignId", "stanzaId", b"stanzaId", "statusAttributionType", b"statusAttributionType", "statusAudienceMetadata", b"statusAudienceMetadata", "statusSourceType", b"statusSourceType", "trustBannerAction", b"trustBannerAction", "trustBannerType", b"trustBannerType", "urlTrackingMap", b"urlTrackingMap", "utm", b"utm"] # noqa: Y015
+ _HasFieldArgType: _TypeAlias = _typing.Literal["actionLink", b"actionLink", "afterReadDuration", b"afterReadDuration", "aiProvenance", b"aiProvenance", "alwaysShowAdAttribution", b"alwaysShowAdAttribution", "botMessageSharingInfo", b"botMessageSharingInfo", "businessInteractionPills", b"businessInteractionPills", "businessMessageForwardInfo", b"businessMessageForwardInfo", "conversionData", b"conversionData", "conversionDelaySeconds", b"conversionDelaySeconds", "conversionSource", b"conversionSource", "crossAppSource", b"crossAppSource", "ctwaPayload", b"ctwaPayload", "ctwaSignals", b"ctwaSignals", "dataSharingContext", b"dataSharingContext", "disappearingMode", b"disappearingMode", "entryPointConversionApp", b"entryPointConversionApp", "entryPointConversionDelaySeconds", b"entryPointConversionDelaySeconds", "entryPointConversionExternalMedium", b"entryPointConversionExternalMedium", "entryPointConversionExternalSource", b"entryPointConversionExternalSource", "entryPointConversionSource", b"entryPointConversionSource", "ephemeralSettingTimestamp", b"ephemeralSettingTimestamp", "ephemeralSharedSecret", b"ephemeralSharedSecret", "expiration", b"expiration", "externalAdReply", b"externalAdReply", "featureEligibilities", b"featureEligibilities", "forwardOrigin", b"forwardOrigin", "forwardedAiBotMessageInfo", b"forwardedAiBotMessageInfo", "forwardedNewsletterMessageInfo", b"forwardedNewsletterMessageInfo", "forwardingScore", b"forwardingScore", "groupSubject", b"groupSubject", "instagramThreadLink", b"instagramThreadLink", "isForwarded", b"isForwarded", "isGroupStatus", b"isGroupStatus", "isQuestion", b"isQuestion", "isSampled", b"isSampled", "isSpoiler", b"isSpoiler", "mediaDomainInfo", b"mediaDomainInfo", "memberLabel", b"memberLabel", "nonJidMentions", b"nonJidMentions", "pairedMediaType", b"pairedMediaType", "parentGroupJid", b"parentGroupJid", "partiallySelectedContent", b"partiallySelectedContent", "participant", b"participant", "placeholderKey", b"placeholderKey", "posterStatusId", b"posterStatusId", "questionReplyQuotedMessage", b"questionReplyQuotedMessage", "quotedAd", b"quotedAd", "quotedMessage", b"quotedMessage", "quotedType", b"quotedType", "rankingVersion", b"rankingVersion", "remoteJid", b"remoteJid", "smbClientCampaignId", b"smbClientCampaignId", "smbServerCampaignId", b"smbServerCampaignId", "stanzaId", b"stanzaId", "statusAttributionType", b"statusAttributionType", "statusAudienceMetadata", b"statusAudienceMetadata", "statusSourceType", b"statusSourceType", "trustBannerAction", b"trustBannerAction", "trustBannerType", b"trustBannerType", "urlTrackingMap", b"urlTrackingMap", "utm", b"utm"] # noqa: Y015
def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ...
- _ClearFieldArgType: _TypeAlias = _typing.Literal["actionLink", b"actionLink", "afterReadDuration", b"afterReadDuration", "alwaysShowAdAttribution", b"alwaysShowAdAttribution", "botMessageSharingInfo", b"botMessageSharingInfo", "businessInteractionPills", b"businessInteractionPills", "businessMessageForwardInfo", b"businessMessageForwardInfo", "conversionData", b"conversionData", "conversionDelaySeconds", b"conversionDelaySeconds", "conversionSource", b"conversionSource", "crossAppSource", b"crossAppSource", "ctwaPayload", b"ctwaPayload", "ctwaSignals", b"ctwaSignals", "dataSharingContext", b"dataSharingContext", "disappearingMode", b"disappearingMode", "entryPointConversionApp", b"entryPointConversionApp", "entryPointConversionDelaySeconds", b"entryPointConversionDelaySeconds", "entryPointConversionExternalMedium", b"entryPointConversionExternalMedium", "entryPointConversionExternalSource", b"entryPointConversionExternalSource", "entryPointConversionSource", b"entryPointConversionSource", "ephemeralSettingTimestamp", b"ephemeralSettingTimestamp", "ephemeralSharedSecret", b"ephemeralSharedSecret", "expiration", b"expiration", "externalAdReply", b"externalAdReply", "featureEligibilities", b"featureEligibilities", "forwardOrigin", b"forwardOrigin", "forwardedAiBotMessageInfo", b"forwardedAiBotMessageInfo", "forwardedNewsletterMessageInfo", b"forwardedNewsletterMessageInfo", "forwardingScore", b"forwardingScore", "groupMentions", b"groupMentions", "groupSubject", b"groupSubject", "isForwarded", b"isForwarded", "isGroupStatus", b"isGroupStatus", "isQuestion", b"isQuestion", "isSampled", b"isSampled", "isSpoiler", b"isSpoiler", "mediaDomainInfo", b"mediaDomainInfo", "memberLabel", b"memberLabel", "mentionedJid", b"mentionedJid", "nonJidMentions", b"nonJidMentions", "pairedMediaType", b"pairedMediaType", "parentGroupJid", b"parentGroupJid", "partiallySelectedContent", b"partiallySelectedContent", "participant", b"participant", "placeholderKey", b"placeholderKey", "posterStatusId", b"posterStatusId", "questionReplyQuotedMessage", b"questionReplyQuotedMessage", "quotedAd", b"quotedAd", "quotedMessage", b"quotedMessage", "quotedType", b"quotedType", "rankingVersion", b"rankingVersion", "remoteJid", b"remoteJid", "smbClientCampaignId", b"smbClientCampaignId", "smbServerCampaignId", b"smbServerCampaignId", "stanzaId", b"stanzaId", "statusAttributionType", b"statusAttributionType", "statusAttributions", b"statusAttributions", "statusAudienceMetadata", b"statusAudienceMetadata", "statusSourceType", b"statusSourceType", "trustBannerAction", b"trustBannerAction", "trustBannerType", b"trustBannerType", "urlTrackingMap", b"urlTrackingMap", "utm", b"utm"] # noqa: Y015
+ _ClearFieldArgType: _TypeAlias = _typing.Literal["actionLink", b"actionLink", "afterReadDuration", b"afterReadDuration", "aiProvenance", b"aiProvenance", "alwaysShowAdAttribution", b"alwaysShowAdAttribution", "botMessageSharingInfo", b"botMessageSharingInfo", "businessInteractionPills", b"businessInteractionPills", "businessMessageForwardInfo", b"businessMessageForwardInfo", "conversionData", b"conversionData", "conversionDelaySeconds", b"conversionDelaySeconds", "conversionSource", b"conversionSource", "crossAppSource", b"crossAppSource", "ctwaPayload", b"ctwaPayload", "ctwaSignals", b"ctwaSignals", "dataSharingContext", b"dataSharingContext", "disappearingMode", b"disappearingMode", "entryPointConversionApp", b"entryPointConversionApp", "entryPointConversionDelaySeconds", b"entryPointConversionDelaySeconds", "entryPointConversionExternalMedium", b"entryPointConversionExternalMedium", "entryPointConversionExternalSource", b"entryPointConversionExternalSource", "entryPointConversionSource", b"entryPointConversionSource", "ephemeralSettingTimestamp", b"ephemeralSettingTimestamp", "ephemeralSharedSecret", b"ephemeralSharedSecret", "expiration", b"expiration", "externalAdReply", b"externalAdReply", "featureEligibilities", b"featureEligibilities", "forwardOrigin", b"forwardOrigin", "forwardedAiBotMessageInfo", b"forwardedAiBotMessageInfo", "forwardedNewsletterMessageInfo", b"forwardedNewsletterMessageInfo", "forwardingScore", b"forwardingScore", "groupMentions", b"groupMentions", "groupSubject", b"groupSubject", "instagramThreadLink", b"instagramThreadLink", "isForwarded", b"isForwarded", "isGroupStatus", b"isGroupStatus", "isQuestion", b"isQuestion", "isSampled", b"isSampled", "isSpoiler", b"isSpoiler", "mediaDomainInfo", b"mediaDomainInfo", "memberLabel", b"memberLabel", "mentionedJid", b"mentionedJid", "nonJidMentions", b"nonJidMentions", "pairedMediaType", b"pairedMediaType", "parentGroupJid", b"parentGroupJid", "partiallySelectedContent", b"partiallySelectedContent", "participant", b"participant", "placeholderKey", b"placeholderKey", "posterStatusId", b"posterStatusId", "questionReplyQuotedMessage", b"questionReplyQuotedMessage", "quotedAd", b"quotedAd", "quotedMessage", b"quotedMessage", "quotedType", b"quotedType", "rankingVersion", b"rankingVersion", "remoteJid", b"remoteJid", "smbClientCampaignId", b"smbClientCampaignId", "smbServerCampaignId", b"smbServerCampaignId", "stanzaId", b"stanzaId", "statusAttributionType", b"statusAttributionType", "statusAttributions", b"statusAttributions", "statusAudienceMetadata", b"statusAudienceMetadata", "statusSourceType", b"statusSourceType", "trustBannerAction", b"trustBannerAction", "trustBannerType", b"trustBannerType", "urlTrackingMap", b"urlTrackingMap", "utm", b"utm"] # noqa: Y015
def ClearField(self, field_name: _ClearFieldArgType) -> None: ...
Global___ContextInfo: _TypeAlias = ContextInfo # noqa: Y015
@@ -7005,6 +7493,7 @@ class Conversation(_message.Message):
APPEALUPDATETIME_FIELD_NUMBER: _builtins.int
AUTHAGENTPARENTCOMPANYNAME_FIELD_NUMBER: _builtins.int
AUTHAGENTOBAPHONENUMBER_FIELD_NUMBER: _builtins.int
+ IDENTITYVERIFICATION_FIELD_NUMBER: _builtins.int
id: _builtins.str
newJid: _builtins.str
oldJid: _builtins.str
@@ -7071,6 +7560,8 @@ class Conversation(_message.Message):
def participant(self) -> _containers.RepeatedCompositeFieldContainer[Global___GroupParticipant]: ...
@_builtins.property
def wallpaper(self) -> Global___WallpaperSettings: ...
+ @_builtins.property
+ def identityVerification(self) -> Global___IdentityVerificationState: ...
def __init__(
self,
*,
@@ -7136,8420 +7627,10803 @@ class Conversation(_message.Message):
appealUpdateTime: _builtins.int | None = ...,
authAgentParentCompanyName: _builtins.str | None = ...,
authAgentObaPhoneNumber: _builtins.str | None = ...,
+ identityVerification: Global___IdentityVerificationState | None = ...,
) -> None: ...
- _HasFieldArgType: _TypeAlias = _typing.Literal["accountLid", b"accountLid", "afterReadDuration", b"afterReadDuration", "appealStatus", b"appealStatus", "appealUpdateTime", b"appealUpdateTime", "archived", b"archived", "authAgentObaPhoneNumber", b"authAgentObaPhoneNumber", "authAgentParentCompanyName", b"authAgentParentCompanyName", "capiCreatedGroup", b"capiCreatedGroup", "commentsCount", b"commentsCount", "contactPrimaryIdentityKey", b"contactPrimaryIdentityKey", "conversationTimestamp", b"conversationTimestamp", "createdAt", b"createdAt", "createdBy", b"createdBy", "description", b"description", "disappearingMode", b"disappearingMode", "displayName", b"displayName", "endOfHistoryTransfer", b"endOfHistoryTransfer", "endOfHistoryTransferType", b"endOfHistoryTransferType", "ephemeralExpiration", b"ephemeralExpiration", "ephemeralSettingTimestamp", b"ephemeralSettingTimestamp", "id", b"id", "isDefaultSubgroup", b"isDefaultSubgroup", "isMarketingMessageThread", b"isMarketingMessageThread", "isParentGroup", b"isParentGroup", "isSenderNewAccount", b"isSenderNewAccount", "isSenderSuspicious", b"isSenderSuspicious", "lastMsgTimestamp", b"lastMsgTimestamp", "lidJid", b"lidJid", "lidOriginType", b"lidOriginType", "limitSharing", b"limitSharing", "limitSharingInitiatedByMe", b"limitSharingInitiatedByMe", "limitSharingSettingTimestamp", b"limitSharingSettingTimestamp", "limitSharingTrigger", b"limitSharingTrigger", "locked", b"locked", "maibaAiThreadEnabled", b"maibaAiThreadEnabled", "markedAsUnread", b"markedAsUnread", "mediaVisibility", b"mediaVisibility", "muteEndTime", b"muteEndTime", "name", b"name", "newJid", b"newJid", "notSpam", b"notSpam", "oldJid", b"oldJid", "pHash", b"pHash", "parentGroupId", b"parentGroupId", "pinned", b"pinned", "pnJid", b"pnJid", "pnhDuplicateLidThread", b"pnhDuplicateLidThread", "readOnly", b"readOnly", "shareOwnPn", b"shareOwnPn", "support", b"support", "suspended", b"suspended", "systemMessageToInsert", b"systemMessageToInsert", "tcToken", b"tcToken", "tcTokenSenderTimestamp", b"tcTokenSenderTimestamp", "tcTokenTimestamp", b"tcTokenTimestamp", "terminated", b"terminated", "unreadCount", b"unreadCount", "unreadMentionCount", b"unreadMentionCount", "username", b"username", "wallpaper", b"wallpaper"] # noqa: Y015
+ _HasFieldArgType: _TypeAlias = _typing.Literal["accountLid", b"accountLid", "afterReadDuration", b"afterReadDuration", "appealStatus", b"appealStatus", "appealUpdateTime", b"appealUpdateTime", "archived", b"archived", "authAgentObaPhoneNumber", b"authAgentObaPhoneNumber", "authAgentParentCompanyName", b"authAgentParentCompanyName", "capiCreatedGroup", b"capiCreatedGroup", "commentsCount", b"commentsCount", "contactPrimaryIdentityKey", b"contactPrimaryIdentityKey", "conversationTimestamp", b"conversationTimestamp", "createdAt", b"createdAt", "createdBy", b"createdBy", "description", b"description", "disappearingMode", b"disappearingMode", "displayName", b"displayName", "endOfHistoryTransfer", b"endOfHistoryTransfer", "endOfHistoryTransferType", b"endOfHistoryTransferType", "ephemeralExpiration", b"ephemeralExpiration", "ephemeralSettingTimestamp", b"ephemeralSettingTimestamp", "id", b"id", "identityVerification", b"identityVerification", "isDefaultSubgroup", b"isDefaultSubgroup", "isMarketingMessageThread", b"isMarketingMessageThread", "isParentGroup", b"isParentGroup", "isSenderNewAccount", b"isSenderNewAccount", "isSenderSuspicious", b"isSenderSuspicious", "lastMsgTimestamp", b"lastMsgTimestamp", "lidJid", b"lidJid", "lidOriginType", b"lidOriginType", "limitSharing", b"limitSharing", "limitSharingInitiatedByMe", b"limitSharingInitiatedByMe", "limitSharingSettingTimestamp", b"limitSharingSettingTimestamp", "limitSharingTrigger", b"limitSharingTrigger", "locked", b"locked", "maibaAiThreadEnabled", b"maibaAiThreadEnabled", "markedAsUnread", b"markedAsUnread", "mediaVisibility", b"mediaVisibility", "muteEndTime", b"muteEndTime", "name", b"name", "newJid", b"newJid", "notSpam", b"notSpam", "oldJid", b"oldJid", "pHash", b"pHash", "parentGroupId", b"parentGroupId", "pinned", b"pinned", "pnJid", b"pnJid", "pnhDuplicateLidThread", b"pnhDuplicateLidThread", "readOnly", b"readOnly", "shareOwnPn", b"shareOwnPn", "support", b"support", "suspended", b"suspended", "systemMessageToInsert", b"systemMessageToInsert", "tcToken", b"tcToken", "tcTokenSenderTimestamp", b"tcTokenSenderTimestamp", "tcTokenTimestamp", b"tcTokenTimestamp", "terminated", b"terminated", "unreadCount", b"unreadCount", "unreadMentionCount", b"unreadMentionCount", "username", b"username", "wallpaper", b"wallpaper"] # noqa: Y015
def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ...
- _ClearFieldArgType: _TypeAlias = _typing.Literal["accountLid", b"accountLid", "afterReadDuration", b"afterReadDuration", "appealStatus", b"appealStatus", "appealUpdateTime", b"appealUpdateTime", "archived", b"archived", "authAgentObaPhoneNumber", b"authAgentObaPhoneNumber", "authAgentParentCompanyName", b"authAgentParentCompanyName", "capiCreatedGroup", b"capiCreatedGroup", "commentsCount", b"commentsCount", "contactPrimaryIdentityKey", b"contactPrimaryIdentityKey", "conversationTimestamp", b"conversationTimestamp", "createdAt", b"createdAt", "createdBy", b"createdBy", "description", b"description", "disappearingMode", b"disappearingMode", "displayName", b"displayName", "endOfHistoryTransfer", b"endOfHistoryTransfer", "endOfHistoryTransferType", b"endOfHistoryTransferType", "ephemeralExpiration", b"ephemeralExpiration", "ephemeralSettingTimestamp", b"ephemeralSettingTimestamp", "id", b"id", "isDefaultSubgroup", b"isDefaultSubgroup", "isMarketingMessageThread", b"isMarketingMessageThread", "isParentGroup", b"isParentGroup", "isSenderNewAccount", b"isSenderNewAccount", "isSenderSuspicious", b"isSenderSuspicious", "lastMsgTimestamp", b"lastMsgTimestamp", "lidJid", b"lidJid", "lidOriginType", b"lidOriginType", "limitSharing", b"limitSharing", "limitSharingInitiatedByMe", b"limitSharingInitiatedByMe", "limitSharingSettingTimestamp", b"limitSharingSettingTimestamp", "limitSharingTrigger", b"limitSharingTrigger", "locked", b"locked", "maibaAiThreadEnabled", b"maibaAiThreadEnabled", "markedAsUnread", b"markedAsUnread", "mediaVisibility", b"mediaVisibility", "messages", b"messages", "muteEndTime", b"muteEndTime", "name", b"name", "newJid", b"newJid", "notSpam", b"notSpam", "oldJid", b"oldJid", "pHash", b"pHash", "parentGroupId", b"parentGroupId", "participant", b"participant", "pinned", b"pinned", "pnJid", b"pnJid", "pnhDuplicateLidThread", b"pnhDuplicateLidThread", "readOnly", b"readOnly", "shareOwnPn", b"shareOwnPn", "support", b"support", "suspended", b"suspended", "systemMessageToInsert", b"systemMessageToInsert", "tcToken", b"tcToken", "tcTokenSenderTimestamp", b"tcTokenSenderTimestamp", "tcTokenTimestamp", b"tcTokenTimestamp", "terminated", b"terminated", "unreadCount", b"unreadCount", "unreadMentionCount", b"unreadMentionCount", "username", b"username", "wallpaper", b"wallpaper"] # noqa: Y015
+ _ClearFieldArgType: _TypeAlias = _typing.Literal["accountLid", b"accountLid", "afterReadDuration", b"afterReadDuration", "appealStatus", b"appealStatus", "appealUpdateTime", b"appealUpdateTime", "archived", b"archived", "authAgentObaPhoneNumber", b"authAgentObaPhoneNumber", "authAgentParentCompanyName", b"authAgentParentCompanyName", "capiCreatedGroup", b"capiCreatedGroup", "commentsCount", b"commentsCount", "contactPrimaryIdentityKey", b"contactPrimaryIdentityKey", "conversationTimestamp", b"conversationTimestamp", "createdAt", b"createdAt", "createdBy", b"createdBy", "description", b"description", "disappearingMode", b"disappearingMode", "displayName", b"displayName", "endOfHistoryTransfer", b"endOfHistoryTransfer", "endOfHistoryTransferType", b"endOfHistoryTransferType", "ephemeralExpiration", b"ephemeralExpiration", "ephemeralSettingTimestamp", b"ephemeralSettingTimestamp", "id", b"id", "identityVerification", b"identityVerification", "isDefaultSubgroup", b"isDefaultSubgroup", "isMarketingMessageThread", b"isMarketingMessageThread", "isParentGroup", b"isParentGroup", "isSenderNewAccount", b"isSenderNewAccount", "isSenderSuspicious", b"isSenderSuspicious", "lastMsgTimestamp", b"lastMsgTimestamp", "lidJid", b"lidJid", "lidOriginType", b"lidOriginType", "limitSharing", b"limitSharing", "limitSharingInitiatedByMe", b"limitSharingInitiatedByMe", "limitSharingSettingTimestamp", b"limitSharingSettingTimestamp", "limitSharingTrigger", b"limitSharingTrigger", "locked", b"locked", "maibaAiThreadEnabled", b"maibaAiThreadEnabled", "markedAsUnread", b"markedAsUnread", "mediaVisibility", b"mediaVisibility", "messages", b"messages", "muteEndTime", b"muteEndTime", "name", b"name", "newJid", b"newJid", "notSpam", b"notSpam", "oldJid", b"oldJid", "pHash", b"pHash", "parentGroupId", b"parentGroupId", "participant", b"participant", "pinned", b"pinned", "pnJid", b"pnJid", "pnhDuplicateLidThread", b"pnhDuplicateLidThread", "readOnly", b"readOnly", "shareOwnPn", b"shareOwnPn", "support", b"support", "suspended", b"suspended", "systemMessageToInsert", b"systemMessageToInsert", "tcToken", b"tcToken", "tcTokenSenderTimestamp", b"tcTokenSenderTimestamp", "tcTokenTimestamp", b"tcTokenTimestamp", "terminated", b"terminated", "unreadCount", b"unreadCount", "unreadMentionCount", b"unreadMentionCount", "username", b"username", "wallpaper", b"wallpaper"] # noqa: Y015
def ClearField(self, field_name: _ClearFieldArgType) -> None: ...
Global___Conversation: _TypeAlias = Conversation # noqa: Y015
@_typing.final
-class DeviceCapabilities(_message.Message):
+class CreateBackupInput(_message.Message):
DESCRIPTOR: _descriptor.Descriptor
- class _ChatLockSupportLevel:
- ValueType = _typing.NewType("ValueType", _builtins.int)
- V: _TypeAlias = ValueType # noqa: Y015
+ RECOVERYCODE_FIELD_NUMBER: _builtins.int
+ USERID_FIELD_NUMBER: _builtins.int
+ recoveryCode: _builtins.str
+ userId: _builtins.int
+ def __init__(
+ self,
+ *,
+ recoveryCode: _builtins.str | None = ...,
+ userId: _builtins.int | None = ...,
+ ) -> None: ...
+ _HasFieldArgType: _TypeAlias = _typing.Literal["recoveryCode", b"recoveryCode", "userId", b"userId"] # noqa: Y015
+ def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ...
+ _ClearFieldArgType: _TypeAlias = _typing.Literal["recoveryCode", b"recoveryCode", "userId", b"userId"] # noqa: Y015
+ def ClearField(self, field_name: _ClearFieldArgType) -> None: ...
- class _ChatLockSupportLevelEnumTypeWrapper(_enum_type_wrapper._EnumTypeWrapper[DeviceCapabilities._ChatLockSupportLevel.ValueType], _builtins.type):
- DESCRIPTOR: _descriptor.EnumDescriptor
- NONE: DeviceCapabilities._ChatLockSupportLevel.ValueType # 0
- MINIMAL: DeviceCapabilities._ChatLockSupportLevel.ValueType # 1
- FULL: DeviceCapabilities._ChatLockSupportLevel.ValueType # 2
+Global___CreateBackupInput: _TypeAlias = CreateBackupInput # noqa: Y015
- class ChatLockSupportLevel(_ChatLockSupportLevel, metaclass=_ChatLockSupportLevelEnumTypeWrapper): ...
- NONE: DeviceCapabilities.ChatLockSupportLevel.ValueType # 0
- MINIMAL: DeviceCapabilities.ChatLockSupportLevel.ValueType # 1
- FULL: DeviceCapabilities.ChatLockSupportLevel.ValueType # 2
+@_typing.final
+class CreateBackupOutput(_message.Message):
+ DESCRIPTOR: _descriptor.Descriptor
- class _MemberNameTagPrimarySupport:
- ValueType = _typing.NewType("ValueType", _builtins.int)
- V: _TypeAlias = ValueType # noqa: Y015
+ DEVICE_FIELD_NUMBER: _builtins.int
+ VIRTUALDEVICE_FIELD_NUMBER: _builtins.int
+ EPOCH0_FIELD_NUMBER: _builtins.int
+ MAILBOXROOTKEY_FIELD_NUMBER: _builtins.int
+ ERROR_FIELD_NUMBER: _builtins.int
+ mailboxRootKey: _builtins.bytes
+ error: _builtins.str
+ @_builtins.property
+ def device(self) -> Global___DeviceOutput: ...
+ @_builtins.property
+ def virtualDevice(self) -> Global___VirtualDeviceOutput: ...
+ @_builtins.property
+ def epoch0(self) -> Global___Epoch0Output: ...
+ def __init__(
+ self,
+ *,
+ device: Global___DeviceOutput | None = ...,
+ virtualDevice: Global___VirtualDeviceOutput | None = ...,
+ epoch0: Global___Epoch0Output | None = ...,
+ mailboxRootKey: _builtins.bytes | None = ...,
+ error: _builtins.str | None = ...,
+ ) -> None: ...
+ _HasFieldArgType: _TypeAlias = _typing.Literal["device", b"device", "epoch0", b"epoch0", "error", b"error", "mailboxRootKey", b"mailboxRootKey", "virtualDevice", b"virtualDevice"] # noqa: Y015
+ def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ...
+ _ClearFieldArgType: _TypeAlias = _typing.Literal["device", b"device", "epoch0", b"epoch0", "error", b"error", "mailboxRootKey", b"mailboxRootKey", "virtualDevice", b"virtualDevice"] # noqa: Y015
+ def ClearField(self, field_name: _ClearFieldArgType) -> None: ...
- class _MemberNameTagPrimarySupportEnumTypeWrapper(_enum_type_wrapper._EnumTypeWrapper[DeviceCapabilities._MemberNameTagPrimarySupport.ValueType], _builtins.type):
- DESCRIPTOR: _descriptor.EnumDescriptor
- DISABLED: DeviceCapabilities._MemberNameTagPrimarySupport.ValueType # 0
- RECEIVER_ENABLED: DeviceCapabilities._MemberNameTagPrimarySupport.ValueType # 1
- SENDER_ENABLED: DeviceCapabilities._MemberNameTagPrimarySupport.ValueType # 2
+Global___CreateBackupOutput: _TypeAlias = CreateBackupOutput # noqa: Y015
- class MemberNameTagPrimarySupport(_MemberNameTagPrimarySupport, metaclass=_MemberNameTagPrimarySupportEnumTypeWrapper): ...
- DISABLED: DeviceCapabilities.MemberNameTagPrimarySupport.ValueType # 0
- RECEIVER_ENABLED: DeviceCapabilities.MemberNameTagPrimarySupport.ValueType # 1
- SENDER_ENABLED: DeviceCapabilities.MemberNameTagPrimarySupport.ValueType # 2
+@_typing.final
+class DecryptMekForDistributionFromTransportSenderInput(_message.Message):
+ DESCRIPTOR: _descriptor.Descriptor
@_typing.final
- class AiThread(_message.Message):
+ class TransportSenderMEKDistributionSingleRecipient(_message.Message):
DESCRIPTOR: _descriptor.Descriptor
- class _SupportLevel:
- ValueType = _typing.NewType("ValueType", _builtins.int)
- V: _TypeAlias = ValueType # noqa: Y015
-
- class _SupportLevelEnumTypeWrapper(_enum_type_wrapper._EnumTypeWrapper[DeviceCapabilities.AiThread._SupportLevel.ValueType], _builtins.type):
- DESCRIPTOR: _descriptor.EnumDescriptor
- NONE: DeviceCapabilities.AiThread._SupportLevel.ValueType # 0
- INFRA: DeviceCapabilities.AiThread._SupportLevel.ValueType # 1
- FULL: DeviceCapabilities.AiThread._SupportLevel.ValueType # 2
-
- class SupportLevel(_SupportLevel, metaclass=_SupportLevelEnumTypeWrapper): ...
- NONE: DeviceCapabilities.AiThread.SupportLevel.ValueType # 0
- INFRA: DeviceCapabilities.AiThread.SupportLevel.ValueType # 1
- FULL: DeviceCapabilities.AiThread.SupportLevel.ValueType # 2
-
- SUPPORTLEVEL_FIELD_NUMBER: _builtins.int
- supportLevel: Global___DeviceCapabilities.AiThread.SupportLevel.ValueType
+ ENCRYPTEDMEK_FIELD_NUMBER: _builtins.int
+ EPHEMERALENCRYPTIONPK_FIELD_NUMBER: _builtins.int
+ SIGNINGPK_FIELD_NUMBER: _builtins.int
+ SIGNATURE_FIELD_NUMBER: _builtins.int
+ RECIPIENTEPOCHHEAD_FIELD_NUMBER: _builtins.int
+ encryptedMek: _builtins.bytes
+ ephemeralEncryptionPk: _builtins.bytes
+ signingPk: _builtins.bytes
+ signature: _builtins.bytes
+ recipientEpochHead: _builtins.bytes
def __init__(
self,
*,
- supportLevel: Global___DeviceCapabilities.AiThread.SupportLevel.ValueType | None = ...,
+ encryptedMek: _builtins.bytes | None = ...,
+ ephemeralEncryptionPk: _builtins.bytes | None = ...,
+ signingPk: _builtins.bytes | None = ...,
+ signature: _builtins.bytes | None = ...,
+ recipientEpochHead: _builtins.bytes | None = ...,
) -> None: ...
- _HasFieldArgType: _TypeAlias = _typing.Literal["supportLevel", b"supportLevel"] # noqa: Y015
+ _HasFieldArgType: _TypeAlias = _typing.Literal["encryptedMek", b"encryptedMek", "ephemeralEncryptionPk", b"ephemeralEncryptionPk", "recipientEpochHead", b"recipientEpochHead", "signature", b"signature", "signingPk", b"signingPk"] # noqa: Y015
def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ...
- _ClearFieldArgType: _TypeAlias = _typing.Literal["supportLevel", b"supportLevel"] # noqa: Y015
+ _ClearFieldArgType: _TypeAlias = _typing.Literal["encryptedMek", b"encryptedMek", "ephemeralEncryptionPk", b"ephemeralEncryptionPk", "recipientEpochHead", b"recipientEpochHead", "signature", b"signature", "signingPk", b"signingPk"] # noqa: Y015
def ClearField(self, field_name: _ClearFieldArgType) -> None: ...
- @_typing.final
- class BusinessBroadcast(_message.Message):
- DESCRIPTOR: _descriptor.Descriptor
+ MEKDISTRIBUTION_FIELD_NUMBER: _builtins.int
+ MEKID_FIELD_NUMBER: _builtins.int
+ ROSTERHASH_FIELD_NUMBER: _builtins.int
+ RECIPIENTENCSK_FIELD_NUMBER: _builtins.int
+ VERSION_FIELD_NUMBER: _builtins.int
+ CONF_FIELD_NUMBER: _builtins.int
+ mekId: _builtins.bytes
+ rosterHash: _builtins.bytes
+ recipientEncSk: _builtins.bytes
+ version: _builtins.int
+ @_builtins.property
+ def mekDistribution(self) -> Global___DecryptMekForDistributionFromTransportSenderInput.TransportSenderMEKDistributionSingleRecipient: ...
+ @_builtins.property
+ def conf(self) -> Global___MinosClientConfig: ...
+ def __init__(
+ self,
+ *,
+ mekDistribution: Global___DecryptMekForDistributionFromTransportSenderInput.TransportSenderMEKDistributionSingleRecipient | None = ...,
+ mekId: _builtins.bytes | None = ...,
+ rosterHash: _builtins.bytes | None = ...,
+ recipientEncSk: _builtins.bytes | None = ...,
+ version: _builtins.int | None = ...,
+ conf: Global___MinosClientConfig | None = ...,
+ ) -> None: ...
+ _HasFieldArgType: _TypeAlias = _typing.Literal["conf", b"conf", "mekDistribution", b"mekDistribution", "mekId", b"mekId", "recipientEncSk", b"recipientEncSk", "rosterHash", b"rosterHash", "version", b"version"] # noqa: Y015
+ def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ...
+ _ClearFieldArgType: _TypeAlias = _typing.Literal["conf", b"conf", "mekDistribution", b"mekDistribution", "mekId", b"mekId", "recipientEncSk", b"recipientEncSk", "rosterHash", b"rosterHash", "version", b"version"] # noqa: Y015
+ def ClearField(self, field_name: _ClearFieldArgType) -> None: ...
- IMPORTLISTENABLED_FIELD_NUMBER: _builtins.int
- COMPANIONSUPPORTENABLED_FIELD_NUMBER: _builtins.int
- CAMPAIGNSYNCENABLED_FIELD_NUMBER: _builtins.int
- INSIGHTSSYNCENABLED_FIELD_NUMBER: _builtins.int
- RECIPIENTLIMIT_FIELD_NUMBER: _builtins.int
- importListEnabled: _builtins.bool
- companionSupportEnabled: _builtins.bool
- campaignSyncEnabled: _builtins.bool
- insightsSyncEnabled: _builtins.bool
- recipientLimit: _builtins.int
- def __init__(
- self,
- *,
- importListEnabled: _builtins.bool | None = ...,
- companionSupportEnabled: _builtins.bool | None = ...,
- campaignSyncEnabled: _builtins.bool | None = ...,
- insightsSyncEnabled: _builtins.bool | None = ...,
- recipientLimit: _builtins.int | None = ...,
- ) -> None: ...
- _HasFieldArgType: _TypeAlias = _typing.Literal["campaignSyncEnabled", b"campaignSyncEnabled", "companionSupportEnabled", b"companionSupportEnabled", "importListEnabled", b"importListEnabled", "insightsSyncEnabled", b"insightsSyncEnabled", "recipientLimit", b"recipientLimit"] # noqa: Y015
- def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ...
- _ClearFieldArgType: _TypeAlias = _typing.Literal["campaignSyncEnabled", b"campaignSyncEnabled", "companionSupportEnabled", b"companionSupportEnabled", "importListEnabled", b"importListEnabled", "insightsSyncEnabled", b"insightsSyncEnabled", "recipientLimit", b"recipientLimit"] # noqa: Y015
- def ClearField(self, field_name: _ClearFieldArgType) -> None: ...
+Global___DecryptMekForDistributionFromTransportSenderInput: _TypeAlias = DecryptMekForDistributionFromTransportSenderInput # noqa: Y015
- @_typing.final
- class LIDMigration(_message.Message):
- DESCRIPTOR: _descriptor.Descriptor
+@_typing.final
+class DecryptMekForDistributionFromTransportSenderResult(_message.Message):
+ DESCRIPTOR: _descriptor.Descriptor
- CHATDBMIGRATIONTIMESTAMP_FIELD_NUMBER: _builtins.int
- chatDbMigrationTimestamp: _builtins.int
- def __init__(
- self,
- *,
- chatDbMigrationTimestamp: _builtins.int | None = ...,
- ) -> None: ...
- _HasFieldArgType: _TypeAlias = _typing.Literal["chatDbMigrationTimestamp", b"chatDbMigrationTimestamp"] # noqa: Y015
- def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ...
- _ClearFieldArgType: _TypeAlias = _typing.Literal["chatDbMigrationTimestamp", b"chatDbMigrationTimestamp"] # noqa: Y015
- def ClearField(self, field_name: _ClearFieldArgType) -> None: ...
+ SUCCESS_FIELD_NUMBER: _builtins.int
+ ERRORMESSAGE_FIELD_NUMBER: _builtins.int
+ errorMessage: _builtins.str
+ @_builtins.property
+ def success(self) -> Global___DecryptMekForDistributionFromTransportSenderSuccess: ...
+ def __init__(
+ self,
+ *,
+ success: Global___DecryptMekForDistributionFromTransportSenderSuccess | None = ...,
+ errorMessage: _builtins.str | None = ...,
+ ) -> None: ...
+ _HasFieldArgType: _TypeAlias = _typing.Literal["errorMessage", b"errorMessage", "result", b"result", "success", b"success"] # noqa: Y015
+ def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ...
+ _ClearFieldArgType: _TypeAlias = _typing.Literal["errorMessage", b"errorMessage", "result", b"result", "success", b"success"] # noqa: Y015
+ def ClearField(self, field_name: _ClearFieldArgType) -> None: ...
+ _WhichOneofReturnType_result: _TypeAlias = _typing.Literal["success", "errorMessage"] # noqa: Y015
+ _WhichOneofArgType_result: _TypeAlias = _typing.Literal["result", b"result"] # noqa: Y015
+ def WhichOneof(self, oneof_group: _WhichOneofArgType_result) -> _WhichOneofReturnType_result | None: ...
- @_typing.final
- class UserHasAvatar(_message.Message):
- DESCRIPTOR: _descriptor.Descriptor
+Global___DecryptMekForDistributionFromTransportSenderResult: _TypeAlias = DecryptMekForDistributionFromTransportSenderResult # noqa: Y015
- USERHASAVATAR_FIELD_NUMBER: _builtins.int
- userHasAvatar: _builtins.bool
- def __init__(
- self,
- *,
- userHasAvatar: _builtins.bool | None = ...,
- ) -> None: ...
- _HasFieldArgType: _TypeAlias = _typing.Literal["userHasAvatar", b"userHasAvatar"] # noqa: Y015
- def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ...
- _ClearFieldArgType: _TypeAlias = _typing.Literal["userHasAvatar", b"userHasAvatar"] # noqa: Y015
- def ClearField(self, field_name: _ClearFieldArgType) -> None: ...
+@_typing.final
+class DecryptMekForDistributionFromTransportSenderSuccess(_message.Message):
+ DESCRIPTOR: _descriptor.Descriptor
- CHATLOCKSUPPORTLEVEL_FIELD_NUMBER: _builtins.int
- LIDMIGRATION_FIELD_NUMBER: _builtins.int
- BUSINESSBROADCAST_FIELD_NUMBER: _builtins.int
- USERHASAVATAR_FIELD_NUMBER: _builtins.int
- MEMBERNAMETAGPRIMARYSUPPORT_FIELD_NUMBER: _builtins.int
- AITHREAD_FIELD_NUMBER: _builtins.int
- chatLockSupportLevel: Global___DeviceCapabilities.ChatLockSupportLevel.ValueType
- memberNameTagPrimarySupport: Global___DeviceCapabilities.MemberNameTagPrimarySupport.ValueType
- @_builtins.property
- def lidMigration(self) -> Global___DeviceCapabilities.LIDMigration: ...
- @_builtins.property
- def businessBroadcast(self) -> Global___DeviceCapabilities.BusinessBroadcast: ...
+ MEK_FIELD_NUMBER: _builtins.int
+ mek: _builtins.bytes
+ def __init__(
+ self,
+ *,
+ mek: _builtins.bytes | None = ...,
+ ) -> None: ...
+ _HasFieldArgType: _TypeAlias = _typing.Literal["mek", b"mek"] # noqa: Y015
+ def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ...
+ _ClearFieldArgType: _TypeAlias = _typing.Literal["mek", b"mek"] # noqa: Y015
+ def ClearField(self, field_name: _ClearFieldArgType) -> None: ...
+
+Global___DecryptMekForDistributionFromTransportSenderSuccess: _TypeAlias = DecryptMekForDistributionFromTransportSenderSuccess # noqa: Y015
+
+@_typing.final
+class DecryptMekForDistributionInput(_message.Message):
+ DESCRIPTOR: _descriptor.Descriptor
+
+ TOMAILBOXSK_FIELD_NUMBER: _builtins.int
+ FROMPK_FIELD_NUMBER: _builtins.int
+ MEKID_FIELD_NUMBER: _builtins.int
+ SENDEREPOCHHEAD_FIELD_NUMBER: _builtins.int
+ ROSTERHASH_FIELD_NUMBER: _builtins.int
+ CIPHERTEXT_FIELD_NUMBER: _builtins.int
+ TOEPOCHHEAD_FIELD_NUMBER: _builtins.int
+ MEKENCRYPTIONVERSION_FIELD_NUMBER: _builtins.int
+ CONF_FIELD_NUMBER: _builtins.int
+ toMailboxSk: _builtins.bytes
+ fromPk: _builtins.bytes
+ mekId: _builtins.bytes
+ senderEpochHead: _builtins.bytes
+ rosterHash: _builtins.bytes
+ ciphertext: _builtins.bytes
+ toEpochHead: _builtins.bytes
+ mekEncryptionVersion: _builtins.int
@_builtins.property
- def userHasAvatar(self) -> Global___DeviceCapabilities.UserHasAvatar: ...
+ def conf(self) -> Global___MinosClientConfig: ...
+ def __init__(
+ self,
+ *,
+ toMailboxSk: _builtins.bytes | None = ...,
+ fromPk: _builtins.bytes | None = ...,
+ mekId: _builtins.bytes | None = ...,
+ senderEpochHead: _builtins.bytes | None = ...,
+ rosterHash: _builtins.bytes | None = ...,
+ ciphertext: _builtins.bytes | None = ...,
+ toEpochHead: _builtins.bytes | None = ...,
+ mekEncryptionVersion: _builtins.int | None = ...,
+ conf: Global___MinosClientConfig | None = ...,
+ ) -> None: ...
+ _HasFieldArgType: _TypeAlias = _typing.Literal["ciphertext", b"ciphertext", "conf", b"conf", "fromPk", b"fromPk", "mekEncryptionVersion", b"mekEncryptionVersion", "mekId", b"mekId", "rosterHash", b"rosterHash", "senderEpochHead", b"senderEpochHead", "toEpochHead", b"toEpochHead", "toMailboxSk", b"toMailboxSk"] # noqa: Y015
+ def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ...
+ _ClearFieldArgType: _TypeAlias = _typing.Literal["ciphertext", b"ciphertext", "conf", b"conf", "fromPk", b"fromPk", "mekEncryptionVersion", b"mekEncryptionVersion", "mekId", b"mekId", "rosterHash", b"rosterHash", "senderEpochHead", b"senderEpochHead", "toEpochHead", b"toEpochHead", "toMailboxSk", b"toMailboxSk"] # noqa: Y015
+ def ClearField(self, field_name: _ClearFieldArgType) -> None: ...
+
+Global___DecryptMekForDistributionInput: _TypeAlias = DecryptMekForDistributionInput # noqa: Y015
+
+@_typing.final
+class DecryptMekForDistributionResult(_message.Message):
+ DESCRIPTOR: _descriptor.Descriptor
+
+ SUCCESS_FIELD_NUMBER: _builtins.int
+ ERRORMESSAGE_FIELD_NUMBER: _builtins.int
+ errorMessage: _builtins.str
@_builtins.property
- def aiThread(self) -> Global___DeviceCapabilities.AiThread: ...
+ def success(self) -> Global___DecryptMekForDistributionSuccess: ...
def __init__(
self,
*,
- chatLockSupportLevel: Global___DeviceCapabilities.ChatLockSupportLevel.ValueType | None = ...,
- lidMigration: Global___DeviceCapabilities.LIDMigration | None = ...,
- businessBroadcast: Global___DeviceCapabilities.BusinessBroadcast | None = ...,
- userHasAvatar: Global___DeviceCapabilities.UserHasAvatar | None = ...,
- memberNameTagPrimarySupport: Global___DeviceCapabilities.MemberNameTagPrimarySupport.ValueType | None = ...,
- aiThread: Global___DeviceCapabilities.AiThread | None = ...,
+ success: Global___DecryptMekForDistributionSuccess | None = ...,
+ errorMessage: _builtins.str | None = ...,
) -> None: ...
- _HasFieldArgType: _TypeAlias = _typing.Literal["aiThread", b"aiThread", "businessBroadcast", b"businessBroadcast", "chatLockSupportLevel", b"chatLockSupportLevel", "lidMigration", b"lidMigration", "memberNameTagPrimarySupport", b"memberNameTagPrimarySupport", "userHasAvatar", b"userHasAvatar"] # noqa: Y015
+ _HasFieldArgType: _TypeAlias = _typing.Literal["errorMessage", b"errorMessage", "result", b"result", "success", b"success"] # noqa: Y015
def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ...
- _ClearFieldArgType: _TypeAlias = _typing.Literal["aiThread", b"aiThread", "businessBroadcast", b"businessBroadcast", "chatLockSupportLevel", b"chatLockSupportLevel", "lidMigration", b"lidMigration", "memberNameTagPrimarySupport", b"memberNameTagPrimarySupport", "userHasAvatar", b"userHasAvatar"] # noqa: Y015
+ _ClearFieldArgType: _TypeAlias = _typing.Literal["errorMessage", b"errorMessage", "result", b"result", "success", b"success"] # noqa: Y015
def ClearField(self, field_name: _ClearFieldArgType) -> None: ...
+ _WhichOneofReturnType_result: _TypeAlias = _typing.Literal["success", "errorMessage"] # noqa: Y015
+ _WhichOneofArgType_result: _TypeAlias = _typing.Literal["result", b"result"] # noqa: Y015
+ def WhichOneof(self, oneof_group: _WhichOneofArgType_result) -> _WhichOneofReturnType_result | None: ...
-Global___DeviceCapabilities: _TypeAlias = DeviceCapabilities # noqa: Y015
+Global___DecryptMekForDistributionResult: _TypeAlias = DecryptMekForDistributionResult # noqa: Y015
@_typing.final
-class DeviceConsistencyCodeMessage(_message.Message):
+class DecryptMekForDistributionSuccess(_message.Message):
DESCRIPTOR: _descriptor.Descriptor
- GENERATION_FIELD_NUMBER: _builtins.int
- SIGNATURE_FIELD_NUMBER: _builtins.int
- generation: _builtins.int
- signature: _builtins.bytes
+ MEK_FIELD_NUMBER: _builtins.int
+ mek: _builtins.bytes
def __init__(
self,
*,
- generation: _builtins.int | None = ...,
- signature: _builtins.bytes | None = ...,
+ mek: _builtins.bytes | None = ...,
) -> None: ...
- _HasFieldArgType: _TypeAlias = _typing.Literal["generation", b"generation", "signature", b"signature"] # noqa: Y015
+ _HasFieldArgType: _TypeAlias = _typing.Literal["mek", b"mek"] # noqa: Y015
def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ...
- _ClearFieldArgType: _TypeAlias = _typing.Literal["generation", b"generation", "signature", b"signature"] # noqa: Y015
+ _ClearFieldArgType: _TypeAlias = _typing.Literal["mek", b"mek"] # noqa: Y015
def ClearField(self, field_name: _ClearFieldArgType) -> None: ...
-Global___DeviceConsistencyCodeMessage: _TypeAlias = DeviceConsistencyCodeMessage # noqa: Y015
+Global___DecryptMekForDistributionSuccess: _TypeAlias = DecryptMekForDistributionSuccess # noqa: Y015
@_typing.final
-class DeviceListMetadata(_message.Message):
+class DecryptMessageInput(_message.Message):
DESCRIPTOR: _descriptor.Descriptor
- SENDERKEYHASH_FIELD_NUMBER: _builtins.int
- SENDERTIMESTAMP_FIELD_NUMBER: _builtins.int
- SENDERKEYINDEXES_FIELD_NUMBER: _builtins.int
- SENDERACCOUNTTYPE_FIELD_NUMBER: _builtins.int
- RECEIVERACCOUNTTYPE_FIELD_NUMBER: _builtins.int
- RECIPIENTKEYHASH_FIELD_NUMBER: _builtins.int
- RECIPIENTTIMESTAMP_FIELD_NUMBER: _builtins.int
- RECIPIENTKEYINDEXES_FIELD_NUMBER: _builtins.int
- senderKeyHash: _builtins.bytes
- senderTimestamp: _builtins.int
- senderAccountType: Global___ADVEncryptionType.ValueType
- receiverAccountType: Global___ADVEncryptionType.ValueType
- recipientKeyHash: _builtins.bytes
- recipientTimestamp: _builtins.int
- @_builtins.property
- def senderKeyIndexes(self) -> _containers.RepeatedScalarFieldContainer[_builtins.int]: ...
- @_builtins.property
- def recipientKeyIndexes(self) -> _containers.RepeatedScalarFieldContainer[_builtins.int]: ...
+ EPOCHROOTKEY_FIELD_NUMBER: _builtins.int
+ EPOCHANONID_FIELD_NUMBER: _builtins.int
+ THREADID_FIELD_NUMBER: _builtins.int
+ ENCRYPTIONVERSION_FIELD_NUMBER: _builtins.int
+ CIPHERTEXT_FIELD_NUMBER: _builtins.int
+ epochRootKey: _builtins.bytes
+ epochAnonId: _builtins.bytes
+ threadId: _builtins.str
+ encryptionVersion: _builtins.int
+ ciphertext: _builtins.bytes
def __init__(
self,
*,
- senderKeyHash: _builtins.bytes | None = ...,
- senderTimestamp: _builtins.int | None = ...,
- senderKeyIndexes: _abc.Iterable[_builtins.int] | None = ...,
- senderAccountType: Global___ADVEncryptionType.ValueType | None = ...,
- receiverAccountType: Global___ADVEncryptionType.ValueType | None = ...,
- recipientKeyHash: _builtins.bytes | None = ...,
- recipientTimestamp: _builtins.int | None = ...,
- recipientKeyIndexes: _abc.Iterable[_builtins.int] | None = ...,
+ epochRootKey: _builtins.bytes | None = ...,
+ epochAnonId: _builtins.bytes | None = ...,
+ threadId: _builtins.str | None = ...,
+ encryptionVersion: _builtins.int | None = ...,
+ ciphertext: _builtins.bytes | None = ...,
) -> None: ...
- _HasFieldArgType: _TypeAlias = _typing.Literal["receiverAccountType", b"receiverAccountType", "recipientKeyHash", b"recipientKeyHash", "recipientTimestamp", b"recipientTimestamp", "senderAccountType", b"senderAccountType", "senderKeyHash", b"senderKeyHash", "senderTimestamp", b"senderTimestamp"] # noqa: Y015
+ _HasFieldArgType: _TypeAlias = _typing.Literal["ciphertext", b"ciphertext", "encryptionVersion", b"encryptionVersion", "epochAnonId", b"epochAnonId", "epochRootKey", b"epochRootKey", "threadId", b"threadId"] # noqa: Y015
def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ...
- _ClearFieldArgType: _TypeAlias = _typing.Literal["receiverAccountType", b"receiverAccountType", "recipientKeyHash", b"recipientKeyHash", "recipientKeyIndexes", b"recipientKeyIndexes", "recipientTimestamp", b"recipientTimestamp", "senderAccountType", b"senderAccountType", "senderKeyHash", b"senderKeyHash", "senderKeyIndexes", b"senderKeyIndexes", "senderTimestamp", b"senderTimestamp"] # noqa: Y015
+ _ClearFieldArgType: _TypeAlias = _typing.Literal["ciphertext", b"ciphertext", "encryptionVersion", b"encryptionVersion", "epochAnonId", b"epochAnonId", "epochRootKey", b"epochRootKey", "threadId", b"threadId"] # noqa: Y015
def ClearField(self, field_name: _ClearFieldArgType) -> None: ...
-Global___DeviceListMetadata: _TypeAlias = DeviceListMetadata # noqa: Y015
+Global___DecryptMessageInput: _TypeAlias = DecryptMessageInput # noqa: Y015
@_typing.final
-class DeviceProps(_message.Message):
+class DecryptMessageOutput(_message.Message):
DESCRIPTOR: _descriptor.Descriptor
- class _PlatformType:
- ValueType = _typing.NewType("ValueType", _builtins.int)
- V: _TypeAlias = ValueType # noqa: Y015
+ PLAINTEXTPAYLOAD_FIELD_NUMBER: _builtins.int
+ ERROR_FIELD_NUMBER: _builtins.int
+ plaintextPayload: _builtins.bytes
+ error: _builtins.str
+ def __init__(
+ self,
+ *,
+ plaintextPayload: _builtins.bytes | None = ...,
+ error: _builtins.str | None = ...,
+ ) -> None: ...
+ _HasFieldArgType: _TypeAlias = _typing.Literal["error", b"error", "plaintextPayload", b"plaintextPayload"] # noqa: Y015
+ def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ...
+ _ClearFieldArgType: _TypeAlias = _typing.Literal["error", b"error", "plaintextPayload", b"plaintextPayload"] # noqa: Y015
+ def ClearField(self, field_name: _ClearFieldArgType) -> None: ...
- class _PlatformTypeEnumTypeWrapper(_enum_type_wrapper._EnumTypeWrapper[DeviceProps._PlatformType.ValueType], _builtins.type):
- DESCRIPTOR: _descriptor.EnumDescriptor
- UNKNOWN: DeviceProps._PlatformType.ValueType # 0
- CHROME: DeviceProps._PlatformType.ValueType # 1
- FIREFOX: DeviceProps._PlatformType.ValueType # 2
- IE: DeviceProps._PlatformType.ValueType # 3
- OPERA: DeviceProps._PlatformType.ValueType # 4
- SAFARI: DeviceProps._PlatformType.ValueType # 5
- EDGE: DeviceProps._PlatformType.ValueType # 6
- DESKTOP: DeviceProps._PlatformType.ValueType # 7
- IPAD: DeviceProps._PlatformType.ValueType # 8
- ANDROID_TABLET: DeviceProps._PlatformType.ValueType # 9
- OHANA: DeviceProps._PlatformType.ValueType # 10
- ALOHA: DeviceProps._PlatformType.ValueType # 11
- CATALINA: DeviceProps._PlatformType.ValueType # 12
- TCL_TV: DeviceProps._PlatformType.ValueType # 13
- IOS_PHONE: DeviceProps._PlatformType.ValueType # 14
- IOS_CATALYST: DeviceProps._PlatformType.ValueType # 15
- ANDROID_PHONE: DeviceProps._PlatformType.ValueType # 16
- ANDROID_AMBIGUOUS: DeviceProps._PlatformType.ValueType # 17
- WEAR_OS: DeviceProps._PlatformType.ValueType # 18
- AR_WRIST: DeviceProps._PlatformType.ValueType # 19
- AR_DEVICE: DeviceProps._PlatformType.ValueType # 20
- UWP: DeviceProps._PlatformType.ValueType # 21
- VR: DeviceProps._PlatformType.ValueType # 22
- CLOUD_API: DeviceProps._PlatformType.ValueType # 23
- SMARTGLASSES: DeviceProps._PlatformType.ValueType # 24
+Global___DecryptMessageOutput: _TypeAlias = DecryptMessageOutput # noqa: Y015
- class PlatformType(_PlatformType, metaclass=_PlatformTypeEnumTypeWrapper): ...
- UNKNOWN: DeviceProps.PlatformType.ValueType # 0
- CHROME: DeviceProps.PlatformType.ValueType # 1
- FIREFOX: DeviceProps.PlatformType.ValueType # 2
- IE: DeviceProps.PlatformType.ValueType # 3
- OPERA: DeviceProps.PlatformType.ValueType # 4
- SAFARI: DeviceProps.PlatformType.ValueType # 5
- EDGE: DeviceProps.PlatformType.ValueType # 6
- DESKTOP: DeviceProps.PlatformType.ValueType # 7
- IPAD: DeviceProps.PlatformType.ValueType # 8
- ANDROID_TABLET: DeviceProps.PlatformType.ValueType # 9
- OHANA: DeviceProps.PlatformType.ValueType # 10
- ALOHA: DeviceProps.PlatformType.ValueType # 11
- CATALINA: DeviceProps.PlatformType.ValueType # 12
- TCL_TV: DeviceProps.PlatformType.ValueType # 13
- IOS_PHONE: DeviceProps.PlatformType.ValueType # 14
- IOS_CATALYST: DeviceProps.PlatformType.ValueType # 15
- ANDROID_PHONE: DeviceProps.PlatformType.ValueType # 16
- ANDROID_AMBIGUOUS: DeviceProps.PlatformType.ValueType # 17
- WEAR_OS: DeviceProps.PlatformType.ValueType # 18
- AR_WRIST: DeviceProps.PlatformType.ValueType # 19
- AR_DEVICE: DeviceProps.PlatformType.ValueType # 20
- UWP: DeviceProps.PlatformType.ValueType # 21
- VR: DeviceProps.PlatformType.ValueType # 22
- CLOUD_API: DeviceProps.PlatformType.ValueType # 23
- SMARTGLASSES: DeviceProps.PlatformType.ValueType # 24
+@_typing.final
+class DecryptSelfMmkDistributionInput(_message.Message):
+ DESCRIPTOR: _descriptor.Descriptor
- @_typing.final
- class AppVersion(_message.Message):
- DESCRIPTOR: _descriptor.Descriptor
+ ENCRYPTEDMMK_FIELD_NUMBER: _builtins.int
+ EXPORTROOTKEY_FIELD_NUMBER: _builtins.int
+ MAILBOXHEADHASH_FIELD_NUMBER: _builtins.int
+ encryptedMmk: _builtins.bytes
+ exportRootKey: _builtins.bytes
+ mailboxHeadHash: _builtins.bytes
+ def __init__(
+ self,
+ *,
+ encryptedMmk: _builtins.bytes | None = ...,
+ exportRootKey: _builtins.bytes | None = ...,
+ mailboxHeadHash: _builtins.bytes | None = ...,
+ ) -> None: ...
+ _HasFieldArgType: _TypeAlias = _typing.Literal["encryptedMmk", b"encryptedMmk", "exportRootKey", b"exportRootKey", "mailboxHeadHash", b"mailboxHeadHash"] # noqa: Y015
+ def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ...
+ _ClearFieldArgType: _TypeAlias = _typing.Literal["encryptedMmk", b"encryptedMmk", "exportRootKey", b"exportRootKey", "mailboxHeadHash", b"mailboxHeadHash"] # noqa: Y015
+ def ClearField(self, field_name: _ClearFieldArgType) -> None: ...
- PRIMARY_FIELD_NUMBER: _builtins.int
- SECONDARY_FIELD_NUMBER: _builtins.int
- TERTIARY_FIELD_NUMBER: _builtins.int
- QUATERNARY_FIELD_NUMBER: _builtins.int
- QUINARY_FIELD_NUMBER: _builtins.int
- primary: _builtins.int
- secondary: _builtins.int
- tertiary: _builtins.int
- quaternary: _builtins.int
- quinary: _builtins.int
- def __init__(
- self,
- *,
- primary: _builtins.int | None = ...,
- secondary: _builtins.int | None = ...,
- tertiary: _builtins.int | None = ...,
- quaternary: _builtins.int | None = ...,
- quinary: _builtins.int | None = ...,
- ) -> None: ...
- _HasFieldArgType: _TypeAlias = _typing.Literal["primary", b"primary", "quaternary", b"quaternary", "quinary", b"quinary", "secondary", b"secondary", "tertiary", b"tertiary"] # noqa: Y015
- def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ...
- _ClearFieldArgType: _TypeAlias = _typing.Literal["primary", b"primary", "quaternary", b"quaternary", "quinary", b"quinary", "secondary", b"secondary", "tertiary", b"tertiary"] # noqa: Y015
- def ClearField(self, field_name: _ClearFieldArgType) -> None: ...
+Global___DecryptSelfMmkDistributionInput: _TypeAlias = DecryptSelfMmkDistributionInput # noqa: Y015
- @_typing.final
- class HistorySyncConfig(_message.Message):
- DESCRIPTOR: _descriptor.Descriptor
+@_typing.final
+class DecryptSelfMmkDistributionResult(_message.Message):
+ DESCRIPTOR: _descriptor.Descriptor
- FULLSYNCDAYSLIMIT_FIELD_NUMBER: _builtins.int
- FULLSYNCSIZEMBLIMIT_FIELD_NUMBER: _builtins.int
- STORAGEQUOTAMB_FIELD_NUMBER: _builtins.int
- INLINEINITIALPAYLOADINE2EEMSG_FIELD_NUMBER: _builtins.int
- RECENTSYNCDAYSLIMIT_FIELD_NUMBER: _builtins.int
- SUPPORTCALLLOGHISTORY_FIELD_NUMBER: _builtins.int
- SUPPORTBOTUSERAGENTCHATHISTORY_FIELD_NUMBER: _builtins.int
- SUPPORTCAGREACTIONSANDPOLLS_FIELD_NUMBER: _builtins.int
- SUPPORTBIZHOSTEDMSG_FIELD_NUMBER: _builtins.int
- SUPPORTRECENTSYNCCHUNKMESSAGECOUNTTUNING_FIELD_NUMBER: _builtins.int
- SUPPORTHOSTEDGROUPMSG_FIELD_NUMBER: _builtins.int
- SUPPORTFBIDBOTCHATHISTORY_FIELD_NUMBER: _builtins.int
- SUPPORTADDONHISTORYSYNCMIGRATION_FIELD_NUMBER: _builtins.int
- SUPPORTMESSAGEASSOCIATION_FIELD_NUMBER: _builtins.int
- SUPPORTGROUPHISTORY_FIELD_NUMBER: _builtins.int
- ONDEMANDREADY_FIELD_NUMBER: _builtins.int
- SUPPORTGUESTCHAT_FIELD_NUMBER: _builtins.int
- COMPLETEONDEMANDREADY_FIELD_NUMBER: _builtins.int
- THUMBNAILSYNCDAYSLIMIT_FIELD_NUMBER: _builtins.int
- INITIALSYNCMAXMESSAGESPERCHAT_FIELD_NUMBER: _builtins.int
- SUPPORTMANUSHISTORY_FIELD_NUMBER: _builtins.int
- SUPPORTHATCHHISTORY_FIELD_NUMBER: _builtins.int
- SUPPORTEDBOTCHANNELFBIDS_FIELD_NUMBER: _builtins.int
- SUPPORTINLINECONTACTS_FIELD_NUMBER: _builtins.int
- fullSyncDaysLimit: _builtins.int
- fullSyncSizeMbLimit: _builtins.int
- storageQuotaMb: _builtins.int
- inlineInitialPayloadInE2EeMsg: _builtins.bool
- recentSyncDaysLimit: _builtins.int
- supportCallLogHistory: _builtins.bool
- supportBotUserAgentChatHistory: _builtins.bool
- supportCagReactionsAndPolls: _builtins.bool
- supportBizHostedMsg: _builtins.bool
- supportRecentSyncChunkMessageCountTuning: _builtins.bool
- supportHostedGroupMsg: _builtins.bool
- supportFbidBotChatHistory: _builtins.bool
- supportAddOnHistorySyncMigration: _builtins.bool
- supportMessageAssociation: _builtins.bool
- supportGroupHistory: _builtins.bool
- onDemandReady: _builtins.bool
- supportGuestChat: _builtins.bool
- completeOnDemandReady: _builtins.bool
- thumbnailSyncDaysLimit: _builtins.int
- initialSyncMaxMessagesPerChat: _builtins.int
- supportManusHistory: _builtins.bool
- supportHatchHistory: _builtins.bool
- supportInlineContacts: _builtins.bool
- @_builtins.property
- def supportedBotChannelFbids(self) -> _containers.RepeatedScalarFieldContainer[_builtins.str]: ...
- def __init__(
- self,
- *,
- fullSyncDaysLimit: _builtins.int | None = ...,
- fullSyncSizeMbLimit: _builtins.int | None = ...,
- storageQuotaMb: _builtins.int | None = ...,
- inlineInitialPayloadInE2EeMsg: _builtins.bool | None = ...,
- recentSyncDaysLimit: _builtins.int | None = ...,
- supportCallLogHistory: _builtins.bool | None = ...,
- supportBotUserAgentChatHistory: _builtins.bool | None = ...,
- supportCagReactionsAndPolls: _builtins.bool | None = ...,
- supportBizHostedMsg: _builtins.bool | None = ...,
- supportRecentSyncChunkMessageCountTuning: _builtins.bool | None = ...,
- supportHostedGroupMsg: _builtins.bool | None = ...,
- supportFbidBotChatHistory: _builtins.bool | None = ...,
- supportAddOnHistorySyncMigration: _builtins.bool | None = ...,
- supportMessageAssociation: _builtins.bool | None = ...,
- supportGroupHistory: _builtins.bool | None = ...,
- onDemandReady: _builtins.bool | None = ...,
- supportGuestChat: _builtins.bool | None = ...,
- completeOnDemandReady: _builtins.bool | None = ...,
- thumbnailSyncDaysLimit: _builtins.int | None = ...,
- initialSyncMaxMessagesPerChat: _builtins.int | None = ...,
- supportManusHistory: _builtins.bool | None = ...,
- supportHatchHistory: _builtins.bool | None = ...,
- supportedBotChannelFbids: _abc.Iterable[_builtins.str] | None = ...,
- supportInlineContacts: _builtins.bool | None = ...,
- ) -> None: ...
- _HasFieldArgType: _TypeAlias = _typing.Literal["completeOnDemandReady", b"completeOnDemandReady", "fullSyncDaysLimit", b"fullSyncDaysLimit", "fullSyncSizeMbLimit", b"fullSyncSizeMbLimit", "initialSyncMaxMessagesPerChat", b"initialSyncMaxMessagesPerChat", "inlineInitialPayloadInE2EeMsg", b"inlineInitialPayloadInE2EeMsg", "onDemandReady", b"onDemandReady", "recentSyncDaysLimit", b"recentSyncDaysLimit", "storageQuotaMb", b"storageQuotaMb", "supportAddOnHistorySyncMigration", b"supportAddOnHistorySyncMigration", "supportBizHostedMsg", b"supportBizHostedMsg", "supportBotUserAgentChatHistory", b"supportBotUserAgentChatHistory", "supportCagReactionsAndPolls", b"supportCagReactionsAndPolls", "supportCallLogHistory", b"supportCallLogHistory", "supportFbidBotChatHistory", b"supportFbidBotChatHistory", "supportGroupHistory", b"supportGroupHistory", "supportGuestChat", b"supportGuestChat", "supportHatchHistory", b"supportHatchHistory", "supportHostedGroupMsg", b"supportHostedGroupMsg", "supportInlineContacts", b"supportInlineContacts", "supportManusHistory", b"supportManusHistory", "supportMessageAssociation", b"supportMessageAssociation", "supportRecentSyncChunkMessageCountTuning", b"supportRecentSyncChunkMessageCountTuning", "thumbnailSyncDaysLimit", b"thumbnailSyncDaysLimit"] # noqa: Y015
- def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ...
- _ClearFieldArgType: _TypeAlias = _typing.Literal["completeOnDemandReady", b"completeOnDemandReady", "fullSyncDaysLimit", b"fullSyncDaysLimit", "fullSyncSizeMbLimit", b"fullSyncSizeMbLimit", "initialSyncMaxMessagesPerChat", b"initialSyncMaxMessagesPerChat", "inlineInitialPayloadInE2EeMsg", b"inlineInitialPayloadInE2EeMsg", "onDemandReady", b"onDemandReady", "recentSyncDaysLimit", b"recentSyncDaysLimit", "storageQuotaMb", b"storageQuotaMb", "supportAddOnHistorySyncMigration", b"supportAddOnHistorySyncMigration", "supportBizHostedMsg", b"supportBizHostedMsg", "supportBotUserAgentChatHistory", b"supportBotUserAgentChatHistory", "supportCagReactionsAndPolls", b"supportCagReactionsAndPolls", "supportCallLogHistory", b"supportCallLogHistory", "supportFbidBotChatHistory", b"supportFbidBotChatHistory", "supportGroupHistory", b"supportGroupHistory", "supportGuestChat", b"supportGuestChat", "supportHatchHistory", b"supportHatchHistory", "supportHostedGroupMsg", b"supportHostedGroupMsg", "supportInlineContacts", b"supportInlineContacts", "supportManusHistory", b"supportManusHistory", "supportMessageAssociation", b"supportMessageAssociation", "supportRecentSyncChunkMessageCountTuning", b"supportRecentSyncChunkMessageCountTuning", "supportedBotChannelFbids", b"supportedBotChannelFbids", "thumbnailSyncDaysLimit", b"thumbnailSyncDaysLimit"] # noqa: Y015
- def ClearField(self, field_name: _ClearFieldArgType) -> None: ...
-
- OS_FIELD_NUMBER: _builtins.int
- VERSION_FIELD_NUMBER: _builtins.int
- PLATFORMTYPE_FIELD_NUMBER: _builtins.int
- REQUIREFULLSYNC_FIELD_NUMBER: _builtins.int
- HISTORYSYNCCONFIG_FIELD_NUMBER: _builtins.int
- os: _builtins.str
- platformType: Global___DeviceProps.PlatformType.ValueType
- requireFullSync: _builtins.bool
+ SUCCESS_FIELD_NUMBER: _builtins.int
+ ERRORMESSAGE_FIELD_NUMBER: _builtins.int
+ errorMessage: _builtins.str
@_builtins.property
- def version(self) -> Global___DeviceProps.AppVersion: ...
- @_builtins.property
- def historySyncConfig(self) -> Global___DeviceProps.HistorySyncConfig: ...
+ def success(self) -> Global___DecryptSelfMmkDistributionSuccess: ...
def __init__(
self,
*,
- os: _builtins.str | None = ...,
- version: Global___DeviceProps.AppVersion | None = ...,
- platformType: Global___DeviceProps.PlatformType.ValueType | None = ...,
- requireFullSync: _builtins.bool | None = ...,
- historySyncConfig: Global___DeviceProps.HistorySyncConfig | None = ...,
+ success: Global___DecryptSelfMmkDistributionSuccess | None = ...,
+ errorMessage: _builtins.str | None = ...,
) -> None: ...
- _HasFieldArgType: _TypeAlias = _typing.Literal["historySyncConfig", b"historySyncConfig", "os", b"os", "platformType", b"platformType", "requireFullSync", b"requireFullSync", "version", b"version"] # noqa: Y015
+ _HasFieldArgType: _TypeAlias = _typing.Literal["errorMessage", b"errorMessage", "result", b"result", "success", b"success"] # noqa: Y015
def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ...
- _ClearFieldArgType: _TypeAlias = _typing.Literal["historySyncConfig", b"historySyncConfig", "os", b"os", "platformType", b"platformType", "requireFullSync", b"requireFullSync", "version", b"version"] # noqa: Y015
+ _ClearFieldArgType: _TypeAlias = _typing.Literal["errorMessage", b"errorMessage", "result", b"result", "success", b"success"] # noqa: Y015
def ClearField(self, field_name: _ClearFieldArgType) -> None: ...
+ _WhichOneofReturnType_result: _TypeAlias = _typing.Literal["success", "errorMessage"] # noqa: Y015
+ _WhichOneofArgType_result: _TypeAlias = _typing.Literal["result", b"result"] # noqa: Y015
+ def WhichOneof(self, oneof_group: _WhichOneofArgType_result) -> _WhichOneofReturnType_result | None: ...
-Global___DeviceProps: _TypeAlias = DeviceProps # noqa: Y015
+Global___DecryptSelfMmkDistributionResult: _TypeAlias = DecryptSelfMmkDistributionResult # noqa: Y015
@_typing.final
-class DisappearingMode(_message.Message):
+class DecryptSelfMmkDistributionSuccess(_message.Message):
DESCRIPTOR: _descriptor.Descriptor
- class _Initiator:
- ValueType = _typing.NewType("ValueType", _builtins.int)
- V: _TypeAlias = ValueType # noqa: Y015
-
- class _InitiatorEnumTypeWrapper(_enum_type_wrapper._EnumTypeWrapper[DisappearingMode._Initiator.ValueType], _builtins.type):
- DESCRIPTOR: _descriptor.EnumDescriptor
- CHANGED_IN_CHAT: DisappearingMode._Initiator.ValueType # 0
- INITIATED_BY_ME: DisappearingMode._Initiator.ValueType # 1
- INITIATED_BY_OTHER: DisappearingMode._Initiator.ValueType # 2
- BIZ_UPGRADE_FB_HOSTING: DisappearingMode._Initiator.ValueType # 3
-
- class Initiator(_Initiator, metaclass=_InitiatorEnumTypeWrapper): ...
- CHANGED_IN_CHAT: DisappearingMode.Initiator.ValueType # 0
- INITIATED_BY_ME: DisappearingMode.Initiator.ValueType # 1
- INITIATED_BY_OTHER: DisappearingMode.Initiator.ValueType # 2
- BIZ_UPGRADE_FB_HOSTING: DisappearingMode.Initiator.ValueType # 3
-
- class _Trigger:
- ValueType = _typing.NewType("ValueType", _builtins.int)
- V: _TypeAlias = ValueType # noqa: Y015
-
- class _TriggerEnumTypeWrapper(_enum_type_wrapper._EnumTypeWrapper[DisappearingMode._Trigger.ValueType], _builtins.type):
- DESCRIPTOR: _descriptor.EnumDescriptor
- UNKNOWN: DisappearingMode._Trigger.ValueType # 0
- CHAT_SETTING: DisappearingMode._Trigger.ValueType # 1
- ACCOUNT_SETTING: DisappearingMode._Trigger.ValueType # 2
- BULK_CHANGE: DisappearingMode._Trigger.ValueType # 3
- BIZ_SUPPORTS_FB_HOSTING: DisappearingMode._Trigger.ValueType # 4
- UNKNOWN_GROUPS: DisappearingMode._Trigger.ValueType # 5
-
- class Trigger(_Trigger, metaclass=_TriggerEnumTypeWrapper): ...
- UNKNOWN: DisappearingMode.Trigger.ValueType # 0
- CHAT_SETTING: DisappearingMode.Trigger.ValueType # 1
- ACCOUNT_SETTING: DisappearingMode.Trigger.ValueType # 2
- BULK_CHANGE: DisappearingMode.Trigger.ValueType # 3
- BIZ_SUPPORTS_FB_HOSTING: DisappearingMode.Trigger.ValueType # 4
- UNKNOWN_GROUPS: DisappearingMode.Trigger.ValueType # 5
-
- INITIATOR_FIELD_NUMBER: _builtins.int
- TRIGGER_FIELD_NUMBER: _builtins.int
- INITIATORDEVICEJID_FIELD_NUMBER: _builtins.int
- INITIATEDBYME_FIELD_NUMBER: _builtins.int
- initiator: Global___DisappearingMode.Initiator.ValueType
- trigger: Global___DisappearingMode.Trigger.ValueType
- initiatorDeviceJid: _builtins.str
- initiatedByMe: _builtins.bool
+ MMKSEED_FIELD_NUMBER: _builtins.int
+ mmkSeed: _builtins.bytes
def __init__(
self,
*,
- initiator: Global___DisappearingMode.Initiator.ValueType | None = ...,
- trigger: Global___DisappearingMode.Trigger.ValueType | None = ...,
- initiatorDeviceJid: _builtins.str | None = ...,
- initiatedByMe: _builtins.bool | None = ...,
+ mmkSeed: _builtins.bytes | None = ...,
) -> None: ...
- _HasFieldArgType: _TypeAlias = _typing.Literal["initiatedByMe", b"initiatedByMe", "initiator", b"initiator", "initiatorDeviceJid", b"initiatorDeviceJid", "trigger", b"trigger"] # noqa: Y015
+ _HasFieldArgType: _TypeAlias = _typing.Literal["mmkSeed", b"mmkSeed"] # noqa: Y015
def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ...
- _ClearFieldArgType: _TypeAlias = _typing.Literal["initiatedByMe", b"initiatedByMe", "initiator", b"initiator", "initiatorDeviceJid", b"initiatorDeviceJid", "trigger", b"trigger"] # noqa: Y015
+ _ClearFieldArgType: _TypeAlias = _typing.Literal["mmkSeed", b"mmkSeed"] # noqa: Y015
def ClearField(self, field_name: _ClearFieldArgType) -> None: ...
-Global___DisappearingMode: _TypeAlias = DisappearingMode # noqa: Y015
+Global___DecryptSelfMmkDistributionSuccess: _TypeAlias = DecryptSelfMmkDistributionSuccess # noqa: Y015
@_typing.final
-class EmbeddedContent(_message.Message):
+class DeriveAttachmentAccessTokenSecretInput(_message.Message):
DESCRIPTOR: _descriptor.Descriptor
- EMBEDDEDMESSAGE_FIELD_NUMBER: _builtins.int
- EMBEDDEDMUSIC_FIELD_NUMBER: _builtins.int
- @_builtins.property
- def embeddedMessage(self) -> Global___EmbeddedMessage: ...
- @_builtins.property
- def embeddedMusic(self) -> Global___EmbeddedMusic: ...
+ MEDIAKEY_FIELD_NUMBER: _builtins.int
+ mediaKey: _builtins.bytes
def __init__(
self,
*,
- embeddedMessage: Global___EmbeddedMessage | None = ...,
- embeddedMusic: Global___EmbeddedMusic | None = ...,
+ mediaKey: _builtins.bytes | None = ...,
) -> None: ...
- _HasFieldArgType: _TypeAlias = _typing.Literal["content", b"content", "embeddedMessage", b"embeddedMessage", "embeddedMusic", b"embeddedMusic"] # noqa: Y015
+ _HasFieldArgType: _TypeAlias = _typing.Literal["mediaKey", b"mediaKey"] # noqa: Y015
def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ...
- _ClearFieldArgType: _TypeAlias = _typing.Literal["content", b"content", "embeddedMessage", b"embeddedMessage", "embeddedMusic", b"embeddedMusic"] # noqa: Y015
+ _ClearFieldArgType: _TypeAlias = _typing.Literal["mediaKey", b"mediaKey"] # noqa: Y015
def ClearField(self, field_name: _ClearFieldArgType) -> None: ...
- _WhichOneofReturnType_content: _TypeAlias = _typing.Literal["embeddedMessage", "embeddedMusic"] # noqa: Y015
- _WhichOneofArgType_content: _TypeAlias = _typing.Literal["content", b"content"] # noqa: Y015
- def WhichOneof(self, oneof_group: _WhichOneofArgType_content) -> _WhichOneofReturnType_content | None: ...
-Global___EmbeddedContent: _TypeAlias = EmbeddedContent # noqa: Y015
+Global___DeriveAttachmentAccessTokenSecretInput: _TypeAlias = DeriveAttachmentAccessTokenSecretInput # noqa: Y015
@_typing.final
-class EmbeddedMessage(_message.Message):
+class DeriveAttachmentAccessTokenSecretResult(_message.Message):
DESCRIPTOR: _descriptor.Descriptor
- STANZAID_FIELD_NUMBER: _builtins.int
- MESSAGE_FIELD_NUMBER: _builtins.int
- stanzaId: _builtins.str
- @_builtins.property
- def message(self) -> Global___Message: ...
+ ATTACHMENTACCESSTOKENSECRET_FIELD_NUMBER: _builtins.int
+ attachmentAccessTokenSecret: _builtins.bytes
def __init__(
self,
*,
- stanzaId: _builtins.str | None = ...,
- message: Global___Message | None = ...,
+ attachmentAccessTokenSecret: _builtins.bytes | None = ...,
) -> None: ...
- _HasFieldArgType: _TypeAlias = _typing.Literal["message", b"message", "stanzaId", b"stanzaId"] # noqa: Y015
+ _HasFieldArgType: _TypeAlias = _typing.Literal["attachmentAccessTokenSecret", b"attachmentAccessTokenSecret"] # noqa: Y015
def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ...
- _ClearFieldArgType: _TypeAlias = _typing.Literal["message", b"message", "stanzaId", b"stanzaId"] # noqa: Y015
+ _ClearFieldArgType: _TypeAlias = _typing.Literal["attachmentAccessTokenSecret", b"attachmentAccessTokenSecret"] # noqa: Y015
def ClearField(self, field_name: _ClearFieldArgType) -> None: ...
-Global___EmbeddedMessage: _TypeAlias = EmbeddedMessage # noqa: Y015
+Global___DeriveAttachmentAccessTokenSecretResult: _TypeAlias = DeriveAttachmentAccessTokenSecretResult # noqa: Y015
@_typing.final
-class EmbeddedMusic(_message.Message):
+class DeriveAttachmentPrimaryKeySecretInput(_message.Message):
DESCRIPTOR: _descriptor.Descriptor
- MUSICCONTENTMEDIAID_FIELD_NUMBER: _builtins.int
- SONGID_FIELD_NUMBER: _builtins.int
- AUTHOR_FIELD_NUMBER: _builtins.int
- TITLE_FIELD_NUMBER: _builtins.int
- ARTWORKDIRECTPATH_FIELD_NUMBER: _builtins.int
- ARTWORKSHA256_FIELD_NUMBER: _builtins.int
- ARTWORKENCSHA256_FIELD_NUMBER: _builtins.int
- ARTISTATTRIBUTION_FIELD_NUMBER: _builtins.int
- COUNTRYBLOCKLIST_FIELD_NUMBER: _builtins.int
- ISEXPLICIT_FIELD_NUMBER: _builtins.int
- ARTWORKMEDIAKEY_FIELD_NUMBER: _builtins.int
- MUSICSONGSTARTTIMEINMS_FIELD_NUMBER: _builtins.int
- DERIVEDCONTENTSTARTTIMEINMS_FIELD_NUMBER: _builtins.int
- OVERLAPDURATIONINMS_FIELD_NUMBER: _builtins.int
- musicContentMediaId: _builtins.str
- songId: _builtins.str
- author: _builtins.str
- title: _builtins.str
- artworkDirectPath: _builtins.str
- artworkSha256: _builtins.bytes
- artworkEncSha256: _builtins.bytes
- artistAttribution: _builtins.str
- countryBlocklist: _builtins.bytes
- isExplicit: _builtins.bool
- artworkMediaKey: _builtins.bytes
- musicSongStartTimeInMs: _builtins.int
- derivedContentStartTimeInMs: _builtins.int
- overlapDurationInMs: _builtins.int
+ MEDIAKEY_FIELD_NUMBER: _builtins.int
+ mediaKey: _builtins.bytes
def __init__(
self,
*,
- musicContentMediaId: _builtins.str | None = ...,
- songId: _builtins.str | None = ...,
- author: _builtins.str | None = ...,
- title: _builtins.str | None = ...,
- artworkDirectPath: _builtins.str | None = ...,
- artworkSha256: _builtins.bytes | None = ...,
- artworkEncSha256: _builtins.bytes | None = ...,
- artistAttribution: _builtins.str | None = ...,
- countryBlocklist: _builtins.bytes | None = ...,
- isExplicit: _builtins.bool | None = ...,
- artworkMediaKey: _builtins.bytes | None = ...,
- musicSongStartTimeInMs: _builtins.int | None = ...,
- derivedContentStartTimeInMs: _builtins.int | None = ...,
- overlapDurationInMs: _builtins.int | None = ...,
+ mediaKey: _builtins.bytes | None = ...,
) -> None: ...
- _HasFieldArgType: _TypeAlias = _typing.Literal["artistAttribution", b"artistAttribution", "artworkDirectPath", b"artworkDirectPath", "artworkEncSha256", b"artworkEncSha256", "artworkMediaKey", b"artworkMediaKey", "artworkSha256", b"artworkSha256", "author", b"author", "countryBlocklist", b"countryBlocklist", "derivedContentStartTimeInMs", b"derivedContentStartTimeInMs", "isExplicit", b"isExplicit", "musicContentMediaId", b"musicContentMediaId", "musicSongStartTimeInMs", b"musicSongStartTimeInMs", "overlapDurationInMs", b"overlapDurationInMs", "songId", b"songId", "title", b"title"] # noqa: Y015
+ _HasFieldArgType: _TypeAlias = _typing.Literal["mediaKey", b"mediaKey"] # noqa: Y015
def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ...
- _ClearFieldArgType: _TypeAlias = _typing.Literal["artistAttribution", b"artistAttribution", "artworkDirectPath", b"artworkDirectPath", "artworkEncSha256", b"artworkEncSha256", "artworkMediaKey", b"artworkMediaKey", "artworkSha256", b"artworkSha256", "author", b"author", "countryBlocklist", b"countryBlocklist", "derivedContentStartTimeInMs", b"derivedContentStartTimeInMs", "isExplicit", b"isExplicit", "musicContentMediaId", b"musicContentMediaId", "musicSongStartTimeInMs", b"musicSongStartTimeInMs", "overlapDurationInMs", b"overlapDurationInMs", "songId", b"songId", "title", b"title"] # noqa: Y015
+ _ClearFieldArgType: _TypeAlias = _typing.Literal["mediaKey", b"mediaKey"] # noqa: Y015
def ClearField(self, field_name: _ClearFieldArgType) -> None: ...
-Global___EmbeddedMusic: _TypeAlias = EmbeddedMusic # noqa: Y015
+Global___DeriveAttachmentPrimaryKeySecretInput: _TypeAlias = DeriveAttachmentPrimaryKeySecretInput # noqa: Y015
@_typing.final
-class EncryptedPairingRequest(_message.Message):
+class DeriveAttachmentPrimaryKeySecretResult(_message.Message):
DESCRIPTOR: _descriptor.Descriptor
- ENCRYPTEDPAYLOAD_FIELD_NUMBER: _builtins.int
- IV_FIELD_NUMBER: _builtins.int
- encryptedPayload: _builtins.bytes
- iv: _builtins.bytes
+ ATTACHMENTPRIMARYKEYSECRET_FIELD_NUMBER: _builtins.int
+ attachmentPrimaryKeySecret: _builtins.bytes
def __init__(
self,
*,
- encryptedPayload: _builtins.bytes | None = ...,
- iv: _builtins.bytes | None = ...,
+ attachmentPrimaryKeySecret: _builtins.bytes | None = ...,
) -> None: ...
- _HasFieldArgType: _TypeAlias = _typing.Literal["encryptedPayload", b"encryptedPayload", "iv", b"iv"] # noqa: Y015
+ _HasFieldArgType: _TypeAlias = _typing.Literal["attachmentPrimaryKeySecret", b"attachmentPrimaryKeySecret"] # noqa: Y015
def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ...
- _ClearFieldArgType: _TypeAlias = _typing.Literal["encryptedPayload", b"encryptedPayload", "iv", b"iv"] # noqa: Y015
+ _ClearFieldArgType: _TypeAlias = _typing.Literal["attachmentPrimaryKeySecret", b"attachmentPrimaryKeySecret"] # noqa: Y015
def ClearField(self, field_name: _ClearFieldArgType) -> None: ...
-Global___EncryptedPairingRequest: _TypeAlias = EncryptedPairingRequest # noqa: Y015
+Global___DeriveAttachmentPrimaryKeySecretResult: _TypeAlias = DeriveAttachmentPrimaryKeySecretResult # noqa: Y015
@_typing.final
-class EphemeralSetting(_message.Message):
+class DeriveMailboxAuthKeypairInput(_message.Message):
DESCRIPTOR: _descriptor.Descriptor
- DURATION_FIELD_NUMBER: _builtins.int
- TIMESTAMP_FIELD_NUMBER: _builtins.int
- duration: _builtins.int
- timestamp: _builtins.int
+ EXPORTROOTKEY_FIELD_NUMBER: _builtins.int
+ EPOCHNUMBER_FIELD_NUMBER: _builtins.int
+ exportRootKey: _builtins.bytes
+ epochNumber: _builtins.int
def __init__(
self,
*,
- duration: _builtins.int | None = ...,
- timestamp: _builtins.int | None = ...,
+ exportRootKey: _builtins.bytes | None = ...,
+ epochNumber: _builtins.int | None = ...,
) -> None: ...
- _HasFieldArgType: _TypeAlias = _typing.Literal["duration", b"duration", "timestamp", b"timestamp"] # noqa: Y015
+ _HasFieldArgType: _TypeAlias = _typing.Literal["epochNumber", b"epochNumber", "exportRootKey", b"exportRootKey"] # noqa: Y015
def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ...
- _ClearFieldArgType: _TypeAlias = _typing.Literal["duration", b"duration", "timestamp", b"timestamp"] # noqa: Y015
+ _ClearFieldArgType: _TypeAlias = _typing.Literal["epochNumber", b"epochNumber", "exportRootKey", b"exportRootKey"] # noqa: Y015
def ClearField(self, field_name: _ClearFieldArgType) -> None: ...
-Global___EphemeralSetting: _TypeAlias = EphemeralSetting # noqa: Y015
+Global___DeriveMailboxAuthKeypairInput: _TypeAlias = DeriveMailboxAuthKeypairInput # noqa: Y015
@_typing.final
-class EventAdditionalMetadata(_message.Message):
+class DeriveMailboxAuthKeypairResult(_message.Message):
DESCRIPTOR: _descriptor.Descriptor
- ISSTALE_FIELD_NUMBER: _builtins.int
- isStale: _builtins.bool
+ MAILBOXAUTHPUBLICKEY_FIELD_NUMBER: _builtins.int
+ MAILBOXAUTHPRIVATEKEY_FIELD_NUMBER: _builtins.int
+ mailboxAuthPublicKey: _builtins.bytes
+ mailboxAuthPrivateKey: _builtins.bytes
def __init__(
self,
*,
- isStale: _builtins.bool | None = ...,
+ mailboxAuthPublicKey: _builtins.bytes | None = ...,
+ mailboxAuthPrivateKey: _builtins.bytes | None = ...,
) -> None: ...
- _HasFieldArgType: _TypeAlias = _typing.Literal["isStale", b"isStale"] # noqa: Y015
+ _HasFieldArgType: _TypeAlias = _typing.Literal["mailboxAuthPrivateKey", b"mailboxAuthPrivateKey", "mailboxAuthPublicKey", b"mailboxAuthPublicKey"] # noqa: Y015
def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ...
- _ClearFieldArgType: _TypeAlias = _typing.Literal["isStale", b"isStale"] # noqa: Y015
+ _ClearFieldArgType: _TypeAlias = _typing.Literal["mailboxAuthPrivateKey", b"mailboxAuthPrivateKey", "mailboxAuthPublicKey", b"mailboxAuthPublicKey"] # noqa: Y015
def ClearField(self, field_name: _ClearFieldArgType) -> None: ...
-Global___EventAdditionalMetadata: _TypeAlias = EventAdditionalMetadata # noqa: Y015
+Global___DeriveMailboxAuthKeypairResult: _TypeAlias = DeriveMailboxAuthKeypairResult # noqa: Y015
@_typing.final
-class EventResponse(_message.Message):
+class DeriveMailboxEncryptionKeypairInput(_message.Message):
DESCRIPTOR: _descriptor.Descriptor
- EVENTRESPONSEMESSAGEKEY_FIELD_NUMBER: _builtins.int
- TIMESTAMPMS_FIELD_NUMBER: _builtins.int
- EVENTRESPONSEMESSAGE_FIELD_NUMBER: _builtins.int
- UNREAD_FIELD_NUMBER: _builtins.int
- timestampMs: _builtins.int
- unread: _builtins.bool
- @_builtins.property
- def eventResponseMessageKey(self) -> Global___MessageKey: ...
- @_builtins.property
- def eventResponseMessage(self) -> Global___Message.EventResponseMessage: ...
+ EXPORTROOTKEY_FIELD_NUMBER: _builtins.int
+ EPOCHNUMBER_FIELD_NUMBER: _builtins.int
+ exportRootKey: _builtins.bytes
+ epochNumber: _builtins.int
def __init__(
self,
*,
- eventResponseMessageKey: Global___MessageKey | None = ...,
- timestampMs: _builtins.int | None = ...,
- eventResponseMessage: Global___Message.EventResponseMessage | None = ...,
- unread: _builtins.bool | None = ...,
+ exportRootKey: _builtins.bytes | None = ...,
+ epochNumber: _builtins.int | None = ...,
) -> None: ...
- _HasFieldArgType: _TypeAlias = _typing.Literal["eventResponseMessage", b"eventResponseMessage", "eventResponseMessageKey", b"eventResponseMessageKey", "timestampMs", b"timestampMs", "unread", b"unread"] # noqa: Y015
+ _HasFieldArgType: _TypeAlias = _typing.Literal["epochNumber", b"epochNumber", "exportRootKey", b"exportRootKey"] # noqa: Y015
def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ...
- _ClearFieldArgType: _TypeAlias = _typing.Literal["eventResponseMessage", b"eventResponseMessage", "eventResponseMessageKey", b"eventResponseMessageKey", "timestampMs", b"timestampMs", "unread", b"unread"] # noqa: Y015
+ _ClearFieldArgType: _TypeAlias = _typing.Literal["epochNumber", b"epochNumber", "exportRootKey", b"exportRootKey"] # noqa: Y015
def ClearField(self, field_name: _ClearFieldArgType) -> None: ...
-Global___EventResponse: _TypeAlias = EventResponse # noqa: Y015
+Global___DeriveMailboxEncryptionKeypairInput: _TypeAlias = DeriveMailboxEncryptionKeypairInput # noqa: Y015
@_typing.final
-class ExitCode(_message.Message):
+class DeriveMailboxEncryptionKeypairResult(_message.Message):
DESCRIPTOR: _descriptor.Descriptor
- CODE_FIELD_NUMBER: _builtins.int
- TEXT_FIELD_NUMBER: _builtins.int
- code: _builtins.int
- text: _builtins.str
+ MAILBOXENCRYPTIONPUBLICKEY_FIELD_NUMBER: _builtins.int
+ MAILBOXENCRYPTIONPRIVATEKEY_FIELD_NUMBER: _builtins.int
+ mailboxEncryptionPublicKey: _builtins.bytes
+ mailboxEncryptionPrivateKey: _builtins.bytes
def __init__(
self,
*,
- code: _builtins.int | None = ...,
- text: _builtins.str | None = ...,
+ mailboxEncryptionPublicKey: _builtins.bytes | None = ...,
+ mailboxEncryptionPrivateKey: _builtins.bytes | None = ...,
) -> None: ...
- _HasFieldArgType: _TypeAlias = _typing.Literal["code", b"code", "text", b"text"] # noqa: Y015
+ _HasFieldArgType: _TypeAlias = _typing.Literal["mailboxEncryptionPrivateKey", b"mailboxEncryptionPrivateKey", "mailboxEncryptionPublicKey", b"mailboxEncryptionPublicKey"] # noqa: Y015
def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ...
- _ClearFieldArgType: _TypeAlias = _typing.Literal["code", b"code", "text", b"text"] # noqa: Y015
+ _ClearFieldArgType: _TypeAlias = _typing.Literal["mailboxEncryptionPrivateKey", b"mailboxEncryptionPrivateKey", "mailboxEncryptionPublicKey", b"mailboxEncryptionPublicKey"] # noqa: Y015
def ClearField(self, field_name: _ClearFieldArgType) -> None: ...
-Global___ExitCode: _TypeAlias = ExitCode # noqa: Y015
+Global___DeriveMailboxEncryptionKeypairResult: _TypeAlias = DeriveMailboxEncryptionKeypairResult # noqa: Y015
@_typing.final
-class ExternalBlobReference(_message.Message):
+class DeriveMailboxSigningKeypairInput(_message.Message):
DESCRIPTOR: _descriptor.Descriptor
- MEDIAKEY_FIELD_NUMBER: _builtins.int
- DIRECTPATH_FIELD_NUMBER: _builtins.int
- HANDLE_FIELD_NUMBER: _builtins.int
- FILESIZEBYTES_FIELD_NUMBER: _builtins.int
- FILESHA256_FIELD_NUMBER: _builtins.int
- FILEENCSHA256_FIELD_NUMBER: _builtins.int
- mediaKey: _builtins.bytes
- directPath: _builtins.str
- handle: _builtins.str
- fileSizeBytes: _builtins.int
- fileSha256: _builtins.bytes
- fileEncSha256: _builtins.bytes
+ EXPORTROOTKEY_FIELD_NUMBER: _builtins.int
+ EPOCHNUMBER_FIELD_NUMBER: _builtins.int
+ exportRootKey: _builtins.bytes
+ epochNumber: _builtins.int
def __init__(
self,
*,
- mediaKey: _builtins.bytes | None = ...,
- directPath: _builtins.str | None = ...,
- handle: _builtins.str | None = ...,
- fileSizeBytes: _builtins.int | None = ...,
- fileSha256: _builtins.bytes | None = ...,
- fileEncSha256: _builtins.bytes | None = ...,
+ exportRootKey: _builtins.bytes | None = ...,
+ epochNumber: _builtins.int | None = ...,
) -> None: ...
- _HasFieldArgType: _TypeAlias = _typing.Literal["directPath", b"directPath", "fileEncSha256", b"fileEncSha256", "fileSha256", b"fileSha256", "fileSizeBytes", b"fileSizeBytes", "handle", b"handle", "mediaKey", b"mediaKey"] # noqa: Y015
+ _HasFieldArgType: _TypeAlias = _typing.Literal["epochNumber", b"epochNumber", "exportRootKey", b"exportRootKey"] # noqa: Y015
def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ...
- _ClearFieldArgType: _TypeAlias = _typing.Literal["directPath", b"directPath", "fileEncSha256", b"fileEncSha256", "fileSha256", b"fileSha256", "fileSizeBytes", b"fileSizeBytes", "handle", b"handle", "mediaKey", b"mediaKey"] # noqa: Y015
+ _ClearFieldArgType: _TypeAlias = _typing.Literal["epochNumber", b"epochNumber", "exportRootKey", b"exportRootKey"] # noqa: Y015
def ClearField(self, field_name: _ClearFieldArgType) -> None: ...
-Global___ExternalBlobReference: _TypeAlias = ExternalBlobReference # noqa: Y015
+Global___DeriveMailboxSigningKeypairInput: _TypeAlias = DeriveMailboxSigningKeypairInput # noqa: Y015
@_typing.final
-class Field(_message.Message):
+class DeriveMailboxSigningKeypairResult(_message.Message):
DESCRIPTOR: _descriptor.Descriptor
- @_typing.final
- class SubfieldEntry(_message.Message):
- DESCRIPTOR: _descriptor.Descriptor
-
- KEY_FIELD_NUMBER: _builtins.int
- VALUE_FIELD_NUMBER: _builtins.int
- key: _builtins.int
- @_builtins.property
- def value(self) -> Global___Field: ...
- def __init__(
- self,
- *,
- key: _builtins.int | None = ...,
- value: Global___Field | None = ...,
- ) -> None: ...
- _HasFieldArgType: _TypeAlias = _typing.Literal["key", b"key", "value", b"value"] # noqa: Y015
- def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ...
- _ClearFieldArgType: _TypeAlias = _typing.Literal["key", b"key", "value", b"value"] # noqa: Y015
- def ClearField(self, field_name: _ClearFieldArgType) -> None: ...
-
- MINVERSION_FIELD_NUMBER: _builtins.int
- MAXVERSION_FIELD_NUMBER: _builtins.int
- NOTREPORTABLEMINVERSION_FIELD_NUMBER: _builtins.int
- ISMESSAGE_FIELD_NUMBER: _builtins.int
- SUBFIELD_FIELD_NUMBER: _builtins.int
- minVersion: _builtins.int
- maxVersion: _builtins.int
- notReportableMinVersion: _builtins.int
- isMessage: _builtins.bool
+ SUCCESS_FIELD_NUMBER: _builtins.int
+ ERRORMESSAGE_FIELD_NUMBER: _builtins.int
+ errorMessage: _builtins.str
@_builtins.property
- def subfield(self) -> _containers.MessageMap[_builtins.int, Global___Field]: ...
+ def success(self) -> Global___DeriveMailboxSigningKeypairSuccess: ...
def __init__(
self,
*,
- minVersion: _builtins.int | None = ...,
- maxVersion: _builtins.int | None = ...,
- notReportableMinVersion: _builtins.int | None = ...,
- isMessage: _builtins.bool | None = ...,
- subfield: _abc.Mapping[_builtins.int, Global___Field] | None = ...,
+ success: Global___DeriveMailboxSigningKeypairSuccess | None = ...,
+ errorMessage: _builtins.str | None = ...,
) -> None: ...
- _HasFieldArgType: _TypeAlias = _typing.Literal["isMessage", b"isMessage", "maxVersion", b"maxVersion", "minVersion", b"minVersion", "notReportableMinVersion", b"notReportableMinVersion"] # noqa: Y015
+ _HasFieldArgType: _TypeAlias = _typing.Literal["errorMessage", b"errorMessage", "result", b"result", "success", b"success"] # noqa: Y015
def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ...
- _ClearFieldArgType: _TypeAlias = _typing.Literal["isMessage", b"isMessage", "maxVersion", b"maxVersion", "minVersion", b"minVersion", "notReportableMinVersion", b"notReportableMinVersion", "subfield", b"subfield"] # noqa: Y015
+ _ClearFieldArgType: _TypeAlias = _typing.Literal["errorMessage", b"errorMessage", "result", b"result", "success", b"success"] # noqa: Y015
def ClearField(self, field_name: _ClearFieldArgType) -> None: ...
+ _WhichOneofReturnType_result: _TypeAlias = _typing.Literal["success", "errorMessage"] # noqa: Y015
+ _WhichOneofArgType_result: _TypeAlias = _typing.Literal["result", b"result"] # noqa: Y015
+ def WhichOneof(self, oneof_group: _WhichOneofArgType_result) -> _WhichOneofReturnType_result | None: ...
-Global___Field: _TypeAlias = Field # noqa: Y015
+Global___DeriveMailboxSigningKeypairResult: _TypeAlias = DeriveMailboxSigningKeypairResult # noqa: Y015
@_typing.final
-class FingerprintData(_message.Message):
+class DeriveMailboxSigningKeypairSuccess(_message.Message):
DESCRIPTOR: _descriptor.Descriptor
- class _HostedState:
- ValueType = _typing.NewType("ValueType", _builtins.int)
- V: _TypeAlias = ValueType # noqa: Y015
-
- class _HostedStateEnumTypeWrapper(_enum_type_wrapper._EnumTypeWrapper[FingerprintData._HostedState.ValueType], _builtins.type):
- DESCRIPTOR: _descriptor.EnumDescriptor
- E2EE: FingerprintData._HostedState.ValueType # 0
- HOSTED: FingerprintData._HostedState.ValueType # 1
-
- class HostedState(_HostedState, metaclass=_HostedStateEnumTypeWrapper): ...
- E2EE: FingerprintData.HostedState.ValueType # 0
- HOSTED: FingerprintData.HostedState.ValueType # 1
-
- PUBLICKEY_FIELD_NUMBER: _builtins.int
- PNIDENTIFIER_FIELD_NUMBER: _builtins.int
- LIDIDENTIFIER_FIELD_NUMBER: _builtins.int
- USERNAMEIDENTIFIER_FIELD_NUMBER: _builtins.int
- HOSTEDSTATE_FIELD_NUMBER: _builtins.int
- HASHEDPUBLICKEY_FIELD_NUMBER: _builtins.int
- publicKey: _builtins.bytes
- pnIdentifier: _builtins.bytes
- lidIdentifier: _builtins.bytes
- usernameIdentifier: _builtins.bytes
- hostedState: Global___FingerprintData.HostedState.ValueType
- hashedPublicKey: _builtins.bytes
+ MAILBOXSIGNINGPUBLICKEY_FIELD_NUMBER: _builtins.int
+ MAILBOXSIGNINGPRIVATEKEY_FIELD_NUMBER: _builtins.int
+ mailboxSigningPublicKey: _builtins.bytes
+ mailboxSigningPrivateKey: _builtins.bytes
def __init__(
self,
*,
- publicKey: _builtins.bytes | None = ...,
- pnIdentifier: _builtins.bytes | None = ...,
- lidIdentifier: _builtins.bytes | None = ...,
- usernameIdentifier: _builtins.bytes | None = ...,
- hostedState: Global___FingerprintData.HostedState.ValueType | None = ...,
- hashedPublicKey: _builtins.bytes | None = ...,
+ mailboxSigningPublicKey: _builtins.bytes | None = ...,
+ mailboxSigningPrivateKey: _builtins.bytes | None = ...,
) -> None: ...
- _HasFieldArgType: _TypeAlias = _typing.Literal["hashedPublicKey", b"hashedPublicKey", "hostedState", b"hostedState", "lidIdentifier", b"lidIdentifier", "pnIdentifier", b"pnIdentifier", "publicKey", b"publicKey", "usernameIdentifier", b"usernameIdentifier"] # noqa: Y015
+ _HasFieldArgType: _TypeAlias = _typing.Literal["mailboxSigningPrivateKey", b"mailboxSigningPrivateKey", "mailboxSigningPublicKey", b"mailboxSigningPublicKey"] # noqa: Y015
def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ...
- _ClearFieldArgType: _TypeAlias = _typing.Literal["hashedPublicKey", b"hashedPublicKey", "hostedState", b"hostedState", "lidIdentifier", b"lidIdentifier", "pnIdentifier", b"pnIdentifier", "publicKey", b"publicKey", "usernameIdentifier", b"usernameIdentifier"] # noqa: Y015
+ _ClearFieldArgType: _TypeAlias = _typing.Literal["mailboxSigningPrivateKey", b"mailboxSigningPrivateKey", "mailboxSigningPublicKey", b"mailboxSigningPublicKey"] # noqa: Y015
def ClearField(self, field_name: _ClearFieldArgType) -> None: ...
-Global___FingerprintData: _TypeAlias = FingerprintData # noqa: Y015
+Global___DeriveMailboxSigningKeypairSuccess: _TypeAlias = DeriveMailboxSigningKeypairSuccess # noqa: Y015
@_typing.final
-class ForwardedAIBotMessageInfo(_message.Message):
+class DeriveMessageKeyInput(_message.Message):
DESCRIPTOR: _descriptor.Descriptor
- BOTNAME_FIELD_NUMBER: _builtins.int
- BOTJID_FIELD_NUMBER: _builtins.int
- CREATORNAME_FIELD_NUMBER: _builtins.int
- botName: _builtins.str
- botJid: _builtins.str
- creatorName: _builtins.str
+ EPOCHROOTKEY_FIELD_NUMBER: _builtins.int
+ EPOCHANONID_FIELD_NUMBER: _builtins.int
+ THREADID_FIELD_NUMBER: _builtins.int
+ epochRootKey: _builtins.bytes
+ epochAnonId: _builtins.bytes
+ threadId: _builtins.str
def __init__(
self,
*,
- botName: _builtins.str | None = ...,
- botJid: _builtins.str | None = ...,
- creatorName: _builtins.str | None = ...,
+ epochRootKey: _builtins.bytes | None = ...,
+ epochAnonId: _builtins.bytes | None = ...,
+ threadId: _builtins.str | None = ...,
) -> None: ...
- _HasFieldArgType: _TypeAlias = _typing.Literal["botJid", b"botJid", "botName", b"botName", "creatorName", b"creatorName"] # noqa: Y015
+ _HasFieldArgType: _TypeAlias = _typing.Literal["epochAnonId", b"epochAnonId", "epochRootKey", b"epochRootKey", "threadId", b"threadId"] # noqa: Y015
def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ...
- _ClearFieldArgType: _TypeAlias = _typing.Literal["botJid", b"botJid", "botName", b"botName", "creatorName", b"creatorName"] # noqa: Y015
+ _ClearFieldArgType: _TypeAlias = _typing.Literal["epochAnonId", b"epochAnonId", "epochRootKey", b"epochRootKey", "threadId", b"threadId"] # noqa: Y015
def ClearField(self, field_name: _ClearFieldArgType) -> None: ...
-Global___ForwardedAIBotMessageInfo: _TypeAlias = ForwardedAIBotMessageInfo # noqa: Y015
+Global___DeriveMessageKeyInput: _TypeAlias = DeriveMessageKeyInput # noqa: Y015
@_typing.final
-class GlobalSettings(_message.Message):
+class DeriveMessageKeyOutput(_message.Message):
DESCRIPTOR: _descriptor.Descriptor
- LIGHTTHEMEWALLPAPER_FIELD_NUMBER: _builtins.int
- MEDIAVISIBILITY_FIELD_NUMBER: _builtins.int
- DARKTHEMEWALLPAPER_FIELD_NUMBER: _builtins.int
- AUTODOWNLOADWIFI_FIELD_NUMBER: _builtins.int
- AUTODOWNLOADCELLULAR_FIELD_NUMBER: _builtins.int
- AUTODOWNLOADROAMING_FIELD_NUMBER: _builtins.int
- SHOWINDIVIDUALNOTIFICATIONSPREVIEW_FIELD_NUMBER: _builtins.int
- SHOWGROUPNOTIFICATIONSPREVIEW_FIELD_NUMBER: _builtins.int
- DISAPPEARINGMODEDURATION_FIELD_NUMBER: _builtins.int
- DISAPPEARINGMODETIMESTAMP_FIELD_NUMBER: _builtins.int
- AVATARUSERSETTINGS_FIELD_NUMBER: _builtins.int
- FONTSIZE_FIELD_NUMBER: _builtins.int
- SECURITYNOTIFICATIONS_FIELD_NUMBER: _builtins.int
- AUTOUNARCHIVECHATS_FIELD_NUMBER: _builtins.int
- VIDEOQUALITYMODE_FIELD_NUMBER: _builtins.int
- PHOTOQUALITYMODE_FIELD_NUMBER: _builtins.int
- INDIVIDUALNOTIFICATIONSETTINGS_FIELD_NUMBER: _builtins.int
- GROUPNOTIFICATIONSETTINGS_FIELD_NUMBER: _builtins.int
- CHATLOCKSETTINGS_FIELD_NUMBER: _builtins.int
- CHATDBLIDMIGRATIONTIMESTAMP_FIELD_NUMBER: _builtins.int
- mediaVisibility: Global___MediaVisibility.ValueType
- showIndividualNotificationsPreview: _builtins.bool
- showGroupNotificationsPreview: _builtins.bool
- disappearingModeDuration: _builtins.int
- disappearingModeTimestamp: _builtins.int
- fontSize: _builtins.int
- securityNotifications: _builtins.bool
- autoUnarchiveChats: _builtins.bool
- videoQualityMode: _builtins.int
- photoQualityMode: _builtins.int
- chatDbLidMigrationTimestamp: _builtins.int
- @_builtins.property
- def lightThemeWallpaper(self) -> Global___WallpaperSettings: ...
- @_builtins.property
- def darkThemeWallpaper(self) -> Global___WallpaperSettings: ...
- @_builtins.property
- def autoDownloadWiFi(self) -> Global___AutoDownloadSettings: ...
- @_builtins.property
- def autoDownloadCellular(self) -> Global___AutoDownloadSettings: ...
- @_builtins.property
- def autoDownloadRoaming(self) -> Global___AutoDownloadSettings: ...
- @_builtins.property
- def avatarUserSettings(self) -> Global___AvatarUserSettings: ...
- @_builtins.property
- def individualNotificationSettings(self) -> Global___NotificationSettings: ...
- @_builtins.property
- def groupNotificationSettings(self) -> Global___NotificationSettings: ...
- @_builtins.property
- def chatLockSettings(self) -> Global___ChatLockSettings: ...
+ MESSAGEKEY_FIELD_NUMBER: _builtins.int
+ ERROR_FIELD_NUMBER: _builtins.int
+ messageKey: _builtins.bytes
+ error: _builtins.str
def __init__(
self,
*,
- lightThemeWallpaper: Global___WallpaperSettings | None = ...,
- mediaVisibility: Global___MediaVisibility.ValueType | None = ...,
- darkThemeWallpaper: Global___WallpaperSettings | None = ...,
- autoDownloadWiFi: Global___AutoDownloadSettings | None = ...,
- autoDownloadCellular: Global___AutoDownloadSettings | None = ...,
- autoDownloadRoaming: Global___AutoDownloadSettings | None = ...,
- showIndividualNotificationsPreview: _builtins.bool | None = ...,
- showGroupNotificationsPreview: _builtins.bool | None = ...,
- disappearingModeDuration: _builtins.int | None = ...,
- disappearingModeTimestamp: _builtins.int | None = ...,
- avatarUserSettings: Global___AvatarUserSettings | None = ...,
- fontSize: _builtins.int | None = ...,
- securityNotifications: _builtins.bool | None = ...,
- autoUnarchiveChats: _builtins.bool | None = ...,
- videoQualityMode: _builtins.int | None = ...,
- photoQualityMode: _builtins.int | None = ...,
- individualNotificationSettings: Global___NotificationSettings | None = ...,
- groupNotificationSettings: Global___NotificationSettings | None = ...,
- chatLockSettings: Global___ChatLockSettings | None = ...,
- chatDbLidMigrationTimestamp: _builtins.int | None = ...,
+ messageKey: _builtins.bytes | None = ...,
+ error: _builtins.str | None = ...,
) -> None: ...
- _HasFieldArgType: _TypeAlias = _typing.Literal["autoDownloadCellular", b"autoDownloadCellular", "autoDownloadRoaming", b"autoDownloadRoaming", "autoDownloadWiFi", b"autoDownloadWiFi", "autoUnarchiveChats", b"autoUnarchiveChats", "avatarUserSettings", b"avatarUserSettings", "chatDbLidMigrationTimestamp", b"chatDbLidMigrationTimestamp", "chatLockSettings", b"chatLockSettings", "darkThemeWallpaper", b"darkThemeWallpaper", "disappearingModeDuration", b"disappearingModeDuration", "disappearingModeTimestamp", b"disappearingModeTimestamp", "fontSize", b"fontSize", "groupNotificationSettings", b"groupNotificationSettings", "individualNotificationSettings", b"individualNotificationSettings", "lightThemeWallpaper", b"lightThemeWallpaper", "mediaVisibility", b"mediaVisibility", "photoQualityMode", b"photoQualityMode", "securityNotifications", b"securityNotifications", "showGroupNotificationsPreview", b"showGroupNotificationsPreview", "showIndividualNotificationsPreview", b"showIndividualNotificationsPreview", "videoQualityMode", b"videoQualityMode"] # noqa: Y015
+ _HasFieldArgType: _TypeAlias = _typing.Literal["error", b"error", "messageKey", b"messageKey"] # noqa: Y015
def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ...
- _ClearFieldArgType: _TypeAlias = _typing.Literal["autoDownloadCellular", b"autoDownloadCellular", "autoDownloadRoaming", b"autoDownloadRoaming", "autoDownloadWiFi", b"autoDownloadWiFi", "autoUnarchiveChats", b"autoUnarchiveChats", "avatarUserSettings", b"avatarUserSettings", "chatDbLidMigrationTimestamp", b"chatDbLidMigrationTimestamp", "chatLockSettings", b"chatLockSettings", "darkThemeWallpaper", b"darkThemeWallpaper", "disappearingModeDuration", b"disappearingModeDuration", "disappearingModeTimestamp", b"disappearingModeTimestamp", "fontSize", b"fontSize", "groupNotificationSettings", b"groupNotificationSettings", "individualNotificationSettings", b"individualNotificationSettings", "lightThemeWallpaper", b"lightThemeWallpaper", "mediaVisibility", b"mediaVisibility", "photoQualityMode", b"photoQualityMode", "securityNotifications", b"securityNotifications", "showGroupNotificationsPreview", b"showGroupNotificationsPreview", "showIndividualNotificationsPreview", b"showIndividualNotificationsPreview", "videoQualityMode", b"videoQualityMode"] # noqa: Y015
+ _ClearFieldArgType: _TypeAlias = _typing.Literal["error", b"error", "messageKey", b"messageKey"] # noqa: Y015
def ClearField(self, field_name: _ClearFieldArgType) -> None: ...
-Global___GlobalSettings: _TypeAlias = GlobalSettings # noqa: Y015
+Global___DeriveMessageKeyOutput: _TypeAlias = DeriveMessageKeyOutput # noqa: Y015
@_typing.final
-class GroupHistory(_message.Message):
+class DeriveMessagingMailboxKeypairsInput(_message.Message):
DESCRIPTOR: _descriptor.Descriptor
- MESSAGES_FIELD_NUMBER: _builtins.int
- UNCOUNTEDASSOCIATEDMESSAGELISTS_FIELD_NUMBER: _builtins.int
- COMMENTMESSAGES_FIELD_NUMBER: _builtins.int
- OUTOFWINDOWPINNEDMESSAGES_FIELD_NUMBER: _builtins.int
- @_builtins.property
- def messages(self) -> _containers.RepeatedCompositeFieldContainer[Global___WebMessageInfo]: ...
- @_builtins.property
- def uncountedAssociatedMessageLists(self) -> _containers.RepeatedCompositeFieldContainer[Global___UnCountedAssociatedMessageList]: ...
- @_builtins.property
- def commentMessages(self) -> _containers.RepeatedCompositeFieldContainer[Global___WebMessageInfo]: ...
- @_builtins.property
- def outOfWindowPinnedMessages(self) -> _containers.RepeatedCompositeFieldContainer[Global___WebMessageInfo]: ...
+ MMKSEED_FIELD_NUMBER: _builtins.int
+ mmkSeed: _builtins.bytes
def __init__(
self,
*,
- messages: _abc.Iterable[Global___WebMessageInfo] | None = ...,
- uncountedAssociatedMessageLists: _abc.Iterable[Global___UnCountedAssociatedMessageList] | None = ...,
- commentMessages: _abc.Iterable[Global___WebMessageInfo] | None = ...,
- outOfWindowPinnedMessages: _abc.Iterable[Global___WebMessageInfo] | None = ...,
+ mmkSeed: _builtins.bytes | None = ...,
) -> None: ...
- _ClearFieldArgType: _TypeAlias = _typing.Literal["commentMessages", b"commentMessages", "messages", b"messages", "outOfWindowPinnedMessages", b"outOfWindowPinnedMessages", "uncountedAssociatedMessageLists", b"uncountedAssociatedMessageLists"] # noqa: Y015
+ _HasFieldArgType: _TypeAlias = _typing.Literal["mmkSeed", b"mmkSeed"] # noqa: Y015
+ def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ...
+ _ClearFieldArgType: _TypeAlias = _typing.Literal["mmkSeed", b"mmkSeed"] # noqa: Y015
def ClearField(self, field_name: _ClearFieldArgType) -> None: ...
-Global___GroupHistory: _TypeAlias = GroupHistory # noqa: Y015
+Global___DeriveMessagingMailboxKeypairsInput: _TypeAlias = DeriveMessagingMailboxKeypairsInput # noqa: Y015
@_typing.final
-class GroupHistoryBundleInfo(_message.Message):
+class DeriveMessagingMailboxKeypairsResult(_message.Message):
DESCRIPTOR: _descriptor.Descriptor
- class _ProcessState:
- ValueType = _typing.NewType("ValueType", _builtins.int)
- V: _TypeAlias = ValueType # noqa: Y015
-
- class _ProcessStateEnumTypeWrapper(_enum_type_wrapper._EnumTypeWrapper[GroupHistoryBundleInfo._ProcessState.ValueType], _builtins.type):
- DESCRIPTOR: _descriptor.EnumDescriptor
- NOT_INJECTED: GroupHistoryBundleInfo._ProcessState.ValueType # 0
- INJECTED: GroupHistoryBundleInfo._ProcessState.ValueType # 1
- INJECTED_PARTIAL: GroupHistoryBundleInfo._ProcessState.ValueType # 2
- INJECTION_FAILED: GroupHistoryBundleInfo._ProcessState.ValueType # 3
- INJECTION_FAILED_NO_RETRY: GroupHistoryBundleInfo._ProcessState.ValueType # 4
- DEDUPED: GroupHistoryBundleInfo._ProcessState.ValueType # 5
-
- class ProcessState(_ProcessState, metaclass=_ProcessStateEnumTypeWrapper): ...
- NOT_INJECTED: GroupHistoryBundleInfo.ProcessState.ValueType # 0
- INJECTED: GroupHistoryBundleInfo.ProcessState.ValueType # 1
- INJECTED_PARTIAL: GroupHistoryBundleInfo.ProcessState.ValueType # 2
- INJECTION_FAILED: GroupHistoryBundleInfo.ProcessState.ValueType # 3
- INJECTION_FAILED_NO_RETRY: GroupHistoryBundleInfo.ProcessState.ValueType # 4
- DEDUPED: GroupHistoryBundleInfo.ProcessState.ValueType # 5
-
- DEPRECATEDMESSAGEHISTORYBUNDLE_FIELD_NUMBER: _builtins.int
- PROCESSSTATE_FIELD_NUMBER: _builtins.int
- processState: Global___GroupHistoryBundleInfo.ProcessState.ValueType
+ SUCCESS_FIELD_NUMBER: _builtins.int
+ ERRORMESSAGE_FIELD_NUMBER: _builtins.int
+ errorMessage: _builtins.str
@_builtins.property
- def deprecatedMessageHistoryBundle(self) -> Global___Message.MessageHistoryBundle: ...
+ def success(self) -> Global___DeriveMessagingMailboxKeypairsSuccess: ...
def __init__(
self,
*,
- deprecatedMessageHistoryBundle: Global___Message.MessageHistoryBundle | None = ...,
- processState: Global___GroupHistoryBundleInfo.ProcessState.ValueType | None = ...,
+ success: Global___DeriveMessagingMailboxKeypairsSuccess | None = ...,
+ errorMessage: _builtins.str | None = ...,
) -> None: ...
- _HasFieldArgType: _TypeAlias = _typing.Literal["deprecatedMessageHistoryBundle", b"deprecatedMessageHistoryBundle", "processState", b"processState"] # noqa: Y015
+ _HasFieldArgType: _TypeAlias = _typing.Literal["errorMessage", b"errorMessage", "result", b"result", "success", b"success"] # noqa: Y015
def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ...
- _ClearFieldArgType: _TypeAlias = _typing.Literal["deprecatedMessageHistoryBundle", b"deprecatedMessageHistoryBundle", "processState", b"processState"] # noqa: Y015
+ _ClearFieldArgType: _TypeAlias = _typing.Literal["errorMessage", b"errorMessage", "result", b"result", "success", b"success"] # noqa: Y015
def ClearField(self, field_name: _ClearFieldArgType) -> None: ...
+ _WhichOneofReturnType_result: _TypeAlias = _typing.Literal["success", "errorMessage"] # noqa: Y015
+ _WhichOneofArgType_result: _TypeAlias = _typing.Literal["result", b"result"] # noqa: Y015
+ def WhichOneof(self, oneof_group: _WhichOneofArgType_result) -> _WhichOneofReturnType_result | None: ...
-Global___GroupHistoryBundleInfo: _TypeAlias = GroupHistoryBundleInfo # noqa: Y015
+Global___DeriveMessagingMailboxKeypairsResult: _TypeAlias = DeriveMessagingMailboxKeypairsResult # noqa: Y015
@_typing.final
-class GroupHistoryIndividualMessageInfo(_message.Message):
+class DeriveMessagingMailboxKeypairsSuccess(_message.Message):
DESCRIPTOR: _descriptor.Descriptor
- BUNDLEMESSAGEKEY_FIELD_NUMBER: _builtins.int
- EDITEDAFTERRECEIVEDASHISTORY_FIELD_NUMBER: _builtins.int
- editedAfterReceivedAsHistory: _builtins.bool
- @_builtins.property
- def bundleMessageKey(self) -> Global___MessageKey: ...
+ ENCSK_FIELD_NUMBER: _builtins.int
+ ENCPK_FIELD_NUMBER: _builtins.int
+ AUTHSK_FIELD_NUMBER: _builtins.int
+ AUTHPK_FIELD_NUMBER: _builtins.int
+ encSk: _builtins.bytes
+ encPk: _builtins.bytes
+ authSk: _builtins.bytes
+ authPk: _builtins.bytes
def __init__(
self,
*,
- bundleMessageKey: Global___MessageKey | None = ...,
- editedAfterReceivedAsHistory: _builtins.bool | None = ...,
+ encSk: _builtins.bytes | None = ...,
+ encPk: _builtins.bytes | None = ...,
+ authSk: _builtins.bytes | None = ...,
+ authPk: _builtins.bytes | None = ...,
) -> None: ...
- _HasFieldArgType: _TypeAlias = _typing.Literal["bundleMessageKey", b"bundleMessageKey", "editedAfterReceivedAsHistory", b"editedAfterReceivedAsHistory"] # noqa: Y015
+ _HasFieldArgType: _TypeAlias = _typing.Literal["authPk", b"authPk", "authSk", b"authSk", "encPk", b"encPk", "encSk", b"encSk"] # noqa: Y015
def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ...
- _ClearFieldArgType: _TypeAlias = _typing.Literal["bundleMessageKey", b"bundleMessageKey", "editedAfterReceivedAsHistory", b"editedAfterReceivedAsHistory"] # noqa: Y015
+ _ClearFieldArgType: _TypeAlias = _typing.Literal["authPk", b"authPk", "authSk", b"authSk", "encPk", b"encPk", "encSk", b"encSk"] # noqa: Y015
def ClearField(self, field_name: _ClearFieldArgType) -> None: ...
-Global___GroupHistoryIndividualMessageInfo: _TypeAlias = GroupHistoryIndividualMessageInfo # noqa: Y015
+Global___DeriveMessagingMailboxKeypairsSuccess: _TypeAlias = DeriveMessagingMailboxKeypairsSuccess # noqa: Y015
@_typing.final
-class GroupHistoryWithMessageBytes(_message.Message):
+class DetachedDevicePublicData(_message.Message):
DESCRIPTOR: _descriptor.Descriptor
- MESSAGES_FIELD_NUMBER: _builtins.int
- UNCOUNTEDASSOCIATEDMESSAGELISTS_FIELD_NUMBER: _builtins.int
- COMMENTMESSAGES_FIELD_NUMBER: _builtins.int
- OUTOFWINDOWPINNEDMESSAGES_FIELD_NUMBER: _builtins.int
- @_builtins.property
- def messages(self) -> _containers.RepeatedCompositeFieldContainer[Global___WebMessageInfoWithMessageBytes]: ...
- @_builtins.property
- def uncountedAssociatedMessageLists(self) -> _containers.RepeatedCompositeFieldContainer[Global___UnCountedAssociatedMessageListWithMessageBytes]: ...
- @_builtins.property
- def commentMessages(self) -> _containers.RepeatedCompositeFieldContainer[Global___WebMessageInfoWithMessageBytes]: ...
- @_builtins.property
- def outOfWindowPinnedMessages(self) -> _containers.RepeatedCompositeFieldContainer[Global___WebMessageInfoWithMessageBytes]: ...
- def __init__(
- self,
- *,
- messages: _abc.Iterable[Global___WebMessageInfoWithMessageBytes] | None = ...,
- uncountedAssociatedMessageLists: _abc.Iterable[Global___UnCountedAssociatedMessageListWithMessageBytes] | None = ...,
- commentMessages: _abc.Iterable[Global___WebMessageInfoWithMessageBytes] | None = ...,
- outOfWindowPinnedMessages: _abc.Iterable[Global___WebMessageInfoWithMessageBytes] | None = ...,
- ) -> None: ...
- _ClearFieldArgType: _TypeAlias = _typing.Literal["commentMessages", b"commentMessages", "messages", b"messages", "outOfWindowPinnedMessages", b"outOfWindowPinnedMessages", "uncountedAssociatedMessageLists", b"uncountedAssociatedMessageLists"] # noqa: Y015
- def ClearField(self, field_name: _ClearFieldArgType) -> None: ...
-
-Global___GroupHistoryWithMessageBytes: _TypeAlias = GroupHistoryWithMessageBytes # noqa: Y015
-
-@_typing.final
-class GroupMention(_message.Message):
- DESCRIPTOR: _descriptor.Descriptor
-
- GROUPJID_FIELD_NUMBER: _builtins.int
- GROUPSUBJECT_FIELD_NUMBER: _builtins.int
- groupJid: _builtins.str
- groupSubject: _builtins.str
+ DEVICEID_FIELD_NUMBER: _builtins.int
+ NAME_FIELD_NUMBER: _builtins.int
+ SIGPK_FIELD_NUMBER: _builtins.int
+ AUTHPK_FIELD_NUMBER: _builtins.int
+ ENCPK_FIELD_NUMBER: _builtins.int
+ SIGNATURE_FIELD_NUMBER: _builtins.int
+ deviceId: _builtins.int
+ name: _builtins.bytes
+ sigPk: _builtins.bytes
+ authPk: _builtins.bytes
+ encPk: _builtins.bytes
+ signature: _builtins.bytes
def __init__(
self,
*,
- groupJid: _builtins.str | None = ...,
- groupSubject: _builtins.str | None = ...,
+ deviceId: _builtins.int | None = ...,
+ name: _builtins.bytes | None = ...,
+ sigPk: _builtins.bytes | None = ...,
+ authPk: _builtins.bytes | None = ...,
+ encPk: _builtins.bytes | None = ...,
+ signature: _builtins.bytes | None = ...,
) -> None: ...
- _HasFieldArgType: _TypeAlias = _typing.Literal["groupJid", b"groupJid", "groupSubject", b"groupSubject"] # noqa: Y015
+ _HasFieldArgType: _TypeAlias = _typing.Literal["authPk", b"authPk", "deviceId", b"deviceId", "encPk", b"encPk", "name", b"name", "sigPk", b"sigPk", "signature", b"signature"] # noqa: Y015
def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ...
- _ClearFieldArgType: _TypeAlias = _typing.Literal["groupJid", b"groupJid", "groupSubject", b"groupSubject"] # noqa: Y015
+ _ClearFieldArgType: _TypeAlias = _typing.Literal["authPk", b"authPk", "deviceId", b"deviceId", "encPk", b"encPk", "name", b"name", "sigPk", b"sigPk", "signature", b"signature"] # noqa: Y015
def ClearField(self, field_name: _ClearFieldArgType) -> None: ...
-Global___GroupMention: _TypeAlias = GroupMention # noqa: Y015
+Global___DetachedDevicePublicData: _TypeAlias = DetachedDevicePublicData # noqa: Y015
@_typing.final
-class GroupParticipant(_message.Message):
+class DeviceCapabilities(_message.Message):
DESCRIPTOR: _descriptor.Descriptor
- class _Rank:
+ class _ChatLockSupportLevel:
ValueType = _typing.NewType("ValueType", _builtins.int)
V: _TypeAlias = ValueType # noqa: Y015
- class _RankEnumTypeWrapper(_enum_type_wrapper._EnumTypeWrapper[GroupParticipant._Rank.ValueType], _builtins.type):
+ class _ChatLockSupportLevelEnumTypeWrapper(_enum_type_wrapper._EnumTypeWrapper[DeviceCapabilities._ChatLockSupportLevel.ValueType], _builtins.type):
DESCRIPTOR: _descriptor.EnumDescriptor
- REGULAR: GroupParticipant._Rank.ValueType # 0
- ADMIN: GroupParticipant._Rank.ValueType # 1
- SUPERADMIN: GroupParticipant._Rank.ValueType # 2
-
- class Rank(_Rank, metaclass=_RankEnumTypeWrapper): ...
- REGULAR: GroupParticipant.Rank.ValueType # 0
- ADMIN: GroupParticipant.Rank.ValueType # 1
- SUPERADMIN: GroupParticipant.Rank.ValueType # 2
-
- USERJID_FIELD_NUMBER: _builtins.int
- RANK_FIELD_NUMBER: _builtins.int
- MEMBERLABEL_FIELD_NUMBER: _builtins.int
- userJid: _builtins.str
- rank: Global___GroupParticipant.Rank.ValueType
- @_builtins.property
- def memberLabel(self) -> Global___MemberLabel: ...
- def __init__(
- self,
- *,
- userJid: _builtins.str | None = ...,
- rank: Global___GroupParticipant.Rank.ValueType | None = ...,
- memberLabel: Global___MemberLabel | None = ...,
- ) -> None: ...
- _HasFieldArgType: _TypeAlias = _typing.Literal["memberLabel", b"memberLabel", "rank", b"rank", "userJid", b"userJid"] # noqa: Y015
- def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ...
- _ClearFieldArgType: _TypeAlias = _typing.Literal["memberLabel", b"memberLabel", "rank", b"rank", "userJid", b"userJid"] # noqa: Y015
- def ClearField(self, field_name: _ClearFieldArgType) -> None: ...
-
-Global___GroupParticipant: _TypeAlias = GroupParticipant # noqa: Y015
-
-@_typing.final
-class GroupRootKeyShare(_message.Message):
- DESCRIPTOR: _descriptor.Descriptor
-
- KEYS_FIELD_NUMBER: _builtins.int
- @_builtins.property
- def keys(self) -> _containers.RepeatedCompositeFieldContainer[Global___GroupRootKeyShareEntry]: ...
- def __init__(
- self,
- *,
- keys: _abc.Iterable[Global___GroupRootKeyShareEntry] | None = ...,
- ) -> None: ...
- _ClearFieldArgType: _TypeAlias = _typing.Literal["keys", b"keys"] # noqa: Y015
- def ClearField(self, field_name: _ClearFieldArgType) -> None: ...
-
-Global___GroupRootKeyShare: _TypeAlias = GroupRootKeyShare # noqa: Y015
-
-@_typing.final
-class GroupRootKeyShareEntry(_message.Message):
- DESCRIPTOR: _descriptor.Descriptor
-
- GROUPROOTKEY_FIELD_NUMBER: _builtins.int
- KEYID_FIELD_NUMBER: _builtins.int
- EXPIRYTIMESTAMPMS_FIELD_NUMBER: _builtins.int
- CREATEDTIMESTAMPMS_FIELD_NUMBER: _builtins.int
- groupRootKey: _builtins.bytes
- keyId: _builtins.str
- expiryTimestampMs: _builtins.int
- createdTimestampMs: _builtins.int
- def __init__(
- self,
- *,
- groupRootKey: _builtins.bytes | None = ...,
- keyId: _builtins.str | None = ...,
- expiryTimestampMs: _builtins.int | None = ...,
- createdTimestampMs: _builtins.int | None = ...,
- ) -> None: ...
- _HasFieldArgType: _TypeAlias = _typing.Literal["createdTimestampMs", b"createdTimestampMs", "expiryTimestampMs", b"expiryTimestampMs", "groupRootKey", b"groupRootKey", "keyId", b"keyId"] # noqa: Y015
- def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ...
- _ClearFieldArgType: _TypeAlias = _typing.Literal["createdTimestampMs", b"createdTimestampMs", "expiryTimestampMs", b"expiryTimestampMs", "groupRootKey", b"groupRootKey", "keyId", b"keyId"] # noqa: Y015
- def ClearField(self, field_name: _ClearFieldArgType) -> None: ...
-
-Global___GroupRootKeyShareEntry: _TypeAlias = GroupRootKeyShareEntry # noqa: Y015
+ NONE: DeviceCapabilities._ChatLockSupportLevel.ValueType # 0
+ MINIMAL: DeviceCapabilities._ChatLockSupportLevel.ValueType # 1
+ FULL: DeviceCapabilities._ChatLockSupportLevel.ValueType # 2
-@_typing.final
-class HandshakeMessage(_message.Message):
- DESCRIPTOR: _descriptor.Descriptor
+ class ChatLockSupportLevel(_ChatLockSupportLevel, metaclass=_ChatLockSupportLevelEnumTypeWrapper): ...
+ NONE: DeviceCapabilities.ChatLockSupportLevel.ValueType # 0
+ MINIMAL: DeviceCapabilities.ChatLockSupportLevel.ValueType # 1
+ FULL: DeviceCapabilities.ChatLockSupportLevel.ValueType # 2
- class _HandshakePqMode:
+ class _MemberNameTagPrimarySupport:
ValueType = _typing.NewType("ValueType", _builtins.int)
V: _TypeAlias = ValueType # noqa: Y015
- class _HandshakePqModeEnumTypeWrapper(_enum_type_wrapper._EnumTypeWrapper[HandshakeMessage._HandshakePqMode.ValueType], _builtins.type):
+ class _MemberNameTagPrimarySupportEnumTypeWrapper(_enum_type_wrapper._EnumTypeWrapper[DeviceCapabilities._MemberNameTagPrimarySupport.ValueType], _builtins.type):
DESCRIPTOR: _descriptor.EnumDescriptor
- HANDSHAKE_PQ_MODE_UNKNOWN: HandshakeMessage._HandshakePqMode.ValueType # 0
- XXKEM: HandshakeMessage._HandshakePqMode.ValueType # 1
- XXKEM_FS: HandshakeMessage._HandshakePqMode.ValueType # 2
- WA_CLASSICAL: HandshakeMessage._HandshakePqMode.ValueType # 3
- WA_PQ: HandshakeMessage._HandshakePqMode.ValueType # 4
- IKKEM: HandshakeMessage._HandshakePqMode.ValueType # 5
- IKKEM_FS: HandshakeMessage._HandshakePqMode.ValueType # 6
- XXKEM_2: HandshakeMessage._HandshakePqMode.ValueType # 7
- IKKEM_2: HandshakeMessage._HandshakePqMode.ValueType # 8
+ DISABLED: DeviceCapabilities._MemberNameTagPrimarySupport.ValueType # 0
+ RECEIVER_ENABLED: DeviceCapabilities._MemberNameTagPrimarySupport.ValueType # 1
+ SENDER_ENABLED: DeviceCapabilities._MemberNameTagPrimarySupport.ValueType # 2
- class HandshakePqMode(_HandshakePqMode, metaclass=_HandshakePqModeEnumTypeWrapper): ...
- HANDSHAKE_PQ_MODE_UNKNOWN: HandshakeMessage.HandshakePqMode.ValueType # 0
- XXKEM: HandshakeMessage.HandshakePqMode.ValueType # 1
- XXKEM_FS: HandshakeMessage.HandshakePqMode.ValueType # 2
- WA_CLASSICAL: HandshakeMessage.HandshakePqMode.ValueType # 3
- WA_PQ: HandshakeMessage.HandshakePqMode.ValueType # 4
- IKKEM: HandshakeMessage.HandshakePqMode.ValueType # 5
- IKKEM_FS: HandshakeMessage.HandshakePqMode.ValueType # 6
- XXKEM_2: HandshakeMessage.HandshakePqMode.ValueType # 7
- IKKEM_2: HandshakeMessage.HandshakePqMode.ValueType # 8
+ class MemberNameTagPrimarySupport(_MemberNameTagPrimarySupport, metaclass=_MemberNameTagPrimarySupportEnumTypeWrapper): ...
+ DISABLED: DeviceCapabilities.MemberNameTagPrimarySupport.ValueType # 0
+ RECEIVER_ENABLED: DeviceCapabilities.MemberNameTagPrimarySupport.ValueType # 1
+ SENDER_ENABLED: DeviceCapabilities.MemberNameTagPrimarySupport.ValueType # 2
@_typing.final
- class ClientFinish(_message.Message):
+ class AiFbidMigration(_message.Message):
DESCRIPTOR: _descriptor.Descriptor
- STATIC_FIELD_NUMBER: _builtins.int
- PAYLOAD_FIELD_NUMBER: _builtins.int
- EXTENDEDCIPHERTEXT_FIELD_NUMBER: _builtins.int
- PADDEDBYTES_FIELD_NUMBER: _builtins.int
- SIMULATEXXKEMFS_FIELD_NUMBER: _builtins.int
- static: _builtins.bytes
- payload: _builtins.bytes
- extendedCiphertext: _builtins.bytes
- paddedBytes: _builtins.bytes
- simulateXxkemFs: _builtins.bool
+ CHATDBMIGRATIONTIMESTAMP_FIELD_NUMBER: _builtins.int
+ chatDbMigrationTimestamp: _builtins.int
def __init__(
self,
*,
- static: _builtins.bytes | None = ...,
- payload: _builtins.bytes | None = ...,
- extendedCiphertext: _builtins.bytes | None = ...,
- paddedBytes: _builtins.bytes | None = ...,
- simulateXxkemFs: _builtins.bool | None = ...,
+ chatDbMigrationTimestamp: _builtins.int | None = ...,
) -> None: ...
- _HasFieldArgType: _TypeAlias = _typing.Literal["extendedCiphertext", b"extendedCiphertext", "paddedBytes", b"paddedBytes", "payload", b"payload", "simulateXxkemFs", b"simulateXxkemFs", "static", b"static"] # noqa: Y015
+ _HasFieldArgType: _TypeAlias = _typing.Literal["chatDbMigrationTimestamp", b"chatDbMigrationTimestamp"] # noqa: Y015
def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ...
- _ClearFieldArgType: _TypeAlias = _typing.Literal["extendedCiphertext", b"extendedCiphertext", "paddedBytes", b"paddedBytes", "payload", b"payload", "simulateXxkemFs", b"simulateXxkemFs", "static", b"static"] # noqa: Y015
+ _ClearFieldArgType: _TypeAlias = _typing.Literal["chatDbMigrationTimestamp", b"chatDbMigrationTimestamp"] # noqa: Y015
def ClearField(self, field_name: _ClearFieldArgType) -> None: ...
@_typing.final
- class ClientHello(_message.Message):
+ class AiThread(_message.Message):
DESCRIPTOR: _descriptor.Descriptor
- EPHEMERAL_FIELD_NUMBER: _builtins.int
- STATIC_FIELD_NUMBER: _builtins.int
- PAYLOAD_FIELD_NUMBER: _builtins.int
- USEEXTENDED_FIELD_NUMBER: _builtins.int
- EXTENDEDCIPHERTEXT_FIELD_NUMBER: _builtins.int
- PADDEDBYTES_FIELD_NUMBER: _builtins.int
- SENDSERVERHELLOPADDEDBYTES_FIELD_NUMBER: _builtins.int
- SIMULATEXXKEMFS_FIELD_NUMBER: _builtins.int
- PQMODE_FIELD_NUMBER: _builtins.int
- EXTENDEDEPHEMERAL_FIELD_NUMBER: _builtins.int
- ephemeral: _builtins.bytes
- static: _builtins.bytes
- payload: _builtins.bytes
- useExtended: _builtins.bool
- extendedCiphertext: _builtins.bytes
- paddedBytes: _builtins.bytes
- sendServerHelloPaddedBytes: _builtins.bool
- simulateXxkemFs: _builtins.bool
- pqMode: Global___HandshakeMessage.HandshakePqMode.ValueType
- extendedEphemeral: _builtins.bytes
+ class _SupportLevel:
+ ValueType = _typing.NewType("ValueType", _builtins.int)
+ V: _TypeAlias = ValueType # noqa: Y015
+
+ class _SupportLevelEnumTypeWrapper(_enum_type_wrapper._EnumTypeWrapper[DeviceCapabilities.AiThread._SupportLevel.ValueType], _builtins.type):
+ DESCRIPTOR: _descriptor.EnumDescriptor
+ NONE: DeviceCapabilities.AiThread._SupportLevel.ValueType # 0
+ INFRA: DeviceCapabilities.AiThread._SupportLevel.ValueType # 1
+ FULL: DeviceCapabilities.AiThread._SupportLevel.ValueType # 2
+
+ class SupportLevel(_SupportLevel, metaclass=_SupportLevelEnumTypeWrapper): ...
+ NONE: DeviceCapabilities.AiThread.SupportLevel.ValueType # 0
+ INFRA: DeviceCapabilities.AiThread.SupportLevel.ValueType # 1
+ FULL: DeviceCapabilities.AiThread.SupportLevel.ValueType # 2
+
+ SUPPORTLEVEL_FIELD_NUMBER: _builtins.int
+ supportLevel: Global___DeviceCapabilities.AiThread.SupportLevel.ValueType
def __init__(
self,
*,
- ephemeral: _builtins.bytes | None = ...,
- static: _builtins.bytes | None = ...,
- payload: _builtins.bytes | None = ...,
- useExtended: _builtins.bool | None = ...,
- extendedCiphertext: _builtins.bytes | None = ...,
- paddedBytes: _builtins.bytes | None = ...,
- sendServerHelloPaddedBytes: _builtins.bool | None = ...,
- simulateXxkemFs: _builtins.bool | None = ...,
- pqMode: Global___HandshakeMessage.HandshakePqMode.ValueType | None = ...,
- extendedEphemeral: _builtins.bytes | None = ...,
+ supportLevel: Global___DeviceCapabilities.AiThread.SupportLevel.ValueType | None = ...,
) -> None: ...
- _HasFieldArgType: _TypeAlias = _typing.Literal["ephemeral", b"ephemeral", "extendedCiphertext", b"extendedCiphertext", "extendedEphemeral", b"extendedEphemeral", "paddedBytes", b"paddedBytes", "payload", b"payload", "pqMode", b"pqMode", "sendServerHelloPaddedBytes", b"sendServerHelloPaddedBytes", "simulateXxkemFs", b"simulateXxkemFs", "static", b"static", "useExtended", b"useExtended"] # noqa: Y015
+ _HasFieldArgType: _TypeAlias = _typing.Literal["supportLevel", b"supportLevel"] # noqa: Y015
def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ...
- _ClearFieldArgType: _TypeAlias = _typing.Literal["ephemeral", b"ephemeral", "extendedCiphertext", b"extendedCiphertext", "extendedEphemeral", b"extendedEphemeral", "paddedBytes", b"paddedBytes", "payload", b"payload", "pqMode", b"pqMode", "sendServerHelloPaddedBytes", b"sendServerHelloPaddedBytes", "simulateXxkemFs", b"simulateXxkemFs", "static", b"static", "useExtended", b"useExtended"] # noqa: Y015
+ _ClearFieldArgType: _TypeAlias = _typing.Literal["supportLevel", b"supportLevel"] # noqa: Y015
def ClearField(self, field_name: _ClearFieldArgType) -> None: ...
@_typing.final
- class ServerHello(_message.Message):
+ class BizAiSettingsSync(_message.Message):
DESCRIPTOR: _descriptor.Descriptor
- EPHEMERAL_FIELD_NUMBER: _builtins.int
- STATIC_FIELD_NUMBER: _builtins.int
- PAYLOAD_FIELD_NUMBER: _builtins.int
- EXTENDEDSTATIC_FIELD_NUMBER: _builtins.int
- PADDINGBYTES_FIELD_NUMBER: _builtins.int
- EXTENDEDCIPHERTEXT_FIELD_NUMBER: _builtins.int
- ephemeral: _builtins.bytes
- static: _builtins.bytes
- payload: _builtins.bytes
- extendedStatic: _builtins.bytes
- paddingBytes: _builtins.bytes
- extendedCiphertext: _builtins.bytes
+ HANDOFFREMOVALTIMINGENABLED_FIELD_NUMBER: _builtins.int
+ handoffRemovalTimingEnabled: _builtins.bool
def __init__(
self,
*,
- ephemeral: _builtins.bytes | None = ...,
- static: _builtins.bytes | None = ...,
- payload: _builtins.bytes | None = ...,
- extendedStatic: _builtins.bytes | None = ...,
- paddingBytes: _builtins.bytes | None = ...,
- extendedCiphertext: _builtins.bytes | None = ...,
+ handoffRemovalTimingEnabled: _builtins.bool | None = ...,
) -> None: ...
- _HasFieldArgType: _TypeAlias = _typing.Literal["ephemeral", b"ephemeral", "extendedCiphertext", b"extendedCiphertext", "extendedStatic", b"extendedStatic", "paddingBytes", b"paddingBytes", "payload", b"payload", "static", b"static"] # noqa: Y015
+ _HasFieldArgType: _TypeAlias = _typing.Literal["handoffRemovalTimingEnabled", b"handoffRemovalTimingEnabled"] # noqa: Y015
def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ...
- _ClearFieldArgType: _TypeAlias = _typing.Literal["ephemeral", b"ephemeral", "extendedCiphertext", b"extendedCiphertext", "extendedStatic", b"extendedStatic", "paddingBytes", b"paddingBytes", "payload", b"payload", "static", b"static"] # noqa: Y015
+ _ClearFieldArgType: _TypeAlias = _typing.Literal["handoffRemovalTimingEnabled", b"handoffRemovalTimingEnabled"] # noqa: Y015
def ClearField(self, field_name: _ClearFieldArgType) -> None: ...
- CLIENTHELLO_FIELD_NUMBER: _builtins.int
- SERVERHELLO_FIELD_NUMBER: _builtins.int
- CLIENTFINISH_FIELD_NUMBER: _builtins.int
- @_builtins.property
- def clientHello(self) -> Global___HandshakeMessage.ClientHello: ...
- @_builtins.property
- def serverHello(self) -> Global___HandshakeMessage.ServerHello: ...
- @_builtins.property
- def clientFinish(self) -> Global___HandshakeMessage.ClientFinish: ...
- def __init__(
- self,
- *,
- clientHello: Global___HandshakeMessage.ClientHello | None = ...,
- serverHello: Global___HandshakeMessage.ServerHello | None = ...,
- clientFinish: Global___HandshakeMessage.ClientFinish | None = ...,
- ) -> None: ...
- _HasFieldArgType: _TypeAlias = _typing.Literal["clientFinish", b"clientFinish", "clientHello", b"clientHello", "serverHello", b"serverHello"] # noqa: Y015
- def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ...
- _ClearFieldArgType: _TypeAlias = _typing.Literal["clientFinish", b"clientFinish", "clientHello", b"clientHello", "serverHello", b"serverHello"] # noqa: Y015
- def ClearField(self, field_name: _ClearFieldArgType) -> None: ...
-
-Global___HandshakeMessage: _TypeAlias = HandshakeMessage # noqa: Y015
-
-@_typing.final
-class HatchMetadataSync(_message.Message):
- DESCRIPTOR: _descriptor.Descriptor
-
- DATA_FIELD_NUMBER: _builtins.int
- TIMESTAMPMS_FIELD_NUMBER: _builtins.int
- REQUESTID_FIELD_NUMBER: _builtins.int
- data: _builtins.bytes
- timestampMs: _builtins.int
- requestId: _builtins.str
- def __init__(
- self,
- *,
- data: _builtins.bytes | None = ...,
- timestampMs: _builtins.int | None = ...,
- requestId: _builtins.str | None = ...,
- ) -> None: ...
- _HasFieldArgType: _TypeAlias = _typing.Literal["data", b"data", "requestId", b"requestId", "timestampMs", b"timestampMs"] # noqa: Y015
- def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ...
- _ClearFieldArgType: _TypeAlias = _typing.Literal["data", b"data", "requestId", b"requestId", "timestampMs", b"timestampMs"] # noqa: Y015
- def ClearField(self, field_name: _ClearFieldArgType) -> None: ...
-
-Global___HatchMetadataSync: _TypeAlias = HatchMetadataSync # noqa: Y015
+ @_typing.final
+ class BusinessBroadcast(_message.Message):
+ DESCRIPTOR: _descriptor.Descriptor
-@_typing.final
-class HistorySync(_message.Message):
- DESCRIPTOR: _descriptor.Descriptor
+ IMPORTLISTENABLED_FIELD_NUMBER: _builtins.int
+ COMPANIONSUPPORTENABLED_FIELD_NUMBER: _builtins.int
+ CAMPAIGNSYNCENABLED_FIELD_NUMBER: _builtins.int
+ INSIGHTSSYNCENABLED_FIELD_NUMBER: _builtins.int
+ RECIPIENTLIMIT_FIELD_NUMBER: _builtins.int
+ importListEnabled: _builtins.bool
+ companionSupportEnabled: _builtins.bool
+ campaignSyncEnabled: _builtins.bool
+ insightsSyncEnabled: _builtins.bool
+ recipientLimit: _builtins.int
+ def __init__(
+ self,
+ *,
+ importListEnabled: _builtins.bool | None = ...,
+ companionSupportEnabled: _builtins.bool | None = ...,
+ campaignSyncEnabled: _builtins.bool | None = ...,
+ insightsSyncEnabled: _builtins.bool | None = ...,
+ recipientLimit: _builtins.int | None = ...,
+ ) -> None: ...
+ _HasFieldArgType: _TypeAlias = _typing.Literal["campaignSyncEnabled", b"campaignSyncEnabled", "companionSupportEnabled", b"companionSupportEnabled", "importListEnabled", b"importListEnabled", "insightsSyncEnabled", b"insightsSyncEnabled", "recipientLimit", b"recipientLimit"] # noqa: Y015
+ def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ...
+ _ClearFieldArgType: _TypeAlias = _typing.Literal["campaignSyncEnabled", b"campaignSyncEnabled", "companionSupportEnabled", b"companionSupportEnabled", "importListEnabled", b"importListEnabled", "insightsSyncEnabled", b"insightsSyncEnabled", "recipientLimit", b"recipientLimit"] # noqa: Y015
+ def ClearField(self, field_name: _ClearFieldArgType) -> None: ...
- class _BotAIWaitListState:
- ValueType = _typing.NewType("ValueType", _builtins.int)
- V: _TypeAlias = ValueType # noqa: Y015
+ @_typing.final
+ class ContactRefresh(_message.Message):
+ DESCRIPTOR: _descriptor.Descriptor
- class _BotAIWaitListStateEnumTypeWrapper(_enum_type_wrapper._EnumTypeWrapper[HistorySync._BotAIWaitListState.ValueType], _builtins.type):
- DESCRIPTOR: _descriptor.EnumDescriptor
- IN_WAITLIST: HistorySync._BotAIWaitListState.ValueType # 0
- AI_AVAILABLE: HistorySync._BotAIWaitListState.ValueType # 1
+ REFRESHSUPPORTED_FIELD_NUMBER: _builtins.int
+ refreshSupported: _builtins.bool
+ def __init__(
+ self,
+ *,
+ refreshSupported: _builtins.bool | None = ...,
+ ) -> None: ...
+ _HasFieldArgType: _TypeAlias = _typing.Literal["refreshSupported", b"refreshSupported"] # noqa: Y015
+ def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ...
+ _ClearFieldArgType: _TypeAlias = _typing.Literal["refreshSupported", b"refreshSupported"] # noqa: Y015
+ def ClearField(self, field_name: _ClearFieldArgType) -> None: ...
- class BotAIWaitListState(_BotAIWaitListState, metaclass=_BotAIWaitListStateEnumTypeWrapper): ...
- IN_WAITLIST: HistorySync.BotAIWaitListState.ValueType # 0
- AI_AVAILABLE: HistorySync.BotAIWaitListState.ValueType # 1
+ @_typing.final
+ class LIDMigration(_message.Message):
+ DESCRIPTOR: _descriptor.Descriptor
- class _HistorySyncType:
- ValueType = _typing.NewType("ValueType", _builtins.int)
- V: _TypeAlias = ValueType # noqa: Y015
+ CHATDBMIGRATIONTIMESTAMP_FIELD_NUMBER: _builtins.int
+ chatDbMigrationTimestamp: _builtins.int
+ def __init__(
+ self,
+ *,
+ chatDbMigrationTimestamp: _builtins.int | None = ...,
+ ) -> None: ...
+ _HasFieldArgType: _TypeAlias = _typing.Literal["chatDbMigrationTimestamp", b"chatDbMigrationTimestamp"] # noqa: Y015
+ def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ...
+ _ClearFieldArgType: _TypeAlias = _typing.Literal["chatDbMigrationTimestamp", b"chatDbMigrationTimestamp"] # noqa: Y015
+ def ClearField(self, field_name: _ClearFieldArgType) -> None: ...
- class _HistorySyncTypeEnumTypeWrapper(_enum_type_wrapper._EnumTypeWrapper[HistorySync._HistorySyncType.ValueType], _builtins.type):
- DESCRIPTOR: _descriptor.EnumDescriptor
- INITIAL_BOOTSTRAP: HistorySync._HistorySyncType.ValueType # 0
- INITIAL_STATUS_V3: HistorySync._HistorySyncType.ValueType # 1
- FULL: HistorySync._HistorySyncType.ValueType # 2
- RECENT: HistorySync._HistorySyncType.ValueType # 3
- PUSH_NAME: HistorySync._HistorySyncType.ValueType # 4
- NON_BLOCKING_DATA: HistorySync._HistorySyncType.ValueType # 5
- ON_DEMAND: HistorySync._HistorySyncType.ValueType # 6
+ @_typing.final
+ class UserHasAvatar(_message.Message):
+ DESCRIPTOR: _descriptor.Descriptor
- class HistorySyncType(_HistorySyncType, metaclass=_HistorySyncTypeEnumTypeWrapper): ...
- INITIAL_BOOTSTRAP: HistorySync.HistorySyncType.ValueType # 0
- INITIAL_STATUS_V3: HistorySync.HistorySyncType.ValueType # 1
- FULL: HistorySync.HistorySyncType.ValueType # 2
- RECENT: HistorySync.HistorySyncType.ValueType # 3
- PUSH_NAME: HistorySync.HistorySyncType.ValueType # 4
- NON_BLOCKING_DATA: HistorySync.HistorySyncType.ValueType # 5
- ON_DEMAND: HistorySync.HistorySyncType.ValueType # 6
+ USERHASAVATAR_FIELD_NUMBER: _builtins.int
+ userHasAvatar: _builtins.bool
+ def __init__(
+ self,
+ *,
+ userHasAvatar: _builtins.bool | None = ...,
+ ) -> None: ...
+ _HasFieldArgType: _TypeAlias = _typing.Literal["userHasAvatar", b"userHasAvatar"] # noqa: Y015
+ def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ...
+ _ClearFieldArgType: _TypeAlias = _typing.Literal["userHasAvatar", b"userHasAvatar"] # noqa: Y015
+ def ClearField(self, field_name: _ClearFieldArgType) -> None: ...
- SYNCTYPE_FIELD_NUMBER: _builtins.int
- CONVERSATIONS_FIELD_NUMBER: _builtins.int
- STATUSV3MESSAGES_FIELD_NUMBER: _builtins.int
- CHUNKORDER_FIELD_NUMBER: _builtins.int
- PROGRESS_FIELD_NUMBER: _builtins.int
- PUSHNAMES_FIELD_NUMBER: _builtins.int
- GLOBALSETTINGS_FIELD_NUMBER: _builtins.int
- THREADIDUSERSECRET_FIELD_NUMBER: _builtins.int
- THREADDSTIMEFRAMEOFFSET_FIELD_NUMBER: _builtins.int
- RECENTSTICKERS_FIELD_NUMBER: _builtins.int
- PASTPARTICIPANTS_FIELD_NUMBER: _builtins.int
- CALLLOGRECORDS_FIELD_NUMBER: _builtins.int
- AIWAITLISTSTATE_FIELD_NUMBER: _builtins.int
- PHONENUMBERTOLIDMAPPINGS_FIELD_NUMBER: _builtins.int
- COMPANIONMETANONCE_FIELD_NUMBER: _builtins.int
- SHAREABLECHATIDENTIFIERENCRYPTIONKEY_FIELD_NUMBER: _builtins.int
- ACCOUNTS_FIELD_NUMBER: _builtins.int
- NCTSALT_FIELD_NUMBER: _builtins.int
- INLINECONTACTS_FIELD_NUMBER: _builtins.int
- INLINECONTACTSPROVIDED_FIELD_NUMBER: _builtins.int
- syncType: Global___HistorySync.HistorySyncType.ValueType
- chunkOrder: _builtins.int
- progress: _builtins.int
- threadIdUserSecret: _builtins.bytes
- threadDsTimeframeOffset: _builtins.int
- aiWaitListState: Global___HistorySync.BotAIWaitListState.ValueType
- companionMetaNonce: _builtins.str
- shareableChatIdentifierEncryptionKey: _builtins.bytes
- nctSalt: _builtins.bytes
- inlineContactsProvided: _builtins.bool
- @_builtins.property
- def conversations(self) -> _containers.RepeatedCompositeFieldContainer[Global___Conversation]: ...
- @_builtins.property
- def statusV3Messages(self) -> _containers.RepeatedCompositeFieldContainer[Global___WebMessageInfo]: ...
- @_builtins.property
- def pushnames(self) -> _containers.RepeatedCompositeFieldContainer[Global___Pushname]: ...
+ CHATLOCKSUPPORTLEVEL_FIELD_NUMBER: _builtins.int
+ LIDMIGRATION_FIELD_NUMBER: _builtins.int
+ BUSINESSBROADCAST_FIELD_NUMBER: _builtins.int
+ USERHASAVATAR_FIELD_NUMBER: _builtins.int
+ MEMBERNAMETAGPRIMARYSUPPORT_FIELD_NUMBER: _builtins.int
+ AITHREAD_FIELD_NUMBER: _builtins.int
+ AIFBIDMIGRATION_FIELD_NUMBER: _builtins.int
+ BIZAISETTINGSSYNC_FIELD_NUMBER: _builtins.int
+ CONTACTREFRESH_FIELD_NUMBER: _builtins.int
+ chatLockSupportLevel: Global___DeviceCapabilities.ChatLockSupportLevel.ValueType
+ memberNameTagPrimarySupport: Global___DeviceCapabilities.MemberNameTagPrimarySupport.ValueType
@_builtins.property
- def globalSettings(self) -> Global___GlobalSettings: ...
+ def lidMigration(self) -> Global___DeviceCapabilities.LIDMigration: ...
@_builtins.property
- def recentStickers(self) -> _containers.RepeatedCompositeFieldContainer[Global___StickerMetadata]: ...
+ def businessBroadcast(self) -> Global___DeviceCapabilities.BusinessBroadcast: ...
@_builtins.property
- def pastParticipants(self) -> _containers.RepeatedCompositeFieldContainer[Global___PastParticipants]: ...
+ def userHasAvatar(self) -> Global___DeviceCapabilities.UserHasAvatar: ...
@_builtins.property
- def callLogRecords(self) -> _containers.RepeatedCompositeFieldContainer[Global___CallLogRecord]: ...
+ def aiThread(self) -> Global___DeviceCapabilities.AiThread: ...
@_builtins.property
- def phoneNumberToLidMappings(self) -> _containers.RepeatedCompositeFieldContainer[Global___PhoneNumberToLIDMapping]: ...
+ def aiFbidMigration(self) -> Global___DeviceCapabilities.AiFbidMigration: ...
@_builtins.property
- def accounts(self) -> _containers.RepeatedCompositeFieldContainer[Global___Account]: ...
+ def bizAiSettingsSync(self) -> Global___DeviceCapabilities.BizAiSettingsSync: ...
@_builtins.property
- def inlineContacts(self) -> _containers.RepeatedCompositeFieldContainer[Global___InlineContact]: ...
+ def contactRefresh(self) -> Global___DeviceCapabilities.ContactRefresh: ...
def __init__(
self,
*,
- syncType: Global___HistorySync.HistorySyncType.ValueType | None = ...,
- conversations: _abc.Iterable[Global___Conversation] | None = ...,
- statusV3Messages: _abc.Iterable[Global___WebMessageInfo] | None = ...,
- chunkOrder: _builtins.int | None = ...,
- progress: _builtins.int | None = ...,
- pushnames: _abc.Iterable[Global___Pushname] | None = ...,
- globalSettings: Global___GlobalSettings | None = ...,
- threadIdUserSecret: _builtins.bytes | None = ...,
- threadDsTimeframeOffset: _builtins.int | None = ...,
- recentStickers: _abc.Iterable[Global___StickerMetadata] | None = ...,
- pastParticipants: _abc.Iterable[Global___PastParticipants] | None = ...,
- callLogRecords: _abc.Iterable[Global___CallLogRecord] | None = ...,
- aiWaitListState: Global___HistorySync.BotAIWaitListState.ValueType | None = ...,
- phoneNumberToLidMappings: _abc.Iterable[Global___PhoneNumberToLIDMapping] | None = ...,
- companionMetaNonce: _builtins.str | None = ...,
- shareableChatIdentifierEncryptionKey: _builtins.bytes | None = ...,
- accounts: _abc.Iterable[Global___Account] | None = ...,
- nctSalt: _builtins.bytes | None = ...,
- inlineContacts: _abc.Iterable[Global___InlineContact] | None = ...,
- inlineContactsProvided: _builtins.bool | None = ...,
+ chatLockSupportLevel: Global___DeviceCapabilities.ChatLockSupportLevel.ValueType | None = ...,
+ lidMigration: Global___DeviceCapabilities.LIDMigration | None = ...,
+ businessBroadcast: Global___DeviceCapabilities.BusinessBroadcast | None = ...,
+ userHasAvatar: Global___DeviceCapabilities.UserHasAvatar | None = ...,
+ memberNameTagPrimarySupport: Global___DeviceCapabilities.MemberNameTagPrimarySupport.ValueType | None = ...,
+ aiThread: Global___DeviceCapabilities.AiThread | None = ...,
+ aiFbidMigration: Global___DeviceCapabilities.AiFbidMigration | None = ...,
+ bizAiSettingsSync: Global___DeviceCapabilities.BizAiSettingsSync | None = ...,
+ contactRefresh: Global___DeviceCapabilities.ContactRefresh | None = ...,
) -> None: ...
- _HasFieldArgType: _TypeAlias = _typing.Literal["aiWaitListState", b"aiWaitListState", "chunkOrder", b"chunkOrder", "companionMetaNonce", b"companionMetaNonce", "globalSettings", b"globalSettings", "inlineContactsProvided", b"inlineContactsProvided", "nctSalt", b"nctSalt", "progress", b"progress", "shareableChatIdentifierEncryptionKey", b"shareableChatIdentifierEncryptionKey", "syncType", b"syncType", "threadDsTimeframeOffset", b"threadDsTimeframeOffset", "threadIdUserSecret", b"threadIdUserSecret"] # noqa: Y015
+ _HasFieldArgType: _TypeAlias = _typing.Literal["aiFbidMigration", b"aiFbidMigration", "aiThread", b"aiThread", "bizAiSettingsSync", b"bizAiSettingsSync", "businessBroadcast", b"businessBroadcast", "chatLockSupportLevel", b"chatLockSupportLevel", "contactRefresh", b"contactRefresh", "lidMigration", b"lidMigration", "memberNameTagPrimarySupport", b"memberNameTagPrimarySupport", "userHasAvatar", b"userHasAvatar"] # noqa: Y015
def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ...
- _ClearFieldArgType: _TypeAlias = _typing.Literal["accounts", b"accounts", "aiWaitListState", b"aiWaitListState", "callLogRecords", b"callLogRecords", "chunkOrder", b"chunkOrder", "companionMetaNonce", b"companionMetaNonce", "conversations", b"conversations", "globalSettings", b"globalSettings", "inlineContacts", b"inlineContacts", "inlineContactsProvided", b"inlineContactsProvided", "nctSalt", b"nctSalt", "pastParticipants", b"pastParticipants", "phoneNumberToLidMappings", b"phoneNumberToLidMappings", "progress", b"progress", "pushnames", b"pushnames", "recentStickers", b"recentStickers", "shareableChatIdentifierEncryptionKey", b"shareableChatIdentifierEncryptionKey", "statusV3Messages", b"statusV3Messages", "syncType", b"syncType", "threadDsTimeframeOffset", b"threadDsTimeframeOffset", "threadIdUserSecret", b"threadIdUserSecret"] # noqa: Y015
+ _ClearFieldArgType: _TypeAlias = _typing.Literal["aiFbidMigration", b"aiFbidMigration", "aiThread", b"aiThread", "bizAiSettingsSync", b"bizAiSettingsSync", "businessBroadcast", b"businessBroadcast", "chatLockSupportLevel", b"chatLockSupportLevel", "contactRefresh", b"contactRefresh", "lidMigration", b"lidMigration", "memberNameTagPrimarySupport", b"memberNameTagPrimarySupport", "userHasAvatar", b"userHasAvatar"] # noqa: Y015
def ClearField(self, field_name: _ClearFieldArgType) -> None: ...
-Global___HistorySync: _TypeAlias = HistorySync # noqa: Y015
+Global___DeviceCapabilities: _TypeAlias = DeviceCapabilities # noqa: Y015
@_typing.final
-class HistorySyncMsg(_message.Message):
+class DeviceConsistencyCodeMessage(_message.Message):
DESCRIPTOR: _descriptor.Descriptor
- MESSAGE_FIELD_NUMBER: _builtins.int
- MSGORDERID_FIELD_NUMBER: _builtins.int
- msgOrderId: _builtins.int
- @_builtins.property
- def message(self) -> Global___WebMessageInfo: ...
+ GENERATION_FIELD_NUMBER: _builtins.int
+ SIGNATURE_FIELD_NUMBER: _builtins.int
+ generation: _builtins.int
+ signature: _builtins.bytes
def __init__(
self,
*,
- message: Global___WebMessageInfo | None = ...,
- msgOrderId: _builtins.int | None = ...,
+ generation: _builtins.int | None = ...,
+ signature: _builtins.bytes | None = ...,
) -> None: ...
- _HasFieldArgType: _TypeAlias = _typing.Literal["message", b"message", "msgOrderId", b"msgOrderId"] # noqa: Y015
+ _HasFieldArgType: _TypeAlias = _typing.Literal["generation", b"generation", "signature", b"signature"] # noqa: Y015
def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ...
- _ClearFieldArgType: _TypeAlias = _typing.Literal["message", b"message", "msgOrderId", b"msgOrderId"] # noqa: Y015
+ _ClearFieldArgType: _TypeAlias = _typing.Literal["generation", b"generation", "signature", b"signature"] # noqa: Y015
def ClearField(self, field_name: _ClearFieldArgType) -> None: ...
-Global___HistorySyncMsg: _TypeAlias = HistorySyncMsg # noqa: Y015
+Global___DeviceConsistencyCodeMessage: _TypeAlias = DeviceConsistencyCodeMessage # noqa: Y015
@_typing.final
-class HydratedTemplateButton(_message.Message):
+class DeviceListMetadata(_message.Message):
DESCRIPTOR: _descriptor.Descriptor
- @_typing.final
- class HydratedCallButton(_message.Message):
- DESCRIPTOR: _descriptor.Descriptor
-
- DISPLAYTEXT_FIELD_NUMBER: _builtins.int
- PHONENUMBER_FIELD_NUMBER: _builtins.int
- displayText: _builtins.str
- phoneNumber: _builtins.str
- def __init__(
- self,
- *,
- displayText: _builtins.str | None = ...,
- phoneNumber: _builtins.str | None = ...,
- ) -> None: ...
- _HasFieldArgType: _TypeAlias = _typing.Literal["displayText", b"displayText", "phoneNumber", b"phoneNumber"] # noqa: Y015
- def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ...
- _ClearFieldArgType: _TypeAlias = _typing.Literal["displayText", b"displayText", "phoneNumber", b"phoneNumber"] # noqa: Y015
- def ClearField(self, field_name: _ClearFieldArgType) -> None: ...
-
- @_typing.final
- class HydratedQuickReplyButton(_message.Message):
- DESCRIPTOR: _descriptor.Descriptor
-
- DISPLAYTEXT_FIELD_NUMBER: _builtins.int
- ID_FIELD_NUMBER: _builtins.int
- displayText: _builtins.str
- id: _builtins.str
- def __init__(
- self,
- *,
- displayText: _builtins.str | None = ...,
- id: _builtins.str | None = ...,
- ) -> None: ...
- _HasFieldArgType: _TypeAlias = _typing.Literal["displayText", b"displayText", "id", b"id"] # noqa: Y015
- def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ...
- _ClearFieldArgType: _TypeAlias = _typing.Literal["displayText", b"displayText", "id", b"id"] # noqa: Y015
- def ClearField(self, field_name: _ClearFieldArgType) -> None: ...
-
- @_typing.final
- class HydratedURLButton(_message.Message):
- DESCRIPTOR: _descriptor.Descriptor
-
- class _WebviewPresentationType:
- ValueType = _typing.NewType("ValueType", _builtins.int)
- V: _TypeAlias = ValueType # noqa: Y015
-
- class _WebviewPresentationTypeEnumTypeWrapper(_enum_type_wrapper._EnumTypeWrapper[HydratedTemplateButton.HydratedURLButton._WebviewPresentationType.ValueType], _builtins.type):
- DESCRIPTOR: _descriptor.EnumDescriptor
- FULL: HydratedTemplateButton.HydratedURLButton._WebviewPresentationType.ValueType # 1
- TALL: HydratedTemplateButton.HydratedURLButton._WebviewPresentationType.ValueType # 2
- COMPACT: HydratedTemplateButton.HydratedURLButton._WebviewPresentationType.ValueType # 3
-
- class WebviewPresentationType(_WebviewPresentationType, metaclass=_WebviewPresentationTypeEnumTypeWrapper): ...
- FULL: HydratedTemplateButton.HydratedURLButton.WebviewPresentationType.ValueType # 1
- TALL: HydratedTemplateButton.HydratedURLButton.WebviewPresentationType.ValueType # 2
- COMPACT: HydratedTemplateButton.HydratedURLButton.WebviewPresentationType.ValueType # 3
-
- DISPLAYTEXT_FIELD_NUMBER: _builtins.int
- URL_FIELD_NUMBER: _builtins.int
- CONSENTEDUSERSURL_FIELD_NUMBER: _builtins.int
- WEBVIEWPRESENTATION_FIELD_NUMBER: _builtins.int
- displayText: _builtins.str
- url: _builtins.str
- consentedUsersUrl: _builtins.str
- webviewPresentation: Global___HydratedTemplateButton.HydratedURLButton.WebviewPresentationType.ValueType
- def __init__(
- self,
- *,
- displayText: _builtins.str | None = ...,
- url: _builtins.str | None = ...,
- consentedUsersUrl: _builtins.str | None = ...,
- webviewPresentation: Global___HydratedTemplateButton.HydratedURLButton.WebviewPresentationType.ValueType | None = ...,
- ) -> None: ...
- _HasFieldArgType: _TypeAlias = _typing.Literal["consentedUsersUrl", b"consentedUsersUrl", "displayText", b"displayText", "url", b"url", "webviewPresentation", b"webviewPresentation"] # noqa: Y015
- def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ...
- _ClearFieldArgType: _TypeAlias = _typing.Literal["consentedUsersUrl", b"consentedUsersUrl", "displayText", b"displayText", "url", b"url", "webviewPresentation", b"webviewPresentation"] # noqa: Y015
- def ClearField(self, field_name: _ClearFieldArgType) -> None: ...
-
- INDEX_FIELD_NUMBER: _builtins.int
- QUICKREPLYBUTTON_FIELD_NUMBER: _builtins.int
- URLBUTTON_FIELD_NUMBER: _builtins.int
- CALLBUTTON_FIELD_NUMBER: _builtins.int
- index: _builtins.int
- @_builtins.property
- def quickReplyButton(self) -> Global___HydratedTemplateButton.HydratedQuickReplyButton: ...
+ SENDERKEYHASH_FIELD_NUMBER: _builtins.int
+ SENDERTIMESTAMP_FIELD_NUMBER: _builtins.int
+ SENDERKEYINDEXES_FIELD_NUMBER: _builtins.int
+ SENDERACCOUNTTYPE_FIELD_NUMBER: _builtins.int
+ RECEIVERACCOUNTTYPE_FIELD_NUMBER: _builtins.int
+ RECIPIENTKEYHASH_FIELD_NUMBER: _builtins.int
+ RECIPIENTTIMESTAMP_FIELD_NUMBER: _builtins.int
+ RECIPIENTKEYINDEXES_FIELD_NUMBER: _builtins.int
+ senderKeyHash: _builtins.bytes
+ senderTimestamp: _builtins.int
+ senderAccountType: Global___ADVEncryptionType.ValueType
+ receiverAccountType: Global___ADVEncryptionType.ValueType
+ recipientKeyHash: _builtins.bytes
+ recipientTimestamp: _builtins.int
@_builtins.property
- def urlButton(self) -> Global___HydratedTemplateButton.HydratedURLButton: ...
+ def senderKeyIndexes(self) -> _containers.RepeatedScalarFieldContainer[_builtins.int]: ...
@_builtins.property
- def callButton(self) -> Global___HydratedTemplateButton.HydratedCallButton: ...
+ def recipientKeyIndexes(self) -> _containers.RepeatedScalarFieldContainer[_builtins.int]: ...
def __init__(
self,
*,
- index: _builtins.int | None = ...,
- quickReplyButton: Global___HydratedTemplateButton.HydratedQuickReplyButton | None = ...,
- urlButton: Global___HydratedTemplateButton.HydratedURLButton | None = ...,
- callButton: Global___HydratedTemplateButton.HydratedCallButton | None = ...,
+ senderKeyHash: _builtins.bytes | None = ...,
+ senderTimestamp: _builtins.int | None = ...,
+ senderKeyIndexes: _abc.Iterable[_builtins.int] | None = ...,
+ senderAccountType: Global___ADVEncryptionType.ValueType | None = ...,
+ receiverAccountType: Global___ADVEncryptionType.ValueType | None = ...,
+ recipientKeyHash: _builtins.bytes | None = ...,
+ recipientTimestamp: _builtins.int | None = ...,
+ recipientKeyIndexes: _abc.Iterable[_builtins.int] | None = ...,
) -> None: ...
- _HasFieldArgType: _TypeAlias = _typing.Literal["callButton", b"callButton", "hydratedButton", b"hydratedButton", "index", b"index", "quickReplyButton", b"quickReplyButton", "urlButton", b"urlButton"] # noqa: Y015
+ _HasFieldArgType: _TypeAlias = _typing.Literal["receiverAccountType", b"receiverAccountType", "recipientKeyHash", b"recipientKeyHash", "recipientTimestamp", b"recipientTimestamp", "senderAccountType", b"senderAccountType", "senderKeyHash", b"senderKeyHash", "senderTimestamp", b"senderTimestamp"] # noqa: Y015
def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ...
- _ClearFieldArgType: _TypeAlias = _typing.Literal["callButton", b"callButton", "hydratedButton", b"hydratedButton", "index", b"index", "quickReplyButton", b"quickReplyButton", "urlButton", b"urlButton"] # noqa: Y015
+ _ClearFieldArgType: _TypeAlias = _typing.Literal["receiverAccountType", b"receiverAccountType", "recipientKeyHash", b"recipientKeyHash", "recipientKeyIndexes", b"recipientKeyIndexes", "recipientTimestamp", b"recipientTimestamp", "senderAccountType", b"senderAccountType", "senderKeyHash", b"senderKeyHash", "senderKeyIndexes", b"senderKeyIndexes", "senderTimestamp", b"senderTimestamp"] # noqa: Y015
def ClearField(self, field_name: _ClearFieldArgType) -> None: ...
- _WhichOneofReturnType_hydratedButton: _TypeAlias = _typing.Literal["quickReplyButton", "urlButton", "callButton"] # noqa: Y015
- _WhichOneofArgType_hydratedButton: _TypeAlias = _typing.Literal["hydratedButton", b"hydratedButton"] # noqa: Y015
- def WhichOneof(self, oneof_group: _WhichOneofArgType_hydratedButton) -> _WhichOneofReturnType_hydratedButton | None: ...
-Global___HydratedTemplateButton: _TypeAlias = HydratedTemplateButton # noqa: Y015
+Global___DeviceListMetadata: _TypeAlias = DeviceListMetadata # noqa: Y015
@_typing.final
-class IdentityKeyPairStructure(_message.Message):
+class DeviceOutput(_message.Message):
DESCRIPTOR: _descriptor.Descriptor
PUBLICKEY_FIELD_NUMBER: _builtins.int
- PRIVATEKEY_FIELD_NUMBER: _builtins.int
+ EPOCHAUTHPUBLICKEY_FIELD_NUMBER: _builtins.int
+ EPOCHAUTHPUBLICKEYSIG_FIELD_NUMBER: _builtins.int
+ EPOCHSTORAGEPUBLICKEY_FIELD_NUMBER: _builtins.int
+ EPOCHSTORAGEPUBLICKEYSIG_FIELD_NUMBER: _builtins.int
+ SUPPORTEDENCRYPTIONVERSIONS_FIELD_NUMBER: _builtins.int
+ ENCRYPTIONVERSIONSIGNATURE_FIELD_NUMBER: _builtins.int
+ CLIENTVERSION_FIELD_NUMBER: _builtins.int
+ OCMFCLIENTSTATE_FIELD_NUMBER: _builtins.int
+ EPOCHSTORAGEPRIVATEKEY_FIELD_NUMBER: _builtins.int
publicKey: _builtins.bytes
- privateKey: _builtins.bytes
+ epochAuthPublicKey: _builtins.bytes
+ epochAuthPublicKeySig: _builtins.bytes
+ epochStoragePublicKey: _builtins.bytes
+ epochStoragePublicKeySig: _builtins.bytes
+ encryptionVersionSignature: _builtins.bytes
+ clientVersion: _builtins.int
+ ocmfClientState: _builtins.bytes
+ epochStoragePrivateKey: _builtins.bytes
+ @_builtins.property
+ def supportedEncryptionVersions(self) -> _containers.RepeatedScalarFieldContainer[_builtins.int]: ...
def __init__(
self,
*,
publicKey: _builtins.bytes | None = ...,
- privateKey: _builtins.bytes | None = ...,
+ epochAuthPublicKey: _builtins.bytes | None = ...,
+ epochAuthPublicKeySig: _builtins.bytes | None = ...,
+ epochStoragePublicKey: _builtins.bytes | None = ...,
+ epochStoragePublicKeySig: _builtins.bytes | None = ...,
+ supportedEncryptionVersions: _abc.Iterable[_builtins.int] | None = ...,
+ encryptionVersionSignature: _builtins.bytes | None = ...,
+ clientVersion: _builtins.int | None = ...,
+ ocmfClientState: _builtins.bytes | None = ...,
+ epochStoragePrivateKey: _builtins.bytes | None = ...,
) -> None: ...
- _HasFieldArgType: _TypeAlias = _typing.Literal["privateKey", b"privateKey", "publicKey", b"publicKey"] # noqa: Y015
+ _HasFieldArgType: _TypeAlias = _typing.Literal["clientVersion", b"clientVersion", "encryptionVersionSignature", b"encryptionVersionSignature", "epochAuthPublicKey", b"epochAuthPublicKey", "epochAuthPublicKeySig", b"epochAuthPublicKeySig", "epochStoragePrivateKey", b"epochStoragePrivateKey", "epochStoragePublicKey", b"epochStoragePublicKey", "epochStoragePublicKeySig", b"epochStoragePublicKeySig", "ocmfClientState", b"ocmfClientState", "publicKey", b"publicKey"] # noqa: Y015
def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ...
- _ClearFieldArgType: _TypeAlias = _typing.Literal["privateKey", b"privateKey", "publicKey", b"publicKey"] # noqa: Y015
+ _ClearFieldArgType: _TypeAlias = _typing.Literal["clientVersion", b"clientVersion", "encryptionVersionSignature", b"encryptionVersionSignature", "epochAuthPublicKey", b"epochAuthPublicKey", "epochAuthPublicKeySig", b"epochAuthPublicKeySig", "epochStoragePrivateKey", b"epochStoragePrivateKey", "epochStoragePublicKey", b"epochStoragePublicKey", "epochStoragePublicKeySig", b"epochStoragePublicKeySig", "ocmfClientState", b"ocmfClientState", "publicKey", b"publicKey", "supportedEncryptionVersions", b"supportedEncryptionVersions"] # noqa: Y015
def ClearField(self, field_name: _ClearFieldArgType) -> None: ...
-Global___IdentityKeyPairStructure: _TypeAlias = IdentityKeyPairStructure # noqa: Y015
+Global___DeviceOutput: _TypeAlias = DeviceOutput # noqa: Y015
@_typing.final
-class InThreadSurveyMetadata(_message.Message):
+class DeviceProps(_message.Message):
DESCRIPTOR: _descriptor.Descriptor
- @_typing.final
- class InThreadSurveyOption(_message.Message):
- DESCRIPTOR: _descriptor.Descriptor
+ class _PlatformType:
+ ValueType = _typing.NewType("ValueType", _builtins.int)
+ V: _TypeAlias = ValueType # noqa: Y015
- STRINGVALUE_FIELD_NUMBER: _builtins.int
- NUMERICVALUE_FIELD_NUMBER: _builtins.int
- TEXTTRANSLATED_FIELD_NUMBER: _builtins.int
- stringValue: _builtins.str
- numericValue: _builtins.int
- textTranslated: _builtins.str
- def __init__(
- self,
- *,
- stringValue: _builtins.str | None = ...,
- numericValue: _builtins.int | None = ...,
- textTranslated: _builtins.str | None = ...,
- ) -> None: ...
- _HasFieldArgType: _TypeAlias = _typing.Literal["numericValue", b"numericValue", "stringValue", b"stringValue", "textTranslated", b"textTranslated"] # noqa: Y015
- def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ...
- _ClearFieldArgType: _TypeAlias = _typing.Literal["numericValue", b"numericValue", "stringValue", b"stringValue", "textTranslated", b"textTranslated"] # noqa: Y015
- def ClearField(self, field_name: _ClearFieldArgType) -> None: ...
+ class _PlatformTypeEnumTypeWrapper(_enum_type_wrapper._EnumTypeWrapper[DeviceProps._PlatformType.ValueType], _builtins.type):
+ DESCRIPTOR: _descriptor.EnumDescriptor
+ UNKNOWN: DeviceProps._PlatformType.ValueType # 0
+ CHROME: DeviceProps._PlatformType.ValueType # 1
+ FIREFOX: DeviceProps._PlatformType.ValueType # 2
+ IE: DeviceProps._PlatformType.ValueType # 3
+ OPERA: DeviceProps._PlatformType.ValueType # 4
+ SAFARI: DeviceProps._PlatformType.ValueType # 5
+ EDGE: DeviceProps._PlatformType.ValueType # 6
+ DESKTOP: DeviceProps._PlatformType.ValueType # 7
+ IPAD: DeviceProps._PlatformType.ValueType # 8
+ ANDROID_TABLET: DeviceProps._PlatformType.ValueType # 9
+ OHANA: DeviceProps._PlatformType.ValueType # 10
+ ALOHA: DeviceProps._PlatformType.ValueType # 11
+ CATALINA: DeviceProps._PlatformType.ValueType # 12
+ TCL_TV: DeviceProps._PlatformType.ValueType # 13
+ IOS_PHONE: DeviceProps._PlatformType.ValueType # 14
+ IOS_CATALYST: DeviceProps._PlatformType.ValueType # 15
+ ANDROID_PHONE: DeviceProps._PlatformType.ValueType # 16
+ ANDROID_AMBIGUOUS: DeviceProps._PlatformType.ValueType # 17
+ WEAR_OS: DeviceProps._PlatformType.ValueType # 18
+ AR_WRIST: DeviceProps._PlatformType.ValueType # 19
+ AR_DEVICE: DeviceProps._PlatformType.ValueType # 20
+ UWP: DeviceProps._PlatformType.ValueType # 21
+ VR: DeviceProps._PlatformType.ValueType # 22
+ CLOUD_API: DeviceProps._PlatformType.ValueType # 23
+ SMARTGLASSES: DeviceProps._PlatformType.ValueType # 24
+ WAIL: DeviceProps._PlatformType.ValueType # 25
+
+ class PlatformType(_PlatformType, metaclass=_PlatformTypeEnumTypeWrapper): ...
+ UNKNOWN: DeviceProps.PlatformType.ValueType # 0
+ CHROME: DeviceProps.PlatformType.ValueType # 1
+ FIREFOX: DeviceProps.PlatformType.ValueType # 2
+ IE: DeviceProps.PlatformType.ValueType # 3
+ OPERA: DeviceProps.PlatformType.ValueType # 4
+ SAFARI: DeviceProps.PlatformType.ValueType # 5
+ EDGE: DeviceProps.PlatformType.ValueType # 6
+ DESKTOP: DeviceProps.PlatformType.ValueType # 7
+ IPAD: DeviceProps.PlatformType.ValueType # 8
+ ANDROID_TABLET: DeviceProps.PlatformType.ValueType # 9
+ OHANA: DeviceProps.PlatformType.ValueType # 10
+ ALOHA: DeviceProps.PlatformType.ValueType # 11
+ CATALINA: DeviceProps.PlatformType.ValueType # 12
+ TCL_TV: DeviceProps.PlatformType.ValueType # 13
+ IOS_PHONE: DeviceProps.PlatformType.ValueType # 14
+ IOS_CATALYST: DeviceProps.PlatformType.ValueType # 15
+ ANDROID_PHONE: DeviceProps.PlatformType.ValueType # 16
+ ANDROID_AMBIGUOUS: DeviceProps.PlatformType.ValueType # 17
+ WEAR_OS: DeviceProps.PlatformType.ValueType # 18
+ AR_WRIST: DeviceProps.PlatformType.ValueType # 19
+ AR_DEVICE: DeviceProps.PlatformType.ValueType # 20
+ UWP: DeviceProps.PlatformType.ValueType # 21
+ VR: DeviceProps.PlatformType.ValueType # 22
+ CLOUD_API: DeviceProps.PlatformType.ValueType # 23
+ SMARTGLASSES: DeviceProps.PlatformType.ValueType # 24
+ WAIL: DeviceProps.PlatformType.ValueType # 25
@_typing.final
- class InThreadSurveyPrivacyStatementPart(_message.Message):
+ class AppVersion(_message.Message):
DESCRIPTOR: _descriptor.Descriptor
- TEXT_FIELD_NUMBER: _builtins.int
- URL_FIELD_NUMBER: _builtins.int
- text: _builtins.str
- url: _builtins.str
+ PRIMARY_FIELD_NUMBER: _builtins.int
+ SECONDARY_FIELD_NUMBER: _builtins.int
+ TERTIARY_FIELD_NUMBER: _builtins.int
+ QUATERNARY_FIELD_NUMBER: _builtins.int
+ QUINARY_FIELD_NUMBER: _builtins.int
+ primary: _builtins.int
+ secondary: _builtins.int
+ tertiary: _builtins.int
+ quaternary: _builtins.int
+ quinary: _builtins.int
def __init__(
self,
*,
- text: _builtins.str | None = ...,
- url: _builtins.str | None = ...,
+ primary: _builtins.int | None = ...,
+ secondary: _builtins.int | None = ...,
+ tertiary: _builtins.int | None = ...,
+ quaternary: _builtins.int | None = ...,
+ quinary: _builtins.int | None = ...,
) -> None: ...
- _HasFieldArgType: _TypeAlias = _typing.Literal["text", b"text", "url", b"url"] # noqa: Y015
+ _HasFieldArgType: _TypeAlias = _typing.Literal["primary", b"primary", "quaternary", b"quaternary", "quinary", b"quinary", "secondary", b"secondary", "tertiary", b"tertiary"] # noqa: Y015
def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ...
- _ClearFieldArgType: _TypeAlias = _typing.Literal["text", b"text", "url", b"url"] # noqa: Y015
+ _ClearFieldArgType: _TypeAlias = _typing.Literal["primary", b"primary", "quaternary", b"quaternary", "quinary", b"quinary", "secondary", b"secondary", "tertiary", b"tertiary"] # noqa: Y015
def ClearField(self, field_name: _ClearFieldArgType) -> None: ...
@_typing.final
- class InThreadSurveyQuestion(_message.Message):
+ class HistorySyncConfig(_message.Message):
DESCRIPTOR: _descriptor.Descriptor
- QUESTIONTEXT_FIELD_NUMBER: _builtins.int
- QUESTIONID_FIELD_NUMBER: _builtins.int
- QUESTIONOPTIONS_FIELD_NUMBER: _builtins.int
- questionText: _builtins.str
- questionId: _builtins.str
- @_builtins.property
- def questionOptions(self) -> _containers.RepeatedCompositeFieldContainer[Global___InThreadSurveyMetadata.InThreadSurveyOption]: ...
- def __init__(
- self,
- *,
- questionText: _builtins.str | None = ...,
- questionId: _builtins.str | None = ...,
- questionOptions: _abc.Iterable[Global___InThreadSurveyMetadata.InThreadSurveyOption] | None = ...,
- ) -> None: ...
- _HasFieldArgType: _TypeAlias = _typing.Literal["questionId", b"questionId", "questionText", b"questionText"] # noqa: Y015
- def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ...
- _ClearFieldArgType: _TypeAlias = _typing.Literal["questionId", b"questionId", "questionOptions", b"questionOptions", "questionText", b"questionText"] # noqa: Y015
- def ClearField(self, field_name: _ClearFieldArgType) -> None: ...
-
- TESSASESSIONID_FIELD_NUMBER: _builtins.int
- SIMONSESSIONID_FIELD_NUMBER: _builtins.int
- SIMONSURVEYID_FIELD_NUMBER: _builtins.int
- TESSAROOTID_FIELD_NUMBER: _builtins.int
- REQUESTID_FIELD_NUMBER: _builtins.int
- TESSAEVENT_FIELD_NUMBER: _builtins.int
- INVITATIONHEADERTEXT_FIELD_NUMBER: _builtins.int
- INVITATIONBODYTEXT_FIELD_NUMBER: _builtins.int
- INVITATIONCTATEXT_FIELD_NUMBER: _builtins.int
- INVITATIONCTAURL_FIELD_NUMBER: _builtins.int
- SURVEYTITLE_FIELD_NUMBER: _builtins.int
- QUESTIONS_FIELD_NUMBER: _builtins.int
- SURVEYCONTINUEBUTTONTEXT_FIELD_NUMBER: _builtins.int
- SURVEYSUBMITBUTTONTEXT_FIELD_NUMBER: _builtins.int
- PRIVACYSTATEMENTFULL_FIELD_NUMBER: _builtins.int
- PRIVACYSTATEMENTPARTS_FIELD_NUMBER: _builtins.int
- FEEDBACKTOASTTEXT_FIELD_NUMBER: _builtins.int
- STARTQUESTIONINDEX_FIELD_NUMBER: _builtins.int
- tessaSessionId: _builtins.str
- simonSessionId: _builtins.str
- simonSurveyId: _builtins.str
- tessaRootId: _builtins.str
- requestId: _builtins.str
- tessaEvent: _builtins.str
- invitationHeaderText: _builtins.str
- invitationBodyText: _builtins.str
- invitationCtaText: _builtins.str
- invitationCtaUrl: _builtins.str
- surveyTitle: _builtins.str
- surveyContinueButtonText: _builtins.str
- surveySubmitButtonText: _builtins.str
- privacyStatementFull: _builtins.str
- feedbackToastText: _builtins.str
- startQuestionIndex: _builtins.int
+ FULLSYNCDAYSLIMIT_FIELD_NUMBER: _builtins.int
+ FULLSYNCSIZEMBLIMIT_FIELD_NUMBER: _builtins.int
+ STORAGEQUOTAMB_FIELD_NUMBER: _builtins.int
+ INLINEINITIALPAYLOADINE2EEMSG_FIELD_NUMBER: _builtins.int
+ RECENTSYNCDAYSLIMIT_FIELD_NUMBER: _builtins.int
+ SUPPORTCALLLOGHISTORY_FIELD_NUMBER: _builtins.int
+ SUPPORTBOTUSERAGENTCHATHISTORY_FIELD_NUMBER: _builtins.int
+ SUPPORTCAGREACTIONSANDPOLLS_FIELD_NUMBER: _builtins.int
+ SUPPORTBIZHOSTEDMSG_FIELD_NUMBER: _builtins.int
+ SUPPORTRECENTSYNCCHUNKMESSAGECOUNTTUNING_FIELD_NUMBER: _builtins.int
+ SUPPORTHOSTEDGROUPMSG_FIELD_NUMBER: _builtins.int
+ SUPPORTFBIDBOTCHATHISTORY_FIELD_NUMBER: _builtins.int
+ SUPPORTADDONHISTORYSYNCMIGRATION_FIELD_NUMBER: _builtins.int
+ SUPPORTMESSAGEASSOCIATION_FIELD_NUMBER: _builtins.int
+ SUPPORTGROUPHISTORY_FIELD_NUMBER: _builtins.int
+ ONDEMANDREADY_FIELD_NUMBER: _builtins.int
+ SUPPORTGUESTCHAT_FIELD_NUMBER: _builtins.int
+ COMPLETEONDEMANDREADY_FIELD_NUMBER: _builtins.int
+ THUMBNAILSYNCDAYSLIMIT_FIELD_NUMBER: _builtins.int
+ INITIALSYNCMAXMESSAGESPERCHAT_FIELD_NUMBER: _builtins.int
+ SUPPORTMANUSHISTORY_FIELD_NUMBER: _builtins.int
+ SUPPORTHATCHHISTORY_FIELD_NUMBER: _builtins.int
+ SUPPORTEDBOTCHANNELFBIDS_FIELD_NUMBER: _builtins.int
+ SUPPORTINLINECONTACTS_FIELD_NUMBER: _builtins.int
+ SUPPORTNEWSLETTER_FIELD_NUMBER: _builtins.int
+ fullSyncDaysLimit: _builtins.int
+ fullSyncSizeMbLimit: _builtins.int
+ storageQuotaMb: _builtins.int
+ inlineInitialPayloadInE2EeMsg: _builtins.bool
+ recentSyncDaysLimit: _builtins.int
+ supportCallLogHistory: _builtins.bool
+ supportBotUserAgentChatHistory: _builtins.bool
+ supportCagReactionsAndPolls: _builtins.bool
+ supportBizHostedMsg: _builtins.bool
+ supportRecentSyncChunkMessageCountTuning: _builtins.bool
+ supportHostedGroupMsg: _builtins.bool
+ supportFbidBotChatHistory: _builtins.bool
+ supportAddOnHistorySyncMigration: _builtins.bool
+ supportMessageAssociation: _builtins.bool
+ supportGroupHistory: _builtins.bool
+ onDemandReady: _builtins.bool
+ supportGuestChat: _builtins.bool
+ completeOnDemandReady: _builtins.bool
+ thumbnailSyncDaysLimit: _builtins.int
+ initialSyncMaxMessagesPerChat: _builtins.int
+ supportManusHistory: _builtins.bool
+ supportHatchHistory: _builtins.bool
+ supportInlineContacts: _builtins.bool
+ supportNewsletter: _builtins.bool
+ @_builtins.property
+ def supportedBotChannelFbids(self) -> _containers.RepeatedScalarFieldContainer[_builtins.str]: ...
+ def __init__(
+ self,
+ *,
+ fullSyncDaysLimit: _builtins.int | None = ...,
+ fullSyncSizeMbLimit: _builtins.int | None = ...,
+ storageQuotaMb: _builtins.int | None = ...,
+ inlineInitialPayloadInE2EeMsg: _builtins.bool | None = ...,
+ recentSyncDaysLimit: _builtins.int | None = ...,
+ supportCallLogHistory: _builtins.bool | None = ...,
+ supportBotUserAgentChatHistory: _builtins.bool | None = ...,
+ supportCagReactionsAndPolls: _builtins.bool | None = ...,
+ supportBizHostedMsg: _builtins.bool | None = ...,
+ supportRecentSyncChunkMessageCountTuning: _builtins.bool | None = ...,
+ supportHostedGroupMsg: _builtins.bool | None = ...,
+ supportFbidBotChatHistory: _builtins.bool | None = ...,
+ supportAddOnHistorySyncMigration: _builtins.bool | None = ...,
+ supportMessageAssociation: _builtins.bool | None = ...,
+ supportGroupHistory: _builtins.bool | None = ...,
+ onDemandReady: _builtins.bool | None = ...,
+ supportGuestChat: _builtins.bool | None = ...,
+ completeOnDemandReady: _builtins.bool | None = ...,
+ thumbnailSyncDaysLimit: _builtins.int | None = ...,
+ initialSyncMaxMessagesPerChat: _builtins.int | None = ...,
+ supportManusHistory: _builtins.bool | None = ...,
+ supportHatchHistory: _builtins.bool | None = ...,
+ supportedBotChannelFbids: _abc.Iterable[_builtins.str] | None = ...,
+ supportInlineContacts: _builtins.bool | None = ...,
+ supportNewsletter: _builtins.bool | None = ...,
+ ) -> None: ...
+ _HasFieldArgType: _TypeAlias = _typing.Literal["completeOnDemandReady", b"completeOnDemandReady", "fullSyncDaysLimit", b"fullSyncDaysLimit", "fullSyncSizeMbLimit", b"fullSyncSizeMbLimit", "initialSyncMaxMessagesPerChat", b"initialSyncMaxMessagesPerChat", "inlineInitialPayloadInE2EeMsg", b"inlineInitialPayloadInE2EeMsg", "onDemandReady", b"onDemandReady", "recentSyncDaysLimit", b"recentSyncDaysLimit", "storageQuotaMb", b"storageQuotaMb", "supportAddOnHistorySyncMigration", b"supportAddOnHistorySyncMigration", "supportBizHostedMsg", b"supportBizHostedMsg", "supportBotUserAgentChatHistory", b"supportBotUserAgentChatHistory", "supportCagReactionsAndPolls", b"supportCagReactionsAndPolls", "supportCallLogHistory", b"supportCallLogHistory", "supportFbidBotChatHistory", b"supportFbidBotChatHistory", "supportGroupHistory", b"supportGroupHistory", "supportGuestChat", b"supportGuestChat", "supportHatchHistory", b"supportHatchHistory", "supportHostedGroupMsg", b"supportHostedGroupMsg", "supportInlineContacts", b"supportInlineContacts", "supportManusHistory", b"supportManusHistory", "supportMessageAssociation", b"supportMessageAssociation", "supportNewsletter", b"supportNewsletter", "supportRecentSyncChunkMessageCountTuning", b"supportRecentSyncChunkMessageCountTuning", "thumbnailSyncDaysLimit", b"thumbnailSyncDaysLimit"] # noqa: Y015
+ def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ...
+ _ClearFieldArgType: _TypeAlias = _typing.Literal["completeOnDemandReady", b"completeOnDemandReady", "fullSyncDaysLimit", b"fullSyncDaysLimit", "fullSyncSizeMbLimit", b"fullSyncSizeMbLimit", "initialSyncMaxMessagesPerChat", b"initialSyncMaxMessagesPerChat", "inlineInitialPayloadInE2EeMsg", b"inlineInitialPayloadInE2EeMsg", "onDemandReady", b"onDemandReady", "recentSyncDaysLimit", b"recentSyncDaysLimit", "storageQuotaMb", b"storageQuotaMb", "supportAddOnHistorySyncMigration", b"supportAddOnHistorySyncMigration", "supportBizHostedMsg", b"supportBizHostedMsg", "supportBotUserAgentChatHistory", b"supportBotUserAgentChatHistory", "supportCagReactionsAndPolls", b"supportCagReactionsAndPolls", "supportCallLogHistory", b"supportCallLogHistory", "supportFbidBotChatHistory", b"supportFbidBotChatHistory", "supportGroupHistory", b"supportGroupHistory", "supportGuestChat", b"supportGuestChat", "supportHatchHistory", b"supportHatchHistory", "supportHostedGroupMsg", b"supportHostedGroupMsg", "supportInlineContacts", b"supportInlineContacts", "supportManusHistory", b"supportManusHistory", "supportMessageAssociation", b"supportMessageAssociation", "supportNewsletter", b"supportNewsletter", "supportRecentSyncChunkMessageCountTuning", b"supportRecentSyncChunkMessageCountTuning", "supportedBotChannelFbids", b"supportedBotChannelFbids", "thumbnailSyncDaysLimit", b"thumbnailSyncDaysLimit"] # noqa: Y015
+ def ClearField(self, field_name: _ClearFieldArgType) -> None: ...
+
+ OS_FIELD_NUMBER: _builtins.int
+ VERSION_FIELD_NUMBER: _builtins.int
+ PLATFORMTYPE_FIELD_NUMBER: _builtins.int
+ REQUIREFULLSYNC_FIELD_NUMBER: _builtins.int
+ HISTORYSYNCCONFIG_FIELD_NUMBER: _builtins.int
+ os: _builtins.str
+ platformType: Global___DeviceProps.PlatformType.ValueType
+ requireFullSync: _builtins.bool
@_builtins.property
- def questions(self) -> _containers.RepeatedCompositeFieldContainer[Global___InThreadSurveyMetadata.InThreadSurveyQuestion]: ...
+ def version(self) -> Global___DeviceProps.AppVersion: ...
@_builtins.property
- def privacyStatementParts(self) -> _containers.RepeatedCompositeFieldContainer[Global___InThreadSurveyMetadata.InThreadSurveyPrivacyStatementPart]: ...
+ def historySyncConfig(self) -> Global___DeviceProps.HistorySyncConfig: ...
def __init__(
self,
*,
- tessaSessionId: _builtins.str | None = ...,
- simonSessionId: _builtins.str | None = ...,
- simonSurveyId: _builtins.str | None = ...,
- tessaRootId: _builtins.str | None = ...,
- requestId: _builtins.str | None = ...,
- tessaEvent: _builtins.str | None = ...,
- invitationHeaderText: _builtins.str | None = ...,
- invitationBodyText: _builtins.str | None = ...,
- invitationCtaText: _builtins.str | None = ...,
- invitationCtaUrl: _builtins.str | None = ...,
- surveyTitle: _builtins.str | None = ...,
- questions: _abc.Iterable[Global___InThreadSurveyMetadata.InThreadSurveyQuestion] | None = ...,
- surveyContinueButtonText: _builtins.str | None = ...,
- surveySubmitButtonText: _builtins.str | None = ...,
- privacyStatementFull: _builtins.str | None = ...,
- privacyStatementParts: _abc.Iterable[Global___InThreadSurveyMetadata.InThreadSurveyPrivacyStatementPart] | None = ...,
- feedbackToastText: _builtins.str | None = ...,
- startQuestionIndex: _builtins.int | None = ...,
+ os: _builtins.str | None = ...,
+ version: Global___DeviceProps.AppVersion | None = ...,
+ platformType: Global___DeviceProps.PlatformType.ValueType | None = ...,
+ requireFullSync: _builtins.bool | None = ...,
+ historySyncConfig: Global___DeviceProps.HistorySyncConfig | None = ...,
) -> None: ...
- _HasFieldArgType: _TypeAlias = _typing.Literal["feedbackToastText", b"feedbackToastText", "invitationBodyText", b"invitationBodyText", "invitationCtaText", b"invitationCtaText", "invitationCtaUrl", b"invitationCtaUrl", "invitationHeaderText", b"invitationHeaderText", "privacyStatementFull", b"privacyStatementFull", "requestId", b"requestId", "simonSessionId", b"simonSessionId", "simonSurveyId", b"simonSurveyId", "startQuestionIndex", b"startQuestionIndex", "surveyContinueButtonText", b"surveyContinueButtonText", "surveySubmitButtonText", b"surveySubmitButtonText", "surveyTitle", b"surveyTitle", "tessaEvent", b"tessaEvent", "tessaRootId", b"tessaRootId", "tessaSessionId", b"tessaSessionId"] # noqa: Y015
+ _HasFieldArgType: _TypeAlias = _typing.Literal["historySyncConfig", b"historySyncConfig", "os", b"os", "platformType", b"platformType", "requireFullSync", b"requireFullSync", "version", b"version"] # noqa: Y015
def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ...
- _ClearFieldArgType: _TypeAlias = _typing.Literal["feedbackToastText", b"feedbackToastText", "invitationBodyText", b"invitationBodyText", "invitationCtaText", b"invitationCtaText", "invitationCtaUrl", b"invitationCtaUrl", "invitationHeaderText", b"invitationHeaderText", "privacyStatementFull", b"privacyStatementFull", "privacyStatementParts", b"privacyStatementParts", "questions", b"questions", "requestId", b"requestId", "simonSessionId", b"simonSessionId", "simonSurveyId", b"simonSurveyId", "startQuestionIndex", b"startQuestionIndex", "surveyContinueButtonText", b"surveyContinueButtonText", "surveySubmitButtonText", b"surveySubmitButtonText", "surveyTitle", b"surveyTitle", "tessaEvent", b"tessaEvent", "tessaRootId", b"tessaRootId", "tessaSessionId", b"tessaSessionId"] # noqa: Y015
+ _ClearFieldArgType: _TypeAlias = _typing.Literal["historySyncConfig", b"historySyncConfig", "os", b"os", "platformType", b"platformType", "requireFullSync", b"requireFullSync", "version", b"version"] # noqa: Y015
def ClearField(self, field_name: _ClearFieldArgType) -> None: ...
-Global___InThreadSurveyMetadata: _TypeAlias = InThreadSurveyMetadata # noqa: Y015
+Global___DeviceProps: _TypeAlias = DeviceProps # noqa: Y015
@_typing.final
-class InlineContact(_message.Message):
+class DisappearingMode(_message.Message):
DESCRIPTOR: _descriptor.Descriptor
- PNJID_FIELD_NUMBER: _builtins.int
- LIDJID_FIELD_NUMBER: _builtins.int
- FULLNAME_FIELD_NUMBER: _builtins.int
- FIRSTNAME_FIELD_NUMBER: _builtins.int
- USERNAME_FIELD_NUMBER: _builtins.int
- pnJid: _builtins.str
- lidJid: _builtins.str
- fullName: _builtins.str
- firstName: _builtins.str
- username: _builtins.str
- def __init__(
- self,
- *,
- pnJid: _builtins.str | None = ...,
- lidJid: _builtins.str | None = ...,
- fullName: _builtins.str | None = ...,
- firstName: _builtins.str | None = ...,
- username: _builtins.str | None = ...,
- ) -> None: ...
- _HasFieldArgType: _TypeAlias = _typing.Literal["firstName", b"firstName", "fullName", b"fullName", "lidJid", b"lidJid", "pnJid", b"pnJid", "username", b"username"] # noqa: Y015
- def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ...
- _ClearFieldArgType: _TypeAlias = _typing.Literal["firstName", b"firstName", "fullName", b"fullName", "lidJid", b"lidJid", "pnJid", b"pnJid", "username", b"username"] # noqa: Y015
- def ClearField(self, field_name: _ClearFieldArgType) -> None: ...
+ class _Initiator:
+ ValueType = _typing.NewType("ValueType", _builtins.int)
+ V: _TypeAlias = ValueType # noqa: Y015
-Global___InlineContact: _TypeAlias = InlineContact # noqa: Y015
+ class _InitiatorEnumTypeWrapper(_enum_type_wrapper._EnumTypeWrapper[DisappearingMode._Initiator.ValueType], _builtins.type):
+ DESCRIPTOR: _descriptor.EnumDescriptor
+ CHANGED_IN_CHAT: DisappearingMode._Initiator.ValueType # 0
+ INITIATED_BY_ME: DisappearingMode._Initiator.ValueType # 1
+ INITIATED_BY_OTHER: DisappearingMode._Initiator.ValueType # 2
+ BIZ_UPGRADE_FB_HOSTING: DisappearingMode._Initiator.ValueType # 3
-@_typing.final
-class InteractiveAnnotation(_message.Message):
- DESCRIPTOR: _descriptor.Descriptor
+ class Initiator(_Initiator, metaclass=_InitiatorEnumTypeWrapper): ...
+ CHANGED_IN_CHAT: DisappearingMode.Initiator.ValueType # 0
+ INITIATED_BY_ME: DisappearingMode.Initiator.ValueType # 1
+ INITIATED_BY_OTHER: DisappearingMode.Initiator.ValueType # 2
+ BIZ_UPGRADE_FB_HOSTING: DisappearingMode.Initiator.ValueType # 3
- class _StatusLinkType:
+ class _Trigger:
ValueType = _typing.NewType("ValueType", _builtins.int)
V: _TypeAlias = ValueType # noqa: Y015
- class _StatusLinkTypeEnumTypeWrapper(_enum_type_wrapper._EnumTypeWrapper[InteractiveAnnotation._StatusLinkType.ValueType], _builtins.type):
+ class _TriggerEnumTypeWrapper(_enum_type_wrapper._EnumTypeWrapper[DisappearingMode._Trigger.ValueType], _builtins.type):
DESCRIPTOR: _descriptor.EnumDescriptor
- RASTERIZED_LINK_PREVIEW: InteractiveAnnotation._StatusLinkType.ValueType # 1
- RASTERIZED_LINK_TRUNCATED: InteractiveAnnotation._StatusLinkType.ValueType # 2
- RASTERIZED_LINK_FULL_URL: InteractiveAnnotation._StatusLinkType.ValueType # 3
+ UNKNOWN: DisappearingMode._Trigger.ValueType # 0
+ CHAT_SETTING: DisappearingMode._Trigger.ValueType # 1
+ ACCOUNT_SETTING: DisappearingMode._Trigger.ValueType # 2
+ BULK_CHANGE: DisappearingMode._Trigger.ValueType # 3
+ BIZ_SUPPORTS_FB_HOSTING: DisappearingMode._Trigger.ValueType # 4
+ UNKNOWN_GROUPS: DisappearingMode._Trigger.ValueType # 5
- class StatusLinkType(_StatusLinkType, metaclass=_StatusLinkTypeEnumTypeWrapper): ...
- RASTERIZED_LINK_PREVIEW: InteractiveAnnotation.StatusLinkType.ValueType # 1
- RASTERIZED_LINK_TRUNCATED: InteractiveAnnotation.StatusLinkType.ValueType # 2
- RASTERIZED_LINK_FULL_URL: InteractiveAnnotation.StatusLinkType.ValueType # 3
+ class Trigger(_Trigger, metaclass=_TriggerEnumTypeWrapper): ...
+ UNKNOWN: DisappearingMode.Trigger.ValueType # 0
+ CHAT_SETTING: DisappearingMode.Trigger.ValueType # 1
+ ACCOUNT_SETTING: DisappearingMode.Trigger.ValueType # 2
+ BULK_CHANGE: DisappearingMode.Trigger.ValueType # 3
+ BIZ_SUPPORTS_FB_HOSTING: DisappearingMode.Trigger.ValueType # 4
+ UNKNOWN_GROUPS: DisappearingMode.Trigger.ValueType # 5
- POLYGONVERTICES_FIELD_NUMBER: _builtins.int
- SHOULDSKIPCONFIRMATION_FIELD_NUMBER: _builtins.int
- EMBEDDEDCONTENT_FIELD_NUMBER: _builtins.int
- STATUSLINKTYPE_FIELD_NUMBER: _builtins.int
- LOCATION_FIELD_NUMBER: _builtins.int
- NEWSLETTER_FIELD_NUMBER: _builtins.int
- EMBEDDEDACTION_FIELD_NUMBER: _builtins.int
- TAPACTION_FIELD_NUMBER: _builtins.int
- shouldSkipConfirmation: _builtins.bool
- statusLinkType: Global___InteractiveAnnotation.StatusLinkType.ValueType
- embeddedAction: _builtins.bool
- @_builtins.property
- def polygonVertices(self) -> _containers.RepeatedCompositeFieldContainer[Global___Point]: ...
- @_builtins.property
- def embeddedContent(self) -> Global___EmbeddedContent: ...
- @_builtins.property
- def location(self) -> Global___Location: ...
- @_builtins.property
- def newsletter(self) -> Global___ContextInfo.ForwardedNewsletterMessageInfo: ...
- @_builtins.property
- def tapAction(self) -> Global___TapLinkAction: ...
+ INITIATOR_FIELD_NUMBER: _builtins.int
+ TRIGGER_FIELD_NUMBER: _builtins.int
+ INITIATORDEVICEJID_FIELD_NUMBER: _builtins.int
+ INITIATEDBYME_FIELD_NUMBER: _builtins.int
+ initiator: Global___DisappearingMode.Initiator.ValueType
+ trigger: Global___DisappearingMode.Trigger.ValueType
+ initiatorDeviceJid: _builtins.str
+ initiatedByMe: _builtins.bool
def __init__(
self,
*,
- polygonVertices: _abc.Iterable[Global___Point] | None = ...,
- shouldSkipConfirmation: _builtins.bool | None = ...,
- embeddedContent: Global___EmbeddedContent | None = ...,
- statusLinkType: Global___InteractiveAnnotation.StatusLinkType.ValueType | None = ...,
- location: Global___Location | None = ...,
- newsletter: Global___ContextInfo.ForwardedNewsletterMessageInfo | None = ...,
- embeddedAction: _builtins.bool | None = ...,
- tapAction: Global___TapLinkAction | None = ...,
+ initiator: Global___DisappearingMode.Initiator.ValueType | None = ...,
+ trigger: Global___DisappearingMode.Trigger.ValueType | None = ...,
+ initiatorDeviceJid: _builtins.str | None = ...,
+ initiatedByMe: _builtins.bool | None = ...,
) -> None: ...
- _HasFieldArgType: _TypeAlias = _typing.Literal["action", b"action", "embeddedAction", b"embeddedAction", "embeddedContent", b"embeddedContent", "location", b"location", "newsletter", b"newsletter", "shouldSkipConfirmation", b"shouldSkipConfirmation", "statusLinkType", b"statusLinkType", "tapAction", b"tapAction"] # noqa: Y015
+ _HasFieldArgType: _TypeAlias = _typing.Literal["initiatedByMe", b"initiatedByMe", "initiator", b"initiator", "initiatorDeviceJid", b"initiatorDeviceJid", "trigger", b"trigger"] # noqa: Y015
def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ...
- _ClearFieldArgType: _TypeAlias = _typing.Literal["action", b"action", "embeddedAction", b"embeddedAction", "embeddedContent", b"embeddedContent", "location", b"location", "newsletter", b"newsletter", "polygonVertices", b"polygonVertices", "shouldSkipConfirmation", b"shouldSkipConfirmation", "statusLinkType", b"statusLinkType", "tapAction", b"tapAction"] # noqa: Y015
+ _ClearFieldArgType: _TypeAlias = _typing.Literal["initiatedByMe", b"initiatedByMe", "initiator", b"initiator", "initiatorDeviceJid", b"initiatorDeviceJid", "trigger", b"trigger"] # noqa: Y015
def ClearField(self, field_name: _ClearFieldArgType) -> None: ...
- _WhichOneofReturnType_action: _TypeAlias = _typing.Literal["location", "newsletter", "embeddedAction", "tapAction"] # noqa: Y015
- _WhichOneofArgType_action: _TypeAlias = _typing.Literal["action", b"action"] # noqa: Y015
- def WhichOneof(self, oneof_group: _WhichOneofArgType_action) -> _WhichOneofReturnType_action | None: ...
-Global___InteractiveAnnotation: _TypeAlias = InteractiveAnnotation # noqa: Y015
+Global___DisappearingMode: _TypeAlias = DisappearingMode # noqa: Y015
@_typing.final
-class InteractiveMessageAdditionalMetadata(_message.Message):
+class EmbeddedContent(_message.Message):
DESCRIPTOR: _descriptor.Descriptor
- ISGALAXYFLOWCOMPLETED_FIELD_NUMBER: _builtins.int
- isGalaxyFlowCompleted: _builtins.bool
+ EMBEDDEDMESSAGE_FIELD_NUMBER: _builtins.int
+ EMBEDDEDMUSIC_FIELD_NUMBER: _builtins.int
+ @_builtins.property
+ def embeddedMessage(self) -> Global___EmbeddedMessage: ...
+ @_builtins.property
+ def embeddedMusic(self) -> Global___EmbeddedMusic: ...
def __init__(
self,
*,
- isGalaxyFlowCompleted: _builtins.bool | None = ...,
+ embeddedMessage: Global___EmbeddedMessage | None = ...,
+ embeddedMusic: Global___EmbeddedMusic | None = ...,
) -> None: ...
- _HasFieldArgType: _TypeAlias = _typing.Literal["isGalaxyFlowCompleted", b"isGalaxyFlowCompleted"] # noqa: Y015
+ _HasFieldArgType: _TypeAlias = _typing.Literal["content", b"content", "embeddedMessage", b"embeddedMessage", "embeddedMusic", b"embeddedMusic"] # noqa: Y015
def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ...
- _ClearFieldArgType: _TypeAlias = _typing.Literal["isGalaxyFlowCompleted", b"isGalaxyFlowCompleted"] # noqa: Y015
+ _ClearFieldArgType: _TypeAlias = _typing.Literal["content", b"content", "embeddedMessage", b"embeddedMessage", "embeddedMusic", b"embeddedMusic"] # noqa: Y015
def ClearField(self, field_name: _ClearFieldArgType) -> None: ...
+ _WhichOneofReturnType_content: _TypeAlias = _typing.Literal["embeddedMessage", "embeddedMusic"] # noqa: Y015
+ _WhichOneofArgType_content: _TypeAlias = _typing.Literal["content", b"content"] # noqa: Y015
+ def WhichOneof(self, oneof_group: _WhichOneofArgType_content) -> _WhichOneofReturnType_content | None: ...
-Global___InteractiveMessageAdditionalMetadata: _TypeAlias = InteractiveMessageAdditionalMetadata # noqa: Y015
+Global___EmbeddedContent: _TypeAlias = EmbeddedContent # noqa: Y015
@_typing.final
-class KeepInChat(_message.Message):
+class EmbeddedMessage(_message.Message):
DESCRIPTOR: _descriptor.Descriptor
- KEEPTYPE_FIELD_NUMBER: _builtins.int
- SERVERTIMESTAMP_FIELD_NUMBER: _builtins.int
- KEY_FIELD_NUMBER: _builtins.int
- DEVICEJID_FIELD_NUMBER: _builtins.int
- CLIENTTIMESTAMPMS_FIELD_NUMBER: _builtins.int
- SERVERTIMESTAMPMS_FIELD_NUMBER: _builtins.int
- keepType: Global___KeepType.ValueType
- serverTimestamp: _builtins.int
- deviceJid: _builtins.str
- clientTimestampMs: _builtins.int
- serverTimestampMs: _builtins.int
+ STANZAID_FIELD_NUMBER: _builtins.int
+ MESSAGE_FIELD_NUMBER: _builtins.int
+ stanzaId: _builtins.str
@_builtins.property
- def key(self) -> Global___MessageKey: ...
+ def message(self) -> Global___Message: ...
def __init__(
self,
*,
- keepType: Global___KeepType.ValueType | None = ...,
- serverTimestamp: _builtins.int | None = ...,
- key: Global___MessageKey | None = ...,
- deviceJid: _builtins.str | None = ...,
- clientTimestampMs: _builtins.int | None = ...,
- serverTimestampMs: _builtins.int | None = ...,
+ stanzaId: _builtins.str | None = ...,
+ message: Global___Message | None = ...,
) -> None: ...
- _HasFieldArgType: _TypeAlias = _typing.Literal["clientTimestampMs", b"clientTimestampMs", "deviceJid", b"deviceJid", "keepType", b"keepType", "key", b"key", "serverTimestamp", b"serverTimestamp", "serverTimestampMs", b"serverTimestampMs"] # noqa: Y015
+ _HasFieldArgType: _TypeAlias = _typing.Literal["message", b"message", "stanzaId", b"stanzaId"] # noqa: Y015
def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ...
- _ClearFieldArgType: _TypeAlias = _typing.Literal["clientTimestampMs", b"clientTimestampMs", "deviceJid", b"deviceJid", "keepType", b"keepType", "key", b"key", "serverTimestamp", b"serverTimestamp", "serverTimestampMs", b"serverTimestampMs"] # noqa: Y015
+ _ClearFieldArgType: _TypeAlias = _typing.Literal["message", b"message", "stanzaId", b"stanzaId"] # noqa: Y015
def ClearField(self, field_name: _ClearFieldArgType) -> None: ...
-Global___KeepInChat: _TypeAlias = KeepInChat # noqa: Y015
+Global___EmbeddedMessage: _TypeAlias = EmbeddedMessage # noqa: Y015
@_typing.final
-class KeyExchangeMessage(_message.Message):
+class EmbeddedMusic(_message.Message):
DESCRIPTOR: _descriptor.Descriptor
- ID_FIELD_NUMBER: _builtins.int
- BASEKEY_FIELD_NUMBER: _builtins.int
- RATCHETKEY_FIELD_NUMBER: _builtins.int
- IDENTITYKEY_FIELD_NUMBER: _builtins.int
- BASEKEYSIGNATURE_FIELD_NUMBER: _builtins.int
- id: _builtins.int
- baseKey: _builtins.bytes
- ratchetKey: _builtins.bytes
- identityKey: _builtins.bytes
- baseKeySignature: _builtins.bytes
+ MUSICCONTENTMEDIAID_FIELD_NUMBER: _builtins.int
+ SONGID_FIELD_NUMBER: _builtins.int
+ AUTHOR_FIELD_NUMBER: _builtins.int
+ TITLE_FIELD_NUMBER: _builtins.int
+ ARTWORKDIRECTPATH_FIELD_NUMBER: _builtins.int
+ ARTWORKSHA256_FIELD_NUMBER: _builtins.int
+ ARTWORKENCSHA256_FIELD_NUMBER: _builtins.int
+ ARTISTATTRIBUTION_FIELD_NUMBER: _builtins.int
+ COUNTRYBLOCKLIST_FIELD_NUMBER: _builtins.int
+ ISEXPLICIT_FIELD_NUMBER: _builtins.int
+ ARTWORKMEDIAKEY_FIELD_NUMBER: _builtins.int
+ MUSICSONGSTARTTIMEINMS_FIELD_NUMBER: _builtins.int
+ DERIVEDCONTENTSTARTTIMEINMS_FIELD_NUMBER: _builtins.int
+ OVERLAPDURATIONINMS_FIELD_NUMBER: _builtins.int
+ musicContentMediaId: _builtins.str
+ songId: _builtins.str
+ author: _builtins.str
+ title: _builtins.str
+ artworkDirectPath: _builtins.str
+ artworkSha256: _builtins.bytes
+ artworkEncSha256: _builtins.bytes
+ artistAttribution: _builtins.str
+ countryBlocklist: _builtins.bytes
+ isExplicit: _builtins.bool
+ artworkMediaKey: _builtins.bytes
+ musicSongStartTimeInMs: _builtins.int
+ derivedContentStartTimeInMs: _builtins.int
+ overlapDurationInMs: _builtins.int
def __init__(
self,
*,
- id: _builtins.int | None = ...,
- baseKey: _builtins.bytes | None = ...,
- ratchetKey: _builtins.bytes | None = ...,
- identityKey: _builtins.bytes | None = ...,
- baseKeySignature: _builtins.bytes | None = ...,
+ musicContentMediaId: _builtins.str | None = ...,
+ songId: _builtins.str | None = ...,
+ author: _builtins.str | None = ...,
+ title: _builtins.str | None = ...,
+ artworkDirectPath: _builtins.str | None = ...,
+ artworkSha256: _builtins.bytes | None = ...,
+ artworkEncSha256: _builtins.bytes | None = ...,
+ artistAttribution: _builtins.str | None = ...,
+ countryBlocklist: _builtins.bytes | None = ...,
+ isExplicit: _builtins.bool | None = ...,
+ artworkMediaKey: _builtins.bytes | None = ...,
+ musicSongStartTimeInMs: _builtins.int | None = ...,
+ derivedContentStartTimeInMs: _builtins.int | None = ...,
+ overlapDurationInMs: _builtins.int | None = ...,
) -> None: ...
- _HasFieldArgType: _TypeAlias = _typing.Literal["baseKey", b"baseKey", "baseKeySignature", b"baseKeySignature", "id", b"id", "identityKey", b"identityKey", "ratchetKey", b"ratchetKey"] # noqa: Y015
+ _HasFieldArgType: _TypeAlias = _typing.Literal["artistAttribution", b"artistAttribution", "artworkDirectPath", b"artworkDirectPath", "artworkEncSha256", b"artworkEncSha256", "artworkMediaKey", b"artworkMediaKey", "artworkSha256", b"artworkSha256", "author", b"author", "countryBlocklist", b"countryBlocklist", "derivedContentStartTimeInMs", b"derivedContentStartTimeInMs", "isExplicit", b"isExplicit", "musicContentMediaId", b"musicContentMediaId", "musicSongStartTimeInMs", b"musicSongStartTimeInMs", "overlapDurationInMs", b"overlapDurationInMs", "songId", b"songId", "title", b"title"] # noqa: Y015
def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ...
- _ClearFieldArgType: _TypeAlias = _typing.Literal["baseKey", b"baseKey", "baseKeySignature", b"baseKeySignature", "id", b"id", "identityKey", b"identityKey", "ratchetKey", b"ratchetKey"] # noqa: Y015
+ _ClearFieldArgType: _TypeAlias = _typing.Literal["artistAttribution", b"artistAttribution", "artworkDirectPath", b"artworkDirectPath", "artworkEncSha256", b"artworkEncSha256", "artworkMediaKey", b"artworkMediaKey", "artworkSha256", b"artworkSha256", "author", b"author", "countryBlocklist", b"countryBlocklist", "derivedContentStartTimeInMs", b"derivedContentStartTimeInMs", "isExplicit", b"isExplicit", "musicContentMediaId", b"musicContentMediaId", "musicSongStartTimeInMs", b"musicSongStartTimeInMs", "overlapDurationInMs", b"overlapDurationInMs", "songId", b"songId", "title", b"title"] # noqa: Y015
def ClearField(self, field_name: _ClearFieldArgType) -> None: ...
-Global___KeyExchangeMessage: _TypeAlias = KeyExchangeMessage # noqa: Y015
+Global___EmbeddedMusic: _TypeAlias = EmbeddedMusic # noqa: Y015
@_typing.final
-class KeyId(_message.Message):
+class EncryptMekForDistributionInput(_message.Message):
DESCRIPTOR: _descriptor.Descriptor
- ID_FIELD_NUMBER: _builtins.int
- id: _builtins.bytes
+ @_typing.final
+ class MailboxAuthKP(_message.Message):
+ DESCRIPTOR: _descriptor.Descriptor
+
+ SK_FIELD_NUMBER: _builtins.int
+ PK_FIELD_NUMBER: _builtins.int
+ sk: _builtins.bytes
+ pk: _builtins.bytes
+ def __init__(
+ self,
+ *,
+ sk: _builtins.bytes | None = ...,
+ pk: _builtins.bytes | None = ...,
+ ) -> None: ...
+ _HasFieldArgType: _TypeAlias = _typing.Literal["pk", b"pk", "sk", b"sk"] # noqa: Y015
+ def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ...
+ _ClearFieldArgType: _TypeAlias = _typing.Literal["pk", b"pk", "sk", b"sk"] # noqa: Y015
+ def ClearField(self, field_name: _ClearFieldArgType) -> None: ...
+
+ SENDEREPOCHHEAD_FIELD_NUMBER: _builtins.int
+ TOMAILBOXPK_FIELD_NUMBER: _builtins.int
+ FROMKEYPAIR_FIELD_NUMBER: _builtins.int
+ MEK_FIELD_NUMBER: _builtins.int
+ TOEPOCHHEAD_FIELD_NUMBER: _builtins.int
+ CONF_FIELD_NUMBER: _builtins.int
+ senderEpochHead: _builtins.bytes
+ toMailboxPk: _builtins.bytes
+ toEpochHead: _builtins.bytes
+ @_builtins.property
+ def fromKeypair(self) -> Global___EncryptMekForDistributionInput.MailboxAuthKP: ...
+ @_builtins.property
+ def mek(self) -> Global___MekBundle: ...
+ @_builtins.property
+ def conf(self) -> Global___MinosClientConfig: ...
def __init__(
self,
*,
- id: _builtins.bytes | None = ...,
+ senderEpochHead: _builtins.bytes | None = ...,
+ toMailboxPk: _builtins.bytes | None = ...,
+ fromKeypair: Global___EncryptMekForDistributionInput.MailboxAuthKP | None = ...,
+ mek: Global___MekBundle | None = ...,
+ toEpochHead: _builtins.bytes | None = ...,
+ conf: Global___MinosClientConfig | None = ...,
) -> None: ...
- _HasFieldArgType: _TypeAlias = _typing.Literal["id", b"id"] # noqa: Y015
+ _HasFieldArgType: _TypeAlias = _typing.Literal["conf", b"conf", "fromKeypair", b"fromKeypair", "mek", b"mek", "senderEpochHead", b"senderEpochHead", "toEpochHead", b"toEpochHead", "toMailboxPk", b"toMailboxPk"] # noqa: Y015
def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ...
- _ClearFieldArgType: _TypeAlias = _typing.Literal["id", b"id"] # noqa: Y015
+ _ClearFieldArgType: _TypeAlias = _typing.Literal["conf", b"conf", "fromKeypair", b"fromKeypair", "mek", b"mek", "senderEpochHead", b"senderEpochHead", "toEpochHead", b"toEpochHead", "toMailboxPk", b"toMailboxPk"] # noqa: Y015
def ClearField(self, field_name: _ClearFieldArgType) -> None: ...
-Global___KeyId: _TypeAlias = KeyId # noqa: Y015
+Global___EncryptMekForDistributionInput: _TypeAlias = EncryptMekForDistributionInput # noqa: Y015
@_typing.final
-class LIDMigrationMapping(_message.Message):
+class EncryptMekForDistributionResult(_message.Message):
DESCRIPTOR: _descriptor.Descriptor
- PN_FIELD_NUMBER: _builtins.int
- ASSIGNEDLID_FIELD_NUMBER: _builtins.int
- LATESTLID_FIELD_NUMBER: _builtins.int
- pn: _builtins.int
- assignedLid: _builtins.int
- latestLid: _builtins.int
+ CIPHERTEXT_FIELD_NUMBER: _builtins.int
+ VERSION_FIELD_NUMBER: _builtins.int
+ ciphertext: _builtins.bytes
+ version: _builtins.int
def __init__(
self,
*,
- pn: _builtins.int | None = ...,
- assignedLid: _builtins.int | None = ...,
- latestLid: _builtins.int | None = ...,
+ ciphertext: _builtins.bytes | None = ...,
+ version: _builtins.int | None = ...,
) -> None: ...
- _HasFieldArgType: _TypeAlias = _typing.Literal["assignedLid", b"assignedLid", "latestLid", b"latestLid", "pn", b"pn"] # noqa: Y015
+ _HasFieldArgType: _TypeAlias = _typing.Literal["ciphertext", b"ciphertext", "version", b"version"] # noqa: Y015
def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ...
- _ClearFieldArgType: _TypeAlias = _typing.Literal["assignedLid", b"assignedLid", "latestLid", b"latestLid", "pn", b"pn"] # noqa: Y015
+ _ClearFieldArgType: _TypeAlias = _typing.Literal["ciphertext", b"ciphertext", "version", b"version"] # noqa: Y015
def ClearField(self, field_name: _ClearFieldArgType) -> None: ...
-Global___LIDMigrationMapping: _TypeAlias = LIDMigrationMapping # noqa: Y015
+Global___EncryptMekForDistributionResult: _TypeAlias = EncryptMekForDistributionResult # noqa: Y015
@_typing.final
-class LIDMigrationMappingSyncMessage(_message.Message):
+class EncryptMeksForDistributionFromTransportSenderInput(_message.Message):
DESCRIPTOR: _descriptor.Descriptor
- ENCODEDMAPPINGPAYLOAD_FIELD_NUMBER: _builtins.int
- encodedMappingPayload: _builtins.bytes
+ @_typing.final
+ class TransportSigningKP(_message.Message):
+ DESCRIPTOR: _descriptor.Descriptor
+
+ SK_FIELD_NUMBER: _builtins.int
+ PK_FIELD_NUMBER: _builtins.int
+ sk: _builtins.bytes
+ pk: _builtins.bytes
+ def __init__(
+ self,
+ *,
+ sk: _builtins.bytes | None = ...,
+ pk: _builtins.bytes | None = ...,
+ ) -> None: ...
+ _HasFieldArgType: _TypeAlias = _typing.Literal["pk", b"pk", "sk", b"sk"] # noqa: Y015
+ def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ...
+ _ClearFieldArgType: _TypeAlias = _typing.Literal["pk", b"pk", "sk", b"sk"] # noqa: Y015
+ def ClearField(self, field_name: _ClearFieldArgType) -> None: ...
+
+ MEK_FIELD_NUMBER: _builtins.int
+ TRANSPORTSIGNINGKP_FIELD_NUMBER: _builtins.int
+ RECIPIENTMAILBOXENCRYPTIONPKS_FIELD_NUMBER: _builtins.int
+ RECIPIENTEPOCHHEADS_FIELD_NUMBER: _builtins.int
+ CONF_FIELD_NUMBER: _builtins.int
+ @_builtins.property
+ def mek(self) -> Global___MekBundle: ...
+ @_builtins.property
+ def transportSigningKp(self) -> Global___EncryptMeksForDistributionFromTransportSenderInput.TransportSigningKP: ...
+ @_builtins.property
+ def recipientMailboxEncryptionPks(self) -> _containers.RepeatedScalarFieldContainer[_builtins.bytes]: ...
+ @_builtins.property
+ def recipientEpochHeads(self) -> _containers.RepeatedScalarFieldContainer[_builtins.bytes]: ...
+ @_builtins.property
+ def conf(self) -> Global___MinosClientConfig: ...
def __init__(
self,
*,
- encodedMappingPayload: _builtins.bytes | None = ...,
+ mek: Global___MekBundle | None = ...,
+ transportSigningKp: Global___EncryptMeksForDistributionFromTransportSenderInput.TransportSigningKP | None = ...,
+ recipientMailboxEncryptionPks: _abc.Iterable[_builtins.bytes] | None = ...,
+ recipientEpochHeads: _abc.Iterable[_builtins.bytes] | None = ...,
+ conf: Global___MinosClientConfig | None = ...,
) -> None: ...
- _HasFieldArgType: _TypeAlias = _typing.Literal["encodedMappingPayload", b"encodedMappingPayload"] # noqa: Y015
+ _HasFieldArgType: _TypeAlias = _typing.Literal["conf", b"conf", "mek", b"mek", "transportSigningKp", b"transportSigningKp"] # noqa: Y015
def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ...
- _ClearFieldArgType: _TypeAlias = _typing.Literal["encodedMappingPayload", b"encodedMappingPayload"] # noqa: Y015
+ _ClearFieldArgType: _TypeAlias = _typing.Literal["conf", b"conf", "mek", b"mek", "recipientEpochHeads", b"recipientEpochHeads", "recipientMailboxEncryptionPks", b"recipientMailboxEncryptionPks", "transportSigningKp", b"transportSigningKp"] # noqa: Y015
def ClearField(self, field_name: _ClearFieldArgType) -> None: ...
-Global___LIDMigrationMappingSyncMessage: _TypeAlias = LIDMigrationMappingSyncMessage # noqa: Y015
+Global___EncryptMeksForDistributionFromTransportSenderInput: _TypeAlias = EncryptMeksForDistributionFromTransportSenderInput # noqa: Y015
@_typing.final
-class LIDMigrationMappingSyncPayload(_message.Message):
+class EncryptMeksForDistributionFromTransportSenderResult(_message.Message):
DESCRIPTOR: _descriptor.Descriptor
- PNTOLIDMAPPINGS_FIELD_NUMBER: _builtins.int
- CHATDBMIGRATIONTIMESTAMP_FIELD_NUMBER: _builtins.int
- chatDbMigrationTimestamp: _builtins.int
+ ENCRYPTEDMEKS_FIELD_NUMBER: _builtins.int
+ EPHEMERALENCRYPTIONPK_FIELD_NUMBER: _builtins.int
+ SIGNINGPK_FIELD_NUMBER: _builtins.int
+ SIGNATURE_FIELD_NUMBER: _builtins.int
+ VERSION_FIELD_NUMBER: _builtins.int
+ ephemeralEncryptionPk: _builtins.bytes
+ signingPk: _builtins.bytes
+ signature: _builtins.bytes
+ version: _builtins.int
@_builtins.property
- def pnToLidMappings(self) -> _containers.RepeatedCompositeFieldContainer[Global___LIDMigrationMapping]: ...
+ def encryptedMeks(self) -> _containers.RepeatedScalarFieldContainer[_builtins.bytes]: ...
def __init__(
self,
*,
- pnToLidMappings: _abc.Iterable[Global___LIDMigrationMapping] | None = ...,
- chatDbMigrationTimestamp: _builtins.int | None = ...,
+ encryptedMeks: _abc.Iterable[_builtins.bytes] | None = ...,
+ ephemeralEncryptionPk: _builtins.bytes | None = ...,
+ signingPk: _builtins.bytes | None = ...,
+ signature: _builtins.bytes | None = ...,
+ version: _builtins.int | None = ...,
) -> None: ...
- _HasFieldArgType: _TypeAlias = _typing.Literal["chatDbMigrationTimestamp", b"chatDbMigrationTimestamp"] # noqa: Y015
+ _HasFieldArgType: _TypeAlias = _typing.Literal["ephemeralEncryptionPk", b"ephemeralEncryptionPk", "signature", b"signature", "signingPk", b"signingPk", "version", b"version"] # noqa: Y015
def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ...
- _ClearFieldArgType: _TypeAlias = _typing.Literal["chatDbMigrationTimestamp", b"chatDbMigrationTimestamp", "pnToLidMappings", b"pnToLidMappings"] # noqa: Y015
+ _ClearFieldArgType: _TypeAlias = _typing.Literal["encryptedMeks", b"encryptedMeks", "ephemeralEncryptionPk", b"ephemeralEncryptionPk", "signature", b"signature", "signingPk", b"signingPk", "version", b"version"] # noqa: Y015
def ClearField(self, field_name: _ClearFieldArgType) -> None: ...
-Global___LIDMigrationMappingSyncPayload: _TypeAlias = LIDMigrationMappingSyncPayload # noqa: Y015
+Global___EncryptMeksForDistributionFromTransportSenderResult: _TypeAlias = EncryptMeksForDistributionFromTransportSenderResult # noqa: Y015
@_typing.final
-class LegacyMessage(_message.Message):
+class EncryptMessageInput(_message.Message):
DESCRIPTOR: _descriptor.Descriptor
- EVENTRESPONSEMESSAGE_FIELD_NUMBER: _builtins.int
- POLLVOTE_FIELD_NUMBER: _builtins.int
- @_builtins.property
- def eventResponseMessage(self) -> Global___Message.EventResponseMessage: ...
- @_builtins.property
- def pollVote(self) -> Global___Message.PollVoteMessage: ...
+ EPOCHROOTKEY_FIELD_NUMBER: _builtins.int
+ MAILBOXROOTKEY_FIELD_NUMBER: _builtins.int
+ ORFCLIENTSTATE_FIELD_NUMBER: _builtins.int
+ EPOCHANONID_FIELD_NUMBER: _builtins.int
+ EPOCHID_FIELD_NUMBER: _builtins.int
+ THREADID_FIELD_NUMBER: _builtins.int
+ WACANONICALUSERFBID_FIELD_NUMBER: _builtins.int
+ TIMESTAMPMS_FIELD_NUMBER: _builtins.int
+ BACKUPID_FIELD_NUMBER: _builtins.int
+ PLAINTEXTPAYLOAD_FIELD_NUMBER: _builtins.int
+ STANZAID_FIELD_NUMBER: _builtins.int
+ epochRootKey: _builtins.bytes
+ mailboxRootKey: _builtins.bytes
+ orfClientState: _builtins.bytes
+ epochAnonId: _builtins.bytes
+ epochId: _builtins.int
+ threadId: _builtins.str
+ waCanonicalUserFbid: _builtins.int
+ timestampMs: _builtins.int
+ backupId: _builtins.int
+ plaintextPayload: _builtins.bytes
+ stanzaId: _builtins.str
def __init__(
self,
*,
- eventResponseMessage: Global___Message.EventResponseMessage | None = ...,
- pollVote: Global___Message.PollVoteMessage | None = ...,
+ epochRootKey: _builtins.bytes | None = ...,
+ mailboxRootKey: _builtins.bytes | None = ...,
+ orfClientState: _builtins.bytes | None = ...,
+ epochAnonId: _builtins.bytes | None = ...,
+ epochId: _builtins.int | None = ...,
+ threadId: _builtins.str | None = ...,
+ waCanonicalUserFbid: _builtins.int | None = ...,
+ timestampMs: _builtins.int | None = ...,
+ backupId: _builtins.int | None = ...,
+ plaintextPayload: _builtins.bytes | None = ...,
+ stanzaId: _builtins.str | None = ...,
) -> None: ...
- _HasFieldArgType: _TypeAlias = _typing.Literal["eventResponseMessage", b"eventResponseMessage", "pollVote", b"pollVote"] # noqa: Y015
+ _HasFieldArgType: _TypeAlias = _typing.Literal["backupId", b"backupId", "epochAnonId", b"epochAnonId", "epochId", b"epochId", "epochRootKey", b"epochRootKey", "mailboxRootKey", b"mailboxRootKey", "orfClientState", b"orfClientState", "plaintextPayload", b"plaintextPayload", "stanzaId", b"stanzaId", "threadId", b"threadId", "timestampMs", b"timestampMs", "waCanonicalUserFbid", b"waCanonicalUserFbid"] # noqa: Y015
def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ...
- _ClearFieldArgType: _TypeAlias = _typing.Literal["eventResponseMessage", b"eventResponseMessage", "pollVote", b"pollVote"] # noqa: Y015
+ _ClearFieldArgType: _TypeAlias = _typing.Literal["backupId", b"backupId", "epochAnonId", b"epochAnonId", "epochId", b"epochId", "epochRootKey", b"epochRootKey", "mailboxRootKey", b"mailboxRootKey", "orfClientState", b"orfClientState", "plaintextPayload", b"plaintextPayload", "stanzaId", b"stanzaId", "threadId", b"threadId", "timestampMs", b"timestampMs", "waCanonicalUserFbid", b"waCanonicalUserFbid"] # noqa: Y015
def ClearField(self, field_name: _ClearFieldArgType) -> None: ...
-Global___LegacyMessage: _TypeAlias = LegacyMessage # noqa: Y015
+Global___EncryptMessageInput: _TypeAlias = EncryptMessageInput # noqa: Y015
@_typing.final
-class LimitSharing(_message.Message):
+class EncryptMessageOutput(_message.Message):
DESCRIPTOR: _descriptor.Descriptor
- class _TriggerType:
- ValueType = _typing.NewType("ValueType", _builtins.int)
- V: _TypeAlias = ValueType # noqa: Y015
-
- class _TriggerTypeEnumTypeWrapper(_enum_type_wrapper._EnumTypeWrapper[LimitSharing._TriggerType.ValueType], _builtins.type):
- DESCRIPTOR: _descriptor.EnumDescriptor
- UNKNOWN: LimitSharing._TriggerType.ValueType # 0
- CHAT_SETTING: LimitSharing._TriggerType.ValueType # 1
- BIZ_SUPPORTS_FB_HOSTING: LimitSharing._TriggerType.ValueType # 2
- UNKNOWN_GROUP: LimitSharing._TriggerType.ValueType # 3
-
- class TriggerType(_TriggerType, metaclass=_TriggerTypeEnumTypeWrapper): ...
- UNKNOWN: LimitSharing.TriggerType.ValueType # 0
- CHAT_SETTING: LimitSharing.TriggerType.ValueType # 1
- BIZ_SUPPORTS_FB_HOSTING: LimitSharing.TriggerType.ValueType # 2
- UNKNOWN_GROUP: LimitSharing.TriggerType.ValueType # 3
-
- SHARINGLIMITED_FIELD_NUMBER: _builtins.int
- TRIGGER_FIELD_NUMBER: _builtins.int
- LIMITSHARINGSETTINGTIMESTAMP_FIELD_NUMBER: _builtins.int
- INITIATEDBYME_FIELD_NUMBER: _builtins.int
- sharingLimited: _builtins.bool
- trigger: Global___LimitSharing.TriggerType.ValueType
- limitSharingSettingTimestamp: _builtins.int
- initiatedByMe: _builtins.bool
+ ENCRYPTEDPROTOBUF_FIELD_NUMBER: _builtins.int
+ ORFTHREADID_FIELD_NUMBER: _builtins.int
+ VALUESECRETREF_FIELD_NUMBER: _builtins.int
+ OFFLINETHREADINGID_FIELD_NUMBER: _builtins.int
+ TIMESTAMPMS_FIELD_NUMBER: _builtins.int
+ ERROR_FIELD_NUMBER: _builtins.int
+ encryptedProtobuf: _builtins.bytes
+ orfThreadId: _builtins.bytes
+ valueSecretRef: _builtins.str
+ offlineThreadingId: _builtins.int
+ timestampMs: _builtins.int
+ error: _builtins.str
def __init__(
self,
*,
- sharingLimited: _builtins.bool | None = ...,
- trigger: Global___LimitSharing.TriggerType.ValueType | None = ...,
- limitSharingSettingTimestamp: _builtins.int | None = ...,
- initiatedByMe: _builtins.bool | None = ...,
+ encryptedProtobuf: _builtins.bytes | None = ...,
+ orfThreadId: _builtins.bytes | None = ...,
+ valueSecretRef: _builtins.str | None = ...,
+ offlineThreadingId: _builtins.int | None = ...,
+ timestampMs: _builtins.int | None = ...,
+ error: _builtins.str | None = ...,
) -> None: ...
- _HasFieldArgType: _TypeAlias = _typing.Literal["initiatedByMe", b"initiatedByMe", "limitSharingSettingTimestamp", b"limitSharingSettingTimestamp", "sharingLimited", b"sharingLimited", "trigger", b"trigger"] # noqa: Y015
+ _HasFieldArgType: _TypeAlias = _typing.Literal["encryptedProtobuf", b"encryptedProtobuf", "error", b"error", "offlineThreadingId", b"offlineThreadingId", "orfThreadId", b"orfThreadId", "timestampMs", b"timestampMs", "valueSecretRef", b"valueSecretRef"] # noqa: Y015
def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ...
- _ClearFieldArgType: _TypeAlias = _typing.Literal["initiatedByMe", b"initiatedByMe", "limitSharingSettingTimestamp", b"limitSharingSettingTimestamp", "sharingLimited", b"sharingLimited", "trigger", b"trigger"] # noqa: Y015
+ _ClearFieldArgType: _TypeAlias = _typing.Literal["encryptedProtobuf", b"encryptedProtobuf", "error", b"error", "offlineThreadingId", b"offlineThreadingId", "orfThreadId", b"orfThreadId", "timestampMs", b"timestampMs", "valueSecretRef", b"valueSecretRef"] # noqa: Y015
def ClearField(self, field_name: _ClearFieldArgType) -> None: ...
-Global___LimitSharing: _TypeAlias = LimitSharing # noqa: Y015
+Global___EncryptMessageOutput: _TypeAlias = EncryptMessageOutput # noqa: Y015
@_typing.final
-class LocalizedName(_message.Message):
+class EncryptedPairingRequest(_message.Message):
DESCRIPTOR: _descriptor.Descriptor
- LG_FIELD_NUMBER: _builtins.int
- LC_FIELD_NUMBER: _builtins.int
- VERIFIEDNAME_FIELD_NUMBER: _builtins.int
- lg: _builtins.str
- lc: _builtins.str
- verifiedName: _builtins.str
+ ENCRYPTEDPAYLOAD_FIELD_NUMBER: _builtins.int
+ IV_FIELD_NUMBER: _builtins.int
+ encryptedPayload: _builtins.bytes
+ iv: _builtins.bytes
def __init__(
self,
*,
- lg: _builtins.str | None = ...,
- lc: _builtins.str | None = ...,
- verifiedName: _builtins.str | None = ...,
+ encryptedPayload: _builtins.bytes | None = ...,
+ iv: _builtins.bytes | None = ...,
) -> None: ...
- _HasFieldArgType: _TypeAlias = _typing.Literal["lc", b"lc", "lg", b"lg", "verifiedName", b"verifiedName"] # noqa: Y015
+ _HasFieldArgType: _TypeAlias = _typing.Literal["encryptedPayload", b"encryptedPayload", "iv", b"iv"] # noqa: Y015
def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ...
- _ClearFieldArgType: _TypeAlias = _typing.Literal["lc", b"lc", "lg", b"lg", "verifiedName", b"verifiedName"] # noqa: Y015
+ _ClearFieldArgType: _TypeAlias = _typing.Literal["encryptedPayload", b"encryptedPayload", "iv", b"iv"] # noqa: Y015
def ClearField(self, field_name: _ClearFieldArgType) -> None: ...
-Global___LocalizedName: _TypeAlias = LocalizedName # noqa: Y015
+Global___EncryptedPairingRequest: _TypeAlias = EncryptedPairingRequest # noqa: Y015
@_typing.final
-class Location(_message.Message):
+class EncryptedSecretValuesOutput(_message.Message):
DESCRIPTOR: _descriptor.Descriptor
- DEGREESLATITUDE_FIELD_NUMBER: _builtins.int
- DEGREESLONGITUDE_FIELD_NUMBER: _builtins.int
- NAME_FIELD_NUMBER: _builtins.int
- degreesLatitude: _builtins.float
- degreesLongitude: _builtins.float
- name: _builtins.str
+ ENCRYPTEDDEVICEPRIVATEKEY_FIELD_NUMBER: _builtins.int
+ ENCRYPTEDOBLIVIOUSVALIDATIONTOKENBLOB_FIELD_NUMBER: _builtins.int
+ ENCRYPTEDEPOCHSTORAGEPRIVATEKEY_FIELD_NUMBER: _builtins.int
+ ENCRYPTEDOCMFCLIENTSTATE_FIELD_NUMBER: _builtins.int
+ ENCRYPTEDORFCLIENTSTATEV2_FIELD_NUMBER: _builtins.int
+ ENCRYPTEDMAILBOXROOTKEYBLOB_FIELD_NUMBER: _builtins.int
+ ENCRYPTEDEPOCHANONID_FIELD_NUMBER: _builtins.int
+ ENCRYPTEDEPOCHROOTKEY_FIELD_NUMBER: _builtins.int
+ encryptedDevicePrivateKey: _builtins.bytes
+ encryptedObliviousValidationTokenBlob: _builtins.bytes
+ encryptedEpochStoragePrivateKey: _builtins.bytes
+ encryptedOcmfClientState: _builtins.bytes
+ encryptedOrfClientStateV2: _builtins.bytes
+ encryptedMailboxRootKeyBlob: _builtins.bytes
+ encryptedEpochAnonId: _builtins.bytes
+ encryptedEpochRootKey: _builtins.bytes
def __init__(
self,
*,
- degreesLatitude: _builtins.float | None = ...,
- degreesLongitude: _builtins.float | None = ...,
- name: _builtins.str | None = ...,
+ encryptedDevicePrivateKey: _builtins.bytes | None = ...,
+ encryptedObliviousValidationTokenBlob: _builtins.bytes | None = ...,
+ encryptedEpochStoragePrivateKey: _builtins.bytes | None = ...,
+ encryptedOcmfClientState: _builtins.bytes | None = ...,
+ encryptedOrfClientStateV2: _builtins.bytes | None = ...,
+ encryptedMailboxRootKeyBlob: _builtins.bytes | None = ...,
+ encryptedEpochAnonId: _builtins.bytes | None = ...,
+ encryptedEpochRootKey: _builtins.bytes | None = ...,
) -> None: ...
- _HasFieldArgType: _TypeAlias = _typing.Literal["degreesLatitude", b"degreesLatitude", "degreesLongitude", b"degreesLongitude", "name", b"name"] # noqa: Y015
+ _HasFieldArgType: _TypeAlias = _typing.Literal["encryptedDevicePrivateKey", b"encryptedDevicePrivateKey", "encryptedEpochAnonId", b"encryptedEpochAnonId", "encryptedEpochRootKey", b"encryptedEpochRootKey", "encryptedEpochStoragePrivateKey", b"encryptedEpochStoragePrivateKey", "encryptedMailboxRootKeyBlob", b"encryptedMailboxRootKeyBlob", "encryptedObliviousValidationTokenBlob", b"encryptedObliviousValidationTokenBlob", "encryptedOcmfClientState", b"encryptedOcmfClientState", "encryptedOrfClientStateV2", b"encryptedOrfClientStateV2"] # noqa: Y015
def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ...
- _ClearFieldArgType: _TypeAlias = _typing.Literal["degreesLatitude", b"degreesLatitude", "degreesLongitude", b"degreesLongitude", "name", b"name"] # noqa: Y015
+ _ClearFieldArgType: _TypeAlias = _typing.Literal["encryptedDevicePrivateKey", b"encryptedDevicePrivateKey", "encryptedEpochAnonId", b"encryptedEpochAnonId", "encryptedEpochRootKey", b"encryptedEpochRootKey", "encryptedEpochStoragePrivateKey", b"encryptedEpochStoragePrivateKey", "encryptedMailboxRootKeyBlob", b"encryptedMailboxRootKeyBlob", "encryptedObliviousValidationTokenBlob", b"encryptedObliviousValidationTokenBlob", "encryptedOcmfClientState", b"encryptedOcmfClientState", "encryptedOrfClientStateV2", b"encryptedOrfClientStateV2"] # noqa: Y015
def ClearField(self, field_name: _ClearFieldArgType) -> None: ...
-Global___Location: _TypeAlias = Location # noqa: Y015
+Global___EncryptedSecretValuesOutput: _TypeAlias = EncryptedSecretValuesOutput # noqa: Y015
@_typing.final
-class MediaData(_message.Message):
+class EphemeralSetting(_message.Message):
DESCRIPTOR: _descriptor.Descriptor
- LOCALPATH_FIELD_NUMBER: _builtins.int
- localPath: _builtins.str
+ DURATION_FIELD_NUMBER: _builtins.int
+ TIMESTAMP_FIELD_NUMBER: _builtins.int
+ duration: _builtins.int
+ timestamp: _builtins.int
def __init__(
self,
*,
- localPath: _builtins.str | None = ...,
+ duration: _builtins.int | None = ...,
+ timestamp: _builtins.int | None = ...,
) -> None: ...
- _HasFieldArgType: _TypeAlias = _typing.Literal["localPath", b"localPath"] # noqa: Y015
+ _HasFieldArgType: _TypeAlias = _typing.Literal["duration", b"duration", "timestamp", b"timestamp"] # noqa: Y015
def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ...
- _ClearFieldArgType: _TypeAlias = _typing.Literal["localPath", b"localPath"] # noqa: Y015
+ _ClearFieldArgType: _TypeAlias = _typing.Literal["duration", b"duration", "timestamp", b"timestamp"] # noqa: Y015
def ClearField(self, field_name: _ClearFieldArgType) -> None: ...
-Global___MediaData: _TypeAlias = MediaData # noqa: Y015
+Global___EphemeralSetting: _TypeAlias = EphemeralSetting # noqa: Y015
@_typing.final
-class MediaDomainInfo(_message.Message):
+class Epoch0Output(_message.Message):
DESCRIPTOR: _descriptor.Descriptor
- MEDIAKEYDOMAIN_FIELD_NUMBER: _builtins.int
- E2EEMEDIAKEY_FIELD_NUMBER: _builtins.int
- mediaKeyDomain: Global___MediaKeyDomain.ValueType
- e2EeMediaKey: _builtins.bytes
+ EPOCHFBID_FIELD_NUMBER: _builtins.int
+ EPOCHANONID_FIELD_NUMBER: _builtins.int
+ EPOCHDATA_FIELD_NUMBER: _builtins.int
+ WRAPPEDROOTKEYFORSELF_FIELD_NUMBER: _builtins.int
+ EPOCHSIGNATURE_FIELD_NUMBER: _builtins.int
+ EPOCHROOTKEYFINGERPRINT_FIELD_NUMBER: _builtins.int
+ EPOCHROOTKEY_FIELD_NUMBER: _builtins.int
+ epochFbid: _builtins.int
+ epochAnonId: _builtins.bytes
+ epochData: _builtins.bytes
+ wrappedRootKeyForSelf: _builtins.bytes
+ epochSignature: _builtins.bytes
+ epochRootKeyFingerprint: _builtins.bytes
+ epochRootKey: _builtins.bytes
def __init__(
self,
*,
- mediaKeyDomain: Global___MediaKeyDomain.ValueType | None = ...,
- e2EeMediaKey: _builtins.bytes | None = ...,
+ epochFbid: _builtins.int | None = ...,
+ epochAnonId: _builtins.bytes | None = ...,
+ epochData: _builtins.bytes | None = ...,
+ wrappedRootKeyForSelf: _builtins.bytes | None = ...,
+ epochSignature: _builtins.bytes | None = ...,
+ epochRootKeyFingerprint: _builtins.bytes | None = ...,
+ epochRootKey: _builtins.bytes | None = ...,
) -> None: ...
- _HasFieldArgType: _TypeAlias = _typing.Literal["e2EeMediaKey", b"e2EeMediaKey", "mediaKeyDomain", b"mediaKeyDomain"] # noqa: Y015
+ _HasFieldArgType: _TypeAlias = _typing.Literal["epochAnonId", b"epochAnonId", "epochData", b"epochData", "epochFbid", b"epochFbid", "epochRootKey", b"epochRootKey", "epochRootKeyFingerprint", b"epochRootKeyFingerprint", "epochSignature", b"epochSignature", "wrappedRootKeyForSelf", b"wrappedRootKeyForSelf"] # noqa: Y015
def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ...
- _ClearFieldArgType: _TypeAlias = _typing.Literal["e2EeMediaKey", b"e2EeMediaKey", "mediaKeyDomain", b"mediaKeyDomain"] # noqa: Y015
+ _ClearFieldArgType: _TypeAlias = _typing.Literal["epochAnonId", b"epochAnonId", "epochData", b"epochData", "epochFbid", b"epochFbid", "epochRootKey", b"epochRootKey", "epochRootKeyFingerprint", b"epochRootKeyFingerprint", "epochSignature", b"epochSignature", "wrappedRootKeyForSelf", b"wrappedRootKeyForSelf"] # noqa: Y015
def ClearField(self, field_name: _ClearFieldArgType) -> None: ...
-Global___MediaDomainInfo: _TypeAlias = MediaDomainInfo # noqa: Y015
+Global___Epoch0Output: _TypeAlias = Epoch0Output # noqa: Y015
@_typing.final
-class MediaEntry(_message.Message):
+class EpochPublicData(_message.Message):
DESCRIPTOR: _descriptor.Descriptor
- @_typing.final
- class DownloadableThumbnail(_message.Message):
- DESCRIPTOR: _descriptor.Descriptor
-
- FILESHA256_FIELD_NUMBER: _builtins.int
- FILEENCSHA256_FIELD_NUMBER: _builtins.int
- DIRECTPATH_FIELD_NUMBER: _builtins.int
- MEDIAKEY_FIELD_NUMBER: _builtins.int
- MEDIAKEYTIMESTAMP_FIELD_NUMBER: _builtins.int
- OBJECTID_FIELD_NUMBER: _builtins.int
- fileSha256: _builtins.bytes
- fileEncSha256: _builtins.bytes
- directPath: _builtins.str
- mediaKey: _builtins.bytes
- mediaKeyTimestamp: _builtins.int
- objectId: _builtins.str
- def __init__(
- self,
- *,
- fileSha256: _builtins.bytes | None = ...,
- fileEncSha256: _builtins.bytes | None = ...,
- directPath: _builtins.str | None = ...,
- mediaKey: _builtins.bytes | None = ...,
- mediaKeyTimestamp: _builtins.int | None = ...,
- objectId: _builtins.str | None = ...,
- ) -> None: ...
- _HasFieldArgType: _TypeAlias = _typing.Literal["directPath", b"directPath", "fileEncSha256", b"fileEncSha256", "fileSha256", b"fileSha256", "mediaKey", b"mediaKey", "mediaKeyTimestamp", b"mediaKeyTimestamp", "objectId", b"objectId"] # noqa: Y015
- def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ...
- _ClearFieldArgType: _TypeAlias = _typing.Literal["directPath", b"directPath", "fileEncSha256", b"fileEncSha256", "fileSha256", b"fileSha256", "mediaKey", b"mediaKey", "mediaKeyTimestamp", b"mediaKeyTimestamp", "objectId", b"objectId"] # noqa: Y015
- def ClearField(self, field_name: _ClearFieldArgType) -> None: ...
-
- @_typing.final
- class ProgressiveJpegDetails(_message.Message):
- DESCRIPTOR: _descriptor.Descriptor
-
- SCANLENGTHS_FIELD_NUMBER: _builtins.int
- SIDECAR_FIELD_NUMBER: _builtins.int
- sidecar: _builtins.bytes
- @_builtins.property
- def scanLengths(self) -> _containers.RepeatedScalarFieldContainer[_builtins.int]: ...
- def __init__(
- self,
- *,
- scanLengths: _abc.Iterable[_builtins.int] | None = ...,
- sidecar: _builtins.bytes | None = ...,
- ) -> None: ...
- _HasFieldArgType: _TypeAlias = _typing.Literal["sidecar", b"sidecar"] # noqa: Y015
- def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ...
- _ClearFieldArgType: _TypeAlias = _typing.Literal["scanLengths", b"scanLengths", "sidecar", b"sidecar"] # noqa: Y015
- def ClearField(self, field_name: _ClearFieldArgType) -> None: ...
-
- FILESHA256_FIELD_NUMBER: _builtins.int
- MEDIAKEY_FIELD_NUMBER: _builtins.int
- FILEENCSHA256_FIELD_NUMBER: _builtins.int
- DIRECTPATH_FIELD_NUMBER: _builtins.int
- MEDIAKEYTIMESTAMP_FIELD_NUMBER: _builtins.int
- SERVERMEDIATYPE_FIELD_NUMBER: _builtins.int
- UPLOADTOKEN_FIELD_NUMBER: _builtins.int
- VALIDATEDTIMESTAMP_FIELD_NUMBER: _builtins.int
- SIDECAR_FIELD_NUMBER: _builtins.int
- OBJECTID_FIELD_NUMBER: _builtins.int
- FBID_FIELD_NUMBER: _builtins.int
- DOWNLOADABLETHUMBNAIL_FIELD_NUMBER: _builtins.int
- HANDLE_FIELD_NUMBER: _builtins.int
- FILENAME_FIELD_NUMBER: _builtins.int
- PROGRESSIVEJPEGDETAILS_FIELD_NUMBER: _builtins.int
- SIZE_FIELD_NUMBER: _builtins.int
- LASTDOWNLOADATTEMPTTIMESTAMP_FIELD_NUMBER: _builtins.int
- fileSha256: _builtins.bytes
- mediaKey: _builtins.bytes
- fileEncSha256: _builtins.bytes
- directPath: _builtins.str
- mediaKeyTimestamp: _builtins.int
- serverMediaType: _builtins.str
- uploadToken: _builtins.bytes
- validatedTimestamp: _builtins.bytes
- sidecar: _builtins.bytes
- objectId: _builtins.str
- fbid: _builtins.str
- handle: _builtins.str
- filename: _builtins.str
- size: _builtins.int
- lastDownloadAttemptTimestamp: _builtins.int
- @_builtins.property
- def downloadableThumbnail(self) -> Global___MediaEntry.DownloadableThumbnail: ...
- @_builtins.property
- def progressiveJpegDetails(self) -> Global___MediaEntry.ProgressiveJpegDetails: ...
+ EPOCHNUMBER_FIELD_NUMBER: _builtins.int
+ USERFBID_FIELD_NUMBER: _builtins.int
+ MAILBOXSIGNINGPK_FIELD_NUMBER: _builtins.int
+ MAILBOXENCRYPTIONPK_FIELD_NUMBER: _builtins.int
+ MAILBOXAUTHPK_FIELD_NUMBER: _builtins.int
+ PREVIOUSEPOCHHEAD_FIELD_NUMBER: _builtins.int
+ epochNumber: _builtins.int
+ userFbid: _builtins.str
+ mailboxSigningPk: _builtins.bytes
+ mailboxEncryptionPk: _builtins.bytes
+ mailboxAuthPk: _builtins.bytes
+ previousEpochHead: _builtins.bytes
def __init__(
self,
*,
- fileSha256: _builtins.bytes | None = ...,
- mediaKey: _builtins.bytes | None = ...,
- fileEncSha256: _builtins.bytes | None = ...,
- directPath: _builtins.str | None = ...,
- mediaKeyTimestamp: _builtins.int | None = ...,
- serverMediaType: _builtins.str | None = ...,
- uploadToken: _builtins.bytes | None = ...,
- validatedTimestamp: _builtins.bytes | None = ...,
- sidecar: _builtins.bytes | None = ...,
- objectId: _builtins.str | None = ...,
- fbid: _builtins.str | None = ...,
- downloadableThumbnail: Global___MediaEntry.DownloadableThumbnail | None = ...,
- handle: _builtins.str | None = ...,
- filename: _builtins.str | None = ...,
- progressiveJpegDetails: Global___MediaEntry.ProgressiveJpegDetails | None = ...,
- size: _builtins.int | None = ...,
- lastDownloadAttemptTimestamp: _builtins.int | None = ...,
+ epochNumber: _builtins.int | None = ...,
+ userFbid: _builtins.str | None = ...,
+ mailboxSigningPk: _builtins.bytes | None = ...,
+ mailboxEncryptionPk: _builtins.bytes | None = ...,
+ mailboxAuthPk: _builtins.bytes | None = ...,
+ previousEpochHead: _builtins.bytes | None = ...,
) -> None: ...
- _HasFieldArgType: _TypeAlias = _typing.Literal["directPath", b"directPath", "downloadableThumbnail", b"downloadableThumbnail", "fbid", b"fbid", "fileEncSha256", b"fileEncSha256", "fileSha256", b"fileSha256", "filename", b"filename", "handle", b"handle", "lastDownloadAttemptTimestamp", b"lastDownloadAttemptTimestamp", "mediaKey", b"mediaKey", "mediaKeyTimestamp", b"mediaKeyTimestamp", "objectId", b"objectId", "progressiveJpegDetails", b"progressiveJpegDetails", "serverMediaType", b"serverMediaType", "sidecar", b"sidecar", "size", b"size", "uploadToken", b"uploadToken", "validatedTimestamp", b"validatedTimestamp"] # noqa: Y015
+ _HasFieldArgType: _TypeAlias = _typing.Literal["epochNumber", b"epochNumber", "mailboxAuthPk", b"mailboxAuthPk", "mailboxEncryptionPk", b"mailboxEncryptionPk", "mailboxSigningPk", b"mailboxSigningPk", "previousEpochHead", b"previousEpochHead", "userFbid", b"userFbid"] # noqa: Y015
def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ...
- _ClearFieldArgType: _TypeAlias = _typing.Literal["directPath", b"directPath", "downloadableThumbnail", b"downloadableThumbnail", "fbid", b"fbid", "fileEncSha256", b"fileEncSha256", "fileSha256", b"fileSha256", "filename", b"filename", "handle", b"handle", "lastDownloadAttemptTimestamp", b"lastDownloadAttemptTimestamp", "mediaKey", b"mediaKey", "mediaKeyTimestamp", b"mediaKeyTimestamp", "objectId", b"objectId", "progressiveJpegDetails", b"progressiveJpegDetails", "serverMediaType", b"serverMediaType", "sidecar", b"sidecar", "size", b"size", "uploadToken", b"uploadToken", "validatedTimestamp", b"validatedTimestamp"] # noqa: Y015
+ _ClearFieldArgType: _TypeAlias = _typing.Literal["epochNumber", b"epochNumber", "mailboxAuthPk", b"mailboxAuthPk", "mailboxEncryptionPk", b"mailboxEncryptionPk", "mailboxSigningPk", b"mailboxSigningPk", "previousEpochHead", b"previousEpochHead", "userFbid", b"userFbid"] # noqa: Y015
def ClearField(self, field_name: _ClearFieldArgType) -> None: ...
-Global___MediaEntry: _TypeAlias = MediaEntry # noqa: Y015
+Global___EpochPublicData: _TypeAlias = EpochPublicData # noqa: Y015
@_typing.final
-class MediaNotifyMessage(_message.Message):
+class EpochSignatures(_message.Message):
DESCRIPTOR: _descriptor.Descriptor
- EXPRESSPATHURL_FIELD_NUMBER: _builtins.int
- FILEENCSHA256_FIELD_NUMBER: _builtins.int
- FILELENGTH_FIELD_NUMBER: _builtins.int
- expressPathUrl: _builtins.str
- fileEncSha256: _builtins.bytes
- fileLength: _builtins.int
+ SELFSIGNATURE_FIELD_NUMBER: _builtins.int
+ PREVSIGNATURE_FIELD_NUMBER: _builtins.int
+ selfSignature: _builtins.bytes
+ prevSignature: _builtins.bytes
def __init__(
self,
*,
- expressPathUrl: _builtins.str | None = ...,
- fileEncSha256: _builtins.bytes | None = ...,
- fileLength: _builtins.int | None = ...,
+ selfSignature: _builtins.bytes | None = ...,
+ prevSignature: _builtins.bytes | None = ...,
) -> None: ...
- _HasFieldArgType: _TypeAlias = _typing.Literal["expressPathUrl", b"expressPathUrl", "fileEncSha256", b"fileEncSha256", "fileLength", b"fileLength"] # noqa: Y015
+ _HasFieldArgType: _TypeAlias = _typing.Literal["prevSignature", b"prevSignature", "selfSignature", b"selfSignature"] # noqa: Y015
def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ...
- _ClearFieldArgType: _TypeAlias = _typing.Literal["expressPathUrl", b"expressPathUrl", "fileEncSha256", b"fileEncSha256", "fileLength", b"fileLength"] # noqa: Y015
+ _ClearFieldArgType: _TypeAlias = _typing.Literal["prevSignature", b"prevSignature", "selfSignature", b"selfSignature"] # noqa: Y015
def ClearField(self, field_name: _ClearFieldArgType) -> None: ...
-Global___MediaNotifyMessage: _TypeAlias = MediaNotifyMessage # noqa: Y015
+Global___EpochSignatures: _TypeAlias = EpochSignatures # noqa: Y015
@_typing.final
-class MediaRetryNotification(_message.Message):
+class EventAdditionalMetadata(_message.Message):
DESCRIPTOR: _descriptor.Descriptor
- class _ResultType:
- ValueType = _typing.NewType("ValueType", _builtins.int)
- V: _TypeAlias = ValueType # noqa: Y015
-
- class _ResultTypeEnumTypeWrapper(_enum_type_wrapper._EnumTypeWrapper[MediaRetryNotification._ResultType.ValueType], _builtins.type):
- DESCRIPTOR: _descriptor.EnumDescriptor
- GENERAL_ERROR: MediaRetryNotification._ResultType.ValueType # 0
- SUCCESS: MediaRetryNotification._ResultType.ValueType # 1
- NOT_FOUND: MediaRetryNotification._ResultType.ValueType # 2
- DECRYPTION_ERROR: MediaRetryNotification._ResultType.ValueType # 3
-
- class ResultType(_ResultType, metaclass=_ResultTypeEnumTypeWrapper): ...
- GENERAL_ERROR: MediaRetryNotification.ResultType.ValueType # 0
- SUCCESS: MediaRetryNotification.ResultType.ValueType # 1
- NOT_FOUND: MediaRetryNotification.ResultType.ValueType # 2
- DECRYPTION_ERROR: MediaRetryNotification.ResultType.ValueType # 3
-
- STANZAID_FIELD_NUMBER: _builtins.int
- DIRECTPATH_FIELD_NUMBER: _builtins.int
- RESULT_FIELD_NUMBER: _builtins.int
- MESSAGESECRET_FIELD_NUMBER: _builtins.int
- stanzaId: _builtins.str
- directPath: _builtins.str
- result: Global___MediaRetryNotification.ResultType.ValueType
- messageSecret: _builtins.bytes
+ ISSTALE_FIELD_NUMBER: _builtins.int
+ isStale: _builtins.bool
def __init__(
self,
*,
- stanzaId: _builtins.str | None = ...,
- directPath: _builtins.str | None = ...,
- result: Global___MediaRetryNotification.ResultType.ValueType | None = ...,
- messageSecret: _builtins.bytes | None = ...,
+ isStale: _builtins.bool | None = ...,
) -> None: ...
- _HasFieldArgType: _TypeAlias = _typing.Literal["directPath", b"directPath", "messageSecret", b"messageSecret", "result", b"result", "stanzaId", b"stanzaId"] # noqa: Y015
+ _HasFieldArgType: _TypeAlias = _typing.Literal["isStale", b"isStale"] # noqa: Y015
def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ...
- _ClearFieldArgType: _TypeAlias = _typing.Literal["directPath", b"directPath", "messageSecret", b"messageSecret", "result", b"result", "stanzaId", b"stanzaId"] # noqa: Y015
+ _ClearFieldArgType: _TypeAlias = _typing.Literal["isStale", b"isStale"] # noqa: Y015
def ClearField(self, field_name: _ClearFieldArgType) -> None: ...
-Global___MediaRetryNotification: _TypeAlias = MediaRetryNotification # noqa: Y015
+Global___EventAdditionalMetadata: _TypeAlias = EventAdditionalMetadata # noqa: Y015
@_typing.final
-class MemberLabel(_message.Message):
+class EventResponse(_message.Message):
DESCRIPTOR: _descriptor.Descriptor
- LABEL_FIELD_NUMBER: _builtins.int
- LABELTIMESTAMP_FIELD_NUMBER: _builtins.int
- label: _builtins.str
- labelTimestamp: _builtins.int
+ EVENTRESPONSEMESSAGEKEY_FIELD_NUMBER: _builtins.int
+ TIMESTAMPMS_FIELD_NUMBER: _builtins.int
+ EVENTRESPONSEMESSAGE_FIELD_NUMBER: _builtins.int
+ UNREAD_FIELD_NUMBER: _builtins.int
+ timestampMs: _builtins.int
+ unread: _builtins.bool
+ @_builtins.property
+ def eventResponseMessageKey(self) -> Global___MessageKey: ...
+ @_builtins.property
+ def eventResponseMessage(self) -> Global___Message.EventResponseMessage: ...
def __init__(
self,
*,
- label: _builtins.str | None = ...,
- labelTimestamp: _builtins.int | None = ...,
+ eventResponseMessageKey: Global___MessageKey | None = ...,
+ timestampMs: _builtins.int | None = ...,
+ eventResponseMessage: Global___Message.EventResponseMessage | None = ...,
+ unread: _builtins.bool | None = ...,
) -> None: ...
- _HasFieldArgType: _TypeAlias = _typing.Literal["label", b"label", "labelTimestamp", b"labelTimestamp"] # noqa: Y015
+ _HasFieldArgType: _TypeAlias = _typing.Literal["eventResponseMessage", b"eventResponseMessage", "eventResponseMessageKey", b"eventResponseMessageKey", "timestampMs", b"timestampMs", "unread", b"unread"] # noqa: Y015
def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ...
- _ClearFieldArgType: _TypeAlias = _typing.Literal["label", b"label", "labelTimestamp", b"labelTimestamp"] # noqa: Y015
+ _ClearFieldArgType: _TypeAlias = _typing.Literal["eventResponseMessage", b"eventResponseMessage", "eventResponseMessageKey", b"eventResponseMessageKey", "timestampMs", b"timestampMs", "unread", b"unread"] # noqa: Y015
def ClearField(self, field_name: _ClearFieldArgType) -> None: ...
-Global___MemberLabel: _TypeAlias = MemberLabel # noqa: Y015
+Global___EventResponse: _TypeAlias = EventResponse # noqa: Y015
@_typing.final
-class Mention(_message.Message):
+class ExitCode(_message.Message):
DESCRIPTOR: _descriptor.Descriptor
- MENTIONTYPE_FIELD_NUMBER: _builtins.int
- MENTIONEDJID_FIELD_NUMBER: _builtins.int
- OFFSET_FIELD_NUMBER: _builtins.int
- LENGTH_FIELD_NUMBER: _builtins.int
- mentionType: Global___MENTION_MENTION_TYPE.ValueType
- mentionedJid: _builtins.str
- offset: _builtins.int
- length: _builtins.int
+ CODE_FIELD_NUMBER: _builtins.int
+ TEXT_FIELD_NUMBER: _builtins.int
+ code: _builtins.int
+ text: _builtins.str
def __init__(
self,
*,
- mentionType: Global___MENTION_MENTION_TYPE.ValueType | None = ...,
- mentionedJid: _builtins.str | None = ...,
- offset: _builtins.int | None = ...,
- length: _builtins.int | None = ...,
+ code: _builtins.int | None = ...,
+ text: _builtins.str | None = ...,
) -> None: ...
- _HasFieldArgType: _TypeAlias = _typing.Literal["length", b"length", "mentionType", b"mentionType", "mentionedJid", b"mentionedJid", "offset", b"offset"] # noqa: Y015
+ _HasFieldArgType: _TypeAlias = _typing.Literal["code", b"code", "text", b"text"] # noqa: Y015
def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ...
- _ClearFieldArgType: _TypeAlias = _typing.Literal["length", b"length", "mentionType", b"mentionType", "mentionedJid", b"mentionedJid", "offset", b"offset"] # noqa: Y015
+ _ClearFieldArgType: _TypeAlias = _typing.Literal["code", b"code", "text", b"text"] # noqa: Y015
def ClearField(self, field_name: _ClearFieldArgType) -> None: ...
-Global___Mention: _TypeAlias = Mention # noqa: Y015
+Global___ExitCode: _TypeAlias = ExitCode # noqa: Y015
@_typing.final
-class Message(_message.Message):
+class ExtendedContentMessage(_message.Message):
DESCRIPTOR: _descriptor.Descriptor
- class _HistorySyncType:
- ValueType = _typing.NewType("ValueType", _builtins.int)
- V: _TypeAlias = ValueType # noqa: Y015
-
- class _HistorySyncTypeEnumTypeWrapper(_enum_type_wrapper._EnumTypeWrapper[Message._HistorySyncType.ValueType], _builtins.type):
- DESCRIPTOR: _descriptor.EnumDescriptor
- INITIAL_BOOTSTRAP: Message._HistorySyncType.ValueType # 0
- INITIAL_STATUS_V3: Message._HistorySyncType.ValueType # 1
- FULL: Message._HistorySyncType.ValueType # 2
- RECENT: Message._HistorySyncType.ValueType # 3
- PUSH_NAME: Message._HistorySyncType.ValueType # 4
- NON_BLOCKING_DATA: Message._HistorySyncType.ValueType # 5
- ON_DEMAND: Message._HistorySyncType.ValueType # 6
- NO_HISTORY: Message._HistorySyncType.ValueType # 7
- MESSAGE_ACCESS_STATUS: Message._HistorySyncType.ValueType # 8
-
- class HistorySyncType(_HistorySyncType, metaclass=_HistorySyncTypeEnumTypeWrapper): ...
- INITIAL_BOOTSTRAP: Message.HistorySyncType.ValueType # 0
- INITIAL_STATUS_V3: Message.HistorySyncType.ValueType # 1
- FULL: Message.HistorySyncType.ValueType # 2
- RECENT: Message.HistorySyncType.ValueType # 3
- PUSH_NAME: Message.HistorySyncType.ValueType # 4
- NON_BLOCKING_DATA: Message.HistorySyncType.ValueType # 5
- ON_DEMAND: Message.HistorySyncType.ValueType # 6
- NO_HISTORY: Message.HistorySyncType.ValueType # 7
- MESSAGE_ACCESS_STATUS: Message.HistorySyncType.ValueType # 8
-
- class _InsightDeliveryState:
- ValueType = _typing.NewType("ValueType", _builtins.int)
- V: _TypeAlias = ValueType # noqa: Y015
-
- class _InsightDeliveryStateEnumTypeWrapper(_enum_type_wrapper._EnumTypeWrapper[Message._InsightDeliveryState.ValueType], _builtins.type):
- DESCRIPTOR: _descriptor.EnumDescriptor
- SENT: Message._InsightDeliveryState.ValueType # 0
- DELIVERED: Message._InsightDeliveryState.ValueType # 1
- READ: Message._InsightDeliveryState.ValueType # 2
- REPLIED: Message._InsightDeliveryState.ValueType # 3
- QUICK_REPLIED: Message._InsightDeliveryState.ValueType # 4
-
- class InsightDeliveryState(_InsightDeliveryState, metaclass=_InsightDeliveryStateEnumTypeWrapper): ...
- SENT: Message.InsightDeliveryState.ValueType # 0
- DELIVERED: Message.InsightDeliveryState.ValueType # 1
- READ: Message.InsightDeliveryState.ValueType # 2
- REPLIED: Message.InsightDeliveryState.ValueType # 3
- QUICK_REPLIED: Message.InsightDeliveryState.ValueType # 4
-
- class _PeerDataOperationRequestType:
+ class _EXTENDED_CONTENT_MESSAGE_OVERLAY_ICON_GLYPH:
ValueType = _typing.NewType("ValueType", _builtins.int)
V: _TypeAlias = ValueType # noqa: Y015
- class _PeerDataOperationRequestTypeEnumTypeWrapper(_enum_type_wrapper._EnumTypeWrapper[Message._PeerDataOperationRequestType.ValueType], _builtins.type):
+ class _EXTENDED_CONTENT_MESSAGE_OVERLAY_ICON_GLYPHEnumTypeWrapper(_enum_type_wrapper._EnumTypeWrapper[ExtendedContentMessage._EXTENDED_CONTENT_MESSAGE_OVERLAY_ICON_GLYPH.ValueType], _builtins.type):
DESCRIPTOR: _descriptor.EnumDescriptor
- UPLOAD_STICKER: Message._PeerDataOperationRequestType.ValueType # 0
- SEND_RECENT_STICKER_BOOTSTRAP: Message._PeerDataOperationRequestType.ValueType # 1
- GENERATE_LINK_PREVIEW: Message._PeerDataOperationRequestType.ValueType # 2
- HISTORY_SYNC_ON_DEMAND: Message._PeerDataOperationRequestType.ValueType # 3
- PLACEHOLDER_MESSAGE_RESEND: Message._PeerDataOperationRequestType.ValueType # 4
- WAFFLE_LINKING_NONCE_FETCH: Message._PeerDataOperationRequestType.ValueType # 5
- FULL_HISTORY_SYNC_ON_DEMAND: Message._PeerDataOperationRequestType.ValueType # 6
- COMPANION_META_NONCE_FETCH: Message._PeerDataOperationRequestType.ValueType # 7
- COMPANION_SYNCD_SNAPSHOT_FATAL_RECOVERY: Message._PeerDataOperationRequestType.ValueType # 8
- COMPANION_CANONICAL_USER_NONCE_FETCH: Message._PeerDataOperationRequestType.ValueType # 9
- HISTORY_SYNC_CHUNK_RETRY: Message._PeerDataOperationRequestType.ValueType # 10
- GALAXY_FLOW_ACTION: Message._PeerDataOperationRequestType.ValueType # 11
- BUSINESS_BROADCAST_INSIGHTS_DELIVERED_TO: Message._PeerDataOperationRequestType.ValueType # 12
- BUSINESS_BROADCAST_INSIGHTS_REFRESH: Message._PeerDataOperationRequestType.ValueType # 13
-
- class PeerDataOperationRequestType(_PeerDataOperationRequestType, metaclass=_PeerDataOperationRequestTypeEnumTypeWrapper): ...
- UPLOAD_STICKER: Message.PeerDataOperationRequestType.ValueType # 0
- SEND_RECENT_STICKER_BOOTSTRAP: Message.PeerDataOperationRequestType.ValueType # 1
- GENERATE_LINK_PREVIEW: Message.PeerDataOperationRequestType.ValueType # 2
- HISTORY_SYNC_ON_DEMAND: Message.PeerDataOperationRequestType.ValueType # 3
- PLACEHOLDER_MESSAGE_RESEND: Message.PeerDataOperationRequestType.ValueType # 4
- WAFFLE_LINKING_NONCE_FETCH: Message.PeerDataOperationRequestType.ValueType # 5
- FULL_HISTORY_SYNC_ON_DEMAND: Message.PeerDataOperationRequestType.ValueType # 6
- COMPANION_META_NONCE_FETCH: Message.PeerDataOperationRequestType.ValueType # 7
- COMPANION_SYNCD_SNAPSHOT_FATAL_RECOVERY: Message.PeerDataOperationRequestType.ValueType # 8
- COMPANION_CANONICAL_USER_NONCE_FETCH: Message.PeerDataOperationRequestType.ValueType # 9
- HISTORY_SYNC_CHUNK_RETRY: Message.PeerDataOperationRequestType.ValueType # 10
- GALAXY_FLOW_ACTION: Message.PeerDataOperationRequestType.ValueType # 11
- BUSINESS_BROADCAST_INSIGHTS_DELIVERED_TO: Message.PeerDataOperationRequestType.ValueType # 12
- BUSINESS_BROADCAST_INSIGHTS_REFRESH: Message.PeerDataOperationRequestType.ValueType # 13
-
- class _PollContentType:
- ValueType = _typing.NewType("ValueType", _builtins.int)
- V: _TypeAlias = ValueType # noqa: Y015
+ INFO: ExtendedContentMessage._EXTENDED_CONTENT_MESSAGE_OVERLAY_ICON_GLYPH.ValueType # 0
+ EYE_OFF: ExtendedContentMessage._EXTENDED_CONTENT_MESSAGE_OVERLAY_ICON_GLYPH.ValueType # 1
+ NEWS_OFF: ExtendedContentMessage._EXTENDED_CONTENT_MESSAGE_OVERLAY_ICON_GLYPH.ValueType # 2
+ WARNING: ExtendedContentMessage._EXTENDED_CONTENT_MESSAGE_OVERLAY_ICON_GLYPH.ValueType # 3
+ PRIVATE: ExtendedContentMessage._EXTENDED_CONTENT_MESSAGE_OVERLAY_ICON_GLYPH.ValueType # 4
+ NONE: ExtendedContentMessage._EXTENDED_CONTENT_MESSAGE_OVERLAY_ICON_GLYPH.ValueType # 5
+ MEDIA_LABEL: ExtendedContentMessage._EXTENDED_CONTENT_MESSAGE_OVERLAY_ICON_GLYPH.ValueType # 6
+ POST_COVER: ExtendedContentMessage._EXTENDED_CONTENT_MESSAGE_OVERLAY_ICON_GLYPH.ValueType # 7
+ POST_LABEL: ExtendedContentMessage._EXTENDED_CONTENT_MESSAGE_OVERLAY_ICON_GLYPH.ValueType # 8
+ WARNING_SCREENS: ExtendedContentMessage._EXTENDED_CONTENT_MESSAGE_OVERLAY_ICON_GLYPH.ValueType # 9
+
+ class EXTENDED_CONTENT_MESSAGE_OVERLAY_ICON_GLYPH(_EXTENDED_CONTENT_MESSAGE_OVERLAY_ICON_GLYPH, metaclass=_EXTENDED_CONTENT_MESSAGE_OVERLAY_ICON_GLYPHEnumTypeWrapper): ...
+ INFO: ExtendedContentMessage.EXTENDED_CONTENT_MESSAGE_OVERLAY_ICON_GLYPH.ValueType # 0
+ EYE_OFF: ExtendedContentMessage.EXTENDED_CONTENT_MESSAGE_OVERLAY_ICON_GLYPH.ValueType # 1
+ NEWS_OFF: ExtendedContentMessage.EXTENDED_CONTENT_MESSAGE_OVERLAY_ICON_GLYPH.ValueType # 2
+ WARNING: ExtendedContentMessage.EXTENDED_CONTENT_MESSAGE_OVERLAY_ICON_GLYPH.ValueType # 3
+ PRIVATE: ExtendedContentMessage.EXTENDED_CONTENT_MESSAGE_OVERLAY_ICON_GLYPH.ValueType # 4
+ NONE: ExtendedContentMessage.EXTENDED_CONTENT_MESSAGE_OVERLAY_ICON_GLYPH.ValueType # 5
+ MEDIA_LABEL: ExtendedContentMessage.EXTENDED_CONTENT_MESSAGE_OVERLAY_ICON_GLYPH.ValueType # 6
+ POST_COVER: ExtendedContentMessage.EXTENDED_CONTENT_MESSAGE_OVERLAY_ICON_GLYPH.ValueType # 7
+ POST_LABEL: ExtendedContentMessage.EXTENDED_CONTENT_MESSAGE_OVERLAY_ICON_GLYPH.ValueType # 8
+ WARNING_SCREENS: ExtendedContentMessage.EXTENDED_CONTENT_MESSAGE_OVERLAY_ICON_GLYPH.ValueType # 9
+
+ @_typing.final
+ class CTA(_message.Message):
+ DESCRIPTOR: _descriptor.Descriptor
+
+ BUTTONTYPE_FIELD_NUMBER: _builtins.int
+ TITLE_FIELD_NUMBER: _builtins.int
+ ACTIONURL_FIELD_NUMBER: _builtins.int
+ NATIVEURL_FIELD_NUMBER: _builtins.int
+ CTATYPE_FIELD_NUMBER: _builtins.int
+ ACTIONCONTENTBLOB_FIELD_NUMBER: _builtins.int
+ buttonType: Global___EXTENDED_CONTENT_MESSAGE_CTA_BUTTON_TYPE.ValueType
+ title: _builtins.str
+ actionUrl: _builtins.str
+ nativeUrl: _builtins.str
+ ctaType: _builtins.str
+ actionContentBlob: _builtins.str
+ def __init__(
+ self,
+ *,
+ buttonType: Global___EXTENDED_CONTENT_MESSAGE_CTA_BUTTON_TYPE.ValueType | None = ...,
+ title: _builtins.str | None = ...,
+ actionUrl: _builtins.str | None = ...,
+ nativeUrl: _builtins.str | None = ...,
+ ctaType: _builtins.str | None = ...,
+ actionContentBlob: _builtins.str | None = ...,
+ ) -> None: ...
+ _HasFieldArgType: _TypeAlias = _typing.Literal["actionContentBlob", b"actionContentBlob", "actionUrl", b"actionUrl", "buttonType", b"buttonType", "ctaType", b"ctaType", "nativeUrl", b"nativeUrl", "title", b"title"] # noqa: Y015
+ def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ...
+ _ClearFieldArgType: _TypeAlias = _typing.Literal["actionContentBlob", b"actionContentBlob", "actionUrl", b"actionUrl", "buttonType", b"buttonType", "ctaType", b"ctaType", "nativeUrl", b"nativeUrl", "title", b"title"] # noqa: Y015
+ def ClearField(self, field_name: _ClearFieldArgType) -> None: ...
+
+ ASSOCIATEDMESSAGE_FIELD_NUMBER: _builtins.int
+ TARGETTYPE_FIELD_NUMBER: _builtins.int
+ TARGETUSERNAME_FIELD_NUMBER: _builtins.int
+ TARGETID_FIELD_NUMBER: _builtins.int
+ TARGETEXPIRINGATSEC_FIELD_NUMBER: _builtins.int
+ XMALAYOUTTYPE_FIELD_NUMBER: _builtins.int
+ CTAS_FIELD_NUMBER: _builtins.int
+ PREVIEWS_FIELD_NUMBER: _builtins.int
+ TITLETEXT_FIELD_NUMBER: _builtins.int
+ SUBTITLETEXT_FIELD_NUMBER: _builtins.int
+ MAXTITLENUMOFLINES_FIELD_NUMBER: _builtins.int
+ MAXSUBTITLENUMOFLINES_FIELD_NUMBER: _builtins.int
+ FAVICON_FIELD_NUMBER: _builtins.int
+ HEADERIMAGE_FIELD_NUMBER: _builtins.int
+ HEADERTITLE_FIELD_NUMBER: _builtins.int
+ OVERLAYICONGLYPH_FIELD_NUMBER: _builtins.int
+ OVERLAYTITLE_FIELD_NUMBER: _builtins.int
+ OVERLAYDESCRIPTION_FIELD_NUMBER: _builtins.int
+ SENTWITHMESSAGEID_FIELD_NUMBER: _builtins.int
+ MESSAGETEXT_FIELD_NUMBER: _builtins.int
+ HEADERSUBTITLE_FIELD_NUMBER: _builtins.int
+ XMADATACLASS_FIELD_NUMBER: _builtins.int
+ CONTENTREF_FIELD_NUMBER: _builtins.int
+ MENTIONEDJID_FIELD_NUMBER: _builtins.int
+ COMMANDS_FIELD_NUMBER: _builtins.int
+ MENTIONS_FIELD_NUMBER: _builtins.int
+ XMADATACLASSTYPE_FIELD_NUMBER: _builtins.int
+ SIGNEDXMADATACLASSVALIDATION_FIELD_NUMBER: _builtins.int
+ FEATURESHAREDSESSIONID_FIELD_NUMBER: _builtins.int
+ targetType: Global___EXTENDED_CONTENT_MESSAGE_EXTENDED_CONTENT_TYPE.ValueType
+ targetUsername: _builtins.str
+ targetId: _builtins.str
+ targetExpiringAtSec: _builtins.int
+ xmaLayoutType: Global___EXTENDED_CONTENT_MESSAGE_XMA_LAYOUT_TYPE.ValueType
+ titleText: _builtins.str
+ subtitleText: _builtins.str
+ maxTitleNumOfLines: _builtins.int
+ maxSubtitleNumOfLines: _builtins.int
+ headerTitle: _builtins.str
+ overlayIconGlyph: Global___ExtendedContentMessage.EXTENDED_CONTENT_MESSAGE_OVERLAY_ICON_GLYPH.ValueType
+ overlayTitle: _builtins.str
+ overlayDescription: _builtins.str
+ sentWithMessageId: _builtins.str
+ messageText: _builtins.str
+ headerSubtitle: _builtins.str
+ xmaDataclass: _builtins.str
+ contentRef: _builtins.str
+ xmaDataclassType: Global___EXTENDED_CONTENT_MESSAGE_XMA_DATACLASS_TYPE.ValueType
+ signedXmaDataclassValidation: _builtins.str
+ featureSharedSessionId: _builtins.str
+ @_builtins.property
+ def associatedMessage(self) -> Global___SubProtocol: ...
+ @_builtins.property
+ def ctas(self) -> _containers.RepeatedCompositeFieldContainer[Global___ExtendedContentMessage.CTA]: ...
+ @_builtins.property
+ def previews(self) -> _containers.RepeatedCompositeFieldContainer[Global___SubProtocol]: ...
+ @_builtins.property
+ def favicon(self) -> Global___SubProtocol: ...
+ @_builtins.property
+ def headerImage(self) -> Global___SubProtocol: ...
+ @_builtins.property
+ def mentionedJid(self) -> _containers.RepeatedScalarFieldContainer[_builtins.str]: ...
+ @_builtins.property
+ def commands(self) -> _containers.RepeatedCompositeFieldContainer[Global___Command]: ...
+ @_builtins.property
+ def mentions(self) -> _containers.RepeatedCompositeFieldContainer[Global___Mention]: ...
+ def __init__(
+ self,
+ *,
+ associatedMessage: Global___SubProtocol | None = ...,
+ targetType: Global___EXTENDED_CONTENT_MESSAGE_EXTENDED_CONTENT_TYPE.ValueType | None = ...,
+ targetUsername: _builtins.str | None = ...,
+ targetId: _builtins.str | None = ...,
+ targetExpiringAtSec: _builtins.int | None = ...,
+ xmaLayoutType: Global___EXTENDED_CONTENT_MESSAGE_XMA_LAYOUT_TYPE.ValueType | None = ...,
+ ctas: _abc.Iterable[Global___ExtendedContentMessage.CTA] | None = ...,
+ previews: _abc.Iterable[Global___SubProtocol] | None = ...,
+ titleText: _builtins.str | None = ...,
+ subtitleText: _builtins.str | None = ...,
+ maxTitleNumOfLines: _builtins.int | None = ...,
+ maxSubtitleNumOfLines: _builtins.int | None = ...,
+ favicon: Global___SubProtocol | None = ...,
+ headerImage: Global___SubProtocol | None = ...,
+ headerTitle: _builtins.str | None = ...,
+ overlayIconGlyph: Global___ExtendedContentMessage.EXTENDED_CONTENT_MESSAGE_OVERLAY_ICON_GLYPH.ValueType | None = ...,
+ overlayTitle: _builtins.str | None = ...,
+ overlayDescription: _builtins.str | None = ...,
+ sentWithMessageId: _builtins.str | None = ...,
+ messageText: _builtins.str | None = ...,
+ headerSubtitle: _builtins.str | None = ...,
+ xmaDataclass: _builtins.str | None = ...,
+ contentRef: _builtins.str | None = ...,
+ mentionedJid: _abc.Iterable[_builtins.str] | None = ...,
+ commands: _abc.Iterable[Global___Command] | None = ...,
+ mentions: _abc.Iterable[Global___Mention] | None = ...,
+ xmaDataclassType: Global___EXTENDED_CONTENT_MESSAGE_XMA_DATACLASS_TYPE.ValueType | None = ...,
+ signedXmaDataclassValidation: _builtins.str | None = ...,
+ featureSharedSessionId: _builtins.str | None = ...,
+ ) -> None: ...
+ _HasFieldArgType: _TypeAlias = _typing.Literal["associatedMessage", b"associatedMessage", "contentRef", b"contentRef", "favicon", b"favicon", "featureSharedSessionId", b"featureSharedSessionId", "headerImage", b"headerImage", "headerSubtitle", b"headerSubtitle", "headerTitle", b"headerTitle", "maxSubtitleNumOfLines", b"maxSubtitleNumOfLines", "maxTitleNumOfLines", b"maxTitleNumOfLines", "messageText", b"messageText", "overlayDescription", b"overlayDescription", "overlayIconGlyph", b"overlayIconGlyph", "overlayTitle", b"overlayTitle", "sentWithMessageId", b"sentWithMessageId", "signedXmaDataclassValidation", b"signedXmaDataclassValidation", "subtitleText", b"subtitleText", "targetExpiringAtSec", b"targetExpiringAtSec", "targetId", b"targetId", "targetType", b"targetType", "targetUsername", b"targetUsername", "titleText", b"titleText", "xmaDataclass", b"xmaDataclass", "xmaDataclassType", b"xmaDataclassType", "xmaLayoutType", b"xmaLayoutType"] # noqa: Y015
+ def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ...
+ _ClearFieldArgType: _TypeAlias = _typing.Literal["associatedMessage", b"associatedMessage", "commands", b"commands", "contentRef", b"contentRef", "ctas", b"ctas", "favicon", b"favicon", "featureSharedSessionId", b"featureSharedSessionId", "headerImage", b"headerImage", "headerSubtitle", b"headerSubtitle", "headerTitle", b"headerTitle", "maxSubtitleNumOfLines", b"maxSubtitleNumOfLines", "maxTitleNumOfLines", b"maxTitleNumOfLines", "mentionedJid", b"mentionedJid", "mentions", b"mentions", "messageText", b"messageText", "overlayDescription", b"overlayDescription", "overlayIconGlyph", b"overlayIconGlyph", "overlayTitle", b"overlayTitle", "previews", b"previews", "sentWithMessageId", b"sentWithMessageId", "signedXmaDataclassValidation", b"signedXmaDataclassValidation", "subtitleText", b"subtitleText", "targetExpiringAtSec", b"targetExpiringAtSec", "targetId", b"targetId", "targetType", b"targetType", "targetUsername", b"targetUsername", "titleText", b"titleText", "xmaDataclass", b"xmaDataclass", "xmaDataclassType", b"xmaDataclassType", "xmaLayoutType", b"xmaLayoutType"] # noqa: Y015
+ def ClearField(self, field_name: _ClearFieldArgType) -> None: ...
- class _PollContentTypeEnumTypeWrapper(_enum_type_wrapper._EnumTypeWrapper[Message._PollContentType.ValueType], _builtins.type):
- DESCRIPTOR: _descriptor.EnumDescriptor
- UNKNOWN: Message._PollContentType.ValueType # 0
- TEXT: Message._PollContentType.ValueType # 1
- IMAGE: Message._PollContentType.ValueType # 2
+Global___ExtendedContentMessage: _TypeAlias = ExtendedContentMessage # noqa: Y015
- class PollContentType(_PollContentType, metaclass=_PollContentTypeEnumTypeWrapper): ...
- UNKNOWN: Message.PollContentType.ValueType # 0
- TEXT: Message.PollContentType.ValueType # 1
- IMAGE: Message.PollContentType.ValueType # 2
+@_typing.final
+class ExternalBlobReference(_message.Message):
+ DESCRIPTOR: _descriptor.Descriptor
- class _PollType:
- ValueType = _typing.NewType("ValueType", _builtins.int)
- V: _TypeAlias = ValueType # noqa: Y015
+ MEDIAKEY_FIELD_NUMBER: _builtins.int
+ DIRECTPATH_FIELD_NUMBER: _builtins.int
+ HANDLE_FIELD_NUMBER: _builtins.int
+ FILESIZEBYTES_FIELD_NUMBER: _builtins.int
+ FILESHA256_FIELD_NUMBER: _builtins.int
+ FILEENCSHA256_FIELD_NUMBER: _builtins.int
+ mediaKey: _builtins.bytes
+ directPath: _builtins.str
+ handle: _builtins.str
+ fileSizeBytes: _builtins.int
+ fileSha256: _builtins.bytes
+ fileEncSha256: _builtins.bytes
+ def __init__(
+ self,
+ *,
+ mediaKey: _builtins.bytes | None = ...,
+ directPath: _builtins.str | None = ...,
+ handle: _builtins.str | None = ...,
+ fileSizeBytes: _builtins.int | None = ...,
+ fileSha256: _builtins.bytes | None = ...,
+ fileEncSha256: _builtins.bytes | None = ...,
+ ) -> None: ...
+ _HasFieldArgType: _TypeAlias = _typing.Literal["directPath", b"directPath", "fileEncSha256", b"fileEncSha256", "fileSha256", b"fileSha256", "fileSizeBytes", b"fileSizeBytes", "handle", b"handle", "mediaKey", b"mediaKey"] # noqa: Y015
+ def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ...
+ _ClearFieldArgType: _TypeAlias = _typing.Literal["directPath", b"directPath", "fileEncSha256", b"fileEncSha256", "fileSha256", b"fileSha256", "fileSizeBytes", b"fileSizeBytes", "handle", b"handle", "mediaKey", b"mediaKey"] # noqa: Y015
+ def ClearField(self, field_name: _ClearFieldArgType) -> None: ...
- class _PollTypeEnumTypeWrapper(_enum_type_wrapper._EnumTypeWrapper[Message._PollType.ValueType], _builtins.type):
- DESCRIPTOR: _descriptor.EnumDescriptor
- POLL: Message._PollType.ValueType # 0
- QUIZ: Message._PollType.ValueType # 1
+Global___ExternalBlobReference: _TypeAlias = ExternalBlobReference # noqa: Y015
- class PollType(_PollType, metaclass=_PollTypeEnumTypeWrapper): ...
- POLL: Message.PollType.ValueType # 0
- QUIZ: Message.PollType.ValueType # 1
+@_typing.final
+class Field(_message.Message):
+ DESCRIPTOR: _descriptor.Descriptor
@_typing.final
- class AlbumMessage(_message.Message):
+ class SubfieldEntry(_message.Message):
DESCRIPTOR: _descriptor.Descriptor
- EXPECTEDIMAGECOUNT_FIELD_NUMBER: _builtins.int
- EXPECTEDVIDEOCOUNT_FIELD_NUMBER: _builtins.int
- CONTEXTINFO_FIELD_NUMBER: _builtins.int
- expectedImageCount: _builtins.int
- expectedVideoCount: _builtins.int
+ KEY_FIELD_NUMBER: _builtins.int
+ VALUE_FIELD_NUMBER: _builtins.int
+ key: _builtins.int
@_builtins.property
- def contextInfo(self) -> Global___ContextInfo: ...
+ def value(self) -> Global___Field: ...
def __init__(
self,
*,
- expectedImageCount: _builtins.int | None = ...,
- expectedVideoCount: _builtins.int | None = ...,
- contextInfo: Global___ContextInfo | None = ...,
+ key: _builtins.int | None = ...,
+ value: Global___Field | None = ...,
) -> None: ...
- _HasFieldArgType: _TypeAlias = _typing.Literal["contextInfo", b"contextInfo", "expectedImageCount", b"expectedImageCount", "expectedVideoCount", b"expectedVideoCount"] # noqa: Y015
+ _HasFieldArgType: _TypeAlias = _typing.Literal["key", b"key", "value", b"value"] # noqa: Y015
def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ...
- _ClearFieldArgType: _TypeAlias = _typing.Literal["contextInfo", b"contextInfo", "expectedImageCount", b"expectedImageCount", "expectedVideoCount", b"expectedVideoCount"] # noqa: Y015
+ _ClearFieldArgType: _TypeAlias = _typing.Literal["key", b"key", "value", b"value"] # noqa: Y015
def ClearField(self, field_name: _ClearFieldArgType) -> None: ...
- @_typing.final
- class AppStateFatalExceptionNotification(_message.Message):
- DESCRIPTOR: _descriptor.Descriptor
+ MINVERSION_FIELD_NUMBER: _builtins.int
+ MAXVERSION_FIELD_NUMBER: _builtins.int
+ NOTREPORTABLEMINVERSION_FIELD_NUMBER: _builtins.int
+ ISMESSAGE_FIELD_NUMBER: _builtins.int
+ SUBFIELD_FIELD_NUMBER: _builtins.int
+ minVersion: _builtins.int
+ maxVersion: _builtins.int
+ notReportableMinVersion: _builtins.int
+ isMessage: _builtins.bool
+ @_builtins.property
+ def subfield(self) -> _containers.MessageMap[_builtins.int, Global___Field]: ...
+ def __init__(
+ self,
+ *,
+ minVersion: _builtins.int | None = ...,
+ maxVersion: _builtins.int | None = ...,
+ notReportableMinVersion: _builtins.int | None = ...,
+ isMessage: _builtins.bool | None = ...,
+ subfield: _abc.Mapping[_builtins.int, Global___Field] | None = ...,
+ ) -> None: ...
+ _HasFieldArgType: _TypeAlias = _typing.Literal["isMessage", b"isMessage", "maxVersion", b"maxVersion", "minVersion", b"minVersion", "notReportableMinVersion", b"notReportableMinVersion"] # noqa: Y015
+ def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ...
+ _ClearFieldArgType: _TypeAlias = _typing.Literal["isMessage", b"isMessage", "maxVersion", b"maxVersion", "minVersion", b"minVersion", "notReportableMinVersion", b"notReportableMinVersion", "subfield", b"subfield"] # noqa: Y015
+ def ClearField(self, field_name: _ClearFieldArgType) -> None: ...
- COLLECTIONNAMES_FIELD_NUMBER: _builtins.int
- TIMESTAMP_FIELD_NUMBER: _builtins.int
- timestamp: _builtins.int
- @_builtins.property
- def collectionNames(self) -> _containers.RepeatedScalarFieldContainer[_builtins.str]: ...
- def __init__(
- self,
- *,
- collectionNames: _abc.Iterable[_builtins.str] | None = ...,
- timestamp: _builtins.int | None = ...,
- ) -> None: ...
- _HasFieldArgType: _TypeAlias = _typing.Literal["timestamp", b"timestamp"] # noqa: Y015
- def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ...
- _ClearFieldArgType: _TypeAlias = _typing.Literal["collectionNames", b"collectionNames", "timestamp", b"timestamp"] # noqa: Y015
- def ClearField(self, field_name: _ClearFieldArgType) -> None: ...
-
- @_typing.final
- class AppStateSyncKey(_message.Message):
- DESCRIPTOR: _descriptor.Descriptor
+Global___Field: _TypeAlias = Field # noqa: Y015
- KEYID_FIELD_NUMBER: _builtins.int
- KEYDATA_FIELD_NUMBER: _builtins.int
- @_builtins.property
- def keyId(self) -> Global___Message.AppStateSyncKeyId: ...
- @_builtins.property
- def keyData(self) -> Global___Message.AppStateSyncKeyData: ...
- def __init__(
- self,
- *,
- keyId: Global___Message.AppStateSyncKeyId | None = ...,
- keyData: Global___Message.AppStateSyncKeyData | None = ...,
- ) -> None: ...
- _HasFieldArgType: _TypeAlias = _typing.Literal["keyData", b"keyData", "keyId", b"keyId"] # noqa: Y015
- def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ...
- _ClearFieldArgType: _TypeAlias = _typing.Literal["keyData", b"keyData", "keyId", b"keyId"] # noqa: Y015
- def ClearField(self, field_name: _ClearFieldArgType) -> None: ...
+@_typing.final
+class FingerprintData(_message.Message):
+ DESCRIPTOR: _descriptor.Descriptor
- @_typing.final
- class AppStateSyncKeyData(_message.Message):
- DESCRIPTOR: _descriptor.Descriptor
+ class _HostedState:
+ ValueType = _typing.NewType("ValueType", _builtins.int)
+ V: _TypeAlias = ValueType # noqa: Y015
- KEYDATA_FIELD_NUMBER: _builtins.int
- FINGERPRINT_FIELD_NUMBER: _builtins.int
- TIMESTAMP_FIELD_NUMBER: _builtins.int
- keyData: _builtins.bytes
- timestamp: _builtins.int
- @_builtins.property
- def fingerprint(self) -> Global___Message.AppStateSyncKeyFingerprint: ...
- def __init__(
- self,
- *,
- keyData: _builtins.bytes | None = ...,
- fingerprint: Global___Message.AppStateSyncKeyFingerprint | None = ...,
- timestamp: _builtins.int | None = ...,
- ) -> None: ...
- _HasFieldArgType: _TypeAlias = _typing.Literal["fingerprint", b"fingerprint", "keyData", b"keyData", "timestamp", b"timestamp"] # noqa: Y015
- def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ...
- _ClearFieldArgType: _TypeAlias = _typing.Literal["fingerprint", b"fingerprint", "keyData", b"keyData", "timestamp", b"timestamp"] # noqa: Y015
- def ClearField(self, field_name: _ClearFieldArgType) -> None: ...
+ class _HostedStateEnumTypeWrapper(_enum_type_wrapper._EnumTypeWrapper[FingerprintData._HostedState.ValueType], _builtins.type):
+ DESCRIPTOR: _descriptor.EnumDescriptor
+ E2EE: FingerprintData._HostedState.ValueType # 0
+ HOSTED: FingerprintData._HostedState.ValueType # 1
- @_typing.final
- class AppStateSyncKeyFingerprint(_message.Message):
- DESCRIPTOR: _descriptor.Descriptor
+ class HostedState(_HostedState, metaclass=_HostedStateEnumTypeWrapper): ...
+ E2EE: FingerprintData.HostedState.ValueType # 0
+ HOSTED: FingerprintData.HostedState.ValueType # 1
- RAWID_FIELD_NUMBER: _builtins.int
- CURRENTINDEX_FIELD_NUMBER: _builtins.int
- DEVICEINDEXES_FIELD_NUMBER: _builtins.int
- rawId: _builtins.int
- currentIndex: _builtins.int
- @_builtins.property
- def deviceIndexes(self) -> _containers.RepeatedScalarFieldContainer[_builtins.int]: ...
- def __init__(
- self,
- *,
- rawId: _builtins.int | None = ...,
- currentIndex: _builtins.int | None = ...,
- deviceIndexes: _abc.Iterable[_builtins.int] | None = ...,
- ) -> None: ...
- _HasFieldArgType: _TypeAlias = _typing.Literal["currentIndex", b"currentIndex", "rawId", b"rawId"] # noqa: Y015
- def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ...
- _ClearFieldArgType: _TypeAlias = _typing.Literal["currentIndex", b"currentIndex", "deviceIndexes", b"deviceIndexes", "rawId", b"rawId"] # noqa: Y015
- def ClearField(self, field_name: _ClearFieldArgType) -> None: ...
+ PUBLICKEY_FIELD_NUMBER: _builtins.int
+ PNIDENTIFIER_FIELD_NUMBER: _builtins.int
+ LIDIDENTIFIER_FIELD_NUMBER: _builtins.int
+ USERNAMEIDENTIFIER_FIELD_NUMBER: _builtins.int
+ HOSTEDSTATE_FIELD_NUMBER: _builtins.int
+ HASHEDPUBLICKEY_FIELD_NUMBER: _builtins.int
+ publicKey: _builtins.bytes
+ pnIdentifier: _builtins.bytes
+ lidIdentifier: _builtins.bytes
+ usernameIdentifier: _builtins.bytes
+ hostedState: Global___FingerprintData.HostedState.ValueType
+ hashedPublicKey: _builtins.bytes
+ def __init__(
+ self,
+ *,
+ publicKey: _builtins.bytes | None = ...,
+ pnIdentifier: _builtins.bytes | None = ...,
+ lidIdentifier: _builtins.bytes | None = ...,
+ usernameIdentifier: _builtins.bytes | None = ...,
+ hostedState: Global___FingerprintData.HostedState.ValueType | None = ...,
+ hashedPublicKey: _builtins.bytes | None = ...,
+ ) -> None: ...
+ _HasFieldArgType: _TypeAlias = _typing.Literal["hashedPublicKey", b"hashedPublicKey", "hostedState", b"hostedState", "lidIdentifier", b"lidIdentifier", "pnIdentifier", b"pnIdentifier", "publicKey", b"publicKey", "usernameIdentifier", b"usernameIdentifier"] # noqa: Y015
+ def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ...
+ _ClearFieldArgType: _TypeAlias = _typing.Literal["hashedPublicKey", b"hashedPublicKey", "hostedState", b"hostedState", "lidIdentifier", b"lidIdentifier", "pnIdentifier", b"pnIdentifier", "publicKey", b"publicKey", "usernameIdentifier", b"usernameIdentifier"] # noqa: Y015
+ def ClearField(self, field_name: _ClearFieldArgType) -> None: ...
- @_typing.final
- class AppStateSyncKeyId(_message.Message):
- DESCRIPTOR: _descriptor.Descriptor
+Global___FingerprintData: _TypeAlias = FingerprintData # noqa: Y015
- KEYID_FIELD_NUMBER: _builtins.int
- keyId: _builtins.bytes
- def __init__(
- self,
- *,
- keyId: _builtins.bytes | None = ...,
- ) -> None: ...
- _HasFieldArgType: _TypeAlias = _typing.Literal["keyId", b"keyId"] # noqa: Y015
- def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ...
- _ClearFieldArgType: _TypeAlias = _typing.Literal["keyId", b"keyId"] # noqa: Y015
- def ClearField(self, field_name: _ClearFieldArgType) -> None: ...
+@_typing.final
+class ForwardedAIBotMessageInfo(_message.Message):
+ DESCRIPTOR: _descriptor.Descriptor
- @_typing.final
- class AppStateSyncKeyRequest(_message.Message):
- DESCRIPTOR: _descriptor.Descriptor
+ BOTNAME_FIELD_NUMBER: _builtins.int
+ BOTJID_FIELD_NUMBER: _builtins.int
+ CREATORNAME_FIELD_NUMBER: _builtins.int
+ botName: _builtins.str
+ botJid: _builtins.str
+ creatorName: _builtins.str
+ def __init__(
+ self,
+ *,
+ botName: _builtins.str | None = ...,
+ botJid: _builtins.str | None = ...,
+ creatorName: _builtins.str | None = ...,
+ ) -> None: ...
+ _HasFieldArgType: _TypeAlias = _typing.Literal["botJid", b"botJid", "botName", b"botName", "creatorName", b"creatorName"] # noqa: Y015
+ def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ...
+ _ClearFieldArgType: _TypeAlias = _typing.Literal["botJid", b"botJid", "botName", b"botName", "creatorName", b"creatorName"] # noqa: Y015
+ def ClearField(self, field_name: _ClearFieldArgType) -> None: ...
- KEYIDS_FIELD_NUMBER: _builtins.int
- @_builtins.property
- def keyIds(self) -> _containers.RepeatedCompositeFieldContainer[Global___Message.AppStateSyncKeyId]: ...
- def __init__(
- self,
- *,
- keyIds: _abc.Iterable[Global___Message.AppStateSyncKeyId] | None = ...,
- ) -> None: ...
- _ClearFieldArgType: _TypeAlias = _typing.Literal["keyIds", b"keyIds"] # noqa: Y015
- def ClearField(self, field_name: _ClearFieldArgType) -> None: ...
+Global___ForwardedAIBotMessageInfo: _TypeAlias = ForwardedAIBotMessageInfo # noqa: Y015
- @_typing.final
- class AppStateSyncKeyShare(_message.Message):
- DESCRIPTOR: _descriptor.Descriptor
+@_typing.final
+class GenerateMekInput(_message.Message):
+ DESCRIPTOR: _descriptor.Descriptor
- KEYS_FIELD_NUMBER: _builtins.int
- @_builtins.property
- def keys(self) -> _containers.RepeatedCompositeFieldContainer[Global___Message.AppStateSyncKey]: ...
- def __init__(
- self,
- *,
- keys: _abc.Iterable[Global___Message.AppStateSyncKey] | None = ...,
- ) -> None: ...
- _ClearFieldArgType: _TypeAlias = _typing.Literal["keys", b"keys"] # noqa: Y015
- def ClearField(self, field_name: _ClearFieldArgType) -> None: ...
+ EPOCHHEADS_FIELD_NUMBER: _builtins.int
+ @_builtins.property
+ def epochHeads(self) -> _containers.RepeatedScalarFieldContainer[_builtins.bytes]: ...
+ def __init__(
+ self,
+ *,
+ epochHeads: _abc.Iterable[_builtins.bytes] | None = ...,
+ ) -> None: ...
+ _ClearFieldArgType: _TypeAlias = _typing.Literal["epochHeads", b"epochHeads"] # noqa: Y015
+ def ClearField(self, field_name: _ClearFieldArgType) -> None: ...
- @_typing.final
- class AudioMessage(_message.Message):
- DESCRIPTOR: _descriptor.Descriptor
+Global___GenerateMekInput: _TypeAlias = GenerateMekInput # noqa: Y015
- URL_FIELD_NUMBER: _builtins.int
- MIMETYPE_FIELD_NUMBER: _builtins.int
- FILESHA256_FIELD_NUMBER: _builtins.int
- FILELENGTH_FIELD_NUMBER: _builtins.int
- SECONDS_FIELD_NUMBER: _builtins.int
- PTT_FIELD_NUMBER: _builtins.int
- MEDIAKEY_FIELD_NUMBER: _builtins.int
- FILEENCSHA256_FIELD_NUMBER: _builtins.int
- DIRECTPATH_FIELD_NUMBER: _builtins.int
- MEDIAKEYTIMESTAMP_FIELD_NUMBER: _builtins.int
- CONTEXTINFO_FIELD_NUMBER: _builtins.int
- STREAMINGSIDECAR_FIELD_NUMBER: _builtins.int
- WAVEFORM_FIELD_NUMBER: _builtins.int
- BACKGROUNDARGB_FIELD_NUMBER: _builtins.int
- VIEWONCE_FIELD_NUMBER: _builtins.int
- ACCESSIBILITYLABEL_FIELD_NUMBER: _builtins.int
- url: _builtins.str
- mimetype: _builtins.str
- fileSha256: _builtins.bytes
- fileLength: _builtins.int
- seconds: _builtins.int
- ptt: _builtins.bool
- mediaKey: _builtins.bytes
- fileEncSha256: _builtins.bytes
- directPath: _builtins.str
- mediaKeyTimestamp: _builtins.int
- streamingSidecar: _builtins.bytes
- waveform: _builtins.bytes
- backgroundArgb: _builtins.int
- viewOnce: _builtins.bool
- accessibilityLabel: _builtins.str
- @_builtins.property
- def contextInfo(self) -> Global___ContextInfo: ...
- def __init__(
- self,
- *,
- url: _builtins.str | None = ...,
- mimetype: _builtins.str | None = ...,
- fileSha256: _builtins.bytes | None = ...,
- fileLength: _builtins.int | None = ...,
- seconds: _builtins.int | None = ...,
- ptt: _builtins.bool | None = ...,
- mediaKey: _builtins.bytes | None = ...,
- fileEncSha256: _builtins.bytes | None = ...,
- directPath: _builtins.str | None = ...,
- mediaKeyTimestamp: _builtins.int | None = ...,
- contextInfo: Global___ContextInfo | None = ...,
- streamingSidecar: _builtins.bytes | None = ...,
- waveform: _builtins.bytes | None = ...,
- backgroundArgb: _builtins.int | None = ...,
- viewOnce: _builtins.bool | None = ...,
- accessibilityLabel: _builtins.str | None = ...,
- ) -> None: ...
- _HasFieldArgType: _TypeAlias = _typing.Literal["accessibilityLabel", b"accessibilityLabel", "backgroundArgb", b"backgroundArgb", "contextInfo", b"contextInfo", "directPath", b"directPath", "fileEncSha256", b"fileEncSha256", "fileLength", b"fileLength", "fileSha256", b"fileSha256", "mediaKey", b"mediaKey", "mediaKeyTimestamp", b"mediaKeyTimestamp", "mimetype", b"mimetype", "ptt", b"ptt", "seconds", b"seconds", "streamingSidecar", b"streamingSidecar", "url", b"url", "viewOnce", b"viewOnce", "waveform", b"waveform"] # noqa: Y015
- def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ...
- _ClearFieldArgType: _TypeAlias = _typing.Literal["accessibilityLabel", b"accessibilityLabel", "backgroundArgb", b"backgroundArgb", "contextInfo", b"contextInfo", "directPath", b"directPath", "fileEncSha256", b"fileEncSha256", "fileLength", b"fileLength", "fileSha256", b"fileSha256", "mediaKey", b"mediaKey", "mediaKeyTimestamp", b"mediaKeyTimestamp", "mimetype", b"mimetype", "ptt", b"ptt", "seconds", b"seconds", "streamingSidecar", b"streamingSidecar", "url", b"url", "viewOnce", b"viewOnce", "waveform", b"waveform"] # noqa: Y015
- def ClearField(self, field_name: _ClearFieldArgType) -> None: ...
+@_typing.final
+class GenerateMekResult(_message.Message):
+ DESCRIPTOR: _descriptor.Descriptor
- @_typing.final
- class BCallMessage(_message.Message):
- DESCRIPTOR: _descriptor.Descriptor
+ MEK_FIELD_NUMBER: _builtins.int
+ @_builtins.property
+ def mek(self) -> Global___MekBundle: ...
+ def __init__(
+ self,
+ *,
+ mek: Global___MekBundle | None = ...,
+ ) -> None: ...
+ _HasFieldArgType: _TypeAlias = _typing.Literal["mek", b"mek"] # noqa: Y015
+ def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ...
+ _ClearFieldArgType: _TypeAlias = _typing.Literal["mek", b"mek"] # noqa: Y015
+ def ClearField(self, field_name: _ClearFieldArgType) -> None: ...
- class _MediaType:
- ValueType = _typing.NewType("ValueType", _builtins.int)
- V: _TypeAlias = ValueType # noqa: Y015
+Global___GenerateMekResult: _TypeAlias = GenerateMekResult # noqa: Y015
- class _MediaTypeEnumTypeWrapper(_enum_type_wrapper._EnumTypeWrapper[Message.BCallMessage._MediaType.ValueType], _builtins.type):
- DESCRIPTOR: _descriptor.EnumDescriptor
- UNKNOWN: Message.BCallMessage._MediaType.ValueType # 0
- AUDIO: Message.BCallMessage._MediaType.ValueType # 1
- VIDEO: Message.BCallMessage._MediaType.ValueType # 2
+@_typing.final
+class GenerateMekRosterHashInput(_message.Message):
+ DESCRIPTOR: _descriptor.Descriptor
- class MediaType(_MediaType, metaclass=_MediaTypeEnumTypeWrapper): ...
- UNKNOWN: Message.BCallMessage.MediaType.ValueType # 0
- AUDIO: Message.BCallMessage.MediaType.ValueType # 1
- VIDEO: Message.BCallMessage.MediaType.ValueType # 2
+ EPOCHHEADS_FIELD_NUMBER: _builtins.int
+ @_builtins.property
+ def epochHeads(self) -> _containers.RepeatedScalarFieldContainer[_builtins.bytes]: ...
+ def __init__(
+ self,
+ *,
+ epochHeads: _abc.Iterable[_builtins.bytes] | None = ...,
+ ) -> None: ...
+ _ClearFieldArgType: _TypeAlias = _typing.Literal["epochHeads", b"epochHeads"] # noqa: Y015
+ def ClearField(self, field_name: _ClearFieldArgType) -> None: ...
- SESSIONID_FIELD_NUMBER: _builtins.int
- MEDIATYPE_FIELD_NUMBER: _builtins.int
- MASTERKEY_FIELD_NUMBER: _builtins.int
- CAPTION_FIELD_NUMBER: _builtins.int
- sessionId: _builtins.str
- mediaType: Global___Message.BCallMessage.MediaType.ValueType
- masterKey: _builtins.bytes
- caption: _builtins.str
- def __init__(
- self,
- *,
- sessionId: _builtins.str | None = ...,
- mediaType: Global___Message.BCallMessage.MediaType.ValueType | None = ...,
- masterKey: _builtins.bytes | None = ...,
- caption: _builtins.str | None = ...,
- ) -> None: ...
- _HasFieldArgType: _TypeAlias = _typing.Literal["caption", b"caption", "masterKey", b"masterKey", "mediaType", b"mediaType", "sessionId", b"sessionId"] # noqa: Y015
- def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ...
- _ClearFieldArgType: _TypeAlias = _typing.Literal["caption", b"caption", "masterKey", b"masterKey", "mediaType", b"mediaType", "sessionId", b"sessionId"] # noqa: Y015
- def ClearField(self, field_name: _ClearFieldArgType) -> None: ...
+Global___GenerateMekRosterHashInput: _TypeAlias = GenerateMekRosterHashInput # noqa: Y015
- @_typing.final
- class ButtonsMessage(_message.Message):
- DESCRIPTOR: _descriptor.Descriptor
+@_typing.final
+class GenerateMekRosterHashResult(_message.Message):
+ DESCRIPTOR: _descriptor.Descriptor
- class _HeaderType:
- ValueType = _typing.NewType("ValueType", _builtins.int)
- V: _TypeAlias = ValueType # noqa: Y015
+ ROSTERHASH_FIELD_NUMBER: _builtins.int
+ rosterHash: _builtins.bytes
+ def __init__(
+ self,
+ *,
+ rosterHash: _builtins.bytes | None = ...,
+ ) -> None: ...
+ _HasFieldArgType: _TypeAlias = _typing.Literal["rosterHash", b"rosterHash"] # noqa: Y015
+ def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ...
+ _ClearFieldArgType: _TypeAlias = _typing.Literal["rosterHash", b"rosterHash"] # noqa: Y015
+ def ClearField(self, field_name: _ClearFieldArgType) -> None: ...
- class _HeaderTypeEnumTypeWrapper(_enum_type_wrapper._EnumTypeWrapper[Message.ButtonsMessage._HeaderType.ValueType], _builtins.type):
- DESCRIPTOR: _descriptor.EnumDescriptor
- UNKNOWN: Message.ButtonsMessage._HeaderType.ValueType # 0
- EMPTY: Message.ButtonsMessage._HeaderType.ValueType # 1
- TEXT: Message.ButtonsMessage._HeaderType.ValueType # 2
- DOCUMENT: Message.ButtonsMessage._HeaderType.ValueType # 3
- IMAGE: Message.ButtonsMessage._HeaderType.ValueType # 4
- VIDEO: Message.ButtonsMessage._HeaderType.ValueType # 5
- LOCATION: Message.ButtonsMessage._HeaderType.ValueType # 6
+Global___GenerateMekRosterHashResult: _TypeAlias = GenerateMekRosterHashResult # noqa: Y015
- class HeaderType(_HeaderType, metaclass=_HeaderTypeEnumTypeWrapper): ...
- UNKNOWN: Message.ButtonsMessage.HeaderType.ValueType # 0
- EMPTY: Message.ButtonsMessage.HeaderType.ValueType # 1
- TEXT: Message.ButtonsMessage.HeaderType.ValueType # 2
- DOCUMENT: Message.ButtonsMessage.HeaderType.ValueType # 3
- IMAGE: Message.ButtonsMessage.HeaderType.ValueType # 4
- VIDEO: Message.ButtonsMessage.HeaderType.ValueType # 5
- LOCATION: Message.ButtonsMessage.HeaderType.ValueType # 6
+@_typing.final
+class GlobalSettings(_message.Message):
+ DESCRIPTOR: _descriptor.Descriptor
- @_typing.final
- class Button(_message.Message):
- DESCRIPTOR: _descriptor.Descriptor
+ LIGHTTHEMEWALLPAPER_FIELD_NUMBER: _builtins.int
+ MEDIAVISIBILITY_FIELD_NUMBER: _builtins.int
+ DARKTHEMEWALLPAPER_FIELD_NUMBER: _builtins.int
+ AUTODOWNLOADWIFI_FIELD_NUMBER: _builtins.int
+ AUTODOWNLOADCELLULAR_FIELD_NUMBER: _builtins.int
+ AUTODOWNLOADROAMING_FIELD_NUMBER: _builtins.int
+ SHOWINDIVIDUALNOTIFICATIONSPREVIEW_FIELD_NUMBER: _builtins.int
+ SHOWGROUPNOTIFICATIONSPREVIEW_FIELD_NUMBER: _builtins.int
+ DISAPPEARINGMODEDURATION_FIELD_NUMBER: _builtins.int
+ DISAPPEARINGMODETIMESTAMP_FIELD_NUMBER: _builtins.int
+ AVATARUSERSETTINGS_FIELD_NUMBER: _builtins.int
+ FONTSIZE_FIELD_NUMBER: _builtins.int
+ SECURITYNOTIFICATIONS_FIELD_NUMBER: _builtins.int
+ AUTOUNARCHIVECHATS_FIELD_NUMBER: _builtins.int
+ VIDEOQUALITYMODE_FIELD_NUMBER: _builtins.int
+ PHOTOQUALITYMODE_FIELD_NUMBER: _builtins.int
+ INDIVIDUALNOTIFICATIONSETTINGS_FIELD_NUMBER: _builtins.int
+ GROUPNOTIFICATIONSETTINGS_FIELD_NUMBER: _builtins.int
+ CHATLOCKSETTINGS_FIELD_NUMBER: _builtins.int
+ CHATDBLIDMIGRATIONTIMESTAMP_FIELD_NUMBER: _builtins.int
+ mediaVisibility: Global___MediaVisibility.ValueType
+ showIndividualNotificationsPreview: _builtins.bool
+ showGroupNotificationsPreview: _builtins.bool
+ disappearingModeDuration: _builtins.int
+ disappearingModeTimestamp: _builtins.int
+ fontSize: _builtins.int
+ securityNotifications: _builtins.bool
+ autoUnarchiveChats: _builtins.bool
+ videoQualityMode: _builtins.int
+ photoQualityMode: _builtins.int
+ chatDbLidMigrationTimestamp: _builtins.int
+ @_builtins.property
+ def lightThemeWallpaper(self) -> Global___WallpaperSettings: ...
+ @_builtins.property
+ def darkThemeWallpaper(self) -> Global___WallpaperSettings: ...
+ @_builtins.property
+ def autoDownloadWiFi(self) -> Global___AutoDownloadSettings: ...
+ @_builtins.property
+ def autoDownloadCellular(self) -> Global___AutoDownloadSettings: ...
+ @_builtins.property
+ def autoDownloadRoaming(self) -> Global___AutoDownloadSettings: ...
+ @_builtins.property
+ def avatarUserSettings(self) -> Global___AvatarUserSettings: ...
+ @_builtins.property
+ def individualNotificationSettings(self) -> Global___NotificationSettings: ...
+ @_builtins.property
+ def groupNotificationSettings(self) -> Global___NotificationSettings: ...
+ @_builtins.property
+ def chatLockSettings(self) -> Global___ChatLockSettings: ...
+ def __init__(
+ self,
+ *,
+ lightThemeWallpaper: Global___WallpaperSettings | None = ...,
+ mediaVisibility: Global___MediaVisibility.ValueType | None = ...,
+ darkThemeWallpaper: Global___WallpaperSettings | None = ...,
+ autoDownloadWiFi: Global___AutoDownloadSettings | None = ...,
+ autoDownloadCellular: Global___AutoDownloadSettings | None = ...,
+ autoDownloadRoaming: Global___AutoDownloadSettings | None = ...,
+ showIndividualNotificationsPreview: _builtins.bool | None = ...,
+ showGroupNotificationsPreview: _builtins.bool | None = ...,
+ disappearingModeDuration: _builtins.int | None = ...,
+ disappearingModeTimestamp: _builtins.int | None = ...,
+ avatarUserSettings: Global___AvatarUserSettings | None = ...,
+ fontSize: _builtins.int | None = ...,
+ securityNotifications: _builtins.bool | None = ...,
+ autoUnarchiveChats: _builtins.bool | None = ...,
+ videoQualityMode: _builtins.int | None = ...,
+ photoQualityMode: _builtins.int | None = ...,
+ individualNotificationSettings: Global___NotificationSettings | None = ...,
+ groupNotificationSettings: Global___NotificationSettings | None = ...,
+ chatLockSettings: Global___ChatLockSettings | None = ...,
+ chatDbLidMigrationTimestamp: _builtins.int | None = ...,
+ ) -> None: ...
+ _HasFieldArgType: _TypeAlias = _typing.Literal["autoDownloadCellular", b"autoDownloadCellular", "autoDownloadRoaming", b"autoDownloadRoaming", "autoDownloadWiFi", b"autoDownloadWiFi", "autoUnarchiveChats", b"autoUnarchiveChats", "avatarUserSettings", b"avatarUserSettings", "chatDbLidMigrationTimestamp", b"chatDbLidMigrationTimestamp", "chatLockSettings", b"chatLockSettings", "darkThemeWallpaper", b"darkThemeWallpaper", "disappearingModeDuration", b"disappearingModeDuration", "disappearingModeTimestamp", b"disappearingModeTimestamp", "fontSize", b"fontSize", "groupNotificationSettings", b"groupNotificationSettings", "individualNotificationSettings", b"individualNotificationSettings", "lightThemeWallpaper", b"lightThemeWallpaper", "mediaVisibility", b"mediaVisibility", "photoQualityMode", b"photoQualityMode", "securityNotifications", b"securityNotifications", "showGroupNotificationsPreview", b"showGroupNotificationsPreview", "showIndividualNotificationsPreview", b"showIndividualNotificationsPreview", "videoQualityMode", b"videoQualityMode"] # noqa: Y015
+ def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ...
+ _ClearFieldArgType: _TypeAlias = _typing.Literal["autoDownloadCellular", b"autoDownloadCellular", "autoDownloadRoaming", b"autoDownloadRoaming", "autoDownloadWiFi", b"autoDownloadWiFi", "autoUnarchiveChats", b"autoUnarchiveChats", "avatarUserSettings", b"avatarUserSettings", "chatDbLidMigrationTimestamp", b"chatDbLidMigrationTimestamp", "chatLockSettings", b"chatLockSettings", "darkThemeWallpaper", b"darkThemeWallpaper", "disappearingModeDuration", b"disappearingModeDuration", "disappearingModeTimestamp", b"disappearingModeTimestamp", "fontSize", b"fontSize", "groupNotificationSettings", b"groupNotificationSettings", "individualNotificationSettings", b"individualNotificationSettings", "lightThemeWallpaper", b"lightThemeWallpaper", "mediaVisibility", b"mediaVisibility", "photoQualityMode", b"photoQualityMode", "securityNotifications", b"securityNotifications", "showGroupNotificationsPreview", b"showGroupNotificationsPreview", "showIndividualNotificationsPreview", b"showIndividualNotificationsPreview", "videoQualityMode", b"videoQualityMode"] # noqa: Y015
+ def ClearField(self, field_name: _ClearFieldArgType) -> None: ...
- class _Type:
- ValueType = _typing.NewType("ValueType", _builtins.int)
- V: _TypeAlias = ValueType # noqa: Y015
+Global___GlobalSettings: _TypeAlias = GlobalSettings # noqa: Y015
- class _TypeEnumTypeWrapper(_enum_type_wrapper._EnumTypeWrapper[Message.ButtonsMessage.Button._Type.ValueType], _builtins.type):
- DESCRIPTOR: _descriptor.EnumDescriptor
- UNKNOWN: Message.ButtonsMessage.Button._Type.ValueType # 0
- RESPONSE: Message.ButtonsMessage.Button._Type.ValueType # 1
- NATIVE_FLOW: Message.ButtonsMessage.Button._Type.ValueType # 2
+@_typing.final
+class GroupHistory(_message.Message):
+ DESCRIPTOR: _descriptor.Descriptor
- class Type(_Type, metaclass=_TypeEnumTypeWrapper): ...
- UNKNOWN: Message.ButtonsMessage.Button.Type.ValueType # 0
- RESPONSE: Message.ButtonsMessage.Button.Type.ValueType # 1
- NATIVE_FLOW: Message.ButtonsMessage.Button.Type.ValueType # 2
+ MESSAGES_FIELD_NUMBER: _builtins.int
+ UNCOUNTEDASSOCIATEDMESSAGELISTS_FIELD_NUMBER: _builtins.int
+ COMMENTMESSAGES_FIELD_NUMBER: _builtins.int
+ OUTOFWINDOWPINNEDMESSAGES_FIELD_NUMBER: _builtins.int
+ @_builtins.property
+ def messages(self) -> _containers.RepeatedCompositeFieldContainer[Global___WebMessageInfo]: ...
+ @_builtins.property
+ def uncountedAssociatedMessageLists(self) -> _containers.RepeatedCompositeFieldContainer[Global___UnCountedAssociatedMessageList]: ...
+ @_builtins.property
+ def commentMessages(self) -> _containers.RepeatedCompositeFieldContainer[Global___WebMessageInfo]: ...
+ @_builtins.property
+ def outOfWindowPinnedMessages(self) -> _containers.RepeatedCompositeFieldContainer[Global___WebMessageInfo]: ...
+ def __init__(
+ self,
+ *,
+ messages: _abc.Iterable[Global___WebMessageInfo] | None = ...,
+ uncountedAssociatedMessageLists: _abc.Iterable[Global___UnCountedAssociatedMessageList] | None = ...,
+ commentMessages: _abc.Iterable[Global___WebMessageInfo] | None = ...,
+ outOfWindowPinnedMessages: _abc.Iterable[Global___WebMessageInfo] | None = ...,
+ ) -> None: ...
+ _ClearFieldArgType: _TypeAlias = _typing.Literal["commentMessages", b"commentMessages", "messages", b"messages", "outOfWindowPinnedMessages", b"outOfWindowPinnedMessages", "uncountedAssociatedMessageLists", b"uncountedAssociatedMessageLists"] # noqa: Y015
+ def ClearField(self, field_name: _ClearFieldArgType) -> None: ...
- @_typing.final
- class ButtonText(_message.Message):
- DESCRIPTOR: _descriptor.Descriptor
+Global___GroupHistory: _TypeAlias = GroupHistory # noqa: Y015
- DISPLAYTEXT_FIELD_NUMBER: _builtins.int
- displayText: _builtins.str
- def __init__(
- self,
- *,
- displayText: _builtins.str | None = ...,
- ) -> None: ...
- _HasFieldArgType: _TypeAlias = _typing.Literal["displayText", b"displayText"] # noqa: Y015
- def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ...
- _ClearFieldArgType: _TypeAlias = _typing.Literal["displayText", b"displayText"] # noqa: Y015
- def ClearField(self, field_name: _ClearFieldArgType) -> None: ...
+@_typing.final
+class GroupHistoryBundleInfo(_message.Message):
+ DESCRIPTOR: _descriptor.Descriptor
- @_typing.final
- class NativeFlowInfo(_message.Message):
- DESCRIPTOR: _descriptor.Descriptor
+ class _ProcessState:
+ ValueType = _typing.NewType("ValueType", _builtins.int)
+ V: _TypeAlias = ValueType # noqa: Y015
- NAME_FIELD_NUMBER: _builtins.int
- PARAMSJSON_FIELD_NUMBER: _builtins.int
- name: _builtins.str
- paramsJson: _builtins.str
- def __init__(
- self,
- *,
- name: _builtins.str | None = ...,
- paramsJson: _builtins.str | None = ...,
- ) -> None: ...
- _HasFieldArgType: _TypeAlias = _typing.Literal["name", b"name", "paramsJson", b"paramsJson"] # noqa: Y015
- def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ...
- _ClearFieldArgType: _TypeAlias = _typing.Literal["name", b"name", "paramsJson", b"paramsJson"] # noqa: Y015
- def ClearField(self, field_name: _ClearFieldArgType) -> None: ...
+ class _ProcessStateEnumTypeWrapper(_enum_type_wrapper._EnumTypeWrapper[GroupHistoryBundleInfo._ProcessState.ValueType], _builtins.type):
+ DESCRIPTOR: _descriptor.EnumDescriptor
+ NOT_INJECTED: GroupHistoryBundleInfo._ProcessState.ValueType # 0
+ INJECTED: GroupHistoryBundleInfo._ProcessState.ValueType # 1
+ INJECTED_PARTIAL: GroupHistoryBundleInfo._ProcessState.ValueType # 2
+ INJECTION_FAILED: GroupHistoryBundleInfo._ProcessState.ValueType # 3
+ INJECTION_FAILED_NO_RETRY: GroupHistoryBundleInfo._ProcessState.ValueType # 4
+ DEDUPED: GroupHistoryBundleInfo._ProcessState.ValueType # 5
- BUTTONID_FIELD_NUMBER: _builtins.int
- BUTTONTEXT_FIELD_NUMBER: _builtins.int
- TYPE_FIELD_NUMBER: _builtins.int
- NATIVEFLOWINFO_FIELD_NUMBER: _builtins.int
- buttonId: _builtins.str
- type: Global___Message.ButtonsMessage.Button.Type.ValueType
- @_builtins.property
- def buttonText(self) -> Global___Message.ButtonsMessage.Button.ButtonText: ...
- @_builtins.property
- def nativeFlowInfo(self) -> Global___Message.ButtonsMessage.Button.NativeFlowInfo: ...
- def __init__(
- self,
- *,
- buttonId: _builtins.str | None = ...,
- buttonText: Global___Message.ButtonsMessage.Button.ButtonText | None = ...,
- type: Global___Message.ButtonsMessage.Button.Type.ValueType | None = ...,
- nativeFlowInfo: Global___Message.ButtonsMessage.Button.NativeFlowInfo | None = ...,
- ) -> None: ...
- _HasFieldArgType: _TypeAlias = _typing.Literal["buttonId", b"buttonId", "buttonText", b"buttonText", "nativeFlowInfo", b"nativeFlowInfo", "type", b"type"] # noqa: Y015
- def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ...
- _ClearFieldArgType: _TypeAlias = _typing.Literal["buttonId", b"buttonId", "buttonText", b"buttonText", "nativeFlowInfo", b"nativeFlowInfo", "type", b"type"] # noqa: Y015
- def ClearField(self, field_name: _ClearFieldArgType) -> None: ...
+ class ProcessState(_ProcessState, metaclass=_ProcessStateEnumTypeWrapper): ...
+ NOT_INJECTED: GroupHistoryBundleInfo.ProcessState.ValueType # 0
+ INJECTED: GroupHistoryBundleInfo.ProcessState.ValueType # 1
+ INJECTED_PARTIAL: GroupHistoryBundleInfo.ProcessState.ValueType # 2
+ INJECTION_FAILED: GroupHistoryBundleInfo.ProcessState.ValueType # 3
+ INJECTION_FAILED_NO_RETRY: GroupHistoryBundleInfo.ProcessState.ValueType # 4
+ DEDUPED: GroupHistoryBundleInfo.ProcessState.ValueType # 5
- CONTENTTEXT_FIELD_NUMBER: _builtins.int
- FOOTERTEXT_FIELD_NUMBER: _builtins.int
- CONTEXTINFO_FIELD_NUMBER: _builtins.int
- BUTTONS_FIELD_NUMBER: _builtins.int
- HEADERTYPE_FIELD_NUMBER: _builtins.int
- TEXT_FIELD_NUMBER: _builtins.int
- DOCUMENTMESSAGE_FIELD_NUMBER: _builtins.int
- IMAGEMESSAGE_FIELD_NUMBER: _builtins.int
- VIDEOMESSAGE_FIELD_NUMBER: _builtins.int
- LOCATIONMESSAGE_FIELD_NUMBER: _builtins.int
- contentText: _builtins.str
- footerText: _builtins.str
- headerType: Global___Message.ButtonsMessage.HeaderType.ValueType
- text: _builtins.str
- @_builtins.property
- def contextInfo(self) -> Global___ContextInfo: ...
- @_builtins.property
- def buttons(self) -> _containers.RepeatedCompositeFieldContainer[Global___Message.ButtonsMessage.Button]: ...
- @_builtins.property
- def documentMessage(self) -> Global___Message.DocumentMessage: ...
- @_builtins.property
- def imageMessage(self) -> Global___Message.ImageMessage: ...
- @_builtins.property
- def videoMessage(self) -> Global___Message.VideoMessage: ...
- @_builtins.property
- def locationMessage(self) -> Global___Message.LocationMessage: ...
- def __init__(
- self,
- *,
- contentText: _builtins.str | None = ...,
- footerText: _builtins.str | None = ...,
- contextInfo: Global___ContextInfo | None = ...,
- buttons: _abc.Iterable[Global___Message.ButtonsMessage.Button] | None = ...,
- headerType: Global___Message.ButtonsMessage.HeaderType.ValueType | None = ...,
- text: _builtins.str | None = ...,
- documentMessage: Global___Message.DocumentMessage | None = ...,
- imageMessage: Global___Message.ImageMessage | None = ...,
- videoMessage: Global___Message.VideoMessage | None = ...,
- locationMessage: Global___Message.LocationMessage | None = ...,
- ) -> None: ...
- _HasFieldArgType: _TypeAlias = _typing.Literal["contentText", b"contentText", "contextInfo", b"contextInfo", "documentMessage", b"documentMessage", "footerText", b"footerText", "header", b"header", "headerType", b"headerType", "imageMessage", b"imageMessage", "locationMessage", b"locationMessage", "text", b"text", "videoMessage", b"videoMessage"] # noqa: Y015
- def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ...
- _ClearFieldArgType: _TypeAlias = _typing.Literal["buttons", b"buttons", "contentText", b"contentText", "contextInfo", b"contextInfo", "documentMessage", b"documentMessage", "footerText", b"footerText", "header", b"header", "headerType", b"headerType", "imageMessage", b"imageMessage", "locationMessage", b"locationMessage", "text", b"text", "videoMessage", b"videoMessage"] # noqa: Y015
- def ClearField(self, field_name: _ClearFieldArgType) -> None: ...
- _WhichOneofReturnType_header: _TypeAlias = _typing.Literal["text", "documentMessage", "imageMessage", "videoMessage", "locationMessage"] # noqa: Y015
- _WhichOneofArgType_header: _TypeAlias = _typing.Literal["header", b"header"] # noqa: Y015
- def WhichOneof(self, oneof_group: _WhichOneofArgType_header) -> _WhichOneofReturnType_header | None: ...
-
- @_typing.final
- class ButtonsResponseMessage(_message.Message):
- DESCRIPTOR: _descriptor.Descriptor
+ DEPRECATEDMESSAGEHISTORYBUNDLE_FIELD_NUMBER: _builtins.int
+ PROCESSSTATE_FIELD_NUMBER: _builtins.int
+ processState: Global___GroupHistoryBundleInfo.ProcessState.ValueType
+ @_builtins.property
+ def deprecatedMessageHistoryBundle(self) -> Global___Message.MessageHistoryBundle: ...
+ def __init__(
+ self,
+ *,
+ deprecatedMessageHistoryBundle: Global___Message.MessageHistoryBundle | None = ...,
+ processState: Global___GroupHistoryBundleInfo.ProcessState.ValueType | None = ...,
+ ) -> None: ...
+ _HasFieldArgType: _TypeAlias = _typing.Literal["deprecatedMessageHistoryBundle", b"deprecatedMessageHistoryBundle", "processState", b"processState"] # noqa: Y015
+ def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ...
+ _ClearFieldArgType: _TypeAlias = _typing.Literal["deprecatedMessageHistoryBundle", b"deprecatedMessageHistoryBundle", "processState", b"processState"] # noqa: Y015
+ def ClearField(self, field_name: _ClearFieldArgType) -> None: ...
- class _Type:
- ValueType = _typing.NewType("ValueType", _builtins.int)
- V: _TypeAlias = ValueType # noqa: Y015
+Global___GroupHistoryBundleInfo: _TypeAlias = GroupHistoryBundleInfo # noqa: Y015
- class _TypeEnumTypeWrapper(_enum_type_wrapper._EnumTypeWrapper[Message.ButtonsResponseMessage._Type.ValueType], _builtins.type):
- DESCRIPTOR: _descriptor.EnumDescriptor
- UNKNOWN: Message.ButtonsResponseMessage._Type.ValueType # 0
- DISPLAY_TEXT: Message.ButtonsResponseMessage._Type.ValueType # 1
+@_typing.final
+class GroupHistoryIndividualMessageInfo(_message.Message):
+ DESCRIPTOR: _descriptor.Descriptor
- class Type(_Type, metaclass=_TypeEnumTypeWrapper): ...
- UNKNOWN: Message.ButtonsResponseMessage.Type.ValueType # 0
- DISPLAY_TEXT: Message.ButtonsResponseMessage.Type.ValueType # 1
+ BUNDLEMESSAGEKEY_FIELD_NUMBER: _builtins.int
+ EDITEDAFTERRECEIVEDASHISTORY_FIELD_NUMBER: _builtins.int
+ editedAfterReceivedAsHistory: _builtins.bool
+ @_builtins.property
+ def bundleMessageKey(self) -> Global___MessageKey: ...
+ def __init__(
+ self,
+ *,
+ bundleMessageKey: Global___MessageKey | None = ...,
+ editedAfterReceivedAsHistory: _builtins.bool | None = ...,
+ ) -> None: ...
+ _HasFieldArgType: _TypeAlias = _typing.Literal["bundleMessageKey", b"bundleMessageKey", "editedAfterReceivedAsHistory", b"editedAfterReceivedAsHistory"] # noqa: Y015
+ def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ...
+ _ClearFieldArgType: _TypeAlias = _typing.Literal["bundleMessageKey", b"bundleMessageKey", "editedAfterReceivedAsHistory", b"editedAfterReceivedAsHistory"] # noqa: Y015
+ def ClearField(self, field_name: _ClearFieldArgType) -> None: ...
- SELECTEDBUTTONID_FIELD_NUMBER: _builtins.int
- CONTEXTINFO_FIELD_NUMBER: _builtins.int
- TYPE_FIELD_NUMBER: _builtins.int
- SELECTEDDISPLAYTEXT_FIELD_NUMBER: _builtins.int
- selectedButtonId: _builtins.str
- type: Global___Message.ButtonsResponseMessage.Type.ValueType
- selectedDisplayText: _builtins.str
- @_builtins.property
- def contextInfo(self) -> Global___ContextInfo: ...
- def __init__(
- self,
- *,
- selectedButtonId: _builtins.str | None = ...,
- contextInfo: Global___ContextInfo | None = ...,
- type: Global___Message.ButtonsResponseMessage.Type.ValueType | None = ...,
- selectedDisplayText: _builtins.str | None = ...,
- ) -> None: ...
- _HasFieldArgType: _TypeAlias = _typing.Literal["contextInfo", b"contextInfo", "response", b"response", "selectedButtonId", b"selectedButtonId", "selectedDisplayText", b"selectedDisplayText", "type", b"type"] # noqa: Y015
- def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ...
- _ClearFieldArgType: _TypeAlias = _typing.Literal["contextInfo", b"contextInfo", "response", b"response", "selectedButtonId", b"selectedButtonId", "selectedDisplayText", b"selectedDisplayText", "type", b"type"] # noqa: Y015
- def ClearField(self, field_name: _ClearFieldArgType) -> None: ...
- _WhichOneofReturnType_response: _TypeAlias = _typing.Literal["selectedDisplayText"] # noqa: Y015
- _WhichOneofArgType_response: _TypeAlias = _typing.Literal["response", b"response"] # noqa: Y015
- def WhichOneof(self, oneof_group: _WhichOneofArgType_response) -> _WhichOneofReturnType_response | None: ...
+Global___GroupHistoryIndividualMessageInfo: _TypeAlias = GroupHistoryIndividualMessageInfo # noqa: Y015
- @_typing.final
- class Call(_message.Message):
- DESCRIPTOR: _descriptor.Descriptor
+@_typing.final
+class GroupHistoryWithMessageBytes(_message.Message):
+ DESCRIPTOR: _descriptor.Descriptor
- CALLKEY_FIELD_NUMBER: _builtins.int
- CONVERSIONSOURCE_FIELD_NUMBER: _builtins.int
- CONVERSIONDATA_FIELD_NUMBER: _builtins.int
- CONVERSIONDELAYSECONDS_FIELD_NUMBER: _builtins.int
- CTWASIGNALS_FIELD_NUMBER: _builtins.int
- CTWAPAYLOAD_FIELD_NUMBER: _builtins.int
- CONTEXTINFO_FIELD_NUMBER: _builtins.int
- NATIVEFLOWCALLBUTTONPAYLOAD_FIELD_NUMBER: _builtins.int
- DEEPLINKPAYLOAD_FIELD_NUMBER: _builtins.int
- MESSAGECONTEXTINFO_FIELD_NUMBER: _builtins.int
- CALLENTRYPOINT_FIELD_NUMBER: _builtins.int
- callKey: _builtins.bytes
- conversionSource: _builtins.str
- conversionData: _builtins.bytes
- conversionDelaySeconds: _builtins.int
- ctwaSignals: _builtins.str
- ctwaPayload: _builtins.bytes
- nativeFlowCallButtonPayload: _builtins.str
- deeplinkPayload: _builtins.str
- callEntryPoint: _builtins.int
- @_builtins.property
- def contextInfo(self) -> Global___ContextInfo: ...
- @_builtins.property
- def messageContextInfo(self) -> Global___MessageContextInfo: ...
- def __init__(
- self,
- *,
- callKey: _builtins.bytes | None = ...,
- conversionSource: _builtins.str | None = ...,
- conversionData: _builtins.bytes | None = ...,
- conversionDelaySeconds: _builtins.int | None = ...,
- ctwaSignals: _builtins.str | None = ...,
- ctwaPayload: _builtins.bytes | None = ...,
- contextInfo: Global___ContextInfo | None = ...,
- nativeFlowCallButtonPayload: _builtins.str | None = ...,
- deeplinkPayload: _builtins.str | None = ...,
- messageContextInfo: Global___MessageContextInfo | None = ...,
- callEntryPoint: _builtins.int | None = ...,
- ) -> None: ...
- _HasFieldArgType: _TypeAlias = _typing.Literal["callEntryPoint", b"callEntryPoint", "callKey", b"callKey", "contextInfo", b"contextInfo", "conversionData", b"conversionData", "conversionDelaySeconds", b"conversionDelaySeconds", "conversionSource", b"conversionSource", "ctwaPayload", b"ctwaPayload", "ctwaSignals", b"ctwaSignals", "deeplinkPayload", b"deeplinkPayload", "messageContextInfo", b"messageContextInfo", "nativeFlowCallButtonPayload", b"nativeFlowCallButtonPayload"] # noqa: Y015
- def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ...
- _ClearFieldArgType: _TypeAlias = _typing.Literal["callEntryPoint", b"callEntryPoint", "callKey", b"callKey", "contextInfo", b"contextInfo", "conversionData", b"conversionData", "conversionDelaySeconds", b"conversionDelaySeconds", "conversionSource", b"conversionSource", "ctwaPayload", b"ctwaPayload", "ctwaSignals", b"ctwaSignals", "deeplinkPayload", b"deeplinkPayload", "messageContextInfo", b"messageContextInfo", "nativeFlowCallButtonPayload", b"nativeFlowCallButtonPayload"] # noqa: Y015
- def ClearField(self, field_name: _ClearFieldArgType) -> None: ...
+ MESSAGES_FIELD_NUMBER: _builtins.int
+ UNCOUNTEDASSOCIATEDMESSAGELISTS_FIELD_NUMBER: _builtins.int
+ COMMENTMESSAGES_FIELD_NUMBER: _builtins.int
+ OUTOFWINDOWPINNEDMESSAGES_FIELD_NUMBER: _builtins.int
+ @_builtins.property
+ def messages(self) -> _containers.RepeatedCompositeFieldContainer[Global___WebMessageInfoWithMessageBytes]: ...
+ @_builtins.property
+ def uncountedAssociatedMessageLists(self) -> _containers.RepeatedCompositeFieldContainer[Global___UnCountedAssociatedMessageListWithMessageBytes]: ...
+ @_builtins.property
+ def commentMessages(self) -> _containers.RepeatedCompositeFieldContainer[Global___WebMessageInfoWithMessageBytes]: ...
+ @_builtins.property
+ def outOfWindowPinnedMessages(self) -> _containers.RepeatedCompositeFieldContainer[Global___WebMessageInfoWithMessageBytes]: ...
+ def __init__(
+ self,
+ *,
+ messages: _abc.Iterable[Global___WebMessageInfoWithMessageBytes] | None = ...,
+ uncountedAssociatedMessageLists: _abc.Iterable[Global___UnCountedAssociatedMessageListWithMessageBytes] | None = ...,
+ commentMessages: _abc.Iterable[Global___WebMessageInfoWithMessageBytes] | None = ...,
+ outOfWindowPinnedMessages: _abc.Iterable[Global___WebMessageInfoWithMessageBytes] | None = ...,
+ ) -> None: ...
+ _ClearFieldArgType: _TypeAlias = _typing.Literal["commentMessages", b"commentMessages", "messages", b"messages", "outOfWindowPinnedMessages", b"outOfWindowPinnedMessages", "uncountedAssociatedMessageLists", b"uncountedAssociatedMessageLists"] # noqa: Y015
+ def ClearField(self, field_name: _ClearFieldArgType) -> None: ...
- @_typing.final
- class CallLogMessage(_message.Message):
- DESCRIPTOR: _descriptor.Descriptor
+Global___GroupHistoryWithMessageBytes: _TypeAlias = GroupHistoryWithMessageBytes # noqa: Y015
- class _CallOutcome:
- ValueType = _typing.NewType("ValueType", _builtins.int)
- V: _TypeAlias = ValueType # noqa: Y015
+@_typing.final
+class GroupMention(_message.Message):
+ DESCRIPTOR: _descriptor.Descriptor
- class _CallOutcomeEnumTypeWrapper(_enum_type_wrapper._EnumTypeWrapper[Message.CallLogMessage._CallOutcome.ValueType], _builtins.type):
- DESCRIPTOR: _descriptor.EnumDescriptor
- CONNECTED: Message.CallLogMessage._CallOutcome.ValueType # 0
- MISSED: Message.CallLogMessage._CallOutcome.ValueType # 1
- FAILED: Message.CallLogMessage._CallOutcome.ValueType # 2
- REJECTED: Message.CallLogMessage._CallOutcome.ValueType # 3
- ACCEPTED_ELSEWHERE: Message.CallLogMessage._CallOutcome.ValueType # 4
- ONGOING: Message.CallLogMessage._CallOutcome.ValueType # 5
- SILENCED_BY_DND: Message.CallLogMessage._CallOutcome.ValueType # 6
- SILENCED_UNKNOWN_CALLER: Message.CallLogMessage._CallOutcome.ValueType # 7
+ GROUPJID_FIELD_NUMBER: _builtins.int
+ GROUPSUBJECT_FIELD_NUMBER: _builtins.int
+ groupJid: _builtins.str
+ groupSubject: _builtins.str
+ def __init__(
+ self,
+ *,
+ groupJid: _builtins.str | None = ...,
+ groupSubject: _builtins.str | None = ...,
+ ) -> None: ...
+ _HasFieldArgType: _TypeAlias = _typing.Literal["groupJid", b"groupJid", "groupSubject", b"groupSubject"] # noqa: Y015
+ def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ...
+ _ClearFieldArgType: _TypeAlias = _typing.Literal["groupJid", b"groupJid", "groupSubject", b"groupSubject"] # noqa: Y015
+ def ClearField(self, field_name: _ClearFieldArgType) -> None: ...
- class CallOutcome(_CallOutcome, metaclass=_CallOutcomeEnumTypeWrapper): ...
- CONNECTED: Message.CallLogMessage.CallOutcome.ValueType # 0
- MISSED: Message.CallLogMessage.CallOutcome.ValueType # 1
- FAILED: Message.CallLogMessage.CallOutcome.ValueType # 2
- REJECTED: Message.CallLogMessage.CallOutcome.ValueType # 3
- ACCEPTED_ELSEWHERE: Message.CallLogMessage.CallOutcome.ValueType # 4
- ONGOING: Message.CallLogMessage.CallOutcome.ValueType # 5
- SILENCED_BY_DND: Message.CallLogMessage.CallOutcome.ValueType # 6
- SILENCED_UNKNOWN_CALLER: Message.CallLogMessage.CallOutcome.ValueType # 7
+Global___GroupMention: _TypeAlias = GroupMention # noqa: Y015
- class _CallType:
- ValueType = _typing.NewType("ValueType", _builtins.int)
- V: _TypeAlias = ValueType # noqa: Y015
+@_typing.final
+class GroupParticipant(_message.Message):
+ DESCRIPTOR: _descriptor.Descriptor
- class _CallTypeEnumTypeWrapper(_enum_type_wrapper._EnumTypeWrapper[Message.CallLogMessage._CallType.ValueType], _builtins.type):
- DESCRIPTOR: _descriptor.EnumDescriptor
- REGULAR: Message.CallLogMessage._CallType.ValueType # 0
- SCHEDULED_CALL: Message.CallLogMessage._CallType.ValueType # 1
- VOICE_CHAT: Message.CallLogMessage._CallType.ValueType # 2
+ class _Rank:
+ ValueType = _typing.NewType("ValueType", _builtins.int)
+ V: _TypeAlias = ValueType # noqa: Y015
- class CallType(_CallType, metaclass=_CallTypeEnumTypeWrapper): ...
- REGULAR: Message.CallLogMessage.CallType.ValueType # 0
- SCHEDULED_CALL: Message.CallLogMessage.CallType.ValueType # 1
- VOICE_CHAT: Message.CallLogMessage.CallType.ValueType # 2
+ class _RankEnumTypeWrapper(_enum_type_wrapper._EnumTypeWrapper[GroupParticipant._Rank.ValueType], _builtins.type):
+ DESCRIPTOR: _descriptor.EnumDescriptor
+ REGULAR: GroupParticipant._Rank.ValueType # 0
+ ADMIN: GroupParticipant._Rank.ValueType # 1
+ SUPERADMIN: GroupParticipant._Rank.ValueType # 2
- @_typing.final
- class CallParticipant(_message.Message):
- DESCRIPTOR: _descriptor.Descriptor
+ class Rank(_Rank, metaclass=_RankEnumTypeWrapper): ...
+ REGULAR: GroupParticipant.Rank.ValueType # 0
+ ADMIN: GroupParticipant.Rank.ValueType # 1
+ SUPERADMIN: GroupParticipant.Rank.ValueType # 2
- JID_FIELD_NUMBER: _builtins.int
- CALLOUTCOME_FIELD_NUMBER: _builtins.int
- jid: _builtins.str
- callOutcome: Global___Message.CallLogMessage.CallOutcome.ValueType
- def __init__(
- self,
- *,
- jid: _builtins.str | None = ...,
- callOutcome: Global___Message.CallLogMessage.CallOutcome.ValueType | None = ...,
- ) -> None: ...
- _HasFieldArgType: _TypeAlias = _typing.Literal["callOutcome", b"callOutcome", "jid", b"jid"] # noqa: Y015
- def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ...
- _ClearFieldArgType: _TypeAlias = _typing.Literal["callOutcome", b"callOutcome", "jid", b"jid"] # noqa: Y015
- def ClearField(self, field_name: _ClearFieldArgType) -> None: ...
+ USERJID_FIELD_NUMBER: _builtins.int
+ RANK_FIELD_NUMBER: _builtins.int
+ MEMBERLABEL_FIELD_NUMBER: _builtins.int
+ userJid: _builtins.str
+ rank: Global___GroupParticipant.Rank.ValueType
+ @_builtins.property
+ def memberLabel(self) -> Global___MemberLabel: ...
+ def __init__(
+ self,
+ *,
+ userJid: _builtins.str | None = ...,
+ rank: Global___GroupParticipant.Rank.ValueType | None = ...,
+ memberLabel: Global___MemberLabel | None = ...,
+ ) -> None: ...
+ _HasFieldArgType: _TypeAlias = _typing.Literal["memberLabel", b"memberLabel", "rank", b"rank", "userJid", b"userJid"] # noqa: Y015
+ def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ...
+ _ClearFieldArgType: _TypeAlias = _typing.Literal["memberLabel", b"memberLabel", "rank", b"rank", "userJid", b"userJid"] # noqa: Y015
+ def ClearField(self, field_name: _ClearFieldArgType) -> None: ...
- ISVIDEO_FIELD_NUMBER: _builtins.int
- CALLOUTCOME_FIELD_NUMBER: _builtins.int
- DURATIONSECS_FIELD_NUMBER: _builtins.int
- CALLTYPE_FIELD_NUMBER: _builtins.int
- PARTICIPANTS_FIELD_NUMBER: _builtins.int
- isVideo: _builtins.bool
- callOutcome: Global___Message.CallLogMessage.CallOutcome.ValueType
- durationSecs: _builtins.int
- callType: Global___Message.CallLogMessage.CallType.ValueType
- @_builtins.property
- def participants(self) -> _containers.RepeatedCompositeFieldContainer[Global___Message.CallLogMessage.CallParticipant]: ...
- def __init__(
- self,
- *,
- isVideo: _builtins.bool | None = ...,
- callOutcome: Global___Message.CallLogMessage.CallOutcome.ValueType | None = ...,
- durationSecs: _builtins.int | None = ...,
- callType: Global___Message.CallLogMessage.CallType.ValueType | None = ...,
- participants: _abc.Iterable[Global___Message.CallLogMessage.CallParticipant] | None = ...,
- ) -> None: ...
- _HasFieldArgType: _TypeAlias = _typing.Literal["callOutcome", b"callOutcome", "callType", b"callType", "durationSecs", b"durationSecs", "isVideo", b"isVideo"] # noqa: Y015
- def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ...
- _ClearFieldArgType: _TypeAlias = _typing.Literal["callOutcome", b"callOutcome", "callType", b"callType", "durationSecs", b"durationSecs", "isVideo", b"isVideo", "participants", b"participants"] # noqa: Y015
- def ClearField(self, field_name: _ClearFieldArgType) -> None: ...
+Global___GroupParticipant: _TypeAlias = GroupParticipant # noqa: Y015
- @_typing.final
- class CancelPaymentRequestMessage(_message.Message):
- DESCRIPTOR: _descriptor.Descriptor
+@_typing.final
+class GroupRootKeyShare(_message.Message):
+ DESCRIPTOR: _descriptor.Descriptor
- KEY_FIELD_NUMBER: _builtins.int
- @_builtins.property
- def key(self) -> Global___MessageKey: ...
- def __init__(
- self,
- *,
- key: Global___MessageKey | None = ...,
- ) -> None: ...
- _HasFieldArgType: _TypeAlias = _typing.Literal["key", b"key"] # noqa: Y015
- def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ...
- _ClearFieldArgType: _TypeAlias = _typing.Literal["key", b"key"] # noqa: Y015
- def ClearField(self, field_name: _ClearFieldArgType) -> None: ...
+ KEYS_FIELD_NUMBER: _builtins.int
+ @_builtins.property
+ def keys(self) -> _containers.RepeatedCompositeFieldContainer[Global___GroupRootKeyShareEntry]: ...
+ def __init__(
+ self,
+ *,
+ keys: _abc.Iterable[Global___GroupRootKeyShareEntry] | None = ...,
+ ) -> None: ...
+ _ClearFieldArgType: _TypeAlias = _typing.Literal["keys", b"keys"] # noqa: Y015
+ def ClearField(self, field_name: _ClearFieldArgType) -> None: ...
+
+Global___GroupRootKeyShare: _TypeAlias = GroupRootKeyShare # noqa: Y015
+
+@_typing.final
+class GroupRootKeyShareEntry(_message.Message):
+ DESCRIPTOR: _descriptor.Descriptor
+
+ GROUPROOTKEY_FIELD_NUMBER: _builtins.int
+ KEYID_FIELD_NUMBER: _builtins.int
+ EXPIRYTIMESTAMPMS_FIELD_NUMBER: _builtins.int
+ CREATEDTIMESTAMPMS_FIELD_NUMBER: _builtins.int
+ groupRootKey: _builtins.bytes
+ keyId: _builtins.str
+ expiryTimestampMs: _builtins.int
+ createdTimestampMs: _builtins.int
+ def __init__(
+ self,
+ *,
+ groupRootKey: _builtins.bytes | None = ...,
+ keyId: _builtins.str | None = ...,
+ expiryTimestampMs: _builtins.int | None = ...,
+ createdTimestampMs: _builtins.int | None = ...,
+ ) -> None: ...
+ _HasFieldArgType: _TypeAlias = _typing.Literal["createdTimestampMs", b"createdTimestampMs", "expiryTimestampMs", b"expiryTimestampMs", "groupRootKey", b"groupRootKey", "keyId", b"keyId"] # noqa: Y015
+ def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ...
+ _ClearFieldArgType: _TypeAlias = _typing.Literal["createdTimestampMs", b"createdTimestampMs", "expiryTimestampMs", b"expiryTimestampMs", "groupRootKey", b"groupRootKey", "keyId", b"keyId"] # noqa: Y015
+ def ClearField(self, field_name: _ClearFieldArgType) -> None: ...
+
+Global___GroupRootKeyShareEntry: _TypeAlias = GroupRootKeyShareEntry # noqa: Y015
+
+@_typing.final
+class HandshakeMessage(_message.Message):
+ DESCRIPTOR: _descriptor.Descriptor
+
+ class _HandshakePqMode:
+ ValueType = _typing.NewType("ValueType", _builtins.int)
+ V: _TypeAlias = ValueType # noqa: Y015
+
+ class _HandshakePqModeEnumTypeWrapper(_enum_type_wrapper._EnumTypeWrapper[HandshakeMessage._HandshakePqMode.ValueType], _builtins.type):
+ DESCRIPTOR: _descriptor.EnumDescriptor
+ HANDSHAKE_PQ_MODE_UNKNOWN: HandshakeMessage._HandshakePqMode.ValueType # 0
+ XXKEM: HandshakeMessage._HandshakePqMode.ValueType # 1
+ XXKEM_FS: HandshakeMessage._HandshakePqMode.ValueType # 2
+ XXKEM_EPH: HandshakeMessage._HandshakePqMode.ValueType # 9
+ WA_CLASSICAL: HandshakeMessage._HandshakePqMode.ValueType # 3
+ WA_PQ: HandshakeMessage._HandshakePqMode.ValueType # 4
+ IKKEM: HandshakeMessage._HandshakePqMode.ValueType # 5
+ IKKEM_FS: HandshakeMessage._HandshakePqMode.ValueType # 6
+ XXKEM_2: HandshakeMessage._HandshakePqMode.ValueType # 7
+ IKKEM_2: HandshakeMessage._HandshakePqMode.ValueType # 8
+
+ class HandshakePqMode(_HandshakePqMode, metaclass=_HandshakePqModeEnumTypeWrapper): ...
+ HANDSHAKE_PQ_MODE_UNKNOWN: HandshakeMessage.HandshakePqMode.ValueType # 0
+ XXKEM: HandshakeMessage.HandshakePqMode.ValueType # 1
+ XXKEM_FS: HandshakeMessage.HandshakePqMode.ValueType # 2
+ XXKEM_EPH: HandshakeMessage.HandshakePqMode.ValueType # 9
+ WA_CLASSICAL: HandshakeMessage.HandshakePqMode.ValueType # 3
+ WA_PQ: HandshakeMessage.HandshakePqMode.ValueType # 4
+ IKKEM: HandshakeMessage.HandshakePqMode.ValueType # 5
+ IKKEM_FS: HandshakeMessage.HandshakePqMode.ValueType # 6
+ XXKEM_2: HandshakeMessage.HandshakePqMode.ValueType # 7
+ IKKEM_2: HandshakeMessage.HandshakePqMode.ValueType # 8
@_typing.final
- class Chat(_message.Message):
+ class ClientFinish(_message.Message):
DESCRIPTOR: _descriptor.Descriptor
- DISPLAYNAME_FIELD_NUMBER: _builtins.int
- ID_FIELD_NUMBER: _builtins.int
- displayName: _builtins.str
- id: _builtins.str
+ STATIC_FIELD_NUMBER: _builtins.int
+ PAYLOAD_FIELD_NUMBER: _builtins.int
+ EXTENDEDCIPHERTEXT_FIELD_NUMBER: _builtins.int
+ PADDEDBYTES_FIELD_NUMBER: _builtins.int
+ SIMULATEXXKEMFS_FIELD_NUMBER: _builtins.int
+ static: _builtins.bytes
+ payload: _builtins.bytes
+ extendedCiphertext: _builtins.bytes
+ paddedBytes: _builtins.bytes
+ simulateXxkemFs: _builtins.bool
def __init__(
self,
*,
- displayName: _builtins.str | None = ...,
- id: _builtins.str | None = ...,
+ static: _builtins.bytes | None = ...,
+ payload: _builtins.bytes | None = ...,
+ extendedCiphertext: _builtins.bytes | None = ...,
+ paddedBytes: _builtins.bytes | None = ...,
+ simulateXxkemFs: _builtins.bool | None = ...,
) -> None: ...
- _HasFieldArgType: _TypeAlias = _typing.Literal["displayName", b"displayName", "id", b"id"] # noqa: Y015
+ _HasFieldArgType: _TypeAlias = _typing.Literal["extendedCiphertext", b"extendedCiphertext", "paddedBytes", b"paddedBytes", "payload", b"payload", "simulateXxkemFs", b"simulateXxkemFs", "static", b"static"] # noqa: Y015
def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ...
- _ClearFieldArgType: _TypeAlias = _typing.Literal["displayName", b"displayName", "id", b"id"] # noqa: Y015
+ _ClearFieldArgType: _TypeAlias = _typing.Literal["extendedCiphertext", b"extendedCiphertext", "paddedBytes", b"paddedBytes", "payload", b"payload", "simulateXxkemFs", b"simulateXxkemFs", "static", b"static"] # noqa: Y015
def ClearField(self, field_name: _ClearFieldArgType) -> None: ...
@_typing.final
- class ChatCustomImageWallpaper(_message.Message):
+ class ClientHello(_message.Message):
DESCRIPTOR: _descriptor.Descriptor
- DIRECTPATH_FIELD_NUMBER: _builtins.int
- MEDIAKEY_FIELD_NUMBER: _builtins.int
- FILEENCSHA256_FIELD_NUMBER: _builtins.int
- FILESHA256_FIELD_NUMBER: _builtins.int
- DIMLEVEL_FIELD_NUMBER: _builtins.int
- directPath: _builtins.str
- mediaKey: _builtins.bytes
- fileEncSha256: _builtins.bytes
- fileSha256: _builtins.bytes
- dimLevel: _builtins.float
+ EPHEMERAL_FIELD_NUMBER: _builtins.int
+ STATIC_FIELD_NUMBER: _builtins.int
+ PAYLOAD_FIELD_NUMBER: _builtins.int
+ USEEXTENDED_FIELD_NUMBER: _builtins.int
+ EXTENDEDCIPHERTEXT_FIELD_NUMBER: _builtins.int
+ PADDEDBYTES_FIELD_NUMBER: _builtins.int
+ SENDSERVERHELLOPADDEDBYTES_FIELD_NUMBER: _builtins.int
+ SIMULATEXXKEMFS_FIELD_NUMBER: _builtins.int
+ PQMODE_FIELD_NUMBER: _builtins.int
+ EXTENDEDEPHEMERAL_FIELD_NUMBER: _builtins.int
+ ephemeral: _builtins.bytes
+ static: _builtins.bytes
+ payload: _builtins.bytes
+ useExtended: _builtins.bool
+ extendedCiphertext: _builtins.bytes
+ paddedBytes: _builtins.bytes
+ sendServerHelloPaddedBytes: _builtins.bool
+ simulateXxkemFs: _builtins.bool
+ pqMode: Global___HandshakeMessage.HandshakePqMode.ValueType
+ extendedEphemeral: _builtins.bytes
def __init__(
self,
*,
- directPath: _builtins.str | None = ...,
- mediaKey: _builtins.bytes | None = ...,
- fileEncSha256: _builtins.bytes | None = ...,
- fileSha256: _builtins.bytes | None = ...,
- dimLevel: _builtins.float | None = ...,
+ ephemeral: _builtins.bytes | None = ...,
+ static: _builtins.bytes | None = ...,
+ payload: _builtins.bytes | None = ...,
+ useExtended: _builtins.bool | None = ...,
+ extendedCiphertext: _builtins.bytes | None = ...,
+ paddedBytes: _builtins.bytes | None = ...,
+ sendServerHelloPaddedBytes: _builtins.bool | None = ...,
+ simulateXxkemFs: _builtins.bool | None = ...,
+ pqMode: Global___HandshakeMessage.HandshakePqMode.ValueType | None = ...,
+ extendedEphemeral: _builtins.bytes | None = ...,
) -> None: ...
- _HasFieldArgType: _TypeAlias = _typing.Literal["dimLevel", b"dimLevel", "directPath", b"directPath", "fileEncSha256", b"fileEncSha256", "fileSha256", b"fileSha256", "mediaKey", b"mediaKey"] # noqa: Y015
+ _HasFieldArgType: _TypeAlias = _typing.Literal["ephemeral", b"ephemeral", "extendedCiphertext", b"extendedCiphertext", "extendedEphemeral", b"extendedEphemeral", "paddedBytes", b"paddedBytes", "payload", b"payload", "pqMode", b"pqMode", "sendServerHelloPaddedBytes", b"sendServerHelloPaddedBytes", "simulateXxkemFs", b"simulateXxkemFs", "static", b"static", "useExtended", b"useExtended"] # noqa: Y015
def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ...
- _ClearFieldArgType: _TypeAlias = _typing.Literal["dimLevel", b"dimLevel", "directPath", b"directPath", "fileEncSha256", b"fileEncSha256", "fileSha256", b"fileSha256", "mediaKey", b"mediaKey"] # noqa: Y015
+ _ClearFieldArgType: _TypeAlias = _typing.Literal["ephemeral", b"ephemeral", "extendedCiphertext", b"extendedCiphertext", "extendedEphemeral", b"extendedEphemeral", "paddedBytes", b"paddedBytes", "payload", b"payload", "pqMode", b"pqMode", "sendServerHelloPaddedBytes", b"sendServerHelloPaddedBytes", "simulateXxkemFs", b"simulateXxkemFs", "static", b"static", "useExtended", b"useExtended"] # noqa: Y015
def ClearField(self, field_name: _ClearFieldArgType) -> None: ...
@_typing.final
- class ChatDefaultWallpaper(_message.Message):
+ class ServerHello(_message.Message):
DESCRIPTOR: _descriptor.Descriptor
- ISDOODLEENABLED_FIELD_NUMBER: _builtins.int
- isDoodleEnabled: _builtins.bool
+ EPHEMERAL_FIELD_NUMBER: _builtins.int
+ STATIC_FIELD_NUMBER: _builtins.int
+ PAYLOAD_FIELD_NUMBER: _builtins.int
+ EXTENDEDSTATIC_FIELD_NUMBER: _builtins.int
+ PADDINGBYTES_FIELD_NUMBER: _builtins.int
+ EXTENDEDCIPHERTEXT_FIELD_NUMBER: _builtins.int
+ ephemeral: _builtins.bytes
+ static: _builtins.bytes
+ payload: _builtins.bytes
+ extendedStatic: _builtins.bytes
+ paddingBytes: _builtins.bytes
+ extendedCiphertext: _builtins.bytes
def __init__(
self,
*,
- isDoodleEnabled: _builtins.bool | None = ...,
+ ephemeral: _builtins.bytes | None = ...,
+ static: _builtins.bytes | None = ...,
+ payload: _builtins.bytes | None = ...,
+ extendedStatic: _builtins.bytes | None = ...,
+ paddingBytes: _builtins.bytes | None = ...,
+ extendedCiphertext: _builtins.bytes | None = ...,
) -> None: ...
- _HasFieldArgType: _TypeAlias = _typing.Literal["isDoodleEnabled", b"isDoodleEnabled"] # noqa: Y015
+ _HasFieldArgType: _TypeAlias = _typing.Literal["ephemeral", b"ephemeral", "extendedCiphertext", b"extendedCiphertext", "extendedStatic", b"extendedStatic", "paddingBytes", b"paddingBytes", "payload", b"payload", "static", b"static"] # noqa: Y015
def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ...
- _ClearFieldArgType: _TypeAlias = _typing.Literal["isDoodleEnabled", b"isDoodleEnabled"] # noqa: Y015
+ _ClearFieldArgType: _TypeAlias = _typing.Literal["ephemeral", b"ephemeral", "extendedCiphertext", b"extendedCiphertext", "extendedStatic", b"extendedStatic", "paddingBytes", b"paddingBytes", "payload", b"payload", "static", b"static"] # noqa: Y015
def ClearField(self, field_name: _ClearFieldArgType) -> None: ...
+ CLIENTHELLO_FIELD_NUMBER: _builtins.int
+ SERVERHELLO_FIELD_NUMBER: _builtins.int
+ CLIENTFINISH_FIELD_NUMBER: _builtins.int
+ @_builtins.property
+ def clientHello(self) -> Global___HandshakeMessage.ClientHello: ...
+ @_builtins.property
+ def serverHello(self) -> Global___HandshakeMessage.ServerHello: ...
+ @_builtins.property
+ def clientFinish(self) -> Global___HandshakeMessage.ClientFinish: ...
+ def __init__(
+ self,
+ *,
+ clientHello: Global___HandshakeMessage.ClientHello | None = ...,
+ serverHello: Global___HandshakeMessage.ServerHello | None = ...,
+ clientFinish: Global___HandshakeMessage.ClientFinish | None = ...,
+ ) -> None: ...
+ _HasFieldArgType: _TypeAlias = _typing.Literal["clientFinish", b"clientFinish", "clientHello", b"clientHello", "serverHello", b"serverHello"] # noqa: Y015
+ def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ...
+ _ClearFieldArgType: _TypeAlias = _typing.Literal["clientFinish", b"clientFinish", "clientHello", b"clientHello", "serverHello", b"serverHello"] # noqa: Y015
+ def ClearField(self, field_name: _ClearFieldArgType) -> None: ...
+
+Global___HandshakeMessage: _TypeAlias = HandshakeMessage # noqa: Y015
+
+@_typing.final
+class HatchMetadataSync(_message.Message):
+ DESCRIPTOR: _descriptor.Descriptor
+
+ DATA_FIELD_NUMBER: _builtins.int
+ TIMESTAMPMS_FIELD_NUMBER: _builtins.int
+ REQUESTID_FIELD_NUMBER: _builtins.int
+ data: _builtins.bytes
+ timestampMs: _builtins.int
+ requestId: _builtins.str
+ def __init__(
+ self,
+ *,
+ data: _builtins.bytes | None = ...,
+ timestampMs: _builtins.int | None = ...,
+ requestId: _builtins.str | None = ...,
+ ) -> None: ...
+ _HasFieldArgType: _TypeAlias = _typing.Literal["data", b"data", "requestId", b"requestId", "timestampMs", b"timestampMs"] # noqa: Y015
+ def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ...
+ _ClearFieldArgType: _TypeAlias = _typing.Literal["data", b"data", "requestId", b"requestId", "timestampMs", b"timestampMs"] # noqa: Y015
+ def ClearField(self, field_name: _ClearFieldArgType) -> None: ...
+
+Global___HatchMetadataSync: _TypeAlias = HatchMetadataSync # noqa: Y015
+
+@_typing.final
+class HistorySync(_message.Message):
+ DESCRIPTOR: _descriptor.Descriptor
+
+ class _BotAIWaitListState:
+ ValueType = _typing.NewType("ValueType", _builtins.int)
+ V: _TypeAlias = ValueType # noqa: Y015
+
+ class _BotAIWaitListStateEnumTypeWrapper(_enum_type_wrapper._EnumTypeWrapper[HistorySync._BotAIWaitListState.ValueType], _builtins.type):
+ DESCRIPTOR: _descriptor.EnumDescriptor
+ IN_WAITLIST: HistorySync._BotAIWaitListState.ValueType # 0
+ AI_AVAILABLE: HistorySync._BotAIWaitListState.ValueType # 1
+
+ class BotAIWaitListState(_BotAIWaitListState, metaclass=_BotAIWaitListStateEnumTypeWrapper): ...
+ IN_WAITLIST: HistorySync.BotAIWaitListState.ValueType # 0
+ AI_AVAILABLE: HistorySync.BotAIWaitListState.ValueType # 1
+
+ class _HistorySyncType:
+ ValueType = _typing.NewType("ValueType", _builtins.int)
+ V: _TypeAlias = ValueType # noqa: Y015
+
+ class _HistorySyncTypeEnumTypeWrapper(_enum_type_wrapper._EnumTypeWrapper[HistorySync._HistorySyncType.ValueType], _builtins.type):
+ DESCRIPTOR: _descriptor.EnumDescriptor
+ INITIAL_BOOTSTRAP: HistorySync._HistorySyncType.ValueType # 0
+ INITIAL_STATUS_V3: HistorySync._HistorySyncType.ValueType # 1
+ FULL: HistorySync._HistorySyncType.ValueType # 2
+ RECENT: HistorySync._HistorySyncType.ValueType # 3
+ PUSH_NAME: HistorySync._HistorySyncType.ValueType # 4
+ NON_BLOCKING_DATA: HistorySync._HistorySyncType.ValueType # 5
+ ON_DEMAND: HistorySync._HistorySyncType.ValueType # 6
+
+ class HistorySyncType(_HistorySyncType, metaclass=_HistorySyncTypeEnumTypeWrapper): ...
+ INITIAL_BOOTSTRAP: HistorySync.HistorySyncType.ValueType # 0
+ INITIAL_STATUS_V3: HistorySync.HistorySyncType.ValueType # 1
+ FULL: HistorySync.HistorySyncType.ValueType # 2
+ RECENT: HistorySync.HistorySyncType.ValueType # 3
+ PUSH_NAME: HistorySync.HistorySyncType.ValueType # 4
+ NON_BLOCKING_DATA: HistorySync.HistorySyncType.ValueType # 5
+ ON_DEMAND: HistorySync.HistorySyncType.ValueType # 6
+
+ SYNCTYPE_FIELD_NUMBER: _builtins.int
+ CONVERSATIONS_FIELD_NUMBER: _builtins.int
+ STATUSV3MESSAGES_FIELD_NUMBER: _builtins.int
+ CHUNKORDER_FIELD_NUMBER: _builtins.int
+ PROGRESS_FIELD_NUMBER: _builtins.int
+ PUSHNAMES_FIELD_NUMBER: _builtins.int
+ GLOBALSETTINGS_FIELD_NUMBER: _builtins.int
+ THREADIDUSERSECRET_FIELD_NUMBER: _builtins.int
+ THREADDSTIMEFRAMEOFFSET_FIELD_NUMBER: _builtins.int
+ RECENTSTICKERS_FIELD_NUMBER: _builtins.int
+ PASTPARTICIPANTS_FIELD_NUMBER: _builtins.int
+ CALLLOGRECORDS_FIELD_NUMBER: _builtins.int
+ AIWAITLISTSTATE_FIELD_NUMBER: _builtins.int
+ PHONENUMBERTOLIDMAPPINGS_FIELD_NUMBER: _builtins.int
+ COMPANIONMETANONCE_FIELD_NUMBER: _builtins.int
+ SHAREABLECHATIDENTIFIERENCRYPTIONKEY_FIELD_NUMBER: _builtins.int
+ ACCOUNTS_FIELD_NUMBER: _builtins.int
+ NCTSALT_FIELD_NUMBER: _builtins.int
+ INLINECONTACTS_FIELD_NUMBER: _builtins.int
+ INLINECONTACTSPROVIDED_FIELD_NUMBER: _builtins.int
+ syncType: Global___HistorySync.HistorySyncType.ValueType
+ chunkOrder: _builtins.int
+ progress: _builtins.int
+ threadIdUserSecret: _builtins.bytes
+ threadDsTimeframeOffset: _builtins.int
+ aiWaitListState: Global___HistorySync.BotAIWaitListState.ValueType
+ companionMetaNonce: _builtins.str
+ shareableChatIdentifierEncryptionKey: _builtins.bytes
+ nctSalt: _builtins.bytes
+ inlineContactsProvided: _builtins.bool
+ @_builtins.property
+ def conversations(self) -> _containers.RepeatedCompositeFieldContainer[Global___Conversation]: ...
+ @_builtins.property
+ def statusV3Messages(self) -> _containers.RepeatedCompositeFieldContainer[Global___WebMessageInfo]: ...
+ @_builtins.property
+ def pushnames(self) -> _containers.RepeatedCompositeFieldContainer[Global___Pushname]: ...
+ @_builtins.property
+ def globalSettings(self) -> Global___GlobalSettings: ...
+ @_builtins.property
+ def recentStickers(self) -> _containers.RepeatedCompositeFieldContainer[Global___StickerMetadata]: ...
+ @_builtins.property
+ def pastParticipants(self) -> _containers.RepeatedCompositeFieldContainer[Global___PastParticipants]: ...
+ @_builtins.property
+ def callLogRecords(self) -> _containers.RepeatedCompositeFieldContainer[Global___CallLogRecord]: ...
+ @_builtins.property
+ def phoneNumberToLidMappings(self) -> _containers.RepeatedCompositeFieldContainer[Global___PhoneNumberToLIDMapping]: ...
+ @_builtins.property
+ def accounts(self) -> _containers.RepeatedCompositeFieldContainer[Global___Account]: ...
+ @_builtins.property
+ def inlineContacts(self) -> _containers.RepeatedCompositeFieldContainer[Global___InlineContact]: ...
+ def __init__(
+ self,
+ *,
+ syncType: Global___HistorySync.HistorySyncType.ValueType | None = ...,
+ conversations: _abc.Iterable[Global___Conversation] | None = ...,
+ statusV3Messages: _abc.Iterable[Global___WebMessageInfo] | None = ...,
+ chunkOrder: _builtins.int | None = ...,
+ progress: _builtins.int | None = ...,
+ pushnames: _abc.Iterable[Global___Pushname] | None = ...,
+ globalSettings: Global___GlobalSettings | None = ...,
+ threadIdUserSecret: _builtins.bytes | None = ...,
+ threadDsTimeframeOffset: _builtins.int | None = ...,
+ recentStickers: _abc.Iterable[Global___StickerMetadata] | None = ...,
+ pastParticipants: _abc.Iterable[Global___PastParticipants] | None = ...,
+ callLogRecords: _abc.Iterable[Global___CallLogRecord] | None = ...,
+ aiWaitListState: Global___HistorySync.BotAIWaitListState.ValueType | None = ...,
+ phoneNumberToLidMappings: _abc.Iterable[Global___PhoneNumberToLIDMapping] | None = ...,
+ companionMetaNonce: _builtins.str | None = ...,
+ shareableChatIdentifierEncryptionKey: _builtins.bytes | None = ...,
+ accounts: _abc.Iterable[Global___Account] | None = ...,
+ nctSalt: _builtins.bytes | None = ...,
+ inlineContacts: _abc.Iterable[Global___InlineContact] | None = ...,
+ inlineContactsProvided: _builtins.bool | None = ...,
+ ) -> None: ...
+ _HasFieldArgType: _TypeAlias = _typing.Literal["aiWaitListState", b"aiWaitListState", "chunkOrder", b"chunkOrder", "companionMetaNonce", b"companionMetaNonce", "globalSettings", b"globalSettings", "inlineContactsProvided", b"inlineContactsProvided", "nctSalt", b"nctSalt", "progress", b"progress", "shareableChatIdentifierEncryptionKey", b"shareableChatIdentifierEncryptionKey", "syncType", b"syncType", "threadDsTimeframeOffset", b"threadDsTimeframeOffset", "threadIdUserSecret", b"threadIdUserSecret"] # noqa: Y015
+ def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ...
+ _ClearFieldArgType: _TypeAlias = _typing.Literal["accounts", b"accounts", "aiWaitListState", b"aiWaitListState", "callLogRecords", b"callLogRecords", "chunkOrder", b"chunkOrder", "companionMetaNonce", b"companionMetaNonce", "conversations", b"conversations", "globalSettings", b"globalSettings", "inlineContacts", b"inlineContacts", "inlineContactsProvided", b"inlineContactsProvided", "nctSalt", b"nctSalt", "pastParticipants", b"pastParticipants", "phoneNumberToLidMappings", b"phoneNumberToLidMappings", "progress", b"progress", "pushnames", b"pushnames", "recentStickers", b"recentStickers", "shareableChatIdentifierEncryptionKey", b"shareableChatIdentifierEncryptionKey", "statusV3Messages", b"statusV3Messages", "syncType", b"syncType", "threadDsTimeframeOffset", b"threadDsTimeframeOffset", "threadIdUserSecret", b"threadIdUserSecret"] # noqa: Y015
+ def ClearField(self, field_name: _ClearFieldArgType) -> None: ...
+
+Global___HistorySync: _TypeAlias = HistorySync # noqa: Y015
+
+@_typing.final
+class HistorySyncMsg(_message.Message):
+ DESCRIPTOR: _descriptor.Descriptor
+
+ MESSAGE_FIELD_NUMBER: _builtins.int
+ MSGORDERID_FIELD_NUMBER: _builtins.int
+ msgOrderId: _builtins.int
+ @_builtins.property
+ def message(self) -> Global___WebMessageInfo: ...
+ def __init__(
+ self,
+ *,
+ message: Global___WebMessageInfo | None = ...,
+ msgOrderId: _builtins.int | None = ...,
+ ) -> None: ...
+ _HasFieldArgType: _TypeAlias = _typing.Literal["message", b"message", "msgOrderId", b"msgOrderId"] # noqa: Y015
+ def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ...
+ _ClearFieldArgType: _TypeAlias = _typing.Literal["message", b"message", "msgOrderId", b"msgOrderId"] # noqa: Y015
+ def ClearField(self, field_name: _ClearFieldArgType) -> None: ...
+
+Global___HistorySyncMsg: _TypeAlias = HistorySyncMsg # noqa: Y015
+
+@_typing.final
+class HydratedTemplateButton(_message.Message):
+ DESCRIPTOR: _descriptor.Descriptor
+
@_typing.final
- class ChatSolidColorWallpaper(_message.Message):
+ class HydratedCallButton(_message.Message):
DESCRIPTOR: _descriptor.Descriptor
- COLORLIGHT_FIELD_NUMBER: _builtins.int
- COLORDARK_FIELD_NUMBER: _builtins.int
- ISDOODLEENABLED_FIELD_NUMBER: _builtins.int
- colorLight: _builtins.str
- colorDark: _builtins.str
- isDoodleEnabled: _builtins.bool
+ DISPLAYTEXT_FIELD_NUMBER: _builtins.int
+ PHONENUMBER_FIELD_NUMBER: _builtins.int
+ displayText: _builtins.str
+ phoneNumber: _builtins.str
def __init__(
self,
*,
- colorLight: _builtins.str | None = ...,
- colorDark: _builtins.str | None = ...,
- isDoodleEnabled: _builtins.bool | None = ...,
+ displayText: _builtins.str | None = ...,
+ phoneNumber: _builtins.str | None = ...,
) -> None: ...
- _HasFieldArgType: _TypeAlias = _typing.Literal["colorDark", b"colorDark", "colorLight", b"colorLight", "isDoodleEnabled", b"isDoodleEnabled"] # noqa: Y015
+ _HasFieldArgType: _TypeAlias = _typing.Literal["displayText", b"displayText", "phoneNumber", b"phoneNumber"] # noqa: Y015
def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ...
- _ClearFieldArgType: _TypeAlias = _typing.Literal["colorDark", b"colorDark", "colorLight", b"colorLight", "isDoodleEnabled", b"isDoodleEnabled"] # noqa: Y015
+ _ClearFieldArgType: _TypeAlias = _typing.Literal["displayText", b"displayText", "phoneNumber", b"phoneNumber"] # noqa: Y015
def ClearField(self, field_name: _ClearFieldArgType) -> None: ...
@_typing.final
- class ChatStockImageWallpaper(_message.Message):
+ class HydratedQuickReplyButton(_message.Message):
DESCRIPTOR: _descriptor.Descriptor
- STOCKIMAGEID_FIELD_NUMBER: _builtins.int
- DIMLEVEL_FIELD_NUMBER: _builtins.int
- stockImageId: _builtins.str
- dimLevel: _builtins.float
+ DISPLAYTEXT_FIELD_NUMBER: _builtins.int
+ ID_FIELD_NUMBER: _builtins.int
+ displayText: _builtins.str
+ id: _builtins.str
def __init__(
self,
*,
- stockImageId: _builtins.str | None = ...,
- dimLevel: _builtins.float | None = ...,
+ displayText: _builtins.str | None = ...,
+ id: _builtins.str | None = ...,
) -> None: ...
- _HasFieldArgType: _TypeAlias = _typing.Literal["dimLevel", b"dimLevel", "stockImageId", b"stockImageId"] # noqa: Y015
+ _HasFieldArgType: _TypeAlias = _typing.Literal["displayText", b"displayText", "id", b"id"] # noqa: Y015
def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ...
- _ClearFieldArgType: _TypeAlias = _typing.Literal["dimLevel", b"dimLevel", "stockImageId", b"stockImageId"] # noqa: Y015
+ _ClearFieldArgType: _TypeAlias = _typing.Literal["displayText", b"displayText", "id", b"id"] # noqa: Y015
def ClearField(self, field_name: _ClearFieldArgType) -> None: ...
@_typing.final
- class ChatThemeSetting(_message.Message):
+ class HydratedURLButton(_message.Message):
DESCRIPTOR: _descriptor.Descriptor
- SETTINGTIMESTAMPMS_FIELD_NUMBER: _builtins.int
- CLEARTHEME_FIELD_NUMBER: _builtins.int
- COLORSCHEMEID_FIELD_NUMBER: _builtins.int
- DEFAULTWALLPAPER_FIELD_NUMBER: _builtins.int
- SOLIDCOLOR_FIELD_NUMBER: _builtins.int
- STOCKIMAGE_FIELD_NUMBER: _builtins.int
- CUSTOMIMAGE_FIELD_NUMBER: _builtins.int
- settingTimestampMs: _builtins.int
- clearTheme: _builtins.bool
- colorSchemeId: _builtins.str
- @_builtins.property
- def defaultWallpaper(self) -> Global___Message.ChatDefaultWallpaper: ...
- @_builtins.property
- def solidColor(self) -> Global___Message.ChatSolidColorWallpaper: ...
- @_builtins.property
- def stockImage(self) -> Global___Message.ChatStockImageWallpaper: ...
- @_builtins.property
- def customImage(self) -> Global___Message.ChatCustomImageWallpaper: ...
- def __init__(
- self,
- *,
- settingTimestampMs: _builtins.int | None = ...,
- clearTheme: _builtins.bool | None = ...,
- colorSchemeId: _builtins.str | None = ...,
- defaultWallpaper: Global___Message.ChatDefaultWallpaper | None = ...,
- solidColor: Global___Message.ChatSolidColorWallpaper | None = ...,
- stockImage: Global___Message.ChatStockImageWallpaper | None = ...,
- customImage: Global___Message.ChatCustomImageWallpaper | None = ...,
- ) -> None: ...
- _HasFieldArgType: _TypeAlias = _typing.Literal["clearTheme", b"clearTheme", "colorSchemeId", b"colorSchemeId", "customImage", b"customImage", "defaultWallpaper", b"defaultWallpaper", "settingTimestampMs", b"settingTimestampMs", "solidColor", b"solidColor", "stockImage", b"stockImage", "wallpaper", b"wallpaper"] # noqa: Y015
- def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ...
- _ClearFieldArgType: _TypeAlias = _typing.Literal["clearTheme", b"clearTheme", "colorSchemeId", b"colorSchemeId", "customImage", b"customImage", "defaultWallpaper", b"defaultWallpaper", "settingTimestampMs", b"settingTimestampMs", "solidColor", b"solidColor", "stockImage", b"stockImage", "wallpaper", b"wallpaper"] # noqa: Y015
- def ClearField(self, field_name: _ClearFieldArgType) -> None: ...
- _WhichOneofReturnType_wallpaper: _TypeAlias = _typing.Literal["defaultWallpaper", "solidColor", "stockImage", "customImage"] # noqa: Y015
- _WhichOneofArgType_wallpaper: _TypeAlias = _typing.Literal["wallpaper", b"wallpaper"] # noqa: Y015
- def WhichOneof(self, oneof_group: _WhichOneofArgType_wallpaper) -> _WhichOneofReturnType_wallpaper | None: ...
-
- @_typing.final
- class CloudAPIThreadControlNotification(_message.Message):
- DESCRIPTOR: _descriptor.Descriptor
-
- class _CloudAPIThreadControl:
+ class _WebviewPresentationType:
ValueType = _typing.NewType("ValueType", _builtins.int)
V: _TypeAlias = ValueType # noqa: Y015
- class _CloudAPIThreadControlEnumTypeWrapper(_enum_type_wrapper._EnumTypeWrapper[Message.CloudAPIThreadControlNotification._CloudAPIThreadControl.ValueType], _builtins.type):
+ class _WebviewPresentationTypeEnumTypeWrapper(_enum_type_wrapper._EnumTypeWrapper[HydratedTemplateButton.HydratedURLButton._WebviewPresentationType.ValueType], _builtins.type):
DESCRIPTOR: _descriptor.EnumDescriptor
- UNKNOWN: Message.CloudAPIThreadControlNotification._CloudAPIThreadControl.ValueType # 0
- CONTROL_PASSED: Message.CloudAPIThreadControlNotification._CloudAPIThreadControl.ValueType # 1
- CONTROL_TAKEN: Message.CloudAPIThreadControlNotification._CloudAPIThreadControl.ValueType # 2
- INFO: Message.CloudAPIThreadControlNotification._CloudAPIThreadControl.ValueType # 3
-
- class CloudAPIThreadControl(_CloudAPIThreadControl, metaclass=_CloudAPIThreadControlEnumTypeWrapper): ...
- UNKNOWN: Message.CloudAPIThreadControlNotification.CloudAPIThreadControl.ValueType # 0
- CONTROL_PASSED: Message.CloudAPIThreadControlNotification.CloudAPIThreadControl.ValueType # 1
- CONTROL_TAKEN: Message.CloudAPIThreadControlNotification.CloudAPIThreadControl.ValueType # 2
- INFO: Message.CloudAPIThreadControlNotification.CloudAPIThreadControl.ValueType # 3
-
- @_typing.final
- class CloudAPIThreadControlNotificationContent(_message.Message):
- DESCRIPTOR: _descriptor.Descriptor
+ FULL: HydratedTemplateButton.HydratedURLButton._WebviewPresentationType.ValueType # 1
+ TALL: HydratedTemplateButton.HydratedURLButton._WebviewPresentationType.ValueType # 2
+ COMPACT: HydratedTemplateButton.HydratedURLButton._WebviewPresentationType.ValueType # 3
- HANDOFFNOTIFICATIONTEXT_FIELD_NUMBER: _builtins.int
- EXTRAJSON_FIELD_NUMBER: _builtins.int
- handoffNotificationText: _builtins.str
- extraJson: _builtins.str
- def __init__(
- self,
- *,
- handoffNotificationText: _builtins.str | None = ...,
- extraJson: _builtins.str | None = ...,
- ) -> None: ...
- _HasFieldArgType: _TypeAlias = _typing.Literal["extraJson", b"extraJson", "handoffNotificationText", b"handoffNotificationText"] # noqa: Y015
- def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ...
- _ClearFieldArgType: _TypeAlias = _typing.Literal["extraJson", b"extraJson", "handoffNotificationText", b"handoffNotificationText"] # noqa: Y015
- def ClearField(self, field_name: _ClearFieldArgType) -> None: ...
+ class WebviewPresentationType(_WebviewPresentationType, metaclass=_WebviewPresentationTypeEnumTypeWrapper): ...
+ FULL: HydratedTemplateButton.HydratedURLButton.WebviewPresentationType.ValueType # 1
+ TALL: HydratedTemplateButton.HydratedURLButton.WebviewPresentationType.ValueType # 2
+ COMPACT: HydratedTemplateButton.HydratedURLButton.WebviewPresentationType.ValueType # 3
- STATUS_FIELD_NUMBER: _builtins.int
- SENDERNOTIFICATIONTIMESTAMPMS_FIELD_NUMBER: _builtins.int
- CONSUMERLID_FIELD_NUMBER: _builtins.int
- CONSUMERPHONENUMBER_FIELD_NUMBER: _builtins.int
- NOTIFICATIONCONTENT_FIELD_NUMBER: _builtins.int
- SHOULDSUPPRESSNOTIFICATION_FIELD_NUMBER: _builtins.int
- status: Global___Message.CloudAPIThreadControlNotification.CloudAPIThreadControl.ValueType
- senderNotificationTimestampMs: _builtins.int
- consumerLid: _builtins.str
- consumerPhoneNumber: _builtins.str
- shouldSuppressNotification: _builtins.bool
- @_builtins.property
- def notificationContent(self) -> Global___Message.CloudAPIThreadControlNotification.CloudAPIThreadControlNotificationContent: ...
+ DISPLAYTEXT_FIELD_NUMBER: _builtins.int
+ URL_FIELD_NUMBER: _builtins.int
+ CONSENTEDUSERSURL_FIELD_NUMBER: _builtins.int
+ WEBVIEWPRESENTATION_FIELD_NUMBER: _builtins.int
+ displayText: _builtins.str
+ url: _builtins.str
+ consentedUsersUrl: _builtins.str
+ webviewPresentation: Global___HydratedTemplateButton.HydratedURLButton.WebviewPresentationType.ValueType
def __init__(
self,
*,
- status: Global___Message.CloudAPIThreadControlNotification.CloudAPIThreadControl.ValueType | None = ...,
- senderNotificationTimestampMs: _builtins.int | None = ...,
- consumerLid: _builtins.str | None = ...,
- consumerPhoneNumber: _builtins.str | None = ...,
- notificationContent: Global___Message.CloudAPIThreadControlNotification.CloudAPIThreadControlNotificationContent | None = ...,
- shouldSuppressNotification: _builtins.bool | None = ...,
+ displayText: _builtins.str | None = ...,
+ url: _builtins.str | None = ...,
+ consentedUsersUrl: _builtins.str | None = ...,
+ webviewPresentation: Global___HydratedTemplateButton.HydratedURLButton.WebviewPresentationType.ValueType | None = ...,
) -> None: ...
- _HasFieldArgType: _TypeAlias = _typing.Literal["consumerLid", b"consumerLid", "consumerPhoneNumber", b"consumerPhoneNumber", "notificationContent", b"notificationContent", "senderNotificationTimestampMs", b"senderNotificationTimestampMs", "shouldSuppressNotification", b"shouldSuppressNotification", "status", b"status"] # noqa: Y015
+ _HasFieldArgType: _TypeAlias = _typing.Literal["consentedUsersUrl", b"consentedUsersUrl", "displayText", b"displayText", "url", b"url", "webviewPresentation", b"webviewPresentation"] # noqa: Y015
def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ...
- _ClearFieldArgType: _TypeAlias = _typing.Literal["consumerLid", b"consumerLid", "consumerPhoneNumber", b"consumerPhoneNumber", "notificationContent", b"notificationContent", "senderNotificationTimestampMs", b"senderNotificationTimestampMs", "shouldSuppressNotification", b"shouldSuppressNotification", "status", b"status"] # noqa: Y015
+ _ClearFieldArgType: _TypeAlias = _typing.Literal["consentedUsersUrl", b"consentedUsersUrl", "displayText", b"displayText", "url", b"url", "webviewPresentation", b"webviewPresentation"] # noqa: Y015
def ClearField(self, field_name: _ClearFieldArgType) -> None: ...
+ INDEX_FIELD_NUMBER: _builtins.int
+ QUICKREPLYBUTTON_FIELD_NUMBER: _builtins.int
+ URLBUTTON_FIELD_NUMBER: _builtins.int
+ CALLBUTTON_FIELD_NUMBER: _builtins.int
+ index: _builtins.int
+ @_builtins.property
+ def quickReplyButton(self) -> Global___HydratedTemplateButton.HydratedQuickReplyButton: ...
+ @_builtins.property
+ def urlButton(self) -> Global___HydratedTemplateButton.HydratedURLButton: ...
+ @_builtins.property
+ def callButton(self) -> Global___HydratedTemplateButton.HydratedCallButton: ...
+ def __init__(
+ self,
+ *,
+ index: _builtins.int | None = ...,
+ quickReplyButton: Global___HydratedTemplateButton.HydratedQuickReplyButton | None = ...,
+ urlButton: Global___HydratedTemplateButton.HydratedURLButton | None = ...,
+ callButton: Global___HydratedTemplateButton.HydratedCallButton | None = ...,
+ ) -> None: ...
+ _HasFieldArgType: _TypeAlias = _typing.Literal["callButton", b"callButton", "hydratedButton", b"hydratedButton", "index", b"index", "quickReplyButton", b"quickReplyButton", "urlButton", b"urlButton"] # noqa: Y015
+ def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ...
+ _ClearFieldArgType: _TypeAlias = _typing.Literal["callButton", b"callButton", "hydratedButton", b"hydratedButton", "index", b"index", "quickReplyButton", b"quickReplyButton", "urlButton", b"urlButton"] # noqa: Y015
+ def ClearField(self, field_name: _ClearFieldArgType) -> None: ...
+ _WhichOneofReturnType_hydratedButton: _TypeAlias = _typing.Literal["quickReplyButton", "urlButton", "callButton"] # noqa: Y015
+ _WhichOneofArgType_hydratedButton: _TypeAlias = _typing.Literal["hydratedButton", b"hydratedButton"] # noqa: Y015
+ def WhichOneof(self, oneof_group: _WhichOneofArgType_hydratedButton) -> _WhichOneofReturnType_hydratedButton | None: ...
+
+Global___HydratedTemplateButton: _TypeAlias = HydratedTemplateButton # noqa: Y015
+
+@_typing.final
+class IdentityKeyPairStructure(_message.Message):
+ DESCRIPTOR: _descriptor.Descriptor
+
+ PUBLICKEY_FIELD_NUMBER: _builtins.int
+ PRIVATEKEY_FIELD_NUMBER: _builtins.int
+ publicKey: _builtins.bytes
+ privateKey: _builtins.bytes
+ def __init__(
+ self,
+ *,
+ publicKey: _builtins.bytes | None = ...,
+ privateKey: _builtins.bytes | None = ...,
+ ) -> None: ...
+ _HasFieldArgType: _TypeAlias = _typing.Literal["privateKey", b"privateKey", "publicKey", b"publicKey"] # noqa: Y015
+ def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ...
+ _ClearFieldArgType: _TypeAlias = _typing.Literal["privateKey", b"privateKey", "publicKey", b"publicKey"] # noqa: Y015
+ def ClearField(self, field_name: _ClearFieldArgType) -> None: ...
+
+Global___IdentityKeyPairStructure: _TypeAlias = IdentityKeyPairStructure # noqa: Y015
+
+@_typing.final
+class IdentityVerificationState(_message.Message):
+ DESCRIPTOR: _descriptor.Descriptor
+
+ VERIFIED_FIELD_NUMBER: _builtins.int
+ ACTIONSEQ_FIELD_NUMBER: _builtins.int
+ verified: _builtins.bool
+ actionSeq: _builtins.int
+ def __init__(
+ self,
+ *,
+ verified: _builtins.bool | None = ...,
+ actionSeq: _builtins.int | None = ...,
+ ) -> None: ...
+ _HasFieldArgType: _TypeAlias = _typing.Literal["actionSeq", b"actionSeq", "verified", b"verified"] # noqa: Y015
+ def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ...
+ _ClearFieldArgType: _TypeAlias = _typing.Literal["actionSeq", b"actionSeq", "verified", b"verified"] # noqa: Y015
+ def ClearField(self, field_name: _ClearFieldArgType) -> None: ...
+
+Global___IdentityVerificationState: _TypeAlias = IdentityVerificationState # noqa: Y015
+
+@_typing.final
+class InThreadSurveyMetadata(_message.Message):
+ DESCRIPTOR: _descriptor.Descriptor
+
@_typing.final
- class CommentMessage(_message.Message):
+ class InThreadSurveyOption(_message.Message):
DESCRIPTOR: _descriptor.Descriptor
- MESSAGE_FIELD_NUMBER: _builtins.int
- TARGETMESSAGEKEY_FIELD_NUMBER: _builtins.int
- @_builtins.property
- def message(self) -> Global___Message: ...
- @_builtins.property
- def targetMessageKey(self) -> Global___MessageKey: ...
+ STRINGVALUE_FIELD_NUMBER: _builtins.int
+ NUMERICVALUE_FIELD_NUMBER: _builtins.int
+ TEXTTRANSLATED_FIELD_NUMBER: _builtins.int
+ stringValue: _builtins.str
+ numericValue: _builtins.int
+ textTranslated: _builtins.str
def __init__(
self,
*,
- message: Global___Message | None = ...,
- targetMessageKey: Global___MessageKey | None = ...,
+ stringValue: _builtins.str | None = ...,
+ numericValue: _builtins.int | None = ...,
+ textTranslated: _builtins.str | None = ...,
) -> None: ...
- _HasFieldArgType: _TypeAlias = _typing.Literal["message", b"message", "targetMessageKey", b"targetMessageKey"] # noqa: Y015
+ _HasFieldArgType: _TypeAlias = _typing.Literal["numericValue", b"numericValue", "stringValue", b"stringValue", "textTranslated", b"textTranslated"] # noqa: Y015
def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ...
- _ClearFieldArgType: _TypeAlias = _typing.Literal["message", b"message", "targetMessageKey", b"targetMessageKey"] # noqa: Y015
+ _ClearFieldArgType: _TypeAlias = _typing.Literal["numericValue", b"numericValue", "stringValue", b"stringValue", "textTranslated", b"textTranslated"] # noqa: Y015
def ClearField(self, field_name: _ClearFieldArgType) -> None: ...
@_typing.final
- class ConditionalRevealMessage(_message.Message):
+ class InThreadSurveyPrivacyStatementPart(_message.Message):
DESCRIPTOR: _descriptor.Descriptor
- class _ConditionalRevealMessageType:
- ValueType = _typing.NewType("ValueType", _builtins.int)
- V: _TypeAlias = ValueType # noqa: Y015
-
- class _ConditionalRevealMessageTypeEnumTypeWrapper(_enum_type_wrapper._EnumTypeWrapper[Message.ConditionalRevealMessage._ConditionalRevealMessageType.ValueType], _builtins.type):
- DESCRIPTOR: _descriptor.EnumDescriptor
- UNKNOWN: Message.ConditionalRevealMessage._ConditionalRevealMessageType.ValueType # 0
- SCHEDULED_MESSAGE: Message.ConditionalRevealMessage._ConditionalRevealMessageType.ValueType # 1
-
- class ConditionalRevealMessageType(_ConditionalRevealMessageType, metaclass=_ConditionalRevealMessageTypeEnumTypeWrapper): ...
- UNKNOWN: Message.ConditionalRevealMessage.ConditionalRevealMessageType.ValueType # 0
- SCHEDULED_MESSAGE: Message.ConditionalRevealMessage.ConditionalRevealMessageType.ValueType # 1
-
- ENCPAYLOAD_FIELD_NUMBER: _builtins.int
- ENCIV_FIELD_NUMBER: _builtins.int
- CONDITIONALREVEALMESSAGETYPE_FIELD_NUMBER: _builtins.int
- REVEALKEYID_FIELD_NUMBER: _builtins.int
- encPayload: _builtins.bytes
- encIv: _builtins.bytes
- conditionalRevealMessageType: Global___Message.ConditionalRevealMessage.ConditionalRevealMessageType.ValueType
- revealKeyId: _builtins.str
+ TEXT_FIELD_NUMBER: _builtins.int
+ URL_FIELD_NUMBER: _builtins.int
+ text: _builtins.str
+ url: _builtins.str
def __init__(
self,
*,
- encPayload: _builtins.bytes | None = ...,
- encIv: _builtins.bytes | None = ...,
- conditionalRevealMessageType: Global___Message.ConditionalRevealMessage.ConditionalRevealMessageType.ValueType | None = ...,
- revealKeyId: _builtins.str | None = ...,
+ text: _builtins.str | None = ...,
+ url: _builtins.str | None = ...,
) -> None: ...
- _HasFieldArgType: _TypeAlias = _typing.Literal["conditionalRevealMessageType", b"conditionalRevealMessageType", "encIv", b"encIv", "encPayload", b"encPayload", "revealKeyId", b"revealKeyId"] # noqa: Y015
+ _HasFieldArgType: _TypeAlias = _typing.Literal["text", b"text", "url", b"url"] # noqa: Y015
def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ...
- _ClearFieldArgType: _TypeAlias = _typing.Literal["conditionalRevealMessageType", b"conditionalRevealMessageType", "encIv", b"encIv", "encPayload", b"encPayload", "revealKeyId", b"revealKeyId"] # noqa: Y015
+ _ClearFieldArgType: _TypeAlias = _typing.Literal["text", b"text", "url", b"url"] # noqa: Y015
def ClearField(self, field_name: _ClearFieldArgType) -> None: ...
@_typing.final
- class ContactMessage(_message.Message):
+ class InThreadSurveyQuestion(_message.Message):
DESCRIPTOR: _descriptor.Descriptor
- DISPLAYNAME_FIELD_NUMBER: _builtins.int
- VCARD_FIELD_NUMBER: _builtins.int
- CONTEXTINFO_FIELD_NUMBER: _builtins.int
- ISSELFCONTACT_FIELD_NUMBER: _builtins.int
- displayName: _builtins.str
- vcard: _builtins.str
- isSelfContact: _builtins.bool
+ QUESTIONTEXT_FIELD_NUMBER: _builtins.int
+ QUESTIONID_FIELD_NUMBER: _builtins.int
+ QUESTIONOPTIONS_FIELD_NUMBER: _builtins.int
+ questionText: _builtins.str
+ questionId: _builtins.str
@_builtins.property
- def contextInfo(self) -> Global___ContextInfo: ...
+ def questionOptions(self) -> _containers.RepeatedCompositeFieldContainer[Global___InThreadSurveyMetadata.InThreadSurveyOption]: ...
def __init__(
self,
*,
- displayName: _builtins.str | None = ...,
- vcard: _builtins.str | None = ...,
- contextInfo: Global___ContextInfo | None = ...,
- isSelfContact: _builtins.bool | None = ...,
+ questionText: _builtins.str | None = ...,
+ questionId: _builtins.str | None = ...,
+ questionOptions: _abc.Iterable[Global___InThreadSurveyMetadata.InThreadSurveyOption] | None = ...,
) -> None: ...
- _HasFieldArgType: _TypeAlias = _typing.Literal["contextInfo", b"contextInfo", "displayName", b"displayName", "isSelfContact", b"isSelfContact", "vcard", b"vcard"] # noqa: Y015
+ _HasFieldArgType: _TypeAlias = _typing.Literal["questionId", b"questionId", "questionText", b"questionText"] # noqa: Y015
def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ...
- _ClearFieldArgType: _TypeAlias = _typing.Literal["contextInfo", b"contextInfo", "displayName", b"displayName", "isSelfContact", b"isSelfContact", "vcard", b"vcard"] # noqa: Y015
+ _ClearFieldArgType: _TypeAlias = _typing.Literal["questionId", b"questionId", "questionOptions", b"questionOptions", "questionText", b"questionText"] # noqa: Y015
def ClearField(self, field_name: _ClearFieldArgType) -> None: ...
- @_typing.final
- class ContactsArrayMessage(_message.Message):
- DESCRIPTOR: _descriptor.Descriptor
-
- DISPLAYNAME_FIELD_NUMBER: _builtins.int
- CONTACTS_FIELD_NUMBER: _builtins.int
- CONTEXTINFO_FIELD_NUMBER: _builtins.int
- displayName: _builtins.str
- @_builtins.property
- def contacts(self) -> _containers.RepeatedCompositeFieldContainer[Global___Message.ContactMessage]: ...
- @_builtins.property
- def contextInfo(self) -> Global___ContextInfo: ...
- def __init__(
- self,
- *,
- displayName: _builtins.str | None = ...,
- contacts: _abc.Iterable[Global___Message.ContactMessage] | None = ...,
- contextInfo: Global___ContextInfo | None = ...,
- ) -> None: ...
- _HasFieldArgType: _TypeAlias = _typing.Literal["contextInfo", b"contextInfo", "displayName", b"displayName"] # noqa: Y015
- def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ...
- _ClearFieldArgType: _TypeAlias = _typing.Literal["contacts", b"contacts", "contextInfo", b"contextInfo", "displayName", b"displayName"] # noqa: Y015
- def ClearField(self, field_name: _ClearFieldArgType) -> None: ...
+ TESSASESSIONID_FIELD_NUMBER: _builtins.int
+ SIMONSESSIONID_FIELD_NUMBER: _builtins.int
+ SIMONSURVEYID_FIELD_NUMBER: _builtins.int
+ TESSAROOTID_FIELD_NUMBER: _builtins.int
+ REQUESTID_FIELD_NUMBER: _builtins.int
+ TESSAEVENT_FIELD_NUMBER: _builtins.int
+ INVITATIONHEADERTEXT_FIELD_NUMBER: _builtins.int
+ INVITATIONBODYTEXT_FIELD_NUMBER: _builtins.int
+ INVITATIONCTATEXT_FIELD_NUMBER: _builtins.int
+ INVITATIONCTAURL_FIELD_NUMBER: _builtins.int
+ SURVEYTITLE_FIELD_NUMBER: _builtins.int
+ QUESTIONS_FIELD_NUMBER: _builtins.int
+ SURVEYCONTINUEBUTTONTEXT_FIELD_NUMBER: _builtins.int
+ SURVEYSUBMITBUTTONTEXT_FIELD_NUMBER: _builtins.int
+ PRIVACYSTATEMENTFULL_FIELD_NUMBER: _builtins.int
+ PRIVACYSTATEMENTPARTS_FIELD_NUMBER: _builtins.int
+ FEEDBACKTOASTTEXT_FIELD_NUMBER: _builtins.int
+ STARTQUESTIONINDEX_FIELD_NUMBER: _builtins.int
+ tessaSessionId: _builtins.str
+ simonSessionId: _builtins.str
+ simonSurveyId: _builtins.str
+ tessaRootId: _builtins.str
+ requestId: _builtins.str
+ tessaEvent: _builtins.str
+ invitationHeaderText: _builtins.str
+ invitationBodyText: _builtins.str
+ invitationCtaText: _builtins.str
+ invitationCtaUrl: _builtins.str
+ surveyTitle: _builtins.str
+ surveyContinueButtonText: _builtins.str
+ surveySubmitButtonText: _builtins.str
+ privacyStatementFull: _builtins.str
+ feedbackToastText: _builtins.str
+ startQuestionIndex: _builtins.int
+ @_builtins.property
+ def questions(self) -> _containers.RepeatedCompositeFieldContainer[Global___InThreadSurveyMetadata.InThreadSurveyQuestion]: ...
+ @_builtins.property
+ def privacyStatementParts(self) -> _containers.RepeatedCompositeFieldContainer[Global___InThreadSurveyMetadata.InThreadSurveyPrivacyStatementPart]: ...
+ def __init__(
+ self,
+ *,
+ tessaSessionId: _builtins.str | None = ...,
+ simonSessionId: _builtins.str | None = ...,
+ simonSurveyId: _builtins.str | None = ...,
+ tessaRootId: _builtins.str | None = ...,
+ requestId: _builtins.str | None = ...,
+ tessaEvent: _builtins.str | None = ...,
+ invitationHeaderText: _builtins.str | None = ...,
+ invitationBodyText: _builtins.str | None = ...,
+ invitationCtaText: _builtins.str | None = ...,
+ invitationCtaUrl: _builtins.str | None = ...,
+ surveyTitle: _builtins.str | None = ...,
+ questions: _abc.Iterable[Global___InThreadSurveyMetadata.InThreadSurveyQuestion] | None = ...,
+ surveyContinueButtonText: _builtins.str | None = ...,
+ surveySubmitButtonText: _builtins.str | None = ...,
+ privacyStatementFull: _builtins.str | None = ...,
+ privacyStatementParts: _abc.Iterable[Global___InThreadSurveyMetadata.InThreadSurveyPrivacyStatementPart] | None = ...,
+ feedbackToastText: _builtins.str | None = ...,
+ startQuestionIndex: _builtins.int | None = ...,
+ ) -> None: ...
+ _HasFieldArgType: _TypeAlias = _typing.Literal["feedbackToastText", b"feedbackToastText", "invitationBodyText", b"invitationBodyText", "invitationCtaText", b"invitationCtaText", "invitationCtaUrl", b"invitationCtaUrl", "invitationHeaderText", b"invitationHeaderText", "privacyStatementFull", b"privacyStatementFull", "requestId", b"requestId", "simonSessionId", b"simonSessionId", "simonSurveyId", b"simonSurveyId", "startQuestionIndex", b"startQuestionIndex", "surveyContinueButtonText", b"surveyContinueButtonText", "surveySubmitButtonText", b"surveySubmitButtonText", "surveyTitle", b"surveyTitle", "tessaEvent", b"tessaEvent", "tessaRootId", b"tessaRootId", "tessaSessionId", b"tessaSessionId"] # noqa: Y015
+ def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ...
+ _ClearFieldArgType: _TypeAlias = _typing.Literal["feedbackToastText", b"feedbackToastText", "invitationBodyText", b"invitationBodyText", "invitationCtaText", b"invitationCtaText", "invitationCtaUrl", b"invitationCtaUrl", "invitationHeaderText", b"invitationHeaderText", "privacyStatementFull", b"privacyStatementFull", "privacyStatementParts", b"privacyStatementParts", "questions", b"questions", "requestId", b"requestId", "simonSessionId", b"simonSessionId", "simonSurveyId", b"simonSurveyId", "startQuestionIndex", b"startQuestionIndex", "surveyContinueButtonText", b"surveyContinueButtonText", "surveySubmitButtonText", b"surveySubmitButtonText", "surveyTitle", b"surveyTitle", "tessaEvent", b"tessaEvent", "tessaRootId", b"tessaRootId", "tessaSessionId", b"tessaSessionId"] # noqa: Y015
+ def ClearField(self, field_name: _ClearFieldArgType) -> None: ...
- @_typing.final
- class DeclinePaymentRequestMessage(_message.Message):
- DESCRIPTOR: _descriptor.Descriptor
+Global___InThreadSurveyMetadata: _TypeAlias = InThreadSurveyMetadata # noqa: Y015
- KEY_FIELD_NUMBER: _builtins.int
- @_builtins.property
- def key(self) -> Global___MessageKey: ...
- def __init__(
- self,
- *,
- key: Global___MessageKey | None = ...,
- ) -> None: ...
- _HasFieldArgType: _TypeAlias = _typing.Literal["key", b"key"] # noqa: Y015
- def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ...
- _ClearFieldArgType: _TypeAlias = _typing.Literal["key", b"key"] # noqa: Y015
- def ClearField(self, field_name: _ClearFieldArgType) -> None: ...
+@_typing.final
+class InlineContact(_message.Message):
+ DESCRIPTOR: _descriptor.Descriptor
- @_typing.final
- class DeviceSentMessage(_message.Message):
- DESCRIPTOR: _descriptor.Descriptor
+ PNJID_FIELD_NUMBER: _builtins.int
+ LIDJID_FIELD_NUMBER: _builtins.int
+ FULLNAME_FIELD_NUMBER: _builtins.int
+ FIRSTNAME_FIELD_NUMBER: _builtins.int
+ USERNAME_FIELD_NUMBER: _builtins.int
+ pnJid: _builtins.str
+ lidJid: _builtins.str
+ fullName: _builtins.str
+ firstName: _builtins.str
+ username: _builtins.str
+ def __init__(
+ self,
+ *,
+ pnJid: _builtins.str | None = ...,
+ lidJid: _builtins.str | None = ...,
+ fullName: _builtins.str | None = ...,
+ firstName: _builtins.str | None = ...,
+ username: _builtins.str | None = ...,
+ ) -> None: ...
+ _HasFieldArgType: _TypeAlias = _typing.Literal["firstName", b"firstName", "fullName", b"fullName", "lidJid", b"lidJid", "pnJid", b"pnJid", "username", b"username"] # noqa: Y015
+ def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ...
+ _ClearFieldArgType: _TypeAlias = _typing.Literal["firstName", b"firstName", "fullName", b"fullName", "lidJid", b"lidJid", "pnJid", b"pnJid", "username", b"username"] # noqa: Y015
+ def ClearField(self, field_name: _ClearFieldArgType) -> None: ...
- DESTINATIONJID_FIELD_NUMBER: _builtins.int
- MESSAGE_FIELD_NUMBER: _builtins.int
- PHASH_FIELD_NUMBER: _builtins.int
- destinationJid: _builtins.str
- phash: _builtins.str
- @_builtins.property
- def message(self) -> Global___Message: ...
- def __init__(
- self,
- *,
- destinationJid: _builtins.str | None = ...,
- message: Global___Message | None = ...,
- phash: _builtins.str | None = ...,
- ) -> None: ...
- _HasFieldArgType: _TypeAlias = _typing.Literal["destinationJid", b"destinationJid", "message", b"message", "phash", b"phash"] # noqa: Y015
- def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ...
- _ClearFieldArgType: _TypeAlias = _typing.Literal["destinationJid", b"destinationJid", "message", b"message", "phash", b"phash"] # noqa: Y015
- def ClearField(self, field_name: _ClearFieldArgType) -> None: ...
+Global___InlineContact: _TypeAlias = InlineContact # noqa: Y015
- @_typing.final
- class DocumentMessage(_message.Message):
- DESCRIPTOR: _descriptor.Descriptor
+@_typing.final
+class InteractiveAnnotation(_message.Message):
+ DESCRIPTOR: _descriptor.Descriptor
- URL_FIELD_NUMBER: _builtins.int
- MIMETYPE_FIELD_NUMBER: _builtins.int
- TITLE_FIELD_NUMBER: _builtins.int
- FILESHA256_FIELD_NUMBER: _builtins.int
- FILELENGTH_FIELD_NUMBER: _builtins.int
- PAGECOUNT_FIELD_NUMBER: _builtins.int
- MEDIAKEY_FIELD_NUMBER: _builtins.int
- FILENAME_FIELD_NUMBER: _builtins.int
- FILEENCSHA256_FIELD_NUMBER: _builtins.int
- DIRECTPATH_FIELD_NUMBER: _builtins.int
- MEDIAKEYTIMESTAMP_FIELD_NUMBER: _builtins.int
- CONTACTVCARD_FIELD_NUMBER: _builtins.int
- THUMBNAILDIRECTPATH_FIELD_NUMBER: _builtins.int
- THUMBNAILSHA256_FIELD_NUMBER: _builtins.int
- THUMBNAILENCSHA256_FIELD_NUMBER: _builtins.int
- JPEGTHUMBNAIL_FIELD_NUMBER: _builtins.int
- CONTEXTINFO_FIELD_NUMBER: _builtins.int
- THUMBNAILHEIGHT_FIELD_NUMBER: _builtins.int
- THUMBNAILWIDTH_FIELD_NUMBER: _builtins.int
- CAPTION_FIELD_NUMBER: _builtins.int
- ACCESSIBILITYLABEL_FIELD_NUMBER: _builtins.int
- url: _builtins.str
- mimetype: _builtins.str
- title: _builtins.str
- fileSha256: _builtins.bytes
- fileLength: _builtins.int
- pageCount: _builtins.int
- mediaKey: _builtins.bytes
- fileName: _builtins.str
- fileEncSha256: _builtins.bytes
- directPath: _builtins.str
- mediaKeyTimestamp: _builtins.int
- contactVcard: _builtins.bool
- thumbnailDirectPath: _builtins.str
- thumbnailSha256: _builtins.bytes
- thumbnailEncSha256: _builtins.bytes
- jpegThumbnail: _builtins.bytes
- thumbnailHeight: _builtins.int
- thumbnailWidth: _builtins.int
- caption: _builtins.str
- accessibilityLabel: _builtins.str
- @_builtins.property
- def contextInfo(self) -> Global___ContextInfo: ...
- def __init__(
- self,
- *,
- url: _builtins.str | None = ...,
- mimetype: _builtins.str | None = ...,
- title: _builtins.str | None = ...,
- fileSha256: _builtins.bytes | None = ...,
- fileLength: _builtins.int | None = ...,
- pageCount: _builtins.int | None = ...,
- mediaKey: _builtins.bytes | None = ...,
- fileName: _builtins.str | None = ...,
- fileEncSha256: _builtins.bytes | None = ...,
- directPath: _builtins.str | None = ...,
- mediaKeyTimestamp: _builtins.int | None = ...,
- contactVcard: _builtins.bool | None = ...,
- thumbnailDirectPath: _builtins.str | None = ...,
- thumbnailSha256: _builtins.bytes | None = ...,
- thumbnailEncSha256: _builtins.bytes | None = ...,
- jpegThumbnail: _builtins.bytes | None = ...,
- contextInfo: Global___ContextInfo | None = ...,
- thumbnailHeight: _builtins.int | None = ...,
- thumbnailWidth: _builtins.int | None = ...,
- caption: _builtins.str | None = ...,
- accessibilityLabel: _builtins.str | None = ...,
- ) -> None: ...
- _HasFieldArgType: _TypeAlias = _typing.Literal["accessibilityLabel", b"accessibilityLabel", "caption", b"caption", "contactVcard", b"contactVcard", "contextInfo", b"contextInfo", "directPath", b"directPath", "fileEncSha256", b"fileEncSha256", "fileLength", b"fileLength", "fileName", b"fileName", "fileSha256", b"fileSha256", "jpegThumbnail", b"jpegThumbnail", "mediaKey", b"mediaKey", "mediaKeyTimestamp", b"mediaKeyTimestamp", "mimetype", b"mimetype", "pageCount", b"pageCount", "thumbnailDirectPath", b"thumbnailDirectPath", "thumbnailEncSha256", b"thumbnailEncSha256", "thumbnailHeight", b"thumbnailHeight", "thumbnailSha256", b"thumbnailSha256", "thumbnailWidth", b"thumbnailWidth", "title", b"title", "url", b"url"] # noqa: Y015
- def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ...
- _ClearFieldArgType: _TypeAlias = _typing.Literal["accessibilityLabel", b"accessibilityLabel", "caption", b"caption", "contactVcard", b"contactVcard", "contextInfo", b"contextInfo", "directPath", b"directPath", "fileEncSha256", b"fileEncSha256", "fileLength", b"fileLength", "fileName", b"fileName", "fileSha256", b"fileSha256", "jpegThumbnail", b"jpegThumbnail", "mediaKey", b"mediaKey", "mediaKeyTimestamp", b"mediaKeyTimestamp", "mimetype", b"mimetype", "pageCount", b"pageCount", "thumbnailDirectPath", b"thumbnailDirectPath", "thumbnailEncSha256", b"thumbnailEncSha256", "thumbnailHeight", b"thumbnailHeight", "thumbnailSha256", b"thumbnailSha256", "thumbnailWidth", b"thumbnailWidth", "title", b"title", "url", b"url"] # noqa: Y015
- def ClearField(self, field_name: _ClearFieldArgType) -> None: ...
+ class _StatusLinkType:
+ ValueType = _typing.NewType("ValueType", _builtins.int)
+ V: _TypeAlias = ValueType # noqa: Y015
- @_typing.final
- class EncCommentMessage(_message.Message):
- DESCRIPTOR: _descriptor.Descriptor
+ class _StatusLinkTypeEnumTypeWrapper(_enum_type_wrapper._EnumTypeWrapper[InteractiveAnnotation._StatusLinkType.ValueType], _builtins.type):
+ DESCRIPTOR: _descriptor.EnumDescriptor
+ RASTERIZED_LINK_PREVIEW: InteractiveAnnotation._StatusLinkType.ValueType # 1
+ RASTERIZED_LINK_TRUNCATED: InteractiveAnnotation._StatusLinkType.ValueType # 2
+ RASTERIZED_LINK_FULL_URL: InteractiveAnnotation._StatusLinkType.ValueType # 3
- TARGETMESSAGEKEY_FIELD_NUMBER: _builtins.int
- ENCPAYLOAD_FIELD_NUMBER: _builtins.int
- ENCIV_FIELD_NUMBER: _builtins.int
- encPayload: _builtins.bytes
- encIv: _builtins.bytes
- @_builtins.property
- def targetMessageKey(self) -> Global___MessageKey: ...
- def __init__(
- self,
- *,
- targetMessageKey: Global___MessageKey | None = ...,
- encPayload: _builtins.bytes | None = ...,
- encIv: _builtins.bytes | None = ...,
- ) -> None: ...
- _HasFieldArgType: _TypeAlias = _typing.Literal["encIv", b"encIv", "encPayload", b"encPayload", "targetMessageKey", b"targetMessageKey"] # noqa: Y015
- def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ...
- _ClearFieldArgType: _TypeAlias = _typing.Literal["encIv", b"encIv", "encPayload", b"encPayload", "targetMessageKey", b"targetMessageKey"] # noqa: Y015
- def ClearField(self, field_name: _ClearFieldArgType) -> None: ...
+ class StatusLinkType(_StatusLinkType, metaclass=_StatusLinkTypeEnumTypeWrapper): ...
+ RASTERIZED_LINK_PREVIEW: InteractiveAnnotation.StatusLinkType.ValueType # 1
+ RASTERIZED_LINK_TRUNCATED: InteractiveAnnotation.StatusLinkType.ValueType # 2
+ RASTERIZED_LINK_FULL_URL: InteractiveAnnotation.StatusLinkType.ValueType # 3
- @_typing.final
- class EncEventResponseMessage(_message.Message):
- DESCRIPTOR: _descriptor.Descriptor
+ POLYGONVERTICES_FIELD_NUMBER: _builtins.int
+ SHOULDSKIPCONFIRMATION_FIELD_NUMBER: _builtins.int
+ EMBEDDEDCONTENT_FIELD_NUMBER: _builtins.int
+ STATUSLINKTYPE_FIELD_NUMBER: _builtins.int
+ LOCATION_FIELD_NUMBER: _builtins.int
+ NEWSLETTER_FIELD_NUMBER: _builtins.int
+ EMBEDDEDACTION_FIELD_NUMBER: _builtins.int
+ TAPACTION_FIELD_NUMBER: _builtins.int
+ shouldSkipConfirmation: _builtins.bool
+ statusLinkType: Global___InteractiveAnnotation.StatusLinkType.ValueType
+ embeddedAction: _builtins.bool
+ @_builtins.property
+ def polygonVertices(self) -> _containers.RepeatedCompositeFieldContainer[Global___Point]: ...
+ @_builtins.property
+ def embeddedContent(self) -> Global___EmbeddedContent: ...
+ @_builtins.property
+ def location(self) -> Global___Location: ...
+ @_builtins.property
+ def newsletter(self) -> Global___ContextInfo.ForwardedNewsletterMessageInfo: ...
+ @_builtins.property
+ def tapAction(self) -> Global___TapLinkAction: ...
+ def __init__(
+ self,
+ *,
+ polygonVertices: _abc.Iterable[Global___Point] | None = ...,
+ shouldSkipConfirmation: _builtins.bool | None = ...,
+ embeddedContent: Global___EmbeddedContent | None = ...,
+ statusLinkType: Global___InteractiveAnnotation.StatusLinkType.ValueType | None = ...,
+ location: Global___Location | None = ...,
+ newsletter: Global___ContextInfo.ForwardedNewsletterMessageInfo | None = ...,
+ embeddedAction: _builtins.bool | None = ...,
+ tapAction: Global___TapLinkAction | None = ...,
+ ) -> None: ...
+ _HasFieldArgType: _TypeAlias = _typing.Literal["action", b"action", "embeddedAction", b"embeddedAction", "embeddedContent", b"embeddedContent", "location", b"location", "newsletter", b"newsletter", "shouldSkipConfirmation", b"shouldSkipConfirmation", "statusLinkType", b"statusLinkType", "tapAction", b"tapAction"] # noqa: Y015
+ def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ...
+ _ClearFieldArgType: _TypeAlias = _typing.Literal["action", b"action", "embeddedAction", b"embeddedAction", "embeddedContent", b"embeddedContent", "location", b"location", "newsletter", b"newsletter", "polygonVertices", b"polygonVertices", "shouldSkipConfirmation", b"shouldSkipConfirmation", "statusLinkType", b"statusLinkType", "tapAction", b"tapAction"] # noqa: Y015
+ def ClearField(self, field_name: _ClearFieldArgType) -> None: ...
+ _WhichOneofReturnType_action: _TypeAlias = _typing.Literal["location", "newsletter", "embeddedAction", "tapAction"] # noqa: Y015
+ _WhichOneofArgType_action: _TypeAlias = _typing.Literal["action", b"action"] # noqa: Y015
+ def WhichOneof(self, oneof_group: _WhichOneofArgType_action) -> _WhichOneofReturnType_action | None: ...
- EVENTCREATIONMESSAGEKEY_FIELD_NUMBER: _builtins.int
- ENCPAYLOAD_FIELD_NUMBER: _builtins.int
- ENCIV_FIELD_NUMBER: _builtins.int
- encPayload: _builtins.bytes
- encIv: _builtins.bytes
- @_builtins.property
- def eventCreationMessageKey(self) -> Global___MessageKey: ...
- def __init__(
- self,
- *,
- eventCreationMessageKey: Global___MessageKey | None = ...,
- encPayload: _builtins.bytes | None = ...,
- encIv: _builtins.bytes | None = ...,
- ) -> None: ...
- _HasFieldArgType: _TypeAlias = _typing.Literal["encIv", b"encIv", "encPayload", b"encPayload", "eventCreationMessageKey", b"eventCreationMessageKey"] # noqa: Y015
- def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ...
- _ClearFieldArgType: _TypeAlias = _typing.Literal["encIv", b"encIv", "encPayload", b"encPayload", "eventCreationMessageKey", b"eventCreationMessageKey"] # noqa: Y015
- def ClearField(self, field_name: _ClearFieldArgType) -> None: ...
+Global___InteractiveAnnotation: _TypeAlias = InteractiveAnnotation # noqa: Y015
- @_typing.final
- class EncReactionMessage(_message.Message):
- DESCRIPTOR: _descriptor.Descriptor
+@_typing.final
+class InteractiveMessageAdditionalMetadata(_message.Message):
+ DESCRIPTOR: _descriptor.Descriptor
- TARGETMESSAGEKEY_FIELD_NUMBER: _builtins.int
- ENCPAYLOAD_FIELD_NUMBER: _builtins.int
- ENCIV_FIELD_NUMBER: _builtins.int
- encPayload: _builtins.bytes
- encIv: _builtins.bytes
- @_builtins.property
- def targetMessageKey(self) -> Global___MessageKey: ...
- def __init__(
- self,
- *,
- targetMessageKey: Global___MessageKey | None = ...,
- encPayload: _builtins.bytes | None = ...,
- encIv: _builtins.bytes | None = ...,
- ) -> None: ...
- _HasFieldArgType: _TypeAlias = _typing.Literal["encIv", b"encIv", "encPayload", b"encPayload", "targetMessageKey", b"targetMessageKey"] # noqa: Y015
- def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ...
- _ClearFieldArgType: _TypeAlias = _typing.Literal["encIv", b"encIv", "encPayload", b"encPayload", "targetMessageKey", b"targetMessageKey"] # noqa: Y015
- def ClearField(self, field_name: _ClearFieldArgType) -> None: ...
+ ISGALAXYFLOWCOMPLETED_FIELD_NUMBER: _builtins.int
+ isGalaxyFlowCompleted: _builtins.bool
+ def __init__(
+ self,
+ *,
+ isGalaxyFlowCompleted: _builtins.bool | None = ...,
+ ) -> None: ...
+ _HasFieldArgType: _TypeAlias = _typing.Literal["isGalaxyFlowCompleted", b"isGalaxyFlowCompleted"] # noqa: Y015
+ def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ...
+ _ClearFieldArgType: _TypeAlias = _typing.Literal["isGalaxyFlowCompleted", b"isGalaxyFlowCompleted"] # noqa: Y015
+ def ClearField(self, field_name: _ClearFieldArgType) -> None: ...
- @_typing.final
- class EventInviteMessage(_message.Message):
- DESCRIPTOR: _descriptor.Descriptor
+Global___InteractiveMessageAdditionalMetadata: _TypeAlias = InteractiveMessageAdditionalMetadata # noqa: Y015
- CONTEXTINFO_FIELD_NUMBER: _builtins.int
- EVENTID_FIELD_NUMBER: _builtins.int
- EVENTTITLE_FIELD_NUMBER: _builtins.int
- JPEGTHUMBNAIL_FIELD_NUMBER: _builtins.int
- STARTTIME_FIELD_NUMBER: _builtins.int
- CAPTION_FIELD_NUMBER: _builtins.int
- ISCANCELED_FIELD_NUMBER: _builtins.int
- ENDTIME_FIELD_NUMBER: _builtins.int
- CALLLINK_FIELD_NUMBER: _builtins.int
- eventId: _builtins.str
- eventTitle: _builtins.str
- jpegThumbnail: _builtins.bytes
- startTime: _builtins.int
- caption: _builtins.str
- isCanceled: _builtins.bool
- endTime: _builtins.int
- callLink: _builtins.str
- @_builtins.property
- def contextInfo(self) -> Global___ContextInfo: ...
- def __init__(
- self,
- *,
- contextInfo: Global___ContextInfo | None = ...,
- eventId: _builtins.str | None = ...,
- eventTitle: _builtins.str | None = ...,
- jpegThumbnail: _builtins.bytes | None = ...,
- startTime: _builtins.int | None = ...,
- caption: _builtins.str | None = ...,
- isCanceled: _builtins.bool | None = ...,
- endTime: _builtins.int | None = ...,
- callLink: _builtins.str | None = ...,
- ) -> None: ...
- _HasFieldArgType: _TypeAlias = _typing.Literal["callLink", b"callLink", "caption", b"caption", "contextInfo", b"contextInfo", "endTime", b"endTime", "eventId", b"eventId", "eventTitle", b"eventTitle", "isCanceled", b"isCanceled", "jpegThumbnail", b"jpegThumbnail", "startTime", b"startTime"] # noqa: Y015
- def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ...
- _ClearFieldArgType: _TypeAlias = _typing.Literal["callLink", b"callLink", "caption", b"caption", "contextInfo", b"contextInfo", "endTime", b"endTime", "eventId", b"eventId", "eventTitle", b"eventTitle", "isCanceled", b"isCanceled", "jpegThumbnail", b"jpegThumbnail", "startTime", b"startTime"] # noqa: Y015
- def ClearField(self, field_name: _ClearFieldArgType) -> None: ...
+@_typing.final
+class KeepInChat(_message.Message):
+ DESCRIPTOR: _descriptor.Descriptor
- @_typing.final
- class EventMessage(_message.Message):
- DESCRIPTOR: _descriptor.Descriptor
+ KEEPTYPE_FIELD_NUMBER: _builtins.int
+ SERVERTIMESTAMP_FIELD_NUMBER: _builtins.int
+ KEY_FIELD_NUMBER: _builtins.int
+ DEVICEJID_FIELD_NUMBER: _builtins.int
+ CLIENTTIMESTAMPMS_FIELD_NUMBER: _builtins.int
+ SERVERTIMESTAMPMS_FIELD_NUMBER: _builtins.int
+ keepType: Global___KeepType.ValueType
+ serverTimestamp: _builtins.int
+ deviceJid: _builtins.str
+ clientTimestampMs: _builtins.int
+ serverTimestampMs: _builtins.int
+ @_builtins.property
+ def key(self) -> Global___MessageKey: ...
+ def __init__(
+ self,
+ *,
+ keepType: Global___KeepType.ValueType | None = ...,
+ serverTimestamp: _builtins.int | None = ...,
+ key: Global___MessageKey | None = ...,
+ deviceJid: _builtins.str | None = ...,
+ clientTimestampMs: _builtins.int | None = ...,
+ serverTimestampMs: _builtins.int | None = ...,
+ ) -> None: ...
+ _HasFieldArgType: _TypeAlias = _typing.Literal["clientTimestampMs", b"clientTimestampMs", "deviceJid", b"deviceJid", "keepType", b"keepType", "key", b"key", "serverTimestamp", b"serverTimestamp", "serverTimestampMs", b"serverTimestampMs"] # noqa: Y015
+ def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ...
+ _ClearFieldArgType: _TypeAlias = _typing.Literal["clientTimestampMs", b"clientTimestampMs", "deviceJid", b"deviceJid", "keepType", b"keepType", "key", b"key", "serverTimestamp", b"serverTimestamp", "serverTimestampMs", b"serverTimestampMs"] # noqa: Y015
+ def ClearField(self, field_name: _ClearFieldArgType) -> None: ...
- CONTEXTINFO_FIELD_NUMBER: _builtins.int
- ISCANCELED_FIELD_NUMBER: _builtins.int
- NAME_FIELD_NUMBER: _builtins.int
- DESCRIPTION_FIELD_NUMBER: _builtins.int
- LOCATION_FIELD_NUMBER: _builtins.int
- JOINLINK_FIELD_NUMBER: _builtins.int
- STARTTIME_FIELD_NUMBER: _builtins.int
- ENDTIME_FIELD_NUMBER: _builtins.int
- EXTRAGUESTSALLOWED_FIELD_NUMBER: _builtins.int
- ISSCHEDULECALL_FIELD_NUMBER: _builtins.int
- HASREMINDER_FIELD_NUMBER: _builtins.int
- REMINDEROFFSETSEC_FIELD_NUMBER: _builtins.int
- isCanceled: _builtins.bool
- name: _builtins.str
- description: _builtins.str
- joinLink: _builtins.str
- startTime: _builtins.int
- endTime: _builtins.int
- extraGuestsAllowed: _builtins.bool
- isScheduleCall: _builtins.bool
- hasReminder: _builtins.bool
- reminderOffsetSec: _builtins.int
- @_builtins.property
- def contextInfo(self) -> Global___ContextInfo: ...
- @_builtins.property
- def location(self) -> Global___Message.LocationMessage: ...
- def __init__(
- self,
- *,
- contextInfo: Global___ContextInfo | None = ...,
- isCanceled: _builtins.bool | None = ...,
- name: _builtins.str | None = ...,
- description: _builtins.str | None = ...,
- location: Global___Message.LocationMessage | None = ...,
- joinLink: _builtins.str | None = ...,
- startTime: _builtins.int | None = ...,
- endTime: _builtins.int | None = ...,
- extraGuestsAllowed: _builtins.bool | None = ...,
- isScheduleCall: _builtins.bool | None = ...,
- hasReminder: _builtins.bool | None = ...,
- reminderOffsetSec: _builtins.int | None = ...,
- ) -> None: ...
- _HasFieldArgType: _TypeAlias = _typing.Literal["contextInfo", b"contextInfo", "description", b"description", "endTime", b"endTime", "extraGuestsAllowed", b"extraGuestsAllowed", "hasReminder", b"hasReminder", "isCanceled", b"isCanceled", "isScheduleCall", b"isScheduleCall", "joinLink", b"joinLink", "location", b"location", "name", b"name", "reminderOffsetSec", b"reminderOffsetSec", "startTime", b"startTime"] # noqa: Y015
- def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ...
- _ClearFieldArgType: _TypeAlias = _typing.Literal["contextInfo", b"contextInfo", "description", b"description", "endTime", b"endTime", "extraGuestsAllowed", b"extraGuestsAllowed", "hasReminder", b"hasReminder", "isCanceled", b"isCanceled", "isScheduleCall", b"isScheduleCall", "joinLink", b"joinLink", "location", b"location", "name", b"name", "reminderOffsetSec", b"reminderOffsetSec", "startTime", b"startTime"] # noqa: Y015
- def ClearField(self, field_name: _ClearFieldArgType) -> None: ...
+Global___KeepInChat: _TypeAlias = KeepInChat # noqa: Y015
- @_typing.final
- class EventResponseMessage(_message.Message):
- DESCRIPTOR: _descriptor.Descriptor
+@_typing.final
+class KeyExchangeMessage(_message.Message):
+ DESCRIPTOR: _descriptor.Descriptor
- class _EventResponseType:
- ValueType = _typing.NewType("ValueType", _builtins.int)
- V: _TypeAlias = ValueType # noqa: Y015
+ ID_FIELD_NUMBER: _builtins.int
+ BASEKEY_FIELD_NUMBER: _builtins.int
+ RATCHETKEY_FIELD_NUMBER: _builtins.int
+ IDENTITYKEY_FIELD_NUMBER: _builtins.int
+ BASEKEYSIGNATURE_FIELD_NUMBER: _builtins.int
+ id: _builtins.int
+ baseKey: _builtins.bytes
+ ratchetKey: _builtins.bytes
+ identityKey: _builtins.bytes
+ baseKeySignature: _builtins.bytes
+ def __init__(
+ self,
+ *,
+ id: _builtins.int | None = ...,
+ baseKey: _builtins.bytes | None = ...,
+ ratchetKey: _builtins.bytes | None = ...,
+ identityKey: _builtins.bytes | None = ...,
+ baseKeySignature: _builtins.bytes | None = ...,
+ ) -> None: ...
+ _HasFieldArgType: _TypeAlias = _typing.Literal["baseKey", b"baseKey", "baseKeySignature", b"baseKeySignature", "id", b"id", "identityKey", b"identityKey", "ratchetKey", b"ratchetKey"] # noqa: Y015
+ def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ...
+ _ClearFieldArgType: _TypeAlias = _typing.Literal["baseKey", b"baseKey", "baseKeySignature", b"baseKeySignature", "id", b"id", "identityKey", b"identityKey", "ratchetKey", b"ratchetKey"] # noqa: Y015
+ def ClearField(self, field_name: _ClearFieldArgType) -> None: ...
- class _EventResponseTypeEnumTypeWrapper(_enum_type_wrapper._EnumTypeWrapper[Message.EventResponseMessage._EventResponseType.ValueType], _builtins.type):
- DESCRIPTOR: _descriptor.EnumDescriptor
- UNKNOWN: Message.EventResponseMessage._EventResponseType.ValueType # 0
- GOING: Message.EventResponseMessage._EventResponseType.ValueType # 1
- NOT_GOING: Message.EventResponseMessage._EventResponseType.ValueType # 2
- MAYBE: Message.EventResponseMessage._EventResponseType.ValueType # 3
+Global___KeyExchangeMessage: _TypeAlias = KeyExchangeMessage # noqa: Y015
- class EventResponseType(_EventResponseType, metaclass=_EventResponseTypeEnumTypeWrapper): ...
- UNKNOWN: Message.EventResponseMessage.EventResponseType.ValueType # 0
- GOING: Message.EventResponseMessage.EventResponseType.ValueType # 1
- NOT_GOING: Message.EventResponseMessage.EventResponseType.ValueType # 2
- MAYBE: Message.EventResponseMessage.EventResponseType.ValueType # 3
+@_typing.final
+class KeyId(_message.Message):
+ DESCRIPTOR: _descriptor.Descriptor
- RESPONSE_FIELD_NUMBER: _builtins.int
- TIMESTAMPMS_FIELD_NUMBER: _builtins.int
- EXTRAGUESTCOUNT_FIELD_NUMBER: _builtins.int
- response: Global___Message.EventResponseMessage.EventResponseType.ValueType
- timestampMs: _builtins.int
- extraGuestCount: _builtins.int
- def __init__(
- self,
- *,
- response: Global___Message.EventResponseMessage.EventResponseType.ValueType | None = ...,
- timestampMs: _builtins.int | None = ...,
- extraGuestCount: _builtins.int | None = ...,
- ) -> None: ...
- _HasFieldArgType: _TypeAlias = _typing.Literal["extraGuestCount", b"extraGuestCount", "response", b"response", "timestampMs", b"timestampMs"] # noqa: Y015
- def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ...
- _ClearFieldArgType: _TypeAlias = _typing.Literal["extraGuestCount", b"extraGuestCount", "response", b"response", "timestampMs", b"timestampMs"] # noqa: Y015
- def ClearField(self, field_name: _ClearFieldArgType) -> None: ...
+ ID_FIELD_NUMBER: _builtins.int
+ id: _builtins.bytes
+ def __init__(
+ self,
+ *,
+ id: _builtins.bytes | None = ...,
+ ) -> None: ...
+ _HasFieldArgType: _TypeAlias = _typing.Literal["id", b"id"] # noqa: Y015
+ def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ...
+ _ClearFieldArgType: _TypeAlias = _typing.Literal["id", b"id"] # noqa: Y015
+ def ClearField(self, field_name: _ClearFieldArgType) -> None: ...
- @_typing.final
- class ExtendedTextMessage(_message.Message):
- DESCRIPTOR: _descriptor.Descriptor
+Global___KeyId: _TypeAlias = KeyId # noqa: Y015
- class _FontType:
- ValueType = _typing.NewType("ValueType", _builtins.int)
- V: _TypeAlias = ValueType # noqa: Y015
+@_typing.final
+class LIDMigrationMappingSyncMessage(_message.Message):
+ DESCRIPTOR: _descriptor.Descriptor
- class _FontTypeEnumTypeWrapper(_enum_type_wrapper._EnumTypeWrapper[Message.ExtendedTextMessage._FontType.ValueType], _builtins.type):
- DESCRIPTOR: _descriptor.EnumDescriptor
- SYSTEM: Message.ExtendedTextMessage._FontType.ValueType # 0
- SYSTEM_TEXT: Message.ExtendedTextMessage._FontType.ValueType # 1
- FB_SCRIPT: Message.ExtendedTextMessage._FontType.ValueType # 2
- SYSTEM_BOLD: Message.ExtendedTextMessage._FontType.ValueType # 6
- MORNINGBREEZE_REGULAR: Message.ExtendedTextMessage._FontType.ValueType # 7
- CALISTOGA_REGULAR: Message.ExtendedTextMessage._FontType.ValueType # 8
- EXO2_EXTRABOLD: Message.ExtendedTextMessage._FontType.ValueType # 9
- COURIERPRIME_BOLD: Message.ExtendedTextMessage._FontType.ValueType # 10
+ ENCODEDMAPPINGPAYLOAD_FIELD_NUMBER: _builtins.int
+ encodedMappingPayload: _builtins.bytes
+ def __init__(
+ self,
+ *,
+ encodedMappingPayload: _builtins.bytes | None = ...,
+ ) -> None: ...
+ _HasFieldArgType: _TypeAlias = _typing.Literal["encodedMappingPayload", b"encodedMappingPayload"] # noqa: Y015
+ def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ...
+ _ClearFieldArgType: _TypeAlias = _typing.Literal["encodedMappingPayload", b"encodedMappingPayload"] # noqa: Y015
+ def ClearField(self, field_name: _ClearFieldArgType) -> None: ...
- class FontType(_FontType, metaclass=_FontTypeEnumTypeWrapper): ...
- SYSTEM: Message.ExtendedTextMessage.FontType.ValueType # 0
- SYSTEM_TEXT: Message.ExtendedTextMessage.FontType.ValueType # 1
- FB_SCRIPT: Message.ExtendedTextMessage.FontType.ValueType # 2
- SYSTEM_BOLD: Message.ExtendedTextMessage.FontType.ValueType # 6
- MORNINGBREEZE_REGULAR: Message.ExtendedTextMessage.FontType.ValueType # 7
- CALISTOGA_REGULAR: Message.ExtendedTextMessage.FontType.ValueType # 8
- EXO2_EXTRABOLD: Message.ExtendedTextMessage.FontType.ValueType # 9
- COURIERPRIME_BOLD: Message.ExtendedTextMessage.FontType.ValueType # 10
+Global___LIDMigrationMappingSyncMessage: _TypeAlias = LIDMigrationMappingSyncMessage # noqa: Y015
- class _InviteLinkGroupType:
- ValueType = _typing.NewType("ValueType", _builtins.int)
- V: _TypeAlias = ValueType # noqa: Y015
+@_typing.final
+class LIDMigrationMapping(_message.Message):
+ """Retained locally: WA dropped these from the public JS bundle, but the wire
+ still carries them as the protobuf-encoded `encodedMappingPayload` above.
+ """
- class _InviteLinkGroupTypeEnumTypeWrapper(_enum_type_wrapper._EnumTypeWrapper[Message.ExtendedTextMessage._InviteLinkGroupType.ValueType], _builtins.type):
- DESCRIPTOR: _descriptor.EnumDescriptor
- DEFAULT: Message.ExtendedTextMessage._InviteLinkGroupType.ValueType # 0
- PARENT: Message.ExtendedTextMessage._InviteLinkGroupType.ValueType # 1
- SUB: Message.ExtendedTextMessage._InviteLinkGroupType.ValueType # 2
- DEFAULT_SUB: Message.ExtendedTextMessage._InviteLinkGroupType.ValueType # 3
+ DESCRIPTOR: _descriptor.Descriptor
- class InviteLinkGroupType(_InviteLinkGroupType, metaclass=_InviteLinkGroupTypeEnumTypeWrapper): ...
- DEFAULT: Message.ExtendedTextMessage.InviteLinkGroupType.ValueType # 0
- PARENT: Message.ExtendedTextMessage.InviteLinkGroupType.ValueType # 1
- SUB: Message.ExtendedTextMessage.InviteLinkGroupType.ValueType # 2
- DEFAULT_SUB: Message.ExtendedTextMessage.InviteLinkGroupType.ValueType # 3
+ PN_FIELD_NUMBER: _builtins.int
+ ASSIGNEDLID_FIELD_NUMBER: _builtins.int
+ LATESTLID_FIELD_NUMBER: _builtins.int
+ pn: _builtins.int
+ assignedLid: _builtins.int
+ latestLid: _builtins.int
+ def __init__(
+ self,
+ *,
+ pn: _builtins.int | None = ...,
+ assignedLid: _builtins.int | None = ...,
+ latestLid: _builtins.int | None = ...,
+ ) -> None: ...
+ _HasFieldArgType: _TypeAlias = _typing.Literal["assignedLid", b"assignedLid", "latestLid", b"latestLid", "pn", b"pn"] # noqa: Y015
+ def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ...
+ _ClearFieldArgType: _TypeAlias = _typing.Literal["assignedLid", b"assignedLid", "latestLid", b"latestLid", "pn", b"pn"] # noqa: Y015
+ def ClearField(self, field_name: _ClearFieldArgType) -> None: ...
- class _PreviewType:
- ValueType = _typing.NewType("ValueType", _builtins.int)
- V: _TypeAlias = ValueType # noqa: Y015
+Global___LIDMigrationMapping: _TypeAlias = LIDMigrationMapping # noqa: Y015
- class _PreviewTypeEnumTypeWrapper(_enum_type_wrapper._EnumTypeWrapper[Message.ExtendedTextMessage._PreviewType.ValueType], _builtins.type):
- DESCRIPTOR: _descriptor.EnumDescriptor
- NONE: Message.ExtendedTextMessage._PreviewType.ValueType # 0
- VIDEO: Message.ExtendedTextMessage._PreviewType.ValueType # 1
- PLACEHOLDER: Message.ExtendedTextMessage._PreviewType.ValueType # 4
- IMAGE: Message.ExtendedTextMessage._PreviewType.ValueType # 5
- PAYMENT_LINKS: Message.ExtendedTextMessage._PreviewType.ValueType # 6
- PROFILE: Message.ExtendedTextMessage._PreviewType.ValueType # 7
+@_typing.final
+class LIDMigrationMappingSyncPayload(_message.Message):
+ DESCRIPTOR: _descriptor.Descriptor
- class PreviewType(_PreviewType, metaclass=_PreviewTypeEnumTypeWrapper): ...
- NONE: Message.ExtendedTextMessage.PreviewType.ValueType # 0
- VIDEO: Message.ExtendedTextMessage.PreviewType.ValueType # 1
- PLACEHOLDER: Message.ExtendedTextMessage.PreviewType.ValueType # 4
- IMAGE: Message.ExtendedTextMessage.PreviewType.ValueType # 5
- PAYMENT_LINKS: Message.ExtendedTextMessage.PreviewType.ValueType # 6
- PROFILE: Message.ExtendedTextMessage.PreviewType.ValueType # 7
+ PNTOLIDMAPPINGS_FIELD_NUMBER: _builtins.int
+ CHATDBMIGRATIONTIMESTAMP_FIELD_NUMBER: _builtins.int
+ chatDbMigrationTimestamp: _builtins.int
+ @_builtins.property
+ def pnToLidMappings(self) -> _containers.RepeatedCompositeFieldContainer[Global___LIDMigrationMapping]: ...
+ def __init__(
+ self,
+ *,
+ pnToLidMappings: _abc.Iterable[Global___LIDMigrationMapping] | None = ...,
+ chatDbMigrationTimestamp: _builtins.int | None = ...,
+ ) -> None: ...
+ _HasFieldArgType: _TypeAlias = _typing.Literal["chatDbMigrationTimestamp", b"chatDbMigrationTimestamp"] # noqa: Y015
+ def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ...
+ _ClearFieldArgType: _TypeAlias = _typing.Literal["chatDbMigrationTimestamp", b"chatDbMigrationTimestamp", "pnToLidMappings", b"pnToLidMappings"] # noqa: Y015
+ def ClearField(self, field_name: _ClearFieldArgType) -> None: ...
- TEXT_FIELD_NUMBER: _builtins.int
- MATCHEDTEXT_FIELD_NUMBER: _builtins.int
- DESCRIPTION_FIELD_NUMBER: _builtins.int
- TITLE_FIELD_NUMBER: _builtins.int
- TEXTARGB_FIELD_NUMBER: _builtins.int
- BACKGROUNDARGB_FIELD_NUMBER: _builtins.int
- FONT_FIELD_NUMBER: _builtins.int
- PREVIEWTYPE_FIELD_NUMBER: _builtins.int
- JPEGTHUMBNAIL_FIELD_NUMBER: _builtins.int
- CONTEXTINFO_FIELD_NUMBER: _builtins.int
- DONOTPLAYINLINE_FIELD_NUMBER: _builtins.int
- THUMBNAILDIRECTPATH_FIELD_NUMBER: _builtins.int
- THUMBNAILSHA256_FIELD_NUMBER: _builtins.int
- THUMBNAILENCSHA256_FIELD_NUMBER: _builtins.int
- MEDIAKEY_FIELD_NUMBER: _builtins.int
- MEDIAKEYTIMESTAMP_FIELD_NUMBER: _builtins.int
- THUMBNAILHEIGHT_FIELD_NUMBER: _builtins.int
- THUMBNAILWIDTH_FIELD_NUMBER: _builtins.int
- INVITELINKGROUPTYPE_FIELD_NUMBER: _builtins.int
- INVITELINKPARENTGROUPSUBJECTV2_FIELD_NUMBER: _builtins.int
- INVITELINKPARENTGROUPTHUMBNAILV2_FIELD_NUMBER: _builtins.int
- INVITELINKGROUPTYPEV2_FIELD_NUMBER: _builtins.int
- VIEWONCE_FIELD_NUMBER: _builtins.int
- VIDEOHEIGHT_FIELD_NUMBER: _builtins.int
- VIDEOWIDTH_FIELD_NUMBER: _builtins.int
- FAVICONMMSMETADATA_FIELD_NUMBER: _builtins.int
- LINKPREVIEWMETADATA_FIELD_NUMBER: _builtins.int
- PAYMENTLINKMETADATA_FIELD_NUMBER: _builtins.int
- ENDCARDTILES_FIELD_NUMBER: _builtins.int
- VIDEOCONTENTURL_FIELD_NUMBER: _builtins.int
- MUSICMETADATA_FIELD_NUMBER: _builtins.int
- PAYMENTEXTENDEDMETADATA_FIELD_NUMBER: _builtins.int
- text: _builtins.str
- matchedText: _builtins.str
- description: _builtins.str
- title: _builtins.str
- textArgb: _builtins.int
- backgroundArgb: _builtins.int
- font: Global___Message.ExtendedTextMessage.FontType.ValueType
- previewType: Global___Message.ExtendedTextMessage.PreviewType.ValueType
- jpegThumbnail: _builtins.bytes
- doNotPlayInline: _builtins.bool
- thumbnailDirectPath: _builtins.str
- thumbnailSha256: _builtins.bytes
- thumbnailEncSha256: _builtins.bytes
- mediaKey: _builtins.bytes
- mediaKeyTimestamp: _builtins.int
- thumbnailHeight: _builtins.int
- thumbnailWidth: _builtins.int
- inviteLinkGroupType: Global___Message.ExtendedTextMessage.InviteLinkGroupType.ValueType
- inviteLinkParentGroupSubjectV2: _builtins.str
- inviteLinkParentGroupThumbnailV2: _builtins.bytes
- inviteLinkGroupTypeV2: Global___Message.ExtendedTextMessage.InviteLinkGroupType.ValueType
- viewOnce: _builtins.bool
- videoHeight: _builtins.int
- videoWidth: _builtins.int
- videoContentUrl: _builtins.str
- @_builtins.property
- def contextInfo(self) -> Global___ContextInfo: ...
- @_builtins.property
- def faviconMMSMetadata(self) -> Global___Message.MMSThumbnailMetadata: ...
- @_builtins.property
- def linkPreviewMetadata(self) -> Global___Message.LinkPreviewMetadata: ...
- @_builtins.property
- def paymentLinkMetadata(self) -> Global___Message.PaymentLinkMetadata: ...
- @_builtins.property
- def endCardTiles(self) -> _containers.RepeatedCompositeFieldContainer[Global___Message.VideoEndCard]: ...
- @_builtins.property
- def musicMetadata(self) -> Global___EmbeddedMusic: ...
- @_builtins.property
- def paymentExtendedMetadata(self) -> Global___Message.PaymentExtendedMetadata: ...
- def __init__(
- self,
- *,
- text: _builtins.str | None = ...,
- matchedText: _builtins.str | None = ...,
- description: _builtins.str | None = ...,
- title: _builtins.str | None = ...,
- textArgb: _builtins.int | None = ...,
- backgroundArgb: _builtins.int | None = ...,
- font: Global___Message.ExtendedTextMessage.FontType.ValueType | None = ...,
- previewType: Global___Message.ExtendedTextMessage.PreviewType.ValueType | None = ...,
- jpegThumbnail: _builtins.bytes | None = ...,
- contextInfo: Global___ContextInfo | None = ...,
- doNotPlayInline: _builtins.bool | None = ...,
- thumbnailDirectPath: _builtins.str | None = ...,
- thumbnailSha256: _builtins.bytes | None = ...,
- thumbnailEncSha256: _builtins.bytes | None = ...,
- mediaKey: _builtins.bytes | None = ...,
- mediaKeyTimestamp: _builtins.int | None = ...,
- thumbnailHeight: _builtins.int | None = ...,
- thumbnailWidth: _builtins.int | None = ...,
- inviteLinkGroupType: Global___Message.ExtendedTextMessage.InviteLinkGroupType.ValueType | None = ...,
- inviteLinkParentGroupSubjectV2: _builtins.str | None = ...,
- inviteLinkParentGroupThumbnailV2: _builtins.bytes | None = ...,
- inviteLinkGroupTypeV2: Global___Message.ExtendedTextMessage.InviteLinkGroupType.ValueType | None = ...,
- viewOnce: _builtins.bool | None = ...,
- videoHeight: _builtins.int | None = ...,
- videoWidth: _builtins.int | None = ...,
- faviconMMSMetadata: Global___Message.MMSThumbnailMetadata | None = ...,
- linkPreviewMetadata: Global___Message.LinkPreviewMetadata | None = ...,
- paymentLinkMetadata: Global___Message.PaymentLinkMetadata | None = ...,
- endCardTiles: _abc.Iterable[Global___Message.VideoEndCard] | None = ...,
- videoContentUrl: _builtins.str | None = ...,
- musicMetadata: Global___EmbeddedMusic | None = ...,
- paymentExtendedMetadata: Global___Message.PaymentExtendedMetadata | None = ...,
- ) -> None: ...
- _HasFieldArgType: _TypeAlias = _typing.Literal["backgroundArgb", b"backgroundArgb", "contextInfo", b"contextInfo", "description", b"description", "doNotPlayInline", b"doNotPlayInline", "faviconMMSMetadata", b"faviconMMSMetadata", "font", b"font", "inviteLinkGroupType", b"inviteLinkGroupType", "inviteLinkGroupTypeV2", b"inviteLinkGroupTypeV2", "inviteLinkParentGroupSubjectV2", b"inviteLinkParentGroupSubjectV2", "inviteLinkParentGroupThumbnailV2", b"inviteLinkParentGroupThumbnailV2", "jpegThumbnail", b"jpegThumbnail", "linkPreviewMetadata", b"linkPreviewMetadata", "matchedText", b"matchedText", "mediaKey", b"mediaKey", "mediaKeyTimestamp", b"mediaKeyTimestamp", "musicMetadata", b"musicMetadata", "paymentExtendedMetadata", b"paymentExtendedMetadata", "paymentLinkMetadata", b"paymentLinkMetadata", "previewType", b"previewType", "text", b"text", "textArgb", b"textArgb", "thumbnailDirectPath", b"thumbnailDirectPath", "thumbnailEncSha256", b"thumbnailEncSha256", "thumbnailHeight", b"thumbnailHeight", "thumbnailSha256", b"thumbnailSha256", "thumbnailWidth", b"thumbnailWidth", "title", b"title", "videoContentUrl", b"videoContentUrl", "videoHeight", b"videoHeight", "videoWidth", b"videoWidth", "viewOnce", b"viewOnce"] # noqa: Y015
- def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ...
- _ClearFieldArgType: _TypeAlias = _typing.Literal["backgroundArgb", b"backgroundArgb", "contextInfo", b"contextInfo", "description", b"description", "doNotPlayInline", b"doNotPlayInline", "endCardTiles", b"endCardTiles", "faviconMMSMetadata", b"faviconMMSMetadata", "font", b"font", "inviteLinkGroupType", b"inviteLinkGroupType", "inviteLinkGroupTypeV2", b"inviteLinkGroupTypeV2", "inviteLinkParentGroupSubjectV2", b"inviteLinkParentGroupSubjectV2", "inviteLinkParentGroupThumbnailV2", b"inviteLinkParentGroupThumbnailV2", "jpegThumbnail", b"jpegThumbnail", "linkPreviewMetadata", b"linkPreviewMetadata", "matchedText", b"matchedText", "mediaKey", b"mediaKey", "mediaKeyTimestamp", b"mediaKeyTimestamp", "musicMetadata", b"musicMetadata", "paymentExtendedMetadata", b"paymentExtendedMetadata", "paymentLinkMetadata", b"paymentLinkMetadata", "previewType", b"previewType", "text", b"text", "textArgb", b"textArgb", "thumbnailDirectPath", b"thumbnailDirectPath", "thumbnailEncSha256", b"thumbnailEncSha256", "thumbnailHeight", b"thumbnailHeight", "thumbnailSha256", b"thumbnailSha256", "thumbnailWidth", b"thumbnailWidth", "title", b"title", "videoContentUrl", b"videoContentUrl", "videoHeight", b"videoHeight", "videoWidth", b"videoWidth", "viewOnce", b"viewOnce"] # noqa: Y015
- def ClearField(self, field_name: _ClearFieldArgType) -> None: ...
+Global___LIDMigrationMappingSyncPayload: _TypeAlias = LIDMigrationMappingSyncPayload # noqa: Y015
- @_typing.final
- class FullHistorySyncOnDemandConfig(_message.Message):
- DESCRIPTOR: _descriptor.Descriptor
+@_typing.final
+class LabyrinthWaCommand(_message.Message):
+ DESCRIPTOR: _descriptor.Descriptor
- HISTORYFROMTIMESTAMP_FIELD_NUMBER: _builtins.int
- HISTORYDURATIONDAYS_FIELD_NUMBER: _builtins.int
- historyFromTimestamp: _builtins.int
- historyDurationDays: _builtins.int
+ CREATEBACKUPINPUT_FIELD_NUMBER: _builtins.int
+ ENCRYPTMESSAGEINPUT_FIELD_NUMBER: _builtins.int
+ DECRYPTMESSAGEINPUT_FIELD_NUMBER: _builtins.int
+ ORFTHREADIDINPUT_FIELD_NUMBER: _builtins.int
+ DERIVEMESSAGEKEYINPUT_FIELD_NUMBER: _builtins.int
+ ROTATEEPOCHINPUT_FIELD_NUMBER: _builtins.int
+ @_builtins.property
+ def createBackupInput(self) -> Global___CreateBackupInput: ...
+ @_builtins.property
+ def encryptMessageInput(self) -> Global___EncryptMessageInput: ...
+ @_builtins.property
+ def decryptMessageInput(self) -> Global___DecryptMessageInput: ...
+ @_builtins.property
+ def orfThreadIdInput(self) -> Global___OrfThreadIdInput: ...
+ @_builtins.property
+ def deriveMessageKeyInput(self) -> Global___DeriveMessageKeyInput: ...
+ @_builtins.property
+ def rotateEpochInput(self) -> Global___RotateEpochInput: ...
+ def __init__(
+ self,
+ *,
+ createBackupInput: Global___CreateBackupInput | None = ...,
+ encryptMessageInput: Global___EncryptMessageInput | None = ...,
+ decryptMessageInput: Global___DecryptMessageInput | None = ...,
+ orfThreadIdInput: Global___OrfThreadIdInput | None = ...,
+ deriveMessageKeyInput: Global___DeriveMessageKeyInput | None = ...,
+ rotateEpochInput: Global___RotateEpochInput | None = ...,
+ ) -> None: ...
+ _HasFieldArgType: _TypeAlias = _typing.Literal["commandInput", b"commandInput", "createBackupInput", b"createBackupInput", "decryptMessageInput", b"decryptMessageInput", "deriveMessageKeyInput", b"deriveMessageKeyInput", "encryptMessageInput", b"encryptMessageInput", "orfThreadIdInput", b"orfThreadIdInput", "rotateEpochInput", b"rotateEpochInput"] # noqa: Y015
+ def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ...
+ _ClearFieldArgType: _TypeAlias = _typing.Literal["commandInput", b"commandInput", "createBackupInput", b"createBackupInput", "decryptMessageInput", b"decryptMessageInput", "deriveMessageKeyInput", b"deriveMessageKeyInput", "encryptMessageInput", b"encryptMessageInput", "orfThreadIdInput", b"orfThreadIdInput", "rotateEpochInput", b"rotateEpochInput"] # noqa: Y015
+ def ClearField(self, field_name: _ClearFieldArgType) -> None: ...
+ _WhichOneofReturnType_commandInput: _TypeAlias = _typing.Literal["createBackupInput", "encryptMessageInput", "decryptMessageInput", "orfThreadIdInput", "deriveMessageKeyInput", "rotateEpochInput"] # noqa: Y015
+ _WhichOneofArgType_commandInput: _TypeAlias = _typing.Literal["commandInput", b"commandInput"] # noqa: Y015
+ def WhichOneof(self, oneof_group: _WhichOneofArgType_commandInput) -> _WhichOneofReturnType_commandInput | None: ...
+
+Global___LabyrinthWaCommand: _TypeAlias = LabyrinthWaCommand # noqa: Y015
+
+@_typing.final
+class LegacyMessage(_message.Message):
+ DESCRIPTOR: _descriptor.Descriptor
+
+ EVENTRESPONSEMESSAGE_FIELD_NUMBER: _builtins.int
+ POLLVOTE_FIELD_NUMBER: _builtins.int
+ @_builtins.property
+ def eventResponseMessage(self) -> Global___Message.EventResponseMessage: ...
+ @_builtins.property
+ def pollVote(self) -> Global___Message.PollVoteMessage: ...
+ def __init__(
+ self,
+ *,
+ eventResponseMessage: Global___Message.EventResponseMessage | None = ...,
+ pollVote: Global___Message.PollVoteMessage | None = ...,
+ ) -> None: ...
+ _HasFieldArgType: _TypeAlias = _typing.Literal["eventResponseMessage", b"eventResponseMessage", "pollVote", b"pollVote"] # noqa: Y015
+ def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ...
+ _ClearFieldArgType: _TypeAlias = _typing.Literal["eventResponseMessage", b"eventResponseMessage", "pollVote", b"pollVote"] # noqa: Y015
+ def ClearField(self, field_name: _ClearFieldArgType) -> None: ...
+
+Global___LegacyMessage: _TypeAlias = LegacyMessage # noqa: Y015
+
+@_typing.final
+class LimitSharing(_message.Message):
+ DESCRIPTOR: _descriptor.Descriptor
+
+ class _TriggerType:
+ ValueType = _typing.NewType("ValueType", _builtins.int)
+ V: _TypeAlias = ValueType # noqa: Y015
+
+ class _TriggerTypeEnumTypeWrapper(_enum_type_wrapper._EnumTypeWrapper[LimitSharing._TriggerType.ValueType], _builtins.type):
+ DESCRIPTOR: _descriptor.EnumDescriptor
+ UNKNOWN: LimitSharing._TriggerType.ValueType # 0
+ CHAT_SETTING: LimitSharing._TriggerType.ValueType # 1
+ BIZ_SUPPORTS_FB_HOSTING: LimitSharing._TriggerType.ValueType # 2
+ UNKNOWN_GROUP: LimitSharing._TriggerType.ValueType # 3
+
+ class TriggerType(_TriggerType, metaclass=_TriggerTypeEnumTypeWrapper): ...
+ UNKNOWN: LimitSharing.TriggerType.ValueType # 0
+ CHAT_SETTING: LimitSharing.TriggerType.ValueType # 1
+ BIZ_SUPPORTS_FB_HOSTING: LimitSharing.TriggerType.ValueType # 2
+ UNKNOWN_GROUP: LimitSharing.TriggerType.ValueType # 3
+
+ SHARINGLIMITED_FIELD_NUMBER: _builtins.int
+ TRIGGER_FIELD_NUMBER: _builtins.int
+ LIMITSHARINGSETTINGTIMESTAMP_FIELD_NUMBER: _builtins.int
+ INITIATEDBYME_FIELD_NUMBER: _builtins.int
+ sharingLimited: _builtins.bool
+ trigger: Global___LimitSharing.TriggerType.ValueType
+ limitSharingSettingTimestamp: _builtins.int
+ initiatedByMe: _builtins.bool
+ def __init__(
+ self,
+ *,
+ sharingLimited: _builtins.bool | None = ...,
+ trigger: Global___LimitSharing.TriggerType.ValueType | None = ...,
+ limitSharingSettingTimestamp: _builtins.int | None = ...,
+ initiatedByMe: _builtins.bool | None = ...,
+ ) -> None: ...
+ _HasFieldArgType: _TypeAlias = _typing.Literal["initiatedByMe", b"initiatedByMe", "limitSharingSettingTimestamp", b"limitSharingSettingTimestamp", "sharingLimited", b"sharingLimited", "trigger", b"trigger"] # noqa: Y015
+ def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ...
+ _ClearFieldArgType: _TypeAlias = _typing.Literal["initiatedByMe", b"initiatedByMe", "limitSharingSettingTimestamp", b"limitSharingSettingTimestamp", "sharingLimited", b"sharingLimited", "trigger", b"trigger"] # noqa: Y015
+ def ClearField(self, field_name: _ClearFieldArgType) -> None: ...
+
+Global___LimitSharing: _TypeAlias = LimitSharing # noqa: Y015
+
+@_typing.final
+class LocalizedName(_message.Message):
+ DESCRIPTOR: _descriptor.Descriptor
+
+ LG_FIELD_NUMBER: _builtins.int
+ LC_FIELD_NUMBER: _builtins.int
+ VERIFIEDNAME_FIELD_NUMBER: _builtins.int
+ lg: _builtins.str
+ lc: _builtins.str
+ verifiedName: _builtins.str
+ def __init__(
+ self,
+ *,
+ lg: _builtins.str | None = ...,
+ lc: _builtins.str | None = ...,
+ verifiedName: _builtins.str | None = ...,
+ ) -> None: ...
+ _HasFieldArgType: _TypeAlias = _typing.Literal["lc", b"lc", "lg", b"lg", "verifiedName", b"verifiedName"] # noqa: Y015
+ def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ...
+ _ClearFieldArgType: _TypeAlias = _typing.Literal["lc", b"lc", "lg", b"lg", "verifiedName", b"verifiedName"] # noqa: Y015
+ def ClearField(self, field_name: _ClearFieldArgType) -> None: ...
+
+Global___LocalizedName: _TypeAlias = LocalizedName # noqa: Y015
+
+@_typing.final
+class Location(_message.Message):
+ DESCRIPTOR: _descriptor.Descriptor
+
+ DEGREESLATITUDE_FIELD_NUMBER: _builtins.int
+ DEGREESLONGITUDE_FIELD_NUMBER: _builtins.int
+ NAME_FIELD_NUMBER: _builtins.int
+ degreesLatitude: _builtins.float
+ degreesLongitude: _builtins.float
+ name: _builtins.str
+ def __init__(
+ self,
+ *,
+ degreesLatitude: _builtins.float | None = ...,
+ degreesLongitude: _builtins.float | None = ...,
+ name: _builtins.str | None = ...,
+ ) -> None: ...
+ _HasFieldArgType: _TypeAlias = _typing.Literal["degreesLatitude", b"degreesLatitude", "degreesLongitude", b"degreesLongitude", "name", b"name"] # noqa: Y015
+ def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ...
+ _ClearFieldArgType: _TypeAlias = _typing.Literal["degreesLatitude", b"degreesLatitude", "degreesLongitude", b"degreesLongitude", "name", b"name"] # noqa: Y015
+ def ClearField(self, field_name: _ClearFieldArgType) -> None: ...
+
+Global___Location: _TypeAlias = Location # noqa: Y015
+
+@_typing.final
+class MandrakeDecryptMekInput(_message.Message):
+ DESCRIPTOR: _descriptor.Descriptor
+
+ @_typing.final
+ class EpochSenderPublicData(_message.Message):
+ DESCRIPTOR: _descriptor.Descriptor
+
+ EPOCHPUBLICDATA_FIELD_NUMBER: _builtins.int
+ @_builtins.property
+ def epochPublicData(self) -> Global___EpochPublicData: ...
def __init__(
self,
*,
- historyFromTimestamp: _builtins.int | None = ...,
- historyDurationDays: _builtins.int | None = ...,
+ epochPublicData: Global___EpochPublicData | None = ...,
) -> None: ...
- _HasFieldArgType: _TypeAlias = _typing.Literal["historyDurationDays", b"historyDurationDays", "historyFromTimestamp", b"historyFromTimestamp"] # noqa: Y015
+ _HasFieldArgType: _TypeAlias = _typing.Literal["epochPublicData", b"epochPublicData"] # noqa: Y015
def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ...
- _ClearFieldArgType: _TypeAlias = _typing.Literal["historyDurationDays", b"historyDurationDays", "historyFromTimestamp", b"historyFromTimestamp"] # noqa: Y015
+ _ClearFieldArgType: _TypeAlias = _typing.Literal["epochPublicData", b"epochPublicData"] # noqa: Y015
def ClearField(self, field_name: _ClearFieldArgType) -> None: ...
@_typing.final
- class FullHistorySyncOnDemandRequestMetadata(_message.Message):
+ class MmkSenderPublicData(_message.Message):
DESCRIPTOR: _descriptor.Descriptor
- REQUESTID_FIELD_NUMBER: _builtins.int
- BUSINESSPRODUCT_FIELD_NUMBER: _builtins.int
- OPAQUECLIENTDATA_FIELD_NUMBER: _builtins.int
- requestId: _builtins.str
- businessProduct: _builtins.str
- opaqueClientData: _builtins.bytes
+ MMKPUBLICDATA_FIELD_NUMBER: _builtins.int
+ @_builtins.property
+ def mmkPublicData(self) -> Global___MessagingMailboxPublicData: ...
def __init__(
self,
*,
- requestId: _builtins.str | None = ...,
- businessProduct: _builtins.str | None = ...,
- opaqueClientData: _builtins.bytes | None = ...,
+ mmkPublicData: Global___MessagingMailboxPublicData | None = ...,
) -> None: ...
- _HasFieldArgType: _TypeAlias = _typing.Literal["businessProduct", b"businessProduct", "opaqueClientData", b"opaqueClientData", "requestId", b"requestId"] # noqa: Y015
+ _HasFieldArgType: _TypeAlias = _typing.Literal["mmkPublicData", b"mmkPublicData"] # noqa: Y015
def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ...
- _ClearFieldArgType: _TypeAlias = _typing.Literal["businessProduct", b"businessProduct", "opaqueClientData", b"opaqueClientData", "requestId", b"requestId"] # noqa: Y015
+ _ClearFieldArgType: _TypeAlias = _typing.Literal["mmkPublicData", b"mmkPublicData"] # noqa: Y015
def ClearField(self, field_name: _ClearFieldArgType) -> None: ...
@_typing.final
- class FutureProofMessage(_message.Message):
+ class PrecomputedEpochSenderPublicData(_message.Message):
DESCRIPTOR: _descriptor.Descriptor
- MESSAGE_FIELD_NUMBER: _builtins.int
- @_builtins.property
- def message(self) -> Global___Message: ...
+ AUTHPK_FIELD_NUMBER: _builtins.int
+ EPOCHHEAD_FIELD_NUMBER: _builtins.int
+ authPk: _builtins.bytes
+ epochHead: _builtins.bytes
def __init__(
self,
*,
- message: Global___Message | None = ...,
+ authPk: _builtins.bytes | None = ...,
+ epochHead: _builtins.bytes | None = ...,
) -> None: ...
- _HasFieldArgType: _TypeAlias = _typing.Literal["message", b"message"] # noqa: Y015
+ _HasFieldArgType: _TypeAlias = _typing.Literal["authPk", b"authPk", "epochHead", b"epochHead"] # noqa: Y015
def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ...
- _ClearFieldArgType: _TypeAlias = _typing.Literal["message", b"message"] # noqa: Y015
+ _ClearFieldArgType: _TypeAlias = _typing.Literal["authPk", b"authPk", "epochHead", b"epochHead"] # noqa: Y015
def ClearField(self, field_name: _ClearFieldArgType) -> None: ...
- @_typing.final
- class GroupInviteMessage(_message.Message):
- DESCRIPTOR: _descriptor.Descriptor
+ ENCRYPTEDMEK_FIELD_NUMBER: _builtins.int
+ RECIPIENTSHASH_FIELD_NUMBER: _builtins.int
+ RECIPIENTENCSK_FIELD_NUMBER: _builtins.int
+ MEKENCRYPTIONVERSION_FIELD_NUMBER: _builtins.int
+ CONF_FIELD_NUMBER: _builtins.int
+ RECIPIENTMMK_FIELD_NUMBER: _builtins.int
+ MEKID_FIELD_NUMBER: _builtins.int
+ RECIPIENTMEMBERSHIPPROOF_FIELD_NUMBER: _builtins.int
+ MMKSENDER_FIELD_NUMBER: _builtins.int
+ EPOCHSENDER_FIELD_NUMBER: _builtins.int
+ PRECOMPUTEDEPOCHSENDER_FIELD_NUMBER: _builtins.int
+ encryptedMek: _builtins.bytes
+ recipientsHash: _builtins.bytes
+ recipientEncSk: _builtins.bytes
+ mekEncryptionVersion: _builtins.int
+ mekId: _builtins.bytes
+ @_builtins.property
+ def conf(self) -> Global___MinosClientConfig: ...
+ @_builtins.property
+ def recipientMmk(self) -> Global___MessagingMailboxPublicData: ...
+ @_builtins.property
+ def recipientMembershipProof(self) -> Global___MerkleMembershipProof: ...
+ @_builtins.property
+ def mmkSender(self) -> Global___MandrakeDecryptMekInput.MmkSenderPublicData: ...
+ @_builtins.property
+ def epochSender(self) -> Global___MandrakeDecryptMekInput.EpochSenderPublicData: ...
+ @_builtins.property
+ def precomputedEpochSender(self) -> Global___MandrakeDecryptMekInput.PrecomputedEpochSenderPublicData: ...
+ def __init__(
+ self,
+ *,
+ encryptedMek: _builtins.bytes | None = ...,
+ recipientsHash: _builtins.bytes | None = ...,
+ recipientEncSk: _builtins.bytes | None = ...,
+ mekEncryptionVersion: _builtins.int | None = ...,
+ conf: Global___MinosClientConfig | None = ...,
+ recipientMmk: Global___MessagingMailboxPublicData | None = ...,
+ mekId: _builtins.bytes | None = ...,
+ recipientMembershipProof: Global___MerkleMembershipProof | None = ...,
+ mmkSender: Global___MandrakeDecryptMekInput.MmkSenderPublicData | None = ...,
+ epochSender: Global___MandrakeDecryptMekInput.EpochSenderPublicData | None = ...,
+ precomputedEpochSender: Global___MandrakeDecryptMekInput.PrecomputedEpochSenderPublicData | None = ...,
+ ) -> None: ...
+ _HasFieldArgType: _TypeAlias = _typing.Literal["conf", b"conf", "encryptedMek", b"encryptedMek", "epochSender", b"epochSender", "mekEncryptionVersion", b"mekEncryptionVersion", "mekId", b"mekId", "mmkSender", b"mmkSender", "precomputedEpochSender", b"precomputedEpochSender", "recipientEncSk", b"recipientEncSk", "recipientMembershipProof", b"recipientMembershipProof", "recipientMmk", b"recipientMmk", "recipientsHash", b"recipientsHash", "senderPublicData", b"senderPublicData"] # noqa: Y015
+ def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ...
+ _ClearFieldArgType: _TypeAlias = _typing.Literal["conf", b"conf", "encryptedMek", b"encryptedMek", "epochSender", b"epochSender", "mekEncryptionVersion", b"mekEncryptionVersion", "mekId", b"mekId", "mmkSender", b"mmkSender", "precomputedEpochSender", b"precomputedEpochSender", "recipientEncSk", b"recipientEncSk", "recipientMembershipProof", b"recipientMembershipProof", "recipientMmk", b"recipientMmk", "recipientsHash", b"recipientsHash", "senderPublicData", b"senderPublicData"] # noqa: Y015
+ def ClearField(self, field_name: _ClearFieldArgType) -> None: ...
+ _WhichOneofReturnType_senderPublicData: _TypeAlias = _typing.Literal["mmkSender", "epochSender", "precomputedEpochSender"] # noqa: Y015
+ _WhichOneofArgType_senderPublicData: _TypeAlias = _typing.Literal["senderPublicData", b"senderPublicData"] # noqa: Y015
+ def WhichOneof(self, oneof_group: _WhichOneofArgType_senderPublicData) -> _WhichOneofReturnType_senderPublicData | None: ...
- class _GroupType:
- ValueType = _typing.NewType("ValueType", _builtins.int)
- V: _TypeAlias = ValueType # noqa: Y015
+Global___MandrakeDecryptMekInput: _TypeAlias = MandrakeDecryptMekInput # noqa: Y015
- class _GroupTypeEnumTypeWrapper(_enum_type_wrapper._EnumTypeWrapper[Message.GroupInviteMessage._GroupType.ValueType], _builtins.type):
- DESCRIPTOR: _descriptor.EnumDescriptor
- DEFAULT: Message.GroupInviteMessage._GroupType.ValueType # 0
- PARENT: Message.GroupInviteMessage._GroupType.ValueType # 1
+@_typing.final
+class MandrakeDecryptMekResult(_message.Message):
+ DESCRIPTOR: _descriptor.Descriptor
- class GroupType(_GroupType, metaclass=_GroupTypeEnumTypeWrapper): ...
- DEFAULT: Message.GroupInviteMessage.GroupType.ValueType # 0
- PARENT: Message.GroupInviteMessage.GroupType.ValueType # 1
+ SUCCESS_FIELD_NUMBER: _builtins.int
+ ERRORMESSAGE_FIELD_NUMBER: _builtins.int
+ errorMessage: _builtins.str
+ @_builtins.property
+ def success(self) -> Global___MandrakeDecryptMekSuccess: ...
+ def __init__(
+ self,
+ *,
+ success: Global___MandrakeDecryptMekSuccess | None = ...,
+ errorMessage: _builtins.str | None = ...,
+ ) -> None: ...
+ _HasFieldArgType: _TypeAlias = _typing.Literal["errorMessage", b"errorMessage", "result", b"result", "success", b"success"] # noqa: Y015
+ def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ...
+ _ClearFieldArgType: _TypeAlias = _typing.Literal["errorMessage", b"errorMessage", "result", b"result", "success", b"success"] # noqa: Y015
+ def ClearField(self, field_name: _ClearFieldArgType) -> None: ...
+ _WhichOneofReturnType_result: _TypeAlias = _typing.Literal["success", "errorMessage"] # noqa: Y015
+ _WhichOneofArgType_result: _TypeAlias = _typing.Literal["result", b"result"] # noqa: Y015
+ def WhichOneof(self, oneof_group: _WhichOneofArgType_result) -> _WhichOneofReturnType_result | None: ...
- GROUPJID_FIELD_NUMBER: _builtins.int
- INVITECODE_FIELD_NUMBER: _builtins.int
- INVITEEXPIRATION_FIELD_NUMBER: _builtins.int
- GROUPNAME_FIELD_NUMBER: _builtins.int
- JPEGTHUMBNAIL_FIELD_NUMBER: _builtins.int
- CAPTION_FIELD_NUMBER: _builtins.int
- CONTEXTINFO_FIELD_NUMBER: _builtins.int
- GROUPTYPE_FIELD_NUMBER: _builtins.int
- groupJid: _builtins.str
- inviteCode: _builtins.str
- inviteExpiration: _builtins.int
- groupName: _builtins.str
- jpegThumbnail: _builtins.bytes
- caption: _builtins.str
- groupType: Global___Message.GroupInviteMessage.GroupType.ValueType
+Global___MandrakeDecryptMekResult: _TypeAlias = MandrakeDecryptMekResult # noqa: Y015
+
+@_typing.final
+class MandrakeDecryptMekSuccess(_message.Message):
+ DESCRIPTOR: _descriptor.Descriptor
+
+ MEK_FIELD_NUMBER: _builtins.int
+ mek: _builtins.bytes
+ def __init__(
+ self,
+ *,
+ mek: _builtins.bytes | None = ...,
+ ) -> None: ...
+ _HasFieldArgType: _TypeAlias = _typing.Literal["mek", b"mek"] # noqa: Y015
+ def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ...
+ _ClearFieldArgType: _TypeAlias = _typing.Literal["mek", b"mek"] # noqa: Y015
+ def ClearField(self, field_name: _ClearFieldArgType) -> None: ...
+
+Global___MandrakeDecryptMekSuccess: _TypeAlias = MandrakeDecryptMekSuccess # noqa: Y015
+
+@_typing.final
+class MandrakeEncryptMekInput(_message.Message):
+ DESCRIPTOR: _descriptor.Descriptor
+
+ @_typing.final
+ class DetachedDeviceSender(_message.Message):
+ DESCRIPTOR: _descriptor.Descriptor
+
+ DETACHEDDEVICEPUBLICDATA_FIELD_NUMBER: _builtins.int
+ AUTHSK_FIELD_NUMBER: _builtins.int
+ AUTHPK_FIELD_NUMBER: _builtins.int
+ authSk: _builtins.bytes
+ authPk: _builtins.bytes
@_builtins.property
- def contextInfo(self) -> Global___ContextInfo: ...
+ def detachedDevicePublicData(self) -> Global___DetachedDevicePublicData: ...
def __init__(
self,
*,
- groupJid: _builtins.str | None = ...,
- inviteCode: _builtins.str | None = ...,
- inviteExpiration: _builtins.int | None = ...,
- groupName: _builtins.str | None = ...,
- jpegThumbnail: _builtins.bytes | None = ...,
- caption: _builtins.str | None = ...,
- contextInfo: Global___ContextInfo | None = ...,
- groupType: Global___Message.GroupInviteMessage.GroupType.ValueType | None = ...,
+ detachedDevicePublicData: Global___DetachedDevicePublicData | None = ...,
+ authSk: _builtins.bytes | None = ...,
+ authPk: _builtins.bytes | None = ...,
) -> None: ...
- _HasFieldArgType: _TypeAlias = _typing.Literal["caption", b"caption", "contextInfo", b"contextInfo", "groupJid", b"groupJid", "groupName", b"groupName", "groupType", b"groupType", "inviteCode", b"inviteCode", "inviteExpiration", b"inviteExpiration", "jpegThumbnail", b"jpegThumbnail"] # noqa: Y015
+ _HasFieldArgType: _TypeAlias = _typing.Literal["authPk", b"authPk", "authSk", b"authSk", "detachedDevicePublicData", b"detachedDevicePublicData"] # noqa: Y015
def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ...
- _ClearFieldArgType: _TypeAlias = _typing.Literal["caption", b"caption", "contextInfo", b"contextInfo", "groupJid", b"groupJid", "groupName", b"groupName", "groupType", b"groupType", "inviteCode", b"inviteCode", "inviteExpiration", b"inviteExpiration", "jpegThumbnail", b"jpegThumbnail"] # noqa: Y015
+ _ClearFieldArgType: _TypeAlias = _typing.Literal["authPk", b"authPk", "authSk", b"authSk", "detachedDevicePublicData", b"detachedDevicePublicData"] # noqa: Y015
def ClearField(self, field_name: _ClearFieldArgType) -> None: ...
@_typing.final
- class HighlyStructuredMessage(_message.Message):
+ class EpochSender(_message.Message):
DESCRIPTOR: _descriptor.Descriptor
- @_typing.final
- class HSMLocalizableParameter(_message.Message):
- DESCRIPTOR: _descriptor.Descriptor
+ EPOCHPUBLICDATA_FIELD_NUMBER: _builtins.int
+ AUTHSK_FIELD_NUMBER: _builtins.int
+ AUTHPK_FIELD_NUMBER: _builtins.int
+ authSk: _builtins.bytes
+ authPk: _builtins.bytes
+ @_builtins.property
+ def epochPublicData(self) -> Global___EpochPublicData: ...
+ def __init__(
+ self,
+ *,
+ epochPublicData: Global___EpochPublicData | None = ...,
+ authSk: _builtins.bytes | None = ...,
+ authPk: _builtins.bytes | None = ...,
+ ) -> None: ...
+ _HasFieldArgType: _TypeAlias = _typing.Literal["authPk", b"authPk", "authSk", b"authSk", "epochPublicData", b"epochPublicData"] # noqa: Y015
+ def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ...
+ _ClearFieldArgType: _TypeAlias = _typing.Literal["authPk", b"authPk", "authSk", b"authSk", "epochPublicData", b"epochPublicData"] # noqa: Y015
+ def ClearField(self, field_name: _ClearFieldArgType) -> None: ...
- @_typing.final
- class HSMCurrency(_message.Message):
- DESCRIPTOR: _descriptor.Descriptor
-
- CURRENCYCODE_FIELD_NUMBER: _builtins.int
- AMOUNT1000_FIELD_NUMBER: _builtins.int
- currencyCode: _builtins.str
- amount1000: _builtins.int
- def __init__(
- self,
- *,
- currencyCode: _builtins.str | None = ...,
- amount1000: _builtins.int | None = ...,
- ) -> None: ...
- _HasFieldArgType: _TypeAlias = _typing.Literal["amount1000", b"amount1000", "currencyCode", b"currencyCode"] # noqa: Y015
- def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ...
- _ClearFieldArgType: _TypeAlias = _typing.Literal["amount1000", b"amount1000", "currencyCode", b"currencyCode"] # noqa: Y015
- def ClearField(self, field_name: _ClearFieldArgType) -> None: ...
-
- @_typing.final
- class HSMDateTime(_message.Message):
- DESCRIPTOR: _descriptor.Descriptor
-
- @_typing.final
- class HSMDateTimeComponent(_message.Message):
- DESCRIPTOR: _descriptor.Descriptor
-
- class _CalendarType:
- ValueType = _typing.NewType("ValueType", _builtins.int)
- V: _TypeAlias = ValueType # noqa: Y015
-
- class _CalendarTypeEnumTypeWrapper(_enum_type_wrapper._EnumTypeWrapper[Message.HighlyStructuredMessage.HSMLocalizableParameter.HSMDateTime.HSMDateTimeComponent._CalendarType.ValueType], _builtins.type):
- DESCRIPTOR: _descriptor.EnumDescriptor
- GREGORIAN: Message.HighlyStructuredMessage.HSMLocalizableParameter.HSMDateTime.HSMDateTimeComponent._CalendarType.ValueType # 1
- SOLAR_HIJRI: Message.HighlyStructuredMessage.HSMLocalizableParameter.HSMDateTime.HSMDateTimeComponent._CalendarType.ValueType # 2
-
- class CalendarType(_CalendarType, metaclass=_CalendarTypeEnumTypeWrapper): ...
- GREGORIAN: Message.HighlyStructuredMessage.HSMLocalizableParameter.HSMDateTime.HSMDateTimeComponent.CalendarType.ValueType # 1
- SOLAR_HIJRI: Message.HighlyStructuredMessage.HSMLocalizableParameter.HSMDateTime.HSMDateTimeComponent.CalendarType.ValueType # 2
+ @_typing.final
+ class MmkSender(_message.Message):
+ DESCRIPTOR: _descriptor.Descriptor
- class _DayOfWeekType:
- ValueType = _typing.NewType("ValueType", _builtins.int)
- V: _TypeAlias = ValueType # noqa: Y015
+ MMKPUBLICDATA_FIELD_NUMBER: _builtins.int
+ AUTHSK_FIELD_NUMBER: _builtins.int
+ AUTHPK_FIELD_NUMBER: _builtins.int
+ authSk: _builtins.bytes
+ authPk: _builtins.bytes
+ @_builtins.property
+ def mmkPublicData(self) -> Global___MessagingMailboxPublicData: ...
+ def __init__(
+ self,
+ *,
+ mmkPublicData: Global___MessagingMailboxPublicData | None = ...,
+ authSk: _builtins.bytes | None = ...,
+ authPk: _builtins.bytes | None = ...,
+ ) -> None: ...
+ _HasFieldArgType: _TypeAlias = _typing.Literal["authPk", b"authPk", "authSk", b"authSk", "mmkPublicData", b"mmkPublicData"] # noqa: Y015
+ def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ...
+ _ClearFieldArgType: _TypeAlias = _typing.Literal["authPk", b"authPk", "authSk", b"authSk", "mmkPublicData", b"mmkPublicData"] # noqa: Y015
+ def ClearField(self, field_name: _ClearFieldArgType) -> None: ...
- class _DayOfWeekTypeEnumTypeWrapper(_enum_type_wrapper._EnumTypeWrapper[Message.HighlyStructuredMessage.HSMLocalizableParameter.HSMDateTime.HSMDateTimeComponent._DayOfWeekType.ValueType], _builtins.type):
- DESCRIPTOR: _descriptor.EnumDescriptor
- MONDAY: Message.HighlyStructuredMessage.HSMLocalizableParameter.HSMDateTime.HSMDateTimeComponent._DayOfWeekType.ValueType # 1
- TUESDAY: Message.HighlyStructuredMessage.HSMLocalizableParameter.HSMDateTime.HSMDateTimeComponent._DayOfWeekType.ValueType # 2
- WEDNESDAY: Message.HighlyStructuredMessage.HSMLocalizableParameter.HSMDateTime.HSMDateTimeComponent._DayOfWeekType.ValueType # 3
- THURSDAY: Message.HighlyStructuredMessage.HSMLocalizableParameter.HSMDateTime.HSMDateTimeComponent._DayOfWeekType.ValueType # 4
- FRIDAY: Message.HighlyStructuredMessage.HSMLocalizableParameter.HSMDateTime.HSMDateTimeComponent._DayOfWeekType.ValueType # 5
- SATURDAY: Message.HighlyStructuredMessage.HSMLocalizableParameter.HSMDateTime.HSMDateTimeComponent._DayOfWeekType.ValueType # 6
- SUNDAY: Message.HighlyStructuredMessage.HSMLocalizableParameter.HSMDateTime.HSMDateTimeComponent._DayOfWeekType.ValueType # 7
+ MEK_FIELD_NUMBER: _builtins.int
+ RECIPIENTS_FIELD_NUMBER: _builtins.int
+ CONF_FIELD_NUMBER: _builtins.int
+ MMKSENDER_FIELD_NUMBER: _builtins.int
+ EPOCHSENDER_FIELD_NUMBER: _builtins.int
+ DETACHEDDEVICESENDER_FIELD_NUMBER: _builtins.int
+ @_builtins.property
+ def mek(self) -> Global___MandrakeMekBundle: ...
+ @_builtins.property
+ def recipients(self) -> _containers.RepeatedCompositeFieldContainer[Global___MessagingMailboxPublicData]: ...
+ @_builtins.property
+ def conf(self) -> Global___MinosClientConfig: ...
+ @_builtins.property
+ def mmkSender(self) -> Global___MandrakeEncryptMekInput.MmkSender: ...
+ @_builtins.property
+ def epochSender(self) -> Global___MandrakeEncryptMekInput.EpochSender: ...
+ @_builtins.property
+ def detachedDeviceSender(self) -> Global___MandrakeEncryptMekInput.DetachedDeviceSender: ...
+ def __init__(
+ self,
+ *,
+ mek: Global___MandrakeMekBundle | None = ...,
+ recipients: _abc.Iterable[Global___MessagingMailboxPublicData] | None = ...,
+ conf: Global___MinosClientConfig | None = ...,
+ mmkSender: Global___MandrakeEncryptMekInput.MmkSender | None = ...,
+ epochSender: Global___MandrakeEncryptMekInput.EpochSender | None = ...,
+ detachedDeviceSender: Global___MandrakeEncryptMekInput.DetachedDeviceSender | None = ...,
+ ) -> None: ...
+ _HasFieldArgType: _TypeAlias = _typing.Literal["conf", b"conf", "detachedDeviceSender", b"detachedDeviceSender", "epochSender", b"epochSender", "mek", b"mek", "mmkSender", b"mmkSender", "sender", b"sender"] # noqa: Y015
+ def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ...
+ _ClearFieldArgType: _TypeAlias = _typing.Literal["conf", b"conf", "detachedDeviceSender", b"detachedDeviceSender", "epochSender", b"epochSender", "mek", b"mek", "mmkSender", b"mmkSender", "recipients", b"recipients", "sender", b"sender"] # noqa: Y015
+ def ClearField(self, field_name: _ClearFieldArgType) -> None: ...
+ _WhichOneofReturnType_sender: _TypeAlias = _typing.Literal["mmkSender", "epochSender", "detachedDeviceSender"] # noqa: Y015
+ _WhichOneofArgType_sender: _TypeAlias = _typing.Literal["sender", b"sender"] # noqa: Y015
+ def WhichOneof(self, oneof_group: _WhichOneofArgType_sender) -> _WhichOneofReturnType_sender | None: ...
- class DayOfWeekType(_DayOfWeekType, metaclass=_DayOfWeekTypeEnumTypeWrapper): ...
- MONDAY: Message.HighlyStructuredMessage.HSMLocalizableParameter.HSMDateTime.HSMDateTimeComponent.DayOfWeekType.ValueType # 1
- TUESDAY: Message.HighlyStructuredMessage.HSMLocalizableParameter.HSMDateTime.HSMDateTimeComponent.DayOfWeekType.ValueType # 2
- WEDNESDAY: Message.HighlyStructuredMessage.HSMLocalizableParameter.HSMDateTime.HSMDateTimeComponent.DayOfWeekType.ValueType # 3
- THURSDAY: Message.HighlyStructuredMessage.HSMLocalizableParameter.HSMDateTime.HSMDateTimeComponent.DayOfWeekType.ValueType # 4
- FRIDAY: Message.HighlyStructuredMessage.HSMLocalizableParameter.HSMDateTime.HSMDateTimeComponent.DayOfWeekType.ValueType # 5
- SATURDAY: Message.HighlyStructuredMessage.HSMLocalizableParameter.HSMDateTime.HSMDateTimeComponent.DayOfWeekType.ValueType # 6
- SUNDAY: Message.HighlyStructuredMessage.HSMLocalizableParameter.HSMDateTime.HSMDateTimeComponent.DayOfWeekType.ValueType # 7
+Global___MandrakeEncryptMekInput: _TypeAlias = MandrakeEncryptMekInput # noqa: Y015
- DAYOFWEEK_FIELD_NUMBER: _builtins.int
- YEAR_FIELD_NUMBER: _builtins.int
- MONTH_FIELD_NUMBER: _builtins.int
- DAYOFMONTH_FIELD_NUMBER: _builtins.int
- HOUR_FIELD_NUMBER: _builtins.int
- MINUTE_FIELD_NUMBER: _builtins.int
- CALENDAR_FIELD_NUMBER: _builtins.int
- dayOfWeek: Global___Message.HighlyStructuredMessage.HSMLocalizableParameter.HSMDateTime.HSMDateTimeComponent.DayOfWeekType.ValueType
- year: _builtins.int
- month: _builtins.int
- dayOfMonth: _builtins.int
- hour: _builtins.int
- minute: _builtins.int
- calendar: Global___Message.HighlyStructuredMessage.HSMLocalizableParameter.HSMDateTime.HSMDateTimeComponent.CalendarType.ValueType
- def __init__(
- self,
- *,
- dayOfWeek: Global___Message.HighlyStructuredMessage.HSMLocalizableParameter.HSMDateTime.HSMDateTimeComponent.DayOfWeekType.ValueType | None = ...,
- year: _builtins.int | None = ...,
- month: _builtins.int | None = ...,
- dayOfMonth: _builtins.int | None = ...,
- hour: _builtins.int | None = ...,
- minute: _builtins.int | None = ...,
- calendar: Global___Message.HighlyStructuredMessage.HSMLocalizableParameter.HSMDateTime.HSMDateTimeComponent.CalendarType.ValueType | None = ...,
- ) -> None: ...
- _HasFieldArgType: _TypeAlias = _typing.Literal["calendar", b"calendar", "dayOfMonth", b"dayOfMonth", "dayOfWeek", b"dayOfWeek", "hour", b"hour", "minute", b"minute", "month", b"month", "year", b"year"] # noqa: Y015
- def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ...
- _ClearFieldArgType: _TypeAlias = _typing.Literal["calendar", b"calendar", "dayOfMonth", b"dayOfMonth", "dayOfWeek", b"dayOfWeek", "hour", b"hour", "minute", b"minute", "month", b"month", "year", b"year"] # noqa: Y015
- def ClearField(self, field_name: _ClearFieldArgType) -> None: ...
+@_typing.final
+class MandrakeEncryptMekResult(_message.Message):
+ DESCRIPTOR: _descriptor.Descriptor
- @_typing.final
- class HSMDateTimeUnixEpoch(_message.Message):
- DESCRIPTOR: _descriptor.Descriptor
+ SUCCESS_FIELD_NUMBER: _builtins.int
+ ERRORMESSAGE_FIELD_NUMBER: _builtins.int
+ errorMessage: _builtins.str
+ @_builtins.property
+ def success(self) -> Global___MandrakeEncryptMekSuccess: ...
+ def __init__(
+ self,
+ *,
+ success: Global___MandrakeEncryptMekSuccess | None = ...,
+ errorMessage: _builtins.str | None = ...,
+ ) -> None: ...
+ _HasFieldArgType: _TypeAlias = _typing.Literal["errorMessage", b"errorMessage", "result", b"result", "success", b"success"] # noqa: Y015
+ def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ...
+ _ClearFieldArgType: _TypeAlias = _typing.Literal["errorMessage", b"errorMessage", "result", b"result", "success", b"success"] # noqa: Y015
+ def ClearField(self, field_name: _ClearFieldArgType) -> None: ...
+ _WhichOneofReturnType_result: _TypeAlias = _typing.Literal["success", "errorMessage"] # noqa: Y015
+ _WhichOneofArgType_result: _TypeAlias = _typing.Literal["result", b"result"] # noqa: Y015
+ def WhichOneof(self, oneof_group: _WhichOneofArgType_result) -> _WhichOneofReturnType_result | None: ...
- TIMESTAMP_FIELD_NUMBER: _builtins.int
- timestamp: _builtins.int
- def __init__(
- self,
- *,
- timestamp: _builtins.int | None = ...,
- ) -> None: ...
- _HasFieldArgType: _TypeAlias = _typing.Literal["timestamp", b"timestamp"] # noqa: Y015
- def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ...
- _ClearFieldArgType: _TypeAlias = _typing.Literal["timestamp", b"timestamp"] # noqa: Y015
- def ClearField(self, field_name: _ClearFieldArgType) -> None: ...
+Global___MandrakeEncryptMekResult: _TypeAlias = MandrakeEncryptMekResult # noqa: Y015
- COMPONENT_FIELD_NUMBER: _builtins.int
- UNIXEPOCH_FIELD_NUMBER: _builtins.int
- @_builtins.property
- def component(self) -> Global___Message.HighlyStructuredMessage.HSMLocalizableParameter.HSMDateTime.HSMDateTimeComponent: ...
- @_builtins.property
- def unixEpoch(self) -> Global___Message.HighlyStructuredMessage.HSMLocalizableParameter.HSMDateTime.HSMDateTimeUnixEpoch: ...
- def __init__(
- self,
- *,
- component: Global___Message.HighlyStructuredMessage.HSMLocalizableParameter.HSMDateTime.HSMDateTimeComponent | None = ...,
- unixEpoch: Global___Message.HighlyStructuredMessage.HSMLocalizableParameter.HSMDateTime.HSMDateTimeUnixEpoch | None = ...,
- ) -> None: ...
- _HasFieldArgType: _TypeAlias = _typing.Literal["component", b"component", "datetimeOneof", b"datetimeOneof", "unixEpoch", b"unixEpoch"] # noqa: Y015
- def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ...
- _ClearFieldArgType: _TypeAlias = _typing.Literal["component", b"component", "datetimeOneof", b"datetimeOneof", "unixEpoch", b"unixEpoch"] # noqa: Y015
- def ClearField(self, field_name: _ClearFieldArgType) -> None: ...
- _WhichOneofReturnType_datetimeOneof: _TypeAlias = _typing.Literal["component", "unixEpoch"] # noqa: Y015
- _WhichOneofArgType_datetimeOneof: _TypeAlias = _typing.Literal["datetimeOneof", b"datetimeOneof"] # noqa: Y015
- def WhichOneof(self, oneof_group: _WhichOneofArgType_datetimeOneof) -> _WhichOneofReturnType_datetimeOneof | None: ...
+@_typing.final
+class MandrakeEncryptMekSuccess(_message.Message):
+ DESCRIPTOR: _descriptor.Descriptor
- DEFAULT_FIELD_NUMBER: _builtins.int
- CURRENCY_FIELD_NUMBER: _builtins.int
- DATETIME_FIELD_NUMBER: _builtins.int
- default: _builtins.str
- @_builtins.property
- def currency(self) -> Global___Message.HighlyStructuredMessage.HSMLocalizableParameter.HSMCurrency: ...
- @_builtins.property
- def dateTime(self) -> Global___Message.HighlyStructuredMessage.HSMLocalizableParameter.HSMDateTime: ...
- def __init__(
- self,
- *,
- default: _builtins.str | None = ...,
- currency: Global___Message.HighlyStructuredMessage.HSMLocalizableParameter.HSMCurrency | None = ...,
- dateTime: Global___Message.HighlyStructuredMessage.HSMLocalizableParameter.HSMDateTime | None = ...,
- ) -> None: ...
- _HasFieldArgType: _TypeAlias = _typing.Literal["currency", b"currency", "dateTime", b"dateTime", "default", b"default", "paramOneof", b"paramOneof"] # noqa: Y015
- def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ...
- _ClearFieldArgType: _TypeAlias = _typing.Literal["currency", b"currency", "dateTime", b"dateTime", "default", b"default", "paramOneof", b"paramOneof"] # noqa: Y015
- def ClearField(self, field_name: _ClearFieldArgType) -> None: ...
- _WhichOneofReturnType_paramOneof: _TypeAlias = _typing.Literal["currency", "dateTime"] # noqa: Y015
- _WhichOneofArgType_paramOneof: _TypeAlias = _typing.Literal["paramOneof", b"paramOneof"] # noqa: Y015
- def WhichOneof(self, oneof_group: _WhichOneofArgType_paramOneof) -> _WhichOneofReturnType_paramOneof | None: ...
+ @_typing.final
+ class MekDistributionSingleRecipient(_message.Message):
+ DESCRIPTOR: _descriptor.Descriptor
- NAMESPACE_FIELD_NUMBER: _builtins.int
- ELEMENTNAME_FIELD_NUMBER: _builtins.int
- PARAMS_FIELD_NUMBER: _builtins.int
- FALLBACKLG_FIELD_NUMBER: _builtins.int
- FALLBACKLC_FIELD_NUMBER: _builtins.int
- LOCALIZABLEPARAMS_FIELD_NUMBER: _builtins.int
- DETERMINISTICLG_FIELD_NUMBER: _builtins.int
- DETERMINISTICLC_FIELD_NUMBER: _builtins.int
- HYDRATEDHSM_FIELD_NUMBER: _builtins.int
- namespace: _builtins.str
- elementName: _builtins.str
- fallbackLg: _builtins.str
- fallbackLc: _builtins.str
- deterministicLg: _builtins.str
- deterministicLc: _builtins.str
- @_builtins.property
- def params(self) -> _containers.RepeatedScalarFieldContainer[_builtins.str]: ...
+ ENCRYPTEDMEK_FIELD_NUMBER: _builtins.int
+ TOMMK_FIELD_NUMBER: _builtins.int
+ RECIPIENTMEMBERSHIPPROOF_FIELD_NUMBER: _builtins.int
+ encryptedMek: _builtins.bytes
@_builtins.property
- def localizableParams(self) -> _containers.RepeatedCompositeFieldContainer[Global___Message.HighlyStructuredMessage.HSMLocalizableParameter]: ...
+ def toMmk(self) -> Global___MessagingMailboxPublicData: ...
@_builtins.property
- def hydratedHsm(self) -> Global___Message.TemplateMessage: ...
+ def recipientMembershipProof(self) -> Global___MerkleMembershipProof: ...
def __init__(
self,
*,
- namespace: _builtins.str | None = ...,
- elementName: _builtins.str | None = ...,
- params: _abc.Iterable[_builtins.str] | None = ...,
- fallbackLg: _builtins.str | None = ...,
- fallbackLc: _builtins.str | None = ...,
- localizableParams: _abc.Iterable[Global___Message.HighlyStructuredMessage.HSMLocalizableParameter] | None = ...,
- deterministicLg: _builtins.str | None = ...,
- deterministicLc: _builtins.str | None = ...,
- hydratedHsm: Global___Message.TemplateMessage | None = ...,
+ encryptedMek: _builtins.bytes | None = ...,
+ toMmk: Global___MessagingMailboxPublicData | None = ...,
+ recipientMembershipProof: Global___MerkleMembershipProof | None = ...,
) -> None: ...
- _HasFieldArgType: _TypeAlias = _typing.Literal["deterministicLc", b"deterministicLc", "deterministicLg", b"deterministicLg", "elementName", b"elementName", "fallbackLc", b"fallbackLc", "fallbackLg", b"fallbackLg", "hydratedHsm", b"hydratedHsm", "namespace", b"namespace"] # noqa: Y015
+ _HasFieldArgType: _TypeAlias = _typing.Literal["encryptedMek", b"encryptedMek", "recipientMembershipProof", b"recipientMembershipProof", "toMmk", b"toMmk"] # noqa: Y015
def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ...
- _ClearFieldArgType: _TypeAlias = _typing.Literal["deterministicLc", b"deterministicLc", "deterministicLg", b"deterministicLg", "elementName", b"elementName", "fallbackLc", b"fallbackLc", "fallbackLg", b"fallbackLg", "hydratedHsm", b"hydratedHsm", "localizableParams", b"localizableParams", "namespace", b"namespace", "params", b"params"] # noqa: Y015
+ _ClearFieldArgType: _TypeAlias = _typing.Literal["encryptedMek", b"encryptedMek", "recipientMembershipProof", b"recipientMembershipProof", "toMmk", b"toMmk"] # noqa: Y015
def ClearField(self, field_name: _ClearFieldArgType) -> None: ...
- @_typing.final
- class HistorySyncMessageAccessStatus(_message.Message):
- DESCRIPTOR: _descriptor.Descriptor
+ DISTRIBUTIONS_FIELD_NUMBER: _builtins.int
+ RECIPIENTSHASH_FIELD_NUMBER: _builtins.int
+ VERSION_FIELD_NUMBER: _builtins.int
+ recipientsHash: _builtins.bytes
+ version: _builtins.int
+ @_builtins.property
+ def distributions(self) -> _containers.RepeatedCompositeFieldContainer[Global___MandrakeEncryptMekSuccess.MekDistributionSingleRecipient]: ...
+ def __init__(
+ self,
+ *,
+ distributions: _abc.Iterable[Global___MandrakeEncryptMekSuccess.MekDistributionSingleRecipient] | None = ...,
+ recipientsHash: _builtins.bytes | None = ...,
+ version: _builtins.int | None = ...,
+ ) -> None: ...
+ _HasFieldArgType: _TypeAlias = _typing.Literal["recipientsHash", b"recipientsHash", "version", b"version"] # noqa: Y015
+ def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ...
+ _ClearFieldArgType: _TypeAlias = _typing.Literal["distributions", b"distributions", "recipientsHash", b"recipientsHash", "version", b"version"] # noqa: Y015
+ def ClearField(self, field_name: _ClearFieldArgType) -> None: ...
- COMPLETEACCESSGRANTED_FIELD_NUMBER: _builtins.int
- completeAccessGranted: _builtins.bool
- def __init__(
- self,
- *,
- completeAccessGranted: _builtins.bool | None = ...,
- ) -> None: ...
- _HasFieldArgType: _TypeAlias = _typing.Literal["completeAccessGranted", b"completeAccessGranted"] # noqa: Y015
- def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ...
- _ClearFieldArgType: _TypeAlias = _typing.Literal["completeAccessGranted", b"completeAccessGranted"] # noqa: Y015
- def ClearField(self, field_name: _ClearFieldArgType) -> None: ...
+Global___MandrakeEncryptMekSuccess: _TypeAlias = MandrakeEncryptMekSuccess # noqa: Y015
- @_typing.final
- class HistorySyncNotification(_message.Message):
- DESCRIPTOR: _descriptor.Descriptor
+@_typing.final
+class MandrakeMekBundle(_message.Message):
+ DESCRIPTOR: _descriptor.Descriptor
- FILESHA256_FIELD_NUMBER: _builtins.int
- FILELENGTH_FIELD_NUMBER: _builtins.int
- MEDIAKEY_FIELD_NUMBER: _builtins.int
- FILEENCSHA256_FIELD_NUMBER: _builtins.int
- DIRECTPATH_FIELD_NUMBER: _builtins.int
- SYNCTYPE_FIELD_NUMBER: _builtins.int
- CHUNKORDER_FIELD_NUMBER: _builtins.int
- ORIGINALMESSAGEID_FIELD_NUMBER: _builtins.int
- PROGRESS_FIELD_NUMBER: _builtins.int
- OLDESTMSGINCHUNKTIMESTAMPSEC_FIELD_NUMBER: _builtins.int
- INITIALHISTBOOTSTRAPINLINEPAYLOAD_FIELD_NUMBER: _builtins.int
- PEERDATAREQUESTSESSIONID_FIELD_NUMBER: _builtins.int
- FULLHISTORYSYNCONDEMANDREQUESTMETADATA_FIELD_NUMBER: _builtins.int
- ENCHANDLE_FIELD_NUMBER: _builtins.int
- MESSAGEACCESSSTATUS_FIELD_NUMBER: _builtins.int
- fileSha256: _builtins.bytes
- fileLength: _builtins.int
- mediaKey: _builtins.bytes
- fileEncSha256: _builtins.bytes
- directPath: _builtins.str
- syncType: Global___Message.HistorySyncType.ValueType
- chunkOrder: _builtins.int
- originalMessageId: _builtins.str
- progress: _builtins.int
- oldestMsgInChunkTimestampSec: _builtins.int
- initialHistBootstrapInlinePayload: _builtins.bytes
- peerDataRequestSessionId: _builtins.str
- encHandle: _builtins.str
- @_builtins.property
- def fullHistorySyncOnDemandRequestMetadata(self) -> Global___Message.FullHistorySyncOnDemandRequestMetadata: ...
- @_builtins.property
- def messageAccessStatus(self) -> Global___Message.HistorySyncMessageAccessStatus: ...
- def __init__(
- self,
- *,
- fileSha256: _builtins.bytes | None = ...,
- fileLength: _builtins.int | None = ...,
- mediaKey: _builtins.bytes | None = ...,
- fileEncSha256: _builtins.bytes | None = ...,
- directPath: _builtins.str | None = ...,
- syncType: Global___Message.HistorySyncType.ValueType | None = ...,
- chunkOrder: _builtins.int | None = ...,
- originalMessageId: _builtins.str | None = ...,
- progress: _builtins.int | None = ...,
- oldestMsgInChunkTimestampSec: _builtins.int | None = ...,
- initialHistBootstrapInlinePayload: _builtins.bytes | None = ...,
- peerDataRequestSessionId: _builtins.str | None = ...,
- fullHistorySyncOnDemandRequestMetadata: Global___Message.FullHistorySyncOnDemandRequestMetadata | None = ...,
- encHandle: _builtins.str | None = ...,
- messageAccessStatus: Global___Message.HistorySyncMessageAccessStatus | None = ...,
- ) -> None: ...
- _HasFieldArgType: _TypeAlias = _typing.Literal["chunkOrder", b"chunkOrder", "directPath", b"directPath", "encHandle", b"encHandle", "fileEncSha256", b"fileEncSha256", "fileLength", b"fileLength", "fileSha256", b"fileSha256", "fullHistorySyncOnDemandRequestMetadata", b"fullHistorySyncOnDemandRequestMetadata", "initialHistBootstrapInlinePayload", b"initialHistBootstrapInlinePayload", "mediaKey", b"mediaKey", "messageAccessStatus", b"messageAccessStatus", "oldestMsgInChunkTimestampSec", b"oldestMsgInChunkTimestampSec", "originalMessageId", b"originalMessageId", "peerDataRequestSessionId", b"peerDataRequestSessionId", "progress", b"progress", "syncType", b"syncType"] # noqa: Y015
- def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ...
- _ClearFieldArgType: _TypeAlias = _typing.Literal["chunkOrder", b"chunkOrder", "directPath", b"directPath", "encHandle", b"encHandle", "fileEncSha256", b"fileEncSha256", "fileLength", b"fileLength", "fileSha256", b"fileSha256", "fullHistorySyncOnDemandRequestMetadata", b"fullHistorySyncOnDemandRequestMetadata", "initialHistBootstrapInlinePayload", b"initialHistBootstrapInlinePayload", "mediaKey", b"mediaKey", "messageAccessStatus", b"messageAccessStatus", "oldestMsgInChunkTimestampSec", b"oldestMsgInChunkTimestampSec", "originalMessageId", b"originalMessageId", "peerDataRequestSessionId", b"peerDataRequestSessionId", "progress", b"progress", "syncType", b"syncType"] # noqa: Y015
- def ClearField(self, field_name: _ClearFieldArgType) -> None: ...
+ KEY_FIELD_NUMBER: _builtins.int
+ MEKID_FIELD_NUMBER: _builtins.int
+ MAILBOXHEADHASH_FIELD_NUMBER: _builtins.int
+ key: _builtins.bytes
+ mekId: _builtins.bytes
+ mailboxHeadHash: _builtins.bytes
+ def __init__(
+ self,
+ *,
+ key: _builtins.bytes | None = ...,
+ mekId: _builtins.bytes | None = ...,
+ mailboxHeadHash: _builtins.bytes | None = ...,
+ ) -> None: ...
+ _HasFieldArgType: _TypeAlias = _typing.Literal["key", b"key", "mailboxHeadHash", b"mailboxHeadHash", "mekId", b"mekId"] # noqa: Y015
+ def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ...
+ _ClearFieldArgType: _TypeAlias = _typing.Literal["key", b"key", "mailboxHeadHash", b"mailboxHeadHash", "mekId", b"mekId"] # noqa: Y015
+ def ClearField(self, field_name: _ClearFieldArgType) -> None: ...
- @_typing.final
- class ImageMessage(_message.Message):
- DESCRIPTOR: _descriptor.Descriptor
+Global___MandrakeMekBundle: _TypeAlias = MandrakeMekBundle # noqa: Y015
- class _ImageSourceType:
- ValueType = _typing.NewType("ValueType", _builtins.int)
- V: _TypeAlias = ValueType # noqa: Y015
+@_typing.final
+class MandrakeOpenEpochInput(_message.Message):
+ DESCRIPTOR: _descriptor.Descriptor
- class _ImageSourceTypeEnumTypeWrapper(_enum_type_wrapper._EnumTypeWrapper[Message.ImageMessage._ImageSourceType.ValueType], _builtins.type):
- DESCRIPTOR: _descriptor.EnumDescriptor
- USER_IMAGE: Message.ImageMessage._ImageSourceType.ValueType # 0
- AI_GENERATED: Message.ImageMessage._ImageSourceType.ValueType # 1
- AI_MODIFIED: Message.ImageMessage._ImageSourceType.ValueType # 2
- RASTERIZED_TEXT_STATUS: Message.ImageMessage._ImageSourceType.ValueType # 3
+ USERFBID_FIELD_NUMBER: _builtins.int
+ EPOCHNUMBER_FIELD_NUMBER: _builtins.int
+ EXPORTROOTKEY_FIELD_NUMBER: _builtins.int
+ PREVIOUSEXPORTROOTKEY_FIELD_NUMBER: _builtins.int
+ PREVIOUSEPOCHNUMBER_FIELD_NUMBER: _builtins.int
+ PREVIOUSEPOCHHEAD_FIELD_NUMBER: _builtins.int
+ PREVIOUSMMK_FIELD_NUMBER: _builtins.int
+ DETACHEDDEVICES_FIELD_NUMBER: _builtins.int
+ userFbid: _builtins.str
+ epochNumber: _builtins.int
+ exportRootKey: _builtins.bytes
+ previousExportRootKey: _builtins.bytes
+ previousEpochNumber: _builtins.int
+ previousEpochHead: _builtins.bytes
+ @_builtins.property
+ def previousMmk(self) -> Global___MessagingMailboxPublicData: ...
+ @_builtins.property
+ def detachedDevices(self) -> _containers.RepeatedCompositeFieldContainer[Global___DetachedDevicePublicData]: ...
+ def __init__(
+ self,
+ *,
+ userFbid: _builtins.str | None = ...,
+ epochNumber: _builtins.int | None = ...,
+ exportRootKey: _builtins.bytes | None = ...,
+ previousExportRootKey: _builtins.bytes | None = ...,
+ previousEpochNumber: _builtins.int | None = ...,
+ previousEpochHead: _builtins.bytes | None = ...,
+ previousMmk: Global___MessagingMailboxPublicData | None = ...,
+ detachedDevices: _abc.Iterable[Global___DetachedDevicePublicData] | None = ...,
+ ) -> None: ...
+ _HasFieldArgType: _TypeAlias = _typing.Literal["epochNumber", b"epochNumber", "exportRootKey", b"exportRootKey", "previousEpochHead", b"previousEpochHead", "previousEpochNumber", b"previousEpochNumber", "previousExportRootKey", b"previousExportRootKey", "previousMmk", b"previousMmk", "userFbid", b"userFbid"] # noqa: Y015
+ def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ...
+ _ClearFieldArgType: _TypeAlias = _typing.Literal["detachedDevices", b"detachedDevices", "epochNumber", b"epochNumber", "exportRootKey", b"exportRootKey", "previousEpochHead", b"previousEpochHead", "previousEpochNumber", b"previousEpochNumber", "previousExportRootKey", b"previousExportRootKey", "previousMmk", b"previousMmk", "userFbid", b"userFbid"] # noqa: Y015
+ def ClearField(self, field_name: _ClearFieldArgType) -> None: ...
- class ImageSourceType(_ImageSourceType, metaclass=_ImageSourceTypeEnumTypeWrapper): ...
- USER_IMAGE: Message.ImageMessage.ImageSourceType.ValueType # 0
- AI_GENERATED: Message.ImageMessage.ImageSourceType.ValueType # 1
- AI_MODIFIED: Message.ImageMessage.ImageSourceType.ValueType # 2
- RASTERIZED_TEXT_STATUS: Message.ImageMessage.ImageSourceType.ValueType # 3
+Global___MandrakeOpenEpochInput: _TypeAlias = MandrakeOpenEpochInput # noqa: Y015
- URL_FIELD_NUMBER: _builtins.int
- MIMETYPE_FIELD_NUMBER: _builtins.int
- CAPTION_FIELD_NUMBER: _builtins.int
- FILESHA256_FIELD_NUMBER: _builtins.int
- FILELENGTH_FIELD_NUMBER: _builtins.int
- HEIGHT_FIELD_NUMBER: _builtins.int
- WIDTH_FIELD_NUMBER: _builtins.int
- MEDIAKEY_FIELD_NUMBER: _builtins.int
- FILEENCSHA256_FIELD_NUMBER: _builtins.int
- INTERACTIVEANNOTATIONS_FIELD_NUMBER: _builtins.int
- DIRECTPATH_FIELD_NUMBER: _builtins.int
- MEDIAKEYTIMESTAMP_FIELD_NUMBER: _builtins.int
- JPEGTHUMBNAIL_FIELD_NUMBER: _builtins.int
- CONTEXTINFO_FIELD_NUMBER: _builtins.int
- FIRSTSCANSIDECAR_FIELD_NUMBER: _builtins.int
- FIRSTSCANLENGTH_FIELD_NUMBER: _builtins.int
- EXPERIMENTGROUPID_FIELD_NUMBER: _builtins.int
- SCANSSIDECAR_FIELD_NUMBER: _builtins.int
- SCANLENGTHS_FIELD_NUMBER: _builtins.int
- MIDQUALITYFILESHA256_FIELD_NUMBER: _builtins.int
- MIDQUALITYFILEENCSHA256_FIELD_NUMBER: _builtins.int
- VIEWONCE_FIELD_NUMBER: _builtins.int
- THUMBNAILDIRECTPATH_FIELD_NUMBER: _builtins.int
- THUMBNAILSHA256_FIELD_NUMBER: _builtins.int
- THUMBNAILENCSHA256_FIELD_NUMBER: _builtins.int
- STATICURL_FIELD_NUMBER: _builtins.int
- ANNOTATIONS_FIELD_NUMBER: _builtins.int
- IMAGESOURCETYPE_FIELD_NUMBER: _builtins.int
- ACCESSIBILITYLABEL_FIELD_NUMBER: _builtins.int
- QRURL_FIELD_NUMBER: _builtins.int
- url: _builtins.str
- mimetype: _builtins.str
- caption: _builtins.str
- fileSha256: _builtins.bytes
- fileLength: _builtins.int
- height: _builtins.int
- width: _builtins.int
- mediaKey: _builtins.bytes
- fileEncSha256: _builtins.bytes
- directPath: _builtins.str
- mediaKeyTimestamp: _builtins.int
- jpegThumbnail: _builtins.bytes
- firstScanSidecar: _builtins.bytes
- firstScanLength: _builtins.int
- experimentGroupId: _builtins.int
- scansSidecar: _builtins.bytes
- midQualityFileSha256: _builtins.bytes
- midQualityFileEncSha256: _builtins.bytes
- viewOnce: _builtins.bool
- thumbnailDirectPath: _builtins.str
- thumbnailSha256: _builtins.bytes
- thumbnailEncSha256: _builtins.bytes
- staticUrl: _builtins.str
- imageSourceType: Global___Message.ImageMessage.ImageSourceType.ValueType
- accessibilityLabel: _builtins.str
- qrUrl: _builtins.str
- @_builtins.property
- def interactiveAnnotations(self) -> _containers.RepeatedCompositeFieldContainer[Global___InteractiveAnnotation]: ...
- @_builtins.property
- def contextInfo(self) -> Global___ContextInfo: ...
- @_builtins.property
- def scanLengths(self) -> _containers.RepeatedScalarFieldContainer[_builtins.int]: ...
- @_builtins.property
- def annotations(self) -> _containers.RepeatedCompositeFieldContainer[Global___InteractiveAnnotation]: ...
- def __init__(
- self,
- *,
- url: _builtins.str | None = ...,
- mimetype: _builtins.str | None = ...,
- caption: _builtins.str | None = ...,
- fileSha256: _builtins.bytes | None = ...,
- fileLength: _builtins.int | None = ...,
- height: _builtins.int | None = ...,
- width: _builtins.int | None = ...,
- mediaKey: _builtins.bytes | None = ...,
- fileEncSha256: _builtins.bytes | None = ...,
- interactiveAnnotations: _abc.Iterable[Global___InteractiveAnnotation] | None = ...,
- directPath: _builtins.str | None = ...,
- mediaKeyTimestamp: _builtins.int | None = ...,
- jpegThumbnail: _builtins.bytes | None = ...,
- contextInfo: Global___ContextInfo | None = ...,
- firstScanSidecar: _builtins.bytes | None = ...,
- firstScanLength: _builtins.int | None = ...,
- experimentGroupId: _builtins.int | None = ...,
- scansSidecar: _builtins.bytes | None = ...,
- scanLengths: _abc.Iterable[_builtins.int] | None = ...,
- midQualityFileSha256: _builtins.bytes | None = ...,
- midQualityFileEncSha256: _builtins.bytes | None = ...,
- viewOnce: _builtins.bool | None = ...,
- thumbnailDirectPath: _builtins.str | None = ...,
- thumbnailSha256: _builtins.bytes | None = ...,
- thumbnailEncSha256: _builtins.bytes | None = ...,
- staticUrl: _builtins.str | None = ...,
- annotations: _abc.Iterable[Global___InteractiveAnnotation] | None = ...,
- imageSourceType: Global___Message.ImageMessage.ImageSourceType.ValueType | None = ...,
- accessibilityLabel: _builtins.str | None = ...,
- qrUrl: _builtins.str | None = ...,
- ) -> None: ...
- _HasFieldArgType: _TypeAlias = _typing.Literal["accessibilityLabel", b"accessibilityLabel", "caption", b"caption", "contextInfo", b"contextInfo", "directPath", b"directPath", "experimentGroupId", b"experimentGroupId", "fileEncSha256", b"fileEncSha256", "fileLength", b"fileLength", "fileSha256", b"fileSha256", "firstScanLength", b"firstScanLength", "firstScanSidecar", b"firstScanSidecar", "height", b"height", "imageSourceType", b"imageSourceType", "jpegThumbnail", b"jpegThumbnail", "mediaKey", b"mediaKey", "mediaKeyTimestamp", b"mediaKeyTimestamp", "midQualityFileEncSha256", b"midQualityFileEncSha256", "midQualityFileSha256", b"midQualityFileSha256", "mimetype", b"mimetype", "qrUrl", b"qrUrl", "scansSidecar", b"scansSidecar", "staticUrl", b"staticUrl", "thumbnailDirectPath", b"thumbnailDirectPath", "thumbnailEncSha256", b"thumbnailEncSha256", "thumbnailSha256", b"thumbnailSha256", "url", b"url", "viewOnce", b"viewOnce", "width", b"width"] # noqa: Y015
- def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ...
- _ClearFieldArgType: _TypeAlias = _typing.Literal["accessibilityLabel", b"accessibilityLabel", "annotations", b"annotations", "caption", b"caption", "contextInfo", b"contextInfo", "directPath", b"directPath", "experimentGroupId", b"experimentGroupId", "fileEncSha256", b"fileEncSha256", "fileLength", b"fileLength", "fileSha256", b"fileSha256", "firstScanLength", b"firstScanLength", "firstScanSidecar", b"firstScanSidecar", "height", b"height", "imageSourceType", b"imageSourceType", "interactiveAnnotations", b"interactiveAnnotations", "jpegThumbnail", b"jpegThumbnail", "mediaKey", b"mediaKey", "mediaKeyTimestamp", b"mediaKeyTimestamp", "midQualityFileEncSha256", b"midQualityFileEncSha256", "midQualityFileSha256", b"midQualityFileSha256", "mimetype", b"mimetype", "qrUrl", b"qrUrl", "scanLengths", b"scanLengths", "scansSidecar", b"scansSidecar", "staticUrl", b"staticUrl", "thumbnailDirectPath", b"thumbnailDirectPath", "thumbnailEncSha256", b"thumbnailEncSha256", "thumbnailSha256", b"thumbnailSha256", "url", b"url", "viewOnce", b"viewOnce", "width", b"width"] # noqa: Y015
- def ClearField(self, field_name: _ClearFieldArgType) -> None: ...
+@_typing.final
+class MandrakeOpenEpochResult(_message.Message):
+ DESCRIPTOR: _descriptor.Descriptor
- @_typing.final
- class InitialSecurityNotificationSettingSync(_message.Message):
- DESCRIPTOR: _descriptor.Descriptor
+ SUCCESS_FIELD_NUMBER: _builtins.int
+ ERRORMESSAGE_FIELD_NUMBER: _builtins.int
+ errorMessage: _builtins.str
+ @_builtins.property
+ def success(self) -> Global___MandrakeOpenEpochSuccess: ...
+ def __init__(
+ self,
+ *,
+ success: Global___MandrakeOpenEpochSuccess | None = ...,
+ errorMessage: _builtins.str | None = ...,
+ ) -> None: ...
+ _HasFieldArgType: _TypeAlias = _typing.Literal["errorMessage", b"errorMessage", "result", b"result", "success", b"success"] # noqa: Y015
+ def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ...
+ _ClearFieldArgType: _TypeAlias = _typing.Literal["errorMessage", b"errorMessage", "result", b"result", "success", b"success"] # noqa: Y015
+ def ClearField(self, field_name: _ClearFieldArgType) -> None: ...
+ _WhichOneofReturnType_result: _TypeAlias = _typing.Literal["success", "errorMessage"] # noqa: Y015
+ _WhichOneofArgType_result: _TypeAlias = _typing.Literal["result", b"result"] # noqa: Y015
+ def WhichOneof(self, oneof_group: _WhichOneofArgType_result) -> _WhichOneofReturnType_result | None: ...
- SECURITYNOTIFICATIONENABLED_FIELD_NUMBER: _builtins.int
- securityNotificationEnabled: _builtins.bool
- def __init__(
- self,
- *,
- securityNotificationEnabled: _builtins.bool | None = ...,
- ) -> None: ...
- _HasFieldArgType: _TypeAlias = _typing.Literal["securityNotificationEnabled", b"securityNotificationEnabled"] # noqa: Y015
- def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ...
- _ClearFieldArgType: _TypeAlias = _typing.Literal["securityNotificationEnabled", b"securityNotificationEnabled"] # noqa: Y015
- def ClearField(self, field_name: _ClearFieldArgType) -> None: ...
+Global___MandrakeOpenEpochResult: _TypeAlias = MandrakeOpenEpochResult # noqa: Y015
- @_typing.final
- class InteractiveMessage(_message.Message):
- DESCRIPTOR: _descriptor.Descriptor
+@_typing.final
+class MandrakeOpenEpochSuccess(_message.Message):
+ DESCRIPTOR: _descriptor.Descriptor
- @_typing.final
- class BloksWidget(_message.Message):
- DESCRIPTOR: _descriptor.Descriptor
+ MINOSSIGNEDEPOCH_FIELD_NUMBER: _builtins.int
+ SIGNEDMMKDISTRIBUTION_FIELD_NUMBER: _builtins.int
+ @_builtins.property
+ def minosSignedEpoch(self) -> Global___MinosSignedEpoch: ...
+ @_builtins.property
+ def signedMmkDistribution(self) -> Global___SignedMmkDistributionFromMailbox: ...
+ def __init__(
+ self,
+ *,
+ minosSignedEpoch: Global___MinosSignedEpoch | None = ...,
+ signedMmkDistribution: Global___SignedMmkDistributionFromMailbox | None = ...,
+ ) -> None: ...
+ _HasFieldArgType: _TypeAlias = _typing.Literal["minosSignedEpoch", b"minosSignedEpoch", "signedMmkDistribution", b"signedMmkDistribution"] # noqa: Y015
+ def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ...
+ _ClearFieldArgType: _TypeAlias = _typing.Literal["minosSignedEpoch", b"minosSignedEpoch", "signedMmkDistribution", b"signedMmkDistribution"] # noqa: Y015
+ def ClearField(self, field_name: _ClearFieldArgType) -> None: ...
- UUID_FIELD_NUMBER: _builtins.int
- DATA_FIELD_NUMBER: _builtins.int
- TYPE_FIELD_NUMBER: _builtins.int
- FALLBACK_FIELD_NUMBER: _builtins.int
- uuid: _builtins.str
- data: _builtins.str
- type: _builtins.str
- fallback: _builtins.str
- def __init__(
- self,
- *,
- uuid: _builtins.str | None = ...,
- data: _builtins.str | None = ...,
- type: _builtins.str | None = ...,
- fallback: _builtins.str | None = ...,
- ) -> None: ...
- _HasFieldArgType: _TypeAlias = _typing.Literal["data", b"data", "fallback", b"fallback", "type", b"type", "uuid", b"uuid"] # noqa: Y015
- def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ...
- _ClearFieldArgType: _TypeAlias = _typing.Literal["data", b"data", "fallback", b"fallback", "type", b"type", "uuid", b"uuid"] # noqa: Y015
- def ClearField(self, field_name: _ClearFieldArgType) -> None: ...
+Global___MandrakeOpenEpochSuccess: _TypeAlias = MandrakeOpenEpochSuccess # noqa: Y015
- @_typing.final
- class Body(_message.Message):
- DESCRIPTOR: _descriptor.Descriptor
+@_typing.final
+class MandrakeOpenInitialEpochInput(_message.Message):
+ DESCRIPTOR: _descriptor.Descriptor
- TEXT_FIELD_NUMBER: _builtins.int
- text: _builtins.str
- def __init__(
- self,
- *,
- text: _builtins.str | None = ...,
- ) -> None: ...
- _HasFieldArgType: _TypeAlias = _typing.Literal["text", b"text"] # noqa: Y015
- def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ...
- _ClearFieldArgType: _TypeAlias = _typing.Literal["text", b"text"] # noqa: Y015
- def ClearField(self, field_name: _ClearFieldArgType) -> None: ...
+ USERFBID_FIELD_NUMBER: _builtins.int
+ EPOCHNUMBER_FIELD_NUMBER: _builtins.int
+ EXPORTROOTKEY_FIELD_NUMBER: _builtins.int
+ DETACHEDDEVICES_FIELD_NUMBER: _builtins.int
+ userFbid: _builtins.str
+ epochNumber: _builtins.int
+ exportRootKey: _builtins.bytes
+ @_builtins.property
+ def detachedDevices(self) -> _containers.RepeatedCompositeFieldContainer[Global___DetachedDevicePublicData]: ...
+ def __init__(
+ self,
+ *,
+ userFbid: _builtins.str | None = ...,
+ epochNumber: _builtins.int | None = ...,
+ exportRootKey: _builtins.bytes | None = ...,
+ detachedDevices: _abc.Iterable[Global___DetachedDevicePublicData] | None = ...,
+ ) -> None: ...
+ _HasFieldArgType: _TypeAlias = _typing.Literal["epochNumber", b"epochNumber", "exportRootKey", b"exportRootKey", "userFbid", b"userFbid"] # noqa: Y015
+ def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ...
+ _ClearFieldArgType: _TypeAlias = _typing.Literal["detachedDevices", b"detachedDevices", "epochNumber", b"epochNumber", "exportRootKey", b"exportRootKey", "userFbid", b"userFbid"] # noqa: Y015
+ def ClearField(self, field_name: _ClearFieldArgType) -> None: ...
- @_typing.final
- class CarouselMessage(_message.Message):
- DESCRIPTOR: _descriptor.Descriptor
+Global___MandrakeOpenInitialEpochInput: _TypeAlias = MandrakeOpenInitialEpochInput # noqa: Y015
- class _CarouselCardType:
- ValueType = _typing.NewType("ValueType", _builtins.int)
- V: _TypeAlias = ValueType # noqa: Y015
+@_typing.final
+class MandrakeOpenInitialEpochResult(_message.Message):
+ DESCRIPTOR: _descriptor.Descriptor
- class _CarouselCardTypeEnumTypeWrapper(_enum_type_wrapper._EnumTypeWrapper[Message.InteractiveMessage.CarouselMessage._CarouselCardType.ValueType], _builtins.type):
- DESCRIPTOR: _descriptor.EnumDescriptor
- UNKNOWN: Message.InteractiveMessage.CarouselMessage._CarouselCardType.ValueType # 0
- HSCROLL_CARDS: Message.InteractiveMessage.CarouselMessage._CarouselCardType.ValueType # 1
- ALBUM_IMAGE: Message.InteractiveMessage.CarouselMessage._CarouselCardType.ValueType # 2
+ SUCCESS_FIELD_NUMBER: _builtins.int
+ ERRORMESSAGE_FIELD_NUMBER: _builtins.int
+ errorMessage: _builtins.str
+ @_builtins.property
+ def success(self) -> Global___MandrakeOpenEpochSuccess: ...
+ def __init__(
+ self,
+ *,
+ success: Global___MandrakeOpenEpochSuccess | None = ...,
+ errorMessage: _builtins.str | None = ...,
+ ) -> None: ...
+ _HasFieldArgType: _TypeAlias = _typing.Literal["errorMessage", b"errorMessage", "result", b"result", "success", b"success"] # noqa: Y015
+ def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ...
+ _ClearFieldArgType: _TypeAlias = _typing.Literal["errorMessage", b"errorMessage", "result", b"result", "success", b"success"] # noqa: Y015
+ def ClearField(self, field_name: _ClearFieldArgType) -> None: ...
+ _WhichOneofReturnType_result: _TypeAlias = _typing.Literal["success", "errorMessage"] # noqa: Y015
+ _WhichOneofArgType_result: _TypeAlias = _typing.Literal["result", b"result"] # noqa: Y015
+ def WhichOneof(self, oneof_group: _WhichOneofArgType_result) -> _WhichOneofReturnType_result | None: ...
- class CarouselCardType(_CarouselCardType, metaclass=_CarouselCardTypeEnumTypeWrapper): ...
- UNKNOWN: Message.InteractiveMessage.CarouselMessage.CarouselCardType.ValueType # 0
- HSCROLL_CARDS: Message.InteractiveMessage.CarouselMessage.CarouselCardType.ValueType # 1
- ALBUM_IMAGE: Message.InteractiveMessage.CarouselMessage.CarouselCardType.ValueType # 2
+Global___MandrakeOpenInitialEpochResult: _TypeAlias = MandrakeOpenInitialEpochResult # noqa: Y015
- CARDS_FIELD_NUMBER: _builtins.int
- MESSAGEVERSION_FIELD_NUMBER: _builtins.int
- CAROUSELCARDTYPE_FIELD_NUMBER: _builtins.int
- messageVersion: _builtins.int
- carouselCardType: Global___Message.InteractiveMessage.CarouselMessage.CarouselCardType.ValueType
- @_builtins.property
- def cards(self) -> _containers.RepeatedCompositeFieldContainer[Global___Message.InteractiveMessage]: ...
- def __init__(
- self,
- *,
- cards: _abc.Iterable[Global___Message.InteractiveMessage] | None = ...,
- messageVersion: _builtins.int | None = ...,
- carouselCardType: Global___Message.InteractiveMessage.CarouselMessage.CarouselCardType.ValueType | None = ...,
- ) -> None: ...
- _HasFieldArgType: _TypeAlias = _typing.Literal["carouselCardType", b"carouselCardType", "messageVersion", b"messageVersion"] # noqa: Y015
- def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ...
- _ClearFieldArgType: _TypeAlias = _typing.Literal["cards", b"cards", "carouselCardType", b"carouselCardType", "messageVersion", b"messageVersion"] # noqa: Y015
- def ClearField(self, field_name: _ClearFieldArgType) -> None: ...
+@_typing.final
+class MandrakeValidateNewMmkFromDetachedDeviceInput(_message.Message):
+ DESCRIPTOR: _descriptor.Descriptor
- @_typing.final
- class CollectionMessage(_message.Message):
- DESCRIPTOR: _descriptor.Descriptor
+ MMKFROMDEVICE_FIELD_NUMBER: _builtins.int
+ SIGNATURE_FIELD_NUMBER: _builtins.int
+ PREVMMK_FIELD_NUMBER: _builtins.int
+ signature: _builtins.bytes
+ @_builtins.property
+ def mmkFromDevice(self) -> Global___MmkFromDetachedDevice: ...
+ @_builtins.property
+ def prevMmk(self) -> Global___MessagingMailboxPublicData: ...
+ def __init__(
+ self,
+ *,
+ mmkFromDevice: Global___MmkFromDetachedDevice | None = ...,
+ signature: _builtins.bytes | None = ...,
+ prevMmk: Global___MessagingMailboxPublicData | None = ...,
+ ) -> None: ...
+ _HasFieldArgType: _TypeAlias = _typing.Literal["mmkFromDevice", b"mmkFromDevice", "prevMmk", b"prevMmk", "signature", b"signature"] # noqa: Y015
+ def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ...
+ _ClearFieldArgType: _TypeAlias = _typing.Literal["mmkFromDevice", b"mmkFromDevice", "prevMmk", b"prevMmk", "signature", b"signature"] # noqa: Y015
+ def ClearField(self, field_name: _ClearFieldArgType) -> None: ...
- BIZJID_FIELD_NUMBER: _builtins.int
- ID_FIELD_NUMBER: _builtins.int
- MESSAGEVERSION_FIELD_NUMBER: _builtins.int
- bizJid: _builtins.str
- id: _builtins.str
- messageVersion: _builtins.int
- def __init__(
- self,
- *,
- bizJid: _builtins.str | None = ...,
- id: _builtins.str | None = ...,
- messageVersion: _builtins.int | None = ...,
- ) -> None: ...
- _HasFieldArgType: _TypeAlias = _typing.Literal["bizJid", b"bizJid", "id", b"id", "messageVersion", b"messageVersion"] # noqa: Y015
- def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ...
- _ClearFieldArgType: _TypeAlias = _typing.Literal["bizJid", b"bizJid", "id", b"id", "messageVersion", b"messageVersion"] # noqa: Y015
- def ClearField(self, field_name: _ClearFieldArgType) -> None: ...
+Global___MandrakeValidateNewMmkFromDetachedDeviceInput: _TypeAlias = MandrakeValidateNewMmkFromDetachedDeviceInput # noqa: Y015
- @_typing.final
- class Footer(_message.Message):
- DESCRIPTOR: _descriptor.Descriptor
+@_typing.final
+class MandrakeValidateNewMmkFromMailboxInput(_message.Message):
+ DESCRIPTOR: _descriptor.Descriptor
- TEXT_FIELD_NUMBER: _builtins.int
- HASMEDIAATTACHMENT_FIELD_NUMBER: _builtins.int
- AUDIOMESSAGE_FIELD_NUMBER: _builtins.int
- text: _builtins.str
- hasMediaAttachment: _builtins.bool
- @_builtins.property
- def audioMessage(self) -> Global___Message.AudioMessage: ...
- def __init__(
- self,
- *,
- text: _builtins.str | None = ...,
- hasMediaAttachment: _builtins.bool | None = ...,
- audioMessage: Global___Message.AudioMessage | None = ...,
- ) -> None: ...
- _HasFieldArgType: _TypeAlias = _typing.Literal["audioMessage", b"audioMessage", "hasMediaAttachment", b"hasMediaAttachment", "media", b"media", "text", b"text"] # noqa: Y015
- def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ...
- _ClearFieldArgType: _TypeAlias = _typing.Literal["audioMessage", b"audioMessage", "hasMediaAttachment", b"hasMediaAttachment", "media", b"media", "text", b"text"] # noqa: Y015
- def ClearField(self, field_name: _ClearFieldArgType) -> None: ...
- _WhichOneofReturnType_media: _TypeAlias = _typing.Literal["audioMessage"] # noqa: Y015
- _WhichOneofArgType_media: _TypeAlias = _typing.Literal["media", b"media"] # noqa: Y015
- def WhichOneof(self, oneof_group: _WhichOneofArgType_media) -> _WhichOneofReturnType_media | None: ...
+ NEWMMK_FIELD_NUMBER: _builtins.int
+ SIGNATURE_FIELD_NUMBER: _builtins.int
+ PREVMMK_FIELD_NUMBER: _builtins.int
+ EPOCHPUBLICDATA_FIELD_NUMBER: _builtins.int
+ signature: _builtins.bytes
+ @_builtins.property
+ def newMmk(self) -> Global___MessagingMailboxPublicData: ...
+ @_builtins.property
+ def prevMmk(self) -> Global___MessagingMailboxPublicData: ...
+ @_builtins.property
+ def epochPublicData(self) -> Global___EpochPublicData: ...
+ def __init__(
+ self,
+ *,
+ newMmk: Global___MessagingMailboxPublicData | None = ...,
+ signature: _builtins.bytes | None = ...,
+ prevMmk: Global___MessagingMailboxPublicData | None = ...,
+ epochPublicData: Global___EpochPublicData | None = ...,
+ ) -> None: ...
+ _HasFieldArgType: _TypeAlias = _typing.Literal["epochPublicData", b"epochPublicData", "newMmk", b"newMmk", "prevMmk", b"prevMmk", "signature", b"signature"] # noqa: Y015
+ def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ...
+ _ClearFieldArgType: _TypeAlias = _typing.Literal["epochPublicData", b"epochPublicData", "newMmk", b"newMmk", "prevMmk", b"prevMmk", "signature", b"signature"] # noqa: Y015
+ def ClearField(self, field_name: _ClearFieldArgType) -> None: ...
- @_typing.final
- class Header(_message.Message):
- DESCRIPTOR: _descriptor.Descriptor
+Global___MandrakeValidateNewMmkFromMailboxInput: _TypeAlias = MandrakeValidateNewMmkFromMailboxInput # noqa: Y015
- TITLE_FIELD_NUMBER: _builtins.int
- SUBTITLE_FIELD_NUMBER: _builtins.int
- HASMEDIAATTACHMENT_FIELD_NUMBER: _builtins.int
- BLOKSWIDGET_FIELD_NUMBER: _builtins.int
- DOCUMENTMESSAGE_FIELD_NUMBER: _builtins.int
- IMAGEMESSAGE_FIELD_NUMBER: _builtins.int
- JPEGTHUMBNAIL_FIELD_NUMBER: _builtins.int
- VIDEOMESSAGE_FIELD_NUMBER: _builtins.int
- LOCATIONMESSAGE_FIELD_NUMBER: _builtins.int
- PRODUCTMESSAGE_FIELD_NUMBER: _builtins.int
- title: _builtins.str
- subtitle: _builtins.str
- hasMediaAttachment: _builtins.bool
- jpegThumbnail: _builtins.bytes
- @_builtins.property
- def bloksWidget(self) -> Global___Message.InteractiveMessage.BloksWidget: ...
- @_builtins.property
- def documentMessage(self) -> Global___Message.DocumentMessage: ...
- @_builtins.property
- def imageMessage(self) -> Global___Message.ImageMessage: ...
- @_builtins.property
- def videoMessage(self) -> Global___Message.VideoMessage: ...
- @_builtins.property
- def locationMessage(self) -> Global___Message.LocationMessage: ...
- @_builtins.property
- def productMessage(self) -> Global___Message.ProductMessage: ...
- def __init__(
- self,
- *,
- title: _builtins.str | None = ...,
- subtitle: _builtins.str | None = ...,
- hasMediaAttachment: _builtins.bool | None = ...,
- bloksWidget: Global___Message.InteractiveMessage.BloksWidget | None = ...,
- documentMessage: Global___Message.DocumentMessage | None = ...,
- imageMessage: Global___Message.ImageMessage | None = ...,
- jpegThumbnail: _builtins.bytes | None = ...,
- videoMessage: Global___Message.VideoMessage | None = ...,
- locationMessage: Global___Message.LocationMessage | None = ...,
- productMessage: Global___Message.ProductMessage | None = ...,
- ) -> None: ...
- _HasFieldArgType: _TypeAlias = _typing.Literal["bloksWidget", b"bloksWidget", "documentMessage", b"documentMessage", "hasMediaAttachment", b"hasMediaAttachment", "imageMessage", b"imageMessage", "jpegThumbnail", b"jpegThumbnail", "locationMessage", b"locationMessage", "media", b"media", "productMessage", b"productMessage", "subtitle", b"subtitle", "title", b"title", "videoMessage", b"videoMessage"] # noqa: Y015
- def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ...
- _ClearFieldArgType: _TypeAlias = _typing.Literal["bloksWidget", b"bloksWidget", "documentMessage", b"documentMessage", "hasMediaAttachment", b"hasMediaAttachment", "imageMessage", b"imageMessage", "jpegThumbnail", b"jpegThumbnail", "locationMessage", b"locationMessage", "media", b"media", "productMessage", b"productMessage", "subtitle", b"subtitle", "title", b"title", "videoMessage", b"videoMessage"] # noqa: Y015
- def ClearField(self, field_name: _ClearFieldArgType) -> None: ...
- _WhichOneofReturnType_media: _TypeAlias = _typing.Literal["documentMessage", "imageMessage", "jpegThumbnail", "videoMessage", "locationMessage", "productMessage"] # noqa: Y015
- _WhichOneofArgType_media: _TypeAlias = _typing.Literal["media", b"media"] # noqa: Y015
- def WhichOneof(self, oneof_group: _WhichOneofArgType_media) -> _WhichOneofReturnType_media | None: ...
+@_typing.final
+class MandrakeValidateNewMmkResult(_message.Message):
+ DESCRIPTOR: _descriptor.Descriptor
- @_typing.final
- class NativeFlowMessage(_message.Message):
- DESCRIPTOR: _descriptor.Descriptor
+ VALID_FIELD_NUMBER: _builtins.int
+ ERRORMESSAGE_FIELD_NUMBER: _builtins.int
+ valid: _builtins.bool
+ errorMessage: _builtins.str
+ def __init__(
+ self,
+ *,
+ valid: _builtins.bool | None = ...,
+ errorMessage: _builtins.str | None = ...,
+ ) -> None: ...
+ _HasFieldArgType: _TypeAlias = _typing.Literal["errorMessage", b"errorMessage", "result", b"result", "valid", b"valid"] # noqa: Y015
+ def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ...
+ _ClearFieldArgType: _TypeAlias = _typing.Literal["errorMessage", b"errorMessage", "result", b"result", "valid", b"valid"] # noqa: Y015
+ def ClearField(self, field_name: _ClearFieldArgType) -> None: ...
+ _WhichOneofReturnType_result: _TypeAlias = _typing.Literal["valid", "errorMessage"] # noqa: Y015
+ _WhichOneofArgType_result: _TypeAlias = _typing.Literal["result", b"result"] # noqa: Y015
+ def WhichOneof(self, oneof_group: _WhichOneofArgType_result) -> _WhichOneofReturnType_result | None: ...
- @_typing.final
- class NativeFlowButton(_message.Message):
- DESCRIPTOR: _descriptor.Descriptor
+Global___MandrakeValidateNewMmkResult: _TypeAlias = MandrakeValidateNewMmkResult # noqa: Y015
- NAME_FIELD_NUMBER: _builtins.int
- BUTTONPARAMSJSON_FIELD_NUMBER: _builtins.int
- name: _builtins.str
- buttonParamsJson: _builtins.str
- def __init__(
- self,
- *,
- name: _builtins.str | None = ...,
- buttonParamsJson: _builtins.str | None = ...,
- ) -> None: ...
- _HasFieldArgType: _TypeAlias = _typing.Literal["buttonParamsJson", b"buttonParamsJson", "name", b"name"] # noqa: Y015
- def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ...
- _ClearFieldArgType: _TypeAlias = _typing.Literal["buttonParamsJson", b"buttonParamsJson", "name", b"name"] # noqa: Y015
- def ClearField(self, field_name: _ClearFieldArgType) -> None: ...
+@_typing.final
+class MediaData(_message.Message):
+ DESCRIPTOR: _descriptor.Descriptor
- BUTTONS_FIELD_NUMBER: _builtins.int
- MESSAGEPARAMSJSON_FIELD_NUMBER: _builtins.int
- MESSAGEVERSION_FIELD_NUMBER: _builtins.int
- messageParamsJson: _builtins.str
- messageVersion: _builtins.int
- @_builtins.property
- def buttons(self) -> _containers.RepeatedCompositeFieldContainer[Global___Message.InteractiveMessage.NativeFlowMessage.NativeFlowButton]: ...
- def __init__(
- self,
- *,
- buttons: _abc.Iterable[Global___Message.InteractiveMessage.NativeFlowMessage.NativeFlowButton] | None = ...,
- messageParamsJson: _builtins.str | None = ...,
- messageVersion: _builtins.int | None = ...,
- ) -> None: ...
- _HasFieldArgType: _TypeAlias = _typing.Literal["messageParamsJson", b"messageParamsJson", "messageVersion", b"messageVersion"] # noqa: Y015
- def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ...
- _ClearFieldArgType: _TypeAlias = _typing.Literal["buttons", b"buttons", "messageParamsJson", b"messageParamsJson", "messageVersion", b"messageVersion"] # noqa: Y015
- def ClearField(self, field_name: _ClearFieldArgType) -> None: ...
+ LOCALPATH_FIELD_NUMBER: _builtins.int
+ localPath: _builtins.str
+ def __init__(
+ self,
+ *,
+ localPath: _builtins.str | None = ...,
+ ) -> None: ...
+ _HasFieldArgType: _TypeAlias = _typing.Literal["localPath", b"localPath"] # noqa: Y015
+ def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ...
+ _ClearFieldArgType: _TypeAlias = _typing.Literal["localPath", b"localPath"] # noqa: Y015
+ def ClearField(self, field_name: _ClearFieldArgType) -> None: ...
- @_typing.final
- class ShopMessage(_message.Message):
- DESCRIPTOR: _descriptor.Descriptor
+Global___MediaData: _TypeAlias = MediaData # noqa: Y015
- class _Surface:
- ValueType = _typing.NewType("ValueType", _builtins.int)
- V: _TypeAlias = ValueType # noqa: Y015
+@_typing.final
+class MediaDomainInfo(_message.Message):
+ DESCRIPTOR: _descriptor.Descriptor
- class _SurfaceEnumTypeWrapper(_enum_type_wrapper._EnumTypeWrapper[Message.InteractiveMessage.ShopMessage._Surface.ValueType], _builtins.type):
- DESCRIPTOR: _descriptor.EnumDescriptor
- UNKNOWN_SURFACE: Message.InteractiveMessage.ShopMessage._Surface.ValueType # 0
- FB: Message.InteractiveMessage.ShopMessage._Surface.ValueType # 1
- IG: Message.InteractiveMessage.ShopMessage._Surface.ValueType # 2
- WA: Message.InteractiveMessage.ShopMessage._Surface.ValueType # 3
+ MEDIAKEYDOMAIN_FIELD_NUMBER: _builtins.int
+ E2EEMEDIAKEY_FIELD_NUMBER: _builtins.int
+ mediaKeyDomain: Global___MediaKeyDomain.ValueType
+ e2EeMediaKey: _builtins.bytes
+ def __init__(
+ self,
+ *,
+ mediaKeyDomain: Global___MediaKeyDomain.ValueType | None = ...,
+ e2EeMediaKey: _builtins.bytes | None = ...,
+ ) -> None: ...
+ _HasFieldArgType: _TypeAlias = _typing.Literal["e2EeMediaKey", b"e2EeMediaKey", "mediaKeyDomain", b"mediaKeyDomain"] # noqa: Y015
+ def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ...
+ _ClearFieldArgType: _TypeAlias = _typing.Literal["e2EeMediaKey", b"e2EeMediaKey", "mediaKeyDomain", b"mediaKeyDomain"] # noqa: Y015
+ def ClearField(self, field_name: _ClearFieldArgType) -> None: ...
- class Surface(_Surface, metaclass=_SurfaceEnumTypeWrapper): ...
- UNKNOWN_SURFACE: Message.InteractiveMessage.ShopMessage.Surface.ValueType # 0
- FB: Message.InteractiveMessage.ShopMessage.Surface.ValueType # 1
- IG: Message.InteractiveMessage.ShopMessage.Surface.ValueType # 2
- WA: Message.InteractiveMessage.ShopMessage.Surface.ValueType # 3
+Global___MediaDomainInfo: _TypeAlias = MediaDomainInfo # noqa: Y015
- ID_FIELD_NUMBER: _builtins.int
- SURFACE_FIELD_NUMBER: _builtins.int
- MESSAGEVERSION_FIELD_NUMBER: _builtins.int
- id: _builtins.str
- surface: Global___Message.InteractiveMessage.ShopMessage.Surface.ValueType
- messageVersion: _builtins.int
- def __init__(
- self,
- *,
- id: _builtins.str | None = ...,
- surface: Global___Message.InteractiveMessage.ShopMessage.Surface.ValueType | None = ...,
- messageVersion: _builtins.int | None = ...,
- ) -> None: ...
- _HasFieldArgType: _TypeAlias = _typing.Literal["id", b"id", "messageVersion", b"messageVersion", "surface", b"surface"] # noqa: Y015
- def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ...
- _ClearFieldArgType: _TypeAlias = _typing.Literal["id", b"id", "messageVersion", b"messageVersion", "surface", b"surface"] # noqa: Y015
- def ClearField(self, field_name: _ClearFieldArgType) -> None: ...
-
- HEADER_FIELD_NUMBER: _builtins.int
- BODY_FIELD_NUMBER: _builtins.int
- FOOTER_FIELD_NUMBER: _builtins.int
- BLOKSWIDGET_FIELD_NUMBER: _builtins.int
- CONTEXTINFO_FIELD_NUMBER: _builtins.int
- URLTRACKINGMAP_FIELD_NUMBER: _builtins.int
- SHOPSTOREFRONTMESSAGE_FIELD_NUMBER: _builtins.int
- COLLECTIONMESSAGE_FIELD_NUMBER: _builtins.int
- NATIVEFLOWMESSAGE_FIELD_NUMBER: _builtins.int
- CAROUSELMESSAGE_FIELD_NUMBER: _builtins.int
- @_builtins.property
- def header(self) -> Global___Message.InteractiveMessage.Header: ...
- @_builtins.property
- def body(self) -> Global___Message.InteractiveMessage.Body: ...
- @_builtins.property
- def footer(self) -> Global___Message.InteractiveMessage.Footer: ...
- @_builtins.property
- def bloksWidget(self) -> Global___Message.InteractiveMessage.BloksWidget: ...
- @_builtins.property
- def contextInfo(self) -> Global___ContextInfo: ...
- @_builtins.property
- def urlTrackingMap(self) -> Global___UrlTrackingMap: ...
- @_builtins.property
- def shopStorefrontMessage(self) -> Global___Message.InteractiveMessage.ShopMessage: ...
- @_builtins.property
- def collectionMessage(self) -> Global___Message.InteractiveMessage.CollectionMessage: ...
- @_builtins.property
- def nativeFlowMessage(self) -> Global___Message.InteractiveMessage.NativeFlowMessage: ...
- @_builtins.property
- def carouselMessage(self) -> Global___Message.InteractiveMessage.CarouselMessage: ...
- def __init__(
- self,
- *,
- header: Global___Message.InteractiveMessage.Header | None = ...,
- body: Global___Message.InteractiveMessage.Body | None = ...,
- footer: Global___Message.InteractiveMessage.Footer | None = ...,
- bloksWidget: Global___Message.InteractiveMessage.BloksWidget | None = ...,
- contextInfo: Global___ContextInfo | None = ...,
- urlTrackingMap: Global___UrlTrackingMap | None = ...,
- shopStorefrontMessage: Global___Message.InteractiveMessage.ShopMessage | None = ...,
- collectionMessage: Global___Message.InteractiveMessage.CollectionMessage | None = ...,
- nativeFlowMessage: Global___Message.InteractiveMessage.NativeFlowMessage | None = ...,
- carouselMessage: Global___Message.InteractiveMessage.CarouselMessage | None = ...,
- ) -> None: ...
- _HasFieldArgType: _TypeAlias = _typing.Literal["bloksWidget", b"bloksWidget", "body", b"body", "carouselMessage", b"carouselMessage", "collectionMessage", b"collectionMessage", "contextInfo", b"contextInfo", "footer", b"footer", "header", b"header", "interactiveMessage", b"interactiveMessage", "nativeFlowMessage", b"nativeFlowMessage", "shopStorefrontMessage", b"shopStorefrontMessage", "urlTrackingMap", b"urlTrackingMap"] # noqa: Y015
- def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ...
- _ClearFieldArgType: _TypeAlias = _typing.Literal["bloksWidget", b"bloksWidget", "body", b"body", "carouselMessage", b"carouselMessage", "collectionMessage", b"collectionMessage", "contextInfo", b"contextInfo", "footer", b"footer", "header", b"header", "interactiveMessage", b"interactiveMessage", "nativeFlowMessage", b"nativeFlowMessage", "shopStorefrontMessage", b"shopStorefrontMessage", "urlTrackingMap", b"urlTrackingMap"] # noqa: Y015
- def ClearField(self, field_name: _ClearFieldArgType) -> None: ...
- _WhichOneofReturnType_interactiveMessage: _TypeAlias = _typing.Literal["shopStorefrontMessage", "collectionMessage", "nativeFlowMessage", "carouselMessage"] # noqa: Y015
- _WhichOneofArgType_interactiveMessage: _TypeAlias = _typing.Literal["interactiveMessage", b"interactiveMessage"] # noqa: Y015
- def WhichOneof(self, oneof_group: _WhichOneofArgType_interactiveMessage) -> _WhichOneofReturnType_interactiveMessage | None: ...
-
- @_typing.final
- class InteractiveResponseMessage(_message.Message):
- DESCRIPTOR: _descriptor.Descriptor
-
- @_typing.final
- class Body(_message.Message):
- DESCRIPTOR: _descriptor.Descriptor
-
- class _Format:
- ValueType = _typing.NewType("ValueType", _builtins.int)
- V: _TypeAlias = ValueType # noqa: Y015
-
- class _FormatEnumTypeWrapper(_enum_type_wrapper._EnumTypeWrapper[Message.InteractiveResponseMessage.Body._Format.ValueType], _builtins.type):
- DESCRIPTOR: _descriptor.EnumDescriptor
- DEFAULT: Message.InteractiveResponseMessage.Body._Format.ValueType # 0
- EXTENSIONS_1: Message.InteractiveResponseMessage.Body._Format.ValueType # 1
-
- class Format(_Format, metaclass=_FormatEnumTypeWrapper): ...
- DEFAULT: Message.InteractiveResponseMessage.Body.Format.ValueType # 0
- EXTENSIONS_1: Message.InteractiveResponseMessage.Body.Format.ValueType # 1
-
- TEXT_FIELD_NUMBER: _builtins.int
- FORMAT_FIELD_NUMBER: _builtins.int
- text: _builtins.str
- format: Global___Message.InteractiveResponseMessage.Body.Format.ValueType
- def __init__(
- self,
- *,
- text: _builtins.str | None = ...,
- format: Global___Message.InteractiveResponseMessage.Body.Format.ValueType | None = ...,
- ) -> None: ...
- _HasFieldArgType: _TypeAlias = _typing.Literal["format", b"format", "text", b"text"] # noqa: Y015
- def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ...
- _ClearFieldArgType: _TypeAlias = _typing.Literal["format", b"format", "text", b"text"] # noqa: Y015
- def ClearField(self, field_name: _ClearFieldArgType) -> None: ...
-
- @_typing.final
- class NativeFlowResponseMessage(_message.Message):
- DESCRIPTOR: _descriptor.Descriptor
-
- NAME_FIELD_NUMBER: _builtins.int
- PARAMSJSON_FIELD_NUMBER: _builtins.int
- VERSION_FIELD_NUMBER: _builtins.int
- name: _builtins.str
- paramsJson: _builtins.str
- version: _builtins.int
- def __init__(
- self,
- *,
- name: _builtins.str | None = ...,
- paramsJson: _builtins.str | None = ...,
- version: _builtins.int | None = ...,
- ) -> None: ...
- _HasFieldArgType: _TypeAlias = _typing.Literal["name", b"name", "paramsJson", b"paramsJson", "version", b"version"] # noqa: Y015
- def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ...
- _ClearFieldArgType: _TypeAlias = _typing.Literal["name", b"name", "paramsJson", b"paramsJson", "version", b"version"] # noqa: Y015
- def ClearField(self, field_name: _ClearFieldArgType) -> None: ...
-
- BODY_FIELD_NUMBER: _builtins.int
- CONTEXTINFO_FIELD_NUMBER: _builtins.int
- NATIVEFLOWRESPONSEMESSAGE_FIELD_NUMBER: _builtins.int
- @_builtins.property
- def body(self) -> Global___Message.InteractiveResponseMessage.Body: ...
- @_builtins.property
- def contextInfo(self) -> Global___ContextInfo: ...
- @_builtins.property
- def nativeFlowResponseMessage(self) -> Global___Message.InteractiveResponseMessage.NativeFlowResponseMessage: ...
- def __init__(
- self,
- *,
- body: Global___Message.InteractiveResponseMessage.Body | None = ...,
- contextInfo: Global___ContextInfo | None = ...,
- nativeFlowResponseMessage: Global___Message.InteractiveResponseMessage.NativeFlowResponseMessage | None = ...,
- ) -> None: ...
- _HasFieldArgType: _TypeAlias = _typing.Literal["body", b"body", "contextInfo", b"contextInfo", "interactiveResponseMessage", b"interactiveResponseMessage", "nativeFlowResponseMessage", b"nativeFlowResponseMessage"] # noqa: Y015
- def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ...
- _ClearFieldArgType: _TypeAlias = _typing.Literal["body", b"body", "contextInfo", b"contextInfo", "interactiveResponseMessage", b"interactiveResponseMessage", "nativeFlowResponseMessage", b"nativeFlowResponseMessage"] # noqa: Y015
- def ClearField(self, field_name: _ClearFieldArgType) -> None: ...
- _WhichOneofReturnType_interactiveResponseMessage: _TypeAlias = _typing.Literal["nativeFlowResponseMessage"] # noqa: Y015
- _WhichOneofArgType_interactiveResponseMessage: _TypeAlias = _typing.Literal["interactiveResponseMessage", b"interactiveResponseMessage"] # noqa: Y015
- def WhichOneof(self, oneof_group: _WhichOneofArgType_interactiveResponseMessage) -> _WhichOneofReturnType_interactiveResponseMessage | None: ...
+@_typing.final
+class MediaEntry(_message.Message):
+ DESCRIPTOR: _descriptor.Descriptor
@_typing.final
- class InvoiceMessage(_message.Message):
+ class DownloadableThumbnail(_message.Message):
DESCRIPTOR: _descriptor.Descriptor
- class _AttachmentType:
- ValueType = _typing.NewType("ValueType", _builtins.int)
- V: _TypeAlias = ValueType # noqa: Y015
-
- class _AttachmentTypeEnumTypeWrapper(_enum_type_wrapper._EnumTypeWrapper[Message.InvoiceMessage._AttachmentType.ValueType], _builtins.type):
- DESCRIPTOR: _descriptor.EnumDescriptor
- IMAGE: Message.InvoiceMessage._AttachmentType.ValueType # 0
- PDF: Message.InvoiceMessage._AttachmentType.ValueType # 1
-
- class AttachmentType(_AttachmentType, metaclass=_AttachmentTypeEnumTypeWrapper): ...
- IMAGE: Message.InvoiceMessage.AttachmentType.ValueType # 0
- PDF: Message.InvoiceMessage.AttachmentType.ValueType # 1
-
- NOTE_FIELD_NUMBER: _builtins.int
- TOKEN_FIELD_NUMBER: _builtins.int
- ATTACHMENTTYPE_FIELD_NUMBER: _builtins.int
- ATTACHMENTMIMETYPE_FIELD_NUMBER: _builtins.int
- ATTACHMENTMEDIAKEY_FIELD_NUMBER: _builtins.int
- ATTACHMENTMEDIAKEYTIMESTAMP_FIELD_NUMBER: _builtins.int
- ATTACHMENTFILESHA256_FIELD_NUMBER: _builtins.int
- ATTACHMENTFILEENCSHA256_FIELD_NUMBER: _builtins.int
- ATTACHMENTDIRECTPATH_FIELD_NUMBER: _builtins.int
- ATTACHMENTJPEGTHUMBNAIL_FIELD_NUMBER: _builtins.int
- note: _builtins.str
- token: _builtins.str
- attachmentType: Global___Message.InvoiceMessage.AttachmentType.ValueType
- attachmentMimetype: _builtins.str
- attachmentMediaKey: _builtins.bytes
- attachmentMediaKeyTimestamp: _builtins.int
- attachmentFileSha256: _builtins.bytes
- attachmentFileEncSha256: _builtins.bytes
- attachmentDirectPath: _builtins.str
- attachmentJpegThumbnail: _builtins.bytes
+ FILESHA256_FIELD_NUMBER: _builtins.int
+ FILEENCSHA256_FIELD_NUMBER: _builtins.int
+ DIRECTPATH_FIELD_NUMBER: _builtins.int
+ MEDIAKEY_FIELD_NUMBER: _builtins.int
+ MEDIAKEYTIMESTAMP_FIELD_NUMBER: _builtins.int
+ OBJECTID_FIELD_NUMBER: _builtins.int
+ fileSha256: _builtins.bytes
+ fileEncSha256: _builtins.bytes
+ directPath: _builtins.str
+ mediaKey: _builtins.bytes
+ mediaKeyTimestamp: _builtins.int
+ objectId: _builtins.str
def __init__(
self,
*,
- note: _builtins.str | None = ...,
- token: _builtins.str | None = ...,
- attachmentType: Global___Message.InvoiceMessage.AttachmentType.ValueType | None = ...,
- attachmentMimetype: _builtins.str | None = ...,
- attachmentMediaKey: _builtins.bytes | None = ...,
- attachmentMediaKeyTimestamp: _builtins.int | None = ...,
- attachmentFileSha256: _builtins.bytes | None = ...,
- attachmentFileEncSha256: _builtins.bytes | None = ...,
- attachmentDirectPath: _builtins.str | None = ...,
- attachmentJpegThumbnail: _builtins.bytes | None = ...,
+ fileSha256: _builtins.bytes | None = ...,
+ fileEncSha256: _builtins.bytes | None = ...,
+ directPath: _builtins.str | None = ...,
+ mediaKey: _builtins.bytes | None = ...,
+ mediaKeyTimestamp: _builtins.int | None = ...,
+ objectId: _builtins.str | None = ...,
) -> None: ...
- _HasFieldArgType: _TypeAlias = _typing.Literal["attachmentDirectPath", b"attachmentDirectPath", "attachmentFileEncSha256", b"attachmentFileEncSha256", "attachmentFileSha256", b"attachmentFileSha256", "attachmentJpegThumbnail", b"attachmentJpegThumbnail", "attachmentMediaKey", b"attachmentMediaKey", "attachmentMediaKeyTimestamp", b"attachmentMediaKeyTimestamp", "attachmentMimetype", b"attachmentMimetype", "attachmentType", b"attachmentType", "note", b"note", "token", b"token"] # noqa: Y015
+ _HasFieldArgType: _TypeAlias = _typing.Literal["directPath", b"directPath", "fileEncSha256", b"fileEncSha256", "fileSha256", b"fileSha256", "mediaKey", b"mediaKey", "mediaKeyTimestamp", b"mediaKeyTimestamp", "objectId", b"objectId"] # noqa: Y015
def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ...
- _ClearFieldArgType: _TypeAlias = _typing.Literal["attachmentDirectPath", b"attachmentDirectPath", "attachmentFileEncSha256", b"attachmentFileEncSha256", "attachmentFileSha256", b"attachmentFileSha256", "attachmentJpegThumbnail", b"attachmentJpegThumbnail", "attachmentMediaKey", b"attachmentMediaKey", "attachmentMediaKeyTimestamp", b"attachmentMediaKeyTimestamp", "attachmentMimetype", b"attachmentMimetype", "attachmentType", b"attachmentType", "note", b"note", "token", b"token"] # noqa: Y015
+ _ClearFieldArgType: _TypeAlias = _typing.Literal["directPath", b"directPath", "fileEncSha256", b"fileEncSha256", "fileSha256", b"fileSha256", "mediaKey", b"mediaKey", "mediaKeyTimestamp", b"mediaKeyTimestamp", "objectId", b"objectId"] # noqa: Y015
def ClearField(self, field_name: _ClearFieldArgType) -> None: ...
@_typing.final
- class KeepInChatMessage(_message.Message):
+ class ProgressiveJpegDetails(_message.Message):
DESCRIPTOR: _descriptor.Descriptor
- KEY_FIELD_NUMBER: _builtins.int
- KEEPTYPE_FIELD_NUMBER: _builtins.int
- TIMESTAMPMS_FIELD_NUMBER: _builtins.int
- keepType: Global___KeepType.ValueType
- timestampMs: _builtins.int
+ SCANLENGTHS_FIELD_NUMBER: _builtins.int
+ SIDECAR_FIELD_NUMBER: _builtins.int
+ sidecar: _builtins.bytes
@_builtins.property
- def key(self) -> Global___MessageKey: ...
+ def scanLengths(self) -> _containers.RepeatedScalarFieldContainer[_builtins.int]: ...
def __init__(
self,
*,
- key: Global___MessageKey | None = ...,
- keepType: Global___KeepType.ValueType | None = ...,
- timestampMs: _builtins.int | None = ...,
+ scanLengths: _abc.Iterable[_builtins.int] | None = ...,
+ sidecar: _builtins.bytes | None = ...,
) -> None: ...
- _HasFieldArgType: _TypeAlias = _typing.Literal["keepType", b"keepType", "key", b"key", "timestampMs", b"timestampMs"] # noqa: Y015
+ _HasFieldArgType: _TypeAlias = _typing.Literal["sidecar", b"sidecar"] # noqa: Y015
def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ...
- _ClearFieldArgType: _TypeAlias = _typing.Literal["keepType", b"keepType", "key", b"key", "timestampMs", b"timestampMs"] # noqa: Y015
+ _ClearFieldArgType: _TypeAlias = _typing.Literal["scanLengths", b"scanLengths", "sidecar", b"sidecar"] # noqa: Y015
def ClearField(self, field_name: _ClearFieldArgType) -> None: ...
- @_typing.final
- class LinkPreviewMetadata(_message.Message):
- DESCRIPTOR: _descriptor.Descriptor
-
- class _SocialMediaPostType:
- ValueType = _typing.NewType("ValueType", _builtins.int)
- V: _TypeAlias = ValueType # noqa: Y015
-
- class _SocialMediaPostTypeEnumTypeWrapper(_enum_type_wrapper._EnumTypeWrapper[Message.LinkPreviewMetadata._SocialMediaPostType.ValueType], _builtins.type):
- DESCRIPTOR: _descriptor.EnumDescriptor
- NONE: Message.LinkPreviewMetadata._SocialMediaPostType.ValueType # 0
- REEL: Message.LinkPreviewMetadata._SocialMediaPostType.ValueType # 1
- LIVE_VIDEO: Message.LinkPreviewMetadata._SocialMediaPostType.ValueType # 2
- LONG_VIDEO: Message.LinkPreviewMetadata._SocialMediaPostType.ValueType # 3
- SINGLE_IMAGE: Message.LinkPreviewMetadata._SocialMediaPostType.ValueType # 4
- CAROUSEL: Message.LinkPreviewMetadata._SocialMediaPostType.ValueType # 5
-
- class SocialMediaPostType(_SocialMediaPostType, metaclass=_SocialMediaPostTypeEnumTypeWrapper): ...
- NONE: Message.LinkPreviewMetadata.SocialMediaPostType.ValueType # 0
- REEL: Message.LinkPreviewMetadata.SocialMediaPostType.ValueType # 1
- LIVE_VIDEO: Message.LinkPreviewMetadata.SocialMediaPostType.ValueType # 2
- LONG_VIDEO: Message.LinkPreviewMetadata.SocialMediaPostType.ValueType # 3
- SINGLE_IMAGE: Message.LinkPreviewMetadata.SocialMediaPostType.ValueType # 4
- CAROUSEL: Message.LinkPreviewMetadata.SocialMediaPostType.ValueType # 5
+ FILESHA256_FIELD_NUMBER: _builtins.int
+ MEDIAKEY_FIELD_NUMBER: _builtins.int
+ FILEENCSHA256_FIELD_NUMBER: _builtins.int
+ DIRECTPATH_FIELD_NUMBER: _builtins.int
+ MEDIAKEYTIMESTAMP_FIELD_NUMBER: _builtins.int
+ SERVERMEDIATYPE_FIELD_NUMBER: _builtins.int
+ UPLOADTOKEN_FIELD_NUMBER: _builtins.int
+ VALIDATEDTIMESTAMP_FIELD_NUMBER: _builtins.int
+ SIDECAR_FIELD_NUMBER: _builtins.int
+ OBJECTID_FIELD_NUMBER: _builtins.int
+ FBID_FIELD_NUMBER: _builtins.int
+ DOWNLOADABLETHUMBNAIL_FIELD_NUMBER: _builtins.int
+ HANDLE_FIELD_NUMBER: _builtins.int
+ FILENAME_FIELD_NUMBER: _builtins.int
+ PROGRESSIVEJPEGDETAILS_FIELD_NUMBER: _builtins.int
+ SIZE_FIELD_NUMBER: _builtins.int
+ LASTDOWNLOADATTEMPTTIMESTAMP_FIELD_NUMBER: _builtins.int
+ fileSha256: _builtins.bytes
+ mediaKey: _builtins.bytes
+ fileEncSha256: _builtins.bytes
+ directPath: _builtins.str
+ mediaKeyTimestamp: _builtins.int
+ serverMediaType: _builtins.str
+ uploadToken: _builtins.bytes
+ validatedTimestamp: _builtins.bytes
+ sidecar: _builtins.bytes
+ objectId: _builtins.str
+ fbid: _builtins.str
+ handle: _builtins.str
+ filename: _builtins.str
+ size: _builtins.int
+ lastDownloadAttemptTimestamp: _builtins.int
+ @_builtins.property
+ def downloadableThumbnail(self) -> Global___MediaEntry.DownloadableThumbnail: ...
+ @_builtins.property
+ def progressiveJpegDetails(self) -> Global___MediaEntry.ProgressiveJpegDetails: ...
+ def __init__(
+ self,
+ *,
+ fileSha256: _builtins.bytes | None = ...,
+ mediaKey: _builtins.bytes | None = ...,
+ fileEncSha256: _builtins.bytes | None = ...,
+ directPath: _builtins.str | None = ...,
+ mediaKeyTimestamp: _builtins.int | None = ...,
+ serverMediaType: _builtins.str | None = ...,
+ uploadToken: _builtins.bytes | None = ...,
+ validatedTimestamp: _builtins.bytes | None = ...,
+ sidecar: _builtins.bytes | None = ...,
+ objectId: _builtins.str | None = ...,
+ fbid: _builtins.str | None = ...,
+ downloadableThumbnail: Global___MediaEntry.DownloadableThumbnail | None = ...,
+ handle: _builtins.str | None = ...,
+ filename: _builtins.str | None = ...,
+ progressiveJpegDetails: Global___MediaEntry.ProgressiveJpegDetails | None = ...,
+ size: _builtins.int | None = ...,
+ lastDownloadAttemptTimestamp: _builtins.int | None = ...,
+ ) -> None: ...
+ _HasFieldArgType: _TypeAlias = _typing.Literal["directPath", b"directPath", "downloadableThumbnail", b"downloadableThumbnail", "fbid", b"fbid", "fileEncSha256", b"fileEncSha256", "fileSha256", b"fileSha256", "filename", b"filename", "handle", b"handle", "lastDownloadAttemptTimestamp", b"lastDownloadAttemptTimestamp", "mediaKey", b"mediaKey", "mediaKeyTimestamp", b"mediaKeyTimestamp", "objectId", b"objectId", "progressiveJpegDetails", b"progressiveJpegDetails", "serverMediaType", b"serverMediaType", "sidecar", b"sidecar", "size", b"size", "uploadToken", b"uploadToken", "validatedTimestamp", b"validatedTimestamp"] # noqa: Y015
+ def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ...
+ _ClearFieldArgType: _TypeAlias = _typing.Literal["directPath", b"directPath", "downloadableThumbnail", b"downloadableThumbnail", "fbid", b"fbid", "fileEncSha256", b"fileEncSha256", "fileSha256", b"fileSha256", "filename", b"filename", "handle", b"handle", "lastDownloadAttemptTimestamp", b"lastDownloadAttemptTimestamp", "mediaKey", b"mediaKey", "mediaKeyTimestamp", b"mediaKeyTimestamp", "objectId", b"objectId", "progressiveJpegDetails", b"progressiveJpegDetails", "serverMediaType", b"serverMediaType", "sidecar", b"sidecar", "size", b"size", "uploadToken", b"uploadToken", "validatedTimestamp", b"validatedTimestamp"] # noqa: Y015
+ def ClearField(self, field_name: _ClearFieldArgType) -> None: ...
- PAYMENTLINKMETADATA_FIELD_NUMBER: _builtins.int
- URLMETADATA_FIELD_NUMBER: _builtins.int
- FBEXPERIMENTID_FIELD_NUMBER: _builtins.int
- LINKMEDIADURATION_FIELD_NUMBER: _builtins.int
- SOCIALMEDIAPOSTTYPE_FIELD_NUMBER: _builtins.int
- LINKINLINEVIDEOMUTED_FIELD_NUMBER: _builtins.int
- VIDEOCONTENTURL_FIELD_NUMBER: _builtins.int
- MUSICMETADATA_FIELD_NUMBER: _builtins.int
- VIDEOCONTENTCAPTION_FIELD_NUMBER: _builtins.int
- fbExperimentId: _builtins.int
- linkMediaDuration: _builtins.int
- socialMediaPostType: Global___Message.LinkPreviewMetadata.SocialMediaPostType.ValueType
- linkInlineVideoMuted: _builtins.bool
- videoContentUrl: _builtins.str
- videoContentCaption: _builtins.str
- @_builtins.property
- def paymentLinkMetadata(self) -> Global___Message.PaymentLinkMetadata: ...
- @_builtins.property
- def urlMetadata(self) -> Global___Message.URLMetadata: ...
- @_builtins.property
- def musicMetadata(self) -> Global___EmbeddedMusic: ...
- def __init__(
- self,
- *,
- paymentLinkMetadata: Global___Message.PaymentLinkMetadata | None = ...,
- urlMetadata: Global___Message.URLMetadata | None = ...,
- fbExperimentId: _builtins.int | None = ...,
- linkMediaDuration: _builtins.int | None = ...,
- socialMediaPostType: Global___Message.LinkPreviewMetadata.SocialMediaPostType.ValueType | None = ...,
- linkInlineVideoMuted: _builtins.bool | None = ...,
- videoContentUrl: _builtins.str | None = ...,
- musicMetadata: Global___EmbeddedMusic | None = ...,
- videoContentCaption: _builtins.str | None = ...,
- ) -> None: ...
- _HasFieldArgType: _TypeAlias = _typing.Literal["fbExperimentId", b"fbExperimentId", "linkInlineVideoMuted", b"linkInlineVideoMuted", "linkMediaDuration", b"linkMediaDuration", "musicMetadata", b"musicMetadata", "paymentLinkMetadata", b"paymentLinkMetadata", "socialMediaPostType", b"socialMediaPostType", "urlMetadata", b"urlMetadata", "videoContentCaption", b"videoContentCaption", "videoContentUrl", b"videoContentUrl"] # noqa: Y015
- def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ...
- _ClearFieldArgType: _TypeAlias = _typing.Literal["fbExperimentId", b"fbExperimentId", "linkInlineVideoMuted", b"linkInlineVideoMuted", "linkMediaDuration", b"linkMediaDuration", "musicMetadata", b"musicMetadata", "paymentLinkMetadata", b"paymentLinkMetadata", "socialMediaPostType", b"socialMediaPostType", "urlMetadata", b"urlMetadata", "videoContentCaption", b"videoContentCaption", "videoContentUrl", b"videoContentUrl"] # noqa: Y015
- def ClearField(self, field_name: _ClearFieldArgType) -> None: ...
+Global___MediaEntry: _TypeAlias = MediaEntry # noqa: Y015
- @_typing.final
- class ListMessage(_message.Message):
- DESCRIPTOR: _descriptor.Descriptor
+@_typing.final
+class MediaNotifyMessage(_message.Message):
+ DESCRIPTOR: _descriptor.Descriptor
- class _ListType:
- ValueType = _typing.NewType("ValueType", _builtins.int)
- V: _TypeAlias = ValueType # noqa: Y015
+ EXPRESSPATHURL_FIELD_NUMBER: _builtins.int
+ FILEENCSHA256_FIELD_NUMBER: _builtins.int
+ FILELENGTH_FIELD_NUMBER: _builtins.int
+ expressPathUrl: _builtins.str
+ fileEncSha256: _builtins.bytes
+ fileLength: _builtins.int
+ def __init__(
+ self,
+ *,
+ expressPathUrl: _builtins.str | None = ...,
+ fileEncSha256: _builtins.bytes | None = ...,
+ fileLength: _builtins.int | None = ...,
+ ) -> None: ...
+ _HasFieldArgType: _TypeAlias = _typing.Literal["expressPathUrl", b"expressPathUrl", "fileEncSha256", b"fileEncSha256", "fileLength", b"fileLength"] # noqa: Y015
+ def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ...
+ _ClearFieldArgType: _TypeAlias = _typing.Literal["expressPathUrl", b"expressPathUrl", "fileEncSha256", b"fileEncSha256", "fileLength", b"fileLength"] # noqa: Y015
+ def ClearField(self, field_name: _ClearFieldArgType) -> None: ...
- class _ListTypeEnumTypeWrapper(_enum_type_wrapper._EnumTypeWrapper[Message.ListMessage._ListType.ValueType], _builtins.type):
- DESCRIPTOR: _descriptor.EnumDescriptor
- UNKNOWN: Message.ListMessage._ListType.ValueType # 0
- SINGLE_SELECT: Message.ListMessage._ListType.ValueType # 1
- PRODUCT_LIST: Message.ListMessage._ListType.ValueType # 2
+Global___MediaNotifyMessage: _TypeAlias = MediaNotifyMessage # noqa: Y015
- class ListType(_ListType, metaclass=_ListTypeEnumTypeWrapper): ...
- UNKNOWN: Message.ListMessage.ListType.ValueType # 0
- SINGLE_SELECT: Message.ListMessage.ListType.ValueType # 1
- PRODUCT_LIST: Message.ListMessage.ListType.ValueType # 2
+@_typing.final
+class MediaRetryNotification(_message.Message):
+ DESCRIPTOR: _descriptor.Descriptor
- @_typing.final
- class Product(_message.Message):
- DESCRIPTOR: _descriptor.Descriptor
+ class _ResultType:
+ ValueType = _typing.NewType("ValueType", _builtins.int)
+ V: _TypeAlias = ValueType # noqa: Y015
- PRODUCTID_FIELD_NUMBER: _builtins.int
- productId: _builtins.str
- def __init__(
- self,
- *,
- productId: _builtins.str | None = ...,
- ) -> None: ...
- _HasFieldArgType: _TypeAlias = _typing.Literal["productId", b"productId"] # noqa: Y015
- def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ...
- _ClearFieldArgType: _TypeAlias = _typing.Literal["productId", b"productId"] # noqa: Y015
- def ClearField(self, field_name: _ClearFieldArgType) -> None: ...
+ class _ResultTypeEnumTypeWrapper(_enum_type_wrapper._EnumTypeWrapper[MediaRetryNotification._ResultType.ValueType], _builtins.type):
+ DESCRIPTOR: _descriptor.EnumDescriptor
+ GENERAL_ERROR: MediaRetryNotification._ResultType.ValueType # 0
+ SUCCESS: MediaRetryNotification._ResultType.ValueType # 1
+ NOT_FOUND: MediaRetryNotification._ResultType.ValueType # 2
+ DECRYPTION_ERROR: MediaRetryNotification._ResultType.ValueType # 3
- @_typing.final
- class ProductListHeaderImage(_message.Message):
- DESCRIPTOR: _descriptor.Descriptor
+ class ResultType(_ResultType, metaclass=_ResultTypeEnumTypeWrapper): ...
+ GENERAL_ERROR: MediaRetryNotification.ResultType.ValueType # 0
+ SUCCESS: MediaRetryNotification.ResultType.ValueType # 1
+ NOT_FOUND: MediaRetryNotification.ResultType.ValueType # 2
+ DECRYPTION_ERROR: MediaRetryNotification.ResultType.ValueType # 3
- PRODUCTID_FIELD_NUMBER: _builtins.int
- JPEGTHUMBNAIL_FIELD_NUMBER: _builtins.int
- productId: _builtins.str
- jpegThumbnail: _builtins.bytes
- def __init__(
- self,
- *,
- productId: _builtins.str | None = ...,
- jpegThumbnail: _builtins.bytes | None = ...,
- ) -> None: ...
- _HasFieldArgType: _TypeAlias = _typing.Literal["jpegThumbnail", b"jpegThumbnail", "productId", b"productId"] # noqa: Y015
- def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ...
- _ClearFieldArgType: _TypeAlias = _typing.Literal["jpegThumbnail", b"jpegThumbnail", "productId", b"productId"] # noqa: Y015
- def ClearField(self, field_name: _ClearFieldArgType) -> None: ...
+ STANZAID_FIELD_NUMBER: _builtins.int
+ DIRECTPATH_FIELD_NUMBER: _builtins.int
+ RESULT_FIELD_NUMBER: _builtins.int
+ MESSAGESECRET_FIELD_NUMBER: _builtins.int
+ stanzaId: _builtins.str
+ directPath: _builtins.str
+ result: Global___MediaRetryNotification.ResultType.ValueType
+ messageSecret: _builtins.bytes
+ def __init__(
+ self,
+ *,
+ stanzaId: _builtins.str | None = ...,
+ directPath: _builtins.str | None = ...,
+ result: Global___MediaRetryNotification.ResultType.ValueType | None = ...,
+ messageSecret: _builtins.bytes | None = ...,
+ ) -> None: ...
+ _HasFieldArgType: _TypeAlias = _typing.Literal["directPath", b"directPath", "messageSecret", b"messageSecret", "result", b"result", "stanzaId", b"stanzaId"] # noqa: Y015
+ def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ...
+ _ClearFieldArgType: _TypeAlias = _typing.Literal["directPath", b"directPath", "messageSecret", b"messageSecret", "result", b"result", "stanzaId", b"stanzaId"] # noqa: Y015
+ def ClearField(self, field_name: _ClearFieldArgType) -> None: ...
- @_typing.final
- class ProductListInfo(_message.Message):
- DESCRIPTOR: _descriptor.Descriptor
+Global___MediaRetryNotification: _TypeAlias = MediaRetryNotification # noqa: Y015
- PRODUCTSECTIONS_FIELD_NUMBER: _builtins.int
- HEADERIMAGE_FIELD_NUMBER: _builtins.int
- BUSINESSOWNERJID_FIELD_NUMBER: _builtins.int
- businessOwnerJid: _builtins.str
- @_builtins.property
- def productSections(self) -> _containers.RepeatedCompositeFieldContainer[Global___Message.ListMessage.ProductSection]: ...
- @_builtins.property
- def headerImage(self) -> Global___Message.ListMessage.ProductListHeaderImage: ...
- def __init__(
- self,
- *,
- productSections: _abc.Iterable[Global___Message.ListMessage.ProductSection] | None = ...,
- headerImage: Global___Message.ListMessage.ProductListHeaderImage | None = ...,
- businessOwnerJid: _builtins.str | None = ...,
- ) -> None: ...
- _HasFieldArgType: _TypeAlias = _typing.Literal["businessOwnerJid", b"businessOwnerJid", "headerImage", b"headerImage"] # noqa: Y015
- def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ...
- _ClearFieldArgType: _TypeAlias = _typing.Literal["businessOwnerJid", b"businessOwnerJid", "headerImage", b"headerImage", "productSections", b"productSections"] # noqa: Y015
- def ClearField(self, field_name: _ClearFieldArgType) -> None: ...
+@_typing.final
+class MekBundle(_message.Message):
+ DESCRIPTOR: _descriptor.Descriptor
- @_typing.final
- class ProductSection(_message.Message):
- DESCRIPTOR: _descriptor.Descriptor
+ KEY_FIELD_NUMBER: _builtins.int
+ MEKID_FIELD_NUMBER: _builtins.int
+ ROSTERHASH_FIELD_NUMBER: _builtins.int
+ key: _builtins.bytes
+ mekId: _builtins.bytes
+ rosterHash: _builtins.bytes
+ def __init__(
+ self,
+ *,
+ key: _builtins.bytes | None = ...,
+ mekId: _builtins.bytes | None = ...,
+ rosterHash: _builtins.bytes | None = ...,
+ ) -> None: ...
+ _HasFieldArgType: _TypeAlias = _typing.Literal["key", b"key", "mekId", b"mekId", "rosterHash", b"rosterHash"] # noqa: Y015
+ def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ...
+ _ClearFieldArgType: _TypeAlias = _typing.Literal["key", b"key", "mekId", b"mekId", "rosterHash", b"rosterHash"] # noqa: Y015
+ def ClearField(self, field_name: _ClearFieldArgType) -> None: ...
- TITLE_FIELD_NUMBER: _builtins.int
- PRODUCTS_FIELD_NUMBER: _builtins.int
- title: _builtins.str
- @_builtins.property
- def products(self) -> _containers.RepeatedCompositeFieldContainer[Global___Message.ListMessage.Product]: ...
- def __init__(
- self,
- *,
- title: _builtins.str | None = ...,
- products: _abc.Iterable[Global___Message.ListMessage.Product] | None = ...,
- ) -> None: ...
- _HasFieldArgType: _TypeAlias = _typing.Literal["title", b"title"] # noqa: Y015
- def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ...
- _ClearFieldArgType: _TypeAlias = _typing.Literal["products", b"products", "title", b"title"] # noqa: Y015
- def ClearField(self, field_name: _ClearFieldArgType) -> None: ...
+Global___MekBundle: _TypeAlias = MekBundle # noqa: Y015
- @_typing.final
- class Row(_message.Message):
- DESCRIPTOR: _descriptor.Descriptor
+@_typing.final
+class MemberLabel(_message.Message):
+ DESCRIPTOR: _descriptor.Descriptor
- TITLE_FIELD_NUMBER: _builtins.int
- DESCRIPTION_FIELD_NUMBER: _builtins.int
- ROWID_FIELD_NUMBER: _builtins.int
- title: _builtins.str
- description: _builtins.str
- rowId: _builtins.str
- def __init__(
- self,
- *,
- title: _builtins.str | None = ...,
- description: _builtins.str | None = ...,
- rowId: _builtins.str | None = ...,
- ) -> None: ...
- _HasFieldArgType: _TypeAlias = _typing.Literal["description", b"description", "rowId", b"rowId", "title", b"title"] # noqa: Y015
- def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ...
- _ClearFieldArgType: _TypeAlias = _typing.Literal["description", b"description", "rowId", b"rowId", "title", b"title"] # noqa: Y015
- def ClearField(self, field_name: _ClearFieldArgType) -> None: ...
+ LABEL_FIELD_NUMBER: _builtins.int
+ LABELTIMESTAMP_FIELD_NUMBER: _builtins.int
+ label: _builtins.str
+ labelTimestamp: _builtins.int
+ def __init__(
+ self,
+ *,
+ label: _builtins.str | None = ...,
+ labelTimestamp: _builtins.int | None = ...,
+ ) -> None: ...
+ _HasFieldArgType: _TypeAlias = _typing.Literal["label", b"label", "labelTimestamp", b"labelTimestamp"] # noqa: Y015
+ def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ...
+ _ClearFieldArgType: _TypeAlias = _typing.Literal["label", b"label", "labelTimestamp", b"labelTimestamp"] # noqa: Y015
+ def ClearField(self, field_name: _ClearFieldArgType) -> None: ...
- @_typing.final
- class Section(_message.Message):
- DESCRIPTOR: _descriptor.Descriptor
+Global___MemberLabel: _TypeAlias = MemberLabel # noqa: Y015
- TITLE_FIELD_NUMBER: _builtins.int
- ROWS_FIELD_NUMBER: _builtins.int
- title: _builtins.str
- @_builtins.property
- def rows(self) -> _containers.RepeatedCompositeFieldContainer[Global___Message.ListMessage.Row]: ...
- def __init__(
- self,
- *,
- title: _builtins.str | None = ...,
- rows: _abc.Iterable[Global___Message.ListMessage.Row] | None = ...,
- ) -> None: ...
- _HasFieldArgType: _TypeAlias = _typing.Literal["title", b"title"] # noqa: Y015
- def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ...
- _ClearFieldArgType: _TypeAlias = _typing.Literal["rows", b"rows", "title", b"title"] # noqa: Y015
- def ClearField(self, field_name: _ClearFieldArgType) -> None: ...
+@_typing.final
+class Mention(_message.Message):
+ DESCRIPTOR: _descriptor.Descriptor
- TITLE_FIELD_NUMBER: _builtins.int
- DESCRIPTION_FIELD_NUMBER: _builtins.int
- BUTTONTEXT_FIELD_NUMBER: _builtins.int
- LISTTYPE_FIELD_NUMBER: _builtins.int
- SECTIONS_FIELD_NUMBER: _builtins.int
- PRODUCTLISTINFO_FIELD_NUMBER: _builtins.int
- FOOTERTEXT_FIELD_NUMBER: _builtins.int
+ MENTIONTYPE_FIELD_NUMBER: _builtins.int
+ MENTIONEDJID_FIELD_NUMBER: _builtins.int
+ OFFSET_FIELD_NUMBER: _builtins.int
+ LENGTH_FIELD_NUMBER: _builtins.int
+ mentionType: Global___MENTION_MENTION_TYPE.ValueType
+ mentionedJid: _builtins.str
+ offset: _builtins.int
+ length: _builtins.int
+ def __init__(
+ self,
+ *,
+ mentionType: Global___MENTION_MENTION_TYPE.ValueType | None = ...,
+ mentionedJid: _builtins.str | None = ...,
+ offset: _builtins.int | None = ...,
+ length: _builtins.int | None = ...,
+ ) -> None: ...
+ _HasFieldArgType: _TypeAlias = _typing.Literal["length", b"length", "mentionType", b"mentionType", "mentionedJid", b"mentionedJid", "offset", b"offset"] # noqa: Y015
+ def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ...
+ _ClearFieldArgType: _TypeAlias = _typing.Literal["length", b"length", "mentionType", b"mentionType", "mentionedJid", b"mentionedJid", "offset", b"offset"] # noqa: Y015
+ def ClearField(self, field_name: _ClearFieldArgType) -> None: ...
+
+Global___Mention: _TypeAlias = Mention # noqa: Y015
+
+@_typing.final
+class MerkleMembershipProof(_message.Message):
+ DESCRIPTOR: _descriptor.Descriptor
+
+ PROOF_FIELD_NUMBER: _builtins.int
+ ROOT_FIELD_NUMBER: _builtins.int
+ LEAFINDEX_FIELD_NUMBER: _builtins.int
+ TOTALLEAVES_FIELD_NUMBER: _builtins.int
+ proof: _builtins.bytes
+ root: _builtins.bytes
+ leafIndex: _builtins.int
+ totalLeaves: _builtins.int
+ def __init__(
+ self,
+ *,
+ proof: _builtins.bytes | None = ...,
+ root: _builtins.bytes | None = ...,
+ leafIndex: _builtins.int | None = ...,
+ totalLeaves: _builtins.int | None = ...,
+ ) -> None: ...
+ _HasFieldArgType: _TypeAlias = _typing.Literal["leafIndex", b"leafIndex", "proof", b"proof", "root", b"root", "totalLeaves", b"totalLeaves"] # noqa: Y015
+ def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ...
+ _ClearFieldArgType: _TypeAlias = _typing.Literal["leafIndex", b"leafIndex", "proof", b"proof", "root", b"root", "totalLeaves", b"totalLeaves"] # noqa: Y015
+ def ClearField(self, field_name: _ClearFieldArgType) -> None: ...
+
+Global___MerkleMembershipProof: _TypeAlias = MerkleMembershipProof # noqa: Y015
+
+@_typing.final
+class Message(_message.Message):
+ DESCRIPTOR: _descriptor.Descriptor
+
+ class _HistorySyncType:
+ ValueType = _typing.NewType("ValueType", _builtins.int)
+ V: _TypeAlias = ValueType # noqa: Y015
+
+ class _HistorySyncTypeEnumTypeWrapper(_enum_type_wrapper._EnumTypeWrapper[Message._HistorySyncType.ValueType], _builtins.type):
+ DESCRIPTOR: _descriptor.EnumDescriptor
+ INITIAL_BOOTSTRAP: Message._HistorySyncType.ValueType # 0
+ INITIAL_STATUS_V3: Message._HistorySyncType.ValueType # 1
+ FULL: Message._HistorySyncType.ValueType # 2
+ RECENT: Message._HistorySyncType.ValueType # 3
+ PUSH_NAME: Message._HistorySyncType.ValueType # 4
+ NON_BLOCKING_DATA: Message._HistorySyncType.ValueType # 5
+ ON_DEMAND: Message._HistorySyncType.ValueType # 6
+ NO_HISTORY: Message._HistorySyncType.ValueType # 7
+ MESSAGE_ACCESS_STATUS: Message._HistorySyncType.ValueType # 8
+
+ class HistorySyncType(_HistorySyncType, metaclass=_HistorySyncTypeEnumTypeWrapper): ...
+ INITIAL_BOOTSTRAP: Message.HistorySyncType.ValueType # 0
+ INITIAL_STATUS_V3: Message.HistorySyncType.ValueType # 1
+ FULL: Message.HistorySyncType.ValueType # 2
+ RECENT: Message.HistorySyncType.ValueType # 3
+ PUSH_NAME: Message.HistorySyncType.ValueType # 4
+ NON_BLOCKING_DATA: Message.HistorySyncType.ValueType # 5
+ ON_DEMAND: Message.HistorySyncType.ValueType # 6
+ NO_HISTORY: Message.HistorySyncType.ValueType # 7
+ MESSAGE_ACCESS_STATUS: Message.HistorySyncType.ValueType # 8
+
+ class _InsightDeliveryState:
+ ValueType = _typing.NewType("ValueType", _builtins.int)
+ V: _TypeAlias = ValueType # noqa: Y015
+
+ class _InsightDeliveryStateEnumTypeWrapper(_enum_type_wrapper._EnumTypeWrapper[Message._InsightDeliveryState.ValueType], _builtins.type):
+ DESCRIPTOR: _descriptor.EnumDescriptor
+ SENT: Message._InsightDeliveryState.ValueType # 0
+ DELIVERED: Message._InsightDeliveryState.ValueType # 1
+ READ: Message._InsightDeliveryState.ValueType # 2
+ REPLIED: Message._InsightDeliveryState.ValueType # 3
+ QUICK_REPLIED: Message._InsightDeliveryState.ValueType # 4
+
+ class InsightDeliveryState(_InsightDeliveryState, metaclass=_InsightDeliveryStateEnumTypeWrapper): ...
+ SENT: Message.InsightDeliveryState.ValueType # 0
+ DELIVERED: Message.InsightDeliveryState.ValueType # 1
+ READ: Message.InsightDeliveryState.ValueType # 2
+ REPLIED: Message.InsightDeliveryState.ValueType # 3
+ QUICK_REPLIED: Message.InsightDeliveryState.ValueType # 4
+
+ class _PeerDataOperationRequestType:
+ ValueType = _typing.NewType("ValueType", _builtins.int)
+ V: _TypeAlias = ValueType # noqa: Y015
+
+ class _PeerDataOperationRequestTypeEnumTypeWrapper(_enum_type_wrapper._EnumTypeWrapper[Message._PeerDataOperationRequestType.ValueType], _builtins.type):
+ DESCRIPTOR: _descriptor.EnumDescriptor
+ UPLOAD_STICKER: Message._PeerDataOperationRequestType.ValueType # 0
+ SEND_RECENT_STICKER_BOOTSTRAP: Message._PeerDataOperationRequestType.ValueType # 1
+ GENERATE_LINK_PREVIEW: Message._PeerDataOperationRequestType.ValueType # 2
+ HISTORY_SYNC_ON_DEMAND: Message._PeerDataOperationRequestType.ValueType # 3
+ PLACEHOLDER_MESSAGE_RESEND: Message._PeerDataOperationRequestType.ValueType # 4
+ WAFFLE_LINKING_NONCE_FETCH: Message._PeerDataOperationRequestType.ValueType # 5
+ FULL_HISTORY_SYNC_ON_DEMAND: Message._PeerDataOperationRequestType.ValueType # 6
+ COMPANION_META_NONCE_FETCH: Message._PeerDataOperationRequestType.ValueType # 7
+ COMPANION_SYNCD_SNAPSHOT_FATAL_RECOVERY: Message._PeerDataOperationRequestType.ValueType # 8
+ COMPANION_CANONICAL_USER_NONCE_FETCH: Message._PeerDataOperationRequestType.ValueType # 9
+ HISTORY_SYNC_CHUNK_RETRY: Message._PeerDataOperationRequestType.ValueType # 10
+ GALAXY_FLOW_ACTION: Message._PeerDataOperationRequestType.ValueType # 11
+ BUSINESS_BROADCAST_INSIGHTS_DELIVERED_TO: Message._PeerDataOperationRequestType.ValueType # 12
+ BUSINESS_BROADCAST_INSIGHTS_REFRESH: Message._PeerDataOperationRequestType.ValueType # 13
+ CONTACT_REFRESH_REQUEST: Message._PeerDataOperationRequestType.ValueType # 14
+
+ class PeerDataOperationRequestType(_PeerDataOperationRequestType, metaclass=_PeerDataOperationRequestTypeEnumTypeWrapper): ...
+ UPLOAD_STICKER: Message.PeerDataOperationRequestType.ValueType # 0
+ SEND_RECENT_STICKER_BOOTSTRAP: Message.PeerDataOperationRequestType.ValueType # 1
+ GENERATE_LINK_PREVIEW: Message.PeerDataOperationRequestType.ValueType # 2
+ HISTORY_SYNC_ON_DEMAND: Message.PeerDataOperationRequestType.ValueType # 3
+ PLACEHOLDER_MESSAGE_RESEND: Message.PeerDataOperationRequestType.ValueType # 4
+ WAFFLE_LINKING_NONCE_FETCH: Message.PeerDataOperationRequestType.ValueType # 5
+ FULL_HISTORY_SYNC_ON_DEMAND: Message.PeerDataOperationRequestType.ValueType # 6
+ COMPANION_META_NONCE_FETCH: Message.PeerDataOperationRequestType.ValueType # 7
+ COMPANION_SYNCD_SNAPSHOT_FATAL_RECOVERY: Message.PeerDataOperationRequestType.ValueType # 8
+ COMPANION_CANONICAL_USER_NONCE_FETCH: Message.PeerDataOperationRequestType.ValueType # 9
+ HISTORY_SYNC_CHUNK_RETRY: Message.PeerDataOperationRequestType.ValueType # 10
+ GALAXY_FLOW_ACTION: Message.PeerDataOperationRequestType.ValueType # 11
+ BUSINESS_BROADCAST_INSIGHTS_DELIVERED_TO: Message.PeerDataOperationRequestType.ValueType # 12
+ BUSINESS_BROADCAST_INSIGHTS_REFRESH: Message.PeerDataOperationRequestType.ValueType # 13
+ CONTACT_REFRESH_REQUEST: Message.PeerDataOperationRequestType.ValueType # 14
+
+ class _PollContentType:
+ ValueType = _typing.NewType("ValueType", _builtins.int)
+ V: _TypeAlias = ValueType # noqa: Y015
+
+ class _PollContentTypeEnumTypeWrapper(_enum_type_wrapper._EnumTypeWrapper[Message._PollContentType.ValueType], _builtins.type):
+ DESCRIPTOR: _descriptor.EnumDescriptor
+ UNKNOWN: Message._PollContentType.ValueType # 0
+ TEXT: Message._PollContentType.ValueType # 1
+ IMAGE: Message._PollContentType.ValueType # 2
+
+ class PollContentType(_PollContentType, metaclass=_PollContentTypeEnumTypeWrapper): ...
+ UNKNOWN: Message.PollContentType.ValueType # 0
+ TEXT: Message.PollContentType.ValueType # 1
+ IMAGE: Message.PollContentType.ValueType # 2
+
+ class _PollType:
+ ValueType = _typing.NewType("ValueType", _builtins.int)
+ V: _TypeAlias = ValueType # noqa: Y015
+
+ class _PollTypeEnumTypeWrapper(_enum_type_wrapper._EnumTypeWrapper[Message._PollType.ValueType], _builtins.type):
+ DESCRIPTOR: _descriptor.EnumDescriptor
+ POLL: Message._PollType.ValueType # 0
+ QUIZ: Message._PollType.ValueType # 1
+
+ class PollType(_PollType, metaclass=_PollTypeEnumTypeWrapper): ...
+ POLL: Message.PollType.ValueType # 0
+ QUIZ: Message.PollType.ValueType # 1
+
+ @_typing.final
+ class AlbumMessage(_message.Message):
+ DESCRIPTOR: _descriptor.Descriptor
+
+ EXPECTEDIMAGECOUNT_FIELD_NUMBER: _builtins.int
+ EXPECTEDVIDEOCOUNT_FIELD_NUMBER: _builtins.int
CONTEXTINFO_FIELD_NUMBER: _builtins.int
- title: _builtins.str
- description: _builtins.str
- buttonText: _builtins.str
- listType: Global___Message.ListMessage.ListType.ValueType
- footerText: _builtins.str
- @_builtins.property
- def sections(self) -> _containers.RepeatedCompositeFieldContainer[Global___Message.ListMessage.Section]: ...
- @_builtins.property
- def productListInfo(self) -> Global___Message.ListMessage.ProductListInfo: ...
+ expectedImageCount: _builtins.int
+ expectedVideoCount: _builtins.int
@_builtins.property
def contextInfo(self) -> Global___ContextInfo: ...
def __init__(
self,
*,
- title: _builtins.str | None = ...,
- description: _builtins.str | None = ...,
- buttonText: _builtins.str | None = ...,
- listType: Global___Message.ListMessage.ListType.ValueType | None = ...,
- sections: _abc.Iterable[Global___Message.ListMessage.Section] | None = ...,
- productListInfo: Global___Message.ListMessage.ProductListInfo | None = ...,
- footerText: _builtins.str | None = ...,
+ expectedImageCount: _builtins.int | None = ...,
+ expectedVideoCount: _builtins.int | None = ...,
contextInfo: Global___ContextInfo | None = ...,
) -> None: ...
- _HasFieldArgType: _TypeAlias = _typing.Literal["buttonText", b"buttonText", "contextInfo", b"contextInfo", "description", b"description", "footerText", b"footerText", "listType", b"listType", "productListInfo", b"productListInfo", "title", b"title"] # noqa: Y015
+ _HasFieldArgType: _TypeAlias = _typing.Literal["contextInfo", b"contextInfo", "expectedImageCount", b"expectedImageCount", "expectedVideoCount", b"expectedVideoCount"] # noqa: Y015
def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ...
- _ClearFieldArgType: _TypeAlias = _typing.Literal["buttonText", b"buttonText", "contextInfo", b"contextInfo", "description", b"description", "footerText", b"footerText", "listType", b"listType", "productListInfo", b"productListInfo", "sections", b"sections", "title", b"title"] # noqa: Y015
+ _ClearFieldArgType: _TypeAlias = _typing.Literal["contextInfo", b"contextInfo", "expectedImageCount", b"expectedImageCount", "expectedVideoCount", b"expectedVideoCount"] # noqa: Y015
def ClearField(self, field_name: _ClearFieldArgType) -> None: ...
@_typing.final
- class ListResponseMessage(_message.Message):
+ class AppStateFatalExceptionNotification(_message.Message):
DESCRIPTOR: _descriptor.Descriptor
- class _ListType:
- ValueType = _typing.NewType("ValueType", _builtins.int)
- V: _TypeAlias = ValueType # noqa: Y015
-
- class _ListTypeEnumTypeWrapper(_enum_type_wrapper._EnumTypeWrapper[Message.ListResponseMessage._ListType.ValueType], _builtins.type):
- DESCRIPTOR: _descriptor.EnumDescriptor
- UNKNOWN: Message.ListResponseMessage._ListType.ValueType # 0
- SINGLE_SELECT: Message.ListResponseMessage._ListType.ValueType # 1
-
- class ListType(_ListType, metaclass=_ListTypeEnumTypeWrapper): ...
- UNKNOWN: Message.ListResponseMessage.ListType.ValueType # 0
- SINGLE_SELECT: Message.ListResponseMessage.ListType.ValueType # 1
-
- @_typing.final
- class SingleSelectReply(_message.Message):
- DESCRIPTOR: _descriptor.Descriptor
+ COLLECTIONNAMES_FIELD_NUMBER: _builtins.int
+ TIMESTAMP_FIELD_NUMBER: _builtins.int
+ timestamp: _builtins.int
+ @_builtins.property
+ def collectionNames(self) -> _containers.RepeatedScalarFieldContainer[_builtins.str]: ...
+ def __init__(
+ self,
+ *,
+ collectionNames: _abc.Iterable[_builtins.str] | None = ...,
+ timestamp: _builtins.int | None = ...,
+ ) -> None: ...
+ _HasFieldArgType: _TypeAlias = _typing.Literal["timestamp", b"timestamp"] # noqa: Y015
+ def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ...
+ _ClearFieldArgType: _TypeAlias = _typing.Literal["collectionNames", b"collectionNames", "timestamp", b"timestamp"] # noqa: Y015
+ def ClearField(self, field_name: _ClearFieldArgType) -> None: ...
- SELECTEDROWID_FIELD_NUMBER: _builtins.int
- selectedRowId: _builtins.str
- def __init__(
- self,
- *,
- selectedRowId: _builtins.str | None = ...,
- ) -> None: ...
- _HasFieldArgType: _TypeAlias = _typing.Literal["selectedRowId", b"selectedRowId"] # noqa: Y015
- def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ...
- _ClearFieldArgType: _TypeAlias = _typing.Literal["selectedRowId", b"selectedRowId"] # noqa: Y015
- def ClearField(self, field_name: _ClearFieldArgType) -> None: ...
+ @_typing.final
+ class AppStateSyncKey(_message.Message):
+ DESCRIPTOR: _descriptor.Descriptor
- TITLE_FIELD_NUMBER: _builtins.int
- LISTTYPE_FIELD_NUMBER: _builtins.int
- SINGLESELECTREPLY_FIELD_NUMBER: _builtins.int
- CONTEXTINFO_FIELD_NUMBER: _builtins.int
- DESCRIPTION_FIELD_NUMBER: _builtins.int
- title: _builtins.str
- listType: Global___Message.ListResponseMessage.ListType.ValueType
- description: _builtins.str
+ KEYID_FIELD_NUMBER: _builtins.int
+ KEYDATA_FIELD_NUMBER: _builtins.int
@_builtins.property
- def singleSelectReply(self) -> Global___Message.ListResponseMessage.SingleSelectReply: ...
+ def keyId(self) -> Global___Message.AppStateSyncKeyId: ...
@_builtins.property
- def contextInfo(self) -> Global___ContextInfo: ...
+ def keyData(self) -> Global___Message.AppStateSyncKeyData: ...
def __init__(
self,
*,
- title: _builtins.str | None = ...,
- listType: Global___Message.ListResponseMessage.ListType.ValueType | None = ...,
- singleSelectReply: Global___Message.ListResponseMessage.SingleSelectReply | None = ...,
- contextInfo: Global___ContextInfo | None = ...,
- description: _builtins.str | None = ...,
+ keyId: Global___Message.AppStateSyncKeyId | None = ...,
+ keyData: Global___Message.AppStateSyncKeyData | None = ...,
) -> None: ...
- _HasFieldArgType: _TypeAlias = _typing.Literal["contextInfo", b"contextInfo", "description", b"description", "listType", b"listType", "singleSelectReply", b"singleSelectReply", "title", b"title"] # noqa: Y015
+ _HasFieldArgType: _TypeAlias = _typing.Literal["keyData", b"keyData", "keyId", b"keyId"] # noqa: Y015
def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ...
- _ClearFieldArgType: _TypeAlias = _typing.Literal["contextInfo", b"contextInfo", "description", b"description", "listType", b"listType", "singleSelectReply", b"singleSelectReply", "title", b"title"] # noqa: Y015
+ _ClearFieldArgType: _TypeAlias = _typing.Literal["keyData", b"keyData", "keyId", b"keyId"] # noqa: Y015
def ClearField(self, field_name: _ClearFieldArgType) -> None: ...
@_typing.final
- class LiveLocationMessage(_message.Message):
+ class AppStateSyncKeyData(_message.Message):
DESCRIPTOR: _descriptor.Descriptor
- DEGREESLATITUDE_FIELD_NUMBER: _builtins.int
- DEGREESLONGITUDE_FIELD_NUMBER: _builtins.int
- ACCURACYINMETERS_FIELD_NUMBER: _builtins.int
- SPEEDINMPS_FIELD_NUMBER: _builtins.int
- DEGREESCLOCKWISEFROMMAGNETICNORTH_FIELD_NUMBER: _builtins.int
- CAPTION_FIELD_NUMBER: _builtins.int
- SEQUENCENUMBER_FIELD_NUMBER: _builtins.int
- TIMEOFFSET_FIELD_NUMBER: _builtins.int
- JPEGTHUMBNAIL_FIELD_NUMBER: _builtins.int
- CONTEXTINFO_FIELD_NUMBER: _builtins.int
- degreesLatitude: _builtins.float
- degreesLongitude: _builtins.float
- accuracyInMeters: _builtins.int
- speedInMps: _builtins.float
- degreesClockwiseFromMagneticNorth: _builtins.int
- caption: _builtins.str
- sequenceNumber: _builtins.int
- timeOffset: _builtins.int
- jpegThumbnail: _builtins.bytes
+ KEYDATA_FIELD_NUMBER: _builtins.int
+ FINGERPRINT_FIELD_NUMBER: _builtins.int
+ TIMESTAMP_FIELD_NUMBER: _builtins.int
+ keyData: _builtins.bytes
+ timestamp: _builtins.int
@_builtins.property
- def contextInfo(self) -> Global___ContextInfo: ...
+ def fingerprint(self) -> Global___Message.AppStateSyncKeyFingerprint: ...
def __init__(
self,
*,
- degreesLatitude: _builtins.float | None = ...,
- degreesLongitude: _builtins.float | None = ...,
- accuracyInMeters: _builtins.int | None = ...,
- speedInMps: _builtins.float | None = ...,
- degreesClockwiseFromMagneticNorth: _builtins.int | None = ...,
- caption: _builtins.str | None = ...,
- sequenceNumber: _builtins.int | None = ...,
- timeOffset: _builtins.int | None = ...,
- jpegThumbnail: _builtins.bytes | None = ...,
- contextInfo: Global___ContextInfo | None = ...,
+ keyData: _builtins.bytes | None = ...,
+ fingerprint: Global___Message.AppStateSyncKeyFingerprint | None = ...,
+ timestamp: _builtins.int | None = ...,
) -> None: ...
- _HasFieldArgType: _TypeAlias = _typing.Literal["accuracyInMeters", b"accuracyInMeters", "caption", b"caption", "contextInfo", b"contextInfo", "degreesClockwiseFromMagneticNorth", b"degreesClockwiseFromMagneticNorth", "degreesLatitude", b"degreesLatitude", "degreesLongitude", b"degreesLongitude", "jpegThumbnail", b"jpegThumbnail", "sequenceNumber", b"sequenceNumber", "speedInMps", b"speedInMps", "timeOffset", b"timeOffset"] # noqa: Y015
+ _HasFieldArgType: _TypeAlias = _typing.Literal["fingerprint", b"fingerprint", "keyData", b"keyData", "timestamp", b"timestamp"] # noqa: Y015
def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ...
- _ClearFieldArgType: _TypeAlias = _typing.Literal["accuracyInMeters", b"accuracyInMeters", "caption", b"caption", "contextInfo", b"contextInfo", "degreesClockwiseFromMagneticNorth", b"degreesClockwiseFromMagneticNorth", "degreesLatitude", b"degreesLatitude", "degreesLongitude", b"degreesLongitude", "jpegThumbnail", b"jpegThumbnail", "sequenceNumber", b"sequenceNumber", "speedInMps", b"speedInMps", "timeOffset", b"timeOffset"] # noqa: Y015
+ _ClearFieldArgType: _TypeAlias = _typing.Literal["fingerprint", b"fingerprint", "keyData", b"keyData", "timestamp", b"timestamp"] # noqa: Y015
def ClearField(self, field_name: _ClearFieldArgType) -> None: ...
@_typing.final
- class LocationMessage(_message.Message):
+ class AppStateSyncKeyFingerprint(_message.Message):
DESCRIPTOR: _descriptor.Descriptor
- DEGREESLATITUDE_FIELD_NUMBER: _builtins.int
- DEGREESLONGITUDE_FIELD_NUMBER: _builtins.int
- NAME_FIELD_NUMBER: _builtins.int
- ADDRESS_FIELD_NUMBER: _builtins.int
- URL_FIELD_NUMBER: _builtins.int
- ISLIVE_FIELD_NUMBER: _builtins.int
- ACCURACYINMETERS_FIELD_NUMBER: _builtins.int
- SPEEDINMPS_FIELD_NUMBER: _builtins.int
- DEGREESCLOCKWISEFROMMAGNETICNORTH_FIELD_NUMBER: _builtins.int
- COMMENT_FIELD_NUMBER: _builtins.int
- JPEGTHUMBNAIL_FIELD_NUMBER: _builtins.int
- CONTEXTINFO_FIELD_NUMBER: _builtins.int
- degreesLatitude: _builtins.float
- degreesLongitude: _builtins.float
- name: _builtins.str
- address: _builtins.str
- url: _builtins.str
- isLive: _builtins.bool
- accuracyInMeters: _builtins.int
- speedInMps: _builtins.float
- degreesClockwiseFromMagneticNorth: _builtins.int
- comment: _builtins.str
- jpegThumbnail: _builtins.bytes
+ RAWID_FIELD_NUMBER: _builtins.int
+ CURRENTINDEX_FIELD_NUMBER: _builtins.int
+ DEVICEINDEXES_FIELD_NUMBER: _builtins.int
+ rawId: _builtins.int
+ currentIndex: _builtins.int
@_builtins.property
- def contextInfo(self) -> Global___ContextInfo: ...
+ def deviceIndexes(self) -> _containers.RepeatedScalarFieldContainer[_builtins.int]: ...
def __init__(
self,
*,
- degreesLatitude: _builtins.float | None = ...,
- degreesLongitude: _builtins.float | None = ...,
- name: _builtins.str | None = ...,
- address: _builtins.str | None = ...,
- url: _builtins.str | None = ...,
- isLive: _builtins.bool | None = ...,
- accuracyInMeters: _builtins.int | None = ...,
- speedInMps: _builtins.float | None = ...,
- degreesClockwiseFromMagneticNorth: _builtins.int | None = ...,
- comment: _builtins.str | None = ...,
- jpegThumbnail: _builtins.bytes | None = ...,
- contextInfo: Global___ContextInfo | None = ...,
+ rawId: _builtins.int | None = ...,
+ currentIndex: _builtins.int | None = ...,
+ deviceIndexes: _abc.Iterable[_builtins.int] | None = ...,
) -> None: ...
- _HasFieldArgType: _TypeAlias = _typing.Literal["accuracyInMeters", b"accuracyInMeters", "address", b"address", "comment", b"comment", "contextInfo", b"contextInfo", "degreesClockwiseFromMagneticNorth", b"degreesClockwiseFromMagneticNorth", "degreesLatitude", b"degreesLatitude", "degreesLongitude", b"degreesLongitude", "isLive", b"isLive", "jpegThumbnail", b"jpegThumbnail", "name", b"name", "speedInMps", b"speedInMps", "url", b"url"] # noqa: Y015
+ _HasFieldArgType: _TypeAlias = _typing.Literal["currentIndex", b"currentIndex", "rawId", b"rawId"] # noqa: Y015
def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ...
- _ClearFieldArgType: _TypeAlias = _typing.Literal["accuracyInMeters", b"accuracyInMeters", "address", b"address", "comment", b"comment", "contextInfo", b"contextInfo", "degreesClockwiseFromMagneticNorth", b"degreesClockwiseFromMagneticNorth", "degreesLatitude", b"degreesLatitude", "degreesLongitude", b"degreesLongitude", "isLive", b"isLive", "jpegThumbnail", b"jpegThumbnail", "name", b"name", "speedInMps", b"speedInMps", "url", b"url"] # noqa: Y015
+ _ClearFieldArgType: _TypeAlias = _typing.Literal["currentIndex", b"currentIndex", "deviceIndexes", b"deviceIndexes", "rawId", b"rawId"] # noqa: Y015
def ClearField(self, field_name: _ClearFieldArgType) -> None: ...
@_typing.final
- class MMSThumbnailMetadata(_message.Message):
+ class AppStateSyncKeyId(_message.Message):
DESCRIPTOR: _descriptor.Descriptor
- THUMBNAILDIRECTPATH_FIELD_NUMBER: _builtins.int
- THUMBNAILSHA256_FIELD_NUMBER: _builtins.int
- THUMBNAILENCSHA256_FIELD_NUMBER: _builtins.int
- MEDIAKEY_FIELD_NUMBER: _builtins.int
- MEDIAKEYTIMESTAMP_FIELD_NUMBER: _builtins.int
- THUMBNAILHEIGHT_FIELD_NUMBER: _builtins.int
- THUMBNAILWIDTH_FIELD_NUMBER: _builtins.int
- thumbnailDirectPath: _builtins.str
- thumbnailSha256: _builtins.bytes
- thumbnailEncSha256: _builtins.bytes
- mediaKey: _builtins.bytes
- mediaKeyTimestamp: _builtins.int
- thumbnailHeight: _builtins.int
- thumbnailWidth: _builtins.int
+ KEYID_FIELD_NUMBER: _builtins.int
+ keyId: _builtins.bytes
def __init__(
self,
*,
- thumbnailDirectPath: _builtins.str | None = ...,
- thumbnailSha256: _builtins.bytes | None = ...,
- thumbnailEncSha256: _builtins.bytes | None = ...,
- mediaKey: _builtins.bytes | None = ...,
- mediaKeyTimestamp: _builtins.int | None = ...,
- thumbnailHeight: _builtins.int | None = ...,
- thumbnailWidth: _builtins.int | None = ...,
+ keyId: _builtins.bytes | None = ...,
) -> None: ...
- _HasFieldArgType: _TypeAlias = _typing.Literal["mediaKey", b"mediaKey", "mediaKeyTimestamp", b"mediaKeyTimestamp", "thumbnailDirectPath", b"thumbnailDirectPath", "thumbnailEncSha256", b"thumbnailEncSha256", "thumbnailHeight", b"thumbnailHeight", "thumbnailSha256", b"thumbnailSha256", "thumbnailWidth", b"thumbnailWidth"] # noqa: Y015
+ _HasFieldArgType: _TypeAlias = _typing.Literal["keyId", b"keyId"] # noqa: Y015
def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ...
- _ClearFieldArgType: _TypeAlias = _typing.Literal["mediaKey", b"mediaKey", "mediaKeyTimestamp", b"mediaKeyTimestamp", "thumbnailDirectPath", b"thumbnailDirectPath", "thumbnailEncSha256", b"thumbnailEncSha256", "thumbnailHeight", b"thumbnailHeight", "thumbnailSha256", b"thumbnailSha256", "thumbnailWidth", b"thumbnailWidth"] # noqa: Y015
+ _ClearFieldArgType: _TypeAlias = _typing.Literal["keyId", b"keyId"] # noqa: Y015
def ClearField(self, field_name: _ClearFieldArgType) -> None: ...
@_typing.final
- class MessageHistoryBundle(_message.Message):
+ class AppStateSyncKeyRequest(_message.Message):
+ DESCRIPTOR: _descriptor.Descriptor
+
+ KEYIDS_FIELD_NUMBER: _builtins.int
+ @_builtins.property
+ def keyIds(self) -> _containers.RepeatedCompositeFieldContainer[Global___Message.AppStateSyncKeyId]: ...
+ def __init__(
+ self,
+ *,
+ keyIds: _abc.Iterable[Global___Message.AppStateSyncKeyId] | None = ...,
+ ) -> None: ...
+ _ClearFieldArgType: _TypeAlias = _typing.Literal["keyIds", b"keyIds"] # noqa: Y015
+ def ClearField(self, field_name: _ClearFieldArgType) -> None: ...
+
+ @_typing.final
+ class AppStateSyncKeyShare(_message.Message):
+ DESCRIPTOR: _descriptor.Descriptor
+
+ KEYS_FIELD_NUMBER: _builtins.int
+ @_builtins.property
+ def keys(self) -> _containers.RepeatedCompositeFieldContainer[Global___Message.AppStateSyncKey]: ...
+ def __init__(
+ self,
+ *,
+ keys: _abc.Iterable[Global___Message.AppStateSyncKey] | None = ...,
+ ) -> None: ...
+ _ClearFieldArgType: _TypeAlias = _typing.Literal["keys", b"keys"] # noqa: Y015
+ def ClearField(self, field_name: _ClearFieldArgType) -> None: ...
+
+ @_typing.final
+ class AudioMessage(_message.Message):
DESCRIPTOR: _descriptor.Descriptor
+ URL_FIELD_NUMBER: _builtins.int
MIMETYPE_FIELD_NUMBER: _builtins.int
FILESHA256_FIELD_NUMBER: _builtins.int
+ FILELENGTH_FIELD_NUMBER: _builtins.int
+ SECONDS_FIELD_NUMBER: _builtins.int
+ PTT_FIELD_NUMBER: _builtins.int
MEDIAKEY_FIELD_NUMBER: _builtins.int
FILEENCSHA256_FIELD_NUMBER: _builtins.int
DIRECTPATH_FIELD_NUMBER: _builtins.int
MEDIAKEYTIMESTAMP_FIELD_NUMBER: _builtins.int
CONTEXTINFO_FIELD_NUMBER: _builtins.int
- MESSAGEHISTORYMETADATA_FIELD_NUMBER: _builtins.int
+ STREAMINGSIDECAR_FIELD_NUMBER: _builtins.int
+ WAVEFORM_FIELD_NUMBER: _builtins.int
+ BACKGROUNDARGB_FIELD_NUMBER: _builtins.int
+ VIEWONCE_FIELD_NUMBER: _builtins.int
+ ACCESSIBILITYLABEL_FIELD_NUMBER: _builtins.int
+ url: _builtins.str
mimetype: _builtins.str
fileSha256: _builtins.bytes
+ fileLength: _builtins.int
+ seconds: _builtins.int
+ ptt: _builtins.bool
mediaKey: _builtins.bytes
fileEncSha256: _builtins.bytes
directPath: _builtins.str
mediaKeyTimestamp: _builtins.int
+ streamingSidecar: _builtins.bytes
+ waveform: _builtins.bytes
+ backgroundArgb: _builtins.int
+ viewOnce: _builtins.bool
+ accessibilityLabel: _builtins.str
@_builtins.property
def contextInfo(self) -> Global___ContextInfo: ...
- @_builtins.property
- def messageHistoryMetadata(self) -> Global___Message.MessageHistoryMetadata: ...
def __init__(
self,
*,
+ url: _builtins.str | None = ...,
mimetype: _builtins.str | None = ...,
fileSha256: _builtins.bytes | None = ...,
+ fileLength: _builtins.int | None = ...,
+ seconds: _builtins.int | None = ...,
+ ptt: _builtins.bool | None = ...,
mediaKey: _builtins.bytes | None = ...,
fileEncSha256: _builtins.bytes | None = ...,
directPath: _builtins.str | None = ...,
mediaKeyTimestamp: _builtins.int | None = ...,
contextInfo: Global___ContextInfo | None = ...,
- messageHistoryMetadata: Global___Message.MessageHistoryMetadata | None = ...,
+ streamingSidecar: _builtins.bytes | None = ...,
+ waveform: _builtins.bytes | None = ...,
+ backgroundArgb: _builtins.int | None = ...,
+ viewOnce: _builtins.bool | None = ...,
+ accessibilityLabel: _builtins.str | None = ...,
) -> None: ...
- _HasFieldArgType: _TypeAlias = _typing.Literal["contextInfo", b"contextInfo", "directPath", b"directPath", "fileEncSha256", b"fileEncSha256", "fileSha256", b"fileSha256", "mediaKey", b"mediaKey", "mediaKeyTimestamp", b"mediaKeyTimestamp", "messageHistoryMetadata", b"messageHistoryMetadata", "mimetype", b"mimetype"] # noqa: Y015
+ _HasFieldArgType: _TypeAlias = _typing.Literal["accessibilityLabel", b"accessibilityLabel", "backgroundArgb", b"backgroundArgb", "contextInfo", b"contextInfo", "directPath", b"directPath", "fileEncSha256", b"fileEncSha256", "fileLength", b"fileLength", "fileSha256", b"fileSha256", "mediaKey", b"mediaKey", "mediaKeyTimestamp", b"mediaKeyTimestamp", "mimetype", b"mimetype", "ptt", b"ptt", "seconds", b"seconds", "streamingSidecar", b"streamingSidecar", "url", b"url", "viewOnce", b"viewOnce", "waveform", b"waveform"] # noqa: Y015
def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ...
- _ClearFieldArgType: _TypeAlias = _typing.Literal["contextInfo", b"contextInfo", "directPath", b"directPath", "fileEncSha256", b"fileEncSha256", "fileSha256", b"fileSha256", "mediaKey", b"mediaKey", "mediaKeyTimestamp", b"mediaKeyTimestamp", "messageHistoryMetadata", b"messageHistoryMetadata", "mimetype", b"mimetype"] # noqa: Y015
+ _ClearFieldArgType: _TypeAlias = _typing.Literal["accessibilityLabel", b"accessibilityLabel", "backgroundArgb", b"backgroundArgb", "contextInfo", b"contextInfo", "directPath", b"directPath", "fileEncSha256", b"fileEncSha256", "fileLength", b"fileLength", "fileSha256", b"fileSha256", "mediaKey", b"mediaKey", "mediaKeyTimestamp", b"mediaKeyTimestamp", "mimetype", b"mimetype", "ptt", b"ptt", "seconds", b"seconds", "streamingSidecar", b"streamingSidecar", "url", b"url", "viewOnce", b"viewOnce", "waveform", b"waveform"] # noqa: Y015
def ClearField(self, field_name: _ClearFieldArgType) -> None: ...
@_typing.final
- class MessageHistoryMetadata(_message.Message):
+ class BCallMessage(_message.Message):
DESCRIPTOR: _descriptor.Descriptor
- HISTORYRECEIVERS_FIELD_NUMBER: _builtins.int
- OLDESTMESSAGETIMESTAMPINWINDOW_FIELD_NUMBER: _builtins.int
- MESSAGECOUNT_FIELD_NUMBER: _builtins.int
- NONHISTORYRECEIVERS_FIELD_NUMBER: _builtins.int
- OLDESTMESSAGETIMESTAMPINBUNDLE_FIELD_NUMBER: _builtins.int
- oldestMessageTimestampInWindow: _builtins.int
- messageCount: _builtins.int
- oldestMessageTimestampInBundle: _builtins.int
- @_builtins.property
- def historyReceivers(self) -> _containers.RepeatedScalarFieldContainer[_builtins.str]: ...
- @_builtins.property
- def nonHistoryReceivers(self) -> _containers.RepeatedScalarFieldContainer[_builtins.str]: ...
+ class _MediaType:
+ ValueType = _typing.NewType("ValueType", _builtins.int)
+ V: _TypeAlias = ValueType # noqa: Y015
+
+ class _MediaTypeEnumTypeWrapper(_enum_type_wrapper._EnumTypeWrapper[Message.BCallMessage._MediaType.ValueType], _builtins.type):
+ DESCRIPTOR: _descriptor.EnumDescriptor
+ UNKNOWN: Message.BCallMessage._MediaType.ValueType # 0
+ AUDIO: Message.BCallMessage._MediaType.ValueType # 1
+ VIDEO: Message.BCallMessage._MediaType.ValueType # 2
+
+ class MediaType(_MediaType, metaclass=_MediaTypeEnumTypeWrapper): ...
+ UNKNOWN: Message.BCallMessage.MediaType.ValueType # 0
+ AUDIO: Message.BCallMessage.MediaType.ValueType # 1
+ VIDEO: Message.BCallMessage.MediaType.ValueType # 2
+
+ SESSIONID_FIELD_NUMBER: _builtins.int
+ MEDIATYPE_FIELD_NUMBER: _builtins.int
+ MASTERKEY_FIELD_NUMBER: _builtins.int
+ CAPTION_FIELD_NUMBER: _builtins.int
+ sessionId: _builtins.str
+ mediaType: Global___Message.BCallMessage.MediaType.ValueType
+ masterKey: _builtins.bytes
+ caption: _builtins.str
def __init__(
self,
*,
- historyReceivers: _abc.Iterable[_builtins.str] | None = ...,
- oldestMessageTimestampInWindow: _builtins.int | None = ...,
- messageCount: _builtins.int | None = ...,
- nonHistoryReceivers: _abc.Iterable[_builtins.str] | None = ...,
- oldestMessageTimestampInBundle: _builtins.int | None = ...,
+ sessionId: _builtins.str | None = ...,
+ mediaType: Global___Message.BCallMessage.MediaType.ValueType | None = ...,
+ masterKey: _builtins.bytes | None = ...,
+ caption: _builtins.str | None = ...,
) -> None: ...
- _HasFieldArgType: _TypeAlias = _typing.Literal["messageCount", b"messageCount", "oldestMessageTimestampInBundle", b"oldestMessageTimestampInBundle", "oldestMessageTimestampInWindow", b"oldestMessageTimestampInWindow"] # noqa: Y015
+ _HasFieldArgType: _TypeAlias = _typing.Literal["caption", b"caption", "masterKey", b"masterKey", "mediaType", b"mediaType", "sessionId", b"sessionId"] # noqa: Y015
def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ...
- _ClearFieldArgType: _TypeAlias = _typing.Literal["historyReceivers", b"historyReceivers", "messageCount", b"messageCount", "nonHistoryReceivers", b"nonHistoryReceivers", "oldestMessageTimestampInBundle", b"oldestMessageTimestampInBundle", "oldestMessageTimestampInWindow", b"oldestMessageTimestampInWindow"] # noqa: Y015
+ _ClearFieldArgType: _TypeAlias = _typing.Literal["caption", b"caption", "masterKey", b"masterKey", "mediaType", b"mediaType", "sessionId", b"sessionId"] # noqa: Y015
def ClearField(self, field_name: _ClearFieldArgType) -> None: ...
@_typing.final
- class MessageHistoryNotice(_message.Message):
+ class BotHistoryShareSyncMetadata(_message.Message):
DESCRIPTOR: _descriptor.Descriptor
- CONTEXTINFO_FIELD_NUMBER: _builtins.int
- MESSAGEHISTORYMETADATA_FIELD_NUMBER: _builtins.int
+ BOTJID_FIELD_NUMBER: _builtins.int
+ HISTORYSHARECUTOFFTIMESTAMP_FIELD_NUMBER: _builtins.int
+ HISTORYSHAREMESSAGES_FIELD_NUMBER: _builtins.int
+ botJid: _builtins.str
+ historyShareCutoffTimestamp: _builtins.int
@_builtins.property
- def contextInfo(self) -> Global___ContextInfo: ...
- @_builtins.property
- def messageHistoryMetadata(self) -> Global___Message.MessageHistoryMetadata: ...
+ def historyShareMessages(self) -> _containers.RepeatedCompositeFieldContainer[Global___Message.HistoryShareMessageEntry]: ...
def __init__(
self,
*,
- contextInfo: Global___ContextInfo | None = ...,
- messageHistoryMetadata: Global___Message.MessageHistoryMetadata | None = ...,
+ botJid: _builtins.str | None = ...,
+ historyShareCutoffTimestamp: _builtins.int | None = ...,
+ historyShareMessages: _abc.Iterable[Global___Message.HistoryShareMessageEntry] | None = ...,
) -> None: ...
- _HasFieldArgType: _TypeAlias = _typing.Literal["contextInfo", b"contextInfo", "messageHistoryMetadata", b"messageHistoryMetadata"] # noqa: Y015
+ _HasFieldArgType: _TypeAlias = _typing.Literal["botJid", b"botJid", "historyShareCutoffTimestamp", b"historyShareCutoffTimestamp"] # noqa: Y015
def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ...
- _ClearFieldArgType: _TypeAlias = _typing.Literal["contextInfo", b"contextInfo", "messageHistoryMetadata", b"messageHistoryMetadata"] # noqa: Y015
+ _ClearFieldArgType: _TypeAlias = _typing.Literal["botJid", b"botJid", "historyShareCutoffTimestamp", b"historyShareCutoffTimestamp", "historyShareMessages", b"historyShareMessages"] # noqa: Y015
def ClearField(self, field_name: _ClearFieldArgType) -> None: ...
@_typing.final
- class NewsletterAdminInviteMessage(_message.Message):
+ class ButtonsMessage(_message.Message):
DESCRIPTOR: _descriptor.Descriptor
- NEWSLETTERJID_FIELD_NUMBER: _builtins.int
- NEWSLETTERNAME_FIELD_NUMBER: _builtins.int
- JPEGTHUMBNAIL_FIELD_NUMBER: _builtins.int
- CAPTION_FIELD_NUMBER: _builtins.int
- INVITEEXPIRATION_FIELD_NUMBER: _builtins.int
+ class _HeaderType:
+ ValueType = _typing.NewType("ValueType", _builtins.int)
+ V: _TypeAlias = ValueType # noqa: Y015
+
+ class _HeaderTypeEnumTypeWrapper(_enum_type_wrapper._EnumTypeWrapper[Message.ButtonsMessage._HeaderType.ValueType], _builtins.type):
+ DESCRIPTOR: _descriptor.EnumDescriptor
+ UNKNOWN: Message.ButtonsMessage._HeaderType.ValueType # 0
+ EMPTY: Message.ButtonsMessage._HeaderType.ValueType # 1
+ TEXT: Message.ButtonsMessage._HeaderType.ValueType # 2
+ DOCUMENT: Message.ButtonsMessage._HeaderType.ValueType # 3
+ IMAGE: Message.ButtonsMessage._HeaderType.ValueType # 4
+ VIDEO: Message.ButtonsMessage._HeaderType.ValueType # 5
+ LOCATION: Message.ButtonsMessage._HeaderType.ValueType # 6
+
+ class HeaderType(_HeaderType, metaclass=_HeaderTypeEnumTypeWrapper): ...
+ UNKNOWN: Message.ButtonsMessage.HeaderType.ValueType # 0
+ EMPTY: Message.ButtonsMessage.HeaderType.ValueType # 1
+ TEXT: Message.ButtonsMessage.HeaderType.ValueType # 2
+ DOCUMENT: Message.ButtonsMessage.HeaderType.ValueType # 3
+ IMAGE: Message.ButtonsMessage.HeaderType.ValueType # 4
+ VIDEO: Message.ButtonsMessage.HeaderType.ValueType # 5
+ LOCATION: Message.ButtonsMessage.HeaderType.ValueType # 6
+
+ @_typing.final
+ class Button(_message.Message):
+ DESCRIPTOR: _descriptor.Descriptor
+
+ class _Type:
+ ValueType = _typing.NewType("ValueType", _builtins.int)
+ V: _TypeAlias = ValueType # noqa: Y015
+
+ class _TypeEnumTypeWrapper(_enum_type_wrapper._EnumTypeWrapper[Message.ButtonsMessage.Button._Type.ValueType], _builtins.type):
+ DESCRIPTOR: _descriptor.EnumDescriptor
+ UNKNOWN: Message.ButtonsMessage.Button._Type.ValueType # 0
+ RESPONSE: Message.ButtonsMessage.Button._Type.ValueType # 1
+ NATIVE_FLOW: Message.ButtonsMessage.Button._Type.ValueType # 2
+
+ class Type(_Type, metaclass=_TypeEnumTypeWrapper): ...
+ UNKNOWN: Message.ButtonsMessage.Button.Type.ValueType # 0
+ RESPONSE: Message.ButtonsMessage.Button.Type.ValueType # 1
+ NATIVE_FLOW: Message.ButtonsMessage.Button.Type.ValueType # 2
+
+ @_typing.final
+ class ButtonText(_message.Message):
+ DESCRIPTOR: _descriptor.Descriptor
+
+ DISPLAYTEXT_FIELD_NUMBER: _builtins.int
+ displayText: _builtins.str
+ def __init__(
+ self,
+ *,
+ displayText: _builtins.str | None = ...,
+ ) -> None: ...
+ _HasFieldArgType: _TypeAlias = _typing.Literal["displayText", b"displayText"] # noqa: Y015
+ def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ...
+ _ClearFieldArgType: _TypeAlias = _typing.Literal["displayText", b"displayText"] # noqa: Y015
+ def ClearField(self, field_name: _ClearFieldArgType) -> None: ...
+
+ @_typing.final
+ class NativeFlowInfo(_message.Message):
+ DESCRIPTOR: _descriptor.Descriptor
+
+ NAME_FIELD_NUMBER: _builtins.int
+ PARAMSJSON_FIELD_NUMBER: _builtins.int
+ name: _builtins.str
+ paramsJson: _builtins.str
+ def __init__(
+ self,
+ *,
+ name: _builtins.str | None = ...,
+ paramsJson: _builtins.str | None = ...,
+ ) -> None: ...
+ _HasFieldArgType: _TypeAlias = _typing.Literal["name", b"name", "paramsJson", b"paramsJson"] # noqa: Y015
+ def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ...
+ _ClearFieldArgType: _TypeAlias = _typing.Literal["name", b"name", "paramsJson", b"paramsJson"] # noqa: Y015
+ def ClearField(self, field_name: _ClearFieldArgType) -> None: ...
+
+ BUTTONID_FIELD_NUMBER: _builtins.int
+ BUTTONTEXT_FIELD_NUMBER: _builtins.int
+ TYPE_FIELD_NUMBER: _builtins.int
+ NATIVEFLOWINFO_FIELD_NUMBER: _builtins.int
+ buttonId: _builtins.str
+ type: Global___Message.ButtonsMessage.Button.Type.ValueType
+ @_builtins.property
+ def buttonText(self) -> Global___Message.ButtonsMessage.Button.ButtonText: ...
+ @_builtins.property
+ def nativeFlowInfo(self) -> Global___Message.ButtonsMessage.Button.NativeFlowInfo: ...
+ def __init__(
+ self,
+ *,
+ buttonId: _builtins.str | None = ...,
+ buttonText: Global___Message.ButtonsMessage.Button.ButtonText | None = ...,
+ type: Global___Message.ButtonsMessage.Button.Type.ValueType | None = ...,
+ nativeFlowInfo: Global___Message.ButtonsMessage.Button.NativeFlowInfo | None = ...,
+ ) -> None: ...
+ _HasFieldArgType: _TypeAlias = _typing.Literal["buttonId", b"buttonId", "buttonText", b"buttonText", "nativeFlowInfo", b"nativeFlowInfo", "type", b"type"] # noqa: Y015
+ def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ...
+ _ClearFieldArgType: _TypeAlias = _typing.Literal["buttonId", b"buttonId", "buttonText", b"buttonText", "nativeFlowInfo", b"nativeFlowInfo", "type", b"type"] # noqa: Y015
+ def ClearField(self, field_name: _ClearFieldArgType) -> None: ...
+
+ CONTENTTEXT_FIELD_NUMBER: _builtins.int
+ FOOTERTEXT_FIELD_NUMBER: _builtins.int
CONTEXTINFO_FIELD_NUMBER: _builtins.int
- newsletterJid: _builtins.str
- newsletterName: _builtins.str
- jpegThumbnail: _builtins.bytes
- caption: _builtins.str
- inviteExpiration: _builtins.int
+ BUTTONS_FIELD_NUMBER: _builtins.int
+ HEADERTYPE_FIELD_NUMBER: _builtins.int
+ TEXT_FIELD_NUMBER: _builtins.int
+ DOCUMENTMESSAGE_FIELD_NUMBER: _builtins.int
+ IMAGEMESSAGE_FIELD_NUMBER: _builtins.int
+ VIDEOMESSAGE_FIELD_NUMBER: _builtins.int
+ LOCATIONMESSAGE_FIELD_NUMBER: _builtins.int
+ contentText: _builtins.str
+ footerText: _builtins.str
+ headerType: Global___Message.ButtonsMessage.HeaderType.ValueType
+ text: _builtins.str
@_builtins.property
def contextInfo(self) -> Global___ContextInfo: ...
+ @_builtins.property
+ def buttons(self) -> _containers.RepeatedCompositeFieldContainer[Global___Message.ButtonsMessage.Button]: ...
+ @_builtins.property
+ def documentMessage(self) -> Global___Message.DocumentMessage: ...
+ @_builtins.property
+ def imageMessage(self) -> Global___Message.ImageMessage: ...
+ @_builtins.property
+ def videoMessage(self) -> Global___Message.VideoMessage: ...
+ @_builtins.property
+ def locationMessage(self) -> Global___Message.LocationMessage: ...
def __init__(
self,
*,
- newsletterJid: _builtins.str | None = ...,
- newsletterName: _builtins.str | None = ...,
- jpegThumbnail: _builtins.bytes | None = ...,
- caption: _builtins.str | None = ...,
- inviteExpiration: _builtins.int | None = ...,
+ contentText: _builtins.str | None = ...,
+ footerText: _builtins.str | None = ...,
contextInfo: Global___ContextInfo | None = ...,
+ buttons: _abc.Iterable[Global___Message.ButtonsMessage.Button] | None = ...,
+ headerType: Global___Message.ButtonsMessage.HeaderType.ValueType | None = ...,
+ text: _builtins.str | None = ...,
+ documentMessage: Global___Message.DocumentMessage | None = ...,
+ imageMessage: Global___Message.ImageMessage | None = ...,
+ videoMessage: Global___Message.VideoMessage | None = ...,
+ locationMessage: Global___Message.LocationMessage | None = ...,
) -> None: ...
- _HasFieldArgType: _TypeAlias = _typing.Literal["caption", b"caption", "contextInfo", b"contextInfo", "inviteExpiration", b"inviteExpiration", "jpegThumbnail", b"jpegThumbnail", "newsletterJid", b"newsletterJid", "newsletterName", b"newsletterName"] # noqa: Y015
+ _HasFieldArgType: _TypeAlias = _typing.Literal["contentText", b"contentText", "contextInfo", b"contextInfo", "documentMessage", b"documentMessage", "footerText", b"footerText", "header", b"header", "headerType", b"headerType", "imageMessage", b"imageMessage", "locationMessage", b"locationMessage", "text", b"text", "videoMessage", b"videoMessage"] # noqa: Y015
def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ...
- _ClearFieldArgType: _TypeAlias = _typing.Literal["caption", b"caption", "contextInfo", b"contextInfo", "inviteExpiration", b"inviteExpiration", "jpegThumbnail", b"jpegThumbnail", "newsletterJid", b"newsletterJid", "newsletterName", b"newsletterName"] # noqa: Y015
+ _ClearFieldArgType: _TypeAlias = _typing.Literal["buttons", b"buttons", "contentText", b"contentText", "contextInfo", b"contextInfo", "documentMessage", b"documentMessage", "footerText", b"footerText", "header", b"header", "headerType", b"headerType", "imageMessage", b"imageMessage", "locationMessage", b"locationMessage", "text", b"text", "videoMessage", b"videoMessage"] # noqa: Y015
def ClearField(self, field_name: _ClearFieldArgType) -> None: ...
+ _WhichOneofReturnType_header: _TypeAlias = _typing.Literal["text", "documentMessage", "imageMessage", "videoMessage", "locationMessage"] # noqa: Y015
+ _WhichOneofArgType_header: _TypeAlias = _typing.Literal["header", b"header"] # noqa: Y015
+ def WhichOneof(self, oneof_group: _WhichOneofArgType_header) -> _WhichOneofReturnType_header | None: ...
@_typing.final
- class NewsletterFollowerInviteMessage(_message.Message):
+ class ButtonsResponseMessage(_message.Message):
DESCRIPTOR: _descriptor.Descriptor
- NEWSLETTERJID_FIELD_NUMBER: _builtins.int
- NEWSLETTERNAME_FIELD_NUMBER: _builtins.int
- JPEGTHUMBNAIL_FIELD_NUMBER: _builtins.int
- CAPTION_FIELD_NUMBER: _builtins.int
+ class _Type:
+ ValueType = _typing.NewType("ValueType", _builtins.int)
+ V: _TypeAlias = ValueType # noqa: Y015
+
+ class _TypeEnumTypeWrapper(_enum_type_wrapper._EnumTypeWrapper[Message.ButtonsResponseMessage._Type.ValueType], _builtins.type):
+ DESCRIPTOR: _descriptor.EnumDescriptor
+ UNKNOWN: Message.ButtonsResponseMessage._Type.ValueType # 0
+ DISPLAY_TEXT: Message.ButtonsResponseMessage._Type.ValueType # 1
+
+ class Type(_Type, metaclass=_TypeEnumTypeWrapper): ...
+ UNKNOWN: Message.ButtonsResponseMessage.Type.ValueType # 0
+ DISPLAY_TEXT: Message.ButtonsResponseMessage.Type.ValueType # 1
+
+ SELECTEDBUTTONID_FIELD_NUMBER: _builtins.int
CONTEXTINFO_FIELD_NUMBER: _builtins.int
- newsletterJid: _builtins.str
- newsletterName: _builtins.str
- jpegThumbnail: _builtins.bytes
- caption: _builtins.str
+ TYPE_FIELD_NUMBER: _builtins.int
+ SELECTEDDISPLAYTEXT_FIELD_NUMBER: _builtins.int
+ selectedButtonId: _builtins.str
+ type: Global___Message.ButtonsResponseMessage.Type.ValueType
+ selectedDisplayText: _builtins.str
@_builtins.property
def contextInfo(self) -> Global___ContextInfo: ...
def __init__(
self,
*,
- newsletterJid: _builtins.str | None = ...,
- newsletterName: _builtins.str | None = ...,
- jpegThumbnail: _builtins.bytes | None = ...,
- caption: _builtins.str | None = ...,
+ selectedButtonId: _builtins.str | None = ...,
contextInfo: Global___ContextInfo | None = ...,
+ type: Global___Message.ButtonsResponseMessage.Type.ValueType | None = ...,
+ selectedDisplayText: _builtins.str | None = ...,
) -> None: ...
- _HasFieldArgType: _TypeAlias = _typing.Literal["caption", b"caption", "contextInfo", b"contextInfo", "jpegThumbnail", b"jpegThumbnail", "newsletterJid", b"newsletterJid", "newsletterName", b"newsletterName"] # noqa: Y015
+ _HasFieldArgType: _TypeAlias = _typing.Literal["contextInfo", b"contextInfo", "response", b"response", "selectedButtonId", b"selectedButtonId", "selectedDisplayText", b"selectedDisplayText", "type", b"type"] # noqa: Y015
def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ...
- _ClearFieldArgType: _TypeAlias = _typing.Literal["caption", b"caption", "contextInfo", b"contextInfo", "jpegThumbnail", b"jpegThumbnail", "newsletterJid", b"newsletterJid", "newsletterName", b"newsletterName"] # noqa: Y015
+ _ClearFieldArgType: _TypeAlias = _typing.Literal["contextInfo", b"contextInfo", "response", b"response", "selectedButtonId", b"selectedButtonId", "selectedDisplayText", b"selectedDisplayText", "type", b"type"] # noqa: Y015
def ClearField(self, field_name: _ClearFieldArgType) -> None: ...
+ _WhichOneofReturnType_response: _TypeAlias = _typing.Literal["selectedDisplayText"] # noqa: Y015
+ _WhichOneofArgType_response: _TypeAlias = _typing.Literal["response", b"response"] # noqa: Y015
+ def WhichOneof(self, oneof_group: _WhichOneofArgType_response) -> _WhichOneofReturnType_response | None: ...
@_typing.final
- class OrderMessage(_message.Message):
+ class Call(_message.Message):
DESCRIPTOR: _descriptor.Descriptor
- class _OrderStatus:
+ CALLKEY_FIELD_NUMBER: _builtins.int
+ CONVERSIONSOURCE_FIELD_NUMBER: _builtins.int
+ CONVERSIONDATA_FIELD_NUMBER: _builtins.int
+ CONVERSIONDELAYSECONDS_FIELD_NUMBER: _builtins.int
+ CTWASIGNALS_FIELD_NUMBER: _builtins.int
+ CTWAPAYLOAD_FIELD_NUMBER: _builtins.int
+ CONTEXTINFO_FIELD_NUMBER: _builtins.int
+ NATIVEFLOWCALLBUTTONPAYLOAD_FIELD_NUMBER: _builtins.int
+ DEEPLINKPAYLOAD_FIELD_NUMBER: _builtins.int
+ MESSAGECONTEXTINFO_FIELD_NUMBER: _builtins.int
+ CALLENTRYPOINT_FIELD_NUMBER: _builtins.int
+ CALLREASON_FIELD_NUMBER: _builtins.int
+ callKey: _builtins.bytes
+ conversionSource: _builtins.str
+ conversionData: _builtins.bytes
+ conversionDelaySeconds: _builtins.int
+ ctwaSignals: _builtins.str
+ ctwaPayload: _builtins.bytes
+ nativeFlowCallButtonPayload: _builtins.str
+ deeplinkPayload: _builtins.str
+ callEntryPoint: _builtins.int
+ callReason: _builtins.str
+ @_builtins.property
+ def contextInfo(self) -> Global___ContextInfo: ...
+ @_builtins.property
+ def messageContextInfo(self) -> Global___MessageContextInfo: ...
+ def __init__(
+ self,
+ *,
+ callKey: _builtins.bytes | None = ...,
+ conversionSource: _builtins.str | None = ...,
+ conversionData: _builtins.bytes | None = ...,
+ conversionDelaySeconds: _builtins.int | None = ...,
+ ctwaSignals: _builtins.str | None = ...,
+ ctwaPayload: _builtins.bytes | None = ...,
+ contextInfo: Global___ContextInfo | None = ...,
+ nativeFlowCallButtonPayload: _builtins.str | None = ...,
+ deeplinkPayload: _builtins.str | None = ...,
+ messageContextInfo: Global___MessageContextInfo | None = ...,
+ callEntryPoint: _builtins.int | None = ...,
+ callReason: _builtins.str | None = ...,
+ ) -> None: ...
+ _HasFieldArgType: _TypeAlias = _typing.Literal["callEntryPoint", b"callEntryPoint", "callKey", b"callKey", "callReason", b"callReason", "contextInfo", b"contextInfo", "conversionData", b"conversionData", "conversionDelaySeconds", b"conversionDelaySeconds", "conversionSource", b"conversionSource", "ctwaPayload", b"ctwaPayload", "ctwaSignals", b"ctwaSignals", "deeplinkPayload", b"deeplinkPayload", "messageContextInfo", b"messageContextInfo", "nativeFlowCallButtonPayload", b"nativeFlowCallButtonPayload"] # noqa: Y015
+ def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ...
+ _ClearFieldArgType: _TypeAlias = _typing.Literal["callEntryPoint", b"callEntryPoint", "callKey", b"callKey", "callReason", b"callReason", "contextInfo", b"contextInfo", "conversionData", b"conversionData", "conversionDelaySeconds", b"conversionDelaySeconds", "conversionSource", b"conversionSource", "ctwaPayload", b"ctwaPayload", "ctwaSignals", b"ctwaSignals", "deeplinkPayload", b"deeplinkPayload", "messageContextInfo", b"messageContextInfo", "nativeFlowCallButtonPayload", b"nativeFlowCallButtonPayload"] # noqa: Y015
+ def ClearField(self, field_name: _ClearFieldArgType) -> None: ...
+
+ @_typing.final
+ class CallLogMessage(_message.Message):
+ DESCRIPTOR: _descriptor.Descriptor
+
+ class _CallOutcome:
ValueType = _typing.NewType("ValueType", _builtins.int)
V: _TypeAlias = ValueType # noqa: Y015
- class _OrderStatusEnumTypeWrapper(_enum_type_wrapper._EnumTypeWrapper[Message.OrderMessage._OrderStatus.ValueType], _builtins.type):
+ class _CallOutcomeEnumTypeWrapper(_enum_type_wrapper._EnumTypeWrapper[Message.CallLogMessage._CallOutcome.ValueType], _builtins.type):
DESCRIPTOR: _descriptor.EnumDescriptor
- INQUIRY: Message.OrderMessage._OrderStatus.ValueType # 1
- ACCEPTED: Message.OrderMessage._OrderStatus.ValueType # 2
- DECLINED: Message.OrderMessage._OrderStatus.ValueType # 3
+ CONNECTED: Message.CallLogMessage._CallOutcome.ValueType # 0
+ MISSED: Message.CallLogMessage._CallOutcome.ValueType # 1
+ FAILED: Message.CallLogMessage._CallOutcome.ValueType # 2
+ REJECTED: Message.CallLogMessage._CallOutcome.ValueType # 3
+ ACCEPTED_ELSEWHERE: Message.CallLogMessage._CallOutcome.ValueType # 4
+ ONGOING: Message.CallLogMessage._CallOutcome.ValueType # 5
+ SILENCED_BY_DND: Message.CallLogMessage._CallOutcome.ValueType # 6
+ SILENCED_UNKNOWN_CALLER: Message.CallLogMessage._CallOutcome.ValueType # 7
- class OrderStatus(_OrderStatus, metaclass=_OrderStatusEnumTypeWrapper): ...
- INQUIRY: Message.OrderMessage.OrderStatus.ValueType # 1
- ACCEPTED: Message.OrderMessage.OrderStatus.ValueType # 2
- DECLINED: Message.OrderMessage.OrderStatus.ValueType # 3
+ class CallOutcome(_CallOutcome, metaclass=_CallOutcomeEnumTypeWrapper): ...
+ CONNECTED: Message.CallLogMessage.CallOutcome.ValueType # 0
+ MISSED: Message.CallLogMessage.CallOutcome.ValueType # 1
+ FAILED: Message.CallLogMessage.CallOutcome.ValueType # 2
+ REJECTED: Message.CallLogMessage.CallOutcome.ValueType # 3
+ ACCEPTED_ELSEWHERE: Message.CallLogMessage.CallOutcome.ValueType # 4
+ ONGOING: Message.CallLogMessage.CallOutcome.ValueType # 5
+ SILENCED_BY_DND: Message.CallLogMessage.CallOutcome.ValueType # 6
+ SILENCED_UNKNOWN_CALLER: Message.CallLogMessage.CallOutcome.ValueType # 7
- class _OrderSurface:
+ class _CallType:
ValueType = _typing.NewType("ValueType", _builtins.int)
V: _TypeAlias = ValueType # noqa: Y015
- class _OrderSurfaceEnumTypeWrapper(_enum_type_wrapper._EnumTypeWrapper[Message.OrderMessage._OrderSurface.ValueType], _builtins.type):
+ class _CallTypeEnumTypeWrapper(_enum_type_wrapper._EnumTypeWrapper[Message.CallLogMessage._CallType.ValueType], _builtins.type):
DESCRIPTOR: _descriptor.EnumDescriptor
- CATALOG: Message.OrderMessage._OrderSurface.ValueType # 1
+ REGULAR: Message.CallLogMessage._CallType.ValueType # 0
+ SCHEDULED_CALL: Message.CallLogMessage._CallType.ValueType # 1
+ VOICE_CHAT: Message.CallLogMessage._CallType.ValueType # 2
- class OrderSurface(_OrderSurface, metaclass=_OrderSurfaceEnumTypeWrapper): ...
- CATALOG: Message.OrderMessage.OrderSurface.ValueType # 1
+ class CallType(_CallType, metaclass=_CallTypeEnumTypeWrapper): ...
+ REGULAR: Message.CallLogMessage.CallType.ValueType # 0
+ SCHEDULED_CALL: Message.CallLogMessage.CallType.ValueType # 1
+ VOICE_CHAT: Message.CallLogMessage.CallType.ValueType # 2
- ORDERID_FIELD_NUMBER: _builtins.int
- THUMBNAIL_FIELD_NUMBER: _builtins.int
- ITEMCOUNT_FIELD_NUMBER: _builtins.int
- STATUS_FIELD_NUMBER: _builtins.int
- SURFACE_FIELD_NUMBER: _builtins.int
- MESSAGE_FIELD_NUMBER: _builtins.int
- ORDERTITLE_FIELD_NUMBER: _builtins.int
- SELLERJID_FIELD_NUMBER: _builtins.int
- TOKEN_FIELD_NUMBER: _builtins.int
- TOTALAMOUNT1000_FIELD_NUMBER: _builtins.int
- TOTALCURRENCYCODE_FIELD_NUMBER: _builtins.int
- CONTEXTINFO_FIELD_NUMBER: _builtins.int
- MESSAGEVERSION_FIELD_NUMBER: _builtins.int
- ORDERREQUESTMESSAGEID_FIELD_NUMBER: _builtins.int
- CATALOGTYPE_FIELD_NUMBER: _builtins.int
- orderId: _builtins.str
- thumbnail: _builtins.bytes
- itemCount: _builtins.int
- status: Global___Message.OrderMessage.OrderStatus.ValueType
- surface: Global___Message.OrderMessage.OrderSurface.ValueType
- message: _builtins.str
- orderTitle: _builtins.str
- sellerJid: _builtins.str
- token: _builtins.str
- totalAmount1000: _builtins.int
- totalCurrencyCode: _builtins.str
- messageVersion: _builtins.int
- catalogType: _builtins.str
- @_builtins.property
- def contextInfo(self) -> Global___ContextInfo: ...
+ @_typing.final
+ class CallParticipant(_message.Message):
+ DESCRIPTOR: _descriptor.Descriptor
+
+ JID_FIELD_NUMBER: _builtins.int
+ CALLOUTCOME_FIELD_NUMBER: _builtins.int
+ jid: _builtins.str
+ callOutcome: Global___Message.CallLogMessage.CallOutcome.ValueType
+ def __init__(
+ self,
+ *,
+ jid: _builtins.str | None = ...,
+ callOutcome: Global___Message.CallLogMessage.CallOutcome.ValueType | None = ...,
+ ) -> None: ...
+ _HasFieldArgType: _TypeAlias = _typing.Literal["callOutcome", b"callOutcome", "jid", b"jid"] # noqa: Y015
+ def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ...
+ _ClearFieldArgType: _TypeAlias = _typing.Literal["callOutcome", b"callOutcome", "jid", b"jid"] # noqa: Y015
+ def ClearField(self, field_name: _ClearFieldArgType) -> None: ...
+
+ ISVIDEO_FIELD_NUMBER: _builtins.int
+ CALLOUTCOME_FIELD_NUMBER: _builtins.int
+ DURATIONSECS_FIELD_NUMBER: _builtins.int
+ CALLTYPE_FIELD_NUMBER: _builtins.int
+ PARTICIPANTS_FIELD_NUMBER: _builtins.int
+ isVideo: _builtins.bool
+ callOutcome: Global___Message.CallLogMessage.CallOutcome.ValueType
+ durationSecs: _builtins.int
+ callType: Global___Message.CallLogMessage.CallType.ValueType
@_builtins.property
- def orderRequestMessageId(self) -> Global___MessageKey: ...
+ def participants(self) -> _containers.RepeatedCompositeFieldContainer[Global___Message.CallLogMessage.CallParticipant]: ...
def __init__(
self,
*,
- orderId: _builtins.str | None = ...,
- thumbnail: _builtins.bytes | None = ...,
- itemCount: _builtins.int | None = ...,
- status: Global___Message.OrderMessage.OrderStatus.ValueType | None = ...,
- surface: Global___Message.OrderMessage.OrderSurface.ValueType | None = ...,
- message: _builtins.str | None = ...,
- orderTitle: _builtins.str | None = ...,
- sellerJid: _builtins.str | None = ...,
- token: _builtins.str | None = ...,
- totalAmount1000: _builtins.int | None = ...,
- totalCurrencyCode: _builtins.str | None = ...,
- contextInfo: Global___ContextInfo | None = ...,
- messageVersion: _builtins.int | None = ...,
- orderRequestMessageId: Global___MessageKey | None = ...,
- catalogType: _builtins.str | None = ...,
+ isVideo: _builtins.bool | None = ...,
+ callOutcome: Global___Message.CallLogMessage.CallOutcome.ValueType | None = ...,
+ durationSecs: _builtins.int | None = ...,
+ callType: Global___Message.CallLogMessage.CallType.ValueType | None = ...,
+ participants: _abc.Iterable[Global___Message.CallLogMessage.CallParticipant] | None = ...,
) -> None: ...
- _HasFieldArgType: _TypeAlias = _typing.Literal["catalogType", b"catalogType", "contextInfo", b"contextInfo", "itemCount", b"itemCount", "message", b"message", "messageVersion", b"messageVersion", "orderId", b"orderId", "orderRequestMessageId", b"orderRequestMessageId", "orderTitle", b"orderTitle", "sellerJid", b"sellerJid", "status", b"status", "surface", b"surface", "thumbnail", b"thumbnail", "token", b"token", "totalAmount1000", b"totalAmount1000", "totalCurrencyCode", b"totalCurrencyCode"] # noqa: Y015
+ _HasFieldArgType: _TypeAlias = _typing.Literal["callOutcome", b"callOutcome", "callType", b"callType", "durationSecs", b"durationSecs", "isVideo", b"isVideo"] # noqa: Y015
def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ...
- _ClearFieldArgType: _TypeAlias = _typing.Literal["catalogType", b"catalogType", "contextInfo", b"contextInfo", "itemCount", b"itemCount", "message", b"message", "messageVersion", b"messageVersion", "orderId", b"orderId", "orderRequestMessageId", b"orderRequestMessageId", "orderTitle", b"orderTitle", "sellerJid", b"sellerJid", "status", b"status", "surface", b"surface", "thumbnail", b"thumbnail", "token", b"token", "totalAmount1000", b"totalAmount1000", "totalCurrencyCode", b"totalCurrencyCode"] # noqa: Y015
+ _ClearFieldArgType: _TypeAlias = _typing.Literal["callOutcome", b"callOutcome", "callType", b"callType", "durationSecs", b"durationSecs", "isVideo", b"isVideo", "participants", b"participants"] # noqa: Y015
def ClearField(self, field_name: _ClearFieldArgType) -> None: ...
@_typing.final
- class PaymentExtendedMetadata(_message.Message):
+ class CancelPaymentRequestMessage(_message.Message):
DESCRIPTOR: _descriptor.Descriptor
- TYPE_FIELD_NUMBER: _builtins.int
- PLATFORM_FIELD_NUMBER: _builtins.int
- type: _builtins.int
- platform: _builtins.str
+ KEY_FIELD_NUMBER: _builtins.int
+ @_builtins.property
+ def key(self) -> Global___MessageKey: ...
def __init__(
self,
*,
- type: _builtins.int | None = ...,
- platform: _builtins.str | None = ...,
+ key: Global___MessageKey | None = ...,
) -> None: ...
- _HasFieldArgType: _TypeAlias = _typing.Literal["platform", b"platform", "type", b"type"] # noqa: Y015
+ _HasFieldArgType: _TypeAlias = _typing.Literal["key", b"key"] # noqa: Y015
def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ...
- _ClearFieldArgType: _TypeAlias = _typing.Literal["platform", b"platform", "type", b"type"] # noqa: Y015
+ _ClearFieldArgType: _TypeAlias = _typing.Literal["key", b"key"] # noqa: Y015
def ClearField(self, field_name: _ClearFieldArgType) -> None: ...
@_typing.final
- class PaymentInviteMessage(_message.Message):
+ class Chat(_message.Message):
DESCRIPTOR: _descriptor.Descriptor
- class _InviteType:
- ValueType = _typing.NewType("ValueType", _builtins.int)
- V: _TypeAlias = ValueType # noqa: Y015
-
- class _InviteTypeEnumTypeWrapper(_enum_type_wrapper._EnumTypeWrapper[Message.PaymentInviteMessage._InviteType.ValueType], _builtins.type):
- DESCRIPTOR: _descriptor.EnumDescriptor
- DEFAULT: Message.PaymentInviteMessage._InviteType.ValueType # 0
- MAPPER: Message.PaymentInviteMessage._InviteType.ValueType # 1
-
- class InviteType(_InviteType, metaclass=_InviteTypeEnumTypeWrapper): ...
- DEFAULT: Message.PaymentInviteMessage.InviteType.ValueType # 0
- MAPPER: Message.PaymentInviteMessage.InviteType.ValueType # 1
-
- class _ServiceType:
- ValueType = _typing.NewType("ValueType", _builtins.int)
- V: _TypeAlias = ValueType # noqa: Y015
-
- class _ServiceTypeEnumTypeWrapper(_enum_type_wrapper._EnumTypeWrapper[Message.PaymentInviteMessage._ServiceType.ValueType], _builtins.type):
- DESCRIPTOR: _descriptor.EnumDescriptor
- UNKNOWN: Message.PaymentInviteMessage._ServiceType.ValueType # 0
- FBPAY: Message.PaymentInviteMessage._ServiceType.ValueType # 1
- NOVI: Message.PaymentInviteMessage._ServiceType.ValueType # 2
- UPI: Message.PaymentInviteMessage._ServiceType.ValueType # 3
-
- class ServiceType(_ServiceType, metaclass=_ServiceTypeEnumTypeWrapper): ...
- UNKNOWN: Message.PaymentInviteMessage.ServiceType.ValueType # 0
- FBPAY: Message.PaymentInviteMessage.ServiceType.ValueType # 1
- NOVI: Message.PaymentInviteMessage.ServiceType.ValueType # 2
- UPI: Message.PaymentInviteMessage.ServiceType.ValueType # 3
-
- SERVICETYPE_FIELD_NUMBER: _builtins.int
- EXPIRYTIMESTAMP_FIELD_NUMBER: _builtins.int
- INCENTIVEELIGIBLE_FIELD_NUMBER: _builtins.int
- REFERRALID_FIELD_NUMBER: _builtins.int
- INVITETYPE_FIELD_NUMBER: _builtins.int
- serviceType: Global___Message.PaymentInviteMessage.ServiceType.ValueType
- expiryTimestamp: _builtins.int
- incentiveEligible: _builtins.bool
- referralId: _builtins.str
- inviteType: Global___Message.PaymentInviteMessage.InviteType.ValueType
+ DISPLAYNAME_FIELD_NUMBER: _builtins.int
+ ID_FIELD_NUMBER: _builtins.int
+ displayName: _builtins.str
+ id: _builtins.str
def __init__(
self,
*,
- serviceType: Global___Message.PaymentInviteMessage.ServiceType.ValueType | None = ...,
- expiryTimestamp: _builtins.int | None = ...,
- incentiveEligible: _builtins.bool | None = ...,
- referralId: _builtins.str | None = ...,
- inviteType: Global___Message.PaymentInviteMessage.InviteType.ValueType | None = ...,
+ displayName: _builtins.str | None = ...,
+ id: _builtins.str | None = ...,
) -> None: ...
- _HasFieldArgType: _TypeAlias = _typing.Literal["expiryTimestamp", b"expiryTimestamp", "incentiveEligible", b"incentiveEligible", "inviteType", b"inviteType", "referralId", b"referralId", "serviceType", b"serviceType"] # noqa: Y015
+ _HasFieldArgType: _TypeAlias = _typing.Literal["displayName", b"displayName", "id", b"id"] # noqa: Y015
def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ...
- _ClearFieldArgType: _TypeAlias = _typing.Literal["expiryTimestamp", b"expiryTimestamp", "incentiveEligible", b"incentiveEligible", "inviteType", b"inviteType", "referralId", b"referralId", "serviceType", b"serviceType"] # noqa: Y015
+ _ClearFieldArgType: _TypeAlias = _typing.Literal["displayName", b"displayName", "id", b"id"] # noqa: Y015
def ClearField(self, field_name: _ClearFieldArgType) -> None: ...
@_typing.final
- class PaymentLinkMetadata(_message.Message):
+ class ChatCustomImageWallpaper(_message.Message):
DESCRIPTOR: _descriptor.Descriptor
- @_typing.final
- class PaymentLinkButton(_message.Message):
- DESCRIPTOR: _descriptor.Descriptor
-
- DISPLAYTEXT_FIELD_NUMBER: _builtins.int
- displayText: _builtins.str
- def __init__(
- self,
- *,
- displayText: _builtins.str | None = ...,
- ) -> None: ...
- _HasFieldArgType: _TypeAlias = _typing.Literal["displayText", b"displayText"] # noqa: Y015
- def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ...
- _ClearFieldArgType: _TypeAlias = _typing.Literal["displayText", b"displayText"] # noqa: Y015
- def ClearField(self, field_name: _ClearFieldArgType) -> None: ...
+ DIRECTPATH_FIELD_NUMBER: _builtins.int
+ MEDIAKEY_FIELD_NUMBER: _builtins.int
+ FILEENCSHA256_FIELD_NUMBER: _builtins.int
+ FILESHA256_FIELD_NUMBER: _builtins.int
+ DIMLEVEL_FIELD_NUMBER: _builtins.int
+ directPath: _builtins.str
+ mediaKey: _builtins.bytes
+ fileEncSha256: _builtins.bytes
+ fileSha256: _builtins.bytes
+ dimLevel: _builtins.float
+ def __init__(
+ self,
+ *,
+ directPath: _builtins.str | None = ...,
+ mediaKey: _builtins.bytes | None = ...,
+ fileEncSha256: _builtins.bytes | None = ...,
+ fileSha256: _builtins.bytes | None = ...,
+ dimLevel: _builtins.float | None = ...,
+ ) -> None: ...
+ _HasFieldArgType: _TypeAlias = _typing.Literal["dimLevel", b"dimLevel", "directPath", b"directPath", "fileEncSha256", b"fileEncSha256", "fileSha256", b"fileSha256", "mediaKey", b"mediaKey"] # noqa: Y015
+ def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ...
+ _ClearFieldArgType: _TypeAlias = _typing.Literal["dimLevel", b"dimLevel", "directPath", b"directPath", "fileEncSha256", b"fileEncSha256", "fileSha256", b"fileSha256", "mediaKey", b"mediaKey"] # noqa: Y015
+ def ClearField(self, field_name: _ClearFieldArgType) -> None: ...
- @_typing.final
- class PaymentLinkHeader(_message.Message):
- DESCRIPTOR: _descriptor.Descriptor
+ @_typing.final
+ class ChatDefaultWallpaper(_message.Message):
+ DESCRIPTOR: _descriptor.Descriptor
- class _PaymentLinkHeaderType:
- ValueType = _typing.NewType("ValueType", _builtins.int)
- V: _TypeAlias = ValueType # noqa: Y015
+ ISDOODLEENABLED_FIELD_NUMBER: _builtins.int
+ isDoodleEnabled: _builtins.bool
+ def __init__(
+ self,
+ *,
+ isDoodleEnabled: _builtins.bool | None = ...,
+ ) -> None: ...
+ _HasFieldArgType: _TypeAlias = _typing.Literal["isDoodleEnabled", b"isDoodleEnabled"] # noqa: Y015
+ def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ...
+ _ClearFieldArgType: _TypeAlias = _typing.Literal["isDoodleEnabled", b"isDoodleEnabled"] # noqa: Y015
+ def ClearField(self, field_name: _ClearFieldArgType) -> None: ...
- class _PaymentLinkHeaderTypeEnumTypeWrapper(_enum_type_wrapper._EnumTypeWrapper[Message.PaymentLinkMetadata.PaymentLinkHeader._PaymentLinkHeaderType.ValueType], _builtins.type):
- DESCRIPTOR: _descriptor.EnumDescriptor
- LINK_PREVIEW: Message.PaymentLinkMetadata.PaymentLinkHeader._PaymentLinkHeaderType.ValueType # 0
- ORDER: Message.PaymentLinkMetadata.PaymentLinkHeader._PaymentLinkHeaderType.ValueType # 1
+ @_typing.final
+ class ChatSolidColorWallpaper(_message.Message):
+ DESCRIPTOR: _descriptor.Descriptor
- class PaymentLinkHeaderType(_PaymentLinkHeaderType, metaclass=_PaymentLinkHeaderTypeEnumTypeWrapper): ...
- LINK_PREVIEW: Message.PaymentLinkMetadata.PaymentLinkHeader.PaymentLinkHeaderType.ValueType # 0
- ORDER: Message.PaymentLinkMetadata.PaymentLinkHeader.PaymentLinkHeaderType.ValueType # 1
+ COLORLIGHT_FIELD_NUMBER: _builtins.int
+ COLORDARK_FIELD_NUMBER: _builtins.int
+ ISDOODLEENABLED_FIELD_NUMBER: _builtins.int
+ colorLight: _builtins.str
+ colorDark: _builtins.str
+ isDoodleEnabled: _builtins.bool
+ def __init__(
+ self,
+ *,
+ colorLight: _builtins.str | None = ...,
+ colorDark: _builtins.str | None = ...,
+ isDoodleEnabled: _builtins.bool | None = ...,
+ ) -> None: ...
+ _HasFieldArgType: _TypeAlias = _typing.Literal["colorDark", b"colorDark", "colorLight", b"colorLight", "isDoodleEnabled", b"isDoodleEnabled"] # noqa: Y015
+ def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ...
+ _ClearFieldArgType: _TypeAlias = _typing.Literal["colorDark", b"colorDark", "colorLight", b"colorLight", "isDoodleEnabled", b"isDoodleEnabled"] # noqa: Y015
+ def ClearField(self, field_name: _ClearFieldArgType) -> None: ...
- HEADERTYPE_FIELD_NUMBER: _builtins.int
- headerType: Global___Message.PaymentLinkMetadata.PaymentLinkHeader.PaymentLinkHeaderType.ValueType
- def __init__(
- self,
- *,
- headerType: Global___Message.PaymentLinkMetadata.PaymentLinkHeader.PaymentLinkHeaderType.ValueType | None = ...,
- ) -> None: ...
- _HasFieldArgType: _TypeAlias = _typing.Literal["headerType", b"headerType"] # noqa: Y015
- def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ...
- _ClearFieldArgType: _TypeAlias = _typing.Literal["headerType", b"headerType"] # noqa: Y015
- def ClearField(self, field_name: _ClearFieldArgType) -> None: ...
+ @_typing.final
+ class ChatStockImageWallpaper(_message.Message):
+ DESCRIPTOR: _descriptor.Descriptor
- @_typing.final
- class PaymentLinkProvider(_message.Message):
- DESCRIPTOR: _descriptor.Descriptor
+ STOCKIMAGEID_FIELD_NUMBER: _builtins.int
+ DIMLEVEL_FIELD_NUMBER: _builtins.int
+ stockImageId: _builtins.str
+ dimLevel: _builtins.float
+ def __init__(
+ self,
+ *,
+ stockImageId: _builtins.str | None = ...,
+ dimLevel: _builtins.float | None = ...,
+ ) -> None: ...
+ _HasFieldArgType: _TypeAlias = _typing.Literal["dimLevel", b"dimLevel", "stockImageId", b"stockImageId"] # noqa: Y015
+ def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ...
+ _ClearFieldArgType: _TypeAlias = _typing.Literal["dimLevel", b"dimLevel", "stockImageId", b"stockImageId"] # noqa: Y015
+ def ClearField(self, field_name: _ClearFieldArgType) -> None: ...
- PARAMSJSON_FIELD_NUMBER: _builtins.int
- paramsJson: _builtins.str
- def __init__(
- self,
- *,
- paramsJson: _builtins.str | None = ...,
- ) -> None: ...
- _HasFieldArgType: _TypeAlias = _typing.Literal["paramsJson", b"paramsJson"] # noqa: Y015
- def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ...
- _ClearFieldArgType: _TypeAlias = _typing.Literal["paramsJson", b"paramsJson"] # noqa: Y015
- def ClearField(self, field_name: _ClearFieldArgType) -> None: ...
+ @_typing.final
+ class ChatThemeSetting(_message.Message):
+ DESCRIPTOR: _descriptor.Descriptor
- BUTTON_FIELD_NUMBER: _builtins.int
- HEADER_FIELD_NUMBER: _builtins.int
- PROVIDER_FIELD_NUMBER: _builtins.int
+ SETTINGTIMESTAMPMS_FIELD_NUMBER: _builtins.int
+ CLEARTHEME_FIELD_NUMBER: _builtins.int
+ COLORSCHEMEID_FIELD_NUMBER: _builtins.int
+ DEFAULTWALLPAPER_FIELD_NUMBER: _builtins.int
+ SOLIDCOLOR_FIELD_NUMBER: _builtins.int
+ STOCKIMAGE_FIELD_NUMBER: _builtins.int
+ CUSTOMIMAGE_FIELD_NUMBER: _builtins.int
+ settingTimestampMs: _builtins.int
+ clearTheme: _builtins.bool
+ colorSchemeId: _builtins.str
@_builtins.property
- def button(self) -> Global___Message.PaymentLinkMetadata.PaymentLinkButton: ...
+ def defaultWallpaper(self) -> Global___Message.ChatDefaultWallpaper: ...
@_builtins.property
- def header(self) -> Global___Message.PaymentLinkMetadata.PaymentLinkHeader: ...
+ def solidColor(self) -> Global___Message.ChatSolidColorWallpaper: ...
@_builtins.property
- def provider(self) -> Global___Message.PaymentLinkMetadata.PaymentLinkProvider: ...
+ def stockImage(self) -> Global___Message.ChatStockImageWallpaper: ...
+ @_builtins.property
+ def customImage(self) -> Global___Message.ChatCustomImageWallpaper: ...
def __init__(
self,
*,
- button: Global___Message.PaymentLinkMetadata.PaymentLinkButton | None = ...,
- header: Global___Message.PaymentLinkMetadata.PaymentLinkHeader | None = ...,
- provider: Global___Message.PaymentLinkMetadata.PaymentLinkProvider | None = ...,
+ settingTimestampMs: _builtins.int | None = ...,
+ clearTheme: _builtins.bool | None = ...,
+ colorSchemeId: _builtins.str | None = ...,
+ defaultWallpaper: Global___Message.ChatDefaultWallpaper | None = ...,
+ solidColor: Global___Message.ChatSolidColorWallpaper | None = ...,
+ stockImage: Global___Message.ChatStockImageWallpaper | None = ...,
+ customImage: Global___Message.ChatCustomImageWallpaper | None = ...,
) -> None: ...
- _HasFieldArgType: _TypeAlias = _typing.Literal["button", b"button", "header", b"header", "provider", b"provider"] # noqa: Y015
+ _HasFieldArgType: _TypeAlias = _typing.Literal["clearTheme", b"clearTheme", "colorSchemeId", b"colorSchemeId", "customImage", b"customImage", "defaultWallpaper", b"defaultWallpaper", "settingTimestampMs", b"settingTimestampMs", "solidColor", b"solidColor", "stockImage", b"stockImage", "wallpaper", b"wallpaper"] # noqa: Y015
def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ...
- _ClearFieldArgType: _TypeAlias = _typing.Literal["button", b"button", "header", b"header", "provider", b"provider"] # noqa: Y015
+ _ClearFieldArgType: _TypeAlias = _typing.Literal["clearTheme", b"clearTheme", "colorSchemeId", b"colorSchemeId", "customImage", b"customImage", "defaultWallpaper", b"defaultWallpaper", "settingTimestampMs", b"settingTimestampMs", "solidColor", b"solidColor", "stockImage", b"stockImage", "wallpaper", b"wallpaper"] # noqa: Y015
def ClearField(self, field_name: _ClearFieldArgType) -> None: ...
+ _WhichOneofReturnType_wallpaper: _TypeAlias = _typing.Literal["defaultWallpaper", "solidColor", "stockImage", "customImage"] # noqa: Y015
+ _WhichOneofArgType_wallpaper: _TypeAlias = _typing.Literal["wallpaper", b"wallpaper"] # noqa: Y015
+ def WhichOneof(self, oneof_group: _WhichOneofArgType_wallpaper) -> _WhichOneofReturnType_wallpaper | None: ...
@_typing.final
- class PaymentReminderMessage(_message.Message):
+ class CloudAPIThreadControlNotification(_message.Message):
DESCRIPTOR: _descriptor.Descriptor
- class _ReminderFrequency:
+ class _CloudAPIThreadControl:
ValueType = _typing.NewType("ValueType", _builtins.int)
V: _TypeAlias = ValueType # noqa: Y015
- class _ReminderFrequencyEnumTypeWrapper(_enum_type_wrapper._EnumTypeWrapper[Message.PaymentReminderMessage._ReminderFrequency.ValueType], _builtins.type):
+ class _CloudAPIThreadControlEnumTypeWrapper(_enum_type_wrapper._EnumTypeWrapper[Message.CloudAPIThreadControlNotification._CloudAPIThreadControl.ValueType], _builtins.type):
DESCRIPTOR: _descriptor.EnumDescriptor
- REMINDER_FREQUENCY_UNKNOWN: Message.PaymentReminderMessage._ReminderFrequency.ValueType # 0
- WEEKLY: Message.PaymentReminderMessage._ReminderFrequency.ValueType # 1
- BI_WEEKLY: Message.PaymentReminderMessage._ReminderFrequency.ValueType # 2
- MONTHLY: Message.PaymentReminderMessage._ReminderFrequency.ValueType # 3
- QUARTERLY: Message.PaymentReminderMessage._ReminderFrequency.ValueType # 4
-
- class ReminderFrequency(_ReminderFrequency, metaclass=_ReminderFrequencyEnumTypeWrapper): ...
- REMINDER_FREQUENCY_UNKNOWN: Message.PaymentReminderMessage.ReminderFrequency.ValueType # 0
- WEEKLY: Message.PaymentReminderMessage.ReminderFrequency.ValueType # 1
- BI_WEEKLY: Message.PaymentReminderMessage.ReminderFrequency.ValueType # 2
- MONTHLY: Message.PaymentReminderMessage.ReminderFrequency.ValueType # 3
- QUARTERLY: Message.PaymentReminderMessage.ReminderFrequency.ValueType # 4
+ UNKNOWN: Message.CloudAPIThreadControlNotification._CloudAPIThreadControl.ValueType # 0
+ CONTROL_PASSED: Message.CloudAPIThreadControlNotification._CloudAPIThreadControl.ValueType # 1
+ CONTROL_TAKEN: Message.CloudAPIThreadControlNotification._CloudAPIThreadControl.ValueType # 2
+ INFO: Message.CloudAPIThreadControlNotification._CloudAPIThreadControl.ValueType # 3
- class _ReminderStatus:
- ValueType = _typing.NewType("ValueType", _builtins.int)
- V: _TypeAlias = ValueType # noqa: Y015
+ class CloudAPIThreadControl(_CloudAPIThreadControl, metaclass=_CloudAPIThreadControlEnumTypeWrapper): ...
+ UNKNOWN: Message.CloudAPIThreadControlNotification.CloudAPIThreadControl.ValueType # 0
+ CONTROL_PASSED: Message.CloudAPIThreadControlNotification.CloudAPIThreadControl.ValueType # 1
+ CONTROL_TAKEN: Message.CloudAPIThreadControlNotification.CloudAPIThreadControl.ValueType # 2
+ INFO: Message.CloudAPIThreadControlNotification.CloudAPIThreadControl.ValueType # 3
- class _ReminderStatusEnumTypeWrapper(_enum_type_wrapper._EnumTypeWrapper[Message.PaymentReminderMessage._ReminderStatus.ValueType], _builtins.type):
- DESCRIPTOR: _descriptor.EnumDescriptor
- REMINDER_STATUS_UNKNOWN: Message.PaymentReminderMessage._ReminderStatus.ValueType # 0
- ACTIVE: Message.PaymentReminderMessage._ReminderStatus.ValueType # 1
- CANCELLED_BY_CREATOR: Message.PaymentReminderMessage._ReminderStatus.ValueType # 2
- STOPPED_BY_RECEIVER: Message.PaymentReminderMessage._ReminderStatus.ValueType # 3
- EXPIRED: Message.PaymentReminderMessage._ReminderStatus.ValueType # 4
- PAID: Message.PaymentReminderMessage._ReminderStatus.ValueType # 5
+ @_typing.final
+ class CloudAPIThreadControlNotificationContent(_message.Message):
+ DESCRIPTOR: _descriptor.Descriptor
- class ReminderStatus(_ReminderStatus, metaclass=_ReminderStatusEnumTypeWrapper): ...
- REMINDER_STATUS_UNKNOWN: Message.PaymentReminderMessage.ReminderStatus.ValueType # 0
- ACTIVE: Message.PaymentReminderMessage.ReminderStatus.ValueType # 1
- CANCELLED_BY_CREATOR: Message.PaymentReminderMessage.ReminderStatus.ValueType # 2
- STOPPED_BY_RECEIVER: Message.PaymentReminderMessage.ReminderStatus.ValueType # 3
- EXPIRED: Message.PaymentReminderMessage.ReminderStatus.ValueType # 4
- PAID: Message.PaymentReminderMessage.ReminderStatus.ValueType # 5
+ HANDOFFNOTIFICATIONTEXT_FIELD_NUMBER: _builtins.int
+ EXTRAJSON_FIELD_NUMBER: _builtins.int
+ handoffNotificationText: _builtins.str
+ extraJson: _builtins.str
+ def __init__(
+ self,
+ *,
+ handoffNotificationText: _builtins.str | None = ...,
+ extraJson: _builtins.str | None = ...,
+ ) -> None: ...
+ _HasFieldArgType: _TypeAlias = _typing.Literal["extraJson", b"extraJson", "handoffNotificationText", b"handoffNotificationText"] # noqa: Y015
+ def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ...
+ _ClearFieldArgType: _TypeAlias = _typing.Literal["extraJson", b"extraJson", "handoffNotificationText", b"handoffNotificationText"] # noqa: Y015
+ def ClearField(self, field_name: _ClearFieldArgType) -> None: ...
- REMINDERID_FIELD_NUMBER: _builtins.int
- INSTANCEID_FIELD_NUMBER: _builtins.int
- DESCRIPTION_FIELD_NUMBER: _builtins.int
- FREQUENCY_FIELD_NUMBER: _builtins.int
STATUS_FIELD_NUMBER: _builtins.int
- PAYEEVPA_FIELD_NUMBER: _builtins.int
- PAYEEJID_FIELD_NUMBER: _builtins.int
- PAYERJID_FIELD_NUMBER: _builtins.int
- AMOUNT_FIELD_NUMBER: _builtins.int
- reminderId: _builtins.str
- instanceId: _builtins.str
- description: _builtins.str
- frequency: Global___Message.PaymentReminderMessage.ReminderFrequency.ValueType
- status: Global___Message.PaymentReminderMessage.ReminderStatus.ValueType
- payeeVpa: _builtins.str
- payeeJid: _builtins.str
- payerJid: _builtins.str
+ SENDERNOTIFICATIONTIMESTAMPMS_FIELD_NUMBER: _builtins.int
+ CONSUMERLID_FIELD_NUMBER: _builtins.int
+ CONSUMERPHONENUMBER_FIELD_NUMBER: _builtins.int
+ NOTIFICATIONCONTENT_FIELD_NUMBER: _builtins.int
+ SHOULDSUPPRESSNOTIFICATION_FIELD_NUMBER: _builtins.int
+ status: Global___Message.CloudAPIThreadControlNotification.CloudAPIThreadControl.ValueType
+ senderNotificationTimestampMs: _builtins.int
+ consumerLid: _builtins.str
+ consumerPhoneNumber: _builtins.str
+ shouldSuppressNotification: _builtins.bool
@_builtins.property
- def amount(self) -> Global___Money: ...
+ def notificationContent(self) -> Global___Message.CloudAPIThreadControlNotification.CloudAPIThreadControlNotificationContent: ...
def __init__(
self,
*,
- reminderId: _builtins.str | None = ...,
- instanceId: _builtins.str | None = ...,
- description: _builtins.str | None = ...,
- frequency: Global___Message.PaymentReminderMessage.ReminderFrequency.ValueType | None = ...,
- status: Global___Message.PaymentReminderMessage.ReminderStatus.ValueType | None = ...,
- payeeVpa: _builtins.str | None = ...,
- payeeJid: _builtins.str | None = ...,
- payerJid: _builtins.str | None = ...,
- amount: Global___Money | None = ...,
+ status: Global___Message.CloudAPIThreadControlNotification.CloudAPIThreadControl.ValueType | None = ...,
+ senderNotificationTimestampMs: _builtins.int | None = ...,
+ consumerLid: _builtins.str | None = ...,
+ consumerPhoneNumber: _builtins.str | None = ...,
+ notificationContent: Global___Message.CloudAPIThreadControlNotification.CloudAPIThreadControlNotificationContent | None = ...,
+ shouldSuppressNotification: _builtins.bool | None = ...,
) -> None: ...
- _HasFieldArgType: _TypeAlias = _typing.Literal["amount", b"amount", "description", b"description", "frequency", b"frequency", "instanceId", b"instanceId", "payeeJid", b"payeeJid", "payeeVpa", b"payeeVpa", "payerJid", b"payerJid", "reminderId", b"reminderId", "status", b"status"] # noqa: Y015
+ _HasFieldArgType: _TypeAlias = _typing.Literal["consumerLid", b"consumerLid", "consumerPhoneNumber", b"consumerPhoneNumber", "notificationContent", b"notificationContent", "senderNotificationTimestampMs", b"senderNotificationTimestampMs", "shouldSuppressNotification", b"shouldSuppressNotification", "status", b"status"] # noqa: Y015
def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ...
- _ClearFieldArgType: _TypeAlias = _typing.Literal["amount", b"amount", "description", b"description", "frequency", b"frequency", "instanceId", b"instanceId", "payeeJid", b"payeeJid", "payeeVpa", b"payeeVpa", "payerJid", b"payerJid", "reminderId", b"reminderId", "status", b"status"] # noqa: Y015
+ _ClearFieldArgType: _TypeAlias = _typing.Literal["consumerLid", b"consumerLid", "consumerPhoneNumber", b"consumerPhoneNumber", "notificationContent", b"notificationContent", "senderNotificationTimestampMs", b"senderNotificationTimestampMs", "shouldSuppressNotification", b"shouldSuppressNotification", "status", b"status"] # noqa: Y015
def ClearField(self, field_name: _ClearFieldArgType) -> None: ...
@_typing.final
- class PeerDataOperationRequestMessage(_message.Message):
+ class CommentMessage(_message.Message):
DESCRIPTOR: _descriptor.Descriptor
- @_typing.final
- class BizBroadcastInsightsContactListRequest(_message.Message):
- DESCRIPTOR: _descriptor.Descriptor
+ MESSAGE_FIELD_NUMBER: _builtins.int
+ TARGETMESSAGEKEY_FIELD_NUMBER: _builtins.int
+ @_builtins.property
+ def message(self) -> Global___Message: ...
+ @_builtins.property
+ def targetMessageKey(self) -> Global___MessageKey: ...
+ def __init__(
+ self,
+ *,
+ message: Global___Message | None = ...,
+ targetMessageKey: Global___MessageKey | None = ...,
+ ) -> None: ...
+ _HasFieldArgType: _TypeAlias = _typing.Literal["message", b"message", "targetMessageKey", b"targetMessageKey"] # noqa: Y015
+ def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ...
+ _ClearFieldArgType: _TypeAlias = _typing.Literal["message", b"message", "targetMessageKey", b"targetMessageKey"] # noqa: Y015
+ def ClearField(self, field_name: _ClearFieldArgType) -> None: ...
- CAMPAIGNID_FIELD_NUMBER: _builtins.int
- campaignId: _builtins.str
- def __init__(
- self,
- *,
- campaignId: _builtins.str | None = ...,
- ) -> None: ...
- _HasFieldArgType: _TypeAlias = _typing.Literal["campaignId", b"campaignId"] # noqa: Y015
- def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ...
- _ClearFieldArgType: _TypeAlias = _typing.Literal["campaignId", b"campaignId"] # noqa: Y015
- def ClearField(self, field_name: _ClearFieldArgType) -> None: ...
+ @_typing.final
+ class ConditionalRevealMessage(_message.Message):
+ DESCRIPTOR: _descriptor.Descriptor
- @_typing.final
- class BizBroadcastInsightsRefreshRequest(_message.Message):
- DESCRIPTOR: _descriptor.Descriptor
+ class _ConditionalRevealMessageType:
+ ValueType = _typing.NewType("ValueType", _builtins.int)
+ V: _TypeAlias = ValueType # noqa: Y015
- CAMPAIGNID_FIELD_NUMBER: _builtins.int
- campaignId: _builtins.str
- def __init__(
- self,
- *,
- campaignId: _builtins.str | None = ...,
- ) -> None: ...
- _HasFieldArgType: _TypeAlias = _typing.Literal["campaignId", b"campaignId"] # noqa: Y015
- def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ...
- _ClearFieldArgType: _TypeAlias = _typing.Literal["campaignId", b"campaignId"] # noqa: Y015
- def ClearField(self, field_name: _ClearFieldArgType) -> None: ...
+ class _ConditionalRevealMessageTypeEnumTypeWrapper(_enum_type_wrapper._EnumTypeWrapper[Message.ConditionalRevealMessage._ConditionalRevealMessageType.ValueType], _builtins.type):
+ DESCRIPTOR: _descriptor.EnumDescriptor
+ UNKNOWN: Message.ConditionalRevealMessage._ConditionalRevealMessageType.ValueType # 0
+ SCHEDULED_MESSAGE: Message.ConditionalRevealMessage._ConditionalRevealMessageType.ValueType # 1
- @_typing.final
- class CompanionCanonicalUserNonceFetchRequest(_message.Message):
- DESCRIPTOR: _descriptor.Descriptor
+ class ConditionalRevealMessageType(_ConditionalRevealMessageType, metaclass=_ConditionalRevealMessageTypeEnumTypeWrapper): ...
+ UNKNOWN: Message.ConditionalRevealMessage.ConditionalRevealMessageType.ValueType # 0
+ SCHEDULED_MESSAGE: Message.ConditionalRevealMessage.ConditionalRevealMessageType.ValueType # 1
- REGISTRATIONTRACEID_FIELD_NUMBER: _builtins.int
- registrationTraceId: _builtins.str
- def __init__(
- self,
- *,
- registrationTraceId: _builtins.str | None = ...,
- ) -> None: ...
- _HasFieldArgType: _TypeAlias = _typing.Literal["registrationTraceId", b"registrationTraceId"] # noqa: Y015
- def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ...
- _ClearFieldArgType: _TypeAlias = _typing.Literal["registrationTraceId", b"registrationTraceId"] # noqa: Y015
- def ClearField(self, field_name: _ClearFieldArgType) -> None: ...
+ ENCPAYLOAD_FIELD_NUMBER: _builtins.int
+ ENCIV_FIELD_NUMBER: _builtins.int
+ CONDITIONALREVEALMESSAGETYPE_FIELD_NUMBER: _builtins.int
+ REVEALKEYID_FIELD_NUMBER: _builtins.int
+ encPayload: _builtins.bytes
+ encIv: _builtins.bytes
+ conditionalRevealMessageType: Global___Message.ConditionalRevealMessage.ConditionalRevealMessageType.ValueType
+ revealKeyId: _builtins.str
+ def __init__(
+ self,
+ *,
+ encPayload: _builtins.bytes | None = ...,
+ encIv: _builtins.bytes | None = ...,
+ conditionalRevealMessageType: Global___Message.ConditionalRevealMessage.ConditionalRevealMessageType.ValueType | None = ...,
+ revealKeyId: _builtins.str | None = ...,
+ ) -> None: ...
+ _HasFieldArgType: _TypeAlias = _typing.Literal["conditionalRevealMessageType", b"conditionalRevealMessageType", "encIv", b"encIv", "encPayload", b"encPayload", "revealKeyId", b"revealKeyId"] # noqa: Y015
+ def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ...
+ _ClearFieldArgType: _TypeAlias = _typing.Literal["conditionalRevealMessageType", b"conditionalRevealMessageType", "encIv", b"encIv", "encPayload", b"encPayload", "revealKeyId", b"revealKeyId"] # noqa: Y015
+ def ClearField(self, field_name: _ClearFieldArgType) -> None: ...
- @_typing.final
- class FullHistorySyncOnDemandRequest(_message.Message):
- DESCRIPTOR: _descriptor.Descriptor
+ @_typing.final
+ class ContactMessage(_message.Message):
+ DESCRIPTOR: _descriptor.Descriptor
- REQUESTMETADATA_FIELD_NUMBER: _builtins.int
- HISTORYSYNCCONFIG_FIELD_NUMBER: _builtins.int
- FULLHISTORYSYNCONDEMANDCONFIG_FIELD_NUMBER: _builtins.int
- @_builtins.property
- def requestMetadata(self) -> Global___Message.FullHistorySyncOnDemandRequestMetadata: ...
- @_builtins.property
- def historySyncConfig(self) -> Global___DeviceProps.HistorySyncConfig: ...
- @_builtins.property
- def fullHistorySyncOnDemandConfig(self) -> Global___Message.FullHistorySyncOnDemandConfig: ...
- def __init__(
- self,
- *,
- requestMetadata: Global___Message.FullHistorySyncOnDemandRequestMetadata | None = ...,
- historySyncConfig: Global___DeviceProps.HistorySyncConfig | None = ...,
- fullHistorySyncOnDemandConfig: Global___Message.FullHistorySyncOnDemandConfig | None = ...,
- ) -> None: ...
- _HasFieldArgType: _TypeAlias = _typing.Literal["fullHistorySyncOnDemandConfig", b"fullHistorySyncOnDemandConfig", "historySyncConfig", b"historySyncConfig", "requestMetadata", b"requestMetadata"] # noqa: Y015
- def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ...
- _ClearFieldArgType: _TypeAlias = _typing.Literal["fullHistorySyncOnDemandConfig", b"fullHistorySyncOnDemandConfig", "historySyncConfig", b"historySyncConfig", "requestMetadata", b"requestMetadata"] # noqa: Y015
- def ClearField(self, field_name: _ClearFieldArgType) -> None: ...
+ DISPLAYNAME_FIELD_NUMBER: _builtins.int
+ VCARD_FIELD_NUMBER: _builtins.int
+ CONTEXTINFO_FIELD_NUMBER: _builtins.int
+ ISSELFCONTACT_FIELD_NUMBER: _builtins.int
+ displayName: _builtins.str
+ vcard: _builtins.str
+ isSelfContact: _builtins.bool
+ @_builtins.property
+ def contextInfo(self) -> Global___ContextInfo: ...
+ def __init__(
+ self,
+ *,
+ displayName: _builtins.str | None = ...,
+ vcard: _builtins.str | None = ...,
+ contextInfo: Global___ContextInfo | None = ...,
+ isSelfContact: _builtins.bool | None = ...,
+ ) -> None: ...
+ _HasFieldArgType: _TypeAlias = _typing.Literal["contextInfo", b"contextInfo", "displayName", b"displayName", "isSelfContact", b"isSelfContact", "vcard", b"vcard"] # noqa: Y015
+ def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ...
+ _ClearFieldArgType: _TypeAlias = _typing.Literal["contextInfo", b"contextInfo", "displayName", b"displayName", "isSelfContact", b"isSelfContact", "vcard", b"vcard"] # noqa: Y015
+ def ClearField(self, field_name: _ClearFieldArgType) -> None: ...
- @_typing.final
- class GalaxyFlowAction(_message.Message):
- DESCRIPTOR: _descriptor.Descriptor
+ @_typing.final
+ class ContactsArrayMessage(_message.Message):
+ DESCRIPTOR: _descriptor.Descriptor
- class _GalaxyFlowActionType:
- ValueType = _typing.NewType("ValueType", _builtins.int)
- V: _TypeAlias = ValueType # noqa: Y015
+ DISPLAYNAME_FIELD_NUMBER: _builtins.int
+ CONTACTS_FIELD_NUMBER: _builtins.int
+ CONTEXTINFO_FIELD_NUMBER: _builtins.int
+ displayName: _builtins.str
+ @_builtins.property
+ def contacts(self) -> _containers.RepeatedCompositeFieldContainer[Global___Message.ContactMessage]: ...
+ @_builtins.property
+ def contextInfo(self) -> Global___ContextInfo: ...
+ def __init__(
+ self,
+ *,
+ displayName: _builtins.str | None = ...,
+ contacts: _abc.Iterable[Global___Message.ContactMessage] | None = ...,
+ contextInfo: Global___ContextInfo | None = ...,
+ ) -> None: ...
+ _HasFieldArgType: _TypeAlias = _typing.Literal["contextInfo", b"contextInfo", "displayName", b"displayName"] # noqa: Y015
+ def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ...
+ _ClearFieldArgType: _TypeAlias = _typing.Literal["contacts", b"contacts", "contextInfo", b"contextInfo", "displayName", b"displayName"] # noqa: Y015
+ def ClearField(self, field_name: _ClearFieldArgType) -> None: ...
- class _GalaxyFlowActionTypeEnumTypeWrapper(_enum_type_wrapper._EnumTypeWrapper[Message.PeerDataOperationRequestMessage.GalaxyFlowAction._GalaxyFlowActionType.ValueType], _builtins.type):
- DESCRIPTOR: _descriptor.EnumDescriptor
- NOTIFY_LAUNCH: Message.PeerDataOperationRequestMessage.GalaxyFlowAction._GalaxyFlowActionType.ValueType # 1
- DOWNLOAD_RESPONSES: Message.PeerDataOperationRequestMessage.GalaxyFlowAction._GalaxyFlowActionType.ValueType # 2
+ @_typing.final
+ class DeclinePaymentRequestMessage(_message.Message):
+ DESCRIPTOR: _descriptor.Descriptor
- class GalaxyFlowActionType(_GalaxyFlowActionType, metaclass=_GalaxyFlowActionTypeEnumTypeWrapper): ...
- NOTIFY_LAUNCH: Message.PeerDataOperationRequestMessage.GalaxyFlowAction.GalaxyFlowActionType.ValueType # 1
- DOWNLOAD_RESPONSES: Message.PeerDataOperationRequestMessage.GalaxyFlowAction.GalaxyFlowActionType.ValueType # 2
+ KEY_FIELD_NUMBER: _builtins.int
+ @_builtins.property
+ def key(self) -> Global___MessageKey: ...
+ def __init__(
+ self,
+ *,
+ key: Global___MessageKey | None = ...,
+ ) -> None: ...
+ _HasFieldArgType: _TypeAlias = _typing.Literal["key", b"key"] # noqa: Y015
+ def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ...
+ _ClearFieldArgType: _TypeAlias = _typing.Literal["key", b"key"] # noqa: Y015
+ def ClearField(self, field_name: _ClearFieldArgType) -> None: ...
- TYPE_FIELD_NUMBER: _builtins.int
- FLOWID_FIELD_NUMBER: _builtins.int
- STANZAID_FIELD_NUMBER: _builtins.int
- GALAXYFLOWDOWNLOADREQUESTID_FIELD_NUMBER: _builtins.int
- AGMID_FIELD_NUMBER: _builtins.int
- type: Global___Message.PeerDataOperationRequestMessage.GalaxyFlowAction.GalaxyFlowActionType.ValueType
- flowId: _builtins.str
- stanzaId: _builtins.str
- galaxyFlowDownloadRequestId: _builtins.str
- agmId: _builtins.str
- def __init__(
- self,
- *,
- type: Global___Message.PeerDataOperationRequestMessage.GalaxyFlowAction.GalaxyFlowActionType.ValueType | None = ...,
- flowId: _builtins.str | None = ...,
- stanzaId: _builtins.str | None = ...,
- galaxyFlowDownloadRequestId: _builtins.str | None = ...,
- agmId: _builtins.str | None = ...,
- ) -> None: ...
- _HasFieldArgType: _TypeAlias = _typing.Literal["agmId", b"agmId", "flowId", b"flowId", "galaxyFlowDownloadRequestId", b"galaxyFlowDownloadRequestId", "stanzaId", b"stanzaId", "type", b"type"] # noqa: Y015
- def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ...
- _ClearFieldArgType: _TypeAlias = _typing.Literal["agmId", b"agmId", "flowId", b"flowId", "galaxyFlowDownloadRequestId", b"galaxyFlowDownloadRequestId", "stanzaId", b"stanzaId", "type", b"type"] # noqa: Y015
- def ClearField(self, field_name: _ClearFieldArgType) -> None: ...
+ @_typing.final
+ class DeviceSentMessage(_message.Message):
+ DESCRIPTOR: _descriptor.Descriptor
- @_typing.final
- class HistorySyncChunkRetryRequest(_message.Message):
- DESCRIPTOR: _descriptor.Descriptor
+ DESTINATIONJID_FIELD_NUMBER: _builtins.int
+ MESSAGE_FIELD_NUMBER: _builtins.int
+ PHASH_FIELD_NUMBER: _builtins.int
+ destinationJid: _builtins.str
+ phash: _builtins.str
+ @_builtins.property
+ def message(self) -> Global___Message: ...
+ def __init__(
+ self,
+ *,
+ destinationJid: _builtins.str | None = ...,
+ message: Global___Message | None = ...,
+ phash: _builtins.str | None = ...,
+ ) -> None: ...
+ _HasFieldArgType: _TypeAlias = _typing.Literal["destinationJid", b"destinationJid", "message", b"message", "phash", b"phash"] # noqa: Y015
+ def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ...
+ _ClearFieldArgType: _TypeAlias = _typing.Literal["destinationJid", b"destinationJid", "message", b"message", "phash", b"phash"] # noqa: Y015
+ def ClearField(self, field_name: _ClearFieldArgType) -> None: ...
- SYNCTYPE_FIELD_NUMBER: _builtins.int
- CHUNKORDER_FIELD_NUMBER: _builtins.int
- CHUNKNOTIFICATIONID_FIELD_NUMBER: _builtins.int
- REGENERATECHUNK_FIELD_NUMBER: _builtins.int
- syncType: Global___Message.HistorySyncType.ValueType
- chunkOrder: _builtins.int
- chunkNotificationId: _builtins.str
- regenerateChunk: _builtins.bool
- def __init__(
- self,
- *,
- syncType: Global___Message.HistorySyncType.ValueType | None = ...,
- chunkOrder: _builtins.int | None = ...,
- chunkNotificationId: _builtins.str | None = ...,
- regenerateChunk: _builtins.bool | None = ...,
- ) -> None: ...
- _HasFieldArgType: _TypeAlias = _typing.Literal["chunkNotificationId", b"chunkNotificationId", "chunkOrder", b"chunkOrder", "regenerateChunk", b"regenerateChunk", "syncType", b"syncType"] # noqa: Y015
- def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ...
- _ClearFieldArgType: _TypeAlias = _typing.Literal["chunkNotificationId", b"chunkNotificationId", "chunkOrder", b"chunkOrder", "regenerateChunk", b"regenerateChunk", "syncType", b"syncType"] # noqa: Y015
- def ClearField(self, field_name: _ClearFieldArgType) -> None: ...
-
- @_typing.final
- class HistorySyncOnDemandRequest(_message.Message):
- DESCRIPTOR: _descriptor.Descriptor
-
- CHATJID_FIELD_NUMBER: _builtins.int
- OLDESTMSGID_FIELD_NUMBER: _builtins.int
- OLDESTMSGFROMME_FIELD_NUMBER: _builtins.int
- ONDEMANDMSGCOUNT_FIELD_NUMBER: _builtins.int
- OLDESTMSGTIMESTAMPMS_FIELD_NUMBER: _builtins.int
- ACCOUNTLID_FIELD_NUMBER: _builtins.int
- SUPPORTINLINERESPONSE_FIELD_NUMBER: _builtins.int
- chatJid: _builtins.str
- oldestMsgId: _builtins.str
- oldestMsgFromMe: _builtins.bool
- onDemandMsgCount: _builtins.int
- oldestMsgTimestampMs: _builtins.int
- accountLid: _builtins.str
- supportInlineResponse: _builtins.bool
- def __init__(
- self,
- *,
- chatJid: _builtins.str | None = ...,
- oldestMsgId: _builtins.str | None = ...,
- oldestMsgFromMe: _builtins.bool | None = ...,
- onDemandMsgCount: _builtins.int | None = ...,
- oldestMsgTimestampMs: _builtins.int | None = ...,
- accountLid: _builtins.str | None = ...,
- supportInlineResponse: _builtins.bool | None = ...,
- ) -> None: ...
- _HasFieldArgType: _TypeAlias = _typing.Literal["accountLid", b"accountLid", "chatJid", b"chatJid", "oldestMsgFromMe", b"oldestMsgFromMe", "oldestMsgId", b"oldestMsgId", "oldestMsgTimestampMs", b"oldestMsgTimestampMs", "onDemandMsgCount", b"onDemandMsgCount", "supportInlineResponse", b"supportInlineResponse"] # noqa: Y015
- def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ...
- _ClearFieldArgType: _TypeAlias = _typing.Literal["accountLid", b"accountLid", "chatJid", b"chatJid", "oldestMsgFromMe", b"oldestMsgFromMe", "oldestMsgId", b"oldestMsgId", "oldestMsgTimestampMs", b"oldestMsgTimestampMs", "onDemandMsgCount", b"onDemandMsgCount", "supportInlineResponse", b"supportInlineResponse"] # noqa: Y015
- def ClearField(self, field_name: _ClearFieldArgType) -> None: ...
-
- @_typing.final
- class PlaceholderMessageResendRequest(_message.Message):
- DESCRIPTOR: _descriptor.Descriptor
-
- MESSAGEKEY_FIELD_NUMBER: _builtins.int
- @_builtins.property
- def messageKey(self) -> Global___MessageKey: ...
- def __init__(
- self,
- *,
- messageKey: Global___MessageKey | None = ...,
- ) -> None: ...
- _HasFieldArgType: _TypeAlias = _typing.Literal["messageKey", b"messageKey"] # noqa: Y015
- def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ...
- _ClearFieldArgType: _TypeAlias = _typing.Literal["messageKey", b"messageKey"] # noqa: Y015
- def ClearField(self, field_name: _ClearFieldArgType) -> None: ...
-
- @_typing.final
- class RequestStickerReupload(_message.Message):
- DESCRIPTOR: _descriptor.Descriptor
-
- FILESHA256_FIELD_NUMBER: _builtins.int
- fileSha256: _builtins.str
- def __init__(
- self,
- *,
- fileSha256: _builtins.str | None = ...,
- ) -> None: ...
- _HasFieldArgType: _TypeAlias = _typing.Literal["fileSha256", b"fileSha256"] # noqa: Y015
- def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ...
- _ClearFieldArgType: _TypeAlias = _typing.Literal["fileSha256", b"fileSha256"] # noqa: Y015
- def ClearField(self, field_name: _ClearFieldArgType) -> None: ...
-
- @_typing.final
- class RequestUrlPreview(_message.Message):
- DESCRIPTOR: _descriptor.Descriptor
-
- URL_FIELD_NUMBER: _builtins.int
- INCLUDEHQTHUMBNAIL_FIELD_NUMBER: _builtins.int
- url: _builtins.str
- includeHqThumbnail: _builtins.bool
- def __init__(
- self,
- *,
- url: _builtins.str | None = ...,
- includeHqThumbnail: _builtins.bool | None = ...,
- ) -> None: ...
- _HasFieldArgType: _TypeAlias = _typing.Literal["includeHqThumbnail", b"includeHqThumbnail", "url", b"url"] # noqa: Y015
- def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ...
- _ClearFieldArgType: _TypeAlias = _typing.Literal["includeHqThumbnail", b"includeHqThumbnail", "url", b"url"] # noqa: Y015
- def ClearField(self, field_name: _ClearFieldArgType) -> None: ...
-
- @_typing.final
- class SyncDCollectionFatalRecoveryRequest(_message.Message):
- DESCRIPTOR: _descriptor.Descriptor
-
- COLLECTIONNAME_FIELD_NUMBER: _builtins.int
- TIMESTAMP_FIELD_NUMBER: _builtins.int
- collectionName: _builtins.str
- timestamp: _builtins.int
- def __init__(
- self,
- *,
- collectionName: _builtins.str | None = ...,
- timestamp: _builtins.int | None = ...,
- ) -> None: ...
- _HasFieldArgType: _TypeAlias = _typing.Literal["collectionName", b"collectionName", "timestamp", b"timestamp"] # noqa: Y015
- def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ...
- _ClearFieldArgType: _TypeAlias = _typing.Literal["collectionName", b"collectionName", "timestamp", b"timestamp"] # noqa: Y015
- def ClearField(self, field_name: _ClearFieldArgType) -> None: ...
+ @_typing.final
+ class DocumentMessage(_message.Message):
+ DESCRIPTOR: _descriptor.Descriptor
- PEERDATAOPERATIONREQUESTTYPE_FIELD_NUMBER: _builtins.int
- REQUESTSTICKERREUPLOAD_FIELD_NUMBER: _builtins.int
- REQUESTURLPREVIEW_FIELD_NUMBER: _builtins.int
- HISTORYSYNCONDEMANDREQUEST_FIELD_NUMBER: _builtins.int
- PLACEHOLDERMESSAGERESENDREQUEST_FIELD_NUMBER: _builtins.int
- FULLHISTORYSYNCONDEMANDREQUEST_FIELD_NUMBER: _builtins.int
- SYNCDCOLLECTIONFATALRECOVERYREQUEST_FIELD_NUMBER: _builtins.int
- HISTORYSYNCCHUNKRETRYREQUEST_FIELD_NUMBER: _builtins.int
- GALAXYFLOWACTION_FIELD_NUMBER: _builtins.int
- COMPANIONCANONICALUSERNONCEFETCHREQUEST_FIELD_NUMBER: _builtins.int
- BIZBROADCASTINSIGHTSCONTACTLISTREQUEST_FIELD_NUMBER: _builtins.int
- BIZBROADCASTINSIGHTSREFRESHREQUEST_FIELD_NUMBER: _builtins.int
- peerDataOperationRequestType: Global___Message.PeerDataOperationRequestType.ValueType
- @_builtins.property
- def requestStickerReupload(self) -> _containers.RepeatedCompositeFieldContainer[Global___Message.PeerDataOperationRequestMessage.RequestStickerReupload]: ...
- @_builtins.property
- def requestUrlPreview(self) -> _containers.RepeatedCompositeFieldContainer[Global___Message.PeerDataOperationRequestMessage.RequestUrlPreview]: ...
- @_builtins.property
- def historySyncOnDemandRequest(self) -> Global___Message.PeerDataOperationRequestMessage.HistorySyncOnDemandRequest: ...
- @_builtins.property
- def placeholderMessageResendRequest(self) -> _containers.RepeatedCompositeFieldContainer[Global___Message.PeerDataOperationRequestMessage.PlaceholderMessageResendRequest]: ...
- @_builtins.property
- def fullHistorySyncOnDemandRequest(self) -> Global___Message.PeerDataOperationRequestMessage.FullHistorySyncOnDemandRequest: ...
- @_builtins.property
- def syncdCollectionFatalRecoveryRequest(self) -> Global___Message.PeerDataOperationRequestMessage.SyncDCollectionFatalRecoveryRequest: ...
- @_builtins.property
- def historySyncChunkRetryRequest(self) -> Global___Message.PeerDataOperationRequestMessage.HistorySyncChunkRetryRequest: ...
- @_builtins.property
- def galaxyFlowAction(self) -> Global___Message.PeerDataOperationRequestMessage.GalaxyFlowAction: ...
- @_builtins.property
- def companionCanonicalUserNonceFetchRequest(self) -> Global___Message.PeerDataOperationRequestMessage.CompanionCanonicalUserNonceFetchRequest: ...
- @_builtins.property
- def bizBroadcastInsightsContactListRequest(self) -> Global___Message.PeerDataOperationRequestMessage.BizBroadcastInsightsContactListRequest: ...
+ URL_FIELD_NUMBER: _builtins.int
+ MIMETYPE_FIELD_NUMBER: _builtins.int
+ TITLE_FIELD_NUMBER: _builtins.int
+ FILESHA256_FIELD_NUMBER: _builtins.int
+ FILELENGTH_FIELD_NUMBER: _builtins.int
+ PAGECOUNT_FIELD_NUMBER: _builtins.int
+ MEDIAKEY_FIELD_NUMBER: _builtins.int
+ FILENAME_FIELD_NUMBER: _builtins.int
+ FILEENCSHA256_FIELD_NUMBER: _builtins.int
+ DIRECTPATH_FIELD_NUMBER: _builtins.int
+ MEDIAKEYTIMESTAMP_FIELD_NUMBER: _builtins.int
+ CONTACTVCARD_FIELD_NUMBER: _builtins.int
+ THUMBNAILDIRECTPATH_FIELD_NUMBER: _builtins.int
+ THUMBNAILSHA256_FIELD_NUMBER: _builtins.int
+ THUMBNAILENCSHA256_FIELD_NUMBER: _builtins.int
+ JPEGTHUMBNAIL_FIELD_NUMBER: _builtins.int
+ CONTEXTINFO_FIELD_NUMBER: _builtins.int
+ THUMBNAILHEIGHT_FIELD_NUMBER: _builtins.int
+ THUMBNAILWIDTH_FIELD_NUMBER: _builtins.int
+ CAPTION_FIELD_NUMBER: _builtins.int
+ ACCESSIBILITYLABEL_FIELD_NUMBER: _builtins.int
+ url: _builtins.str
+ mimetype: _builtins.str
+ title: _builtins.str
+ fileSha256: _builtins.bytes
+ fileLength: _builtins.int
+ pageCount: _builtins.int
+ mediaKey: _builtins.bytes
+ fileName: _builtins.str
+ fileEncSha256: _builtins.bytes
+ directPath: _builtins.str
+ mediaKeyTimestamp: _builtins.int
+ contactVcard: _builtins.bool
+ thumbnailDirectPath: _builtins.str
+ thumbnailSha256: _builtins.bytes
+ thumbnailEncSha256: _builtins.bytes
+ jpegThumbnail: _builtins.bytes
+ thumbnailHeight: _builtins.int
+ thumbnailWidth: _builtins.int
+ caption: _builtins.str
+ accessibilityLabel: _builtins.str
@_builtins.property
- def bizBroadcastInsightsRefreshRequest(self) -> Global___Message.PeerDataOperationRequestMessage.BizBroadcastInsightsRefreshRequest: ...
+ def contextInfo(self) -> Global___ContextInfo: ...
def __init__(
self,
*,
- peerDataOperationRequestType: Global___Message.PeerDataOperationRequestType.ValueType | None = ...,
- requestStickerReupload: _abc.Iterable[Global___Message.PeerDataOperationRequestMessage.RequestStickerReupload] | None = ...,
- requestUrlPreview: _abc.Iterable[Global___Message.PeerDataOperationRequestMessage.RequestUrlPreview] | None = ...,
- historySyncOnDemandRequest: Global___Message.PeerDataOperationRequestMessage.HistorySyncOnDemandRequest | None = ...,
- placeholderMessageResendRequest: _abc.Iterable[Global___Message.PeerDataOperationRequestMessage.PlaceholderMessageResendRequest] | None = ...,
- fullHistorySyncOnDemandRequest: Global___Message.PeerDataOperationRequestMessage.FullHistorySyncOnDemandRequest | None = ...,
- syncdCollectionFatalRecoveryRequest: Global___Message.PeerDataOperationRequestMessage.SyncDCollectionFatalRecoveryRequest | None = ...,
- historySyncChunkRetryRequest: Global___Message.PeerDataOperationRequestMessage.HistorySyncChunkRetryRequest | None = ...,
- galaxyFlowAction: Global___Message.PeerDataOperationRequestMessage.GalaxyFlowAction | None = ...,
- companionCanonicalUserNonceFetchRequest: Global___Message.PeerDataOperationRequestMessage.CompanionCanonicalUserNonceFetchRequest | None = ...,
- bizBroadcastInsightsContactListRequest: Global___Message.PeerDataOperationRequestMessage.BizBroadcastInsightsContactListRequest | None = ...,
- bizBroadcastInsightsRefreshRequest: Global___Message.PeerDataOperationRequestMessage.BizBroadcastInsightsRefreshRequest | None = ...,
+ url: _builtins.str | None = ...,
+ mimetype: _builtins.str | None = ...,
+ title: _builtins.str | None = ...,
+ fileSha256: _builtins.bytes | None = ...,
+ fileLength: _builtins.int | None = ...,
+ pageCount: _builtins.int | None = ...,
+ mediaKey: _builtins.bytes | None = ...,
+ fileName: _builtins.str | None = ...,
+ fileEncSha256: _builtins.bytes | None = ...,
+ directPath: _builtins.str | None = ...,
+ mediaKeyTimestamp: _builtins.int | None = ...,
+ contactVcard: _builtins.bool | None = ...,
+ thumbnailDirectPath: _builtins.str | None = ...,
+ thumbnailSha256: _builtins.bytes | None = ...,
+ thumbnailEncSha256: _builtins.bytes | None = ...,
+ jpegThumbnail: _builtins.bytes | None = ...,
+ contextInfo: Global___ContextInfo | None = ...,
+ thumbnailHeight: _builtins.int | None = ...,
+ thumbnailWidth: _builtins.int | None = ...,
+ caption: _builtins.str | None = ...,
+ accessibilityLabel: _builtins.str | None = ...,
) -> None: ...
- _HasFieldArgType: _TypeAlias = _typing.Literal["bizBroadcastInsightsContactListRequest", b"bizBroadcastInsightsContactListRequest", "bizBroadcastInsightsRefreshRequest", b"bizBroadcastInsightsRefreshRequest", "companionCanonicalUserNonceFetchRequest", b"companionCanonicalUserNonceFetchRequest", "fullHistorySyncOnDemandRequest", b"fullHistorySyncOnDemandRequest", "galaxyFlowAction", b"galaxyFlowAction", "historySyncChunkRetryRequest", b"historySyncChunkRetryRequest", "historySyncOnDemandRequest", b"historySyncOnDemandRequest", "peerDataOperationRequestType", b"peerDataOperationRequestType", "syncdCollectionFatalRecoveryRequest", b"syncdCollectionFatalRecoveryRequest"] # noqa: Y015
+ _HasFieldArgType: _TypeAlias = _typing.Literal["accessibilityLabel", b"accessibilityLabel", "caption", b"caption", "contactVcard", b"contactVcard", "contextInfo", b"contextInfo", "directPath", b"directPath", "fileEncSha256", b"fileEncSha256", "fileLength", b"fileLength", "fileName", b"fileName", "fileSha256", b"fileSha256", "jpegThumbnail", b"jpegThumbnail", "mediaKey", b"mediaKey", "mediaKeyTimestamp", b"mediaKeyTimestamp", "mimetype", b"mimetype", "pageCount", b"pageCount", "thumbnailDirectPath", b"thumbnailDirectPath", "thumbnailEncSha256", b"thumbnailEncSha256", "thumbnailHeight", b"thumbnailHeight", "thumbnailSha256", b"thumbnailSha256", "thumbnailWidth", b"thumbnailWidth", "title", b"title", "url", b"url"] # noqa: Y015
def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ...
- _ClearFieldArgType: _TypeAlias = _typing.Literal["bizBroadcastInsightsContactListRequest", b"bizBroadcastInsightsContactListRequest", "bizBroadcastInsightsRefreshRequest", b"bizBroadcastInsightsRefreshRequest", "companionCanonicalUserNonceFetchRequest", b"companionCanonicalUserNonceFetchRequest", "fullHistorySyncOnDemandRequest", b"fullHistorySyncOnDemandRequest", "galaxyFlowAction", b"galaxyFlowAction", "historySyncChunkRetryRequest", b"historySyncChunkRetryRequest", "historySyncOnDemandRequest", b"historySyncOnDemandRequest", "peerDataOperationRequestType", b"peerDataOperationRequestType", "placeholderMessageResendRequest", b"placeholderMessageResendRequest", "requestStickerReupload", b"requestStickerReupload", "requestUrlPreview", b"requestUrlPreview", "syncdCollectionFatalRecoveryRequest", b"syncdCollectionFatalRecoveryRequest"] # noqa: Y015
+ _ClearFieldArgType: _TypeAlias = _typing.Literal["accessibilityLabel", b"accessibilityLabel", "caption", b"caption", "contactVcard", b"contactVcard", "contextInfo", b"contextInfo", "directPath", b"directPath", "fileEncSha256", b"fileEncSha256", "fileLength", b"fileLength", "fileName", b"fileName", "fileSha256", b"fileSha256", "jpegThumbnail", b"jpegThumbnail", "mediaKey", b"mediaKey", "mediaKeyTimestamp", b"mediaKeyTimestamp", "mimetype", b"mimetype", "pageCount", b"pageCount", "thumbnailDirectPath", b"thumbnailDirectPath", "thumbnailEncSha256", b"thumbnailEncSha256", "thumbnailHeight", b"thumbnailHeight", "thumbnailSha256", b"thumbnailSha256", "thumbnailWidth", b"thumbnailWidth", "title", b"title", "url", b"url"] # noqa: Y015
def ClearField(self, field_name: _ClearFieldArgType) -> None: ...
@_typing.final
- class PeerDataOperationRequestResponseMessage(_message.Message):
+ class EncCommentMessage(_message.Message):
DESCRIPTOR: _descriptor.Descriptor
- @_typing.final
- class PeerDataOperationResult(_message.Message):
- DESCRIPTOR: _descriptor.Descriptor
-
- class _FullHistorySyncOnDemandResponseCode:
- ValueType = _typing.NewType("ValueType", _builtins.int)
- V: _TypeAlias = ValueType # noqa: Y015
-
- class _FullHistorySyncOnDemandResponseCodeEnumTypeWrapper(_enum_type_wrapper._EnumTypeWrapper[Message.PeerDataOperationRequestResponseMessage.PeerDataOperationResult._FullHistorySyncOnDemandResponseCode.ValueType], _builtins.type):
- DESCRIPTOR: _descriptor.EnumDescriptor
- REQUEST_SUCCESS: Message.PeerDataOperationRequestResponseMessage.PeerDataOperationResult._FullHistorySyncOnDemandResponseCode.ValueType # 0
- REQUEST_TIME_EXPIRED: Message.PeerDataOperationRequestResponseMessage.PeerDataOperationResult._FullHistorySyncOnDemandResponseCode.ValueType # 1
- DECLINED_SHARING_HISTORY: Message.PeerDataOperationRequestResponseMessage.PeerDataOperationResult._FullHistorySyncOnDemandResponseCode.ValueType # 2
- GENERIC_ERROR: Message.PeerDataOperationRequestResponseMessage.PeerDataOperationResult._FullHistorySyncOnDemandResponseCode.ValueType # 3
- ERROR_REQUEST_ON_NON_SMB_PRIMARY: Message.PeerDataOperationRequestResponseMessage.PeerDataOperationResult._FullHistorySyncOnDemandResponseCode.ValueType # 4
- ERROR_HOSTED_DEVICE_NOT_CONNECTED: Message.PeerDataOperationRequestResponseMessage.PeerDataOperationResult._FullHistorySyncOnDemandResponseCode.ValueType # 5
- ERROR_HOSTED_DEVICE_LOGIN_TIME_NOT_SET: Message.PeerDataOperationRequestResponseMessage.PeerDataOperationResult._FullHistorySyncOnDemandResponseCode.ValueType # 6
- ERROR_MULTI_PROVIDER_NOT_CONFIGURED: Message.PeerDataOperationRequestResponseMessage.PeerDataOperationResult._FullHistorySyncOnDemandResponseCode.ValueType # 7
+ TARGETMESSAGEKEY_FIELD_NUMBER: _builtins.int
+ ENCPAYLOAD_FIELD_NUMBER: _builtins.int
+ ENCIV_FIELD_NUMBER: _builtins.int
+ encPayload: _builtins.bytes
+ encIv: _builtins.bytes
+ @_builtins.property
+ def targetMessageKey(self) -> Global___MessageKey: ...
+ def __init__(
+ self,
+ *,
+ targetMessageKey: Global___MessageKey | None = ...,
+ encPayload: _builtins.bytes | None = ...,
+ encIv: _builtins.bytes | None = ...,
+ ) -> None: ...
+ _HasFieldArgType: _TypeAlias = _typing.Literal["encIv", b"encIv", "encPayload", b"encPayload", "targetMessageKey", b"targetMessageKey"] # noqa: Y015
+ def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ...
+ _ClearFieldArgType: _TypeAlias = _typing.Literal["encIv", b"encIv", "encPayload", b"encPayload", "targetMessageKey", b"targetMessageKey"] # noqa: Y015
+ def ClearField(self, field_name: _ClearFieldArgType) -> None: ...
- class FullHistorySyncOnDemandResponseCode(_FullHistorySyncOnDemandResponseCode, metaclass=_FullHistorySyncOnDemandResponseCodeEnumTypeWrapper): ...
- REQUEST_SUCCESS: Message.PeerDataOperationRequestResponseMessage.PeerDataOperationResult.FullHistorySyncOnDemandResponseCode.ValueType # 0
- REQUEST_TIME_EXPIRED: Message.PeerDataOperationRequestResponseMessage.PeerDataOperationResult.FullHistorySyncOnDemandResponseCode.ValueType # 1
- DECLINED_SHARING_HISTORY: Message.PeerDataOperationRequestResponseMessage.PeerDataOperationResult.FullHistorySyncOnDemandResponseCode.ValueType # 2
- GENERIC_ERROR: Message.PeerDataOperationRequestResponseMessage.PeerDataOperationResult.FullHistorySyncOnDemandResponseCode.ValueType # 3
- ERROR_REQUEST_ON_NON_SMB_PRIMARY: Message.PeerDataOperationRequestResponseMessage.PeerDataOperationResult.FullHistorySyncOnDemandResponseCode.ValueType # 4
- ERROR_HOSTED_DEVICE_NOT_CONNECTED: Message.PeerDataOperationRequestResponseMessage.PeerDataOperationResult.FullHistorySyncOnDemandResponseCode.ValueType # 5
- ERROR_HOSTED_DEVICE_LOGIN_TIME_NOT_SET: Message.PeerDataOperationRequestResponseMessage.PeerDataOperationResult.FullHistorySyncOnDemandResponseCode.ValueType # 6
- ERROR_MULTI_PROVIDER_NOT_CONFIGURED: Message.PeerDataOperationRequestResponseMessage.PeerDataOperationResult.FullHistorySyncOnDemandResponseCode.ValueType # 7
+ @_typing.final
+ class EncEventResponseMessage(_message.Message):
+ DESCRIPTOR: _descriptor.Descriptor
- class _HistorySyncChunkRetryResponseCode:
- ValueType = _typing.NewType("ValueType", _builtins.int)
- V: _TypeAlias = ValueType # noqa: Y015
+ EVENTCREATIONMESSAGEKEY_FIELD_NUMBER: _builtins.int
+ ENCPAYLOAD_FIELD_NUMBER: _builtins.int
+ ENCIV_FIELD_NUMBER: _builtins.int
+ encPayload: _builtins.bytes
+ encIv: _builtins.bytes
+ @_builtins.property
+ def eventCreationMessageKey(self) -> Global___MessageKey: ...
+ def __init__(
+ self,
+ *,
+ eventCreationMessageKey: Global___MessageKey | None = ...,
+ encPayload: _builtins.bytes | None = ...,
+ encIv: _builtins.bytes | None = ...,
+ ) -> None: ...
+ _HasFieldArgType: _TypeAlias = _typing.Literal["encIv", b"encIv", "encPayload", b"encPayload", "eventCreationMessageKey", b"eventCreationMessageKey"] # noqa: Y015
+ def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ...
+ _ClearFieldArgType: _TypeAlias = _typing.Literal["encIv", b"encIv", "encPayload", b"encPayload", "eventCreationMessageKey", b"eventCreationMessageKey"] # noqa: Y015
+ def ClearField(self, field_name: _ClearFieldArgType) -> None: ...
- class _HistorySyncChunkRetryResponseCodeEnumTypeWrapper(_enum_type_wrapper._EnumTypeWrapper[Message.PeerDataOperationRequestResponseMessage.PeerDataOperationResult._HistorySyncChunkRetryResponseCode.ValueType], _builtins.type):
- DESCRIPTOR: _descriptor.EnumDescriptor
- GENERATION_ERROR: Message.PeerDataOperationRequestResponseMessage.PeerDataOperationResult._HistorySyncChunkRetryResponseCode.ValueType # 1
- CHUNK_CONSUMED: Message.PeerDataOperationRequestResponseMessage.PeerDataOperationResult._HistorySyncChunkRetryResponseCode.ValueType # 2
- TIMEOUT: Message.PeerDataOperationRequestResponseMessage.PeerDataOperationResult._HistorySyncChunkRetryResponseCode.ValueType # 3
- SESSION_EXHAUSTED: Message.PeerDataOperationRequestResponseMessage.PeerDataOperationResult._HistorySyncChunkRetryResponseCode.ValueType # 4
- CHUNK_EXHAUSTED: Message.PeerDataOperationRequestResponseMessage.PeerDataOperationResult._HistorySyncChunkRetryResponseCode.ValueType # 5
- DUPLICATED_REQUEST: Message.PeerDataOperationRequestResponseMessage.PeerDataOperationResult._HistorySyncChunkRetryResponseCode.ValueType # 6
+ @_typing.final
+ class EncReactionMessage(_message.Message):
+ DESCRIPTOR: _descriptor.Descriptor
- class HistorySyncChunkRetryResponseCode(_HistorySyncChunkRetryResponseCode, metaclass=_HistorySyncChunkRetryResponseCodeEnumTypeWrapper): ...
- GENERATION_ERROR: Message.PeerDataOperationRequestResponseMessage.PeerDataOperationResult.HistorySyncChunkRetryResponseCode.ValueType # 1
- CHUNK_CONSUMED: Message.PeerDataOperationRequestResponseMessage.PeerDataOperationResult.HistorySyncChunkRetryResponseCode.ValueType # 2
- TIMEOUT: Message.PeerDataOperationRequestResponseMessage.PeerDataOperationResult.HistorySyncChunkRetryResponseCode.ValueType # 3
- SESSION_EXHAUSTED: Message.PeerDataOperationRequestResponseMessage.PeerDataOperationResult.HistorySyncChunkRetryResponseCode.ValueType # 4
- CHUNK_EXHAUSTED: Message.PeerDataOperationRequestResponseMessage.PeerDataOperationResult.HistorySyncChunkRetryResponseCode.ValueType # 5
- DUPLICATED_REQUEST: Message.PeerDataOperationRequestResponseMessage.PeerDataOperationResult.HistorySyncChunkRetryResponseCode.ValueType # 6
+ TARGETMESSAGEKEY_FIELD_NUMBER: _builtins.int
+ ENCPAYLOAD_FIELD_NUMBER: _builtins.int
+ ENCIV_FIELD_NUMBER: _builtins.int
+ encPayload: _builtins.bytes
+ encIv: _builtins.bytes
+ @_builtins.property
+ def targetMessageKey(self) -> Global___MessageKey: ...
+ def __init__(
+ self,
+ *,
+ targetMessageKey: Global___MessageKey | None = ...,
+ encPayload: _builtins.bytes | None = ...,
+ encIv: _builtins.bytes | None = ...,
+ ) -> None: ...
+ _HasFieldArgType: _TypeAlias = _typing.Literal["encIv", b"encIv", "encPayload", b"encPayload", "targetMessageKey", b"targetMessageKey"] # noqa: Y015
+ def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ...
+ _ClearFieldArgType: _TypeAlias = _typing.Literal["encIv", b"encIv", "encPayload", b"encPayload", "targetMessageKey", b"targetMessageKey"] # noqa: Y015
+ def ClearField(self, field_name: _ClearFieldArgType) -> None: ...
- @_typing.final
- class BizBroadcastInsightsContactListResponse(_message.Message):
- DESCRIPTOR: _descriptor.Descriptor
+ @_typing.final
+ class EventInviteMessage(_message.Message):
+ DESCRIPTOR: _descriptor.Descriptor
- CAMPAIGNID_FIELD_NUMBER: _builtins.int
- TIMESTAMPMS_FIELD_NUMBER: _builtins.int
- CONTACTS_FIELD_NUMBER: _builtins.int
- campaignId: _builtins.str
- timestampMs: _builtins.int
- @_builtins.property
- def contacts(self) -> _containers.RepeatedCompositeFieldContainer[Global___Message.PeerDataOperationRequestResponseMessage.PeerDataOperationResult.BizBroadcastInsightsContactState]: ...
- def __init__(
- self,
- *,
- campaignId: _builtins.str | None = ...,
- timestampMs: _builtins.int | None = ...,
- contacts: _abc.Iterable[Global___Message.PeerDataOperationRequestResponseMessage.PeerDataOperationResult.BizBroadcastInsightsContactState] | None = ...,
- ) -> None: ...
- _HasFieldArgType: _TypeAlias = _typing.Literal["campaignId", b"campaignId", "timestampMs", b"timestampMs"] # noqa: Y015
- def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ...
- _ClearFieldArgType: _TypeAlias = _typing.Literal["campaignId", b"campaignId", "contacts", b"contacts", "timestampMs", b"timestampMs"] # noqa: Y015
- def ClearField(self, field_name: _ClearFieldArgType) -> None: ...
+ CONTEXTINFO_FIELD_NUMBER: _builtins.int
+ EVENTID_FIELD_NUMBER: _builtins.int
+ EVENTTITLE_FIELD_NUMBER: _builtins.int
+ JPEGTHUMBNAIL_FIELD_NUMBER: _builtins.int
+ STARTTIME_FIELD_NUMBER: _builtins.int
+ CAPTION_FIELD_NUMBER: _builtins.int
+ ISCANCELED_FIELD_NUMBER: _builtins.int
+ ENDTIME_FIELD_NUMBER: _builtins.int
+ CALLLINK_FIELD_NUMBER: _builtins.int
+ eventId: _builtins.str
+ eventTitle: _builtins.str
+ jpegThumbnail: _builtins.bytes
+ startTime: _builtins.int
+ caption: _builtins.str
+ isCanceled: _builtins.bool
+ endTime: _builtins.int
+ callLink: _builtins.str
+ @_builtins.property
+ def contextInfo(self) -> Global___ContextInfo: ...
+ def __init__(
+ self,
+ *,
+ contextInfo: Global___ContextInfo | None = ...,
+ eventId: _builtins.str | None = ...,
+ eventTitle: _builtins.str | None = ...,
+ jpegThumbnail: _builtins.bytes | None = ...,
+ startTime: _builtins.int | None = ...,
+ caption: _builtins.str | None = ...,
+ isCanceled: _builtins.bool | None = ...,
+ endTime: _builtins.int | None = ...,
+ callLink: _builtins.str | None = ...,
+ ) -> None: ...
+ _HasFieldArgType: _TypeAlias = _typing.Literal["callLink", b"callLink", "caption", b"caption", "contextInfo", b"contextInfo", "endTime", b"endTime", "eventId", b"eventId", "eventTitle", b"eventTitle", "isCanceled", b"isCanceled", "jpegThumbnail", b"jpegThumbnail", "startTime", b"startTime"] # noqa: Y015
+ def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ...
+ _ClearFieldArgType: _TypeAlias = _typing.Literal["callLink", b"callLink", "caption", b"caption", "contextInfo", b"contextInfo", "endTime", b"endTime", "eventId", b"eventId", "eventTitle", b"eventTitle", "isCanceled", b"isCanceled", "jpegThumbnail", b"jpegThumbnail", "startTime", b"startTime"] # noqa: Y015
+ def ClearField(self, field_name: _ClearFieldArgType) -> None: ...
- @_typing.final
- class BizBroadcastInsightsContactState(_message.Message):
- DESCRIPTOR: _descriptor.Descriptor
+ @_typing.final
+ class EventMessage(_message.Message):
+ DESCRIPTOR: _descriptor.Descriptor
- CONTACTJID_FIELD_NUMBER: _builtins.int
- STATE_FIELD_NUMBER: _builtins.int
- contactJid: _builtins.str
- state: Global___Message.InsightDeliveryState.ValueType
- def __init__(
- self,
- *,
- contactJid: _builtins.str | None = ...,
- state: Global___Message.InsightDeliveryState.ValueType | None = ...,
- ) -> None: ...
- _HasFieldArgType: _TypeAlias = _typing.Literal["contactJid", b"contactJid", "state", b"state"] # noqa: Y015
- def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ...
- _ClearFieldArgType: _TypeAlias = _typing.Literal["contactJid", b"contactJid", "state", b"state"] # noqa: Y015
- def ClearField(self, field_name: _ClearFieldArgType) -> None: ...
+ CONTEXTINFO_FIELD_NUMBER: _builtins.int
+ ISCANCELED_FIELD_NUMBER: _builtins.int
+ NAME_FIELD_NUMBER: _builtins.int
+ DESCRIPTION_FIELD_NUMBER: _builtins.int
+ LOCATION_FIELD_NUMBER: _builtins.int
+ JOINLINK_FIELD_NUMBER: _builtins.int
+ STARTTIME_FIELD_NUMBER: _builtins.int
+ ENDTIME_FIELD_NUMBER: _builtins.int
+ EXTRAGUESTSALLOWED_FIELD_NUMBER: _builtins.int
+ ISSCHEDULECALL_FIELD_NUMBER: _builtins.int
+ HASREMINDER_FIELD_NUMBER: _builtins.int
+ REMINDEROFFSETSEC_FIELD_NUMBER: _builtins.int
+ isCanceled: _builtins.bool
+ name: _builtins.str
+ description: _builtins.str
+ joinLink: _builtins.str
+ startTime: _builtins.int
+ endTime: _builtins.int
+ extraGuestsAllowed: _builtins.bool
+ isScheduleCall: _builtins.bool
+ hasReminder: _builtins.bool
+ reminderOffsetSec: _builtins.int
+ @_builtins.property
+ def contextInfo(self) -> Global___ContextInfo: ...
+ @_builtins.property
+ def location(self) -> Global___Message.LocationMessage: ...
+ def __init__(
+ self,
+ *,
+ contextInfo: Global___ContextInfo | None = ...,
+ isCanceled: _builtins.bool | None = ...,
+ name: _builtins.str | None = ...,
+ description: _builtins.str | None = ...,
+ location: Global___Message.LocationMessage | None = ...,
+ joinLink: _builtins.str | None = ...,
+ startTime: _builtins.int | None = ...,
+ endTime: _builtins.int | None = ...,
+ extraGuestsAllowed: _builtins.bool | None = ...,
+ isScheduleCall: _builtins.bool | None = ...,
+ hasReminder: _builtins.bool | None = ...,
+ reminderOffsetSec: _builtins.int | None = ...,
+ ) -> None: ...
+ _HasFieldArgType: _TypeAlias = _typing.Literal["contextInfo", b"contextInfo", "description", b"description", "endTime", b"endTime", "extraGuestsAllowed", b"extraGuestsAllowed", "hasReminder", b"hasReminder", "isCanceled", b"isCanceled", "isScheduleCall", b"isScheduleCall", "joinLink", b"joinLink", "location", b"location", "name", b"name", "reminderOffsetSec", b"reminderOffsetSec", "startTime", b"startTime"] # noqa: Y015
+ def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ...
+ _ClearFieldArgType: _TypeAlias = _typing.Literal["contextInfo", b"contextInfo", "description", b"description", "endTime", b"endTime", "extraGuestsAllowed", b"extraGuestsAllowed", "hasReminder", b"hasReminder", "isCanceled", b"isCanceled", "isScheduleCall", b"isScheduleCall", "joinLink", b"joinLink", "location", b"location", "name", b"name", "reminderOffsetSec", b"reminderOffsetSec", "startTime", b"startTime"] # noqa: Y015
+ def ClearField(self, field_name: _ClearFieldArgType) -> None: ...
- @_typing.final
- class CompanionCanonicalUserNonceFetchResponse(_message.Message):
- DESCRIPTOR: _descriptor.Descriptor
+ @_typing.final
+ class EventResponseMessage(_message.Message):
+ DESCRIPTOR: _descriptor.Descriptor
- NONCE_FIELD_NUMBER: _builtins.int
- WAFBID_FIELD_NUMBER: _builtins.int
- FORCEREFRESH_FIELD_NUMBER: _builtins.int
- nonce: _builtins.str
- waFbid: _builtins.str
- forceRefresh: _builtins.bool
- def __init__(
- self,
- *,
- nonce: _builtins.str | None = ...,
- waFbid: _builtins.str | None = ...,
- forceRefresh: _builtins.bool | None = ...,
- ) -> None: ...
- _HasFieldArgType: _TypeAlias = _typing.Literal["forceRefresh", b"forceRefresh", "nonce", b"nonce", "waFbid", b"waFbid"] # noqa: Y015
- def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ...
- _ClearFieldArgType: _TypeAlias = _typing.Literal["forceRefresh", b"forceRefresh", "nonce", b"nonce", "waFbid", b"waFbid"] # noqa: Y015
- def ClearField(self, field_name: _ClearFieldArgType) -> None: ...
+ class _EventResponseType:
+ ValueType = _typing.NewType("ValueType", _builtins.int)
+ V: _TypeAlias = ValueType # noqa: Y015
- @_typing.final
- class CompanionMetaNonceFetchResponse(_message.Message):
- DESCRIPTOR: _descriptor.Descriptor
+ class _EventResponseTypeEnumTypeWrapper(_enum_type_wrapper._EnumTypeWrapper[Message.EventResponseMessage._EventResponseType.ValueType], _builtins.type):
+ DESCRIPTOR: _descriptor.EnumDescriptor
+ UNKNOWN: Message.EventResponseMessage._EventResponseType.ValueType # 0
+ GOING: Message.EventResponseMessage._EventResponseType.ValueType # 1
+ NOT_GOING: Message.EventResponseMessage._EventResponseType.ValueType # 2
+ MAYBE: Message.EventResponseMessage._EventResponseType.ValueType # 3
- NONCE_FIELD_NUMBER: _builtins.int
- nonce: _builtins.str
- def __init__(
- self,
- *,
- nonce: _builtins.str | None = ...,
- ) -> None: ...
- _HasFieldArgType: _TypeAlias = _typing.Literal["nonce", b"nonce"] # noqa: Y015
- def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ...
- _ClearFieldArgType: _TypeAlias = _typing.Literal["nonce", b"nonce"] # noqa: Y015
- def ClearField(self, field_name: _ClearFieldArgType) -> None: ...
+ class EventResponseType(_EventResponseType, metaclass=_EventResponseTypeEnumTypeWrapper): ...
+ UNKNOWN: Message.EventResponseMessage.EventResponseType.ValueType # 0
+ GOING: Message.EventResponseMessage.EventResponseType.ValueType # 1
+ NOT_GOING: Message.EventResponseMessage.EventResponseType.ValueType # 2
+ MAYBE: Message.EventResponseMessage.EventResponseType.ValueType # 3
- @_typing.final
- class FlowResponsesCsvBundle(_message.Message):
- DESCRIPTOR: _descriptor.Descriptor
+ RESPONSE_FIELD_NUMBER: _builtins.int
+ TIMESTAMPMS_FIELD_NUMBER: _builtins.int
+ EXTRAGUESTCOUNT_FIELD_NUMBER: _builtins.int
+ response: Global___Message.EventResponseMessage.EventResponseType.ValueType
+ timestampMs: _builtins.int
+ extraGuestCount: _builtins.int
+ def __init__(
+ self,
+ *,
+ response: Global___Message.EventResponseMessage.EventResponseType.ValueType | None = ...,
+ timestampMs: _builtins.int | None = ...,
+ extraGuestCount: _builtins.int | None = ...,
+ ) -> None: ...
+ _HasFieldArgType: _TypeAlias = _typing.Literal["extraGuestCount", b"extraGuestCount", "response", b"response", "timestampMs", b"timestampMs"] # noqa: Y015
+ def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ...
+ _ClearFieldArgType: _TypeAlias = _typing.Literal["extraGuestCount", b"extraGuestCount", "response", b"response", "timestampMs", b"timestampMs"] # noqa: Y015
+ def ClearField(self, field_name: _ClearFieldArgType) -> None: ...
- FLOWID_FIELD_NUMBER: _builtins.int
- GALAXYFLOWDOWNLOADREQUESTID_FIELD_NUMBER: _builtins.int
- FILENAME_FIELD_NUMBER: _builtins.int
- MIMETYPE_FIELD_NUMBER: _builtins.int
- FILESHA256_FIELD_NUMBER: _builtins.int
- MEDIAKEY_FIELD_NUMBER: _builtins.int
- FILEENCSHA256_FIELD_NUMBER: _builtins.int
- DIRECTPATH_FIELD_NUMBER: _builtins.int
- MEDIAKEYTIMESTAMP_FIELD_NUMBER: _builtins.int
- FILELENGTH_FIELD_NUMBER: _builtins.int
- flowId: _builtins.str
- galaxyFlowDownloadRequestId: _builtins.str
- fileName: _builtins.str
- mimetype: _builtins.str
- fileSha256: _builtins.bytes
- mediaKey: _builtins.bytes
- fileEncSha256: _builtins.bytes
- directPath: _builtins.str
- mediaKeyTimestamp: _builtins.int
- fileLength: _builtins.int
- def __init__(
- self,
- *,
- flowId: _builtins.str | None = ...,
- galaxyFlowDownloadRequestId: _builtins.str | None = ...,
- fileName: _builtins.str | None = ...,
- mimetype: _builtins.str | None = ...,
- fileSha256: _builtins.bytes | None = ...,
- mediaKey: _builtins.bytes | None = ...,
- fileEncSha256: _builtins.bytes | None = ...,
- directPath: _builtins.str | None = ...,
- mediaKeyTimestamp: _builtins.int | None = ...,
- fileLength: _builtins.int | None = ...,
- ) -> None: ...
- _HasFieldArgType: _TypeAlias = _typing.Literal["directPath", b"directPath", "fileEncSha256", b"fileEncSha256", "fileLength", b"fileLength", "fileName", b"fileName", "fileSha256", b"fileSha256", "flowId", b"flowId", "galaxyFlowDownloadRequestId", b"galaxyFlowDownloadRequestId", "mediaKey", b"mediaKey", "mediaKeyTimestamp", b"mediaKeyTimestamp", "mimetype", b"mimetype"] # noqa: Y015
- def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ...
- _ClearFieldArgType: _TypeAlias = _typing.Literal["directPath", b"directPath", "fileEncSha256", b"fileEncSha256", "fileLength", b"fileLength", "fileName", b"fileName", "fileSha256", b"fileSha256", "flowId", b"flowId", "galaxyFlowDownloadRequestId", b"galaxyFlowDownloadRequestId", "mediaKey", b"mediaKey", "mediaKeyTimestamp", b"mediaKeyTimestamp", "mimetype", b"mimetype"] # noqa: Y015
- def ClearField(self, field_name: _ClearFieldArgType) -> None: ...
+ @_typing.final
+ class ExtendedTextMessage(_message.Message):
+ DESCRIPTOR: _descriptor.Descriptor
- @_typing.final
- class FullHistorySyncOnDemandRequestResponse(_message.Message):
- DESCRIPTOR: _descriptor.Descriptor
+ class _FontType:
+ ValueType = _typing.NewType("ValueType", _builtins.int)
+ V: _TypeAlias = ValueType # noqa: Y015
- REQUESTMETADATA_FIELD_NUMBER: _builtins.int
- RESPONSECODE_FIELD_NUMBER: _builtins.int
- responseCode: Global___Message.PeerDataOperationRequestResponseMessage.PeerDataOperationResult.FullHistorySyncOnDemandResponseCode.ValueType
- @_builtins.property
- def requestMetadata(self) -> Global___Message.FullHistorySyncOnDemandRequestMetadata: ...
- def __init__(
- self,
- *,
- requestMetadata: Global___Message.FullHistorySyncOnDemandRequestMetadata | None = ...,
- responseCode: Global___Message.PeerDataOperationRequestResponseMessage.PeerDataOperationResult.FullHistorySyncOnDemandResponseCode.ValueType | None = ...,
- ) -> None: ...
- _HasFieldArgType: _TypeAlias = _typing.Literal["requestMetadata", b"requestMetadata", "responseCode", b"responseCode"] # noqa: Y015
- def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ...
- _ClearFieldArgType: _TypeAlias = _typing.Literal["requestMetadata", b"requestMetadata", "responseCode", b"responseCode"] # noqa: Y015
- def ClearField(self, field_name: _ClearFieldArgType) -> None: ...
+ class _FontTypeEnumTypeWrapper(_enum_type_wrapper._EnumTypeWrapper[Message.ExtendedTextMessage._FontType.ValueType], _builtins.type):
+ DESCRIPTOR: _descriptor.EnumDescriptor
+ SYSTEM: Message.ExtendedTextMessage._FontType.ValueType # 0
+ SYSTEM_TEXT: Message.ExtendedTextMessage._FontType.ValueType # 1
+ FB_SCRIPT: Message.ExtendedTextMessage._FontType.ValueType # 2
+ SYSTEM_BOLD: Message.ExtendedTextMessage._FontType.ValueType # 6
+ MORNINGBREEZE_REGULAR: Message.ExtendedTextMessage._FontType.ValueType # 7
+ CALISTOGA_REGULAR: Message.ExtendedTextMessage._FontType.ValueType # 8
+ EXO2_EXTRABOLD: Message.ExtendedTextMessage._FontType.ValueType # 9
+ COURIERPRIME_BOLD: Message.ExtendedTextMessage._FontType.ValueType # 10
- @_typing.final
- class HistorySyncChunkRetryResponse(_message.Message):
- DESCRIPTOR: _descriptor.Descriptor
+ class FontType(_FontType, metaclass=_FontTypeEnumTypeWrapper): ...
+ SYSTEM: Message.ExtendedTextMessage.FontType.ValueType # 0
+ SYSTEM_TEXT: Message.ExtendedTextMessage.FontType.ValueType # 1
+ FB_SCRIPT: Message.ExtendedTextMessage.FontType.ValueType # 2
+ SYSTEM_BOLD: Message.ExtendedTextMessage.FontType.ValueType # 6
+ MORNINGBREEZE_REGULAR: Message.ExtendedTextMessage.FontType.ValueType # 7
+ CALISTOGA_REGULAR: Message.ExtendedTextMessage.FontType.ValueType # 8
+ EXO2_EXTRABOLD: Message.ExtendedTextMessage.FontType.ValueType # 9
+ COURIERPRIME_BOLD: Message.ExtendedTextMessage.FontType.ValueType # 10
- SYNCTYPE_FIELD_NUMBER: _builtins.int
- CHUNKORDER_FIELD_NUMBER: _builtins.int
- REQUESTID_FIELD_NUMBER: _builtins.int
- RESPONSECODE_FIELD_NUMBER: _builtins.int
- CANRECOVER_FIELD_NUMBER: _builtins.int
- syncType: Global___Message.HistorySyncType.ValueType
- chunkOrder: _builtins.int
- requestId: _builtins.str
- responseCode: Global___Message.PeerDataOperationRequestResponseMessage.PeerDataOperationResult.HistorySyncChunkRetryResponseCode.ValueType
- canRecover: _builtins.bool
- def __init__(
- self,
- *,
- syncType: Global___Message.HistorySyncType.ValueType | None = ...,
- chunkOrder: _builtins.int | None = ...,
- requestId: _builtins.str | None = ...,
- responseCode: Global___Message.PeerDataOperationRequestResponseMessage.PeerDataOperationResult.HistorySyncChunkRetryResponseCode.ValueType | None = ...,
- canRecover: _builtins.bool | None = ...,
- ) -> None: ...
- _HasFieldArgType: _TypeAlias = _typing.Literal["canRecover", b"canRecover", "chunkOrder", b"chunkOrder", "requestId", b"requestId", "responseCode", b"responseCode", "syncType", b"syncType"] # noqa: Y015
- def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ...
- _ClearFieldArgType: _TypeAlias = _typing.Literal["canRecover", b"canRecover", "chunkOrder", b"chunkOrder", "requestId", b"requestId", "responseCode", b"responseCode", "syncType", b"syncType"] # noqa: Y015
- def ClearField(self, field_name: _ClearFieldArgType) -> None: ...
+ class _InviteLinkGroupType:
+ ValueType = _typing.NewType("ValueType", _builtins.int)
+ V: _TypeAlias = ValueType # noqa: Y015
- @_typing.final
- class LinkPreviewResponse(_message.Message):
- DESCRIPTOR: _descriptor.Descriptor
+ class _InviteLinkGroupTypeEnumTypeWrapper(_enum_type_wrapper._EnumTypeWrapper[Message.ExtendedTextMessage._InviteLinkGroupType.ValueType], _builtins.type):
+ DESCRIPTOR: _descriptor.EnumDescriptor
+ DEFAULT: Message.ExtendedTextMessage._InviteLinkGroupType.ValueType # 0
+ PARENT: Message.ExtendedTextMessage._InviteLinkGroupType.ValueType # 1
+ SUB: Message.ExtendedTextMessage._InviteLinkGroupType.ValueType # 2
+ DEFAULT_SUB: Message.ExtendedTextMessage._InviteLinkGroupType.ValueType # 3
- @_typing.final
- class LinkPreviewHighQualityThumbnail(_message.Message):
- DESCRIPTOR: _descriptor.Descriptor
+ class InviteLinkGroupType(_InviteLinkGroupType, metaclass=_InviteLinkGroupTypeEnumTypeWrapper): ...
+ DEFAULT: Message.ExtendedTextMessage.InviteLinkGroupType.ValueType # 0
+ PARENT: Message.ExtendedTextMessage.InviteLinkGroupType.ValueType # 1
+ SUB: Message.ExtendedTextMessage.InviteLinkGroupType.ValueType # 2
+ DEFAULT_SUB: Message.ExtendedTextMessage.InviteLinkGroupType.ValueType # 3
- DIRECTPATH_FIELD_NUMBER: _builtins.int
- THUMBHASH_FIELD_NUMBER: _builtins.int
- ENCTHUMBHASH_FIELD_NUMBER: _builtins.int
- MEDIAKEY_FIELD_NUMBER: _builtins.int
- MEDIAKEYTIMESTAMPMS_FIELD_NUMBER: _builtins.int
- THUMBWIDTH_FIELD_NUMBER: _builtins.int
- THUMBHEIGHT_FIELD_NUMBER: _builtins.int
- directPath: _builtins.str
- thumbHash: _builtins.str
- encThumbHash: _builtins.str
- mediaKey: _builtins.bytes
- mediaKeyTimestampMs: _builtins.int
- thumbWidth: _builtins.int
- thumbHeight: _builtins.int
- def __init__(
- self,
- *,
- directPath: _builtins.str | None = ...,
- thumbHash: _builtins.str | None = ...,
- encThumbHash: _builtins.str | None = ...,
- mediaKey: _builtins.bytes | None = ...,
- mediaKeyTimestampMs: _builtins.int | None = ...,
- thumbWidth: _builtins.int | None = ...,
- thumbHeight: _builtins.int | None = ...,
- ) -> None: ...
- _HasFieldArgType: _TypeAlias = _typing.Literal["directPath", b"directPath", "encThumbHash", b"encThumbHash", "mediaKey", b"mediaKey", "mediaKeyTimestampMs", b"mediaKeyTimestampMs", "thumbHash", b"thumbHash", "thumbHeight", b"thumbHeight", "thumbWidth", b"thumbWidth"] # noqa: Y015
- def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ...
- _ClearFieldArgType: _TypeAlias = _typing.Literal["directPath", b"directPath", "encThumbHash", b"encThumbHash", "mediaKey", b"mediaKey", "mediaKeyTimestampMs", b"mediaKeyTimestampMs", "thumbHash", b"thumbHash", "thumbHeight", b"thumbHeight", "thumbWidth", b"thumbWidth"] # noqa: Y015
- def ClearField(self, field_name: _ClearFieldArgType) -> None: ...
+ class _PreviewType:
+ ValueType = _typing.NewType("ValueType", _builtins.int)
+ V: _TypeAlias = ValueType # noqa: Y015
- @_typing.final
- class PaymentLinkPreviewMetadata(_message.Message):
- DESCRIPTOR: _descriptor.Descriptor
+ class _PreviewTypeEnumTypeWrapper(_enum_type_wrapper._EnumTypeWrapper[Message.ExtendedTextMessage._PreviewType.ValueType], _builtins.type):
+ DESCRIPTOR: _descriptor.EnumDescriptor
+ NONE: Message.ExtendedTextMessage._PreviewType.ValueType # 0
+ VIDEO: Message.ExtendedTextMessage._PreviewType.ValueType # 1
+ PLACEHOLDER: Message.ExtendedTextMessage._PreviewType.ValueType # 4
+ IMAGE: Message.ExtendedTextMessage._PreviewType.ValueType # 5
+ PAYMENT_LINKS: Message.ExtendedTextMessage._PreviewType.ValueType # 6
+ PROFILE: Message.ExtendedTextMessage._PreviewType.ValueType # 7
- ISBUSINESSVERIFIED_FIELD_NUMBER: _builtins.int
- PROVIDERNAME_FIELD_NUMBER: _builtins.int
- AMOUNT_FIELD_NUMBER: _builtins.int
- OFFSET_FIELD_NUMBER: _builtins.int
- CURRENCY_FIELD_NUMBER: _builtins.int
- isBusinessVerified: _builtins.bool
- providerName: _builtins.str
- amount: _builtins.str
- offset: _builtins.str
- currency: _builtins.str
- def __init__(
- self,
- *,
- isBusinessVerified: _builtins.bool | None = ...,
- providerName: _builtins.str | None = ...,
- amount: _builtins.str | None = ...,
- offset: _builtins.str | None = ...,
- currency: _builtins.str | None = ...,
- ) -> None: ...
- _HasFieldArgType: _TypeAlias = _typing.Literal["amount", b"amount", "currency", b"currency", "isBusinessVerified", b"isBusinessVerified", "offset", b"offset", "providerName", b"providerName"] # noqa: Y015
- def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ...
- _ClearFieldArgType: _TypeAlias = _typing.Literal["amount", b"amount", "currency", b"currency", "isBusinessVerified", b"isBusinessVerified", "offset", b"offset", "providerName", b"providerName"] # noqa: Y015
- def ClearField(self, field_name: _ClearFieldArgType) -> None: ...
+ class PreviewType(_PreviewType, metaclass=_PreviewTypeEnumTypeWrapper): ...
+ NONE: Message.ExtendedTextMessage.PreviewType.ValueType # 0
+ VIDEO: Message.ExtendedTextMessage.PreviewType.ValueType # 1
+ PLACEHOLDER: Message.ExtendedTextMessage.PreviewType.ValueType # 4
+ IMAGE: Message.ExtendedTextMessage.PreviewType.ValueType # 5
+ PAYMENT_LINKS: Message.ExtendedTextMessage.PreviewType.ValueType # 6
+ PROFILE: Message.ExtendedTextMessage.PreviewType.ValueType # 7
- URL_FIELD_NUMBER: _builtins.int
- TITLE_FIELD_NUMBER: _builtins.int
- DESCRIPTION_FIELD_NUMBER: _builtins.int
- THUMBDATA_FIELD_NUMBER: _builtins.int
- MATCHTEXT_FIELD_NUMBER: _builtins.int
- PREVIEWTYPE_FIELD_NUMBER: _builtins.int
- HQTHUMBNAIL_FIELD_NUMBER: _builtins.int
- PREVIEWMETADATA_FIELD_NUMBER: _builtins.int
- url: _builtins.str
- title: _builtins.str
- description: _builtins.str
- thumbData: _builtins.bytes
- matchText: _builtins.str
- previewType: _builtins.str
- @_builtins.property
- def hqThumbnail(self) -> Global___Message.PeerDataOperationRequestResponseMessage.PeerDataOperationResult.LinkPreviewResponse.LinkPreviewHighQualityThumbnail: ...
- @_builtins.property
- def previewMetadata(self) -> Global___Message.PeerDataOperationRequestResponseMessage.PeerDataOperationResult.LinkPreviewResponse.PaymentLinkPreviewMetadata: ...
- def __init__(
- self,
- *,
- url: _builtins.str | None = ...,
- title: _builtins.str | None = ...,
- description: _builtins.str | None = ...,
- thumbData: _builtins.bytes | None = ...,
- matchText: _builtins.str | None = ...,
- previewType: _builtins.str | None = ...,
- hqThumbnail: Global___Message.PeerDataOperationRequestResponseMessage.PeerDataOperationResult.LinkPreviewResponse.LinkPreviewHighQualityThumbnail | None = ...,
- previewMetadata: Global___Message.PeerDataOperationRequestResponseMessage.PeerDataOperationResult.LinkPreviewResponse.PaymentLinkPreviewMetadata | None = ...,
- ) -> None: ...
- _HasFieldArgType: _TypeAlias = _typing.Literal["description", b"description", "hqThumbnail", b"hqThumbnail", "matchText", b"matchText", "previewMetadata", b"previewMetadata", "previewType", b"previewType", "thumbData", b"thumbData", "title", b"title", "url", b"url"] # noqa: Y015
- def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ...
- _ClearFieldArgType: _TypeAlias = _typing.Literal["description", b"description", "hqThumbnail", b"hqThumbnail", "matchText", b"matchText", "previewMetadata", b"previewMetadata", "previewType", b"previewType", "thumbData", b"thumbData", "title", b"title", "url", b"url"] # noqa: Y015
- def ClearField(self, field_name: _ClearFieldArgType) -> None: ...
-
- @_typing.final
- class PlaceholderMessageResendResponse(_message.Message):
- DESCRIPTOR: _descriptor.Descriptor
-
- WEBMESSAGEINFOBYTES_FIELD_NUMBER: _builtins.int
- webMessageInfoBytes: _builtins.bytes
- def __init__(
- self,
- *,
- webMessageInfoBytes: _builtins.bytes | None = ...,
- ) -> None: ...
- _HasFieldArgType: _TypeAlias = _typing.Literal["webMessageInfoBytes", b"webMessageInfoBytes"] # noqa: Y015
- def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ...
- _ClearFieldArgType: _TypeAlias = _typing.Literal["webMessageInfoBytes", b"webMessageInfoBytes"] # noqa: Y015
- def ClearField(self, field_name: _ClearFieldArgType) -> None: ...
-
- @_typing.final
- class SyncDSnapshotFatalRecoveryResponse(_message.Message):
- DESCRIPTOR: _descriptor.Descriptor
-
- COLLECTIONSNAPSHOT_FIELD_NUMBER: _builtins.int
- ISCOMPRESSED_FIELD_NUMBER: _builtins.int
- collectionSnapshot: _builtins.bytes
- isCompressed: _builtins.bool
- def __init__(
- self,
- *,
- collectionSnapshot: _builtins.bytes | None = ...,
- isCompressed: _builtins.bool | None = ...,
- ) -> None: ...
- _HasFieldArgType: _TypeAlias = _typing.Literal["collectionSnapshot", b"collectionSnapshot", "isCompressed", b"isCompressed"] # noqa: Y015
- def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ...
- _ClearFieldArgType: _TypeAlias = _typing.Literal["collectionSnapshot", b"collectionSnapshot", "isCompressed", b"isCompressed"] # noqa: Y015
- def ClearField(self, field_name: _ClearFieldArgType) -> None: ...
-
- @_typing.final
- class WaffleNonceFetchResponse(_message.Message):
- DESCRIPTOR: _descriptor.Descriptor
-
- NONCE_FIELD_NUMBER: _builtins.int
- WAENTFBID_FIELD_NUMBER: _builtins.int
- nonce: _builtins.str
- waEntFbid: _builtins.str
- def __init__(
- self,
- *,
- nonce: _builtins.str | None = ...,
- waEntFbid: _builtins.str | None = ...,
- ) -> None: ...
- _HasFieldArgType: _TypeAlias = _typing.Literal["nonce", b"nonce", "waEntFbid", b"waEntFbid"] # noqa: Y015
- def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ...
- _ClearFieldArgType: _TypeAlias = _typing.Literal["nonce", b"nonce", "waEntFbid", b"waEntFbid"] # noqa: Y015
- def ClearField(self, field_name: _ClearFieldArgType) -> None: ...
-
- MEDIAUPLOADRESULT_FIELD_NUMBER: _builtins.int
- STICKERMESSAGE_FIELD_NUMBER: _builtins.int
- LINKPREVIEWRESPONSE_FIELD_NUMBER: _builtins.int
- PLACEHOLDERMESSAGERESENDRESPONSE_FIELD_NUMBER: _builtins.int
- WAFFLENONCEFETCHREQUESTRESPONSE_FIELD_NUMBER: _builtins.int
- FULLHISTORYSYNCONDEMANDREQUESTRESPONSE_FIELD_NUMBER: _builtins.int
- COMPANIONMETANONCEFETCHREQUESTRESPONSE_FIELD_NUMBER: _builtins.int
- SYNCDSNAPSHOTFATALRECOVERYRESPONSE_FIELD_NUMBER: _builtins.int
- COMPANIONCANONICALUSERNONCEFETCHREQUESTRESPONSE_FIELD_NUMBER: _builtins.int
- HISTORYSYNCCHUNKRETRYRESPONSE_FIELD_NUMBER: _builtins.int
- FLOWRESPONSESCSVBUNDLE_FIELD_NUMBER: _builtins.int
- BIZBROADCASTINSIGHTSCONTACTLISTRESPONSE_FIELD_NUMBER: _builtins.int
- mediaUploadResult: Global___MediaRetryNotification.ResultType.ValueType
- @_builtins.property
- def stickerMessage(self) -> Global___Message.StickerMessage: ...
- @_builtins.property
- def linkPreviewResponse(self) -> Global___Message.PeerDataOperationRequestResponseMessage.PeerDataOperationResult.LinkPreviewResponse: ...
- @_builtins.property
- def placeholderMessageResendResponse(self) -> Global___Message.PeerDataOperationRequestResponseMessage.PeerDataOperationResult.PlaceholderMessageResendResponse: ...
- @_builtins.property
- def waffleNonceFetchRequestResponse(self) -> Global___Message.PeerDataOperationRequestResponseMessage.PeerDataOperationResult.WaffleNonceFetchResponse: ...
- @_builtins.property
- def fullHistorySyncOnDemandRequestResponse(self) -> Global___Message.PeerDataOperationRequestResponseMessage.PeerDataOperationResult.FullHistorySyncOnDemandRequestResponse: ...
- @_builtins.property
- def companionMetaNonceFetchRequestResponse(self) -> Global___Message.PeerDataOperationRequestResponseMessage.PeerDataOperationResult.CompanionMetaNonceFetchResponse: ...
- @_builtins.property
- def syncdSnapshotFatalRecoveryResponse(self) -> Global___Message.PeerDataOperationRequestResponseMessage.PeerDataOperationResult.SyncDSnapshotFatalRecoveryResponse: ...
- @_builtins.property
- def companionCanonicalUserNonceFetchRequestResponse(self) -> Global___Message.PeerDataOperationRequestResponseMessage.PeerDataOperationResult.CompanionCanonicalUserNonceFetchResponse: ...
- @_builtins.property
- def historySyncChunkRetryResponse(self) -> Global___Message.PeerDataOperationRequestResponseMessage.PeerDataOperationResult.HistorySyncChunkRetryResponse: ...
- @_builtins.property
- def flowResponsesCsvBundle(self) -> Global___Message.PeerDataOperationRequestResponseMessage.PeerDataOperationResult.FlowResponsesCsvBundle: ...
- @_builtins.property
- def bizBroadcastInsightsContactListResponse(self) -> Global___Message.PeerDataOperationRequestResponseMessage.PeerDataOperationResult.BizBroadcastInsightsContactListResponse: ...
- def __init__(
- self,
- *,
- mediaUploadResult: Global___MediaRetryNotification.ResultType.ValueType | None = ...,
- stickerMessage: Global___Message.StickerMessage | None = ...,
- linkPreviewResponse: Global___Message.PeerDataOperationRequestResponseMessage.PeerDataOperationResult.LinkPreviewResponse | None = ...,
- placeholderMessageResendResponse: Global___Message.PeerDataOperationRequestResponseMessage.PeerDataOperationResult.PlaceholderMessageResendResponse | None = ...,
- waffleNonceFetchRequestResponse: Global___Message.PeerDataOperationRequestResponseMessage.PeerDataOperationResult.WaffleNonceFetchResponse | None = ...,
- fullHistorySyncOnDemandRequestResponse: Global___Message.PeerDataOperationRequestResponseMessage.PeerDataOperationResult.FullHistorySyncOnDemandRequestResponse | None = ...,
- companionMetaNonceFetchRequestResponse: Global___Message.PeerDataOperationRequestResponseMessage.PeerDataOperationResult.CompanionMetaNonceFetchResponse | None = ...,
- syncdSnapshotFatalRecoveryResponse: Global___Message.PeerDataOperationRequestResponseMessage.PeerDataOperationResult.SyncDSnapshotFatalRecoveryResponse | None = ...,
- companionCanonicalUserNonceFetchRequestResponse: Global___Message.PeerDataOperationRequestResponseMessage.PeerDataOperationResult.CompanionCanonicalUserNonceFetchResponse | None = ...,
- historySyncChunkRetryResponse: Global___Message.PeerDataOperationRequestResponseMessage.PeerDataOperationResult.HistorySyncChunkRetryResponse | None = ...,
- flowResponsesCsvBundle: Global___Message.PeerDataOperationRequestResponseMessage.PeerDataOperationResult.FlowResponsesCsvBundle | None = ...,
- bizBroadcastInsightsContactListResponse: Global___Message.PeerDataOperationRequestResponseMessage.PeerDataOperationResult.BizBroadcastInsightsContactListResponse | None = ...,
- ) -> None: ...
- _HasFieldArgType: _TypeAlias = _typing.Literal["bizBroadcastInsightsContactListResponse", b"bizBroadcastInsightsContactListResponse", "companionCanonicalUserNonceFetchRequestResponse", b"companionCanonicalUserNonceFetchRequestResponse", "companionMetaNonceFetchRequestResponse", b"companionMetaNonceFetchRequestResponse", "flowResponsesCsvBundle", b"flowResponsesCsvBundle", "fullHistorySyncOnDemandRequestResponse", b"fullHistorySyncOnDemandRequestResponse", "historySyncChunkRetryResponse", b"historySyncChunkRetryResponse", "linkPreviewResponse", b"linkPreviewResponse", "mediaUploadResult", b"mediaUploadResult", "placeholderMessageResendResponse", b"placeholderMessageResendResponse", "stickerMessage", b"stickerMessage", "syncdSnapshotFatalRecoveryResponse", b"syncdSnapshotFatalRecoveryResponse", "waffleNonceFetchRequestResponse", b"waffleNonceFetchRequestResponse"] # noqa: Y015
- def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ...
- _ClearFieldArgType: _TypeAlias = _typing.Literal["bizBroadcastInsightsContactListResponse", b"bizBroadcastInsightsContactListResponse", "companionCanonicalUserNonceFetchRequestResponse", b"companionCanonicalUserNonceFetchRequestResponse", "companionMetaNonceFetchRequestResponse", b"companionMetaNonceFetchRequestResponse", "flowResponsesCsvBundle", b"flowResponsesCsvBundle", "fullHistorySyncOnDemandRequestResponse", b"fullHistorySyncOnDemandRequestResponse", "historySyncChunkRetryResponse", b"historySyncChunkRetryResponse", "linkPreviewResponse", b"linkPreviewResponse", "mediaUploadResult", b"mediaUploadResult", "placeholderMessageResendResponse", b"placeholderMessageResendResponse", "stickerMessage", b"stickerMessage", "syncdSnapshotFatalRecoveryResponse", b"syncdSnapshotFatalRecoveryResponse", "waffleNonceFetchRequestResponse", b"waffleNonceFetchRequestResponse"] # noqa: Y015
- def ClearField(self, field_name: _ClearFieldArgType) -> None: ...
-
- PEERDATAOPERATIONREQUESTTYPE_FIELD_NUMBER: _builtins.int
- STANZAID_FIELD_NUMBER: _builtins.int
- PEERDATAOPERATIONRESULT_FIELD_NUMBER: _builtins.int
- peerDataOperationRequestType: Global___Message.PeerDataOperationRequestType.ValueType
- stanzaId: _builtins.str
+ TEXT_FIELD_NUMBER: _builtins.int
+ MATCHEDTEXT_FIELD_NUMBER: _builtins.int
+ DESCRIPTION_FIELD_NUMBER: _builtins.int
+ TITLE_FIELD_NUMBER: _builtins.int
+ TEXTARGB_FIELD_NUMBER: _builtins.int
+ BACKGROUNDARGB_FIELD_NUMBER: _builtins.int
+ FONT_FIELD_NUMBER: _builtins.int
+ PREVIEWTYPE_FIELD_NUMBER: _builtins.int
+ JPEGTHUMBNAIL_FIELD_NUMBER: _builtins.int
+ CONTEXTINFO_FIELD_NUMBER: _builtins.int
+ DONOTPLAYINLINE_FIELD_NUMBER: _builtins.int
+ THUMBNAILDIRECTPATH_FIELD_NUMBER: _builtins.int
+ THUMBNAILSHA256_FIELD_NUMBER: _builtins.int
+ THUMBNAILENCSHA256_FIELD_NUMBER: _builtins.int
+ MEDIAKEY_FIELD_NUMBER: _builtins.int
+ MEDIAKEYTIMESTAMP_FIELD_NUMBER: _builtins.int
+ THUMBNAILHEIGHT_FIELD_NUMBER: _builtins.int
+ THUMBNAILWIDTH_FIELD_NUMBER: _builtins.int
+ INVITELINKGROUPTYPE_FIELD_NUMBER: _builtins.int
+ INVITELINKPARENTGROUPSUBJECTV2_FIELD_NUMBER: _builtins.int
+ INVITELINKPARENTGROUPTHUMBNAILV2_FIELD_NUMBER: _builtins.int
+ INVITELINKGROUPTYPEV2_FIELD_NUMBER: _builtins.int
+ VIEWONCE_FIELD_NUMBER: _builtins.int
+ VIDEOHEIGHT_FIELD_NUMBER: _builtins.int
+ VIDEOWIDTH_FIELD_NUMBER: _builtins.int
+ FAVICONMMSMETADATA_FIELD_NUMBER: _builtins.int
+ LINKPREVIEWMETADATA_FIELD_NUMBER: _builtins.int
+ PAYMENTLINKMETADATA_FIELD_NUMBER: _builtins.int
+ ENDCARDTILES_FIELD_NUMBER: _builtins.int
+ VIDEOCONTENTURL_FIELD_NUMBER: _builtins.int
+ MUSICMETADATA_FIELD_NUMBER: _builtins.int
+ PAYMENTEXTENDEDMETADATA_FIELD_NUMBER: _builtins.int
+ text: _builtins.str
+ matchedText: _builtins.str
+ description: _builtins.str
+ title: _builtins.str
+ textArgb: _builtins.int
+ backgroundArgb: _builtins.int
+ font: Global___Message.ExtendedTextMessage.FontType.ValueType
+ previewType: Global___Message.ExtendedTextMessage.PreviewType.ValueType
+ jpegThumbnail: _builtins.bytes
+ doNotPlayInline: _builtins.bool
+ thumbnailDirectPath: _builtins.str
+ thumbnailSha256: _builtins.bytes
+ thumbnailEncSha256: _builtins.bytes
+ mediaKey: _builtins.bytes
+ mediaKeyTimestamp: _builtins.int
+ thumbnailHeight: _builtins.int
+ thumbnailWidth: _builtins.int
+ inviteLinkGroupType: Global___Message.ExtendedTextMessage.InviteLinkGroupType.ValueType
+ inviteLinkParentGroupSubjectV2: _builtins.str
+ inviteLinkParentGroupThumbnailV2: _builtins.bytes
+ inviteLinkGroupTypeV2: Global___Message.ExtendedTextMessage.InviteLinkGroupType.ValueType
+ viewOnce: _builtins.bool
+ videoHeight: _builtins.int
+ videoWidth: _builtins.int
+ videoContentUrl: _builtins.str
@_builtins.property
- def peerDataOperationResult(self) -> _containers.RepeatedCompositeFieldContainer[Global___Message.PeerDataOperationRequestResponseMessage.PeerDataOperationResult]: ...
+ def contextInfo(self) -> Global___ContextInfo: ...
+ @_builtins.property
+ def faviconMmsMetadata(self) -> Global___Message.MMSThumbnailMetadata: ...
+ @_builtins.property
+ def linkPreviewMetadata(self) -> Global___Message.LinkPreviewMetadata: ...
+ @_builtins.property
+ def paymentLinkMetadata(self) -> Global___Message.PaymentLinkMetadata: ...
+ @_builtins.property
+ def endCardTiles(self) -> _containers.RepeatedCompositeFieldContainer[Global___Message.VideoEndCard]: ...
+ @_builtins.property
+ def musicMetadata(self) -> Global___EmbeddedMusic: ...
+ @_builtins.property
+ def paymentExtendedMetadata(self) -> Global___Message.PaymentExtendedMetadata: ...
def __init__(
self,
*,
- peerDataOperationRequestType: Global___Message.PeerDataOperationRequestType.ValueType | None = ...,
- stanzaId: _builtins.str | None = ...,
- peerDataOperationResult: _abc.Iterable[Global___Message.PeerDataOperationRequestResponseMessage.PeerDataOperationResult] | None = ...,
+ text: _builtins.str | None = ...,
+ matchedText: _builtins.str | None = ...,
+ description: _builtins.str | None = ...,
+ title: _builtins.str | None = ...,
+ textArgb: _builtins.int | None = ...,
+ backgroundArgb: _builtins.int | None = ...,
+ font: Global___Message.ExtendedTextMessage.FontType.ValueType | None = ...,
+ previewType: Global___Message.ExtendedTextMessage.PreviewType.ValueType | None = ...,
+ jpegThumbnail: _builtins.bytes | None = ...,
+ contextInfo: Global___ContextInfo | None = ...,
+ doNotPlayInline: _builtins.bool | None = ...,
+ thumbnailDirectPath: _builtins.str | None = ...,
+ thumbnailSha256: _builtins.bytes | None = ...,
+ thumbnailEncSha256: _builtins.bytes | None = ...,
+ mediaKey: _builtins.bytes | None = ...,
+ mediaKeyTimestamp: _builtins.int | None = ...,
+ thumbnailHeight: _builtins.int | None = ...,
+ thumbnailWidth: _builtins.int | None = ...,
+ inviteLinkGroupType: Global___Message.ExtendedTextMessage.InviteLinkGroupType.ValueType | None = ...,
+ inviteLinkParentGroupSubjectV2: _builtins.str | None = ...,
+ inviteLinkParentGroupThumbnailV2: _builtins.bytes | None = ...,
+ inviteLinkGroupTypeV2: Global___Message.ExtendedTextMessage.InviteLinkGroupType.ValueType | None = ...,
+ viewOnce: _builtins.bool | None = ...,
+ videoHeight: _builtins.int | None = ...,
+ videoWidth: _builtins.int | None = ...,
+ faviconMmsMetadata: Global___Message.MMSThumbnailMetadata | None = ...,
+ linkPreviewMetadata: Global___Message.LinkPreviewMetadata | None = ...,
+ paymentLinkMetadata: Global___Message.PaymentLinkMetadata | None = ...,
+ endCardTiles: _abc.Iterable[Global___Message.VideoEndCard] | None = ...,
+ videoContentUrl: _builtins.str | None = ...,
+ musicMetadata: Global___EmbeddedMusic | None = ...,
+ paymentExtendedMetadata: Global___Message.PaymentExtendedMetadata | None = ...,
) -> None: ...
- _HasFieldArgType: _TypeAlias = _typing.Literal["peerDataOperationRequestType", b"peerDataOperationRequestType", "stanzaId", b"stanzaId"] # noqa: Y015
+ _HasFieldArgType: _TypeAlias = _typing.Literal["backgroundArgb", b"backgroundArgb", "contextInfo", b"contextInfo", "description", b"description", "doNotPlayInline", b"doNotPlayInline", "faviconMmsMetadata", b"faviconMmsMetadata", "font", b"font", "inviteLinkGroupType", b"inviteLinkGroupType", "inviteLinkGroupTypeV2", b"inviteLinkGroupTypeV2", "inviteLinkParentGroupSubjectV2", b"inviteLinkParentGroupSubjectV2", "inviteLinkParentGroupThumbnailV2", b"inviteLinkParentGroupThumbnailV2", "jpegThumbnail", b"jpegThumbnail", "linkPreviewMetadata", b"linkPreviewMetadata", "matchedText", b"matchedText", "mediaKey", b"mediaKey", "mediaKeyTimestamp", b"mediaKeyTimestamp", "musicMetadata", b"musicMetadata", "paymentExtendedMetadata", b"paymentExtendedMetadata", "paymentLinkMetadata", b"paymentLinkMetadata", "previewType", b"previewType", "text", b"text", "textArgb", b"textArgb", "thumbnailDirectPath", b"thumbnailDirectPath", "thumbnailEncSha256", b"thumbnailEncSha256", "thumbnailHeight", b"thumbnailHeight", "thumbnailSha256", b"thumbnailSha256", "thumbnailWidth", b"thumbnailWidth", "title", b"title", "videoContentUrl", b"videoContentUrl", "videoHeight", b"videoHeight", "videoWidth", b"videoWidth", "viewOnce", b"viewOnce"] # noqa: Y015
def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ...
- _ClearFieldArgType: _TypeAlias = _typing.Literal["peerDataOperationRequestType", b"peerDataOperationRequestType", "peerDataOperationResult", b"peerDataOperationResult", "stanzaId", b"stanzaId"] # noqa: Y015
+ _ClearFieldArgType: _TypeAlias = _typing.Literal["backgroundArgb", b"backgroundArgb", "contextInfo", b"contextInfo", "description", b"description", "doNotPlayInline", b"doNotPlayInline", "endCardTiles", b"endCardTiles", "faviconMmsMetadata", b"faviconMmsMetadata", "font", b"font", "inviteLinkGroupType", b"inviteLinkGroupType", "inviteLinkGroupTypeV2", b"inviteLinkGroupTypeV2", "inviteLinkParentGroupSubjectV2", b"inviteLinkParentGroupSubjectV2", "inviteLinkParentGroupThumbnailV2", b"inviteLinkParentGroupThumbnailV2", "jpegThumbnail", b"jpegThumbnail", "linkPreviewMetadata", b"linkPreviewMetadata", "matchedText", b"matchedText", "mediaKey", b"mediaKey", "mediaKeyTimestamp", b"mediaKeyTimestamp", "musicMetadata", b"musicMetadata", "paymentExtendedMetadata", b"paymentExtendedMetadata", "paymentLinkMetadata", b"paymentLinkMetadata", "previewType", b"previewType", "text", b"text", "textArgb", b"textArgb", "thumbnailDirectPath", b"thumbnailDirectPath", "thumbnailEncSha256", b"thumbnailEncSha256", "thumbnailHeight", b"thumbnailHeight", "thumbnailSha256", b"thumbnailSha256", "thumbnailWidth", b"thumbnailWidth", "title", b"title", "videoContentUrl", b"videoContentUrl", "videoHeight", b"videoHeight", "videoWidth", b"videoWidth", "viewOnce", b"viewOnce"] # noqa: Y015
def ClearField(self, field_name: _ClearFieldArgType) -> None: ...
@_typing.final
- class PinInChatMessage(_message.Message):
+ class FullHistorySyncOnDemandConfig(_message.Message):
DESCRIPTOR: _descriptor.Descriptor
- class _Type:
- ValueType = _typing.NewType("ValueType", _builtins.int)
- V: _TypeAlias = ValueType # noqa: Y015
-
- class _TypeEnumTypeWrapper(_enum_type_wrapper._EnumTypeWrapper[Message.PinInChatMessage._Type.ValueType], _builtins.type):
- DESCRIPTOR: _descriptor.EnumDescriptor
- UNKNOWN_TYPE: Message.PinInChatMessage._Type.ValueType # 0
- PIN_FOR_ALL: Message.PinInChatMessage._Type.ValueType # 1
- UNPIN_FOR_ALL: Message.PinInChatMessage._Type.ValueType # 2
-
- class Type(_Type, metaclass=_TypeEnumTypeWrapper): ...
- UNKNOWN_TYPE: Message.PinInChatMessage.Type.ValueType # 0
- PIN_FOR_ALL: Message.PinInChatMessage.Type.ValueType # 1
- UNPIN_FOR_ALL: Message.PinInChatMessage.Type.ValueType # 2
-
- KEY_FIELD_NUMBER: _builtins.int
- TYPE_FIELD_NUMBER: _builtins.int
- SENDERTIMESTAMPMS_FIELD_NUMBER: _builtins.int
- type: Global___Message.PinInChatMessage.Type.ValueType
- senderTimestampMs: _builtins.int
- @_builtins.property
- def key(self) -> Global___MessageKey: ...
+ HISTORYFROMTIMESTAMP_FIELD_NUMBER: _builtins.int
+ HISTORYDURATIONDAYS_FIELD_NUMBER: _builtins.int
+ historyFromTimestamp: _builtins.int
+ historyDurationDays: _builtins.int
def __init__(
self,
*,
- key: Global___MessageKey | None = ...,
- type: Global___Message.PinInChatMessage.Type.ValueType | None = ...,
- senderTimestampMs: _builtins.int | None = ...,
+ historyFromTimestamp: _builtins.int | None = ...,
+ historyDurationDays: _builtins.int | None = ...,
) -> None: ...
- _HasFieldArgType: _TypeAlias = _typing.Literal["key", b"key", "senderTimestampMs", b"senderTimestampMs", "type", b"type"] # noqa: Y015
+ _HasFieldArgType: _TypeAlias = _typing.Literal["historyDurationDays", b"historyDurationDays", "historyFromTimestamp", b"historyFromTimestamp"] # noqa: Y015
def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ...
- _ClearFieldArgType: _TypeAlias = _typing.Literal["key", b"key", "senderTimestampMs", b"senderTimestampMs", "type", b"type"] # noqa: Y015
+ _ClearFieldArgType: _TypeAlias = _typing.Literal["historyDurationDays", b"historyDurationDays", "historyFromTimestamp", b"historyFromTimestamp"] # noqa: Y015
def ClearField(self, field_name: _ClearFieldArgType) -> None: ...
@_typing.final
- class PlaceholderMessage(_message.Message):
+ class FullHistorySyncOnDemandRequestMetadata(_message.Message):
DESCRIPTOR: _descriptor.Descriptor
- class _PlaceholderType:
- ValueType = _typing.NewType("ValueType", _builtins.int)
- V: _TypeAlias = ValueType # noqa: Y015
-
- class _PlaceholderTypeEnumTypeWrapper(_enum_type_wrapper._EnumTypeWrapper[Message.PlaceholderMessage._PlaceholderType.ValueType], _builtins.type):
- DESCRIPTOR: _descriptor.EnumDescriptor
- MASK_LINKED_DEVICES: Message.PlaceholderMessage._PlaceholderType.ValueType # 0
-
- class PlaceholderType(_PlaceholderType, metaclass=_PlaceholderTypeEnumTypeWrapper): ...
- MASK_LINKED_DEVICES: Message.PlaceholderMessage.PlaceholderType.ValueType # 0
-
- TYPE_FIELD_NUMBER: _builtins.int
- type: Global___Message.PlaceholderMessage.PlaceholderType.ValueType
+ REQUESTID_FIELD_NUMBER: _builtins.int
+ BUSINESSPRODUCT_FIELD_NUMBER: _builtins.int
+ OPAQUECLIENTDATA_FIELD_NUMBER: _builtins.int
+ requestId: _builtins.str
+ businessProduct: _builtins.str
+ opaqueClientData: _builtins.bytes
def __init__(
self,
*,
- type: Global___Message.PlaceholderMessage.PlaceholderType.ValueType | None = ...,
+ requestId: _builtins.str | None = ...,
+ businessProduct: _builtins.str | None = ...,
+ opaqueClientData: _builtins.bytes | None = ...,
) -> None: ...
- _HasFieldArgType: _TypeAlias = _typing.Literal["type", b"type"] # noqa: Y015
+ _HasFieldArgType: _TypeAlias = _typing.Literal["businessProduct", b"businessProduct", "opaqueClientData", b"opaqueClientData", "requestId", b"requestId"] # noqa: Y015
def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ...
- _ClearFieldArgType: _TypeAlias = _typing.Literal["type", b"type"] # noqa: Y015
+ _ClearFieldArgType: _TypeAlias = _typing.Literal["businessProduct", b"businessProduct", "opaqueClientData", b"opaqueClientData", "requestId", b"requestId"] # noqa: Y015
def ClearField(self, field_name: _ClearFieldArgType) -> None: ...
@_typing.final
- class PollAddOptionMessage(_message.Message):
+ class FutureProofMessage(_message.Message):
DESCRIPTOR: _descriptor.Descriptor
- POLLCREATIONMESSAGEKEY_FIELD_NUMBER: _builtins.int
- ADDOPTION_FIELD_NUMBER: _builtins.int
- METADATA_FIELD_NUMBER: _builtins.int
- @_builtins.property
- def pollCreationMessageKey(self) -> Global___MessageKey: ...
- @_builtins.property
- def addOption(self) -> Global___Message.PollCreationMessage.Option: ...
+ MESSAGE_FIELD_NUMBER: _builtins.int
@_builtins.property
- def metadata(self) -> Global___Message.PollUpdateMessageMetadata: ...
+ def message(self) -> Global___Message: ...
def __init__(
self,
*,
- pollCreationMessageKey: Global___MessageKey | None = ...,
- addOption: Global___Message.PollCreationMessage.Option | None = ...,
- metadata: Global___Message.PollUpdateMessageMetadata | None = ...,
+ message: Global___Message | None = ...,
) -> None: ...
- _HasFieldArgType: _TypeAlias = _typing.Literal["addOption", b"addOption", "metadata", b"metadata", "pollCreationMessageKey", b"pollCreationMessageKey"] # noqa: Y015
+ _HasFieldArgType: _TypeAlias = _typing.Literal["message", b"message"] # noqa: Y015
def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ...
- _ClearFieldArgType: _TypeAlias = _typing.Literal["addOption", b"addOption", "metadata", b"metadata", "pollCreationMessageKey", b"pollCreationMessageKey"] # noqa: Y015
+ _ClearFieldArgType: _TypeAlias = _typing.Literal["message", b"message"] # noqa: Y015
def ClearField(self, field_name: _ClearFieldArgType) -> None: ...
@_typing.final
- class PollCreationMessage(_message.Message):
+ class GroupInviteMessage(_message.Message):
DESCRIPTOR: _descriptor.Descriptor
- @_typing.final
- class Option(_message.Message):
- DESCRIPTOR: _descriptor.Descriptor
+ class _GroupType:
+ ValueType = _typing.NewType("ValueType", _builtins.int)
+ V: _TypeAlias = ValueType # noqa: Y015
- OPTIONNAME_FIELD_NUMBER: _builtins.int
- OPTIONHASH_FIELD_NUMBER: _builtins.int
- optionName: _builtins.str
- optionHash: _builtins.str
- def __init__(
- self,
- *,
- optionName: _builtins.str | None = ...,
- optionHash: _builtins.str | None = ...,
- ) -> None: ...
- _HasFieldArgType: _TypeAlias = _typing.Literal["optionHash", b"optionHash", "optionName", b"optionName"] # noqa: Y015
- def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ...
- _ClearFieldArgType: _TypeAlias = _typing.Literal["optionHash", b"optionHash", "optionName", b"optionName"] # noqa: Y015
- def ClearField(self, field_name: _ClearFieldArgType) -> None: ...
+ class _GroupTypeEnumTypeWrapper(_enum_type_wrapper._EnumTypeWrapper[Message.GroupInviteMessage._GroupType.ValueType], _builtins.type):
+ DESCRIPTOR: _descriptor.EnumDescriptor
+ DEFAULT: Message.GroupInviteMessage._GroupType.ValueType # 0
+ PARENT: Message.GroupInviteMessage._GroupType.ValueType # 1
- ENCKEY_FIELD_NUMBER: _builtins.int
- NAME_FIELD_NUMBER: _builtins.int
- OPTIONS_FIELD_NUMBER: _builtins.int
- SELECTABLEOPTIONSCOUNT_FIELD_NUMBER: _builtins.int
+ class GroupType(_GroupType, metaclass=_GroupTypeEnumTypeWrapper): ...
+ DEFAULT: Message.GroupInviteMessage.GroupType.ValueType # 0
+ PARENT: Message.GroupInviteMessage.GroupType.ValueType # 1
+
+ GROUPJID_FIELD_NUMBER: _builtins.int
+ INVITECODE_FIELD_NUMBER: _builtins.int
+ INVITEEXPIRATION_FIELD_NUMBER: _builtins.int
+ GROUPNAME_FIELD_NUMBER: _builtins.int
+ JPEGTHUMBNAIL_FIELD_NUMBER: _builtins.int
+ CAPTION_FIELD_NUMBER: _builtins.int
CONTEXTINFO_FIELD_NUMBER: _builtins.int
- POLLCONTENTTYPE_FIELD_NUMBER: _builtins.int
- POLLTYPE_FIELD_NUMBER: _builtins.int
- CORRECTANSWER_FIELD_NUMBER: _builtins.int
- ENDTIME_FIELD_NUMBER: _builtins.int
- HIDEPARTICIPANTNAME_FIELD_NUMBER: _builtins.int
- ALLOWADDOPTION_FIELD_NUMBER: _builtins.int
- encKey: _builtins.bytes
- name: _builtins.str
- selectableOptionsCount: _builtins.int
- pollContentType: Global___Message.PollContentType.ValueType
- pollType: Global___Message.PollType.ValueType
- endTime: _builtins.int
- hideParticipantName: _builtins.bool
- allowAddOption: _builtins.bool
- @_builtins.property
- def options(self) -> _containers.RepeatedCompositeFieldContainer[Global___Message.PollCreationMessage.Option]: ...
+ GROUPTYPE_FIELD_NUMBER: _builtins.int
+ groupJid: _builtins.str
+ inviteCode: _builtins.str
+ inviteExpiration: _builtins.int
+ groupName: _builtins.str
+ jpegThumbnail: _builtins.bytes
+ caption: _builtins.str
+ groupType: Global___Message.GroupInviteMessage.GroupType.ValueType
@_builtins.property
def contextInfo(self) -> Global___ContextInfo: ...
- @_builtins.property
- def correctAnswer(self) -> Global___Message.PollCreationMessage.Option: ...
def __init__(
self,
*,
- encKey: _builtins.bytes | None = ...,
- name: _builtins.str | None = ...,
- options: _abc.Iterable[Global___Message.PollCreationMessage.Option] | None = ...,
- selectableOptionsCount: _builtins.int | None = ...,
+ groupJid: _builtins.str | None = ...,
+ inviteCode: _builtins.str | None = ...,
+ inviteExpiration: _builtins.int | None = ...,
+ groupName: _builtins.str | None = ...,
+ jpegThumbnail: _builtins.bytes | None = ...,
+ caption: _builtins.str | None = ...,
contextInfo: Global___ContextInfo | None = ...,
- pollContentType: Global___Message.PollContentType.ValueType | None = ...,
- pollType: Global___Message.PollType.ValueType | None = ...,
- correctAnswer: Global___Message.PollCreationMessage.Option | None = ...,
- endTime: _builtins.int | None = ...,
- hideParticipantName: _builtins.bool | None = ...,
- allowAddOption: _builtins.bool | None = ...,
- ) -> None: ...
- _HasFieldArgType: _TypeAlias = _typing.Literal["allowAddOption", b"allowAddOption", "contextInfo", b"contextInfo", "correctAnswer", b"correctAnswer", "encKey", b"encKey", "endTime", b"endTime", "hideParticipantName", b"hideParticipantName", "name", b"name", "pollContentType", b"pollContentType", "pollType", b"pollType", "selectableOptionsCount", b"selectableOptionsCount"] # noqa: Y015
- def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ...
- _ClearFieldArgType: _TypeAlias = _typing.Literal["allowAddOption", b"allowAddOption", "contextInfo", b"contextInfo", "correctAnswer", b"correctAnswer", "encKey", b"encKey", "endTime", b"endTime", "hideParticipantName", b"hideParticipantName", "name", b"name", "options", b"options", "pollContentType", b"pollContentType", "pollType", b"pollType", "selectableOptionsCount", b"selectableOptionsCount"] # noqa: Y015
- def ClearField(self, field_name: _ClearFieldArgType) -> None: ...
-
- @_typing.final
- class PollEncValue(_message.Message):
- DESCRIPTOR: _descriptor.Descriptor
-
- ENCPAYLOAD_FIELD_NUMBER: _builtins.int
- ENCIV_FIELD_NUMBER: _builtins.int
- encPayload: _builtins.bytes
- encIv: _builtins.bytes
- def __init__(
- self,
- *,
- encPayload: _builtins.bytes | None = ...,
- encIv: _builtins.bytes | None = ...,
+ groupType: Global___Message.GroupInviteMessage.GroupType.ValueType | None = ...,
) -> None: ...
- _HasFieldArgType: _TypeAlias = _typing.Literal["encIv", b"encIv", "encPayload", b"encPayload"] # noqa: Y015
+ _HasFieldArgType: _TypeAlias = _typing.Literal["caption", b"caption", "contextInfo", b"contextInfo", "groupJid", b"groupJid", "groupName", b"groupName", "groupType", b"groupType", "inviteCode", b"inviteCode", "inviteExpiration", b"inviteExpiration", "jpegThumbnail", b"jpegThumbnail"] # noqa: Y015
def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ...
- _ClearFieldArgType: _TypeAlias = _typing.Literal["encIv", b"encIv", "encPayload", b"encPayload"] # noqa: Y015
+ _ClearFieldArgType: _TypeAlias = _typing.Literal["caption", b"caption", "contextInfo", b"contextInfo", "groupJid", b"groupJid", "groupName", b"groupName", "groupType", b"groupType", "inviteCode", b"inviteCode", "inviteExpiration", b"inviteExpiration", "jpegThumbnail", b"jpegThumbnail"] # noqa: Y015
def ClearField(self, field_name: _ClearFieldArgType) -> None: ...
@_typing.final
- class PollResultSnapshotMessage(_message.Message):
+ class HighlyStructuredMessage(_message.Message):
DESCRIPTOR: _descriptor.Descriptor
@_typing.final
- class PollVote(_message.Message):
+ class HSMLocalizableParameter(_message.Message):
DESCRIPTOR: _descriptor.Descriptor
- OPTIONNAME_FIELD_NUMBER: _builtins.int
- OPTIONVOTECOUNT_FIELD_NUMBER: _builtins.int
- optionName: _builtins.str
- optionVoteCount: _builtins.int
- def __init__(
- self,
- *,
- optionName: _builtins.str | None = ...,
- optionVoteCount: _builtins.int | None = ...,
- ) -> None: ...
- _HasFieldArgType: _TypeAlias = _typing.Literal["optionName", b"optionName", "optionVoteCount", b"optionVoteCount"] # noqa: Y015
- def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ...
- _ClearFieldArgType: _TypeAlias = _typing.Literal["optionName", b"optionName", "optionVoteCount", b"optionVoteCount"] # noqa: Y015
- def ClearField(self, field_name: _ClearFieldArgType) -> None: ...
+ @_typing.final
+ class HSMCurrency(_message.Message):
+ DESCRIPTOR: _descriptor.Descriptor
- NAME_FIELD_NUMBER: _builtins.int
- POLLVOTES_FIELD_NUMBER: _builtins.int
- CONTEXTINFO_FIELD_NUMBER: _builtins.int
- POLLTYPE_FIELD_NUMBER: _builtins.int
- name: _builtins.str
- pollType: Global___Message.PollType.ValueType
- @_builtins.property
- def pollVotes(self) -> _containers.RepeatedCompositeFieldContainer[Global___Message.PollResultSnapshotMessage.PollVote]: ...
- @_builtins.property
- def contextInfo(self) -> Global___ContextInfo: ...
- def __init__(
- self,
- *,
- name: _builtins.str | None = ...,
- pollVotes: _abc.Iterable[Global___Message.PollResultSnapshotMessage.PollVote] | None = ...,
- contextInfo: Global___ContextInfo | None = ...,
- pollType: Global___Message.PollType.ValueType | None = ...,
- ) -> None: ...
- _HasFieldArgType: _TypeAlias = _typing.Literal["contextInfo", b"contextInfo", "name", b"name", "pollType", b"pollType"] # noqa: Y015
- def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ...
- _ClearFieldArgType: _TypeAlias = _typing.Literal["contextInfo", b"contextInfo", "name", b"name", "pollType", b"pollType", "pollVotes", b"pollVotes"] # noqa: Y015
- def ClearField(self, field_name: _ClearFieldArgType) -> None: ...
+ CURRENCYCODE_FIELD_NUMBER: _builtins.int
+ AMOUNT1000_FIELD_NUMBER: _builtins.int
+ currencyCode: _builtins.str
+ amount1000: _builtins.int
+ def __init__(
+ self,
+ *,
+ currencyCode: _builtins.str | None = ...,
+ amount1000: _builtins.int | None = ...,
+ ) -> None: ...
+ _HasFieldArgType: _TypeAlias = _typing.Literal["amount1000", b"amount1000", "currencyCode", b"currencyCode"] # noqa: Y015
+ def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ...
+ _ClearFieldArgType: _TypeAlias = _typing.Literal["amount1000", b"amount1000", "currencyCode", b"currencyCode"] # noqa: Y015
+ def ClearField(self, field_name: _ClearFieldArgType) -> None: ...
- @_typing.final
- class PollUpdateMessage(_message.Message):
- DESCRIPTOR: _descriptor.Descriptor
+ @_typing.final
+ class HSMDateTime(_message.Message):
+ DESCRIPTOR: _descriptor.Descriptor
- POLLCREATIONMESSAGEKEY_FIELD_NUMBER: _builtins.int
- VOTE_FIELD_NUMBER: _builtins.int
- METADATA_FIELD_NUMBER: _builtins.int
- SENDERTIMESTAMPMS_FIELD_NUMBER: _builtins.int
- senderTimestampMs: _builtins.int
- @_builtins.property
- def pollCreationMessageKey(self) -> Global___MessageKey: ...
- @_builtins.property
- def vote(self) -> Global___Message.PollEncValue: ...
- @_builtins.property
- def metadata(self) -> Global___Message.PollUpdateMessageMetadata: ...
- def __init__(
- self,
- *,
- pollCreationMessageKey: Global___MessageKey | None = ...,
- vote: Global___Message.PollEncValue | None = ...,
- metadata: Global___Message.PollUpdateMessageMetadata | None = ...,
- senderTimestampMs: _builtins.int | None = ...,
- ) -> None: ...
- _HasFieldArgType: _TypeAlias = _typing.Literal["metadata", b"metadata", "pollCreationMessageKey", b"pollCreationMessageKey", "senderTimestampMs", b"senderTimestampMs", "vote", b"vote"] # noqa: Y015
- def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ...
- _ClearFieldArgType: _TypeAlias = _typing.Literal["metadata", b"metadata", "pollCreationMessageKey", b"pollCreationMessageKey", "senderTimestampMs", b"senderTimestampMs", "vote", b"vote"] # noqa: Y015
- def ClearField(self, field_name: _ClearFieldArgType) -> None: ...
+ @_typing.final
+ class HSMDateTimeComponent(_message.Message):
+ DESCRIPTOR: _descriptor.Descriptor
- @_typing.final
- class PollUpdateMessageMetadata(_message.Message):
- DESCRIPTOR: _descriptor.Descriptor
+ class _CalendarType:
+ ValueType = _typing.NewType("ValueType", _builtins.int)
+ V: _TypeAlias = ValueType # noqa: Y015
- POLLNAMEHASH_FIELD_NUMBER: _builtins.int
- LASTEDITSTANZAID_FIELD_NUMBER: _builtins.int
- pollNameHash: _builtins.bytes
- lastEditStanzaId: _builtins.str
- def __init__(
- self,
- *,
- pollNameHash: _builtins.bytes | None = ...,
- lastEditStanzaId: _builtins.str | None = ...,
- ) -> None: ...
- _HasFieldArgType: _TypeAlias = _typing.Literal["lastEditStanzaId", b"lastEditStanzaId", "pollNameHash", b"pollNameHash"] # noqa: Y015
- def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ...
- _ClearFieldArgType: _TypeAlias = _typing.Literal["lastEditStanzaId", b"lastEditStanzaId", "pollNameHash", b"pollNameHash"] # noqa: Y015
- def ClearField(self, field_name: _ClearFieldArgType) -> None: ...
+ class _CalendarTypeEnumTypeWrapper(_enum_type_wrapper._EnumTypeWrapper[Message.HighlyStructuredMessage.HSMLocalizableParameter.HSMDateTime.HSMDateTimeComponent._CalendarType.ValueType], _builtins.type):
+ DESCRIPTOR: _descriptor.EnumDescriptor
+ GREGORIAN: Message.HighlyStructuredMessage.HSMLocalizableParameter.HSMDateTime.HSMDateTimeComponent._CalendarType.ValueType # 1
+ SOLAR_HIJRI: Message.HighlyStructuredMessage.HSMLocalizableParameter.HSMDateTime.HSMDateTimeComponent._CalendarType.ValueType # 2
- @_typing.final
- class PollVoteMessage(_message.Message):
- DESCRIPTOR: _descriptor.Descriptor
+ class CalendarType(_CalendarType, metaclass=_CalendarTypeEnumTypeWrapper): ...
+ GREGORIAN: Message.HighlyStructuredMessage.HSMLocalizableParameter.HSMDateTime.HSMDateTimeComponent.CalendarType.ValueType # 1
+ SOLAR_HIJRI: Message.HighlyStructuredMessage.HSMLocalizableParameter.HSMDateTime.HSMDateTimeComponent.CalendarType.ValueType # 2
- SELECTEDOPTIONS_FIELD_NUMBER: _builtins.int
- @_builtins.property
- def selectedOptions(self) -> _containers.RepeatedScalarFieldContainer[_builtins.bytes]: ...
- def __init__(
- self,
- *,
- selectedOptions: _abc.Iterable[_builtins.bytes] | None = ...,
- ) -> None: ...
- _ClearFieldArgType: _TypeAlias = _typing.Literal["selectedOptions", b"selectedOptions"] # noqa: Y015
- def ClearField(self, field_name: _ClearFieldArgType) -> None: ...
+ class _DayOfWeekType:
+ ValueType = _typing.NewType("ValueType", _builtins.int)
+ V: _TypeAlias = ValueType # noqa: Y015
- @_typing.final
- class ProductMessage(_message.Message):
- DESCRIPTOR: _descriptor.Descriptor
+ class _DayOfWeekTypeEnumTypeWrapper(_enum_type_wrapper._EnumTypeWrapper[Message.HighlyStructuredMessage.HSMLocalizableParameter.HSMDateTime.HSMDateTimeComponent._DayOfWeekType.ValueType], _builtins.type):
+ DESCRIPTOR: _descriptor.EnumDescriptor
+ MONDAY: Message.HighlyStructuredMessage.HSMLocalizableParameter.HSMDateTime.HSMDateTimeComponent._DayOfWeekType.ValueType # 1
+ TUESDAY: Message.HighlyStructuredMessage.HSMLocalizableParameter.HSMDateTime.HSMDateTimeComponent._DayOfWeekType.ValueType # 2
+ WEDNESDAY: Message.HighlyStructuredMessage.HSMLocalizableParameter.HSMDateTime.HSMDateTimeComponent._DayOfWeekType.ValueType # 3
+ THURSDAY: Message.HighlyStructuredMessage.HSMLocalizableParameter.HSMDateTime.HSMDateTimeComponent._DayOfWeekType.ValueType # 4
+ FRIDAY: Message.HighlyStructuredMessage.HSMLocalizableParameter.HSMDateTime.HSMDateTimeComponent._DayOfWeekType.ValueType # 5
+ SATURDAY: Message.HighlyStructuredMessage.HSMLocalizableParameter.HSMDateTime.HSMDateTimeComponent._DayOfWeekType.ValueType # 6
+ SUNDAY: Message.HighlyStructuredMessage.HSMLocalizableParameter.HSMDateTime.HSMDateTimeComponent._DayOfWeekType.ValueType # 7
- @_typing.final
- class CatalogSnapshot(_message.Message):
- DESCRIPTOR: _descriptor.Descriptor
+ class DayOfWeekType(_DayOfWeekType, metaclass=_DayOfWeekTypeEnumTypeWrapper): ...
+ MONDAY: Message.HighlyStructuredMessage.HSMLocalizableParameter.HSMDateTime.HSMDateTimeComponent.DayOfWeekType.ValueType # 1
+ TUESDAY: Message.HighlyStructuredMessage.HSMLocalizableParameter.HSMDateTime.HSMDateTimeComponent.DayOfWeekType.ValueType # 2
+ WEDNESDAY: Message.HighlyStructuredMessage.HSMLocalizableParameter.HSMDateTime.HSMDateTimeComponent.DayOfWeekType.ValueType # 3
+ THURSDAY: Message.HighlyStructuredMessage.HSMLocalizableParameter.HSMDateTime.HSMDateTimeComponent.DayOfWeekType.ValueType # 4
+ FRIDAY: Message.HighlyStructuredMessage.HSMLocalizableParameter.HSMDateTime.HSMDateTimeComponent.DayOfWeekType.ValueType # 5
+ SATURDAY: Message.HighlyStructuredMessage.HSMLocalizableParameter.HSMDateTime.HSMDateTimeComponent.DayOfWeekType.ValueType # 6
+ SUNDAY: Message.HighlyStructuredMessage.HSMLocalizableParameter.HSMDateTime.HSMDateTimeComponent.DayOfWeekType.ValueType # 7
- CATALOGIMAGE_FIELD_NUMBER: _builtins.int
- TITLE_FIELD_NUMBER: _builtins.int
- DESCRIPTION_FIELD_NUMBER: _builtins.int
- title: _builtins.str
- description: _builtins.str
- @_builtins.property
- def catalogImage(self) -> Global___Message.ImageMessage: ...
- def __init__(
- self,
- *,
- catalogImage: Global___Message.ImageMessage | None = ...,
- title: _builtins.str | None = ...,
- description: _builtins.str | None = ...,
- ) -> None: ...
- _HasFieldArgType: _TypeAlias = _typing.Literal["catalogImage", b"catalogImage", "description", b"description", "title", b"title"] # noqa: Y015
- def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ...
- _ClearFieldArgType: _TypeAlias = _typing.Literal["catalogImage", b"catalogImage", "description", b"description", "title", b"title"] # noqa: Y015
- def ClearField(self, field_name: _ClearFieldArgType) -> None: ...
+ DAYOFWEEK_FIELD_NUMBER: _builtins.int
+ YEAR_FIELD_NUMBER: _builtins.int
+ MONTH_FIELD_NUMBER: _builtins.int
+ DAYOFMONTH_FIELD_NUMBER: _builtins.int
+ HOUR_FIELD_NUMBER: _builtins.int
+ MINUTE_FIELD_NUMBER: _builtins.int
+ CALENDAR_FIELD_NUMBER: _builtins.int
+ dayOfWeek: Global___Message.HighlyStructuredMessage.HSMLocalizableParameter.HSMDateTime.HSMDateTimeComponent.DayOfWeekType.ValueType
+ year: _builtins.int
+ month: _builtins.int
+ dayOfMonth: _builtins.int
+ hour: _builtins.int
+ minute: _builtins.int
+ calendar: Global___Message.HighlyStructuredMessage.HSMLocalizableParameter.HSMDateTime.HSMDateTimeComponent.CalendarType.ValueType
+ def __init__(
+ self,
+ *,
+ dayOfWeek: Global___Message.HighlyStructuredMessage.HSMLocalizableParameter.HSMDateTime.HSMDateTimeComponent.DayOfWeekType.ValueType | None = ...,
+ year: _builtins.int | None = ...,
+ month: _builtins.int | None = ...,
+ dayOfMonth: _builtins.int | None = ...,
+ hour: _builtins.int | None = ...,
+ minute: _builtins.int | None = ...,
+ calendar: Global___Message.HighlyStructuredMessage.HSMLocalizableParameter.HSMDateTime.HSMDateTimeComponent.CalendarType.ValueType | None = ...,
+ ) -> None: ...
+ _HasFieldArgType: _TypeAlias = _typing.Literal["calendar", b"calendar", "dayOfMonth", b"dayOfMonth", "dayOfWeek", b"dayOfWeek", "hour", b"hour", "minute", b"minute", "month", b"month", "year", b"year"] # noqa: Y015
+ def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ...
+ _ClearFieldArgType: _TypeAlias = _typing.Literal["calendar", b"calendar", "dayOfMonth", b"dayOfMonth", "dayOfWeek", b"dayOfWeek", "hour", b"hour", "minute", b"minute", "month", b"month", "year", b"year"] # noqa: Y015
+ def ClearField(self, field_name: _ClearFieldArgType) -> None: ...
- @_typing.final
- class ProductSnapshot(_message.Message):
- DESCRIPTOR: _descriptor.Descriptor
+ @_typing.final
+ class HSMDateTimeUnixEpoch(_message.Message):
+ DESCRIPTOR: _descriptor.Descriptor
- PRODUCTIMAGE_FIELD_NUMBER: _builtins.int
- PRODUCTID_FIELD_NUMBER: _builtins.int
- TITLE_FIELD_NUMBER: _builtins.int
- DESCRIPTION_FIELD_NUMBER: _builtins.int
- CURRENCYCODE_FIELD_NUMBER: _builtins.int
- PRICEAMOUNT1000_FIELD_NUMBER: _builtins.int
- RETAILERID_FIELD_NUMBER: _builtins.int
- URL_FIELD_NUMBER: _builtins.int
- PRODUCTIMAGECOUNT_FIELD_NUMBER: _builtins.int
- FIRSTIMAGEID_FIELD_NUMBER: _builtins.int
- SALEPRICEAMOUNT1000_FIELD_NUMBER: _builtins.int
- SIGNEDURL_FIELD_NUMBER: _builtins.int
- productId: _builtins.str
- title: _builtins.str
- description: _builtins.str
- currencyCode: _builtins.str
- priceAmount1000: _builtins.int
- retailerId: _builtins.str
- url: _builtins.str
- productImageCount: _builtins.int
- firstImageId: _builtins.str
- salePriceAmount1000: _builtins.int
- signedUrl: _builtins.str
+ TIMESTAMP_FIELD_NUMBER: _builtins.int
+ timestamp: _builtins.int
+ def __init__(
+ self,
+ *,
+ timestamp: _builtins.int | None = ...,
+ ) -> None: ...
+ _HasFieldArgType: _TypeAlias = _typing.Literal["timestamp", b"timestamp"] # noqa: Y015
+ def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ...
+ _ClearFieldArgType: _TypeAlias = _typing.Literal["timestamp", b"timestamp"] # noqa: Y015
+ def ClearField(self, field_name: _ClearFieldArgType) -> None: ...
+
+ COMPONENT_FIELD_NUMBER: _builtins.int
+ UNIXEPOCH_FIELD_NUMBER: _builtins.int
+ @_builtins.property
+ def component(self) -> Global___Message.HighlyStructuredMessage.HSMLocalizableParameter.HSMDateTime.HSMDateTimeComponent: ...
+ @_builtins.property
+ def unixEpoch(self) -> Global___Message.HighlyStructuredMessage.HSMLocalizableParameter.HSMDateTime.HSMDateTimeUnixEpoch: ...
+ def __init__(
+ self,
+ *,
+ component: Global___Message.HighlyStructuredMessage.HSMLocalizableParameter.HSMDateTime.HSMDateTimeComponent | None = ...,
+ unixEpoch: Global___Message.HighlyStructuredMessage.HSMLocalizableParameter.HSMDateTime.HSMDateTimeUnixEpoch | None = ...,
+ ) -> None: ...
+ _HasFieldArgType: _TypeAlias = _typing.Literal["component", b"component", "datetimeOneof", b"datetimeOneof", "unixEpoch", b"unixEpoch"] # noqa: Y015
+ def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ...
+ _ClearFieldArgType: _TypeAlias = _typing.Literal["component", b"component", "datetimeOneof", b"datetimeOneof", "unixEpoch", b"unixEpoch"] # noqa: Y015
+ def ClearField(self, field_name: _ClearFieldArgType) -> None: ...
+ _WhichOneofReturnType_datetimeOneof: _TypeAlias = _typing.Literal["component", "unixEpoch"] # noqa: Y015
+ _WhichOneofArgType_datetimeOneof: _TypeAlias = _typing.Literal["datetimeOneof", b"datetimeOneof"] # noqa: Y015
+ def WhichOneof(self, oneof_group: _WhichOneofArgType_datetimeOneof) -> _WhichOneofReturnType_datetimeOneof | None: ...
+
+ DEFAULT_FIELD_NUMBER: _builtins.int
+ CURRENCY_FIELD_NUMBER: _builtins.int
+ DATETIME_FIELD_NUMBER: _builtins.int
+ default: _builtins.str
@_builtins.property
- def productImage(self) -> Global___Message.ImageMessage: ...
+ def currency(self) -> Global___Message.HighlyStructuredMessage.HSMLocalizableParameter.HSMCurrency: ...
+ @_builtins.property
+ def dateTime(self) -> Global___Message.HighlyStructuredMessage.HSMLocalizableParameter.HSMDateTime: ...
def __init__(
self,
*,
- productImage: Global___Message.ImageMessage | None = ...,
- productId: _builtins.str | None = ...,
- title: _builtins.str | None = ...,
- description: _builtins.str | None = ...,
- currencyCode: _builtins.str | None = ...,
- priceAmount1000: _builtins.int | None = ...,
- retailerId: _builtins.str | None = ...,
- url: _builtins.str | None = ...,
- productImageCount: _builtins.int | None = ...,
- firstImageId: _builtins.str | None = ...,
- salePriceAmount1000: _builtins.int | None = ...,
- signedUrl: _builtins.str | None = ...,
+ default: _builtins.str | None = ...,
+ currency: Global___Message.HighlyStructuredMessage.HSMLocalizableParameter.HSMCurrency | None = ...,
+ dateTime: Global___Message.HighlyStructuredMessage.HSMLocalizableParameter.HSMDateTime | None = ...,
) -> None: ...
- _HasFieldArgType: _TypeAlias = _typing.Literal["currencyCode", b"currencyCode", "description", b"description", "firstImageId", b"firstImageId", "priceAmount1000", b"priceAmount1000", "productId", b"productId", "productImage", b"productImage", "productImageCount", b"productImageCount", "retailerId", b"retailerId", "salePriceAmount1000", b"salePriceAmount1000", "signedUrl", b"signedUrl", "title", b"title", "url", b"url"] # noqa: Y015
+ _HasFieldArgType: _TypeAlias = _typing.Literal["currency", b"currency", "dateTime", b"dateTime", "default", b"default", "paramOneof", b"paramOneof"] # noqa: Y015
def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ...
- _ClearFieldArgType: _TypeAlias = _typing.Literal["currencyCode", b"currencyCode", "description", b"description", "firstImageId", b"firstImageId", "priceAmount1000", b"priceAmount1000", "productId", b"productId", "productImage", b"productImage", "productImageCount", b"productImageCount", "retailerId", b"retailerId", "salePriceAmount1000", b"salePriceAmount1000", "signedUrl", b"signedUrl", "title", b"title", "url", b"url"] # noqa: Y015
+ _ClearFieldArgType: _TypeAlias = _typing.Literal["currency", b"currency", "dateTime", b"dateTime", "default", b"default", "paramOneof", b"paramOneof"] # noqa: Y015
def ClearField(self, field_name: _ClearFieldArgType) -> None: ...
+ _WhichOneofReturnType_paramOneof: _TypeAlias = _typing.Literal["currency", "dateTime"] # noqa: Y015
+ _WhichOneofArgType_paramOneof: _TypeAlias = _typing.Literal["paramOneof", b"paramOneof"] # noqa: Y015
+ def WhichOneof(self, oneof_group: _WhichOneofArgType_paramOneof) -> _WhichOneofReturnType_paramOneof | None: ...
- PRODUCT_FIELD_NUMBER: _builtins.int
- BUSINESSOWNERJID_FIELD_NUMBER: _builtins.int
- CATALOG_FIELD_NUMBER: _builtins.int
- BODY_FIELD_NUMBER: _builtins.int
- FOOTER_FIELD_NUMBER: _builtins.int
- CONTEXTINFO_FIELD_NUMBER: _builtins.int
- businessOwnerJid: _builtins.str
- body: _builtins.str
- footer: _builtins.str
+ NAMESPACE_FIELD_NUMBER: _builtins.int
+ ELEMENTNAME_FIELD_NUMBER: _builtins.int
+ PARAMS_FIELD_NUMBER: _builtins.int
+ FALLBACKLG_FIELD_NUMBER: _builtins.int
+ FALLBACKLC_FIELD_NUMBER: _builtins.int
+ LOCALIZABLEPARAMS_FIELD_NUMBER: _builtins.int
+ DETERMINISTICLG_FIELD_NUMBER: _builtins.int
+ DETERMINISTICLC_FIELD_NUMBER: _builtins.int
+ HYDRATEDHSM_FIELD_NUMBER: _builtins.int
+ namespace: _builtins.str
+ elementName: _builtins.str
+ fallbackLg: _builtins.str
+ fallbackLc: _builtins.str
+ deterministicLg: _builtins.str
+ deterministicLc: _builtins.str
@_builtins.property
- def product(self) -> Global___Message.ProductMessage.ProductSnapshot: ...
+ def params(self) -> _containers.RepeatedScalarFieldContainer[_builtins.str]: ...
@_builtins.property
- def catalog(self) -> Global___Message.ProductMessage.CatalogSnapshot: ...
+ def localizableParams(self) -> _containers.RepeatedCompositeFieldContainer[Global___Message.HighlyStructuredMessage.HSMLocalizableParameter]: ...
@_builtins.property
- def contextInfo(self) -> Global___ContextInfo: ...
+ def hydratedHsm(self) -> Global___Message.TemplateMessage: ...
def __init__(
self,
*,
- product: Global___Message.ProductMessage.ProductSnapshot | None = ...,
- businessOwnerJid: _builtins.str | None = ...,
- catalog: Global___Message.ProductMessage.CatalogSnapshot | None = ...,
- body: _builtins.str | None = ...,
- footer: _builtins.str | None = ...,
- contextInfo: Global___ContextInfo | None = ...,
+ namespace: _builtins.str | None = ...,
+ elementName: _builtins.str | None = ...,
+ params: _abc.Iterable[_builtins.str] | None = ...,
+ fallbackLg: _builtins.str | None = ...,
+ fallbackLc: _builtins.str | None = ...,
+ localizableParams: _abc.Iterable[Global___Message.HighlyStructuredMessage.HSMLocalizableParameter] | None = ...,
+ deterministicLg: _builtins.str | None = ...,
+ deterministicLc: _builtins.str | None = ...,
+ hydratedHsm: Global___Message.TemplateMessage | None = ...,
) -> None: ...
- _HasFieldArgType: _TypeAlias = _typing.Literal["body", b"body", "businessOwnerJid", b"businessOwnerJid", "catalog", b"catalog", "contextInfo", b"contextInfo", "footer", b"footer", "product", b"product"] # noqa: Y015
+ _HasFieldArgType: _TypeAlias = _typing.Literal["deterministicLc", b"deterministicLc", "deterministicLg", b"deterministicLg", "elementName", b"elementName", "fallbackLc", b"fallbackLc", "fallbackLg", b"fallbackLg", "hydratedHsm", b"hydratedHsm", "namespace", b"namespace"] # noqa: Y015
def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ...
- _ClearFieldArgType: _TypeAlias = _typing.Literal["body", b"body", "businessOwnerJid", b"businessOwnerJid", "catalog", b"catalog", "contextInfo", b"contextInfo", "footer", b"footer", "product", b"product"] # noqa: Y015
+ _ClearFieldArgType: _TypeAlias = _typing.Literal["deterministicLc", b"deterministicLc", "deterministicLg", b"deterministicLg", "elementName", b"elementName", "fallbackLc", b"fallbackLc", "fallbackLg", b"fallbackLg", "hydratedHsm", b"hydratedHsm", "localizableParams", b"localizableParams", "namespace", b"namespace", "params", b"params"] # noqa: Y015
def ClearField(self, field_name: _ClearFieldArgType) -> None: ...
@_typing.final
- class ProtocolMessage(_message.Message):
+ class HistoryShareMessageEntry(_message.Message):
DESCRIPTOR: _descriptor.Descriptor
- class _Type:
- ValueType = _typing.NewType("ValueType", _builtins.int)
- V: _TypeAlias = ValueType # noqa: Y015
-
- class _TypeEnumTypeWrapper(_enum_type_wrapper._EnumTypeWrapper[Message.ProtocolMessage._Type.ValueType], _builtins.type):
- DESCRIPTOR: _descriptor.EnumDescriptor
- REVOKE: Message.ProtocolMessage._Type.ValueType # 0
- EPHEMERAL_SETTING: Message.ProtocolMessage._Type.ValueType # 3
- EPHEMERAL_SYNC_RESPONSE: Message.ProtocolMessage._Type.ValueType # 4
- HISTORY_SYNC_NOTIFICATION: Message.ProtocolMessage._Type.ValueType # 5
- APP_STATE_SYNC_KEY_SHARE: Message.ProtocolMessage._Type.ValueType # 6
- APP_STATE_SYNC_KEY_REQUEST: Message.ProtocolMessage._Type.ValueType # 7
- MSG_FANOUT_BACKFILL_REQUEST: Message.ProtocolMessage._Type.ValueType # 8
- INITIAL_SECURITY_NOTIFICATION_SETTING_SYNC: Message.ProtocolMessage._Type.ValueType # 9
- APP_STATE_FATAL_EXCEPTION_NOTIFICATION: Message.ProtocolMessage._Type.ValueType # 10
- SHARE_PHONE_NUMBER: Message.ProtocolMessage._Type.ValueType # 11
- MESSAGE_EDIT: Message.ProtocolMessage._Type.ValueType # 14
- PEER_DATA_OPERATION_REQUEST_MESSAGE: Message.ProtocolMessage._Type.ValueType # 16
- PEER_DATA_OPERATION_REQUEST_RESPONSE_MESSAGE: Message.ProtocolMessage._Type.ValueType # 17
- REQUEST_WELCOME_MESSAGE: Message.ProtocolMessage._Type.ValueType # 18
- BOT_FEEDBACK_MESSAGE: Message.ProtocolMessage._Type.ValueType # 19
- MEDIA_NOTIFY_MESSAGE: Message.ProtocolMessage._Type.ValueType # 20
- CLOUD_API_THREAD_CONTROL_NOTIFICATION: Message.ProtocolMessage._Type.ValueType # 21
- LID_MIGRATION_MAPPING_SYNC: Message.ProtocolMessage._Type.ValueType # 22
- REMINDER_MESSAGE: Message.ProtocolMessage._Type.ValueType # 23
- BOT_MEMU_ONBOARDING_MESSAGE: Message.ProtocolMessage._Type.ValueType # 24
- STATUS_MENTION_MESSAGE: Message.ProtocolMessage._Type.ValueType # 25
- STOP_GENERATION_MESSAGE: Message.ProtocolMessage._Type.ValueType # 26
- LIMIT_SHARING: Message.ProtocolMessage._Type.ValueType # 27
- AI_PSI_METADATA: Message.ProtocolMessage._Type.ValueType # 28
- AI_QUERY_FANOUT: Message.ProtocolMessage._Type.ValueType # 29
- GROUP_MEMBER_LABEL_CHANGE: Message.ProtocolMessage._Type.ValueType # 30
- AI_MEDIA_COLLECTION_MESSAGE: Message.ProtocolMessage._Type.ValueType # 31
- MESSAGE_UNSCHEDULE: Message.ProtocolMessage._Type.ValueType # 32
- CHAT_THEME_SETTING: Message.ProtocolMessage._Type.ValueType # 34
- AI_METADATA_OPERATION: Message.ProtocolMessage._Type.ValueType # 35
-
- class Type(_Type, metaclass=_TypeEnumTypeWrapper): ...
- REVOKE: Message.ProtocolMessage.Type.ValueType # 0
- EPHEMERAL_SETTING: Message.ProtocolMessage.Type.ValueType # 3
- EPHEMERAL_SYNC_RESPONSE: Message.ProtocolMessage.Type.ValueType # 4
- HISTORY_SYNC_NOTIFICATION: Message.ProtocolMessage.Type.ValueType # 5
- APP_STATE_SYNC_KEY_SHARE: Message.ProtocolMessage.Type.ValueType # 6
- APP_STATE_SYNC_KEY_REQUEST: Message.ProtocolMessage.Type.ValueType # 7
- MSG_FANOUT_BACKFILL_REQUEST: Message.ProtocolMessage.Type.ValueType # 8
- INITIAL_SECURITY_NOTIFICATION_SETTING_SYNC: Message.ProtocolMessage.Type.ValueType # 9
- APP_STATE_FATAL_EXCEPTION_NOTIFICATION: Message.ProtocolMessage.Type.ValueType # 10
- SHARE_PHONE_NUMBER: Message.ProtocolMessage.Type.ValueType # 11
- MESSAGE_EDIT: Message.ProtocolMessage.Type.ValueType # 14
- PEER_DATA_OPERATION_REQUEST_MESSAGE: Message.ProtocolMessage.Type.ValueType # 16
- PEER_DATA_OPERATION_REQUEST_RESPONSE_MESSAGE: Message.ProtocolMessage.Type.ValueType # 17
- REQUEST_WELCOME_MESSAGE: Message.ProtocolMessage.Type.ValueType # 18
- BOT_FEEDBACK_MESSAGE: Message.ProtocolMessage.Type.ValueType # 19
- MEDIA_NOTIFY_MESSAGE: Message.ProtocolMessage.Type.ValueType # 20
- CLOUD_API_THREAD_CONTROL_NOTIFICATION: Message.ProtocolMessage.Type.ValueType # 21
- LID_MIGRATION_MAPPING_SYNC: Message.ProtocolMessage.Type.ValueType # 22
- REMINDER_MESSAGE: Message.ProtocolMessage.Type.ValueType # 23
- BOT_MEMU_ONBOARDING_MESSAGE: Message.ProtocolMessage.Type.ValueType # 24
- STATUS_MENTION_MESSAGE: Message.ProtocolMessage.Type.ValueType # 25
- STOP_GENERATION_MESSAGE: Message.ProtocolMessage.Type.ValueType # 26
- LIMIT_SHARING: Message.ProtocolMessage.Type.ValueType # 27
- AI_PSI_METADATA: Message.ProtocolMessage.Type.ValueType # 28
- AI_QUERY_FANOUT: Message.ProtocolMessage.Type.ValueType # 29
- GROUP_MEMBER_LABEL_CHANGE: Message.ProtocolMessage.Type.ValueType # 30
- AI_MEDIA_COLLECTION_MESSAGE: Message.ProtocolMessage.Type.ValueType # 31
- MESSAGE_UNSCHEDULE: Message.ProtocolMessage.Type.ValueType # 32
- CHAT_THEME_SETTING: Message.ProtocolMessage.Type.ValueType # 34
- AI_METADATA_OPERATION: Message.ProtocolMessage.Type.ValueType # 35
-
- KEY_FIELD_NUMBER: _builtins.int
- TYPE_FIELD_NUMBER: _builtins.int
- EPHEMERALEXPIRATION_FIELD_NUMBER: _builtins.int
- EPHEMERALSETTINGTIMESTAMP_FIELD_NUMBER: _builtins.int
- HISTORYSYNCNOTIFICATION_FIELD_NUMBER: _builtins.int
- APPSTATESYNCKEYSHARE_FIELD_NUMBER: _builtins.int
- APPSTATESYNCKEYREQUEST_FIELD_NUMBER: _builtins.int
- INITIALSECURITYNOTIFICATIONSETTINGSYNC_FIELD_NUMBER: _builtins.int
- APPSTATEFATALEXCEPTIONNOTIFICATION_FIELD_NUMBER: _builtins.int
- DISAPPEARINGMODE_FIELD_NUMBER: _builtins.int
- EDITEDMESSAGE_FIELD_NUMBER: _builtins.int
- TIMESTAMPMS_FIELD_NUMBER: _builtins.int
- PEERDATAOPERATIONREQUESTMESSAGE_FIELD_NUMBER: _builtins.int
- PEERDATAOPERATIONREQUESTRESPONSEMESSAGE_FIELD_NUMBER: _builtins.int
- BOTFEEDBACKMESSAGE_FIELD_NUMBER: _builtins.int
- INVOKERJID_FIELD_NUMBER: _builtins.int
- REQUESTWELCOMEMESSAGEMETADATA_FIELD_NUMBER: _builtins.int
- MEDIANOTIFYMESSAGE_FIELD_NUMBER: _builtins.int
- CLOUDAPITHREADCONTROLNOTIFICATION_FIELD_NUMBER: _builtins.int
- LIDMIGRATIONMAPPINGSYNCMESSAGE_FIELD_NUMBER: _builtins.int
- LIMITSHARING_FIELD_NUMBER: _builtins.int
- AIPSIMETADATA_FIELD_NUMBER: _builtins.int
- AIQUERYFANOUT_FIELD_NUMBER: _builtins.int
- MEMBERLABEL_FIELD_NUMBER: _builtins.int
- AIMEDIACOLLECTIONMESSAGE_FIELD_NUMBER: _builtins.int
- AFTERREADDURATION_FIELD_NUMBER: _builtins.int
- CHATTHEMESETTING_FIELD_NUMBER: _builtins.int
- AIMETADATAOPERATION_FIELD_NUMBER: _builtins.int
- type: Global___Message.ProtocolMessage.Type.ValueType
- ephemeralExpiration: _builtins.int
- ephemeralSettingTimestamp: _builtins.int
- timestampMs: _builtins.int
- invokerJid: _builtins.str
- aiPsiMetadata: _builtins.bytes
- afterReadDuration: _builtins.int
- @_builtins.property
- def key(self) -> Global___MessageKey: ...
- @_builtins.property
- def historySyncNotification(self) -> Global___Message.HistorySyncNotification: ...
- @_builtins.property
- def appStateSyncKeyShare(self) -> Global___Message.AppStateSyncKeyShare: ...
- @_builtins.property
- def appStateSyncKeyRequest(self) -> Global___Message.AppStateSyncKeyRequest: ...
- @_builtins.property
- def initialSecurityNotificationSettingSync(self) -> Global___Message.InitialSecurityNotificationSettingSync: ...
- @_builtins.property
- def appStateFatalExceptionNotification(self) -> Global___Message.AppStateFatalExceptionNotification: ...
- @_builtins.property
- def disappearingMode(self) -> Global___DisappearingMode: ...
- @_builtins.property
- def editedMessage(self) -> Global___Message: ...
- @_builtins.property
- def peerDataOperationRequestMessage(self) -> Global___Message.PeerDataOperationRequestMessage: ...
- @_builtins.property
- def peerDataOperationRequestResponseMessage(self) -> Global___Message.PeerDataOperationRequestResponseMessage: ...
- @_builtins.property
- def botFeedbackMessage(self) -> Global___BotFeedbackMessage: ...
- @_builtins.property
- def requestWelcomeMessageMetadata(self) -> Global___Message.RequestWelcomeMessageMetadata: ...
- @_builtins.property
- def mediaNotifyMessage(self) -> Global___MediaNotifyMessage: ...
- @_builtins.property
- def cloudApiThreadControlNotification(self) -> Global___Message.CloudAPIThreadControlNotification: ...
- @_builtins.property
- def lidMigrationMappingSyncMessage(self) -> Global___LIDMigrationMappingSyncMessage: ...
- @_builtins.property
- def limitSharing(self) -> Global___LimitSharing: ...
- @_builtins.property
- def aiQueryFanout(self) -> Global___AIQueryFanout: ...
- @_builtins.property
- def memberLabel(self) -> Global___MemberLabel: ...
- @_builtins.property
- def aiMediaCollectionMessage(self) -> Global___AIMediaCollectionMessage: ...
- @_builtins.property
- def chatThemeSetting(self) -> Global___Message.ChatThemeSetting: ...
- @_builtins.property
- def aiMetadataOperation(self) -> Global___AIMetadataOperation: ...
+ STANZAID_FIELD_NUMBER: _builtins.int
+ MESSAGESECRETPROOF_FIELD_NUMBER: _builtins.int
+ stanzaId: _builtins.str
+ messageSecretProof: _builtins.bytes
def __init__(
self,
*,
- key: Global___MessageKey | None = ...,
- type: Global___Message.ProtocolMessage.Type.ValueType | None = ...,
- ephemeralExpiration: _builtins.int | None = ...,
- ephemeralSettingTimestamp: _builtins.int | None = ...,
- historySyncNotification: Global___Message.HistorySyncNotification | None = ...,
- appStateSyncKeyShare: Global___Message.AppStateSyncKeyShare | None = ...,
- appStateSyncKeyRequest: Global___Message.AppStateSyncKeyRequest | None = ...,
- initialSecurityNotificationSettingSync: Global___Message.InitialSecurityNotificationSettingSync | None = ...,
- appStateFatalExceptionNotification: Global___Message.AppStateFatalExceptionNotification | None = ...,
- disappearingMode: Global___DisappearingMode | None = ...,
- editedMessage: Global___Message | None = ...,
- timestampMs: _builtins.int | None = ...,
- peerDataOperationRequestMessage: Global___Message.PeerDataOperationRequestMessage | None = ...,
- peerDataOperationRequestResponseMessage: Global___Message.PeerDataOperationRequestResponseMessage | None = ...,
- botFeedbackMessage: Global___BotFeedbackMessage | None = ...,
- invokerJid: _builtins.str | None = ...,
- requestWelcomeMessageMetadata: Global___Message.RequestWelcomeMessageMetadata | None = ...,
- mediaNotifyMessage: Global___MediaNotifyMessage | None = ...,
- cloudApiThreadControlNotification: Global___Message.CloudAPIThreadControlNotification | None = ...,
- lidMigrationMappingSyncMessage: Global___LIDMigrationMappingSyncMessage | None = ...,
- limitSharing: Global___LimitSharing | None = ...,
- aiPsiMetadata: _builtins.bytes | None = ...,
- aiQueryFanout: Global___AIQueryFanout | None = ...,
- memberLabel: Global___MemberLabel | None = ...,
- aiMediaCollectionMessage: Global___AIMediaCollectionMessage | None = ...,
- afterReadDuration: _builtins.int | None = ...,
- chatThemeSetting: Global___Message.ChatThemeSetting | None = ...,
- aiMetadataOperation: Global___AIMetadataOperation | None = ...,
+ stanzaId: _builtins.str | None = ...,
+ messageSecretProof: _builtins.bytes | None = ...,
) -> None: ...
- _HasFieldArgType: _TypeAlias = _typing.Literal["afterReadDuration", b"afterReadDuration", "aiMediaCollectionMessage", b"aiMediaCollectionMessage", "aiMetadataOperation", b"aiMetadataOperation", "aiPsiMetadata", b"aiPsiMetadata", "aiQueryFanout", b"aiQueryFanout", "appStateFatalExceptionNotification", b"appStateFatalExceptionNotification", "appStateSyncKeyRequest", b"appStateSyncKeyRequest", "appStateSyncKeyShare", b"appStateSyncKeyShare", "botFeedbackMessage", b"botFeedbackMessage", "chatThemeSetting", b"chatThemeSetting", "cloudApiThreadControlNotification", b"cloudApiThreadControlNotification", "disappearingMode", b"disappearingMode", "editedMessage", b"editedMessage", "ephemeralExpiration", b"ephemeralExpiration", "ephemeralSettingTimestamp", b"ephemeralSettingTimestamp", "historySyncNotification", b"historySyncNotification", "initialSecurityNotificationSettingSync", b"initialSecurityNotificationSettingSync", "invokerJid", b"invokerJid", "key", b"key", "lidMigrationMappingSyncMessage", b"lidMigrationMappingSyncMessage", "limitSharing", b"limitSharing", "mediaNotifyMessage", b"mediaNotifyMessage", "memberLabel", b"memberLabel", "peerDataOperationRequestMessage", b"peerDataOperationRequestMessage", "peerDataOperationRequestResponseMessage", b"peerDataOperationRequestResponseMessage", "requestWelcomeMessageMetadata", b"requestWelcomeMessageMetadata", "timestampMs", b"timestampMs", "type", b"type"] # noqa: Y015
+ _HasFieldArgType: _TypeAlias = _typing.Literal["messageSecretProof", b"messageSecretProof", "stanzaId", b"stanzaId"] # noqa: Y015
def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ...
- _ClearFieldArgType: _TypeAlias = _typing.Literal["afterReadDuration", b"afterReadDuration", "aiMediaCollectionMessage", b"aiMediaCollectionMessage", "aiMetadataOperation", b"aiMetadataOperation", "aiPsiMetadata", b"aiPsiMetadata", "aiQueryFanout", b"aiQueryFanout", "appStateFatalExceptionNotification", b"appStateFatalExceptionNotification", "appStateSyncKeyRequest", b"appStateSyncKeyRequest", "appStateSyncKeyShare", b"appStateSyncKeyShare", "botFeedbackMessage", b"botFeedbackMessage", "chatThemeSetting", b"chatThemeSetting", "cloudApiThreadControlNotification", b"cloudApiThreadControlNotification", "disappearingMode", b"disappearingMode", "editedMessage", b"editedMessage", "ephemeralExpiration", b"ephemeralExpiration", "ephemeralSettingTimestamp", b"ephemeralSettingTimestamp", "historySyncNotification", b"historySyncNotification", "initialSecurityNotificationSettingSync", b"initialSecurityNotificationSettingSync", "invokerJid", b"invokerJid", "key", b"key", "lidMigrationMappingSyncMessage", b"lidMigrationMappingSyncMessage", "limitSharing", b"limitSharing", "mediaNotifyMessage", b"mediaNotifyMessage", "memberLabel", b"memberLabel", "peerDataOperationRequestMessage", b"peerDataOperationRequestMessage", "peerDataOperationRequestResponseMessage", b"peerDataOperationRequestResponseMessage", "requestWelcomeMessageMetadata", b"requestWelcomeMessageMetadata", "timestampMs", b"timestampMs", "type", b"type"] # noqa: Y015
+ _ClearFieldArgType: _TypeAlias = _typing.Literal["messageSecretProof", b"messageSecretProof", "stanzaId", b"stanzaId"] # noqa: Y015
def ClearField(self, field_name: _ClearFieldArgType) -> None: ...
@_typing.final
- class QuestionResponseMessage(_message.Message):
+ class HistorySyncMessageAccessStatus(_message.Message):
DESCRIPTOR: _descriptor.Descriptor
- KEY_FIELD_NUMBER: _builtins.int
- TEXT_FIELD_NUMBER: _builtins.int
- text: _builtins.str
- @_builtins.property
- def key(self) -> Global___MessageKey: ...
+ COMPLETEACCESSGRANTED_FIELD_NUMBER: _builtins.int
+ completeAccessGranted: _builtins.bool
def __init__(
self,
*,
- key: Global___MessageKey | None = ...,
- text: _builtins.str | None = ...,
+ completeAccessGranted: _builtins.bool | None = ...,
) -> None: ...
- _HasFieldArgType: _TypeAlias = _typing.Literal["key", b"key", "text", b"text"] # noqa: Y015
+ _HasFieldArgType: _TypeAlias = _typing.Literal["completeAccessGranted", b"completeAccessGranted"] # noqa: Y015
def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ...
- _ClearFieldArgType: _TypeAlias = _typing.Literal["key", b"key", "text", b"text"] # noqa: Y015
+ _ClearFieldArgType: _TypeAlias = _typing.Literal["completeAccessGranted", b"completeAccessGranted"] # noqa: Y015
def ClearField(self, field_name: _ClearFieldArgType) -> None: ...
@_typing.final
- class ReactionMessage(_message.Message):
+ class HistorySyncNotification(_message.Message):
DESCRIPTOR: _descriptor.Descriptor
- KEY_FIELD_NUMBER: _builtins.int
- TEXT_FIELD_NUMBER: _builtins.int
- GROUPINGKEY_FIELD_NUMBER: _builtins.int
- SENDERTIMESTAMPMS_FIELD_NUMBER: _builtins.int
- text: _builtins.str
- groupingKey: _builtins.str
- senderTimestampMs: _builtins.int
+ FILESHA256_FIELD_NUMBER: _builtins.int
+ FILELENGTH_FIELD_NUMBER: _builtins.int
+ MEDIAKEY_FIELD_NUMBER: _builtins.int
+ FILEENCSHA256_FIELD_NUMBER: _builtins.int
+ DIRECTPATH_FIELD_NUMBER: _builtins.int
+ SYNCTYPE_FIELD_NUMBER: _builtins.int
+ CHUNKORDER_FIELD_NUMBER: _builtins.int
+ ORIGINALMESSAGEID_FIELD_NUMBER: _builtins.int
+ PROGRESS_FIELD_NUMBER: _builtins.int
+ OLDESTMSGINCHUNKTIMESTAMPSEC_FIELD_NUMBER: _builtins.int
+ INITIALHISTBOOTSTRAPINLINEPAYLOAD_FIELD_NUMBER: _builtins.int
+ PEERDATAREQUESTSESSIONID_FIELD_NUMBER: _builtins.int
+ FULLHISTORYSYNCONDEMANDREQUESTMETADATA_FIELD_NUMBER: _builtins.int
+ ENCHANDLE_FIELD_NUMBER: _builtins.int
+ MESSAGEACCESSSTATUS_FIELD_NUMBER: _builtins.int
+ fileSha256: _builtins.bytes
+ fileLength: _builtins.int
+ mediaKey: _builtins.bytes
+ fileEncSha256: _builtins.bytes
+ directPath: _builtins.str
+ syncType: Global___Message.HistorySyncType.ValueType
+ chunkOrder: _builtins.int
+ originalMessageId: _builtins.str
+ progress: _builtins.int
+ oldestMsgInChunkTimestampSec: _builtins.int
+ initialHistBootstrapInlinePayload: _builtins.bytes
+ peerDataRequestSessionId: _builtins.str
+ encHandle: _builtins.str
@_builtins.property
- def key(self) -> Global___MessageKey: ...
+ def fullHistorySyncOnDemandRequestMetadata(self) -> Global___Message.FullHistorySyncOnDemandRequestMetadata: ...
+ @_builtins.property
+ def messageAccessStatus(self) -> Global___Message.HistorySyncMessageAccessStatus: ...
def __init__(
self,
*,
- key: Global___MessageKey | None = ...,
- text: _builtins.str | None = ...,
- groupingKey: _builtins.str | None = ...,
- senderTimestampMs: _builtins.int | None = ...,
+ fileSha256: _builtins.bytes | None = ...,
+ fileLength: _builtins.int | None = ...,
+ mediaKey: _builtins.bytes | None = ...,
+ fileEncSha256: _builtins.bytes | None = ...,
+ directPath: _builtins.str | None = ...,
+ syncType: Global___Message.HistorySyncType.ValueType | None = ...,
+ chunkOrder: _builtins.int | None = ...,
+ originalMessageId: _builtins.str | None = ...,
+ progress: _builtins.int | None = ...,
+ oldestMsgInChunkTimestampSec: _builtins.int | None = ...,
+ initialHistBootstrapInlinePayload: _builtins.bytes | None = ...,
+ peerDataRequestSessionId: _builtins.str | None = ...,
+ fullHistorySyncOnDemandRequestMetadata: Global___Message.FullHistorySyncOnDemandRequestMetadata | None = ...,
+ encHandle: _builtins.str | None = ...,
+ messageAccessStatus: Global___Message.HistorySyncMessageAccessStatus | None = ...,
) -> None: ...
- _HasFieldArgType: _TypeAlias = _typing.Literal["groupingKey", b"groupingKey", "key", b"key", "senderTimestampMs", b"senderTimestampMs", "text", b"text"] # noqa: Y015
+ _HasFieldArgType: _TypeAlias = _typing.Literal["chunkOrder", b"chunkOrder", "directPath", b"directPath", "encHandle", b"encHandle", "fileEncSha256", b"fileEncSha256", "fileLength", b"fileLength", "fileSha256", b"fileSha256", "fullHistorySyncOnDemandRequestMetadata", b"fullHistorySyncOnDemandRequestMetadata", "initialHistBootstrapInlinePayload", b"initialHistBootstrapInlinePayload", "mediaKey", b"mediaKey", "messageAccessStatus", b"messageAccessStatus", "oldestMsgInChunkTimestampSec", b"oldestMsgInChunkTimestampSec", "originalMessageId", b"originalMessageId", "peerDataRequestSessionId", b"peerDataRequestSessionId", "progress", b"progress", "syncType", b"syncType"] # noqa: Y015
def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ...
- _ClearFieldArgType: _TypeAlias = _typing.Literal["groupingKey", b"groupingKey", "key", b"key", "senderTimestampMs", b"senderTimestampMs", "text", b"text"] # noqa: Y015
+ _ClearFieldArgType: _TypeAlias = _typing.Literal["chunkOrder", b"chunkOrder", "directPath", b"directPath", "encHandle", b"encHandle", "fileEncSha256", b"fileEncSha256", "fileLength", b"fileLength", "fileSha256", b"fileSha256", "fullHistorySyncOnDemandRequestMetadata", b"fullHistorySyncOnDemandRequestMetadata", "initialHistBootstrapInlinePayload", b"initialHistBootstrapInlinePayload", "mediaKey", b"mediaKey", "messageAccessStatus", b"messageAccessStatus", "oldestMsgInChunkTimestampSec", b"oldestMsgInChunkTimestampSec", "originalMessageId", b"originalMessageId", "peerDataRequestSessionId", b"peerDataRequestSessionId", "progress", b"progress", "syncType", b"syncType"] # noqa: Y015
def ClearField(self, field_name: _ClearFieldArgType) -> None: ...
@_typing.final
- class RequestPaymentMessage(_message.Message):
+ class ImageMessage(_message.Message):
DESCRIPTOR: _descriptor.Descriptor
- NOTEMESSAGE_FIELD_NUMBER: _builtins.int
- CURRENCYCODEISO4217_FIELD_NUMBER: _builtins.int
- AMOUNT1000_FIELD_NUMBER: _builtins.int
- REQUESTFROM_FIELD_NUMBER: _builtins.int
- EXPIRYTIMESTAMP_FIELD_NUMBER: _builtins.int
- AMOUNT_FIELD_NUMBER: _builtins.int
- BACKGROUND_FIELD_NUMBER: _builtins.int
- currencyCodeIso4217: _builtins.str
- amount1000: _builtins.int
- requestFrom: _builtins.str
- expiryTimestamp: _builtins.int
- @_builtins.property
- def noteMessage(self) -> Global___Message: ...
- @_builtins.property
- def amount(self) -> Global___Money: ...
- @_builtins.property
- def background(self) -> Global___PaymentBackground: ...
- def __init__(
- self,
- *,
- noteMessage: Global___Message | None = ...,
- currencyCodeIso4217: _builtins.str | None = ...,
- amount1000: _builtins.int | None = ...,
- requestFrom: _builtins.str | None = ...,
- expiryTimestamp: _builtins.int | None = ...,
- amount: Global___Money | None = ...,
- background: Global___PaymentBackground | None = ...,
- ) -> None: ...
- _HasFieldArgType: _TypeAlias = _typing.Literal["amount", b"amount", "amount1000", b"amount1000", "background", b"background", "currencyCodeIso4217", b"currencyCodeIso4217", "expiryTimestamp", b"expiryTimestamp", "noteMessage", b"noteMessage", "requestFrom", b"requestFrom"] # noqa: Y015
- def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ...
- _ClearFieldArgType: _TypeAlias = _typing.Literal["amount", b"amount", "amount1000", b"amount1000", "background", b"background", "currencyCodeIso4217", b"currencyCodeIso4217", "expiryTimestamp", b"expiryTimestamp", "noteMessage", b"noteMessage", "requestFrom", b"requestFrom"] # noqa: Y015
- def ClearField(self, field_name: _ClearFieldArgType) -> None: ...
+ class _ImageSourceType:
+ ValueType = _typing.NewType("ValueType", _builtins.int)
+ V: _TypeAlias = ValueType # noqa: Y015
- @_typing.final
- class RequestPhoneNumberMessage(_message.Message):
- DESCRIPTOR: _descriptor.Descriptor
+ class _ImageSourceTypeEnumTypeWrapper(_enum_type_wrapper._EnumTypeWrapper[Message.ImageMessage._ImageSourceType.ValueType], _builtins.type):
+ DESCRIPTOR: _descriptor.EnumDescriptor
+ USER_IMAGE: Message.ImageMessage._ImageSourceType.ValueType # 0
+ AI_GENERATED: Message.ImageMessage._ImageSourceType.ValueType # 1
+ AI_MODIFIED: Message.ImageMessage._ImageSourceType.ValueType # 2
+ RASTERIZED_TEXT_STATUS: Message.ImageMessage._ImageSourceType.ValueType # 3
+
+ class ImageSourceType(_ImageSourceType, metaclass=_ImageSourceTypeEnumTypeWrapper): ...
+ USER_IMAGE: Message.ImageMessage.ImageSourceType.ValueType # 0
+ AI_GENERATED: Message.ImageMessage.ImageSourceType.ValueType # 1
+ AI_MODIFIED: Message.ImageMessage.ImageSourceType.ValueType # 2
+ RASTERIZED_TEXT_STATUS: Message.ImageMessage.ImageSourceType.ValueType # 3
+ URL_FIELD_NUMBER: _builtins.int
+ MIMETYPE_FIELD_NUMBER: _builtins.int
+ CAPTION_FIELD_NUMBER: _builtins.int
+ FILESHA256_FIELD_NUMBER: _builtins.int
+ FILELENGTH_FIELD_NUMBER: _builtins.int
+ HEIGHT_FIELD_NUMBER: _builtins.int
+ WIDTH_FIELD_NUMBER: _builtins.int
+ MEDIAKEY_FIELD_NUMBER: _builtins.int
+ FILEENCSHA256_FIELD_NUMBER: _builtins.int
+ INTERACTIVEANNOTATIONS_FIELD_NUMBER: _builtins.int
+ DIRECTPATH_FIELD_NUMBER: _builtins.int
+ MEDIAKEYTIMESTAMP_FIELD_NUMBER: _builtins.int
+ JPEGTHUMBNAIL_FIELD_NUMBER: _builtins.int
CONTEXTINFO_FIELD_NUMBER: _builtins.int
+ FIRSTSCANSIDECAR_FIELD_NUMBER: _builtins.int
+ FIRSTSCANLENGTH_FIELD_NUMBER: _builtins.int
+ EXPERIMENTGROUPID_FIELD_NUMBER: _builtins.int
+ SCANSSIDECAR_FIELD_NUMBER: _builtins.int
+ SCANLENGTHS_FIELD_NUMBER: _builtins.int
+ MIDQUALITYFILESHA256_FIELD_NUMBER: _builtins.int
+ MIDQUALITYFILEENCSHA256_FIELD_NUMBER: _builtins.int
+ VIEWONCE_FIELD_NUMBER: _builtins.int
+ THUMBNAILDIRECTPATH_FIELD_NUMBER: _builtins.int
+ THUMBNAILSHA256_FIELD_NUMBER: _builtins.int
+ THUMBNAILENCSHA256_FIELD_NUMBER: _builtins.int
+ STATICURL_FIELD_NUMBER: _builtins.int
+ ANNOTATIONS_FIELD_NUMBER: _builtins.int
+ IMAGESOURCETYPE_FIELD_NUMBER: _builtins.int
+ ACCESSIBILITYLABEL_FIELD_NUMBER: _builtins.int
+ QRURL_FIELD_NUMBER: _builtins.int
+ url: _builtins.str
+ mimetype: _builtins.str
+ caption: _builtins.str
+ fileSha256: _builtins.bytes
+ fileLength: _builtins.int
+ height: _builtins.int
+ width: _builtins.int
+ mediaKey: _builtins.bytes
+ fileEncSha256: _builtins.bytes
+ directPath: _builtins.str
+ mediaKeyTimestamp: _builtins.int
+ jpegThumbnail: _builtins.bytes
+ firstScanSidecar: _builtins.bytes
+ firstScanLength: _builtins.int
+ experimentGroupId: _builtins.int
+ scansSidecar: _builtins.bytes
+ midQualityFileSha256: _builtins.bytes
+ midQualityFileEncSha256: _builtins.bytes
+ viewOnce: _builtins.bool
+ thumbnailDirectPath: _builtins.str
+ thumbnailSha256: _builtins.bytes
+ thumbnailEncSha256: _builtins.bytes
+ staticUrl: _builtins.str
+ imageSourceType: Global___Message.ImageMessage.ImageSourceType.ValueType
+ accessibilityLabel: _builtins.str
+ qrUrl: _builtins.str
+ @_builtins.property
+ def interactiveAnnotations(self) -> _containers.RepeatedCompositeFieldContainer[Global___InteractiveAnnotation]: ...
@_builtins.property
def contextInfo(self) -> Global___ContextInfo: ...
+ @_builtins.property
+ def scanLengths(self) -> _containers.RepeatedScalarFieldContainer[_builtins.int]: ...
+ @_builtins.property
+ def annotations(self) -> _containers.RepeatedCompositeFieldContainer[Global___InteractiveAnnotation]: ...
def __init__(
self,
*,
+ url: _builtins.str | None = ...,
+ mimetype: _builtins.str | None = ...,
+ caption: _builtins.str | None = ...,
+ fileSha256: _builtins.bytes | None = ...,
+ fileLength: _builtins.int | None = ...,
+ height: _builtins.int | None = ...,
+ width: _builtins.int | None = ...,
+ mediaKey: _builtins.bytes | None = ...,
+ fileEncSha256: _builtins.bytes | None = ...,
+ interactiveAnnotations: _abc.Iterable[Global___InteractiveAnnotation] | None = ...,
+ directPath: _builtins.str | None = ...,
+ mediaKeyTimestamp: _builtins.int | None = ...,
+ jpegThumbnail: _builtins.bytes | None = ...,
contextInfo: Global___ContextInfo | None = ...,
+ firstScanSidecar: _builtins.bytes | None = ...,
+ firstScanLength: _builtins.int | None = ...,
+ experimentGroupId: _builtins.int | None = ...,
+ scansSidecar: _builtins.bytes | None = ...,
+ scanLengths: _abc.Iterable[_builtins.int] | None = ...,
+ midQualityFileSha256: _builtins.bytes | None = ...,
+ midQualityFileEncSha256: _builtins.bytes | None = ...,
+ viewOnce: _builtins.bool | None = ...,
+ thumbnailDirectPath: _builtins.str | None = ...,
+ thumbnailSha256: _builtins.bytes | None = ...,
+ thumbnailEncSha256: _builtins.bytes | None = ...,
+ staticUrl: _builtins.str | None = ...,
+ annotations: _abc.Iterable[Global___InteractiveAnnotation] | None = ...,
+ imageSourceType: Global___Message.ImageMessage.ImageSourceType.ValueType | None = ...,
+ accessibilityLabel: _builtins.str | None = ...,
+ qrUrl: _builtins.str | None = ...,
) -> None: ...
- _HasFieldArgType: _TypeAlias = _typing.Literal["contextInfo", b"contextInfo"] # noqa: Y015
+ _HasFieldArgType: _TypeAlias = _typing.Literal["accessibilityLabel", b"accessibilityLabel", "caption", b"caption", "contextInfo", b"contextInfo", "directPath", b"directPath", "experimentGroupId", b"experimentGroupId", "fileEncSha256", b"fileEncSha256", "fileLength", b"fileLength", "fileSha256", b"fileSha256", "firstScanLength", b"firstScanLength", "firstScanSidecar", b"firstScanSidecar", "height", b"height", "imageSourceType", b"imageSourceType", "jpegThumbnail", b"jpegThumbnail", "mediaKey", b"mediaKey", "mediaKeyTimestamp", b"mediaKeyTimestamp", "midQualityFileEncSha256", b"midQualityFileEncSha256", "midQualityFileSha256", b"midQualityFileSha256", "mimetype", b"mimetype", "qrUrl", b"qrUrl", "scansSidecar", b"scansSidecar", "staticUrl", b"staticUrl", "thumbnailDirectPath", b"thumbnailDirectPath", "thumbnailEncSha256", b"thumbnailEncSha256", "thumbnailSha256", b"thumbnailSha256", "url", b"url", "viewOnce", b"viewOnce", "width", b"width"] # noqa: Y015
def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ...
- _ClearFieldArgType: _TypeAlias = _typing.Literal["contextInfo", b"contextInfo"] # noqa: Y015
+ _ClearFieldArgType: _TypeAlias = _typing.Literal["accessibilityLabel", b"accessibilityLabel", "annotations", b"annotations", "caption", b"caption", "contextInfo", b"contextInfo", "directPath", b"directPath", "experimentGroupId", b"experimentGroupId", "fileEncSha256", b"fileEncSha256", "fileLength", b"fileLength", "fileSha256", b"fileSha256", "firstScanLength", b"firstScanLength", "firstScanSidecar", b"firstScanSidecar", "height", b"height", "imageSourceType", b"imageSourceType", "interactiveAnnotations", b"interactiveAnnotations", "jpegThumbnail", b"jpegThumbnail", "mediaKey", b"mediaKey", "mediaKeyTimestamp", b"mediaKeyTimestamp", "midQualityFileEncSha256", b"midQualityFileEncSha256", "midQualityFileSha256", b"midQualityFileSha256", "mimetype", b"mimetype", "qrUrl", b"qrUrl", "scanLengths", b"scanLengths", "scansSidecar", b"scansSidecar", "staticUrl", b"staticUrl", "thumbnailDirectPath", b"thumbnailDirectPath", "thumbnailEncSha256", b"thumbnailEncSha256", "thumbnailSha256", b"thumbnailSha256", "url", b"url", "viewOnce", b"viewOnce", "width", b"width"] # noqa: Y015
def ClearField(self, field_name: _ClearFieldArgType) -> None: ...
@_typing.final
- class RequestWelcomeMessageMetadata(_message.Message):
+ class InitialSecurityNotificationSettingSync(_message.Message):
DESCRIPTOR: _descriptor.Descriptor
- class _LocalChatState:
- ValueType = _typing.NewType("ValueType", _builtins.int)
- V: _TypeAlias = ValueType # noqa: Y015
-
- class _LocalChatStateEnumTypeWrapper(_enum_type_wrapper._EnumTypeWrapper[Message.RequestWelcomeMessageMetadata._LocalChatState.ValueType], _builtins.type):
- DESCRIPTOR: _descriptor.EnumDescriptor
- EMPTY: Message.RequestWelcomeMessageMetadata._LocalChatState.ValueType # 0
- NON_EMPTY: Message.RequestWelcomeMessageMetadata._LocalChatState.ValueType # 1
-
- class LocalChatState(_LocalChatState, metaclass=_LocalChatStateEnumTypeWrapper): ...
- EMPTY: Message.RequestWelcomeMessageMetadata.LocalChatState.ValueType # 0
- NON_EMPTY: Message.RequestWelcomeMessageMetadata.LocalChatState.ValueType # 1
-
- class _WelcomeTrigger:
- ValueType = _typing.NewType("ValueType", _builtins.int)
- V: _TypeAlias = ValueType # noqa: Y015
-
- class _WelcomeTriggerEnumTypeWrapper(_enum_type_wrapper._EnumTypeWrapper[Message.RequestWelcomeMessageMetadata._WelcomeTrigger.ValueType], _builtins.type):
- DESCRIPTOR: _descriptor.EnumDescriptor
- CHAT_OPEN: Message.RequestWelcomeMessageMetadata._WelcomeTrigger.ValueType # 0
- COMPANION_PAIRING: Message.RequestWelcomeMessageMetadata._WelcomeTrigger.ValueType # 1
-
- class WelcomeTrigger(_WelcomeTrigger, metaclass=_WelcomeTriggerEnumTypeWrapper): ...
- CHAT_OPEN: Message.RequestWelcomeMessageMetadata.WelcomeTrigger.ValueType # 0
- COMPANION_PAIRING: Message.RequestWelcomeMessageMetadata.WelcomeTrigger.ValueType # 1
-
- LOCALCHATSTATE_FIELD_NUMBER: _builtins.int
- WELCOMETRIGGER_FIELD_NUMBER: _builtins.int
- BOTAGENTMETADATA_FIELD_NUMBER: _builtins.int
- localChatState: Global___Message.RequestWelcomeMessageMetadata.LocalChatState.ValueType
- welcomeTrigger: Global___Message.RequestWelcomeMessageMetadata.WelcomeTrigger.ValueType
- @_builtins.property
- def botAgentMetadata(self) -> Global___BotAgentMetadata: ...
+ SECURITYNOTIFICATIONENABLED_FIELD_NUMBER: _builtins.int
+ securityNotificationEnabled: _builtins.bool
def __init__(
self,
*,
- localChatState: Global___Message.RequestWelcomeMessageMetadata.LocalChatState.ValueType | None = ...,
- welcomeTrigger: Global___Message.RequestWelcomeMessageMetadata.WelcomeTrigger.ValueType | None = ...,
- botAgentMetadata: Global___BotAgentMetadata | None = ...,
+ securityNotificationEnabled: _builtins.bool | None = ...,
) -> None: ...
- _HasFieldArgType: _TypeAlias = _typing.Literal["botAgentMetadata", b"botAgentMetadata", "localChatState", b"localChatState", "welcomeTrigger", b"welcomeTrigger"] # noqa: Y015
+ _HasFieldArgType: _TypeAlias = _typing.Literal["securityNotificationEnabled", b"securityNotificationEnabled"] # noqa: Y015
def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ...
- _ClearFieldArgType: _TypeAlias = _typing.Literal["botAgentMetadata", b"botAgentMetadata", "localChatState", b"localChatState", "welcomeTrigger", b"welcomeTrigger"] # noqa: Y015
+ _ClearFieldArgType: _TypeAlias = _typing.Literal["securityNotificationEnabled", b"securityNotificationEnabled"] # noqa: Y015
def ClearField(self, field_name: _ClearFieldArgType) -> None: ...
@_typing.final
- class RootSecretDistributeMessage(_message.Message):
+ class InteractiveMessage(_message.Message):
DESCRIPTOR: _descriptor.Descriptor
- CHATJID_FIELD_NUMBER: _builtins.int
- chatJid: _builtins.str
- def __init__(
- self,
- *,
- chatJid: _builtins.str | None = ...,
- ) -> None: ...
- _HasFieldArgType: _TypeAlias = _typing.Literal["chatJid", b"chatJid"] # noqa: Y015
- def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ...
- _ClearFieldArgType: _TypeAlias = _typing.Literal["chatJid", b"chatJid"] # noqa: Y015
- def ClearField(self, field_name: _ClearFieldArgType) -> None: ...
+ @_typing.final
+ class BloksWidget(_message.Message):
+ DESCRIPTOR: _descriptor.Descriptor
- @_typing.final
- class ScheduledCallCreationMessage(_message.Message):
- DESCRIPTOR: _descriptor.Descriptor
+ UUID_FIELD_NUMBER: _builtins.int
+ DATA_FIELD_NUMBER: _builtins.int
+ TYPE_FIELD_NUMBER: _builtins.int
+ FALLBACK_FIELD_NUMBER: _builtins.int
+ uuid: _builtins.str
+ data: _builtins.str
+ type: _builtins.str
+ fallback: _builtins.str
+ def __init__(
+ self,
+ *,
+ uuid: _builtins.str | None = ...,
+ data: _builtins.str | None = ...,
+ type: _builtins.str | None = ...,
+ fallback: _builtins.str | None = ...,
+ ) -> None: ...
+ _HasFieldArgType: _TypeAlias = _typing.Literal["data", b"data", "fallback", b"fallback", "type", b"type", "uuid", b"uuid"] # noqa: Y015
+ def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ...
+ _ClearFieldArgType: _TypeAlias = _typing.Literal["data", b"data", "fallback", b"fallback", "type", b"type", "uuid", b"uuid"] # noqa: Y015
+ def ClearField(self, field_name: _ClearFieldArgType) -> None: ...
- class _CallType:
- ValueType = _typing.NewType("ValueType", _builtins.int)
- V: _TypeAlias = ValueType # noqa: Y015
+ @_typing.final
+ class Body(_message.Message):
+ DESCRIPTOR: _descriptor.Descriptor
- class _CallTypeEnumTypeWrapper(_enum_type_wrapper._EnumTypeWrapper[Message.ScheduledCallCreationMessage._CallType.ValueType], _builtins.type):
- DESCRIPTOR: _descriptor.EnumDescriptor
- UNKNOWN: Message.ScheduledCallCreationMessage._CallType.ValueType # 0
- VOICE: Message.ScheduledCallCreationMessage._CallType.ValueType # 1
- VIDEO: Message.ScheduledCallCreationMessage._CallType.ValueType # 2
+ TEXT_FIELD_NUMBER: _builtins.int
+ text: _builtins.str
+ def __init__(
+ self,
+ *,
+ text: _builtins.str | None = ...,
+ ) -> None: ...
+ _HasFieldArgType: _TypeAlias = _typing.Literal["text", b"text"] # noqa: Y015
+ def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ...
+ _ClearFieldArgType: _TypeAlias = _typing.Literal["text", b"text"] # noqa: Y015
+ def ClearField(self, field_name: _ClearFieldArgType) -> None: ...
- class CallType(_CallType, metaclass=_CallTypeEnumTypeWrapper): ...
- UNKNOWN: Message.ScheduledCallCreationMessage.CallType.ValueType # 0
- VOICE: Message.ScheduledCallCreationMessage.CallType.ValueType # 1
- VIDEO: Message.ScheduledCallCreationMessage.CallType.ValueType # 2
+ @_typing.final
+ class CarouselMessage(_message.Message):
+ DESCRIPTOR: _descriptor.Descriptor
- SCHEDULEDTIMESTAMPMS_FIELD_NUMBER: _builtins.int
- CALLTYPE_FIELD_NUMBER: _builtins.int
- TITLE_FIELD_NUMBER: _builtins.int
- scheduledTimestampMs: _builtins.int
- callType: Global___Message.ScheduledCallCreationMessage.CallType.ValueType
- title: _builtins.str
- def __init__(
- self,
- *,
- scheduledTimestampMs: _builtins.int | None = ...,
- callType: Global___Message.ScheduledCallCreationMessage.CallType.ValueType | None = ...,
- title: _builtins.str | None = ...,
- ) -> None: ...
- _HasFieldArgType: _TypeAlias = _typing.Literal["callType", b"callType", "scheduledTimestampMs", b"scheduledTimestampMs", "title", b"title"] # noqa: Y015
- def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ...
- _ClearFieldArgType: _TypeAlias = _typing.Literal["callType", b"callType", "scheduledTimestampMs", b"scheduledTimestampMs", "title", b"title"] # noqa: Y015
- def ClearField(self, field_name: _ClearFieldArgType) -> None: ...
-
- @_typing.final
- class ScheduledCallEditMessage(_message.Message):
- DESCRIPTOR: _descriptor.Descriptor
-
- class _EditType:
- ValueType = _typing.NewType("ValueType", _builtins.int)
- V: _TypeAlias = ValueType # noqa: Y015
+ class _CarouselCardType:
+ ValueType = _typing.NewType("ValueType", _builtins.int)
+ V: _TypeAlias = ValueType # noqa: Y015
- class _EditTypeEnumTypeWrapper(_enum_type_wrapper._EnumTypeWrapper[Message.ScheduledCallEditMessage._EditType.ValueType], _builtins.type):
- DESCRIPTOR: _descriptor.EnumDescriptor
- UNKNOWN: Message.ScheduledCallEditMessage._EditType.ValueType # 0
- CANCEL: Message.ScheduledCallEditMessage._EditType.ValueType # 1
+ class _CarouselCardTypeEnumTypeWrapper(_enum_type_wrapper._EnumTypeWrapper[Message.InteractiveMessage.CarouselMessage._CarouselCardType.ValueType], _builtins.type):
+ DESCRIPTOR: _descriptor.EnumDescriptor
+ UNKNOWN: Message.InteractiveMessage.CarouselMessage._CarouselCardType.ValueType # 0
+ HSCROLL_CARDS: Message.InteractiveMessage.CarouselMessage._CarouselCardType.ValueType # 1
+ ALBUM_IMAGE: Message.InteractiveMessage.CarouselMessage._CarouselCardType.ValueType # 2
- class EditType(_EditType, metaclass=_EditTypeEnumTypeWrapper): ...
- UNKNOWN: Message.ScheduledCallEditMessage.EditType.ValueType # 0
- CANCEL: Message.ScheduledCallEditMessage.EditType.ValueType # 1
+ class CarouselCardType(_CarouselCardType, metaclass=_CarouselCardTypeEnumTypeWrapper): ...
+ UNKNOWN: Message.InteractiveMessage.CarouselMessage.CarouselCardType.ValueType # 0
+ HSCROLL_CARDS: Message.InteractiveMessage.CarouselMessage.CarouselCardType.ValueType # 1
+ ALBUM_IMAGE: Message.InteractiveMessage.CarouselMessage.CarouselCardType.ValueType # 2
- KEY_FIELD_NUMBER: _builtins.int
- EDITTYPE_FIELD_NUMBER: _builtins.int
- editType: Global___Message.ScheduledCallEditMessage.EditType.ValueType
- @_builtins.property
- def key(self) -> Global___MessageKey: ...
- def __init__(
- self,
- *,
- key: Global___MessageKey | None = ...,
- editType: Global___Message.ScheduledCallEditMessage.EditType.ValueType | None = ...,
- ) -> None: ...
- _HasFieldArgType: _TypeAlias = _typing.Literal["editType", b"editType", "key", b"key"] # noqa: Y015
- def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ...
- _ClearFieldArgType: _TypeAlias = _typing.Literal["editType", b"editType", "key", b"key"] # noqa: Y015
- def ClearField(self, field_name: _ClearFieldArgType) -> None: ...
+ CARDS_FIELD_NUMBER: _builtins.int
+ MESSAGEVERSION_FIELD_NUMBER: _builtins.int
+ CAROUSELCARDTYPE_FIELD_NUMBER: _builtins.int
+ messageVersion: _builtins.int
+ carouselCardType: Global___Message.InteractiveMessage.CarouselMessage.CarouselCardType.ValueType
+ @_builtins.property
+ def cards(self) -> _containers.RepeatedCompositeFieldContainer[Global___Message.InteractiveMessage]: ...
+ def __init__(
+ self,
+ *,
+ cards: _abc.Iterable[Global___Message.InteractiveMessage] | None = ...,
+ messageVersion: _builtins.int | None = ...,
+ carouselCardType: Global___Message.InteractiveMessage.CarouselMessage.CarouselCardType.ValueType | None = ...,
+ ) -> None: ...
+ _HasFieldArgType: _TypeAlias = _typing.Literal["carouselCardType", b"carouselCardType", "messageVersion", b"messageVersion"] # noqa: Y015
+ def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ...
+ _ClearFieldArgType: _TypeAlias = _typing.Literal["cards", b"cards", "carouselCardType", b"carouselCardType", "messageVersion", b"messageVersion"] # noqa: Y015
+ def ClearField(self, field_name: _ClearFieldArgType) -> None: ...
- @_typing.final
- class SecretEncryptedMessage(_message.Message):
- DESCRIPTOR: _descriptor.Descriptor
+ @_typing.final
+ class CollectionMessage(_message.Message):
+ DESCRIPTOR: _descriptor.Descriptor
- class _SecretEncType:
- ValueType = _typing.NewType("ValueType", _builtins.int)
- V: _TypeAlias = ValueType # noqa: Y015
+ BIZJID_FIELD_NUMBER: _builtins.int
+ ID_FIELD_NUMBER: _builtins.int
+ MESSAGEVERSION_FIELD_NUMBER: _builtins.int
+ bizJid: _builtins.str
+ id: _builtins.str
+ messageVersion: _builtins.int
+ def __init__(
+ self,
+ *,
+ bizJid: _builtins.str | None = ...,
+ id: _builtins.str | None = ...,
+ messageVersion: _builtins.int | None = ...,
+ ) -> None: ...
+ _HasFieldArgType: _TypeAlias = _typing.Literal["bizJid", b"bizJid", "id", b"id", "messageVersion", b"messageVersion"] # noqa: Y015
+ def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ...
+ _ClearFieldArgType: _TypeAlias = _typing.Literal["bizJid", b"bizJid", "id", b"id", "messageVersion", b"messageVersion"] # noqa: Y015
+ def ClearField(self, field_name: _ClearFieldArgType) -> None: ...
- class _SecretEncTypeEnumTypeWrapper(_enum_type_wrapper._EnumTypeWrapper[Message.SecretEncryptedMessage._SecretEncType.ValueType], _builtins.type):
- DESCRIPTOR: _descriptor.EnumDescriptor
- UNKNOWN: Message.SecretEncryptedMessage._SecretEncType.ValueType # 0
- EVENT_EDIT: Message.SecretEncryptedMessage._SecretEncType.ValueType # 1
- MESSAGE_EDIT: Message.SecretEncryptedMessage._SecretEncType.ValueType # 2
- MESSAGE_SCHEDULE: Message.SecretEncryptedMessage._SecretEncType.ValueType # 3
- POLL_EDIT: Message.SecretEncryptedMessage._SecretEncType.ValueType # 4
- POLL_ADD_OPTION: Message.SecretEncryptedMessage._SecretEncType.ValueType # 5
+ @_typing.final
+ class Footer(_message.Message):
+ DESCRIPTOR: _descriptor.Descriptor
- class SecretEncType(_SecretEncType, metaclass=_SecretEncTypeEnumTypeWrapper): ...
- UNKNOWN: Message.SecretEncryptedMessage.SecretEncType.ValueType # 0
- EVENT_EDIT: Message.SecretEncryptedMessage.SecretEncType.ValueType # 1
- MESSAGE_EDIT: Message.SecretEncryptedMessage.SecretEncType.ValueType # 2
- MESSAGE_SCHEDULE: Message.SecretEncryptedMessage.SecretEncType.ValueType # 3
- POLL_EDIT: Message.SecretEncryptedMessage.SecretEncType.ValueType # 4
- POLL_ADD_OPTION: Message.SecretEncryptedMessage.SecretEncType.ValueType # 5
+ TEXT_FIELD_NUMBER: _builtins.int
+ HASMEDIAATTACHMENT_FIELD_NUMBER: _builtins.int
+ AUDIOMESSAGE_FIELD_NUMBER: _builtins.int
+ text: _builtins.str
+ hasMediaAttachment: _builtins.bool
+ @_builtins.property
+ def audioMessage(self) -> Global___Message.AudioMessage: ...
+ def __init__(
+ self,
+ *,
+ text: _builtins.str | None = ...,
+ hasMediaAttachment: _builtins.bool | None = ...,
+ audioMessage: Global___Message.AudioMessage | None = ...,
+ ) -> None: ...
+ _HasFieldArgType: _TypeAlias = _typing.Literal["audioMessage", b"audioMessage", "hasMediaAttachment", b"hasMediaAttachment", "media", b"media", "text", b"text"] # noqa: Y015
+ def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ...
+ _ClearFieldArgType: _TypeAlias = _typing.Literal["audioMessage", b"audioMessage", "hasMediaAttachment", b"hasMediaAttachment", "media", b"media", "text", b"text"] # noqa: Y015
+ def ClearField(self, field_name: _ClearFieldArgType) -> None: ...
+ _WhichOneofReturnType_media: _TypeAlias = _typing.Literal["audioMessage"] # noqa: Y015
+ _WhichOneofArgType_media: _TypeAlias = _typing.Literal["media", b"media"] # noqa: Y015
+ def WhichOneof(self, oneof_group: _WhichOneofArgType_media) -> _WhichOneofReturnType_media | None: ...
- TARGETMESSAGEKEY_FIELD_NUMBER: _builtins.int
- ENCPAYLOAD_FIELD_NUMBER: _builtins.int
- ENCIV_FIELD_NUMBER: _builtins.int
- SECRETENCTYPE_FIELD_NUMBER: _builtins.int
- REMOTEKEYID_FIELD_NUMBER: _builtins.int
- encPayload: _builtins.bytes
- encIv: _builtins.bytes
- secretEncType: Global___Message.SecretEncryptedMessage.SecretEncType.ValueType
- remoteKeyId: _builtins.str
- @_builtins.property
- def targetMessageKey(self) -> Global___MessageKey: ...
- def __init__(
- self,
- *,
- targetMessageKey: Global___MessageKey | None = ...,
- encPayload: _builtins.bytes | None = ...,
- encIv: _builtins.bytes | None = ...,
- secretEncType: Global___Message.SecretEncryptedMessage.SecretEncType.ValueType | None = ...,
- remoteKeyId: _builtins.str | None = ...,
- ) -> None: ...
- _HasFieldArgType: _TypeAlias = _typing.Literal["encIv", b"encIv", "encPayload", b"encPayload", "remoteKeyId", b"remoteKeyId", "secretEncType", b"secretEncType", "targetMessageKey", b"targetMessageKey"] # noqa: Y015
- def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ...
- _ClearFieldArgType: _TypeAlias = _typing.Literal["encIv", b"encIv", "encPayload", b"encPayload", "remoteKeyId", b"remoteKeyId", "secretEncType", b"secretEncType", "targetMessageKey", b"targetMessageKey"] # noqa: Y015
- def ClearField(self, field_name: _ClearFieldArgType) -> None: ...
+ @_typing.final
+ class Header(_message.Message):
+ DESCRIPTOR: _descriptor.Descriptor
- @_typing.final
- class SendPaymentMessage(_message.Message):
- DESCRIPTOR: _descriptor.Descriptor
+ TITLE_FIELD_NUMBER: _builtins.int
+ SUBTITLE_FIELD_NUMBER: _builtins.int
+ HASMEDIAATTACHMENT_FIELD_NUMBER: _builtins.int
+ BLOKSWIDGET_FIELD_NUMBER: _builtins.int
+ DOCUMENTMESSAGE_FIELD_NUMBER: _builtins.int
+ IMAGEMESSAGE_FIELD_NUMBER: _builtins.int
+ JPEGTHUMBNAIL_FIELD_NUMBER: _builtins.int
+ VIDEOMESSAGE_FIELD_NUMBER: _builtins.int
+ LOCATIONMESSAGE_FIELD_NUMBER: _builtins.int
+ PRODUCTMESSAGE_FIELD_NUMBER: _builtins.int
+ title: _builtins.str
+ subtitle: _builtins.str
+ hasMediaAttachment: _builtins.bool
+ jpegThumbnail: _builtins.bytes
+ @_builtins.property
+ def bloksWidget(self) -> Global___Message.InteractiveMessage.BloksWidget: ...
+ @_builtins.property
+ def documentMessage(self) -> Global___Message.DocumentMessage: ...
+ @_builtins.property
+ def imageMessage(self) -> Global___Message.ImageMessage: ...
+ @_builtins.property
+ def videoMessage(self) -> Global___Message.VideoMessage: ...
+ @_builtins.property
+ def locationMessage(self) -> Global___Message.LocationMessage: ...
+ @_builtins.property
+ def productMessage(self) -> Global___Message.ProductMessage: ...
+ def __init__(
+ self,
+ *,
+ title: _builtins.str | None = ...,
+ subtitle: _builtins.str | None = ...,
+ hasMediaAttachment: _builtins.bool | None = ...,
+ bloksWidget: Global___Message.InteractiveMessage.BloksWidget | None = ...,
+ documentMessage: Global___Message.DocumentMessage | None = ...,
+ imageMessage: Global___Message.ImageMessage | None = ...,
+ jpegThumbnail: _builtins.bytes | None = ...,
+ videoMessage: Global___Message.VideoMessage | None = ...,
+ locationMessage: Global___Message.LocationMessage | None = ...,
+ productMessage: Global___Message.ProductMessage | None = ...,
+ ) -> None: ...
+ _HasFieldArgType: _TypeAlias = _typing.Literal["bloksWidget", b"bloksWidget", "documentMessage", b"documentMessage", "hasMediaAttachment", b"hasMediaAttachment", "imageMessage", b"imageMessage", "jpegThumbnail", b"jpegThumbnail", "locationMessage", b"locationMessage", "media", b"media", "productMessage", b"productMessage", "subtitle", b"subtitle", "title", b"title", "videoMessage", b"videoMessage"] # noqa: Y015
+ def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ...
+ _ClearFieldArgType: _TypeAlias = _typing.Literal["bloksWidget", b"bloksWidget", "documentMessage", b"documentMessage", "hasMediaAttachment", b"hasMediaAttachment", "imageMessage", b"imageMessage", "jpegThumbnail", b"jpegThumbnail", "locationMessage", b"locationMessage", "media", b"media", "productMessage", b"productMessage", "subtitle", b"subtitle", "title", b"title", "videoMessage", b"videoMessage"] # noqa: Y015
+ def ClearField(self, field_name: _ClearFieldArgType) -> None: ...
+ _WhichOneofReturnType_media: _TypeAlias = _typing.Literal["documentMessage", "imageMessage", "jpegThumbnail", "videoMessage", "locationMessage", "productMessage"] # noqa: Y015
+ _WhichOneofArgType_media: _TypeAlias = _typing.Literal["media", b"media"] # noqa: Y015
+ def WhichOneof(self, oneof_group: _WhichOneofArgType_media) -> _WhichOneofReturnType_media | None: ...
- NOTEMESSAGE_FIELD_NUMBER: _builtins.int
- REQUESTMESSAGEKEY_FIELD_NUMBER: _builtins.int
- BACKGROUND_FIELD_NUMBER: _builtins.int
- TRANSACTIONDATA_FIELD_NUMBER: _builtins.int
- transactionData: _builtins.str
- @_builtins.property
- def noteMessage(self) -> Global___Message: ...
- @_builtins.property
- def requestMessageKey(self) -> Global___MessageKey: ...
- @_builtins.property
- def background(self) -> Global___PaymentBackground: ...
- def __init__(
- self,
- *,
- noteMessage: Global___Message | None = ...,
- requestMessageKey: Global___MessageKey | None = ...,
- background: Global___PaymentBackground | None = ...,
- transactionData: _builtins.str | None = ...,
- ) -> None: ...
- _HasFieldArgType: _TypeAlias = _typing.Literal["background", b"background", "noteMessage", b"noteMessage", "requestMessageKey", b"requestMessageKey", "transactionData", b"transactionData"] # noqa: Y015
- def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ...
- _ClearFieldArgType: _TypeAlias = _typing.Literal["background", b"background", "noteMessage", b"noteMessage", "requestMessageKey", b"requestMessageKey", "transactionData", b"transactionData"] # noqa: Y015
- def ClearField(self, field_name: _ClearFieldArgType) -> None: ...
+ @_typing.final
+ class NativeFlowMessage(_message.Message):
+ DESCRIPTOR: _descriptor.Descriptor
- @_typing.final
- class SenderKeyDistributionMessage(_message.Message):
- DESCRIPTOR: _descriptor.Descriptor
+ @_typing.final
+ class NativeFlowButton(_message.Message):
+ DESCRIPTOR: _descriptor.Descriptor
- GROUPID_FIELD_NUMBER: _builtins.int
- AXOLOTLSENDERKEYDISTRIBUTIONMESSAGE_FIELD_NUMBER: _builtins.int
- groupId: _builtins.str
- axolotlSenderKeyDistributionMessage: _builtins.bytes
- def __init__(
- self,
- *,
- groupId: _builtins.str | None = ...,
- axolotlSenderKeyDistributionMessage: _builtins.bytes | None = ...,
- ) -> None: ...
- _HasFieldArgType: _TypeAlias = _typing.Literal["axolotlSenderKeyDistributionMessage", b"axolotlSenderKeyDistributionMessage", "groupId", b"groupId"] # noqa: Y015
- def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ...
- _ClearFieldArgType: _TypeAlias = _typing.Literal["axolotlSenderKeyDistributionMessage", b"axolotlSenderKeyDistributionMessage", "groupId", b"groupId"] # noqa: Y015
- def ClearField(self, field_name: _ClearFieldArgType) -> None: ...
+ NAME_FIELD_NUMBER: _builtins.int
+ BUTTONPARAMSJSON_FIELD_NUMBER: _builtins.int
+ name: _builtins.str
+ buttonParamsJson: _builtins.str
+ def __init__(
+ self,
+ *,
+ name: _builtins.str | None = ...,
+ buttonParamsJson: _builtins.str | None = ...,
+ ) -> None: ...
+ _HasFieldArgType: _TypeAlias = _typing.Literal["buttonParamsJson", b"buttonParamsJson", "name", b"name"] # noqa: Y015
+ def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ...
+ _ClearFieldArgType: _TypeAlias = _typing.Literal["buttonParamsJson", b"buttonParamsJson", "name", b"name"] # noqa: Y015
+ def ClearField(self, field_name: _ClearFieldArgType) -> None: ...
- @_typing.final
- class SplitPaymentMessage(_message.Message):
- DESCRIPTOR: _descriptor.Descriptor
+ BUTTONS_FIELD_NUMBER: _builtins.int
+ MESSAGEPARAMSJSON_FIELD_NUMBER: _builtins.int
+ MESSAGEVERSION_FIELD_NUMBER: _builtins.int
+ messageParamsJson: _builtins.str
+ messageVersion: _builtins.int
+ @_builtins.property
+ def buttons(self) -> _containers.RepeatedCompositeFieldContainer[Global___Message.InteractiveMessage.NativeFlowMessage.NativeFlowButton]: ...
+ def __init__(
+ self,
+ *,
+ buttons: _abc.Iterable[Global___Message.InteractiveMessage.NativeFlowMessage.NativeFlowButton] | None = ...,
+ messageParamsJson: _builtins.str | None = ...,
+ messageVersion: _builtins.int | None = ...,
+ ) -> None: ...
+ _HasFieldArgType: _TypeAlias = _typing.Literal["messageParamsJson", b"messageParamsJson", "messageVersion", b"messageVersion"] # noqa: Y015
+ def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ...
+ _ClearFieldArgType: _TypeAlias = _typing.Literal["buttons", b"buttons", "messageParamsJson", b"messageParamsJson", "messageVersion", b"messageVersion"] # noqa: Y015
+ def ClearField(self, field_name: _ClearFieldArgType) -> None: ...
- SPLITID_FIELD_NUMBER: _builtins.int
- TOTALAMOUNT_FIELD_NUMBER: _builtins.int
- DESCRIPTION_FIELD_NUMBER: _builtins.int
- REQUESTERJID_FIELD_NUMBER: _builtins.int
- PARTICIPANTS_FIELD_NUMBER: _builtins.int
- CREATEDATMS_FIELD_NUMBER: _builtins.int
+ @_typing.final
+ class ShopMessage(_message.Message):
+ DESCRIPTOR: _descriptor.Descriptor
+
+ class _Surface:
+ ValueType = _typing.NewType("ValueType", _builtins.int)
+ V: _TypeAlias = ValueType # noqa: Y015
+
+ class _SurfaceEnumTypeWrapper(_enum_type_wrapper._EnumTypeWrapper[Message.InteractiveMessage.ShopMessage._Surface.ValueType], _builtins.type):
+ DESCRIPTOR: _descriptor.EnumDescriptor
+ UNKNOWN_SURFACE: Message.InteractiveMessage.ShopMessage._Surface.ValueType # 0
+ FB: Message.InteractiveMessage.ShopMessage._Surface.ValueType # 1
+ IG: Message.InteractiveMessage.ShopMessage._Surface.ValueType # 2
+ WA: Message.InteractiveMessage.ShopMessage._Surface.ValueType # 3
+
+ class Surface(_Surface, metaclass=_SurfaceEnumTypeWrapper): ...
+ UNKNOWN_SURFACE: Message.InteractiveMessage.ShopMessage.Surface.ValueType # 0
+ FB: Message.InteractiveMessage.ShopMessage.Surface.ValueType # 1
+ IG: Message.InteractiveMessage.ShopMessage.Surface.ValueType # 2
+ WA: Message.InteractiveMessage.ShopMessage.Surface.ValueType # 3
+
+ ID_FIELD_NUMBER: _builtins.int
+ SURFACE_FIELD_NUMBER: _builtins.int
+ MESSAGEVERSION_FIELD_NUMBER: _builtins.int
+ id: _builtins.str
+ surface: Global___Message.InteractiveMessage.ShopMessage.Surface.ValueType
+ messageVersion: _builtins.int
+ def __init__(
+ self,
+ *,
+ id: _builtins.str | None = ...,
+ surface: Global___Message.InteractiveMessage.ShopMessage.Surface.ValueType | None = ...,
+ messageVersion: _builtins.int | None = ...,
+ ) -> None: ...
+ _HasFieldArgType: _TypeAlias = _typing.Literal["id", b"id", "messageVersion", b"messageVersion", "surface", b"surface"] # noqa: Y015
+ def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ...
+ _ClearFieldArgType: _TypeAlias = _typing.Literal["id", b"id", "messageVersion", b"messageVersion", "surface", b"surface"] # noqa: Y015
+ def ClearField(self, field_name: _ClearFieldArgType) -> None: ...
+
+ HEADER_FIELD_NUMBER: _builtins.int
+ BODY_FIELD_NUMBER: _builtins.int
+ FOOTER_FIELD_NUMBER: _builtins.int
+ BLOKSWIDGET_FIELD_NUMBER: _builtins.int
CONTEXTINFO_FIELD_NUMBER: _builtins.int
- splitId: _builtins.str
- description: _builtins.str
- requesterJid: _builtins.str
- createdAtMs: _builtins.int
+ URLTRACKINGMAP_FIELD_NUMBER: _builtins.int
+ SHOPSTOREFRONTMESSAGE_FIELD_NUMBER: _builtins.int
+ COLLECTIONMESSAGE_FIELD_NUMBER: _builtins.int
+ NATIVEFLOWMESSAGE_FIELD_NUMBER: _builtins.int
+ CAROUSELMESSAGE_FIELD_NUMBER: _builtins.int
@_builtins.property
- def totalAmount(self) -> Global___Money: ...
+ def header(self) -> Global___Message.InteractiveMessage.Header: ...
@_builtins.property
- def participants(self) -> _containers.RepeatedCompositeFieldContainer[Global___Message.SplitPaymentParticipant]: ...
+ def body(self) -> Global___Message.InteractiveMessage.Body: ...
+ @_builtins.property
+ def footer(self) -> Global___Message.InteractiveMessage.Footer: ...
+ @_builtins.property
+ def bloksWidget(self) -> Global___Message.InteractiveMessage.BloksWidget: ...
@_builtins.property
def contextInfo(self) -> Global___ContextInfo: ...
+ @_builtins.property
+ def urlTrackingMap(self) -> Global___UrlTrackingMap: ...
+ @_builtins.property
+ def shopStorefrontMessage(self) -> Global___Message.InteractiveMessage.ShopMessage: ...
+ @_builtins.property
+ def collectionMessage(self) -> Global___Message.InteractiveMessage.CollectionMessage: ...
+ @_builtins.property
+ def nativeFlowMessage(self) -> Global___Message.InteractiveMessage.NativeFlowMessage: ...
+ @_builtins.property
+ def carouselMessage(self) -> Global___Message.InteractiveMessage.CarouselMessage: ...
def __init__(
self,
*,
- splitId: _builtins.str | None = ...,
- totalAmount: Global___Money | None = ...,
- description: _builtins.str | None = ...,
- requesterJid: _builtins.str | None = ...,
- participants: _abc.Iterable[Global___Message.SplitPaymentParticipant] | None = ...,
- createdAtMs: _builtins.int | None = ...,
+ header: Global___Message.InteractiveMessage.Header | None = ...,
+ body: Global___Message.InteractiveMessage.Body | None = ...,
+ footer: Global___Message.InteractiveMessage.Footer | None = ...,
+ bloksWidget: Global___Message.InteractiveMessage.BloksWidget | None = ...,
contextInfo: Global___ContextInfo | None = ...,
+ urlTrackingMap: Global___UrlTrackingMap | None = ...,
+ shopStorefrontMessage: Global___Message.InteractiveMessage.ShopMessage | None = ...,
+ collectionMessage: Global___Message.InteractiveMessage.CollectionMessage | None = ...,
+ nativeFlowMessage: Global___Message.InteractiveMessage.NativeFlowMessage | None = ...,
+ carouselMessage: Global___Message.InteractiveMessage.CarouselMessage | None = ...,
) -> None: ...
- _HasFieldArgType: _TypeAlias = _typing.Literal["contextInfo", b"contextInfo", "createdAtMs", b"createdAtMs", "description", b"description", "requesterJid", b"requesterJid", "splitId", b"splitId", "totalAmount", b"totalAmount"] # noqa: Y015
+ _HasFieldArgType: _TypeAlias = _typing.Literal["bloksWidget", b"bloksWidget", "body", b"body", "carouselMessage", b"carouselMessage", "collectionMessage", b"collectionMessage", "contextInfo", b"contextInfo", "footer", b"footer", "header", b"header", "interactiveMessage", b"interactiveMessage", "nativeFlowMessage", b"nativeFlowMessage", "shopStorefrontMessage", b"shopStorefrontMessage", "urlTrackingMap", b"urlTrackingMap"] # noqa: Y015
def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ...
- _ClearFieldArgType: _TypeAlias = _typing.Literal["contextInfo", b"contextInfo", "createdAtMs", b"createdAtMs", "description", b"description", "participants", b"participants", "requesterJid", b"requesterJid", "splitId", b"splitId", "totalAmount", b"totalAmount"] # noqa: Y015
+ _ClearFieldArgType: _TypeAlias = _typing.Literal["bloksWidget", b"bloksWidget", "body", b"body", "carouselMessage", b"carouselMessage", "collectionMessage", b"collectionMessage", "contextInfo", b"contextInfo", "footer", b"footer", "header", b"header", "interactiveMessage", b"interactiveMessage", "nativeFlowMessage", b"nativeFlowMessage", "shopStorefrontMessage", b"shopStorefrontMessage", "urlTrackingMap", b"urlTrackingMap"] # noqa: Y015
def ClearField(self, field_name: _ClearFieldArgType) -> None: ...
+ _WhichOneofReturnType_interactiveMessage: _TypeAlias = _typing.Literal["shopStorefrontMessage", "collectionMessage", "nativeFlowMessage", "carouselMessage"] # noqa: Y015
+ _WhichOneofArgType_interactiveMessage: _TypeAlias = _typing.Literal["interactiveMessage", b"interactiveMessage"] # noqa: Y015
+ def WhichOneof(self, oneof_group: _WhichOneofArgType_interactiveMessage) -> _WhichOneofReturnType_interactiveMessage | None: ...
@_typing.final
- class SplitPaymentParticipant(_message.Message):
+ class InteractiveResponseMessage(_message.Message):
DESCRIPTOR: _descriptor.Descriptor
- class _SplitPaymentStatus:
- ValueType = _typing.NewType("ValueType", _builtins.int)
- V: _TypeAlias = ValueType # noqa: Y015
+ @_typing.final
+ class Body(_message.Message):
+ DESCRIPTOR: _descriptor.Descriptor
- class _SplitPaymentStatusEnumTypeWrapper(_enum_type_wrapper._EnumTypeWrapper[Message.SplitPaymentParticipant._SplitPaymentStatus.ValueType], _builtins.type):
- DESCRIPTOR: _descriptor.EnumDescriptor
- PENDING: Message.SplitPaymentParticipant._SplitPaymentStatus.ValueType # 0
- PAID: Message.SplitPaymentParticipant._SplitPaymentStatus.ValueType # 1
+ class _Format:
+ ValueType = _typing.NewType("ValueType", _builtins.int)
+ V: _TypeAlias = ValueType # noqa: Y015
- class SplitPaymentStatus(_SplitPaymentStatus, metaclass=_SplitPaymentStatusEnumTypeWrapper): ...
- PENDING: Message.SplitPaymentParticipant.SplitPaymentStatus.ValueType # 0
- PAID: Message.SplitPaymentParticipant.SplitPaymentStatus.ValueType # 1
+ class _FormatEnumTypeWrapper(_enum_type_wrapper._EnumTypeWrapper[Message.InteractiveResponseMessage.Body._Format.ValueType], _builtins.type):
+ DESCRIPTOR: _descriptor.EnumDescriptor
+ DEFAULT: Message.InteractiveResponseMessage.Body._Format.ValueType # 0
+ EXTENSIONS_1: Message.InteractiveResponseMessage.Body._Format.ValueType # 1
- JID_FIELD_NUMBER: _builtins.int
- AMOUNT_FIELD_NUMBER: _builtins.int
- STATUS_FIELD_NUMBER: _builtins.int
- jid: _builtins.str
- status: Global___Message.SplitPaymentParticipant.SplitPaymentStatus.ValueType
+ class Format(_Format, metaclass=_FormatEnumTypeWrapper): ...
+ DEFAULT: Message.InteractiveResponseMessage.Body.Format.ValueType # 0
+ EXTENSIONS_1: Message.InteractiveResponseMessage.Body.Format.ValueType # 1
+
+ TEXT_FIELD_NUMBER: _builtins.int
+ FORMAT_FIELD_NUMBER: _builtins.int
+ text: _builtins.str
+ format: Global___Message.InteractiveResponseMessage.Body.Format.ValueType
+ def __init__(
+ self,
+ *,
+ text: _builtins.str | None = ...,
+ format: Global___Message.InteractiveResponseMessage.Body.Format.ValueType | None = ...,
+ ) -> None: ...
+ _HasFieldArgType: _TypeAlias = _typing.Literal["format", b"format", "text", b"text"] # noqa: Y015
+ def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ...
+ _ClearFieldArgType: _TypeAlias = _typing.Literal["format", b"format", "text", b"text"] # noqa: Y015
+ def ClearField(self, field_name: _ClearFieldArgType) -> None: ...
+
+ @_typing.final
+ class NativeFlowResponseMessage(_message.Message):
+ DESCRIPTOR: _descriptor.Descriptor
+
+ NAME_FIELD_NUMBER: _builtins.int
+ PARAMSJSON_FIELD_NUMBER: _builtins.int
+ VERSION_FIELD_NUMBER: _builtins.int
+ name: _builtins.str
+ paramsJson: _builtins.str
+ version: _builtins.int
+ def __init__(
+ self,
+ *,
+ name: _builtins.str | None = ...,
+ paramsJson: _builtins.str | None = ...,
+ version: _builtins.int | None = ...,
+ ) -> None: ...
+ _HasFieldArgType: _TypeAlias = _typing.Literal["name", b"name", "paramsJson", b"paramsJson", "version", b"version"] # noqa: Y015
+ def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ...
+ _ClearFieldArgType: _TypeAlias = _typing.Literal["name", b"name", "paramsJson", b"paramsJson", "version", b"version"] # noqa: Y015
+ def ClearField(self, field_name: _ClearFieldArgType) -> None: ...
+
+ BODY_FIELD_NUMBER: _builtins.int
+ CONTEXTINFO_FIELD_NUMBER: _builtins.int
+ NATIVEFLOWRESPONSEMESSAGE_FIELD_NUMBER: _builtins.int
@_builtins.property
- def amount(self) -> Global___Money: ...
+ def body(self) -> Global___Message.InteractiveResponseMessage.Body: ...
+ @_builtins.property
+ def contextInfo(self) -> Global___ContextInfo: ...
+ @_builtins.property
+ def nativeFlowResponseMessage(self) -> Global___Message.InteractiveResponseMessage.NativeFlowResponseMessage: ...
def __init__(
self,
*,
- jid: _builtins.str | None = ...,
- amount: Global___Money | None = ...,
- status: Global___Message.SplitPaymentParticipant.SplitPaymentStatus.ValueType | None = ...,
+ body: Global___Message.InteractiveResponseMessage.Body | None = ...,
+ contextInfo: Global___ContextInfo | None = ...,
+ nativeFlowResponseMessage: Global___Message.InteractiveResponseMessage.NativeFlowResponseMessage | None = ...,
) -> None: ...
- _HasFieldArgType: _TypeAlias = _typing.Literal["amount", b"amount", "jid", b"jid", "status", b"status"] # noqa: Y015
+ _HasFieldArgType: _TypeAlias = _typing.Literal["body", b"body", "contextInfo", b"contextInfo", "interactiveResponseMessage", b"interactiveResponseMessage", "nativeFlowResponseMessage", b"nativeFlowResponseMessage"] # noqa: Y015
def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ...
- _ClearFieldArgType: _TypeAlias = _typing.Literal["amount", b"amount", "jid", b"jid", "status", b"status"] # noqa: Y015
+ _ClearFieldArgType: _TypeAlias = _typing.Literal["body", b"body", "contextInfo", b"contextInfo", "interactiveResponseMessage", b"interactiveResponseMessage", "nativeFlowResponseMessage", b"nativeFlowResponseMessage"] # noqa: Y015
def ClearField(self, field_name: _ClearFieldArgType) -> None: ...
+ _WhichOneofReturnType_interactiveResponseMessage: _TypeAlias = _typing.Literal["nativeFlowResponseMessage"] # noqa: Y015
+ _WhichOneofArgType_interactiveResponseMessage: _TypeAlias = _typing.Literal["interactiveResponseMessage", b"interactiveResponseMessage"] # noqa: Y015
+ def WhichOneof(self, oneof_group: _WhichOneofArgType_interactiveResponseMessage) -> _WhichOneofReturnType_interactiveResponseMessage | None: ...
@_typing.final
- class StatusNotificationMessage(_message.Message):
+ class InvoiceMessage(_message.Message):
DESCRIPTOR: _descriptor.Descriptor
- class _StatusNotificationType:
+ class _AttachmentType:
ValueType = _typing.NewType("ValueType", _builtins.int)
V: _TypeAlias = ValueType # noqa: Y015
- class _StatusNotificationTypeEnumTypeWrapper(_enum_type_wrapper._EnumTypeWrapper[Message.StatusNotificationMessage._StatusNotificationType.ValueType], _builtins.type):
+ class _AttachmentTypeEnumTypeWrapper(_enum_type_wrapper._EnumTypeWrapper[Message.InvoiceMessage._AttachmentType.ValueType], _builtins.type):
DESCRIPTOR: _descriptor.EnumDescriptor
- UNKNOWN: Message.StatusNotificationMessage._StatusNotificationType.ValueType # 0
- STATUS_ADD_YOURS: Message.StatusNotificationMessage._StatusNotificationType.ValueType # 1
- STATUS_RESHARE: Message.StatusNotificationMessage._StatusNotificationType.ValueType # 2
- STATUS_QUESTION_ANSWER_RESHARE: Message.StatusNotificationMessage._StatusNotificationType.ValueType # 3
+ IMAGE: Message.InvoiceMessage._AttachmentType.ValueType # 0
+ PDF: Message.InvoiceMessage._AttachmentType.ValueType # 1
- class StatusNotificationType(_StatusNotificationType, metaclass=_StatusNotificationTypeEnumTypeWrapper): ...
- UNKNOWN: Message.StatusNotificationMessage.StatusNotificationType.ValueType # 0
- STATUS_ADD_YOURS: Message.StatusNotificationMessage.StatusNotificationType.ValueType # 1
- STATUS_RESHARE: Message.StatusNotificationMessage.StatusNotificationType.ValueType # 2
- STATUS_QUESTION_ANSWER_RESHARE: Message.StatusNotificationMessage.StatusNotificationType.ValueType # 3
+ class AttachmentType(_AttachmentType, metaclass=_AttachmentTypeEnumTypeWrapper): ...
+ IMAGE: Message.InvoiceMessage.AttachmentType.ValueType # 0
+ PDF: Message.InvoiceMessage.AttachmentType.ValueType # 1
- RESPONSEMESSAGEKEY_FIELD_NUMBER: _builtins.int
- ORIGINALMESSAGEKEY_FIELD_NUMBER: _builtins.int
- TYPE_FIELD_NUMBER: _builtins.int
- type: Global___Message.StatusNotificationMessage.StatusNotificationType.ValueType
- @_builtins.property
- def responseMessageKey(self) -> Global___MessageKey: ...
- @_builtins.property
- def originalMessageKey(self) -> Global___MessageKey: ...
+ NOTE_FIELD_NUMBER: _builtins.int
+ TOKEN_FIELD_NUMBER: _builtins.int
+ ATTACHMENTTYPE_FIELD_NUMBER: _builtins.int
+ ATTACHMENTMIMETYPE_FIELD_NUMBER: _builtins.int
+ ATTACHMENTMEDIAKEY_FIELD_NUMBER: _builtins.int
+ ATTACHMENTMEDIAKEYTIMESTAMP_FIELD_NUMBER: _builtins.int
+ ATTACHMENTFILESHA256_FIELD_NUMBER: _builtins.int
+ ATTACHMENTFILEENCSHA256_FIELD_NUMBER: _builtins.int
+ ATTACHMENTDIRECTPATH_FIELD_NUMBER: _builtins.int
+ ATTACHMENTJPEGTHUMBNAIL_FIELD_NUMBER: _builtins.int
+ note: _builtins.str
+ token: _builtins.str
+ attachmentType: Global___Message.InvoiceMessage.AttachmentType.ValueType
+ attachmentMimetype: _builtins.str
+ attachmentMediaKey: _builtins.bytes
+ attachmentMediaKeyTimestamp: _builtins.int
+ attachmentFileSha256: _builtins.bytes
+ attachmentFileEncSha256: _builtins.bytes
+ attachmentDirectPath: _builtins.str
+ attachmentJpegThumbnail: _builtins.bytes
def __init__(
self,
*,
- responseMessageKey: Global___MessageKey | None = ...,
- originalMessageKey: Global___MessageKey | None = ...,
- type: Global___Message.StatusNotificationMessage.StatusNotificationType.ValueType | None = ...,
+ note: _builtins.str | None = ...,
+ token: _builtins.str | None = ...,
+ attachmentType: Global___Message.InvoiceMessage.AttachmentType.ValueType | None = ...,
+ attachmentMimetype: _builtins.str | None = ...,
+ attachmentMediaKey: _builtins.bytes | None = ...,
+ attachmentMediaKeyTimestamp: _builtins.int | None = ...,
+ attachmentFileSha256: _builtins.bytes | None = ...,
+ attachmentFileEncSha256: _builtins.bytes | None = ...,
+ attachmentDirectPath: _builtins.str | None = ...,
+ attachmentJpegThumbnail: _builtins.bytes | None = ...,
) -> None: ...
- _HasFieldArgType: _TypeAlias = _typing.Literal["originalMessageKey", b"originalMessageKey", "responseMessageKey", b"responseMessageKey", "type", b"type"] # noqa: Y015
+ _HasFieldArgType: _TypeAlias = _typing.Literal["attachmentDirectPath", b"attachmentDirectPath", "attachmentFileEncSha256", b"attachmentFileEncSha256", "attachmentFileSha256", b"attachmentFileSha256", "attachmentJpegThumbnail", b"attachmentJpegThumbnail", "attachmentMediaKey", b"attachmentMediaKey", "attachmentMediaKeyTimestamp", b"attachmentMediaKeyTimestamp", "attachmentMimetype", b"attachmentMimetype", "attachmentType", b"attachmentType", "note", b"note", "token", b"token"] # noqa: Y015
def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ...
- _ClearFieldArgType: _TypeAlias = _typing.Literal["originalMessageKey", b"originalMessageKey", "responseMessageKey", b"responseMessageKey", "type", b"type"] # noqa: Y015
+ _ClearFieldArgType: _TypeAlias = _typing.Literal["attachmentDirectPath", b"attachmentDirectPath", "attachmentFileEncSha256", b"attachmentFileEncSha256", "attachmentFileSha256", b"attachmentFileSha256", "attachmentJpegThumbnail", b"attachmentJpegThumbnail", "attachmentMediaKey", b"attachmentMediaKey", "attachmentMediaKeyTimestamp", b"attachmentMediaKeyTimestamp", "attachmentMimetype", b"attachmentMimetype", "attachmentType", b"attachmentType", "note", b"note", "token", b"token"] # noqa: Y015
def ClearField(self, field_name: _ClearFieldArgType) -> None: ...
@_typing.final
- class StatusQuestionAnswerMessage(_message.Message):
+ class KeepInChatMessage(_message.Message):
DESCRIPTOR: _descriptor.Descriptor
KEY_FIELD_NUMBER: _builtins.int
- TEXT_FIELD_NUMBER: _builtins.int
- text: _builtins.str
+ KEEPTYPE_FIELD_NUMBER: _builtins.int
+ TIMESTAMPMS_FIELD_NUMBER: _builtins.int
+ keepType: Global___KeepType.ValueType
+ timestampMs: _builtins.int
@_builtins.property
def key(self) -> Global___MessageKey: ...
def __init__(
self,
*,
key: Global___MessageKey | None = ...,
- text: _builtins.str | None = ...,
+ keepType: Global___KeepType.ValueType | None = ...,
+ timestampMs: _builtins.int | None = ...,
) -> None: ...
- _HasFieldArgType: _TypeAlias = _typing.Literal["key", b"key", "text", b"text"] # noqa: Y015
+ _HasFieldArgType: _TypeAlias = _typing.Literal["keepType", b"keepType", "key", b"key", "timestampMs", b"timestampMs"] # noqa: Y015
def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ...
- _ClearFieldArgType: _TypeAlias = _typing.Literal["key", b"key", "text", b"text"] # noqa: Y015
+ _ClearFieldArgType: _TypeAlias = _typing.Literal["keepType", b"keepType", "key", b"key", "timestampMs", b"timestampMs"] # noqa: Y015
def ClearField(self, field_name: _ClearFieldArgType) -> None: ...
@_typing.final
- class StatusQuotedMessage(_message.Message):
+ class LinkPreviewMetadata(_message.Message):
DESCRIPTOR: _descriptor.Descriptor
- class _StatusQuotedMessageType:
+ class _SocialMediaPostType:
ValueType = _typing.NewType("ValueType", _builtins.int)
V: _TypeAlias = ValueType # noqa: Y015
- class _StatusQuotedMessageTypeEnumTypeWrapper(_enum_type_wrapper._EnumTypeWrapper[Message.StatusQuotedMessage._StatusQuotedMessageType.ValueType], _builtins.type):
+ class _SocialMediaPostTypeEnumTypeWrapper(_enum_type_wrapper._EnumTypeWrapper[Message.LinkPreviewMetadata._SocialMediaPostType.ValueType], _builtins.type):
DESCRIPTOR: _descriptor.EnumDescriptor
- QUESTION_ANSWER: Message.StatusQuotedMessage._StatusQuotedMessageType.ValueType # 1
+ NONE: Message.LinkPreviewMetadata._SocialMediaPostType.ValueType # 0
+ REEL: Message.LinkPreviewMetadata._SocialMediaPostType.ValueType # 1
+ LIVE_VIDEO: Message.LinkPreviewMetadata._SocialMediaPostType.ValueType # 2
+ LONG_VIDEO: Message.LinkPreviewMetadata._SocialMediaPostType.ValueType # 3
+ SINGLE_IMAGE: Message.LinkPreviewMetadata._SocialMediaPostType.ValueType # 4
+ CAROUSEL: Message.LinkPreviewMetadata._SocialMediaPostType.ValueType # 5
- class StatusQuotedMessageType(_StatusQuotedMessageType, metaclass=_StatusQuotedMessageTypeEnumTypeWrapper): ...
- QUESTION_ANSWER: Message.StatusQuotedMessage.StatusQuotedMessageType.ValueType # 1
+ class SocialMediaPostType(_SocialMediaPostType, metaclass=_SocialMediaPostTypeEnumTypeWrapper): ...
+ NONE: Message.LinkPreviewMetadata.SocialMediaPostType.ValueType # 0
+ REEL: Message.LinkPreviewMetadata.SocialMediaPostType.ValueType # 1
+ LIVE_VIDEO: Message.LinkPreviewMetadata.SocialMediaPostType.ValueType # 2
+ LONG_VIDEO: Message.LinkPreviewMetadata.SocialMediaPostType.ValueType # 3
+ SINGLE_IMAGE: Message.LinkPreviewMetadata.SocialMediaPostType.ValueType # 4
+ CAROUSEL: Message.LinkPreviewMetadata.SocialMediaPostType.ValueType # 5
- TYPE_FIELD_NUMBER: _builtins.int
- TEXT_FIELD_NUMBER: _builtins.int
- THUMBNAIL_FIELD_NUMBER: _builtins.int
- ORIGINALSTATUSID_FIELD_NUMBER: _builtins.int
- type: Global___Message.StatusQuotedMessage.StatusQuotedMessageType.ValueType
- text: _builtins.str
- thumbnail: _builtins.bytes
+ PAYMENTLINKMETADATA_FIELD_NUMBER: _builtins.int
+ URLMETADATA_FIELD_NUMBER: _builtins.int
+ FBEXPERIMENTID_FIELD_NUMBER: _builtins.int
+ LINKMEDIADURATION_FIELD_NUMBER: _builtins.int
+ SOCIALMEDIAPOSTTYPE_FIELD_NUMBER: _builtins.int
+ LINKINLINEVIDEOMUTED_FIELD_NUMBER: _builtins.int
+ VIDEOCONTENTURL_FIELD_NUMBER: _builtins.int
+ MUSICMETADATA_FIELD_NUMBER: _builtins.int
+ VIDEOCONTENTCAPTION_FIELD_NUMBER: _builtins.int
+ fbExperimentId: _builtins.int
+ linkMediaDuration: _builtins.int
+ socialMediaPostType: Global___Message.LinkPreviewMetadata.SocialMediaPostType.ValueType
+ linkInlineVideoMuted: _builtins.bool
+ videoContentUrl: _builtins.str
+ videoContentCaption: _builtins.str
@_builtins.property
- def originalStatusId(self) -> Global___MessageKey: ...
- def __init__(
- self,
- *,
- type: Global___Message.StatusQuotedMessage.StatusQuotedMessageType.ValueType | None = ...,
- text: _builtins.str | None = ...,
- thumbnail: _builtins.bytes | None = ...,
- originalStatusId: Global___MessageKey | None = ...,
- ) -> None: ...
- _HasFieldArgType: _TypeAlias = _typing.Literal["originalStatusId", b"originalStatusId", "text", b"text", "thumbnail", b"thumbnail", "type", b"type"] # noqa: Y015
- def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ...
- _ClearFieldArgType: _TypeAlias = _typing.Literal["originalStatusId", b"originalStatusId", "text", b"text", "thumbnail", b"thumbnail", "type", b"type"] # noqa: Y015
- def ClearField(self, field_name: _ClearFieldArgType) -> None: ...
-
- @_typing.final
- class StatusStickerInteractionMessage(_message.Message):
- DESCRIPTOR: _descriptor.Descriptor
-
- class _StatusStickerType:
- ValueType = _typing.NewType("ValueType", _builtins.int)
- V: _TypeAlias = ValueType # noqa: Y015
-
- class _StatusStickerTypeEnumTypeWrapper(_enum_type_wrapper._EnumTypeWrapper[Message.StatusStickerInteractionMessage._StatusStickerType.ValueType], _builtins.type):
- DESCRIPTOR: _descriptor.EnumDescriptor
- UNKNOWN: Message.StatusStickerInteractionMessage._StatusStickerType.ValueType # 0
- REACTION: Message.StatusStickerInteractionMessage._StatusStickerType.ValueType # 1
-
- class StatusStickerType(_StatusStickerType, metaclass=_StatusStickerTypeEnumTypeWrapper): ...
- UNKNOWN: Message.StatusStickerInteractionMessage.StatusStickerType.ValueType # 0
- REACTION: Message.StatusStickerInteractionMessage.StatusStickerType.ValueType # 1
-
- KEY_FIELD_NUMBER: _builtins.int
- STICKERKEY_FIELD_NUMBER: _builtins.int
- TYPE_FIELD_NUMBER: _builtins.int
- stickerKey: _builtins.str
- type: Global___Message.StatusStickerInteractionMessage.StatusStickerType.ValueType
+ def paymentLinkMetadata(self) -> Global___Message.PaymentLinkMetadata: ...
@_builtins.property
- def key(self) -> Global___MessageKey: ...
- def __init__(
- self,
- *,
- key: Global___MessageKey | None = ...,
- stickerKey: _builtins.str | None = ...,
- type: Global___Message.StatusStickerInteractionMessage.StatusStickerType.ValueType | None = ...,
- ) -> None: ...
- _HasFieldArgType: _TypeAlias = _typing.Literal["key", b"key", "stickerKey", b"stickerKey", "type", b"type"] # noqa: Y015
- def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ...
- _ClearFieldArgType: _TypeAlias = _typing.Literal["key", b"key", "stickerKey", b"stickerKey", "type", b"type"] # noqa: Y015
- def ClearField(self, field_name: _ClearFieldArgType) -> None: ...
-
- @_typing.final
- class StickerMessage(_message.Message):
- DESCRIPTOR: _descriptor.Descriptor
-
- URL_FIELD_NUMBER: _builtins.int
- FILESHA256_FIELD_NUMBER: _builtins.int
- FILEENCSHA256_FIELD_NUMBER: _builtins.int
- MEDIAKEY_FIELD_NUMBER: _builtins.int
- MIMETYPE_FIELD_NUMBER: _builtins.int
- HEIGHT_FIELD_NUMBER: _builtins.int
- WIDTH_FIELD_NUMBER: _builtins.int
- DIRECTPATH_FIELD_NUMBER: _builtins.int
- FILELENGTH_FIELD_NUMBER: _builtins.int
- MEDIAKEYTIMESTAMP_FIELD_NUMBER: _builtins.int
- FIRSTFRAMELENGTH_FIELD_NUMBER: _builtins.int
- FIRSTFRAMESIDECAR_FIELD_NUMBER: _builtins.int
- ISANIMATED_FIELD_NUMBER: _builtins.int
- PNGTHUMBNAIL_FIELD_NUMBER: _builtins.int
- CONTEXTINFO_FIELD_NUMBER: _builtins.int
- STICKERSENTTS_FIELD_NUMBER: _builtins.int
- ISAVATAR_FIELD_NUMBER: _builtins.int
- ISAISTICKER_FIELD_NUMBER: _builtins.int
- ISLOTTIE_FIELD_NUMBER: _builtins.int
- ACCESSIBILITYLABEL_FIELD_NUMBER: _builtins.int
- PREMIUM_FIELD_NUMBER: _builtins.int
- EMOJIS_FIELD_NUMBER: _builtins.int
- url: _builtins.str
- fileSha256: _builtins.bytes
- fileEncSha256: _builtins.bytes
- mediaKey: _builtins.bytes
- mimetype: _builtins.str
- height: _builtins.int
- width: _builtins.int
- directPath: _builtins.str
- fileLength: _builtins.int
- mediaKeyTimestamp: _builtins.int
- firstFrameLength: _builtins.int
- firstFrameSidecar: _builtins.bytes
- isAnimated: _builtins.bool
- pngThumbnail: _builtins.bytes
- stickerSentTs: _builtins.int
- isAvatar: _builtins.bool
- isAiSticker: _builtins.bool
- isLottie: _builtins.bool
- accessibilityLabel: _builtins.str
- premium: _builtins.int
- emojis: _builtins.str
+ def urlMetadata(self) -> Global___Message.URLMetadata: ...
@_builtins.property
- def contextInfo(self) -> Global___ContextInfo: ...
+ def musicMetadata(self) -> Global___EmbeddedMusic: ...
def __init__(
self,
*,
- url: _builtins.str | None = ...,
- fileSha256: _builtins.bytes | None = ...,
- fileEncSha256: _builtins.bytes | None = ...,
- mediaKey: _builtins.bytes | None = ...,
- mimetype: _builtins.str | None = ...,
- height: _builtins.int | None = ...,
- width: _builtins.int | None = ...,
- directPath: _builtins.str | None = ...,
- fileLength: _builtins.int | None = ...,
- mediaKeyTimestamp: _builtins.int | None = ...,
- firstFrameLength: _builtins.int | None = ...,
- firstFrameSidecar: _builtins.bytes | None = ...,
- isAnimated: _builtins.bool | None = ...,
- pngThumbnail: _builtins.bytes | None = ...,
- contextInfo: Global___ContextInfo | None = ...,
- stickerSentTs: _builtins.int | None = ...,
- isAvatar: _builtins.bool | None = ...,
- isAiSticker: _builtins.bool | None = ...,
- isLottie: _builtins.bool | None = ...,
- accessibilityLabel: _builtins.str | None = ...,
- premium: _builtins.int | None = ...,
- emojis: _builtins.str | None = ...,
+ paymentLinkMetadata: Global___Message.PaymentLinkMetadata | None = ...,
+ urlMetadata: Global___Message.URLMetadata | None = ...,
+ fbExperimentId: _builtins.int | None = ...,
+ linkMediaDuration: _builtins.int | None = ...,
+ socialMediaPostType: Global___Message.LinkPreviewMetadata.SocialMediaPostType.ValueType | None = ...,
+ linkInlineVideoMuted: _builtins.bool | None = ...,
+ videoContentUrl: _builtins.str | None = ...,
+ musicMetadata: Global___EmbeddedMusic | None = ...,
+ videoContentCaption: _builtins.str | None = ...,
) -> None: ...
- _HasFieldArgType: _TypeAlias = _typing.Literal["accessibilityLabel", b"accessibilityLabel", "contextInfo", b"contextInfo", "directPath", b"directPath", "emojis", b"emojis", "fileEncSha256", b"fileEncSha256", "fileLength", b"fileLength", "fileSha256", b"fileSha256", "firstFrameLength", b"firstFrameLength", "firstFrameSidecar", b"firstFrameSidecar", "height", b"height", "isAiSticker", b"isAiSticker", "isAnimated", b"isAnimated", "isAvatar", b"isAvatar", "isLottie", b"isLottie", "mediaKey", b"mediaKey", "mediaKeyTimestamp", b"mediaKeyTimestamp", "mimetype", b"mimetype", "pngThumbnail", b"pngThumbnail", "premium", b"premium", "stickerSentTs", b"stickerSentTs", "url", b"url", "width", b"width"] # noqa: Y015
+ _HasFieldArgType: _TypeAlias = _typing.Literal["fbExperimentId", b"fbExperimentId", "linkInlineVideoMuted", b"linkInlineVideoMuted", "linkMediaDuration", b"linkMediaDuration", "musicMetadata", b"musicMetadata", "paymentLinkMetadata", b"paymentLinkMetadata", "socialMediaPostType", b"socialMediaPostType", "urlMetadata", b"urlMetadata", "videoContentCaption", b"videoContentCaption", "videoContentUrl", b"videoContentUrl"] # noqa: Y015
def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ...
- _ClearFieldArgType: _TypeAlias = _typing.Literal["accessibilityLabel", b"accessibilityLabel", "contextInfo", b"contextInfo", "directPath", b"directPath", "emojis", b"emojis", "fileEncSha256", b"fileEncSha256", "fileLength", b"fileLength", "fileSha256", b"fileSha256", "firstFrameLength", b"firstFrameLength", "firstFrameSidecar", b"firstFrameSidecar", "height", b"height", "isAiSticker", b"isAiSticker", "isAnimated", b"isAnimated", "isAvatar", b"isAvatar", "isLottie", b"isLottie", "mediaKey", b"mediaKey", "mediaKeyTimestamp", b"mediaKeyTimestamp", "mimetype", b"mimetype", "pngThumbnail", b"pngThumbnail", "premium", b"premium", "stickerSentTs", b"stickerSentTs", "url", b"url", "width", b"width"] # noqa: Y015
+ _ClearFieldArgType: _TypeAlias = _typing.Literal["fbExperimentId", b"fbExperimentId", "linkInlineVideoMuted", b"linkInlineVideoMuted", "linkMediaDuration", b"linkMediaDuration", "musicMetadata", b"musicMetadata", "paymentLinkMetadata", b"paymentLinkMetadata", "socialMediaPostType", b"socialMediaPostType", "urlMetadata", b"urlMetadata", "videoContentCaption", b"videoContentCaption", "videoContentUrl", b"videoContentUrl"] # noqa: Y015
def ClearField(self, field_name: _ClearFieldArgType) -> None: ...
@_typing.final
- class StickerPackMessage(_message.Message):
+ class ListMessage(_message.Message):
DESCRIPTOR: _descriptor.Descriptor
- class _StickerPackOrigin:
+ class _ListType:
ValueType = _typing.NewType("ValueType", _builtins.int)
V: _TypeAlias = ValueType # noqa: Y015
- class _StickerPackOriginEnumTypeWrapper(_enum_type_wrapper._EnumTypeWrapper[Message.StickerPackMessage._StickerPackOrigin.ValueType], _builtins.type):
+ class _ListTypeEnumTypeWrapper(_enum_type_wrapper._EnumTypeWrapper[Message.ListMessage._ListType.ValueType], _builtins.type):
DESCRIPTOR: _descriptor.EnumDescriptor
- FIRST_PARTY: Message.StickerPackMessage._StickerPackOrigin.ValueType # 0
- THIRD_PARTY: Message.StickerPackMessage._StickerPackOrigin.ValueType # 1
- USER_CREATED: Message.StickerPackMessage._StickerPackOrigin.ValueType # 2
+ UNKNOWN: Message.ListMessage._ListType.ValueType # 0
+ SINGLE_SELECT: Message.ListMessage._ListType.ValueType # 1
+ PRODUCT_LIST: Message.ListMessage._ListType.ValueType # 2
- class StickerPackOrigin(_StickerPackOrigin, metaclass=_StickerPackOriginEnumTypeWrapper): ...
- FIRST_PARTY: Message.StickerPackMessage.StickerPackOrigin.ValueType # 0
- THIRD_PARTY: Message.StickerPackMessage.StickerPackOrigin.ValueType # 1
- USER_CREATED: Message.StickerPackMessage.StickerPackOrigin.ValueType # 2
+ class ListType(_ListType, metaclass=_ListTypeEnumTypeWrapper): ...
+ UNKNOWN: Message.ListMessage.ListType.ValueType # 0
+ SINGLE_SELECT: Message.ListMessage.ListType.ValueType # 1
+ PRODUCT_LIST: Message.ListMessage.ListType.ValueType # 2
@_typing.final
- class Sticker(_message.Message):
+ class Product(_message.Message):
DESCRIPTOR: _descriptor.Descriptor
- FILENAME_FIELD_NUMBER: _builtins.int
- ISANIMATED_FIELD_NUMBER: _builtins.int
- EMOJIS_FIELD_NUMBER: _builtins.int
- ACCESSIBILITYLABEL_FIELD_NUMBER: _builtins.int
- ISLOTTIE_FIELD_NUMBER: _builtins.int
- MIMETYPE_FIELD_NUMBER: _builtins.int
- PREMIUM_FIELD_NUMBER: _builtins.int
- fileName: _builtins.str
- isAnimated: _builtins.bool
- accessibilityLabel: _builtins.str
- isLottie: _builtins.bool
- mimetype: _builtins.str
- premium: _builtins.int
- @_builtins.property
- def emojis(self) -> _containers.RepeatedScalarFieldContainer[_builtins.str]: ...
+ PRODUCTID_FIELD_NUMBER: _builtins.int
+ productId: _builtins.str
def __init__(
self,
*,
- fileName: _builtins.str | None = ...,
- isAnimated: _builtins.bool | None = ...,
- emojis: _abc.Iterable[_builtins.str] | None = ...,
- accessibilityLabel: _builtins.str | None = ...,
- isLottie: _builtins.bool | None = ...,
- mimetype: _builtins.str | None = ...,
- premium: _builtins.int | None = ...,
+ productId: _builtins.str | None = ...,
) -> None: ...
- _HasFieldArgType: _TypeAlias = _typing.Literal["accessibilityLabel", b"accessibilityLabel", "fileName", b"fileName", "isAnimated", b"isAnimated", "isLottie", b"isLottie", "mimetype", b"mimetype", "premium", b"premium"] # noqa: Y015
+ _HasFieldArgType: _TypeAlias = _typing.Literal["productId", b"productId"] # noqa: Y015
def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ...
- _ClearFieldArgType: _TypeAlias = _typing.Literal["accessibilityLabel", b"accessibilityLabel", "emojis", b"emojis", "fileName", b"fileName", "isAnimated", b"isAnimated", "isLottie", b"isLottie", "mimetype", b"mimetype", "premium", b"premium"] # noqa: Y015
+ _ClearFieldArgType: _TypeAlias = _typing.Literal["productId", b"productId"] # noqa: Y015
def ClearField(self, field_name: _ClearFieldArgType) -> None: ...
- STICKERPACKID_FIELD_NUMBER: _builtins.int
- NAME_FIELD_NUMBER: _builtins.int
- PUBLISHER_FIELD_NUMBER: _builtins.int
- STICKERS_FIELD_NUMBER: _builtins.int
- FILELENGTH_FIELD_NUMBER: _builtins.int
- FILESHA256_FIELD_NUMBER: _builtins.int
- FILEENCSHA256_FIELD_NUMBER: _builtins.int
- MEDIAKEY_FIELD_NUMBER: _builtins.int
- DIRECTPATH_FIELD_NUMBER: _builtins.int
- CAPTION_FIELD_NUMBER: _builtins.int
- CONTEXTINFO_FIELD_NUMBER: _builtins.int
- PACKDESCRIPTION_FIELD_NUMBER: _builtins.int
- MEDIAKEYTIMESTAMP_FIELD_NUMBER: _builtins.int
- TRAYICONFILENAME_FIELD_NUMBER: _builtins.int
- THUMBNAILDIRECTPATH_FIELD_NUMBER: _builtins.int
- THUMBNAILSHA256_FIELD_NUMBER: _builtins.int
- THUMBNAILENCSHA256_FIELD_NUMBER: _builtins.int
- THUMBNAILHEIGHT_FIELD_NUMBER: _builtins.int
- THUMBNAILWIDTH_FIELD_NUMBER: _builtins.int
- IMAGEDATAHASH_FIELD_NUMBER: _builtins.int
- STICKERPACKSIZE_FIELD_NUMBER: _builtins.int
- STICKERPACKORIGIN_FIELD_NUMBER: _builtins.int
- stickerPackId: _builtins.str
- name: _builtins.str
- publisher: _builtins.str
- fileLength: _builtins.int
- fileSha256: _builtins.bytes
- fileEncSha256: _builtins.bytes
- mediaKey: _builtins.bytes
- directPath: _builtins.str
- caption: _builtins.str
- packDescription: _builtins.str
- mediaKeyTimestamp: _builtins.int
- trayIconFileName: _builtins.str
- thumbnailDirectPath: _builtins.str
- thumbnailSha256: _builtins.bytes
- thumbnailEncSha256: _builtins.bytes
- thumbnailHeight: _builtins.int
- thumbnailWidth: _builtins.int
- imageDataHash: _builtins.str
- stickerPackSize: _builtins.int
- stickerPackOrigin: Global___Message.StickerPackMessage.StickerPackOrigin.ValueType
- @_builtins.property
- def stickers(self) -> _containers.RepeatedCompositeFieldContainer[Global___Message.StickerPackMessage.Sticker]: ...
- @_builtins.property
- def contextInfo(self) -> Global___ContextInfo: ...
- def __init__(
- self,
- *,
- stickerPackId: _builtins.str | None = ...,
- name: _builtins.str | None = ...,
- publisher: _builtins.str | None = ...,
- stickers: _abc.Iterable[Global___Message.StickerPackMessage.Sticker] | None = ...,
- fileLength: _builtins.int | None = ...,
- fileSha256: _builtins.bytes | None = ...,
- fileEncSha256: _builtins.bytes | None = ...,
- mediaKey: _builtins.bytes | None = ...,
- directPath: _builtins.str | None = ...,
- caption: _builtins.str | None = ...,
- contextInfo: Global___ContextInfo | None = ...,
- packDescription: _builtins.str | None = ...,
- mediaKeyTimestamp: _builtins.int | None = ...,
- trayIconFileName: _builtins.str | None = ...,
- thumbnailDirectPath: _builtins.str | None = ...,
- thumbnailSha256: _builtins.bytes | None = ...,
- thumbnailEncSha256: _builtins.bytes | None = ...,
- thumbnailHeight: _builtins.int | None = ...,
- thumbnailWidth: _builtins.int | None = ...,
- imageDataHash: _builtins.str | None = ...,
- stickerPackSize: _builtins.int | None = ...,
- stickerPackOrigin: Global___Message.StickerPackMessage.StickerPackOrigin.ValueType | None = ...,
- ) -> None: ...
- _HasFieldArgType: _TypeAlias = _typing.Literal["caption", b"caption", "contextInfo", b"contextInfo", "directPath", b"directPath", "fileEncSha256", b"fileEncSha256", "fileLength", b"fileLength", "fileSha256", b"fileSha256", "imageDataHash", b"imageDataHash", "mediaKey", b"mediaKey", "mediaKeyTimestamp", b"mediaKeyTimestamp", "name", b"name", "packDescription", b"packDescription", "publisher", b"publisher", "stickerPackId", b"stickerPackId", "stickerPackOrigin", b"stickerPackOrigin", "stickerPackSize", b"stickerPackSize", "thumbnailDirectPath", b"thumbnailDirectPath", "thumbnailEncSha256", b"thumbnailEncSha256", "thumbnailHeight", b"thumbnailHeight", "thumbnailSha256", b"thumbnailSha256", "thumbnailWidth", b"thumbnailWidth", "trayIconFileName", b"trayIconFileName"] # noqa: Y015
- def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ...
- _ClearFieldArgType: _TypeAlias = _typing.Literal["caption", b"caption", "contextInfo", b"contextInfo", "directPath", b"directPath", "fileEncSha256", b"fileEncSha256", "fileLength", b"fileLength", "fileSha256", b"fileSha256", "imageDataHash", b"imageDataHash", "mediaKey", b"mediaKey", "mediaKeyTimestamp", b"mediaKeyTimestamp", "name", b"name", "packDescription", b"packDescription", "publisher", b"publisher", "stickerPackId", b"stickerPackId", "stickerPackOrigin", b"stickerPackOrigin", "stickerPackSize", b"stickerPackSize", "stickers", b"stickers", "thumbnailDirectPath", b"thumbnailDirectPath", "thumbnailEncSha256", b"thumbnailEncSha256", "thumbnailHeight", b"thumbnailHeight", "thumbnailSha256", b"thumbnailSha256", "thumbnailWidth", b"thumbnailWidth", "trayIconFileName", b"trayIconFileName"] # noqa: Y015
- def ClearField(self, field_name: _ClearFieldArgType) -> None: ...
-
- @_typing.final
- class StickerSyncRMRMessage(_message.Message):
- DESCRIPTOR: _descriptor.Descriptor
-
- FILEHASH_FIELD_NUMBER: _builtins.int
- RMRSOURCE_FIELD_NUMBER: _builtins.int
- REQUESTTIMESTAMP_FIELD_NUMBER: _builtins.int
- rmrSource: _builtins.str
- requestTimestamp: _builtins.int
- @_builtins.property
- def filehash(self) -> _containers.RepeatedScalarFieldContainer[_builtins.str]: ...
- def __init__(
- self,
- *,
- filehash: _abc.Iterable[_builtins.str] | None = ...,
- rmrSource: _builtins.str | None = ...,
- requestTimestamp: _builtins.int | None = ...,
- ) -> None: ...
- _HasFieldArgType: _TypeAlias = _typing.Literal["requestTimestamp", b"requestTimestamp", "rmrSource", b"rmrSource"] # noqa: Y015
- def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ...
- _ClearFieldArgType: _TypeAlias = _typing.Literal["filehash", b"filehash", "requestTimestamp", b"requestTimestamp", "rmrSource", b"rmrSource"] # noqa: Y015
- def ClearField(self, field_name: _ClearFieldArgType) -> None: ...
-
- @_typing.final
- class TemplateButtonReplyMessage(_message.Message):
- DESCRIPTOR: _descriptor.Descriptor
-
- SELECTEDID_FIELD_NUMBER: _builtins.int
- SELECTEDDISPLAYTEXT_FIELD_NUMBER: _builtins.int
- CONTEXTINFO_FIELD_NUMBER: _builtins.int
- SELECTEDINDEX_FIELD_NUMBER: _builtins.int
- SELECTEDCAROUSELCARDINDEX_FIELD_NUMBER: _builtins.int
- selectedId: _builtins.str
- selectedDisplayText: _builtins.str
- selectedIndex: _builtins.int
- selectedCarouselCardIndex: _builtins.int
- @_builtins.property
- def contextInfo(self) -> Global___ContextInfo: ...
- def __init__(
- self,
- *,
- selectedId: _builtins.str | None = ...,
- selectedDisplayText: _builtins.str | None = ...,
- contextInfo: Global___ContextInfo | None = ...,
- selectedIndex: _builtins.int | None = ...,
- selectedCarouselCardIndex: _builtins.int | None = ...,
- ) -> None: ...
- _HasFieldArgType: _TypeAlias = _typing.Literal["contextInfo", b"contextInfo", "selectedCarouselCardIndex", b"selectedCarouselCardIndex", "selectedDisplayText", b"selectedDisplayText", "selectedId", b"selectedId", "selectedIndex", b"selectedIndex"] # noqa: Y015
- def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ...
- _ClearFieldArgType: _TypeAlias = _typing.Literal["contextInfo", b"contextInfo", "selectedCarouselCardIndex", b"selectedCarouselCardIndex", "selectedDisplayText", b"selectedDisplayText", "selectedId", b"selectedId", "selectedIndex", b"selectedIndex"] # noqa: Y015
- def ClearField(self, field_name: _ClearFieldArgType) -> None: ...
+ @_typing.final
+ class ProductListHeaderImage(_message.Message):
+ DESCRIPTOR: _descriptor.Descriptor
- @_typing.final
- class TemplateMessage(_message.Message):
- DESCRIPTOR: _descriptor.Descriptor
+ PRODUCTID_FIELD_NUMBER: _builtins.int
+ JPEGTHUMBNAIL_FIELD_NUMBER: _builtins.int
+ productId: _builtins.str
+ jpegThumbnail: _builtins.bytes
+ def __init__(
+ self,
+ *,
+ productId: _builtins.str | None = ...,
+ jpegThumbnail: _builtins.bytes | None = ...,
+ ) -> None: ...
+ _HasFieldArgType: _TypeAlias = _typing.Literal["jpegThumbnail", b"jpegThumbnail", "productId", b"productId"] # noqa: Y015
+ def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ...
+ _ClearFieldArgType: _TypeAlias = _typing.Literal["jpegThumbnail", b"jpegThumbnail", "productId", b"productId"] # noqa: Y015
+ def ClearField(self, field_name: _ClearFieldArgType) -> None: ...
@_typing.final
- class FourRowTemplate(_message.Message):
+ class ProductListInfo(_message.Message):
DESCRIPTOR: _descriptor.Descriptor
- CONTENT_FIELD_NUMBER: _builtins.int
- FOOTER_FIELD_NUMBER: _builtins.int
- BUTTONS_FIELD_NUMBER: _builtins.int
- DOCUMENTMESSAGE_FIELD_NUMBER: _builtins.int
- HIGHLYSTRUCTUREDMESSAGE_FIELD_NUMBER: _builtins.int
- IMAGEMESSAGE_FIELD_NUMBER: _builtins.int
- VIDEOMESSAGE_FIELD_NUMBER: _builtins.int
- LOCATIONMESSAGE_FIELD_NUMBER: _builtins.int
- @_builtins.property
- def content(self) -> Global___Message.HighlyStructuredMessage: ...
- @_builtins.property
- def footer(self) -> Global___Message.HighlyStructuredMessage: ...
- @_builtins.property
- def buttons(self) -> _containers.RepeatedCompositeFieldContainer[Global___TemplateButton]: ...
- @_builtins.property
- def documentMessage(self) -> Global___Message.DocumentMessage: ...
- @_builtins.property
- def highlyStructuredMessage(self) -> Global___Message.HighlyStructuredMessage: ...
- @_builtins.property
- def imageMessage(self) -> Global___Message.ImageMessage: ...
+ PRODUCTSECTIONS_FIELD_NUMBER: _builtins.int
+ HEADERIMAGE_FIELD_NUMBER: _builtins.int
+ BUSINESSOWNERJID_FIELD_NUMBER: _builtins.int
+ businessOwnerJid: _builtins.str
@_builtins.property
- def videoMessage(self) -> Global___Message.VideoMessage: ...
+ def productSections(self) -> _containers.RepeatedCompositeFieldContainer[Global___Message.ListMessage.ProductSection]: ...
@_builtins.property
- def locationMessage(self) -> Global___Message.LocationMessage: ...
+ def headerImage(self) -> Global___Message.ListMessage.ProductListHeaderImage: ...
def __init__(
self,
*,
- content: Global___Message.HighlyStructuredMessage | None = ...,
- footer: Global___Message.HighlyStructuredMessage | None = ...,
- buttons: _abc.Iterable[Global___TemplateButton] | None = ...,
- documentMessage: Global___Message.DocumentMessage | None = ...,
- highlyStructuredMessage: Global___Message.HighlyStructuredMessage | None = ...,
- imageMessage: Global___Message.ImageMessage | None = ...,
- videoMessage: Global___Message.VideoMessage | None = ...,
- locationMessage: Global___Message.LocationMessage | None = ...,
+ productSections: _abc.Iterable[Global___Message.ListMessage.ProductSection] | None = ...,
+ headerImage: Global___Message.ListMessage.ProductListHeaderImage | None = ...,
+ businessOwnerJid: _builtins.str | None = ...,
) -> None: ...
- _HasFieldArgType: _TypeAlias = _typing.Literal["content", b"content", "documentMessage", b"documentMessage", "footer", b"footer", "highlyStructuredMessage", b"highlyStructuredMessage", "imageMessage", b"imageMessage", "locationMessage", b"locationMessage", "title", b"title", "videoMessage", b"videoMessage"] # noqa: Y015
+ _HasFieldArgType: _TypeAlias = _typing.Literal["businessOwnerJid", b"businessOwnerJid", "headerImage", b"headerImage"] # noqa: Y015
def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ...
- _ClearFieldArgType: _TypeAlias = _typing.Literal["buttons", b"buttons", "content", b"content", "documentMessage", b"documentMessage", "footer", b"footer", "highlyStructuredMessage", b"highlyStructuredMessage", "imageMessage", b"imageMessage", "locationMessage", b"locationMessage", "title", b"title", "videoMessage", b"videoMessage"] # noqa: Y015
+ _ClearFieldArgType: _TypeAlias = _typing.Literal["businessOwnerJid", b"businessOwnerJid", "headerImage", b"headerImage", "productSections", b"productSections"] # noqa: Y015
def ClearField(self, field_name: _ClearFieldArgType) -> None: ...
- _WhichOneofReturnType_title: _TypeAlias = _typing.Literal["documentMessage", "highlyStructuredMessage", "imageMessage", "videoMessage", "locationMessage"] # noqa: Y015
- _WhichOneofArgType_title: _TypeAlias = _typing.Literal["title", b"title"] # noqa: Y015
- def WhichOneof(self, oneof_group: _WhichOneofArgType_title) -> _WhichOneofReturnType_title | None: ...
@_typing.final
- class HydratedFourRowTemplate(_message.Message):
+ class ProductSection(_message.Message):
DESCRIPTOR: _descriptor.Descriptor
- HYDRATEDCONTENTTEXT_FIELD_NUMBER: _builtins.int
- HYDRATEDFOOTERTEXT_FIELD_NUMBER: _builtins.int
- HYDRATEDBUTTONS_FIELD_NUMBER: _builtins.int
- TEMPLATEID_FIELD_NUMBER: _builtins.int
- MASKLINKEDDEVICES_FIELD_NUMBER: _builtins.int
- DOCUMENTMESSAGE_FIELD_NUMBER: _builtins.int
- HYDRATEDTITLETEXT_FIELD_NUMBER: _builtins.int
- IMAGEMESSAGE_FIELD_NUMBER: _builtins.int
- VIDEOMESSAGE_FIELD_NUMBER: _builtins.int
- LOCATIONMESSAGE_FIELD_NUMBER: _builtins.int
- hydratedContentText: _builtins.str
- hydratedFooterText: _builtins.str
- templateId: _builtins.str
- maskLinkedDevices: _builtins.bool
- hydratedTitleText: _builtins.str
- @_builtins.property
- def hydratedButtons(self) -> _containers.RepeatedCompositeFieldContainer[Global___HydratedTemplateButton]: ...
- @_builtins.property
- def documentMessage(self) -> Global___Message.DocumentMessage: ...
- @_builtins.property
- def imageMessage(self) -> Global___Message.ImageMessage: ...
- @_builtins.property
- def videoMessage(self) -> Global___Message.VideoMessage: ...
+ TITLE_FIELD_NUMBER: _builtins.int
+ PRODUCTS_FIELD_NUMBER: _builtins.int
+ title: _builtins.str
@_builtins.property
- def locationMessage(self) -> Global___Message.LocationMessage: ...
+ def products(self) -> _containers.RepeatedCompositeFieldContainer[Global___Message.ListMessage.Product]: ...
def __init__(
self,
*,
- hydratedContentText: _builtins.str | None = ...,
- hydratedFooterText: _builtins.str | None = ...,
- hydratedButtons: _abc.Iterable[Global___HydratedTemplateButton] | None = ...,
- templateId: _builtins.str | None = ...,
- maskLinkedDevices: _builtins.bool | None = ...,
- documentMessage: Global___Message.DocumentMessage | None = ...,
- hydratedTitleText: _builtins.str | None = ...,
- imageMessage: Global___Message.ImageMessage | None = ...,
- videoMessage: Global___Message.VideoMessage | None = ...,
- locationMessage: Global___Message.LocationMessage | None = ...,
+ title: _builtins.str | None = ...,
+ products: _abc.Iterable[Global___Message.ListMessage.Product] | None = ...,
) -> None: ...
- _HasFieldArgType: _TypeAlias = _typing.Literal["documentMessage", b"documentMessage", "hydratedContentText", b"hydratedContentText", "hydratedFooterText", b"hydratedFooterText", "hydratedTitleText", b"hydratedTitleText", "imageMessage", b"imageMessage", "locationMessage", b"locationMessage", "maskLinkedDevices", b"maskLinkedDevices", "templateId", b"templateId", "title", b"title", "videoMessage", b"videoMessage"] # noqa: Y015
+ _HasFieldArgType: _TypeAlias = _typing.Literal["title", b"title"] # noqa: Y015
def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ...
- _ClearFieldArgType: _TypeAlias = _typing.Literal["documentMessage", b"documentMessage", "hydratedButtons", b"hydratedButtons", "hydratedContentText", b"hydratedContentText", "hydratedFooterText", b"hydratedFooterText", "hydratedTitleText", b"hydratedTitleText", "imageMessage", b"imageMessage", "locationMessage", b"locationMessage", "maskLinkedDevices", b"maskLinkedDevices", "templateId", b"templateId", "title", b"title", "videoMessage", b"videoMessage"] # noqa: Y015
+ _ClearFieldArgType: _TypeAlias = _typing.Literal["products", b"products", "title", b"title"] # noqa: Y015
+ def ClearField(self, field_name: _ClearFieldArgType) -> None: ...
+
+ @_typing.final
+ class Row(_message.Message):
+ DESCRIPTOR: _descriptor.Descriptor
+
+ TITLE_FIELD_NUMBER: _builtins.int
+ DESCRIPTION_FIELD_NUMBER: _builtins.int
+ ROWID_FIELD_NUMBER: _builtins.int
+ title: _builtins.str
+ description: _builtins.str
+ rowId: _builtins.str
+ def __init__(
+ self,
+ *,
+ title: _builtins.str | None = ...,
+ description: _builtins.str | None = ...,
+ rowId: _builtins.str | None = ...,
+ ) -> None: ...
+ _HasFieldArgType: _TypeAlias = _typing.Literal["description", b"description", "rowId", b"rowId", "title", b"title"] # noqa: Y015
+ def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ...
+ _ClearFieldArgType: _TypeAlias = _typing.Literal["description", b"description", "rowId", b"rowId", "title", b"title"] # noqa: Y015
+ def ClearField(self, field_name: _ClearFieldArgType) -> None: ...
+
+ @_typing.final
+ class Section(_message.Message):
+ DESCRIPTOR: _descriptor.Descriptor
+
+ TITLE_FIELD_NUMBER: _builtins.int
+ ROWS_FIELD_NUMBER: _builtins.int
+ title: _builtins.str
+ @_builtins.property
+ def rows(self) -> _containers.RepeatedCompositeFieldContainer[Global___Message.ListMessage.Row]: ...
+ def __init__(
+ self,
+ *,
+ title: _builtins.str | None = ...,
+ rows: _abc.Iterable[Global___Message.ListMessage.Row] | None = ...,
+ ) -> None: ...
+ _HasFieldArgType: _TypeAlias = _typing.Literal["title", b"title"] # noqa: Y015
+ def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ...
+ _ClearFieldArgType: _TypeAlias = _typing.Literal["rows", b"rows", "title", b"title"] # noqa: Y015
def ClearField(self, field_name: _ClearFieldArgType) -> None: ...
- _WhichOneofReturnType_title: _TypeAlias = _typing.Literal["documentMessage", "hydratedTitleText", "imageMessage", "videoMessage", "locationMessage"] # noqa: Y015
- _WhichOneofArgType_title: _TypeAlias = _typing.Literal["title", b"title"] # noqa: Y015
- def WhichOneof(self, oneof_group: _WhichOneofArgType_title) -> _WhichOneofReturnType_title | None: ...
+ TITLE_FIELD_NUMBER: _builtins.int
+ DESCRIPTION_FIELD_NUMBER: _builtins.int
+ BUTTONTEXT_FIELD_NUMBER: _builtins.int
+ LISTTYPE_FIELD_NUMBER: _builtins.int
+ SECTIONS_FIELD_NUMBER: _builtins.int
+ PRODUCTLISTINFO_FIELD_NUMBER: _builtins.int
+ FOOTERTEXT_FIELD_NUMBER: _builtins.int
CONTEXTINFO_FIELD_NUMBER: _builtins.int
- HYDRATEDTEMPLATE_FIELD_NUMBER: _builtins.int
- TEMPLATEID_FIELD_NUMBER: _builtins.int
- FOURROWTEMPLATE_FIELD_NUMBER: _builtins.int
- HYDRATEDFOURROWTEMPLATE_FIELD_NUMBER: _builtins.int
- INTERACTIVEMESSAGETEMPLATE_FIELD_NUMBER: _builtins.int
- templateId: _builtins.str
- @_builtins.property
- def contextInfo(self) -> Global___ContextInfo: ...
- @_builtins.property
- def hydratedTemplate(self) -> Global___Message.TemplateMessage.HydratedFourRowTemplate: ...
+ title: _builtins.str
+ description: _builtins.str
+ buttonText: _builtins.str
+ listType: Global___Message.ListMessage.ListType.ValueType
+ footerText: _builtins.str
@_builtins.property
- def fourRowTemplate(self) -> Global___Message.TemplateMessage.FourRowTemplate: ...
+ def sections(self) -> _containers.RepeatedCompositeFieldContainer[Global___Message.ListMessage.Section]: ...
@_builtins.property
- def hydratedFourRowTemplate(self) -> Global___Message.TemplateMessage.HydratedFourRowTemplate: ...
+ def productListInfo(self) -> Global___Message.ListMessage.ProductListInfo: ...
@_builtins.property
- def interactiveMessageTemplate(self) -> Global___Message.InteractiveMessage: ...
+ def contextInfo(self) -> Global___ContextInfo: ...
def __init__(
self,
*,
+ title: _builtins.str | None = ...,
+ description: _builtins.str | None = ...,
+ buttonText: _builtins.str | None = ...,
+ listType: Global___Message.ListMessage.ListType.ValueType | None = ...,
+ sections: _abc.Iterable[Global___Message.ListMessage.Section] | None = ...,
+ productListInfo: Global___Message.ListMessage.ProductListInfo | None = ...,
+ footerText: _builtins.str | None = ...,
contextInfo: Global___ContextInfo | None = ...,
- hydratedTemplate: Global___Message.TemplateMessage.HydratedFourRowTemplate | None = ...,
- templateId: _builtins.str | None = ...,
- fourRowTemplate: Global___Message.TemplateMessage.FourRowTemplate | None = ...,
- hydratedFourRowTemplate: Global___Message.TemplateMessage.HydratedFourRowTemplate | None = ...,
- interactiveMessageTemplate: Global___Message.InteractiveMessage | None = ...,
) -> None: ...
- _HasFieldArgType: _TypeAlias = _typing.Literal["contextInfo", b"contextInfo", "format", b"format", "fourRowTemplate", b"fourRowTemplate", "hydratedFourRowTemplate", b"hydratedFourRowTemplate", "hydratedTemplate", b"hydratedTemplate", "interactiveMessageTemplate", b"interactiveMessageTemplate", "templateId", b"templateId"] # noqa: Y015
+ _HasFieldArgType: _TypeAlias = _typing.Literal["buttonText", b"buttonText", "contextInfo", b"contextInfo", "description", b"description", "footerText", b"footerText", "listType", b"listType", "productListInfo", b"productListInfo", "title", b"title"] # noqa: Y015
def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ...
- _ClearFieldArgType: _TypeAlias = _typing.Literal["contextInfo", b"contextInfo", "format", b"format", "fourRowTemplate", b"fourRowTemplate", "hydratedFourRowTemplate", b"hydratedFourRowTemplate", "hydratedTemplate", b"hydratedTemplate", "interactiveMessageTemplate", b"interactiveMessageTemplate", "templateId", b"templateId"] # noqa: Y015
+ _ClearFieldArgType: _TypeAlias = _typing.Literal["buttonText", b"buttonText", "contextInfo", b"contextInfo", "description", b"description", "footerText", b"footerText", "listType", b"listType", "productListInfo", b"productListInfo", "sections", b"sections", "title", b"title"] # noqa: Y015
def ClearField(self, field_name: _ClearFieldArgType) -> None: ...
- _WhichOneofReturnType_format: _TypeAlias = _typing.Literal["fourRowTemplate", "hydratedFourRowTemplate", "interactiveMessageTemplate"] # noqa: Y015
- _WhichOneofArgType_format: _TypeAlias = _typing.Literal["format", b"format"] # noqa: Y015
- def WhichOneof(self, oneof_group: _WhichOneofArgType_format) -> _WhichOneofReturnType_format | None: ...
@_typing.final
- class URLMetadata(_message.Message):
+ class ListResponseMessage(_message.Message):
DESCRIPTOR: _descriptor.Descriptor
- FBEXPERIMENTID_FIELD_NUMBER: _builtins.int
- fbExperimentId: _builtins.int
+ class _ListType:
+ ValueType = _typing.NewType("ValueType", _builtins.int)
+ V: _TypeAlias = ValueType # noqa: Y015
+
+ class _ListTypeEnumTypeWrapper(_enum_type_wrapper._EnumTypeWrapper[Message.ListResponseMessage._ListType.ValueType], _builtins.type):
+ DESCRIPTOR: _descriptor.EnumDescriptor
+ UNKNOWN: Message.ListResponseMessage._ListType.ValueType # 0
+ SINGLE_SELECT: Message.ListResponseMessage._ListType.ValueType # 1
+
+ class ListType(_ListType, metaclass=_ListTypeEnumTypeWrapper): ...
+ UNKNOWN: Message.ListResponseMessage.ListType.ValueType # 0
+ SINGLE_SELECT: Message.ListResponseMessage.ListType.ValueType # 1
+
+ @_typing.final
+ class SingleSelectReply(_message.Message):
+ DESCRIPTOR: _descriptor.Descriptor
+
+ SELECTEDROWID_FIELD_NUMBER: _builtins.int
+ selectedRowId: _builtins.str
+ def __init__(
+ self,
+ *,
+ selectedRowId: _builtins.str | None = ...,
+ ) -> None: ...
+ _HasFieldArgType: _TypeAlias = _typing.Literal["selectedRowId", b"selectedRowId"] # noqa: Y015
+ def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ...
+ _ClearFieldArgType: _TypeAlias = _typing.Literal["selectedRowId", b"selectedRowId"] # noqa: Y015
+ def ClearField(self, field_name: _ClearFieldArgType) -> None: ...
+
+ TITLE_FIELD_NUMBER: _builtins.int
+ LISTTYPE_FIELD_NUMBER: _builtins.int
+ SINGLESELECTREPLY_FIELD_NUMBER: _builtins.int
+ CONTEXTINFO_FIELD_NUMBER: _builtins.int
+ DESCRIPTION_FIELD_NUMBER: _builtins.int
+ title: _builtins.str
+ listType: Global___Message.ListResponseMessage.ListType.ValueType
+ description: _builtins.str
+ @_builtins.property
+ def singleSelectReply(self) -> Global___Message.ListResponseMessage.SingleSelectReply: ...
+ @_builtins.property
+ def contextInfo(self) -> Global___ContextInfo: ...
def __init__(
self,
*,
- fbExperimentId: _builtins.int | None = ...,
+ title: _builtins.str | None = ...,
+ listType: Global___Message.ListResponseMessage.ListType.ValueType | None = ...,
+ singleSelectReply: Global___Message.ListResponseMessage.SingleSelectReply | None = ...,
+ contextInfo: Global___ContextInfo | None = ...,
+ description: _builtins.str | None = ...,
) -> None: ...
- _HasFieldArgType: _TypeAlias = _typing.Literal["fbExperimentId", b"fbExperimentId"] # noqa: Y015
+ _HasFieldArgType: _TypeAlias = _typing.Literal["contextInfo", b"contextInfo", "description", b"description", "listType", b"listType", "singleSelectReply", b"singleSelectReply", "title", b"title"] # noqa: Y015
def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ...
- _ClearFieldArgType: _TypeAlias = _typing.Literal["fbExperimentId", b"fbExperimentId"] # noqa: Y015
+ _ClearFieldArgType: _TypeAlias = _typing.Literal["contextInfo", b"contextInfo", "description", b"description", "listType", b"listType", "singleSelectReply", b"singleSelectReply", "title", b"title"] # noqa: Y015
def ClearField(self, field_name: _ClearFieldArgType) -> None: ...
@_typing.final
- class VideoEndCard(_message.Message):
+ class LiveLocationMessage(_message.Message):
DESCRIPTOR: _descriptor.Descriptor
- USERNAME_FIELD_NUMBER: _builtins.int
+ DEGREESLATITUDE_FIELD_NUMBER: _builtins.int
+ DEGREESLONGITUDE_FIELD_NUMBER: _builtins.int
+ ACCURACYINMETERS_FIELD_NUMBER: _builtins.int
+ SPEEDINMPS_FIELD_NUMBER: _builtins.int
+ DEGREESCLOCKWISEFROMMAGNETICNORTH_FIELD_NUMBER: _builtins.int
CAPTION_FIELD_NUMBER: _builtins.int
- THUMBNAILIMAGEURL_FIELD_NUMBER: _builtins.int
- PROFILEPICTUREURL_FIELD_NUMBER: _builtins.int
- username: _builtins.str
+ SEQUENCENUMBER_FIELD_NUMBER: _builtins.int
+ TIMEOFFSET_FIELD_NUMBER: _builtins.int
+ JPEGTHUMBNAIL_FIELD_NUMBER: _builtins.int
+ CONTEXTINFO_FIELD_NUMBER: _builtins.int
+ degreesLatitude: _builtins.float
+ degreesLongitude: _builtins.float
+ accuracyInMeters: _builtins.int
+ speedInMps: _builtins.float
+ degreesClockwiseFromMagneticNorth: _builtins.int
caption: _builtins.str
- thumbnailImageUrl: _builtins.str
- profilePictureUrl: _builtins.str
+ sequenceNumber: _builtins.int
+ timeOffset: _builtins.int
+ jpegThumbnail: _builtins.bytes
+ @_builtins.property
+ def contextInfo(self) -> Global___ContextInfo: ...
def __init__(
self,
*,
- username: _builtins.str | None = ...,
+ degreesLatitude: _builtins.float | None = ...,
+ degreesLongitude: _builtins.float | None = ...,
+ accuracyInMeters: _builtins.int | None = ...,
+ speedInMps: _builtins.float | None = ...,
+ degreesClockwiseFromMagneticNorth: _builtins.int | None = ...,
caption: _builtins.str | None = ...,
- thumbnailImageUrl: _builtins.str | None = ...,
- profilePictureUrl: _builtins.str | None = ...,
+ sequenceNumber: _builtins.int | None = ...,
+ timeOffset: _builtins.int | None = ...,
+ jpegThumbnail: _builtins.bytes | None = ...,
+ contextInfo: Global___ContextInfo | None = ...,
) -> None: ...
- _HasFieldArgType: _TypeAlias = _typing.Literal["caption", b"caption", "profilePictureUrl", b"profilePictureUrl", "thumbnailImageUrl", b"thumbnailImageUrl", "username", b"username"] # noqa: Y015
+ _HasFieldArgType: _TypeAlias = _typing.Literal["accuracyInMeters", b"accuracyInMeters", "caption", b"caption", "contextInfo", b"contextInfo", "degreesClockwiseFromMagneticNorth", b"degreesClockwiseFromMagneticNorth", "degreesLatitude", b"degreesLatitude", "degreesLongitude", b"degreesLongitude", "jpegThumbnail", b"jpegThumbnail", "sequenceNumber", b"sequenceNumber", "speedInMps", b"speedInMps", "timeOffset", b"timeOffset"] # noqa: Y015
def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ...
- _ClearFieldArgType: _TypeAlias = _typing.Literal["caption", b"caption", "profilePictureUrl", b"profilePictureUrl", "thumbnailImageUrl", b"thumbnailImageUrl", "username", b"username"] # noqa: Y015
+ _ClearFieldArgType: _TypeAlias = _typing.Literal["accuracyInMeters", b"accuracyInMeters", "caption", b"caption", "contextInfo", b"contextInfo", "degreesClockwiseFromMagneticNorth", b"degreesClockwiseFromMagneticNorth", "degreesLatitude", b"degreesLatitude", "degreesLongitude", b"degreesLongitude", "jpegThumbnail", b"jpegThumbnail", "sequenceNumber", b"sequenceNumber", "speedInMps", b"speedInMps", "timeOffset", b"timeOffset"] # noqa: Y015
def ClearField(self, field_name: _ClearFieldArgType) -> None: ...
@_typing.final
- class VideoMessage(_message.Message):
+ class LocationMessage(_message.Message):
DESCRIPTOR: _descriptor.Descriptor
- class _Attribution:
- ValueType = _typing.NewType("ValueType", _builtins.int)
- V: _TypeAlias = ValueType # noqa: Y015
-
- class _AttributionEnumTypeWrapper(_enum_type_wrapper._EnumTypeWrapper[Message.VideoMessage._Attribution.ValueType], _builtins.type):
- DESCRIPTOR: _descriptor.EnumDescriptor
- NONE: Message.VideoMessage._Attribution.ValueType # 0
- GIPHY: Message.VideoMessage._Attribution.ValueType # 1
- TENOR: Message.VideoMessage._Attribution.ValueType # 2
- KLIPY: Message.VideoMessage._Attribution.ValueType # 3
-
- class Attribution(_Attribution, metaclass=_AttributionEnumTypeWrapper): ...
- NONE: Message.VideoMessage.Attribution.ValueType # 0
- GIPHY: Message.VideoMessage.Attribution.ValueType # 1
- TENOR: Message.VideoMessage.Attribution.ValueType # 2
- KLIPY: Message.VideoMessage.Attribution.ValueType # 3
-
- class _VideoSourceType:
- ValueType = _typing.NewType("ValueType", _builtins.int)
- V: _TypeAlias = ValueType # noqa: Y015
-
- class _VideoSourceTypeEnumTypeWrapper(_enum_type_wrapper._EnumTypeWrapper[Message.VideoMessage._VideoSourceType.ValueType], _builtins.type):
- DESCRIPTOR: _descriptor.EnumDescriptor
- USER_VIDEO: Message.VideoMessage._VideoSourceType.ValueType # 0
- AI_GENERATED: Message.VideoMessage._VideoSourceType.ValueType # 1
-
- class VideoSourceType(_VideoSourceType, metaclass=_VideoSourceTypeEnumTypeWrapper): ...
- USER_VIDEO: Message.VideoMessage.VideoSourceType.ValueType # 0
- AI_GENERATED: Message.VideoMessage.VideoSourceType.ValueType # 1
-
+ DEGREESLATITUDE_FIELD_NUMBER: _builtins.int
+ DEGREESLONGITUDE_FIELD_NUMBER: _builtins.int
+ NAME_FIELD_NUMBER: _builtins.int
+ ADDRESS_FIELD_NUMBER: _builtins.int
URL_FIELD_NUMBER: _builtins.int
- MIMETYPE_FIELD_NUMBER: _builtins.int
- FILESHA256_FIELD_NUMBER: _builtins.int
- FILELENGTH_FIELD_NUMBER: _builtins.int
- SECONDS_FIELD_NUMBER: _builtins.int
- MEDIAKEY_FIELD_NUMBER: _builtins.int
- CAPTION_FIELD_NUMBER: _builtins.int
- GIFPLAYBACK_FIELD_NUMBER: _builtins.int
- HEIGHT_FIELD_NUMBER: _builtins.int
- WIDTH_FIELD_NUMBER: _builtins.int
- FILEENCSHA256_FIELD_NUMBER: _builtins.int
- INTERACTIVEANNOTATIONS_FIELD_NUMBER: _builtins.int
- DIRECTPATH_FIELD_NUMBER: _builtins.int
- MEDIAKEYTIMESTAMP_FIELD_NUMBER: _builtins.int
- JPEGTHUMBNAIL_FIELD_NUMBER: _builtins.int
- CONTEXTINFO_FIELD_NUMBER: _builtins.int
- STREAMINGSIDECAR_FIELD_NUMBER: _builtins.int
- GIFATTRIBUTION_FIELD_NUMBER: _builtins.int
- VIEWONCE_FIELD_NUMBER: _builtins.int
+ ISLIVE_FIELD_NUMBER: _builtins.int
+ ACCURACYINMETERS_FIELD_NUMBER: _builtins.int
+ SPEEDINMPS_FIELD_NUMBER: _builtins.int
+ DEGREESCLOCKWISEFROMMAGNETICNORTH_FIELD_NUMBER: _builtins.int
+ COMMENT_FIELD_NUMBER: _builtins.int
+ JPEGTHUMBNAIL_FIELD_NUMBER: _builtins.int
+ CONTEXTINFO_FIELD_NUMBER: _builtins.int
+ degreesLatitude: _builtins.float
+ degreesLongitude: _builtins.float
+ name: _builtins.str
+ address: _builtins.str
+ url: _builtins.str
+ isLive: _builtins.bool
+ accuracyInMeters: _builtins.int
+ speedInMps: _builtins.float
+ degreesClockwiseFromMagneticNorth: _builtins.int
+ comment: _builtins.str
+ jpegThumbnail: _builtins.bytes
+ @_builtins.property
+ def contextInfo(self) -> Global___ContextInfo: ...
+ def __init__(
+ self,
+ *,
+ degreesLatitude: _builtins.float | None = ...,
+ degreesLongitude: _builtins.float | None = ...,
+ name: _builtins.str | None = ...,
+ address: _builtins.str | None = ...,
+ url: _builtins.str | None = ...,
+ isLive: _builtins.bool | None = ...,
+ accuracyInMeters: _builtins.int | None = ...,
+ speedInMps: _builtins.float | None = ...,
+ degreesClockwiseFromMagneticNorth: _builtins.int | None = ...,
+ comment: _builtins.str | None = ...,
+ jpegThumbnail: _builtins.bytes | None = ...,
+ contextInfo: Global___ContextInfo | None = ...,
+ ) -> None: ...
+ _HasFieldArgType: _TypeAlias = _typing.Literal["accuracyInMeters", b"accuracyInMeters", "address", b"address", "comment", b"comment", "contextInfo", b"contextInfo", "degreesClockwiseFromMagneticNorth", b"degreesClockwiseFromMagneticNorth", "degreesLatitude", b"degreesLatitude", "degreesLongitude", b"degreesLongitude", "isLive", b"isLive", "jpegThumbnail", b"jpegThumbnail", "name", b"name", "speedInMps", b"speedInMps", "url", b"url"] # noqa: Y015
+ def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ...
+ _ClearFieldArgType: _TypeAlias = _typing.Literal["accuracyInMeters", b"accuracyInMeters", "address", b"address", "comment", b"comment", "contextInfo", b"contextInfo", "degreesClockwiseFromMagneticNorth", b"degreesClockwiseFromMagneticNorth", "degreesLatitude", b"degreesLatitude", "degreesLongitude", b"degreesLongitude", "isLive", b"isLive", "jpegThumbnail", b"jpegThumbnail", "name", b"name", "speedInMps", b"speedInMps", "url", b"url"] # noqa: Y015
+ def ClearField(self, field_name: _ClearFieldArgType) -> None: ...
+
+ @_typing.final
+ class MMSThumbnailMetadata(_message.Message):
+ DESCRIPTOR: _descriptor.Descriptor
+
THUMBNAILDIRECTPATH_FIELD_NUMBER: _builtins.int
THUMBNAILSHA256_FIELD_NUMBER: _builtins.int
THUMBNAILENCSHA256_FIELD_NUMBER: _builtins.int
- STATICURL_FIELD_NUMBER: _builtins.int
- ANNOTATIONS_FIELD_NUMBER: _builtins.int
- ACCESSIBILITYLABEL_FIELD_NUMBER: _builtins.int
- PROCESSEDVIDEOS_FIELD_NUMBER: _builtins.int
- EXTERNALSHAREFULLVIDEODURATIONINSECONDS_FIELD_NUMBER: _builtins.int
- MOTIONPHOTOPRESENTATIONOFFSETMS_FIELD_NUMBER: _builtins.int
- METADATAURL_FIELD_NUMBER: _builtins.int
- VIDEOSOURCETYPE_FIELD_NUMBER: _builtins.int
- url: _builtins.str
+ MEDIAKEY_FIELD_NUMBER: _builtins.int
+ MEDIAKEYTIMESTAMP_FIELD_NUMBER: _builtins.int
+ THUMBNAILHEIGHT_FIELD_NUMBER: _builtins.int
+ THUMBNAILWIDTH_FIELD_NUMBER: _builtins.int
+ thumbnailDirectPath: _builtins.str
+ thumbnailSha256: _builtins.bytes
+ thumbnailEncSha256: _builtins.bytes
+ mediaKey: _builtins.bytes
+ mediaKeyTimestamp: _builtins.int
+ thumbnailHeight: _builtins.int
+ thumbnailWidth: _builtins.int
+ def __init__(
+ self,
+ *,
+ thumbnailDirectPath: _builtins.str | None = ...,
+ thumbnailSha256: _builtins.bytes | None = ...,
+ thumbnailEncSha256: _builtins.bytes | None = ...,
+ mediaKey: _builtins.bytes | None = ...,
+ mediaKeyTimestamp: _builtins.int | None = ...,
+ thumbnailHeight: _builtins.int | None = ...,
+ thumbnailWidth: _builtins.int | None = ...,
+ ) -> None: ...
+ _HasFieldArgType: _TypeAlias = _typing.Literal["mediaKey", b"mediaKey", "mediaKeyTimestamp", b"mediaKeyTimestamp", "thumbnailDirectPath", b"thumbnailDirectPath", "thumbnailEncSha256", b"thumbnailEncSha256", "thumbnailHeight", b"thumbnailHeight", "thumbnailSha256", b"thumbnailSha256", "thumbnailWidth", b"thumbnailWidth"] # noqa: Y015
+ def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ...
+ _ClearFieldArgType: _TypeAlias = _typing.Literal["mediaKey", b"mediaKey", "mediaKeyTimestamp", b"mediaKeyTimestamp", "thumbnailDirectPath", b"thumbnailDirectPath", "thumbnailEncSha256", b"thumbnailEncSha256", "thumbnailHeight", b"thumbnailHeight", "thumbnailSha256", b"thumbnailSha256", "thumbnailWidth", b"thumbnailWidth"] # noqa: Y015
+ def ClearField(self, field_name: _ClearFieldArgType) -> None: ...
+
+ @_typing.final
+ class MarkAsVerifiedAction(_message.Message):
+ DESCRIPTOR: _descriptor.Descriptor
+
+ USERJIDSTRING_FIELD_NUMBER: _builtins.int
+ VERIFIED_FIELD_NUMBER: _builtins.int
+ VERIFIEDIDENTITYKEY_FIELD_NUMBER: _builtins.int
+ ACTIONSEQ_FIELD_NUMBER: _builtins.int
+ userJidString: _builtins.str
+ verified: _builtins.bool
+ verifiedIdentityKey: _builtins.bytes
+ actionSeq: _builtins.int
+ def __init__(
+ self,
+ *,
+ userJidString: _builtins.str | None = ...,
+ verified: _builtins.bool | None = ...,
+ verifiedIdentityKey: _builtins.bytes | None = ...,
+ actionSeq: _builtins.int | None = ...,
+ ) -> None: ...
+ _HasFieldArgType: _TypeAlias = _typing.Literal["actionSeq", b"actionSeq", "userJidString", b"userJidString", "verified", b"verified", "verifiedIdentityKey", b"verifiedIdentityKey"] # noqa: Y015
+ def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ...
+ _ClearFieldArgType: _TypeAlias = _typing.Literal["actionSeq", b"actionSeq", "userJidString", b"userJidString", "verified", b"verified", "verifiedIdentityKey", b"verifiedIdentityKey"] # noqa: Y015
+ def ClearField(self, field_name: _ClearFieldArgType) -> None: ...
+
+ @_typing.final
+ class MessageHistoryBundle(_message.Message):
+ DESCRIPTOR: _descriptor.Descriptor
+
+ MIMETYPE_FIELD_NUMBER: _builtins.int
+ FILESHA256_FIELD_NUMBER: _builtins.int
+ MEDIAKEY_FIELD_NUMBER: _builtins.int
+ FILEENCSHA256_FIELD_NUMBER: _builtins.int
+ DIRECTPATH_FIELD_NUMBER: _builtins.int
+ MEDIAKEYTIMESTAMP_FIELD_NUMBER: _builtins.int
+ CONTEXTINFO_FIELD_NUMBER: _builtins.int
+ MESSAGEHISTORYMETADATA_FIELD_NUMBER: _builtins.int
mimetype: _builtins.str
fileSha256: _builtins.bytes
- fileLength: _builtins.int
- seconds: _builtins.int
mediaKey: _builtins.bytes
- caption: _builtins.str
- gifPlayback: _builtins.bool
- height: _builtins.int
- width: _builtins.int
fileEncSha256: _builtins.bytes
directPath: _builtins.str
mediaKeyTimestamp: _builtins.int
- jpegThumbnail: _builtins.bytes
- streamingSidecar: _builtins.bytes
- gifAttribution: Global___Message.VideoMessage.Attribution.ValueType
- viewOnce: _builtins.bool
- thumbnailDirectPath: _builtins.str
- thumbnailSha256: _builtins.bytes
- thumbnailEncSha256: _builtins.bytes
- staticUrl: _builtins.str
- accessibilityLabel: _builtins.str
- externalShareFullVideoDurationInSeconds: _builtins.int
- motionPhotoPresentationOffsetMs: _builtins.int
- metadataUrl: _builtins.str
- videoSourceType: Global___Message.VideoMessage.VideoSourceType.ValueType
- @_builtins.property
- def interactiveAnnotations(self) -> _containers.RepeatedCompositeFieldContainer[Global___InteractiveAnnotation]: ...
@_builtins.property
def contextInfo(self) -> Global___ContextInfo: ...
@_builtins.property
- def annotations(self) -> _containers.RepeatedCompositeFieldContainer[Global___InteractiveAnnotation]: ...
- @_builtins.property
- def processedVideos(self) -> _containers.RepeatedCompositeFieldContainer[Global___ProcessedVideo]: ...
+ def messageHistoryMetadata(self) -> Global___Message.MessageHistoryMetadata: ...
def __init__(
self,
*,
- url: _builtins.str | None = ...,
mimetype: _builtins.str | None = ...,
fileSha256: _builtins.bytes | None = ...,
- fileLength: _builtins.int | None = ...,
- seconds: _builtins.int | None = ...,
mediaKey: _builtins.bytes | None = ...,
- caption: _builtins.str | None = ...,
- gifPlayback: _builtins.bool | None = ...,
- height: _builtins.int | None = ...,
- width: _builtins.int | None = ...,
fileEncSha256: _builtins.bytes | None = ...,
- interactiveAnnotations: _abc.Iterable[Global___InteractiveAnnotation] | None = ...,
directPath: _builtins.str | None = ...,
mediaKeyTimestamp: _builtins.int | None = ...,
- jpegThumbnail: _builtins.bytes | None = ...,
contextInfo: Global___ContextInfo | None = ...,
- streamingSidecar: _builtins.bytes | None = ...,
- gifAttribution: Global___Message.VideoMessage.Attribution.ValueType | None = ...,
- viewOnce: _builtins.bool | None = ...,
- thumbnailDirectPath: _builtins.str | None = ...,
- thumbnailSha256: _builtins.bytes | None = ...,
- thumbnailEncSha256: _builtins.bytes | None = ...,
- staticUrl: _builtins.str | None = ...,
- annotations: _abc.Iterable[Global___InteractiveAnnotation] | None = ...,
- accessibilityLabel: _builtins.str | None = ...,
- processedVideos: _abc.Iterable[Global___ProcessedVideo] | None = ...,
- externalShareFullVideoDurationInSeconds: _builtins.int | None = ...,
- motionPhotoPresentationOffsetMs: _builtins.int | None = ...,
- metadataUrl: _builtins.str | None = ...,
- videoSourceType: Global___Message.VideoMessage.VideoSourceType.ValueType | None = ...,
+ messageHistoryMetadata: Global___Message.MessageHistoryMetadata | None = ...,
) -> None: ...
- _HasFieldArgType: _TypeAlias = _typing.Literal["accessibilityLabel", b"accessibilityLabel", "caption", b"caption", "contextInfo", b"contextInfo", "directPath", b"directPath", "externalShareFullVideoDurationInSeconds", b"externalShareFullVideoDurationInSeconds", "fileEncSha256", b"fileEncSha256", "fileLength", b"fileLength", "fileSha256", b"fileSha256", "gifAttribution", b"gifAttribution", "gifPlayback", b"gifPlayback", "height", b"height", "jpegThumbnail", b"jpegThumbnail", "mediaKey", b"mediaKey", "mediaKeyTimestamp", b"mediaKeyTimestamp", "metadataUrl", b"metadataUrl", "mimetype", b"mimetype", "motionPhotoPresentationOffsetMs", b"motionPhotoPresentationOffsetMs", "seconds", b"seconds", "staticUrl", b"staticUrl", "streamingSidecar", b"streamingSidecar", "thumbnailDirectPath", b"thumbnailDirectPath", "thumbnailEncSha256", b"thumbnailEncSha256", "thumbnailSha256", b"thumbnailSha256", "url", b"url", "videoSourceType", b"videoSourceType", "viewOnce", b"viewOnce", "width", b"width"] # noqa: Y015
+ _HasFieldArgType: _TypeAlias = _typing.Literal["contextInfo", b"contextInfo", "directPath", b"directPath", "fileEncSha256", b"fileEncSha256", "fileSha256", b"fileSha256", "mediaKey", b"mediaKey", "mediaKeyTimestamp", b"mediaKeyTimestamp", "messageHistoryMetadata", b"messageHistoryMetadata", "mimetype", b"mimetype"] # noqa: Y015
def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ...
- _ClearFieldArgType: _TypeAlias = _typing.Literal["accessibilityLabel", b"accessibilityLabel", "annotations", b"annotations", "caption", b"caption", "contextInfo", b"contextInfo", "directPath", b"directPath", "externalShareFullVideoDurationInSeconds", b"externalShareFullVideoDurationInSeconds", "fileEncSha256", b"fileEncSha256", "fileLength", b"fileLength", "fileSha256", b"fileSha256", "gifAttribution", b"gifAttribution", "gifPlayback", b"gifPlayback", "height", b"height", "interactiveAnnotations", b"interactiveAnnotations", "jpegThumbnail", b"jpegThumbnail", "mediaKey", b"mediaKey", "mediaKeyTimestamp", b"mediaKeyTimestamp", "metadataUrl", b"metadataUrl", "mimetype", b"mimetype", "motionPhotoPresentationOffsetMs", b"motionPhotoPresentationOffsetMs", "processedVideos", b"processedVideos", "seconds", b"seconds", "staticUrl", b"staticUrl", "streamingSidecar", b"streamingSidecar", "thumbnailDirectPath", b"thumbnailDirectPath", "thumbnailEncSha256", b"thumbnailEncSha256", "thumbnailSha256", b"thumbnailSha256", "url", b"url", "videoSourceType", b"videoSourceType", "viewOnce", b"viewOnce", "width", b"width"] # noqa: Y015
+ _ClearFieldArgType: _TypeAlias = _typing.Literal["contextInfo", b"contextInfo", "directPath", b"directPath", "fileEncSha256", b"fileEncSha256", "fileSha256", b"fileSha256", "mediaKey", b"mediaKey", "mediaKeyTimestamp", b"mediaKeyTimestamp", "messageHistoryMetadata", b"messageHistoryMetadata", "mimetype", b"mimetype"] # noqa: Y015
def ClearField(self, field_name: _ClearFieldArgType) -> None: ...
- CONVERSATION_FIELD_NUMBER: _builtins.int
- SENDERKEYDISTRIBUTIONMESSAGE_FIELD_NUMBER: _builtins.int
- IMAGEMESSAGE_FIELD_NUMBER: _builtins.int
- CONTACTMESSAGE_FIELD_NUMBER: _builtins.int
- LOCATIONMESSAGE_FIELD_NUMBER: _builtins.int
- EXTENDEDTEXTMESSAGE_FIELD_NUMBER: _builtins.int
- DOCUMENTMESSAGE_FIELD_NUMBER: _builtins.int
- AUDIOMESSAGE_FIELD_NUMBER: _builtins.int
- VIDEOMESSAGE_FIELD_NUMBER: _builtins.int
- CALL_FIELD_NUMBER: _builtins.int
- CHAT_FIELD_NUMBER: _builtins.int
- PROTOCOLMESSAGE_FIELD_NUMBER: _builtins.int
- CONTACTSARRAYMESSAGE_FIELD_NUMBER: _builtins.int
- HIGHLYSTRUCTUREDMESSAGE_FIELD_NUMBER: _builtins.int
- FASTRATCHETKEYSENDERKEYDISTRIBUTIONMESSAGE_FIELD_NUMBER: _builtins.int
- SENDPAYMENTMESSAGE_FIELD_NUMBER: _builtins.int
- LIVELOCATIONMESSAGE_FIELD_NUMBER: _builtins.int
- REQUESTPAYMENTMESSAGE_FIELD_NUMBER: _builtins.int
- DECLINEPAYMENTREQUESTMESSAGE_FIELD_NUMBER: _builtins.int
- CANCELPAYMENTREQUESTMESSAGE_FIELD_NUMBER: _builtins.int
- TEMPLATEMESSAGE_FIELD_NUMBER: _builtins.int
- STICKERMESSAGE_FIELD_NUMBER: _builtins.int
- GROUPINVITEMESSAGE_FIELD_NUMBER: _builtins.int
- TEMPLATEBUTTONREPLYMESSAGE_FIELD_NUMBER: _builtins.int
- PRODUCTMESSAGE_FIELD_NUMBER: _builtins.int
- DEVICESENTMESSAGE_FIELD_NUMBER: _builtins.int
- MESSAGECONTEXTINFO_FIELD_NUMBER: _builtins.int
- LISTMESSAGE_FIELD_NUMBER: _builtins.int
- VIEWONCEMESSAGE_FIELD_NUMBER: _builtins.int
- ORDERMESSAGE_FIELD_NUMBER: _builtins.int
- LISTRESPONSEMESSAGE_FIELD_NUMBER: _builtins.int
- EPHEMERALMESSAGE_FIELD_NUMBER: _builtins.int
- INVOICEMESSAGE_FIELD_NUMBER: _builtins.int
- BUTTONSMESSAGE_FIELD_NUMBER: _builtins.int
- BUTTONSRESPONSEMESSAGE_FIELD_NUMBER: _builtins.int
- PAYMENTINVITEMESSAGE_FIELD_NUMBER: _builtins.int
- INTERACTIVEMESSAGE_FIELD_NUMBER: _builtins.int
- REACTIONMESSAGE_FIELD_NUMBER: _builtins.int
- STICKERSYNCRMRMESSAGE_FIELD_NUMBER: _builtins.int
- INTERACTIVERESPONSEMESSAGE_FIELD_NUMBER: _builtins.int
- POLLCREATIONMESSAGE_FIELD_NUMBER: _builtins.int
- POLLUPDATEMESSAGE_FIELD_NUMBER: _builtins.int
- KEEPINCHATMESSAGE_FIELD_NUMBER: _builtins.int
- DOCUMENTWITHCAPTIONMESSAGE_FIELD_NUMBER: _builtins.int
- REQUESTPHONENUMBERMESSAGE_FIELD_NUMBER: _builtins.int
- VIEWONCEMESSAGEV2_FIELD_NUMBER: _builtins.int
- ENCREACTIONMESSAGE_FIELD_NUMBER: _builtins.int
- EDITEDMESSAGE_FIELD_NUMBER: _builtins.int
- VIEWONCEMESSAGEV2EXTENSION_FIELD_NUMBER: _builtins.int
- POLLCREATIONMESSAGEV2_FIELD_NUMBER: _builtins.int
- SCHEDULEDCALLCREATIONMESSAGE_FIELD_NUMBER: _builtins.int
- GROUPMENTIONEDMESSAGE_FIELD_NUMBER: _builtins.int
- PININCHATMESSAGE_FIELD_NUMBER: _builtins.int
- POLLCREATIONMESSAGEV3_FIELD_NUMBER: _builtins.int
- SCHEDULEDCALLEDITMESSAGE_FIELD_NUMBER: _builtins.int
- PTVMESSAGE_FIELD_NUMBER: _builtins.int
- BOTINVOKEMESSAGE_FIELD_NUMBER: _builtins.int
- CALLLOGMESSSAGE_FIELD_NUMBER: _builtins.int
- MESSAGEHISTORYBUNDLE_FIELD_NUMBER: _builtins.int
- ENCCOMMENTMESSAGE_FIELD_NUMBER: _builtins.int
- BCALLMESSAGE_FIELD_NUMBER: _builtins.int
- LOTTIESTICKERMESSAGE_FIELD_NUMBER: _builtins.int
- EVENTMESSAGE_FIELD_NUMBER: _builtins.int
- ENCEVENTRESPONSEMESSAGE_FIELD_NUMBER: _builtins.int
- COMMENTMESSAGE_FIELD_NUMBER: _builtins.int
- NEWSLETTERADMININVITEMESSAGE_FIELD_NUMBER: _builtins.int
- PLACEHOLDERMESSAGE_FIELD_NUMBER: _builtins.int
- SECRETENCRYPTEDMESSAGE_FIELD_NUMBER: _builtins.int
- ALBUMMESSAGE_FIELD_NUMBER: _builtins.int
- EVENTCOVERIMAGE_FIELD_NUMBER: _builtins.int
- STICKERPACKMESSAGE_FIELD_NUMBER: _builtins.int
- STATUSMENTIONMESSAGE_FIELD_NUMBER: _builtins.int
- POLLRESULTSNAPSHOTMESSAGE_FIELD_NUMBER: _builtins.int
- POLLCREATIONOPTIONIMAGEMESSAGE_FIELD_NUMBER: _builtins.int
- ASSOCIATEDCHILDMESSAGE_FIELD_NUMBER: _builtins.int
- GROUPSTATUSMENTIONMESSAGE_FIELD_NUMBER: _builtins.int
- POLLCREATIONMESSAGEV4_FIELD_NUMBER: _builtins.int
- STATUSADDYOURS_FIELD_NUMBER: _builtins.int
- GROUPSTATUSMESSAGE_FIELD_NUMBER: _builtins.int
- RICHRESPONSEMESSAGE_FIELD_NUMBER: _builtins.int
- STATUSNOTIFICATIONMESSAGE_FIELD_NUMBER: _builtins.int
- LIMITSHARINGMESSAGE_FIELD_NUMBER: _builtins.int
- BOTTASKMESSAGE_FIELD_NUMBER: _builtins.int
- QUESTIONMESSAGE_FIELD_NUMBER: _builtins.int
- MESSAGEHISTORYNOTICE_FIELD_NUMBER: _builtins.int
- GROUPSTATUSMESSAGEV2_FIELD_NUMBER: _builtins.int
- BOTFORWARDEDMESSAGE_FIELD_NUMBER: _builtins.int
- STATUSQUESTIONANSWERMESSAGE_FIELD_NUMBER: _builtins.int
- QUESTIONREPLYMESSAGE_FIELD_NUMBER: _builtins.int
- QUESTIONRESPONSEMESSAGE_FIELD_NUMBER: _builtins.int
- STATUSQUOTEDMESSAGE_FIELD_NUMBER: _builtins.int
- STATUSSTICKERINTERACTIONMESSAGE_FIELD_NUMBER: _builtins.int
- POLLCREATIONMESSAGEV5_FIELD_NUMBER: _builtins.int
- NEWSLETTERFOLLOWERINVITEMESSAGEV2_FIELD_NUMBER: _builtins.int
- POLLRESULTSNAPSHOTMESSAGEV3_FIELD_NUMBER: _builtins.int
- NEWSLETTERADMINPROFILEMESSAGE_FIELD_NUMBER: _builtins.int
- NEWSLETTERADMINPROFILEMESSAGEV2_FIELD_NUMBER: _builtins.int
+ @_typing.final
+ class MessageHistoryMetadata(_message.Message):
+ DESCRIPTOR: _descriptor.Descriptor
+
+ HISTORYRECEIVERS_FIELD_NUMBER: _builtins.int
+ OLDESTMESSAGETIMESTAMPINWINDOW_FIELD_NUMBER: _builtins.int
+ MESSAGECOUNT_FIELD_NUMBER: _builtins.int
+ NONHISTORYRECEIVERS_FIELD_NUMBER: _builtins.int
+ OLDESTMESSAGETIMESTAMPINBUNDLE_FIELD_NUMBER: _builtins.int
+ oldestMessageTimestampInWindow: _builtins.int
+ messageCount: _builtins.int
+ oldestMessageTimestampInBundle: _builtins.int
+ @_builtins.property
+ def historyReceivers(self) -> _containers.RepeatedScalarFieldContainer[_builtins.str]: ...
+ @_builtins.property
+ def nonHistoryReceivers(self) -> _containers.RepeatedScalarFieldContainer[_builtins.str]: ...
+ def __init__(
+ self,
+ *,
+ historyReceivers: _abc.Iterable[_builtins.str] | None = ...,
+ oldestMessageTimestampInWindow: _builtins.int | None = ...,
+ messageCount: _builtins.int | None = ...,
+ nonHistoryReceivers: _abc.Iterable[_builtins.str] | None = ...,
+ oldestMessageTimestampInBundle: _builtins.int | None = ...,
+ ) -> None: ...
+ _HasFieldArgType: _TypeAlias = _typing.Literal["messageCount", b"messageCount", "oldestMessageTimestampInBundle", b"oldestMessageTimestampInBundle", "oldestMessageTimestampInWindow", b"oldestMessageTimestampInWindow"] # noqa: Y015
+ def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ...
+ _ClearFieldArgType: _TypeAlias = _typing.Literal["historyReceivers", b"historyReceivers", "messageCount", b"messageCount", "nonHistoryReceivers", b"nonHistoryReceivers", "oldestMessageTimestampInBundle", b"oldestMessageTimestampInBundle", "oldestMessageTimestampInWindow", b"oldestMessageTimestampInWindow"] # noqa: Y015
+ def ClearField(self, field_name: _ClearFieldArgType) -> None: ...
+
+ @_typing.final
+ class MessageHistoryNotice(_message.Message):
+ DESCRIPTOR: _descriptor.Descriptor
+
+ CONTEXTINFO_FIELD_NUMBER: _builtins.int
+ MESSAGEHISTORYMETADATA_FIELD_NUMBER: _builtins.int
+ BOTHISTORYSHARESYNCMETADATA_FIELD_NUMBER: _builtins.int
+ @_builtins.property
+ def contextInfo(self) -> Global___ContextInfo: ...
+ @_builtins.property
+ def messageHistoryMetadata(self) -> Global___Message.MessageHistoryMetadata: ...
+ @_builtins.property
+ def botHistoryShareSyncMetadata(self) -> Global___Message.BotHistoryShareSyncMetadata: ...
+ def __init__(
+ self,
+ *,
+ contextInfo: Global___ContextInfo | None = ...,
+ messageHistoryMetadata: Global___Message.MessageHistoryMetadata | None = ...,
+ botHistoryShareSyncMetadata: Global___Message.BotHistoryShareSyncMetadata | None = ...,
+ ) -> None: ...
+ _HasFieldArgType: _TypeAlias = _typing.Literal["botHistoryShareSyncMetadata", b"botHistoryShareSyncMetadata", "contextInfo", b"contextInfo", "messageHistoryMetadata", b"messageHistoryMetadata"] # noqa: Y015
+ def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ...
+ _ClearFieldArgType: _TypeAlias = _typing.Literal["botHistoryShareSyncMetadata", b"botHistoryShareSyncMetadata", "contextInfo", b"contextInfo", "messageHistoryMetadata", b"messageHistoryMetadata"] # noqa: Y015
+ def ClearField(self, field_name: _ClearFieldArgType) -> None: ...
+
+ @_typing.final
+ class MusicMessage(_message.Message):
+ DESCRIPTOR: _descriptor.Descriptor
+
+ class _MusicMessageStyle:
+ ValueType = _typing.NewType("ValueType", _builtins.int)
+ V: _TypeAlias = ValueType # noqa: Y015
+
+ class _MusicMessageStyleEnumTypeWrapper(_enum_type_wrapper._EnumTypeWrapper[Message.MusicMessage._MusicMessageStyle.ValueType], _builtins.type):
+ DESCRIPTOR: _descriptor.EnumDescriptor
+ UNKNOWN: Message.MusicMessage._MusicMessageStyle.ValueType # 0
+ VINYL: Message.MusicMessage._MusicMessageStyle.ValueType # 1
+
+ class MusicMessageStyle(_MusicMessageStyle, metaclass=_MusicMessageStyleEnumTypeWrapper): ...
+ UNKNOWN: Message.MusicMessage.MusicMessageStyle.ValueType # 0
+ VINYL: Message.MusicMessage.MusicMessageStyle.ValueType # 1
+
+ EMBEDDEDMUSIC_FIELD_NUMBER: _builtins.int
+ SONGURI_FIELD_NUMBER: _builtins.int
+ ARTWORKURI_FIELD_NUMBER: _builtins.int
+ STYLE_FIELD_NUMBER: _builtins.int
+ CONTEXTINFO_FIELD_NUMBER: _builtins.int
+ songUri: _builtins.str
+ artworkUri: _builtins.str
+ style: _builtins.int
+ @_builtins.property
+ def embeddedMusic(self) -> Global___EmbeddedMusic: ...
+ @_builtins.property
+ def contextInfo(self) -> Global___ContextInfo: ...
+ def __init__(
+ self,
+ *,
+ embeddedMusic: Global___EmbeddedMusic | None = ...,
+ songUri: _builtins.str | None = ...,
+ artworkUri: _builtins.str | None = ...,
+ style: _builtins.int | None = ...,
+ contextInfo: Global___ContextInfo | None = ...,
+ ) -> None: ...
+ _HasFieldArgType: _TypeAlias = _typing.Literal["artworkUri", b"artworkUri", "contextInfo", b"contextInfo", "embeddedMusic", b"embeddedMusic", "songUri", b"songUri", "style", b"style"] # noqa: Y015
+ def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ...
+ _ClearFieldArgType: _TypeAlias = _typing.Literal["artworkUri", b"artworkUri", "contextInfo", b"contextInfo", "embeddedMusic", b"embeddedMusic", "songUri", b"songUri", "style", b"style"] # noqa: Y015
+ def ClearField(self, field_name: _ClearFieldArgType) -> None: ...
+
+ @_typing.final
+ class NewsletterAdminInviteMessage(_message.Message):
+ DESCRIPTOR: _descriptor.Descriptor
+
+ NEWSLETTERJID_FIELD_NUMBER: _builtins.int
+ NEWSLETTERNAME_FIELD_NUMBER: _builtins.int
+ JPEGTHUMBNAIL_FIELD_NUMBER: _builtins.int
+ CAPTION_FIELD_NUMBER: _builtins.int
+ INVITEEXPIRATION_FIELD_NUMBER: _builtins.int
+ CONTEXTINFO_FIELD_NUMBER: _builtins.int
+ newsletterJid: _builtins.str
+ newsletterName: _builtins.str
+ jpegThumbnail: _builtins.bytes
+ caption: _builtins.str
+ inviteExpiration: _builtins.int
+ @_builtins.property
+ def contextInfo(self) -> Global___ContextInfo: ...
+ def __init__(
+ self,
+ *,
+ newsletterJid: _builtins.str | None = ...,
+ newsletterName: _builtins.str | None = ...,
+ jpegThumbnail: _builtins.bytes | None = ...,
+ caption: _builtins.str | None = ...,
+ inviteExpiration: _builtins.int | None = ...,
+ contextInfo: Global___ContextInfo | None = ...,
+ ) -> None: ...
+ _HasFieldArgType: _TypeAlias = _typing.Literal["caption", b"caption", "contextInfo", b"contextInfo", "inviteExpiration", b"inviteExpiration", "jpegThumbnail", b"jpegThumbnail", "newsletterJid", b"newsletterJid", "newsletterName", b"newsletterName"] # noqa: Y015
+ def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ...
+ _ClearFieldArgType: _TypeAlias = _typing.Literal["caption", b"caption", "contextInfo", b"contextInfo", "inviteExpiration", b"inviteExpiration", "jpegThumbnail", b"jpegThumbnail", "newsletterJid", b"newsletterJid", "newsletterName", b"newsletterName"] # noqa: Y015
+ def ClearField(self, field_name: _ClearFieldArgType) -> None: ...
+
+ @_typing.final
+ class NewsletterFollowerInviteMessage(_message.Message):
+ DESCRIPTOR: _descriptor.Descriptor
+
+ NEWSLETTERJID_FIELD_NUMBER: _builtins.int
+ NEWSLETTERNAME_FIELD_NUMBER: _builtins.int
+ JPEGTHUMBNAIL_FIELD_NUMBER: _builtins.int
+ CAPTION_FIELD_NUMBER: _builtins.int
+ CONTEXTINFO_FIELD_NUMBER: _builtins.int
+ newsletterJid: _builtins.str
+ newsletterName: _builtins.str
+ jpegThumbnail: _builtins.bytes
+ caption: _builtins.str
+ @_builtins.property
+ def contextInfo(self) -> Global___ContextInfo: ...
+ def __init__(
+ self,
+ *,
+ newsletterJid: _builtins.str | None = ...,
+ newsletterName: _builtins.str | None = ...,
+ jpegThumbnail: _builtins.bytes | None = ...,
+ caption: _builtins.str | None = ...,
+ contextInfo: Global___ContextInfo | None = ...,
+ ) -> None: ...
+ _HasFieldArgType: _TypeAlias = _typing.Literal["caption", b"caption", "contextInfo", b"contextInfo", "jpegThumbnail", b"jpegThumbnail", "newsletterJid", b"newsletterJid", "newsletterName", b"newsletterName"] # noqa: Y015
+ def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ...
+ _ClearFieldArgType: _TypeAlias = _typing.Literal["caption", b"caption", "contextInfo", b"contextInfo", "jpegThumbnail", b"jpegThumbnail", "newsletterJid", b"newsletterJid", "newsletterName", b"newsletterName"] # noqa: Y015
+ def ClearField(self, field_name: _ClearFieldArgType) -> None: ...
+
+ @_typing.final
+ class OrderMessage(_message.Message):
+ DESCRIPTOR: _descriptor.Descriptor
+
+ class _OrderStatus:
+ ValueType = _typing.NewType("ValueType", _builtins.int)
+ V: _TypeAlias = ValueType # noqa: Y015
+
+ class _OrderStatusEnumTypeWrapper(_enum_type_wrapper._EnumTypeWrapper[Message.OrderMessage._OrderStatus.ValueType], _builtins.type):
+ DESCRIPTOR: _descriptor.EnumDescriptor
+ INQUIRY: Message.OrderMessage._OrderStatus.ValueType # 1
+ ACCEPTED: Message.OrderMessage._OrderStatus.ValueType # 2
+ DECLINED: Message.OrderMessage._OrderStatus.ValueType # 3
+
+ class OrderStatus(_OrderStatus, metaclass=_OrderStatusEnumTypeWrapper): ...
+ INQUIRY: Message.OrderMessage.OrderStatus.ValueType # 1
+ ACCEPTED: Message.OrderMessage.OrderStatus.ValueType # 2
+ DECLINED: Message.OrderMessage.OrderStatus.ValueType # 3
+
+ class _OrderSurface:
+ ValueType = _typing.NewType("ValueType", _builtins.int)
+ V: _TypeAlias = ValueType # noqa: Y015
+
+ class _OrderSurfaceEnumTypeWrapper(_enum_type_wrapper._EnumTypeWrapper[Message.OrderMessage._OrderSurface.ValueType], _builtins.type):
+ DESCRIPTOR: _descriptor.EnumDescriptor
+ CATALOG: Message.OrderMessage._OrderSurface.ValueType # 1
+
+ class OrderSurface(_OrderSurface, metaclass=_OrderSurfaceEnumTypeWrapper): ...
+ CATALOG: Message.OrderMessage.OrderSurface.ValueType # 1
+
+ ORDERID_FIELD_NUMBER: _builtins.int
+ THUMBNAIL_FIELD_NUMBER: _builtins.int
+ ITEMCOUNT_FIELD_NUMBER: _builtins.int
+ STATUS_FIELD_NUMBER: _builtins.int
+ SURFACE_FIELD_NUMBER: _builtins.int
+ MESSAGE_FIELD_NUMBER: _builtins.int
+ ORDERTITLE_FIELD_NUMBER: _builtins.int
+ SELLERJID_FIELD_NUMBER: _builtins.int
+ TOKEN_FIELD_NUMBER: _builtins.int
+ TOTALAMOUNT1000_FIELD_NUMBER: _builtins.int
+ TOTALCURRENCYCODE_FIELD_NUMBER: _builtins.int
+ CONTEXTINFO_FIELD_NUMBER: _builtins.int
+ MESSAGEVERSION_FIELD_NUMBER: _builtins.int
+ ORDERREQUESTMESSAGEID_FIELD_NUMBER: _builtins.int
+ CATALOGTYPE_FIELD_NUMBER: _builtins.int
+ orderId: _builtins.str
+ thumbnail: _builtins.bytes
+ itemCount: _builtins.int
+ status: Global___Message.OrderMessage.OrderStatus.ValueType
+ surface: Global___Message.OrderMessage.OrderSurface.ValueType
+ message: _builtins.str
+ orderTitle: _builtins.str
+ sellerJid: _builtins.str
+ token: _builtins.str
+ totalAmount1000: _builtins.int
+ totalCurrencyCode: _builtins.str
+ messageVersion: _builtins.int
+ catalogType: _builtins.str
+ @_builtins.property
+ def contextInfo(self) -> Global___ContextInfo: ...
+ @_builtins.property
+ def orderRequestMessageId(self) -> Global___MessageKey: ...
+ def __init__(
+ self,
+ *,
+ orderId: _builtins.str | None = ...,
+ thumbnail: _builtins.bytes | None = ...,
+ itemCount: _builtins.int | None = ...,
+ status: Global___Message.OrderMessage.OrderStatus.ValueType | None = ...,
+ surface: Global___Message.OrderMessage.OrderSurface.ValueType | None = ...,
+ message: _builtins.str | None = ...,
+ orderTitle: _builtins.str | None = ...,
+ sellerJid: _builtins.str | None = ...,
+ token: _builtins.str | None = ...,
+ totalAmount1000: _builtins.int | None = ...,
+ totalCurrencyCode: _builtins.str | None = ...,
+ contextInfo: Global___ContextInfo | None = ...,
+ messageVersion: _builtins.int | None = ...,
+ orderRequestMessageId: Global___MessageKey | None = ...,
+ catalogType: _builtins.str | None = ...,
+ ) -> None: ...
+ _HasFieldArgType: _TypeAlias = _typing.Literal["catalogType", b"catalogType", "contextInfo", b"contextInfo", "itemCount", b"itemCount", "message", b"message", "messageVersion", b"messageVersion", "orderId", b"orderId", "orderRequestMessageId", b"orderRequestMessageId", "orderTitle", b"orderTitle", "sellerJid", b"sellerJid", "status", b"status", "surface", b"surface", "thumbnail", b"thumbnail", "token", b"token", "totalAmount1000", b"totalAmount1000", "totalCurrencyCode", b"totalCurrencyCode"] # noqa: Y015
+ def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ...
+ _ClearFieldArgType: _TypeAlias = _typing.Literal["catalogType", b"catalogType", "contextInfo", b"contextInfo", "itemCount", b"itemCount", "message", b"message", "messageVersion", b"messageVersion", "orderId", b"orderId", "orderRequestMessageId", b"orderRequestMessageId", "orderTitle", b"orderTitle", "sellerJid", b"sellerJid", "status", b"status", "surface", b"surface", "thumbnail", b"thumbnail", "token", b"token", "totalAmount1000", b"totalAmount1000", "totalCurrencyCode", b"totalCurrencyCode"] # noqa: Y015
+ def ClearField(self, field_name: _ClearFieldArgType) -> None: ...
+
+ @_typing.final
+ class PaymentExtendedMetadata(_message.Message):
+ DESCRIPTOR: _descriptor.Descriptor
+
+ TYPE_FIELD_NUMBER: _builtins.int
+ PLATFORM_FIELD_NUMBER: _builtins.int
+ MESSAGEPARAMSJSON_FIELD_NUMBER: _builtins.int
+ type: _builtins.int
+ platform: _builtins.str
+ messageParamsJson: _builtins.str
+ def __init__(
+ self,
+ *,
+ type: _builtins.int | None = ...,
+ platform: _builtins.str | None = ...,
+ messageParamsJson: _builtins.str | None = ...,
+ ) -> None: ...
+ _HasFieldArgType: _TypeAlias = _typing.Literal["messageParamsJson", b"messageParamsJson", "platform", b"platform", "type", b"type"] # noqa: Y015
+ def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ...
+ _ClearFieldArgType: _TypeAlias = _typing.Literal["messageParamsJson", b"messageParamsJson", "platform", b"platform", "type", b"type"] # noqa: Y015
+ def ClearField(self, field_name: _ClearFieldArgType) -> None: ...
+
+ @_typing.final
+ class PaymentInviteMessage(_message.Message):
+ DESCRIPTOR: _descriptor.Descriptor
+
+ class _InviteType:
+ ValueType = _typing.NewType("ValueType", _builtins.int)
+ V: _TypeAlias = ValueType # noqa: Y015
+
+ class _InviteTypeEnumTypeWrapper(_enum_type_wrapper._EnumTypeWrapper[Message.PaymentInviteMessage._InviteType.ValueType], _builtins.type):
+ DESCRIPTOR: _descriptor.EnumDescriptor
+ DEFAULT: Message.PaymentInviteMessage._InviteType.ValueType # 0
+ MAPPER: Message.PaymentInviteMessage._InviteType.ValueType # 1
+
+ class InviteType(_InviteType, metaclass=_InviteTypeEnumTypeWrapper): ...
+ DEFAULT: Message.PaymentInviteMessage.InviteType.ValueType # 0
+ MAPPER: Message.PaymentInviteMessage.InviteType.ValueType # 1
+
+ class _ServiceType:
+ ValueType = _typing.NewType("ValueType", _builtins.int)
+ V: _TypeAlias = ValueType # noqa: Y015
+
+ class _ServiceTypeEnumTypeWrapper(_enum_type_wrapper._EnumTypeWrapper[Message.PaymentInviteMessage._ServiceType.ValueType], _builtins.type):
+ DESCRIPTOR: _descriptor.EnumDescriptor
+ UNKNOWN: Message.PaymentInviteMessage._ServiceType.ValueType # 0
+ FBPAY: Message.PaymentInviteMessage._ServiceType.ValueType # 1
+ NOVI: Message.PaymentInviteMessage._ServiceType.ValueType # 2
+ UPI: Message.PaymentInviteMessage._ServiceType.ValueType # 3
+ PIX: Message.PaymentInviteMessage._ServiceType.ValueType # 4
+
+ class ServiceType(_ServiceType, metaclass=_ServiceTypeEnumTypeWrapper): ...
+ UNKNOWN: Message.PaymentInviteMessage.ServiceType.ValueType # 0
+ FBPAY: Message.PaymentInviteMessage.ServiceType.ValueType # 1
+ NOVI: Message.PaymentInviteMessage.ServiceType.ValueType # 2
+ UPI: Message.PaymentInviteMessage.ServiceType.ValueType # 3
+ PIX: Message.PaymentInviteMessage.ServiceType.ValueType # 4
+
+ SERVICETYPE_FIELD_NUMBER: _builtins.int
+ EXPIRYTIMESTAMP_FIELD_NUMBER: _builtins.int
+ INCENTIVEELIGIBLE_FIELD_NUMBER: _builtins.int
+ REFERRALID_FIELD_NUMBER: _builtins.int
+ INVITETYPE_FIELD_NUMBER: _builtins.int
+ serviceType: Global___Message.PaymentInviteMessage.ServiceType.ValueType
+ expiryTimestamp: _builtins.int
+ incentiveEligible: _builtins.bool
+ referralId: _builtins.str
+ inviteType: Global___Message.PaymentInviteMessage.InviteType.ValueType
+ def __init__(
+ self,
+ *,
+ serviceType: Global___Message.PaymentInviteMessage.ServiceType.ValueType | None = ...,
+ expiryTimestamp: _builtins.int | None = ...,
+ incentiveEligible: _builtins.bool | None = ...,
+ referralId: _builtins.str | None = ...,
+ inviteType: Global___Message.PaymentInviteMessage.InviteType.ValueType | None = ...,
+ ) -> None: ...
+ _HasFieldArgType: _TypeAlias = _typing.Literal["expiryTimestamp", b"expiryTimestamp", "incentiveEligible", b"incentiveEligible", "inviteType", b"inviteType", "referralId", b"referralId", "serviceType", b"serviceType"] # noqa: Y015
+ def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ...
+ _ClearFieldArgType: _TypeAlias = _typing.Literal["expiryTimestamp", b"expiryTimestamp", "incentiveEligible", b"incentiveEligible", "inviteType", b"inviteType", "referralId", b"referralId", "serviceType", b"serviceType"] # noqa: Y015
+ def ClearField(self, field_name: _ClearFieldArgType) -> None: ...
+
+ @_typing.final
+ class PaymentLinkMetadata(_message.Message):
+ DESCRIPTOR: _descriptor.Descriptor
+
+ @_typing.final
+ class PaymentLinkButton(_message.Message):
+ DESCRIPTOR: _descriptor.Descriptor
+
+ DISPLAYTEXT_FIELD_NUMBER: _builtins.int
+ displayText: _builtins.str
+ def __init__(
+ self,
+ *,
+ displayText: _builtins.str | None = ...,
+ ) -> None: ...
+ _HasFieldArgType: _TypeAlias = _typing.Literal["displayText", b"displayText"] # noqa: Y015
+ def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ...
+ _ClearFieldArgType: _TypeAlias = _typing.Literal["displayText", b"displayText"] # noqa: Y015
+ def ClearField(self, field_name: _ClearFieldArgType) -> None: ...
+
+ @_typing.final
+ class PaymentLinkHeader(_message.Message):
+ DESCRIPTOR: _descriptor.Descriptor
+
+ class _PaymentLinkHeaderType:
+ ValueType = _typing.NewType("ValueType", _builtins.int)
+ V: _TypeAlias = ValueType # noqa: Y015
+
+ class _PaymentLinkHeaderTypeEnumTypeWrapper(_enum_type_wrapper._EnumTypeWrapper[Message.PaymentLinkMetadata.PaymentLinkHeader._PaymentLinkHeaderType.ValueType], _builtins.type):
+ DESCRIPTOR: _descriptor.EnumDescriptor
+ LINK_PREVIEW: Message.PaymentLinkMetadata.PaymentLinkHeader._PaymentLinkHeaderType.ValueType # 0
+ ORDER: Message.PaymentLinkMetadata.PaymentLinkHeader._PaymentLinkHeaderType.ValueType # 1
+
+ class PaymentLinkHeaderType(_PaymentLinkHeaderType, metaclass=_PaymentLinkHeaderTypeEnumTypeWrapper): ...
+ LINK_PREVIEW: Message.PaymentLinkMetadata.PaymentLinkHeader.PaymentLinkHeaderType.ValueType # 0
+ ORDER: Message.PaymentLinkMetadata.PaymentLinkHeader.PaymentLinkHeaderType.ValueType # 1
+
+ HEADERTYPE_FIELD_NUMBER: _builtins.int
+ headerType: Global___Message.PaymentLinkMetadata.PaymentLinkHeader.PaymentLinkHeaderType.ValueType
+ def __init__(
+ self,
+ *,
+ headerType: Global___Message.PaymentLinkMetadata.PaymentLinkHeader.PaymentLinkHeaderType.ValueType | None = ...,
+ ) -> None: ...
+ _HasFieldArgType: _TypeAlias = _typing.Literal["headerType", b"headerType"] # noqa: Y015
+ def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ...
+ _ClearFieldArgType: _TypeAlias = _typing.Literal["headerType", b"headerType"] # noqa: Y015
+ def ClearField(self, field_name: _ClearFieldArgType) -> None: ...
+
+ @_typing.final
+ class PaymentLinkProvider(_message.Message):
+ DESCRIPTOR: _descriptor.Descriptor
+
+ PARAMSJSON_FIELD_NUMBER: _builtins.int
+ paramsJson: _builtins.str
+ def __init__(
+ self,
+ *,
+ paramsJson: _builtins.str | None = ...,
+ ) -> None: ...
+ _HasFieldArgType: _TypeAlias = _typing.Literal["paramsJson", b"paramsJson"] # noqa: Y015
+ def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ...
+ _ClearFieldArgType: _TypeAlias = _typing.Literal["paramsJson", b"paramsJson"] # noqa: Y015
+ def ClearField(self, field_name: _ClearFieldArgType) -> None: ...
+
+ BUTTON_FIELD_NUMBER: _builtins.int
+ HEADER_FIELD_NUMBER: _builtins.int
+ PROVIDER_FIELD_NUMBER: _builtins.int
+ @_builtins.property
+ def button(self) -> Global___Message.PaymentLinkMetadata.PaymentLinkButton: ...
+ @_builtins.property
+ def header(self) -> Global___Message.PaymentLinkMetadata.PaymentLinkHeader: ...
+ @_builtins.property
+ def provider(self) -> Global___Message.PaymentLinkMetadata.PaymentLinkProvider: ...
+ def __init__(
+ self,
+ *,
+ button: Global___Message.PaymentLinkMetadata.PaymentLinkButton | None = ...,
+ header: Global___Message.PaymentLinkMetadata.PaymentLinkHeader | None = ...,
+ provider: Global___Message.PaymentLinkMetadata.PaymentLinkProvider | None = ...,
+ ) -> None: ...
+ _HasFieldArgType: _TypeAlias = _typing.Literal["button", b"button", "header", b"header", "provider", b"provider"] # noqa: Y015
+ def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ...
+ _ClearFieldArgType: _TypeAlias = _typing.Literal["button", b"button", "header", b"header", "provider", b"provider"] # noqa: Y015
+ def ClearField(self, field_name: _ClearFieldArgType) -> None: ...
+
+ @_typing.final
+ class PaymentReminderMessage(_message.Message):
+ DESCRIPTOR: _descriptor.Descriptor
+
+ class _ReminderFrequency:
+ ValueType = _typing.NewType("ValueType", _builtins.int)
+ V: _TypeAlias = ValueType # noqa: Y015
+
+ class _ReminderFrequencyEnumTypeWrapper(_enum_type_wrapper._EnumTypeWrapper[Message.PaymentReminderMessage._ReminderFrequency.ValueType], _builtins.type):
+ DESCRIPTOR: _descriptor.EnumDescriptor
+ REMINDER_FREQUENCY_UNKNOWN: Message.PaymentReminderMessage._ReminderFrequency.ValueType # 0
+ WEEKLY: Message.PaymentReminderMessage._ReminderFrequency.ValueType # 1
+ BI_WEEKLY: Message.PaymentReminderMessage._ReminderFrequency.ValueType # 2
+ MONTHLY: Message.PaymentReminderMessage._ReminderFrequency.ValueType # 3
+ QUARTERLY: Message.PaymentReminderMessage._ReminderFrequency.ValueType # 4
+
+ class ReminderFrequency(_ReminderFrequency, metaclass=_ReminderFrequencyEnumTypeWrapper): ...
+ REMINDER_FREQUENCY_UNKNOWN: Message.PaymentReminderMessage.ReminderFrequency.ValueType # 0
+ WEEKLY: Message.PaymentReminderMessage.ReminderFrequency.ValueType # 1
+ BI_WEEKLY: Message.PaymentReminderMessage.ReminderFrequency.ValueType # 2
+ MONTHLY: Message.PaymentReminderMessage.ReminderFrequency.ValueType # 3
+ QUARTERLY: Message.PaymentReminderMessage.ReminderFrequency.ValueType # 4
+
+ class _ReminderStatus:
+ ValueType = _typing.NewType("ValueType", _builtins.int)
+ V: _TypeAlias = ValueType # noqa: Y015
+
+ class _ReminderStatusEnumTypeWrapper(_enum_type_wrapper._EnumTypeWrapper[Message.PaymentReminderMessage._ReminderStatus.ValueType], _builtins.type):
+ DESCRIPTOR: _descriptor.EnumDescriptor
+ REMINDER_STATUS_UNKNOWN: Message.PaymentReminderMessage._ReminderStatus.ValueType # 0
+ ACTIVE: Message.PaymentReminderMessage._ReminderStatus.ValueType # 1
+ CANCELLED_BY_CREATOR: Message.PaymentReminderMessage._ReminderStatus.ValueType # 2
+ STOPPED_BY_RECEIVER: Message.PaymentReminderMessage._ReminderStatus.ValueType # 3
+ EXPIRED: Message.PaymentReminderMessage._ReminderStatus.ValueType # 4
+ PAID: Message.PaymentReminderMessage._ReminderStatus.ValueType # 5
+
+ class ReminderStatus(_ReminderStatus, metaclass=_ReminderStatusEnumTypeWrapper): ...
+ REMINDER_STATUS_UNKNOWN: Message.PaymentReminderMessage.ReminderStatus.ValueType # 0
+ ACTIVE: Message.PaymentReminderMessage.ReminderStatus.ValueType # 1
+ CANCELLED_BY_CREATOR: Message.PaymentReminderMessage.ReminderStatus.ValueType # 2
+ STOPPED_BY_RECEIVER: Message.PaymentReminderMessage.ReminderStatus.ValueType # 3
+ EXPIRED: Message.PaymentReminderMessage.ReminderStatus.ValueType # 4
+ PAID: Message.PaymentReminderMessage.ReminderStatus.ValueType # 5
+
+ REMINDERID_FIELD_NUMBER: _builtins.int
+ INSTANCEID_FIELD_NUMBER: _builtins.int
+ DESCRIPTION_FIELD_NUMBER: _builtins.int
+ FREQUENCY_FIELD_NUMBER: _builtins.int
+ STATUS_FIELD_NUMBER: _builtins.int
+ PAYEEVPA_FIELD_NUMBER: _builtins.int
+ PAYEEJID_FIELD_NUMBER: _builtins.int
+ PAYERJID_FIELD_NUMBER: _builtins.int
+ AMOUNT_FIELD_NUMBER: _builtins.int
+ reminderId: _builtins.str
+ instanceId: _builtins.str
+ description: _builtins.str
+ frequency: Global___Message.PaymentReminderMessage.ReminderFrequency.ValueType
+ status: Global___Message.PaymentReminderMessage.ReminderStatus.ValueType
+ payeeVpa: _builtins.str
+ payeeJid: _builtins.str
+ payerJid: _builtins.str
+ @_builtins.property
+ def amount(self) -> Global___Money: ...
+ def __init__(
+ self,
+ *,
+ reminderId: _builtins.str | None = ...,
+ instanceId: _builtins.str | None = ...,
+ description: _builtins.str | None = ...,
+ frequency: Global___Message.PaymentReminderMessage.ReminderFrequency.ValueType | None = ...,
+ status: Global___Message.PaymentReminderMessage.ReminderStatus.ValueType | None = ...,
+ payeeVpa: _builtins.str | None = ...,
+ payeeJid: _builtins.str | None = ...,
+ payerJid: _builtins.str | None = ...,
+ amount: Global___Money | None = ...,
+ ) -> None: ...
+ _HasFieldArgType: _TypeAlias = _typing.Literal["amount", b"amount", "description", b"description", "frequency", b"frequency", "instanceId", b"instanceId", "payeeJid", b"payeeJid", "payeeVpa", b"payeeVpa", "payerJid", b"payerJid", "reminderId", b"reminderId", "status", b"status"] # noqa: Y015
+ def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ...
+ _ClearFieldArgType: _TypeAlias = _typing.Literal["amount", b"amount", "description", b"description", "frequency", b"frequency", "instanceId", b"instanceId", "payeeJid", b"payeeJid", "payeeVpa", b"payeeVpa", "payerJid", b"payerJid", "reminderId", b"reminderId", "status", b"status"] # noqa: Y015
+ def ClearField(self, field_name: _ClearFieldArgType) -> None: ...
+
+ @_typing.final
+ class PeerDataOperationRequestMessage(_message.Message):
+ DESCRIPTOR: _descriptor.Descriptor
+
+ @_typing.final
+ class BizBroadcastInsightsContactListRequest(_message.Message):
+ DESCRIPTOR: _descriptor.Descriptor
+
+ CAMPAIGNID_FIELD_NUMBER: _builtins.int
+ campaignId: _builtins.str
+ def __init__(
+ self,
+ *,
+ campaignId: _builtins.str | None = ...,
+ ) -> None: ...
+ _HasFieldArgType: _TypeAlias = _typing.Literal["campaignId", b"campaignId"] # noqa: Y015
+ def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ...
+ _ClearFieldArgType: _TypeAlias = _typing.Literal["campaignId", b"campaignId"] # noqa: Y015
+ def ClearField(self, field_name: _ClearFieldArgType) -> None: ...
+
+ @_typing.final
+ class BizBroadcastInsightsRefreshRequest(_message.Message):
+ DESCRIPTOR: _descriptor.Descriptor
+
+ CAMPAIGNID_FIELD_NUMBER: _builtins.int
+ campaignId: _builtins.str
+ def __init__(
+ self,
+ *,
+ campaignId: _builtins.str | None = ...,
+ ) -> None: ...
+ _HasFieldArgType: _TypeAlias = _typing.Literal["campaignId", b"campaignId"] # noqa: Y015
+ def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ...
+ _ClearFieldArgType: _TypeAlias = _typing.Literal["campaignId", b"campaignId"] # noqa: Y015
+ def ClearField(self, field_name: _ClearFieldArgType) -> None: ...
+
+ @_typing.final
+ class CompanionCanonicalUserNonceFetchRequest(_message.Message):
+ DESCRIPTOR: _descriptor.Descriptor
+
+ REGISTRATIONTRACEID_FIELD_NUMBER: _builtins.int
+ registrationTraceId: _builtins.str
+ def __init__(
+ self,
+ *,
+ registrationTraceId: _builtins.str | None = ...,
+ ) -> None: ...
+ _HasFieldArgType: _TypeAlias = _typing.Literal["registrationTraceId", b"registrationTraceId"] # noqa: Y015
+ def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ...
+ _ClearFieldArgType: _TypeAlias = _typing.Literal["registrationTraceId", b"registrationTraceId"] # noqa: Y015
+ def ClearField(self, field_name: _ClearFieldArgType) -> None: ...
+
+ @_typing.final
+ class FullHistorySyncOnDemandRequest(_message.Message):
+ DESCRIPTOR: _descriptor.Descriptor
+
+ REQUESTMETADATA_FIELD_NUMBER: _builtins.int
+ HISTORYSYNCCONFIG_FIELD_NUMBER: _builtins.int
+ FULLHISTORYSYNCONDEMANDCONFIG_FIELD_NUMBER: _builtins.int
+ @_builtins.property
+ def requestMetadata(self) -> Global___Message.FullHistorySyncOnDemandRequestMetadata: ...
+ @_builtins.property
+ def historySyncConfig(self) -> Global___DeviceProps.HistorySyncConfig: ...
+ @_builtins.property
+ def fullHistorySyncOnDemandConfig(self) -> Global___Message.FullHistorySyncOnDemandConfig: ...
+ def __init__(
+ self,
+ *,
+ requestMetadata: Global___Message.FullHistorySyncOnDemandRequestMetadata | None = ...,
+ historySyncConfig: Global___DeviceProps.HistorySyncConfig | None = ...,
+ fullHistorySyncOnDemandConfig: Global___Message.FullHistorySyncOnDemandConfig | None = ...,
+ ) -> None: ...
+ _HasFieldArgType: _TypeAlias = _typing.Literal["fullHistorySyncOnDemandConfig", b"fullHistorySyncOnDemandConfig", "historySyncConfig", b"historySyncConfig", "requestMetadata", b"requestMetadata"] # noqa: Y015
+ def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ...
+ _ClearFieldArgType: _TypeAlias = _typing.Literal["fullHistorySyncOnDemandConfig", b"fullHistorySyncOnDemandConfig", "historySyncConfig", b"historySyncConfig", "requestMetadata", b"requestMetadata"] # noqa: Y015
+ def ClearField(self, field_name: _ClearFieldArgType) -> None: ...
+
+ @_typing.final
+ class GalaxyFlowAction(_message.Message):
+ DESCRIPTOR: _descriptor.Descriptor
+
+ class _GalaxyFlowActionType:
+ ValueType = _typing.NewType("ValueType", _builtins.int)
+ V: _TypeAlias = ValueType # noqa: Y015
+
+ class _GalaxyFlowActionTypeEnumTypeWrapper(_enum_type_wrapper._EnumTypeWrapper[Message.PeerDataOperationRequestMessage.GalaxyFlowAction._GalaxyFlowActionType.ValueType], _builtins.type):
+ DESCRIPTOR: _descriptor.EnumDescriptor
+ NOTIFY_LAUNCH: Message.PeerDataOperationRequestMessage.GalaxyFlowAction._GalaxyFlowActionType.ValueType # 1
+ DOWNLOAD_RESPONSES: Message.PeerDataOperationRequestMessage.GalaxyFlowAction._GalaxyFlowActionType.ValueType # 2
+
+ class GalaxyFlowActionType(_GalaxyFlowActionType, metaclass=_GalaxyFlowActionTypeEnumTypeWrapper): ...
+ NOTIFY_LAUNCH: Message.PeerDataOperationRequestMessage.GalaxyFlowAction.GalaxyFlowActionType.ValueType # 1
+ DOWNLOAD_RESPONSES: Message.PeerDataOperationRequestMessage.GalaxyFlowAction.GalaxyFlowActionType.ValueType # 2
+
+ TYPE_FIELD_NUMBER: _builtins.int
+ FLOWID_FIELD_NUMBER: _builtins.int
+ STANZAID_FIELD_NUMBER: _builtins.int
+ GALAXYFLOWDOWNLOADREQUESTID_FIELD_NUMBER: _builtins.int
+ AGMID_FIELD_NUMBER: _builtins.int
+ type: Global___Message.PeerDataOperationRequestMessage.GalaxyFlowAction.GalaxyFlowActionType.ValueType
+ flowId: _builtins.str
+ stanzaId: _builtins.str
+ galaxyFlowDownloadRequestId: _builtins.str
+ agmId: _builtins.str
+ def __init__(
+ self,
+ *,
+ type: Global___Message.PeerDataOperationRequestMessage.GalaxyFlowAction.GalaxyFlowActionType.ValueType | None = ...,
+ flowId: _builtins.str | None = ...,
+ stanzaId: _builtins.str | None = ...,
+ galaxyFlowDownloadRequestId: _builtins.str | None = ...,
+ agmId: _builtins.str | None = ...,
+ ) -> None: ...
+ _HasFieldArgType: _TypeAlias = _typing.Literal["agmId", b"agmId", "flowId", b"flowId", "galaxyFlowDownloadRequestId", b"galaxyFlowDownloadRequestId", "stanzaId", b"stanzaId", "type", b"type"] # noqa: Y015
+ def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ...
+ _ClearFieldArgType: _TypeAlias = _typing.Literal["agmId", b"agmId", "flowId", b"flowId", "galaxyFlowDownloadRequestId", b"galaxyFlowDownloadRequestId", "stanzaId", b"stanzaId", "type", b"type"] # noqa: Y015
+ def ClearField(self, field_name: _ClearFieldArgType) -> None: ...
+
+ @_typing.final
+ class HistorySyncChunkRetryRequest(_message.Message):
+ DESCRIPTOR: _descriptor.Descriptor
+
+ SYNCTYPE_FIELD_NUMBER: _builtins.int
+ CHUNKORDER_FIELD_NUMBER: _builtins.int
+ CHUNKNOTIFICATIONID_FIELD_NUMBER: _builtins.int
+ REGENERATECHUNK_FIELD_NUMBER: _builtins.int
+ syncType: Global___Message.HistorySyncType.ValueType
+ chunkOrder: _builtins.int
+ chunkNotificationId: _builtins.str
+ regenerateChunk: _builtins.bool
+ def __init__(
+ self,
+ *,
+ syncType: Global___Message.HistorySyncType.ValueType | None = ...,
+ chunkOrder: _builtins.int | None = ...,
+ chunkNotificationId: _builtins.str | None = ...,
+ regenerateChunk: _builtins.bool | None = ...,
+ ) -> None: ...
+ _HasFieldArgType: _TypeAlias = _typing.Literal["chunkNotificationId", b"chunkNotificationId", "chunkOrder", b"chunkOrder", "regenerateChunk", b"regenerateChunk", "syncType", b"syncType"] # noqa: Y015
+ def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ...
+ _ClearFieldArgType: _TypeAlias = _typing.Literal["chunkNotificationId", b"chunkNotificationId", "chunkOrder", b"chunkOrder", "regenerateChunk", b"regenerateChunk", "syncType", b"syncType"] # noqa: Y015
+ def ClearField(self, field_name: _ClearFieldArgType) -> None: ...
+
+ @_typing.final
+ class HistorySyncOnDemandRequest(_message.Message):
+ DESCRIPTOR: _descriptor.Descriptor
+
+ CHATJID_FIELD_NUMBER: _builtins.int
+ OLDESTMSGID_FIELD_NUMBER: _builtins.int
+ OLDESTMSGFROMME_FIELD_NUMBER: _builtins.int
+ ONDEMANDMSGCOUNT_FIELD_NUMBER: _builtins.int
+ OLDESTMSGTIMESTAMPMS_FIELD_NUMBER: _builtins.int
+ ACCOUNTLID_FIELD_NUMBER: _builtins.int
+ SUPPORTINLINERESPONSE_FIELD_NUMBER: _builtins.int
+ chatJid: _builtins.str
+ oldestMsgId: _builtins.str
+ oldestMsgFromMe: _builtins.bool
+ onDemandMsgCount: _builtins.int
+ oldestMsgTimestampMs: _builtins.int
+ accountLid: _builtins.str
+ supportInlineResponse: _builtins.bool
+ def __init__(
+ self,
+ *,
+ chatJid: _builtins.str | None = ...,
+ oldestMsgId: _builtins.str | None = ...,
+ oldestMsgFromMe: _builtins.bool | None = ...,
+ onDemandMsgCount: _builtins.int | None = ...,
+ oldestMsgTimestampMs: _builtins.int | None = ...,
+ accountLid: _builtins.str | None = ...,
+ supportInlineResponse: _builtins.bool | None = ...,
+ ) -> None: ...
+ _HasFieldArgType: _TypeAlias = _typing.Literal["accountLid", b"accountLid", "chatJid", b"chatJid", "oldestMsgFromMe", b"oldestMsgFromMe", "oldestMsgId", b"oldestMsgId", "oldestMsgTimestampMs", b"oldestMsgTimestampMs", "onDemandMsgCount", b"onDemandMsgCount", "supportInlineResponse", b"supportInlineResponse"] # noqa: Y015
+ def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ...
+ _ClearFieldArgType: _TypeAlias = _typing.Literal["accountLid", b"accountLid", "chatJid", b"chatJid", "oldestMsgFromMe", b"oldestMsgFromMe", "oldestMsgId", b"oldestMsgId", "oldestMsgTimestampMs", b"oldestMsgTimestampMs", "onDemandMsgCount", b"onDemandMsgCount", "supportInlineResponse", b"supportInlineResponse"] # noqa: Y015
+ def ClearField(self, field_name: _ClearFieldArgType) -> None: ...
+
+ @_typing.final
+ class PlaceholderMessageResendRequest(_message.Message):
+ DESCRIPTOR: _descriptor.Descriptor
+
+ MESSAGEKEY_FIELD_NUMBER: _builtins.int
+ @_builtins.property
+ def messageKey(self) -> Global___MessageKey: ...
+ def __init__(
+ self,
+ *,
+ messageKey: Global___MessageKey | None = ...,
+ ) -> None: ...
+ _HasFieldArgType: _TypeAlias = _typing.Literal["messageKey", b"messageKey"] # noqa: Y015
+ def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ...
+ _ClearFieldArgType: _TypeAlias = _typing.Literal["messageKey", b"messageKey"] # noqa: Y015
+ def ClearField(self, field_name: _ClearFieldArgType) -> None: ...
+
+ @_typing.final
+ class RequestStickerReupload(_message.Message):
+ DESCRIPTOR: _descriptor.Descriptor
+
+ FILESHA256_FIELD_NUMBER: _builtins.int
+ fileSha256: _builtins.str
+ def __init__(
+ self,
+ *,
+ fileSha256: _builtins.str | None = ...,
+ ) -> None: ...
+ _HasFieldArgType: _TypeAlias = _typing.Literal["fileSha256", b"fileSha256"] # noqa: Y015
+ def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ...
+ _ClearFieldArgType: _TypeAlias = _typing.Literal["fileSha256", b"fileSha256"] # noqa: Y015
+ def ClearField(self, field_name: _ClearFieldArgType) -> None: ...
+
+ @_typing.final
+ class RequestUrlPreview(_message.Message):
+ DESCRIPTOR: _descriptor.Descriptor
+
+ URL_FIELD_NUMBER: _builtins.int
+ INCLUDEHQTHUMBNAIL_FIELD_NUMBER: _builtins.int
+ url: _builtins.str
+ includeHqThumbnail: _builtins.bool
+ def __init__(
+ self,
+ *,
+ url: _builtins.str | None = ...,
+ includeHqThumbnail: _builtins.bool | None = ...,
+ ) -> None: ...
+ _HasFieldArgType: _TypeAlias = _typing.Literal["includeHqThumbnail", b"includeHqThumbnail", "url", b"url"] # noqa: Y015
+ def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ...
+ _ClearFieldArgType: _TypeAlias = _typing.Literal["includeHqThumbnail", b"includeHqThumbnail", "url", b"url"] # noqa: Y015
+ def ClearField(self, field_name: _ClearFieldArgType) -> None: ...
+
+ @_typing.final
+ class SyncDCollectionFatalRecoveryRequest(_message.Message):
+ DESCRIPTOR: _descriptor.Descriptor
+
+ COLLECTIONNAME_FIELD_NUMBER: _builtins.int
+ TIMESTAMP_FIELD_NUMBER: _builtins.int
+ collectionName: _builtins.str
+ timestamp: _builtins.int
+ def __init__(
+ self,
+ *,
+ collectionName: _builtins.str | None = ...,
+ timestamp: _builtins.int | None = ...,
+ ) -> None: ...
+ _HasFieldArgType: _TypeAlias = _typing.Literal["collectionName", b"collectionName", "timestamp", b"timestamp"] # noqa: Y015
+ def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ...
+ _ClearFieldArgType: _TypeAlias = _typing.Literal["collectionName", b"collectionName", "timestamp", b"timestamp"] # noqa: Y015
+ def ClearField(self, field_name: _ClearFieldArgType) -> None: ...
+
+ PEERDATAOPERATIONREQUESTTYPE_FIELD_NUMBER: _builtins.int
+ REQUESTSTICKERREUPLOAD_FIELD_NUMBER: _builtins.int
+ REQUESTURLPREVIEW_FIELD_NUMBER: _builtins.int
+ HISTORYSYNCONDEMANDREQUEST_FIELD_NUMBER: _builtins.int
+ PLACEHOLDERMESSAGERESENDREQUEST_FIELD_NUMBER: _builtins.int
+ FULLHISTORYSYNCONDEMANDREQUEST_FIELD_NUMBER: _builtins.int
+ SYNCDCOLLECTIONFATALRECOVERYREQUEST_FIELD_NUMBER: _builtins.int
+ HISTORYSYNCCHUNKRETRYREQUEST_FIELD_NUMBER: _builtins.int
+ GALAXYFLOWACTION_FIELD_NUMBER: _builtins.int
+ COMPANIONCANONICALUSERNONCEFETCHREQUEST_FIELD_NUMBER: _builtins.int
+ BIZBROADCASTINSIGHTSCONTACTLISTREQUEST_FIELD_NUMBER: _builtins.int
+ BIZBROADCASTINSIGHTSREFRESHREQUEST_FIELD_NUMBER: _builtins.int
+ peerDataOperationRequestType: Global___Message.PeerDataOperationRequestType.ValueType
+ @_builtins.property
+ def requestStickerReupload(self) -> _containers.RepeatedCompositeFieldContainer[Global___Message.PeerDataOperationRequestMessage.RequestStickerReupload]: ...
+ @_builtins.property
+ def requestUrlPreview(self) -> _containers.RepeatedCompositeFieldContainer[Global___Message.PeerDataOperationRequestMessage.RequestUrlPreview]: ...
+ @_builtins.property
+ def historySyncOnDemandRequest(self) -> Global___Message.PeerDataOperationRequestMessage.HistorySyncOnDemandRequest: ...
+ @_builtins.property
+ def placeholderMessageResendRequest(self) -> _containers.RepeatedCompositeFieldContainer[Global___Message.PeerDataOperationRequestMessage.PlaceholderMessageResendRequest]: ...
+ @_builtins.property
+ def fullHistorySyncOnDemandRequest(self) -> Global___Message.PeerDataOperationRequestMessage.FullHistorySyncOnDemandRequest: ...
+ @_builtins.property
+ def syncdCollectionFatalRecoveryRequest(self) -> Global___Message.PeerDataOperationRequestMessage.SyncDCollectionFatalRecoveryRequest: ...
+ @_builtins.property
+ def historySyncChunkRetryRequest(self) -> Global___Message.PeerDataOperationRequestMessage.HistorySyncChunkRetryRequest: ...
+ @_builtins.property
+ def galaxyFlowAction(self) -> Global___Message.PeerDataOperationRequestMessage.GalaxyFlowAction: ...
+ @_builtins.property
+ def companionCanonicalUserNonceFetchRequest(self) -> Global___Message.PeerDataOperationRequestMessage.CompanionCanonicalUserNonceFetchRequest: ...
+ @_builtins.property
+ def bizBroadcastInsightsContactListRequest(self) -> Global___Message.PeerDataOperationRequestMessage.BizBroadcastInsightsContactListRequest: ...
+ @_builtins.property
+ def bizBroadcastInsightsRefreshRequest(self) -> Global___Message.PeerDataOperationRequestMessage.BizBroadcastInsightsRefreshRequest: ...
+ def __init__(
+ self,
+ *,
+ peerDataOperationRequestType: Global___Message.PeerDataOperationRequestType.ValueType | None = ...,
+ requestStickerReupload: _abc.Iterable[Global___Message.PeerDataOperationRequestMessage.RequestStickerReupload] | None = ...,
+ requestUrlPreview: _abc.Iterable[Global___Message.PeerDataOperationRequestMessage.RequestUrlPreview] | None = ...,
+ historySyncOnDemandRequest: Global___Message.PeerDataOperationRequestMessage.HistorySyncOnDemandRequest | None = ...,
+ placeholderMessageResendRequest: _abc.Iterable[Global___Message.PeerDataOperationRequestMessage.PlaceholderMessageResendRequest] | None = ...,
+ fullHistorySyncOnDemandRequest: Global___Message.PeerDataOperationRequestMessage.FullHistorySyncOnDemandRequest | None = ...,
+ syncdCollectionFatalRecoveryRequest: Global___Message.PeerDataOperationRequestMessage.SyncDCollectionFatalRecoveryRequest | None = ...,
+ historySyncChunkRetryRequest: Global___Message.PeerDataOperationRequestMessage.HistorySyncChunkRetryRequest | None = ...,
+ galaxyFlowAction: Global___Message.PeerDataOperationRequestMessage.GalaxyFlowAction | None = ...,
+ companionCanonicalUserNonceFetchRequest: Global___Message.PeerDataOperationRequestMessage.CompanionCanonicalUserNonceFetchRequest | None = ...,
+ bizBroadcastInsightsContactListRequest: Global___Message.PeerDataOperationRequestMessage.BizBroadcastInsightsContactListRequest | None = ...,
+ bizBroadcastInsightsRefreshRequest: Global___Message.PeerDataOperationRequestMessage.BizBroadcastInsightsRefreshRequest | None = ...,
+ ) -> None: ...
+ _HasFieldArgType: _TypeAlias = _typing.Literal["bizBroadcastInsightsContactListRequest", b"bizBroadcastInsightsContactListRequest", "bizBroadcastInsightsRefreshRequest", b"bizBroadcastInsightsRefreshRequest", "companionCanonicalUserNonceFetchRequest", b"companionCanonicalUserNonceFetchRequest", "fullHistorySyncOnDemandRequest", b"fullHistorySyncOnDemandRequest", "galaxyFlowAction", b"galaxyFlowAction", "historySyncChunkRetryRequest", b"historySyncChunkRetryRequest", "historySyncOnDemandRequest", b"historySyncOnDemandRequest", "peerDataOperationRequestType", b"peerDataOperationRequestType", "syncdCollectionFatalRecoveryRequest", b"syncdCollectionFatalRecoveryRequest"] # noqa: Y015
+ def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ...
+ _ClearFieldArgType: _TypeAlias = _typing.Literal["bizBroadcastInsightsContactListRequest", b"bizBroadcastInsightsContactListRequest", "bizBroadcastInsightsRefreshRequest", b"bizBroadcastInsightsRefreshRequest", "companionCanonicalUserNonceFetchRequest", b"companionCanonicalUserNonceFetchRequest", "fullHistorySyncOnDemandRequest", b"fullHistorySyncOnDemandRequest", "galaxyFlowAction", b"galaxyFlowAction", "historySyncChunkRetryRequest", b"historySyncChunkRetryRequest", "historySyncOnDemandRequest", b"historySyncOnDemandRequest", "peerDataOperationRequestType", b"peerDataOperationRequestType", "placeholderMessageResendRequest", b"placeholderMessageResendRequest", "requestStickerReupload", b"requestStickerReupload", "requestUrlPreview", b"requestUrlPreview", "syncdCollectionFatalRecoveryRequest", b"syncdCollectionFatalRecoveryRequest"] # noqa: Y015
+ def ClearField(self, field_name: _ClearFieldArgType) -> None: ...
+
+ @_typing.final
+ class PeerDataOperationRequestResponseMessage(_message.Message):
+ DESCRIPTOR: _descriptor.Descriptor
+
+ @_typing.final
+ class PeerDataOperationResult(_message.Message):
+ DESCRIPTOR: _descriptor.Descriptor
+
+ class _FullHistorySyncOnDemandResponseCode:
+ ValueType = _typing.NewType("ValueType", _builtins.int)
+ V: _TypeAlias = ValueType # noqa: Y015
+
+ class _FullHistorySyncOnDemandResponseCodeEnumTypeWrapper(_enum_type_wrapper._EnumTypeWrapper[Message.PeerDataOperationRequestResponseMessage.PeerDataOperationResult._FullHistorySyncOnDemandResponseCode.ValueType], _builtins.type):
+ DESCRIPTOR: _descriptor.EnumDescriptor
+ REQUEST_SUCCESS: Message.PeerDataOperationRequestResponseMessage.PeerDataOperationResult._FullHistorySyncOnDemandResponseCode.ValueType # 0
+ REQUEST_TIME_EXPIRED: Message.PeerDataOperationRequestResponseMessage.PeerDataOperationResult._FullHistorySyncOnDemandResponseCode.ValueType # 1
+ DECLINED_SHARING_HISTORY: Message.PeerDataOperationRequestResponseMessage.PeerDataOperationResult._FullHistorySyncOnDemandResponseCode.ValueType # 2
+ GENERIC_ERROR: Message.PeerDataOperationRequestResponseMessage.PeerDataOperationResult._FullHistorySyncOnDemandResponseCode.ValueType # 3
+ ERROR_REQUEST_ON_NON_SMB_PRIMARY: Message.PeerDataOperationRequestResponseMessage.PeerDataOperationResult._FullHistorySyncOnDemandResponseCode.ValueType # 4
+ ERROR_HOSTED_DEVICE_NOT_CONNECTED: Message.PeerDataOperationRequestResponseMessage.PeerDataOperationResult._FullHistorySyncOnDemandResponseCode.ValueType # 5
+ ERROR_HOSTED_DEVICE_LOGIN_TIME_NOT_SET: Message.PeerDataOperationRequestResponseMessage.PeerDataOperationResult._FullHistorySyncOnDemandResponseCode.ValueType # 6
+ ERROR_MULTI_PROVIDER_NOT_CONFIGURED: Message.PeerDataOperationRequestResponseMessage.PeerDataOperationResult._FullHistorySyncOnDemandResponseCode.ValueType # 7
+
+ class FullHistorySyncOnDemandResponseCode(_FullHistorySyncOnDemandResponseCode, metaclass=_FullHistorySyncOnDemandResponseCodeEnumTypeWrapper): ...
+ REQUEST_SUCCESS: Message.PeerDataOperationRequestResponseMessage.PeerDataOperationResult.FullHistorySyncOnDemandResponseCode.ValueType # 0
+ REQUEST_TIME_EXPIRED: Message.PeerDataOperationRequestResponseMessage.PeerDataOperationResult.FullHistorySyncOnDemandResponseCode.ValueType # 1
+ DECLINED_SHARING_HISTORY: Message.PeerDataOperationRequestResponseMessage.PeerDataOperationResult.FullHistorySyncOnDemandResponseCode.ValueType # 2
+ GENERIC_ERROR: Message.PeerDataOperationRequestResponseMessage.PeerDataOperationResult.FullHistorySyncOnDemandResponseCode.ValueType # 3
+ ERROR_REQUEST_ON_NON_SMB_PRIMARY: Message.PeerDataOperationRequestResponseMessage.PeerDataOperationResult.FullHistorySyncOnDemandResponseCode.ValueType # 4
+ ERROR_HOSTED_DEVICE_NOT_CONNECTED: Message.PeerDataOperationRequestResponseMessage.PeerDataOperationResult.FullHistorySyncOnDemandResponseCode.ValueType # 5
+ ERROR_HOSTED_DEVICE_LOGIN_TIME_NOT_SET: Message.PeerDataOperationRequestResponseMessage.PeerDataOperationResult.FullHistorySyncOnDemandResponseCode.ValueType # 6
+ ERROR_MULTI_PROVIDER_NOT_CONFIGURED: Message.PeerDataOperationRequestResponseMessage.PeerDataOperationResult.FullHistorySyncOnDemandResponseCode.ValueType # 7
+
+ class _HistorySyncChunkRetryResponseCode:
+ ValueType = _typing.NewType("ValueType", _builtins.int)
+ V: _TypeAlias = ValueType # noqa: Y015
+
+ class _HistorySyncChunkRetryResponseCodeEnumTypeWrapper(_enum_type_wrapper._EnumTypeWrapper[Message.PeerDataOperationRequestResponseMessage.PeerDataOperationResult._HistorySyncChunkRetryResponseCode.ValueType], _builtins.type):
+ DESCRIPTOR: _descriptor.EnumDescriptor
+ GENERATION_ERROR: Message.PeerDataOperationRequestResponseMessage.PeerDataOperationResult._HistorySyncChunkRetryResponseCode.ValueType # 1
+ CHUNK_CONSUMED: Message.PeerDataOperationRequestResponseMessage.PeerDataOperationResult._HistorySyncChunkRetryResponseCode.ValueType # 2
+ TIMEOUT: Message.PeerDataOperationRequestResponseMessage.PeerDataOperationResult._HistorySyncChunkRetryResponseCode.ValueType # 3
+ SESSION_EXHAUSTED: Message.PeerDataOperationRequestResponseMessage.PeerDataOperationResult._HistorySyncChunkRetryResponseCode.ValueType # 4
+ CHUNK_EXHAUSTED: Message.PeerDataOperationRequestResponseMessage.PeerDataOperationResult._HistorySyncChunkRetryResponseCode.ValueType # 5
+ DUPLICATED_REQUEST: Message.PeerDataOperationRequestResponseMessage.PeerDataOperationResult._HistorySyncChunkRetryResponseCode.ValueType # 6
+
+ class HistorySyncChunkRetryResponseCode(_HistorySyncChunkRetryResponseCode, metaclass=_HistorySyncChunkRetryResponseCodeEnumTypeWrapper): ...
+ GENERATION_ERROR: Message.PeerDataOperationRequestResponseMessage.PeerDataOperationResult.HistorySyncChunkRetryResponseCode.ValueType # 1
+ CHUNK_CONSUMED: Message.PeerDataOperationRequestResponseMessage.PeerDataOperationResult.HistorySyncChunkRetryResponseCode.ValueType # 2
+ TIMEOUT: Message.PeerDataOperationRequestResponseMessage.PeerDataOperationResult.HistorySyncChunkRetryResponseCode.ValueType # 3
+ SESSION_EXHAUSTED: Message.PeerDataOperationRequestResponseMessage.PeerDataOperationResult.HistorySyncChunkRetryResponseCode.ValueType # 4
+ CHUNK_EXHAUSTED: Message.PeerDataOperationRequestResponseMessage.PeerDataOperationResult.HistorySyncChunkRetryResponseCode.ValueType # 5
+ DUPLICATED_REQUEST: Message.PeerDataOperationRequestResponseMessage.PeerDataOperationResult.HistorySyncChunkRetryResponseCode.ValueType # 6
+
+ @_typing.final
+ class BizBroadcastInsightsContactListResponse(_message.Message):
+ DESCRIPTOR: _descriptor.Descriptor
+
+ CAMPAIGNID_FIELD_NUMBER: _builtins.int
+ TIMESTAMPMS_FIELD_NUMBER: _builtins.int
+ CONTACTS_FIELD_NUMBER: _builtins.int
+ campaignId: _builtins.str
+ timestampMs: _builtins.int
+ @_builtins.property
+ def contacts(self) -> _containers.RepeatedCompositeFieldContainer[Global___Message.PeerDataOperationRequestResponseMessage.PeerDataOperationResult.BizBroadcastInsightsContactState]: ...
+ def __init__(
+ self,
+ *,
+ campaignId: _builtins.str | None = ...,
+ timestampMs: _builtins.int | None = ...,
+ contacts: _abc.Iterable[Global___Message.PeerDataOperationRequestResponseMessage.PeerDataOperationResult.BizBroadcastInsightsContactState] | None = ...,
+ ) -> None: ...
+ _HasFieldArgType: _TypeAlias = _typing.Literal["campaignId", b"campaignId", "timestampMs", b"timestampMs"] # noqa: Y015
+ def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ...
+ _ClearFieldArgType: _TypeAlias = _typing.Literal["campaignId", b"campaignId", "contacts", b"contacts", "timestampMs", b"timestampMs"] # noqa: Y015
+ def ClearField(self, field_name: _ClearFieldArgType) -> None: ...
+
+ @_typing.final
+ class BizBroadcastInsightsContactState(_message.Message):
+ DESCRIPTOR: _descriptor.Descriptor
+
+ CONTACTJID_FIELD_NUMBER: _builtins.int
+ STATE_FIELD_NUMBER: _builtins.int
+ contactJid: _builtins.str
+ state: Global___Message.InsightDeliveryState.ValueType
+ def __init__(
+ self,
+ *,
+ contactJid: _builtins.str | None = ...,
+ state: Global___Message.InsightDeliveryState.ValueType | None = ...,
+ ) -> None: ...
+ _HasFieldArgType: _TypeAlias = _typing.Literal["contactJid", b"contactJid", "state", b"state"] # noqa: Y015
+ def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ...
+ _ClearFieldArgType: _TypeAlias = _typing.Literal["contactJid", b"contactJid", "state", b"state"] # noqa: Y015
+ def ClearField(self, field_name: _ClearFieldArgType) -> None: ...
+
+ @_typing.final
+ class CompanionCanonicalUserNonceFetchResponse(_message.Message):
+ DESCRIPTOR: _descriptor.Descriptor
+
+ NONCE_FIELD_NUMBER: _builtins.int
+ WAFBID_FIELD_NUMBER: _builtins.int
+ FORCEREFRESH_FIELD_NUMBER: _builtins.int
+ nonce: _builtins.str
+ waFbid: _builtins.str
+ forceRefresh: _builtins.bool
+ def __init__(
+ self,
+ *,
+ nonce: _builtins.str | None = ...,
+ waFbid: _builtins.str | None = ...,
+ forceRefresh: _builtins.bool | None = ...,
+ ) -> None: ...
+ _HasFieldArgType: _TypeAlias = _typing.Literal["forceRefresh", b"forceRefresh", "nonce", b"nonce", "waFbid", b"waFbid"] # noqa: Y015
+ def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ...
+ _ClearFieldArgType: _TypeAlias = _typing.Literal["forceRefresh", b"forceRefresh", "nonce", b"nonce", "waFbid", b"waFbid"] # noqa: Y015
+ def ClearField(self, field_name: _ClearFieldArgType) -> None: ...
+
+ @_typing.final
+ class CompanionMetaNonceFetchResponse(_message.Message):
+ DESCRIPTOR: _descriptor.Descriptor
+
+ NONCE_FIELD_NUMBER: _builtins.int
+ nonce: _builtins.str
+ def __init__(
+ self,
+ *,
+ nonce: _builtins.str | None = ...,
+ ) -> None: ...
+ _HasFieldArgType: _TypeAlias = _typing.Literal["nonce", b"nonce"] # noqa: Y015
+ def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ...
+ _ClearFieldArgType: _TypeAlias = _typing.Literal["nonce", b"nonce"] # noqa: Y015
+ def ClearField(self, field_name: _ClearFieldArgType) -> None: ...
+
+ @_typing.final
+ class ContactRefreshResponse(_message.Message):
+ DESCRIPTOR: _descriptor.Descriptor
+
+ COVEREDREQUESTIDS_FIELD_NUMBER: _builtins.int
+ COLLECTIONVERSION_FIELD_NUMBER: _builtins.int
+ PRIMARYDURATIONMS_FIELD_NUMBER: _builtins.int
+ UNIQUECONTACTCOUNT_FIELD_NUMBER: _builtins.int
+ collectionVersion: _builtins.int
+ primaryDurationMs: _builtins.int
+ uniqueContactCount: _builtins.int
+ @_builtins.property
+ def coveredRequestIds(self) -> _containers.RepeatedScalarFieldContainer[_builtins.str]: ...
+ def __init__(
+ self,
+ *,
+ coveredRequestIds: _abc.Iterable[_builtins.str] | None = ...,
+ collectionVersion: _builtins.int | None = ...,
+ primaryDurationMs: _builtins.int | None = ...,
+ uniqueContactCount: _builtins.int | None = ...,
+ ) -> None: ...
+ _HasFieldArgType: _TypeAlias = _typing.Literal["collectionVersion", b"collectionVersion", "primaryDurationMs", b"primaryDurationMs", "uniqueContactCount", b"uniqueContactCount"] # noqa: Y015
+ def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ...
+ _ClearFieldArgType: _TypeAlias = _typing.Literal["collectionVersion", b"collectionVersion", "coveredRequestIds", b"coveredRequestIds", "primaryDurationMs", b"primaryDurationMs", "uniqueContactCount", b"uniqueContactCount"] # noqa: Y015
+ def ClearField(self, field_name: _ClearFieldArgType) -> None: ...
+
+ @_typing.final
+ class FlowResponsesCsvBundle(_message.Message):
+ DESCRIPTOR: _descriptor.Descriptor
+
+ FLOWID_FIELD_NUMBER: _builtins.int
+ GALAXYFLOWDOWNLOADREQUESTID_FIELD_NUMBER: _builtins.int
+ FILENAME_FIELD_NUMBER: _builtins.int
+ MIMETYPE_FIELD_NUMBER: _builtins.int
+ FILESHA256_FIELD_NUMBER: _builtins.int
+ MEDIAKEY_FIELD_NUMBER: _builtins.int
+ FILEENCSHA256_FIELD_NUMBER: _builtins.int
+ DIRECTPATH_FIELD_NUMBER: _builtins.int
+ MEDIAKEYTIMESTAMP_FIELD_NUMBER: _builtins.int
+ FILELENGTH_FIELD_NUMBER: _builtins.int
+ flowId: _builtins.str
+ galaxyFlowDownloadRequestId: _builtins.str
+ fileName: _builtins.str
+ mimetype: _builtins.str
+ fileSha256: _builtins.bytes
+ mediaKey: _builtins.bytes
+ fileEncSha256: _builtins.bytes
+ directPath: _builtins.str
+ mediaKeyTimestamp: _builtins.int
+ fileLength: _builtins.int
+ def __init__(
+ self,
+ *,
+ flowId: _builtins.str | None = ...,
+ galaxyFlowDownloadRequestId: _builtins.str | None = ...,
+ fileName: _builtins.str | None = ...,
+ mimetype: _builtins.str | None = ...,
+ fileSha256: _builtins.bytes | None = ...,
+ mediaKey: _builtins.bytes | None = ...,
+ fileEncSha256: _builtins.bytes | None = ...,
+ directPath: _builtins.str | None = ...,
+ mediaKeyTimestamp: _builtins.int | None = ...,
+ fileLength: _builtins.int | None = ...,
+ ) -> None: ...
+ _HasFieldArgType: _TypeAlias = _typing.Literal["directPath", b"directPath", "fileEncSha256", b"fileEncSha256", "fileLength", b"fileLength", "fileName", b"fileName", "fileSha256", b"fileSha256", "flowId", b"flowId", "galaxyFlowDownloadRequestId", b"galaxyFlowDownloadRequestId", "mediaKey", b"mediaKey", "mediaKeyTimestamp", b"mediaKeyTimestamp", "mimetype", b"mimetype"] # noqa: Y015
+ def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ...
+ _ClearFieldArgType: _TypeAlias = _typing.Literal["directPath", b"directPath", "fileEncSha256", b"fileEncSha256", "fileLength", b"fileLength", "fileName", b"fileName", "fileSha256", b"fileSha256", "flowId", b"flowId", "galaxyFlowDownloadRequestId", b"galaxyFlowDownloadRequestId", "mediaKey", b"mediaKey", "mediaKeyTimestamp", b"mediaKeyTimestamp", "mimetype", b"mimetype"] # noqa: Y015
+ def ClearField(self, field_name: _ClearFieldArgType) -> None: ...
+
+ @_typing.final
+ class FullHistorySyncOnDemandRequestResponse(_message.Message):
+ DESCRIPTOR: _descriptor.Descriptor
+
+ REQUESTMETADATA_FIELD_NUMBER: _builtins.int
+ RESPONSECODE_FIELD_NUMBER: _builtins.int
+ responseCode: Global___Message.PeerDataOperationRequestResponseMessage.PeerDataOperationResult.FullHistorySyncOnDemandResponseCode.ValueType
+ @_builtins.property
+ def requestMetadata(self) -> Global___Message.FullHistorySyncOnDemandRequestMetadata: ...
+ def __init__(
+ self,
+ *,
+ requestMetadata: Global___Message.FullHistorySyncOnDemandRequestMetadata | None = ...,
+ responseCode: Global___Message.PeerDataOperationRequestResponseMessage.PeerDataOperationResult.FullHistorySyncOnDemandResponseCode.ValueType | None = ...,
+ ) -> None: ...
+ _HasFieldArgType: _TypeAlias = _typing.Literal["requestMetadata", b"requestMetadata", "responseCode", b"responseCode"] # noqa: Y015
+ def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ...
+ _ClearFieldArgType: _TypeAlias = _typing.Literal["requestMetadata", b"requestMetadata", "responseCode", b"responseCode"] # noqa: Y015
+ def ClearField(self, field_name: _ClearFieldArgType) -> None: ...
+
+ @_typing.final
+ class HistorySyncChunkRetryResponse(_message.Message):
+ DESCRIPTOR: _descriptor.Descriptor
+
+ SYNCTYPE_FIELD_NUMBER: _builtins.int
+ CHUNKORDER_FIELD_NUMBER: _builtins.int
+ REQUESTID_FIELD_NUMBER: _builtins.int
+ RESPONSECODE_FIELD_NUMBER: _builtins.int
+ CANRECOVER_FIELD_NUMBER: _builtins.int
+ syncType: Global___Message.HistorySyncType.ValueType
+ chunkOrder: _builtins.int
+ requestId: _builtins.str
+ responseCode: Global___Message.PeerDataOperationRequestResponseMessage.PeerDataOperationResult.HistorySyncChunkRetryResponseCode.ValueType
+ canRecover: _builtins.bool
+ def __init__(
+ self,
+ *,
+ syncType: Global___Message.HistorySyncType.ValueType | None = ...,
+ chunkOrder: _builtins.int | None = ...,
+ requestId: _builtins.str | None = ...,
+ responseCode: Global___Message.PeerDataOperationRequestResponseMessage.PeerDataOperationResult.HistorySyncChunkRetryResponseCode.ValueType | None = ...,
+ canRecover: _builtins.bool | None = ...,
+ ) -> None: ...
+ _HasFieldArgType: _TypeAlias = _typing.Literal["canRecover", b"canRecover", "chunkOrder", b"chunkOrder", "requestId", b"requestId", "responseCode", b"responseCode", "syncType", b"syncType"] # noqa: Y015
+ def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ...
+ _ClearFieldArgType: _TypeAlias = _typing.Literal["canRecover", b"canRecover", "chunkOrder", b"chunkOrder", "requestId", b"requestId", "responseCode", b"responseCode", "syncType", b"syncType"] # noqa: Y015
+ def ClearField(self, field_name: _ClearFieldArgType) -> None: ...
+
+ @_typing.final
+ class LinkPreviewResponse(_message.Message):
+ DESCRIPTOR: _descriptor.Descriptor
+
+ @_typing.final
+ class LinkPreviewHighQualityThumbnail(_message.Message):
+ DESCRIPTOR: _descriptor.Descriptor
+
+ DIRECTPATH_FIELD_NUMBER: _builtins.int
+ THUMBHASH_FIELD_NUMBER: _builtins.int
+ ENCTHUMBHASH_FIELD_NUMBER: _builtins.int
+ MEDIAKEY_FIELD_NUMBER: _builtins.int
+ MEDIAKEYTIMESTAMPMS_FIELD_NUMBER: _builtins.int
+ THUMBWIDTH_FIELD_NUMBER: _builtins.int
+ THUMBHEIGHT_FIELD_NUMBER: _builtins.int
+ directPath: _builtins.str
+ thumbHash: _builtins.str
+ encThumbHash: _builtins.str
+ mediaKey: _builtins.bytes
+ mediaKeyTimestampMs: _builtins.int
+ thumbWidth: _builtins.int
+ thumbHeight: _builtins.int
+ def __init__(
+ self,
+ *,
+ directPath: _builtins.str | None = ...,
+ thumbHash: _builtins.str | None = ...,
+ encThumbHash: _builtins.str | None = ...,
+ mediaKey: _builtins.bytes | None = ...,
+ mediaKeyTimestampMs: _builtins.int | None = ...,
+ thumbWidth: _builtins.int | None = ...,
+ thumbHeight: _builtins.int | None = ...,
+ ) -> None: ...
+ _HasFieldArgType: _TypeAlias = _typing.Literal["directPath", b"directPath", "encThumbHash", b"encThumbHash", "mediaKey", b"mediaKey", "mediaKeyTimestampMs", b"mediaKeyTimestampMs", "thumbHash", b"thumbHash", "thumbHeight", b"thumbHeight", "thumbWidth", b"thumbWidth"] # noqa: Y015
+ def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ...
+ _ClearFieldArgType: _TypeAlias = _typing.Literal["directPath", b"directPath", "encThumbHash", b"encThumbHash", "mediaKey", b"mediaKey", "mediaKeyTimestampMs", b"mediaKeyTimestampMs", "thumbHash", b"thumbHash", "thumbHeight", b"thumbHeight", "thumbWidth", b"thumbWidth"] # noqa: Y015
+ def ClearField(self, field_name: _ClearFieldArgType) -> None: ...
+
+ @_typing.final
+ class PaymentLinkPreviewMetadata(_message.Message):
+ DESCRIPTOR: _descriptor.Descriptor
+
+ ISBUSINESSVERIFIED_FIELD_NUMBER: _builtins.int
+ PROVIDERNAME_FIELD_NUMBER: _builtins.int
+ AMOUNT_FIELD_NUMBER: _builtins.int
+ OFFSET_FIELD_NUMBER: _builtins.int
+ CURRENCY_FIELD_NUMBER: _builtins.int
+ isBusinessVerified: _builtins.bool
+ providerName: _builtins.str
+ amount: _builtins.str
+ offset: _builtins.str
+ currency: _builtins.str
+ def __init__(
+ self,
+ *,
+ isBusinessVerified: _builtins.bool | None = ...,
+ providerName: _builtins.str | None = ...,
+ amount: _builtins.str | None = ...,
+ offset: _builtins.str | None = ...,
+ currency: _builtins.str | None = ...,
+ ) -> None: ...
+ _HasFieldArgType: _TypeAlias = _typing.Literal["amount", b"amount", "currency", b"currency", "isBusinessVerified", b"isBusinessVerified", "offset", b"offset", "providerName", b"providerName"] # noqa: Y015
+ def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ...
+ _ClearFieldArgType: _TypeAlias = _typing.Literal["amount", b"amount", "currency", b"currency", "isBusinessVerified", b"isBusinessVerified", "offset", b"offset", "providerName", b"providerName"] # noqa: Y015
+ def ClearField(self, field_name: _ClearFieldArgType) -> None: ...
+
+ URL_FIELD_NUMBER: _builtins.int
+ TITLE_FIELD_NUMBER: _builtins.int
+ DESCRIPTION_FIELD_NUMBER: _builtins.int
+ THUMBDATA_FIELD_NUMBER: _builtins.int
+ MATCHTEXT_FIELD_NUMBER: _builtins.int
+ PREVIEWTYPE_FIELD_NUMBER: _builtins.int
+ HQTHUMBNAIL_FIELD_NUMBER: _builtins.int
+ PREVIEWMETADATA_FIELD_NUMBER: _builtins.int
+ url: _builtins.str
+ title: _builtins.str
+ description: _builtins.str
+ thumbData: _builtins.bytes
+ matchText: _builtins.str
+ previewType: _builtins.str
+ @_builtins.property
+ def hqThumbnail(self) -> Global___Message.PeerDataOperationRequestResponseMessage.PeerDataOperationResult.LinkPreviewResponse.LinkPreviewHighQualityThumbnail: ...
+ @_builtins.property
+ def previewMetadata(self) -> Global___Message.PeerDataOperationRequestResponseMessage.PeerDataOperationResult.LinkPreviewResponse.PaymentLinkPreviewMetadata: ...
+ def __init__(
+ self,
+ *,
+ url: _builtins.str | None = ...,
+ title: _builtins.str | None = ...,
+ description: _builtins.str | None = ...,
+ thumbData: _builtins.bytes | None = ...,
+ matchText: _builtins.str | None = ...,
+ previewType: _builtins.str | None = ...,
+ hqThumbnail: Global___Message.PeerDataOperationRequestResponseMessage.PeerDataOperationResult.LinkPreviewResponse.LinkPreviewHighQualityThumbnail | None = ...,
+ previewMetadata: Global___Message.PeerDataOperationRequestResponseMessage.PeerDataOperationResult.LinkPreviewResponse.PaymentLinkPreviewMetadata | None = ...,
+ ) -> None: ...
+ _HasFieldArgType: _TypeAlias = _typing.Literal["description", b"description", "hqThumbnail", b"hqThumbnail", "matchText", b"matchText", "previewMetadata", b"previewMetadata", "previewType", b"previewType", "thumbData", b"thumbData", "title", b"title", "url", b"url"] # noqa: Y015
+ def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ...
+ _ClearFieldArgType: _TypeAlias = _typing.Literal["description", b"description", "hqThumbnail", b"hqThumbnail", "matchText", b"matchText", "previewMetadata", b"previewMetadata", "previewType", b"previewType", "thumbData", b"thumbData", "title", b"title", "url", b"url"] # noqa: Y015
+ def ClearField(self, field_name: _ClearFieldArgType) -> None: ...
+
+ @_typing.final
+ class PlaceholderMessageResendResponse(_message.Message):
+ DESCRIPTOR: _descriptor.Descriptor
+
+ WEBMESSAGEINFOBYTES_FIELD_NUMBER: _builtins.int
+ webMessageInfoBytes: _builtins.bytes
+ def __init__(
+ self,
+ *,
+ webMessageInfoBytes: _builtins.bytes | None = ...,
+ ) -> None: ...
+ _HasFieldArgType: _TypeAlias = _typing.Literal["webMessageInfoBytes", b"webMessageInfoBytes"] # noqa: Y015
+ def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ...
+ _ClearFieldArgType: _TypeAlias = _typing.Literal["webMessageInfoBytes", b"webMessageInfoBytes"] # noqa: Y015
+ def ClearField(self, field_name: _ClearFieldArgType) -> None: ...
+
+ @_typing.final
+ class SyncDSnapshotFatalRecoveryResponse(_message.Message):
+ DESCRIPTOR: _descriptor.Descriptor
+
+ COLLECTIONSNAPSHOT_FIELD_NUMBER: _builtins.int
+ ISCOMPRESSED_FIELD_NUMBER: _builtins.int
+ collectionSnapshot: _builtins.bytes
+ isCompressed: _builtins.bool
+ def __init__(
+ self,
+ *,
+ collectionSnapshot: _builtins.bytes | None = ...,
+ isCompressed: _builtins.bool | None = ...,
+ ) -> None: ...
+ _HasFieldArgType: _TypeAlias = _typing.Literal["collectionSnapshot", b"collectionSnapshot", "isCompressed", b"isCompressed"] # noqa: Y015
+ def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ...
+ _ClearFieldArgType: _TypeAlias = _typing.Literal["collectionSnapshot", b"collectionSnapshot", "isCompressed", b"isCompressed"] # noqa: Y015
+ def ClearField(self, field_name: _ClearFieldArgType) -> None: ...
+
+ @_typing.final
+ class WaffleNonceFetchResponse(_message.Message):
+ DESCRIPTOR: _descriptor.Descriptor
+
+ NONCE_FIELD_NUMBER: _builtins.int
+ WAENTFBID_FIELD_NUMBER: _builtins.int
+ nonce: _builtins.str
+ waEntFbid: _builtins.str
+ def __init__(
+ self,
+ *,
+ nonce: _builtins.str | None = ...,
+ waEntFbid: _builtins.str | None = ...,
+ ) -> None: ...
+ _HasFieldArgType: _TypeAlias = _typing.Literal["nonce", b"nonce", "waEntFbid", b"waEntFbid"] # noqa: Y015
+ def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ...
+ _ClearFieldArgType: _TypeAlias = _typing.Literal["nonce", b"nonce", "waEntFbid", b"waEntFbid"] # noqa: Y015
+ def ClearField(self, field_name: _ClearFieldArgType) -> None: ...
+
+ MEDIAUPLOADRESULT_FIELD_NUMBER: _builtins.int
+ STICKERMESSAGE_FIELD_NUMBER: _builtins.int
+ LINKPREVIEWRESPONSE_FIELD_NUMBER: _builtins.int
+ PLACEHOLDERMESSAGERESENDRESPONSE_FIELD_NUMBER: _builtins.int
+ WAFFLENONCEFETCHREQUESTRESPONSE_FIELD_NUMBER: _builtins.int
+ FULLHISTORYSYNCONDEMANDREQUESTRESPONSE_FIELD_NUMBER: _builtins.int
+ COMPANIONMETANONCEFETCHREQUESTRESPONSE_FIELD_NUMBER: _builtins.int
+ SYNCDSNAPSHOTFATALRECOVERYRESPONSE_FIELD_NUMBER: _builtins.int
+ COMPANIONCANONICALUSERNONCEFETCHREQUESTRESPONSE_FIELD_NUMBER: _builtins.int
+ HISTORYSYNCCHUNKRETRYRESPONSE_FIELD_NUMBER: _builtins.int
+ FLOWRESPONSESCSVBUNDLE_FIELD_NUMBER: _builtins.int
+ BIZBROADCASTINSIGHTSCONTACTLISTRESPONSE_FIELD_NUMBER: _builtins.int
+ CONTACTREFRESHRESPONSE_FIELD_NUMBER: _builtins.int
+ mediaUploadResult: Global___MediaRetryNotification.ResultType.ValueType
+ @_builtins.property
+ def stickerMessage(self) -> Global___Message.StickerMessage: ...
+ @_builtins.property
+ def linkPreviewResponse(self) -> Global___Message.PeerDataOperationRequestResponseMessage.PeerDataOperationResult.LinkPreviewResponse: ...
+ @_builtins.property
+ def placeholderMessageResendResponse(self) -> Global___Message.PeerDataOperationRequestResponseMessage.PeerDataOperationResult.PlaceholderMessageResendResponse: ...
+ @_builtins.property
+ def waffleNonceFetchRequestResponse(self) -> Global___Message.PeerDataOperationRequestResponseMessage.PeerDataOperationResult.WaffleNonceFetchResponse: ...
+ @_builtins.property
+ def fullHistorySyncOnDemandRequestResponse(self) -> Global___Message.PeerDataOperationRequestResponseMessage.PeerDataOperationResult.FullHistorySyncOnDemandRequestResponse: ...
+ @_builtins.property
+ def companionMetaNonceFetchRequestResponse(self) -> Global___Message.PeerDataOperationRequestResponseMessage.PeerDataOperationResult.CompanionMetaNonceFetchResponse: ...
+ @_builtins.property
+ def syncdSnapshotFatalRecoveryResponse(self) -> Global___Message.PeerDataOperationRequestResponseMessage.PeerDataOperationResult.SyncDSnapshotFatalRecoveryResponse: ...
+ @_builtins.property
+ def companionCanonicalUserNonceFetchRequestResponse(self) -> Global___Message.PeerDataOperationRequestResponseMessage.PeerDataOperationResult.CompanionCanonicalUserNonceFetchResponse: ...
+ @_builtins.property
+ def historySyncChunkRetryResponse(self) -> Global___Message.PeerDataOperationRequestResponseMessage.PeerDataOperationResult.HistorySyncChunkRetryResponse: ...
+ @_builtins.property
+ def flowResponsesCsvBundle(self) -> Global___Message.PeerDataOperationRequestResponseMessage.PeerDataOperationResult.FlowResponsesCsvBundle: ...
+ @_builtins.property
+ def bizBroadcastInsightsContactListResponse(self) -> Global___Message.PeerDataOperationRequestResponseMessage.PeerDataOperationResult.BizBroadcastInsightsContactListResponse: ...
+ @_builtins.property
+ def contactRefreshResponse(self) -> Global___Message.PeerDataOperationRequestResponseMessage.PeerDataOperationResult.ContactRefreshResponse: ...
+ def __init__(
+ self,
+ *,
+ mediaUploadResult: Global___MediaRetryNotification.ResultType.ValueType | None = ...,
+ stickerMessage: Global___Message.StickerMessage | None = ...,
+ linkPreviewResponse: Global___Message.PeerDataOperationRequestResponseMessage.PeerDataOperationResult.LinkPreviewResponse | None = ...,
+ placeholderMessageResendResponse: Global___Message.PeerDataOperationRequestResponseMessage.PeerDataOperationResult.PlaceholderMessageResendResponse | None = ...,
+ waffleNonceFetchRequestResponse: Global___Message.PeerDataOperationRequestResponseMessage.PeerDataOperationResult.WaffleNonceFetchResponse | None = ...,
+ fullHistorySyncOnDemandRequestResponse: Global___Message.PeerDataOperationRequestResponseMessage.PeerDataOperationResult.FullHistorySyncOnDemandRequestResponse | None = ...,
+ companionMetaNonceFetchRequestResponse: Global___Message.PeerDataOperationRequestResponseMessage.PeerDataOperationResult.CompanionMetaNonceFetchResponse | None = ...,
+ syncdSnapshotFatalRecoveryResponse: Global___Message.PeerDataOperationRequestResponseMessage.PeerDataOperationResult.SyncDSnapshotFatalRecoveryResponse | None = ...,
+ companionCanonicalUserNonceFetchRequestResponse: Global___Message.PeerDataOperationRequestResponseMessage.PeerDataOperationResult.CompanionCanonicalUserNonceFetchResponse | None = ...,
+ historySyncChunkRetryResponse: Global___Message.PeerDataOperationRequestResponseMessage.PeerDataOperationResult.HistorySyncChunkRetryResponse | None = ...,
+ flowResponsesCsvBundle: Global___Message.PeerDataOperationRequestResponseMessage.PeerDataOperationResult.FlowResponsesCsvBundle | None = ...,
+ bizBroadcastInsightsContactListResponse: Global___Message.PeerDataOperationRequestResponseMessage.PeerDataOperationResult.BizBroadcastInsightsContactListResponse | None = ...,
+ contactRefreshResponse: Global___Message.PeerDataOperationRequestResponseMessage.PeerDataOperationResult.ContactRefreshResponse | None = ...,
+ ) -> None: ...
+ _HasFieldArgType: _TypeAlias = _typing.Literal["bizBroadcastInsightsContactListResponse", b"bizBroadcastInsightsContactListResponse", "companionCanonicalUserNonceFetchRequestResponse", b"companionCanonicalUserNonceFetchRequestResponse", "companionMetaNonceFetchRequestResponse", b"companionMetaNonceFetchRequestResponse", "contactRefreshResponse", b"contactRefreshResponse", "flowResponsesCsvBundle", b"flowResponsesCsvBundle", "fullHistorySyncOnDemandRequestResponse", b"fullHistorySyncOnDemandRequestResponse", "historySyncChunkRetryResponse", b"historySyncChunkRetryResponse", "linkPreviewResponse", b"linkPreviewResponse", "mediaUploadResult", b"mediaUploadResult", "placeholderMessageResendResponse", b"placeholderMessageResendResponse", "stickerMessage", b"stickerMessage", "syncdSnapshotFatalRecoveryResponse", b"syncdSnapshotFatalRecoveryResponse", "waffleNonceFetchRequestResponse", b"waffleNonceFetchRequestResponse"] # noqa: Y015
+ def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ...
+ _ClearFieldArgType: _TypeAlias = _typing.Literal["bizBroadcastInsightsContactListResponse", b"bizBroadcastInsightsContactListResponse", "companionCanonicalUserNonceFetchRequestResponse", b"companionCanonicalUserNonceFetchRequestResponse", "companionMetaNonceFetchRequestResponse", b"companionMetaNonceFetchRequestResponse", "contactRefreshResponse", b"contactRefreshResponse", "flowResponsesCsvBundle", b"flowResponsesCsvBundle", "fullHistorySyncOnDemandRequestResponse", b"fullHistorySyncOnDemandRequestResponse", "historySyncChunkRetryResponse", b"historySyncChunkRetryResponse", "linkPreviewResponse", b"linkPreviewResponse", "mediaUploadResult", b"mediaUploadResult", "placeholderMessageResendResponse", b"placeholderMessageResendResponse", "stickerMessage", b"stickerMessage", "syncdSnapshotFatalRecoveryResponse", b"syncdSnapshotFatalRecoveryResponse", "waffleNonceFetchRequestResponse", b"waffleNonceFetchRequestResponse"] # noqa: Y015
+ def ClearField(self, field_name: _ClearFieldArgType) -> None: ...
+
+ PEERDATAOPERATIONREQUESTTYPE_FIELD_NUMBER: _builtins.int
+ STANZAID_FIELD_NUMBER: _builtins.int
+ PEERDATAOPERATIONRESULT_FIELD_NUMBER: _builtins.int
+ peerDataOperationRequestType: Global___Message.PeerDataOperationRequestType.ValueType
+ stanzaId: _builtins.str
+ @_builtins.property
+ def peerDataOperationResult(self) -> _containers.RepeatedCompositeFieldContainer[Global___Message.PeerDataOperationRequestResponseMessage.PeerDataOperationResult]: ...
+ def __init__(
+ self,
+ *,
+ peerDataOperationRequestType: Global___Message.PeerDataOperationRequestType.ValueType | None = ...,
+ stanzaId: _builtins.str | None = ...,
+ peerDataOperationResult: _abc.Iterable[Global___Message.PeerDataOperationRequestResponseMessage.PeerDataOperationResult] | None = ...,
+ ) -> None: ...
+ _HasFieldArgType: _TypeAlias = _typing.Literal["peerDataOperationRequestType", b"peerDataOperationRequestType", "stanzaId", b"stanzaId"] # noqa: Y015
+ def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ...
+ _ClearFieldArgType: _TypeAlias = _typing.Literal["peerDataOperationRequestType", b"peerDataOperationRequestType", "peerDataOperationResult", b"peerDataOperationResult", "stanzaId", b"stanzaId"] # noqa: Y015
+ def ClearField(self, field_name: _ClearFieldArgType) -> None: ...
+
+ @_typing.final
+ class PinInChatMessage(_message.Message):
+ DESCRIPTOR: _descriptor.Descriptor
+
+ class _Type:
+ ValueType = _typing.NewType("ValueType", _builtins.int)
+ V: _TypeAlias = ValueType # noqa: Y015
+
+ class _TypeEnumTypeWrapper(_enum_type_wrapper._EnumTypeWrapper[Message.PinInChatMessage._Type.ValueType], _builtins.type):
+ DESCRIPTOR: _descriptor.EnumDescriptor
+ UNKNOWN_TYPE: Message.PinInChatMessage._Type.ValueType # 0
+ PIN_FOR_ALL: Message.PinInChatMessage._Type.ValueType # 1
+ UNPIN_FOR_ALL: Message.PinInChatMessage._Type.ValueType # 2
+
+ class Type(_Type, metaclass=_TypeEnumTypeWrapper): ...
+ UNKNOWN_TYPE: Message.PinInChatMessage.Type.ValueType # 0
+ PIN_FOR_ALL: Message.PinInChatMessage.Type.ValueType # 1
+ UNPIN_FOR_ALL: Message.PinInChatMessage.Type.ValueType # 2
+
+ KEY_FIELD_NUMBER: _builtins.int
+ TYPE_FIELD_NUMBER: _builtins.int
+ SENDERTIMESTAMPMS_FIELD_NUMBER: _builtins.int
+ type: Global___Message.PinInChatMessage.Type.ValueType
+ senderTimestampMs: _builtins.int
+ @_builtins.property
+ def key(self) -> Global___MessageKey: ...
+ def __init__(
+ self,
+ *,
+ key: Global___MessageKey | None = ...,
+ type: Global___Message.PinInChatMessage.Type.ValueType | None = ...,
+ senderTimestampMs: _builtins.int | None = ...,
+ ) -> None: ...
+ _HasFieldArgType: _TypeAlias = _typing.Literal["key", b"key", "senderTimestampMs", b"senderTimestampMs", "type", b"type"] # noqa: Y015
+ def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ...
+ _ClearFieldArgType: _TypeAlias = _typing.Literal["key", b"key", "senderTimestampMs", b"senderTimestampMs", "type", b"type"] # noqa: Y015
+ def ClearField(self, field_name: _ClearFieldArgType) -> None: ...
+
+ @_typing.final
+ class PlaceholderMessage(_message.Message):
+ DESCRIPTOR: _descriptor.Descriptor
+
+ class _PlaceholderType:
+ ValueType = _typing.NewType("ValueType", _builtins.int)
+ V: _TypeAlias = ValueType # noqa: Y015
+
+ class _PlaceholderTypeEnumTypeWrapper(_enum_type_wrapper._EnumTypeWrapper[Message.PlaceholderMessage._PlaceholderType.ValueType], _builtins.type):
+ DESCRIPTOR: _descriptor.EnumDescriptor
+ MASK_LINKED_DEVICES: Message.PlaceholderMessage._PlaceholderType.ValueType # 0
+
+ class PlaceholderType(_PlaceholderType, metaclass=_PlaceholderTypeEnumTypeWrapper): ...
+ MASK_LINKED_DEVICES: Message.PlaceholderMessage.PlaceholderType.ValueType # 0
+
+ TYPE_FIELD_NUMBER: _builtins.int
+ type: Global___Message.PlaceholderMessage.PlaceholderType.ValueType
+ def __init__(
+ self,
+ *,
+ type: Global___Message.PlaceholderMessage.PlaceholderType.ValueType | None = ...,
+ ) -> None: ...
+ _HasFieldArgType: _TypeAlias = _typing.Literal["type", b"type"] # noqa: Y015
+ def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ...
+ _ClearFieldArgType: _TypeAlias = _typing.Literal["type", b"type"] # noqa: Y015
+ def ClearField(self, field_name: _ClearFieldArgType) -> None: ...
+
+ @_typing.final
+ class PollAddOptionMessage(_message.Message):
+ DESCRIPTOR: _descriptor.Descriptor
+
+ POLLCREATIONMESSAGEKEY_FIELD_NUMBER: _builtins.int
+ ADDOPTION_FIELD_NUMBER: _builtins.int
+ METADATA_FIELD_NUMBER: _builtins.int
+ @_builtins.property
+ def pollCreationMessageKey(self) -> Global___MessageKey: ...
+ @_builtins.property
+ def addOption(self) -> Global___Message.PollCreationMessage.Option: ...
+ @_builtins.property
+ def metadata(self) -> Global___Message.PollUpdateMessageMetadata: ...
+ def __init__(
+ self,
+ *,
+ pollCreationMessageKey: Global___MessageKey | None = ...,
+ addOption: Global___Message.PollCreationMessage.Option | None = ...,
+ metadata: Global___Message.PollUpdateMessageMetadata | None = ...,
+ ) -> None: ...
+ _HasFieldArgType: _TypeAlias = _typing.Literal["addOption", b"addOption", "metadata", b"metadata", "pollCreationMessageKey", b"pollCreationMessageKey"] # noqa: Y015
+ def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ...
+ _ClearFieldArgType: _TypeAlias = _typing.Literal["addOption", b"addOption", "metadata", b"metadata", "pollCreationMessageKey", b"pollCreationMessageKey"] # noqa: Y015
+ def ClearField(self, field_name: _ClearFieldArgType) -> None: ...
+
+ @_typing.final
+ class PollCreationMessage(_message.Message):
+ DESCRIPTOR: _descriptor.Descriptor
+
+ @_typing.final
+ class Option(_message.Message):
+ DESCRIPTOR: _descriptor.Descriptor
+
+ OPTIONNAME_FIELD_NUMBER: _builtins.int
+ OPTIONHASH_FIELD_NUMBER: _builtins.int
+ optionName: _builtins.str
+ optionHash: _builtins.str
+ def __init__(
+ self,
+ *,
+ optionName: _builtins.str | None = ...,
+ optionHash: _builtins.str | None = ...,
+ ) -> None: ...
+ _HasFieldArgType: _TypeAlias = _typing.Literal["optionHash", b"optionHash", "optionName", b"optionName"] # noqa: Y015
+ def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ...
+ _ClearFieldArgType: _TypeAlias = _typing.Literal["optionHash", b"optionHash", "optionName", b"optionName"] # noqa: Y015
+ def ClearField(self, field_name: _ClearFieldArgType) -> None: ...
+
+ ENCKEY_FIELD_NUMBER: _builtins.int
+ NAME_FIELD_NUMBER: _builtins.int
+ OPTIONS_FIELD_NUMBER: _builtins.int
+ SELECTABLEOPTIONSCOUNT_FIELD_NUMBER: _builtins.int
+ CONTEXTINFO_FIELD_NUMBER: _builtins.int
+ POLLCONTENTTYPE_FIELD_NUMBER: _builtins.int
+ POLLTYPE_FIELD_NUMBER: _builtins.int
+ CORRECTANSWER_FIELD_NUMBER: _builtins.int
+ ENDTIME_FIELD_NUMBER: _builtins.int
+ HIDEPARTICIPANTNAME_FIELD_NUMBER: _builtins.int
+ ALLOWADDOPTION_FIELD_NUMBER: _builtins.int
+ encKey: _builtins.bytes
+ name: _builtins.str
+ selectableOptionsCount: _builtins.int
+ pollContentType: Global___Message.PollContentType.ValueType
+ pollType: Global___Message.PollType.ValueType
+ endTime: _builtins.int
+ hideParticipantName: _builtins.bool
+ allowAddOption: _builtins.bool
+ @_builtins.property
+ def options(self) -> _containers.RepeatedCompositeFieldContainer[Global___Message.PollCreationMessage.Option]: ...
+ @_builtins.property
+ def contextInfo(self) -> Global___ContextInfo: ...
+ @_builtins.property
+ def correctAnswer(self) -> Global___Message.PollCreationMessage.Option: ...
+ def __init__(
+ self,
+ *,
+ encKey: _builtins.bytes | None = ...,
+ name: _builtins.str | None = ...,
+ options: _abc.Iterable[Global___Message.PollCreationMessage.Option] | None = ...,
+ selectableOptionsCount: _builtins.int | None = ...,
+ contextInfo: Global___ContextInfo | None = ...,
+ pollContentType: Global___Message.PollContentType.ValueType | None = ...,
+ pollType: Global___Message.PollType.ValueType | None = ...,
+ correctAnswer: Global___Message.PollCreationMessage.Option | None = ...,
+ endTime: _builtins.int | None = ...,
+ hideParticipantName: _builtins.bool | None = ...,
+ allowAddOption: _builtins.bool | None = ...,
+ ) -> None: ...
+ _HasFieldArgType: _TypeAlias = _typing.Literal["allowAddOption", b"allowAddOption", "contextInfo", b"contextInfo", "correctAnswer", b"correctAnswer", "encKey", b"encKey", "endTime", b"endTime", "hideParticipantName", b"hideParticipantName", "name", b"name", "pollContentType", b"pollContentType", "pollType", b"pollType", "selectableOptionsCount", b"selectableOptionsCount"] # noqa: Y015
+ def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ...
+ _ClearFieldArgType: _TypeAlias = _typing.Literal["allowAddOption", b"allowAddOption", "contextInfo", b"contextInfo", "correctAnswer", b"correctAnswer", "encKey", b"encKey", "endTime", b"endTime", "hideParticipantName", b"hideParticipantName", "name", b"name", "options", b"options", "pollContentType", b"pollContentType", "pollType", b"pollType", "selectableOptionsCount", b"selectableOptionsCount"] # noqa: Y015
+ def ClearField(self, field_name: _ClearFieldArgType) -> None: ...
+
+ @_typing.final
+ class PollEncValue(_message.Message):
+ DESCRIPTOR: _descriptor.Descriptor
+
+ ENCPAYLOAD_FIELD_NUMBER: _builtins.int
+ ENCIV_FIELD_NUMBER: _builtins.int
+ encPayload: _builtins.bytes
+ encIv: _builtins.bytes
+ def __init__(
+ self,
+ *,
+ encPayload: _builtins.bytes | None = ...,
+ encIv: _builtins.bytes | None = ...,
+ ) -> None: ...
+ _HasFieldArgType: _TypeAlias = _typing.Literal["encIv", b"encIv", "encPayload", b"encPayload"] # noqa: Y015
+ def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ...
+ _ClearFieldArgType: _TypeAlias = _typing.Literal["encIv", b"encIv", "encPayload", b"encPayload"] # noqa: Y015
+ def ClearField(self, field_name: _ClearFieldArgType) -> None: ...
+
+ @_typing.final
+ class PollResultSnapshotMessage(_message.Message):
+ DESCRIPTOR: _descriptor.Descriptor
+
+ @_typing.final
+ class PollVote(_message.Message):
+ DESCRIPTOR: _descriptor.Descriptor
+
+ OPTIONNAME_FIELD_NUMBER: _builtins.int
+ OPTIONVOTECOUNT_FIELD_NUMBER: _builtins.int
+ optionName: _builtins.str
+ optionVoteCount: _builtins.int
+ def __init__(
+ self,
+ *,
+ optionName: _builtins.str | None = ...,
+ optionVoteCount: _builtins.int | None = ...,
+ ) -> None: ...
+ _HasFieldArgType: _TypeAlias = _typing.Literal["optionName", b"optionName", "optionVoteCount", b"optionVoteCount"] # noqa: Y015
+ def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ...
+ _ClearFieldArgType: _TypeAlias = _typing.Literal["optionName", b"optionName", "optionVoteCount", b"optionVoteCount"] # noqa: Y015
+ def ClearField(self, field_name: _ClearFieldArgType) -> None: ...
+
+ NAME_FIELD_NUMBER: _builtins.int
+ POLLVOTES_FIELD_NUMBER: _builtins.int
+ CONTEXTINFO_FIELD_NUMBER: _builtins.int
+ POLLTYPE_FIELD_NUMBER: _builtins.int
+ name: _builtins.str
+ pollType: Global___Message.PollType.ValueType
+ @_builtins.property
+ def pollVotes(self) -> _containers.RepeatedCompositeFieldContainer[Global___Message.PollResultSnapshotMessage.PollVote]: ...
+ @_builtins.property
+ def contextInfo(self) -> Global___ContextInfo: ...
+ def __init__(
+ self,
+ *,
+ name: _builtins.str | None = ...,
+ pollVotes: _abc.Iterable[Global___Message.PollResultSnapshotMessage.PollVote] | None = ...,
+ contextInfo: Global___ContextInfo | None = ...,
+ pollType: Global___Message.PollType.ValueType | None = ...,
+ ) -> None: ...
+ _HasFieldArgType: _TypeAlias = _typing.Literal["contextInfo", b"contextInfo", "name", b"name", "pollType", b"pollType"] # noqa: Y015
+ def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ...
+ _ClearFieldArgType: _TypeAlias = _typing.Literal["contextInfo", b"contextInfo", "name", b"name", "pollType", b"pollType", "pollVotes", b"pollVotes"] # noqa: Y015
+ def ClearField(self, field_name: _ClearFieldArgType) -> None: ...
+
+ @_typing.final
+ class PollUpdateMessage(_message.Message):
+ DESCRIPTOR: _descriptor.Descriptor
+
+ POLLCREATIONMESSAGEKEY_FIELD_NUMBER: _builtins.int
+ VOTE_FIELD_NUMBER: _builtins.int
+ METADATA_FIELD_NUMBER: _builtins.int
+ SENDERTIMESTAMPMS_FIELD_NUMBER: _builtins.int
+ senderTimestampMs: _builtins.int
+ @_builtins.property
+ def pollCreationMessageKey(self) -> Global___MessageKey: ...
+ @_builtins.property
+ def vote(self) -> Global___Message.PollEncValue: ...
+ @_builtins.property
+ def metadata(self) -> Global___Message.PollUpdateMessageMetadata: ...
+ def __init__(
+ self,
+ *,
+ pollCreationMessageKey: Global___MessageKey | None = ...,
+ vote: Global___Message.PollEncValue | None = ...,
+ metadata: Global___Message.PollUpdateMessageMetadata | None = ...,
+ senderTimestampMs: _builtins.int | None = ...,
+ ) -> None: ...
+ _HasFieldArgType: _TypeAlias = _typing.Literal["metadata", b"metadata", "pollCreationMessageKey", b"pollCreationMessageKey", "senderTimestampMs", b"senderTimestampMs", "vote", b"vote"] # noqa: Y015
+ def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ...
+ _ClearFieldArgType: _TypeAlias = _typing.Literal["metadata", b"metadata", "pollCreationMessageKey", b"pollCreationMessageKey", "senderTimestampMs", b"senderTimestampMs", "vote", b"vote"] # noqa: Y015
+ def ClearField(self, field_name: _ClearFieldArgType) -> None: ...
+
+ @_typing.final
+ class PollUpdateMessageMetadata(_message.Message):
+ DESCRIPTOR: _descriptor.Descriptor
+
+ POLLNAMEHASH_FIELD_NUMBER: _builtins.int
+ LASTEDITSTANZAID_FIELD_NUMBER: _builtins.int
+ pollNameHash: _builtins.bytes
+ lastEditStanzaId: _builtins.str
+ def __init__(
+ self,
+ *,
+ pollNameHash: _builtins.bytes | None = ...,
+ lastEditStanzaId: _builtins.str | None = ...,
+ ) -> None: ...
+ _HasFieldArgType: _TypeAlias = _typing.Literal["lastEditStanzaId", b"lastEditStanzaId", "pollNameHash", b"pollNameHash"] # noqa: Y015
+ def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ...
+ _ClearFieldArgType: _TypeAlias = _typing.Literal["lastEditStanzaId", b"lastEditStanzaId", "pollNameHash", b"pollNameHash"] # noqa: Y015
+ def ClearField(self, field_name: _ClearFieldArgType) -> None: ...
+
+ @_typing.final
+ class PollVoteMessage(_message.Message):
+ DESCRIPTOR: _descriptor.Descriptor
+
+ SELECTEDOPTIONS_FIELD_NUMBER: _builtins.int
+ @_builtins.property
+ def selectedOptions(self) -> _containers.RepeatedScalarFieldContainer[_builtins.bytes]: ...
+ def __init__(
+ self,
+ *,
+ selectedOptions: _abc.Iterable[_builtins.bytes] | None = ...,
+ ) -> None: ...
+ _ClearFieldArgType: _TypeAlias = _typing.Literal["selectedOptions", b"selectedOptions"] # noqa: Y015
+ def ClearField(self, field_name: _ClearFieldArgType) -> None: ...
+
+ @_typing.final
+ class ProductMessage(_message.Message):
+ DESCRIPTOR: _descriptor.Descriptor
+
+ @_typing.final
+ class CatalogSnapshot(_message.Message):
+ DESCRIPTOR: _descriptor.Descriptor
+
+ CATALOGIMAGE_FIELD_NUMBER: _builtins.int
+ TITLE_FIELD_NUMBER: _builtins.int
+ DESCRIPTION_FIELD_NUMBER: _builtins.int
+ title: _builtins.str
+ description: _builtins.str
+ @_builtins.property
+ def catalogImage(self) -> Global___Message.ImageMessage: ...
+ def __init__(
+ self,
+ *,
+ catalogImage: Global___Message.ImageMessage | None = ...,
+ title: _builtins.str | None = ...,
+ description: _builtins.str | None = ...,
+ ) -> None: ...
+ _HasFieldArgType: _TypeAlias = _typing.Literal["catalogImage", b"catalogImage", "description", b"description", "title", b"title"] # noqa: Y015
+ def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ...
+ _ClearFieldArgType: _TypeAlias = _typing.Literal["catalogImage", b"catalogImage", "description", b"description", "title", b"title"] # noqa: Y015
+ def ClearField(self, field_name: _ClearFieldArgType) -> None: ...
+
+ @_typing.final
+ class ProductSnapshot(_message.Message):
+ DESCRIPTOR: _descriptor.Descriptor
+
+ PRODUCTIMAGE_FIELD_NUMBER: _builtins.int
+ PRODUCTID_FIELD_NUMBER: _builtins.int
+ TITLE_FIELD_NUMBER: _builtins.int
+ DESCRIPTION_FIELD_NUMBER: _builtins.int
+ CURRENCYCODE_FIELD_NUMBER: _builtins.int
+ PRICEAMOUNT1000_FIELD_NUMBER: _builtins.int
+ RETAILERID_FIELD_NUMBER: _builtins.int
+ URL_FIELD_NUMBER: _builtins.int
+ PRODUCTIMAGECOUNT_FIELD_NUMBER: _builtins.int
+ FIRSTIMAGEID_FIELD_NUMBER: _builtins.int
+ SALEPRICEAMOUNT1000_FIELD_NUMBER: _builtins.int
+ SIGNEDURL_FIELD_NUMBER: _builtins.int
+ productId: _builtins.str
+ title: _builtins.str
+ description: _builtins.str
+ currencyCode: _builtins.str
+ priceAmount1000: _builtins.int
+ retailerId: _builtins.str
+ url: _builtins.str
+ productImageCount: _builtins.int
+ firstImageId: _builtins.str
+ salePriceAmount1000: _builtins.int
+ signedUrl: _builtins.str
+ @_builtins.property
+ def productImage(self) -> Global___Message.ImageMessage: ...
+ def __init__(
+ self,
+ *,
+ productImage: Global___Message.ImageMessage | None = ...,
+ productId: _builtins.str | None = ...,
+ title: _builtins.str | None = ...,
+ description: _builtins.str | None = ...,
+ currencyCode: _builtins.str | None = ...,
+ priceAmount1000: _builtins.int | None = ...,
+ retailerId: _builtins.str | None = ...,
+ url: _builtins.str | None = ...,
+ productImageCount: _builtins.int | None = ...,
+ firstImageId: _builtins.str | None = ...,
+ salePriceAmount1000: _builtins.int | None = ...,
+ signedUrl: _builtins.str | None = ...,
+ ) -> None: ...
+ _HasFieldArgType: _TypeAlias = _typing.Literal["currencyCode", b"currencyCode", "description", b"description", "firstImageId", b"firstImageId", "priceAmount1000", b"priceAmount1000", "productId", b"productId", "productImage", b"productImage", "productImageCount", b"productImageCount", "retailerId", b"retailerId", "salePriceAmount1000", b"salePriceAmount1000", "signedUrl", b"signedUrl", "title", b"title", "url", b"url"] # noqa: Y015
+ def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ...
+ _ClearFieldArgType: _TypeAlias = _typing.Literal["currencyCode", b"currencyCode", "description", b"description", "firstImageId", b"firstImageId", "priceAmount1000", b"priceAmount1000", "productId", b"productId", "productImage", b"productImage", "productImageCount", b"productImageCount", "retailerId", b"retailerId", "salePriceAmount1000", b"salePriceAmount1000", "signedUrl", b"signedUrl", "title", b"title", "url", b"url"] # noqa: Y015
+ def ClearField(self, field_name: _ClearFieldArgType) -> None: ...
+
+ PRODUCT_FIELD_NUMBER: _builtins.int
+ BUSINESSOWNERJID_FIELD_NUMBER: _builtins.int
+ CATALOG_FIELD_NUMBER: _builtins.int
+ BODY_FIELD_NUMBER: _builtins.int
+ FOOTER_FIELD_NUMBER: _builtins.int
+ CONTEXTINFO_FIELD_NUMBER: _builtins.int
+ businessOwnerJid: _builtins.str
+ body: _builtins.str
+ footer: _builtins.str
+ @_builtins.property
+ def product(self) -> Global___Message.ProductMessage.ProductSnapshot: ...
+ @_builtins.property
+ def catalog(self) -> Global___Message.ProductMessage.CatalogSnapshot: ...
+ @_builtins.property
+ def contextInfo(self) -> Global___ContextInfo: ...
+ def __init__(
+ self,
+ *,
+ product: Global___Message.ProductMessage.ProductSnapshot | None = ...,
+ businessOwnerJid: _builtins.str | None = ...,
+ catalog: Global___Message.ProductMessage.CatalogSnapshot | None = ...,
+ body: _builtins.str | None = ...,
+ footer: _builtins.str | None = ...,
+ contextInfo: Global___ContextInfo | None = ...,
+ ) -> None: ...
+ _HasFieldArgType: _TypeAlias = _typing.Literal["body", b"body", "businessOwnerJid", b"businessOwnerJid", "catalog", b"catalog", "contextInfo", b"contextInfo", "footer", b"footer", "product", b"product"] # noqa: Y015
+ def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ...
+ _ClearFieldArgType: _TypeAlias = _typing.Literal["body", b"body", "businessOwnerJid", b"businessOwnerJid", "catalog", b"catalog", "contextInfo", b"contextInfo", "footer", b"footer", "product", b"product"] # noqa: Y015
+ def ClearField(self, field_name: _ClearFieldArgType) -> None: ...
+
+ @_typing.final
+ class ProtocolMessage(_message.Message):
+ DESCRIPTOR: _descriptor.Descriptor
+
+ class _Type:
+ ValueType = _typing.NewType("ValueType", _builtins.int)
+ V: _TypeAlias = ValueType # noqa: Y015
+
+ class _TypeEnumTypeWrapper(_enum_type_wrapper._EnumTypeWrapper[Message.ProtocolMessage._Type.ValueType], _builtins.type):
+ DESCRIPTOR: _descriptor.EnumDescriptor
+ REVOKE: Message.ProtocolMessage._Type.ValueType # 0
+ EPHEMERAL_SETTING: Message.ProtocolMessage._Type.ValueType # 3
+ EPHEMERAL_SYNC_RESPONSE: Message.ProtocolMessage._Type.ValueType # 4
+ HISTORY_SYNC_NOTIFICATION: Message.ProtocolMessage._Type.ValueType # 5
+ APP_STATE_SYNC_KEY_SHARE: Message.ProtocolMessage._Type.ValueType # 6
+ APP_STATE_SYNC_KEY_REQUEST: Message.ProtocolMessage._Type.ValueType # 7
+ MSG_FANOUT_BACKFILL_REQUEST: Message.ProtocolMessage._Type.ValueType # 8
+ INITIAL_SECURITY_NOTIFICATION_SETTING_SYNC: Message.ProtocolMessage._Type.ValueType # 9
+ APP_STATE_FATAL_EXCEPTION_NOTIFICATION: Message.ProtocolMessage._Type.ValueType # 10
+ SHARE_PHONE_NUMBER: Message.ProtocolMessage._Type.ValueType # 11
+ MESSAGE_EDIT: Message.ProtocolMessage._Type.ValueType # 14
+ PEER_DATA_OPERATION_REQUEST_MESSAGE: Message.ProtocolMessage._Type.ValueType # 16
+ PEER_DATA_OPERATION_REQUEST_RESPONSE_MESSAGE: Message.ProtocolMessage._Type.ValueType # 17
+ REQUEST_WELCOME_MESSAGE: Message.ProtocolMessage._Type.ValueType # 18
+ BOT_FEEDBACK_MESSAGE: Message.ProtocolMessage._Type.ValueType # 19
+ MEDIA_NOTIFY_MESSAGE: Message.ProtocolMessage._Type.ValueType # 20
+ CLOUD_API_THREAD_CONTROL_NOTIFICATION: Message.ProtocolMessage._Type.ValueType # 21
+ LID_MIGRATION_MAPPING_SYNC: Message.ProtocolMessage._Type.ValueType # 22
+ REMINDER_MESSAGE: Message.ProtocolMessage._Type.ValueType # 23
+ BOT_MEMU_ONBOARDING_MESSAGE: Message.ProtocolMessage._Type.ValueType # 24
+ STATUS_MENTION_MESSAGE: Message.ProtocolMessage._Type.ValueType # 25
+ STOP_GENERATION_MESSAGE: Message.ProtocolMessage._Type.ValueType # 26
+ LIMIT_SHARING: Message.ProtocolMessage._Type.ValueType # 27
+ AI_PSI_METADATA: Message.ProtocolMessage._Type.ValueType # 28
+ AI_QUERY_FANOUT: Message.ProtocolMessage._Type.ValueType # 29
+ GROUP_MEMBER_LABEL_CHANGE: Message.ProtocolMessage._Type.ValueType # 30
+ AI_MEDIA_COLLECTION_MESSAGE: Message.ProtocolMessage._Type.ValueType # 31
+ MESSAGE_UNSCHEDULE: Message.ProtocolMessage._Type.ValueType # 32
+ CHAT_THEME_SETTING: Message.ProtocolMessage._Type.ValueType # 34
+ AI_METADATA_OPERATION: Message.ProtocolMessage._Type.ValueType # 35
+ MARK_AS_VERIFIED_ACTION: Message.ProtocolMessage._Type.ValueType # 36
+ COEX_STATE_SYNC: Message.ProtocolMessage._Type.ValueType # 37
+
+ class Type(_Type, metaclass=_TypeEnumTypeWrapper): ...
+ REVOKE: Message.ProtocolMessage.Type.ValueType # 0
+ EPHEMERAL_SETTING: Message.ProtocolMessage.Type.ValueType # 3
+ EPHEMERAL_SYNC_RESPONSE: Message.ProtocolMessage.Type.ValueType # 4
+ HISTORY_SYNC_NOTIFICATION: Message.ProtocolMessage.Type.ValueType # 5
+ APP_STATE_SYNC_KEY_SHARE: Message.ProtocolMessage.Type.ValueType # 6
+ APP_STATE_SYNC_KEY_REQUEST: Message.ProtocolMessage.Type.ValueType # 7
+ MSG_FANOUT_BACKFILL_REQUEST: Message.ProtocolMessage.Type.ValueType # 8
+ INITIAL_SECURITY_NOTIFICATION_SETTING_SYNC: Message.ProtocolMessage.Type.ValueType # 9
+ APP_STATE_FATAL_EXCEPTION_NOTIFICATION: Message.ProtocolMessage.Type.ValueType # 10
+ SHARE_PHONE_NUMBER: Message.ProtocolMessage.Type.ValueType # 11
+ MESSAGE_EDIT: Message.ProtocolMessage.Type.ValueType # 14
+ PEER_DATA_OPERATION_REQUEST_MESSAGE: Message.ProtocolMessage.Type.ValueType # 16
+ PEER_DATA_OPERATION_REQUEST_RESPONSE_MESSAGE: Message.ProtocolMessage.Type.ValueType # 17
+ REQUEST_WELCOME_MESSAGE: Message.ProtocolMessage.Type.ValueType # 18
+ BOT_FEEDBACK_MESSAGE: Message.ProtocolMessage.Type.ValueType # 19
+ MEDIA_NOTIFY_MESSAGE: Message.ProtocolMessage.Type.ValueType # 20
+ CLOUD_API_THREAD_CONTROL_NOTIFICATION: Message.ProtocolMessage.Type.ValueType # 21
+ LID_MIGRATION_MAPPING_SYNC: Message.ProtocolMessage.Type.ValueType # 22
+ REMINDER_MESSAGE: Message.ProtocolMessage.Type.ValueType # 23
+ BOT_MEMU_ONBOARDING_MESSAGE: Message.ProtocolMessage.Type.ValueType # 24
+ STATUS_MENTION_MESSAGE: Message.ProtocolMessage.Type.ValueType # 25
+ STOP_GENERATION_MESSAGE: Message.ProtocolMessage.Type.ValueType # 26
+ LIMIT_SHARING: Message.ProtocolMessage.Type.ValueType # 27
+ AI_PSI_METADATA: Message.ProtocolMessage.Type.ValueType # 28
+ AI_QUERY_FANOUT: Message.ProtocolMessage.Type.ValueType # 29
+ GROUP_MEMBER_LABEL_CHANGE: Message.ProtocolMessage.Type.ValueType # 30
+ AI_MEDIA_COLLECTION_MESSAGE: Message.ProtocolMessage.Type.ValueType # 31
+ MESSAGE_UNSCHEDULE: Message.ProtocolMessage.Type.ValueType # 32
+ CHAT_THEME_SETTING: Message.ProtocolMessage.Type.ValueType # 34
+ AI_METADATA_OPERATION: Message.ProtocolMessage.Type.ValueType # 35
+ MARK_AS_VERIFIED_ACTION: Message.ProtocolMessage.Type.ValueType # 36
+ COEX_STATE_SYNC: Message.ProtocolMessage.Type.ValueType # 37
+
+ KEY_FIELD_NUMBER: _builtins.int
+ TYPE_FIELD_NUMBER: _builtins.int
+ EPHEMERALEXPIRATION_FIELD_NUMBER: _builtins.int
+ EPHEMERALSETTINGTIMESTAMP_FIELD_NUMBER: _builtins.int
+ HISTORYSYNCNOTIFICATION_FIELD_NUMBER: _builtins.int
+ APPSTATESYNCKEYSHARE_FIELD_NUMBER: _builtins.int
+ APPSTATESYNCKEYREQUEST_FIELD_NUMBER: _builtins.int
+ INITIALSECURITYNOTIFICATIONSETTINGSYNC_FIELD_NUMBER: _builtins.int
+ APPSTATEFATALEXCEPTIONNOTIFICATION_FIELD_NUMBER: _builtins.int
+ DISAPPEARINGMODE_FIELD_NUMBER: _builtins.int
+ EDITEDMESSAGE_FIELD_NUMBER: _builtins.int
+ TIMESTAMPMS_FIELD_NUMBER: _builtins.int
+ PEERDATAOPERATIONREQUESTMESSAGE_FIELD_NUMBER: _builtins.int
+ PEERDATAOPERATIONREQUESTRESPONSEMESSAGE_FIELD_NUMBER: _builtins.int
+ BOTFEEDBACKMESSAGE_FIELD_NUMBER: _builtins.int
+ INVOKERJID_FIELD_NUMBER: _builtins.int
+ REQUESTWELCOMEMESSAGEMETADATA_FIELD_NUMBER: _builtins.int
+ MEDIANOTIFYMESSAGE_FIELD_NUMBER: _builtins.int
+ CLOUDAPITHREADCONTROLNOTIFICATION_FIELD_NUMBER: _builtins.int
+ LIDMIGRATIONMAPPINGSYNCMESSAGE_FIELD_NUMBER: _builtins.int
+ LIMITSHARING_FIELD_NUMBER: _builtins.int
+ AIPSIMETADATA_FIELD_NUMBER: _builtins.int
+ AIQUERYFANOUT_FIELD_NUMBER: _builtins.int
+ MEMBERLABEL_FIELD_NUMBER: _builtins.int
+ AIMEDIACOLLECTIONMESSAGE_FIELD_NUMBER: _builtins.int
+ AFTERREADDURATION_FIELD_NUMBER: _builtins.int
+ CHATTHEMESETTING_FIELD_NUMBER: _builtins.int
+ AIMETADATAOPERATION_FIELD_NUMBER: _builtins.int
+ MARKASVERIFIEDACTION_FIELD_NUMBER: _builtins.int
+ COEXSTATESYNC_FIELD_NUMBER: _builtins.int
+ type: Global___Message.ProtocolMessage.Type.ValueType
+ ephemeralExpiration: _builtins.int
+ ephemeralSettingTimestamp: _builtins.int
+ timestampMs: _builtins.int
+ invokerJid: _builtins.str
+ aiPsiMetadata: _builtins.bytes
+ afterReadDuration: _builtins.int
+ @_builtins.property
+ def key(self) -> Global___MessageKey: ...
+ @_builtins.property
+ def historySyncNotification(self) -> Global___Message.HistorySyncNotification: ...
+ @_builtins.property
+ def appStateSyncKeyShare(self) -> Global___Message.AppStateSyncKeyShare: ...
+ @_builtins.property
+ def appStateSyncKeyRequest(self) -> Global___Message.AppStateSyncKeyRequest: ...
+ @_builtins.property
+ def initialSecurityNotificationSettingSync(self) -> Global___Message.InitialSecurityNotificationSettingSync: ...
+ @_builtins.property
+ def appStateFatalExceptionNotification(self) -> Global___Message.AppStateFatalExceptionNotification: ...
+ @_builtins.property
+ def disappearingMode(self) -> Global___DisappearingMode: ...
+ @_builtins.property
+ def editedMessage(self) -> Global___Message: ...
+ @_builtins.property
+ def peerDataOperationRequestMessage(self) -> Global___Message.PeerDataOperationRequestMessage: ...
+ @_builtins.property
+ def peerDataOperationRequestResponseMessage(self) -> Global___Message.PeerDataOperationRequestResponseMessage: ...
+ @_builtins.property
+ def botFeedbackMessage(self) -> Global___BotFeedbackMessage: ...
+ @_builtins.property
+ def requestWelcomeMessageMetadata(self) -> Global___Message.RequestWelcomeMessageMetadata: ...
+ @_builtins.property
+ def mediaNotifyMessage(self) -> Global___MediaNotifyMessage: ...
+ @_builtins.property
+ def cloudApiThreadControlNotification(self) -> Global___Message.CloudAPIThreadControlNotification: ...
+ @_builtins.property
+ def lidMigrationMappingSyncMessage(self) -> Global___LIDMigrationMappingSyncMessage: ...
+ @_builtins.property
+ def limitSharing(self) -> Global___LimitSharing: ...
+ @_builtins.property
+ def aiQueryFanout(self) -> Global___AIQueryFanout: ...
+ @_builtins.property
+ def memberLabel(self) -> Global___MemberLabel: ...
+ @_builtins.property
+ def aiMediaCollectionMessage(self) -> Global___AIMediaCollectionMessage: ...
+ @_builtins.property
+ def chatThemeSetting(self) -> Global___Message.ChatThemeSetting: ...
+ @_builtins.property
+ def aiMetadataOperation(self) -> Global___AIMetadataOperation: ...
+ @_builtins.property
+ def markAsVerifiedAction(self) -> Global___Message.MarkAsVerifiedAction: ...
+ @_builtins.property
+ def coexStateSync(self) -> Global___CoexStateSync: ...
+ def __init__(
+ self,
+ *,
+ key: Global___MessageKey | None = ...,
+ type: Global___Message.ProtocolMessage.Type.ValueType | None = ...,
+ ephemeralExpiration: _builtins.int | None = ...,
+ ephemeralSettingTimestamp: _builtins.int | None = ...,
+ historySyncNotification: Global___Message.HistorySyncNotification | None = ...,
+ appStateSyncKeyShare: Global___Message.AppStateSyncKeyShare | None = ...,
+ appStateSyncKeyRequest: Global___Message.AppStateSyncKeyRequest | None = ...,
+ initialSecurityNotificationSettingSync: Global___Message.InitialSecurityNotificationSettingSync | None = ...,
+ appStateFatalExceptionNotification: Global___Message.AppStateFatalExceptionNotification | None = ...,
+ disappearingMode: Global___DisappearingMode | None = ...,
+ editedMessage: Global___Message | None = ...,
+ timestampMs: _builtins.int | None = ...,
+ peerDataOperationRequestMessage: Global___Message.PeerDataOperationRequestMessage | None = ...,
+ peerDataOperationRequestResponseMessage: Global___Message.PeerDataOperationRequestResponseMessage | None = ...,
+ botFeedbackMessage: Global___BotFeedbackMessage | None = ...,
+ invokerJid: _builtins.str | None = ...,
+ requestWelcomeMessageMetadata: Global___Message.RequestWelcomeMessageMetadata | None = ...,
+ mediaNotifyMessage: Global___MediaNotifyMessage | None = ...,
+ cloudApiThreadControlNotification: Global___Message.CloudAPIThreadControlNotification | None = ...,
+ lidMigrationMappingSyncMessage: Global___LIDMigrationMappingSyncMessage | None = ...,
+ limitSharing: Global___LimitSharing | None = ...,
+ aiPsiMetadata: _builtins.bytes | None = ...,
+ aiQueryFanout: Global___AIQueryFanout | None = ...,
+ memberLabel: Global___MemberLabel | None = ...,
+ aiMediaCollectionMessage: Global___AIMediaCollectionMessage | None = ...,
+ afterReadDuration: _builtins.int | None = ...,
+ chatThemeSetting: Global___Message.ChatThemeSetting | None = ...,
+ aiMetadataOperation: Global___AIMetadataOperation | None = ...,
+ markAsVerifiedAction: Global___Message.MarkAsVerifiedAction | None = ...,
+ coexStateSync: Global___CoexStateSync | None = ...,
+ ) -> None: ...
+ _HasFieldArgType: _TypeAlias = _typing.Literal["afterReadDuration", b"afterReadDuration", "aiMediaCollectionMessage", b"aiMediaCollectionMessage", "aiMetadataOperation", b"aiMetadataOperation", "aiPsiMetadata", b"aiPsiMetadata", "aiQueryFanout", b"aiQueryFanout", "appStateFatalExceptionNotification", b"appStateFatalExceptionNotification", "appStateSyncKeyRequest", b"appStateSyncKeyRequest", "appStateSyncKeyShare", b"appStateSyncKeyShare", "botFeedbackMessage", b"botFeedbackMessage", "chatThemeSetting", b"chatThemeSetting", "cloudApiThreadControlNotification", b"cloudApiThreadControlNotification", "coexStateSync", b"coexStateSync", "disappearingMode", b"disappearingMode", "editedMessage", b"editedMessage", "ephemeralExpiration", b"ephemeralExpiration", "ephemeralSettingTimestamp", b"ephemeralSettingTimestamp", "historySyncNotification", b"historySyncNotification", "initialSecurityNotificationSettingSync", b"initialSecurityNotificationSettingSync", "invokerJid", b"invokerJid", "key", b"key", "lidMigrationMappingSyncMessage", b"lidMigrationMappingSyncMessage", "limitSharing", b"limitSharing", "markAsVerifiedAction", b"markAsVerifiedAction", "mediaNotifyMessage", b"mediaNotifyMessage", "memberLabel", b"memberLabel", "peerDataOperationRequestMessage", b"peerDataOperationRequestMessage", "peerDataOperationRequestResponseMessage", b"peerDataOperationRequestResponseMessage", "requestWelcomeMessageMetadata", b"requestWelcomeMessageMetadata", "timestampMs", b"timestampMs", "type", b"type"] # noqa: Y015
+ def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ...
+ _ClearFieldArgType: _TypeAlias = _typing.Literal["afterReadDuration", b"afterReadDuration", "aiMediaCollectionMessage", b"aiMediaCollectionMessage", "aiMetadataOperation", b"aiMetadataOperation", "aiPsiMetadata", b"aiPsiMetadata", "aiQueryFanout", b"aiQueryFanout", "appStateFatalExceptionNotification", b"appStateFatalExceptionNotification", "appStateSyncKeyRequest", b"appStateSyncKeyRequest", "appStateSyncKeyShare", b"appStateSyncKeyShare", "botFeedbackMessage", b"botFeedbackMessage", "chatThemeSetting", b"chatThemeSetting", "cloudApiThreadControlNotification", b"cloudApiThreadControlNotification", "coexStateSync", b"coexStateSync", "disappearingMode", b"disappearingMode", "editedMessage", b"editedMessage", "ephemeralExpiration", b"ephemeralExpiration", "ephemeralSettingTimestamp", b"ephemeralSettingTimestamp", "historySyncNotification", b"historySyncNotification", "initialSecurityNotificationSettingSync", b"initialSecurityNotificationSettingSync", "invokerJid", b"invokerJid", "key", b"key", "lidMigrationMappingSyncMessage", b"lidMigrationMappingSyncMessage", "limitSharing", b"limitSharing", "markAsVerifiedAction", b"markAsVerifiedAction", "mediaNotifyMessage", b"mediaNotifyMessage", "memberLabel", b"memberLabel", "peerDataOperationRequestMessage", b"peerDataOperationRequestMessage", "peerDataOperationRequestResponseMessage", b"peerDataOperationRequestResponseMessage", "requestWelcomeMessageMetadata", b"requestWelcomeMessageMetadata", "timestampMs", b"timestampMs", "type", b"type"] # noqa: Y015
+ def ClearField(self, field_name: _ClearFieldArgType) -> None: ...
+
+ @_typing.final
+ class QuestionResponseMessage(_message.Message):
+ DESCRIPTOR: _descriptor.Descriptor
+
+ KEY_FIELD_NUMBER: _builtins.int
+ TEXT_FIELD_NUMBER: _builtins.int
+ text: _builtins.str
+ @_builtins.property
+ def key(self) -> Global___MessageKey: ...
+ def __init__(
+ self,
+ *,
+ key: Global___MessageKey | None = ...,
+ text: _builtins.str | None = ...,
+ ) -> None: ...
+ _HasFieldArgType: _TypeAlias = _typing.Literal["key", b"key", "text", b"text"] # noqa: Y015
+ def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ...
+ _ClearFieldArgType: _TypeAlias = _typing.Literal["key", b"key", "text", b"text"] # noqa: Y015
+ def ClearField(self, field_name: _ClearFieldArgType) -> None: ...
+
+ @_typing.final
+ class ReactionMessage(_message.Message):
+ DESCRIPTOR: _descriptor.Descriptor
+
+ KEY_FIELD_NUMBER: _builtins.int
+ TEXT_FIELD_NUMBER: _builtins.int
+ GROUPINGKEY_FIELD_NUMBER: _builtins.int
+ SENDERTIMESTAMPMS_FIELD_NUMBER: _builtins.int
+ text: _builtins.str
+ groupingKey: _builtins.str
+ senderTimestampMs: _builtins.int
+ @_builtins.property
+ def key(self) -> Global___MessageKey: ...
+ def __init__(
+ self,
+ *,
+ key: Global___MessageKey | None = ...,
+ text: _builtins.str | None = ...,
+ groupingKey: _builtins.str | None = ...,
+ senderTimestampMs: _builtins.int | None = ...,
+ ) -> None: ...
+ _HasFieldArgType: _TypeAlias = _typing.Literal["groupingKey", b"groupingKey", "key", b"key", "senderTimestampMs", b"senderTimestampMs", "text", b"text"] # noqa: Y015
+ def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ...
+ _ClearFieldArgType: _TypeAlias = _typing.Literal["groupingKey", b"groupingKey", "key", b"key", "senderTimestampMs", b"senderTimestampMs", "text", b"text"] # noqa: Y015
+ def ClearField(self, field_name: _ClearFieldArgType) -> None: ...
+
+ @_typing.final
+ class RequestPaymentMessage(_message.Message):
+ DESCRIPTOR: _descriptor.Descriptor
+
+ NOTEMESSAGE_FIELD_NUMBER: _builtins.int
+ CURRENCYCODEISO4217_FIELD_NUMBER: _builtins.int
+ AMOUNT1000_FIELD_NUMBER: _builtins.int
+ REQUESTFROM_FIELD_NUMBER: _builtins.int
+ EXPIRYTIMESTAMP_FIELD_NUMBER: _builtins.int
+ AMOUNT_FIELD_NUMBER: _builtins.int
+ BACKGROUND_FIELD_NUMBER: _builtins.int
+ currencyCodeIso4217: _builtins.str
+ amount1000: _builtins.int
+ requestFrom: _builtins.str
+ expiryTimestamp: _builtins.int
+ @_builtins.property
+ def noteMessage(self) -> Global___Message: ...
+ @_builtins.property
+ def amount(self) -> Global___Money: ...
+ @_builtins.property
+ def background(self) -> Global___PaymentBackground: ...
+ def __init__(
+ self,
+ *,
+ noteMessage: Global___Message | None = ...,
+ currencyCodeIso4217: _builtins.str | None = ...,
+ amount1000: _builtins.int | None = ...,
+ requestFrom: _builtins.str | None = ...,
+ expiryTimestamp: _builtins.int | None = ...,
+ amount: Global___Money | None = ...,
+ background: Global___PaymentBackground | None = ...,
+ ) -> None: ...
+ _HasFieldArgType: _TypeAlias = _typing.Literal["amount", b"amount", "amount1000", b"amount1000", "background", b"background", "currencyCodeIso4217", b"currencyCodeIso4217", "expiryTimestamp", b"expiryTimestamp", "noteMessage", b"noteMessage", "requestFrom", b"requestFrom"] # noqa: Y015
+ def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ...
+ _ClearFieldArgType: _TypeAlias = _typing.Literal["amount", b"amount", "amount1000", b"amount1000", "background", b"background", "currencyCodeIso4217", b"currencyCodeIso4217", "expiryTimestamp", b"expiryTimestamp", "noteMessage", b"noteMessage", "requestFrom", b"requestFrom"] # noqa: Y015
+ def ClearField(self, field_name: _ClearFieldArgType) -> None: ...
+
+ @_typing.final
+ class RequestPhoneNumberMessage(_message.Message):
+ DESCRIPTOR: _descriptor.Descriptor
+
+ CONTEXTINFO_FIELD_NUMBER: _builtins.int
+ @_builtins.property
+ def contextInfo(self) -> Global___ContextInfo: ...
+ def __init__(
+ self,
+ *,
+ contextInfo: Global___ContextInfo | None = ...,
+ ) -> None: ...
+ _HasFieldArgType: _TypeAlias = _typing.Literal["contextInfo", b"contextInfo"] # noqa: Y015
+ def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ...
+ _ClearFieldArgType: _TypeAlias = _typing.Literal["contextInfo", b"contextInfo"] # noqa: Y015
+ def ClearField(self, field_name: _ClearFieldArgType) -> None: ...
+
+ @_typing.final
+ class RequestWelcomeMessageMetadata(_message.Message):
+ DESCRIPTOR: _descriptor.Descriptor
+
+ class _LocalChatState:
+ ValueType = _typing.NewType("ValueType", _builtins.int)
+ V: _TypeAlias = ValueType # noqa: Y015
+
+ class _LocalChatStateEnumTypeWrapper(_enum_type_wrapper._EnumTypeWrapper[Message.RequestWelcomeMessageMetadata._LocalChatState.ValueType], _builtins.type):
+ DESCRIPTOR: _descriptor.EnumDescriptor
+ EMPTY: Message.RequestWelcomeMessageMetadata._LocalChatState.ValueType # 0
+ NON_EMPTY: Message.RequestWelcomeMessageMetadata._LocalChatState.ValueType # 1
+
+ class LocalChatState(_LocalChatState, metaclass=_LocalChatStateEnumTypeWrapper): ...
+ EMPTY: Message.RequestWelcomeMessageMetadata.LocalChatState.ValueType # 0
+ NON_EMPTY: Message.RequestWelcomeMessageMetadata.LocalChatState.ValueType # 1
+
+ class _WelcomeTrigger:
+ ValueType = _typing.NewType("ValueType", _builtins.int)
+ V: _TypeAlias = ValueType # noqa: Y015
+
+ class _WelcomeTriggerEnumTypeWrapper(_enum_type_wrapper._EnumTypeWrapper[Message.RequestWelcomeMessageMetadata._WelcomeTrigger.ValueType], _builtins.type):
+ DESCRIPTOR: _descriptor.EnumDescriptor
+ CHAT_OPEN: Message.RequestWelcomeMessageMetadata._WelcomeTrigger.ValueType # 0
+ COMPANION_PAIRING: Message.RequestWelcomeMessageMetadata._WelcomeTrigger.ValueType # 1
+
+ class WelcomeTrigger(_WelcomeTrigger, metaclass=_WelcomeTriggerEnumTypeWrapper): ...
+ CHAT_OPEN: Message.RequestWelcomeMessageMetadata.WelcomeTrigger.ValueType # 0
+ COMPANION_PAIRING: Message.RequestWelcomeMessageMetadata.WelcomeTrigger.ValueType # 1
+
+ LOCALCHATSTATE_FIELD_NUMBER: _builtins.int
+ WELCOMETRIGGER_FIELD_NUMBER: _builtins.int
+ BOTAGENTMETADATA_FIELD_NUMBER: _builtins.int
+ localChatState: Global___Message.RequestWelcomeMessageMetadata.LocalChatState.ValueType
+ welcomeTrigger: Global___Message.RequestWelcomeMessageMetadata.WelcomeTrigger.ValueType
+ @_builtins.property
+ def botAgentMetadata(self) -> Global___BotAgentMetadata: ...
+ def __init__(
+ self,
+ *,
+ localChatState: Global___Message.RequestWelcomeMessageMetadata.LocalChatState.ValueType | None = ...,
+ welcomeTrigger: Global___Message.RequestWelcomeMessageMetadata.WelcomeTrigger.ValueType | None = ...,
+ botAgentMetadata: Global___BotAgentMetadata | None = ...,
+ ) -> None: ...
+ _HasFieldArgType: _TypeAlias = _typing.Literal["botAgentMetadata", b"botAgentMetadata", "localChatState", b"localChatState", "welcomeTrigger", b"welcomeTrigger"] # noqa: Y015
+ def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ...
+ _ClearFieldArgType: _TypeAlias = _typing.Literal["botAgentMetadata", b"botAgentMetadata", "localChatState", b"localChatState", "welcomeTrigger", b"welcomeTrigger"] # noqa: Y015
+ def ClearField(self, field_name: _ClearFieldArgType) -> None: ...
+
+ @_typing.final
+ class RootSecretDistributeMessage(_message.Message):
+ DESCRIPTOR: _descriptor.Descriptor
+
+ CHATJID_FIELD_NUMBER: _builtins.int
+ chatJid: _builtins.str
+ def __init__(
+ self,
+ *,
+ chatJid: _builtins.str | None = ...,
+ ) -> None: ...
+ _HasFieldArgType: _TypeAlias = _typing.Literal["chatJid", b"chatJid"] # noqa: Y015
+ def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ...
+ _ClearFieldArgType: _TypeAlias = _typing.Literal["chatJid", b"chatJid"] # noqa: Y015
+ def ClearField(self, field_name: _ClearFieldArgType) -> None: ...
+
+ @_typing.final
+ class ScheduledCallCreationMessage(_message.Message):
+ DESCRIPTOR: _descriptor.Descriptor
+
+ class _CallType:
+ ValueType = _typing.NewType("ValueType", _builtins.int)
+ V: _TypeAlias = ValueType # noqa: Y015
+
+ class _CallTypeEnumTypeWrapper(_enum_type_wrapper._EnumTypeWrapper[Message.ScheduledCallCreationMessage._CallType.ValueType], _builtins.type):
+ DESCRIPTOR: _descriptor.EnumDescriptor
+ UNKNOWN: Message.ScheduledCallCreationMessage._CallType.ValueType # 0
+ VOICE: Message.ScheduledCallCreationMessage._CallType.ValueType # 1
+ VIDEO: Message.ScheduledCallCreationMessage._CallType.ValueType # 2
+
+ class CallType(_CallType, metaclass=_CallTypeEnumTypeWrapper): ...
+ UNKNOWN: Message.ScheduledCallCreationMessage.CallType.ValueType # 0
+ VOICE: Message.ScheduledCallCreationMessage.CallType.ValueType # 1
+ VIDEO: Message.ScheduledCallCreationMessage.CallType.ValueType # 2
+
+ SCHEDULEDTIMESTAMPMS_FIELD_NUMBER: _builtins.int
+ CALLTYPE_FIELD_NUMBER: _builtins.int
+ TITLE_FIELD_NUMBER: _builtins.int
+ scheduledTimestampMs: _builtins.int
+ callType: Global___Message.ScheduledCallCreationMessage.CallType.ValueType
+ title: _builtins.str
+ def __init__(
+ self,
+ *,
+ scheduledTimestampMs: _builtins.int | None = ...,
+ callType: Global___Message.ScheduledCallCreationMessage.CallType.ValueType | None = ...,
+ title: _builtins.str | None = ...,
+ ) -> None: ...
+ _HasFieldArgType: _TypeAlias = _typing.Literal["callType", b"callType", "scheduledTimestampMs", b"scheduledTimestampMs", "title", b"title"] # noqa: Y015
+ def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ...
+ _ClearFieldArgType: _TypeAlias = _typing.Literal["callType", b"callType", "scheduledTimestampMs", b"scheduledTimestampMs", "title", b"title"] # noqa: Y015
+ def ClearField(self, field_name: _ClearFieldArgType) -> None: ...
+
+ @_typing.final
+ class ScheduledCallEditMessage(_message.Message):
+ DESCRIPTOR: _descriptor.Descriptor
+
+ class _EditType:
+ ValueType = _typing.NewType("ValueType", _builtins.int)
+ V: _TypeAlias = ValueType # noqa: Y015
+
+ class _EditTypeEnumTypeWrapper(_enum_type_wrapper._EnumTypeWrapper[Message.ScheduledCallEditMessage._EditType.ValueType], _builtins.type):
+ DESCRIPTOR: _descriptor.EnumDescriptor
+ UNKNOWN: Message.ScheduledCallEditMessage._EditType.ValueType # 0
+ CANCEL: Message.ScheduledCallEditMessage._EditType.ValueType # 1
+
+ class EditType(_EditType, metaclass=_EditTypeEnumTypeWrapper): ...
+ UNKNOWN: Message.ScheduledCallEditMessage.EditType.ValueType # 0
+ CANCEL: Message.ScheduledCallEditMessage.EditType.ValueType # 1
+
+ KEY_FIELD_NUMBER: _builtins.int
+ EDITTYPE_FIELD_NUMBER: _builtins.int
+ editType: Global___Message.ScheduledCallEditMessage.EditType.ValueType
+ @_builtins.property
+ def key(self) -> Global___MessageKey: ...
+ def __init__(
+ self,
+ *,
+ key: Global___MessageKey | None = ...,
+ editType: Global___Message.ScheduledCallEditMessage.EditType.ValueType | None = ...,
+ ) -> None: ...
+ _HasFieldArgType: _TypeAlias = _typing.Literal["editType", b"editType", "key", b"key"] # noqa: Y015
+ def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ...
+ _ClearFieldArgType: _TypeAlias = _typing.Literal["editType", b"editType", "key", b"key"] # noqa: Y015
+ def ClearField(self, field_name: _ClearFieldArgType) -> None: ...
+
+ @_typing.final
+ class SecretEncryptedMessage(_message.Message):
+ DESCRIPTOR: _descriptor.Descriptor
+
+ class _SecretEncType:
+ ValueType = _typing.NewType("ValueType", _builtins.int)
+ V: _TypeAlias = ValueType # noqa: Y015
+
+ class _SecretEncTypeEnumTypeWrapper(_enum_type_wrapper._EnumTypeWrapper[Message.SecretEncryptedMessage._SecretEncType.ValueType], _builtins.type):
+ DESCRIPTOR: _descriptor.EnumDescriptor
+ UNKNOWN: Message.SecretEncryptedMessage._SecretEncType.ValueType # 0
+ EVENT_EDIT: Message.SecretEncryptedMessage._SecretEncType.ValueType # 1
+ MESSAGE_EDIT: Message.SecretEncryptedMessage._SecretEncType.ValueType # 2
+ MESSAGE_SCHEDULE: Message.SecretEncryptedMessage._SecretEncType.ValueType # 3
+ POLL_EDIT: Message.SecretEncryptedMessage._SecretEncType.ValueType # 4
+ POLL_ADD_OPTION: Message.SecretEncryptedMessage._SecretEncType.ValueType # 5
+
+ class SecretEncType(_SecretEncType, metaclass=_SecretEncTypeEnumTypeWrapper): ...
+ UNKNOWN: Message.SecretEncryptedMessage.SecretEncType.ValueType # 0
+ EVENT_EDIT: Message.SecretEncryptedMessage.SecretEncType.ValueType # 1
+ MESSAGE_EDIT: Message.SecretEncryptedMessage.SecretEncType.ValueType # 2
+ MESSAGE_SCHEDULE: Message.SecretEncryptedMessage.SecretEncType.ValueType # 3
+ POLL_EDIT: Message.SecretEncryptedMessage.SecretEncType.ValueType # 4
+ POLL_ADD_OPTION: Message.SecretEncryptedMessage.SecretEncType.ValueType # 5
+
+ TARGETMESSAGEKEY_FIELD_NUMBER: _builtins.int
+ ENCPAYLOAD_FIELD_NUMBER: _builtins.int
+ ENCIV_FIELD_NUMBER: _builtins.int
+ SECRETENCTYPE_FIELD_NUMBER: _builtins.int
+ REMOTEKEYID_FIELD_NUMBER: _builtins.int
+ encPayload: _builtins.bytes
+ encIv: _builtins.bytes
+ secretEncType: Global___Message.SecretEncryptedMessage.SecretEncType.ValueType
+ remoteKeyId: _builtins.str
+ @_builtins.property
+ def targetMessageKey(self) -> Global___MessageKey: ...
+ def __init__(
+ self,
+ *,
+ targetMessageKey: Global___MessageKey | None = ...,
+ encPayload: _builtins.bytes | None = ...,
+ encIv: _builtins.bytes | None = ...,
+ secretEncType: Global___Message.SecretEncryptedMessage.SecretEncType.ValueType | None = ...,
+ remoteKeyId: _builtins.str | None = ...,
+ ) -> None: ...
+ _HasFieldArgType: _TypeAlias = _typing.Literal["encIv", b"encIv", "encPayload", b"encPayload", "remoteKeyId", b"remoteKeyId", "secretEncType", b"secretEncType", "targetMessageKey", b"targetMessageKey"] # noqa: Y015
+ def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ...
+ _ClearFieldArgType: _TypeAlias = _typing.Literal["encIv", b"encIv", "encPayload", b"encPayload", "remoteKeyId", b"remoteKeyId", "secretEncType", b"secretEncType", "targetMessageKey", b"targetMessageKey"] # noqa: Y015
+ def ClearField(self, field_name: _ClearFieldArgType) -> None: ...
+
+ @_typing.final
+ class SendPaymentMessage(_message.Message):
+ DESCRIPTOR: _descriptor.Descriptor
+
+ NOTEMESSAGE_FIELD_NUMBER: _builtins.int
+ REQUESTMESSAGEKEY_FIELD_NUMBER: _builtins.int
+ BACKGROUND_FIELD_NUMBER: _builtins.int
+ TRANSACTIONDATA_FIELD_NUMBER: _builtins.int
+ transactionData: _builtins.str
+ @_builtins.property
+ def noteMessage(self) -> Global___Message: ...
+ @_builtins.property
+ def requestMessageKey(self) -> Global___MessageKey: ...
+ @_builtins.property
+ def background(self) -> Global___PaymentBackground: ...
+ def __init__(
+ self,
+ *,
+ noteMessage: Global___Message | None = ...,
+ requestMessageKey: Global___MessageKey | None = ...,
+ background: Global___PaymentBackground | None = ...,
+ transactionData: _builtins.str | None = ...,
+ ) -> None: ...
+ _HasFieldArgType: _TypeAlias = _typing.Literal["background", b"background", "noteMessage", b"noteMessage", "requestMessageKey", b"requestMessageKey", "transactionData", b"transactionData"] # noqa: Y015
+ def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ...
+ _ClearFieldArgType: _TypeAlias = _typing.Literal["background", b"background", "noteMessage", b"noteMessage", "requestMessageKey", b"requestMessageKey", "transactionData", b"transactionData"] # noqa: Y015
+ def ClearField(self, field_name: _ClearFieldArgType) -> None: ...
+
+ @_typing.final
+ class SenderKeyDistributionMessage(_message.Message):
+ DESCRIPTOR: _descriptor.Descriptor
+
+ GROUPID_FIELD_NUMBER: _builtins.int
+ AXOLOTLSENDERKEYDISTRIBUTIONMESSAGE_FIELD_NUMBER: _builtins.int
+ groupId: _builtins.str
+ axolotlSenderKeyDistributionMessage: _builtins.bytes
+ def __init__(
+ self,
+ *,
+ groupId: _builtins.str | None = ...,
+ axolotlSenderKeyDistributionMessage: _builtins.bytes | None = ...,
+ ) -> None: ...
+ _HasFieldArgType: _TypeAlias = _typing.Literal["axolotlSenderKeyDistributionMessage", b"axolotlSenderKeyDistributionMessage", "groupId", b"groupId"] # noqa: Y015
+ def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ...
+ _ClearFieldArgType: _TypeAlias = _typing.Literal["axolotlSenderKeyDistributionMessage", b"axolotlSenderKeyDistributionMessage", "groupId", b"groupId"] # noqa: Y015
+ def ClearField(self, field_name: _ClearFieldArgType) -> None: ...
+
+ @_typing.final
+ class SplitPaymentMessage(_message.Message):
+ DESCRIPTOR: _descriptor.Descriptor
+
+ SPLITID_FIELD_NUMBER: _builtins.int
+ TOTALAMOUNT_FIELD_NUMBER: _builtins.int
+ DESCRIPTION_FIELD_NUMBER: _builtins.int
+ REQUESTERJID_FIELD_NUMBER: _builtins.int
+ PARTICIPANTS_FIELD_NUMBER: _builtins.int
+ CREATEDATMS_FIELD_NUMBER: _builtins.int
+ CONTEXTINFO_FIELD_NUMBER: _builtins.int
+ splitId: _builtins.str
+ description: _builtins.str
+ requesterJid: _builtins.str
+ createdAtMs: _builtins.int
+ @_builtins.property
+ def totalAmount(self) -> Global___Money: ...
+ @_builtins.property
+ def participants(self) -> _containers.RepeatedCompositeFieldContainer[Global___Message.SplitPaymentParticipant]: ...
+ @_builtins.property
+ def contextInfo(self) -> Global___ContextInfo: ...
+ def __init__(
+ self,
+ *,
+ splitId: _builtins.str | None = ...,
+ totalAmount: Global___Money | None = ...,
+ description: _builtins.str | None = ...,
+ requesterJid: _builtins.str | None = ...,
+ participants: _abc.Iterable[Global___Message.SplitPaymentParticipant] | None = ...,
+ createdAtMs: _builtins.int | None = ...,
+ contextInfo: Global___ContextInfo | None = ...,
+ ) -> None: ...
+ _HasFieldArgType: _TypeAlias = _typing.Literal["contextInfo", b"contextInfo", "createdAtMs", b"createdAtMs", "description", b"description", "requesterJid", b"requesterJid", "splitId", b"splitId", "totalAmount", b"totalAmount"] # noqa: Y015
+ def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ...
+ _ClearFieldArgType: _TypeAlias = _typing.Literal["contextInfo", b"contextInfo", "createdAtMs", b"createdAtMs", "description", b"description", "participants", b"participants", "requesterJid", b"requesterJid", "splitId", b"splitId", "totalAmount", b"totalAmount"] # noqa: Y015
+ def ClearField(self, field_name: _ClearFieldArgType) -> None: ...
+
+ @_typing.final
+ class SplitPaymentParticipant(_message.Message):
+ DESCRIPTOR: _descriptor.Descriptor
+
+ class _SplitPaymentStatus:
+ ValueType = _typing.NewType("ValueType", _builtins.int)
+ V: _TypeAlias = ValueType # noqa: Y015
+
+ class _SplitPaymentStatusEnumTypeWrapper(_enum_type_wrapper._EnumTypeWrapper[Message.SplitPaymentParticipant._SplitPaymentStatus.ValueType], _builtins.type):
+ DESCRIPTOR: _descriptor.EnumDescriptor
+ PENDING: Message.SplitPaymentParticipant._SplitPaymentStatus.ValueType # 0
+ PAID: Message.SplitPaymentParticipant._SplitPaymentStatus.ValueType # 1
+
+ class SplitPaymentStatus(_SplitPaymentStatus, metaclass=_SplitPaymentStatusEnumTypeWrapper): ...
+ PENDING: Message.SplitPaymentParticipant.SplitPaymentStatus.ValueType # 0
+ PAID: Message.SplitPaymentParticipant.SplitPaymentStatus.ValueType # 1
+
+ JID_FIELD_NUMBER: _builtins.int
+ AMOUNT_FIELD_NUMBER: _builtins.int
+ STATUS_FIELD_NUMBER: _builtins.int
+ jid: _builtins.str
+ status: Global___Message.SplitPaymentParticipant.SplitPaymentStatus.ValueType
+ @_builtins.property
+ def amount(self) -> Global___Money: ...
+ def __init__(
+ self,
+ *,
+ jid: _builtins.str | None = ...,
+ amount: Global___Money | None = ...,
+ status: Global___Message.SplitPaymentParticipant.SplitPaymentStatus.ValueType | None = ...,
+ ) -> None: ...
+ _HasFieldArgType: _TypeAlias = _typing.Literal["amount", b"amount", "jid", b"jid", "status", b"status"] # noqa: Y015
+ def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ...
+ _ClearFieldArgType: _TypeAlias = _typing.Literal["amount", b"amount", "jid", b"jid", "status", b"status"] # noqa: Y015
+ def ClearField(self, field_name: _ClearFieldArgType) -> None: ...
+
+ @_typing.final
+ class SplitPaymentUpdateMessage(_message.Message):
+ DESCRIPTOR: _descriptor.Descriptor
+
+ SPLITID_FIELD_NUMBER: _builtins.int
+ PARTICIPANTJID_FIELD_NUMBER: _builtins.int
+ splitId: _builtins.str
+ participantJid: _builtins.str
+ def __init__(
+ self,
+ *,
+ splitId: _builtins.str | None = ...,
+ participantJid: _builtins.str | None = ...,
+ ) -> None: ...
+ _HasFieldArgType: _TypeAlias = _typing.Literal["participantJid", b"participantJid", "splitId", b"splitId"] # noqa: Y015
+ def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ...
+ _ClearFieldArgType: _TypeAlias = _typing.Literal["participantJid", b"participantJid", "splitId", b"splitId"] # noqa: Y015
+ def ClearField(self, field_name: _ClearFieldArgType) -> None: ...
+
+ @_typing.final
+ class StatusLinkPreviewMetadata(_message.Message):
+ DESCRIPTOR: _descriptor.Descriptor
+
+ class _Style:
+ ValueType = _typing.NewType("ValueType", _builtins.int)
+ V: _TypeAlias = ValueType # noqa: Y015
+
+ class _StyleEnumTypeWrapper(_enum_type_wrapper._EnumTypeWrapper[Message.StatusLinkPreviewMetadata._Style.ValueType], _builtins.type):
+ DESCRIPTOR: _descriptor.EnumDescriptor
+ AUTO: Message.StatusLinkPreviewMetadata._Style.ValueType # 0
+ COMPACT: Message.StatusLinkPreviewMetadata._Style.ValueType # 1
+ FULL: Message.StatusLinkPreviewMetadata._Style.ValueType # 2
+ IMMERSIVE: Message.StatusLinkPreviewMetadata._Style.ValueType # 3
+
+ class Style(_Style, metaclass=_StyleEnumTypeWrapper): ...
+ AUTO: Message.StatusLinkPreviewMetadata.Style.ValueType # 0
+ COMPACT: Message.StatusLinkPreviewMetadata.Style.ValueType # 1
+ FULL: Message.StatusLinkPreviewMetadata.Style.ValueType # 2
+ IMMERSIVE: Message.StatusLinkPreviewMetadata.Style.ValueType # 3
+
+ STYLE_FIELD_NUMBER: _builtins.int
+ style: Global___Message.StatusLinkPreviewMetadata.Style.ValueType
+ def __init__(
+ self,
+ *,
+ style: Global___Message.StatusLinkPreviewMetadata.Style.ValueType | None = ...,
+ ) -> None: ...
+ _HasFieldArgType: _TypeAlias = _typing.Literal["style", b"style"] # noqa: Y015
+ def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ...
+ _ClearFieldArgType: _TypeAlias = _typing.Literal["style", b"style"] # noqa: Y015
+ def ClearField(self, field_name: _ClearFieldArgType) -> None: ...
+
+ @_typing.final
+ class StatusNotificationMessage(_message.Message):
+ DESCRIPTOR: _descriptor.Descriptor
+
+ class _StatusNotificationType:
+ ValueType = _typing.NewType("ValueType", _builtins.int)
+ V: _TypeAlias = ValueType # noqa: Y015
+
+ class _StatusNotificationTypeEnumTypeWrapper(_enum_type_wrapper._EnumTypeWrapper[Message.StatusNotificationMessage._StatusNotificationType.ValueType], _builtins.type):
+ DESCRIPTOR: _descriptor.EnumDescriptor
+ UNKNOWN: Message.StatusNotificationMessage._StatusNotificationType.ValueType # 0
+ STATUS_ADD_YOURS: Message.StatusNotificationMessage._StatusNotificationType.ValueType # 1
+ STATUS_RESHARE: Message.StatusNotificationMessage._StatusNotificationType.ValueType # 2
+ STATUS_QUESTION_ANSWER_RESHARE: Message.StatusNotificationMessage._StatusNotificationType.ValueType # 3
+ STATUS_GROUP_STATUS_REPLY: Message.StatusNotificationMessage._StatusNotificationType.ValueType # 4
+
+ class StatusNotificationType(_StatusNotificationType, metaclass=_StatusNotificationTypeEnumTypeWrapper): ...
+ UNKNOWN: Message.StatusNotificationMessage.StatusNotificationType.ValueType # 0
+ STATUS_ADD_YOURS: Message.StatusNotificationMessage.StatusNotificationType.ValueType # 1
+ STATUS_RESHARE: Message.StatusNotificationMessage.StatusNotificationType.ValueType # 2
+ STATUS_QUESTION_ANSWER_RESHARE: Message.StatusNotificationMessage.StatusNotificationType.ValueType # 3
+ STATUS_GROUP_STATUS_REPLY: Message.StatusNotificationMessage.StatusNotificationType.ValueType # 4
+
+ RESPONSEMESSAGEKEY_FIELD_NUMBER: _builtins.int
+ ORIGINALMESSAGEKEY_FIELD_NUMBER: _builtins.int
+ TYPE_FIELD_NUMBER: _builtins.int
+ type: Global___Message.StatusNotificationMessage.StatusNotificationType.ValueType
+ @_builtins.property
+ def responseMessageKey(self) -> Global___MessageKey: ...
+ @_builtins.property
+ def originalMessageKey(self) -> Global___MessageKey: ...
+ def __init__(
+ self,
+ *,
+ responseMessageKey: Global___MessageKey | None = ...,
+ originalMessageKey: Global___MessageKey | None = ...,
+ type: Global___Message.StatusNotificationMessage.StatusNotificationType.ValueType | None = ...,
+ ) -> None: ...
+ _HasFieldArgType: _TypeAlias = _typing.Literal["originalMessageKey", b"originalMessageKey", "responseMessageKey", b"responseMessageKey", "type", b"type"] # noqa: Y015
+ def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ...
+ _ClearFieldArgType: _TypeAlias = _typing.Literal["originalMessageKey", b"originalMessageKey", "responseMessageKey", b"responseMessageKey", "type", b"type"] # noqa: Y015
+ def ClearField(self, field_name: _ClearFieldArgType) -> None: ...
+
+ @_typing.final
+ class StatusQuestionAnswerMessage(_message.Message):
+ DESCRIPTOR: _descriptor.Descriptor
+
+ KEY_FIELD_NUMBER: _builtins.int
+ TEXT_FIELD_NUMBER: _builtins.int
+ text: _builtins.str
+ @_builtins.property
+ def key(self) -> Global___MessageKey: ...
+ def __init__(
+ self,
+ *,
+ key: Global___MessageKey | None = ...,
+ text: _builtins.str | None = ...,
+ ) -> None: ...
+ _HasFieldArgType: _TypeAlias = _typing.Literal["key", b"key", "text", b"text"] # noqa: Y015
+ def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ...
+ _ClearFieldArgType: _TypeAlias = _typing.Literal["key", b"key", "text", b"text"] # noqa: Y015
+ def ClearField(self, field_name: _ClearFieldArgType) -> None: ...
+
+ @_typing.final
+ class StatusQuotedMessage(_message.Message):
+ DESCRIPTOR: _descriptor.Descriptor
+
+ class _StatusQuotedMessageType:
+ ValueType = _typing.NewType("ValueType", _builtins.int)
+ V: _TypeAlias = ValueType # noqa: Y015
+
+ class _StatusQuotedMessageTypeEnumTypeWrapper(_enum_type_wrapper._EnumTypeWrapper[Message.StatusQuotedMessage._StatusQuotedMessageType.ValueType], _builtins.type):
+ DESCRIPTOR: _descriptor.EnumDescriptor
+ QUESTION_ANSWER: Message.StatusQuotedMessage._StatusQuotedMessageType.ValueType # 1
+
+ class StatusQuotedMessageType(_StatusQuotedMessageType, metaclass=_StatusQuotedMessageTypeEnumTypeWrapper): ...
+ QUESTION_ANSWER: Message.StatusQuotedMessage.StatusQuotedMessageType.ValueType # 1
+
+ TYPE_FIELD_NUMBER: _builtins.int
+ TEXT_FIELD_NUMBER: _builtins.int
+ THUMBNAIL_FIELD_NUMBER: _builtins.int
+ ORIGINALSTATUSID_FIELD_NUMBER: _builtins.int
+ type: Global___Message.StatusQuotedMessage.StatusQuotedMessageType.ValueType
+ text: _builtins.str
+ thumbnail: _builtins.bytes
+ @_builtins.property
+ def originalStatusId(self) -> Global___MessageKey: ...
+ def __init__(
+ self,
+ *,
+ type: Global___Message.StatusQuotedMessage.StatusQuotedMessageType.ValueType | None = ...,
+ text: _builtins.str | None = ...,
+ thumbnail: _builtins.bytes | None = ...,
+ originalStatusId: Global___MessageKey | None = ...,
+ ) -> None: ...
+ _HasFieldArgType: _TypeAlias = _typing.Literal["originalStatusId", b"originalStatusId", "text", b"text", "thumbnail", b"thumbnail", "type", b"type"] # noqa: Y015
+ def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ...
+ _ClearFieldArgType: _TypeAlias = _typing.Literal["originalStatusId", b"originalStatusId", "text", b"text", "thumbnail", b"thumbnail", "type", b"type"] # noqa: Y015
+ def ClearField(self, field_name: _ClearFieldArgType) -> None: ...
+
+ @_typing.final
+ class StatusStickerInteractionMessage(_message.Message):
+ DESCRIPTOR: _descriptor.Descriptor
+
+ class _StatusStickerType:
+ ValueType = _typing.NewType("ValueType", _builtins.int)
+ V: _TypeAlias = ValueType # noqa: Y015
+
+ class _StatusStickerTypeEnumTypeWrapper(_enum_type_wrapper._EnumTypeWrapper[Message.StatusStickerInteractionMessage._StatusStickerType.ValueType], _builtins.type):
+ DESCRIPTOR: _descriptor.EnumDescriptor
+ UNKNOWN: Message.StatusStickerInteractionMessage._StatusStickerType.ValueType # 0
+ REACTION: Message.StatusStickerInteractionMessage._StatusStickerType.ValueType # 1
+
+ class StatusStickerType(_StatusStickerType, metaclass=_StatusStickerTypeEnumTypeWrapper): ...
+ UNKNOWN: Message.StatusStickerInteractionMessage.StatusStickerType.ValueType # 0
+ REACTION: Message.StatusStickerInteractionMessage.StatusStickerType.ValueType # 1
+
+ KEY_FIELD_NUMBER: _builtins.int
+ STICKERKEY_FIELD_NUMBER: _builtins.int
+ TYPE_FIELD_NUMBER: _builtins.int
+ stickerKey: _builtins.str
+ type: Global___Message.StatusStickerInteractionMessage.StatusStickerType.ValueType
+ @_builtins.property
+ def key(self) -> Global___MessageKey: ...
+ def __init__(
+ self,
+ *,
+ key: Global___MessageKey | None = ...,
+ stickerKey: _builtins.str | None = ...,
+ type: Global___Message.StatusStickerInteractionMessage.StatusStickerType.ValueType | None = ...,
+ ) -> None: ...
+ _HasFieldArgType: _TypeAlias = _typing.Literal["key", b"key", "stickerKey", b"stickerKey", "type", b"type"] # noqa: Y015
+ def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ...
+ _ClearFieldArgType: _TypeAlias = _typing.Literal["key", b"key", "stickerKey", b"stickerKey", "type", b"type"] # noqa: Y015
+ def ClearField(self, field_name: _ClearFieldArgType) -> None: ...
+
+ @_typing.final
+ class StickerMessage(_message.Message):
+ DESCRIPTOR: _descriptor.Descriptor
+
+ URL_FIELD_NUMBER: _builtins.int
+ FILESHA256_FIELD_NUMBER: _builtins.int
+ FILEENCSHA256_FIELD_NUMBER: _builtins.int
+ MEDIAKEY_FIELD_NUMBER: _builtins.int
+ MIMETYPE_FIELD_NUMBER: _builtins.int
+ HEIGHT_FIELD_NUMBER: _builtins.int
+ WIDTH_FIELD_NUMBER: _builtins.int
+ DIRECTPATH_FIELD_NUMBER: _builtins.int
+ FILELENGTH_FIELD_NUMBER: _builtins.int
+ MEDIAKEYTIMESTAMP_FIELD_NUMBER: _builtins.int
+ FIRSTFRAMELENGTH_FIELD_NUMBER: _builtins.int
+ FIRSTFRAMESIDECAR_FIELD_NUMBER: _builtins.int
+ ISANIMATED_FIELD_NUMBER: _builtins.int
+ PNGTHUMBNAIL_FIELD_NUMBER: _builtins.int
+ CONTEXTINFO_FIELD_NUMBER: _builtins.int
+ STICKERSENTTS_FIELD_NUMBER: _builtins.int
+ ISAVATAR_FIELD_NUMBER: _builtins.int
+ ISAISTICKER_FIELD_NUMBER: _builtins.int
+ ISLOTTIE_FIELD_NUMBER: _builtins.int
+ ACCESSIBILITYLABEL_FIELD_NUMBER: _builtins.int
+ PREMIUM_FIELD_NUMBER: _builtins.int
+ EMOJIS_FIELD_NUMBER: _builtins.int
+ url: _builtins.str
+ fileSha256: _builtins.bytes
+ fileEncSha256: _builtins.bytes
+ mediaKey: _builtins.bytes
+ mimetype: _builtins.str
+ height: _builtins.int
+ width: _builtins.int
+ directPath: _builtins.str
+ fileLength: _builtins.int
+ mediaKeyTimestamp: _builtins.int
+ firstFrameLength: _builtins.int
+ firstFrameSidecar: _builtins.bytes
+ isAnimated: _builtins.bool
+ pngThumbnail: _builtins.bytes
+ stickerSentTs: _builtins.int
+ isAvatar: _builtins.bool
+ isAiSticker: _builtins.bool
+ isLottie: _builtins.bool
+ accessibilityLabel: _builtins.str
+ premium: _builtins.int
+ emojis: _builtins.str
+ @_builtins.property
+ def contextInfo(self) -> Global___ContextInfo: ...
+ def __init__(
+ self,
+ *,
+ url: _builtins.str | None = ...,
+ fileSha256: _builtins.bytes | None = ...,
+ fileEncSha256: _builtins.bytes | None = ...,
+ mediaKey: _builtins.bytes | None = ...,
+ mimetype: _builtins.str | None = ...,
+ height: _builtins.int | None = ...,
+ width: _builtins.int | None = ...,
+ directPath: _builtins.str | None = ...,
+ fileLength: _builtins.int | None = ...,
+ mediaKeyTimestamp: _builtins.int | None = ...,
+ firstFrameLength: _builtins.int | None = ...,
+ firstFrameSidecar: _builtins.bytes | None = ...,
+ isAnimated: _builtins.bool | None = ...,
+ pngThumbnail: _builtins.bytes | None = ...,
+ contextInfo: Global___ContextInfo | None = ...,
+ stickerSentTs: _builtins.int | None = ...,
+ isAvatar: _builtins.bool | None = ...,
+ isAiSticker: _builtins.bool | None = ...,
+ isLottie: _builtins.bool | None = ...,
+ accessibilityLabel: _builtins.str | None = ...,
+ premium: _builtins.int | None = ...,
+ emojis: _builtins.str | None = ...,
+ ) -> None: ...
+ _HasFieldArgType: _TypeAlias = _typing.Literal["accessibilityLabel", b"accessibilityLabel", "contextInfo", b"contextInfo", "directPath", b"directPath", "emojis", b"emojis", "fileEncSha256", b"fileEncSha256", "fileLength", b"fileLength", "fileSha256", b"fileSha256", "firstFrameLength", b"firstFrameLength", "firstFrameSidecar", b"firstFrameSidecar", "height", b"height", "isAiSticker", b"isAiSticker", "isAnimated", b"isAnimated", "isAvatar", b"isAvatar", "isLottie", b"isLottie", "mediaKey", b"mediaKey", "mediaKeyTimestamp", b"mediaKeyTimestamp", "mimetype", b"mimetype", "pngThumbnail", b"pngThumbnail", "premium", b"premium", "stickerSentTs", b"stickerSentTs", "url", b"url", "width", b"width"] # noqa: Y015
+ def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ...
+ _ClearFieldArgType: _TypeAlias = _typing.Literal["accessibilityLabel", b"accessibilityLabel", "contextInfo", b"contextInfo", "directPath", b"directPath", "emojis", b"emojis", "fileEncSha256", b"fileEncSha256", "fileLength", b"fileLength", "fileSha256", b"fileSha256", "firstFrameLength", b"firstFrameLength", "firstFrameSidecar", b"firstFrameSidecar", "height", b"height", "isAiSticker", b"isAiSticker", "isAnimated", b"isAnimated", "isAvatar", b"isAvatar", "isLottie", b"isLottie", "mediaKey", b"mediaKey", "mediaKeyTimestamp", b"mediaKeyTimestamp", "mimetype", b"mimetype", "pngThumbnail", b"pngThumbnail", "premium", b"premium", "stickerSentTs", b"stickerSentTs", "url", b"url", "width", b"width"] # noqa: Y015
+ def ClearField(self, field_name: _ClearFieldArgType) -> None: ...
+
+ @_typing.final
+ class StickerPackMessage(_message.Message):
+ DESCRIPTOR: _descriptor.Descriptor
+
+ class _StickerPackOrigin:
+ ValueType = _typing.NewType("ValueType", _builtins.int)
+ V: _TypeAlias = ValueType # noqa: Y015
+
+ class _StickerPackOriginEnumTypeWrapper(_enum_type_wrapper._EnumTypeWrapper[Message.StickerPackMessage._StickerPackOrigin.ValueType], _builtins.type):
+ DESCRIPTOR: _descriptor.EnumDescriptor
+ FIRST_PARTY: Message.StickerPackMessage._StickerPackOrigin.ValueType # 0
+ THIRD_PARTY: Message.StickerPackMessage._StickerPackOrigin.ValueType # 1
+ USER_CREATED: Message.StickerPackMessage._StickerPackOrigin.ValueType # 2
+
+ class StickerPackOrigin(_StickerPackOrigin, metaclass=_StickerPackOriginEnumTypeWrapper): ...
+ FIRST_PARTY: Message.StickerPackMessage.StickerPackOrigin.ValueType # 0
+ THIRD_PARTY: Message.StickerPackMessage.StickerPackOrigin.ValueType # 1
+ USER_CREATED: Message.StickerPackMessage.StickerPackOrigin.ValueType # 2
+
+ @_typing.final
+ class Sticker(_message.Message):
+ DESCRIPTOR: _descriptor.Descriptor
+
+ FILENAME_FIELD_NUMBER: _builtins.int
+ ISANIMATED_FIELD_NUMBER: _builtins.int
+ EMOJIS_FIELD_NUMBER: _builtins.int
+ ACCESSIBILITYLABEL_FIELD_NUMBER: _builtins.int
+ ISLOTTIE_FIELD_NUMBER: _builtins.int
+ MIMETYPE_FIELD_NUMBER: _builtins.int
+ PREMIUM_FIELD_NUMBER: _builtins.int
+ fileName: _builtins.str
+ isAnimated: _builtins.bool
+ accessibilityLabel: _builtins.str
+ isLottie: _builtins.bool
+ mimetype: _builtins.str
+ premium: _builtins.int
+ @_builtins.property
+ def emojis(self) -> _containers.RepeatedScalarFieldContainer[_builtins.str]: ...
+ def __init__(
+ self,
+ *,
+ fileName: _builtins.str | None = ...,
+ isAnimated: _builtins.bool | None = ...,
+ emojis: _abc.Iterable[_builtins.str] | None = ...,
+ accessibilityLabel: _builtins.str | None = ...,
+ isLottie: _builtins.bool | None = ...,
+ mimetype: _builtins.str | None = ...,
+ premium: _builtins.int | None = ...,
+ ) -> None: ...
+ _HasFieldArgType: _TypeAlias = _typing.Literal["accessibilityLabel", b"accessibilityLabel", "fileName", b"fileName", "isAnimated", b"isAnimated", "isLottie", b"isLottie", "mimetype", b"mimetype", "premium", b"premium"] # noqa: Y015
+ def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ...
+ _ClearFieldArgType: _TypeAlias = _typing.Literal["accessibilityLabel", b"accessibilityLabel", "emojis", b"emojis", "fileName", b"fileName", "isAnimated", b"isAnimated", "isLottie", b"isLottie", "mimetype", b"mimetype", "premium", b"premium"] # noqa: Y015
+ def ClearField(self, field_name: _ClearFieldArgType) -> None: ...
+
+ STICKERPACKID_FIELD_NUMBER: _builtins.int
+ NAME_FIELD_NUMBER: _builtins.int
+ PUBLISHER_FIELD_NUMBER: _builtins.int
+ STICKERS_FIELD_NUMBER: _builtins.int
+ FILELENGTH_FIELD_NUMBER: _builtins.int
+ FILESHA256_FIELD_NUMBER: _builtins.int
+ FILEENCSHA256_FIELD_NUMBER: _builtins.int
+ MEDIAKEY_FIELD_NUMBER: _builtins.int
+ DIRECTPATH_FIELD_NUMBER: _builtins.int
+ CAPTION_FIELD_NUMBER: _builtins.int
+ CONTEXTINFO_FIELD_NUMBER: _builtins.int
+ PACKDESCRIPTION_FIELD_NUMBER: _builtins.int
+ MEDIAKEYTIMESTAMP_FIELD_NUMBER: _builtins.int
+ TRAYICONFILENAME_FIELD_NUMBER: _builtins.int
+ THUMBNAILDIRECTPATH_FIELD_NUMBER: _builtins.int
+ THUMBNAILSHA256_FIELD_NUMBER: _builtins.int
+ THUMBNAILENCSHA256_FIELD_NUMBER: _builtins.int
+ THUMBNAILHEIGHT_FIELD_NUMBER: _builtins.int
+ THUMBNAILWIDTH_FIELD_NUMBER: _builtins.int
+ IMAGEDATAHASH_FIELD_NUMBER: _builtins.int
+ STICKERPACKSIZE_FIELD_NUMBER: _builtins.int
+ STICKERPACKORIGIN_FIELD_NUMBER: _builtins.int
+ stickerPackId: _builtins.str
+ name: _builtins.str
+ publisher: _builtins.str
+ fileLength: _builtins.int
+ fileSha256: _builtins.bytes
+ fileEncSha256: _builtins.bytes
+ mediaKey: _builtins.bytes
+ directPath: _builtins.str
+ caption: _builtins.str
+ packDescription: _builtins.str
+ mediaKeyTimestamp: _builtins.int
+ trayIconFileName: _builtins.str
+ thumbnailDirectPath: _builtins.str
+ thumbnailSha256: _builtins.bytes
+ thumbnailEncSha256: _builtins.bytes
+ thumbnailHeight: _builtins.int
+ thumbnailWidth: _builtins.int
+ imageDataHash: _builtins.str
+ stickerPackSize: _builtins.int
+ stickerPackOrigin: Global___Message.StickerPackMessage.StickerPackOrigin.ValueType
+ @_builtins.property
+ def stickers(self) -> _containers.RepeatedCompositeFieldContainer[Global___Message.StickerPackMessage.Sticker]: ...
+ @_builtins.property
+ def contextInfo(self) -> Global___ContextInfo: ...
+ def __init__(
+ self,
+ *,
+ stickerPackId: _builtins.str | None = ...,
+ name: _builtins.str | None = ...,
+ publisher: _builtins.str | None = ...,
+ stickers: _abc.Iterable[Global___Message.StickerPackMessage.Sticker] | None = ...,
+ fileLength: _builtins.int | None = ...,
+ fileSha256: _builtins.bytes | None = ...,
+ fileEncSha256: _builtins.bytes | None = ...,
+ mediaKey: _builtins.bytes | None = ...,
+ directPath: _builtins.str | None = ...,
+ caption: _builtins.str | None = ...,
+ contextInfo: Global___ContextInfo | None = ...,
+ packDescription: _builtins.str | None = ...,
+ mediaKeyTimestamp: _builtins.int | None = ...,
+ trayIconFileName: _builtins.str | None = ...,
+ thumbnailDirectPath: _builtins.str | None = ...,
+ thumbnailSha256: _builtins.bytes | None = ...,
+ thumbnailEncSha256: _builtins.bytes | None = ...,
+ thumbnailHeight: _builtins.int | None = ...,
+ thumbnailWidth: _builtins.int | None = ...,
+ imageDataHash: _builtins.str | None = ...,
+ stickerPackSize: _builtins.int | None = ...,
+ stickerPackOrigin: Global___Message.StickerPackMessage.StickerPackOrigin.ValueType | None = ...,
+ ) -> None: ...
+ _HasFieldArgType: _TypeAlias = _typing.Literal["caption", b"caption", "contextInfo", b"contextInfo", "directPath", b"directPath", "fileEncSha256", b"fileEncSha256", "fileLength", b"fileLength", "fileSha256", b"fileSha256", "imageDataHash", b"imageDataHash", "mediaKey", b"mediaKey", "mediaKeyTimestamp", b"mediaKeyTimestamp", "name", b"name", "packDescription", b"packDescription", "publisher", b"publisher", "stickerPackId", b"stickerPackId", "stickerPackOrigin", b"stickerPackOrigin", "stickerPackSize", b"stickerPackSize", "thumbnailDirectPath", b"thumbnailDirectPath", "thumbnailEncSha256", b"thumbnailEncSha256", "thumbnailHeight", b"thumbnailHeight", "thumbnailSha256", b"thumbnailSha256", "thumbnailWidth", b"thumbnailWidth", "trayIconFileName", b"trayIconFileName"] # noqa: Y015
+ def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ...
+ _ClearFieldArgType: _TypeAlias = _typing.Literal["caption", b"caption", "contextInfo", b"contextInfo", "directPath", b"directPath", "fileEncSha256", b"fileEncSha256", "fileLength", b"fileLength", "fileSha256", b"fileSha256", "imageDataHash", b"imageDataHash", "mediaKey", b"mediaKey", "mediaKeyTimestamp", b"mediaKeyTimestamp", "name", b"name", "packDescription", b"packDescription", "publisher", b"publisher", "stickerPackId", b"stickerPackId", "stickerPackOrigin", b"stickerPackOrigin", "stickerPackSize", b"stickerPackSize", "stickers", b"stickers", "thumbnailDirectPath", b"thumbnailDirectPath", "thumbnailEncSha256", b"thumbnailEncSha256", "thumbnailHeight", b"thumbnailHeight", "thumbnailSha256", b"thumbnailSha256", "thumbnailWidth", b"thumbnailWidth", "trayIconFileName", b"trayIconFileName"] # noqa: Y015
+ def ClearField(self, field_name: _ClearFieldArgType) -> None: ...
+
+ @_typing.final
+ class StickerSyncRMRMessage(_message.Message):
+ DESCRIPTOR: _descriptor.Descriptor
+
+ FILEHASH_FIELD_NUMBER: _builtins.int
+ RMRSOURCE_FIELD_NUMBER: _builtins.int
+ REQUESTTIMESTAMP_FIELD_NUMBER: _builtins.int
+ rmrSource: _builtins.str
+ requestTimestamp: _builtins.int
+ @_builtins.property
+ def filehash(self) -> _containers.RepeatedScalarFieldContainer[_builtins.str]: ...
+ def __init__(
+ self,
+ *,
+ filehash: _abc.Iterable[_builtins.str] | None = ...,
+ rmrSource: _builtins.str | None = ...,
+ requestTimestamp: _builtins.int | None = ...,
+ ) -> None: ...
+ _HasFieldArgType: _TypeAlias = _typing.Literal["requestTimestamp", b"requestTimestamp", "rmrSource", b"rmrSource"] # noqa: Y015
+ def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ...
+ _ClearFieldArgType: _TypeAlias = _typing.Literal["filehash", b"filehash", "requestTimestamp", b"requestTimestamp", "rmrSource", b"rmrSource"] # noqa: Y015
+ def ClearField(self, field_name: _ClearFieldArgType) -> None: ...
+
+ @_typing.final
+ class TemplateButtonReplyMessage(_message.Message):
+ DESCRIPTOR: _descriptor.Descriptor
+
+ SELECTEDID_FIELD_NUMBER: _builtins.int
+ SELECTEDDISPLAYTEXT_FIELD_NUMBER: _builtins.int
+ CONTEXTINFO_FIELD_NUMBER: _builtins.int
+ SELECTEDINDEX_FIELD_NUMBER: _builtins.int
+ SELECTEDCAROUSELCARDINDEX_FIELD_NUMBER: _builtins.int
+ selectedId: _builtins.str
+ selectedDisplayText: _builtins.str
+ selectedIndex: _builtins.int
+ selectedCarouselCardIndex: _builtins.int
+ @_builtins.property
+ def contextInfo(self) -> Global___ContextInfo: ...
+ def __init__(
+ self,
+ *,
+ selectedId: _builtins.str | None = ...,
+ selectedDisplayText: _builtins.str | None = ...,
+ contextInfo: Global___ContextInfo | None = ...,
+ selectedIndex: _builtins.int | None = ...,
+ selectedCarouselCardIndex: _builtins.int | None = ...,
+ ) -> None: ...
+ _HasFieldArgType: _TypeAlias = _typing.Literal["contextInfo", b"contextInfo", "selectedCarouselCardIndex", b"selectedCarouselCardIndex", "selectedDisplayText", b"selectedDisplayText", "selectedId", b"selectedId", "selectedIndex", b"selectedIndex"] # noqa: Y015
+ def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ...
+ _ClearFieldArgType: _TypeAlias = _typing.Literal["contextInfo", b"contextInfo", "selectedCarouselCardIndex", b"selectedCarouselCardIndex", "selectedDisplayText", b"selectedDisplayText", "selectedId", b"selectedId", "selectedIndex", b"selectedIndex"] # noqa: Y015
+ def ClearField(self, field_name: _ClearFieldArgType) -> None: ...
+
+ @_typing.final
+ class TemplateMessage(_message.Message):
+ DESCRIPTOR: _descriptor.Descriptor
+
+ @_typing.final
+ class FourRowTemplate(_message.Message):
+ DESCRIPTOR: _descriptor.Descriptor
+
+ CONTENT_FIELD_NUMBER: _builtins.int
+ FOOTER_FIELD_NUMBER: _builtins.int
+ BUTTONS_FIELD_NUMBER: _builtins.int
+ DOCUMENTMESSAGE_FIELD_NUMBER: _builtins.int
+ HIGHLYSTRUCTUREDMESSAGE_FIELD_NUMBER: _builtins.int
+ IMAGEMESSAGE_FIELD_NUMBER: _builtins.int
+ VIDEOMESSAGE_FIELD_NUMBER: _builtins.int
+ LOCATIONMESSAGE_FIELD_NUMBER: _builtins.int
+ @_builtins.property
+ def content(self) -> Global___Message.HighlyStructuredMessage: ...
+ @_builtins.property
+ def footer(self) -> Global___Message.HighlyStructuredMessage: ...
+ @_builtins.property
+ def buttons(self) -> _containers.RepeatedCompositeFieldContainer[Global___TemplateButton]: ...
+ @_builtins.property
+ def documentMessage(self) -> Global___Message.DocumentMessage: ...
+ @_builtins.property
+ def highlyStructuredMessage(self) -> Global___Message.HighlyStructuredMessage: ...
+ @_builtins.property
+ def imageMessage(self) -> Global___Message.ImageMessage: ...
+ @_builtins.property
+ def videoMessage(self) -> Global___Message.VideoMessage: ...
+ @_builtins.property
+ def locationMessage(self) -> Global___Message.LocationMessage: ...
+ def __init__(
+ self,
+ *,
+ content: Global___Message.HighlyStructuredMessage | None = ...,
+ footer: Global___Message.HighlyStructuredMessage | None = ...,
+ buttons: _abc.Iterable[Global___TemplateButton] | None = ...,
+ documentMessage: Global___Message.DocumentMessage | None = ...,
+ highlyStructuredMessage: Global___Message.HighlyStructuredMessage | None = ...,
+ imageMessage: Global___Message.ImageMessage | None = ...,
+ videoMessage: Global___Message.VideoMessage | None = ...,
+ locationMessage: Global___Message.LocationMessage | None = ...,
+ ) -> None: ...
+ _HasFieldArgType: _TypeAlias = _typing.Literal["content", b"content", "documentMessage", b"documentMessage", "footer", b"footer", "highlyStructuredMessage", b"highlyStructuredMessage", "imageMessage", b"imageMessage", "locationMessage", b"locationMessage", "title", b"title", "videoMessage", b"videoMessage"] # noqa: Y015
+ def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ...
+ _ClearFieldArgType: _TypeAlias = _typing.Literal["buttons", b"buttons", "content", b"content", "documentMessage", b"documentMessage", "footer", b"footer", "highlyStructuredMessage", b"highlyStructuredMessage", "imageMessage", b"imageMessage", "locationMessage", b"locationMessage", "title", b"title", "videoMessage", b"videoMessage"] # noqa: Y015
+ def ClearField(self, field_name: _ClearFieldArgType) -> None: ...
+ _WhichOneofReturnType_title: _TypeAlias = _typing.Literal["documentMessage", "highlyStructuredMessage", "imageMessage", "videoMessage", "locationMessage"] # noqa: Y015
+ _WhichOneofArgType_title: _TypeAlias = _typing.Literal["title", b"title"] # noqa: Y015
+ def WhichOneof(self, oneof_group: _WhichOneofArgType_title) -> _WhichOneofReturnType_title | None: ...
+
+ @_typing.final
+ class HydratedFourRowTemplate(_message.Message):
+ DESCRIPTOR: _descriptor.Descriptor
+
+ HYDRATEDCONTENTTEXT_FIELD_NUMBER: _builtins.int
+ HYDRATEDFOOTERTEXT_FIELD_NUMBER: _builtins.int
+ HYDRATEDBUTTONS_FIELD_NUMBER: _builtins.int
+ TEMPLATEID_FIELD_NUMBER: _builtins.int
+ MASKLINKEDDEVICES_FIELD_NUMBER: _builtins.int
+ DOCUMENTMESSAGE_FIELD_NUMBER: _builtins.int
+ HYDRATEDTITLETEXT_FIELD_NUMBER: _builtins.int
+ IMAGEMESSAGE_FIELD_NUMBER: _builtins.int
+ VIDEOMESSAGE_FIELD_NUMBER: _builtins.int
+ LOCATIONMESSAGE_FIELD_NUMBER: _builtins.int
+ hydratedContentText: _builtins.str
+ hydratedFooterText: _builtins.str
+ templateId: _builtins.str
+ maskLinkedDevices: _builtins.bool
+ hydratedTitleText: _builtins.str
+ @_builtins.property
+ def hydratedButtons(self) -> _containers.RepeatedCompositeFieldContainer[Global___HydratedTemplateButton]: ...
+ @_builtins.property
+ def documentMessage(self) -> Global___Message.DocumentMessage: ...
+ @_builtins.property
+ def imageMessage(self) -> Global___Message.ImageMessage: ...
+ @_builtins.property
+ def videoMessage(self) -> Global___Message.VideoMessage: ...
+ @_builtins.property
+ def locationMessage(self) -> Global___Message.LocationMessage: ...
+ def __init__(
+ self,
+ *,
+ hydratedContentText: _builtins.str | None = ...,
+ hydratedFooterText: _builtins.str | None = ...,
+ hydratedButtons: _abc.Iterable[Global___HydratedTemplateButton] | None = ...,
+ templateId: _builtins.str | None = ...,
+ maskLinkedDevices: _builtins.bool | None = ...,
+ documentMessage: Global___Message.DocumentMessage | None = ...,
+ hydratedTitleText: _builtins.str | None = ...,
+ imageMessage: Global___Message.ImageMessage | None = ...,
+ videoMessage: Global___Message.VideoMessage | None = ...,
+ locationMessage: Global___Message.LocationMessage | None = ...,
+ ) -> None: ...
+ _HasFieldArgType: _TypeAlias = _typing.Literal["documentMessage", b"documentMessage", "hydratedContentText", b"hydratedContentText", "hydratedFooterText", b"hydratedFooterText", "hydratedTitleText", b"hydratedTitleText", "imageMessage", b"imageMessage", "locationMessage", b"locationMessage", "maskLinkedDevices", b"maskLinkedDevices", "templateId", b"templateId", "title", b"title", "videoMessage", b"videoMessage"] # noqa: Y015
+ def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ...
+ _ClearFieldArgType: _TypeAlias = _typing.Literal["documentMessage", b"documentMessage", "hydratedButtons", b"hydratedButtons", "hydratedContentText", b"hydratedContentText", "hydratedFooterText", b"hydratedFooterText", "hydratedTitleText", b"hydratedTitleText", "imageMessage", b"imageMessage", "locationMessage", b"locationMessage", "maskLinkedDevices", b"maskLinkedDevices", "templateId", b"templateId", "title", b"title", "videoMessage", b"videoMessage"] # noqa: Y015
+ def ClearField(self, field_name: _ClearFieldArgType) -> None: ...
+ _WhichOneofReturnType_title: _TypeAlias = _typing.Literal["documentMessage", "hydratedTitleText", "imageMessage", "videoMessage", "locationMessage"] # noqa: Y015
+ _WhichOneofArgType_title: _TypeAlias = _typing.Literal["title", b"title"] # noqa: Y015
+ def WhichOneof(self, oneof_group: _WhichOneofArgType_title) -> _WhichOneofReturnType_title | None: ...
+
+ CONTEXTINFO_FIELD_NUMBER: _builtins.int
+ HYDRATEDTEMPLATE_FIELD_NUMBER: _builtins.int
+ TEMPLATEID_FIELD_NUMBER: _builtins.int
+ FOURROWTEMPLATE_FIELD_NUMBER: _builtins.int
+ HYDRATEDFOURROWTEMPLATE_FIELD_NUMBER: _builtins.int
+ INTERACTIVEMESSAGETEMPLATE_FIELD_NUMBER: _builtins.int
+ templateId: _builtins.str
+ @_builtins.property
+ def contextInfo(self) -> Global___ContextInfo: ...
+ @_builtins.property
+ def hydratedTemplate(self) -> Global___Message.TemplateMessage.HydratedFourRowTemplate: ...
+ @_builtins.property
+ def fourRowTemplate(self) -> Global___Message.TemplateMessage.FourRowTemplate: ...
+ @_builtins.property
+ def hydratedFourRowTemplate(self) -> Global___Message.TemplateMessage.HydratedFourRowTemplate: ...
+ @_builtins.property
+ def interactiveMessageTemplate(self) -> Global___Message.InteractiveMessage: ...
+ def __init__(
+ self,
+ *,
+ contextInfo: Global___ContextInfo | None = ...,
+ hydratedTemplate: Global___Message.TemplateMessage.HydratedFourRowTemplate | None = ...,
+ templateId: _builtins.str | None = ...,
+ fourRowTemplate: Global___Message.TemplateMessage.FourRowTemplate | None = ...,
+ hydratedFourRowTemplate: Global___Message.TemplateMessage.HydratedFourRowTemplate | None = ...,
+ interactiveMessageTemplate: Global___Message.InteractiveMessage | None = ...,
+ ) -> None: ...
+ _HasFieldArgType: _TypeAlias = _typing.Literal["contextInfo", b"contextInfo", "format", b"format", "fourRowTemplate", b"fourRowTemplate", "hydratedFourRowTemplate", b"hydratedFourRowTemplate", "hydratedTemplate", b"hydratedTemplate", "interactiveMessageTemplate", b"interactiveMessageTemplate", "templateId", b"templateId"] # noqa: Y015
+ def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ...
+ _ClearFieldArgType: _TypeAlias = _typing.Literal["contextInfo", b"contextInfo", "format", b"format", "fourRowTemplate", b"fourRowTemplate", "hydratedFourRowTemplate", b"hydratedFourRowTemplate", "hydratedTemplate", b"hydratedTemplate", "interactiveMessageTemplate", b"interactiveMessageTemplate", "templateId", b"templateId"] # noqa: Y015
+ def ClearField(self, field_name: _ClearFieldArgType) -> None: ...
+ _WhichOneofReturnType_format: _TypeAlias = _typing.Literal["fourRowTemplate", "hydratedFourRowTemplate", "interactiveMessageTemplate"] # noqa: Y015
+ _WhichOneofArgType_format: _TypeAlias = _typing.Literal["format", b"format"] # noqa: Y015
+ def WhichOneof(self, oneof_group: _WhichOneofArgType_format) -> _WhichOneofReturnType_format | None: ...
+
+ @_typing.final
+ class URLMetadata(_message.Message):
+ DESCRIPTOR: _descriptor.Descriptor
+
+ FBEXPERIMENTID_FIELD_NUMBER: _builtins.int
+ fbExperimentId: _builtins.int
+ def __init__(
+ self,
+ *,
+ fbExperimentId: _builtins.int | None = ...,
+ ) -> None: ...
+ _HasFieldArgType: _TypeAlias = _typing.Literal["fbExperimentId", b"fbExperimentId"] # noqa: Y015
+ def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ...
+ _ClearFieldArgType: _TypeAlias = _typing.Literal["fbExperimentId", b"fbExperimentId"] # noqa: Y015
+ def ClearField(self, field_name: _ClearFieldArgType) -> None: ...
+
+ @_typing.final
+ class VideoEndCard(_message.Message):
+ DESCRIPTOR: _descriptor.Descriptor
+
+ USERNAME_FIELD_NUMBER: _builtins.int
+ CAPTION_FIELD_NUMBER: _builtins.int
+ THUMBNAILIMAGEURL_FIELD_NUMBER: _builtins.int
+ PROFILEPICTUREURL_FIELD_NUMBER: _builtins.int
+ username: _builtins.str
+ caption: _builtins.str
+ thumbnailImageUrl: _builtins.str
+ profilePictureUrl: _builtins.str
+ def __init__(
+ self,
+ *,
+ username: _builtins.str | None = ...,
+ caption: _builtins.str | None = ...,
+ thumbnailImageUrl: _builtins.str | None = ...,
+ profilePictureUrl: _builtins.str | None = ...,
+ ) -> None: ...
+ _HasFieldArgType: _TypeAlias = _typing.Literal["caption", b"caption", "profilePictureUrl", b"profilePictureUrl", "thumbnailImageUrl", b"thumbnailImageUrl", "username", b"username"] # noqa: Y015
+ def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ...
+ _ClearFieldArgType: _TypeAlias = _typing.Literal["caption", b"caption", "profilePictureUrl", b"profilePictureUrl", "thumbnailImageUrl", b"thumbnailImageUrl", "username", b"username"] # noqa: Y015
+ def ClearField(self, field_name: _ClearFieldArgType) -> None: ...
+
+ @_typing.final
+ class VideoMessage(_message.Message):
+ DESCRIPTOR: _descriptor.Descriptor
+
+ class _Attribution:
+ ValueType = _typing.NewType("ValueType", _builtins.int)
+ V: _TypeAlias = ValueType # noqa: Y015
+
+ class _AttributionEnumTypeWrapper(_enum_type_wrapper._EnumTypeWrapper[Message.VideoMessage._Attribution.ValueType], _builtins.type):
+ DESCRIPTOR: _descriptor.EnumDescriptor
+ NONE: Message.VideoMessage._Attribution.ValueType # 0
+ GIPHY: Message.VideoMessage._Attribution.ValueType # 1
+ TENOR: Message.VideoMessage._Attribution.ValueType # 2
+ KLIPY: Message.VideoMessage._Attribution.ValueType # 3
+
+ class Attribution(_Attribution, metaclass=_AttributionEnumTypeWrapper): ...
+ NONE: Message.VideoMessage.Attribution.ValueType # 0
+ GIPHY: Message.VideoMessage.Attribution.ValueType # 1
+ TENOR: Message.VideoMessage.Attribution.ValueType # 2
+ KLIPY: Message.VideoMessage.Attribution.ValueType # 3
+
+ class _VideoSourceType:
+ ValueType = _typing.NewType("ValueType", _builtins.int)
+ V: _TypeAlias = ValueType # noqa: Y015
+
+ class _VideoSourceTypeEnumTypeWrapper(_enum_type_wrapper._EnumTypeWrapper[Message.VideoMessage._VideoSourceType.ValueType], _builtins.type):
+ DESCRIPTOR: _descriptor.EnumDescriptor
+ USER_VIDEO: Message.VideoMessage._VideoSourceType.ValueType # 0
+ AI_GENERATED: Message.VideoMessage._VideoSourceType.ValueType # 1
+
+ class VideoSourceType(_VideoSourceType, metaclass=_VideoSourceTypeEnumTypeWrapper): ...
+ USER_VIDEO: Message.VideoMessage.VideoSourceType.ValueType # 0
+ AI_GENERATED: Message.VideoMessage.VideoSourceType.ValueType # 1
+
+ URL_FIELD_NUMBER: _builtins.int
+ MIMETYPE_FIELD_NUMBER: _builtins.int
+ FILESHA256_FIELD_NUMBER: _builtins.int
+ FILELENGTH_FIELD_NUMBER: _builtins.int
+ SECONDS_FIELD_NUMBER: _builtins.int
+ MEDIAKEY_FIELD_NUMBER: _builtins.int
+ CAPTION_FIELD_NUMBER: _builtins.int
+ GIFPLAYBACK_FIELD_NUMBER: _builtins.int
+ HEIGHT_FIELD_NUMBER: _builtins.int
+ WIDTH_FIELD_NUMBER: _builtins.int
+ FILEENCSHA256_FIELD_NUMBER: _builtins.int
+ INTERACTIVEANNOTATIONS_FIELD_NUMBER: _builtins.int
+ DIRECTPATH_FIELD_NUMBER: _builtins.int
+ MEDIAKEYTIMESTAMP_FIELD_NUMBER: _builtins.int
+ JPEGTHUMBNAIL_FIELD_NUMBER: _builtins.int
+ CONTEXTINFO_FIELD_NUMBER: _builtins.int
+ STREAMINGSIDECAR_FIELD_NUMBER: _builtins.int
+ GIFATTRIBUTION_FIELD_NUMBER: _builtins.int
+ VIEWONCE_FIELD_NUMBER: _builtins.int
+ THUMBNAILDIRECTPATH_FIELD_NUMBER: _builtins.int
+ THUMBNAILSHA256_FIELD_NUMBER: _builtins.int
+ THUMBNAILENCSHA256_FIELD_NUMBER: _builtins.int
+ STATICURL_FIELD_NUMBER: _builtins.int
+ ANNOTATIONS_FIELD_NUMBER: _builtins.int
+ ACCESSIBILITYLABEL_FIELD_NUMBER: _builtins.int
+ PROCESSEDVIDEOS_FIELD_NUMBER: _builtins.int
+ EXTERNALSHAREFULLVIDEODURATIONINSECONDS_FIELD_NUMBER: _builtins.int
+ MOTIONPHOTOPRESENTATIONOFFSETMS_FIELD_NUMBER: _builtins.int
+ METADATAURL_FIELD_NUMBER: _builtins.int
+ VIDEOSOURCETYPE_FIELD_NUMBER: _builtins.int
+ url: _builtins.str
+ mimetype: _builtins.str
+ fileSha256: _builtins.bytes
+ fileLength: _builtins.int
+ seconds: _builtins.int
+ mediaKey: _builtins.bytes
+ caption: _builtins.str
+ gifPlayback: _builtins.bool
+ height: _builtins.int
+ width: _builtins.int
+ fileEncSha256: _builtins.bytes
+ directPath: _builtins.str
+ mediaKeyTimestamp: _builtins.int
+ jpegThumbnail: _builtins.bytes
+ streamingSidecar: _builtins.bytes
+ gifAttribution: Global___Message.VideoMessage.Attribution.ValueType
+ viewOnce: _builtins.bool
+ thumbnailDirectPath: _builtins.str
+ thumbnailSha256: _builtins.bytes
+ thumbnailEncSha256: _builtins.bytes
+ staticUrl: _builtins.str
+ accessibilityLabel: _builtins.str
+ externalShareFullVideoDurationInSeconds: _builtins.int
+ motionPhotoPresentationOffsetMs: _builtins.int
+ metadataUrl: _builtins.str
+ videoSourceType: Global___Message.VideoMessage.VideoSourceType.ValueType
+ @_builtins.property
+ def interactiveAnnotations(self) -> _containers.RepeatedCompositeFieldContainer[Global___InteractiveAnnotation]: ...
+ @_builtins.property
+ def contextInfo(self) -> Global___ContextInfo: ...
+ @_builtins.property
+ def annotations(self) -> _containers.RepeatedCompositeFieldContainer[Global___InteractiveAnnotation]: ...
+ @_builtins.property
+ def processedVideos(self) -> _containers.RepeatedCompositeFieldContainer[Global___ProcessedVideo]: ...
+ def __init__(
+ self,
+ *,
+ url: _builtins.str | None = ...,
+ mimetype: _builtins.str | None = ...,
+ fileSha256: _builtins.bytes | None = ...,
+ fileLength: _builtins.int | None = ...,
+ seconds: _builtins.int | None = ...,
+ mediaKey: _builtins.bytes | None = ...,
+ caption: _builtins.str | None = ...,
+ gifPlayback: _builtins.bool | None = ...,
+ height: _builtins.int | None = ...,
+ width: _builtins.int | None = ...,
+ fileEncSha256: _builtins.bytes | None = ...,
+ interactiveAnnotations: _abc.Iterable[Global___InteractiveAnnotation] | None = ...,
+ directPath: _builtins.str | None = ...,
+ mediaKeyTimestamp: _builtins.int | None = ...,
+ jpegThumbnail: _builtins.bytes | None = ...,
+ contextInfo: Global___ContextInfo | None = ...,
+ streamingSidecar: _builtins.bytes | None = ...,
+ gifAttribution: Global___Message.VideoMessage.Attribution.ValueType | None = ...,
+ viewOnce: _builtins.bool | None = ...,
+ thumbnailDirectPath: _builtins.str | None = ...,
+ thumbnailSha256: _builtins.bytes | None = ...,
+ thumbnailEncSha256: _builtins.bytes | None = ...,
+ staticUrl: _builtins.str | None = ...,
+ annotations: _abc.Iterable[Global___InteractiveAnnotation] | None = ...,
+ accessibilityLabel: _builtins.str | None = ...,
+ processedVideos: _abc.Iterable[Global___ProcessedVideo] | None = ...,
+ externalShareFullVideoDurationInSeconds: _builtins.int | None = ...,
+ motionPhotoPresentationOffsetMs: _builtins.int | None = ...,
+ metadataUrl: _builtins.str | None = ...,
+ videoSourceType: Global___Message.VideoMessage.VideoSourceType.ValueType | None = ...,
+ ) -> None: ...
+ _HasFieldArgType: _TypeAlias = _typing.Literal["accessibilityLabel", b"accessibilityLabel", "caption", b"caption", "contextInfo", b"contextInfo", "directPath", b"directPath", "externalShareFullVideoDurationInSeconds", b"externalShareFullVideoDurationInSeconds", "fileEncSha256", b"fileEncSha256", "fileLength", b"fileLength", "fileSha256", b"fileSha256", "gifAttribution", b"gifAttribution", "gifPlayback", b"gifPlayback", "height", b"height", "jpegThumbnail", b"jpegThumbnail", "mediaKey", b"mediaKey", "mediaKeyTimestamp", b"mediaKeyTimestamp", "metadataUrl", b"metadataUrl", "mimetype", b"mimetype", "motionPhotoPresentationOffsetMs", b"motionPhotoPresentationOffsetMs", "seconds", b"seconds", "staticUrl", b"staticUrl", "streamingSidecar", b"streamingSidecar", "thumbnailDirectPath", b"thumbnailDirectPath", "thumbnailEncSha256", b"thumbnailEncSha256", "thumbnailSha256", b"thumbnailSha256", "url", b"url", "videoSourceType", b"videoSourceType", "viewOnce", b"viewOnce", "width", b"width"] # noqa: Y015
+ def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ...
+ _ClearFieldArgType: _TypeAlias = _typing.Literal["accessibilityLabel", b"accessibilityLabel", "annotations", b"annotations", "caption", b"caption", "contextInfo", b"contextInfo", "directPath", b"directPath", "externalShareFullVideoDurationInSeconds", b"externalShareFullVideoDurationInSeconds", "fileEncSha256", b"fileEncSha256", "fileLength", b"fileLength", "fileSha256", b"fileSha256", "gifAttribution", b"gifAttribution", "gifPlayback", b"gifPlayback", "height", b"height", "interactiveAnnotations", b"interactiveAnnotations", "jpegThumbnail", b"jpegThumbnail", "mediaKey", b"mediaKey", "mediaKeyTimestamp", b"mediaKeyTimestamp", "metadataUrl", b"metadataUrl", "mimetype", b"mimetype", "motionPhotoPresentationOffsetMs", b"motionPhotoPresentationOffsetMs", "processedVideos", b"processedVideos", "seconds", b"seconds", "staticUrl", b"staticUrl", "streamingSidecar", b"streamingSidecar", "thumbnailDirectPath", b"thumbnailDirectPath", "thumbnailEncSha256", b"thumbnailEncSha256", "thumbnailSha256", b"thumbnailSha256", "url", b"url", "videoSourceType", b"videoSourceType", "viewOnce", b"viewOnce", "width", b"width"] # noqa: Y015
+ def ClearField(self, field_name: _ClearFieldArgType) -> None: ...
+
+ CONVERSATION_FIELD_NUMBER: _builtins.int
+ SENDERKEYDISTRIBUTIONMESSAGE_FIELD_NUMBER: _builtins.int
+ IMAGEMESSAGE_FIELD_NUMBER: _builtins.int
+ CONTACTMESSAGE_FIELD_NUMBER: _builtins.int
+ LOCATIONMESSAGE_FIELD_NUMBER: _builtins.int
+ EXTENDEDTEXTMESSAGE_FIELD_NUMBER: _builtins.int
+ DOCUMENTMESSAGE_FIELD_NUMBER: _builtins.int
+ AUDIOMESSAGE_FIELD_NUMBER: _builtins.int
+ VIDEOMESSAGE_FIELD_NUMBER: _builtins.int
+ CALL_FIELD_NUMBER: _builtins.int
+ CHAT_FIELD_NUMBER: _builtins.int
+ PROTOCOLMESSAGE_FIELD_NUMBER: _builtins.int
+ CONTACTSARRAYMESSAGE_FIELD_NUMBER: _builtins.int
+ HIGHLYSTRUCTUREDMESSAGE_FIELD_NUMBER: _builtins.int
+ FASTRATCHETKEYSENDERKEYDISTRIBUTIONMESSAGE_FIELD_NUMBER: _builtins.int
+ SENDPAYMENTMESSAGE_FIELD_NUMBER: _builtins.int
+ LIVELOCATIONMESSAGE_FIELD_NUMBER: _builtins.int
+ REQUESTPAYMENTMESSAGE_FIELD_NUMBER: _builtins.int
+ DECLINEPAYMENTREQUESTMESSAGE_FIELD_NUMBER: _builtins.int
+ CANCELPAYMENTREQUESTMESSAGE_FIELD_NUMBER: _builtins.int
+ TEMPLATEMESSAGE_FIELD_NUMBER: _builtins.int
+ STICKERMESSAGE_FIELD_NUMBER: _builtins.int
+ GROUPINVITEMESSAGE_FIELD_NUMBER: _builtins.int
+ TEMPLATEBUTTONREPLYMESSAGE_FIELD_NUMBER: _builtins.int
+ PRODUCTMESSAGE_FIELD_NUMBER: _builtins.int
+ DEVICESENTMESSAGE_FIELD_NUMBER: _builtins.int
+ MESSAGECONTEXTINFO_FIELD_NUMBER: _builtins.int
+ LISTMESSAGE_FIELD_NUMBER: _builtins.int
+ VIEWONCEMESSAGE_FIELD_NUMBER: _builtins.int
+ ORDERMESSAGE_FIELD_NUMBER: _builtins.int
+ LISTRESPONSEMESSAGE_FIELD_NUMBER: _builtins.int
+ EPHEMERALMESSAGE_FIELD_NUMBER: _builtins.int
+ INVOICEMESSAGE_FIELD_NUMBER: _builtins.int
+ BUTTONSMESSAGE_FIELD_NUMBER: _builtins.int
+ BUTTONSRESPONSEMESSAGE_FIELD_NUMBER: _builtins.int
+ PAYMENTINVITEMESSAGE_FIELD_NUMBER: _builtins.int
+ INTERACTIVEMESSAGE_FIELD_NUMBER: _builtins.int
+ REACTIONMESSAGE_FIELD_NUMBER: _builtins.int
+ STICKERSYNCRMRMESSAGE_FIELD_NUMBER: _builtins.int
+ INTERACTIVERESPONSEMESSAGE_FIELD_NUMBER: _builtins.int
+ POLLCREATIONMESSAGE_FIELD_NUMBER: _builtins.int
+ POLLUPDATEMESSAGE_FIELD_NUMBER: _builtins.int
+ KEEPINCHATMESSAGE_FIELD_NUMBER: _builtins.int
+ DOCUMENTWITHCAPTIONMESSAGE_FIELD_NUMBER: _builtins.int
+ REQUESTPHONENUMBERMESSAGE_FIELD_NUMBER: _builtins.int
+ VIEWONCEMESSAGEV2_FIELD_NUMBER: _builtins.int
+ ENCREACTIONMESSAGE_FIELD_NUMBER: _builtins.int
+ EDITEDMESSAGE_FIELD_NUMBER: _builtins.int
+ VIEWONCEMESSAGEV2EXTENSION_FIELD_NUMBER: _builtins.int
+ POLLCREATIONMESSAGEV2_FIELD_NUMBER: _builtins.int
+ SCHEDULEDCALLCREATIONMESSAGE_FIELD_NUMBER: _builtins.int
+ GROUPMENTIONEDMESSAGE_FIELD_NUMBER: _builtins.int
+ PININCHATMESSAGE_FIELD_NUMBER: _builtins.int
+ POLLCREATIONMESSAGEV3_FIELD_NUMBER: _builtins.int
+ SCHEDULEDCALLEDITMESSAGE_FIELD_NUMBER: _builtins.int
+ PTVMESSAGE_FIELD_NUMBER: _builtins.int
+ BOTINVOKEMESSAGE_FIELD_NUMBER: _builtins.int
+ CALLLOGMESSSAGE_FIELD_NUMBER: _builtins.int
+ MESSAGEHISTORYBUNDLE_FIELD_NUMBER: _builtins.int
+ ENCCOMMENTMESSAGE_FIELD_NUMBER: _builtins.int
+ BCALLMESSAGE_FIELD_NUMBER: _builtins.int
+ LOTTIESTICKERMESSAGE_FIELD_NUMBER: _builtins.int
+ EVENTMESSAGE_FIELD_NUMBER: _builtins.int
+ ENCEVENTRESPONSEMESSAGE_FIELD_NUMBER: _builtins.int
+ COMMENTMESSAGE_FIELD_NUMBER: _builtins.int
+ NEWSLETTERADMININVITEMESSAGE_FIELD_NUMBER: _builtins.int
+ PLACEHOLDERMESSAGE_FIELD_NUMBER: _builtins.int
+ SECRETENCRYPTEDMESSAGE_FIELD_NUMBER: _builtins.int
+ ALBUMMESSAGE_FIELD_NUMBER: _builtins.int
+ EVENTCOVERIMAGE_FIELD_NUMBER: _builtins.int
+ STICKERPACKMESSAGE_FIELD_NUMBER: _builtins.int
+ STATUSMENTIONMESSAGE_FIELD_NUMBER: _builtins.int
+ POLLRESULTSNAPSHOTMESSAGE_FIELD_NUMBER: _builtins.int
+ POLLCREATIONOPTIONIMAGEMESSAGE_FIELD_NUMBER: _builtins.int
+ ASSOCIATEDCHILDMESSAGE_FIELD_NUMBER: _builtins.int
+ GROUPSTATUSMENTIONMESSAGE_FIELD_NUMBER: _builtins.int
+ POLLCREATIONMESSAGEV4_FIELD_NUMBER: _builtins.int
+ STATUSADDYOURS_FIELD_NUMBER: _builtins.int
+ GROUPSTATUSMESSAGE_FIELD_NUMBER: _builtins.int
+ RICHRESPONSEMESSAGE_FIELD_NUMBER: _builtins.int
+ STATUSNOTIFICATIONMESSAGE_FIELD_NUMBER: _builtins.int
+ LIMITSHARINGMESSAGE_FIELD_NUMBER: _builtins.int
+ BOTTASKMESSAGE_FIELD_NUMBER: _builtins.int
+ QUESTIONMESSAGE_FIELD_NUMBER: _builtins.int
+ MESSAGEHISTORYNOTICE_FIELD_NUMBER: _builtins.int
+ GROUPSTATUSMESSAGEV2_FIELD_NUMBER: _builtins.int
+ BOTFORWARDEDMESSAGE_FIELD_NUMBER: _builtins.int
+ STATUSQUESTIONANSWERMESSAGE_FIELD_NUMBER: _builtins.int
+ QUESTIONREPLYMESSAGE_FIELD_NUMBER: _builtins.int
+ QUESTIONRESPONSEMESSAGE_FIELD_NUMBER: _builtins.int
+ STATUSQUOTEDMESSAGE_FIELD_NUMBER: _builtins.int
+ STATUSSTICKERINTERACTIONMESSAGE_FIELD_NUMBER: _builtins.int
+ POLLCREATIONMESSAGEV5_FIELD_NUMBER: _builtins.int
+ NEWSLETTERFOLLOWERINVITEMESSAGEV2_FIELD_NUMBER: _builtins.int
+ POLLRESULTSNAPSHOTMESSAGEV3_FIELD_NUMBER: _builtins.int
+ NEWSLETTERADMINPROFILEMESSAGE_FIELD_NUMBER: _builtins.int
+ NEWSLETTERADMINPROFILEMESSAGEV2_FIELD_NUMBER: _builtins.int
SPOILERMESSAGE_FIELD_NUMBER: _builtins.int
POLLCREATIONMESSAGEV6_FIELD_NUMBER: _builtins.int
CONDITIONALREVEALMESSAGE_FIELD_NUMBER: _builtins.int
@@ -15560,6 +18434,10 @@ class Message(_message.Message):
SPLITPAYMENTMESSAGE_FIELD_NUMBER: _builtins.int
NEWSLETTERADMINPROFILESTATUSMESSAGE_FIELD_NUMBER: _builtins.int
ROOTSECRETDISTRIBUTEMESSAGE_FIELD_NUMBER: _builtins.int
+ SPLITPAYMENTUPDATEMESSAGE_FIELD_NUMBER: _builtins.int
+ MUSICMESSAGE_FIELD_NUMBER: _builtins.int
+ STATUSLINKPREVIEWMETADATA_FIELD_NUMBER: _builtins.int
+ BOTPLATFORMREGISTRATIONSUCCESSMESSAGE_FIELD_NUMBER: _builtins.int
conversation: _builtins.str
@_builtins.property
def senderKeyDistributionMessage(self) -> Global___Message.SenderKeyDistributionMessage: ...
@@ -15668,553 +18546,1309 @@ class Message(_message.Message):
@_builtins.property
def pollCreationMessageV3(self) -> Global___Message.PollCreationMessage: ...
@_builtins.property
- def scheduledCallEditMessage(self) -> Global___Message.ScheduledCallEditMessage: ...
+ def scheduledCallEditMessage(self) -> Global___Message.ScheduledCallEditMessage: ...
+ @_builtins.property
+ def ptvMessage(self) -> Global___Message.VideoMessage: ...
+ @_builtins.property
+ def botInvokeMessage(self) -> Global___Message.FutureProofMessage: ...
+ @_builtins.property
+ def callLogMesssage(self) -> Global___Message.CallLogMessage: ...
+ @_builtins.property
+ def messageHistoryBundle(self) -> Global___Message.MessageHistoryBundle: ...
+ @_builtins.property
+ def encCommentMessage(self) -> Global___Message.EncCommentMessage: ...
+ @_builtins.property
+ def bcallMessage(self) -> Global___Message.BCallMessage: ...
+ @_builtins.property
+ def lottieStickerMessage(self) -> Global___Message.FutureProofMessage: ...
+ @_builtins.property
+ def eventMessage(self) -> Global___Message.EventMessage: ...
+ @_builtins.property
+ def encEventResponseMessage(self) -> Global___Message.EncEventResponseMessage: ...
+ @_builtins.property
+ def commentMessage(self) -> Global___Message.CommentMessage: ...
+ @_builtins.property
+ def newsletterAdminInviteMessage(self) -> Global___Message.NewsletterAdminInviteMessage: ...
+ @_builtins.property
+ def placeholderMessage(self) -> Global___Message.PlaceholderMessage: ...
+ @_builtins.property
+ def secretEncryptedMessage(self) -> Global___Message.SecretEncryptedMessage: ...
+ @_builtins.property
+ def albumMessage(self) -> Global___Message.AlbumMessage: ...
+ @_builtins.property
+ def eventCoverImage(self) -> Global___Message.FutureProofMessage: ...
+ @_builtins.property
+ def stickerPackMessage(self) -> Global___Message.StickerPackMessage: ...
+ @_builtins.property
+ def statusMentionMessage(self) -> Global___Message.FutureProofMessage: ...
+ @_builtins.property
+ def pollResultSnapshotMessage(self) -> Global___Message.PollResultSnapshotMessage: ...
+ @_builtins.property
+ def pollCreationOptionImageMessage(self) -> Global___Message.FutureProofMessage: ...
+ @_builtins.property
+ def associatedChildMessage(self) -> Global___Message.FutureProofMessage: ...
+ @_builtins.property
+ def groupStatusMentionMessage(self) -> Global___Message.FutureProofMessage: ...
+ @_builtins.property
+ def pollCreationMessageV4(self) -> Global___Message.FutureProofMessage: ...
+ @_builtins.property
+ def statusAddYours(self) -> Global___Message.FutureProofMessage: ...
+ @_builtins.property
+ def groupStatusMessage(self) -> Global___Message.FutureProofMessage: ...
+ @_builtins.property
+ def richResponseMessage(self) -> Global___AIRichResponseMessage: ...
+ @_builtins.property
+ def statusNotificationMessage(self) -> Global___Message.StatusNotificationMessage: ...
+ @_builtins.property
+ def limitSharingMessage(self) -> Global___Message.FutureProofMessage: ...
+ @_builtins.property
+ def botTaskMessage(self) -> Global___Message.FutureProofMessage: ...
+ @_builtins.property
+ def questionMessage(self) -> Global___Message.FutureProofMessage: ...
+ @_builtins.property
+ def messageHistoryNotice(self) -> Global___Message.MessageHistoryNotice: ...
+ @_builtins.property
+ def groupStatusMessageV2(self) -> Global___Message.FutureProofMessage: ...
+ @_builtins.property
+ def botForwardedMessage(self) -> Global___Message.FutureProofMessage: ...
+ @_builtins.property
+ def statusQuestionAnswerMessage(self) -> Global___Message.StatusQuestionAnswerMessage: ...
+ @_builtins.property
+ def questionReplyMessage(self) -> Global___Message.FutureProofMessage: ...
+ @_builtins.property
+ def questionResponseMessage(self) -> Global___Message.QuestionResponseMessage: ...
+ @_builtins.property
+ def statusQuotedMessage(self) -> Global___Message.StatusQuotedMessage: ...
+ @_builtins.property
+ def statusStickerInteractionMessage(self) -> Global___Message.StatusStickerInteractionMessage: ...
+ @_builtins.property
+ def pollCreationMessageV5(self) -> Global___Message.PollCreationMessage: ...
+ @_builtins.property
+ def newsletterFollowerInviteMessageV2(self) -> Global___Message.NewsletterFollowerInviteMessage: ...
+ @_builtins.property
+ def pollResultSnapshotMessageV3(self) -> Global___Message.PollResultSnapshotMessage: ...
+ @_builtins.property
+ def newsletterAdminProfileMessage(self) -> Global___Message.FutureProofMessage: ...
+ @_builtins.property
+ def newsletterAdminProfileMessageV2(self) -> Global___Message.FutureProofMessage: ...
+ @_builtins.property
+ def spoilerMessage(self) -> Global___Message.FutureProofMessage: ...
+ @_builtins.property
+ def pollCreationMessageV6(self) -> Global___Message.PollCreationMessage: ...
+ @_builtins.property
+ def conditionalRevealMessage(self) -> Global___Message.ConditionalRevealMessage: ...
+ @_builtins.property
+ def pollAddOptionMessage(self) -> Global___Message.PollAddOptionMessage: ...
+ @_builtins.property
+ def eventInviteMessage(self) -> Global___Message.EventInviteMessage: ...
+ @_builtins.property
+ def groupRootKeyShare(self) -> Global___GroupRootKeyShare: ...
+ @_builtins.property
+ def paymentReminderMessage(self) -> Global___Message.PaymentReminderMessage: ...
+ @_builtins.property
+ def splitPaymentMessage(self) -> Global___Message.SplitPaymentMessage: ...
+ @_builtins.property
+ def newsletterAdminProfileStatusMessage(self) -> Global___Message.FutureProofMessage: ...
+ @_builtins.property
+ def rootSecretDistributeMessage(self) -> Global___Message.RootSecretDistributeMessage: ...
+ @_builtins.property
+ def splitPaymentUpdateMessage(self) -> Global___Message.SplitPaymentUpdateMessage: ...
+ @_builtins.property
+ def musicMessage(self) -> Global___Message.MusicMessage: ...
+ @_builtins.property
+ def statusLinkPreviewMetadata(self) -> Global___Message.StatusLinkPreviewMetadata: ...
+ @_builtins.property
+ def botPlatformRegistrationSuccessMessage(self) -> Global___Message.FutureProofMessage: ...
+ def __init__(
+ self,
+ *,
+ conversation: _builtins.str | None = ...,
+ senderKeyDistributionMessage: Global___Message.SenderKeyDistributionMessage | None = ...,
+ imageMessage: Global___Message.ImageMessage | None = ...,
+ contactMessage: Global___Message.ContactMessage | None = ...,
+ locationMessage: Global___Message.LocationMessage | None = ...,
+ extendedTextMessage: Global___Message.ExtendedTextMessage | None = ...,
+ documentMessage: Global___Message.DocumentMessage | None = ...,
+ audioMessage: Global___Message.AudioMessage | None = ...,
+ videoMessage: Global___Message.VideoMessage | None = ...,
+ call: Global___Message.Call | None = ...,
+ chat: Global___Message.Chat | None = ...,
+ protocolMessage: Global___Message.ProtocolMessage | None = ...,
+ contactsArrayMessage: Global___Message.ContactsArrayMessage | None = ...,
+ highlyStructuredMessage: Global___Message.HighlyStructuredMessage | None = ...,
+ fastRatchetKeySenderKeyDistributionMessage: Global___Message.SenderKeyDistributionMessage | None = ...,
+ sendPaymentMessage: Global___Message.SendPaymentMessage | None = ...,
+ liveLocationMessage: Global___Message.LiveLocationMessage | None = ...,
+ requestPaymentMessage: Global___Message.RequestPaymentMessage | None = ...,
+ declinePaymentRequestMessage: Global___Message.DeclinePaymentRequestMessage | None = ...,
+ cancelPaymentRequestMessage: Global___Message.CancelPaymentRequestMessage | None = ...,
+ templateMessage: Global___Message.TemplateMessage | None = ...,
+ stickerMessage: Global___Message.StickerMessage | None = ...,
+ groupInviteMessage: Global___Message.GroupInviteMessage | None = ...,
+ templateButtonReplyMessage: Global___Message.TemplateButtonReplyMessage | None = ...,
+ productMessage: Global___Message.ProductMessage | None = ...,
+ deviceSentMessage: Global___Message.DeviceSentMessage | None = ...,
+ messageContextInfo: Global___MessageContextInfo | None = ...,
+ listMessage: Global___Message.ListMessage | None = ...,
+ viewOnceMessage: Global___Message.FutureProofMessage | None = ...,
+ orderMessage: Global___Message.OrderMessage | None = ...,
+ listResponseMessage: Global___Message.ListResponseMessage | None = ...,
+ ephemeralMessage: Global___Message.FutureProofMessage | None = ...,
+ invoiceMessage: Global___Message.InvoiceMessage | None = ...,
+ buttonsMessage: Global___Message.ButtonsMessage | None = ...,
+ buttonsResponseMessage: Global___Message.ButtonsResponseMessage | None = ...,
+ paymentInviteMessage: Global___Message.PaymentInviteMessage | None = ...,
+ interactiveMessage: Global___Message.InteractiveMessage | None = ...,
+ reactionMessage: Global___Message.ReactionMessage | None = ...,
+ stickerSyncRmrMessage: Global___Message.StickerSyncRMRMessage | None = ...,
+ interactiveResponseMessage: Global___Message.InteractiveResponseMessage | None = ...,
+ pollCreationMessage: Global___Message.PollCreationMessage | None = ...,
+ pollUpdateMessage: Global___Message.PollUpdateMessage | None = ...,
+ keepInChatMessage: Global___Message.KeepInChatMessage | None = ...,
+ documentWithCaptionMessage: Global___Message.FutureProofMessage | None = ...,
+ requestPhoneNumberMessage: Global___Message.RequestPhoneNumberMessage | None = ...,
+ viewOnceMessageV2: Global___Message.FutureProofMessage | None = ...,
+ encReactionMessage: Global___Message.EncReactionMessage | None = ...,
+ editedMessage: Global___Message.FutureProofMessage | None = ...,
+ viewOnceMessageV2Extension: Global___Message.FutureProofMessage | None = ...,
+ pollCreationMessageV2: Global___Message.PollCreationMessage | None = ...,
+ scheduledCallCreationMessage: Global___Message.ScheduledCallCreationMessage | None = ...,
+ groupMentionedMessage: Global___Message.FutureProofMessage | None = ...,
+ pinInChatMessage: Global___Message.PinInChatMessage | None = ...,
+ pollCreationMessageV3: Global___Message.PollCreationMessage | None = ...,
+ scheduledCallEditMessage: Global___Message.ScheduledCallEditMessage | None = ...,
+ ptvMessage: Global___Message.VideoMessage | None = ...,
+ botInvokeMessage: Global___Message.FutureProofMessage | None = ...,
+ callLogMesssage: Global___Message.CallLogMessage | None = ...,
+ messageHistoryBundle: Global___Message.MessageHistoryBundle | None = ...,
+ encCommentMessage: Global___Message.EncCommentMessage | None = ...,
+ bcallMessage: Global___Message.BCallMessage | None = ...,
+ lottieStickerMessage: Global___Message.FutureProofMessage | None = ...,
+ eventMessage: Global___Message.EventMessage | None = ...,
+ encEventResponseMessage: Global___Message.EncEventResponseMessage | None = ...,
+ commentMessage: Global___Message.CommentMessage | None = ...,
+ newsletterAdminInviteMessage: Global___Message.NewsletterAdminInviteMessage | None = ...,
+ placeholderMessage: Global___Message.PlaceholderMessage | None = ...,
+ secretEncryptedMessage: Global___Message.SecretEncryptedMessage | None = ...,
+ albumMessage: Global___Message.AlbumMessage | None = ...,
+ eventCoverImage: Global___Message.FutureProofMessage | None = ...,
+ stickerPackMessage: Global___Message.StickerPackMessage | None = ...,
+ statusMentionMessage: Global___Message.FutureProofMessage | None = ...,
+ pollResultSnapshotMessage: Global___Message.PollResultSnapshotMessage | None = ...,
+ pollCreationOptionImageMessage: Global___Message.FutureProofMessage | None = ...,
+ associatedChildMessage: Global___Message.FutureProofMessage | None = ...,
+ groupStatusMentionMessage: Global___Message.FutureProofMessage | None = ...,
+ pollCreationMessageV4: Global___Message.FutureProofMessage | None = ...,
+ statusAddYours: Global___Message.FutureProofMessage | None = ...,
+ groupStatusMessage: Global___Message.FutureProofMessage | None = ...,
+ richResponseMessage: Global___AIRichResponseMessage | None = ...,
+ statusNotificationMessage: Global___Message.StatusNotificationMessage | None = ...,
+ limitSharingMessage: Global___Message.FutureProofMessage | None = ...,
+ botTaskMessage: Global___Message.FutureProofMessage | None = ...,
+ questionMessage: Global___Message.FutureProofMessage | None = ...,
+ messageHistoryNotice: Global___Message.MessageHistoryNotice | None = ...,
+ groupStatusMessageV2: Global___Message.FutureProofMessage | None = ...,
+ botForwardedMessage: Global___Message.FutureProofMessage | None = ...,
+ statusQuestionAnswerMessage: Global___Message.StatusQuestionAnswerMessage | None = ...,
+ questionReplyMessage: Global___Message.FutureProofMessage | None = ...,
+ questionResponseMessage: Global___Message.QuestionResponseMessage | None = ...,
+ statusQuotedMessage: Global___Message.StatusQuotedMessage | None = ...,
+ statusStickerInteractionMessage: Global___Message.StatusStickerInteractionMessage | None = ...,
+ pollCreationMessageV5: Global___Message.PollCreationMessage | None = ...,
+ newsletterFollowerInviteMessageV2: Global___Message.NewsletterFollowerInviteMessage | None = ...,
+ pollResultSnapshotMessageV3: Global___Message.PollResultSnapshotMessage | None = ...,
+ newsletterAdminProfileMessage: Global___Message.FutureProofMessage | None = ...,
+ newsletterAdminProfileMessageV2: Global___Message.FutureProofMessage | None = ...,
+ spoilerMessage: Global___Message.FutureProofMessage | None = ...,
+ pollCreationMessageV6: Global___Message.PollCreationMessage | None = ...,
+ conditionalRevealMessage: Global___Message.ConditionalRevealMessage | None = ...,
+ pollAddOptionMessage: Global___Message.PollAddOptionMessage | None = ...,
+ eventInviteMessage: Global___Message.EventInviteMessage | None = ...,
+ groupRootKeyShare: Global___GroupRootKeyShare | None = ...,
+ paymentReminderMessage: Global___Message.PaymentReminderMessage | None = ...,
+ splitPaymentMessage: Global___Message.SplitPaymentMessage | None = ...,
+ newsletterAdminProfileStatusMessage: Global___Message.FutureProofMessage | None = ...,
+ rootSecretDistributeMessage: Global___Message.RootSecretDistributeMessage | None = ...,
+ splitPaymentUpdateMessage: Global___Message.SplitPaymentUpdateMessage | None = ...,
+ musicMessage: Global___Message.MusicMessage | None = ...,
+ statusLinkPreviewMetadata: Global___Message.StatusLinkPreviewMetadata | None = ...,
+ botPlatformRegistrationSuccessMessage: Global___Message.FutureProofMessage | None = ...,
+ ) -> None: ...
+ _HasFieldArgType: _TypeAlias = _typing.Literal["albumMessage", b"albumMessage", "associatedChildMessage", b"associatedChildMessage", "audioMessage", b"audioMessage", "bcallMessage", b"bcallMessage", "botForwardedMessage", b"botForwardedMessage", "botInvokeMessage", b"botInvokeMessage", "botPlatformRegistrationSuccessMessage", b"botPlatformRegistrationSuccessMessage", "botTaskMessage", b"botTaskMessage", "buttonsMessage", b"buttonsMessage", "buttonsResponseMessage", b"buttonsResponseMessage", "call", b"call", "callLogMesssage", b"callLogMesssage", "cancelPaymentRequestMessage", b"cancelPaymentRequestMessage", "chat", b"chat", "commentMessage", b"commentMessage", "conditionalRevealMessage", b"conditionalRevealMessage", "contactMessage", b"contactMessage", "contactsArrayMessage", b"contactsArrayMessage", "conversation", b"conversation", "declinePaymentRequestMessage", b"declinePaymentRequestMessage", "deviceSentMessage", b"deviceSentMessage", "documentMessage", b"documentMessage", "documentWithCaptionMessage", b"documentWithCaptionMessage", "editedMessage", b"editedMessage", "encCommentMessage", b"encCommentMessage", "encEventResponseMessage", b"encEventResponseMessage", "encReactionMessage", b"encReactionMessage", "ephemeralMessage", b"ephemeralMessage", "eventCoverImage", b"eventCoverImage", "eventInviteMessage", b"eventInviteMessage", "eventMessage", b"eventMessage", "extendedTextMessage", b"extendedTextMessage", "fastRatchetKeySenderKeyDistributionMessage", b"fastRatchetKeySenderKeyDistributionMessage", "groupInviteMessage", b"groupInviteMessage", "groupMentionedMessage", b"groupMentionedMessage", "groupRootKeyShare", b"groupRootKeyShare", "groupStatusMentionMessage", b"groupStatusMentionMessage", "groupStatusMessage", b"groupStatusMessage", "groupStatusMessageV2", b"groupStatusMessageV2", "highlyStructuredMessage", b"highlyStructuredMessage", "imageMessage", b"imageMessage", "interactiveMessage", b"interactiveMessage", "interactiveResponseMessage", b"interactiveResponseMessage", "invoiceMessage", b"invoiceMessage", "keepInChatMessage", b"keepInChatMessage", "limitSharingMessage", b"limitSharingMessage", "listMessage", b"listMessage", "listResponseMessage", b"listResponseMessage", "liveLocationMessage", b"liveLocationMessage", "locationMessage", b"locationMessage", "lottieStickerMessage", b"lottieStickerMessage", "messageContextInfo", b"messageContextInfo", "messageHistoryBundle", b"messageHistoryBundle", "messageHistoryNotice", b"messageHistoryNotice", "musicMessage", b"musicMessage", "newsletterAdminInviteMessage", b"newsletterAdminInviteMessage", "newsletterAdminProfileMessage", b"newsletterAdminProfileMessage", "newsletterAdminProfileMessageV2", b"newsletterAdminProfileMessageV2", "newsletterAdminProfileStatusMessage", b"newsletterAdminProfileStatusMessage", "newsletterFollowerInviteMessageV2", b"newsletterFollowerInviteMessageV2", "orderMessage", b"orderMessage", "paymentInviteMessage", b"paymentInviteMessage", "paymentReminderMessage", b"paymentReminderMessage", "pinInChatMessage", b"pinInChatMessage", "placeholderMessage", b"placeholderMessage", "pollAddOptionMessage", b"pollAddOptionMessage", "pollCreationMessage", b"pollCreationMessage", "pollCreationMessageV2", b"pollCreationMessageV2", "pollCreationMessageV3", b"pollCreationMessageV3", "pollCreationMessageV4", b"pollCreationMessageV4", "pollCreationMessageV5", b"pollCreationMessageV5", "pollCreationMessageV6", b"pollCreationMessageV6", "pollCreationOptionImageMessage", b"pollCreationOptionImageMessage", "pollResultSnapshotMessage", b"pollResultSnapshotMessage", "pollResultSnapshotMessageV3", b"pollResultSnapshotMessageV3", "pollUpdateMessage", b"pollUpdateMessage", "productMessage", b"productMessage", "protocolMessage", b"protocolMessage", "ptvMessage", b"ptvMessage", "questionMessage", b"questionMessage", "questionReplyMessage", b"questionReplyMessage", "questionResponseMessage", b"questionResponseMessage", "reactionMessage", b"reactionMessage", "requestPaymentMessage", b"requestPaymentMessage", "requestPhoneNumberMessage", b"requestPhoneNumberMessage", "richResponseMessage", b"richResponseMessage", "rootSecretDistributeMessage", b"rootSecretDistributeMessage", "scheduledCallCreationMessage", b"scheduledCallCreationMessage", "scheduledCallEditMessage", b"scheduledCallEditMessage", "secretEncryptedMessage", b"secretEncryptedMessage", "sendPaymentMessage", b"sendPaymentMessage", "senderKeyDistributionMessage", b"senderKeyDistributionMessage", "splitPaymentMessage", b"splitPaymentMessage", "splitPaymentUpdateMessage", b"splitPaymentUpdateMessage", "spoilerMessage", b"spoilerMessage", "statusAddYours", b"statusAddYours", "statusLinkPreviewMetadata", b"statusLinkPreviewMetadata", "statusMentionMessage", b"statusMentionMessage", "statusNotificationMessage", b"statusNotificationMessage", "statusQuestionAnswerMessage", b"statusQuestionAnswerMessage", "statusQuotedMessage", b"statusQuotedMessage", "statusStickerInteractionMessage", b"statusStickerInteractionMessage", "stickerMessage", b"stickerMessage", "stickerPackMessage", b"stickerPackMessage", "stickerSyncRmrMessage", b"stickerSyncRmrMessage", "templateButtonReplyMessage", b"templateButtonReplyMessage", "templateMessage", b"templateMessage", "videoMessage", b"videoMessage", "viewOnceMessage", b"viewOnceMessage", "viewOnceMessageV2", b"viewOnceMessageV2", "viewOnceMessageV2Extension", b"viewOnceMessageV2Extension"] # noqa: Y015
+ def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ...
+ _ClearFieldArgType: _TypeAlias = _typing.Literal["albumMessage", b"albumMessage", "associatedChildMessage", b"associatedChildMessage", "audioMessage", b"audioMessage", "bcallMessage", b"bcallMessage", "botForwardedMessage", b"botForwardedMessage", "botInvokeMessage", b"botInvokeMessage", "botPlatformRegistrationSuccessMessage", b"botPlatformRegistrationSuccessMessage", "botTaskMessage", b"botTaskMessage", "buttonsMessage", b"buttonsMessage", "buttonsResponseMessage", b"buttonsResponseMessage", "call", b"call", "callLogMesssage", b"callLogMesssage", "cancelPaymentRequestMessage", b"cancelPaymentRequestMessage", "chat", b"chat", "commentMessage", b"commentMessage", "conditionalRevealMessage", b"conditionalRevealMessage", "contactMessage", b"contactMessage", "contactsArrayMessage", b"contactsArrayMessage", "conversation", b"conversation", "declinePaymentRequestMessage", b"declinePaymentRequestMessage", "deviceSentMessage", b"deviceSentMessage", "documentMessage", b"documentMessage", "documentWithCaptionMessage", b"documentWithCaptionMessage", "editedMessage", b"editedMessage", "encCommentMessage", b"encCommentMessage", "encEventResponseMessage", b"encEventResponseMessage", "encReactionMessage", b"encReactionMessage", "ephemeralMessage", b"ephemeralMessage", "eventCoverImage", b"eventCoverImage", "eventInviteMessage", b"eventInviteMessage", "eventMessage", b"eventMessage", "extendedTextMessage", b"extendedTextMessage", "fastRatchetKeySenderKeyDistributionMessage", b"fastRatchetKeySenderKeyDistributionMessage", "groupInviteMessage", b"groupInviteMessage", "groupMentionedMessage", b"groupMentionedMessage", "groupRootKeyShare", b"groupRootKeyShare", "groupStatusMentionMessage", b"groupStatusMentionMessage", "groupStatusMessage", b"groupStatusMessage", "groupStatusMessageV2", b"groupStatusMessageV2", "highlyStructuredMessage", b"highlyStructuredMessage", "imageMessage", b"imageMessage", "interactiveMessage", b"interactiveMessage", "interactiveResponseMessage", b"interactiveResponseMessage", "invoiceMessage", b"invoiceMessage", "keepInChatMessage", b"keepInChatMessage", "limitSharingMessage", b"limitSharingMessage", "listMessage", b"listMessage", "listResponseMessage", b"listResponseMessage", "liveLocationMessage", b"liveLocationMessage", "locationMessage", b"locationMessage", "lottieStickerMessage", b"lottieStickerMessage", "messageContextInfo", b"messageContextInfo", "messageHistoryBundle", b"messageHistoryBundle", "messageHistoryNotice", b"messageHistoryNotice", "musicMessage", b"musicMessage", "newsletterAdminInviteMessage", b"newsletterAdminInviteMessage", "newsletterAdminProfileMessage", b"newsletterAdminProfileMessage", "newsletterAdminProfileMessageV2", b"newsletterAdminProfileMessageV2", "newsletterAdminProfileStatusMessage", b"newsletterAdminProfileStatusMessage", "newsletterFollowerInviteMessageV2", b"newsletterFollowerInviteMessageV2", "orderMessage", b"orderMessage", "paymentInviteMessage", b"paymentInviteMessage", "paymentReminderMessage", b"paymentReminderMessage", "pinInChatMessage", b"pinInChatMessage", "placeholderMessage", b"placeholderMessage", "pollAddOptionMessage", b"pollAddOptionMessage", "pollCreationMessage", b"pollCreationMessage", "pollCreationMessageV2", b"pollCreationMessageV2", "pollCreationMessageV3", b"pollCreationMessageV3", "pollCreationMessageV4", b"pollCreationMessageV4", "pollCreationMessageV5", b"pollCreationMessageV5", "pollCreationMessageV6", b"pollCreationMessageV6", "pollCreationOptionImageMessage", b"pollCreationOptionImageMessage", "pollResultSnapshotMessage", b"pollResultSnapshotMessage", "pollResultSnapshotMessageV3", b"pollResultSnapshotMessageV3", "pollUpdateMessage", b"pollUpdateMessage", "productMessage", b"productMessage", "protocolMessage", b"protocolMessage", "ptvMessage", b"ptvMessage", "questionMessage", b"questionMessage", "questionReplyMessage", b"questionReplyMessage", "questionResponseMessage", b"questionResponseMessage", "reactionMessage", b"reactionMessage", "requestPaymentMessage", b"requestPaymentMessage", "requestPhoneNumberMessage", b"requestPhoneNumberMessage", "richResponseMessage", b"richResponseMessage", "rootSecretDistributeMessage", b"rootSecretDistributeMessage", "scheduledCallCreationMessage", b"scheduledCallCreationMessage", "scheduledCallEditMessage", b"scheduledCallEditMessage", "secretEncryptedMessage", b"secretEncryptedMessage", "sendPaymentMessage", b"sendPaymentMessage", "senderKeyDistributionMessage", b"senderKeyDistributionMessage", "splitPaymentMessage", b"splitPaymentMessage", "splitPaymentUpdateMessage", b"splitPaymentUpdateMessage", "spoilerMessage", b"spoilerMessage", "statusAddYours", b"statusAddYours", "statusLinkPreviewMetadata", b"statusLinkPreviewMetadata", "statusMentionMessage", b"statusMentionMessage", "statusNotificationMessage", b"statusNotificationMessage", "statusQuestionAnswerMessage", b"statusQuestionAnswerMessage", "statusQuotedMessage", b"statusQuotedMessage", "statusStickerInteractionMessage", b"statusStickerInteractionMessage", "stickerMessage", b"stickerMessage", "stickerPackMessage", b"stickerPackMessage", "stickerSyncRmrMessage", b"stickerSyncRmrMessage", "templateButtonReplyMessage", b"templateButtonReplyMessage", "templateMessage", b"templateMessage", "videoMessage", b"videoMessage", "viewOnceMessage", b"viewOnceMessage", "viewOnceMessageV2", b"viewOnceMessageV2", "viewOnceMessageV2Extension", b"viewOnceMessageV2Extension"] # noqa: Y015
+ def ClearField(self, field_name: _ClearFieldArgType) -> None: ...
+
+Global___Message: _TypeAlias = Message # noqa: Y015
+
+@_typing.final
+class MessageAddOn(_message.Message):
+ DESCRIPTOR: _descriptor.Descriptor
+
+ class _MessageAddOnType:
+ ValueType = _typing.NewType("ValueType", _builtins.int)
+ V: _TypeAlias = ValueType # noqa: Y015
+
+ class _MessageAddOnTypeEnumTypeWrapper(_enum_type_wrapper._EnumTypeWrapper[MessageAddOn._MessageAddOnType.ValueType], _builtins.type):
+ DESCRIPTOR: _descriptor.EnumDescriptor
+ UNDEFINED: MessageAddOn._MessageAddOnType.ValueType # 0
+ REACTION: MessageAddOn._MessageAddOnType.ValueType # 1
+ EVENT_RESPONSE: MessageAddOn._MessageAddOnType.ValueType # 2
+ POLL_UPDATE: MessageAddOn._MessageAddOnType.ValueType # 3
+ PIN_IN_CHAT: MessageAddOn._MessageAddOnType.ValueType # 4
+
+ class MessageAddOnType(_MessageAddOnType, metaclass=_MessageAddOnTypeEnumTypeWrapper): ...
+ UNDEFINED: MessageAddOn.MessageAddOnType.ValueType # 0
+ REACTION: MessageAddOn.MessageAddOnType.ValueType # 1
+ EVENT_RESPONSE: MessageAddOn.MessageAddOnType.ValueType # 2
+ POLL_UPDATE: MessageAddOn.MessageAddOnType.ValueType # 3
+ PIN_IN_CHAT: MessageAddOn.MessageAddOnType.ValueType # 4
+
+ MESSAGEADDONTYPE_FIELD_NUMBER: _builtins.int
+ MESSAGEADDON_FIELD_NUMBER: _builtins.int
+ SENDERTIMESTAMPMS_FIELD_NUMBER: _builtins.int
+ SERVERTIMESTAMPMS_FIELD_NUMBER: _builtins.int
+ STATUS_FIELD_NUMBER: _builtins.int
+ ADDONCONTEXTINFO_FIELD_NUMBER: _builtins.int
+ MESSAGEADDONKEY_FIELD_NUMBER: _builtins.int
+ LEGACYMESSAGE_FIELD_NUMBER: _builtins.int
+ messageAddOnType: Global___MessageAddOn.MessageAddOnType.ValueType
+ senderTimestampMs: _builtins.int
+ serverTimestampMs: _builtins.int
+ status: Global___WebMessageInfo.Status.ValueType
+ @_builtins.property
+ def messageAddOn(self) -> Global___Message: ...
@_builtins.property
- def ptvMessage(self) -> Global___Message.VideoMessage: ...
+ def addOnContextInfo(self) -> Global___MessageAddOnContextInfo: ...
@_builtins.property
- def botInvokeMessage(self) -> Global___Message.FutureProofMessage: ...
+ def messageAddOnKey(self) -> Global___MessageKey: ...
@_builtins.property
- def callLogMesssage(self) -> Global___Message.CallLogMessage: ...
+ def legacyMessage(self) -> Global___LegacyMessage: ...
+ def __init__(
+ self,
+ *,
+ messageAddOnType: Global___MessageAddOn.MessageAddOnType.ValueType | None = ...,
+ messageAddOn: Global___Message | None = ...,
+ senderTimestampMs: _builtins.int | None = ...,
+ serverTimestampMs: _builtins.int | None = ...,
+ status: Global___WebMessageInfo.Status.ValueType | None = ...,
+ addOnContextInfo: Global___MessageAddOnContextInfo | None = ...,
+ messageAddOnKey: Global___MessageKey | None = ...,
+ legacyMessage: Global___LegacyMessage | None = ...,
+ ) -> None: ...
+ _HasFieldArgType: _TypeAlias = _typing.Literal["addOnContextInfo", b"addOnContextInfo", "legacyMessage", b"legacyMessage", "messageAddOn", b"messageAddOn", "messageAddOnKey", b"messageAddOnKey", "messageAddOnType", b"messageAddOnType", "senderTimestampMs", b"senderTimestampMs", "serverTimestampMs", b"serverTimestampMs", "status", b"status"] # noqa: Y015
+ def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ...
+ _ClearFieldArgType: _TypeAlias = _typing.Literal["addOnContextInfo", b"addOnContextInfo", "legacyMessage", b"legacyMessage", "messageAddOn", b"messageAddOn", "messageAddOnKey", b"messageAddOnKey", "messageAddOnType", b"messageAddOnType", "senderTimestampMs", b"senderTimestampMs", "serverTimestampMs", b"serverTimestampMs", "status", b"status"] # noqa: Y015
+ def ClearField(self, field_name: _ClearFieldArgType) -> None: ...
+
+Global___MessageAddOn: _TypeAlias = MessageAddOn # noqa: Y015
+
+@_typing.final
+class MessageAddOnContextInfo(_message.Message):
+ DESCRIPTOR: _descriptor.Descriptor
+
+ MESSAGEADDONDURATIONINSECS_FIELD_NUMBER: _builtins.int
+ MESSAGEADDONEXPIRYTYPE_FIELD_NUMBER: _builtins.int
+ messageAddOnDurationInSecs: _builtins.int
+ messageAddOnExpiryType: Global___MessageContextInfo.MessageAddonExpiryType.ValueType
+ def __init__(
+ self,
+ *,
+ messageAddOnDurationInSecs: _builtins.int | None = ...,
+ messageAddOnExpiryType: Global___MessageContextInfo.MessageAddonExpiryType.ValueType | None = ...,
+ ) -> None: ...
+ _HasFieldArgType: _TypeAlias = _typing.Literal["messageAddOnDurationInSecs", b"messageAddOnDurationInSecs", "messageAddOnExpiryType", b"messageAddOnExpiryType"] # noqa: Y015
+ def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ...
+ _ClearFieldArgType: _TypeAlias = _typing.Literal["messageAddOnDurationInSecs", b"messageAddOnDurationInSecs", "messageAddOnExpiryType", b"messageAddOnExpiryType"] # noqa: Y015
+ def ClearField(self, field_name: _ClearFieldArgType) -> None: ...
+
+Global___MessageAddOnContextInfo: _TypeAlias = MessageAddOnContextInfo # noqa: Y015
+
+@_typing.final
+class MessageAssociation(_message.Message):
+ DESCRIPTOR: _descriptor.Descriptor
+
+ class _AssociationType:
+ ValueType = _typing.NewType("ValueType", _builtins.int)
+ V: _TypeAlias = ValueType # noqa: Y015
+
+ class _AssociationTypeEnumTypeWrapper(_enum_type_wrapper._EnumTypeWrapper[MessageAssociation._AssociationType.ValueType], _builtins.type):
+ DESCRIPTOR: _descriptor.EnumDescriptor
+ UNKNOWN: MessageAssociation._AssociationType.ValueType # 0
+ MEDIA_ALBUM: MessageAssociation._AssociationType.ValueType # 1
+ BOT_PLUGIN: MessageAssociation._AssociationType.ValueType # 2
+ EVENT_COVER_IMAGE: MessageAssociation._AssociationType.ValueType # 3
+ STATUS_POLL: MessageAssociation._AssociationType.ValueType # 4
+ HD_VIDEO_DUAL_UPLOAD: MessageAssociation._AssociationType.ValueType # 5
+ STATUS_EXTERNAL_RESHARE: MessageAssociation._AssociationType.ValueType # 6
+ MEDIA_POLL: MessageAssociation._AssociationType.ValueType # 7
+ STATUS_ADD_YOURS: MessageAssociation._AssociationType.ValueType # 8
+ STATUS_NOTIFICATION: MessageAssociation._AssociationType.ValueType # 9
+ HD_IMAGE_DUAL_UPLOAD: MessageAssociation._AssociationType.ValueType # 10
+ STICKER_ANNOTATION: MessageAssociation._AssociationType.ValueType # 11
+ MOTION_PHOTO: MessageAssociation._AssociationType.ValueType # 12
+ STATUS_LINK_ACTION: MessageAssociation._AssociationType.ValueType # 13
+ VIEW_ALL_REPLIES: MessageAssociation._AssociationType.ValueType # 14
+ STATUS_ADD_YOURS_AI_IMAGINE: MessageAssociation._AssociationType.ValueType # 15
+ STATUS_QUESTION: MessageAssociation._AssociationType.ValueType # 16
+ STATUS_ADD_YOURS_DIWALI: MessageAssociation._AssociationType.ValueType # 17
+ STATUS_REACTION: MessageAssociation._AssociationType.ValueType # 18
+ HEVC_VIDEO_DUAL_UPLOAD: MessageAssociation._AssociationType.ValueType # 19
+ POLL_ADD_OPTION: MessageAssociation._AssociationType.ValueType # 20
+
+ class AssociationType(_AssociationType, metaclass=_AssociationTypeEnumTypeWrapper): ...
+ UNKNOWN: MessageAssociation.AssociationType.ValueType # 0
+ MEDIA_ALBUM: MessageAssociation.AssociationType.ValueType # 1
+ BOT_PLUGIN: MessageAssociation.AssociationType.ValueType # 2
+ EVENT_COVER_IMAGE: MessageAssociation.AssociationType.ValueType # 3
+ STATUS_POLL: MessageAssociation.AssociationType.ValueType # 4
+ HD_VIDEO_DUAL_UPLOAD: MessageAssociation.AssociationType.ValueType # 5
+ STATUS_EXTERNAL_RESHARE: MessageAssociation.AssociationType.ValueType # 6
+ MEDIA_POLL: MessageAssociation.AssociationType.ValueType # 7
+ STATUS_ADD_YOURS: MessageAssociation.AssociationType.ValueType # 8
+ STATUS_NOTIFICATION: MessageAssociation.AssociationType.ValueType # 9
+ HD_IMAGE_DUAL_UPLOAD: MessageAssociation.AssociationType.ValueType # 10
+ STICKER_ANNOTATION: MessageAssociation.AssociationType.ValueType # 11
+ MOTION_PHOTO: MessageAssociation.AssociationType.ValueType # 12
+ STATUS_LINK_ACTION: MessageAssociation.AssociationType.ValueType # 13
+ VIEW_ALL_REPLIES: MessageAssociation.AssociationType.ValueType # 14
+ STATUS_ADD_YOURS_AI_IMAGINE: MessageAssociation.AssociationType.ValueType # 15
+ STATUS_QUESTION: MessageAssociation.AssociationType.ValueType # 16
+ STATUS_ADD_YOURS_DIWALI: MessageAssociation.AssociationType.ValueType # 17
+ STATUS_REACTION: MessageAssociation.AssociationType.ValueType # 18
+ HEVC_VIDEO_DUAL_UPLOAD: MessageAssociation.AssociationType.ValueType # 19
+ POLL_ADD_OPTION: MessageAssociation.AssociationType.ValueType # 20
+
+ ASSOCIATIONTYPE_FIELD_NUMBER: _builtins.int
+ PARENTMESSAGEKEY_FIELD_NUMBER: _builtins.int
+ MESSAGEINDEX_FIELD_NUMBER: _builtins.int
+ associationType: Global___MessageAssociation.AssociationType.ValueType
+ messageIndex: _builtins.int
@_builtins.property
- def messageHistoryBundle(self) -> Global___Message.MessageHistoryBundle: ...
+ def parentMessageKey(self) -> Global___MessageKey: ...
+ def __init__(
+ self,
+ *,
+ associationType: Global___MessageAssociation.AssociationType.ValueType | None = ...,
+ parentMessageKey: Global___MessageKey | None = ...,
+ messageIndex: _builtins.int | None = ...,
+ ) -> None: ...
+ _HasFieldArgType: _TypeAlias = _typing.Literal["associationType", b"associationType", "messageIndex", b"messageIndex", "parentMessageKey", b"parentMessageKey"] # noqa: Y015
+ def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ...
+ _ClearFieldArgType: _TypeAlias = _typing.Literal["associationType", b"associationType", "messageIndex", b"messageIndex", "parentMessageKey", b"parentMessageKey"] # noqa: Y015
+ def ClearField(self, field_name: _ClearFieldArgType) -> None: ...
+
+Global___MessageAssociation: _TypeAlias = MessageAssociation # noqa: Y015
+
+@_typing.final
+class MessageContextInfo(_message.Message):
+ DESCRIPTOR: _descriptor.Descriptor
+
+ class _MessageAddonExpiryType:
+ ValueType = _typing.NewType("ValueType", _builtins.int)
+ V: _TypeAlias = ValueType # noqa: Y015
+
+ class _MessageAddonExpiryTypeEnumTypeWrapper(_enum_type_wrapper._EnumTypeWrapper[MessageContextInfo._MessageAddonExpiryType.ValueType], _builtins.type):
+ DESCRIPTOR: _descriptor.EnumDescriptor
+ STATIC: MessageContextInfo._MessageAddonExpiryType.ValueType # 1
+ DEPENDENT_ON_PARENT: MessageContextInfo._MessageAddonExpiryType.ValueType # 2
+
+ class MessageAddonExpiryType(_MessageAddonExpiryType, metaclass=_MessageAddonExpiryTypeEnumTypeWrapper): ...
+ STATIC: MessageContextInfo.MessageAddonExpiryType.ValueType # 1
+ DEPENDENT_ON_PARENT: MessageContextInfo.MessageAddonExpiryType.ValueType # 2
+
+ DEVICELISTMETADATA_FIELD_NUMBER: _builtins.int
+ DEVICELISTMETADATAVERSION_FIELD_NUMBER: _builtins.int
+ MESSAGESECRET_FIELD_NUMBER: _builtins.int
+ PADDINGBYTES_FIELD_NUMBER: _builtins.int
+ MESSAGEADDONDURATIONINSECS_FIELD_NUMBER: _builtins.int
+ BOTMESSAGESECRET_FIELD_NUMBER: _builtins.int
+ BOTMETADATA_FIELD_NUMBER: _builtins.int
+ REPORTINGTOKENVERSION_FIELD_NUMBER: _builtins.int
+ MESSAGEADDONEXPIRYTYPE_FIELD_NUMBER: _builtins.int
+ MESSAGEASSOCIATION_FIELD_NUMBER: _builtins.int
+ CAPICREATEDGROUP_FIELD_NUMBER: _builtins.int
+ SUPPORTPAYLOAD_FIELD_NUMBER: _builtins.int
+ LIMITSHARING_FIELD_NUMBER: _builtins.int
+ LIMITSHARINGV2_FIELD_NUMBER: _builtins.int
+ THREADID_FIELD_NUMBER: _builtins.int
+ WEBLINKRENDERCONFIG_FIELD_NUMBER: _builtins.int
+ TEEBOTMETADATA_FIELD_NUMBER: _builtins.int
+ ACCOUNTENCRYPTIONATTESTATION_FIELD_NUMBER: _builtins.int
+ ASSOCIATEDPRIMARYIDENTITYKEY_FIELD_NUMBER: _builtins.int
+ deviceListMetadataVersion: _builtins.int
+ messageSecret: _builtins.bytes
+ paddingBytes: _builtins.bytes
+ messageAddOnDurationInSecs: _builtins.int
+ botMessageSecret: _builtins.bytes
+ reportingTokenVersion: _builtins.int
+ messageAddOnExpiryType: Global___MessageContextInfo.MessageAddonExpiryType.ValueType
+ capiCreatedGroup: _builtins.bool
+ supportPayload: _builtins.str
+ weblinkRenderConfig: Global___WebLinkRenderConfig.ValueType
+ teeBotMetadata: _builtins.bytes
+ associatedPrimaryIdentityKey: _builtins.bytes
@_builtins.property
- def encCommentMessage(self) -> Global___Message.EncCommentMessage: ...
+ def deviceListMetadata(self) -> Global___DeviceListMetadata: ...
@_builtins.property
- def bcallMessage(self) -> Global___Message.BCallMessage: ...
+ def botMetadata(self) -> Global___BotMetadata: ...
@_builtins.property
- def lottieStickerMessage(self) -> Global___Message.FutureProofMessage: ...
+ def messageAssociation(self) -> Global___MessageAssociation: ...
@_builtins.property
- def eventMessage(self) -> Global___Message.EventMessage: ...
+ def limitSharing(self) -> Global___LimitSharing: ...
@_builtins.property
- def encEventResponseMessage(self) -> Global___Message.EncEventResponseMessage: ...
+ def limitSharingV2(self) -> Global___LimitSharing: ...
@_builtins.property
- def commentMessage(self) -> Global___Message.CommentMessage: ...
+ def threadId(self) -> _containers.RepeatedCompositeFieldContainer[Global___ThreadID]: ...
@_builtins.property
- def newsletterAdminInviteMessage(self) -> Global___Message.NewsletterAdminInviteMessage: ...
+ def accountEncryptionAttestation(self) -> Global___NonE2EEAttestation: ...
+ def __init__(
+ self,
+ *,
+ deviceListMetadata: Global___DeviceListMetadata | None = ...,
+ deviceListMetadataVersion: _builtins.int | None = ...,
+ messageSecret: _builtins.bytes | None = ...,
+ paddingBytes: _builtins.bytes | None = ...,
+ messageAddOnDurationInSecs: _builtins.int | None = ...,
+ botMessageSecret: _builtins.bytes | None = ...,
+ botMetadata: Global___BotMetadata | None = ...,
+ reportingTokenVersion: _builtins.int | None = ...,
+ messageAddOnExpiryType: Global___MessageContextInfo.MessageAddonExpiryType.ValueType | None = ...,
+ messageAssociation: Global___MessageAssociation | None = ...,
+ capiCreatedGroup: _builtins.bool | None = ...,
+ supportPayload: _builtins.str | None = ...,
+ limitSharing: Global___LimitSharing | None = ...,
+ limitSharingV2: Global___LimitSharing | None = ...,
+ threadId: _abc.Iterable[Global___ThreadID] | None = ...,
+ weblinkRenderConfig: Global___WebLinkRenderConfig.ValueType | None = ...,
+ teeBotMetadata: _builtins.bytes | None = ...,
+ accountEncryptionAttestation: Global___NonE2EEAttestation | None = ...,
+ associatedPrimaryIdentityKey: _builtins.bytes | None = ...,
+ ) -> None: ...
+ _HasFieldArgType: _TypeAlias = _typing.Literal["accountEncryptionAttestation", b"accountEncryptionAttestation", "associatedPrimaryIdentityKey", b"associatedPrimaryIdentityKey", "botMessageSecret", b"botMessageSecret", "botMetadata", b"botMetadata", "capiCreatedGroup", b"capiCreatedGroup", "deviceListMetadata", b"deviceListMetadata", "deviceListMetadataVersion", b"deviceListMetadataVersion", "limitSharing", b"limitSharing", "limitSharingV2", b"limitSharingV2", "messageAddOnDurationInSecs", b"messageAddOnDurationInSecs", "messageAddOnExpiryType", b"messageAddOnExpiryType", "messageAssociation", b"messageAssociation", "messageSecret", b"messageSecret", "paddingBytes", b"paddingBytes", "reportingTokenVersion", b"reportingTokenVersion", "supportPayload", b"supportPayload", "teeBotMetadata", b"teeBotMetadata", "weblinkRenderConfig", b"weblinkRenderConfig"] # noqa: Y015
+ def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ...
+ _ClearFieldArgType: _TypeAlias = _typing.Literal["accountEncryptionAttestation", b"accountEncryptionAttestation", "associatedPrimaryIdentityKey", b"associatedPrimaryIdentityKey", "botMessageSecret", b"botMessageSecret", "botMetadata", b"botMetadata", "capiCreatedGroup", b"capiCreatedGroup", "deviceListMetadata", b"deviceListMetadata", "deviceListMetadataVersion", b"deviceListMetadataVersion", "limitSharing", b"limitSharing", "limitSharingV2", b"limitSharingV2", "messageAddOnDurationInSecs", b"messageAddOnDurationInSecs", "messageAddOnExpiryType", b"messageAddOnExpiryType", "messageAssociation", b"messageAssociation", "messageSecret", b"messageSecret", "paddingBytes", b"paddingBytes", "reportingTokenVersion", b"reportingTokenVersion", "supportPayload", b"supportPayload", "teeBotMetadata", b"teeBotMetadata", "threadId", b"threadId", "weblinkRenderConfig", b"weblinkRenderConfig"] # noqa: Y015
+ def ClearField(self, field_name: _ClearFieldArgType) -> None: ...
+
+Global___MessageContextInfo: _TypeAlias = MessageContextInfo # noqa: Y015
+
+@_typing.final
+class MessageKey(_message.Message):
+ DESCRIPTOR: _descriptor.Descriptor
+
+ REMOTEJID_FIELD_NUMBER: _builtins.int
+ FROMME_FIELD_NUMBER: _builtins.int
+ ID_FIELD_NUMBER: _builtins.int
+ PARTICIPANT_FIELD_NUMBER: _builtins.int
+ remoteJid: _builtins.str
+ fromMe: _builtins.bool
+ id: _builtins.str
+ participant: _builtins.str
+ def __init__(
+ self,
+ *,
+ remoteJid: _builtins.str | None = ...,
+ fromMe: _builtins.bool | None = ...,
+ id: _builtins.str | None = ...,
+ participant: _builtins.str | None = ...,
+ ) -> None: ...
+ _HasFieldArgType: _TypeAlias = _typing.Literal["fromMe", b"fromMe", "id", b"id", "participant", b"participant", "remoteJid", b"remoteJid"] # noqa: Y015
+ def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ...
+ _ClearFieldArgType: _TypeAlias = _typing.Literal["fromMe", b"fromMe", "id", b"id", "participant", b"participant", "remoteJid", b"remoteJid"] # noqa: Y015
+ def ClearField(self, field_name: _ClearFieldArgType) -> None: ...
+
+Global___MessageKey: _TypeAlias = MessageKey # noqa: Y015
+
+@_typing.final
+class MessageSecretMessage(_message.Message):
+ DESCRIPTOR: _descriptor.Descriptor
+
+ VERSION_FIELD_NUMBER: _builtins.int
+ ENCIV_FIELD_NUMBER: _builtins.int
+ ENCPAYLOAD_FIELD_NUMBER: _builtins.int
+ version: _builtins.int
+ encIv: _builtins.bytes
+ encPayload: _builtins.bytes
+ def __init__(
+ self,
+ *,
+ version: _builtins.int | None = ...,
+ encIv: _builtins.bytes | None = ...,
+ encPayload: _builtins.bytes | None = ...,
+ ) -> None: ...
+ _HasFieldArgType: _TypeAlias = _typing.Literal["encIv", b"encIv", "encPayload", b"encPayload", "version", b"version"] # noqa: Y015
+ def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ...
+ _ClearFieldArgType: _TypeAlias = _typing.Literal["encIv", b"encIv", "encPayload", b"encPayload", "version", b"version"] # noqa: Y015
+ def ClearField(self, field_name: _ClearFieldArgType) -> None: ...
+
+Global___MessageSecretMessage: _TypeAlias = MessageSecretMessage # noqa: Y015
+
+@_typing.final
+class MessageText(_message.Message):
+ DESCRIPTOR: _descriptor.Descriptor
+
+ TEXT_FIELD_NUMBER: _builtins.int
+ MENTIONEDJID_FIELD_NUMBER: _builtins.int
+ COMMANDS_FIELD_NUMBER: _builtins.int
+ MENTIONS_FIELD_NUMBER: _builtins.int
+ text: _builtins.str
@_builtins.property
- def placeholderMessage(self) -> Global___Message.PlaceholderMessage: ...
+ def mentionedJid(self) -> _containers.RepeatedScalarFieldContainer[_builtins.str]: ...
@_builtins.property
- def secretEncryptedMessage(self) -> Global___Message.SecretEncryptedMessage: ...
+ def commands(self) -> _containers.RepeatedCompositeFieldContainer[Global___Command]: ...
@_builtins.property
- def albumMessage(self) -> Global___Message.AlbumMessage: ...
+ def mentions(self) -> _containers.RepeatedCompositeFieldContainer[Global___Mention]: ...
+ def __init__(
+ self,
+ *,
+ text: _builtins.str | None = ...,
+ mentionedJid: _abc.Iterable[_builtins.str] | None = ...,
+ commands: _abc.Iterable[Global___Command] | None = ...,
+ mentions: _abc.Iterable[Global___Mention] | None = ...,
+ ) -> None: ...
+ _HasFieldArgType: _TypeAlias = _typing.Literal["text", b"text"] # noqa: Y015
+ def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ...
+ _ClearFieldArgType: _TypeAlias = _typing.Literal["commands", b"commands", "mentionedJid", b"mentionedJid", "mentions", b"mentions", "text", b"text"] # noqa: Y015
+ def ClearField(self, field_name: _ClearFieldArgType) -> None: ...
+
+Global___MessageText: _TypeAlias = MessageText # noqa: Y015
+
+@_typing.final
+class MessagingMailboxPublicData(_message.Message):
+ DESCRIPTOR: _descriptor.Descriptor
+
+ EPOCHHEAD_FIELD_NUMBER: _builtins.int
+ DEVICEROSTERHASH_FIELD_NUMBER: _builtins.int
+ SEQUENCENUMBER_FIELD_NUMBER: _builtins.int
+ SIGPK_FIELD_NUMBER: _builtins.int
+ ENCPK_FIELD_NUMBER: _builtins.int
+ AUTHPK_FIELD_NUMBER: _builtins.int
+ epochHead: _builtins.bytes
+ deviceRosterHash: _builtins.bytes
+ sequenceNumber: _builtins.int
+ sigPk: _builtins.bytes
+ encPk: _builtins.bytes
+ authPk: _builtins.bytes
+ def __init__(
+ self,
+ *,
+ epochHead: _builtins.bytes | None = ...,
+ deviceRosterHash: _builtins.bytes | None = ...,
+ sequenceNumber: _builtins.int | None = ...,
+ sigPk: _builtins.bytes | None = ...,
+ encPk: _builtins.bytes | None = ...,
+ authPk: _builtins.bytes | None = ...,
+ ) -> None: ...
+ _HasFieldArgType: _TypeAlias = _typing.Literal["authPk", b"authPk", "deviceRosterHash", b"deviceRosterHash", "encPk", b"encPk", "epochHead", b"epochHead", "sequenceNumber", b"sequenceNumber", "sigPk", b"sigPk"] # noqa: Y015
+ def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ...
+ _ClearFieldArgType: _TypeAlias = _typing.Literal["authPk", b"authPk", "deviceRosterHash", b"deviceRosterHash", "encPk", b"encPk", "epochHead", b"epochHead", "sequenceNumber", b"sequenceNumber", "sigPk", b"sigPk"] # noqa: Y015
+ def ClearField(self, field_name: _ClearFieldArgType) -> None: ...
+
+Global___MessagingMailboxPublicData: _TypeAlias = MessagingMailboxPublicData # noqa: Y015
+
+@_typing.final
+class MinosClientConfig(_message.Message):
+ DESCRIPTOR: _descriptor.Descriptor
+
+ PREFERREDMESSAGEENCRYPTIONVERSION_FIELD_NUMBER: _builtins.int
+ PREFERREDMEKENCRYPTIONVERSION_FIELD_NUMBER: _builtins.int
+ preferredMessageEncryptionVersion: _builtins.int
+ preferredMekEncryptionVersion: _builtins.int
+ def __init__(
+ self,
+ *,
+ preferredMessageEncryptionVersion: _builtins.int | None = ...,
+ preferredMekEncryptionVersion: _builtins.int | None = ...,
+ ) -> None: ...
+ _HasFieldArgType: _TypeAlias = _typing.Literal["preferredMekEncryptionVersion", b"preferredMekEncryptionVersion", "preferredMessageEncryptionVersion", b"preferredMessageEncryptionVersion"] # noqa: Y015
+ def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ...
+ _ClearFieldArgType: _TypeAlias = _typing.Literal["preferredMekEncryptionVersion", b"preferredMekEncryptionVersion", "preferredMessageEncryptionVersion", b"preferredMessageEncryptionVersion"] # noqa: Y015
+ def ClearField(self, field_name: _ClearFieldArgType) -> None: ...
+
+Global___MinosClientConfig: _TypeAlias = MinosClientConfig # noqa: Y015
+
+@_typing.final
+class MinosCommand(_message.Message):
+ DESCRIPTOR: _descriptor.Descriptor
+
+ ENCRYPTANDSIGNMESSAGE_FIELD_NUMBER: _builtins.int
+ DECRYPTANDVERIFYMESSAGE_FIELD_NUMBER: _builtins.int
+ GENERATEMEK_FIELD_NUMBER: _builtins.int
+ GENERATEMEKROSTERHASH_FIELD_NUMBER: _builtins.int
+ ENCRYPTMEKFORDISTRIBUTION_FIELD_NUMBER: _builtins.int
+ DECRYPTMEKFORDISTRIBUTION_FIELD_NUMBER: _builtins.int
+ ENCRYPTMEKSFORDISTRIBUTIONFROMTRANSPORTSENDER_FIELD_NUMBER: _builtins.int
+ DECRYPTMEKFORDISTRIBUTIONFROMTRANSPORTSENDER_FIELD_NUMBER: _builtins.int
+ WRAPTRANSPORTSIGNINGPUBLICKEY_FIELD_NUMBER: _builtins.int
+ WRAPTRANSPORTSIGNINGSECRETKEY_FIELD_NUMBER: _builtins.int
+ DERIVEMAILBOXSIGNINGKEYPAIR_FIELD_NUMBER: _builtins.int
+ DERIVEMAILBOXENCRYPTIONKEYPAIR_FIELD_NUMBER: _builtins.int
+ DERIVEMAILBOXAUTHKEYPAIR_FIELD_NUMBER: _builtins.int
+ DERIVEATTACHMENTACCESSTOKENSECRET_FIELD_NUMBER: _builtins.int
+ DERIVEATTACHMENTPRIMARYKEYSECRET_FIELD_NUMBER: _builtins.int
+ MINOSOPENINITIALEPOCH_FIELD_NUMBER: _builtins.int
+ MINOSOPENEPOCH_FIELD_NUMBER: _builtins.int
+ MINOSVALIDATEEPOCH_FIELD_NUMBER: _builtins.int
+ MINOSVERIFYSINGLEEPOCH_FIELD_NUMBER: _builtins.int
+ MINOSTHREADIDFROMONETOONETHREAD_FIELD_NUMBER: _builtins.int
+ MINOSTHREADIDFROMACTTHREADID_FIELD_NUMBER: _builtins.int
+ MANDRAKEOPENEPOCH_FIELD_NUMBER: _builtins.int
+ MANDRAKEENCRYPTMEK_FIELD_NUMBER: _builtins.int
+ MANDRAKEDECRYPTMEK_FIELD_NUMBER: _builtins.int
+ MANDRAKEOPENINITIALEPOCH_FIELD_NUMBER: _builtins.int
+ MANDRAKEVALIDATENEWMMKFROMMAILBOX_FIELD_NUMBER: _builtins.int
+ MANDRAKEVALIDATENEWMMKFROMDETACHEDDEVICE_FIELD_NUMBER: _builtins.int
+ DERIVEMESSAGINGMAILBOXKEYPAIRS_FIELD_NUMBER: _builtins.int
+ DECRYPTSELFMMKDISTRIBUTION_FIELD_NUMBER: _builtins.int
@_builtins.property
- def eventCoverImage(self) -> Global___Message.FutureProofMessage: ...
+ def encryptAndSignMessage(self) -> Global___MinosEncryptAndSignMessageInput: ...
@_builtins.property
- def stickerPackMessage(self) -> Global___Message.StickerPackMessage: ...
+ def decryptAndVerifyMessage(self) -> Global___MinosDecryptAndVerifyMessageInput: ...
@_builtins.property
- def statusMentionMessage(self) -> Global___Message.FutureProofMessage: ...
+ def generateMek(self) -> Global___GenerateMekInput: ...
@_builtins.property
- def pollResultSnapshotMessage(self) -> Global___Message.PollResultSnapshotMessage: ...
+ def generateMekRosterHash(self) -> Global___GenerateMekRosterHashInput: ...
@_builtins.property
- def pollCreationOptionImageMessage(self) -> Global___Message.FutureProofMessage: ...
+ def encryptMekForDistribution(self) -> Global___EncryptMekForDistributionInput: ...
@_builtins.property
- def associatedChildMessage(self) -> Global___Message.FutureProofMessage: ...
+ def decryptMekForDistribution(self) -> Global___DecryptMekForDistributionInput: ...
@_builtins.property
- def groupStatusMentionMessage(self) -> Global___Message.FutureProofMessage: ...
+ def encryptMeksForDistributionFromTransportSender(self) -> Global___EncryptMeksForDistributionFromTransportSenderInput: ...
@_builtins.property
- def pollCreationMessageV4(self) -> Global___Message.FutureProofMessage: ...
+ def decryptMekForDistributionFromTransportSender(self) -> Global___DecryptMekForDistributionFromTransportSenderInput: ...
@_builtins.property
- def statusAddYours(self) -> Global___Message.FutureProofMessage: ...
+ def wrapTransportSigningPublicKey(self) -> Global___WrapTransportSigningPublicKeyInput: ...
@_builtins.property
- def groupStatusMessage(self) -> Global___Message.FutureProofMessage: ...
+ def wrapTransportSigningSecretKey(self) -> Global___WrapTransportSigningSecretKeyInput: ...
@_builtins.property
- def richResponseMessage(self) -> Global___AIRichResponseMessage: ...
+ def deriveMailboxSigningKeypair(self) -> Global___DeriveMailboxSigningKeypairInput: ...
@_builtins.property
- def statusNotificationMessage(self) -> Global___Message.StatusNotificationMessage: ...
+ def deriveMailboxEncryptionKeypair(self) -> Global___DeriveMailboxEncryptionKeypairInput: ...
@_builtins.property
- def limitSharingMessage(self) -> Global___Message.FutureProofMessage: ...
+ def deriveMailboxAuthKeypair(self) -> Global___DeriveMailboxAuthKeypairInput: ...
@_builtins.property
- def botTaskMessage(self) -> Global___Message.FutureProofMessage: ...
+ def deriveAttachmentAccessTokenSecret(self) -> Global___DeriveAttachmentAccessTokenSecretInput: ...
@_builtins.property
- def questionMessage(self) -> Global___Message.FutureProofMessage: ...
+ def deriveAttachmentPrimaryKeySecret(self) -> Global___DeriveAttachmentPrimaryKeySecretInput: ...
@_builtins.property
- def messageHistoryNotice(self) -> Global___Message.MessageHistoryNotice: ...
+ def minosOpenInitialEpoch(self) -> Global___MinosOpenInitialEpochInput: ...
@_builtins.property
- def groupStatusMessageV2(self) -> Global___Message.FutureProofMessage: ...
+ def minosOpenEpoch(self) -> Global___MinosOpenEpochInput: ...
@_builtins.property
- def botForwardedMessage(self) -> Global___Message.FutureProofMessage: ...
+ def minosValidateEpoch(self) -> Global___MinosValidateEpochInput: ...
@_builtins.property
- def statusQuestionAnswerMessage(self) -> Global___Message.StatusQuestionAnswerMessage: ...
+ def minosVerifySingleEpoch(self) -> Global___MinosVerifySingleEpochInput: ...
@_builtins.property
- def questionReplyMessage(self) -> Global___Message.FutureProofMessage: ...
+ def minosThreadIdFromOneToOneThread(self) -> Global___MinosThreadIdFromOneToOneThreadInput: ...
@_builtins.property
- def questionResponseMessage(self) -> Global___Message.QuestionResponseMessage: ...
+ def minosThreadIdFromActThreadId(self) -> Global___MinosThreadIdFromActThreadIdInput: ...
@_builtins.property
- def statusQuotedMessage(self) -> Global___Message.StatusQuotedMessage: ...
+ def mandrakeOpenEpoch(self) -> Global___MandrakeOpenEpochInput: ...
@_builtins.property
- def statusStickerInteractionMessage(self) -> Global___Message.StatusStickerInteractionMessage: ...
+ def mandrakeEncryptMek(self) -> Global___MandrakeEncryptMekInput: ...
@_builtins.property
- def pollCreationMessageV5(self) -> Global___Message.PollCreationMessage: ...
+ def mandrakeDecryptMek(self) -> Global___MandrakeDecryptMekInput: ...
@_builtins.property
- def newsletterFollowerInviteMessageV2(self) -> Global___Message.NewsletterFollowerInviteMessage: ...
+ def mandrakeOpenInitialEpoch(self) -> Global___MandrakeOpenInitialEpochInput: ...
@_builtins.property
- def pollResultSnapshotMessageV3(self) -> Global___Message.PollResultSnapshotMessage: ...
+ def mandrakeValidateNewMmkFromMailbox(self) -> Global___MandrakeValidateNewMmkFromMailboxInput: ...
@_builtins.property
- def newsletterAdminProfileMessage(self) -> Global___Message.FutureProofMessage: ...
+ def mandrakeValidateNewMmkFromDetachedDevice(self) -> Global___MandrakeValidateNewMmkFromDetachedDeviceInput: ...
@_builtins.property
- def newsletterAdminProfileMessageV2(self) -> Global___Message.FutureProofMessage: ...
+ def deriveMessagingMailboxKeypairs(self) -> Global___DeriveMessagingMailboxKeypairsInput: ...
@_builtins.property
- def spoilerMessage(self) -> Global___Message.FutureProofMessage: ...
+ def decryptSelfMmkDistribution(self) -> Global___DecryptSelfMmkDistributionInput: ...
+ def __init__(
+ self,
+ *,
+ encryptAndSignMessage: Global___MinosEncryptAndSignMessageInput | None = ...,
+ decryptAndVerifyMessage: Global___MinosDecryptAndVerifyMessageInput | None = ...,
+ generateMek: Global___GenerateMekInput | None = ...,
+ generateMekRosterHash: Global___GenerateMekRosterHashInput | None = ...,
+ encryptMekForDistribution: Global___EncryptMekForDistributionInput | None = ...,
+ decryptMekForDistribution: Global___DecryptMekForDistributionInput | None = ...,
+ encryptMeksForDistributionFromTransportSender: Global___EncryptMeksForDistributionFromTransportSenderInput | None = ...,
+ decryptMekForDistributionFromTransportSender: Global___DecryptMekForDistributionFromTransportSenderInput | None = ...,
+ wrapTransportSigningPublicKey: Global___WrapTransportSigningPublicKeyInput | None = ...,
+ wrapTransportSigningSecretKey: Global___WrapTransportSigningSecretKeyInput | None = ...,
+ deriveMailboxSigningKeypair: Global___DeriveMailboxSigningKeypairInput | None = ...,
+ deriveMailboxEncryptionKeypair: Global___DeriveMailboxEncryptionKeypairInput | None = ...,
+ deriveMailboxAuthKeypair: Global___DeriveMailboxAuthKeypairInput | None = ...,
+ deriveAttachmentAccessTokenSecret: Global___DeriveAttachmentAccessTokenSecretInput | None = ...,
+ deriveAttachmentPrimaryKeySecret: Global___DeriveAttachmentPrimaryKeySecretInput | None = ...,
+ minosOpenInitialEpoch: Global___MinosOpenInitialEpochInput | None = ...,
+ minosOpenEpoch: Global___MinosOpenEpochInput | None = ...,
+ minosValidateEpoch: Global___MinosValidateEpochInput | None = ...,
+ minosVerifySingleEpoch: Global___MinosVerifySingleEpochInput | None = ...,
+ minosThreadIdFromOneToOneThread: Global___MinosThreadIdFromOneToOneThreadInput | None = ...,
+ minosThreadIdFromActThreadId: Global___MinosThreadIdFromActThreadIdInput | None = ...,
+ mandrakeOpenEpoch: Global___MandrakeOpenEpochInput | None = ...,
+ mandrakeEncryptMek: Global___MandrakeEncryptMekInput | None = ...,
+ mandrakeDecryptMek: Global___MandrakeDecryptMekInput | None = ...,
+ mandrakeOpenInitialEpoch: Global___MandrakeOpenInitialEpochInput | None = ...,
+ mandrakeValidateNewMmkFromMailbox: Global___MandrakeValidateNewMmkFromMailboxInput | None = ...,
+ mandrakeValidateNewMmkFromDetachedDevice: Global___MandrakeValidateNewMmkFromDetachedDeviceInput | None = ...,
+ deriveMessagingMailboxKeypairs: Global___DeriveMessagingMailboxKeypairsInput | None = ...,
+ decryptSelfMmkDistribution: Global___DecryptSelfMmkDistributionInput | None = ...,
+ ) -> None: ...
+ _HasFieldArgType: _TypeAlias = _typing.Literal["commandInput", b"commandInput", "decryptAndVerifyMessage", b"decryptAndVerifyMessage", "decryptMekForDistribution", b"decryptMekForDistribution", "decryptMekForDistributionFromTransportSender", b"decryptMekForDistributionFromTransportSender", "decryptSelfMmkDistribution", b"decryptSelfMmkDistribution", "deriveAttachmentAccessTokenSecret", b"deriveAttachmentAccessTokenSecret", "deriveAttachmentPrimaryKeySecret", b"deriveAttachmentPrimaryKeySecret", "deriveMailboxAuthKeypair", b"deriveMailboxAuthKeypair", "deriveMailboxEncryptionKeypair", b"deriveMailboxEncryptionKeypair", "deriveMailboxSigningKeypair", b"deriveMailboxSigningKeypair", "deriveMessagingMailboxKeypairs", b"deriveMessagingMailboxKeypairs", "encryptAndSignMessage", b"encryptAndSignMessage", "encryptMekForDistribution", b"encryptMekForDistribution", "encryptMeksForDistributionFromTransportSender", b"encryptMeksForDistributionFromTransportSender", "generateMek", b"generateMek", "generateMekRosterHash", b"generateMekRosterHash", "mandrakeDecryptMek", b"mandrakeDecryptMek", "mandrakeEncryptMek", b"mandrakeEncryptMek", "mandrakeOpenEpoch", b"mandrakeOpenEpoch", "mandrakeOpenInitialEpoch", b"mandrakeOpenInitialEpoch", "mandrakeValidateNewMmkFromDetachedDevice", b"mandrakeValidateNewMmkFromDetachedDevice", "mandrakeValidateNewMmkFromMailbox", b"mandrakeValidateNewMmkFromMailbox", "minosOpenEpoch", b"minosOpenEpoch", "minosOpenInitialEpoch", b"minosOpenInitialEpoch", "minosThreadIdFromActThreadId", b"minosThreadIdFromActThreadId", "minosThreadIdFromOneToOneThread", b"minosThreadIdFromOneToOneThread", "minosValidateEpoch", b"minosValidateEpoch", "minosVerifySingleEpoch", b"minosVerifySingleEpoch", "wrapTransportSigningPublicKey", b"wrapTransportSigningPublicKey", "wrapTransportSigningSecretKey", b"wrapTransportSigningSecretKey"] # noqa: Y015
+ def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ...
+ _ClearFieldArgType: _TypeAlias = _typing.Literal["commandInput", b"commandInput", "decryptAndVerifyMessage", b"decryptAndVerifyMessage", "decryptMekForDistribution", b"decryptMekForDistribution", "decryptMekForDistributionFromTransportSender", b"decryptMekForDistributionFromTransportSender", "decryptSelfMmkDistribution", b"decryptSelfMmkDistribution", "deriveAttachmentAccessTokenSecret", b"deriveAttachmentAccessTokenSecret", "deriveAttachmentPrimaryKeySecret", b"deriveAttachmentPrimaryKeySecret", "deriveMailboxAuthKeypair", b"deriveMailboxAuthKeypair", "deriveMailboxEncryptionKeypair", b"deriveMailboxEncryptionKeypair", "deriveMailboxSigningKeypair", b"deriveMailboxSigningKeypair", "deriveMessagingMailboxKeypairs", b"deriveMessagingMailboxKeypairs", "encryptAndSignMessage", b"encryptAndSignMessage", "encryptMekForDistribution", b"encryptMekForDistribution", "encryptMeksForDistributionFromTransportSender", b"encryptMeksForDistributionFromTransportSender", "generateMek", b"generateMek", "generateMekRosterHash", b"generateMekRosterHash", "mandrakeDecryptMek", b"mandrakeDecryptMek", "mandrakeEncryptMek", b"mandrakeEncryptMek", "mandrakeOpenEpoch", b"mandrakeOpenEpoch", "mandrakeOpenInitialEpoch", b"mandrakeOpenInitialEpoch", "mandrakeValidateNewMmkFromDetachedDevice", b"mandrakeValidateNewMmkFromDetachedDevice", "mandrakeValidateNewMmkFromMailbox", b"mandrakeValidateNewMmkFromMailbox", "minosOpenEpoch", b"minosOpenEpoch", "minosOpenInitialEpoch", b"minosOpenInitialEpoch", "minosThreadIdFromActThreadId", b"minosThreadIdFromActThreadId", "minosThreadIdFromOneToOneThread", b"minosThreadIdFromOneToOneThread", "minosValidateEpoch", b"minosValidateEpoch", "minosVerifySingleEpoch", b"minosVerifySingleEpoch", "wrapTransportSigningPublicKey", b"wrapTransportSigningPublicKey", "wrapTransportSigningSecretKey", b"wrapTransportSigningSecretKey"] # noqa: Y015
+ def ClearField(self, field_name: _ClearFieldArgType) -> None: ...
+ _WhichOneofReturnType_commandInput: _TypeAlias = _typing.Literal["encryptAndSignMessage", "decryptAndVerifyMessage", "generateMek", "generateMekRosterHash", "encryptMekForDistribution", "decryptMekForDistribution", "encryptMeksForDistributionFromTransportSender", "decryptMekForDistributionFromTransportSender", "wrapTransportSigningPublicKey", "wrapTransportSigningSecretKey", "deriveMailboxSigningKeypair", "deriveMailboxEncryptionKeypair", "deriveMailboxAuthKeypair", "deriveAttachmentAccessTokenSecret", "deriveAttachmentPrimaryKeySecret", "minosOpenInitialEpoch", "minosOpenEpoch", "minosValidateEpoch", "minosVerifySingleEpoch", "minosThreadIdFromOneToOneThread", "minosThreadIdFromActThreadId", "mandrakeOpenEpoch", "mandrakeEncryptMek", "mandrakeDecryptMek", "mandrakeOpenInitialEpoch", "mandrakeValidateNewMmkFromMailbox", "mandrakeValidateNewMmkFromDetachedDevice", "deriveMessagingMailboxKeypairs", "decryptSelfMmkDistribution"] # noqa: Y015
+ _WhichOneofArgType_commandInput: _TypeAlias = _typing.Literal["commandInput", b"commandInput"] # noqa: Y015
+ def WhichOneof(self, oneof_group: _WhichOneofArgType_commandInput) -> _WhichOneofReturnType_commandInput | None: ...
+
+Global___MinosCommand: _TypeAlias = MinosCommand # noqa: Y015
+
+@_typing.final
+class MinosDecryptAndVerifyMessageInput(_message.Message):
+ DESCRIPTOR: _descriptor.Descriptor
+
+ TRANSPORTSIGNINGPK_FIELD_NUMBER: _builtins.int
+ MEK_FIELD_NUMBER: _builtins.int
+ ENCRYPTEDMESSAGECIPHERTEXT_FIELD_NUMBER: _builtins.int
+ ENCRYPTEDMESSAGESIGNATURE_FIELD_NUMBER: _builtins.int
+ METADATA_FIELD_NUMBER: _builtins.int
+ MESSAGEENCRYPTIONVERSION_FIELD_NUMBER: _builtins.int
+ CONF_FIELD_NUMBER: _builtins.int
+ transportSigningPk: _builtins.bytes
+ mek: _builtins.bytes
+ encryptedMessageCiphertext: _builtins.bytes
+ encryptedMessageSignature: _builtins.bytes
+ messageEncryptionVersion: _builtins.int
@_builtins.property
- def pollCreationMessageV6(self) -> Global___Message.PollCreationMessage: ...
+ def metadata(self) -> Global___MinosMessageMetadata: ...
@_builtins.property
- def conditionalRevealMessage(self) -> Global___Message.ConditionalRevealMessage: ...
+ def conf(self) -> Global___MinosClientConfig: ...
+ def __init__(
+ self,
+ *,
+ transportSigningPk: _builtins.bytes | None = ...,
+ mek: _builtins.bytes | None = ...,
+ encryptedMessageCiphertext: _builtins.bytes | None = ...,
+ encryptedMessageSignature: _builtins.bytes | None = ...,
+ metadata: Global___MinosMessageMetadata | None = ...,
+ messageEncryptionVersion: _builtins.int | None = ...,
+ conf: Global___MinosClientConfig | None = ...,
+ ) -> None: ...
+ _HasFieldArgType: _TypeAlias = _typing.Literal["conf", b"conf", "encryptedMessageCiphertext", b"encryptedMessageCiphertext", "encryptedMessageSignature", b"encryptedMessageSignature", "mek", b"mek", "messageEncryptionVersion", b"messageEncryptionVersion", "metadata", b"metadata", "transportSigningPk", b"transportSigningPk"] # noqa: Y015
+ def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ...
+ _ClearFieldArgType: _TypeAlias = _typing.Literal["conf", b"conf", "encryptedMessageCiphertext", b"encryptedMessageCiphertext", "encryptedMessageSignature", b"encryptedMessageSignature", "mek", b"mek", "messageEncryptionVersion", b"messageEncryptionVersion", "metadata", b"metadata", "transportSigningPk", b"transportSigningPk"] # noqa: Y015
+ def ClearField(self, field_name: _ClearFieldArgType) -> None: ...
+
+Global___MinosDecryptAndVerifyMessageInput: _TypeAlias = MinosDecryptAndVerifyMessageInput # noqa: Y015
+
+@_typing.final
+class MinosDecryptAndVerifyMessageResult(_message.Message):
+ DESCRIPTOR: _descriptor.Descriptor
+
+ SUCCESS_FIELD_NUMBER: _builtins.int
+ ERRORMESSAGE_FIELD_NUMBER: _builtins.int
+ errorMessage: _builtins.str
@_builtins.property
- def pollAddOptionMessage(self) -> Global___Message.PollAddOptionMessage: ...
+ def success(self) -> Global___MinosDecryptAndVerifyMessageSuccess: ...
+ def __init__(
+ self,
+ *,
+ success: Global___MinosDecryptAndVerifyMessageSuccess | None = ...,
+ errorMessage: _builtins.str | None = ...,
+ ) -> None: ...
+ _HasFieldArgType: _TypeAlias = _typing.Literal["errorMessage", b"errorMessage", "result", b"result", "success", b"success"] # noqa: Y015
+ def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ...
+ _ClearFieldArgType: _TypeAlias = _typing.Literal["errorMessage", b"errorMessage", "result", b"result", "success", b"success"] # noqa: Y015
+ def ClearField(self, field_name: _ClearFieldArgType) -> None: ...
+ _WhichOneofReturnType_result: _TypeAlias = _typing.Literal["success", "errorMessage"] # noqa: Y015
+ _WhichOneofArgType_result: _TypeAlias = _typing.Literal["result", b"result"] # noqa: Y015
+ def WhichOneof(self, oneof_group: _WhichOneofArgType_result) -> _WhichOneofReturnType_result | None: ...
+
+Global___MinosDecryptAndVerifyMessageResult: _TypeAlias = MinosDecryptAndVerifyMessageResult # noqa: Y015
+
+@_typing.final
+class MinosDecryptAndVerifyMessageSuccess(_message.Message):
+ DESCRIPTOR: _descriptor.Descriptor
+
+ PLAINTEXT_FIELD_NUMBER: _builtins.int
+ plaintext: _builtins.bytes
+ def __init__(
+ self,
+ *,
+ plaintext: _builtins.bytes | None = ...,
+ ) -> None: ...
+ _HasFieldArgType: _TypeAlias = _typing.Literal["plaintext", b"plaintext"] # noqa: Y015
+ def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ...
+ _ClearFieldArgType: _TypeAlias = _typing.Literal["plaintext", b"plaintext"] # noqa: Y015
+ def ClearField(self, field_name: _ClearFieldArgType) -> None: ...
+
+Global___MinosDecryptAndVerifyMessageSuccess: _TypeAlias = MinosDecryptAndVerifyMessageSuccess # noqa: Y015
+
+@_typing.final
+class MinosEncryptAndSignMessageInput(_message.Message):
+ DESCRIPTOR: _descriptor.Descriptor
+
+ TRANSPORTSIGNINGSK_FIELD_NUMBER: _builtins.int
+ MEK_FIELD_NUMBER: _builtins.int
+ PLAINTEXT_FIELD_NUMBER: _builtins.int
+ METADATA_FIELD_NUMBER: _builtins.int
+ TRANSPORTSIGNINGPK_FIELD_NUMBER: _builtins.int
+ CONF_FIELD_NUMBER: _builtins.int
+ transportSigningSk: _builtins.bytes
+ mek: _builtins.bytes
+ plaintext: _builtins.bytes
+ transportSigningPk: _builtins.bytes
@_builtins.property
- def eventInviteMessage(self) -> Global___Message.EventInviteMessage: ...
+ def metadata(self) -> Global___MinosMessageMetadata: ...
@_builtins.property
- def groupRootKeyShare(self) -> Global___GroupRootKeyShare: ...
+ def conf(self) -> Global___MinosClientConfig: ...
+ def __init__(
+ self,
+ *,
+ transportSigningSk: _builtins.bytes | None = ...,
+ mek: _builtins.bytes | None = ...,
+ plaintext: _builtins.bytes | None = ...,
+ metadata: Global___MinosMessageMetadata | None = ...,
+ transportSigningPk: _builtins.bytes | None = ...,
+ conf: Global___MinosClientConfig | None = ...,
+ ) -> None: ...
+ _HasFieldArgType: _TypeAlias = _typing.Literal["conf", b"conf", "mek", b"mek", "metadata", b"metadata", "plaintext", b"plaintext", "transportSigningPk", b"transportSigningPk", "transportSigningSk", b"transportSigningSk"] # noqa: Y015
+ def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ...
+ _ClearFieldArgType: _TypeAlias = _typing.Literal["conf", b"conf", "mek", b"mek", "metadata", b"metadata", "plaintext", b"plaintext", "transportSigningPk", b"transportSigningPk", "transportSigningSk", b"transportSigningSk"] # noqa: Y015
+ def ClearField(self, field_name: _ClearFieldArgType) -> None: ...
+
+Global___MinosEncryptAndSignMessageInput: _TypeAlias = MinosEncryptAndSignMessageInput # noqa: Y015
+
+@_typing.final
+class MinosEncryptAndSignMessageResult(_message.Message):
+ DESCRIPTOR: _descriptor.Descriptor
+
+ CIPHERTEXT_FIELD_NUMBER: _builtins.int
+ SIGNATURE_FIELD_NUMBER: _builtins.int
+ VERSION_FIELD_NUMBER: _builtins.int
+ ciphertext: _builtins.bytes
+ signature: _builtins.bytes
+ version: _builtins.int
+ def __init__(
+ self,
+ *,
+ ciphertext: _builtins.bytes | None = ...,
+ signature: _builtins.bytes | None = ...,
+ version: _builtins.int | None = ...,
+ ) -> None: ...
+ _HasFieldArgType: _TypeAlias = _typing.Literal["ciphertext", b"ciphertext", "signature", b"signature", "version", b"version"] # noqa: Y015
+ def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ...
+ _ClearFieldArgType: _TypeAlias = _typing.Literal["ciphertext", b"ciphertext", "signature", b"signature", "version", b"version"] # noqa: Y015
+ def ClearField(self, field_name: _ClearFieldArgType) -> None: ...
+
+Global___MinosEncryptAndSignMessageResult: _TypeAlias = MinosEncryptAndSignMessageResult # noqa: Y015
+
+@_typing.final
+class MinosMessageMetadata(_message.Message):
+ DESCRIPTOR: _descriptor.Descriptor
+
+ MEKID_FIELD_NUMBER: _builtins.int
+ TIMESTAMP_FIELD_NUMBER: _builtins.int
+ MESSAGEID_FIELD_NUMBER: _builtins.int
+ THREADID_FIELD_NUMBER: _builtins.int
+ mekId: _builtins.bytes
+ timestamp: _builtins.int
+ messageId: _builtins.str
+ threadId: _builtins.bytes
+ def __init__(
+ self,
+ *,
+ mekId: _builtins.bytes | None = ...,
+ timestamp: _builtins.int | None = ...,
+ messageId: _builtins.str | None = ...,
+ threadId: _builtins.bytes | None = ...,
+ ) -> None: ...
+ _HasFieldArgType: _TypeAlias = _typing.Literal["mekId", b"mekId", "messageId", b"messageId", "threadId", b"threadId", "timestamp", b"timestamp"] # noqa: Y015
+ def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ...
+ _ClearFieldArgType: _TypeAlias = _typing.Literal["mekId", b"mekId", "messageId", b"messageId", "threadId", b"threadId", "timestamp", b"timestamp"] # noqa: Y015
+ def ClearField(self, field_name: _ClearFieldArgType) -> None: ...
+
+Global___MinosMessageMetadata: _TypeAlias = MinosMessageMetadata # noqa: Y015
+
+@_typing.final
+class MinosOpenEpochInput(_message.Message):
+ DESCRIPTOR: _descriptor.Descriptor
+
+ USERFBID_FIELD_NUMBER: _builtins.int
+ EPOCHNUMBER_FIELD_NUMBER: _builtins.int
+ EXPORTROOTKEY_FIELD_NUMBER: _builtins.int
+ PREVIOUSEXPORTROOTKEY_FIELD_NUMBER: _builtins.int
+ PREVIOUSEPOCHNUMBER_FIELD_NUMBER: _builtins.int
+ PREVIOUSEPOCHHEAD_FIELD_NUMBER: _builtins.int
+ userFbid: _builtins.str
+ epochNumber: _builtins.int
+ exportRootKey: _builtins.bytes
+ previousExportRootKey: _builtins.bytes
+ previousEpochNumber: _builtins.int
+ previousEpochHead: _builtins.bytes
+ def __init__(
+ self,
+ *,
+ userFbid: _builtins.str | None = ...,
+ epochNumber: _builtins.int | None = ...,
+ exportRootKey: _builtins.bytes | None = ...,
+ previousExportRootKey: _builtins.bytes | None = ...,
+ previousEpochNumber: _builtins.int | None = ...,
+ previousEpochHead: _builtins.bytes | None = ...,
+ ) -> None: ...
+ _HasFieldArgType: _TypeAlias = _typing.Literal["epochNumber", b"epochNumber", "exportRootKey", b"exportRootKey", "previousEpochHead", b"previousEpochHead", "previousEpochNumber", b"previousEpochNumber", "previousExportRootKey", b"previousExportRootKey", "userFbid", b"userFbid"] # noqa: Y015
+ def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ...
+ _ClearFieldArgType: _TypeAlias = _typing.Literal["epochNumber", b"epochNumber", "exportRootKey", b"exportRootKey", "previousEpochHead", b"previousEpochHead", "previousEpochNumber", b"previousEpochNumber", "previousExportRootKey", b"previousExportRootKey", "userFbid", b"userFbid"] # noqa: Y015
+ def ClearField(self, field_name: _ClearFieldArgType) -> None: ...
+
+Global___MinosOpenEpochInput: _TypeAlias = MinosOpenEpochInput # noqa: Y015
+
+@_typing.final
+class MinosOpenEpochResult(_message.Message):
+ DESCRIPTOR: _descriptor.Descriptor
+
+ MINOSSIGNEDEPOCH_FIELD_NUMBER: _builtins.int
@_builtins.property
- def paymentReminderMessage(self) -> Global___Message.PaymentReminderMessage: ...
+ def minosSignedEpoch(self) -> Global___MinosSignedEpoch: ...
+ def __init__(
+ self,
+ *,
+ minosSignedEpoch: Global___MinosSignedEpoch | None = ...,
+ ) -> None: ...
+ _HasFieldArgType: _TypeAlias = _typing.Literal["minosSignedEpoch", b"minosSignedEpoch"] # noqa: Y015
+ def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ...
+ _ClearFieldArgType: _TypeAlias = _typing.Literal["minosSignedEpoch", b"minosSignedEpoch"] # noqa: Y015
+ def ClearField(self, field_name: _ClearFieldArgType) -> None: ...
+
+Global___MinosOpenEpochResult: _TypeAlias = MinosOpenEpochResult # noqa: Y015
+
+@_typing.final
+class MinosOpenInitialEpochInput(_message.Message):
+ DESCRIPTOR: _descriptor.Descriptor
+
+ USERFBID_FIELD_NUMBER: _builtins.int
+ EPOCHNUMBER_FIELD_NUMBER: _builtins.int
+ EXPORTROOTKEY_FIELD_NUMBER: _builtins.int
+ userFbid: _builtins.str
+ epochNumber: _builtins.int
+ exportRootKey: _builtins.bytes
+ def __init__(
+ self,
+ *,
+ userFbid: _builtins.str | None = ...,
+ epochNumber: _builtins.int | None = ...,
+ exportRootKey: _builtins.bytes | None = ...,
+ ) -> None: ...
+ _HasFieldArgType: _TypeAlias = _typing.Literal["epochNumber", b"epochNumber", "exportRootKey", b"exportRootKey", "userFbid", b"userFbid"] # noqa: Y015
+ def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ...
+ _ClearFieldArgType: _TypeAlias = _typing.Literal["epochNumber", b"epochNumber", "exportRootKey", b"exportRootKey", "userFbid", b"userFbid"] # noqa: Y015
+ def ClearField(self, field_name: _ClearFieldArgType) -> None: ...
+
+Global___MinosOpenInitialEpochInput: _TypeAlias = MinosOpenInitialEpochInput # noqa: Y015
+
+@_typing.final
+class MinosOpenInitialEpochResult(_message.Message):
+ DESCRIPTOR: _descriptor.Descriptor
+
+ MINOSSIGNEDEPOCH_FIELD_NUMBER: _builtins.int
@_builtins.property
- def splitPaymentMessage(self) -> Global___Message.SplitPaymentMessage: ...
+ def minosSignedEpoch(self) -> Global___MinosSignedEpoch: ...
+ def __init__(
+ self,
+ *,
+ minosSignedEpoch: Global___MinosSignedEpoch | None = ...,
+ ) -> None: ...
+ _HasFieldArgType: _TypeAlias = _typing.Literal["minosSignedEpoch", b"minosSignedEpoch"] # noqa: Y015
+ def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ...
+ _ClearFieldArgType: _TypeAlias = _typing.Literal["minosSignedEpoch", b"minosSignedEpoch"] # noqa: Y015
+ def ClearField(self, field_name: _ClearFieldArgType) -> None: ...
+
+Global___MinosOpenInitialEpochResult: _TypeAlias = MinosOpenInitialEpochResult # noqa: Y015
+
+@_typing.final
+class MinosSignedEpoch(_message.Message):
+ DESCRIPTOR: _descriptor.Descriptor
+
+ EPOCHPUBLICDATA_FIELD_NUMBER: _builtins.int
+ SIGNATURES_FIELD_NUMBER: _builtins.int
+ EPOCHHEAD_FIELD_NUMBER: _builtins.int
+ epochHead: _builtins.bytes
@_builtins.property
- def newsletterAdminProfileStatusMessage(self) -> Global___Message.FutureProofMessage: ...
+ def epochPublicData(self) -> Global___EpochPublicData: ...
@_builtins.property
- def rootSecretDistributeMessage(self) -> Global___Message.RootSecretDistributeMessage: ...
+ def signatures(self) -> Global___EpochSignatures: ...
def __init__(
self,
*,
- conversation: _builtins.str | None = ...,
- senderKeyDistributionMessage: Global___Message.SenderKeyDistributionMessage | None = ...,
- imageMessage: Global___Message.ImageMessage | None = ...,
- contactMessage: Global___Message.ContactMessage | None = ...,
- locationMessage: Global___Message.LocationMessage | None = ...,
- extendedTextMessage: Global___Message.ExtendedTextMessage | None = ...,
- documentMessage: Global___Message.DocumentMessage | None = ...,
- audioMessage: Global___Message.AudioMessage | None = ...,
- videoMessage: Global___Message.VideoMessage | None = ...,
- call: Global___Message.Call | None = ...,
- chat: Global___Message.Chat | None = ...,
- protocolMessage: Global___Message.ProtocolMessage | None = ...,
- contactsArrayMessage: Global___Message.ContactsArrayMessage | None = ...,
- highlyStructuredMessage: Global___Message.HighlyStructuredMessage | None = ...,
- fastRatchetKeySenderKeyDistributionMessage: Global___Message.SenderKeyDistributionMessage | None = ...,
- sendPaymentMessage: Global___Message.SendPaymentMessage | None = ...,
- liveLocationMessage: Global___Message.LiveLocationMessage | None = ...,
- requestPaymentMessage: Global___Message.RequestPaymentMessage | None = ...,
- declinePaymentRequestMessage: Global___Message.DeclinePaymentRequestMessage | None = ...,
- cancelPaymentRequestMessage: Global___Message.CancelPaymentRequestMessage | None = ...,
- templateMessage: Global___Message.TemplateMessage | None = ...,
- stickerMessage: Global___Message.StickerMessage | None = ...,
- groupInviteMessage: Global___Message.GroupInviteMessage | None = ...,
- templateButtonReplyMessage: Global___Message.TemplateButtonReplyMessage | None = ...,
- productMessage: Global___Message.ProductMessage | None = ...,
- deviceSentMessage: Global___Message.DeviceSentMessage | None = ...,
- messageContextInfo: Global___MessageContextInfo | None = ...,
- listMessage: Global___Message.ListMessage | None = ...,
- viewOnceMessage: Global___Message.FutureProofMessage | None = ...,
- orderMessage: Global___Message.OrderMessage | None = ...,
- listResponseMessage: Global___Message.ListResponseMessage | None = ...,
- ephemeralMessage: Global___Message.FutureProofMessage | None = ...,
- invoiceMessage: Global___Message.InvoiceMessage | None = ...,
- buttonsMessage: Global___Message.ButtonsMessage | None = ...,
- buttonsResponseMessage: Global___Message.ButtonsResponseMessage | None = ...,
- paymentInviteMessage: Global___Message.PaymentInviteMessage | None = ...,
- interactiveMessage: Global___Message.InteractiveMessage | None = ...,
- reactionMessage: Global___Message.ReactionMessage | None = ...,
- stickerSyncRmrMessage: Global___Message.StickerSyncRMRMessage | None = ...,
- interactiveResponseMessage: Global___Message.InteractiveResponseMessage | None = ...,
- pollCreationMessage: Global___Message.PollCreationMessage | None = ...,
- pollUpdateMessage: Global___Message.PollUpdateMessage | None = ...,
- keepInChatMessage: Global___Message.KeepInChatMessage | None = ...,
- documentWithCaptionMessage: Global___Message.FutureProofMessage | None = ...,
- requestPhoneNumberMessage: Global___Message.RequestPhoneNumberMessage | None = ...,
- viewOnceMessageV2: Global___Message.FutureProofMessage | None = ...,
- encReactionMessage: Global___Message.EncReactionMessage | None = ...,
- editedMessage: Global___Message.FutureProofMessage | None = ...,
- viewOnceMessageV2Extension: Global___Message.FutureProofMessage | None = ...,
- pollCreationMessageV2: Global___Message.PollCreationMessage | None = ...,
- scheduledCallCreationMessage: Global___Message.ScheduledCallCreationMessage | None = ...,
- groupMentionedMessage: Global___Message.FutureProofMessage | None = ...,
- pinInChatMessage: Global___Message.PinInChatMessage | None = ...,
- pollCreationMessageV3: Global___Message.PollCreationMessage | None = ...,
- scheduledCallEditMessage: Global___Message.ScheduledCallEditMessage | None = ...,
- ptvMessage: Global___Message.VideoMessage | None = ...,
- botInvokeMessage: Global___Message.FutureProofMessage | None = ...,
- callLogMesssage: Global___Message.CallLogMessage | None = ...,
- messageHistoryBundle: Global___Message.MessageHistoryBundle | None = ...,
- encCommentMessage: Global___Message.EncCommentMessage | None = ...,
- bcallMessage: Global___Message.BCallMessage | None = ...,
- lottieStickerMessage: Global___Message.FutureProofMessage | None = ...,
- eventMessage: Global___Message.EventMessage | None = ...,
- encEventResponseMessage: Global___Message.EncEventResponseMessage | None = ...,
- commentMessage: Global___Message.CommentMessage | None = ...,
- newsletterAdminInviteMessage: Global___Message.NewsletterAdminInviteMessage | None = ...,
- placeholderMessage: Global___Message.PlaceholderMessage | None = ...,
- secretEncryptedMessage: Global___Message.SecretEncryptedMessage | None = ...,
- albumMessage: Global___Message.AlbumMessage | None = ...,
- eventCoverImage: Global___Message.FutureProofMessage | None = ...,
- stickerPackMessage: Global___Message.StickerPackMessage | None = ...,
- statusMentionMessage: Global___Message.FutureProofMessage | None = ...,
- pollResultSnapshotMessage: Global___Message.PollResultSnapshotMessage | None = ...,
- pollCreationOptionImageMessage: Global___Message.FutureProofMessage | None = ...,
- associatedChildMessage: Global___Message.FutureProofMessage | None = ...,
- groupStatusMentionMessage: Global___Message.FutureProofMessage | None = ...,
- pollCreationMessageV4: Global___Message.FutureProofMessage | None = ...,
- statusAddYours: Global___Message.FutureProofMessage | None = ...,
- groupStatusMessage: Global___Message.FutureProofMessage | None = ...,
- richResponseMessage: Global___AIRichResponseMessage | None = ...,
- statusNotificationMessage: Global___Message.StatusNotificationMessage | None = ...,
- limitSharingMessage: Global___Message.FutureProofMessage | None = ...,
- botTaskMessage: Global___Message.FutureProofMessage | None = ...,
- questionMessage: Global___Message.FutureProofMessage | None = ...,
- messageHistoryNotice: Global___Message.MessageHistoryNotice | None = ...,
- groupStatusMessageV2: Global___Message.FutureProofMessage | None = ...,
- botForwardedMessage: Global___Message.FutureProofMessage | None = ...,
- statusQuestionAnswerMessage: Global___Message.StatusQuestionAnswerMessage | None = ...,
- questionReplyMessage: Global___Message.FutureProofMessage | None = ...,
- questionResponseMessage: Global___Message.QuestionResponseMessage | None = ...,
- statusQuotedMessage: Global___Message.StatusQuotedMessage | None = ...,
- statusStickerInteractionMessage: Global___Message.StatusStickerInteractionMessage | None = ...,
- pollCreationMessageV5: Global___Message.PollCreationMessage | None = ...,
- newsletterFollowerInviteMessageV2: Global___Message.NewsletterFollowerInviteMessage | None = ...,
- pollResultSnapshotMessageV3: Global___Message.PollResultSnapshotMessage | None = ...,
- newsletterAdminProfileMessage: Global___Message.FutureProofMessage | None = ...,
- newsletterAdminProfileMessageV2: Global___Message.FutureProofMessage | None = ...,
- spoilerMessage: Global___Message.FutureProofMessage | None = ...,
- pollCreationMessageV6: Global___Message.PollCreationMessage | None = ...,
- conditionalRevealMessage: Global___Message.ConditionalRevealMessage | None = ...,
- pollAddOptionMessage: Global___Message.PollAddOptionMessage | None = ...,
- eventInviteMessage: Global___Message.EventInviteMessage | None = ...,
- groupRootKeyShare: Global___GroupRootKeyShare | None = ...,
- paymentReminderMessage: Global___Message.PaymentReminderMessage | None = ...,
- splitPaymentMessage: Global___Message.SplitPaymentMessage | None = ...,
- newsletterAdminProfileStatusMessage: Global___Message.FutureProofMessage | None = ...,
- rootSecretDistributeMessage: Global___Message.RootSecretDistributeMessage | None = ...,
+ epochPublicData: Global___EpochPublicData | None = ...,
+ signatures: Global___EpochSignatures | None = ...,
+ epochHead: _builtins.bytes | None = ...,
+ ) -> None: ...
+ _HasFieldArgType: _TypeAlias = _typing.Literal["epochHead", b"epochHead", "epochPublicData", b"epochPublicData", "signatures", b"signatures"] # noqa: Y015
+ def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ...
+ _ClearFieldArgType: _TypeAlias = _typing.Literal["epochHead", b"epochHead", "epochPublicData", b"epochPublicData", "signatures", b"signatures"] # noqa: Y015
+ def ClearField(self, field_name: _ClearFieldArgType) -> None: ...
+
+Global___MinosSignedEpoch: _TypeAlias = MinosSignedEpoch # noqa: Y015
+
+@_typing.final
+class MinosThreadIdFromActThreadIdInput(_message.Message):
+ DESCRIPTOR: _descriptor.Descriptor
+
+ ACTTHREADID_FIELD_NUMBER: _builtins.int
+ actThreadId: _builtins.str
+ def __init__(
+ self,
+ *,
+ actThreadId: _builtins.str | None = ...,
+ ) -> None: ...
+ _HasFieldArgType: _TypeAlias = _typing.Literal["actThreadId", b"actThreadId"] # noqa: Y015
+ def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ...
+ _ClearFieldArgType: _TypeAlias = _typing.Literal["actThreadId", b"actThreadId"] # noqa: Y015
+ def ClearField(self, field_name: _ClearFieldArgType) -> None: ...
+
+Global___MinosThreadIdFromActThreadIdInput: _TypeAlias = MinosThreadIdFromActThreadIdInput # noqa: Y015
+
+@_typing.final
+class MinosThreadIdFromActThreadIdResult(_message.Message):
+ DESCRIPTOR: _descriptor.Descriptor
+
+ THREADID_FIELD_NUMBER: _builtins.int
+ threadId: _builtins.bytes
+ def __init__(
+ self,
+ *,
+ threadId: _builtins.bytes | None = ...,
) -> None: ...
- _HasFieldArgType: _TypeAlias = _typing.Literal["albumMessage", b"albumMessage", "associatedChildMessage", b"associatedChildMessage", "audioMessage", b"audioMessage", "bcallMessage", b"bcallMessage", "botForwardedMessage", b"botForwardedMessage", "botInvokeMessage", b"botInvokeMessage", "botTaskMessage", b"botTaskMessage", "buttonsMessage", b"buttonsMessage", "buttonsResponseMessage", b"buttonsResponseMessage", "call", b"call", "callLogMesssage", b"callLogMesssage", "cancelPaymentRequestMessage", b"cancelPaymentRequestMessage", "chat", b"chat", "commentMessage", b"commentMessage", "conditionalRevealMessage", b"conditionalRevealMessage", "contactMessage", b"contactMessage", "contactsArrayMessage", b"contactsArrayMessage", "conversation", b"conversation", "declinePaymentRequestMessage", b"declinePaymentRequestMessage", "deviceSentMessage", b"deviceSentMessage", "documentMessage", b"documentMessage", "documentWithCaptionMessage", b"documentWithCaptionMessage", "editedMessage", b"editedMessage", "encCommentMessage", b"encCommentMessage", "encEventResponseMessage", b"encEventResponseMessage", "encReactionMessage", b"encReactionMessage", "ephemeralMessage", b"ephemeralMessage", "eventCoverImage", b"eventCoverImage", "eventInviteMessage", b"eventInviteMessage", "eventMessage", b"eventMessage", "extendedTextMessage", b"extendedTextMessage", "fastRatchetKeySenderKeyDistributionMessage", b"fastRatchetKeySenderKeyDistributionMessage", "groupInviteMessage", b"groupInviteMessage", "groupMentionedMessage", b"groupMentionedMessage", "groupRootKeyShare", b"groupRootKeyShare", "groupStatusMentionMessage", b"groupStatusMentionMessage", "groupStatusMessage", b"groupStatusMessage", "groupStatusMessageV2", b"groupStatusMessageV2", "highlyStructuredMessage", b"highlyStructuredMessage", "imageMessage", b"imageMessage", "interactiveMessage", b"interactiveMessage", "interactiveResponseMessage", b"interactiveResponseMessage", "invoiceMessage", b"invoiceMessage", "keepInChatMessage", b"keepInChatMessage", "limitSharingMessage", b"limitSharingMessage", "listMessage", b"listMessage", "listResponseMessage", b"listResponseMessage", "liveLocationMessage", b"liveLocationMessage", "locationMessage", b"locationMessage", "lottieStickerMessage", b"lottieStickerMessage", "messageContextInfo", b"messageContextInfo", "messageHistoryBundle", b"messageHistoryBundle", "messageHistoryNotice", b"messageHistoryNotice", "newsletterAdminInviteMessage", b"newsletterAdminInviteMessage", "newsletterAdminProfileMessage", b"newsletterAdminProfileMessage", "newsletterAdminProfileMessageV2", b"newsletterAdminProfileMessageV2", "newsletterAdminProfileStatusMessage", b"newsletterAdminProfileStatusMessage", "newsletterFollowerInviteMessageV2", b"newsletterFollowerInviteMessageV2", "orderMessage", b"orderMessage", "paymentInviteMessage", b"paymentInviteMessage", "paymentReminderMessage", b"paymentReminderMessage", "pinInChatMessage", b"pinInChatMessage", "placeholderMessage", b"placeholderMessage", "pollAddOptionMessage", b"pollAddOptionMessage", "pollCreationMessage", b"pollCreationMessage", "pollCreationMessageV2", b"pollCreationMessageV2", "pollCreationMessageV3", b"pollCreationMessageV3", "pollCreationMessageV4", b"pollCreationMessageV4", "pollCreationMessageV5", b"pollCreationMessageV5", "pollCreationMessageV6", b"pollCreationMessageV6", "pollCreationOptionImageMessage", b"pollCreationOptionImageMessage", "pollResultSnapshotMessage", b"pollResultSnapshotMessage", "pollResultSnapshotMessageV3", b"pollResultSnapshotMessageV3", "pollUpdateMessage", b"pollUpdateMessage", "productMessage", b"productMessage", "protocolMessage", b"protocolMessage", "ptvMessage", b"ptvMessage", "questionMessage", b"questionMessage", "questionReplyMessage", b"questionReplyMessage", "questionResponseMessage", b"questionResponseMessage", "reactionMessage", b"reactionMessage", "requestPaymentMessage", b"requestPaymentMessage", "requestPhoneNumberMessage", b"requestPhoneNumberMessage", "richResponseMessage", b"richResponseMessage", "rootSecretDistributeMessage", b"rootSecretDistributeMessage", "scheduledCallCreationMessage", b"scheduledCallCreationMessage", "scheduledCallEditMessage", b"scheduledCallEditMessage", "secretEncryptedMessage", b"secretEncryptedMessage", "sendPaymentMessage", b"sendPaymentMessage", "senderKeyDistributionMessage", b"senderKeyDistributionMessage", "splitPaymentMessage", b"splitPaymentMessage", "spoilerMessage", b"spoilerMessage", "statusAddYours", b"statusAddYours", "statusMentionMessage", b"statusMentionMessage", "statusNotificationMessage", b"statusNotificationMessage", "statusQuestionAnswerMessage", b"statusQuestionAnswerMessage", "statusQuotedMessage", b"statusQuotedMessage", "statusStickerInteractionMessage", b"statusStickerInteractionMessage", "stickerMessage", b"stickerMessage", "stickerPackMessage", b"stickerPackMessage", "stickerSyncRmrMessage", b"stickerSyncRmrMessage", "templateButtonReplyMessage", b"templateButtonReplyMessage", "templateMessage", b"templateMessage", "videoMessage", b"videoMessage", "viewOnceMessage", b"viewOnceMessage", "viewOnceMessageV2", b"viewOnceMessageV2", "viewOnceMessageV2Extension", b"viewOnceMessageV2Extension"] # noqa: Y015
+ _HasFieldArgType: _TypeAlias = _typing.Literal["threadId", b"threadId"] # noqa: Y015
def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ...
- _ClearFieldArgType: _TypeAlias = _typing.Literal["albumMessage", b"albumMessage", "associatedChildMessage", b"associatedChildMessage", "audioMessage", b"audioMessage", "bcallMessage", b"bcallMessage", "botForwardedMessage", b"botForwardedMessage", "botInvokeMessage", b"botInvokeMessage", "botTaskMessage", b"botTaskMessage", "buttonsMessage", b"buttonsMessage", "buttonsResponseMessage", b"buttonsResponseMessage", "call", b"call", "callLogMesssage", b"callLogMesssage", "cancelPaymentRequestMessage", b"cancelPaymentRequestMessage", "chat", b"chat", "commentMessage", b"commentMessage", "conditionalRevealMessage", b"conditionalRevealMessage", "contactMessage", b"contactMessage", "contactsArrayMessage", b"contactsArrayMessage", "conversation", b"conversation", "declinePaymentRequestMessage", b"declinePaymentRequestMessage", "deviceSentMessage", b"deviceSentMessage", "documentMessage", b"documentMessage", "documentWithCaptionMessage", b"documentWithCaptionMessage", "editedMessage", b"editedMessage", "encCommentMessage", b"encCommentMessage", "encEventResponseMessage", b"encEventResponseMessage", "encReactionMessage", b"encReactionMessage", "ephemeralMessage", b"ephemeralMessage", "eventCoverImage", b"eventCoverImage", "eventInviteMessage", b"eventInviteMessage", "eventMessage", b"eventMessage", "extendedTextMessage", b"extendedTextMessage", "fastRatchetKeySenderKeyDistributionMessage", b"fastRatchetKeySenderKeyDistributionMessage", "groupInviteMessage", b"groupInviteMessage", "groupMentionedMessage", b"groupMentionedMessage", "groupRootKeyShare", b"groupRootKeyShare", "groupStatusMentionMessage", b"groupStatusMentionMessage", "groupStatusMessage", b"groupStatusMessage", "groupStatusMessageV2", b"groupStatusMessageV2", "highlyStructuredMessage", b"highlyStructuredMessage", "imageMessage", b"imageMessage", "interactiveMessage", b"interactiveMessage", "interactiveResponseMessage", b"interactiveResponseMessage", "invoiceMessage", b"invoiceMessage", "keepInChatMessage", b"keepInChatMessage", "limitSharingMessage", b"limitSharingMessage", "listMessage", b"listMessage", "listResponseMessage", b"listResponseMessage", "liveLocationMessage", b"liveLocationMessage", "locationMessage", b"locationMessage", "lottieStickerMessage", b"lottieStickerMessage", "messageContextInfo", b"messageContextInfo", "messageHistoryBundle", b"messageHistoryBundle", "messageHistoryNotice", b"messageHistoryNotice", "newsletterAdminInviteMessage", b"newsletterAdminInviteMessage", "newsletterAdminProfileMessage", b"newsletterAdminProfileMessage", "newsletterAdminProfileMessageV2", b"newsletterAdminProfileMessageV2", "newsletterAdminProfileStatusMessage", b"newsletterAdminProfileStatusMessage", "newsletterFollowerInviteMessageV2", b"newsletterFollowerInviteMessageV2", "orderMessage", b"orderMessage", "paymentInviteMessage", b"paymentInviteMessage", "paymentReminderMessage", b"paymentReminderMessage", "pinInChatMessage", b"pinInChatMessage", "placeholderMessage", b"placeholderMessage", "pollAddOptionMessage", b"pollAddOptionMessage", "pollCreationMessage", b"pollCreationMessage", "pollCreationMessageV2", b"pollCreationMessageV2", "pollCreationMessageV3", b"pollCreationMessageV3", "pollCreationMessageV4", b"pollCreationMessageV4", "pollCreationMessageV5", b"pollCreationMessageV5", "pollCreationMessageV6", b"pollCreationMessageV6", "pollCreationOptionImageMessage", b"pollCreationOptionImageMessage", "pollResultSnapshotMessage", b"pollResultSnapshotMessage", "pollResultSnapshotMessageV3", b"pollResultSnapshotMessageV3", "pollUpdateMessage", b"pollUpdateMessage", "productMessage", b"productMessage", "protocolMessage", b"protocolMessage", "ptvMessage", b"ptvMessage", "questionMessage", b"questionMessage", "questionReplyMessage", b"questionReplyMessage", "questionResponseMessage", b"questionResponseMessage", "reactionMessage", b"reactionMessage", "requestPaymentMessage", b"requestPaymentMessage", "requestPhoneNumberMessage", b"requestPhoneNumberMessage", "richResponseMessage", b"richResponseMessage", "rootSecretDistributeMessage", b"rootSecretDistributeMessage", "scheduledCallCreationMessage", b"scheduledCallCreationMessage", "scheduledCallEditMessage", b"scheduledCallEditMessage", "secretEncryptedMessage", b"secretEncryptedMessage", "sendPaymentMessage", b"sendPaymentMessage", "senderKeyDistributionMessage", b"senderKeyDistributionMessage", "splitPaymentMessage", b"splitPaymentMessage", "spoilerMessage", b"spoilerMessage", "statusAddYours", b"statusAddYours", "statusMentionMessage", b"statusMentionMessage", "statusNotificationMessage", b"statusNotificationMessage", "statusQuestionAnswerMessage", b"statusQuestionAnswerMessage", "statusQuotedMessage", b"statusQuotedMessage", "statusStickerInteractionMessage", b"statusStickerInteractionMessage", "stickerMessage", b"stickerMessage", "stickerPackMessage", b"stickerPackMessage", "stickerSyncRmrMessage", b"stickerSyncRmrMessage", "templateButtonReplyMessage", b"templateButtonReplyMessage", "templateMessage", b"templateMessage", "videoMessage", b"videoMessage", "viewOnceMessage", b"viewOnceMessage", "viewOnceMessageV2", b"viewOnceMessageV2", "viewOnceMessageV2Extension", b"viewOnceMessageV2Extension"] # noqa: Y015
+ _ClearFieldArgType: _TypeAlias = _typing.Literal["threadId", b"threadId"] # noqa: Y015
def ClearField(self, field_name: _ClearFieldArgType) -> None: ...
-Global___Message: _TypeAlias = Message # noqa: Y015
+Global___MinosThreadIdFromActThreadIdResult: _TypeAlias = MinosThreadIdFromActThreadIdResult # noqa: Y015
@_typing.final
-class MessageAddOn(_message.Message):
+class MinosThreadIdFromOneToOneThreadInput(_message.Message):
DESCRIPTOR: _descriptor.Descriptor
- class _MessageAddOnType:
- ValueType = _typing.NewType("ValueType", _builtins.int)
- V: _TypeAlias = ValueType # noqa: Y015
+ ACTTHREADID_FIELD_NUMBER: _builtins.int
+ SELFFBID_FIELD_NUMBER: _builtins.int
+ actThreadId: _builtins.str
+ selfFbid: _builtins.str
+ def __init__(
+ self,
+ *,
+ actThreadId: _builtins.str | None = ...,
+ selfFbid: _builtins.str | None = ...,
+ ) -> None: ...
+ _HasFieldArgType: _TypeAlias = _typing.Literal["actThreadId", b"actThreadId", "selfFbid", b"selfFbid"] # noqa: Y015
+ def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ...
+ _ClearFieldArgType: _TypeAlias = _typing.Literal["actThreadId", b"actThreadId", "selfFbid", b"selfFbid"] # noqa: Y015
+ def ClearField(self, field_name: _ClearFieldArgType) -> None: ...
- class _MessageAddOnTypeEnumTypeWrapper(_enum_type_wrapper._EnumTypeWrapper[MessageAddOn._MessageAddOnType.ValueType], _builtins.type):
- DESCRIPTOR: _descriptor.EnumDescriptor
- UNDEFINED: MessageAddOn._MessageAddOnType.ValueType # 0
- REACTION: MessageAddOn._MessageAddOnType.ValueType # 1
- EVENT_RESPONSE: MessageAddOn._MessageAddOnType.ValueType # 2
- POLL_UPDATE: MessageAddOn._MessageAddOnType.ValueType # 3
- PIN_IN_CHAT: MessageAddOn._MessageAddOnType.ValueType # 4
+Global___MinosThreadIdFromOneToOneThreadInput: _TypeAlias = MinosThreadIdFromOneToOneThreadInput # noqa: Y015
- class MessageAddOnType(_MessageAddOnType, metaclass=_MessageAddOnTypeEnumTypeWrapper): ...
- UNDEFINED: MessageAddOn.MessageAddOnType.ValueType # 0
- REACTION: MessageAddOn.MessageAddOnType.ValueType # 1
- EVENT_RESPONSE: MessageAddOn.MessageAddOnType.ValueType # 2
- POLL_UPDATE: MessageAddOn.MessageAddOnType.ValueType # 3
- PIN_IN_CHAT: MessageAddOn.MessageAddOnType.ValueType # 4
+@_typing.final
+class MinosThreadIdFromOneToOneThreadResult(_message.Message):
+ DESCRIPTOR: _descriptor.Descriptor
- MESSAGEADDONTYPE_FIELD_NUMBER: _builtins.int
- MESSAGEADDON_FIELD_NUMBER: _builtins.int
- SENDERTIMESTAMPMS_FIELD_NUMBER: _builtins.int
- SERVERTIMESTAMPMS_FIELD_NUMBER: _builtins.int
- STATUS_FIELD_NUMBER: _builtins.int
- ADDONCONTEXTINFO_FIELD_NUMBER: _builtins.int
- MESSAGEADDONKEY_FIELD_NUMBER: _builtins.int
- LEGACYMESSAGE_FIELD_NUMBER: _builtins.int
- messageAddOnType: Global___MessageAddOn.MessageAddOnType.ValueType
- senderTimestampMs: _builtins.int
- serverTimestampMs: _builtins.int
- status: Global___WebMessageInfo.Status.ValueType
- @_builtins.property
- def messageAddOn(self) -> Global___Message: ...
- @_builtins.property
- def addOnContextInfo(self) -> Global___MessageAddOnContextInfo: ...
- @_builtins.property
- def messageAddOnKey(self) -> Global___MessageKey: ...
- @_builtins.property
- def legacyMessage(self) -> Global___LegacyMessage: ...
+ THREADID_FIELD_NUMBER: _builtins.int
+ threadId: _builtins.bytes
def __init__(
self,
*,
- messageAddOnType: Global___MessageAddOn.MessageAddOnType.ValueType | None = ...,
- messageAddOn: Global___Message | None = ...,
- senderTimestampMs: _builtins.int | None = ...,
- serverTimestampMs: _builtins.int | None = ...,
- status: Global___WebMessageInfo.Status.ValueType | None = ...,
- addOnContextInfo: Global___MessageAddOnContextInfo | None = ...,
- messageAddOnKey: Global___MessageKey | None = ...,
- legacyMessage: Global___LegacyMessage | None = ...,
+ threadId: _builtins.bytes | None = ...,
) -> None: ...
- _HasFieldArgType: _TypeAlias = _typing.Literal["addOnContextInfo", b"addOnContextInfo", "legacyMessage", b"legacyMessage", "messageAddOn", b"messageAddOn", "messageAddOnKey", b"messageAddOnKey", "messageAddOnType", b"messageAddOnType", "senderTimestampMs", b"senderTimestampMs", "serverTimestampMs", b"serverTimestampMs", "status", b"status"] # noqa: Y015
+ _HasFieldArgType: _TypeAlias = _typing.Literal["threadId", b"threadId"] # noqa: Y015
def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ...
- _ClearFieldArgType: _TypeAlias = _typing.Literal["addOnContextInfo", b"addOnContextInfo", "legacyMessage", b"legacyMessage", "messageAddOn", b"messageAddOn", "messageAddOnKey", b"messageAddOnKey", "messageAddOnType", b"messageAddOnType", "senderTimestampMs", b"senderTimestampMs", "serverTimestampMs", b"serverTimestampMs", "status", b"status"] # noqa: Y015
+ _ClearFieldArgType: _TypeAlias = _typing.Literal["threadId", b"threadId"] # noqa: Y015
def ClearField(self, field_name: _ClearFieldArgType) -> None: ...
-Global___MessageAddOn: _TypeAlias = MessageAddOn # noqa: Y015
+Global___MinosThreadIdFromOneToOneThreadResult: _TypeAlias = MinosThreadIdFromOneToOneThreadResult # noqa: Y015
@_typing.final
-class MessageAddOnContextInfo(_message.Message):
+class MinosValidateEpochInput(_message.Message):
DESCRIPTOR: _descriptor.Descriptor
- MESSAGEADDONDURATIONINSECS_FIELD_NUMBER: _builtins.int
- MESSAGEADDONEXPIRYTYPE_FIELD_NUMBER: _builtins.int
- messageAddOnDurationInSecs: _builtins.int
- messageAddOnExpiryType: Global___MessageContextInfo.MessageAddonExpiryType.ValueType
+ EPOCHPUBLICDATA_FIELD_NUMBER: _builtins.int
+ PREVIOUSEPOCHPUBLICDATA_FIELD_NUMBER: _builtins.int
+ SIGNATURES_FIELD_NUMBER: _builtins.int
+ @_builtins.property
+ def epochPublicData(self) -> Global___EpochPublicData: ...
+ @_builtins.property
+ def previousEpochPublicData(self) -> Global___EpochPublicData: ...
+ @_builtins.property
+ def signatures(self) -> Global___EpochSignatures: ...
def __init__(
self,
*,
- messageAddOnDurationInSecs: _builtins.int | None = ...,
- messageAddOnExpiryType: Global___MessageContextInfo.MessageAddonExpiryType.ValueType | None = ...,
+ epochPublicData: Global___EpochPublicData | None = ...,
+ previousEpochPublicData: Global___EpochPublicData | None = ...,
+ signatures: Global___EpochSignatures | None = ...,
) -> None: ...
- _HasFieldArgType: _TypeAlias = _typing.Literal["messageAddOnDurationInSecs", b"messageAddOnDurationInSecs", "messageAddOnExpiryType", b"messageAddOnExpiryType"] # noqa: Y015
+ _HasFieldArgType: _TypeAlias = _typing.Literal["epochPublicData", b"epochPublicData", "previousEpochPublicData", b"previousEpochPublicData", "signatures", b"signatures"] # noqa: Y015
def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ...
- _ClearFieldArgType: _TypeAlias = _typing.Literal["messageAddOnDurationInSecs", b"messageAddOnDurationInSecs", "messageAddOnExpiryType", b"messageAddOnExpiryType"] # noqa: Y015
+ _ClearFieldArgType: _TypeAlias = _typing.Literal["epochPublicData", b"epochPublicData", "previousEpochPublicData", b"previousEpochPublicData", "signatures", b"signatures"] # noqa: Y015
def ClearField(self, field_name: _ClearFieldArgType) -> None: ...
-Global___MessageAddOnContextInfo: _TypeAlias = MessageAddOnContextInfo # noqa: Y015
+Global___MinosValidateEpochInput: _TypeAlias = MinosValidateEpochInput # noqa: Y015
@_typing.final
-class MessageAssociation(_message.Message):
+class MinosValidateEpochResult(_message.Message):
DESCRIPTOR: _descriptor.Descriptor
- class _AssociationType:
- ValueType = _typing.NewType("ValueType", _builtins.int)
- V: _TypeAlias = ValueType # noqa: Y015
+ VALID_FIELD_NUMBER: _builtins.int
+ ERRORMESSAGE_FIELD_NUMBER: _builtins.int
+ valid: _builtins.bool
+ errorMessage: _builtins.str
+ def __init__(
+ self,
+ *,
+ valid: _builtins.bool | None = ...,
+ errorMessage: _builtins.str | None = ...,
+ ) -> None: ...
+ _HasFieldArgType: _TypeAlias = _typing.Literal["errorMessage", b"errorMessage", "result", b"result", "valid", b"valid"] # noqa: Y015
+ def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ...
+ _ClearFieldArgType: _TypeAlias = _typing.Literal["errorMessage", b"errorMessage", "result", b"result", "valid", b"valid"] # noqa: Y015
+ def ClearField(self, field_name: _ClearFieldArgType) -> None: ...
+ _WhichOneofReturnType_result: _TypeAlias = _typing.Literal["valid", "errorMessage"] # noqa: Y015
+ _WhichOneofArgType_result: _TypeAlias = _typing.Literal["result", b"result"] # noqa: Y015
+ def WhichOneof(self, oneof_group: _WhichOneofArgType_result) -> _WhichOneofReturnType_result | None: ...
- class _AssociationTypeEnumTypeWrapper(_enum_type_wrapper._EnumTypeWrapper[MessageAssociation._AssociationType.ValueType], _builtins.type):
- DESCRIPTOR: _descriptor.EnumDescriptor
- UNKNOWN: MessageAssociation._AssociationType.ValueType # 0
- MEDIA_ALBUM: MessageAssociation._AssociationType.ValueType # 1
- BOT_PLUGIN: MessageAssociation._AssociationType.ValueType # 2
- EVENT_COVER_IMAGE: MessageAssociation._AssociationType.ValueType # 3
- STATUS_POLL: MessageAssociation._AssociationType.ValueType # 4
- HD_VIDEO_DUAL_UPLOAD: MessageAssociation._AssociationType.ValueType # 5
- STATUS_EXTERNAL_RESHARE: MessageAssociation._AssociationType.ValueType # 6
- MEDIA_POLL: MessageAssociation._AssociationType.ValueType # 7
- STATUS_ADD_YOURS: MessageAssociation._AssociationType.ValueType # 8
- STATUS_NOTIFICATION: MessageAssociation._AssociationType.ValueType # 9
- HD_IMAGE_DUAL_UPLOAD: MessageAssociation._AssociationType.ValueType # 10
- STICKER_ANNOTATION: MessageAssociation._AssociationType.ValueType # 11
- MOTION_PHOTO: MessageAssociation._AssociationType.ValueType # 12
- STATUS_LINK_ACTION: MessageAssociation._AssociationType.ValueType # 13
- VIEW_ALL_REPLIES: MessageAssociation._AssociationType.ValueType # 14
- STATUS_ADD_YOURS_AI_IMAGINE: MessageAssociation._AssociationType.ValueType # 15
- STATUS_QUESTION: MessageAssociation._AssociationType.ValueType # 16
- STATUS_ADD_YOURS_DIWALI: MessageAssociation._AssociationType.ValueType # 17
- STATUS_REACTION: MessageAssociation._AssociationType.ValueType # 18
- HEVC_VIDEO_DUAL_UPLOAD: MessageAssociation._AssociationType.ValueType # 19
- POLL_ADD_OPTION: MessageAssociation._AssociationType.ValueType # 20
+Global___MinosValidateEpochResult: _TypeAlias = MinosValidateEpochResult # noqa: Y015
- class AssociationType(_AssociationType, metaclass=_AssociationTypeEnumTypeWrapper): ...
- UNKNOWN: MessageAssociation.AssociationType.ValueType # 0
- MEDIA_ALBUM: MessageAssociation.AssociationType.ValueType # 1
- BOT_PLUGIN: MessageAssociation.AssociationType.ValueType # 2
- EVENT_COVER_IMAGE: MessageAssociation.AssociationType.ValueType # 3
- STATUS_POLL: MessageAssociation.AssociationType.ValueType # 4
- HD_VIDEO_DUAL_UPLOAD: MessageAssociation.AssociationType.ValueType # 5
- STATUS_EXTERNAL_RESHARE: MessageAssociation.AssociationType.ValueType # 6
- MEDIA_POLL: MessageAssociation.AssociationType.ValueType # 7
- STATUS_ADD_YOURS: MessageAssociation.AssociationType.ValueType # 8
- STATUS_NOTIFICATION: MessageAssociation.AssociationType.ValueType # 9
- HD_IMAGE_DUAL_UPLOAD: MessageAssociation.AssociationType.ValueType # 10
- STICKER_ANNOTATION: MessageAssociation.AssociationType.ValueType # 11
- MOTION_PHOTO: MessageAssociation.AssociationType.ValueType # 12
- STATUS_LINK_ACTION: MessageAssociation.AssociationType.ValueType # 13
- VIEW_ALL_REPLIES: MessageAssociation.AssociationType.ValueType # 14
- STATUS_ADD_YOURS_AI_IMAGINE: MessageAssociation.AssociationType.ValueType # 15
- STATUS_QUESTION: MessageAssociation.AssociationType.ValueType # 16
- STATUS_ADD_YOURS_DIWALI: MessageAssociation.AssociationType.ValueType # 17
- STATUS_REACTION: MessageAssociation.AssociationType.ValueType # 18
- HEVC_VIDEO_DUAL_UPLOAD: MessageAssociation.AssociationType.ValueType # 19
- POLL_ADD_OPTION: MessageAssociation.AssociationType.ValueType # 20
+@_typing.final
+class MinosVerifySingleEpochInput(_message.Message):
+ DESCRIPTOR: _descriptor.Descriptor
- ASSOCIATIONTYPE_FIELD_NUMBER: _builtins.int
- PARENTMESSAGEKEY_FIELD_NUMBER: _builtins.int
- MESSAGEINDEX_FIELD_NUMBER: _builtins.int
- associationType: Global___MessageAssociation.AssociationType.ValueType
- messageIndex: _builtins.int
+ EPOCHPUBLICDATA_FIELD_NUMBER: _builtins.int
+ SIGNATURE_FIELD_NUMBER: _builtins.int
+ signature: _builtins.bytes
@_builtins.property
- def parentMessageKey(self) -> Global___MessageKey: ...
+ def epochPublicData(self) -> Global___EpochPublicData: ...
def __init__(
self,
*,
- associationType: Global___MessageAssociation.AssociationType.ValueType | None = ...,
- parentMessageKey: Global___MessageKey | None = ...,
- messageIndex: _builtins.int | None = ...,
+ epochPublicData: Global___EpochPublicData | None = ...,
+ signature: _builtins.bytes | None = ...,
) -> None: ...
- _HasFieldArgType: _TypeAlias = _typing.Literal["associationType", b"associationType", "messageIndex", b"messageIndex", "parentMessageKey", b"parentMessageKey"] # noqa: Y015
+ _HasFieldArgType: _TypeAlias = _typing.Literal["epochPublicData", b"epochPublicData", "signature", b"signature"] # noqa: Y015
def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ...
- _ClearFieldArgType: _TypeAlias = _typing.Literal["associationType", b"associationType", "messageIndex", b"messageIndex", "parentMessageKey", b"parentMessageKey"] # noqa: Y015
+ _ClearFieldArgType: _TypeAlias = _typing.Literal["epochPublicData", b"epochPublicData", "signature", b"signature"] # noqa: Y015
def ClearField(self, field_name: _ClearFieldArgType) -> None: ...
-Global___MessageAssociation: _TypeAlias = MessageAssociation # noqa: Y015
+Global___MinosVerifySingleEpochInput: _TypeAlias = MinosVerifySingleEpochInput # noqa: Y015
@_typing.final
-class MessageContextInfo(_message.Message):
+class MinosVerifySingleEpochResult(_message.Message):
DESCRIPTOR: _descriptor.Descriptor
- class _MessageAddonExpiryType:
- ValueType = _typing.NewType("ValueType", _builtins.int)
- V: _TypeAlias = ValueType # noqa: Y015
+ VALID_FIELD_NUMBER: _builtins.int
+ valid: _builtins.bool
+ def __init__(
+ self,
+ *,
+ valid: _builtins.bool | None = ...,
+ ) -> None: ...
+ _HasFieldArgType: _TypeAlias = _typing.Literal["valid", b"valid"] # noqa: Y015
+ def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ...
+ _ClearFieldArgType: _TypeAlias = _typing.Literal["valid", b"valid"] # noqa: Y015
+ def ClearField(self, field_name: _ClearFieldArgType) -> None: ...
- class _MessageAddonExpiryTypeEnumTypeWrapper(_enum_type_wrapper._EnumTypeWrapper[MessageContextInfo._MessageAddonExpiryType.ValueType], _builtins.type):
- DESCRIPTOR: _descriptor.EnumDescriptor
- STATIC: MessageContextInfo._MessageAddonExpiryType.ValueType # 1
- DEPENDENT_ON_PARENT: MessageContextInfo._MessageAddonExpiryType.ValueType # 2
+Global___MinosVerifySingleEpochResult: _TypeAlias = MinosVerifySingleEpochResult # noqa: Y015
- class MessageAddonExpiryType(_MessageAddonExpiryType, metaclass=_MessageAddonExpiryTypeEnumTypeWrapper): ...
- STATIC: MessageContextInfo.MessageAddonExpiryType.ValueType # 1
- DEPENDENT_ON_PARENT: MessageContextInfo.MessageAddonExpiryType.ValueType # 2
+@_typing.final
+class MmkDistribution(_message.Message):
+ DESCRIPTOR: _descriptor.Descriptor
- DEVICELISTMETADATA_FIELD_NUMBER: _builtins.int
- DEVICELISTMETADATAVERSION_FIELD_NUMBER: _builtins.int
- MESSAGESECRET_FIELD_NUMBER: _builtins.int
- PADDINGBYTES_FIELD_NUMBER: _builtins.int
- MESSAGEADDONDURATIONINSECS_FIELD_NUMBER: _builtins.int
- BOTMESSAGESECRET_FIELD_NUMBER: _builtins.int
- BOTMETADATA_FIELD_NUMBER: _builtins.int
- REPORTINGTOKENVERSION_FIELD_NUMBER: _builtins.int
- MESSAGEADDONEXPIRYTYPE_FIELD_NUMBER: _builtins.int
- MESSAGEASSOCIATION_FIELD_NUMBER: _builtins.int
- CAPICREATEDGROUP_FIELD_NUMBER: _builtins.int
- SUPPORTPAYLOAD_FIELD_NUMBER: _builtins.int
- LIMITSHARING_FIELD_NUMBER: _builtins.int
- LIMITSHARINGV2_FIELD_NUMBER: _builtins.int
- THREADID_FIELD_NUMBER: _builtins.int
- WEBLINKRENDERCONFIG_FIELD_NUMBER: _builtins.int
- TEEBOTMETADATA_FIELD_NUMBER: _builtins.int
- deviceListMetadataVersion: _builtins.int
- messageSecret: _builtins.bytes
- paddingBytes: _builtins.bytes
- messageAddOnDurationInSecs: _builtins.int
- botMessageSecret: _builtins.bytes
- reportingTokenVersion: _builtins.int
- messageAddOnExpiryType: Global___MessageContextInfo.MessageAddonExpiryType.ValueType
- capiCreatedGroup: _builtins.bool
- supportPayload: _builtins.str
- weblinkRenderConfig: Global___WebLinkRenderConfig.ValueType
- teeBotMetadata: _builtins.bytes
- @_builtins.property
- def deviceListMetadata(self) -> Global___DeviceListMetadata: ...
- @_builtins.property
- def botMetadata(self) -> Global___BotMetadata: ...
- @_builtins.property
- def messageAssociation(self) -> Global___MessageAssociation: ...
- @_builtins.property
- def limitSharing(self) -> Global___LimitSharing: ...
+ TODETACHEDDEVICES_FIELD_NUMBER: _builtins.int
+ TOMAILBOX_FIELD_NUMBER: _builtins.int
+ VERSION_FIELD_NUMBER: _builtins.int
+ version: _builtins.int
@_builtins.property
- def limitSharingV2(self) -> Global___LimitSharing: ...
+ def toDetachedDevices(self) -> _containers.RepeatedCompositeFieldContainer[Global___MmkDistributionToDetachedDevice]: ...
@_builtins.property
- def threadId(self) -> _containers.RepeatedCompositeFieldContainer[Global___ThreadID]: ...
+ def toMailbox(self) -> Global___MmkDistributionToMailbox: ...
def __init__(
self,
*,
- deviceListMetadata: Global___DeviceListMetadata | None = ...,
- deviceListMetadataVersion: _builtins.int | None = ...,
- messageSecret: _builtins.bytes | None = ...,
- paddingBytes: _builtins.bytes | None = ...,
- messageAddOnDurationInSecs: _builtins.int | None = ...,
- botMessageSecret: _builtins.bytes | None = ...,
- botMetadata: Global___BotMetadata | None = ...,
- reportingTokenVersion: _builtins.int | None = ...,
- messageAddOnExpiryType: Global___MessageContextInfo.MessageAddonExpiryType.ValueType | None = ...,
- messageAssociation: Global___MessageAssociation | None = ...,
- capiCreatedGroup: _builtins.bool | None = ...,
- supportPayload: _builtins.str | None = ...,
- limitSharing: Global___LimitSharing | None = ...,
- limitSharingV2: Global___LimitSharing | None = ...,
- threadId: _abc.Iterable[Global___ThreadID] | None = ...,
- weblinkRenderConfig: Global___WebLinkRenderConfig.ValueType | None = ...,
- teeBotMetadata: _builtins.bytes | None = ...,
+ toDetachedDevices: _abc.Iterable[Global___MmkDistributionToDetachedDevice] | None = ...,
+ toMailbox: Global___MmkDistributionToMailbox | None = ...,
+ version: _builtins.int | None = ...,
) -> None: ...
- _HasFieldArgType: _TypeAlias = _typing.Literal["botMessageSecret", b"botMessageSecret", "botMetadata", b"botMetadata", "capiCreatedGroup", b"capiCreatedGroup", "deviceListMetadata", b"deviceListMetadata", "deviceListMetadataVersion", b"deviceListMetadataVersion", "limitSharing", b"limitSharing", "limitSharingV2", b"limitSharingV2", "messageAddOnDurationInSecs", b"messageAddOnDurationInSecs", "messageAddOnExpiryType", b"messageAddOnExpiryType", "messageAssociation", b"messageAssociation", "messageSecret", b"messageSecret", "paddingBytes", b"paddingBytes", "reportingTokenVersion", b"reportingTokenVersion", "supportPayload", b"supportPayload", "teeBotMetadata", b"teeBotMetadata", "weblinkRenderConfig", b"weblinkRenderConfig"] # noqa: Y015
+ _HasFieldArgType: _TypeAlias = _typing.Literal["toMailbox", b"toMailbox", "version", b"version"] # noqa: Y015
def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ...
- _ClearFieldArgType: _TypeAlias = _typing.Literal["botMessageSecret", b"botMessageSecret", "botMetadata", b"botMetadata", "capiCreatedGroup", b"capiCreatedGroup", "deviceListMetadata", b"deviceListMetadata", "deviceListMetadataVersion", b"deviceListMetadataVersion", "limitSharing", b"limitSharing", "limitSharingV2", b"limitSharingV2", "messageAddOnDurationInSecs", b"messageAddOnDurationInSecs", "messageAddOnExpiryType", b"messageAddOnExpiryType", "messageAssociation", b"messageAssociation", "messageSecret", b"messageSecret", "paddingBytes", b"paddingBytes", "reportingTokenVersion", b"reportingTokenVersion", "supportPayload", b"supportPayload", "teeBotMetadata", b"teeBotMetadata", "threadId", b"threadId", "weblinkRenderConfig", b"weblinkRenderConfig"] # noqa: Y015
+ _ClearFieldArgType: _TypeAlias = _typing.Literal["toDetachedDevices", b"toDetachedDevices", "toMailbox", b"toMailbox", "version", b"version"] # noqa: Y015
def ClearField(self, field_name: _ClearFieldArgType) -> None: ...
-Global___MessageContextInfo: _TypeAlias = MessageContextInfo # noqa: Y015
+Global___MmkDistribution: _TypeAlias = MmkDistribution # noqa: Y015
@_typing.final
-class MessageKey(_message.Message):
+class MmkDistributionToDetachedDevice(_message.Message):
DESCRIPTOR: _descriptor.Descriptor
- REMOTEJID_FIELD_NUMBER: _builtins.int
- FROMME_FIELD_NUMBER: _builtins.int
- ID_FIELD_NUMBER: _builtins.int
- PARTICIPANT_FIELD_NUMBER: _builtins.int
- remoteJid: _builtins.str
- fromMe: _builtins.bool
- id: _builtins.str
- participant: _builtins.str
+ ENCRYPTEDMMK_FIELD_NUMBER: _builtins.int
+ RECIPDEVICEHASH_FIELD_NUMBER: _builtins.int
+ encryptedMmk: _builtins.bytes
+ recipDeviceHash: _builtins.bytes
def __init__(
self,
*,
- remoteJid: _builtins.str | None = ...,
- fromMe: _builtins.bool | None = ...,
- id: _builtins.str | None = ...,
- participant: _builtins.str | None = ...,
+ encryptedMmk: _builtins.bytes | None = ...,
+ recipDeviceHash: _builtins.bytes | None = ...,
) -> None: ...
- _HasFieldArgType: _TypeAlias = _typing.Literal["fromMe", b"fromMe", "id", b"id", "participant", b"participant", "remoteJid", b"remoteJid"] # noqa: Y015
+ _HasFieldArgType: _TypeAlias = _typing.Literal["encryptedMmk", b"encryptedMmk", "recipDeviceHash", b"recipDeviceHash"] # noqa: Y015
def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ...
- _ClearFieldArgType: _TypeAlias = _typing.Literal["fromMe", b"fromMe", "id", b"id", "participant", b"participant", "remoteJid", b"remoteJid"] # noqa: Y015
+ _ClearFieldArgType: _TypeAlias = _typing.Literal["encryptedMmk", b"encryptedMmk", "recipDeviceHash", b"recipDeviceHash"] # noqa: Y015
def ClearField(self, field_name: _ClearFieldArgType) -> None: ...
-Global___MessageKey: _TypeAlias = MessageKey # noqa: Y015
+Global___MmkDistributionToDetachedDevice: _TypeAlias = MmkDistributionToDetachedDevice # noqa: Y015
@_typing.final
-class MessageSecretMessage(_message.Message):
+class MmkDistributionToMailbox(_message.Message):
DESCRIPTOR: _descriptor.Descriptor
- VERSION_FIELD_NUMBER: _builtins.int
- ENCIV_FIELD_NUMBER: _builtins.int
- ENCPAYLOAD_FIELD_NUMBER: _builtins.int
- version: _builtins.int
- encIv: _builtins.bytes
- encPayload: _builtins.bytes
+ ENCRYPTEDMMK_FIELD_NUMBER: _builtins.int
+ RECIPMAILBOXHEADHASH_FIELD_NUMBER: _builtins.int
+ encryptedMmk: _builtins.bytes
+ recipMailboxHeadHash: _builtins.bytes
def __init__(
self,
*,
- version: _builtins.int | None = ...,
- encIv: _builtins.bytes | None = ...,
- encPayload: _builtins.bytes | None = ...,
+ encryptedMmk: _builtins.bytes | None = ...,
+ recipMailboxHeadHash: _builtins.bytes | None = ...,
) -> None: ...
- _HasFieldArgType: _TypeAlias = _typing.Literal["encIv", b"encIv", "encPayload", b"encPayload", "version", b"version"] # noqa: Y015
+ _HasFieldArgType: _TypeAlias = _typing.Literal["encryptedMmk", b"encryptedMmk", "recipMailboxHeadHash", b"recipMailboxHeadHash"] # noqa: Y015
def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ...
- _ClearFieldArgType: _TypeAlias = _typing.Literal["encIv", b"encIv", "encPayload", b"encPayload", "version", b"version"] # noqa: Y015
+ _ClearFieldArgType: _TypeAlias = _typing.Literal["encryptedMmk", b"encryptedMmk", "recipMailboxHeadHash", b"recipMailboxHeadHash"] # noqa: Y015
def ClearField(self, field_name: _ClearFieldArgType) -> None: ...
-Global___MessageSecretMessage: _TypeAlias = MessageSecretMessage # noqa: Y015
+Global___MmkDistributionToMailbox: _TypeAlias = MmkDistributionToMailbox # noqa: Y015
@_typing.final
-class MessageText(_message.Message):
+class MmkFromDetachedDevice(_message.Message):
DESCRIPTOR: _descriptor.Descriptor
- TEXT_FIELD_NUMBER: _builtins.int
- MENTIONEDJID_FIELD_NUMBER: _builtins.int
- COMMANDS_FIELD_NUMBER: _builtins.int
- MENTIONS_FIELD_NUMBER: _builtins.int
- text: _builtins.str
+ MMK_FIELD_NUMBER: _builtins.int
+ FROMDETACHEDDEVICE_FIELD_NUMBER: _builtins.int
+ MEMBERSHIPPROOF_FIELD_NUMBER: _builtins.int
@_builtins.property
- def mentionedJid(self) -> _containers.RepeatedScalarFieldContainer[_builtins.str]: ...
+ def mmk(self) -> Global___MessagingMailboxPublicData: ...
@_builtins.property
- def commands(self) -> _containers.RepeatedCompositeFieldContainer[Global___Command]: ...
+ def fromDetachedDevice(self) -> Global___DetachedDevicePublicData: ...
@_builtins.property
- def mentions(self) -> _containers.RepeatedCompositeFieldContainer[Global___Mention]: ...
+ def membershipProof(self) -> Global___MerkleMembershipProof: ...
def __init__(
self,
*,
- text: _builtins.str | None = ...,
- mentionedJid: _abc.Iterable[_builtins.str] | None = ...,
- commands: _abc.Iterable[Global___Command] | None = ...,
- mentions: _abc.Iterable[Global___Mention] | None = ...,
+ mmk: Global___MessagingMailboxPublicData | None = ...,
+ fromDetachedDevice: Global___DetachedDevicePublicData | None = ...,
+ membershipProof: Global___MerkleMembershipProof | None = ...,
) -> None: ...
- _HasFieldArgType: _TypeAlias = _typing.Literal["text", b"text"] # noqa: Y015
+ _HasFieldArgType: _TypeAlias = _typing.Literal["fromDetachedDevice", b"fromDetachedDevice", "membershipProof", b"membershipProof", "mmk", b"mmk"] # noqa: Y015
def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ...
- _ClearFieldArgType: _TypeAlias = _typing.Literal["commands", b"commands", "mentionedJid", b"mentionedJid", "mentions", b"mentions", "text", b"text"] # noqa: Y015
+ _ClearFieldArgType: _TypeAlias = _typing.Literal["fromDetachedDevice", b"fromDetachedDevice", "membershipProof", b"membershipProof", "mmk", b"mmk"] # noqa: Y015
def ClearField(self, field_name: _ClearFieldArgType) -> None: ...
-Global___MessageText: _TypeAlias = MessageText # noqa: Y015
+Global___MmkFromDetachedDevice: _TypeAlias = MmkFromDetachedDevice # noqa: Y015
@_typing.final
class Money(_message.Message):
@@ -16609,6 +20243,39 @@ class NoiseCertificate(_message.Message):
Global___NoiseCertificate: _TypeAlias = NoiseCertificate # noqa: Y015
+@_typing.final
+class NonE2EEAttestation(_message.Message):
+ DESCRIPTOR: _descriptor.Descriptor
+
+ class _AccountType:
+ ValueType = _typing.NewType("ValueType", _builtins.int)
+ V: _TypeAlias = ValueType # noqa: Y015
+
+ class _AccountTypeEnumTypeWrapper(_enum_type_wrapper._EnumTypeWrapper[NonE2EEAttestation._AccountType.ValueType], _builtins.type):
+ DESCRIPTOR: _descriptor.EnumDescriptor
+ E2EE: NonE2EEAttestation._AccountType.ValueType # 0
+ HYBRID_E2EE: NonE2EEAttestation._AccountType.ValueType # 1
+ NON_E2EE: NonE2EEAttestation._AccountType.ValueType # 2
+
+ class AccountType(_AccountType, metaclass=_AccountTypeEnumTypeWrapper): ...
+ E2EE: NonE2EEAttestation.AccountType.ValueType # 0
+ HYBRID_E2EE: NonE2EEAttestation.AccountType.ValueType # 1
+ NON_E2EE: NonE2EEAttestation.AccountType.ValueType # 2
+
+ ACCOUNTTYPE_FIELD_NUMBER: _builtins.int
+ accountType: Global___NonE2EEAttestation.AccountType.ValueType
+ def __init__(
+ self,
+ *,
+ accountType: Global___NonE2EEAttestation.AccountType.ValueType | None = ...,
+ ) -> None: ...
+ _HasFieldArgType: _TypeAlias = _typing.Literal["accountType", b"accountType"] # noqa: Y015
+ def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ...
+ _ClearFieldArgType: _TypeAlias = _typing.Literal["accountType", b"accountType"] # noqa: Y015
+ def ClearField(self, field_name: _ClearFieldArgType) -> None: ...
+
+Global___NonE2EEAttestation: _TypeAlias = NonE2EEAttestation # noqa: Y015
+
@_typing.final
class NotificationMessageInfo(_message.Message):
DESCRIPTOR: _descriptor.Descriptor
@@ -16671,6 +20338,48 @@ class NotificationSettings(_message.Message):
Global___NotificationSettings: _TypeAlias = NotificationSettings # noqa: Y015
+@_typing.final
+class OrfThreadIdInput(_message.Message):
+ DESCRIPTOR: _descriptor.Descriptor
+
+ ORFCLIENTSTATE_FIELD_NUMBER: _builtins.int
+ THREADID_FIELD_NUMBER: _builtins.int
+ orfClientState: _builtins.bytes
+ threadId: _builtins.str
+ def __init__(
+ self,
+ *,
+ orfClientState: _builtins.bytes | None = ...,
+ threadId: _builtins.str | None = ...,
+ ) -> None: ...
+ _HasFieldArgType: _TypeAlias = _typing.Literal["orfClientState", b"orfClientState", "threadId", b"threadId"] # noqa: Y015
+ def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ...
+ _ClearFieldArgType: _TypeAlias = _typing.Literal["orfClientState", b"orfClientState", "threadId", b"threadId"] # noqa: Y015
+ def ClearField(self, field_name: _ClearFieldArgType) -> None: ...
+
+Global___OrfThreadIdInput: _TypeAlias = OrfThreadIdInput # noqa: Y015
+
+@_typing.final
+class OrfThreadIdOutput(_message.Message):
+ DESCRIPTOR: _descriptor.Descriptor
+
+ ORFTHREADID_FIELD_NUMBER: _builtins.int
+ ERROR_FIELD_NUMBER: _builtins.int
+ orfThreadId: _builtins.bytes
+ error: _builtins.str
+ def __init__(
+ self,
+ *,
+ orfThreadId: _builtins.bytes | None = ...,
+ error: _builtins.str | None = ...,
+ ) -> None: ...
+ _HasFieldArgType: _TypeAlias = _typing.Literal["error", b"error", "orfThreadId", b"orfThreadId"] # noqa: Y015
+ def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ...
+ _ClearFieldArgType: _TypeAlias = _typing.Literal["error", b"error", "orfThreadId", b"orfThreadId"] # noqa: Y015
+ def ClearField(self, field_name: _ClearFieldArgType) -> None: ...
+
+Global___OrfThreadIdOutput: _TypeAlias = OrfThreadIdOutput # noqa: Y015
+
@_typing.final
class PairingRequest(_message.Message):
DESCRIPTOR: _descriptor.Descriptor
@@ -17349,12 +21058,16 @@ class PreKeySignalMessage(_message.Message):
BASEKEY_FIELD_NUMBER: _builtins.int
IDENTITYKEY_FIELD_NUMBER: _builtins.int
MESSAGE_FIELD_NUMBER: _builtins.int
+ KYBERPREKEYID_FIELD_NUMBER: _builtins.int
+ KYBERCIPHERTEXT_FIELD_NUMBER: _builtins.int
registrationId: _builtins.int
preKeyId: _builtins.int
signedPreKeyId: _builtins.int
baseKey: _builtins.bytes
identityKey: _builtins.bytes
message: _builtins.bytes
+ kyberPreKeyId: _builtins.int
+ kyberCiphertext: _builtins.bytes
def __init__(
self,
*,
@@ -17364,10 +21077,12 @@ class PreKeySignalMessage(_message.Message):
baseKey: _builtins.bytes | None = ...,
identityKey: _builtins.bytes | None = ...,
message: _builtins.bytes | None = ...,
+ kyberPreKeyId: _builtins.int | None = ...,
+ kyberCiphertext: _builtins.bytes | None = ...,
) -> None: ...
- _HasFieldArgType: _TypeAlias = _typing.Literal["baseKey", b"baseKey", "identityKey", b"identityKey", "message", b"message", "preKeyId", b"preKeyId", "registrationId", b"registrationId", "signedPreKeyId", b"signedPreKeyId"] # noqa: Y015
+ _HasFieldArgType: _TypeAlias = _typing.Literal["baseKey", b"baseKey", "identityKey", b"identityKey", "kyberCiphertext", b"kyberCiphertext", "kyberPreKeyId", b"kyberPreKeyId", "message", b"message", "preKeyId", b"preKeyId", "registrationId", b"registrationId", "signedPreKeyId", b"signedPreKeyId"] # noqa: Y015
def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ...
- _ClearFieldArgType: _TypeAlias = _typing.Literal["baseKey", b"baseKey", "identityKey", b"identityKey", "message", b"message", "preKeyId", b"preKeyId", "registrationId", b"registrationId", "signedPreKeyId", b"signedPreKeyId"] # noqa: Y015
+ _ClearFieldArgType: _TypeAlias = _typing.Literal["baseKey", b"baseKey", "identityKey", b"identityKey", "kyberCiphertext", b"kyberCiphertext", "kyberPreKeyId", b"kyberPreKeyId", "message", b"message", "preKeyId", b"preKeyId", "registrationId", b"registrationId", "signedPreKeyId", b"signedPreKeyId"] # noqa: Y015
def ClearField(self, field_name: _ClearFieldArgType) -> None: ...
Global___PreKeySignalMessage: _TypeAlias = PreKeySignalMessage # noqa: Y015
@@ -17761,19 +21476,142 @@ class ReportingTokenInfo(_message.Message):
DESCRIPTOR: _descriptor.Descriptor
REPORTINGTAG_FIELD_NUMBER: _builtins.int
+ REPORTINGTAGTIMESTAMP_FIELD_NUMBER: _builtins.int
reportingTag: _builtins.bytes
+ reportingTagTimestamp: _builtins.int
def __init__(
self,
*,
reportingTag: _builtins.bytes | None = ...,
+ reportingTagTimestamp: _builtins.int | None = ...,
) -> None: ...
- _HasFieldArgType: _TypeAlias = _typing.Literal["reportingTag", b"reportingTag"] # noqa: Y015
+ _HasFieldArgType: _TypeAlias = _typing.Literal["reportingTag", b"reportingTag", "reportingTagTimestamp", b"reportingTagTimestamp"] # noqa: Y015
def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ...
- _ClearFieldArgType: _TypeAlias = _typing.Literal["reportingTag", b"reportingTag"] # noqa: Y015
+ _ClearFieldArgType: _TypeAlias = _typing.Literal["reportingTag", b"reportingTag", "reportingTagTimestamp", b"reportingTagTimestamp"] # noqa: Y015
def ClearField(self, field_name: _ClearFieldArgType) -> None: ...
Global___ReportingTokenInfo: _TypeAlias = ReportingTokenInfo # noqa: Y015
+@_typing.final
+class RotateEpochInput(_message.Message):
+ DESCRIPTOR: _descriptor.Descriptor
+
+ CURRENTEPOCHROOTKEY_FIELD_NUMBER: _builtins.int
+ CURRENTEPOCHANONID_FIELD_NUMBER: _builtins.int
+ CURRENTEPOCHFBID_FIELD_NUMBER: _builtins.int
+ EPOCHSTORAGEPRIVATEKEY_FIELD_NUMBER: _builtins.int
+ MEMBERS_FIELD_NUMBER: _builtins.int
+ currentEpochRootKey: _builtins.bytes
+ currentEpochAnonId: _builtins.bytes
+ currentEpochFbid: _builtins.int
+ epochStoragePrivateKey: _builtins.bytes
+ @_builtins.property
+ def members(self) -> _containers.RepeatedCompositeFieldContainer[Global___RotateEpochMemberInput]: ...
+ def __init__(
+ self,
+ *,
+ currentEpochRootKey: _builtins.bytes | None = ...,
+ currentEpochAnonId: _builtins.bytes | None = ...,
+ currentEpochFbid: _builtins.int | None = ...,
+ epochStoragePrivateKey: _builtins.bytes | None = ...,
+ members: _abc.Iterable[Global___RotateEpochMemberInput] | None = ...,
+ ) -> None: ...
+ _HasFieldArgType: _TypeAlias = _typing.Literal["currentEpochAnonId", b"currentEpochAnonId", "currentEpochFbid", b"currentEpochFbid", "currentEpochRootKey", b"currentEpochRootKey", "epochStoragePrivateKey", b"epochStoragePrivateKey"] # noqa: Y015
+ def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ...
+ _ClearFieldArgType: _TypeAlias = _typing.Literal["currentEpochAnonId", b"currentEpochAnonId", "currentEpochFbid", b"currentEpochFbid", "currentEpochRootKey", b"currentEpochRootKey", "epochStoragePrivateKey", b"epochStoragePrivateKey", "members", b"members"] # noqa: Y015
+ def ClearField(self, field_name: _ClearFieldArgType) -> None: ...
+
+Global___RotateEpochInput: _TypeAlias = RotateEpochInput # noqa: Y015
+
+@_typing.final
+class RotateEpochMemberEdge(_message.Message):
+ DESCRIPTOR: _descriptor.Descriptor
+
+ DEVICEID_FIELD_NUMBER: _builtins.int
+ ENCRYPTEDEPOCHKEY_FIELD_NUMBER: _builtins.int
+ DEVICEEPOCHHMAC_FIELD_NUMBER: _builtins.int
+ deviceId: _builtins.int
+ encryptedEpochKey: _builtins.bytes
+ deviceEpochHmac: _builtins.bytes
+ def __init__(
+ self,
+ *,
+ deviceId: _builtins.int | None = ...,
+ encryptedEpochKey: _builtins.bytes | None = ...,
+ deviceEpochHmac: _builtins.bytes | None = ...,
+ ) -> None: ...
+ _HasFieldArgType: _TypeAlias = _typing.Literal["deviceEpochHmac", b"deviceEpochHmac", "deviceId", b"deviceId", "encryptedEpochKey", b"encryptedEpochKey"] # noqa: Y015
+ def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ...
+ _ClearFieldArgType: _TypeAlias = _typing.Literal["deviceEpochHmac", b"deviceEpochHmac", "deviceId", b"deviceId", "encryptedEpochKey", b"encryptedEpochKey"] # noqa: Y015
+ def ClearField(self, field_name: _ClearFieldArgType) -> None: ...
+
+Global___RotateEpochMemberEdge: _TypeAlias = RotateEpochMemberEdge # noqa: Y015
+
+@_typing.final
+class RotateEpochMemberInput(_message.Message):
+ DESCRIPTOR: _descriptor.Descriptor
+
+ DEVICEID_FIELD_NUMBER: _builtins.int
+ EPOCHSTORAGEPUBLICKEY_FIELD_NUMBER: _builtins.int
+ DEVICEPUBLICKEY_FIELD_NUMBER: _builtins.int
+ deviceId: _builtins.int
+ epochStoragePublicKey: _builtins.bytes
+ devicePublicKey: _builtins.bytes
+ def __init__(
+ self,
+ *,
+ deviceId: _builtins.int | None = ...,
+ epochStoragePublicKey: _builtins.bytes | None = ...,
+ devicePublicKey: _builtins.bytes | None = ...,
+ ) -> None: ...
+ _HasFieldArgType: _TypeAlias = _typing.Literal["deviceId", b"deviceId", "devicePublicKey", b"devicePublicKey", "epochStoragePublicKey", b"epochStoragePublicKey"] # noqa: Y015
+ def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ...
+ _ClearFieldArgType: _TypeAlias = _typing.Literal["deviceId", b"deviceId", "devicePublicKey", b"devicePublicKey", "epochStoragePublicKey", b"epochStoragePublicKey"] # noqa: Y015
+ def ClearField(self, field_name: _ClearFieldArgType) -> None: ...
+
+Global___RotateEpochMemberInput: _TypeAlias = RotateEpochMemberInput # noqa: Y015
+
+@_typing.final
+class RotateEpochOutput(_message.Message):
+ DESCRIPTOR: _descriptor.Descriptor
+
+ NEWEPOCHROOTKEY_FIELD_NUMBER: _builtins.int
+ NEWEPOCHANONID_FIELD_NUMBER: _builtins.int
+ NEWEPOCHFBID_FIELD_NUMBER: _builtins.int
+ EPOCHANONID_FIELD_NUMBER: _builtins.int
+ BACKWARDEDGE_FIELD_NUMBER: _builtins.int
+ MEMBEREDGES_FIELD_NUMBER: _builtins.int
+ EPOCHROOTKEYFINGERPRINT_FIELD_NUMBER: _builtins.int
+ ERROR_FIELD_NUMBER: _builtins.int
+ newEpochRootKey: _builtins.bytes
+ newEpochAnonId: _builtins.int
+ newEpochFbid: _builtins.int
+ epochAnonId: _builtins.bytes
+ epochRootKeyFingerprint: _builtins.bytes
+ error: _builtins.str
+ @_builtins.property
+ def backwardEdge(self) -> Global___BackwardEdge: ...
+ @_builtins.property
+ def memberEdges(self) -> _containers.RepeatedCompositeFieldContainer[Global___RotateEpochMemberEdge]: ...
+ def __init__(
+ self,
+ *,
+ newEpochRootKey: _builtins.bytes | None = ...,
+ newEpochAnonId: _builtins.int | None = ...,
+ newEpochFbid: _builtins.int | None = ...,
+ epochAnonId: _builtins.bytes | None = ...,
+ backwardEdge: Global___BackwardEdge | None = ...,
+ memberEdges: _abc.Iterable[Global___RotateEpochMemberEdge] | None = ...,
+ epochRootKeyFingerprint: _builtins.bytes | None = ...,
+ error: _builtins.str | None = ...,
+ ) -> None: ...
+ _HasFieldArgType: _TypeAlias = _typing.Literal["backwardEdge", b"backwardEdge", "epochAnonId", b"epochAnonId", "epochRootKeyFingerprint", b"epochRootKeyFingerprint", "error", b"error", "newEpochAnonId", b"newEpochAnonId", "newEpochFbid", b"newEpochFbid", "newEpochRootKey", b"newEpochRootKey"] # noqa: Y015
+ def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ...
+ _ClearFieldArgType: _TypeAlias = _typing.Literal["backwardEdge", b"backwardEdge", "epochAnonId", b"epochAnonId", "epochRootKeyFingerprint", b"epochRootKeyFingerprint", "error", b"error", "memberEdges", b"memberEdges", "newEpochAnonId", b"newEpochAnonId", "newEpochFbid", b"newEpochFbid", "newEpochRootKey", b"newEpochRootKey"] # noqa: Y015
+ def ClearField(self, field_name: _ClearFieldArgType) -> None: ...
+
+Global___RotateEpochOutput: _TypeAlias = RotateEpochOutput # noqa: Y015
+
@_typing.final
class RoutingInfo(_message.Message):
DESCRIPTOR: _descriptor.Descriptor
@@ -18122,19 +21960,25 @@ class SessionStructure(_message.Message):
PREKEYID_FIELD_NUMBER: _builtins.int
SIGNEDPREKEYID_FIELD_NUMBER: _builtins.int
BASEKEY_FIELD_NUMBER: _builtins.int
+ KYBERPREKEYID_FIELD_NUMBER: _builtins.int
+ KYBERCIPHERTEXT_FIELD_NUMBER: _builtins.int
preKeyId: _builtins.int
signedPreKeyId: _builtins.int
baseKey: _builtins.bytes
+ kyberPreKeyId: _builtins.int
+ kyberCiphertext: _builtins.bytes
def __init__(
self,
*,
preKeyId: _builtins.int | None = ...,
signedPreKeyId: _builtins.int | None = ...,
baseKey: _builtins.bytes | None = ...,
+ kyberPreKeyId: _builtins.int | None = ...,
+ kyberCiphertext: _builtins.bytes | None = ...,
) -> None: ...
- _HasFieldArgType: _TypeAlias = _typing.Literal["baseKey", b"baseKey", "preKeyId", b"preKeyId", "signedPreKeyId", b"signedPreKeyId"] # noqa: Y015
+ _HasFieldArgType: _TypeAlias = _typing.Literal["baseKey", b"baseKey", "kyberCiphertext", b"kyberCiphertext", "kyberPreKeyId", b"kyberPreKeyId", "preKeyId", b"preKeyId", "signedPreKeyId", b"signedPreKeyId"] # noqa: Y015
def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ...
- _ClearFieldArgType: _TypeAlias = _typing.Literal["baseKey", b"baseKey", "preKeyId", b"preKeyId", "signedPreKeyId", b"signedPreKeyId"] # noqa: Y015
+ _ClearFieldArgType: _TypeAlias = _typing.Literal["baseKey", b"baseKey", "kyberCiphertext", b"kyberCiphertext", "kyberPreKeyId", b"kyberPreKeyId", "preKeyId", b"preKeyId", "signedPreKeyId", b"signedPreKeyId"] # noqa: Y015
def ClearField(self, field_name: _ClearFieldArgType) -> None: ...
SESSIONVERSION_FIELD_NUMBER: _builtins.int
@@ -18242,6 +22086,32 @@ class SignalMessage(_message.Message):
Global___SignalMessage: _TypeAlias = SignalMessage # noqa: Y015
+@_typing.final
+class SignedMmkDistributionFromMailbox(_message.Message):
+ DESCRIPTOR: _descriptor.Descriptor
+
+ MMKDISTRIBUTION_FIELD_NUMBER: _builtins.int
+ SIGNATURE_FIELD_NUMBER: _builtins.int
+ FROMMAILBOX_FIELD_NUMBER: _builtins.int
+ signature: _builtins.bytes
+ @_builtins.property
+ def mmkDistribution(self) -> Global___MmkDistribution: ...
+ @_builtins.property
+ def fromMailbox(self) -> Global___MessagingMailboxPublicData: ...
+ def __init__(
+ self,
+ *,
+ mmkDistribution: Global___MmkDistribution | None = ...,
+ signature: _builtins.bytes | None = ...,
+ fromMailbox: Global___MessagingMailboxPublicData | None = ...,
+ ) -> None: ...
+ _HasFieldArgType: _TypeAlias = _typing.Literal["fromMailbox", b"fromMailbox", "mmkDistribution", b"mmkDistribution", "signature", b"signature"] # noqa: Y015
+ def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ...
+ _ClearFieldArgType: _TypeAlias = _typing.Literal["fromMailbox", b"fromMailbox", "mmkDistribution", b"mmkDistribution", "signature", b"signature"] # noqa: Y015
+ def ClearField(self, field_name: _ClearFieldArgType) -> None: ...
+
+Global___SignedMmkDistributionFromMailbox: _TypeAlias = SignedMmkDistributionFromMailbox # noqa: Y015
+
@_typing.final
class SignedPreKeyRecordStructure(_message.Message):
DESCRIPTOR: _descriptor.Descriptor
@@ -18294,6 +22164,7 @@ class StatusAttribution(_message.Message):
NEWSLETTER_STATUS: StatusAttribution._Type.ValueType # 9
STATUS_CLOSE_SHARING: StatusAttribution._Type.ValueType # 10
PAID_PARTNERSHIP: StatusAttribution._Type.ValueType # 11
+ USERNAME_STATUS: StatusAttribution._Type.ValueType # 12
class Type(_Type, metaclass=_TypeEnumTypeWrapper): ...
UNKNOWN: StatusAttribution.Type.ValueType # 0
@@ -18308,6 +22179,7 @@ class StatusAttribution(_message.Message):
NEWSLETTER_STATUS: StatusAttribution.Type.ValueType # 9
STATUS_CLOSE_SHARING: StatusAttribution.Type.ValueType # 10
PAID_PARTNERSHIP: StatusAttribution.Type.ValueType # 11
+ USERNAME_STATUS: StatusAttribution.Type.ValueType # 12
@_typing.final
class AiCreatedAttribution(_message.Message):
@@ -18361,6 +22233,7 @@ class StatusAttribution(_message.Message):
GOOGLE_PHOTOS: StatusAttribution.ExternalShare._Source.ValueType # 10
SOUNDCLOUD: StatusAttribution.ExternalShare._Source.ValueType # 11
SHAZAM: StatusAttribution.ExternalShare._Source.ValueType # 12
+ PICSART: StatusAttribution.ExternalShare._Source.ValueType # 13
class Source(_Source, metaclass=_SourceEnumTypeWrapper): ...
UNKNOWN: StatusAttribution.ExternalShare.Source.ValueType # 0
@@ -18376,6 +22249,7 @@ class StatusAttribution(_message.Message):
GOOGLE_PHOTOS: StatusAttribution.ExternalShare.Source.ValueType # 10
SOUNDCLOUD: StatusAttribution.ExternalShare.Source.ValueType # 11
SHAZAM: StatusAttribution.ExternalShare.Source.ValueType # 12
+ PICSART: StatusAttribution.ExternalShare.Source.ValueType # 13
ACTIONURL_FIELD_NUMBER: _builtins.int
SOURCE_FIELD_NUMBER: _builtins.int
@@ -18763,18 +22637,18 @@ class SyncActionValue(_message.Message):
DEVICEID_FIELD_NUMBER: _builtins.int
ISDELETED_FIELD_NUMBER: _builtins.int
name: _builtins.str
- deviceID: _builtins.int
+ deviceId: _builtins.int
isDeleted: _builtins.bool
def __init__(
self,
*,
name: _builtins.str | None = ...,
- deviceID: _builtins.int | None = ...,
+ deviceId: _builtins.int | None = ...,
isDeleted: _builtins.bool | None = ...,
) -> None: ...
- _HasFieldArgType: _TypeAlias = _typing.Literal["deviceID", b"deviceID", "isDeleted", b"isDeleted", "name", b"name"] # noqa: Y015
+ _HasFieldArgType: _TypeAlias = _typing.Literal["deviceId", b"deviceId", "isDeleted", b"isDeleted", "name", b"name"] # noqa: Y015
def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ...
- _ClearFieldArgType: _TypeAlias = _typing.Literal["deviceID", b"deviceID", "isDeleted", b"isDeleted", "name", b"name"] # noqa: Y015
+ _ClearFieldArgType: _TypeAlias = _typing.Literal["deviceId", b"deviceId", "isDeleted", b"isDeleted", "name", b"name"] # noqa: Y015
def ClearField(self, field_name: _ClearFieldArgType) -> None: ...
@_typing.final
@@ -18896,6 +22770,7 @@ class SyncActionValue(_message.Message):
EXAMPLE_RESPONSES: SyncActionValue.BizAISettingsNudgeAction._BizAISettingsCategory.ValueType # 3
KNOWLEDGE: SyncActionValue.BizAISettingsNudgeAction._BizAISettingsCategory.ValueType # 4
LEAD_GEN: SyncActionValue.BizAISettingsNudgeAction._BizAISettingsCategory.ValueType # 5
+ HANDOFF_REMOVAL_TIMING: SyncActionValue.BizAISettingsNudgeAction._BizAISettingsCategory.ValueType # 6
class BizAISettingsCategory(_BizAISettingsCategory, metaclass=_BizAISettingsCategoryEnumTypeWrapper): ...
UNKNOWN: SyncActionValue.BizAISettingsNudgeAction.BizAISettingsCategory.ValueType # 0
@@ -18904,6 +22779,7 @@ class SyncActionValue(_message.Message):
EXAMPLE_RESPONSES: SyncActionValue.BizAISettingsNudgeAction.BizAISettingsCategory.ValueType # 3
KNOWLEDGE: SyncActionValue.BizAISettingsNudgeAction.BizAISettingsCategory.ValueType # 4
LEAD_GEN: SyncActionValue.BizAISettingsNudgeAction.BizAISettingsCategory.ValueType # 5
+ HANDOFF_REMOVAL_TIMING: SyncActionValue.BizAISettingsNudgeAction.BizAISettingsCategory.ValueType # 6
CATEGORY_FIELD_NUMBER: _builtins.int
VERSION_FIELD_NUMBER: _builtins.int
@@ -18958,6 +22834,22 @@ class SyncActionValue(_message.Message):
_ClearFieldArgType: _TypeAlias = _typing.Literal["lidJid", b"lidJid", "pnJid", b"pnJid"] # noqa: Y015
def ClearField(self, field_name: _ClearFieldArgType) -> None: ...
+ @_typing.final
+ class BubbleLockMessageAction(_message.Message):
+ DESCRIPTOR: _descriptor.Descriptor
+
+ LOCKED_FIELD_NUMBER: _builtins.int
+ locked: _builtins.bool
+ def __init__(
+ self,
+ *,
+ locked: _builtins.bool | None = ...,
+ ) -> None: ...
+ _HasFieldArgType: _TypeAlias = _typing.Literal["locked", b"locked"] # noqa: Y015
+ def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ...
+ _ClearFieldArgType: _TypeAlias = _typing.Literal["locked", b"locked"] # noqa: Y015
+ def ClearField(self, field_name: _ClearFieldArgType) -> None: ...
+
@_typing.final
class BusinessBroadcastAssociationAction(_message.Message):
DESCRIPTOR: _descriptor.Descriptor
@@ -19051,9 +22943,11 @@ class SyncActionValue(_message.Message):
LISTNAME_FIELD_NUMBER: _builtins.int
LABELIDS_FIELD_NUMBER: _builtins.int
AUDIENCEEXPRESSION_FIELD_NUMBER: _builtins.int
+ CUSTOMAUDIENCEFBID_FIELD_NUMBER: _builtins.int
deleted: _builtins.bool
listName: _builtins.str
audienceExpression: _builtins.str
+ customAudienceFbid: _builtins.str
@_builtins.property
def participants(self) -> _containers.RepeatedCompositeFieldContainer[Global___SyncActionValue.BroadcastListParticipant]: ...
@_builtins.property
@@ -19066,10 +22960,11 @@ class SyncActionValue(_message.Message):
listName: _builtins.str | None = ...,
labelIds: _abc.Iterable[_builtins.str] | None = ...,
audienceExpression: _builtins.str | None = ...,
+ customAudienceFbid: _builtins.str | None = ...,
) -> None: ...
- _HasFieldArgType: _TypeAlias = _typing.Literal["audienceExpression", b"audienceExpression", "deleted", b"deleted", "listName", b"listName"] # noqa: Y015
+ _HasFieldArgType: _TypeAlias = _typing.Literal["audienceExpression", b"audienceExpression", "customAudienceFbid", b"customAudienceFbid", "deleted", b"deleted", "listName", b"listName"] # noqa: Y015
def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ...
- _ClearFieldArgType: _TypeAlias = _typing.Literal["audienceExpression", b"audienceExpression", "deleted", b"deleted", "labelIds", b"labelIds", "listName", b"listName", "participants", b"participants"] # noqa: Y015
+ _ClearFieldArgType: _TypeAlias = _typing.Literal["audienceExpression", b"audienceExpression", "customAudienceFbid", b"customAudienceFbid", "deleted", b"deleted", "labelIds", b"labelIds", "listName", b"listName", "participants", b"participants"] # noqa: Y015
def ClearField(self, field_name: _ClearFieldArgType) -> None: ...
@_typing.final
@@ -19094,15 +22989,15 @@ class SyncActionValue(_message.Message):
DESCRIPTOR: _descriptor.Descriptor
DEVICEAGENTID_FIELD_NUMBER: _builtins.int
- deviceAgentID: _builtins.str
+ deviceAgentId: _builtins.str
def __init__(
self,
*,
- deviceAgentID: _builtins.str | None = ...,
+ deviceAgentId: _builtins.str | None = ...,
) -> None: ...
- _HasFieldArgType: _TypeAlias = _typing.Literal["deviceAgentID", b"deviceAgentID"] # noqa: Y015
+ _HasFieldArgType: _TypeAlias = _typing.Literal["deviceAgentId", b"deviceAgentId"] # noqa: Y015
def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ...
- _ClearFieldArgType: _TypeAlias = _typing.Literal["deviceAgentID", b"deviceAgentID"] # noqa: Y015
+ _ClearFieldArgType: _TypeAlias = _typing.Literal["deviceAgentId", b"deviceAgentId"] # noqa: Y015
def ClearField(self, field_name: _ClearFieldArgType) -> None: ...
@_typing.final
@@ -19138,6 +23033,22 @@ class SyncActionValue(_message.Message):
_ClearFieldArgType: _TypeAlias = _typing.Literal["messageRange", b"messageRange"] # noqa: Y015
def ClearField(self, field_name: _ClearFieldArgType) -> None: ...
+ @_typing.final
+ class CoexV2VersionAction(_message.Message):
+ DESCRIPTOR: _descriptor.Descriptor
+
+ VERSION_FIELD_NUMBER: _builtins.int
+ version: _builtins.int
+ def __init__(
+ self,
+ *,
+ version: _builtins.int | None = ...,
+ ) -> None: ...
+ _HasFieldArgType: _TypeAlias = _typing.Literal["version", b"version"] # noqa: Y015
+ def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ...
+ _ClearFieldArgType: _TypeAlias = _typing.Literal["version", b"version"] # noqa: Y015
+ def ClearField(self, field_name: _ClearFieldArgType) -> None: ...
+
@_typing.final
class ContactAction(_message.Message):
DESCRIPTOR: _descriptor.Descriptor
@@ -19169,6 +23080,22 @@ class SyncActionValue(_message.Message):
_ClearFieldArgType: _TypeAlias = _typing.Literal["firstName", b"firstName", "fullName", b"fullName", "lidJid", b"lidJid", "pnJid", b"pnJid", "saveOnPrimaryAddressbook", b"saveOnPrimaryAddressbook", "username", b"username"] # noqa: Y015
def ClearField(self, field_name: _ClearFieldArgType) -> None: ...
+ @_typing.final
+ class CtwaMessageReceivedAction(_message.Message):
+ DESCRIPTOR: _descriptor.Descriptor
+
+ ISCTWAMESSAGERECEIVED_FIELD_NUMBER: _builtins.int
+ isCtwaMessageReceived: _builtins.bool
+ def __init__(
+ self,
+ *,
+ isCtwaMessageReceived: _builtins.bool | None = ...,
+ ) -> None: ...
+ _HasFieldArgType: _TypeAlias = _typing.Literal["isCtwaMessageReceived", b"isCtwaMessageReceived"] # noqa: Y015
+ def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ...
+ _ClearFieldArgType: _TypeAlias = _typing.Literal["isCtwaMessageReceived", b"isCtwaMessageReceived"] # noqa: Y015
+ def ClearField(self, field_name: _ClearFieldArgType) -> None: ...
+
@_typing.final
class CtwaPerCustomerDataSharingAction(_message.Message):
DESCRIPTOR: _descriptor.Descriptor
@@ -19500,6 +23427,8 @@ class SyncActionValue(_message.Message):
LOCKED: SyncActionValue.LabelEditAction._ListType.ValueType # 13
INVITES: SyncActionValue.LabelEditAction._ListType.ValueType # 14
THIRD_PARTY: SyncActionValue.LabelEditAction._ListType.ValueType # 15
+ LEAD: SyncActionValue.LabelEditAction._ListType.ValueType # 16
+ MENTIONS_AND_REPLIES: SyncActionValue.LabelEditAction._ListType.ValueType # 17
class ListType(_ListType, metaclass=_ListTypeEnumTypeWrapper): ...
NONE: SyncActionValue.LabelEditAction.ListType.ValueType # 0
@@ -19518,6 +23447,8 @@ class SyncActionValue(_message.Message):
LOCKED: SyncActionValue.LabelEditAction.ListType.ValueType # 13
INVITES: SyncActionValue.LabelEditAction.ListType.ValueType # 14
THIRD_PARTY: SyncActionValue.LabelEditAction.ListType.ValueType # 15
+ LEAD: SyncActionValue.LabelEditAction.ListType.ValueType # 16
+ MENTIONS_AND_REPLIES: SyncActionValue.LabelEditAction.ListType.ValueType # 17
NAME_FIELD_NUMBER: _builtins.int
COLOR_FIELD_NUMBER: _builtins.int
@@ -19570,6 +23501,22 @@ class SyncActionValue(_message.Message):
_ClearFieldArgType: _TypeAlias = _typing.Literal["sortedLabelIds", b"sortedLabelIds"] # noqa: Y015
def ClearField(self, field_name: _ClearFieldArgType) -> None: ...
+ @_typing.final
+ class LabelSublistAction(_message.Message):
+ DESCRIPTOR: _descriptor.Descriptor
+
+ SUBLISTID_FIELD_NUMBER: _builtins.int
+ subListId: _builtins.int
+ def __init__(
+ self,
+ *,
+ subListId: _builtins.int | None = ...,
+ ) -> None: ...
+ _HasFieldArgType: _TypeAlias = _typing.Literal["subListId", b"subListId"] # noqa: Y015
+ def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ...
+ _ClearFieldArgType: _TypeAlias = _typing.Literal["subListId", b"subListId"] # noqa: Y015
+ def ClearField(self, field_name: _ClearFieldArgType) -> None: ...
+
@_typing.final
class LidContactAction(_message.Message):
DESCRIPTOR: _descriptor.Descriptor
@@ -20341,6 +24288,7 @@ class SyncActionValue(_message.Message):
SHOULD_PLAY_SOUND_FOR_CALL_NOTIFICATION: SyncActionValue.SettingsSyncAction._SettingKey.ValueType # 31
CHAT_THEME_ID: SyncActionValue.SettingsSyncAction._SettingKey.ValueType # 32
COLOR_SCHEME_ID: SyncActionValue.SettingsSyncAction._SettingKey.ValueType # 33
+ STOCK_WALLPAPER_IMAGE_ID: SyncActionValue.SettingsSyncAction._SettingKey.ValueType # 34
class SettingKey(_SettingKey, metaclass=_SettingKeyEnumTypeWrapper): ...
SETTING_KEY_UNKNOWN: SyncActionValue.SettingsSyncAction.SettingKey.ValueType # 0
@@ -20377,6 +24325,7 @@ class SyncActionValue(_message.Message):
SHOULD_PLAY_SOUND_FOR_CALL_NOTIFICATION: SyncActionValue.SettingsSyncAction.SettingKey.ValueType # 31
CHAT_THEME_ID: SyncActionValue.SettingsSyncAction.SettingKey.ValueType # 32
COLOR_SCHEME_ID: SyncActionValue.SettingsSyncAction.SettingKey.ValueType # 33
+ STOCK_WALLPAPER_IMAGE_ID: SyncActionValue.SettingsSyncAction.SettingKey.ValueType # 34
class _SettingPlatform:
ValueType = _typing.NewType("ValueType", _builtins.int)
@@ -20430,6 +24379,7 @@ class SyncActionValue(_message.Message):
SHOULDPLAYSOUNDFORCALLNOTIFICATION_FIELD_NUMBER: _builtins.int
CHATTHEMEID_FIELD_NUMBER: _builtins.int
COLORSCHEMEID_FIELD_NUMBER: _builtins.int
+ STOCKWALLPAPERIMAGEID_FIELD_NUMBER: _builtins.int
startAtLogin: _builtins.bool
minimizeToTray: _builtins.bool
language: _builtins.str
@@ -20463,6 +24413,7 @@ class SyncActionValue(_message.Message):
shouldPlaySoundForCallNotification: _builtins.bool
chatThemeId: _builtins.str
colorSchemeId: _builtins.str
+ stockWallpaperImageId: _builtins.str
def __init__(
self,
*,
@@ -20499,10 +24450,11 @@ class SyncActionValue(_message.Message):
shouldPlaySoundForCallNotification: _builtins.bool | None = ...,
chatThemeId: _builtins.str | None = ...,
colorSchemeId: _builtins.str | None = ...,
+ stockWallpaperImageId: _builtins.str | None = ...,
) -> None: ...
- _HasFieldArgType: _TypeAlias = _typing.Literal["appTheme", b"appTheme", "bannerNotificationDisplayMode", b"bannerNotificationDisplayMode", "chatThemeId", b"chatThemeId", "colorSchemeId", b"colorSchemeId", "defaultNotificationToneId", b"defaultNotificationToneId", "disableLinkPreviews", b"disableLinkPreviews", "fontSize", b"fontSize", "groupDefaultNotificationToneId", b"groupDefaultNotificationToneId", "isAudiosAutodownloadEnabled", b"isAudiosAutodownloadEnabled", "isCallsNotificationEnabled", b"isCallsNotificationEnabled", "isDocumentsAutodownloadEnabled", b"isDocumentsAutodownloadEnabled", "isDoodleWallpaperEnabled", b"isDoodleWallpaperEnabled", "isEnterToSendEnabled", b"isEnterToSendEnabled", "isGroupMessageNotificationEnabled", b"isGroupMessageNotificationEnabled", "isGroupReactionsNotificationEnabled", b"isGroupReactionsNotificationEnabled", "isMessagesNotificationEnabled", b"isMessagesNotificationEnabled", "isPhotosAutodownloadEnabled", b"isPhotosAutodownloadEnabled", "isReactionsNotificationEnabled", b"isReactionsNotificationEnabled", "isSpellCheckEnabled", b"isSpellCheckEnabled", "isStatusNotificationEnabled", b"isStatusNotificationEnabled", "isStatusReactionsNotificationEnabled", b"isStatusReactionsNotificationEnabled", "isTextPreviewForNotificationEnabled", b"isTextPreviewForNotificationEnabled", "isVideosAutodownloadEnabled", b"isVideosAutodownloadEnabled", "language", b"language", "mediaUploadQuality", b"mediaUploadQuality", "minimizeToTray", b"minimizeToTray", "notificationToneId", b"notificationToneId", "replaceTextWithEmoji", b"replaceTextWithEmoji", "shouldPlaySoundForCallNotification", b"shouldPlaySoundForCallNotification", "startAtLogin", b"startAtLogin", "statusNotificationToneId", b"statusNotificationToneId", "unreadCounterBadgeDisplayMode", b"unreadCounterBadgeDisplayMode", "wallpaperId", b"wallpaperId"] # noqa: Y015
+ _HasFieldArgType: _TypeAlias = _typing.Literal["appTheme", b"appTheme", "bannerNotificationDisplayMode", b"bannerNotificationDisplayMode", "chatThemeId", b"chatThemeId", "colorSchemeId", b"colorSchemeId", "defaultNotificationToneId", b"defaultNotificationToneId", "disableLinkPreviews", b"disableLinkPreviews", "fontSize", b"fontSize", "groupDefaultNotificationToneId", b"groupDefaultNotificationToneId", "isAudiosAutodownloadEnabled", b"isAudiosAutodownloadEnabled", "isCallsNotificationEnabled", b"isCallsNotificationEnabled", "isDocumentsAutodownloadEnabled", b"isDocumentsAutodownloadEnabled", "isDoodleWallpaperEnabled", b"isDoodleWallpaperEnabled", "isEnterToSendEnabled", b"isEnterToSendEnabled", "isGroupMessageNotificationEnabled", b"isGroupMessageNotificationEnabled", "isGroupReactionsNotificationEnabled", b"isGroupReactionsNotificationEnabled", "isMessagesNotificationEnabled", b"isMessagesNotificationEnabled", "isPhotosAutodownloadEnabled", b"isPhotosAutodownloadEnabled", "isReactionsNotificationEnabled", b"isReactionsNotificationEnabled", "isSpellCheckEnabled", b"isSpellCheckEnabled", "isStatusNotificationEnabled", b"isStatusNotificationEnabled", "isStatusReactionsNotificationEnabled", b"isStatusReactionsNotificationEnabled", "isTextPreviewForNotificationEnabled", b"isTextPreviewForNotificationEnabled", "isVideosAutodownloadEnabled", b"isVideosAutodownloadEnabled", "language", b"language", "mediaUploadQuality", b"mediaUploadQuality", "minimizeToTray", b"minimizeToTray", "notificationToneId", b"notificationToneId", "replaceTextWithEmoji", b"replaceTextWithEmoji", "shouldPlaySoundForCallNotification", b"shouldPlaySoundForCallNotification", "startAtLogin", b"startAtLogin", "statusNotificationToneId", b"statusNotificationToneId", "stockWallpaperImageId", b"stockWallpaperImageId", "unreadCounterBadgeDisplayMode", b"unreadCounterBadgeDisplayMode", "wallpaperId", b"wallpaperId"] # noqa: Y015
def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ...
- _ClearFieldArgType: _TypeAlias = _typing.Literal["appTheme", b"appTheme", "bannerNotificationDisplayMode", b"bannerNotificationDisplayMode", "chatThemeId", b"chatThemeId", "colorSchemeId", b"colorSchemeId", "defaultNotificationToneId", b"defaultNotificationToneId", "disableLinkPreviews", b"disableLinkPreviews", "fontSize", b"fontSize", "groupDefaultNotificationToneId", b"groupDefaultNotificationToneId", "isAudiosAutodownloadEnabled", b"isAudiosAutodownloadEnabled", "isCallsNotificationEnabled", b"isCallsNotificationEnabled", "isDocumentsAutodownloadEnabled", b"isDocumentsAutodownloadEnabled", "isDoodleWallpaperEnabled", b"isDoodleWallpaperEnabled", "isEnterToSendEnabled", b"isEnterToSendEnabled", "isGroupMessageNotificationEnabled", b"isGroupMessageNotificationEnabled", "isGroupReactionsNotificationEnabled", b"isGroupReactionsNotificationEnabled", "isMessagesNotificationEnabled", b"isMessagesNotificationEnabled", "isPhotosAutodownloadEnabled", b"isPhotosAutodownloadEnabled", "isReactionsNotificationEnabled", b"isReactionsNotificationEnabled", "isSpellCheckEnabled", b"isSpellCheckEnabled", "isStatusNotificationEnabled", b"isStatusNotificationEnabled", "isStatusReactionsNotificationEnabled", b"isStatusReactionsNotificationEnabled", "isTextPreviewForNotificationEnabled", b"isTextPreviewForNotificationEnabled", "isVideosAutodownloadEnabled", b"isVideosAutodownloadEnabled", "language", b"language", "mediaUploadQuality", b"mediaUploadQuality", "minimizeToTray", b"minimizeToTray", "notificationToneId", b"notificationToneId", "replaceTextWithEmoji", b"replaceTextWithEmoji", "shouldPlaySoundForCallNotification", b"shouldPlaySoundForCallNotification", "startAtLogin", b"startAtLogin", "statusNotificationToneId", b"statusNotificationToneId", "unreadCounterBadgeDisplayMode", b"unreadCounterBadgeDisplayMode", "wallpaperId", b"wallpaperId"] # noqa: Y015
+ _ClearFieldArgType: _TypeAlias = _typing.Literal["appTheme", b"appTheme", "bannerNotificationDisplayMode", b"bannerNotificationDisplayMode", "chatThemeId", b"chatThemeId", "colorSchemeId", b"colorSchemeId", "defaultNotificationToneId", b"defaultNotificationToneId", "disableLinkPreviews", b"disableLinkPreviews", "fontSize", b"fontSize", "groupDefaultNotificationToneId", b"groupDefaultNotificationToneId", "isAudiosAutodownloadEnabled", b"isAudiosAutodownloadEnabled", "isCallsNotificationEnabled", b"isCallsNotificationEnabled", "isDocumentsAutodownloadEnabled", b"isDocumentsAutodownloadEnabled", "isDoodleWallpaperEnabled", b"isDoodleWallpaperEnabled", "isEnterToSendEnabled", b"isEnterToSendEnabled", "isGroupMessageNotificationEnabled", b"isGroupMessageNotificationEnabled", "isGroupReactionsNotificationEnabled", b"isGroupReactionsNotificationEnabled", "isMessagesNotificationEnabled", b"isMessagesNotificationEnabled", "isPhotosAutodownloadEnabled", b"isPhotosAutodownloadEnabled", "isReactionsNotificationEnabled", b"isReactionsNotificationEnabled", "isSpellCheckEnabled", b"isSpellCheckEnabled", "isStatusNotificationEnabled", b"isStatusNotificationEnabled", "isStatusReactionsNotificationEnabled", b"isStatusReactionsNotificationEnabled", "isTextPreviewForNotificationEnabled", b"isTextPreviewForNotificationEnabled", "isVideosAutodownloadEnabled", b"isVideosAutodownloadEnabled", "language", b"language", "mediaUploadQuality", b"mediaUploadQuality", "minimizeToTray", b"minimizeToTray", "notificationToneId", b"notificationToneId", "replaceTextWithEmoji", b"replaceTextWithEmoji", "shouldPlaySoundForCallNotification", b"shouldPlaySoundForCallNotification", "startAtLogin", b"startAtLogin", "statusNotificationToneId", b"statusNotificationToneId", "stockWallpaperImageId", b"stockWallpaperImageId", "unreadCounterBadgeDisplayMode", b"unreadCounterBadgeDisplayMode", "wallpaperId", b"wallpaperId"] # noqa: Y015
def ClearField(self, field_name: _ClearFieldArgType) -> None: ...
@_typing.final
@@ -20596,8 +24548,8 @@ class SyncActionValue(_message.Message):
CUSTOMLISTS_FIELD_NUMBER: _builtins.int
MODES_FIELD_NUMBER: _builtins.int
mode: Global___SyncActionValue.StatusPrivacyAction.StatusDistributionMode.ValueType
- shareToFB: _builtins.bool
- shareToIG: _builtins.bool
+ shareToFb: _builtins.bool
+ shareToIg: _builtins.bool
@_builtins.property
def userJid(self) -> _containers.RepeatedScalarFieldContainer[_builtins.str]: ...
@_builtins.property
@@ -20609,14 +24561,14 @@ class SyncActionValue(_message.Message):
*,
mode: Global___SyncActionValue.StatusPrivacyAction.StatusDistributionMode.ValueType | None = ...,
userJid: _abc.Iterable[_builtins.str] | None = ...,
- shareToFB: _builtins.bool | None = ...,
- shareToIG: _builtins.bool | None = ...,
+ shareToFb: _builtins.bool | None = ...,
+ shareToIg: _builtins.bool | None = ...,
customLists: _abc.Iterable[Global___SyncActionValue.StatusPrivacyAction.CustomList] | None = ...,
modes: _abc.Iterable[Global___SyncActionValue.StatusPrivacyAction.StatusDistributionMode.ValueType] | None = ...,
) -> None: ...
- _HasFieldArgType: _TypeAlias = _typing.Literal["mode", b"mode", "shareToFB", b"shareToFB", "shareToIG", b"shareToIG"] # noqa: Y015
+ _HasFieldArgType: _TypeAlias = _typing.Literal["mode", b"mode", "shareToFb", b"shareToFb", "shareToIg", b"shareToIg"] # noqa: Y015
def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ...
- _ClearFieldArgType: _TypeAlias = _typing.Literal["customLists", b"customLists", "mode", b"mode", "modes", b"modes", "shareToFB", b"shareToFB", "shareToIG", b"shareToIG", "userJid", b"userJid"] # noqa: Y015
+ _ClearFieldArgType: _TypeAlias = _typing.Literal["customLists", b"customLists", "mode", b"mode", "modes", b"modes", "shareToFb", b"shareToFb", "shareToIg", b"shareToIg", "userJid", b"userJid"] # noqa: Y015
def ClearField(self, field_name: _ClearFieldArgType) -> None: ...
@_typing.final
@@ -20926,6 +24878,59 @@ class SyncActionValue(_message.Message):
_ClearFieldArgType: _TypeAlias = _typing.Literal["chatStartMode", b"chatStartMode"] # noqa: Y015
def ClearField(self, field_name: _ClearFieldArgType) -> None: ...
+ @_typing.final
+ class WASARootSecretAction(_message.Message):
+ DESCRIPTOR: _descriptor.Descriptor
+
+ @_typing.final
+ class RootSecretEntry(_message.Message):
+ DESCRIPTOR: _descriptor.Descriptor
+
+ class _Status:
+ ValueType = _typing.NewType("ValueType", _builtins.int)
+ V: _TypeAlias = ValueType # noqa: Y015
+
+ class _StatusEnumTypeWrapper(_enum_type_wrapper._EnumTypeWrapper[SyncActionValue.WASARootSecretAction.RootSecretEntry._Status.ValueType], _builtins.type):
+ DESCRIPTOR: _descriptor.EnumDescriptor
+ INACTIVE: SyncActionValue.WASARootSecretAction.RootSecretEntry._Status.ValueType # 0
+ ACTIVE: SyncActionValue.WASARootSecretAction.RootSecretEntry._Status.ValueType # 1
+
+ class Status(_Status, metaclass=_StatusEnumTypeWrapper): ...
+ INACTIVE: SyncActionValue.WASARootSecretAction.RootSecretEntry.Status.ValueType # 0
+ ACTIVE: SyncActionValue.WASARootSecretAction.RootSecretEntry.Status.ValueType # 1
+
+ ID_FIELD_NUMBER: _builtins.int
+ ROOTSECRET_FIELD_NUMBER: _builtins.int
+ EPOCH_FIELD_NUMBER: _builtins.int
+ STATUS_FIELD_NUMBER: _builtins.int
+ id: _builtins.str
+ rootSecret: _builtins.bytes
+ epoch: _builtins.int
+ status: Global___SyncActionValue.WASARootSecretAction.RootSecretEntry.Status.ValueType
+ def __init__(
+ self,
+ *,
+ id: _builtins.str | None = ...,
+ rootSecret: _builtins.bytes | None = ...,
+ epoch: _builtins.int | None = ...,
+ status: Global___SyncActionValue.WASARootSecretAction.RootSecretEntry.Status.ValueType | None = ...,
+ ) -> None: ...
+ _HasFieldArgType: _TypeAlias = _typing.Literal["epoch", b"epoch", "id", b"id", "rootSecret", b"rootSecret", "status", b"status"] # noqa: Y015
+ def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ...
+ _ClearFieldArgType: _TypeAlias = _typing.Literal["epoch", b"epoch", "id", b"id", "rootSecret", b"rootSecret", "status", b"status"] # noqa: Y015
+ def ClearField(self, field_name: _ClearFieldArgType) -> None: ...
+
+ SECRETS_FIELD_NUMBER: _builtins.int
+ @_builtins.property
+ def secrets(self) -> _containers.RepeatedCompositeFieldContainer[Global___SyncActionValue.WASARootSecretAction.RootSecretEntry]: ...
+ def __init__(
+ self,
+ *,
+ secrets: _abc.Iterable[Global___SyncActionValue.WASARootSecretAction.RootSecretEntry] | None = ...,
+ ) -> None: ...
+ _ClearFieldArgType: _TypeAlias = _typing.Literal["secrets", b"secrets"] # noqa: Y015
+ def ClearField(self, field_name: _ClearFieldArgType) -> None: ...
+
@_typing.final
class WaffleAccountLinkStateAction(_message.Message):
DESCRIPTOR: _descriptor.Descriptor
@@ -21051,6 +25056,12 @@ class SyncActionValue(_message.Message):
THREADPINACTION_FIELD_NUMBER: _builtins.int
AUTOORGANIZEBUSINESSCHATSETTING_FIELD_NUMBER: _builtins.int
BIZAISETTINGSNUDGEACTION_FIELD_NUMBER: _builtins.int
+ COEXV2VERSIONACTION_FIELD_NUMBER: _builtins.int
+ WASAROOTSECRETACTION_FIELD_NUMBER: _builtins.int
+ BUBBLELOCKMESSAGEACTION_FIELD_NUMBER: _builtins.int
+ LABELSUBLISTACTION_FIELD_NUMBER: _builtins.int
+ DEVICECAPABILITIESV2_FIELD_NUMBER: _builtins.int
+ CTWAMESSAGERECEIVEDACTION_FIELD_NUMBER: _builtins.int
timestamp: _builtins.int
@_builtins.property
def starAction(self) -> Global___SyncActionValue.StarAction: ...
@@ -21206,6 +25217,18 @@ class SyncActionValue(_message.Message):
def autoOrganizeBusinessChatSetting(self) -> Global___SyncActionValue.AutoOrganizeBusinessChatSetting: ...
@_builtins.property
def bizAiSettingsNudgeAction(self) -> Global___SyncActionValue.BizAISettingsNudgeAction: ...
+ @_builtins.property
+ def coexV2VersionAction(self) -> Global___SyncActionValue.CoexV2VersionAction: ...
+ @_builtins.property
+ def wasaRootSecretAction(self) -> Global___SyncActionValue.WASARootSecretAction: ...
+ @_builtins.property
+ def bubbleLockMessageAction(self) -> Global___SyncActionValue.BubbleLockMessageAction: ...
+ @_builtins.property
+ def labelSublistAction(self) -> Global___SyncActionValue.LabelSublistAction: ...
+ @_builtins.property
+ def deviceCapabilitiesV2(self) -> Global___DeviceCapabilities: ...
+ @_builtins.property
+ def ctwaMessageReceivedAction(self) -> Global___SyncActionValue.CtwaMessageReceivedAction: ...
def __init__(
self,
*,
@@ -21287,10 +25310,16 @@ class SyncActionValue(_message.Message):
threadPinAction: Global___SyncActionValue.ThreadPinAction | None = ...,
autoOrganizeBusinessChatSetting: Global___SyncActionValue.AutoOrganizeBusinessChatSetting | None = ...,
bizAiSettingsNudgeAction: Global___SyncActionValue.BizAISettingsNudgeAction | None = ...,
+ coexV2VersionAction: Global___SyncActionValue.CoexV2VersionAction | None = ...,
+ wasaRootSecretAction: Global___SyncActionValue.WASARootSecretAction | None = ...,
+ bubbleLockMessageAction: Global___SyncActionValue.BubbleLockMessageAction | None = ...,
+ labelSublistAction: Global___SyncActionValue.LabelSublistAction | None = ...,
+ deviceCapabilitiesV2: Global___DeviceCapabilities | None = ...,
+ ctwaMessageReceivedAction: Global___SyncActionValue.CtwaMessageReceivedAction | None = ...,
) -> None: ...
- _HasFieldArgType: _TypeAlias = _typing.Literal["agentAction", b"agentAction", "aiThreadRenameAction", b"aiThreadRenameAction", "androidUnsupportedActions", b"androidUnsupportedActions", "archiveChatAction", b"archiveChatAction", "autoOrganizeBusinessChatSetting", b"autoOrganizeBusinessChatSetting", "avatarUpdatedAction", b"avatarUpdatedAction", "bizAiSettingsNudgeAction", b"bizAiSettingsNudgeAction", "botWelcomeRequestAction", b"botWelcomeRequestAction", "businessBroadcastCampaignAction", b"businessBroadcastCampaignAction", "businessBroadcastInsightsAction", b"businessBroadcastInsightsAction", "businessBroadcastListAction", b"businessBroadcastListAction", "callLogAction", b"callLogAction", "chatAssignment", b"chatAssignment", "chatAssignmentOpenedStatus", b"chatAssignmentOpenedStatus", "chatLockSettings", b"chatLockSettings", "clearChatAction", b"clearChatAction", "contactAction", b"contactAction", "ctwaPerCustomerDataSharingAction", b"ctwaPerCustomerDataSharingAction", "customPaymentMethodsAction", b"customPaymentMethodsAction", "customerDataAction", b"customerDataAction", "deleteChatAction", b"deleteChatAction", "deleteIndividualCallLog", b"deleteIndividualCallLog", "deleteMessageForMeAction", b"deleteMessageForMeAction", "detectedOutcomesStatusAction", b"detectedOutcomesStatusAction", "deviceCapabilities", b"deviceCapabilities", "externalWebBetaAction", b"externalWebBetaAction", "favoritesAction", b"favoritesAction", "interactiveMessageAction", b"interactiveMessageAction", "keyExpiration", b"keyExpiration", "labelAssociationAction", b"labelAssociationAction", "labelEditAction", b"labelEditAction", "labelReorderingAction", b"labelReorderingAction", "lidContactAction", b"lidContactAction", "localeSetting", b"localeSetting", "lockChatAction", b"lockChatAction", "maibaAiFeaturesControlAction", b"maibaAiFeaturesControlAction", "markChatAsReadAction", b"markChatAsReadAction", "marketingMessageAction", b"marketingMessageAction", "marketingMessageBroadcastAction", b"marketingMessageBroadcastAction", "merchantPaymentPartnerAction", b"merchantPaymentPartnerAction", "musicUserIdAction", b"musicUserIdAction", "muteAction", b"muteAction", "nctSaltSyncAction", b"nctSaltSyncAction", "newsletterSavedInterestsAction", b"newsletterSavedInterestsAction", "noteEditAction", b"noteEditAction", "notificationActivitySettingAction", b"notificationActivitySettingAction", "nuxAction", b"nuxAction", "outContactAction", b"outContactAction", "paymentInfoAction", b"paymentInfoAction", "paymentTosAction", b"paymentTosAction", "pinAction", b"pinAction", "pnForLidChatAction", b"pnForLidChatAction", "primaryFeature", b"primaryFeature", "primaryVersionAction", b"primaryVersionAction", "privacySettingChannelsPersonalisedRecommendationAction", b"privacySettingChannelsPersonalisedRecommendationAction", "privacySettingDisableLinkPreviewsAction", b"privacySettingDisableLinkPreviewsAction", "privacySettingRelayAllCalls", b"privacySettingRelayAllCalls", "privateProcessingSettingAction", b"privateProcessingSettingAction", "pushNameSetting", b"pushNameSetting", "quickReplyAction", b"quickReplyAction", "recentEmojiWeightsAction", b"recentEmojiWeightsAction", "removeRecentStickerAction", b"removeRecentStickerAction", "settingsSyncAction", b"settingsSyncAction", "starAction", b"starAction", "statusPostOptInNotificationPreferencesAction", b"statusPostOptInNotificationPreferencesAction", "statusPrivacy", b"statusPrivacy", "stickerAction", b"stickerAction", "subscriptionAction", b"subscriptionAction", "subscriptionsSyncV2Action", b"subscriptionsSyncV2Action", "threadPinAction", b"threadPinAction", "timeFormatAction", b"timeFormatAction", "timestamp", b"timestamp", "ugcBot", b"ugcBot", "unarchiveChatsSetting", b"unarchiveChatsSetting", "userStatusMuteAction", b"userStatusMuteAction", "usernameChatStartMode", b"usernameChatStartMode", "waffleAccountLinkStateAction", b"waffleAccountLinkStateAction", "wamoUserIdentifierAction", b"wamoUserIdentifierAction"] # noqa: Y015
+ _HasFieldArgType: _TypeAlias = _typing.Literal["agentAction", b"agentAction", "aiThreadRenameAction", b"aiThreadRenameAction", "androidUnsupportedActions", b"androidUnsupportedActions", "archiveChatAction", b"archiveChatAction", "autoOrganizeBusinessChatSetting", b"autoOrganizeBusinessChatSetting", "avatarUpdatedAction", b"avatarUpdatedAction", "bizAiSettingsNudgeAction", b"bizAiSettingsNudgeAction", "botWelcomeRequestAction", b"botWelcomeRequestAction", "bubbleLockMessageAction", b"bubbleLockMessageAction", "businessBroadcastCampaignAction", b"businessBroadcastCampaignAction", "businessBroadcastInsightsAction", b"businessBroadcastInsightsAction", "businessBroadcastListAction", b"businessBroadcastListAction", "callLogAction", b"callLogAction", "chatAssignment", b"chatAssignment", "chatAssignmentOpenedStatus", b"chatAssignmentOpenedStatus", "chatLockSettings", b"chatLockSettings", "clearChatAction", b"clearChatAction", "coexV2VersionAction", b"coexV2VersionAction", "contactAction", b"contactAction", "ctwaMessageReceivedAction", b"ctwaMessageReceivedAction", "ctwaPerCustomerDataSharingAction", b"ctwaPerCustomerDataSharingAction", "customPaymentMethodsAction", b"customPaymentMethodsAction", "customerDataAction", b"customerDataAction", "deleteChatAction", b"deleteChatAction", "deleteIndividualCallLog", b"deleteIndividualCallLog", "deleteMessageForMeAction", b"deleteMessageForMeAction", "detectedOutcomesStatusAction", b"detectedOutcomesStatusAction", "deviceCapabilities", b"deviceCapabilities", "deviceCapabilitiesV2", b"deviceCapabilitiesV2", "externalWebBetaAction", b"externalWebBetaAction", "favoritesAction", b"favoritesAction", "interactiveMessageAction", b"interactiveMessageAction", "keyExpiration", b"keyExpiration", "labelAssociationAction", b"labelAssociationAction", "labelEditAction", b"labelEditAction", "labelReorderingAction", b"labelReorderingAction", "labelSublistAction", b"labelSublistAction", "lidContactAction", b"lidContactAction", "localeSetting", b"localeSetting", "lockChatAction", b"lockChatAction", "maibaAiFeaturesControlAction", b"maibaAiFeaturesControlAction", "markChatAsReadAction", b"markChatAsReadAction", "marketingMessageAction", b"marketingMessageAction", "marketingMessageBroadcastAction", b"marketingMessageBroadcastAction", "merchantPaymentPartnerAction", b"merchantPaymentPartnerAction", "musicUserIdAction", b"musicUserIdAction", "muteAction", b"muteAction", "nctSaltSyncAction", b"nctSaltSyncAction", "newsletterSavedInterestsAction", b"newsletterSavedInterestsAction", "noteEditAction", b"noteEditAction", "notificationActivitySettingAction", b"notificationActivitySettingAction", "nuxAction", b"nuxAction", "outContactAction", b"outContactAction", "paymentInfoAction", b"paymentInfoAction", "paymentTosAction", b"paymentTosAction", "pinAction", b"pinAction", "pnForLidChatAction", b"pnForLidChatAction", "primaryFeature", b"primaryFeature", "primaryVersionAction", b"primaryVersionAction", "privacySettingChannelsPersonalisedRecommendationAction", b"privacySettingChannelsPersonalisedRecommendationAction", "privacySettingDisableLinkPreviewsAction", b"privacySettingDisableLinkPreviewsAction", "privacySettingRelayAllCalls", b"privacySettingRelayAllCalls", "privateProcessingSettingAction", b"privateProcessingSettingAction", "pushNameSetting", b"pushNameSetting", "quickReplyAction", b"quickReplyAction", "recentEmojiWeightsAction", b"recentEmojiWeightsAction", "removeRecentStickerAction", b"removeRecentStickerAction", "settingsSyncAction", b"settingsSyncAction", "starAction", b"starAction", "statusPostOptInNotificationPreferencesAction", b"statusPostOptInNotificationPreferencesAction", "statusPrivacy", b"statusPrivacy", "stickerAction", b"stickerAction", "subscriptionAction", b"subscriptionAction", "subscriptionsSyncV2Action", b"subscriptionsSyncV2Action", "threadPinAction", b"threadPinAction", "timeFormatAction", b"timeFormatAction", "timestamp", b"timestamp", "ugcBot", b"ugcBot", "unarchiveChatsSetting", b"unarchiveChatsSetting", "userStatusMuteAction", b"userStatusMuteAction", "usernameChatStartMode", b"usernameChatStartMode", "waffleAccountLinkStateAction", b"waffleAccountLinkStateAction", "wamoUserIdentifierAction", b"wamoUserIdentifierAction", "wasaRootSecretAction", b"wasaRootSecretAction"] # noqa: Y015
def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ...
- _ClearFieldArgType: _TypeAlias = _typing.Literal["agentAction", b"agentAction", "aiThreadRenameAction", b"aiThreadRenameAction", "androidUnsupportedActions", b"androidUnsupportedActions", "archiveChatAction", b"archiveChatAction", "autoOrganizeBusinessChatSetting", b"autoOrganizeBusinessChatSetting", "avatarUpdatedAction", b"avatarUpdatedAction", "bizAiSettingsNudgeAction", b"bizAiSettingsNudgeAction", "botWelcomeRequestAction", b"botWelcomeRequestAction", "businessBroadcastCampaignAction", b"businessBroadcastCampaignAction", "businessBroadcastInsightsAction", b"businessBroadcastInsightsAction", "businessBroadcastListAction", b"businessBroadcastListAction", "callLogAction", b"callLogAction", "chatAssignment", b"chatAssignment", "chatAssignmentOpenedStatus", b"chatAssignmentOpenedStatus", "chatLockSettings", b"chatLockSettings", "clearChatAction", b"clearChatAction", "contactAction", b"contactAction", "ctwaPerCustomerDataSharingAction", b"ctwaPerCustomerDataSharingAction", "customPaymentMethodsAction", b"customPaymentMethodsAction", "customerDataAction", b"customerDataAction", "deleteChatAction", b"deleteChatAction", "deleteIndividualCallLog", b"deleteIndividualCallLog", "deleteMessageForMeAction", b"deleteMessageForMeAction", "detectedOutcomesStatusAction", b"detectedOutcomesStatusAction", "deviceCapabilities", b"deviceCapabilities", "externalWebBetaAction", b"externalWebBetaAction", "favoritesAction", b"favoritesAction", "interactiveMessageAction", b"interactiveMessageAction", "keyExpiration", b"keyExpiration", "labelAssociationAction", b"labelAssociationAction", "labelEditAction", b"labelEditAction", "labelReorderingAction", b"labelReorderingAction", "lidContactAction", b"lidContactAction", "localeSetting", b"localeSetting", "lockChatAction", b"lockChatAction", "maibaAiFeaturesControlAction", b"maibaAiFeaturesControlAction", "markChatAsReadAction", b"markChatAsReadAction", "marketingMessageAction", b"marketingMessageAction", "marketingMessageBroadcastAction", b"marketingMessageBroadcastAction", "merchantPaymentPartnerAction", b"merchantPaymentPartnerAction", "musicUserIdAction", b"musicUserIdAction", "muteAction", b"muteAction", "nctSaltSyncAction", b"nctSaltSyncAction", "newsletterSavedInterestsAction", b"newsletterSavedInterestsAction", "noteEditAction", b"noteEditAction", "notificationActivitySettingAction", b"notificationActivitySettingAction", "nuxAction", b"nuxAction", "outContactAction", b"outContactAction", "paymentInfoAction", b"paymentInfoAction", "paymentTosAction", b"paymentTosAction", "pinAction", b"pinAction", "pnForLidChatAction", b"pnForLidChatAction", "primaryFeature", b"primaryFeature", "primaryVersionAction", b"primaryVersionAction", "privacySettingChannelsPersonalisedRecommendationAction", b"privacySettingChannelsPersonalisedRecommendationAction", "privacySettingDisableLinkPreviewsAction", b"privacySettingDisableLinkPreviewsAction", "privacySettingRelayAllCalls", b"privacySettingRelayAllCalls", "privateProcessingSettingAction", b"privateProcessingSettingAction", "pushNameSetting", b"pushNameSetting", "quickReplyAction", b"quickReplyAction", "recentEmojiWeightsAction", b"recentEmojiWeightsAction", "removeRecentStickerAction", b"removeRecentStickerAction", "settingsSyncAction", b"settingsSyncAction", "starAction", b"starAction", "statusPostOptInNotificationPreferencesAction", b"statusPostOptInNotificationPreferencesAction", "statusPrivacy", b"statusPrivacy", "stickerAction", b"stickerAction", "subscriptionAction", b"subscriptionAction", "subscriptionsSyncV2Action", b"subscriptionsSyncV2Action", "threadPinAction", b"threadPinAction", "timeFormatAction", b"timeFormatAction", "timestamp", b"timestamp", "ugcBot", b"ugcBot", "unarchiveChatsSetting", b"unarchiveChatsSetting", "userStatusMuteAction", b"userStatusMuteAction", "usernameChatStartMode", b"usernameChatStartMode", "waffleAccountLinkStateAction", b"waffleAccountLinkStateAction", "wamoUserIdentifierAction", b"wamoUserIdentifierAction"] # noqa: Y015
+ _ClearFieldArgType: _TypeAlias = _typing.Literal["agentAction", b"agentAction", "aiThreadRenameAction", b"aiThreadRenameAction", "androidUnsupportedActions", b"androidUnsupportedActions", "archiveChatAction", b"archiveChatAction", "autoOrganizeBusinessChatSetting", b"autoOrganizeBusinessChatSetting", "avatarUpdatedAction", b"avatarUpdatedAction", "bizAiSettingsNudgeAction", b"bizAiSettingsNudgeAction", "botWelcomeRequestAction", b"botWelcomeRequestAction", "bubbleLockMessageAction", b"bubbleLockMessageAction", "businessBroadcastCampaignAction", b"businessBroadcastCampaignAction", "businessBroadcastInsightsAction", b"businessBroadcastInsightsAction", "businessBroadcastListAction", b"businessBroadcastListAction", "callLogAction", b"callLogAction", "chatAssignment", b"chatAssignment", "chatAssignmentOpenedStatus", b"chatAssignmentOpenedStatus", "chatLockSettings", b"chatLockSettings", "clearChatAction", b"clearChatAction", "coexV2VersionAction", b"coexV2VersionAction", "contactAction", b"contactAction", "ctwaMessageReceivedAction", b"ctwaMessageReceivedAction", "ctwaPerCustomerDataSharingAction", b"ctwaPerCustomerDataSharingAction", "customPaymentMethodsAction", b"customPaymentMethodsAction", "customerDataAction", b"customerDataAction", "deleteChatAction", b"deleteChatAction", "deleteIndividualCallLog", b"deleteIndividualCallLog", "deleteMessageForMeAction", b"deleteMessageForMeAction", "detectedOutcomesStatusAction", b"detectedOutcomesStatusAction", "deviceCapabilities", b"deviceCapabilities", "deviceCapabilitiesV2", b"deviceCapabilitiesV2", "externalWebBetaAction", b"externalWebBetaAction", "favoritesAction", b"favoritesAction", "interactiveMessageAction", b"interactiveMessageAction", "keyExpiration", b"keyExpiration", "labelAssociationAction", b"labelAssociationAction", "labelEditAction", b"labelEditAction", "labelReorderingAction", b"labelReorderingAction", "labelSublistAction", b"labelSublistAction", "lidContactAction", b"lidContactAction", "localeSetting", b"localeSetting", "lockChatAction", b"lockChatAction", "maibaAiFeaturesControlAction", b"maibaAiFeaturesControlAction", "markChatAsReadAction", b"markChatAsReadAction", "marketingMessageAction", b"marketingMessageAction", "marketingMessageBroadcastAction", b"marketingMessageBroadcastAction", "merchantPaymentPartnerAction", b"merchantPaymentPartnerAction", "musicUserIdAction", b"musicUserIdAction", "muteAction", b"muteAction", "nctSaltSyncAction", b"nctSaltSyncAction", "newsletterSavedInterestsAction", b"newsletterSavedInterestsAction", "noteEditAction", b"noteEditAction", "notificationActivitySettingAction", b"notificationActivitySettingAction", "nuxAction", b"nuxAction", "outContactAction", b"outContactAction", "paymentInfoAction", b"paymentInfoAction", "paymentTosAction", b"paymentTosAction", "pinAction", b"pinAction", "pnForLidChatAction", b"pnForLidChatAction", "primaryFeature", b"primaryFeature", "primaryVersionAction", b"primaryVersionAction", "privacySettingChannelsPersonalisedRecommendationAction", b"privacySettingChannelsPersonalisedRecommendationAction", "privacySettingDisableLinkPreviewsAction", b"privacySettingDisableLinkPreviewsAction", "privacySettingRelayAllCalls", b"privacySettingRelayAllCalls", "privateProcessingSettingAction", b"privateProcessingSettingAction", "pushNameSetting", b"pushNameSetting", "quickReplyAction", b"quickReplyAction", "recentEmojiWeightsAction", b"recentEmojiWeightsAction", "removeRecentStickerAction", b"removeRecentStickerAction", "settingsSyncAction", b"settingsSyncAction", "starAction", b"starAction", "statusPostOptInNotificationPreferencesAction", b"statusPostOptInNotificationPreferencesAction", "statusPrivacy", b"statusPrivacy", "stickerAction", b"stickerAction", "subscriptionAction", b"subscriptionAction", "subscriptionsSyncV2Action", b"subscriptionsSyncV2Action", "threadPinAction", b"threadPinAction", "timeFormatAction", b"timeFormatAction", "timestamp", b"timestamp", "ugcBot", b"ugcBot", "unarchiveChatsSetting", b"unarchiveChatsSetting", "userStatusMuteAction", b"userStatusMuteAction", "usernameChatStartMode", b"usernameChatStartMode", "waffleAccountLinkStateAction", b"waffleAccountLinkStateAction", "wamoUserIdentifierAction", b"wamoUserIdentifierAction", "wasaRootSecretAction", b"wasaRootSecretAction"] # noqa: Y015
def ClearField(self, field_name: _ClearFieldArgType) -> None: ...
Global___SyncActionValue: _TypeAlias = SyncActionValue # noqa: Y015
@@ -21989,6 +26018,43 @@ class VerifiedNameCertificate(_message.Message):
Global___VerifiedNameCertificate: _TypeAlias = VerifiedNameCertificate # noqa: Y015
+@_typing.final
+class VirtualDeviceOutput(_message.Message):
+ DESCRIPTOR: _descriptor.Descriptor
+
+ VDID_FIELD_NUMBER: _builtins.int
+ VDPUBLICKEY_FIELD_NUMBER: _builtins.int
+ VDEPOCHSTORAGEPUBLICKEY_FIELD_NUMBER: _builtins.int
+ VDEPOCHSTORAGEPUBLICKEYSIG_FIELD_NUMBER: _builtins.int
+ OCMFROTATIONTOKEN_FIELD_NUMBER: _builtins.int
+ DEVICEEPOCHHMAC_FIELD_NUMBER: _builtins.int
+ ENCRYPTEDSECRETVALUES_FIELD_NUMBER: _builtins.int
+ vdId: _builtins.bytes
+ vdPublicKey: _builtins.bytes
+ vdEpochStoragePublicKey: _builtins.bytes
+ vdEpochStoragePublicKeySig: _builtins.bytes
+ ocmfRotationToken: _builtins.bytes
+ deviceEpochHmac: _builtins.bytes
+ @_builtins.property
+ def encryptedSecretValues(self) -> Global___EncryptedSecretValuesOutput: ...
+ def __init__(
+ self,
+ *,
+ vdId: _builtins.bytes | None = ...,
+ vdPublicKey: _builtins.bytes | None = ...,
+ vdEpochStoragePublicKey: _builtins.bytes | None = ...,
+ vdEpochStoragePublicKeySig: _builtins.bytes | None = ...,
+ ocmfRotationToken: _builtins.bytes | None = ...,
+ deviceEpochHmac: _builtins.bytes | None = ...,
+ encryptedSecretValues: Global___EncryptedSecretValuesOutput | None = ...,
+ ) -> None: ...
+ _HasFieldArgType: _TypeAlias = _typing.Literal["deviceEpochHmac", b"deviceEpochHmac", "encryptedSecretValues", b"encryptedSecretValues", "ocmfRotationToken", b"ocmfRotationToken", "vdEpochStoragePublicKey", b"vdEpochStoragePublicKey", "vdEpochStoragePublicKeySig", b"vdEpochStoragePublicKeySig", "vdId", b"vdId", "vdPublicKey", b"vdPublicKey"] # noqa: Y015
+ def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ...
+ _ClearFieldArgType: _TypeAlias = _typing.Literal["deviceEpochHmac", b"deviceEpochHmac", "encryptedSecretValues", b"encryptedSecretValues", "ocmfRotationToken", b"ocmfRotationToken", "vdEpochStoragePublicKey", b"vdEpochStoragePublicKey", "vdEpochStoragePublicKeySig", b"vdEpochStoragePublicKeySig", "vdId", b"vdId", "vdPublicKey", b"vdPublicKey"] # noqa: Y015
+ def ClearField(self, field_name: _ClearFieldArgType) -> None: ...
+
+Global___VirtualDeviceOutput: _TypeAlias = VirtualDeviceOutput # noqa: Y015
+
@_typing.final
class WallpaperSettings(_message.Message):
DESCRIPTOR: _descriptor.Descriptor
@@ -22454,6 +26520,10 @@ class WebMessageInfo(_message.Message):
GROUP_TEE_BOT_ADDED: WebMessageInfo._StubType.ValueType # 223
CONTACT_INFO: WebMessageInfo._StubType.ValueType # 224
SCHEDULED_MESSAGE_CREATED: WebMessageInfo._StubType.ValueType # 225
+ IDENTITY_TRUST_MARKED: WebMessageInfo._StubType.ValueType # 226
+ IDENTITY_TRUST_UNMARKED: WebMessageInfo._StubType.ValueType # 227
+ IDENTITY_TRUST_REVOKED: WebMessageInfo._StubType.ValueType # 228
+ CTWA_CONSUMER_DISCLOSURE: WebMessageInfo._StubType.ValueType # 230
class StubType(_StubType, metaclass=_StubTypeEnumTypeWrapper): ...
UNKNOWN: WebMessageInfo.StubType.ValueType # 0
@@ -22682,6 +26752,10 @@ class WebMessageInfo(_message.Message):
GROUP_TEE_BOT_ADDED: WebMessageInfo.StubType.ValueType # 223
CONTACT_INFO: WebMessageInfo.StubType.ValueType # 224
SCHEDULED_MESSAGE_CREATED: WebMessageInfo.StubType.ValueType # 225
+ IDENTITY_TRUST_MARKED: WebMessageInfo.StubType.ValueType # 226
+ IDENTITY_TRUST_UNMARKED: WebMessageInfo.StubType.ValueType # 227
+ IDENTITY_TRUST_REVOKED: WebMessageInfo.StubType.ValueType # 228
+ CTWA_CONSUMER_DISCLOSURE: WebMessageInfo.StubType.ValueType # 230
KEY_FIELD_NUMBER: _builtins.int
MESSAGE_FIELD_NUMBER: _builtins.int
@@ -22993,3 +27067,75 @@ class WebNotificationsInfo(_message.Message):
def ClearField(self, field_name: _ClearFieldArgType) -> None: ...
Global___WebNotificationsInfo: _TypeAlias = WebNotificationsInfo # noqa: Y015
+
+@_typing.final
+class WrapTransportSigningPublicKeyInput(_message.Message):
+ DESCRIPTOR: _descriptor.Descriptor
+
+ KEYBYTES_FIELD_NUMBER: _builtins.int
+ keyBytes: _builtins.bytes
+ def __init__(
+ self,
+ *,
+ keyBytes: _builtins.bytes | None = ...,
+ ) -> None: ...
+ _HasFieldArgType: _TypeAlias = _typing.Literal["keyBytes", b"keyBytes"] # noqa: Y015
+ def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ...
+ _ClearFieldArgType: _TypeAlias = _typing.Literal["keyBytes", b"keyBytes"] # noqa: Y015
+ def ClearField(self, field_name: _ClearFieldArgType) -> None: ...
+
+Global___WrapTransportSigningPublicKeyInput: _TypeAlias = WrapTransportSigningPublicKeyInput # noqa: Y015
+
+@_typing.final
+class WrapTransportSigningPublicKeyResult(_message.Message):
+ DESCRIPTOR: _descriptor.Descriptor
+
+ PREFIXEDKEY_FIELD_NUMBER: _builtins.int
+ prefixedKey: _builtins.bytes
+ def __init__(
+ self,
+ *,
+ prefixedKey: _builtins.bytes | None = ...,
+ ) -> None: ...
+ _HasFieldArgType: _TypeAlias = _typing.Literal["prefixedKey", b"prefixedKey"] # noqa: Y015
+ def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ...
+ _ClearFieldArgType: _TypeAlias = _typing.Literal["prefixedKey", b"prefixedKey"] # noqa: Y015
+ def ClearField(self, field_name: _ClearFieldArgType) -> None: ...
+
+Global___WrapTransportSigningPublicKeyResult: _TypeAlias = WrapTransportSigningPublicKeyResult # noqa: Y015
+
+@_typing.final
+class WrapTransportSigningSecretKeyInput(_message.Message):
+ DESCRIPTOR: _descriptor.Descriptor
+
+ KEYBYTES_FIELD_NUMBER: _builtins.int
+ keyBytes: _builtins.bytes
+ def __init__(
+ self,
+ *,
+ keyBytes: _builtins.bytes | None = ...,
+ ) -> None: ...
+ _HasFieldArgType: _TypeAlias = _typing.Literal["keyBytes", b"keyBytes"] # noqa: Y015
+ def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ...
+ _ClearFieldArgType: _TypeAlias = _typing.Literal["keyBytes", b"keyBytes"] # noqa: Y015
+ def ClearField(self, field_name: _ClearFieldArgType) -> None: ...
+
+Global___WrapTransportSigningSecretKeyInput: _TypeAlias = WrapTransportSigningSecretKeyInput # noqa: Y015
+
+@_typing.final
+class WrapTransportSigningSecretKeyResult(_message.Message):
+ DESCRIPTOR: _descriptor.Descriptor
+
+ PREFIXEDKEY_FIELD_NUMBER: _builtins.int
+ prefixedKey: _builtins.bytes
+ def __init__(
+ self,
+ *,
+ prefixedKey: _builtins.bytes | None = ...,
+ ) -> None: ...
+ _HasFieldArgType: _TypeAlias = _typing.Literal["prefixedKey", b"prefixedKey"] # noqa: Y015
+ def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ...
+ _ClearFieldArgType: _TypeAlias = _typing.Literal["prefixedKey", b"prefixedKey"] # noqa: Y015
+ def ClearField(self, field_name: _ClearFieldArgType) -> None: ...
+
+Global___WrapTransportSigningSecretKeyResult: _TypeAlias = WrapTransportSigningSecretKeyResult # noqa: Y015
diff --git a/src/clients/tryx.rs b/src/clients/tryx.rs
index 6a63d77..49eb52b 100644
--- a/src/clients/tryx.rs
+++ b/src/clients/tryx.rs
@@ -111,7 +111,7 @@ impl Tryx {
})
} else if let (Ok(lib_path), Ok(config_json)) = (
backend.getattr(py, "lib_path").and_then(|v| v.extract::(py)),
- backend.getattr(py, "connect_string").and_then(|v| v.extract::(py)),
+ backend.getattr(py, "config_json").and_then(|v| v.extract::(py)),
) {
debug!("detected FFI backend from Python via duck-typing");
@@ -582,7 +582,7 @@ impl Tryx {
Py::new(py, EvContactUpdate::new(contact_update)).map(|event| event.into_any())
}).await;
}
- Event::PushNameUpdate(pushname) => {
+ Event::RetiredPushNameUpdate(pushname) => {
let pushname = pushname.clone();
Self::emit_built_event(&tryx_client, &callbacks.push_name_update, locals.clone(), "RetiredPushNameUpdate", |py| {
Py::new(py, EvPushNameUpdate::from(pushname)).map(|event| event.into_any())
diff --git a/src/events/dispatcher.rs b/src/events/dispatcher.rs
index 744be4c..657a031 100644
--- a/src/events/dispatcher.rs
+++ b/src/events/dispatcher.rs
@@ -189,7 +189,7 @@ define_dispatcher! {
joined_group, JoinedGroup, "joined_group", EvJoinedGroup, "joined group", joined_group_handlers;
group_info_update, GroupInfoUpdate, "group_info_update", EvGroupInfoUpdate, "group info update", group_info_update_handlers;
contact_update, ContactUpdate, "contact_update", EvContactUpdate, "contact update", contact_update_handlers;
- push_name_update, PushNameUpdate, "push_name_update", EvPushNameUpdate, "push name update", push_name_update_handlers;
+ push_name_update, RetiredPushNameUpdate, "push_name_update", EvPushNameUpdate, "push name update", push_name_update_handlers;
self_push_name_update, SelfPushNameUpdated, "self_push_name_updated", EvSelfPushNameUpdated, "self push name updated", self_push_name_updated_handlers;
pin_update, PinUpdate, "pin_update", EvPinUpdate, "pin update", pin_update_handlers;
mute_update, MuteUpdate, "mute_update", EvMuteUpdate, "mute update", mute_update_handlers;
diff --git a/src/events/types/profile_sync.rs b/src/events/types/profile_sync.rs
index a06509d..5183874 100644
--- a/src/events/types/profile_sync.rs
+++ b/src/events/types/profile_sync.rs
@@ -12,12 +12,12 @@ pub struct EvPushNameUpdateData {
#[pyclass]
pub struct EvPushNameUpdate {
- inner: Box,
+ inner: Box,
data_cache: OnceLock>,
}
impl EvPushNameUpdate {
- pub fn new(inner: wacore::types::events::PushNameUpdate) -> Self {
+ pub fn new(inner: wacore::types::events::RetiredPushNameUpdate) -> Self {
Self {
inner: Box::new(inner),
data_cache: OnceLock::new(),
@@ -25,8 +25,8 @@ impl EvPushNameUpdate {
}
}
-impl From for EvPushNameUpdate {
- fn from(event: wacore::types::events::PushNameUpdate) -> Self {
+impl From for EvPushNameUpdate {
+ fn from(event: wacore::types::events::RetiredPushNameUpdate) -> Self {
EvPushNameUpdate::new(event)
}
}
@@ -68,7 +68,7 @@ impl From for EvSelfPushNameUpdated
}
#[pyclass]
-pub struct PinUpdatedata {
+pub struct PinUpdateData {
#[pyo3(get)]
jid: Py,
#[pyo3(get)]
@@ -78,7 +78,7 @@ pub struct PinUpdatedata {
#[pyo3(get)]
from_full_sync: bool,
}
-impl PinUpdatedata {
+impl PinUpdateData {
pub fn new(jid: Jid, timestamp: DateTime, action: waproto::whatsapp::sync_action_value::PinAction, from_full_sync: bool) -> Self {
Python::attach(|py| {
Self {
@@ -94,7 +94,7 @@ impl PinUpdatedata {
#[pyclass]
pub struct EvPinUpdate {
inner: Box,
- data_cached: OnceLock>,
+ data_cached: OnceLock>,
}
impl EvPinUpdate {
pub fn new(inner: wacore::types::events::PinUpdate) -> Self {
@@ -109,11 +109,11 @@ impl From for EvPinUpdate {
#[pymethods]
impl EvPinUpdate {
#[getter]
- fn data(&mut self, py: Python<'_>) -> PyResult> {
+ fn data(&mut self, py: Python<'_>) -> PyResult> {
if let Some(ref data) = self.data_cached.get() {
Ok(data.clone_ref(py))
} else {
- let new_data = PinUpdatedata::new(self.inner.jid.clone(), self.inner.timestamp, (*self.inner.action).clone(), self.inner.from_full_sync);
+ let new_data = PinUpdateData::new(self.inner.jid.clone(), self.inner.timestamp, (*self.inner.action).clone(), self.inner.from_full_sync);
let py_data = Py::new(py, new_data).unwrap();
self.data_cached.set(py_data.clone_ref(py)).ok();
Ok(py_data)
@@ -392,7 +392,7 @@ pub enum DeviceListUpdateType {
Updated
}
#[pyclass]
-pub struct DeviceNottificationInfo {
+pub struct DeviceNotificationInfo {
#[pyo3(get)]
device_id: u32,
#[pyo3(get)]
@@ -407,7 +407,7 @@ pub struct DeviceListUpdateData {
#[pyo3(get)]
update_type: Py,
#[pyo3(get)]
- devices: Vec>,
+ devices: Vec>,
#[pyo3(get)]
key_index: Option>,
#[pyo3(get)]
@@ -442,7 +442,7 @@ impl EvDeviceListUpdate {
wacore::types::events::DeviceListUpdateType::Update => DeviceListUpdateType::Updated,
};
let devices = self.inner.devices.iter().map(|d| {
- Py::new(py, DeviceNottificationInfo { device_id: d.device_id, key_index: d.key_index }).unwrap()
+ Py::new(py, DeviceNotificationInfo { device_id: d.device_id, key_index: d.key_index }).unwrap()
}).collect();
let key_index = self.inner.key_index.clone().map(|k| Py::new(py, KeyIndexInfo::new(k.timestamp, k.signed_bytes)).unwrap());
let new_data = DeviceListUpdateData {
diff --git a/src/lib.rs b/src/lib.rs
index 3109441..a0efae9 100644
--- a/src/lib.rs
+++ b/src/lib.rs
@@ -40,7 +40,7 @@ use self::events::types::{
DeleteChatUpdateData,
DeleteMessageForMeUpdateData,
DeviceListUpdateType,
- DeviceNottificationInfo,
+ DeviceNotificationInfo,
EvArchiveUpdateData,
EvArchiveUpdate,
EvBusinessStatusUpdate,
@@ -106,7 +106,7 @@ use self::events::types::{
OfflineSyncData,
PairSuccessData,
PictureUpdateData,
- PinUpdatedata,
+ PinUpdateData,
ReceiptType,
TempBanReason,
UnavailableType,
@@ -282,7 +282,7 @@ fn _tryx(_py: &Bound) -> PyResult<()> {
events_module.add_class::()?;
events_module.add_class::()?;
events_module.add_class::()?;
- events_module.add_class::()?;
+ events_module.add_class::()?;
events_module.add_class::()?;
events_module.add_class::()?;
events_module.add_class::()?;
@@ -295,7 +295,7 @@ fn _tryx(_py: &Bound) -> PyResult<()> {
events_module.add_class::()?;
events_module.add_class::()?;
events_module.add_class::()?;
- events_module.add_class::()?;
+ events_module.add_class::()?;
events_module.add_class::()?;
events_module.add_class::()?;
events_module.add_class::()?;
diff --git a/src/types.rs b/src/types.rs
index e3162b6..a1df1af 100644
--- a/src/types.rs
+++ b/src/types.rs
@@ -195,7 +195,7 @@ impl From for MessageInfo {
MessageInfo {
inner: Arc::new(info.clone()),
id: info.id.clone(),
- r#type: info.r#type.clone(),
+ r#type: info.r#type.map(|t| t.to_string()).unwrap_or_default(),
push_name: info.push_name.clone(),
}
}
@@ -235,7 +235,7 @@ impl MessageInfo {
}
#[getter]
fn media_type(&self) -> Option {
- Some(self.inner.media_type.clone())
+ self.inner.media_type.as_ref().map(|m| m.to_string())
}
#[getter]
fn edit(&self) -> &str {
@@ -265,10 +265,7 @@ impl MessageInfo {
#[getter]
fn meta_info(&self, py: Python<'_>) -> MsgMetaInfo{
MsgMetaInfo {
- target_id: match self.inner.meta_info.target_id {
- Some(ref s) => Some(s.clone()),
- None => None,
- },
+ target_id: self.inner.meta_info.target_id.as_deref().map(String::from),
target_sender: match self.inner.meta_info.target_sender {
Some(ref jid) => Some(pyo3::Py::new(py, JID::from(jid.clone())).unwrap()),
None => None,
@@ -277,18 +274,15 @@ impl MessageInfo {
Some(ref jid) => Some(pyo3::Py::new(py, JID::from(jid.clone())).unwrap()),
None => None,
},
- thread_message_id: match self.inner.meta_info.thread_message_id {
- Some(ref s) => Some(s.clone()),
- None => None,
- },
+ thread_message_id: self.inner.meta_info.thread_message_id.as_deref().map(String::from),
thread_message_sender_jid: match self.inner.meta_info.thread_message_sender_jid {
Some(ref jid) => Some(pyo3::Py::new(py, JID::from(jid.clone())).unwrap()),
None => None,
},
- content_type: self.inner.meta_info.content_type.clone(),
- appdata: self.inner.meta_info.appdata.clone(),
- reporting_tag: self.inner.meta_info.reporting_tag.clone(),
- reporting_token: self.inner.meta_info.reporting_token.clone(),
+ content_type: self.inner.meta_info.content_type.as_deref().map(String::from),
+ appdata: self.inner.meta_info.appdata.as_deref().map(String::from),
+ reporting_tag: self.inner.meta_info.reporting_tag.as_deref().map(|b| b.to_vec()),
+ reporting_token: self.inner.meta_info.reporting_token.as_deref().map(|b| b.to_vec()),
reporting_token_version: self.inner.meta_info.reporting_token_version,
}
}
diff --git a/uv.lock b/uv.lock
index b18e51b..cde34e7 100644
--- a/uv.lock
+++ b/uv.lock
@@ -2,7 +2,8 @@ version = 1
revision = 3
requires-python = ">=3.8"
resolution-markers = [
- "python_full_version >= '3.10'",
+ "python_full_version >= '3.15'",
+ "python_full_version >= '3.10' and python_full_version < '3.15'",
"python_full_version == '3.9.*'",
"python_full_version < '3.9'",
]
@@ -11,8 +12,12 @@ resolution-markers = [
name = "annotated-types"
version = "0.7.0"
source = { registry = "https://pypi.org/simple" }
+resolution-markers = [
+ "python_full_version == '3.9.*'",
+ "python_full_version < '3.9'",
+]
dependencies = [
- { name = "typing-extensions", version = "4.13.2", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.9'" },
+ { name = "typing-extensions", version = "4.13.2", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version != '3.9.*'" },
]
sdist = { url = "https://files.pythonhosted.org/packages/ee/67/531ea369ba64dcff5ec9c3402f9f51bf748cec26dde048a2f973a4eea7f5/annotated_types-0.7.0.tar.gz", hash = "sha256:aff07c09a53a08bc8cfccb9c85b05f1aa9a2a6f23728d790723543408344ce89", size = 16081, upload-time = "2024-05-20T21:33:25.928Z" }
wheels = [
@@ -20,58 +25,111 @@ wheels = [
]
[[package]]
-name = "babel"
-version = "2.18.0"
+name = "annotated-types"
+version = "0.8.0"
source = { registry = "https://pypi.org/simple" }
-dependencies = [
- { name = "pytz", marker = "python_full_version < '3.9'" },
+resolution-markers = [
+ "python_full_version >= '3.15'",
+ "python_full_version >= '3.10' and python_full_version < '3.15'",
]
-sdist = { url = "https://files.pythonhosted.org/packages/7d/b2/51899539b6ceeeb420d40ed3cd4b7a40519404f9baf3d4ac99dc413a834b/babel-2.18.0.tar.gz", hash = "sha256:b80b99a14bd085fcacfa15c9165f651fbb3406e66cc603abf11c5750937c992d", size = 9959554, upload-time = "2026-02-01T12:30:56.078Z" }
+sdist = { url = "https://files.pythonhosted.org/packages/5f/56/a8120250d128bed162cd73c76d45f6ef9991f3e068f62a8ee060afa3104a/annotated_types-0.8.0.tar.gz", hash = "sha256:13b2beaad985e05e2d6407ee4c4f35590b11f8d693a258a561055cac8f64cab7", size = 15893, upload-time = "2026-07-23T20:16:13.995Z" }
wheels = [
- { url = "https://files.pythonhosted.org/packages/77/f5/21d2de20e8b8b0408f0681956ca2c69f1320a3848ac50e6e7f39c6159675/babel-2.18.0-py3-none-any.whl", hash = "sha256:e2b422b277c2b9a9630c1d7903c2a00d0830c409c59ac8cae9081c92f1aeba35", size = 10196845, upload-time = "2026-02-01T12:30:53.445Z" },
+ { url = "https://files.pythonhosted.org/packages/99/91/8acff4f5e50511b911bbccb72b8628a49c68ce14148cd9f6431094859a90/annotated_types-0.8.0-py3-none-any.whl", hash = "sha256:f072f4d804ea359e4eaf198b1af7a8b0943881a87f31bb764f8bf219bb9419e0", size = 13427, upload-time = "2026-07-23T20:16:12.938Z" },
]
[[package]]
-name = "backrefs"
-version = "5.7.post1"
+name = "ast-serialize"
+version = "0.8.0"
source = { registry = "https://pypi.org/simple" }
-resolution-markers = [
- "python_full_version < '3.9'",
+sdist = { url = "https://files.pythonhosted.org/packages/e1/a9/11851c3e02a3fea2ddc9932d1fdc7d2edaeecc0d2e11bc5f2a7fde2b0934/ast_serialize-0.8.0.tar.gz", hash = "sha256:6c37c43e4004dfb42d321ddedc569dc17ff4259296f3af577c9ea46a809bc010", size = 845638, upload-time = "2026-08-07T11:29:02.152Z" }
+wheels = [
+ { url = "https://files.pythonhosted.org/packages/34/16/6e520b57cd8c75914b38c670ad4593d13c22911e4306cc7165dab8b0789b/ast_serialize-0.8.0-cp314-cp314-pyemscripten_2026_0_wasm32.whl", hash = "sha256:3d822605fa7bb326ef868d25fafced7fc660fa46d9b90c02ea86d5e2f5d325f7", size = 863924, upload-time = "2026-08-07T11:27:34.579Z" },
+ { url = "https://files.pythonhosted.org/packages/03/e1/48802de9b22a2bcad42ec80601a17e3f69172fe4f590e6311bcc2b323aeb/ast_serialize-0.8.0-cp314-cp314t-macosx_10_12_x86_64.whl", hash = "sha256:2efa40b068197d5efb62655b43baadb842ed71c4958cccd3e8b86a35726f0119", size = 1177662, upload-time = "2026-08-07T11:27:36.196Z" },
+ { url = "https://files.pythonhosted.org/packages/38/d4/323438db76bded3a1f3523a3167b8325916b2ddceb2107a330c6ec9fcf4d/ast_serialize-0.8.0-cp314-cp314t-macosx_11_0_arm64.whl", hash = "sha256:db1b957291bca08c7e72f43a12357b2948e20775d970e3fc3dac0aa3160ab725", size = 1167072, upload-time = "2026-08-07T11:27:37.646Z" },
+ { url = "https://files.pythonhosted.org/packages/77/82/53c5400b54144b56de8ed7f957fd1ccd97e42482009292ab46121d15f8dd/ast_serialize-0.8.0-cp314-cp314t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:fdc0d5b18ff8fb364e87923e47c0a91d0d69dbcaeaa274591f7fd26892cc3a3a", size = 1225497, upload-time = "2026-08-07T11:27:39.225Z" },
+ { url = "https://files.pythonhosted.org/packages/44/5f/36c07327a8b91303fbf1382c7c3e8a2902072dbe1b9546138a5288e75ff0/ast_serialize-0.8.0-cp314-cp314t-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:9da7330f3e235bf7da89b8d39205c6350fc0c08a85379743f2df9fff87d6d980", size = 1227101, upload-time = "2026-08-07T11:27:40.799Z" },
+ { url = "https://files.pythonhosted.org/packages/9d/48/5adf5c67addc7ddb328122208c6d375a84cf154984f412b4087330a157bd/ast_serialize-0.8.0-cp314-cp314t-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:f3186969ee66a9863b00acc6523ace44c56974eecb348a7ea4b228d9f0b80e19", size = 1424001, upload-time = "2026-08-07T11:27:42.708Z" },
+ { url = "https://files.pythonhosted.org/packages/38/a1/70074dd3869d2b0e934f91891d8d6b734361cd3b80f85ca7ece2e668ecdd/ast_serialize-0.8.0-cp314-cp314t-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:40a57b73731be45da4fa41430c4d5dc94a24b3a4faba7b9e069978c0402064ea", size = 1245545, upload-time = "2026-08-07T11:27:44.4Z" },
+ { url = "https://files.pythonhosted.org/packages/e3/be/53b9c0a8a6399950c2e3546bdfab96d2b299d5b114b47eb94fd3c49c4054/ast_serialize-0.8.0-cp314-cp314t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:5075b9da3ef807eda752502446dfecea3b381c4900b7e27a5d5f4f899eb39951", size = 1248961, upload-time = "2026-08-07T11:27:45.781Z" },
+ { url = "https://files.pythonhosted.org/packages/eb/13/3651d3812548a2bda15e26e5dd51aadb48cf682d0865370255fcf0e367dd/ast_serialize-0.8.0-cp314-cp314t-manylinux_2_31_riscv64.whl", hash = "sha256:293cc1c5bfa741f8e3fbe8175b9c07beee487c9a6fdbb25a5acad9f1df2d30a9", size = 1243877, upload-time = "2026-08-07T11:27:47.325Z" },
+ { url = "https://files.pythonhosted.org/packages/21/a0/521f0bf000f675e9312a4aae2c8ba7a992405d072a85c485e08fd59433b9/ast_serialize-0.8.0-cp314-cp314t-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:e0910c3442a75216dde0f102d854ba2aaa71d2482e0ee213630b9bf29584fba3", size = 1293903, upload-time = "2026-08-07T11:27:49.264Z" },
+ { url = "https://files.pythonhosted.org/packages/b1/7e/402fc902568aa2ee65865a3e151f000db0153da8ce6b1be4c9c349025f8d/ast_serialize-0.8.0-cp314-cp314t-musllinux_1_2_aarch64.whl", hash = "sha256:43dd6d596879bb1cb8a12cc9dae7bb10090a39a35883026c24f82488a195619a", size = 1401070, upload-time = "2026-08-07T11:27:50.947Z" },
+ { url = "https://files.pythonhosted.org/packages/ff/7c/97d4b66c057f1706fc8be6dd532cc77c988794357c8f4ffdb6adabb39562/ast_serialize-0.8.0-cp314-cp314t-musllinux_1_2_armv7l.whl", hash = "sha256:8c9d537f59e936392cfd3597789d1390304dd659efc3c486ce7f40fb6b8a9f53", size = 1502602, upload-time = "2026-08-07T11:27:52.364Z" },
+ { url = "https://files.pythonhosted.org/packages/89/6f/72cc3b71562001bba46e898ccfbf1844f7939b3e28912736206102f2e5a8/ast_serialize-0.8.0-cp314-cp314t-musllinux_1_2_i686.whl", hash = "sha256:f0190a33d7f97c65e9069f7a7f40499eea6b5cbe260c558378109caf20ce934b", size = 1495848, upload-time = "2026-08-07T11:27:53.803Z" },
+ { url = "https://files.pythonhosted.org/packages/a0/53/d6f629d1e49308b2f363dae028baa213ec222c9106fa1f7f0d1f7b41499a/ast_serialize-0.8.0-cp314-cp314t-musllinux_1_2_ppc64le.whl", hash = "sha256:77308ae6c5cf5264cc0f01a7c556ec77a9e68eb1f61b093534d698139fdc3b14", size = 1556556, upload-time = "2026-08-07T11:27:55.342Z" },
+ { url = "https://files.pythonhosted.org/packages/ee/22/340f35dd8dfc6d412d53dc20699ca014b8d228db923e8ed4759c512b162c/ast_serialize-0.8.0-cp314-cp314t-musllinux_1_2_riscv64.whl", hash = "sha256:8d53a23f27e1ed3a36b2d26fd2a1a6228c8e85a1ed62ff7cdb44bd610769f20a", size = 1417822, upload-time = "2026-08-07T11:27:56.712Z" },
+ { url = "https://files.pythonhosted.org/packages/11/29/6dde5c13fbebc051d3a6df4ec0a6fd1d5359333cc1193f7f609f3410b4d8/ast_serialize-0.8.0-cp314-cp314t-musllinux_1_2_x86_64.whl", hash = "sha256:ffa5e7cb08f96fed9121f77b224151e41caf88feab9d652bb46c78202b6fbeda", size = 1445153, upload-time = "2026-08-07T11:27:58.275Z" },
+ { url = "https://files.pythonhosted.org/packages/62/c5/f473a8ed030f7a0ca24b9849cca184677a50c053867a7b808c2e1289bbd3/ast_serialize-0.8.0-cp314-cp314t-win32.whl", hash = "sha256:fa70ed4dea0bb18b30a1789c77baa701d0ef30c474f2ccabdea61e25623a8827", size = 1063711, upload-time = "2026-08-07T11:27:59.793Z" },
+ { url = "https://files.pythonhosted.org/packages/23/63/39e171fcd38ca057c2e1979d5ee81ac7a3502784abe3d83df7454f7a0978/ast_serialize-0.8.0-cp314-cp314t-win_amd64.whl", hash = "sha256:d8b3c8eee4c1baef9d4e84d2a59a805501617127be42615cb48970b15b0892b6", size = 1103740, upload-time = "2026-08-07T11:28:01.405Z" },
+ { url = "https://files.pythonhosted.org/packages/21/1c/d00762b399e7726d68d0a088cc946e3a4c60f1c6176f557608f672f627f3/ast_serialize-0.8.0-cp314-cp314t-win_arm64.whl", hash = "sha256:ac4f0a83c55a9b782f79ad55a5247b7db123c1db405959791c2ef886e9710c9f", size = 1076021, upload-time = "2026-08-07T11:28:02.947Z" },
+ { url = "https://files.pythonhosted.org/packages/4c/11/911210c3c78923273a9211a2b6cfc4c8aa723b30dab3e1c8d19afb983b40/ast_serialize-0.8.0-cp315-abi3.abi3t-macosx_10_12_x86_64.whl", hash = "sha256:86b8a1e6d90467345356098b040150e82fbc26d24a7a202224b13dc1f6264ca0", size = 1177715, upload-time = "2026-08-07T11:28:04.654Z" },
+ { url = "https://files.pythonhosted.org/packages/77/89/6282881c8587606638db153cbe21e1e0c4d1f3970dee1aa0610a1c62a026/ast_serialize-0.8.0-cp315-abi3.abi3t-macosx_11_0_arm64.whl", hash = "sha256:39e92ff8e8cb45947fe9007174b2950e1fb098e6abd00266a13cd3bcf6675068", size = 1169347, upload-time = "2026-08-07T11:28:06.1Z" },
+ { url = "https://files.pythonhosted.org/packages/97/78/a9f846a03a340ff3728c915f23338ca742742f3292700559cdb3ad999b1e/ast_serialize-0.8.0-cp315-abi3.abi3t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:c85d8d18db5b2dfcb3b7e38a4d600ca35504c0ed8a6f75cd1c811e4ffe248a15", size = 1225916, upload-time = "2026-08-07T11:28:07.654Z" },
+ { url = "https://files.pythonhosted.org/packages/c0/15/aba6ef8a988a6eceb6f0359589aac509e29ae2dba67fd9bfd5af0c3f13e7/ast_serialize-0.8.0-cp315-abi3.abi3t-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:9830ff7e764f74d9eefb01170c61a9f0fd2c027dac5fcb72e064decd57d56371", size = 1227135, upload-time = "2026-08-07T11:28:09.504Z" },
+ { url = "https://files.pythonhosted.org/packages/94/29/3f63d696ea7c5b8abadcecc3505be51bd900daaccc522ed8322fa5b05a93/ast_serialize-0.8.0-cp315-abi3.abi3t-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:6479d9722a4cd21b578f5478074c41e6169f04811996ec881655560f703a5bba", size = 1425040, upload-time = "2026-08-07T11:28:11.044Z" },
+ { url = "https://files.pythonhosted.org/packages/e2/5d/0aac338604ff59df5774d4304307898982252f325ff7cafe31d52fedcb65/ast_serialize-0.8.0-cp315-abi3.abi3t-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:a63bed264e818cd83eec11feed0f50aa162542b91132ef58afebc857182763a5", size = 1246278, upload-time = "2026-08-07T11:28:12.519Z" },
+ { url = "https://files.pythonhosted.org/packages/23/ca/9f1ef795bb724719532bd86dbec11e5b66857d3fbe9b6772baec0191a6ed/ast_serialize-0.8.0-cp315-abi3.abi3t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:9d187197d234aa45d6cfa2b096be5f666e8cc2e7eb3722d0ab8926293cf5720c", size = 1250029, upload-time = "2026-08-07T11:28:13.896Z" },
+ { url = "https://files.pythonhosted.org/packages/dc/25/5e061372d2ed953b9ba3b9c4f73de3b8e9234cda3f6c088db4686801d0e1/ast_serialize-0.8.0-cp315-abi3.abi3t-manylinux_2_31_riscv64.whl", hash = "sha256:2d39a56282cfcc0d8eeea37267c754be59c98d48505c23b1dae5c6011f3813dd", size = 1243575, upload-time = "2026-08-07T11:28:15.37Z" },
+ { url = "https://files.pythonhosted.org/packages/a8/c1/ae7da218053120635a4ca802366c69f707203641af95372eeb83f70dfd52/ast_serialize-0.8.0-cp315-abi3.abi3t-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:f7cc5f10386994c0f4844f1e6d6a97127e9b478660eb6dec2b257644f0acab64", size = 1294396, upload-time = "2026-08-07T11:28:16.813Z" },
+ { url = "https://files.pythonhosted.org/packages/2e/89/271d1f49c5269fcddcc789ea3f25be401f6723fc1138aeda539f4d05516d/ast_serialize-0.8.0-cp315-abi3.abi3t-musllinux_1_2_aarch64.whl", hash = "sha256:6102f2f985c2e542be85cd857678ec9356fefa792b93cadfadd31139f5696f27", size = 1401987, upload-time = "2026-08-07T11:28:18.333Z" },
+ { url = "https://files.pythonhosted.org/packages/55/be/4e7d77fcf571ac7cb5cf7115a20c36642bd7d29473b45dfaaefeb9618f90/ast_serialize-0.8.0-cp315-abi3.abi3t-musllinux_1_2_armv7l.whl", hash = "sha256:3a8660fe66667b76a6e9dccd1d33e66b229fde3b308db991c041609226c005b6", size = 1502904, upload-time = "2026-08-07T11:28:20.039Z" },
+ { url = "https://files.pythonhosted.org/packages/8b/ae/ed1de2db7e019d4236fbc164ffa5ef9a6022a300a342bbf142d21b7c141e/ast_serialize-0.8.0-cp315-abi3.abi3t-musllinux_1_2_i686.whl", hash = "sha256:e7266307e5fba39836edb79def8608887af48820508bff3c5f2941e1e04d1534", size = 1496967, upload-time = "2026-08-07T11:28:21.734Z" },
+ { url = "https://files.pythonhosted.org/packages/92/89/5fea507fae5c5f18b7dc7f95e5c00956574b8c717b8fd2049c504fab0b18/ast_serialize-0.8.0-cp315-abi3.abi3t-musllinux_1_2_ppc64le.whl", hash = "sha256:4ca7e6fd1ad845d1cc649dc2ecd499db2f8f46af5bf8da7b70dd858774cc038b", size = 1559041, upload-time = "2026-08-07T11:28:23.194Z" },
+ { url = "https://files.pythonhosted.org/packages/42/71/478d69df21b64e064554a68134c94be304270316ca676a94e63c389a636a/ast_serialize-0.8.0-cp315-abi3.abi3t-musllinux_1_2_riscv64.whl", hash = "sha256:2880350b13d3eae69a0d70bc1fb6c9bfaca4dbd0e20ba8cd1aa483080b56ff06", size = 1417367, upload-time = "2026-08-07T11:28:24.601Z" },
+ { url = "https://files.pythonhosted.org/packages/5e/2d/8962dc8d5b3a9dc27b36f9db199afa25264c741505469d9ec10ffbfd2ba7/ast_serialize-0.8.0-cp315-abi3.abi3t-musllinux_1_2_x86_64.whl", hash = "sha256:ab0f9a59f7d63d0d441b56b9a818b273705264352d5115cfee12e940e816d958", size = 1446178, upload-time = "2026-08-07T11:28:26.152Z" },
+ { url = "https://files.pythonhosted.org/packages/4f/22/14d2ad4fd1d1bcd0dc687ca268e0630069f45162496260c0efb70ee0ea72/ast_serialize-0.8.0-cp315-abi3.abi3t-win32.whl", hash = "sha256:0485a25ef519c62e749ee3c1ad8070e591b380d67226349eb5a70b228dc1ac4a", size = 1063811, upload-time = "2026-08-07T11:28:27.864Z" },
+ { url = "https://files.pythonhosted.org/packages/18/1d/84a327c0202a41aa5fdba3ade33904d6d8f3b9e6806fa83568d835395850/ast_serialize-0.8.0-cp315-abi3.abi3t-win_amd64.whl", hash = "sha256:bd84d60bca7079e741be4ac5dbe237751a59d7f6f9f0126b11880d63822cbe16", size = 1105518, upload-time = "2026-08-07T11:28:29.691Z" },
+ { url = "https://files.pythonhosted.org/packages/8c/92/74556dec52fde85a2ad84ed159991b916241043788609c15d8b77e14570b/ast_serialize-0.8.0-cp315-abi3.abi3t-win_arm64.whl", hash = "sha256:057769b5921336eb2d9124f2a731b42ed05ffdac559b840dbdf6f3937cf153dc", size = 1076319, upload-time = "2026-08-07T11:28:31.282Z" },
+ { url = "https://files.pythonhosted.org/packages/d1/5d/c650b1f2cc1e75193358da95a080261422e8cd10b66d7370b1688c9915c5/ast_serialize-0.8.0-cp315-cp315-pyemscripten_2026_5_wasm32.whl", hash = "sha256:a02cbed7d8bfdcdee88edaac12bd50d53d9953aaa2e1852ef078625be5f1c0b5", size = 852914, upload-time = "2026-08-07T11:28:32.929Z" },
+ { url = "https://files.pythonhosted.org/packages/d9/e3/6142e920fec6ef7bccabd8c24ed8ed99f8bdc6cb8b065e1df7c6a3b2d667/ast_serialize-0.8.0-cp39-abi3-macosx_10_12_x86_64.whl", hash = "sha256:e1bd223df0f6c96b396975fa604cb33bce53d9b4a0185490be4c4a289f7c9c87", size = 1184007, upload-time = "2026-08-07T11:28:34.654Z" },
+ { url = "https://files.pythonhosted.org/packages/a6/e9/6e8be8df02b35d85e2b8809f7f1cfa290bdf5882b55127a539d049482db0/ast_serialize-0.8.0-cp39-abi3-macosx_11_0_arm64.whl", hash = "sha256:ddd3b61f45c132da66c5476b281891e08c1fd87fbdabe8a6973e1622efc85f06", size = 1177588, upload-time = "2026-08-07T11:28:36.318Z" },
+ { url = "https://files.pythonhosted.org/packages/8c/80/7e0fd2e2e2aba257820db4a8657c4c356844d36b914b20a4af294bcfb902/ast_serialize-0.8.0-cp39-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:1f9caa63fad8241257ae401b5ff0a64026c6adb36b8e86cbe8782d9ea505daf6", size = 1234575, upload-time = "2026-08-07T11:28:37.772Z" },
+ { url = "https://files.pythonhosted.org/packages/b0/6a/3bae0af06f9b1bae3001c44d64215f5b567877e7aae9ffd45db11c3a7647/ast_serialize-0.8.0-cp39-abi3-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:3926fa117b5e65019853a2969966d11c7175af377a3425991f3fe73784412405", size = 1236015, upload-time = "2026-08-07T11:28:39.14Z" },
+ { url = "https://files.pythonhosted.org/packages/6f/c4/ce2d41a1bc22508e82618901f7e10f2a5e2f9556553fea90624daf9875e2/ast_serialize-0.8.0-cp39-abi3-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:485f1113af805e9e170b95ef993ca3fbd4f89c04bab25c58b4fc632d854801ab", size = 1432808, upload-time = "2026-08-07T11:28:40.664Z" },
+ { url = "https://files.pythonhosted.org/packages/1a/90/f5058f209756dd70e958b7538aaa82d25d24944baf9ec8ae6f27b06fcacc/ast_serialize-0.8.0-cp39-abi3-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:3ccebbed24f1281062d5852353c72c47502955926cfcb8345ffb3a44d87ff3d3", size = 1256251, upload-time = "2026-08-07T11:28:42.223Z" },
+ { url = "https://files.pythonhosted.org/packages/bf/32/7f77ea87fa0836daab706ed5cb7f903bb25fa26a77439011aee626af11d8/ast_serialize-0.8.0-cp39-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:252f883290d1cdb728eb7fe1d9a7221b88af5a329aae0bc91ddee4dafb820331", size = 1258574, upload-time = "2026-08-07T11:28:43.751Z" },
+ { url = "https://files.pythonhosted.org/packages/eb/5a/75b82ad2725b5e8e8c742732f9e76c6738a292d0709e1f60d10a973730b4/ast_serialize-0.8.0-cp39-abi3-manylinux_2_31_riscv64.whl", hash = "sha256:96abc072ad29db8d02194afd47d68987322622787daceae82398d7b69f3ba2e6", size = 1254075, upload-time = "2026-08-07T11:28:45.28Z" },
+ { url = "https://files.pythonhosted.org/packages/4e/54/8c20ed4eea805516a3fd23dd4a721ce28c64f50f0e4b359969f60a8c97a6/ast_serialize-0.8.0-cp39-abi3-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:9118ad3e369727060b2696fc4078f250ecffca4248ba87f537f55cea9f9dce06", size = 1301018, upload-time = "2026-08-07T11:28:46.851Z" },
+ { url = "https://files.pythonhosted.org/packages/cb/5b/9f14430f12fe830b656fb38f8e2e05ee13b02a88967660bef46af0ab22a8/ast_serialize-0.8.0-cp39-abi3-musllinux_1_2_aarch64.whl", hash = "sha256:f359df4bd921918af8bebd142a376c77511d7151cc8ba852760b587b5a4a54f3", size = 1409951, upload-time = "2026-08-07T11:28:48.312Z" },
+ { url = "https://files.pythonhosted.org/packages/2d/3d/084882eca93c842bd4262591a071ec7f825340644035e51501208cc5a8d4/ast_serialize-0.8.0-cp39-abi3-musllinux_1_2_armv7l.whl", hash = "sha256:e94f9121d13fa36cbf21314783c77d05ae3a0868decd18cf5233fdcc6de49ac8", size = 1509544, upload-time = "2026-08-07T11:28:49.847Z" },
+ { url = "https://files.pythonhosted.org/packages/ce/73/ea84852096c2036c61cc0b2f97b90242207419f534dc671060ee1c8e05cb/ast_serialize-0.8.0-cp39-abi3-musllinux_1_2_i686.whl", hash = "sha256:54f95b486018d262bcb387a9afd96f0da74508b442762b80c769454a6fbb3ee3", size = 1505671, upload-time = "2026-08-07T11:28:51.239Z" },
+ { url = "https://files.pythonhosted.org/packages/cb/88/287b9a5300c1f2f651d259f670931b63110adc265b7613c885b44c5bc53d/ast_serialize-0.8.0-cp39-abi3-musllinux_1_2_ppc64le.whl", hash = "sha256:4c38b915511e32bc718c49dbce98ff9af36bac0ad6a604f58000cd5e3aecdba7", size = 1563685, upload-time = "2026-08-07T11:28:53.112Z" },
+ { url = "https://files.pythonhosted.org/packages/ee/f3/1bc3a79afcf0c2a8d2c37182d0d659d1545a9d7f7f6dc9cf3e63d6c17135/ast_serialize-0.8.0-cp39-abi3-musllinux_1_2_riscv64.whl", hash = "sha256:9a2ef9cf12f2de4f1028c42c1dd7d775255e0fb3e5bb48896c97e35ef52366fe", size = 1427977, upload-time = "2026-08-07T11:28:54.418Z" },
+ { url = "https://files.pythonhosted.org/packages/5c/cd/440c798957e14e31776bfeb024d8fafe0bb1d5b89c51c2f067e69938f7b0/ast_serialize-0.8.0-cp39-abi3-musllinux_1_2_x86_64.whl", hash = "sha256:6f18048fe9f6dd266bd577cdec48bdcecb74faaa01fe941324435483b013ed2a", size = 1454335, upload-time = "2026-08-07T11:28:55.968Z" },
+ { url = "https://files.pythonhosted.org/packages/4f/4a/587eb36dcc240a54c8660f599464516b469ecad96f0dbdb6bccbedb50745/ast_serialize-0.8.0-cp39-abi3-win32.whl", hash = "sha256:31883542dd6c94d178f5db3d32fbd69c5eb88b3a7c018e7ac8cc0c45195ddbed", size = 1068858, upload-time = "2026-08-07T11:28:57.541Z" },
+ { url = "https://files.pythonhosted.org/packages/5f/a4/3e887bbd92164e183cb6e412c6a3e9198ddd446d7fe405958293ef5ef49c/ast_serialize-0.8.0-cp39-abi3-win_amd64.whl", hash = "sha256:861794565b06337005c1447ef23103a3d5a627d08bdc827870d00d0b28ef5f51", size = 1111839, upload-time = "2026-08-07T11:28:59Z" },
+ { url = "https://files.pythonhosted.org/packages/25/6c/b400476d3ceba681ab929787edc9554f6d88fcc69435eb681b00fc0457a5/ast_serialize-0.8.0-cp39-abi3-win_arm64.whl", hash = "sha256:b2a5978662fd4db463dfb4b974d2b10ac6430b98f5333aabc7051909df3561d0", size = 1083655, upload-time = "2026-08-07T11:29:00.349Z" },
]
-sdist = { url = "https://files.pythonhosted.org/packages/df/30/903f35159c87ff1d92aa3fcf8cb52de97632a21e0ae43ed940f5d033e01a/backrefs-5.7.post1.tar.gz", hash = "sha256:8b0f83b770332ee2f1c8244f4e03c77d127a0fa529328e6a0e77fa25bee99678", size = 6582270, upload-time = "2024-06-16T18:38:20.166Z" }
+
+[[package]]
+name = "babel"
+version = "2.18.0"
+source = { registry = "https://pypi.org/simple" }
+sdist = { url = "https://files.pythonhosted.org/packages/7d/b2/51899539b6ceeeb420d40ed3cd4b7a40519404f9baf3d4ac99dc413a834b/babel-2.18.0.tar.gz", hash = "sha256:b80b99a14bd085fcacfa15c9165f651fbb3406e66cc603abf11c5750937c992d", size = 9959554, upload-time = "2026-02-01T12:30:56.078Z" }
wheels = [
- { url = "https://files.pythonhosted.org/packages/24/bb/47fc255d1060dcfd55b460236380edd8ebfc5b2a42a0799ca90c9fc983e3/backrefs-5.7.post1-py310-none-any.whl", hash = "sha256:c5e3fd8fd185607a7cb1fefe878cfb09c34c0be3c18328f12c574245f1c0287e", size = 380429, upload-time = "2024-06-16T18:38:10.131Z" },
- { url = "https://files.pythonhosted.org/packages/89/72/39ef491caef3abae945f5a5fd72830d3b596bfac0630508629283585e213/backrefs-5.7.post1-py311-none-any.whl", hash = "sha256:712ea7e494c5bf3291156e28954dd96d04dc44681d0e5c030adf2623d5606d51", size = 392234, upload-time = "2024-06-16T18:38:12.283Z" },
- { url = "https://files.pythonhosted.org/packages/6a/00/33403f581b732ca70fdebab558e8bbb426a29c34e0c3ed674a479b74beea/backrefs-5.7.post1-py312-none-any.whl", hash = "sha256:a6142201c8293e75bce7577ac29e1a9438c12e730d73a59efdd1b75528d1a6c5", size = 398110, upload-time = "2024-06-16T18:38:14.257Z" },
- { url = "https://files.pythonhosted.org/packages/5d/ea/df0ac74a26838f6588aa012d5d801831448b87d0a7d0aefbbfabbe894870/backrefs-5.7.post1-py38-none-any.whl", hash = "sha256:ec61b1ee0a4bfa24267f6b67d0f8c5ffdc8e0d7dc2f18a2685fd1d8d9187054a", size = 369477, upload-time = "2024-06-16T18:38:16.196Z" },
- { url = "https://files.pythonhosted.org/packages/6f/e8/e43f535c0a17a695e5768670fc855a0e5d52dc0d4135b3915bfa355f65ac/backrefs-5.7.post1-py39-none-any.whl", hash = "sha256:05c04af2bf752bb9a6c9dcebb2aff2fab372d3d9d311f2a138540e307756bd3a", size = 380429, upload-time = "2024-06-16T18:38:18.079Z" },
+ { url = "https://files.pythonhosted.org/packages/77/f5/21d2de20e8b8b0408f0681956ca2c69f1320a3848ac50e6e7f39c6159675/babel-2.18.0-py3-none-any.whl", hash = "sha256:e2b422b277c2b9a9630c1d7903c2a00d0830c409c59ac8cae9081c92f1aeba35", size = 10196845, upload-time = "2026-02-01T12:30:53.445Z" },
]
[[package]]
name = "backrefs"
-version = "6.2"
+version = "8.0"
source = { registry = "https://pypi.org/simple" }
-resolution-markers = [
- "python_full_version >= '3.10'",
- "python_full_version == '3.9.*'",
-]
-sdist = { url = "https://files.pythonhosted.org/packages/4e/a6/e325ec73b638d3ede4421b5445d4a0b8b219481826cc079d510100af356c/backrefs-6.2.tar.gz", hash = "sha256:f44ff4d48808b243b6c0cdc6231e22195c32f77046018141556c66f8bab72a49", size = 7012303, upload-time = "2026-02-16T19:10:15.828Z" }
+sdist = { url = "https://files.pythonhosted.org/packages/ec/56/4744bcd0c82184e80c52b0ac4076c261a8ffa1f1b343ff2f6e89ce0e1cef/backrefs-8.0.tar.gz", hash = "sha256:b556cd7d36c3a3a2f256b89590b176b8eddfb73bcfaee3a3ddd84ea66d21ce50", size = 7013081, upload-time = "2026-07-26T19:54:24.638Z" }
wheels = [
- { url = "https://files.pythonhosted.org/packages/1b/39/3765df263e08a4df37f4f43cb5aa3c6c17a4bdd42ecfe841e04c26037171/backrefs-6.2-py310-none-any.whl", hash = "sha256:0fdc7b012420b6b144410342caeb8adc54c6866cf12064abc9bb211302e496f8", size = 381075, upload-time = "2026-02-16T19:10:04.322Z" },
- { url = "https://files.pythonhosted.org/packages/0f/f0/35240571e1b67ffb19dafb29ab34150b6f59f93f717b041082cdb1bfceb1/backrefs-6.2-py311-none-any.whl", hash = "sha256:08aa7fae530c6b2361d7bdcbda1a7c454e330cc9dbcd03f5c23205e430e5c3be", size = 392874, upload-time = "2026-02-16T19:10:06.314Z" },
- { url = "https://files.pythonhosted.org/packages/e3/63/77e8c9745b4d227cce9f5e0a6f68041278c5f9b18588b35905f5f19c1beb/backrefs-6.2-py312-none-any.whl", hash = "sha256:c3f4b9cb2af8cda0d87ab4f57800b57b95428488477be164dd2b47be54db0c90", size = 398787, upload-time = "2026-02-16T19:10:08.274Z" },
- { url = "https://files.pythonhosted.org/packages/c5/71/c754b1737ad99102e03fa3235acb6cb6d3ac9d6f596cbc3e5f236705abd8/backrefs-6.2-py313-none-any.whl", hash = "sha256:12df81596ab511f783b7d87c043ce26bc5b0288cf3bb03610fe76b8189282b2b", size = 400747, upload-time = "2026-02-16T19:10:09.791Z" },
- { url = "https://files.pythonhosted.org/packages/af/75/be12ba31a6eb20dccef2320cd8ccb3f7d9013b68ba4c70156259fee9e409/backrefs-6.2-py314-none-any.whl", hash = "sha256:e5f805ae09819caa1aa0623b4a83790e7028604aa2b8c73ba602c4454e665de7", size = 412602, upload-time = "2026-02-16T19:10:12.317Z" },
- { url = "https://files.pythonhosted.org/packages/21/f8/d02f650c47d05034dcd6f9c8cf94f39598b7a89c00ecda0ecb2911bc27e9/backrefs-6.2-py39-none-any.whl", hash = "sha256:664e33cd88c6840b7625b826ecf2555f32d491800900f5a541f772c485f7cda7", size = 381077, upload-time = "2026-02-16T19:10:13.74Z" },
+ { url = "https://files.pythonhosted.org/packages/e3/fd/9bf53b6a6f6f519ffaac765df2f2a25e5c2fc6d32cfd2b2747099e72c911/backrefs-8.0-py310-none-any.whl", hash = "sha256:4a627b817fd2dce43b79ab48da63613340509381cd8ce0897078a0bce79a2ab8", size = 380377, upload-time = "2026-07-26T19:54:17.457Z" },
+ { url = "https://files.pythonhosted.org/packages/e1/29/4bd7ae72a2634da00379c2b3bcc5439e7c94620235c6afea8af15229a973/backrefs-8.0-py311-none-any.whl", hash = "sha256:f0c35cf0102ba6b6070c12a492be3c1c1d3f5839529784b9a9565d6d04569a01", size = 392169, upload-time = "2026-07-26T19:54:18.782Z" },
+ { url = "https://files.pythonhosted.org/packages/29/13/232505664e8e2a0c7a2eb0c505cfade9d715538f89a5d62bc4c272968f62/backrefs-8.0-py312-none-any.whl", hash = "sha256:87f0fae8c5f207fe9f4b2887efc71d42f4900ac78faa1af08d675ef303692dc5", size = 398084, upload-time = "2026-07-26T19:54:19.954Z" },
+ { url = "https://files.pythonhosted.org/packages/8a/69/47a3dc20abc4fa5486655fde681bd55e63211b46c886d8c02223d6468431/backrefs-8.0-py313-none-any.whl", hash = "sha256:601ce68ca12385dbda06ce264406b4c4210cf5b79fd0fd627592365c92f29a88", size = 400040, upload-time = "2026-07-26T19:54:21.194Z" },
+ { url = "https://files.pythonhosted.org/packages/1c/cf/e5f9b68a5b0e939a2fb933a66c20180d0c9241bf8927f7a47fa48c1675e9/backrefs-8.0-py314-none-any.whl", hash = "sha256:9ec96efa080938be92323e8e730e57718c9c88eb15ad70bbef4e1766df591408", size = 411903, upload-time = "2026-07-26T19:54:23.221Z" },
]
[[package]]
name = "certifi"
-version = "2026.2.25"
+version = "2026.7.22"
source = { registry = "https://pypi.org/simple" }
-sdist = { url = "https://files.pythonhosted.org/packages/af/2d/7bf41579a8986e348fa033a31cdd0e4121114f6bce2457e8876010b092dd/certifi-2026.2.25.tar.gz", hash = "sha256:e887ab5cee78ea814d3472169153c2d12cd43b14bd03329a39a9c6e2e80bfba7", size = 155029, upload-time = "2026-02-25T02:54:17.342Z" }
+sdist = { url = "https://files.pythonhosted.org/packages/a3/c2/24167ea9858356b47a87a50d39908bfdb72ceeefe0041586e704e5376b3a/certifi-2026.7.22.tar.gz", hash = "sha256:741e2c3b351ddf169a738da9f2c048608ff7f2c5cc02f1ebc6b118bb090d5d55", size = 138112, upload-time = "2026-07-22T03:35:12.644Z" }
wheels = [
- { url = "https://files.pythonhosted.org/packages/9a/3c/c17fb3ca2d9c3acff52e30b309f538586f9f5b9c9cf454f3845fc9af4881/certifi-2026.2.25-py3-none-any.whl", hash = "sha256:027692e4402ad994f1c42e52a4997a9763c646b73e4096e4d5d6db8af1d6f0fa", size = 153684, upload-time = "2026-02-25T02:54:15.766Z" },
+ { url = "https://files.pythonhosted.org/packages/0b/a7/71ac2cff56fec219ed242bb11b8efb69fcc4bec75db06fb7bfe35de520e6/certifi-2026.7.22-py3-none-any.whl", hash = "sha256:62f22742b58a1a33014a2b6b706588a8d7e2a88ae7bd1a6ebe8c992928483775", size = 136983, upload-time = "2026-07-22T03:35:11.276Z" },
]
[[package]]
@@ -91,7 +149,8 @@ name = "cfgv"
version = "3.5.0"
source = { registry = "https://pypi.org/simple" }
resolution-markers = [
- "python_full_version >= '3.10'",
+ "python_full_version >= '3.15'",
+ "python_full_version >= '3.10' and python_full_version < '3.15'",
]
sdist = { url = "https://files.pythonhosted.org/packages/4e/b5/721b8799b04bf9afe054a3899c6cf4e880fcf8563cc71c15610242490a0c/cfgv-3.5.0.tar.gz", hash = "sha256:d5b1034354820651caa73ede66a6294d6e95c1b00acc5e9b098e917404669132", size = 7334, upload-time = "2025-11-19T20:55:51.612Z" }
wheels = [
@@ -100,144 +159,191 @@ wheels = [
[[package]]
name = "charset-normalizer"
-version = "3.4.6"
-source = { registry = "https://pypi.org/simple" }
-sdist = { url = "https://files.pythonhosted.org/packages/7b/60/e3bec1881450851b087e301bedc3daa9377a4d45f1c26aa90b0b235e38aa/charset_normalizer-3.4.6.tar.gz", hash = "sha256:1ae6b62897110aa7c79ea2f5dd38d1abca6db663687c0b1ad9aed6f6bae3d9d6", size = 143363, upload-time = "2026-03-15T18:53:25.478Z" }
-wheels = [
- { url = "https://files.pythonhosted.org/packages/e6/8c/2c56124c6dc53a774d435f985b5973bc592f42d437be58c0c92d65ae7296/charset_normalizer-3.4.6-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:2e1d8ca8611099001949d1cdfaefc510cf0f212484fe7c565f735b68c78c3c95", size = 298751, upload-time = "2026-03-15T18:50:00.003Z" },
- { url = "https://files.pythonhosted.org/packages/86/2a/2a7db6b314b966a3bcad8c731c0719c60b931b931de7ae9f34b2839289ee/charset_normalizer-3.4.6-cp310-cp310-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:e25369dc110d58ddf29b949377a93e0716d72a24f62bad72b2b39f155949c1fd", size = 200027, upload-time = "2026-03-15T18:50:01.702Z" },
- { url = "https://files.pythonhosted.org/packages/68/f2/0fe775c74ae25e2a3b07b01538fc162737b3e3f795bada3bc26f4d4d495c/charset_normalizer-3.4.6-cp310-cp310-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:259695e2ccc253feb2a016303543d691825e920917e31f894ca1a687982b1de4", size = 220741, upload-time = "2026-03-15T18:50:03.194Z" },
- { url = "https://files.pythonhosted.org/packages/10/98/8085596e41f00b27dd6aa1e68413d1ddda7e605f34dd546833c61fddd709/charset_normalizer-3.4.6-cp310-cp310-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:dda86aba335c902b6149a02a55b38e96287157e609200811837678214ba2b1db", size = 215802, upload-time = "2026-03-15T18:50:05.859Z" },
- { url = "https://files.pythonhosted.org/packages/fd/ce/865e4e09b041bad659d682bbd98b47fb490b8e124f9398c9448065f64fee/charset_normalizer-3.4.6-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:51fb3c322c81d20567019778cb5a4a6f2dc1c200b886bc0d636238e364848c89", size = 207908, upload-time = "2026-03-15T18:50:07.676Z" },
- { url = "https://files.pythonhosted.org/packages/a8/54/8c757f1f7349262898c2f169e0d562b39dcb977503f18fdf0814e923db78/charset_normalizer-3.4.6-cp310-cp310-manylinux_2_31_armv7l.whl", hash = "sha256:4482481cb0572180b6fd976a4d5c72a30263e98564da68b86ec91f0fe35e8565", size = 194357, upload-time = "2026-03-15T18:50:09.327Z" },
- { url = "https://files.pythonhosted.org/packages/6f/29/e88f2fac9218907fc7a70722b393d1bbe8334c61fe9c46640dba349b6e66/charset_normalizer-3.4.6-cp310-cp310-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:39f5068d35621da2881271e5c3205125cc456f54e9030d3f723288c873a71bf9", size = 205610, upload-time = "2026-03-15T18:50:10.732Z" },
- { url = "https://files.pythonhosted.org/packages/4c/c5/21d7bb0cb415287178450171d130bed9d664211fdd59731ed2c34267b07d/charset_normalizer-3.4.6-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:8bea55c4eef25b0b19a0337dc4e3f9a15b00d569c77211fa8cde38684f234fb7", size = 203512, upload-time = "2026-03-15T18:50:12.535Z" },
- { url = "https://files.pythonhosted.org/packages/a4/be/ce52f3c7fdb35cc987ad38a53ebcef52eec498f4fb6c66ecfe62cfe57ba2/charset_normalizer-3.4.6-cp310-cp310-musllinux_1_2_armv7l.whl", hash = "sha256:f0cdaecd4c953bfae0b6bb64910aaaca5a424ad9c72d85cb88417bb9814f7550", size = 195398, upload-time = "2026-03-15T18:50:14.236Z" },
- { url = "https://files.pythonhosted.org/packages/81/a0/3ab5dd39d4859a3555e5dadfc8a9fa7f8352f8c183d1a65c90264517da0e/charset_normalizer-3.4.6-cp310-cp310-musllinux_1_2_ppc64le.whl", hash = "sha256:150b8ce8e830eb7ccb029ec9ca36022f756986aaaa7956aad6d9ec90089338c0", size = 221772, upload-time = "2026-03-15T18:50:15.581Z" },
- { url = "https://files.pythonhosted.org/packages/04/6e/6a4e41a97ba6b2fa87f849c41e4d229449a586be85053c4d90135fe82d26/charset_normalizer-3.4.6-cp310-cp310-musllinux_1_2_riscv64.whl", hash = "sha256:e68c14b04827dd76dcbd1aeea9e604e3e4b78322d8faf2f8132c7138efa340a8", size = 205759, upload-time = "2026-03-15T18:50:17.047Z" },
- { url = "https://files.pythonhosted.org/packages/db/3b/34a712a5ee64a6957bf355b01dc17b12de457638d436fdb05d01e463cd1c/charset_normalizer-3.4.6-cp310-cp310-musllinux_1_2_s390x.whl", hash = "sha256:3778fd7d7cd04ae8f54651f4a7a0bd6e39a0cf20f801720a4c21d80e9b7ad6b0", size = 216938, upload-time = "2026-03-15T18:50:18.44Z" },
- { url = "https://files.pythonhosted.org/packages/cb/05/5bd1e12da9ab18790af05c61aafd01a60f489778179b621ac2a305243c62/charset_normalizer-3.4.6-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:dad6e0f2e481fffdcf776d10ebee25e0ef89f16d691f1e5dee4b586375fdc64b", size = 210138, upload-time = "2026-03-15T18:50:19.852Z" },
- { url = "https://files.pythonhosted.org/packages/bd/8e/3cb9e2d998ff6b21c0a1860343cb7b83eba9cdb66b91410e18fc4969d6ab/charset_normalizer-3.4.6-cp310-cp310-win32.whl", hash = "sha256:74a2e659c7ecbc73562e2a15e05039f1e22c75b7c7618b4b574a3ea9118d1557", size = 144137, upload-time = "2026-03-15T18:50:21.505Z" },
- { url = "https://files.pythonhosted.org/packages/d8/8f/78f5489ffadb0db3eb7aff53d31c24531d33eb545f0c6f6567c25f49a5ff/charset_normalizer-3.4.6-cp310-cp310-win_amd64.whl", hash = "sha256:aa9cccf4a44b9b62d8ba8b4dd06c649ba683e4bf04eea606d2e94cfc2d6ff4d6", size = 154244, upload-time = "2026-03-15T18:50:22.81Z" },
- { url = "https://files.pythonhosted.org/packages/e4/74/e472659dffb0cadb2f411282d2d76c60da1fc94076d7fffed4ae8a93ec01/charset_normalizer-3.4.6-cp310-cp310-win_arm64.whl", hash = "sha256:e985a16ff513596f217cee86c21371b8cd011c0f6f056d0920aa2d926c544058", size = 143312, upload-time = "2026-03-15T18:50:24.074Z" },
- { url = "https://files.pythonhosted.org/packages/62/28/ff6f234e628a2de61c458be2779cb182bc03f6eec12200d4a525bbfc9741/charset_normalizer-3.4.6-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:82060f995ab5003a2d6e0f4ad29065b7672b6593c8c63559beefe5b443242c3e", size = 293582, upload-time = "2026-03-15T18:50:25.454Z" },
- { url = "https://files.pythonhosted.org/packages/1c/b7/b1a117e5385cbdb3205f6055403c2a2a220c5ea80b8716c324eaf75c5c95/charset_normalizer-3.4.6-cp311-cp311-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:60c74963d8350241a79cb8feea80e54d518f72c26db618862a8f53e5023deaf9", size = 197240, upload-time = "2026-03-15T18:50:27.196Z" },
- { url = "https://files.pythonhosted.org/packages/a1/5f/2574f0f09f3c3bc1b2f992e20bce6546cb1f17e111c5be07308dc5427956/charset_normalizer-3.4.6-cp311-cp311-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:f6e4333fb15c83f7d1482a76d45a0818897b3d33f00efd215528ff7c51b8e35d", size = 217363, upload-time = "2026-03-15T18:50:28.601Z" },
- { url = "https://files.pythonhosted.org/packages/4a/d1/0ae20ad77bc949ddd39b51bf383b6ca932f2916074c95cad34ae465ab71f/charset_normalizer-3.4.6-cp311-cp311-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:bc72863f4d9aba2e8fd9085e63548a324ba706d2ea2c83b260da08a59b9482de", size = 212994, upload-time = "2026-03-15T18:50:30.102Z" },
- { url = "https://files.pythonhosted.org/packages/60/ac/3233d262a310c1b12633536a07cde5ddd16985e6e7e238e9f3f9423d8eb9/charset_normalizer-3.4.6-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:9cc4fc6c196d6a8b76629a70ddfcd4635a6898756e2d9cac5565cf0654605d73", size = 204697, upload-time = "2026-03-15T18:50:31.654Z" },
- { url = "https://files.pythonhosted.org/packages/25/3c/8a18fc411f085b82303cfb7154eed5bd49c77035eb7608d049468b53f87c/charset_normalizer-3.4.6-cp311-cp311-manylinux_2_31_armv7l.whl", hash = "sha256:0c173ce3a681f309f31b87125fecec7a5d1347261ea11ebbb856fa6006b23c8c", size = 191673, upload-time = "2026-03-15T18:50:33.433Z" },
- { url = "https://files.pythonhosted.org/packages/ff/a7/11cfe61d6c5c5c7438d6ba40919d0306ed83c9ab957f3d4da2277ff67836/charset_normalizer-3.4.6-cp311-cp311-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:c907cdc8109f6c619e6254212e794d6548373cc40e1ec75e6e3823d9135d29cc", size = 201120, upload-time = "2026-03-15T18:50:35.105Z" },
- { url = "https://files.pythonhosted.org/packages/b5/10/cf491fa1abd47c02f69687046b896c950b92b6cd7337a27e6548adbec8e4/charset_normalizer-3.4.6-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:404a1e552cf5b675a87f0651f8b79f5f1e6fd100ee88dc612f89aa16abd4486f", size = 200911, upload-time = "2026-03-15T18:50:36.819Z" },
- { url = "https://files.pythonhosted.org/packages/28/70/039796160b48b18ed466fde0af84c1b090c4e288fae26cd674ad04a2d703/charset_normalizer-3.4.6-cp311-cp311-musllinux_1_2_armv7l.whl", hash = "sha256:e3c701e954abf6fc03a49f7c579cc80c2c6cc52525340ca3186c41d3f33482ef", size = 192516, upload-time = "2026-03-15T18:50:38.228Z" },
- { url = "https://files.pythonhosted.org/packages/ff/34/c56f3223393d6ff3124b9e78f7de738047c2d6bc40a4f16ac0c9d7a1cb3c/charset_normalizer-3.4.6-cp311-cp311-musllinux_1_2_ppc64le.whl", hash = "sha256:7a6967aaf043bceabab5412ed6bd6bd26603dae84d5cb75bf8d9a74a4959d398", size = 218795, upload-time = "2026-03-15T18:50:39.664Z" },
- { url = "https://files.pythonhosted.org/packages/e8/3b/ce2d4f86c5282191a041fdc5a4ce18f1c6bd40a5bd1f74cf8625f08d51c1/charset_normalizer-3.4.6-cp311-cp311-musllinux_1_2_riscv64.whl", hash = "sha256:5feb91325bbceade6afab43eb3b508c63ee53579fe896c77137ded51c6b6958e", size = 201833, upload-time = "2026-03-15T18:50:41.552Z" },
- { url = "https://files.pythonhosted.org/packages/3b/9b/b6a9f76b0fd7c5b5ec58b228ff7e85095370282150f0bd50b3126f5506d6/charset_normalizer-3.4.6-cp311-cp311-musllinux_1_2_s390x.whl", hash = "sha256:f820f24b09e3e779fe84c3c456cb4108a7aa639b0d1f02c28046e11bfcd088ed", size = 213920, upload-time = "2026-03-15T18:50:43.33Z" },
- { url = "https://files.pythonhosted.org/packages/ae/98/7bc23513a33d8172365ed30ee3a3b3fe1ece14a395e5fc94129541fc6003/charset_normalizer-3.4.6-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:b35b200d6a71b9839a46b9b7fff66b6638bb52fc9658aa58796b0326595d3021", size = 206951, upload-time = "2026-03-15T18:50:44.789Z" },
- { url = "https://files.pythonhosted.org/packages/32/73/c0b86f3d1458468e11aec870e6b3feac931facbe105a894b552b0e518e79/charset_normalizer-3.4.6-cp311-cp311-win32.whl", hash = "sha256:9ca4c0b502ab399ef89248a2c84c54954f77a070f28e546a85e91da627d1301e", size = 143703, upload-time = "2026-03-15T18:50:46.103Z" },
- { url = "https://files.pythonhosted.org/packages/c6/e3/76f2facfe8eddee0bbd38d2594e709033338eae44ebf1738bcefe0a06185/charset_normalizer-3.4.6-cp311-cp311-win_amd64.whl", hash = "sha256:a9e68c9d88823b274cf1e72f28cb5dc89c990edf430b0bfd3e2fb0785bfeabf4", size = 153857, upload-time = "2026-03-15T18:50:47.563Z" },
- { url = "https://files.pythonhosted.org/packages/e2/dc/9abe19c9b27e6cd3636036b9d1b387b78c40dedbf0b47f9366737684b4b0/charset_normalizer-3.4.6-cp311-cp311-win_arm64.whl", hash = "sha256:97d0235baafca5f2b09cf332cc275f021e694e8362c6bb9c96fc9a0eb74fc316", size = 142751, upload-time = "2026-03-15T18:50:49.234Z" },
- { url = "https://files.pythonhosted.org/packages/e5/62/c0815c992c9545347aeea7859b50dc9044d147e2e7278329c6e02ac9a616/charset_normalizer-3.4.6-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:2ef7fedc7a6ecbe99969cd09632516738a97eeb8bd7258bf8a0f23114c057dab", size = 295154, upload-time = "2026-03-15T18:50:50.88Z" },
- { url = "https://files.pythonhosted.org/packages/a8/37/bdca6613c2e3c58c7421891d80cc3efa1d32e882f7c4a7ee6039c3fc951a/charset_normalizer-3.4.6-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:a4ea868bc28109052790eb2b52a9ab33f3aa7adc02f96673526ff47419490e21", size = 199191, upload-time = "2026-03-15T18:50:52.658Z" },
- { url = "https://files.pythonhosted.org/packages/6c/92/9934d1bbd69f7f398b38c5dae1cbf9cc672e7c34a4adf7b17c0a9c17d15d/charset_normalizer-3.4.6-cp312-cp312-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:836ab36280f21fc1a03c99cd05c6b7af70d2697e374c7af0b61ed271401a72a2", size = 218674, upload-time = "2026-03-15T18:50:54.102Z" },
- { url = "https://files.pythonhosted.org/packages/af/90/25f6ab406659286be929fd89ab0e78e38aa183fc374e03aa3c12d730af8a/charset_normalizer-3.4.6-cp312-cp312-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:f1ce721c8a7dfec21fcbdfe04e8f68174183cf4e8188e0645e92aa23985c57ff", size = 215259, upload-time = "2026-03-15T18:50:55.616Z" },
- { url = "https://files.pythonhosted.org/packages/4e/ef/79a463eb0fff7f96afa04c1d4c51f8fc85426f918db467854bfb6a569ce3/charset_normalizer-3.4.6-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:0e28d62a8fc7a1fa411c43bd65e346f3bce9716dc51b897fbe930c5987b402d5", size = 207276, upload-time = "2026-03-15T18:50:57.054Z" },
- { url = "https://files.pythonhosted.org/packages/f7/72/d0426afec4b71dc159fa6b4e68f868cd5a3ecd918fec5813a15d292a7d10/charset_normalizer-3.4.6-cp312-cp312-manylinux_2_31_armv7l.whl", hash = "sha256:530d548084c4a9f7a16ed4a294d459b4f229db50df689bfe92027452452943a0", size = 195161, upload-time = "2026-03-15T18:50:58.686Z" },
- { url = "https://files.pythonhosted.org/packages/bf/18/c82b06a68bfcb6ce55e508225d210c7e6a4ea122bfc0748892f3dc4e8e11/charset_normalizer-3.4.6-cp312-cp312-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:30f445ae60aad5e1f8bdbb3108e39f6fbc09f4ea16c815c66578878325f8f15a", size = 203452, upload-time = "2026-03-15T18:51:00.196Z" },
- { url = "https://files.pythonhosted.org/packages/44/d6/0c25979b92f8adafdbb946160348d8d44aa60ce99afdc27df524379875cb/charset_normalizer-3.4.6-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:ac2393c73378fea4e52aa56285a3d64be50f1a12395afef9cce47772f60334c2", size = 202272, upload-time = "2026-03-15T18:51:01.703Z" },
- { url = "https://files.pythonhosted.org/packages/2e/3d/7fea3e8fe84136bebbac715dd1221cc25c173c57a699c030ab9b8900cbb7/charset_normalizer-3.4.6-cp312-cp312-musllinux_1_2_armv7l.whl", hash = "sha256:90ca27cd8da8118b18a52d5f547859cc1f8354a00cd1e8e5120df3e30d6279e5", size = 195622, upload-time = "2026-03-15T18:51:03.526Z" },
- { url = "https://files.pythonhosted.org/packages/57/8a/d6f7fd5cb96c58ef2f681424fbca01264461336d2a7fc875e4446b1f1346/charset_normalizer-3.4.6-cp312-cp312-musllinux_1_2_ppc64le.whl", hash = "sha256:8e5a94886bedca0f9b78fecd6afb6629142fd2605aa70a125d49f4edc6037ee6", size = 220056, upload-time = "2026-03-15T18:51:05.269Z" },
- { url = "https://files.pythonhosted.org/packages/16/50/478cdda782c8c9c3fb5da3cc72dd7f331f031e7f1363a893cdd6ca0f8de0/charset_normalizer-3.4.6-cp312-cp312-musllinux_1_2_riscv64.whl", hash = "sha256:695f5c2823691a25f17bc5d5ffe79fa90972cc34b002ac6c843bb8a1720e950d", size = 203751, upload-time = "2026-03-15T18:51:06.858Z" },
- { url = "https://files.pythonhosted.org/packages/75/fc/cc2fcac943939c8e4d8791abfa139f685e5150cae9f94b60f12520feaa9b/charset_normalizer-3.4.6-cp312-cp312-musllinux_1_2_s390x.whl", hash = "sha256:231d4da14bcd9301310faf492051bee27df11f2bc7549bc0bb41fef11b82daa2", size = 216563, upload-time = "2026-03-15T18:51:08.564Z" },
- { url = "https://files.pythonhosted.org/packages/a8/b7/a4add1d9a5f68f3d037261aecca83abdb0ab15960a3591d340e829b37298/charset_normalizer-3.4.6-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:a056d1ad2633548ca18ffa2f85c202cfb48b68615129143915b8dc72a806a923", size = 209265, upload-time = "2026-03-15T18:51:10.312Z" },
- { url = "https://files.pythonhosted.org/packages/6c/18/c094561b5d64a24277707698e54b7f67bd17a4f857bbfbb1072bba07c8bf/charset_normalizer-3.4.6-cp312-cp312-win32.whl", hash = "sha256:c2274ca724536f173122f36c98ce188fd24ce3dad886ec2b7af859518ce008a4", size = 144229, upload-time = "2026-03-15T18:51:11.694Z" },
- { url = "https://files.pythonhosted.org/packages/ab/20/0567efb3a8fd481b8f34f739ebddc098ed062a59fed41a8d193a61939e8f/charset_normalizer-3.4.6-cp312-cp312-win_amd64.whl", hash = "sha256:c8ae56368f8cc97c7e40a7ee18e1cedaf8e780cd8bc5ed5ac8b81f238614facb", size = 154277, upload-time = "2026-03-15T18:51:13.004Z" },
- { url = "https://files.pythonhosted.org/packages/15/57/28d79b44b51933119e21f65479d0864a8d5893e494cf5daab15df0247c17/charset_normalizer-3.4.6-cp312-cp312-win_arm64.whl", hash = "sha256:899d28f422116b08be5118ef350c292b36fc15ec2daeb9ea987c89281c7bb5c4", size = 142817, upload-time = "2026-03-15T18:51:14.408Z" },
- { url = "https://files.pythonhosted.org/packages/1e/1d/4fdabeef4e231153b6ed7567602f3b68265ec4e5b76d6024cf647d43d981/charset_normalizer-3.4.6-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:11afb56037cbc4b1555a34dd69151e8e069bee82e613a73bef6e714ce733585f", size = 294823, upload-time = "2026-03-15T18:51:15.755Z" },
- { url = "https://files.pythonhosted.org/packages/47/7b/20e809b89c69d37be748d98e84dce6820bf663cf19cf6b942c951a3e8f41/charset_normalizer-3.4.6-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:423fb7e748a08f854a08a222b983f4df1912b1daedce51a72bd24fe8f26a1843", size = 198527, upload-time = "2026-03-15T18:51:17.177Z" },
- { url = "https://files.pythonhosted.org/packages/37/a6/4f8d27527d59c039dce6f7622593cdcd3d70a8504d87d09eb11e9fdc6062/charset_normalizer-3.4.6-cp313-cp313-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:d73beaac5e90173ac3deb9928a74763a6d230f494e4bfb422c217a0ad8e629bf", size = 218388, upload-time = "2026-03-15T18:51:18.934Z" },
- { url = "https://files.pythonhosted.org/packages/f6/9b/4770ccb3e491a9bacf1c46cc8b812214fe367c86a96353ccc6daf87b01ec/charset_normalizer-3.4.6-cp313-cp313-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:d60377dce4511655582e300dc1e5a5f24ba0cb229005a1d5c8d0cb72bb758ab8", size = 214563, upload-time = "2026-03-15T18:51:20.374Z" },
- { url = "https://files.pythonhosted.org/packages/2b/58/a199d245894b12db0b957d627516c78e055adc3a0d978bc7f65ddaf7c399/charset_normalizer-3.4.6-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:530e8cebeea0d76bdcf93357aa5e41336f48c3dc709ac52da2bb167c5b8271d9", size = 206587, upload-time = "2026-03-15T18:51:21.807Z" },
- { url = "https://files.pythonhosted.org/packages/7e/70/3def227f1ec56f5c69dfc8392b8bd63b11a18ca8178d9211d7cc5e5e4f27/charset_normalizer-3.4.6-cp313-cp313-manylinux_2_31_armv7l.whl", hash = "sha256:a26611d9987b230566f24a0a125f17fe0de6a6aff9f25c9f564aaa2721a5fb88", size = 194724, upload-time = "2026-03-15T18:51:23.508Z" },
- { url = "https://files.pythonhosted.org/packages/58/ab/9318352e220c05efd31c2779a23b50969dc94b985a2efa643ed9077bfca5/charset_normalizer-3.4.6-cp313-cp313-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:34315ff4fc374b285ad7f4a0bf7dcbfe769e1b104230d40f49f700d4ab6bbd84", size = 202956, upload-time = "2026-03-15T18:51:25.239Z" },
- { url = "https://files.pythonhosted.org/packages/75/13/f3550a3ac25b70f87ac98c40d3199a8503676c2f1620efbf8d42095cfc40/charset_normalizer-3.4.6-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:5f8ddd609f9e1af8c7bd6e2aca279c931aefecd148a14402d4e368f3171769fd", size = 201923, upload-time = "2026-03-15T18:51:26.682Z" },
- { url = "https://files.pythonhosted.org/packages/1b/db/c5c643b912740b45e8eec21de1bbab8e7fc085944d37e1e709d3dcd9d72f/charset_normalizer-3.4.6-cp313-cp313-musllinux_1_2_armv7l.whl", hash = "sha256:80d0a5615143c0b3225e5e3ef22c8d5d51f3f72ce0ea6fb84c943546c7b25b6c", size = 195366, upload-time = "2026-03-15T18:51:28.129Z" },
- { url = "https://files.pythonhosted.org/packages/5a/67/3b1c62744f9b2448443e0eb160d8b001c849ec3fef591e012eda6484787c/charset_normalizer-3.4.6-cp313-cp313-musllinux_1_2_ppc64le.whl", hash = "sha256:92734d4d8d187a354a556626c221cd1a892a4e0802ccb2af432a1d85ec012194", size = 219752, upload-time = "2026-03-15T18:51:29.556Z" },
- { url = "https://files.pythonhosted.org/packages/f6/98/32ffbaf7f0366ffb0445930b87d103f6b406bc2c271563644bde8a2b1093/charset_normalizer-3.4.6-cp313-cp313-musllinux_1_2_riscv64.whl", hash = "sha256:613f19aa6e082cf96e17e3ffd89383343d0d589abda756b7764cf78361fd41dc", size = 203296, upload-time = "2026-03-15T18:51:30.921Z" },
- { url = "https://files.pythonhosted.org/packages/41/12/5d308c1bbe60cabb0c5ef511574a647067e2a1f631bc8634fcafaccd8293/charset_normalizer-3.4.6-cp313-cp313-musllinux_1_2_s390x.whl", hash = "sha256:2b1a63e8224e401cafe7739f77efd3f9e7f5f2026bda4aead8e59afab537784f", size = 215956, upload-time = "2026-03-15T18:51:32.399Z" },
- { url = "https://files.pythonhosted.org/packages/53/e9/5f85f6c5e20669dbe56b165c67b0260547dea97dba7e187938833d791687/charset_normalizer-3.4.6-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:6cceb5473417d28edd20c6c984ab6fee6c6267d38d906823ebfe20b03d607dc2", size = 208652, upload-time = "2026-03-15T18:51:34.214Z" },
- { url = "https://files.pythonhosted.org/packages/f1/11/897052ea6af56df3eef3ca94edafee410ca699ca0c7b87960ad19932c55e/charset_normalizer-3.4.6-cp313-cp313-win32.whl", hash = "sha256:d7de2637729c67d67cf87614b566626057e95c303bc0a55ffe391f5205e7003d", size = 143940, upload-time = "2026-03-15T18:51:36.15Z" },
- { url = "https://files.pythonhosted.org/packages/a1/5c/724b6b363603e419829f561c854b87ed7c7e31231a7908708ac086cdf3e2/charset_normalizer-3.4.6-cp313-cp313-win_amd64.whl", hash = "sha256:572d7c822caf521f0525ba1bce1a622a0b85cf47ffbdae6c9c19e3b5ac3c4389", size = 154101, upload-time = "2026-03-15T18:51:37.876Z" },
- { url = "https://files.pythonhosted.org/packages/01/a5/7abf15b4c0968e47020f9ca0935fb3274deb87cb288cd187cad92e8cdffd/charset_normalizer-3.4.6-cp313-cp313-win_arm64.whl", hash = "sha256:a4474d924a47185a06411e0064b803c68be044be2d60e50e8bddcc2649957c1f", size = 143109, upload-time = "2026-03-15T18:51:39.565Z" },
- { url = "https://files.pythonhosted.org/packages/25/6f/ffe1e1259f384594063ea1869bfb6be5cdb8bc81020fc36c3636bc8302a1/charset_normalizer-3.4.6-cp314-cp314-macosx_10_15_universal2.whl", hash = "sha256:9cc6e6d9e571d2f863fa77700701dae73ed5f78881efc8b3f9a4398772ff53e8", size = 294458, upload-time = "2026-03-15T18:51:41.134Z" },
- { url = "https://files.pythonhosted.org/packages/56/60/09bb6c13a8c1016c2ed5c6a6488e4ffef506461aa5161662bd7636936fb1/charset_normalizer-3.4.6-cp314-cp314-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:ef5960d965e67165d75b7c7ffc60a83ec5abfc5c11b764ec13ea54fbef8b4421", size = 199277, upload-time = "2026-03-15T18:51:42.953Z" },
- { url = "https://files.pythonhosted.org/packages/00/50/dcfbb72a5138bbefdc3332e8d81a23494bf67998b4b100703fd15fa52d81/charset_normalizer-3.4.6-cp314-cp314-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:b3694e3f87f8ac7ce279d4355645b3c878d24d1424581b46282f24b92f5a4ae2", size = 218758, upload-time = "2026-03-15T18:51:44.339Z" },
- { url = "https://files.pythonhosted.org/packages/03/b3/d79a9a191bb75f5aa81f3aaaa387ef29ce7cb7a9e5074ba8ea095cc073c2/charset_normalizer-3.4.6-cp314-cp314-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:5d11595abf8dd942a77883a39d81433739b287b6aa71620f15164f8096221b30", size = 215299, upload-time = "2026-03-15T18:51:45.871Z" },
- { url = "https://files.pythonhosted.org/packages/76/7e/bc8911719f7084f72fd545f647601ea3532363927f807d296a8c88a62c0d/charset_normalizer-3.4.6-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:7bda6eebafd42133efdca535b04ccb338ab29467b3f7bf79569883676fc628db", size = 206811, upload-time = "2026-03-15T18:51:47.308Z" },
- { url = "https://files.pythonhosted.org/packages/e2/40/c430b969d41dda0c465aa36cc7c2c068afb67177bef50905ac371b28ccc7/charset_normalizer-3.4.6-cp314-cp314-manylinux_2_31_armv7l.whl", hash = "sha256:bbc8c8650c6e51041ad1be191742b8b421d05bbd3410f43fa2a00c8db87678e8", size = 193706, upload-time = "2026-03-15T18:51:48.849Z" },
- { url = "https://files.pythonhosted.org/packages/48/15/e35e0590af254f7df984de1323640ef375df5761f615b6225ba8deb9799a/charset_normalizer-3.4.6-cp314-cp314-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:22c6f0c2fbc31e76c3b8a86fba1a56eda6166e238c29cdd3d14befdb4a4e4815", size = 202706, upload-time = "2026-03-15T18:51:50.257Z" },
- { url = "https://files.pythonhosted.org/packages/5e/bd/f736f7b9cc5e93a18b794a50346bb16fbfd6b37f99e8f306f7951d27c17c/charset_normalizer-3.4.6-cp314-cp314-musllinux_1_2_aarch64.whl", hash = "sha256:7edbed096e4a4798710ed6bc75dcaa2a21b68b6c356553ac4823c3658d53743a", size = 202497, upload-time = "2026-03-15T18:51:52.012Z" },
- { url = "https://files.pythonhosted.org/packages/9d/ba/2cc9e3e7dfdf7760a6ed8da7446d22536f3d0ce114ac63dee2a5a3599e62/charset_normalizer-3.4.6-cp314-cp314-musllinux_1_2_armv7l.whl", hash = "sha256:7f9019c9cb613f084481bd6a100b12e1547cf2efe362d873c2e31e4035a6fa43", size = 193511, upload-time = "2026-03-15T18:51:53.723Z" },
- { url = "https://files.pythonhosted.org/packages/9e/cb/5be49b5f776e5613be07298c80e1b02a2d900f7a7de807230595c85a8b2e/charset_normalizer-3.4.6-cp314-cp314-musllinux_1_2_ppc64le.whl", hash = "sha256:58c948d0d086229efc484fe2f30c2d382c86720f55cd9bc33591774348ad44e0", size = 220133, upload-time = "2026-03-15T18:51:55.333Z" },
- { url = "https://files.pythonhosted.org/packages/83/43/99f1b5dad345accb322c80c7821071554f791a95ee50c1c90041c157ae99/charset_normalizer-3.4.6-cp314-cp314-musllinux_1_2_riscv64.whl", hash = "sha256:419a9d91bd238052642a51938af8ac05da5b3343becde08d5cdeab9046df9ee1", size = 203035, upload-time = "2026-03-15T18:51:56.736Z" },
- { url = "https://files.pythonhosted.org/packages/87/9a/62c2cb6a531483b55dddff1a68b3d891a8b498f3ca555fbcf2978e804d9d/charset_normalizer-3.4.6-cp314-cp314-musllinux_1_2_s390x.whl", hash = "sha256:5273b9f0b5835ff0350c0828faea623c68bfa65b792720c453e22b25cc72930f", size = 216321, upload-time = "2026-03-15T18:51:58.17Z" },
- { url = "https://files.pythonhosted.org/packages/6e/79/94a010ff81e3aec7c293eb82c28f930918e517bc144c9906a060844462eb/charset_normalizer-3.4.6-cp314-cp314-musllinux_1_2_x86_64.whl", hash = "sha256:0e901eb1049fdb80f5bd11ed5ea1e498ec423102f7a9b9e4645d5b8204ff2815", size = 208973, upload-time = "2026-03-15T18:51:59.998Z" },
- { url = "https://files.pythonhosted.org/packages/2a/57/4ecff6d4ec8585342f0c71bc03efaa99cb7468f7c91a57b105bcd561cea8/charset_normalizer-3.4.6-cp314-cp314-win32.whl", hash = "sha256:b4ff1d35e8c5bd078be89349b6f3a845128e685e751b6ea1169cf2160b344c4d", size = 144610, upload-time = "2026-03-15T18:52:02.213Z" },
- { url = "https://files.pythonhosted.org/packages/80/94/8434a02d9d7f168c25767c64671fead8d599744a05d6a6c877144c754246/charset_normalizer-3.4.6-cp314-cp314-win_amd64.whl", hash = "sha256:74119174722c4349af9708993118581686f343adc1c8c9c007d59be90d077f3f", size = 154962, upload-time = "2026-03-15T18:52:03.658Z" },
- { url = "https://files.pythonhosted.org/packages/46/4c/48f2cdbfd923026503dfd67ccea45c94fd8fe988d9056b468579c66ed62b/charset_normalizer-3.4.6-cp314-cp314-win_arm64.whl", hash = "sha256:e5bcc1a1ae744e0bb59641171ae53743760130600da8db48cbb6e4918e186e4e", size = 143595, upload-time = "2026-03-15T18:52:05.123Z" },
- { url = "https://files.pythonhosted.org/packages/31/93/8878be7569f87b14f1d52032946131bcb6ebbd8af3e20446bc04053dc3f1/charset_normalizer-3.4.6-cp314-cp314t-macosx_10_15_universal2.whl", hash = "sha256:ad8faf8df23f0378c6d527d8b0b15ea4a2e23c89376877c598c4870d1b2c7866", size = 314828, upload-time = "2026-03-15T18:52:06.831Z" },
- { url = "https://files.pythonhosted.org/packages/06/b6/fae511ca98aac69ecc35cde828b0a3d146325dd03d99655ad38fc2cc3293/charset_normalizer-3.4.6-cp314-cp314t-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:f5ea69428fa1b49573eef0cc44a1d43bebd45ad0c611eb7d7eac760c7ae771bc", size = 208138, upload-time = "2026-03-15T18:52:08.239Z" },
- { url = "https://files.pythonhosted.org/packages/54/57/64caf6e1bf07274a1e0b7c160a55ee9e8c9ec32c46846ce59b9c333f7008/charset_normalizer-3.4.6-cp314-cp314t-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:06a7e86163334edfc5d20fe104db92fcd666e5a5df0977cb5680a506fe26cc8e", size = 224679, upload-time = "2026-03-15T18:52:10.043Z" },
- { url = "https://files.pythonhosted.org/packages/aa/cb/9ff5a25b9273ef160861b41f6937f86fae18b0792fe0a8e75e06acb08f1d/charset_normalizer-3.4.6-cp314-cp314t-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:e1f6e2f00a6b8edb562826e4632e26d063ac10307e80f7461f7de3ad8ef3f077", size = 223475, upload-time = "2026-03-15T18:52:11.854Z" },
- { url = "https://files.pythonhosted.org/packages/fc/97/440635fc093b8d7347502a377031f9605a1039c958f3cd18dcacffb37743/charset_normalizer-3.4.6-cp314-cp314t-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:95b52c68d64c1878818687a473a10547b3292e82b6f6fe483808fb1468e2f52f", size = 215230, upload-time = "2026-03-15T18:52:13.325Z" },
- { url = "https://files.pythonhosted.org/packages/cd/24/afff630feb571a13f07c8539fbb502d2ab494019492aaffc78ef41f1d1d0/charset_normalizer-3.4.6-cp314-cp314t-manylinux_2_31_armv7l.whl", hash = "sha256:7504e9b7dc05f99a9bbb4525c67a2c155073b44d720470a148b34166a69c054e", size = 199045, upload-time = "2026-03-15T18:52:14.752Z" },
- { url = "https://files.pythonhosted.org/packages/e5/17/d1399ecdaf7e0498c327433e7eefdd862b41236a7e484355b8e0e5ebd64b/charset_normalizer-3.4.6-cp314-cp314t-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:172985e4ff804a7ad08eebec0a1640ece87ba5041d565fff23c8f99c1f389484", size = 211658, upload-time = "2026-03-15T18:52:16.278Z" },
- { url = "https://files.pythonhosted.org/packages/b5/38/16baa0affb957b3d880e5ac2144caf3f9d7de7bc4a91842e447fbb5e8b67/charset_normalizer-3.4.6-cp314-cp314t-musllinux_1_2_aarch64.whl", hash = "sha256:4be9f4830ba8741527693848403e2c457c16e499100963ec711b1c6f2049b7c7", size = 210769, upload-time = "2026-03-15T18:52:17.782Z" },
- { url = "https://files.pythonhosted.org/packages/05/34/c531bc6ac4c21da9ddfddb3107be2287188b3ea4b53b70fc58f2a77ac8d8/charset_normalizer-3.4.6-cp314-cp314t-musllinux_1_2_armv7l.whl", hash = "sha256:79090741d842f564b1b2827c0b82d846405b744d31e84f18d7a7b41c20e473ff", size = 201328, upload-time = "2026-03-15T18:52:19.553Z" },
- { url = "https://files.pythonhosted.org/packages/fa/73/a5a1e9ca5f234519c1953608a03fe109c306b97fdfb25f09182babad51a7/charset_normalizer-3.4.6-cp314-cp314t-musllinux_1_2_ppc64le.whl", hash = "sha256:87725cfb1a4f1f8c2fc9890ae2f42094120f4b44db9360be5d99a4c6b0e03a9e", size = 225302, upload-time = "2026-03-15T18:52:21.043Z" },
- { url = "https://files.pythonhosted.org/packages/ba/f6/cd782923d112d296294dea4bcc7af5a7ae0f86ab79f8fefbda5526b6cfc0/charset_normalizer-3.4.6-cp314-cp314t-musllinux_1_2_riscv64.whl", hash = "sha256:fcce033e4021347d80ed9c66dcf1e7b1546319834b74445f561d2e2221de5659", size = 211127, upload-time = "2026-03-15T18:52:22.491Z" },
- { url = "https://files.pythonhosted.org/packages/0e/c5/0b6898950627af7d6103a449b22320372c24c6feda91aa24e201a478d161/charset_normalizer-3.4.6-cp314-cp314t-musllinux_1_2_s390x.whl", hash = "sha256:ca0276464d148c72defa8bb4390cce01b4a0e425f3b50d1435aa6d7a18107602", size = 222840, upload-time = "2026-03-15T18:52:24.113Z" },
- { url = "https://files.pythonhosted.org/packages/7d/25/c4bba773bef442cbdc06111d40daa3de5050a676fa26e85090fc54dd12f0/charset_normalizer-3.4.6-cp314-cp314t-musllinux_1_2_x86_64.whl", hash = "sha256:197c1a244a274bb016dd8b79204850144ef77fe81c5b797dc389327adb552407", size = 216890, upload-time = "2026-03-15T18:52:25.541Z" },
- { url = "https://files.pythonhosted.org/packages/35/1a/05dacadb0978da72ee287b0143097db12f2e7e8d3ffc4647da07a383b0b7/charset_normalizer-3.4.6-cp314-cp314t-win32.whl", hash = "sha256:2a24157fa36980478dd1770b585c0f30d19e18f4fb0c47c13aa568f871718579", size = 155379, upload-time = "2026-03-15T18:52:27.05Z" },
- { url = "https://files.pythonhosted.org/packages/5d/7a/d269d834cb3a76291651256f3b9a5945e81d0a49ab9f4a498964e83c0416/charset_normalizer-3.4.6-cp314-cp314t-win_amd64.whl", hash = "sha256:cd5e2801c89992ed8c0a3f0293ae83c159a60d9a5d685005383ef4caca77f2c4", size = 169043, upload-time = "2026-03-15T18:52:28.502Z" },
- { url = "https://files.pythonhosted.org/packages/23/06/28b29fba521a37a8932c6a84192175c34d49f84a6d4773fa63d05f9aff22/charset_normalizer-3.4.6-cp314-cp314t-win_arm64.whl", hash = "sha256:47955475ac79cc504ef2704b192364e51d0d473ad452caedd0002605f780101c", size = 148523, upload-time = "2026-03-15T18:52:29.956Z" },
- { url = "https://files.pythonhosted.org/packages/ed/58/58e0cd3cd20ce69bf3daa0ded2509b40070f820b7d19a883c108d099f575/charset_normalizer-3.4.6-cp38-cp38-macosx_10_9_universal2.whl", hash = "sha256:659a1e1b500fac8f2779dd9e1570464e012f43e580371470b45277a27baa7532", size = 282635, upload-time = "2026-03-15T18:52:32.186Z" },
- { url = "https://files.pythonhosted.org/packages/e3/c2/3dc26177a0bfc9e416cd99745b348b9dd7fcf37355d60eb3331d44dea084/charset_normalizer-3.4.6-cp38-cp38-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:f61aa92e4aad0be58eb6eb4e0c21acf32cf8065f4b2cae5665da756c4ceef982", size = 191949, upload-time = "2026-03-15T18:52:33.766Z" },
- { url = "https://files.pythonhosted.org/packages/30/dc/93d1e33efaceb05fa7eacc4a7617f6307f42c999d67fbd8dc9e0bc3f741c/charset_normalizer-3.4.6-cp38-cp38-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:f50498891691e0864dc3da965f340fada0771f6142a378083dc4608f4ea513e2", size = 209106, upload-time = "2026-03-15T18:52:35.681Z" },
- { url = "https://files.pythonhosted.org/packages/fd/12/92fb2d1722404102f84938b3610d260cd511ca917bd51b0f8d3d471018dd/charset_normalizer-3.4.6-cp38-cp38-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:bf625105bb9eef28a56a943fec8c8a98aeb80e7d7db99bd3c388137e6eb2d237", size = 205324, upload-time = "2026-03-15T18:52:37.494Z" },
- { url = "https://files.pythonhosted.org/packages/b5/ff/286446724c185fa82daa74df13e0776c720482010c123aebd6f3aa0b0640/charset_normalizer-3.4.6-cp38-cp38-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:2bd9d128ef93637a5d7a6af25363cf5dec3fa21cf80e68055aad627f280e8afa", size = 198735, upload-time = "2026-03-15T18:52:39.032Z" },
- { url = "https://files.pythonhosted.org/packages/76/68/776580df3b98426ad21c639423066b08f42c7f4e5f263cfbdbce480a71af/charset_normalizer-3.4.6-cp38-cp38-manylinux_2_31_armv7l.whl", hash = "sha256:d08ec48f0a1c48d75d0356cea971921848fb620fdeba805b28f937e90691209f", size = 187796, upload-time = "2026-03-15T18:52:40.971Z" },
- { url = "https://files.pythonhosted.org/packages/ab/80/95de4a300d7dc4fb6cc8b2e39f771ee1636273882becce14e8bd875a577a/charset_normalizer-3.4.6-cp38-cp38-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:1ed80ff870ca6de33f4d953fda4d55654b9a2b340ff39ab32fa3adbcd718f264", size = 196929, upload-time = "2026-03-15T18:52:42.389Z" },
- { url = "https://files.pythonhosted.org/packages/da/41/f3ccbb1417aeec79f02201fc37d1835b8091bf9838f2a8d1cb48583cb9cf/charset_normalizer-3.4.6-cp38-cp38-musllinux_1_2_aarch64.whl", hash = "sha256:f98059e4fcd3e3e4e2d632b7cf81c2faae96c43c60b569e9c621468082f1d104", size = 194649, upload-time = "2026-03-15T18:52:43.845Z" },
- { url = "https://files.pythonhosted.org/packages/1b/ee/4f2a275c862d56648dbdd12d4d89f2e2786bf0bea6f1127461980b818906/charset_normalizer-3.4.6-cp38-cp38-musllinux_1_2_armv7l.whl", hash = "sha256:ab30e5e3e706e3063bc6de96b118688cb10396b70bb9864a430f67df98c61ecc", size = 188203, upload-time = "2026-03-15T18:52:45.739Z" },
- { url = "https://files.pythonhosted.org/packages/ba/13/4363a16ef726d73ec85a3fdafcbcfaef6e63a86bbb8ed423226c4a04a8c1/charset_normalizer-3.4.6-cp38-cp38-musllinux_1_2_ppc64le.whl", hash = "sha256:d5f5d1e9def3405f60e3ca8232d56f35c98fb7bf581efcc60051ebf53cb8b611", size = 210986, upload-time = "2026-03-15T18:52:47.564Z" },
- { url = "https://files.pythonhosted.org/packages/96/39/5cfccd712bfb1f37fcb963cc8057c3605a0b3a222394deba7e3bd986dfcb/charset_normalizer-3.4.6-cp38-cp38-musllinux_1_2_riscv64.whl", hash = "sha256:461598cd852bfa5a61b09cae2b1c02e2efcd166ee5516e243d540ac24bfa68a7", size = 196801, upload-time = "2026-03-15T18:52:49.407Z" },
- { url = "https://files.pythonhosted.org/packages/05/9f/ef57946ad3637d8d09f28dbd7d6efff2282fcd28cae2f37ebb074e67779a/charset_normalizer-3.4.6-cp38-cp38-musllinux_1_2_s390x.whl", hash = "sha256:71be7e0e01753a89cf024abf7ecb6bca2c81738ead80d43004d9b5e3f1244e64", size = 206881, upload-time = "2026-03-15T18:52:50.896Z" },
- { url = "https://files.pythonhosted.org/packages/0f/a9/278ea02d48eb50ed23ec23ce4845ffecf881104e0c25975a80f9fbe2dcad/charset_normalizer-3.4.6-cp38-cp38-musllinux_1_2_x86_64.whl", hash = "sha256:df01808ee470038c3f8dc4f48620df7225c49c2d6639e38f96e6d6ac6e6f7b0e", size = 200632, upload-time = "2026-03-15T18:52:52.727Z" },
- { url = "https://files.pythonhosted.org/packages/7b/b8/4b06263034d3f8f25b1ee5869a32be479dc61f0bd12d4b51863299a4a919/charset_normalizer-3.4.6-cp38-cp38-win32.whl", hash = "sha256:69dd852c2f0ad631b8b60cfbe25a28c0058a894de5abb566619c205ce0550eae", size = 141571, upload-time = "2026-03-15T18:52:54.293Z" },
- { url = "https://files.pythonhosted.org/packages/41/16/e37a1405c914a6a00d589226c835999bd6ce09754b212299ad3b33f10b1f/charset_normalizer-3.4.6-cp38-cp38-win_amd64.whl", hash = "sha256:517ad0e93394ac532745129ceabdf2696b609ec9f87863d337140317ebce1c14", size = 151453, upload-time = "2026-03-15T18:52:55.855Z" },
- { url = "https://files.pythonhosted.org/packages/41/85/580dbaa12ab31041ed7df59f0bebc8893514fc21da6c05c3a1c1707d118f/charset_normalizer-3.4.6-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:31215157227939b4fb3d740cd23fe27be0439afef67b785a1eb78a3ae69cba9e", size = 298620, upload-time = "2026-03-15T18:52:57.332Z" },
- { url = "https://files.pythonhosted.org/packages/67/2c/1e55af3a5e2f52e44396d5c5b731e0ae4f3bb92915ff09a610fb2f4497eb/charset_normalizer-3.4.6-cp39-cp39-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:ecbbd45615a6885fe3240eb9db73b9e62518b611850fdf8ab08bd56de7ad2b17", size = 200106, upload-time = "2026-03-15T18:52:59.2Z" },
- { url = "https://files.pythonhosted.org/packages/10/42/0f2f51a1d16caa45fbf384fd337d4242df1a5b313babee211381d2d39a96/charset_normalizer-3.4.6-cp39-cp39-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:c45a03a4c69820a399f1dda9e1d8fbf3562eda46e7720458180302021b08f778", size = 220539, upload-time = "2026-03-15T18:53:01.019Z" },
- { url = "https://files.pythonhosted.org/packages/1c/0c/4e10996c740eec0f4ae8afbbbfa25f66e8479c4b6ee9cff1ca366a4f6c04/charset_normalizer-3.4.6-cp39-cp39-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:e8aeb10fcbe92767f0fa69ad5a72deca50d0dca07fbde97848997d778a50c9fe", size = 215821, upload-time = "2026-03-15T18:53:02.621Z" },
- { url = "https://files.pythonhosted.org/packages/46/73/205ae7644ebb581a7c6fa9c3751e283606e145f0e6f066003c66aafc9973/charset_normalizer-3.4.6-cp39-cp39-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:54fae94be3d75f3e573c9a1b5402dc593de19377013c9a0e4285e3d402dd3a2a", size = 207917, upload-time = "2026-03-15T18:53:04.413Z" },
- { url = "https://files.pythonhosted.org/packages/b3/ca/18f7dcf19afdab8097aeb2feb8b3809bb4b6ee356cb720abf5263d79406a/charset_normalizer-3.4.6-cp39-cp39-manylinux_2_31_armv7l.whl", hash = "sha256:2f7fdd9b6e6c529d6a2501a2d36b240109e78a8ceaef5687cfcfa2bbe671d297", size = 194513, upload-time = "2026-03-15T18:53:06.025Z" },
- { url = "https://files.pythonhosted.org/packages/e4/6a/e7e3e204c8d79832a091e00b24595af1d5d9800d37dc1f67a6b264cc99a6/charset_normalizer-3.4.6-cp39-cp39-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:4d1d02209e06550bdaef34af58e041ad71b88e624f5d825519da3a3308e22687", size = 205612, upload-time = "2026-03-15T18:53:07.494Z" },
- { url = "https://files.pythonhosted.org/packages/ff/ae/2169ebcea2851c5460c7a21993a0f87028be3c3e60899cb36251e1135cf5/charset_normalizer-3.4.6-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:8bc5f0687d796c05b1e28ab0d38a50e6309906ee09375dd3aff6a9c09dd6e8f4", size = 203519, upload-time = "2026-03-15T18:53:09.048Z" },
- { url = "https://files.pythonhosted.org/packages/43/a0/6a49a925b9c225fe35dffeac5c76f68996b814c637e9d7213718f96be109/charset_normalizer-3.4.6-cp39-cp39-musllinux_1_2_armv7l.whl", hash = "sha256:ee4ec14bc1680d6b0afab9aea2ef27e26d2024f18b24a2d7155a52b60da7e833", size = 195411, upload-time = "2026-03-15T18:53:10.542Z" },
- { url = "https://files.pythonhosted.org/packages/47/f7/a26b0a18e52b1a0f11f53c2c400ed062f386ac227a64ae4be4c5a64699be/charset_normalizer-3.4.6-cp39-cp39-musllinux_1_2_ppc64le.whl", hash = "sha256:d1a2ee9c1499fc8f86f4521f27a973c914b211ffa87322f4ee33bb35392da2c5", size = 221653, upload-time = "2026-03-15T18:53:12.394Z" },
- { url = "https://files.pythonhosted.org/packages/a7/3a/ed1d3b5bb55e3634bd5c31cedbe4fff79d0e5b8d9a062f663a757a07760d/charset_normalizer-3.4.6-cp39-cp39-musllinux_1_2_riscv64.whl", hash = "sha256:48696db7f18afb80a068821504296eb0787d9ce239b91ca15059d1d3eaacf13b", size = 205650, upload-time = "2026-03-15T18:53:13.934Z" },
- { url = "https://files.pythonhosted.org/packages/b1/27/c75819eea5ceeefc49bae329327bb91e81adc346e2a9873d9fdb9e77cde6/charset_normalizer-3.4.6-cp39-cp39-musllinux_1_2_s390x.whl", hash = "sha256:4f41da960b196ea355357285ad1316a00099f22d0929fe168343b99b254729c9", size = 216919, upload-time = "2026-03-15T18:53:15.44Z" },
- { url = "https://files.pythonhosted.org/packages/0f/42/6e91bf8b15f67b7c957091138a36057a083e60703cc27848d5e36ca1eb03/charset_normalizer-3.4.6-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:802168e03fba8bbc5ce0d866d589e4b1ca751d06edee69f7f3a19c5a9fe6b597", size = 210101, upload-time = "2026-03-15T18:53:17.045Z" },
- { url = "https://files.pythonhosted.org/packages/99/ff/101af2605e66a7ee59961d7f9e1060df7c92e8ea54208a02ab881422c24e/charset_normalizer-3.4.6-cp39-cp39-win32.whl", hash = "sha256:8761ac29b6c81574724322a554605608a9960769ea83d2c73e396f3df896ad54", size = 144136, upload-time = "2026-03-15T18:53:19.152Z" },
- { url = "https://files.pythonhosted.org/packages/1d/da/de5942dfbf21f28c19e9202267dabf7bc73f195465d020a3a60054520cc5/charset_normalizer-3.4.6-cp39-cp39-win_amd64.whl", hash = "sha256:1cf0a70018692f85172348fe06d3a4b63f94ecb055e13a00c644d368eb82e5b8", size = 154210, upload-time = "2026-03-15T18:53:20.576Z" },
- { url = "https://files.pythonhosted.org/packages/06/df/1b780a25b86d22b1d736f6ac883afd38ffdf30ddc18e5dc0e82211f493f1/charset_normalizer-3.4.6-cp39-cp39-win_arm64.whl", hash = "sha256:3516bbb8d42169de9e61b8520cbeeeb716f12f4ecfe3fd30a9919aa16c806ca8", size = 143225, upload-time = "2026-03-15T18:53:22.072Z" },
- { url = "https://files.pythonhosted.org/packages/2a/68/687187c7e26cb24ccbd88e5069f5ef00eba804d36dde11d99aad0838ab45/charset_normalizer-3.4.6-py3-none-any.whl", hash = "sha256:947cf925bc916d90adba35a64c82aace04fa39b46b52d4630ece166655905a69", size = 61455, upload-time = "2026-03-15T18:53:23.833Z" },
+version = "3.5.1"
+source = { registry = "https://pypi.org/simple" }
+sdist = { url = "https://files.pythonhosted.org/packages/e5/3f/143b048436775b0f76ac3eec145c019e8173ccc2885c8f20319b996d5e83/charset_normalizer-3.5.1.tar.gz", hash = "sha256:6117b84ea48435e5356dc737f5121485c30920ba43375fa7b434fd753df0eac3", size = 171764, upload-time = "2026-08-15T08:20:44.807Z" }
+wheels = [
+ { url = "https://files.pythonhosted.org/packages/71/aa/554e2614f38fc34c58ff1d0911ae8535ad2516440d5482d76fe59f1088b0/charset_normalizer-3.5.1-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:d1ee1e296209fdce05b81b663250eefa02213a2da7b41bf26f7829b8ba3545aa", size = 369072, upload-time = "2026-08-15T08:16:22.964Z" },
+ { url = "https://files.pythonhosted.org/packages/03/6d/439231dfc3ccfa6f8c06477b7da2219cbd41a2de3d49084df8ec7b5100f2/charset_normalizer-3.5.1-cp310-cp310-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:e9fbdce1e47394b09bc9f26ab117dfc8d6491977a11d86f592bb42c779db2fda", size = 251142, upload-time = "2026-08-15T08:16:24.81Z" },
+ { url = "https://files.pythonhosted.org/packages/55/53/7d819bd23a00ef45039146fa2cce1daa2f0771e758c5653ee1f6edac91ed/charset_normalizer-3.5.1-cp310-cp310-manylinux2014_armv7l.manylinux_2_17_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:00668ebb0609751758682eb0b5857e7c35b9f00e84dfdef062e103244ec94d45", size = 240714, upload-time = "2026-08-15T08:16:26.392Z" },
+ { url = "https://files.pythonhosted.org/packages/b2/2c/45847198c16f4b38090cc7423b2b6a9008e438704d8ab413211832498d31/charset_normalizer-3.5.1-cp310-cp310-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:ba2f37ee79e6338845261a3c5b1784e5d1acdff2c0785b284f1b633033d136ab", size = 279637, upload-time = "2026-08-15T08:16:27.961Z" },
+ { url = "https://files.pythonhosted.org/packages/69/2b/d8be3523ddf9f0b0f3e56d1359034aa10653a4d11564c697f802b4775766/charset_normalizer-3.5.1-cp310-cp310-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:ce854f5f478050ade5a238731c4ca985a7d3b3cb53ff600a9b5c3b689b5f0a7a", size = 276543, upload-time = "2026-08-15T08:16:29.399Z" },
+ { url = "https://files.pythonhosted.org/packages/32/cd/4f564b8f132de25db594efc706897069f016790cea63a5669c9df2675f64/charset_normalizer-3.5.1-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:96eefc178f8636b9c760c5829345307fd81cfae9ab1e80997dbddeb0f54ee9a3", size = 261644, upload-time = "2026-08-15T08:16:30.722Z" },
+ { url = "https://files.pythonhosted.org/packages/f5/e3/38b975422534a608f98c360e79c2f07c763d66dd4272300d45fb1fee54b0/charset_normalizer-3.5.1-cp310-cp310-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:366ec70f5547c640d3ce1985722490f23faf4eb5216a7eeba78277490e78dacb", size = 259609, upload-time = "2026-08-15T08:16:32.248Z" },
+ { url = "https://files.pythonhosted.org/packages/87/bd/fbc24d825c66f1c74f6ccdea3742c3d8354a4888e86d1315a197fee69061/charset_normalizer-3.5.1-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:950f23cb393f85543777b0433f082cddd25b51ab398eac7971146495679efe5f", size = 252457, upload-time = "2026-08-15T08:16:33.849Z" },
+ { url = "https://files.pythonhosted.org/packages/b9/2d/918d0e98a0e679469ed05bb2d90c2088b4d315bb612969d8499f76fb5210/charset_normalizer-3.5.1-cp310-cp310-musllinux_1_2_armv7l.whl", hash = "sha256:c1dcc36dcb96abc02236e182d17e0f71430152a6c2c7447421da2d2dc144edea", size = 242240, upload-time = "2026-08-15T08:16:35.396Z" },
+ { url = "https://files.pythonhosted.org/packages/20/c8/c36f6e0b2dfec351bd38cbc05362697e58bcd073d7dbd95154290c9714ce/charset_normalizer-3.5.1-cp310-cp310-musllinux_1_2_ppc64le.whl", hash = "sha256:07ffd07412fc5d5e84cd8952acf9ff7e4ed7a708e69d1bada19d8ba91711353f", size = 280308, upload-time = "2026-08-15T08:16:36.825Z" },
+ { url = "https://files.pythonhosted.org/packages/ca/7b/311b3e02e8c4092400c449c850a760d8c45d900983c83a70cc07208c551d/charset_normalizer-3.5.1-cp310-cp310-musllinux_1_2_riscv64.whl", hash = "sha256:f5542f9b941279d82d41eb0aa9f98eba36fe4df5c7086c651df7944935b37182", size = 258679, upload-time = "2026-08-15T08:16:38.22Z" },
+ { url = "https://files.pythonhosted.org/packages/b9/90/082cc45599c392f28c036a497f49e0634041a785fc3849c80ccf396d096f/charset_normalizer-3.5.1-cp310-cp310-musllinux_1_2_s390x.whl", hash = "sha256:a545775cfe815855ea32d7c27731d79da358ef2055b4a25830231b1622dd18aa", size = 277221, upload-time = "2026-08-15T08:16:39.62Z" },
+ { url = "https://files.pythonhosted.org/packages/58/ad/b9aecf38d805cbcf84fa94f14c5d972a16561e20296a11dc799a5dcf3763/charset_normalizer-3.5.1-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:494b70049a4d69aec6e8137c13af4cf8db8c9f9820a1392ac293b0dd2987a818", size = 263799, upload-time = "2026-08-15T08:16:40.885Z" },
+ { url = "https://files.pythonhosted.org/packages/b7/23/b38a20598d5a825f85d9d7636860e56ff0db1479f86497a6e485aa9326f7/charset_normalizer-3.5.1-cp310-cp310-win32.whl", hash = "sha256:94fbf1c0c6cc0d3d5e50f9a9313a8cdca90dd696d34b381cd1704f8c9e939f20", size = 182037, upload-time = "2026-08-15T08:16:42.198Z" },
+ { url = "https://files.pythonhosted.org/packages/d2/21/83fffb77864408b8bf0fe1ca603926401d6f8775a8e150b39aacc9958f8a/charset_normalizer-3.5.1-cp310-cp310-win_amd64.whl", hash = "sha256:be47f99644b208bff7766314013f9acf57b056b04191d570d68ad14022cf5b1d", size = 206030, upload-time = "2026-08-15T08:16:43.787Z" },
+ { url = "https://files.pythonhosted.org/packages/86/2e/b93135b5034b1157fb29554b0d06d4844ce62282f0e0a14036f93d7ee2e7/charset_normalizer-3.5.1-cp310-cp310-win_arm64.whl", hash = "sha256:a6d095662e73e74f0a49988e0593373e243e3a52e27bfeea0a859e88acf4a0f5", size = 185092, upload-time = "2026-08-15T08:16:45.177Z" },
+ { url = "https://files.pythonhosted.org/packages/6a/b6/034f6802e9c3f6418966cfabb7db8c9252cc2429c5098f41cc43af804149/charset_normalizer-3.5.1-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:eda059b6bc8bc0812d626fd91a7ce01bf583df0a61296eff390fd94141a34e30", size = 363585, upload-time = "2026-08-15T08:16:46.646Z" },
+ { url = "https://files.pythonhosted.org/packages/d5/fa/6a7e2a7c4b5451912b8c417732df79574354443592a88d616de03da66ae5/charset_normalizer-3.5.1-cp311-cp311-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:aa2bb0b37202dca27175591f761108b5d34096ade1191ffe4808bdf6b1571488", size = 251189, upload-time = "2026-08-15T08:16:48.287Z" },
+ { url = "https://files.pythonhosted.org/packages/a4/c8/ab42b07cfd82e919f427fcfaa7c41abae8242833ad1aad66d42bae40b669/charset_normalizer-3.5.1-cp311-cp311-manylinux2014_armv7l.manylinux_2_17_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:0b2b1b3fa5670c127b246df1d0c059defd41f689a868a3b9d79df9b1cac42d22", size = 239724, upload-time = "2026-08-15T08:16:49.67Z" },
+ { url = "https://files.pythonhosted.org/packages/e7/80/b9348b5d3041209f98b4cdad7655766369233f1d533f4f4f7558e9717bec/charset_normalizer-3.5.1-cp311-cp311-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:6e5e4d73d588ca5ed09df1b7dcd1b203d1df3c542e3f50d126c947d432b10731", size = 280078, upload-time = "2026-08-15T08:16:51.228Z" },
+ { url = "https://files.pythonhosted.org/packages/82/38/083a24028304bc85bb9e376fed801178423dcbb67495f73b6ea0624e1894/charset_normalizer-3.5.1-cp311-cp311-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:b54e7e13267d49ffbfe68e25b3cbd774dab38fa37238f71265e91b36146eb21c", size = 276650, upload-time = "2026-08-15T08:16:52.625Z" },
+ { url = "https://files.pythonhosted.org/packages/0d/35/731ac04aa0a097fc1c97f0994c375bdb230c6c96619db794208fe664e9ce/charset_normalizer-3.5.1-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:c7b742bf31c88566b4bb6335a7f393bb322e580b6bb98df7bd0c25e6e3519ce8", size = 262325, upload-time = "2026-08-15T08:16:54.085Z" },
+ { url = "https://files.pythonhosted.org/packages/f5/28/c2028e7021fb89c6e56868ed0e387b8e9aa811abdd2ab3208d6578d2c930/charset_normalizer-3.5.1-cp311-cp311-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:6ba32c4d2abf1d2fe7cf27d280f4cca5664233b0f885549c7761719eb977f486", size = 261140, upload-time = "2026-08-15T08:16:55.604Z" },
+ { url = "https://files.pythonhosted.org/packages/28/f0/0c0ceec6d98b7daa62e361e418135d59685811d79ba11529aad5cdf15e84/charset_normalizer-3.5.1-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:0722590aabf9dc6a6c0343d523c05458fa2b5047dbe6302fd526bb570600753f", size = 252791, upload-time = "2026-08-15T08:16:57.103Z" },
+ { url = "https://files.pythonhosted.org/packages/f0/3e/48f4cd187b1c33189d86039e9cbe4f92c05454175504b44ff81806d4d1bf/charset_normalizer-3.5.1-cp311-cp311-musllinux_1_2_armv7l.whl", hash = "sha256:aa1099b956fb795e686d073568f6dc002a0bb89765ea6d5b055dd7d9bf1b116c", size = 240730, upload-time = "2026-08-15T08:16:58.418Z" },
+ { url = "https://files.pythonhosted.org/packages/42/85/f9e22af69af67c54cce42be9455d9c81294f918b4ccc454db01f66efcac2/charset_normalizer-3.5.1-cp311-cp311-musllinux_1_2_ppc64le.whl", hash = "sha256:bd6c173f04743d483881bffa1478d5a4624475b8cd1d2194956a75548e191c18", size = 280791, upload-time = "2026-08-15T08:16:59.918Z" },
+ { url = "https://files.pythonhosted.org/packages/fd/4c/9044135f42127630b6fa742feb51256353f6ab87a78f2fdd1de3de955a7f/charset_normalizer-3.5.1-cp311-cp311-musllinux_1_2_riscv64.whl", hash = "sha256:f298e218441525d3794428b4c8b8fb8662c6d3ea79925d4807ee6b9a96a3bca5", size = 259598, upload-time = "2026-08-15T08:17:01.421Z" },
+ { url = "https://files.pythonhosted.org/packages/ba/ed/1dd7cfebb4e75812934c49ca3b79757d11948053f7937ab7070c151f3c55/charset_normalizer-3.5.1-cp311-cp311-musllinux_1_2_s390x.whl", hash = "sha256:6e2912d4babbc65196ac13c2f53468dc57fb8b9c25ef913e8c59ddf7c6dc0e1b", size = 278217, upload-time = "2026-08-15T08:17:02.782Z" },
+ { url = "https://files.pythonhosted.org/packages/bf/eb/239c84503cc9e3ba6eb34686a24bc66e84f3924efdd7e38e751a19f6bc10/charset_normalizer-3.5.1-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:3d27167433c0d5f18dc850f07d0b3816221984fecdc405d6c157a6f0b8f8e9e6", size = 263417, upload-time = "2026-08-15T08:17:04.216Z" },
+ { url = "https://files.pythonhosted.org/packages/37/ab/4e4510e1e288478e2c8333131d1c1382382ba8cd2165053c79e39d1da961/charset_normalizer-3.5.1-cp311-cp311-win32.whl", hash = "sha256:ac00177c4831ffa650f8609e4bdddd5fe09c03b1c0c47acece7e6ea20421598b", size = 181774, upload-time = "2026-08-15T08:17:05.58Z" },
+ { url = "https://files.pythonhosted.org/packages/e3/57/32f0ccea59e8612057c61d6fd22ef2cb63cca93c9fe594094919696ac170/charset_normalizer-3.5.1-cp311-cp311-win_amd64.whl", hash = "sha256:f9b1e28d0e8dbfa858abdba91d6b547beaf2df1a59bec6da6faae7b96a4991a9", size = 206653, upload-time = "2026-08-15T08:17:07.075Z" },
+ { url = "https://files.pythonhosted.org/packages/17/d4/b65c433fc521e58b5f54293982a5e51c05cb5f2dd3f1c7a6acb65b75324e/charset_normalizer-3.5.1-cp311-cp311-win_arm64.whl", hash = "sha256:ae31a1a1db2ee6cc2942fccaf695c934bc7f3db9f2133a3fef1f367cf1a4ab10", size = 185630, upload-time = "2026-08-15T08:17:08.502Z" },
+ { url = "https://files.pythonhosted.org/packages/30/27/78873dc8b6a56357517b74b6bb9568b80450e7bb4f6ef7e3fa9d22aa0bd7/charset_normalizer-3.5.1-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:5b6d1386bf0096d26d3a863dc0a487a5b4eb9aa93cf5ba69683d29dde6b9d60f", size = 344456, upload-time = "2026-08-15T08:17:10.072Z" },
+ { url = "https://files.pythonhosted.org/packages/9a/4c/be49ada26b1f0232d57aa89bbebf997a5cc2332a5616b6eca26ff680044d/charset_normalizer-3.5.1-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:4582c27e8c889d64811987b5967fbd3ae0c823fe1fd933b543d55ac20bb475fa", size = 238530, upload-time = "2026-08-15T08:17:11.563Z" },
+ { url = "https://files.pythonhosted.org/packages/76/84/6f1290fa07ae6978d3960caa3eb1b8019bf9284ab7c2297b00c099ef4250/charset_normalizer-3.5.1-cp312-cp312-manylinux2014_armv7l.manylinux_2_17_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:1d1c7a53a6c2103925cdd6d7229f8c567379f211c869793df679f2e9f738c369", size = 230200, upload-time = "2026-08-15T08:17:12.919Z" },
+ { url = "https://files.pythonhosted.org/packages/e7/a0/47b18adeed31c8f16ba9700f32c1b18594cfa09f47eb672a488c273c22bf/charset_normalizer-3.5.1-cp312-cp312-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:e6621fb2a4988d6e53eedc455e5903e2679f3967b8acb3d639f1b63c14a2e893", size = 262222, upload-time = "2026-08-15T08:17:14.571Z" },
+ { url = "https://files.pythonhosted.org/packages/38/fe/341861ac118dae06f3ec0eb487488af52128f2ef2faf0b11003944d22259/charset_normalizer-3.5.1-cp312-cp312-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:7c0c10730342b0c9b35dd1d619beb8214e520bd96a1f870f452680b238aab3e0", size = 258951, upload-time = "2026-08-15T08:17:16.158Z" },
+ { url = "https://files.pythonhosted.org/packages/6f/89/bb5108dc6c3651dca963f2b0a3ba19bbcb370c94e1b6d3e0e844a58e6dca/charset_normalizer-3.5.1-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:b9af956078716df40d985fb0dfeb2c2120c5ca92ba4ff4b388acfd01cdc14d08", size = 248801, upload-time = "2026-08-15T08:17:17.683Z" },
+ { url = "https://files.pythonhosted.org/packages/b1/ba/ef83ae3aca816393decfa3530976f38a79812d707b80b580ac33b83f9877/charset_normalizer-3.5.1-cp312-cp312-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:f9f8405c2c758532c74fed975dbee57be1f31a6e865c031870c79a6ed3212ada", size = 244070, upload-time = "2026-08-15T08:17:19.191Z" },
+ { url = "https://files.pythonhosted.org/packages/f6/0b/c5292a2462d69b7378ea89793bbb5b2b6fcf6f7dd6d1667f9619094ad553/charset_normalizer-3.5.1-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:96fef3e886d6a9874b14f27fc193fbdc69d5d8035783d86aa4e1cea594e695f9", size = 240110, upload-time = "2026-08-15T08:17:20.547Z" },
+ { url = "https://files.pythonhosted.org/packages/46/22/111e5be3b740d5c2a5bfcedb3d237b6591e5c2e82ae9d6ffcb121fe0909c/charset_normalizer-3.5.1-cp312-cp312-musllinux_1_2_armv7l.whl", hash = "sha256:5d8531a6569d025f68e2321e7638fb7978f23db58e5f69f56913837aae03816e", size = 232836, upload-time = "2026-08-15T08:17:21.895Z" },
+ { url = "https://files.pythonhosted.org/packages/f9/d2/d2aad6fe0dbb44b194bf3becb60f5a0ac48446ade999a47fe7bb41eb09a7/charset_normalizer-3.5.1-cp312-cp312-musllinux_1_2_ppc64le.whl", hash = "sha256:aae2ee51122d3ae968a3837d97dc24a0aeebb0dea23694422cd172bd30017cd6", size = 262712, upload-time = "2026-08-15T08:17:23.727Z" },
+ { url = "https://files.pythonhosted.org/packages/35/5a/337e4663a5eae6de99db940ee8066d4145caafb61327db62deda15313cce/charset_normalizer-3.5.1-cp312-cp312-musllinux_1_2_riscv64.whl", hash = "sha256:7235dc28fc6dd9d832ac7c7bce95367dedb85929f17368a0c2bee1e080b9acbf", size = 242977, upload-time = "2026-08-15T08:17:25.157Z" },
+ { url = "https://files.pythonhosted.org/packages/ca/85/f82f8a92e31c7519410e2e1afdc630f28ec47490ce2c09a11c1a43cbb459/charset_normalizer-3.5.1-cp312-cp312-musllinux_1_2_s390x.whl", hash = "sha256:4abdc5f9ad448c1ecbfae2974b820535d6bc6e7eef63babbab3d81cf46968c71", size = 260207, upload-time = "2026-08-15T08:17:26.602Z" },
+ { url = "https://files.pythonhosted.org/packages/b7/52/643d11ffd60e9ac2fd1fb87e167a19285b9eefeff4a40e63c87cbfbeab36/charset_normalizer-3.5.1-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:ba501e667c17d8411f98e67a022d9604ef179aff0e459b7e292c796837c13573", size = 250562, upload-time = "2026-08-15T08:17:27.971Z" },
+ { url = "https://files.pythonhosted.org/packages/62/16/46556278c2168d12df9da7fede5dc6fc70e60301b26a82bbeec238c9cfe3/charset_normalizer-3.5.1-cp312-cp312-win32.whl", hash = "sha256:cfa1c0cc3a8f9f53f1243a5a99ac36fd003880199383b37672e86ddda9cb07e2", size = 178507, upload-time = "2026-08-15T08:17:29.277Z" },
+ { url = "https://files.pythonhosted.org/packages/9d/7a/4c6c298171e6b3e745633180ff59350fc0ca0db1ffd28df1e369e0579f71/charset_normalizer-3.5.1-cp312-cp312-win_amd64.whl", hash = "sha256:3617ac3cfd8b9888f145ad89dd6e692285834b0201c6074a5eeaad3fd4d668c2", size = 200551, upload-time = "2026-08-15T08:17:30.668Z" },
+ { url = "https://files.pythonhosted.org/packages/cd/d7/eb95a042f0dd22e304b0b6472b154f3546a1a039a9ee89ccb2a7f61591fc/charset_normalizer-3.5.1-cp312-cp312-win_arm64.whl", hash = "sha256:88e85ab89cb822c1e635f51d6d32e488f94e002e70e2f492bdb8b945543f345a", size = 180700, upload-time = "2026-08-15T08:17:32.028Z" },
+ { url = "https://files.pythonhosted.org/packages/bc/61/2cb6ad133dbbb449fa2d37ccae973232f4827e799af258d15e589a3d1e9e/charset_normalizer-3.5.1-cp313-cp313-android_24_arm64_v8a.whl", hash = "sha256:4f298bdadb8f0b9e5672877f647d1be9373ef5320c9e2f049795e26cad28b6a9", size = 211584, upload-time = "2026-08-15T08:17:33.597Z" },
+ { url = "https://files.pythonhosted.org/packages/18/57/a305c968be1ca13f3dd1b32f445877e97addf55d80b65c7cb35fac82b777/charset_normalizer-3.5.1-cp313-cp313-android_24_x86_64.whl", hash = "sha256:88ca277405c2d3b71c4e1c2ee0e7966e807bcba86a69d11e19ba199d18ae4491", size = 223359, upload-time = "2026-08-15T08:17:35.022Z" },
+ { url = "https://files.pythonhosted.org/packages/09/0a/d3646670292ce8d8f8cc11ac067d44885e697a5591f57a9221128da5e7b3/charset_normalizer-3.5.1-cp313-cp313-ios_13_0_arm64_iphoneos.whl", hash = "sha256:9362dd90aa7dab48c0054a21187791ccf05473f7dba5d92b8033ae62164675e7", size = 194464, upload-time = "2026-08-15T08:17:36.452Z" },
+ { url = "https://files.pythonhosted.org/packages/de/93/d51ec556e01042fed6f993ea859311bc7917b466684182fbbceb6ca24762/charset_normalizer-3.5.1-cp313-cp313-ios_13_0_arm64_iphonesimulator.whl", hash = "sha256:977cdbd483a9cff38179bea4fd754289a6f2195c7abd414aba85410b3e66cc5e", size = 197676, upload-time = "2026-08-15T08:17:37.819Z" },
+ { url = "https://files.pythonhosted.org/packages/a4/a0/562247944386f7d4ef94467e84876600cc1e0f1b93239aaa9213d2bc3cbd/charset_normalizer-3.5.1-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:e90251c0c7bdd54a100a0dce3c07b7e637278c93af29dbf78ebb89a58c4bac7d", size = 340473, upload-time = "2026-08-15T08:17:39.303Z" },
+ { url = "https://files.pythonhosted.org/packages/31/e7/1d994be1b93d41e9502b8b0460eaa88a1dd8df335df415db87d6c3e91ab2/charset_normalizer-3.5.1-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:94d78ecec2605a8d0398b0f365d5f12a63248438516f5dac536a5eff7337df4a", size = 240156, upload-time = "2026-08-15T08:17:40.66Z" },
+ { url = "https://files.pythonhosted.org/packages/09/53/27923ce5cc6cbccb832037b27dca98882d9c53e9b69e866bbbef4aae7fc8/charset_normalizer-3.5.1-cp313-cp313-manylinux2014_armv7l.manylinux_2_17_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:d59b75732e9b6f27388e10c14b0259cc5f2e48c78627d185e6a177b58ad3cffe", size = 228246, upload-time = "2026-08-15T08:17:42.003Z" },
+ { url = "https://files.pythonhosted.org/packages/ce/48/5a97e84d63af1d55c07439cb80e56d99a8efb4295700eb4e18c0d1615d2c/charset_normalizer-3.5.1-cp313-cp313-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:0d929fc574b4d6fd9e7c0f5c2ede8716a41911923aa7fa5fce38e0818aa4a1ac", size = 263660, upload-time = "2026-08-15T08:17:43.627Z" },
+ { url = "https://files.pythonhosted.org/packages/7a/c2/071575791dcc88316c0a9a65ce38897a82e4cfe4a325f0f7fe1b1ac47bcf/charset_normalizer-3.5.1-cp313-cp313-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:394fea06235c8543390050ed5f529187074b029fb027213f6c46ac11ab5d950e", size = 260354, upload-time = "2026-08-15T08:17:45.094Z" },
+ { url = "https://files.pythonhosted.org/packages/fb/af/63240b0c0248c075c2535a1f1bd992821d8251b9f173abc13329661d09e4/charset_normalizer-3.5.1-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:62b55f6722735a6c472f88361cde6640608773d9443cebdbb51abf436a1fcdd3", size = 250638, upload-time = "2026-08-15T08:17:46.496Z" },
+ { url = "https://files.pythonhosted.org/packages/4d/66/70dfad64f15be09c15ccfee81330a7e515895dbe296dd23114e9a231268a/charset_normalizer-3.5.1-cp313-cp313-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:fa48b1b63d639f9483e0633e092f5851e2348c352f1f9bb6c8182f87884ef876", size = 244583, upload-time = "2026-08-15T08:17:47.963Z" },
+ { url = "https://files.pythonhosted.org/packages/c0/24/ef36367d38b9ddd4bccbf72888c342e8de1f5ae506fa0b2dcf970e2732a1/charset_normalizer-3.5.1-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:c71fb0d56c920c269cd3e2e3fe7c610e3f1fdb21a6ce60efa6430ff63676cea6", size = 242038, upload-time = "2026-08-15T08:17:49.481Z" },
+ { url = "https://files.pythonhosted.org/packages/db/ab/55e683ba0fff2e43adafc10daa3001eac90fdaa419a97227d5a7067eedde/charset_normalizer-3.5.1-cp313-cp313-musllinux_1_2_armv7l.whl", hash = "sha256:485a0d363cafefcd2538a73c7c838daa2035f09b2c9f9b5e3133f80c6aeb84c2", size = 233677, upload-time = "2026-08-15T08:17:50.845Z" },
+ { url = "https://files.pythonhosted.org/packages/bd/67/0f40eaf8d1b6e7cf15e82382a2965efaca787fc1c2794b7021d37aaf5036/charset_normalizer-3.5.1-cp313-cp313-musllinux_1_2_ppc64le.whl", hash = "sha256:5c0ea61a470e070686aa30892fed79e297d2c8d0ab46b8bcdf027d38c51da591", size = 264491, upload-time = "2026-08-15T08:17:52.61Z" },
+ { url = "https://files.pythonhosted.org/packages/5c/64/12b4c2a11ee8df4fcc518c78b0d93e3a92bd3d5253d1617ce74ff0e8c7ef/charset_normalizer-3.5.1-cp313-cp313-musllinux_1_2_riscv64.whl", hash = "sha256:90b7481fb62fbe172c558bc6fd1c4c98d82004a54a7551f20e11ac9bf0b8708c", size = 245196, upload-time = "2026-08-15T08:17:54.023Z" },
+ { url = "https://files.pythonhosted.org/packages/37/2e/651d910af6d0fba325eee1cda37ec5443462ed25360e666c144166eb6091/charset_normalizer-3.5.1-cp313-cp313-musllinux_1_2_s390x.whl", hash = "sha256:35fe081843b35aad20ffeccec3eeffbe637b15d14f3fb22cc1b59cd8ec17e93c", size = 261660, upload-time = "2026-08-15T08:17:55.491Z" },
+ { url = "https://files.pythonhosted.org/packages/90/c6/b09e05e6db7f64338e0dc067c79577b1138da86c1e38369096851d96be88/charset_normalizer-3.5.1-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:fd0350afdc3aabd5576f60ea109228bd5538139713c7b094c5cd27c73a98bc6f", size = 252618, upload-time = "2026-08-15T08:17:57.025Z" },
+ { url = "https://files.pythonhosted.org/packages/76/4e/362d4f9fdcdf5556fb2aa3ce7d4a58ebce03ed1ff03aa1d9aca8d02f13f3/charset_normalizer-3.5.1-cp313-cp313-pyemscripten_2025_0_wasm32.whl", hash = "sha256:9d9a0dc7cbe9bec24c3f767c9122c41fe5a1bc43f47cd099d00d393e09769de4", size = 140362, upload-time = "2026-08-15T08:17:58.425Z" },
+ { url = "https://files.pythonhosted.org/packages/b4/d4/703be739b26acce318bd29eb3b25b7209e1b1f527f9eae3d1f1f01fdde2b/charset_normalizer-3.5.1-cp313-cp313-win32.whl", hash = "sha256:d63600d620ad0064c3a748b950ac5ea38a80190e5498532efefa4b7b3f1da1f3", size = 177755, upload-time = "2026-08-15T08:18:00.037Z" },
+ { url = "https://files.pythonhosted.org/packages/8a/33/56d97ade41c8db611e727168c52ae46c9224c362ec28d4b65d7e9869e8da/charset_normalizer-3.5.1-cp313-cp313-win_amd64.whl", hash = "sha256:aea996a6aba25260827c9ea511d1addfde2da9eb686ac961838509086188b7e6", size = 199295, upload-time = "2026-08-15T08:18:01.506Z" },
+ { url = "https://files.pythonhosted.org/packages/5b/75/5b20dd1e6573a01a08158fe104104fa2c8abf941745596954185726cd46c/charset_normalizer-3.5.1-cp313-cp313-win_arm64.whl", hash = "sha256:fd0a274c0e5f9a21565cd9d3dd749b61f96b7aa1e20a93aa1ba4029518f2e5c0", size = 179856, upload-time = "2026-08-15T08:18:02.929Z" },
+ { url = "https://files.pythonhosted.org/packages/29/cd/2b812ce5e888f1ce69a5350281e58aab07ae64a958ecae8912f30865718e/charset_normalizer-3.5.1-cp314-cp314-android_24_arm64_v8a.whl", hash = "sha256:774d157f112367ff4abd29019f38f023c24e00e56edc7829c20e358a5a913ad8", size = 212318, upload-time = "2026-08-15T08:18:04.403Z" },
+ { url = "https://files.pythonhosted.org/packages/9e/4a/a6ee107430768a5334e6d63f31f148a04a1a491ef161a1ac9415a73f2fa8/charset_normalizer-3.5.1-cp314-cp314-android_24_x86_64.whl", hash = "sha256:26422d45fd13551cf564c58932f7d72b4f58b93b0fcf18c35ba6be12b46bb102", size = 224897, upload-time = "2026-08-15T08:18:05.997Z" },
+ { url = "https://files.pythonhosted.org/packages/c3/d9/35ae3f64f29d0179c35c3baefe575904df2913dde519129c7f75995a2b1d/charset_normalizer-3.5.1-cp314-cp314-ios_13_0_arm64_iphoneos.whl", hash = "sha256:09a7bba9f739468c8e78c36a75c33768e53cb1959fc638f510454c14683f00d5", size = 194848, upload-time = "2026-08-15T08:18:07.397Z" },
+ { url = "https://files.pythonhosted.org/packages/74/76/f2fc7380f056cc273a53af37f50d08ad54b2c59f61078f31432edcf1c2bd/charset_normalizer-3.5.1-cp314-cp314-ios_13_0_arm64_iphonesimulator.whl", hash = "sha256:4c9548dc78002099910abaebc0a72ac58b7d30931869e0351c09b507dff4ece3", size = 198163, upload-time = "2026-08-15T08:18:08.989Z" },
+ { url = "https://files.pythonhosted.org/packages/e9/40/095ce62fa078483cccc1fa2b36e6bc9580b85422a20ee9f925341c50e44f/charset_normalizer-3.5.1-cp314-cp314-macosx_10_15_universal2.whl", hash = "sha256:c428c6c31eb5f4277d7f8eccaf767fbd548ddd5ce3c8b4f4cbbfab3d96b5904c", size = 341823, upload-time = "2026-08-15T08:18:10.458Z" },
+ { url = "https://files.pythonhosted.org/packages/f1/5a/0e58b1c04a1596e0256f407274a92d5fb2ee21324409d1fab1da48a65b5b/charset_normalizer-3.5.1-cp314-cp314-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:2f06b7eae9dbe77fe1d644ca244dad508de8d302870a43f3c559b521270938a0", size = 242458, upload-time = "2026-08-15T08:18:11.989Z" },
+ { url = "https://files.pythonhosted.org/packages/22/95/b4618ce912e6db0b1aae89ba788e38e8a7eba0f3025cc66e8c0699f977b2/charset_normalizer-3.5.1-cp314-cp314-manylinux2014_armv7l.manylinux_2_17_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:6b7430cf5728e68f6c462254009a6ef4086e1bea43cf2f57aa9c55fb4f50ff96", size = 226717, upload-time = "2026-08-15T08:18:13.401Z" },
+ { url = "https://files.pythonhosted.org/packages/8a/76/c681192bbda3d55356db5dadd64381d5202b37c6b598fcda5282e88b5d3d/charset_normalizer-3.5.1-cp314-cp314-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:ab743e9bc90c1f73552ec33e10e3331315acd2c397b36065b591b0181de533cc", size = 266111, upload-time = "2026-08-15T08:18:14.961Z" },
+ { url = "https://files.pythonhosted.org/packages/88/be/55127bfca72c0cff6c022488d140d7c5b04c771e3b72e9bdb4836d54979d/charset_normalizer-3.5.1-cp314-cp314-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:f6f7deae3feb4edfa2efaf7c574fe88cbf055038a6abdb40188e4fff66d5699f", size = 263128, upload-time = "2026-08-15T08:18:16.515Z" },
+ { url = "https://files.pythonhosted.org/packages/e0/91/39c3af510b0aa32bbda03374259200f28430febfd1bf5e511fe765282ce5/charset_normalizer-3.5.1-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:15f024313246a4ed976c60f440bb8d257815513a681d212ff74fd46f7d715a90", size = 251240, upload-time = "2026-08-15T08:18:18.127Z" },
+ { url = "https://files.pythonhosted.org/packages/1c/a5/cbe418bbc6ecdfc3e05a0116002897c4b403a5e838d697e64c78e9f0190d/charset_normalizer-3.5.1-cp314-cp314-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:823f82903d189af463d7df250ef1f7f696f3cee08cc8d91deb565e8d425f6506", size = 245282, upload-time = "2026-08-15T08:18:19.625Z" },
+ { url = "https://files.pythonhosted.org/packages/cc/a4/689bb42e8e7cd492f3cb64907c6bc00ad247ec9a3628cd3f8eed126e8ae1/charset_normalizer-3.5.1-cp314-cp314-musllinux_1_2_aarch64.whl", hash = "sha256:01e93745f7f219b703b60ba7afead36cfc4242782be5af484673fc500df12da5", size = 244597, upload-time = "2026-08-15T08:18:21.121Z" },
+ { url = "https://files.pythonhosted.org/packages/c1/ce/9962938e179cf9f699d3f1e7b3114b5d7642dee6a893745229f9dd04f274/charset_normalizer-3.5.1-cp314-cp314-musllinux_1_2_armv7l.whl", hash = "sha256:329fc3ccb63ad22d867d84c2adea759a64079a37ba4a343433b02c7a2816871e", size = 231376, upload-time = "2026-08-15T08:18:22.57Z" },
+ { url = "https://files.pythonhosted.org/packages/85/54/46000450ada53bd9eac5429a2c8c54cd2d9b39c0c255f229aea9af0948a5/charset_normalizer-3.5.1-cp314-cp314-musllinux_1_2_ppc64le.whl", hash = "sha256:bb57753e36e4855b8ca375069482250a6246372331a3e4f3407eaebb007443f5", size = 266715, upload-time = "2026-08-15T08:18:24.235Z" },
+ { url = "https://files.pythonhosted.org/packages/3d/bb/618749d70f792b44252a777bf89bfb86823b9bbc1ea13fe8ce759b07f38a/charset_normalizer-3.5.1-cp314-cp314-musllinux_1_2_riscv64.whl", hash = "sha256:fce8cbd4997efeb450bd298b54f755dcdff18d496f7a5ddbb4867c6d7c88fdc3", size = 245848, upload-time = "2026-08-15T08:18:25.726Z" },
+ { url = "https://files.pythonhosted.org/packages/7e/3f/ffb64458527c7668031d5eb095d978de561958dc9f5b53f8e488a533e603/charset_normalizer-3.5.1-cp314-cp314-musllinux_1_2_s390x.whl", hash = "sha256:6c9cdde8becb25a7fde49924511aa2644d6f8081cc8df8e9452724303348d8e3", size = 264521, upload-time = "2026-08-15T08:18:27.193Z" },
+ { url = "https://files.pythonhosted.org/packages/4f/ab/74a55fd803916a35ac461daf002708191aac19b546b80dc8cabfedc63d98/charset_normalizer-3.5.1-cp314-cp314-musllinux_1_2_x86_64.whl", hash = "sha256:9ac4444d8d4fd4c4bd08bf451ed3167aa9e7ec6cdb41b648794f1d1103652e36", size = 253054, upload-time = "2026-08-15T08:18:28.568Z" },
+ { url = "https://files.pythonhosted.org/packages/a0/2a/6a9034b7d3c60b17499afb482df5878bf9fa20b50cc3887d5ef017a833db/charset_normalizer-3.5.1-cp314-cp314-pyemscripten_2026_0_wasm32.whl", hash = "sha256:f03ac127268b43ef4fe9e6ab6794a6794b49485a0cc0c1db79876d2f33f75bc7", size = 140580, upload-time = "2026-08-15T08:18:30.214Z" },
+ { url = "https://files.pythonhosted.org/packages/f3/46/1d362e1a00d035d66b9869e1281eee115907f7e390a16a07824ab5737360/charset_normalizer-3.5.1-cp314-cp314-win32.whl", hash = "sha256:1f5883d77fd409a261abb5dc8ccbe335720d798b1de4abb3b1d47ccbbc76b53b", size = 180325, upload-time = "2026-08-15T08:18:31.877Z" },
+ { url = "https://files.pythonhosted.org/packages/7a/7c/4938c329b6a9d446f6a59aa2092ff7118f274209b5ed0e26893d1d30a63c/charset_normalizer-3.5.1-cp314-cp314-win_amd64.whl", hash = "sha256:c658c50ac0c98cd755a2dd50b7977d3bca7df401dcc47fbdfa87db53ef7d4e8b", size = 204175, upload-time = "2026-08-15T08:18:33.466Z" },
+ { url = "https://files.pythonhosted.org/packages/ac/33/eeb384dbd8dec570661354592f4f2e1b2fcc92585624d146a000caf53841/charset_normalizer-3.5.1-cp314-cp314-win_arm64.whl", hash = "sha256:4bea7f8ebe90bbd7f0e4a2de42ca6924ba23e3e76418c408ff82f1d46fabd687", size = 184123, upload-time = "2026-08-15T08:18:34.913Z" },
+ { url = "https://files.pythonhosted.org/packages/1c/6c/c73fa9d5a85f6ab05395de61c5f6984e0a9ff40bb5ff888d46dff02526c6/charset_normalizer-3.5.1-cp314-cp314t-macosx_10_15_universal2.whl", hash = "sha256:fbc597639158fd7c14d55e808718848319540f51b0e6746e3eefa59723a4a348", size = 381682, upload-time = "2026-08-15T08:18:36.349Z" },
+ { url = "https://files.pythonhosted.org/packages/30/c7/63565f860921457feba93bae6c86fb7746deb4cffeed2f375cb845318146/charset_normalizer-3.5.1-cp314-cp314t-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:e71c909f353863b2b89c83de2ebed71ea6d0df8a6ef65a128193c5e650766bef", size = 240826, upload-time = "2026-08-15T08:18:37.887Z" },
+ { url = "https://files.pythonhosted.org/packages/06/ae/7ae8807410dfa33f8e6f1715740adeaafa8a816cc4cb33508f54b1f7c896/charset_normalizer-3.5.1-cp314-cp314t-manylinux2014_armv7l.manylinux_2_17_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:7ac76cf9afd34929d76eb7fcb63be476a4853d8a96f0dcf2d0db68a0cbdf9885", size = 227861, upload-time = "2026-08-15T08:18:39.315Z" },
+ { url = "https://files.pythonhosted.org/packages/e9/a3/887c1642f0da26000b0e0652d91071113c0e72cea33952e225cf589f49a9/charset_normalizer-3.5.1-cp314-cp314t-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:a3a370082ce34d0612f421e15fe011c53bb1feff21a26d06ad4fb244dab5a375", size = 260758, upload-time = "2026-08-15T08:18:40.88Z" },
+ { url = "https://files.pythonhosted.org/packages/3e/11/e6f5b9a3d0e55b0ef7505cd3765cdd48f22db89994c947b316f52f801fd8/charset_normalizer-3.5.1-cp314-cp314t-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:256dd4d85d9e4dc595e2bc983c980e73f62ddeb3165c58b4c3dfe78c5c8548c1", size = 259950, upload-time = "2026-08-15T08:18:42.351Z" },
+ { url = "https://files.pythonhosted.org/packages/1b/ee/e4e10a94d51cd1ee638aa7e00b65399e6b2a4e8376ab6d2eac9f95586671/charset_normalizer-3.5.1-cp314-cp314t-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:58d4aa13a59c969dbfdf9e6a9560e242cbfd9e8a8f50c2747714df1a423adf65", size = 249329, upload-time = "2026-08-15T08:18:43.914Z" },
+ { url = "https://files.pythonhosted.org/packages/c4/25/d5f4198819e6059735a84e8d0bfb72dc33976da67b97adcd3fb5a5e07ec6/charset_normalizer-3.5.1-cp314-cp314t-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:0c6dfb5ca6723eeed15aa8e564a014d69fcb8812f94eef11fe3631e0508199f5", size = 243137, upload-time = "2026-08-15T08:18:45.368Z" },
+ { url = "https://files.pythonhosted.org/packages/a5/e9/e925ca7569cf9fb9701fd82503fee73eea5268fdb856bdd64947092d3daa/charset_normalizer-3.5.1-cp314-cp314t-musllinux_1_2_aarch64.whl", hash = "sha256:c010f5581d9c612804cc59fcf7b524b707fbcb72828551237ab545bb5c7034af", size = 242820, upload-time = "2026-08-15T08:18:46.842Z" },
+ { url = "https://files.pythonhosted.org/packages/34/17/672c251a888ed2aebcdd2fe830ad0104e25ff83c43f5c4f9c15e9fc6853c/charset_normalizer-3.5.1-cp314-cp314t-musllinux_1_2_armv7l.whl", hash = "sha256:52ec005752a56ae79547a05c0139ca2501a0c866390b6115008456b9f0e7cde1", size = 230504, upload-time = "2026-08-15T08:18:48.353Z" },
+ { url = "https://files.pythonhosted.org/packages/3f/fc/f6a85abebd42ce4da2f1db0aa56cc6a0df1995e318b3875d14401b8381d1/charset_normalizer-3.5.1-cp314-cp314t-musllinux_1_2_ppc64le.whl", hash = "sha256:2bced4061f000f7187254a02ad3433ae17eaf991747ceea2f478422590a5bba9", size = 263087, upload-time = "2026-08-15T08:18:49.859Z" },
+ { url = "https://files.pythonhosted.org/packages/98/66/7c42677e739ba66746b297e2046918d793078094dc239e1e72768cffccc6/charset_normalizer-3.5.1-cp314-cp314t-musllinux_1_2_riscv64.whl", hash = "sha256:9eea3ab2597a5e65fe65296e2d6a84570845a6b55532d90333d740d48bbc850a", size = 243269, upload-time = "2026-08-15T08:18:51.601Z" },
+ { url = "https://files.pythonhosted.org/packages/de/d8/a50b79237f417af10f8c2a501ce8d1ca87829a22e69117891ca4ba20a69e/charset_normalizer-3.5.1-cp314-cp314t-musllinux_1_2_s390x.whl", hash = "sha256:496846868fea80e479324862fa877f02411f2fd0f83b79ccee2607aa68b2a032", size = 258766, upload-time = "2026-08-15T08:18:53.23Z" },
+ { url = "https://files.pythonhosted.org/packages/2e/1d/0fc91aeaeb3c83b748f532399ce67cf84604b48297405d740000f7a9e786/charset_normalizer-3.5.1-cp314-cp314t-musllinux_1_2_x86_64.whl", hash = "sha256:85d5855daafc240cc045c026d7a15fd198a09b0fc8ff6f5ecbb5297b509cb11e", size = 250814, upload-time = "2026-08-15T08:18:54.768Z" },
+ { url = "https://files.pythonhosted.org/packages/ae/10/3d8c777cf9024615295aa1b808324ad5b4a77855869c00824bad74ffaf8a/charset_normalizer-3.5.1-cp314-cp314t-win32.whl", hash = "sha256:58d3e12c88e0950bca850ae1f7c256055c097639c2edb9eb123af9807d8b15e4", size = 191074, upload-time = "2026-08-15T08:18:56.305Z" },
+ { url = "https://files.pythonhosted.org/packages/4d/81/ae557d3c44d1a1d688696d60563413a0866a91b7ebc50f20df838be3d8c8/charset_normalizer-3.5.1-cp314-cp314t-win_amd64.whl", hash = "sha256:acaf604462bf330b0d07e7a07c1d6e4adac79e5fb13e9c5140590542cafacc00", size = 216476, upload-time = "2026-08-15T08:18:57.889Z" },
+ { url = "https://files.pythonhosted.org/packages/27/e9/61c01fb8b804692569c036b3fc50495814502dcf13a60649c6055390b02c/charset_normalizer-3.5.1-cp314-cp314t-win_arm64.whl", hash = "sha256:fdb8a068947befafba9952162645dc2fecaeb400e64584829ed5e9b2fbe21a7f", size = 194115, upload-time = "2026-08-15T08:18:59.418Z" },
+ { url = "https://files.pythonhosted.org/packages/4a/4e/8544831ef59d8f27ce92c80871380fdacc8076a8a56ed62f82e54f991333/charset_normalizer-3.5.1-cp315-cp315-macosx_10_15_universal2.whl", hash = "sha256:9085f87b0e38a2b92b8923059b4e8789fe40d9279712d15dcc670048d77079af", size = 342048, upload-time = "2026-08-15T08:19:01.054Z" },
+ { url = "https://files.pythonhosted.org/packages/7f/a6/e3b46852424246065355644f4fb6dbccc0239a42a2eee27ecfc8957f0bcd/charset_normalizer-3.5.1-cp315-cp315-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:2679de311c7946dde5d3b6f44941844133ff5c7cb86099c0061ab1e8901c20a8", size = 242997, upload-time = "2026-08-15T08:19:02.492Z" },
+ { url = "https://files.pythonhosted.org/packages/03/3b/0cc9a26777334ab2f2e3089b948bbf4e4fe72ea70b897715ef6415043ec8/charset_normalizer-3.5.1-cp315-cp315-manylinux2014_armv7l.manylinux_2_17_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:baf3775a2635e5a11fbd5e4e64ee69c7e86875d224a5c72aca4c141064589a90", size = 237014, upload-time = "2026-08-15T08:19:03.943Z" },
+ { url = "https://files.pythonhosted.org/packages/8c/c2/027335f0aa337a2a2e121bac1ad88c4f02ba6053ea0926802784f3db11af/charset_normalizer-3.5.1-cp315-cp315-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:8ac8c94b6539074e0f40899301273ac8402b9b3e01c7b7ba269ff30340aaaf20", size = 266174, upload-time = "2026-08-15T08:19:05.598Z" },
+ { url = "https://files.pythonhosted.org/packages/86/d3/e367787febe4e74769dec0f406f2c3c8d1b955fce5aee1fd0f94e8367a45/charset_normalizer-3.5.1-cp315-cp315-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:8fe532b3c966d1fb794e0698e4589d0444017ae77fc0b31edea13c0e35bcc449", size = 263361, upload-time = "2026-08-15T08:19:07.251Z" },
+ { url = "https://files.pythonhosted.org/packages/af/3d/391b193eb9f3e84b02f9314088c386debdc0debee843535aaea2e2c6715d/charset_normalizer-3.5.1-cp315-cp315-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:5c84bec0ab5ae0c64bfe73a7d2adcb5ce73b467523fc27fd6a28ab2aa6cbe35a", size = 252143, upload-time = "2026-08-15T08:19:08.816Z" },
+ { url = "https://files.pythonhosted.org/packages/2e/57/de221f1745a90d418199761967e2776bfe2c275a1194220985e8c1d37833/charset_normalizer-3.5.1-cp315-cp315-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:854066be00447fa8de2ccbbe893e2ffc4b123ef16d897af794c1e18bd4a714b0", size = 252086, upload-time = "2026-08-15T08:19:10.255Z" },
+ { url = "https://files.pythonhosted.org/packages/c8/e3/d119f86a01f9331e8186175f24873b1d74a7ee9e2e4b4d68f9947dae5afd/charset_normalizer-3.5.1-cp315-cp315-musllinux_1_2_aarch64.whl", hash = "sha256:21b82d8082f6f5e7f456ef0bd16323d08de1266efbfeb476e64b2a91d1471a4e", size = 245231, upload-time = "2026-08-15T08:19:11.807Z" },
+ { url = "https://files.pythonhosted.org/packages/26/de/d8e48c135ae480879539cdb179c8d3b50c7879497d75dd899b5763b69cee/charset_normalizer-3.5.1-cp315-cp315-musllinux_1_2_armv7l.whl", hash = "sha256:838648accb3a7fd9803fd45c87bce8509648eb0c11bc34e216141300977244f2", size = 241546, upload-time = "2026-08-15T08:19:13.416Z" },
+ { url = "https://files.pythonhosted.org/packages/67/c4/217755fd1abc50d326c252922cd642002758095a81ff45010337b8b3ef65/charset_normalizer-3.5.1-cp315-cp315-musllinux_1_2_ppc64le.whl", hash = "sha256:195ce897c6153c0700078142cf8efe3e6454ca4cf4357499e4078dfd83396626", size = 267033, upload-time = "2026-08-15T08:19:14.981Z" },
+ { url = "https://files.pythonhosted.org/packages/b8/d7/34d8e404e358d2adcc5a228c2134643af00104c8fb0bf525f3688d756f05/charset_normalizer-3.5.1-cp315-cp315-musllinux_1_2_riscv64.whl", hash = "sha256:978eab16f55b4ab2c2a745be9a0a840bf8f09a7f227d9c76eb30214d078865a5", size = 252045, upload-time = "2026-08-15T08:19:16.618Z" },
+ { url = "https://files.pythonhosted.org/packages/5e/fa/40414471acf0aa0692ca77305aa00e434fcd8288f0941c93c30e9a5f8f2f/charset_normalizer-3.5.1-cp315-cp315-musllinux_1_2_s390x.whl", hash = "sha256:cc0329df4caaceb950d2f580b5ac716a377f7059624a0bafaeaf8a218c6ed774", size = 264866, upload-time = "2026-08-15T08:19:18.101Z" },
+ { url = "https://files.pythonhosted.org/packages/32/90/fcc850bae791abd2e0c041847f13e270aa08692a79f3e00de6d2dce1cb50/charset_normalizer-3.5.1-cp315-cp315-musllinux_1_2_x86_64.whl", hash = "sha256:687c9ca3035544b113bea2055e180af96fb63c0c476e22a9180f51925186e7b7", size = 253932, upload-time = "2026-08-15T08:19:19.734Z" },
+ { url = "https://files.pythonhosted.org/packages/af/af/53afe99068b3c10b4cbae592a52ef72a7c92c0188440e83ee3a078fd8f75/charset_normalizer-3.5.1-cp315-cp315-win32.whl", hash = "sha256:706bfd38730a5ac7a365793269a00f4e988178cec121391f4248d84ad8c972e9", size = 180320, upload-time = "2026-08-15T08:19:21.37Z" },
+ { url = "https://files.pythonhosted.org/packages/c9/bc/f46a132041b29e4a8779ed712d3df1bf112e94ca8de58b66d7ec2c0cf8b9/charset_normalizer-3.5.1-cp315-cp315-win_amd64.whl", hash = "sha256:92caef967d287a407085d61176fce4012b1dd62daed4eb6d5ceb26d3d2538712", size = 204174, upload-time = "2026-08-15T08:19:23.088Z" },
+ { url = "https://files.pythonhosted.org/packages/a1/5d/9ed554480eda8e447b673648628fdc29574d23dbad01fe11837adedd1cae/charset_normalizer-3.5.1-cp315-cp315-win_arm64.whl", hash = "sha256:5fc45d653ea8c9a20479167e11d4a0f8cb2fa3470737ab6f9c827532313187b7", size = 184126, upload-time = "2026-08-15T08:19:24.471Z" },
+ { url = "https://files.pythonhosted.org/packages/3b/32/9b8929bf384061ee1fe5d9c27c6f9776d3d824039ad4e14c88ec00c7808e/charset_normalizer-3.5.1-cp315-cp315t-macosx_10_15_universal2.whl", hash = "sha256:59171c6e45bf07d0d5cab3b0bf81d945035530f6873398b3b531c31184d46663", size = 381441, upload-time = "2026-08-15T08:19:26.038Z" },
+ { url = "https://files.pythonhosted.org/packages/96/10/e9aa7923d3ddac652c99a1c5f7be494e737e151566a44abe018daf757f2c/charset_normalizer-3.5.1-cp315-cp315t-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:9dbdd9205662134957cf0c324f639bdc5031c0ca056e2369e238db75187c0f11", size = 241742, upload-time = "2026-08-15T08:19:27.532Z" },
+ { url = "https://files.pythonhosted.org/packages/28/53/a2d249ebddf47b889a100c0bdcb61a2f9dbb8bc24ef325cc062e4f476877/charset_normalizer-3.5.1-cp315-cp315t-manylinux2014_armv7l.manylinux_2_17_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:e4b018dc5a0eee4676e38fe84a47a427816c590b93b55d9025274ec4d6ffc2dc", size = 235298, upload-time = "2026-08-15T08:19:29.274Z" },
+ { url = "https://files.pythonhosted.org/packages/7d/07/469f78af590f7d5cd48e20d8dbfa3d66deeff9ba37768c04d886b5afd45c/charset_normalizer-3.5.1-cp315-cp315t-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:ced3fdd71aaa83ce593746c2edb42b7a59cb4c19c8b5c407781c72e493aae55a", size = 262500, upload-time = "2026-08-15T08:19:30.955Z" },
+ { url = "https://files.pythonhosted.org/packages/55/66/3bb56a47f7dcba014055b1a1d33c6f08bbe9c1e74dba154cfa25f90ae885/charset_normalizer-3.5.1-cp315-cp315t-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:19a3dd5aa73cef1c99687c4fc57db016a9c17104ae1185da88ba566a5d3bebe4", size = 258888, upload-time = "2026-08-15T08:19:32.458Z" },
+ { url = "https://files.pythonhosted.org/packages/ff/c1/2adc2800903fb013210349313b710a5376856578d9e33e6b9a1d8b36714a/charset_normalizer-3.5.1-cp315-cp315t-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:cc5d36d96478aa9c60654bd932525bf32964c62a7281eafdf16d85003a8d6004", size = 250243, upload-time = "2026-08-15T08:19:33.94Z" },
+ { url = "https://files.pythonhosted.org/packages/95/b5/a18d0dd1157ab655cc2cb14a545f4a4784bbad70ab3502412e36097502d9/charset_normalizer-3.5.1-cp315-cp315t-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:04368edf83514385ffc3e1cfd4546e595f4f1272dd23ba437a93a9cc3741d47b", size = 249871, upload-time = "2026-08-15T08:19:35.413Z" },
+ { url = "https://files.pythonhosted.org/packages/ad/c3/525f508cd1e58d0450ac55ed40ac75bc3a97482c59def5278456a5fbf03c/charset_normalizer-3.5.1-cp315-cp315t-musllinux_1_2_aarch64.whl", hash = "sha256:9b5db6052055d34d41230fb78d7c439c23dc536a9896f6cb039e8dd92cfc1263", size = 243580, upload-time = "2026-08-15T08:19:36.886Z" },
+ { url = "https://files.pythonhosted.org/packages/7c/c1/49a91fe7e97c8140094ca5c64161ab623a70d9f636bf834eace14048acb5/charset_normalizer-3.5.1-cp315-cp315t-musllinux_1_2_armv7l.whl", hash = "sha256:252d099029bcbea642f2a06c4ed5046bdf8b5a8150b64afa5e027e88b106e5ee", size = 239807, upload-time = "2026-08-15T08:19:38.392Z" },
+ { url = "https://files.pythonhosted.org/packages/d3/58/56a48c296601274c4689b864a8e2dfb209b81dfcb39472753ce95eea662b/charset_normalizer-3.5.1-cp315-cp315t-musllinux_1_2_ppc64le.whl", hash = "sha256:6199d5606e2bbf2b096cf64d03f8b6790c91081d5ac866b8e7bb6422738cc60c", size = 264083, upload-time = "2026-08-15T08:19:39.856Z" },
+ { url = "https://files.pythonhosted.org/packages/10/4c/dc48409274a1817ff349711d26c62aa0c597df865d4d69ef79160c859193/charset_normalizer-3.5.1-cp315-cp315t-musllinux_1_2_riscv64.whl", hash = "sha256:77efcff2b23071c349402ac1066667a3d011f62398d81408c9b88ad991747c9e", size = 250317, upload-time = "2026-08-15T08:19:41.53Z" },
+ { url = "https://files.pythonhosted.org/packages/81/58/d325912115caec62d6bdd77bbab5e0b7da5d234a9f20affdffcbcb530d0b/charset_normalizer-3.5.1-cp315-cp315t-musllinux_1_2_s390x.whl", hash = "sha256:a5cbd90ecf0fc62e64726917ad083b73001f0563657a87ec3c0b504e277dc90d", size = 258173, upload-time = "2026-08-15T08:19:43.07Z" },
+ { url = "https://files.pythonhosted.org/packages/34/f7/b13b1ccae2c8ec63980d13be1890eb73f8aeabbfce02a24aabc0908788f5/charset_normalizer-3.5.1-cp315-cp315t-musllinux_1_2_x86_64.whl", hash = "sha256:4d26f14f041e83dd8edfd61f4cd4fa7285d31798b5bf1f28e70c367ba6c41d61", size = 251960, upload-time = "2026-08-15T08:19:44.587Z" },
+ { url = "https://files.pythonhosted.org/packages/1e/25/ed3f9919c5aef8cc818be1f972f565f7610d7b2076b8ebb98839516ffc3c/charset_normalizer-3.5.1-cp315-cp315t-win32.whl", hash = "sha256:ac13b004224fb341e1e25a1ed5e19d32f57cdb2a403e01f003b46f051a550f6f", size = 191186, upload-time = "2026-08-15T08:19:46.293Z" },
+ { url = "https://files.pythonhosted.org/packages/69/d5/43c2b3e9d8267092b913eb8b0603f0f71993c395632886bd37a7223f96cf/charset_normalizer-3.5.1-cp315-cp315t-win_amd64.whl", hash = "sha256:35aea775dc2bd5f54cd84a1cd2696cc3207c479cb9cf0bd346f0d343e4300ddb", size = 215947, upload-time = "2026-08-15T08:19:47.853Z" },
+ { url = "https://files.pythonhosted.org/packages/a8/76/9aad3e9c8865e5e0efa9a7f6f81c37a67635a985145ecd44528a81e088ee/charset_normalizer-3.5.1-cp315-cp315t-win_arm64.whl", hash = "sha256:fb78f6e7fcd8ad785d28cd577168bc1aaee827b25bb8755638f694794ea98f0a", size = 193909, upload-time = "2026-08-15T08:19:49.383Z" },
+ { url = "https://files.pythonhosted.org/packages/5b/97/fb4e82231aba271ffd775a1b4993b0defc4e3059f286ae41d9433409fe85/charset_normalizer-3.5.1-cp37-abi3-macosx_10_9_universal2.whl", hash = "sha256:41876ee62a3dddf48ff1121ad8f0798032aa03f2fd35f21f34a4cab14f18d8d2", size = 331467, upload-time = "2026-08-15T08:19:50.959Z" },
+ { url = "https://files.pythonhosted.org/packages/9f/2f/fe3f187327aac18e2d54e9d2b08e15d27bf9b642d9e51c219f130fc34d1a/charset_normalizer-3.5.1-cp37-abi3-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl", hash = "sha256:a6dac12ff6b846103483683f60c5f8fee205121adc58ffd87e90a90a3af69e99", size = 253057, upload-time = "2026-08-15T08:19:52.654Z" },
+ { url = "https://files.pythonhosted.org/packages/d7/c7/9e48cee5c161fe24da823b61bf381921d77cb994a0a4de148e95018c1984/charset_normalizer-3.5.1-cp37-abi3-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:cee5dd7c6fb5dd52a0fe2a740f9bc6e3593f5f8b1788bde49de02086f30182b2", size = 240930, upload-time = "2026-08-15T08:19:54.163Z" },
+ { url = "https://files.pythonhosted.org/packages/49/e0/716601f3cc69be7b198951150c75ead1ece33c3c8036ff6ffa46029659a0/charset_normalizer-3.5.1-cp37-abi3-manylinux2014_armv7l.manylinux_2_17_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:343fb4f2821043bd87095f7b08a1a181febc8e36ac64212143bbfd0a0e1bc235", size = 230822, upload-time = "2026-08-15T08:19:55.807Z" },
+ { url = "https://files.pythonhosted.org/packages/d3/05/71bfc5caa0abcc45aea1f6a4d50ac68e59605ddc7666fe8494f4cd229665/charset_normalizer-3.5.1-cp37-abi3-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:ae4a097991662cd4fff0ddc74e0fe7874f82e00042fa0ea00855645ed0c79598", size = 260037, upload-time = "2026-08-15T08:19:57.312Z" },
+ { url = "https://files.pythonhosted.org/packages/c3/92/de7e32ed05341e7a9c4c877c318418197b7f2d66a3b68d561bf2ac57ca3e/charset_normalizer-3.5.1-cp37-abi3-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:4b599739b93b2cbeded49645ae3c8d1405c29ddfbceac1545c87a3f9580a9e96", size = 255097, upload-time = "2026-08-15T08:19:59.056Z" },
+ { url = "https://files.pythonhosted.org/packages/f5/7b/ade0a122600319dfa0b1000ab0f9731c94a817904cf3c5de408c73a4ede7/charset_normalizer-3.5.1-cp37-abi3-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:b39b69b347e5e47a3b5b8cfc005c68c1ba347474e3960236c4944a8ecd174962", size = 250166, upload-time = "2026-08-15T08:20:00.612Z" },
+ { url = "https://files.pythonhosted.org/packages/75/9c/019fbb9f4834491a160951349b1a3714439376f66e5f7cf18b4f18f0c7aa/charset_normalizer-3.5.1-cp37-abi3-musllinux_1_2_aarch64.whl", hash = "sha256:a2028475ba855475b8b4d3cfeb4994269c967aea8b9892dfba907f4263a863a3", size = 241821, upload-time = "2026-08-15T08:20:02.321Z" },
+ { url = "https://files.pythonhosted.org/packages/2b/b8/11d4840bfc99330cc7fbcc2681ee5a044553a6e77655508d8f9b2bff7b34/charset_normalizer-3.5.1-cp37-abi3-musllinux_1_2_armv7l.whl", hash = "sha256:36047af20e17097c3bb9476c2b7655f2f7aa51322c0ba58c07695bedf755a950", size = 232529, upload-time = "2026-08-15T08:20:04.008Z" },
+ { url = "https://files.pythonhosted.org/packages/18/96/2b3a21492d9f65171ac75d872f5018260013d00bfa0ff70ec9f179148cbd/charset_normalizer-3.5.1-cp37-abi3-musllinux_1_2_ppc64le.whl", hash = "sha256:4c4fb141a727957c93edfe5c32a26ceb6b5f6461d67146e2d39f51e16170bea8", size = 260348, upload-time = "2026-08-15T08:20:05.877Z" },
+ { url = "https://files.pythonhosted.org/packages/d6/aa/a69a2028e8bd052476c245460ab19d7de595de084dd968f2d75cd50c3e25/charset_normalizer-3.5.1-cp37-abi3-musllinux_1_2_riscv64.whl", hash = "sha256:2f293479cce755c75f1697e87c409b7ae4c555c7dfecb6e988ad13abba943031", size = 247234, upload-time = "2026-08-15T08:20:07.487Z" },
+ { url = "https://files.pythonhosted.org/packages/35/8a/3d130aeabcaf3d2466af76b7b141c08d9e89c9016ab4b7cdd0f7dc2d1c62/charset_normalizer-3.5.1-cp37-abi3-musllinux_1_2_s390x.whl", hash = "sha256:3588e376b3ea2eea84976f67273d679f229e24c66dce7b82ae45aef04ff6e072", size = 256917, upload-time = "2026-08-15T08:20:09.142Z" },
+ { url = "https://files.pythonhosted.org/packages/80/c2/a7379b840292d0c1ab9fbd17d1f3967aa81794dc95bc74be8999d7fedcf7/charset_normalizer-3.5.1-cp37-abi3-musllinux_1_2_x86_64.whl", hash = "sha256:e199fb99720074809a7720f1c0b4d919eea8b87e88713e0f8f602f7bef543d9d", size = 254846, upload-time = "2026-08-15T08:20:10.727Z" },
+ { url = "https://files.pythonhosted.org/packages/01/65/d43b714731bb2f40d4053dfa00ecfc1c5a301f8e3316c5db3a09af59fe94/charset_normalizer-3.5.1-cp37-abi3-win32.whl", hash = "sha256:dd732602a7009217f658d5863d12d79d373a4de0eebc111094bcdd3bb8e0a6cc", size = 174216, upload-time = "2026-08-15T08:20:12.334Z" },
+ { url = "https://files.pythonhosted.org/packages/35/4f/b911ed898b26a09789eba9c9200c999aff6c61b4bafaf4838e56d1a1e1a3/charset_normalizer-3.5.1-cp37-abi3-win_amd64.whl", hash = "sha256:70055ff39b97c99e7ae40ea3e393fb62aa2e44dbd9b29f8d14f42fb0025c3959", size = 199764, upload-time = "2026-08-15T08:20:13.908Z" },
+ { url = "https://files.pythonhosted.org/packages/f0/a7/920baf467bfd9bf689f3b318340f37aee4572a71f162bd8db51da55ba4fa/charset_normalizer-3.5.1-cp37-abi3-win_arm64.whl", hash = "sha256:87e4f41d375c0b9be2fb5251aee4b8a689169e134535aed81bf085c3b647451e", size = 287318, upload-time = "2026-08-15T08:20:15.551Z" },
+ { url = "https://files.pythonhosted.org/packages/d0/91/bc145e42f93d6601b9a26f5421af2d7c3093ae6e6d03b8e583c9cebbf530/charset_normalizer-3.5.1-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:85de3134b5379856e323ba37c19c9256d39425f7b76a63af52b09fb4664c2e8f", size = 368830, upload-time = "2026-08-15T08:20:17.272Z" },
+ { url = "https://files.pythonhosted.org/packages/58/67/62df6a907162461f372e95cbbc1bc64c7457e86abcc851feb84409a11eff/charset_normalizer-3.5.1-cp39-cp39-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:3e5e1224c0a6a90e05843e07adfec669edebec17801c67072f51e59561d63c0b", size = 251725, upload-time = "2026-08-15T08:20:18.942Z" },
+ { url = "https://files.pythonhosted.org/packages/a4/2d/64a13610fd28c80f97aff0ea5cf31cf255d220a8243ac0c78c66fd3d874d/charset_normalizer-3.5.1-cp39-cp39-manylinux2014_armv7l.manylinux_2_17_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:5e2d0e146dcb57034f8b97dc58d2d512cb90aba253960ce449f695fec6a82c6f", size = 241254, upload-time = "2026-08-15T08:20:20.641Z" },
+ { url = "https://files.pythonhosted.org/packages/84/79/a88c181e7f4a7579696fedb34fa63844ede2ff7caf44c5f321cec57d92fb/charset_normalizer-3.5.1-cp39-cp39-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:e06efa066f7dbadbc84ebc126a97c452a6451dfcf589d89d788484949e1cf795", size = 281944, upload-time = "2026-08-15T08:20:22.219Z" },
+ { url = "https://files.pythonhosted.org/packages/64/60/7c5469f455f4fa65d39da9f088dffc1a586560bfb9e3279441eed78bd469/charset_normalizer-3.5.1-cp39-cp39-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:994e883d17c559cdfd38c84003c8b27d25424a1077272a17e7cd27bfe0bf57b2", size = 278350, upload-time = "2026-08-15T08:20:23.744Z" },
+ { url = "https://files.pythonhosted.org/packages/9f/cf/7568d8c1c9100b7c8bab9035215a6b36b32b39bb50cabaee9389c4606887/charset_normalizer-3.5.1-cp39-cp39-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:789b8982559ae28dad2356519f841655756cdcd96616410590ae0b17454ee64f", size = 262670, upload-time = "2026-08-15T08:20:25.387Z" },
+ { url = "https://files.pythonhosted.org/packages/fa/ec/3a616c3806ec3f957337e6bf874ae7d64693185039edfbbf87103b8c8631/charset_normalizer-3.5.1-cp39-cp39-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:a951ad59cad9145664a730d3036b40b844e74d2d3683da40111463cd3a83845d", size = 260445, upload-time = "2026-08-15T08:20:27.012Z" },
+ { url = "https://files.pythonhosted.org/packages/b2/e0/489aa2a33b944077d4c2c705c245d833dc12cd571a52fc67eaf273f5373a/charset_normalizer-3.5.1-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:55261ac0d2941c42f196dd576f543d87a8ee03cd6f5e30dfb4d807b2e3b9121a", size = 253263, upload-time = "2026-08-15T08:20:28.6Z" },
+ { url = "https://files.pythonhosted.org/packages/d3/bc/f528dfb78d3bfdc8ee6aeea81eb22e6918d03e4442d373a79717f17de45e/charset_normalizer-3.5.1-cp39-cp39-musllinux_1_2_armv7l.whl", hash = "sha256:5ca0555312ae2fe82715cada7fac375530c2f3349e1eaa1bcb33d0283ac79a18", size = 242879, upload-time = "2026-08-15T08:20:30.186Z" },
+ { url = "https://files.pythonhosted.org/packages/c0/8c/58efc6393e405a8d52b241d31dd9118352c247e4017110c3edfdb4618f0d/charset_normalizer-3.5.1-cp39-cp39-musllinux_1_2_ppc64le.whl", hash = "sha256:2e9cf9253119d8e5d111f05d71626786fd3d6193817316eab1ca088cdb8593cf", size = 282086, upload-time = "2026-08-15T08:20:31.826Z" },
+ { url = "https://files.pythonhosted.org/packages/02/fc/0d9ab98fa7a61394353e8acd0f5f60fc6e94a4615f574af8be0eca14a7ef/charset_normalizer-3.5.1-cp39-cp39-musllinux_1_2_riscv64.whl", hash = "sha256:433c5a81eade63b47e522303bad236f59dba55ea6951746f5558355eeed8c75d", size = 259212, upload-time = "2026-08-15T08:20:33.442Z" },
+ { url = "https://files.pythonhosted.org/packages/79/71/6ee3a48a21e844e5079d8e9b2e91c641da5a7912a748e9e94c9e3ab9ce1c/charset_normalizer-3.5.1-cp39-cp39-musllinux_1_2_s390x.whl", hash = "sha256:13e3afe97712e8887cd516e960c63f0b93122971e5b5e4b2622fe7701771e838", size = 278949, upload-time = "2026-08-15T08:20:35.133Z" },
+ { url = "https://files.pythonhosted.org/packages/64/77/9ae101cb33bd9f681551e82a2b9e08eec99ff715458340931370f4228de9/charset_normalizer-3.5.1-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:eb12fb2ba69ffa05f8695f61c69e591dc4b4a12ac3757ac8af8adb259bf56d17", size = 264513, upload-time = "2026-08-15T08:20:36.887Z" },
+ { url = "https://files.pythonhosted.org/packages/d1/91/249943372195935ff7393eae5842c7dae6fd04401e512bbd69dab1aae40b/charset_normalizer-3.5.1-cp39-cp39-win32.whl", hash = "sha256:56490c595a28b1bb27dfc583e816152a9767721ef58b2c03b13f954d2f707420", size = 182431, upload-time = "2026-08-15T08:20:38.498Z" },
+ { url = "https://files.pythonhosted.org/packages/53/31/7f79c671d827080d6eecd697fbbeb4f0f6f8507bf4c5625b5f6398ec5876/charset_normalizer-3.5.1-cp39-cp39-win_amd64.whl", hash = "sha256:012a22b88a77ca2e59b98ac5889b0deb604147666032f45e6d6e217634d2550d", size = 206385, upload-time = "2026-08-15T08:20:40.242Z" },
+ { url = "https://files.pythonhosted.org/packages/c4/58/c9295c61e3f826ba7d874f0fd1c5e335dbec928d7b9146b33b48d14a25f1/charset_normalizer-3.5.1-cp39-cp39-win_arm64.whl", hash = "sha256:29880d17a8eb0b5cfdfd8944b468322928059aa35f1f5fa8ff22b149ec0b42f8", size = 185470, upload-time = "2026-08-15T08:20:41.765Z" },
+ { url = "https://files.pythonhosted.org/packages/cc/61/d01fc49b8dea277640b55a9e15960dbca9fdc8c9fde18e572d39c59f4019/charset_normalizer-3.5.1-py3-none-any.whl", hash = "sha256:6df0ec430f9a831772c23ca5a224cba36517a58a84bb32c32bb59a9fa67c47f6", size = 68658, upload-time = "2026-08-15T08:20:43.306Z" },
]
[[package]]
name = "click"
version = "8.1.8"
source = { registry = "https://pypi.org/simple" }
+resolution-markers = [
+ "python_full_version == '3.9.*'",
+ "python_full_version < '3.9'",
+]
dependencies = [
{ name = "colorama", marker = "sys_platform == 'win32'" },
]
@@ -246,12 +352,29 @@ wheels = [
{ url = "https://files.pythonhosted.org/packages/7e/d4/7ebdbd03970677812aac39c869717059dbb71a4cfc033ca6e5221787892c/click-8.1.8-py3-none-any.whl", hash = "sha256:63c132bbbed01578a06712a2d1f497bb62d9c1c0d329b7903a866228027263b2", size = 98188, upload-time = "2024-12-21T18:38:41.666Z" },
]
+[[package]]
+name = "click"
+version = "8.4.2"
+source = { registry = "https://pypi.org/simple" }
+resolution-markers = [
+ "python_full_version >= '3.15'",
+ "python_full_version >= '3.10' and python_full_version < '3.15'",
+]
+dependencies = [
+ { name = "colorama", marker = "sys_platform == 'win32'" },
+]
+sdist = { url = "https://files.pythonhosted.org/packages/76/d4/81420972a676e8ffea40450d8c8c92943e7218a78fe9b64359836cc9876b/click-8.4.2.tar.gz", hash = "sha256:9a6cea6e60b17ebe0a44c5cc636d94f09bd66142c1cd7d8b4cd731c4917a15f6", size = 338000, upload-time = "2026-06-24T17:45:15.148Z" }
+wheels = [
+ { url = "https://files.pythonhosted.org/packages/fb/e2/79c688af8b210d232694e31e59da9f6ec747bae31c3f5946e4e9b98860d5/click-8.4.2-py3-none-any.whl", hash = "sha256:e6f9f66136c816745b9d65817da91d61d957fb16e02e4dcd0552553c5a197b76", size = 119243, upload-time = "2026-06-24T17:45:13.73Z" },
+]
+
[[package]]
name = "click-option-group"
version = "0.5.9"
source = { registry = "https://pypi.org/simple" }
dependencies = [
- { name = "click" },
+ { name = "click", version = "8.1.8", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.10'" },
+ { name = "click", version = "8.4.2", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.10'" },
]
sdist = { url = "https://files.pythonhosted.org/packages/ef/ff/d291d66595b30b83d1cb9e314b2c9be7cfc7327d4a0d40a15da2416ea97b/click_option_group-0.5.9.tar.gz", hash = "sha256:f94ed2bc4cf69052e0f29592bd1e771a1789bd7bfc482dd0bc482134aff95823", size = 22222, upload-time = "2025-10-09T09:38:01.474Z" }
wheels = [
@@ -268,10 +391,13 @@ wheels = [
]
[[package]]
-name = "csscompressor"
-version = "0.9.5"
+name = "deepmerge"
+version = "3.0"
source = { registry = "https://pypi.org/simple" }
-sdist = { url = "https://files.pythonhosted.org/packages/f1/2a/8c3ac3d8bc94e6de8d7ae270bb5bc437b210bb9d6d9e46630c98f4abd20c/csscompressor-0.9.5.tar.gz", hash = "sha256:afa22badbcf3120a4f392e4d22f9fff485c044a1feda4a950ecc5eba9dd31a05", size = 237808, upload-time = "2017-11-26T21:13:08.238Z" }
+sdist = { url = "https://files.pythonhosted.org/packages/b7/6c/9f4577a36d5f463a3a3f8322bd65d33e1a1a6b6ba1d692a5ebc3cba19015/deepmerge-3.0.tar.gz", hash = "sha256:14ed69f063de64b7743985c732ccff5d6c34ff4560946e7fbfd99086b853b9ce", size = 22279, upload-time = "2026-08-17T05:50:53.161Z" }
+wheels = [
+ { url = "https://files.pythonhosted.org/packages/a8/d7/7f19bedd30b90b72865aeec3a29127bed6dee6c9ef0324bb5b4d424bb0e3/deepmerge-3.0-py3-none-any.whl", hash = "sha256:c8541c3e186dc88d19a5513ad3a0b2d0b22beaa780969fc0c13b995a64265365", size = 14855, upload-time = "2026-08-17T05:50:52.218Z" },
+]
[[package]]
name = "deprecated"
@@ -279,7 +405,7 @@ version = "1.3.1"
source = { registry = "https://pypi.org/simple" }
dependencies = [
{ name = "wrapt", version = "2.0.1", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.9'" },
- { name = "wrapt", version = "2.1.2", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.9'" },
+ { name = "wrapt", version = "2.3.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.9'" },
]
sdist = { url = "https://files.pythonhosted.org/packages/49/85/12f0a49a7c4ffb70572b6c2ef13c90c88fd190debda93b23f026b25f9634/deprecated-1.3.1.tar.gz", hash = "sha256:b1b50e0ff0c1fddaa5708a2c6b0a6588bb09b892825ab2b214ac9ea9d92a5223", size = 2932523, upload-time = "2025-10-30T08:19:02.757Z" }
wheels = [
@@ -288,11 +414,11 @@ wheels = [
[[package]]
name = "distlib"
-version = "0.4.0"
+version = "0.4.3"
source = { registry = "https://pypi.org/simple" }
-sdist = { url = "https://files.pythonhosted.org/packages/96/8e/709914eb2b5749865801041647dc7f4e6d00b549cfe88b65ca192995f07c/distlib-0.4.0.tar.gz", hash = "sha256:feec40075be03a04501a973d81f633735b4b69f98b05450592310c0f401a4e0d", size = 614605, upload-time = "2025-07-17T16:52:00.465Z" }
+sdist = { url = "https://files.pythonhosted.org/packages/c9/02/bd72be9134d25ed783ecbbc38a539ffaefbf90c78418c7fb7229600dbac7/distlib-0.4.3.tar.gz", hash = "sha256:f152097224a0ae24be5a0f6bae1b9359af82133bce63f98a95f86cae1aede9ed", size = 615141, upload-time = "2026-06-12T08:04:52.847Z" }
wheels = [
- { url = "https://files.pythonhosted.org/packages/33/6b/e0547afaf41bf2c42e52430072fa5658766e3d65bd4b03a563d1b6336f57/distlib-0.4.0-py2.py3-none-any.whl", hash = "sha256:9659f7d87e46584a30b5780e43ac7a2143098441670ff0a49d5f9034c54a6c16", size = 469047, upload-time = "2025-07-17T16:51:58.613Z" },
+ { url = "https://files.pythonhosted.org/packages/02/08/9c41fb51ab5b43eb21674aff13df270e8ba6c4b29c8624e328dc7a9482af/distlib-0.4.3-py2.py3-none-any.whl", hash = "sha256:4b0ce306c966eb73bc3a7b6abad017c556dadd92c44701562cd528ac7fde4d5b", size = 470628, upload-time = "2026-06-12T08:04:50.506Z" },
]
[[package]]
@@ -309,8 +435,8 @@ name = "exceptiongroup"
version = "1.3.1"
source = { registry = "https://pypi.org/simple" }
dependencies = [
- { name = "typing-extensions", version = "4.13.2", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.9'" },
- { name = "typing-extensions", version = "4.15.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.9' and python_full_version < '3.13'" },
+ { name = "typing-extensions", version = "4.13.2", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.9' or python_full_version >= '3.11'" },
+ { name = "typing-extensions", version = "4.16.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.9' and python_full_version < '3.11'" },
]
sdist = { url = "https://files.pythonhosted.org/packages/50/79/66800aadf48771f6b62f7eb014e352e5d06856655206165d775e675a02c9/exceptiongroup-1.3.1.tar.gz", hash = "sha256:8b412432c6055b0b7d14c310000ae93352ed6754f70fa8f7c34141f91c4e3219", size = 30371, upload-time = "2025-11-21T23:01:54.787Z" }
wheels = [
@@ -331,14 +457,15 @@ wheels = [
[[package]]
name = "filelock"
-version = "3.25.2"
+version = "3.32.3"
source = { registry = "https://pypi.org/simple" }
resolution-markers = [
- "python_full_version >= '3.10'",
+ "python_full_version >= '3.15'",
+ "python_full_version >= '3.10' and python_full_version < '3.15'",
]
-sdist = { url = "https://files.pythonhosted.org/packages/94/b8/00651a0f559862f3bb7d6f7477b192afe3f583cc5e26403b44e59a55ab34/filelock-3.25.2.tar.gz", hash = "sha256:b64ece2b38f4ca29dd3e810287aa8c48182bbecd1ae6e9ae126c9b35f1382694", size = 40480, upload-time = "2026-03-11T20:45:38.487Z" }
+sdist = { url = "https://files.pythonhosted.org/packages/7d/64/a02e6765de08964ed371eca577870593245afc9dfac16d037de7c10d18e6/filelock-3.32.3.tar.gz", hash = "sha256:0ffa185a3540854c95caa7fa76b76cb219d907415e2c5dc9af25fd970563487f", size = 218135, upload-time = "2026-08-13T16:00:05.577Z" }
wheels = [
- { url = "https://files.pythonhosted.org/packages/a4/a5/842ae8f0c08b61d6484b52f99a03510a3a72d23141942d216ebe81fefbce/filelock-3.25.2-py3-none-any.whl", hash = "sha256:ca8afb0da15f229774c9ad1b455ed96e85a81373065fb10446672f64444ddf70", size = 26759, upload-time = "2026-03-11T20:45:37.437Z" },
+ { url = "https://files.pythonhosted.org/packages/a7/8e/50f46a9c0ce8d2861a394c1347caae037ea0431d2f67d7feb151cbc4649a/filelock-3.32.3-py3-none-any.whl", hash = "sha256:7f0ca4bcc0e181c60dbbd8aa9ab5b120ebb99e4e064e83636340056f833a1f09", size = 98901, upload-time = "2026-08-13T16:00:03.974Z" },
]
[[package]]
@@ -367,24 +494,379 @@ wheels = [
[[package]]
name = "gitpython"
-version = "3.1.46"
+version = "3.1.59"
source = { registry = "https://pypi.org/simple" }
dependencies = [
{ name = "gitdb" },
{ name = "typing-extensions", version = "4.13.2", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.9'" },
- { name = "typing-extensions", version = "4.15.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version == '3.9.*'" },
+ { name = "typing-extensions", version = "4.16.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version == '3.9.*'" },
]
-sdist = { url = "https://files.pythonhosted.org/packages/df/b5/59d16470a1f0dfe8c793f9ef56fd3826093fc52b3bd96d6b9d6c26c7e27b/gitpython-3.1.46.tar.gz", hash = "sha256:400124c7d0ef4ea03f7310ac2fbf7151e09ff97f2a3288d64a440c584a29c37f", size = 215371, upload-time = "2026-01-01T15:37:32.073Z" }
+sdist = { url = "https://files.pythonhosted.org/packages/ca/dc/126b28e76b24a9268ba931ad3e012f71ebdadf62fd9f17758f7074bb0b20/gitpython-3.1.59.tar.gz", hash = "sha256:0a1475cfdc38a5bfba1a3e9a4a9da52a39749ecec322b772915c019f94e5b7e4", size = 230445, upload-time = "2026-08-10T12:03:20.271Z" }
wheels = [
- { url = "https://files.pythonhosted.org/packages/6a/09/e21df6aef1e1ffc0c816f0522ddc3f6dcded766c3261813131c78a704470/gitpython-3.1.46-py3-none-any.whl", hash = "sha256:79812ed143d9d25b6d176a10bb511de0f9c67b1fa641d82097b0ab90398a2058", size = 208620, upload-time = "2026-01-01T15:37:30.574Z" },
+ { url = "https://files.pythonhosted.org/packages/ef/ed/ae57eb7d344f43f87b74b3a281ead6ec7d6394eef72a7b1dcb28dd089550/gitpython-3.1.59-py3-none-any.whl", hash = "sha256:67a82f537384578643624c8b2c531938a9b82be431663e575dcf638526631d4c", size = 220996, upload-time = "2026-08-10T12:03:18.804Z" },
]
[[package]]
-name = "htmlmin2"
-version = "0.1.13"
+name = "griffelib"
+version = "2.2.0"
source = { registry = "https://pypi.org/simple" }
+sdist = { url = "https://files.pythonhosted.org/packages/f0/b4/a767e91c606deefc447a96eaf59edd77397960b1d677dffd833ee8449831/griffelib-2.2.0.tar.gz", hash = "sha256:e1bc36fe9cd21d4b6b659b456346755e4cfdc5676c0a5214083126ee12612b3c", size = 227048, upload-time = "2026-08-16T14:04:58.383Z" }
wheels = [
- { url = "https://files.pythonhosted.org/packages/be/31/a76f4bfa885f93b8167cb4c85cf32b54d1f64384d0b897d45bc6d19b7b45/htmlmin2-0.1.13-py3-none-any.whl", hash = "sha256:75609f2a42e64f7ce57dbff28a39890363bde9e7e5885db633317efbdf8c79a2", size = 34486, upload-time = "2023-03-14T21:28:30.388Z" },
+ { url = "https://files.pythonhosted.org/packages/f6/b6/f65ac785d4ac90dcf7c831ac6256f5dd4a19780f4e1575b2c0d6eeebe319/griffelib-2.2.0-py3-none-any.whl", hash = "sha256:d71c3bc2bbed9f958488634fe788b843a9f705d6d2838ca32cd6c25eeb64dfc4", size = 166779, upload-time = "2026-08-16T14:04:54.365Z" },
+]
+
+[[package]]
+name = "grpcio"
+version = "1.70.0"
+source = { registry = "https://pypi.org/simple" }
+resolution-markers = [
+ "python_full_version < '3.9'",
+]
+sdist = { url = "https://files.pythonhosted.org/packages/69/e1/4b21b5017c33f3600dcc32b802bb48fe44a4d36d6c066f52650c7c2690fa/grpcio-1.70.0.tar.gz", hash = "sha256:8d1584a68d5922330025881e63a6c1b54cc8117291d382e4fa69339b6d914c56", size = 12788932, upload-time = "2025-01-23T18:00:17.288Z" }
+wheels = [
+ { url = "https://files.pythonhosted.org/packages/10/e9/f72408bac1f7b05b25e4df569b02d6b200c8e7857193aa9f1df7a3744add/grpcio-1.70.0-cp310-cp310-linux_armv7l.whl", hash = "sha256:95469d1977429f45fe7df441f586521361e235982a0b39e33841549143ae2851", size = 5229736, upload-time = "2025-01-23T17:52:55.697Z" },
+ { url = "https://files.pythonhosted.org/packages/b3/17/e65139ea76dac7bcd8a3f17cbd37e3d1a070c44db3098d0be5e14c5bd6a1/grpcio-1.70.0-cp310-cp310-macosx_12_0_universal2.whl", hash = "sha256:ed9718f17fbdb472e33b869c77a16d0b55e166b100ec57b016dc7de9c8d236bf", size = 11432751, upload-time = "2025-01-23T17:52:58.338Z" },
+ { url = "https://files.pythonhosted.org/packages/a0/12/42de6082b4ab14a59d30b2fc7786882fdaa75813a4a4f3d4a8c4acd6ed59/grpcio-1.70.0-cp310-cp310-manylinux_2_17_aarch64.whl", hash = "sha256:374d014f29f9dfdb40510b041792e0e2828a1389281eb590df066e1cc2b404e5", size = 5711439, upload-time = "2025-01-23T17:53:21.438Z" },
+ { url = "https://files.pythonhosted.org/packages/34/f8/b5a19524d273cbd119274a387bb72d6fbb74578e13927a473bc34369f079/grpcio-1.70.0-cp310-cp310-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:f2af68a6f5c8f78d56c145161544ad0febbd7479524a59c16b3e25053f39c87f", size = 6330777, upload-time = "2025-01-23T17:53:23.655Z" },
+ { url = "https://files.pythonhosted.org/packages/1a/67/3d6c0ad786238aac7fa93b79246fc452978fbfe9e5f86f70da8e8a2797d0/grpcio-1.70.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:ce7df14b2dcd1102a2ec32f621cc9fab6695effef516efbc6b063ad749867295", size = 5944639, upload-time = "2025-01-23T17:53:26.699Z" },
+ { url = "https://files.pythonhosted.org/packages/76/0d/d9f7cbc41c2743cf18236a29b6a582f41bd65572a7144d92b80bc1e68479/grpcio-1.70.0-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:c78b339869f4dbf89881e0b6fbf376313e4f845a42840a7bdf42ee6caed4b11f", size = 6643543, upload-time = "2025-01-23T17:53:30.758Z" },
+ { url = "https://files.pythonhosted.org/packages/fc/24/bdd7e606b3400c14330e33a4698fa3a49e38a28c9e0a831441adbd3380d2/grpcio-1.70.0-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:58ad9ba575b39edef71f4798fdb5c7b6d02ad36d47949cd381d4392a5c9cbcd3", size = 6199897, upload-time = "2025-01-23T17:53:34.656Z" },
+ { url = "https://files.pythonhosted.org/packages/d1/33/8132eb370087960c82d01b89faeb28f3e58f5619ffe19889f57c58a19c18/grpcio-1.70.0-cp310-cp310-win32.whl", hash = "sha256:2b0d02e4b25a5c1f9b6c7745d4fa06efc9fd6a611af0fb38d3ba956786b95199", size = 3617513, upload-time = "2025-01-23T17:53:37.323Z" },
+ { url = "https://files.pythonhosted.org/packages/99/bc/0fce5cfc0ca969df66f5dca6cf8d2258abb88146bf9ab89d8cf48e970137/grpcio-1.70.0-cp310-cp310-win_amd64.whl", hash = "sha256:0de706c0a5bb9d841e353f6343a9defc9fc35ec61d6eb6111802f3aa9fef29e1", size = 4303342, upload-time = "2025-01-23T17:53:41.719Z" },
+ { url = "https://files.pythonhosted.org/packages/65/c4/1f67d23d6bcadd2fd61fb460e5969c52b3390b4a4e254b5e04a6d1009e5e/grpcio-1.70.0-cp311-cp311-linux_armv7l.whl", hash = "sha256:17325b0be0c068f35770f944124e8839ea3185d6d54862800fc28cc2ffad205a", size = 5229017, upload-time = "2025-01-23T17:53:44.732Z" },
+ { url = "https://files.pythonhosted.org/packages/e4/bd/cc36811c582d663a740fb45edf9f99ddbd99a10b6ba38267dc925e1e193a/grpcio-1.70.0-cp311-cp311-macosx_10_14_universal2.whl", hash = "sha256:dbe41ad140df911e796d4463168e33ef80a24f5d21ef4d1e310553fcd2c4a386", size = 11472027, upload-time = "2025-01-23T17:53:50.417Z" },
+ { url = "https://files.pythonhosted.org/packages/7e/32/8538bb2ace5cd72da7126d1c9804bf80b4fe3be70e53e2d55675c24961a8/grpcio-1.70.0-cp311-cp311-manylinux_2_17_aarch64.whl", hash = "sha256:5ea67c72101d687d44d9c56068328da39c9ccba634cabb336075fae2eab0d04b", size = 5707785, upload-time = "2025-01-23T17:53:54.511Z" },
+ { url = "https://files.pythonhosted.org/packages/ce/5c/a45f85f2a0dfe4a6429dee98717e0e8bd7bd3f604315493c39d9679ca065/grpcio-1.70.0-cp311-cp311-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:cb5277db254ab7586769e490b7b22f4ddab3876c490da0a1a9d7c695ccf0bf77", size = 6331599, upload-time = "2025-01-23T17:53:58.156Z" },
+ { url = "https://files.pythonhosted.org/packages/9f/e5/5316b239380b8b2ad30373eb5bb25d9fd36c0375e94a98a0a60ea357d254/grpcio-1.70.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:e7831a0fc1beeeb7759f737f5acd9fdcda520e955049512d68fda03d91186eea", size = 5940834, upload-time = "2025-01-23T17:54:00.404Z" },
+ { url = "https://files.pythonhosted.org/packages/05/33/dbf035bc6d167068b4a9f2929dfe0b03fb763f0f861ecb3bb1709a14cb65/grpcio-1.70.0-cp311-cp311-musllinux_1_1_i686.whl", hash = "sha256:27cc75e22c5dba1fbaf5a66c778e36ca9b8ce850bf58a9db887754593080d839", size = 6641191, upload-time = "2025-01-23T17:54:02.916Z" },
+ { url = "https://files.pythonhosted.org/packages/4c/c4/684d877517e5bfd6232d79107e5a1151b835e9f99051faef51fed3359ec4/grpcio-1.70.0-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:d63764963412e22f0491d0d32833d71087288f4e24cbcddbae82476bfa1d81fd", size = 6198744, upload-time = "2025-01-23T17:54:06.842Z" },
+ { url = "https://files.pythonhosted.org/packages/e9/43/92fe5eeaf340650a7020cfb037402c7b9209e7a0f3011ea1626402219034/grpcio-1.70.0-cp311-cp311-win32.whl", hash = "sha256:bb491125103c800ec209d84c9b51f1c60ea456038e4734688004f377cfacc113", size = 3617111, upload-time = "2025-01-23T17:54:10.329Z" },
+ { url = "https://files.pythonhosted.org/packages/55/15/b6cf2c9515c028aff9da6984761a3ab484a472b0dc6435fcd07ced42127d/grpcio-1.70.0-cp311-cp311-win_amd64.whl", hash = "sha256:d24035d49e026353eb042bf7b058fb831db3e06d52bee75c5f2f3ab453e71aca", size = 4304604, upload-time = "2025-01-23T17:54:12.844Z" },
+ { url = "https://files.pythonhosted.org/packages/4c/a4/ddbda79dd176211b518f0f3795af78b38727a31ad32bc149d6a7b910a731/grpcio-1.70.0-cp312-cp312-linux_armv7l.whl", hash = "sha256:ef4c14508299b1406c32bdbb9fb7b47612ab979b04cf2b27686ea31882387cff", size = 5198135, upload-time = "2025-01-23T17:54:16.026Z" },
+ { url = "https://files.pythonhosted.org/packages/30/5c/60eb8a063ea4cb8d7670af8fac3f2033230fc4b75f62669d67c66ac4e4b0/grpcio-1.70.0-cp312-cp312-macosx_10_14_universal2.whl", hash = "sha256:aa47688a65643afd8b166928a1da6247d3f46a2784d301e48ca1cc394d2ffb40", size = 11447529, upload-time = "2025-01-23T17:54:18.568Z" },
+ { url = "https://files.pythonhosted.org/packages/fb/b9/1bf8ab66729f13b44e8f42c9de56417d3ee6ab2929591cfee78dce749b57/grpcio-1.70.0-cp312-cp312-manylinux_2_17_aarch64.whl", hash = "sha256:880bfb43b1bb8905701b926274eafce5c70a105bc6b99e25f62e98ad59cb278e", size = 5664484, upload-time = "2025-01-23T17:54:22.169Z" },
+ { url = "https://files.pythonhosted.org/packages/d1/06/2f377d6906289bee066d96e9bdb91e5e96d605d173df9bb9856095cccb57/grpcio-1.70.0-cp312-cp312-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:9e654c4b17d07eab259d392e12b149c3a134ec52b11ecdc6a515b39aceeec898", size = 6303739, upload-time = "2025-01-23T17:54:25.612Z" },
+ { url = "https://files.pythonhosted.org/packages/ae/50/64c94cfc4db8d9ed07da71427a936b5a2bd2b27c66269b42fbda82c7c7a4/grpcio-1.70.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:2394e3381071045a706ee2eeb6e08962dd87e8999b90ac15c55f56fa5a8c9597", size = 5910417, upload-time = "2025-01-23T17:54:28.336Z" },
+ { url = "https://files.pythonhosted.org/packages/53/89/8795dfc3db4389c15554eb1765e14cba8b4c88cc80ff828d02f5572965af/grpcio-1.70.0-cp312-cp312-musllinux_1_1_i686.whl", hash = "sha256:b3c76701428d2df01964bc6479422f20e62fcbc0a37d82ebd58050b86926ef8c", size = 6626797, upload-time = "2025-01-23T17:54:31.372Z" },
+ { url = "https://files.pythonhosted.org/packages/9c/b2/6a97ac91042a2c59d18244c479ee3894e7fb6f8c3a90619bb5a7757fa30c/grpcio-1.70.0-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:ac073fe1c4cd856ebcf49e9ed6240f4f84d7a4e6ee95baa5d66ea05d3dd0df7f", size = 6190055, upload-time = "2025-01-23T17:54:34.254Z" },
+ { url = "https://files.pythonhosted.org/packages/86/2b/28db55c8c4d156053a8c6f4683e559cd0a6636f55a860f87afba1ac49a51/grpcio-1.70.0-cp312-cp312-win32.whl", hash = "sha256:cd24d2d9d380fbbee7a5ac86afe9787813f285e684b0271599f95a51bce33528", size = 3600214, upload-time = "2025-01-23T17:54:36.631Z" },
+ { url = "https://files.pythonhosted.org/packages/17/c3/a7a225645a965029ed432e5b5e9ed959a574e62100afab553eef58be0e37/grpcio-1.70.0-cp312-cp312-win_amd64.whl", hash = "sha256:0495c86a55a04a874c7627fd33e5beaee771917d92c0e6d9d797628ac40e7655", size = 4292538, upload-time = "2025-01-23T17:54:38.845Z" },
+ { url = "https://files.pythonhosted.org/packages/68/38/66d0f32f88feaf7d83f8559cd87d899c970f91b1b8a8819b58226de0a496/grpcio-1.70.0-cp313-cp313-linux_armv7l.whl", hash = "sha256:aa573896aeb7d7ce10b1fa425ba263e8dddd83d71530d1322fd3a16f31257b4a", size = 5199218, upload-time = "2025-01-23T17:54:40.964Z" },
+ { url = "https://files.pythonhosted.org/packages/c1/96/947df763a0b18efb5cc6c2ae348e56d97ca520dc5300c01617b234410173/grpcio-1.70.0-cp313-cp313-macosx_10_14_universal2.whl", hash = "sha256:d405b005018fd516c9ac529f4b4122342f60ec1cee181788249372524e6db429", size = 11445983, upload-time = "2025-01-23T17:54:43.527Z" },
+ { url = "https://files.pythonhosted.org/packages/fd/5b/f3d4b063e51b2454bedb828e41f3485800889a3609c49e60f2296cc8b8e5/grpcio-1.70.0-cp313-cp313-manylinux_2_17_aarch64.whl", hash = "sha256:f32090238b720eb585248654db8e3afc87b48d26ac423c8dde8334a232ff53c9", size = 5663954, upload-time = "2025-01-23T17:54:47.532Z" },
+ { url = "https://files.pythonhosted.org/packages/bd/0b/dab54365fcedf63e9f358c1431885478e77d6f190d65668936b12dd38057/grpcio-1.70.0-cp313-cp313-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:dfa089a734f24ee5f6880c83d043e4f46bf812fcea5181dcb3a572db1e79e01c", size = 6304323, upload-time = "2025-01-23T17:54:50.036Z" },
+ { url = "https://files.pythonhosted.org/packages/76/a8/8f965a7171ddd336ce32946e22954aa1bbc6f23f095e15dadaa70604ba20/grpcio-1.70.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f19375f0300b96c0117aca118d400e76fede6db6e91f3c34b7b035822e06c35f", size = 5910939, upload-time = "2025-01-23T17:54:52.455Z" },
+ { url = "https://files.pythonhosted.org/packages/1b/05/0bbf68be8b17d1ed6f178435a3c0c12e665a1e6054470a64ce3cb7896596/grpcio-1.70.0-cp313-cp313-musllinux_1_1_i686.whl", hash = "sha256:7c73c42102e4a5ec76608d9b60227d917cea46dff4d11d372f64cbeb56d259d0", size = 6631405, upload-time = "2025-01-23T17:54:55.808Z" },
+ { url = "https://files.pythonhosted.org/packages/79/6a/5df64b6df405a1ed1482cb6c10044b06ec47fd28e87c2232dbcf435ecb33/grpcio-1.70.0-cp313-cp313-musllinux_1_1_x86_64.whl", hash = "sha256:0a5c78d5198a1f0aa60006cd6eb1c912b4a1520b6a3968e677dbcba215fabb40", size = 6190982, upload-time = "2025-01-23T17:54:58.405Z" },
+ { url = "https://files.pythonhosted.org/packages/42/aa/aeaac87737e6d25d1048c53b8ec408c056d3ed0c922e7c5efad65384250c/grpcio-1.70.0-cp313-cp313-win32.whl", hash = "sha256:fe9dbd916df3b60e865258a8c72ac98f3ac9e2a9542dcb72b7a34d236242a5ce", size = 3598359, upload-time = "2025-01-23T17:55:00.671Z" },
+ { url = "https://files.pythonhosted.org/packages/1f/79/8edd2442d2de1431b4a3de84ef91c37002f12de0f9b577fb07b452989dbc/grpcio-1.70.0-cp313-cp313-win_amd64.whl", hash = "sha256:4119fed8abb7ff6c32e3d2255301e59c316c22d31ab812b3fbcbaf3d0d87cc68", size = 4293938, upload-time = "2025-01-23T17:55:02.821Z" },
+ { url = "https://files.pythonhosted.org/packages/38/5f/d7fe323c18a2ec98a2a9b38fb985f5e843f76990298d7c4ce095f44b46a7/grpcio-1.70.0-cp38-cp38-linux_armv7l.whl", hash = "sha256:8058667a755f97407fca257c844018b80004ae8035565ebc2812cc550110718d", size = 5232027, upload-time = "2025-01-23T17:55:07.597Z" },
+ { url = "https://files.pythonhosted.org/packages/d4/4b/3d3b5548575b635f51883212a482cd237e8525535d4591b9dc7e5b2c2ddc/grpcio-1.70.0-cp38-cp38-macosx_10_14_universal2.whl", hash = "sha256:879a61bf52ff8ccacbedf534665bb5478ec8e86ad483e76fe4f729aaef867cab", size = 11448811, upload-time = "2025-01-23T17:55:11.773Z" },
+ { url = "https://files.pythonhosted.org/packages/8a/d7/9a0922fc12d339271c7e4e6691470172b7c13715fed7bd934274803f1527/grpcio-1.70.0-cp38-cp38-manylinux_2_17_aarch64.whl", hash = "sha256:0ba0a173f4feacf90ee618fbc1a27956bfd21260cd31ced9bc707ef551ff7dc7", size = 5711890, upload-time = "2025-01-23T17:55:17.167Z" },
+ { url = "https://files.pythonhosted.org/packages/1e/ae/d4dbf8bff0f1d270f118d08558bc8dc0489e026d6620a4e3ee2d79d79041/grpcio-1.70.0-cp38-cp38-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:558c386ecb0148f4f99b1a65160f9d4b790ed3163e8610d11db47838d452512d", size = 6331933, upload-time = "2025-01-23T17:55:19.771Z" },
+ { url = "https://files.pythonhosted.org/packages/2c/64/66a74c02b00e00b919c245ca9da8e5c44e8692bf3fe7f27efbc97572566c/grpcio-1.70.0-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:412faabcc787bbc826f51be261ae5fa996b21263de5368a55dc2cf824dc5090e", size = 5950685, upload-time = "2025-01-23T17:55:22.253Z" },
+ { url = "https://files.pythonhosted.org/packages/b0/64/e992ac693118c37164e085676216d258804d7a5bbf3581d3f989c843a9a5/grpcio-1.70.0-cp38-cp38-musllinux_1_1_i686.whl", hash = "sha256:3b0f01f6ed9994d7a0b27eeddea43ceac1b7e6f3f9d86aeec0f0064b8cf50fdb", size = 6640974, upload-time = "2025-01-23T17:55:24.757Z" },
+ { url = "https://files.pythonhosted.org/packages/57/17/34d0a6af4477fd48b8b41d13782fb1e35b8841b17d6ac7a3eb24d2f3b17e/grpcio-1.70.0-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:7385b1cb064734005204bc8994eed7dcb801ed6c2eda283f613ad8c6c75cf873", size = 6204792, upload-time = "2025-01-23T17:55:27Z" },
+ { url = "https://files.pythonhosted.org/packages/d3/e5/e45d8eb81929c0becd5bda413b60262f79d862e19cff632d496909aa3bd0/grpcio-1.70.0-cp38-cp38-win32.whl", hash = "sha256:07269ff4940f6fb6710951116a04cd70284da86d0a4368fd5a3b552744511f5a", size = 3620015, upload-time = "2025-01-23T17:55:29.386Z" },
+ { url = "https://files.pythonhosted.org/packages/87/7d/36009c38093e62969c708f20b86ab6761c2ba974b12ff10def6f397f24fa/grpcio-1.70.0-cp38-cp38-win_amd64.whl", hash = "sha256:aba19419aef9b254e15011b230a180e26e0f6864c90406fdbc255f01d83bc83c", size = 4307043, upload-time = "2025-01-23T17:55:31.823Z" },
+ { url = "https://files.pythonhosted.org/packages/9d/0e/64061c9746a2dd6e07cb0a0f3829f0a431344add77ec36397cc452541ff6/grpcio-1.70.0-cp39-cp39-linux_armv7l.whl", hash = "sha256:4f1937f47c77392ccd555728f564a49128b6a197a05a5cd527b796d36f3387d0", size = 5231123, upload-time = "2025-01-23T17:55:34.09Z" },
+ { url = "https://files.pythonhosted.org/packages/72/9f/c93501d5f361aecee0146ab19300d5acb1c2747b00217c641f06fffbcd62/grpcio-1.70.0-cp39-cp39-macosx_10_14_universal2.whl", hash = "sha256:0cd430b9215a15c10b0e7d78f51e8a39d6cf2ea819fd635a7214fae600b1da27", size = 11467217, upload-time = "2025-01-23T17:55:37.042Z" },
+ { url = "https://files.pythonhosted.org/packages/0a/1a/980d115b701023450a304881bf3f6309f6fb15787f9b78d2728074f3bf86/grpcio-1.70.0-cp39-cp39-manylinux_2_17_aarch64.whl", hash = "sha256:e27585831aa6b57b9250abaf147003e126cd3a6c6ca0c531a01996f31709bed1", size = 5710913, upload-time = "2025-01-23T17:55:40.998Z" },
+ { url = "https://files.pythonhosted.org/packages/a0/84/af420067029808f9790e98143b3dd0f943bebba434a4706755051a520c91/grpcio-1.70.0-cp39-cp39-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:c1af8e15b0f0fe0eac75195992a63df17579553b0c4af9f8362cc7cc99ccddf4", size = 6330947, upload-time = "2025-01-23T17:55:43.538Z" },
+ { url = "https://files.pythonhosted.org/packages/24/1c/e1f06a7d29a1fa5053dcaf5352a50f8e1f04855fd194a65422a9d685d375/grpcio-1.70.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:cbce24409beaee911c574a3d75d12ffb8c3e3dd1b813321b1d7a96bbcac46bf4", size = 5943913, upload-time = "2025-01-23T17:55:45.936Z" },
+ { url = "https://files.pythonhosted.org/packages/41/8f/de13838e4467519a50cd0693e98b0b2bcc81d656013c38a1dd7dcb801526/grpcio-1.70.0-cp39-cp39-musllinux_1_1_i686.whl", hash = "sha256:ff4a8112a79464919bb21c18e956c54add43ec9a4850e3949da54f61c241a4a6", size = 6643236, upload-time = "2025-01-23T17:55:48.9Z" },
+ { url = "https://files.pythonhosted.org/packages/ac/73/d68c745d34e43a80440da4f3d79fa02c56cb118c2a26ba949f3cfd8316d7/grpcio-1.70.0-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:5413549fdf0b14046c545e19cfc4eb1e37e9e1ebba0ca390a8d4e9963cab44d2", size = 6199038, upload-time = "2025-01-23T17:55:58.854Z" },
+ { url = "https://files.pythonhosted.org/packages/7e/dd/991f100b8c31636b4bb2a941dbbf54dbcc55d69c722cfa038c3d017eaa0c/grpcio-1.70.0-cp39-cp39-win32.whl", hash = "sha256:b745d2c41b27650095e81dea7091668c040457483c9bdb5d0d9de8f8eb25e59f", size = 3617512, upload-time = "2025-01-23T17:56:01.326Z" },
+ { url = "https://files.pythonhosted.org/packages/4d/80/1aa2ba791207a13e314067209b48e1a0893ed8d1f43ef012e194aaa6c2de/grpcio-1.70.0-cp39-cp39-win_amd64.whl", hash = "sha256:a31d7e3b529c94e930a117b2175b2efd179d96eb3c7a21ccb0289a8ab05b645c", size = 4303506, upload-time = "2025-01-23T17:56:03.842Z" },
+]
+
+[[package]]
+name = "grpcio"
+version = "1.80.0"
+source = { registry = "https://pypi.org/simple" }
+resolution-markers = [
+ "python_full_version == '3.9.*'",
+]
+dependencies = [
+ { name = "typing-extensions", version = "4.16.0", source = { registry = "https://pypi.org/simple" } },
+]
+sdist = { url = "https://files.pythonhosted.org/packages/b7/48/af6173dbca4454f4637a4678b67f52ca7e0c1ed7d5894d89d434fecede05/grpcio-1.80.0.tar.gz", hash = "sha256:29aca15edd0688c22ba01d7cc01cb000d72b2033f4a3c72a81a19b56fd143257", size = 12978905, upload-time = "2026-03-30T08:49:10.502Z" }
+wheels = [
+ { url = "https://files.pythonhosted.org/packages/9d/cd/bb7b7e54084a344c03d68144450da7ddd5564e51a298ae1662de65f48e2d/grpcio-1.80.0-cp310-cp310-linux_armv7l.whl", hash = "sha256:886457a7768e408cdce226ad1ca67d2958917d306523a0e21e1a2fdaa75c9c9c", size = 6050363, upload-time = "2026-03-30T08:46:20.894Z" },
+ { url = "https://files.pythonhosted.org/packages/16/02/1417f5c3460dea65f7a2e3c14e8b31e77f7ffb730e9bfadd89eda7a9f477/grpcio-1.80.0-cp310-cp310-macosx_11_0_universal2.whl", hash = "sha256:7b641fc3f1dc647bfd80bd713addc68f6d145956f64677e56d9ebafc0bd72388", size = 12026037, upload-time = "2026-03-30T08:46:25.144Z" },
+ { url = "https://files.pythonhosted.org/packages/43/98/c910254eedf2cae368d78336a2de0678e66a7317d27c02522392f949b5c6/grpcio-1.80.0-cp310-cp310-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:33eb763f18f006dc7fee1e69831d38d23f5eccd15b2e0f92a13ee1d9242e5e02", size = 6602306, upload-time = "2026-03-30T08:46:27.593Z" },
+ { url = "https://files.pythonhosted.org/packages/7c/f8/88ca4e78c077b2b2113d95da1e1ab43efd43d723c9a0397d26529c2c1a56/grpcio-1.80.0-cp310-cp310-manylinux2014_i686.manylinux_2_17_i686.whl", hash = "sha256:52d143637e3872633fc7dd7c3c6a1c84e396b359f3a72e215f8bf69fd82084fc", size = 7301535, upload-time = "2026-03-30T08:46:29.556Z" },
+ { url = "https://files.pythonhosted.org/packages/f9/96/f28660fe2fe0f153288bf4a04e4910b7309d442395135c88ed4f5b3b8b40/grpcio-1.80.0-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:c51bf8ac4575af2e0678bccfb07e47321fc7acb5049b4482832c5c195e04e13a", size = 6808669, upload-time = "2026-03-30T08:46:31.984Z" },
+ { url = "https://files.pythonhosted.org/packages/47/eb/3f68a5e955779c00aeef23850e019c1c1d0e032d90633ba49c01ad5a96e0/grpcio-1.80.0-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:50a9871536d71c4fba24ee856abc03a87764570f0c457dd8db0b4018f379fed9", size = 7409489, upload-time = "2026-03-30T08:46:34.684Z" },
+ { url = "https://files.pythonhosted.org/packages/5b/a7/d2f681a4bfb881be40659a309771f3bdfbfdb1190619442816c3f0ffc079/grpcio-1.80.0-cp310-cp310-musllinux_1_2_i686.whl", hash = "sha256:a72d84ad0514db063e21887fbacd1fd7acb4d494a564cae22227cd45c7fbf199", size = 8423167, upload-time = "2026-03-30T08:46:36.833Z" },
+ { url = "https://files.pythonhosted.org/packages/97/8a/29b4589c204959aa35ce5708400a05bba72181807c45c47b3ec000c39333/grpcio-1.80.0-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:f7691a6788ad9196872f95716df5bc643ebba13c97140b7a5ee5c8e75d1dea81", size = 7846761, upload-time = "2026-03-30T08:46:40.091Z" },
+ { url = "https://files.pythonhosted.org/packages/6b/d2/ed143e097230ee121ac5848f6ff14372dba91289b10b536d54fb1b7cbae7/grpcio-1.80.0-cp310-cp310-win32.whl", hash = "sha256:46c2390b59d67f84e882694d489f5b45707c657832d7934859ceb8c33f467069", size = 4156534, upload-time = "2026-03-30T08:46:42.026Z" },
+ { url = "https://files.pythonhosted.org/packages/d5/c9/df8279bb49b29409995e95efa85b72973d62f8aeff89abee58c91f393710/grpcio-1.80.0-cp310-cp310-win_amd64.whl", hash = "sha256:dc053420fc75749c961e2a4c906398d7c15725d36ccc04ae6d16093167223b58", size = 4889869, upload-time = "2026-03-30T08:46:44.219Z" },
+ { url = "https://files.pythonhosted.org/packages/5d/db/1d56e5f5823257b291962d6c0ce106146c6447f405b60b234c4f222a7cde/grpcio-1.80.0-cp311-cp311-linux_armv7l.whl", hash = "sha256:dfab85db094068ff42e2a3563f60ab3dddcc9d6488a35abf0132daec13209c8a", size = 6055009, upload-time = "2026-03-30T08:46:46.265Z" },
+ { url = "https://files.pythonhosted.org/packages/6e/18/c83f3cad64c5ca63bca7e91e5e46b0d026afc5af9d0a9972472ceba294b3/grpcio-1.80.0-cp311-cp311-macosx_11_0_universal2.whl", hash = "sha256:5c07e82e822e1161354e32da2662f741a4944ea955f9f580ec8fb409dd6f6060", size = 12035295, upload-time = "2026-03-30T08:46:49.099Z" },
+ { url = "https://files.pythonhosted.org/packages/0f/8e/e14966b435be2dda99fbe89db9525ea436edc79780431a1c2875a3582644/grpcio-1.80.0-cp311-cp311-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:ba0915d51fd4ced2db5ff719f84e270afe0e2d4c45a7bdb1e8d036e4502928c2", size = 6610297, upload-time = "2026-03-30T08:46:52.123Z" },
+ { url = "https://files.pythonhosted.org/packages/cc/26/d5eb38f42ce0e3fdc8174ea4d52036ef8d58cc4426cb800f2610f625dd75/grpcio-1.80.0-cp311-cp311-manylinux2014_i686.manylinux_2_17_i686.whl", hash = "sha256:3cb8130ba457d2aa09fa6b7c3ed6b6e4e6a2685fce63cb803d479576c4d80e21", size = 7300208, upload-time = "2026-03-30T08:46:54.859Z" },
+ { url = "https://files.pythonhosted.org/packages/25/51/bd267c989f85a17a5b3eea65a6feb4ff672af41ca614e5a0279cc0ea381c/grpcio-1.80.0-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:09e5e478b3d14afd23f12e49e8b44c8684ac3c5f08561c43a5b9691c54d136ab", size = 6813442, upload-time = "2026-03-30T08:46:57.056Z" },
+ { url = "https://files.pythonhosted.org/packages/9e/d9/d80eef735b19e9169e30164bbf889b46f9df9127598a83d174eb13a48b26/grpcio-1.80.0-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:00168469238b022500e486c1c33916acf2f2a9b2c022202cf8a1885d2e3073c1", size = 7414743, upload-time = "2026-03-30T08:46:59.682Z" },
+ { url = "https://files.pythonhosted.org/packages/de/f2/567f5bd5054398ed6b0509b9a30900376dcf2786bd936812098808b49d8d/grpcio-1.80.0-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:8502122a3cc1714038e39a0b071acb1207ca7844208d5ea0d091317555ee7106", size = 8426046, upload-time = "2026-03-30T08:47:02.474Z" },
+ { url = "https://files.pythonhosted.org/packages/62/29/73ef0141b4732ff5eacd68430ff2512a65c004696997f70476a83e548e7e/grpcio-1.80.0-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:ce1794f4ea6cc3ca29463f42d665c32ba1b964b48958a66497917fe9069f26e6", size = 7851641, upload-time = "2026-03-30T08:47:05.462Z" },
+ { url = "https://files.pythonhosted.org/packages/46/69/abbfa360eb229a8623bab5f5a4f8105e445bd38ce81a89514ba55d281ad0/grpcio-1.80.0-cp311-cp311-win32.whl", hash = "sha256:51b4a7189b0bef2aa30adce3c78f09c83526cf3dddb24c6a96555e3b97340440", size = 4154368, upload-time = "2026-03-30T08:47:08.027Z" },
+ { url = "https://files.pythonhosted.org/packages/6f/d4/ae92206d01183b08613e846076115f5ac5991bae358d2a749fa864da5699/grpcio-1.80.0-cp311-cp311-win_amd64.whl", hash = "sha256:02e64bb0bb2da14d947a49e6f120a75e947250aebe65f9629b62bb1f5c14e6e9", size = 4894235, upload-time = "2026-03-30T08:47:10.839Z" },
+ { url = "https://files.pythonhosted.org/packages/5c/e8/a2b749265eb3415abc94f2e619bbd9e9707bebdda787e61c593004ec927a/grpcio-1.80.0-cp312-cp312-linux_armv7l.whl", hash = "sha256:c624cc9f1008361014378c9d776de7182b11fe8b2e5a81bc69f23a295f2a1ad0", size = 6015616, upload-time = "2026-03-30T08:47:13.428Z" },
+ { url = "https://files.pythonhosted.org/packages/3e/97/b1282161a15d699d1e90c360df18d19165a045ce1c343c7f313f5e8a0b77/grpcio-1.80.0-cp312-cp312-macosx_11_0_universal2.whl", hash = "sha256:f49eddcac43c3bf350c0385366a58f36bed8cc2c0ec35ef7b74b49e56552c0c2", size = 12014204, upload-time = "2026-03-30T08:47:15.873Z" },
+ { url = "https://files.pythonhosted.org/packages/6e/5e/d319c6e997b50c155ac5a8cb12f5173d5b42677510e886d250d50264949d/grpcio-1.80.0-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:d334591df610ab94714048e0d5b4f3dd5ad1bee74dfec11eee344220077a79de", size = 6563866, upload-time = "2026-03-30T08:47:18.588Z" },
+ { url = "https://files.pythonhosted.org/packages/ae/f6/fdd975a2cb4d78eb67769a7b3b3830970bfa2e919f1decf724ae4445f42c/grpcio-1.80.0-cp312-cp312-manylinux2014_i686.manylinux_2_17_i686.whl", hash = "sha256:0cb517eb1d0d0aaf1d87af7cc5b801d686557c1d88b2619f5e31fab3c2315921", size = 7273060, upload-time = "2026-03-30T08:47:21.113Z" },
+ { url = "https://files.pythonhosted.org/packages/db/f0/a3deb5feba60d9538a962913e37bd2e69a195f1c3376a3dd44fe0427e996/grpcio-1.80.0-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:4e78c4ac0d97dc2e569b2f4bcbbb447491167cb358d1a389fc4af71ab6f70411", size = 6782121, upload-time = "2026-03-30T08:47:23.827Z" },
+ { url = "https://files.pythonhosted.org/packages/ca/84/36c6dcfddc093e108141f757c407902a05085e0c328007cb090d56646cdf/grpcio-1.80.0-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:2ed770b4c06984f3b47eb0517b1c69ad0b84ef3f40128f51448433be904634cd", size = 7383811, upload-time = "2026-03-30T08:47:26.517Z" },
+ { url = "https://files.pythonhosted.org/packages/7c/ef/f3a77e3dc5b471a0ec86c564c98d6adfa3510d38f8ee99010410858d591e/grpcio-1.80.0-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:256507e2f524092f1473071a05e65a5b10d84b82e3ff24c5b571513cfaa61e2f", size = 8393860, upload-time = "2026-03-30T08:47:29.439Z" },
+ { url = "https://files.pythonhosted.org/packages/9b/8d/9d4d27ed7f33d109c50d6b5ce578a9914aa68edab75d65869a17e630a8d1/grpcio-1.80.0-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:9a6284a5d907c37db53350645567c522be314bac859a64a7a5ca63b77bb7958f", size = 7830132, upload-time = "2026-03-30T08:47:33.254Z" },
+ { url = "https://files.pythonhosted.org/packages/14/e4/9990b41c6d7a44e1e9dee8ac11d7a9802ba1378b40d77468a7761d1ad288/grpcio-1.80.0-cp312-cp312-win32.whl", hash = "sha256:c71309cfce2f22be26aa4a847357c502db6c621f1a49825ae98aa0907595b193", size = 4140904, upload-time = "2026-03-30T08:47:35.319Z" },
+ { url = "https://files.pythonhosted.org/packages/2f/2c/296f6138caca1f4b92a31ace4ae1b87dab692fc16a7a3417af3bb3c805bf/grpcio-1.80.0-cp312-cp312-win_amd64.whl", hash = "sha256:9fe648599c0e37594c4809d81a9e77bd138cc82eb8baa71b6a86af65426723ff", size = 4880944, upload-time = "2026-03-30T08:47:37.831Z" },
+ { url = "https://files.pythonhosted.org/packages/2f/3a/7c3c25789e3f069e581dc342e03613c5b1cb012c4e8c7d9d5cf960a75856/grpcio-1.80.0-cp313-cp313-linux_armv7l.whl", hash = "sha256:e9e408fc016dffd20661f0126c53d8a31c2821b5c13c5d67a0f5ed5de93319ad", size = 6017243, upload-time = "2026-03-30T08:47:40.075Z" },
+ { url = "https://files.pythonhosted.org/packages/04/19/21a9806eb8240e174fd1ab0cd5b9aa948bb0e05c2f2f55f9d5d7405e6d08/grpcio-1.80.0-cp313-cp313-macosx_11_0_universal2.whl", hash = "sha256:92d787312e613754d4d8b9ca6d3297e69994a7912a32fa38c4c4e01c272974b0", size = 12010840, upload-time = "2026-03-30T08:47:43.11Z" },
+ { url = "https://files.pythonhosted.org/packages/18/3a/23347d35f76f639e807fb7a36fad3068aed100996849a33809591f26eca6/grpcio-1.80.0-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:8ac393b58aa16991a2f1144ec578084d544038c12242da3a215966b512904d0f", size = 6567644, upload-time = "2026-03-30T08:47:46.806Z" },
+ { url = "https://files.pythonhosted.org/packages/ff/40/96e07ecb604a6a67ae6ab151e3e35b132875d98bc68ec65f3e5ab3e781d7/grpcio-1.80.0-cp313-cp313-manylinux2014_i686.manylinux_2_17_i686.whl", hash = "sha256:68e5851ac4b9afe07e7f84483803ad167852570d65326b34d54ca560bfa53fb6", size = 7277830, upload-time = "2026-03-30T08:47:49.643Z" },
+ { url = "https://files.pythonhosted.org/packages/9b/e2/da1506ecea1f34a5e365964644b35edef53803052b763ca214ba3870c856/grpcio-1.80.0-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:873ff5d17d68992ef6605330127425d2fc4e77e612fa3c3e0ed4e668685e3140", size = 6783216, upload-time = "2026-03-30T08:47:52.817Z" },
+ { url = "https://files.pythonhosted.org/packages/44/83/3b20ff58d0c3b7f6caaa3af9a4174d4023701df40a3f39f7f1c8e7c48f9d/grpcio-1.80.0-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:2bea16af2750fd0a899bf1abd9022244418b55d1f37da2202249ba4ba673838d", size = 7385866, upload-time = "2026-03-30T08:47:55.687Z" },
+ { url = "https://files.pythonhosted.org/packages/47/45/55c507599c5520416de5eefecc927d6a0d7af55e91cfffb2e410607e5744/grpcio-1.80.0-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:ba0db34f7e1d803a878284cd70e4c63cb6ae2510ba51937bf8f45ba997cefcf7", size = 8391602, upload-time = "2026-03-30T08:47:58.303Z" },
+ { url = "https://files.pythonhosted.org/packages/10/bb/dd06f4c24c01db9cf11341b547d0a016b2c90ed7dbbb086a5710df7dd1d7/grpcio-1.80.0-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:8eb613f02d34721f1acf3626dfdb3545bd3c8505b0e52bf8b5710a28d02e8aa7", size = 7826752, upload-time = "2026-03-30T08:48:01.311Z" },
+ { url = "https://files.pythonhosted.org/packages/f9/1e/9d67992ba23371fd63d4527096eb8c6b76d74d52b500df992a3343fd7251/grpcio-1.80.0-cp313-cp313-win32.whl", hash = "sha256:93b6f823810720912fd131f561f91f5fed0fda372b6b7028a2681b8194d5d294", size = 4142310, upload-time = "2026-03-30T08:48:04.594Z" },
+ { url = "https://files.pythonhosted.org/packages/cf/e6/283326a27da9e2c3038bc93eeea36fb118ce0b2d03922a9cda6688f53c5b/grpcio-1.80.0-cp313-cp313-win_amd64.whl", hash = "sha256:e172cf795a3ba5246d3529e4d34c53db70e888fa582a8ffebd2e6e48bc0cba50", size = 4882833, upload-time = "2026-03-30T08:48:07.363Z" },
+ { url = "https://files.pythonhosted.org/packages/c5/6d/e65307ce20f5a09244ba9e9d8476e99fb039de7154f37fb85f26978b59c3/grpcio-1.80.0-cp314-cp314-linux_armv7l.whl", hash = "sha256:3d4147a97c8344d065d01bbf8b6acec2cf86fb0400d40696c8bdad34a64ffc0e", size = 6017376, upload-time = "2026-03-30T08:48:10.005Z" },
+ { url = "https://files.pythonhosted.org/packages/69/10/9cef5d9650c72625a699c549940f0abb3c4bfdb5ed45a5ce431f92f31806/grpcio-1.80.0-cp314-cp314-macosx_11_0_universal2.whl", hash = "sha256:d8e11f167935b3eb089ac9038e1a063e6d7dbe995c0bb4a661e614583352e76f", size = 12018133, upload-time = "2026-03-30T08:48:12.927Z" },
+ { url = "https://files.pythonhosted.org/packages/04/82/983aabaad82ba26113caceeb9091706a0696b25da004fe3defb5b346e15b/grpcio-1.80.0-cp314-cp314-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:f14b618fc30de822681ee986cfdcc2d9327229dc4c98aed16896761cacd468b9", size = 6574748, upload-time = "2026-03-30T08:48:16.386Z" },
+ { url = "https://files.pythonhosted.org/packages/07/d7/031666ef155aa0bf399ed7e19439656c38bbd143779ae0861b038ce82abd/grpcio-1.80.0-cp314-cp314-manylinux2014_i686.manylinux_2_17_i686.whl", hash = "sha256:4ed39fbdcf9b87370f6e8df4e39ca7b38b3e5e9d1b0013c7b6be9639d6578d14", size = 7277711, upload-time = "2026-03-30T08:48:19.627Z" },
+ { url = "https://files.pythonhosted.org/packages/e8/43/f437a78f7f4f1d311804189e8f11fb311a01049b2e08557c1068d470cb2e/grpcio-1.80.0-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:2dcc70e9f0ba987526e8e8603a610fb4f460e42899e74e7a518bf3c68fe1bf05", size = 6785372, upload-time = "2026-03-30T08:48:22.373Z" },
+ { url = "https://files.pythonhosted.org/packages/93/3d/f6558e9c6296cb4227faa5c43c54a34c68d32654b829f53288313d16a86e/grpcio-1.80.0-cp314-cp314-musllinux_1_2_aarch64.whl", hash = "sha256:448c884b668b868562b1bda833c5fce6272d26e1926ec46747cda05741d302c1", size = 7395268, upload-time = "2026-03-30T08:48:25.638Z" },
+ { url = "https://files.pythonhosted.org/packages/06/21/0fdd77e84720b08843c371a2efa6f2e19dbebf56adc72df73d891f5506f0/grpcio-1.80.0-cp314-cp314-musllinux_1_2_i686.whl", hash = "sha256:a1dc80fe55685b4a543555e6eef975303b36c8db1023b1599b094b92aa77965f", size = 8392000, upload-time = "2026-03-30T08:48:28.974Z" },
+ { url = "https://files.pythonhosted.org/packages/f5/68/67f4947ed55d2e69f2cc199ab9fd85e0a0034d813bbeef84df6d2ba4d4b7/grpcio-1.80.0-cp314-cp314-musllinux_1_2_x86_64.whl", hash = "sha256:31b9ac4ad1aa28ffee5503821fafd09e4da0a261ce1c1281c6c8da0423c83b6e", size = 7828477, upload-time = "2026-03-30T08:48:32.054Z" },
+ { url = "https://files.pythonhosted.org/packages/44/b6/8d4096691b2e385e8271911a0de4f35f0a6c7d05aff7098e296c3de86939/grpcio-1.80.0-cp314-cp314-win32.whl", hash = "sha256:367ce30ba67d05e0592470428f0ec1c31714cab9ef19b8f2e37be1f4c7d32fae", size = 4218563, upload-time = "2026-03-30T08:48:34.538Z" },
+ { url = "https://files.pythonhosted.org/packages/e5/8c/bbe6baf2557262834f2070cf668515fa308b2d38a4bbf771f8f7872a7036/grpcio-1.80.0-cp314-cp314-win_amd64.whl", hash = "sha256:3b01e1f5464c583d2f567b2e46ff0d516ef979978f72091fd81f5ab7fa6e2e7f", size = 5019457, upload-time = "2026-03-30T08:48:37.308Z" },
+ { url = "https://files.pythonhosted.org/packages/08/58/7151ffa07cb3faf4bdd1a1902c067d2d162a4ba24678afd2ad5084a42382/grpcio-1.80.0-cp39-cp39-linux_armv7l.whl", hash = "sha256:aacdfb4ed3eb919ca997504d27e03d5dba403c85130b8ed450308590a738f7a4", size = 6048562, upload-time = "2026-03-30T08:48:40.068Z" },
+ { url = "https://files.pythonhosted.org/packages/40/58/0287051dc65c2760155977d9775d1f3c87939e4d575a29aac40f9006b357/grpcio-1.80.0-cp39-cp39-macosx_11_0_universal2.whl", hash = "sha256:a361c20ec1ccd3c3953d20fb6d7b4125093bdd10dff44c5e2bbb39e58917cedc", size = 12031536, upload-time = "2026-03-30T08:48:43.031Z" },
+ { url = "https://files.pythonhosted.org/packages/7b/62/8fc355ffcc9fd8a3ca0438f007307c130dfb93949d3138cd23c8c9f434e8/grpcio-1.80.0-cp39-cp39-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:43168871f170d1e4ed16ae03d10cd21efa29f190e710a624cee7e5ae07da6f4f", size = 6602175, upload-time = "2026-03-30T08:48:46.099Z" },
+ { url = "https://files.pythonhosted.org/packages/12/cb/3efd0b505090804dfe88bf258ed26a6fb19ccbb31889a05b9edb3ae035fe/grpcio-1.80.0-cp39-cp39-manylinux2014_i686.manylinux_2_17_i686.whl", hash = "sha256:1b97cd29a8eda100b559b455331c487a80915b6ea6bd91cf3e89836c4ee8d957", size = 7299777, upload-time = "2026-03-30T08:48:48.848Z" },
+ { url = "https://files.pythonhosted.org/packages/54/b1/50fdb826acafd5ac661e10df25b089721172530f2eb4aa1f36bd3c3d4254/grpcio-1.80.0-cp39-cp39-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:bac1d573dfa84ce59a5547073e28fa7326d53352adda6912e362da0b917fcef4", size = 6808790, upload-time = "2026-03-30T08:48:51.625Z" },
+ { url = "https://files.pythonhosted.org/packages/60/29/41e9ed0bb5544836bb2685097beea972b0cabc8970aeaace0f152bfc5441/grpcio-1.80.0-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:4560cf0e86514595dbbd330cd65b7afad4b5c4b8c4905c041cfffa138d45e6fd", size = 7410605, upload-time = "2026-03-30T08:48:54.466Z" },
+ { url = "https://files.pythonhosted.org/packages/41/ad/889f0dfbc8a08050db6e23c3180dbe712b03af490352a4d7df649db26bc8/grpcio-1.80.0-cp39-cp39-musllinux_1_2_i686.whl", hash = "sha256:ec0a592e926071b4abad50c1495cd0d0d513324b3ff5e7267067c33ba27506e4", size = 8423134, upload-time = "2026-03-30T08:48:57.71Z" },
+ { url = "https://files.pythonhosted.org/packages/3d/76/f44d853f38165d26a309565da31a312587dda668e9e7b5323179b87bcab4/grpcio-1.80.0-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:deb10a1528473c11f72a0939eed36d83e847d7cbb63e8cc5611fb7a912d38614", size = 7846917, upload-time = "2026-03-30T08:49:00.969Z" },
+ { url = "https://files.pythonhosted.org/packages/74/fe/99c56d12b48f8c8b0d28c42edfb171642eb52dd90a0fe7bc74676909fa97/grpcio-1.80.0-cp39-cp39-win32.whl", hash = "sha256:627fb7312171cdc52828bd6fac8d7028ff2a64b89f1957b6f3416caa2218d141", size = 4157647, upload-time = "2026-03-30T08:49:04.196Z" },
+ { url = "https://files.pythonhosted.org/packages/e6/ff/33f6a8823f06c6a1d1f530c1531e563b76c02091525e36255c08575ae775/grpcio-1.80.0-cp39-cp39-win_amd64.whl", hash = "sha256:05d55e1798756282cddd52d56c896b3e7d673e3a8798c2f1cd05ba249a3bb4de", size = 4892359, upload-time = "2026-03-30T08:49:06.902Z" },
+]
+
+[[package]]
+name = "grpcio"
+version = "1.83.0"
+source = { registry = "https://pypi.org/simple" }
+resolution-markers = [
+ "python_full_version >= '3.15'",
+ "python_full_version >= '3.10' and python_full_version < '3.15'",
+]
+dependencies = [
+ { name = "typing-extensions", version = "4.16.0", source = { registry = "https://pypi.org/simple" } },
+]
+sdist = { url = "https://files.pythonhosted.org/packages/0c/98/304898ac4e04e2d5e4e4c2eadc178b1f2a16d5f4bc2f91306c87d64680b9/grpcio-1.83.0.tar.gz", hash = "sha256:7674587248fbbb2ac6e4eecf83a8a0f3d91a928f941de571acfd3a2f007fbc24", size = 13428824, upload-time = "2026-07-23T15:20:37.759Z" }
+wheels = [
+ { url = "https://files.pythonhosted.org/packages/6b/fd/655c8a773d728bc3c93fb4713ae4bf79ffc75996f86fb78b2974c8e1dfbd/grpcio-1.83.0-cp310-cp310-linux_armv7l.whl", hash = "sha256:fba099b716e73512d61b97f71ea3c31a72abb36904036e316bf4dd148ca8dcc8", size = 6334247, upload-time = "2026-07-23T15:18:53.099Z" },
+ { url = "https://files.pythonhosted.org/packages/d4/9a/1ce5760d35a04a992006dd2f79afff2db548f93ee7426fa95c9f1fc90c61/grpcio-1.83.0-cp310-cp310-macosx_11_0_universal2.whl", hash = "sha256:6755ed67cc3e454d51ae9f6e1915b80d3942fa4de956ef48dacd45ab7f40b727", size = 12168650, upload-time = "2026-07-23T15:18:56.348Z" },
+ { url = "https://files.pythonhosted.org/packages/8d/ab/bbcb5be0a1a6cb21f036e2afdd4f7a70147cfb7a7b42648a310d7c43acfc/grpcio-1.83.0-cp310-cp310-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:5882c1a721b50ce0123ee5e839e1ab059ad72a7ade76cdf2d5bd833b56791acf", size = 6916899, upload-time = "2026-07-23T15:18:58.339Z" },
+ { url = "https://files.pythonhosted.org/packages/d5/d2/4c27977ecb3b3f9f363b93f570e001cb24ef264a9a907d7fd0f949ed59f0/grpcio-1.83.0-cp310-cp310-manylinux2014_i686.manylinux_2_17_i686.whl", hash = "sha256:4e3eedfc92b6b9f2960115e7e620cf0cbf80bb7849a51ce3820dc54dfd88b6b9", size = 7648761, upload-time = "2026-07-23T15:19:00.071Z" },
+ { url = "https://files.pythonhosted.org/packages/23/49/0c823a7627ff2e69a61e4a53c4edf215272892fc2c47c6431f033d46f4cc/grpcio-1.83.0-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:4fcaa7c45c45b4a89e2867d1f1785d9481a788399d915e341ed2eb49aeef9dd4", size = 7074920, upload-time = "2026-07-23T15:19:02.293Z" },
+ { url = "https://files.pythonhosted.org/packages/3b/ce/963f01ff7c789a76909c9691b704112e02ca1e11c10405cd99c2bd7c40f1/grpcio-1.83.0-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:6b6c666a1d5613ff360c9e90f44665e3a88b25a815209ddbc0917eec281931cb", size = 7598046, upload-time = "2026-07-23T15:19:03.921Z" },
+ { url = "https://files.pythonhosted.org/packages/eb/de/1ce6bdefc847a7973040d10cebc8996c653a2a687c0a4da8d05dcab4e397/grpcio-1.83.0-cp310-cp310-musllinux_1_2_i686.whl", hash = "sha256:6be5c807b717be3dd649446f021301fd7907e376318675d2147823071034112a", size = 8634792, upload-time = "2026-07-23T15:19:05.633Z" },
+ { url = "https://files.pythonhosted.org/packages/a5/8b/7fe6a73895e3bdd788101d1276e48e0d262ebb165afacec1ec4efebcd785/grpcio-1.83.0-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:c834e86d8fd2f03d7e4db49a027f7c5b89c5b88eed305543a5295bd6fee61e40", size = 8000286, upload-time = "2026-07-23T15:19:07.739Z" },
+ { url = "https://files.pythonhosted.org/packages/c4/b0/9a779de2bcda8722501a056fad1bec3d1117977af0c080ab1fc0655fdf35/grpcio-1.83.0-cp310-cp310-win32.whl", hash = "sha256:35a5b1c192496b6c25956eebfa963468935612206fd2543ac3ce981e6a5e0f03", size = 4404616, upload-time = "2026-07-23T15:19:09.988Z" },
+ { url = "https://files.pythonhosted.org/packages/f0/8e/ce9a23590cac33a6c24e6386cc0ffc55821cc13212acc822e98f00a67161/grpcio-1.83.0-cp310-cp310-win_amd64.whl", hash = "sha256:8f6c395e493d20c39b29392ca200e9aaeb78d0bc2f04db0c0a7da7ddc939aa57", size = 5162304, upload-time = "2026-07-23T15:19:11.467Z" },
+ { url = "https://files.pythonhosted.org/packages/d3/f6/3b781cd07a715ea5f5125ae264226e7fc4d87603d6d3955022cabfdc5da2/grpcio-1.83.0-cp311-cp311-linux_armv7l.whl", hash = "sha256:8ff0b8767ddd62704e0d9571c1890af08d84a3a689ebba1807e62519d0b3277f", size = 6338720, upload-time = "2026-07-23T15:19:13.177Z" },
+ { url = "https://files.pythonhosted.org/packages/21/cc/d14833d15d5984e366f1b027fa78bd038c9b028c66880bffb0f5a4d25ee2/grpcio-1.83.0-cp311-cp311-macosx_11_0_universal2.whl", hash = "sha256:4772402f43517b4824980be4b3b2274a81eec0004a70009473c31b340d43e223", size = 12178773, upload-time = "2026-07-23T15:19:15.401Z" },
+ { url = "https://files.pythonhosted.org/packages/6b/98/8acbb416544e7871132d8e42a07ed70c802d70e6a16c6009e505a34d32a4/grpcio-1.83.0-cp311-cp311-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:f4cee5fc86e84a0cf7ad1574b454c3320e087c07f55b7df5dc0ac6a873fb90c0", size = 6921203, upload-time = "2026-07-23T15:19:17.824Z" },
+ { url = "https://files.pythonhosted.org/packages/45/9c/0fdbfaf4fc54e5c88f6bce4008a065092fe7fbc4460eb5617ae8b20fd505/grpcio-1.83.0-cp311-cp311-manylinux2014_i686.manylinux_2_17_i686.whl", hash = "sha256:f5e822a7e7d03282f6ad225e710493c48b9057a353358344a5f7c42b2b37618d", size = 7648508, upload-time = "2026-07-23T15:19:19.685Z" },
+ { url = "https://files.pythonhosted.org/packages/f3/ea/107b9dbb2ed3ad14dd774fd3dde7d29ff9938a6c198654becb2c3a0e9a6a/grpcio-1.83.0-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:f5f410d7c2903eabb34789dfd6342eef04af1ad459943936b7e09a9f5bd417b9", size = 7079466, upload-time = "2026-07-23T15:19:21.478Z" },
+ { url = "https://files.pythonhosted.org/packages/3b/06/9fa9941089e6fae83b060b6ce61c1e81053e52decae43197245f45e07d36/grpcio-1.83.0-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:ee94a4016fdf8699fb1fd8a38652475ff677f1c72074cee44deeeb9a7e95e745", size = 7605583, upload-time = "2026-07-23T15:19:23.74Z" },
+ { url = "https://files.pythonhosted.org/packages/a8/2f/f10fb56062dc2771c630827a82d9ad0ecd05cad572ea3b08d49f6631680a/grpcio-1.83.0-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:c6444666317338e903093c7c756e6cc88eee59f798cb8dd41e87725bf54e1617", size = 8637810, upload-time = "2026-07-23T15:19:25.536Z" },
+ { url = "https://files.pythonhosted.org/packages/99/55/f84927258f6a1b6ea6dea661fdc6de859b35e560c96f3012d15ccd39f85e/grpcio-1.83.0-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:aa074041231f03959cb097dd5517b0677b8ea49215bae01d5710a7b69dd59969", size = 8008021, upload-time = "2026-07-23T15:19:27.863Z" },
+ { url = "https://files.pythonhosted.org/packages/c9/6b/cdf72161397ccd29d4ca2192f641524536c9cf54ad948c9dd0e0e01138fa/grpcio-1.83.0-cp311-cp311-win32.whl", hash = "sha256:cb056f6e171c42639a50460b2929c82241fda51f71cf3dcdd68090fe45095a45", size = 4404376, upload-time = "2026-07-23T15:19:30.137Z" },
+ { url = "https://files.pythonhosted.org/packages/df/ed/e0ffeb4c848699c194dc9fb6a29ab29bcb2b6aac8c416bf18c51bfe8242c/grpcio-1.83.0-cp311-cp311-win_amd64.whl", hash = "sha256:7416952ca770477990257206276999056f8316d79196f2f25942393e58a20b49", size = 5164469, upload-time = "2026-07-23T15:19:31.941Z" },
+ { url = "https://files.pythonhosted.org/packages/15/2b/51e32514a4e9b715375c99721aadff0f24164cc2049b8269eda4de82a814/grpcio-1.83.0-cp312-cp312-linux_armv7l.whl", hash = "sha256:28f6c35ac8fcf10e4594f138e468f194360089dde40d126a7033e863fc479930", size = 6303167, upload-time = "2026-07-23T15:19:33.78Z" },
+ { url = "https://files.pythonhosted.org/packages/39/33/b5b50fc2c6fbe350e04814047bb2d409feec7b36ef8b170254c050e06bc0/grpcio-1.83.0-cp312-cp312-macosx_11_0_universal2.whl", hash = "sha256:33898e6a28e4ae598f1577cb1c4fec2a15c033d0ec52b9b45a09610dd045b9da", size = 12160538, upload-time = "2026-07-23T15:19:35.958Z" },
+ { url = "https://files.pythonhosted.org/packages/7b/5f/734e72e7b9f79bcf0b2c270b8d3bca0e4ebb97a27a50d06240b145f6d41e/grpcio-1.83.0-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:6fb8a1dd0c6f0f931e69e9d0dc6d1c406ed2a44fa963414eafba07b7fb685d16", size = 6869310, upload-time = "2026-07-23T15:19:38.607Z" },
+ { url = "https://files.pythonhosted.org/packages/a4/17/a1735f215b2a5cd43c38b79eac072ad197e61be9829905b6b29550abd0db/grpcio-1.83.0-cp312-cp312-manylinux2014_i686.manylinux_2_17_i686.whl", hash = "sha256:2b5e75c34842cd9c1b95285ca395c6a569664b81e3ffa6b714125922942abaaf", size = 7613472, upload-time = "2026-07-23T15:19:40.645Z" },
+ { url = "https://files.pythonhosted.org/packages/b2/78/c9e81f806ac704b6b145cb01628db398985b1f8dfdc10e23b55fb0902b3d/grpcio-1.83.0-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:aeb339838db07600481ef869507279b75326c75eac6d10f7afa62a0da1d2bcdd", size = 7040616, upload-time = "2026-07-23T15:19:42.349Z" },
+ { url = "https://files.pythonhosted.org/packages/9a/ba/94cd5af859876049d340480acbb61a959096c84b567f215534faa78d0424/grpcio-1.83.0-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:f47d62808b4c0a97b78bff88a6d4ca283a2a492b9a04a87d814af95ca3b9c19c", size = 7570491, upload-time = "2026-07-23T15:19:44.357Z" },
+ { url = "https://files.pythonhosted.org/packages/3e/15/108d30d5a5c964312ae8b9cb0e8cc5b3c1cc68d8f757cca52b3565534d26/grpcio-1.83.0-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:62003babc444a606dcd1f009cd16391ce23669ae4ad6ec267a873da7937a69f5", size = 8605036, upload-time = "2026-07-23T15:19:46.454Z" },
+ { url = "https://files.pythonhosted.org/packages/ea/23/3828ae13c3db8233d123ad612747665817b952d8a954f32390230b582336/grpcio-1.83.0-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:1aa567f8c3f19850ffd5d2858c9a8ea7c80f0db6c01186b71eb31e923ec984f5", size = 7981587, upload-time = "2026-07-23T15:19:48.913Z" },
+ { url = "https://files.pythonhosted.org/packages/17/5b/77af31228f55f55a2a5112bb0077ad0a1c4d23dbb0c2853a62475bbdcc14/grpcio-1.83.0-cp312-cp312-win32.whl", hash = "sha256:cb2906c61db4f9c64cc360054b5df70eeb81846228e9e56a4944bd415a63dadc", size = 4394004, upload-time = "2026-07-23T15:19:50.618Z" },
+ { url = "https://files.pythonhosted.org/packages/c0/da/f706e39550e7a3732ce2b9c5926107a93d74a802775b19b642a6df27dc96/grpcio-1.83.0-cp312-cp312-win_amd64.whl", hash = "sha256:1c699bbb20f143c8f2bff219de578aa2dc1f919399d67dc702b038b986ee62df", size = 5158525, upload-time = "2026-07-23T15:19:52.246Z" },
+ { url = "https://files.pythonhosted.org/packages/56/eb/135daaa713f32d33b8f99b4153b3f8dc3b2a124996ac15581bf9ebdad3c3/grpcio-1.83.0-cp313-cp313-linux_armv7l.whl", hash = "sha256:6662f3b1e07cc7493d437351860dc867bddc6a93c83ecf33bbfdaf0c217ab2d0", size = 6304480, upload-time = "2026-07-23T15:19:53.962Z" },
+ { url = "https://files.pythonhosted.org/packages/8f/a1/121806ce69f23138dabe06aa595b0e5f1ae051a37e4c1954eed7d692c800/grpcio-1.83.0-cp313-cp313-macosx_11_0_universal2.whl", hash = "sha256:74fe6f9e8a35c7dbf32255ee154d15e3e5338a81ed39173d079d594d2e544cd1", size = 12154419, upload-time = "2026-07-23T15:19:56.3Z" },
+ { url = "https://files.pythonhosted.org/packages/b0/e8/d0389e09cd6b4c4d3089b92967ae4e3ffd64795bd349bf2f85cd6656d3da/grpcio-1.83.0-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:10b3fa0475eb572c9a81a6fe37fa16a9c500c0c91cfc148cac15692b7e3c2867", size = 6873200, upload-time = "2026-07-23T15:19:58.701Z" },
+ { url = "https://files.pythonhosted.org/packages/f8/51/f464c1d211fa50d5adbabe1b2e519948d99c13757052bfc9ea7afa28e284/grpcio-1.83.0-cp313-cp313-manylinux2014_i686.manylinux_2_17_i686.whl", hash = "sha256:5f20a988480b0f28207f057f7f7ae1313393c3cef0adcfeae8248f9947eaf881", size = 7618811, upload-time = "2026-07-23T15:20:00.733Z" },
+ { url = "https://files.pythonhosted.org/packages/e8/c0/539fe0832f2dd6500a28f5263071623fb34e8d4867aec632ccf81bd21156/grpcio-1.83.0-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:7bd82671b39065ba18cd536e9cd45b27ff649053f81ddd2c6a966d595067080f", size = 7042310, upload-time = "2026-07-23T15:20:02.675Z" },
+ { url = "https://files.pythonhosted.org/packages/8c/ca/ccf617d37ffa72567fa8e005ec7090c99da922799be2fb9847c8b21ca18c/grpcio-1.83.0-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:bc60215b5cb9fc8ca72942c498b551ac2305bd08f6ef8d4e3f0d21b64fbecd61", size = 7575412, upload-time = "2026-07-23T15:20:04.712Z" },
+ { url = "https://files.pythonhosted.org/packages/eb/b9/fd8d5245f823a8e0fd35d90e20ea3aa4acd47f8d5318fa8df307df52dec6/grpcio-1.83.0-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:f1c3e5689d4b90987b1d72022bcfe866a9a3dc66197484cf856d96b6150e7f45", size = 8604248, upload-time = "2026-07-23T15:20:06.77Z" },
+ { url = "https://files.pythonhosted.org/packages/14/1e/f37632fc11db72dfa4bba86c3a43e54358e53030df111ecae5e91a733ad6/grpcio-1.83.0-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:a21cb4eeeba124443f399be2e8b624943cde864dcbe588cb42e5c483a52a906c", size = 7977458, upload-time = "2026-07-23T15:20:09.109Z" },
+ { url = "https://files.pythonhosted.org/packages/93/b6/d70b69ae5c0cfc341b9ba474980e4ed99cbf05c0e4a14e9eee8cb73db0a5/grpcio-1.83.0-cp313-cp313-win32.whl", hash = "sha256:8fe04f1050a59f875601eb55d42b4f66946fe89817f967e34db1462ccd07dadf", size = 4393993, upload-time = "2026-07-23T15:20:11.017Z" },
+ { url = "https://files.pythonhosted.org/packages/0f/13/45d4cccb555cf4c476226979bf3d2fd0b0254216f7564c3a053e35117efc/grpcio-1.83.0-cp313-cp313-win_amd64.whl", hash = "sha256:6e01ecd9d8ef280abe1365138a4dc318f9a5287f4cb1b41d07816f796653f735", size = 5159650, upload-time = "2026-07-23T15:20:12.979Z" },
+ { url = "https://files.pythonhosted.org/packages/9c/60/f2cca8147ea213d3e43ae9158d03ad04e020fdf32ff027253e1fe93f921d/grpcio-1.83.0-cp314-cp314-linux_armv7l.whl", hash = "sha256:3f351629f6ae16ecc0ec3553e586a6763ffd9f6114044286d0cbec3e09241bfa", size = 6305607, upload-time = "2026-07-23T15:20:15.353Z" },
+ { url = "https://files.pythonhosted.org/packages/d0/ab/d3874931d123a95e83a3ebf8aa04537988fb62425cedb8bf3cefc5ad41b2/grpcio-1.83.0-cp314-cp314-macosx_11_0_universal2.whl", hash = "sha256:d05ff664100d429335b93c91b8b34ddf9e94a112205e7fa06dede309e44a4e4c", size = 12166617, upload-time = "2026-07-23T15:20:17.435Z" },
+ { url = "https://files.pythonhosted.org/packages/92/ff/6f18f9426b69306f4e00a9add3b0ee2748da8aad53836ef80cab0d62d04f/grpcio-1.83.0-cp314-cp314-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:7936f2a56cf04f6514705c0fedf400971de01b6aa1719327e4718f410a765e2b", size = 6880213, upload-time = "2026-07-23T15:20:19.98Z" },
+ { url = "https://files.pythonhosted.org/packages/70/21/706d1147c6b93b98f179240c13991fbcc56880eba0c868abb1ad40d8a0a6/grpcio-1.83.0-cp314-cp314-manylinux2014_i686.manylinux_2_17_i686.whl", hash = "sha256:b0a0be840e51b6b7ee9df9269770faf77bdf4b771053c257c21d12bad607714c", size = 7618335, upload-time = "2026-07-23T15:20:22.161Z" },
+ { url = "https://files.pythonhosted.org/packages/74/04/1a8443c889115ec9e213a213e86bc93a71ee9088027e5befa09aaa0edd9d/grpcio-1.83.0-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:009667eaf3dcd5224c713589cdc98e7ca4ed0ff0b61132c6b276e930eb83a2df", size = 7043416, upload-time = "2026-07-23T15:20:24.209Z" },
+ { url = "https://files.pythonhosted.org/packages/86/c6/94e0fee5b12bc1da1370185b680988db6f739d19b42d9959db01a7ea50bf/grpcio-1.83.0-cp314-cp314-musllinux_1_2_aarch64.whl", hash = "sha256:bb669918fd88936b15599caff4160a77ab74bdeb25f2231f6e45b61282d6107b", size = 7583253, upload-time = "2026-07-23T15:20:26.313Z" },
+ { url = "https://files.pythonhosted.org/packages/a0/97/de1ccb671fb85575bc5192faedf9ecdbdf5b390d2e6584dcf552bcbd370e/grpcio-1.83.0-cp314-cp314-musllinux_1_2_i686.whl", hash = "sha256:c19b454d3d3f28db81f2c7c4dbaee96e7f6fd149721733ffe79d6bc530f17404", size = 8605102, upload-time = "2026-07-23T15:20:28.437Z" },
+ { url = "https://files.pythonhosted.org/packages/17/0f/0e0ec749a7034ffcbaa050e39779872950ead90c22e7e0116be3f28b2b46/grpcio-1.83.0-cp314-cp314-musllinux_1_2_x86_64.whl", hash = "sha256:61007cd08640abc5c54547ee32505474c482cd733a53cb87551ea81faa6350af", size = 7979826, upload-time = "2026-07-23T15:20:31.182Z" },
+ { url = "https://files.pythonhosted.org/packages/83/fa/c3fda157287f64bc65acee6c5aa90c41acf9e0d3a8e69a265eecff6d00a1/grpcio-1.83.0-cp314-cp314-win32.whl", hash = "sha256:32e11c37f5285b0c6fa3042c05fe06903696689749833fc64e67dec71b9bbe33", size = 4471765, upload-time = "2026-07-23T15:20:33.195Z" },
+ { url = "https://files.pythonhosted.org/packages/a1/00/b1b26431c9d54eee11724fd6e5585473a2ed47fbc1fb95e5204906a642ce/grpcio-1.83.0-cp314-cp314-win_amd64.whl", hash = "sha256:2bb48cb5e6dd005ca12b89ce4b6ac0b48ff3112c747542ee7986ef611a8ca6d9", size = 5298932, upload-time = "2026-07-23T15:20:35.48Z" },
+]
+
+[[package]]
+name = "grpcio-tools"
+version = "1.70.0"
+source = { registry = "https://pypi.org/simple" }
+resolution-markers = [
+ "python_full_version < '3.9'",
+]
+dependencies = [
+ { name = "grpcio", version = "1.70.0", source = { registry = "https://pypi.org/simple" } },
+ { name = "protobuf", version = "5.29.6", source = { registry = "https://pypi.org/simple" } },
+ { name = "setuptools", version = "75.3.4", source = { registry = "https://pypi.org/simple" } },
+]
+sdist = { url = "https://files.pythonhosted.org/packages/c1/fe/3adf1035c1f9e9243516530beae67e197f2acc17562ec75f03a0ba77fc55/grpcio_tools-1.70.0.tar.gz", hash = "sha256:e578fee7c1c213c8e471750d92631d00f178a15479fb2cb3b939a07fc125ccd3", size = 5323149, upload-time = "2025-01-23T18:00:38.271Z" }
+wheels = [
+ { url = "https://files.pythonhosted.org/packages/69/4f/97343e9af496fde5fd141874cb075ad8f338a99b1bfc1aef1f1041887e31/grpcio_tools-1.70.0-cp310-cp310-linux_armv7l.whl", hash = "sha256:4d456521290e25b1091975af71604facc5c7db162abdca67e12a0207b8bbacbe", size = 2380731, upload-time = "2025-01-23T17:57:39.201Z" },
+ { url = "https://files.pythonhosted.org/packages/54/48/a43b5546eeacf3171d6789aae4d0ab1f2d4203e44eb07ffc60373ac90c26/grpcio_tools-1.70.0-cp310-cp310-macosx_12_0_universal2.whl", hash = "sha256:d50080bca84f53f3a05452e06e6251cbb4887f5a1d1321d1989e26d6e0dc398d", size = 5935297, upload-time = "2025-01-23T17:57:41.94Z" },
+ { url = "https://files.pythonhosted.org/packages/a8/63/6f1d3c4fe4342b82cf14fd4c04d762d3ece41e5c60ca53a7532f867c7fa8/grpcio_tools-1.70.0-cp310-cp310-manylinux_2_17_aarch64.whl", hash = "sha256:02e3bf55fb569fe21b54a32925979156e320f9249bb247094c4cbaa60c23a80d", size = 2336438, upload-time = "2025-01-23T17:57:44.933Z" },
+ { url = "https://files.pythonhosted.org/packages/d9/01/e1dff616f1d088b6024767c914d13fed5800e5cc02c6904396fd01cb41ad/grpcio_tools-1.70.0-cp310-cp310-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:88a3ec6fa2381f616d567f996503e12ca353777941b61030fd9733fd5772860e", size = 2729489, upload-time = "2025-01-23T17:57:46.754Z" },
+ { url = "https://files.pythonhosted.org/packages/3d/60/a7c493d5cb4962e88e04c4045282ab1c60cbe480fd8105e0472950d43c97/grpcio_tools-1.70.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:6034a0579fab2aed8685fa1a558de084668b1e9b01a82a4ca7458b9bedf4654c", size = 2463411, upload-time = "2025-01-23T17:57:48.52Z" },
+ { url = "https://files.pythonhosted.org/packages/b7/1a/90c63bd2cc681936e3d8ff27f3b70a6ed7bf9f2fd40b51c18c81b0e167a3/grpcio_tools-1.70.0-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:701bbb1ff406a21a771f5b1df6be516c0a59236774b6836eaad7696b1d128ea8", size = 3341102, upload-time = "2025-01-23T17:57:50.557Z" },
+ { url = "https://files.pythonhosted.org/packages/9c/01/e70919607bbb77c087c7fd6a8dc8c21a3f575d0cf71ae19e7ca709a10abc/grpcio_tools-1.70.0-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:6eeb86864e1432fc1ab61e03395a2a4c04e9dd9c89db07e6fe68c7c2ac8ec24f", size = 2944181, upload-time = "2025-01-23T17:57:52.556Z" },
+ { url = "https://files.pythonhosted.org/packages/17/27/34d3903480e0cffb64a6002a0766784047cac0ba65bd9f2824a0c6c86111/grpcio_tools-1.70.0-cp310-cp310-win32.whl", hash = "sha256:d53c8c45e843b5836781ad6b82a607c72c2f9a3f556e23d703a0e099222421fa", size = 947441, upload-time = "2025-01-23T17:57:54.453Z" },
+ { url = "https://files.pythonhosted.org/packages/48/8a/b3b2fd2c8710837185b98abf06e3e775d101a09d2c2192f8f77b91c392b5/grpcio_tools-1.70.0-cp310-cp310-win_amd64.whl", hash = "sha256:22024caee36ab65c2489594d718921dcbb5bd18d61c5417a9ede94fd8dc8a589", size = 1119450, upload-time = "2025-01-23T17:57:56.299Z" },
+ { url = "https://files.pythonhosted.org/packages/ab/2b/446a63000acab303bbc1b84fa7dbfa4857d96e95ab53e85083ba16c60d4a/grpcio_tools-1.70.0-cp311-cp311-linux_armv7l.whl", hash = "sha256:5f5aba12d98d25c7ab2dd983939e2c21556a7d15f903b286f24d88d2c6e30c0a", size = 2380860, upload-time = "2025-01-23T17:57:58.186Z" },
+ { url = "https://files.pythonhosted.org/packages/0c/d2/48e82de83bf34f9a5207ea808a1c6e074bf657720664eb6c9f0bab38dbf2/grpcio_tools-1.70.0-cp311-cp311-macosx_10_14_universal2.whl", hash = "sha256:d47a6c6cfc526b290b7b53a37dd7e6932983f7a168b56aab760b4b597c47f30f", size = 5957716, upload-time = "2025-01-23T17:58:00.769Z" },
+ { url = "https://files.pythonhosted.org/packages/fa/f7/a735faa8fc96778aa54e321ac6820bab03ee4eea305cc1209b095dfdffee/grpcio_tools-1.70.0-cp311-cp311-manylinux_2_17_aarch64.whl", hash = "sha256:b5a9beadd1e24772ffa2c70f07d72f73330d356b78b246e424f4f2ed6c6713f3", size = 2336501, upload-time = "2025-01-23T17:58:02.675Z" },
+ { url = "https://files.pythonhosted.org/packages/47/ed/4bed599c061b65149b32569347a857098819d75c2419c4202f9de1e06250/grpcio_tools-1.70.0-cp311-cp311-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:bb8135eef160a62505f074bf7a3d62f3b13911c3c14037c5392bf877114213b5", size = 2729638, upload-time = "2025-01-23T17:58:04.73Z" },
+ { url = "https://files.pythonhosted.org/packages/4f/43/d8850889a2041cf94e882712df0e323cd6bbf24f8f4c50e2f0d80c68da7d/grpcio_tools-1.70.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f7ac9b3e13ace8467a586c53580ee22f9732c355583f3c344ef8c6c0666219cc", size = 2463251, upload-time = "2025-01-23T17:58:06.879Z" },
+ { url = "https://files.pythonhosted.org/packages/a8/2e/2407641c70ca0afe03a04c3c29f0b51e1582759e3d5c995217b4ed0ce2bd/grpcio_tools-1.70.0-cp311-cp311-musllinux_1_1_i686.whl", hash = "sha256:63f367363a4a1489a0046b19f9d561216ea0d206c40a6f1bf07a58ccfb7be480", size = 3340968, upload-time = "2025-01-23T17:58:08.825Z" },
+ { url = "https://files.pythonhosted.org/packages/de/bb/591799e6b0445028d74552964e47d7b0b23ff5ce9c377688b318de331f12/grpcio_tools-1.70.0-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:54ceffef59a059d2c7304554a8bbb20eedb05a3f937159ab1c332c1b28e12c9f", size = 2944466, upload-time = "2025-01-23T17:58:10.984Z" },
+ { url = "https://files.pythonhosted.org/packages/3f/90/b73293fff616574cbdf70437efb3b2ee6af3705c6b2cc19dd02dfb01708f/grpcio_tools-1.70.0-cp311-cp311-win32.whl", hash = "sha256:7a90a66a46821140a2a2b0be787dfabe42e22e9a5ba9cc70726b3e5c71a3b785", size = 947335, upload-time = "2025-01-23T17:58:13.028Z" },
+ { url = "https://files.pythonhosted.org/packages/88/cc/12ad066dc722285ee3f7d398d4272dc43857de6b7e6fa509a385ca4a857f/grpcio_tools-1.70.0-cp311-cp311-win_amd64.whl", hash = "sha256:4ebf09733545a69c166b02caa14c34451e38855544820dab7fdde5c28e2dbffe", size = 1119053, upload-time = "2025-01-23T17:58:14.879Z" },
+ { url = "https://files.pythonhosted.org/packages/58/8d/21f3f0c6e8ddc7ffd82873a6ff767a568a3384043adc034c49fd72020884/grpcio_tools-1.70.0-cp312-cp312-linux_armv7l.whl", hash = "sha256:ec5d6932c3173d7618267b3b3fd77b9243949c5ec04302b7338386d4f8544e0b", size = 2380552, upload-time = "2025-01-23T17:58:18.148Z" },
+ { url = "https://files.pythonhosted.org/packages/e1/10/def56ecb8e139a96aae9d408d891f32f24a066c57179ce5f78e7edf70a35/grpcio_tools-1.70.0-cp312-cp312-macosx_10_14_universal2.whl", hash = "sha256:f22852da12f53b02a3bdb29d0c32fcabab9c7c8f901389acffec8461083f110d", size = 5956826, upload-time = "2025-01-23T17:58:29.754Z" },
+ { url = "https://files.pythonhosted.org/packages/63/5e/f10375b90b7dc14d1b5095797d4f79b34e584fbc9bda06e093ad316a96dd/grpcio_tools-1.70.0-cp312-cp312-manylinux_2_17_aarch64.whl", hash = "sha256:7d45067e6efd20881e98a0e1d7edd7f207b1625ad7113321becbfe0a6ebee46c", size = 2335835, upload-time = "2025-01-23T17:58:31.711Z" },
+ { url = "https://files.pythonhosted.org/packages/ec/33/d770fbdf824edfc0f9297be046d4d48fbc81b2dbf802827ade65110f0a47/grpcio_tools-1.70.0-cp312-cp312-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:3020c97f03b30eee3c26aa2a55fbe003f1729c6f879a378507c2c78524db7c12", size = 2729501, upload-time = "2025-01-23T17:58:34.777Z" },
+ { url = "https://files.pythonhosted.org/packages/e2/fb/8442f386fa71056abe7ebbc153eaac8cbe32875ed659a641ca526ab9f341/grpcio_tools-1.70.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:d7fd472fce3b33bdf7fbc24d40da7ab10d7a088bcaf59c37433c2c57330fbcb6", size = 2462824, upload-time = "2025-01-23T17:58:36.836Z" },
+ { url = "https://files.pythonhosted.org/packages/46/4e/1703d2586663078613baed553de052e029b3d7fe311e90d3f023c85e612a/grpcio_tools-1.70.0-cp312-cp312-musllinux_1_1_i686.whl", hash = "sha256:3875543d74ce1a698a11f498f83795216ce929cb29afa5fac15672c7ba1d6dd2", size = 3340759, upload-time = "2025-01-23T17:58:40.285Z" },
+ { url = "https://files.pythonhosted.org/packages/59/d9/f61e427b0e1d7305396dacea65d1e0612eb2bc66b02328ef6bde117624fb/grpcio_tools-1.70.0-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:a130c24d617a3a57369da784080dfa8848444d41b7ae1250abc06e72e706a8d9", size = 2944463, upload-time = "2025-01-23T17:58:43.618Z" },
+ { url = "https://files.pythonhosted.org/packages/8d/8f/8f6f511ad90e12d7c2f396ad9efe46019c0a77a5f5f69e46998c834405e4/grpcio_tools-1.70.0-cp312-cp312-win32.whl", hash = "sha256:8eae17c920d14e2e451dbb18f5d8148f884e10228061941b33faa8fceee86e73", size = 946776, upload-time = "2025-01-23T17:58:45.424Z" },
+ { url = "https://files.pythonhosted.org/packages/83/0f/aff5d01ce9ae94ed02b79e033b0c469e560221340c09120270109de4986a/grpcio_tools-1.70.0-cp312-cp312-win_amd64.whl", hash = "sha256:99caa530242a0a832d8b6a6ab94b190c9b449d3e237f953911b4d56207569436", size = 1118594, upload-time = "2025-01-23T17:58:47.274Z" },
+ { url = "https://files.pythonhosted.org/packages/49/2a/bf442acb748b2a53281e5e7cc3fa36c25ae99436cd2f2cfe684096d4c39f/grpcio_tools-1.70.0-cp313-cp313-linux_armv7l.whl", hash = "sha256:f024688d04e7a9429489ed695b85628075c3c6d655198ba3c6ccbd1d8b7c333b", size = 2380142, upload-time = "2025-01-23T17:58:50.214Z" },
+ { url = "https://files.pythonhosted.org/packages/dc/a2/984dabaf1cdc41e267acdd37232026ede28f55bc6f9e932907bcbbb46773/grpcio_tools-1.70.0-cp313-cp313-macosx_10_14_universal2.whl", hash = "sha256:1fa9a81621d7178498dedcf94eb8f276a7594327faf3dd5fd1935ce2819a2bdb", size = 5955907, upload-time = "2025-01-23T17:58:52.499Z" },
+ { url = "https://files.pythonhosted.org/packages/cd/78/ebefc32418be93828b46eca5952ef1cb0400b33883bc20c22b1fc2a51f61/grpcio_tools-1.70.0-cp313-cp313-manylinux_2_17_aarch64.whl", hash = "sha256:c6da2585c0950cdb650df1ff6d85b3fe31e22f8370b9ee11f8fe641d5b4bf096", size = 2335428, upload-time = "2025-01-23T17:58:54.781Z" },
+ { url = "https://files.pythonhosted.org/packages/a0/f8/5d4b58dc846bf28b8b9abf07f5d091eb078fc4f01184adb3b374cf5119a4/grpcio_tools-1.70.0-cp313-cp313-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:70234b592af17050ec30cf35894790cef52aeae87639efe6db854a7fa783cc8c", size = 2728481, upload-time = "2025-01-23T17:58:56.783Z" },
+ { url = "https://files.pythonhosted.org/packages/b0/28/46833d415b2c2e3e0f36763c528da48785c94580240684e56410abd08aa0/grpcio_tools-1.70.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:9c021b040d0a9f5bb96a725c4d2b95008aad127d6bed124a7bbe854973014f5b", size = 2462401, upload-time = "2025-01-23T17:58:59.281Z" },
+ { url = "https://files.pythonhosted.org/packages/fa/8a/c771a09aea58275106e08e7dd37470c6e8555dfcea9a7b44d1c5adc80370/grpcio_tools-1.70.0-cp313-cp313-musllinux_1_1_i686.whl", hash = "sha256:114a42e566e5b16a47e98f7910a6c0074b37e2d1faacaae13222e463d0d0d43c", size = 3340068, upload-time = "2025-01-23T17:59:01.859Z" },
+ { url = "https://files.pythonhosted.org/packages/3a/be/e3dfa73435c633859c4a045c299105e99a6c6a41cda524148bf9c8d4dc99/grpcio_tools-1.70.0-cp313-cp313-musllinux_1_1_x86_64.whl", hash = "sha256:4cae365d7e3ba297256216a9a256458b286f75c64603f017972b3ad1ee374437", size = 2944317, upload-time = "2025-01-23T17:59:05.594Z" },
+ { url = "https://files.pythonhosted.org/packages/b6/bd/e30fb2b0ce2c0c48caf994b1ebedb56fc7103e26062dd31a41ad1e528eb7/grpcio_tools-1.70.0-cp313-cp313-win32.whl", hash = "sha256:ae139a8d3ddd8353f62af3af018e99ebcd2f4a237bd319cb4b6f58dd608aaa54", size = 946136, upload-time = "2025-01-23T17:59:08.005Z" },
+ { url = "https://files.pythonhosted.org/packages/0f/8a/92aba852bbe2ddf3e44c354b4162b3cf350b810523ffb2d0e5937bd3f249/grpcio_tools-1.70.0-cp313-cp313-win_amd64.whl", hash = "sha256:04bf30c0eb2741defe3ab6e0a6102b022d69cfd39d68fab9b954993ceca8d346", size = 1118147, upload-time = "2025-01-23T17:59:11.013Z" },
+ { url = "https://files.pythonhosted.org/packages/a6/0b/bce2b01d7b171c38909c5e70b61c3559b350ff656036a701d48ce67e5c6f/grpcio_tools-1.70.0-cp38-cp38-linux_armv7l.whl", hash = "sha256:076f71c6d5adcf237ebca63f1ed51098293261dab9f301e3dfd180e896e5fa89", size = 2381290, upload-time = "2025-01-23T17:59:13.271Z" },
+ { url = "https://files.pythonhosted.org/packages/bc/61/07cb971a13043ebc37e513bfcf442ea59125345c40cec4f0f924a4952619/grpcio_tools-1.70.0-cp38-cp38-macosx_10_14_universal2.whl", hash = "sha256:d1fc2112e9c40167086e2e6a929b253e5281bffd070fab7cd1ae019317ffc11d", size = 5960402, upload-time = "2025-01-23T17:59:15.753Z" },
+ { url = "https://files.pythonhosted.org/packages/44/3a/c98299532891a769296b058b63de2c76a496b5b8c2533810ebc29780656c/grpcio_tools-1.70.0-cp38-cp38-manylinux_2_17_aarch64.whl", hash = "sha256:904f13d2d04f88178b09d8ef89549b90cbf8792b684a7c72540fc1a9887697e2", size = 2337054, upload-time = "2025-01-23T17:59:19.445Z" },
+ { url = "https://files.pythonhosted.org/packages/10/e5/5296bd2382ad5d7ed2ce579c2a830f94bac4e91137f47168172bf75f7f68/grpcio_tools-1.70.0-cp38-cp38-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:1de6c71833d36fb8cc8ac10539681756dc2c5c67e5d4aa4d05adb91ecbdd8474", size = 2731131, upload-time = "2025-01-23T17:59:22.923Z" },
+ { url = "https://files.pythonhosted.org/packages/77/53/16b9c8c9f2e7d8d9df96051a3360cd31d5218986e63b5a14938fa38c1b70/grpcio_tools-1.70.0-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:1ab788afced2d2c59bef86479967ce0b28485789a9f2cc43793bb7aa67f9528b", size = 2464142, upload-time = "2025-01-23T17:59:25.337Z" },
+ { url = "https://files.pythonhosted.org/packages/d4/3d/6328f1636b66619e4192b785965cf2d95ca6f7e39f5e5030ff22eb484eb5/grpcio_tools-1.70.0-cp38-cp38-musllinux_1_1_i686.whl", hash = "sha256:836293dcbb1e59fa52aa8aa890bd7a32a8eea7651cd614e96d86de4f3032fe73", size = 3341924, upload-time = "2025-01-23T17:59:28.559Z" },
+ { url = "https://files.pythonhosted.org/packages/96/29/7f6b9dd4122fa46ac6ebdd12a3e344bba03b8d1afadd229ad056f135e982/grpcio_tools-1.70.0-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:740b3741d124c5f390dd50ad1c42c11788882baf3c202cd3e69adee0e3dde559", size = 2944429, upload-time = "2025-01-23T17:59:30.938Z" },
+ { url = "https://files.pythonhosted.org/packages/96/a5/55b060488adb9dea51973cc723542dab3464c528e6c42cae052608ed6d31/grpcio_tools-1.70.0-cp38-cp38-win32.whl", hash = "sha256:b9e4a12b862ba5e42d8028da311e8d4a2c307362659b2f4141d0f940f8c12b49", size = 947562, upload-time = "2025-01-23T17:59:33.308Z" },
+ { url = "https://files.pythonhosted.org/packages/6e/64/5082df7ae850af29d02587c7addcf6defb876ef439080bb527425bdffd47/grpcio_tools-1.70.0-cp38-cp38-win_amd64.whl", hash = "sha256:fd04c93af460b1456cd12f8f85502503e1db6c4adc1b7d4bd775b12c1fd94fee", size = 1119470, upload-time = "2025-01-23T17:59:35.818Z" },
+ { url = "https://files.pythonhosted.org/packages/b5/a7/4f1823dae0dd3e9f12eaf33f0e505fb3f5c3c2ce4e4351045819a8c1862e/grpcio_tools-1.70.0-cp39-cp39-linux_armv7l.whl", hash = "sha256:52d7e7ef11867fe7de577076b1f2ac6bf106b2325130e3de66f8c364c96ff332", size = 2381002, upload-time = "2025-01-23T17:59:38.045Z" },
+ { url = "https://files.pythonhosted.org/packages/4a/6c/5186c4f8bbd0c29a983ee09b42f36310dc4b8d654b03a622eb93e29c98dc/grpcio_tools-1.70.0-cp39-cp39-macosx_10_14_universal2.whl", hash = "sha256:0f7ed0372afd9f5eb938334e84681396257015ab92e03de009aa3170e64b24d0", size = 5958443, upload-time = "2025-01-23T17:59:40.827Z" },
+ { url = "https://files.pythonhosted.org/packages/e2/32/f075b0619071f49103cedc1aa7db90d8dd76222dd97dcad757ecb9b541ee/grpcio_tools-1.70.0-cp39-cp39-manylinux_2_17_aarch64.whl", hash = "sha256:24a5b0328ffcfe0c4a9024f302545abdb8d6f24921409a5839f2879555b96fea", size = 2336520, upload-time = "2025-01-23T17:59:52.157Z" },
+ { url = "https://files.pythonhosted.org/packages/09/71/d66008aab2e44ff7aa1916cdfa6777fa823c665d0c9f5e163c056a8295d4/grpcio_tools-1.70.0-cp39-cp39-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:9387b30f3b2f46942fb5718624d7421875a6ce458620d6e15817172d78db1e1a", size = 2729454, upload-time = "2025-01-23T17:59:55.438Z" },
+ { url = "https://files.pythonhosted.org/packages/ed/c7/42c807214318575afe9af36cea1fa2245851de21d86276283fe90afe6aa1/grpcio_tools-1.70.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:4545264e06e1cd7fb21b9447bb5126330bececb4bc626c98f793fda2fd910bf8", size = 2463326, upload-time = "2025-01-23T17:59:57.954Z" },
+ { url = "https://files.pythonhosted.org/packages/6c/28/42436a16b038f16e3c9c688cdf1c87c7bf9f1b578d835ee96537bf8272cf/grpcio_tools-1.70.0-cp39-cp39-musllinux_1_1_i686.whl", hash = "sha256:79b723ce30416e8e1d7ff271f97ade79aaf30309a595d80c377105c07f5b20fd", size = 3341064, upload-time = "2025-01-23T18:00:01.543Z" },
+ { url = "https://files.pythonhosted.org/packages/08/ef/69a670269b8575b77188e43553e812eefc7b17693881ca52ddf839652309/grpcio_tools-1.70.0-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:1c0917dce12af04529606d437def83962d51c59dcde905746134222e94a2ab1b", size = 2944096, upload-time = "2025-01-23T18:00:05.084Z" },
+ { url = "https://files.pythonhosted.org/packages/dd/ca/e3548728937558e1883c63b2cd90357bc7802b77481cbc77d3b72f3e27d1/grpcio_tools-1.70.0-cp39-cp39-win32.whl", hash = "sha256:5cb0baa52d4d44690fac6b1040197c694776a291a90e2d3c369064b4d5bc6642", size = 947346, upload-time = "2025-01-23T18:00:07.789Z" },
+ { url = "https://files.pythonhosted.org/packages/be/66/7c1a552545a9597fbd33d77c817f1f0cc56736ca64aa0821948f945118d6/grpcio_tools-1.70.0-cp39-cp39-win_amd64.whl", hash = "sha256:840ec536ab933db2ef8d5acaa6b712d0e9e8f397f62907c852ec50a3f69cdb78", size = 1119339, upload-time = "2025-01-23T18:00:11.003Z" },
+]
+
+[[package]]
+name = "grpcio-tools"
+version = "1.80.0"
+source = { registry = "https://pypi.org/simple" }
+resolution-markers = [
+ "python_full_version >= '3.15'",
+ "python_full_version >= '3.10' and python_full_version < '3.15'",
+ "python_full_version == '3.9.*'",
+]
+dependencies = [
+ { name = "grpcio", version = "1.80.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.10'" },
+ { name = "grpcio", version = "1.83.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.10'" },
+ { name = "protobuf", version = "6.33.6", source = { registry = "https://pypi.org/simple" } },
+ { name = "setuptools", version = "82.0.1", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.10'" },
+ { name = "setuptools", version = "84.0.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.10'" },
+]
+sdist = { url = "https://files.pythonhosted.org/packages/94/c8/1223f29c84a143ae9a56c084fc96894de0ba84b6e8d60a26241abd81d278/grpcio_tools-1.80.0.tar.gz", hash = "sha256:26052b19c6ce0dcf52d1024496aea3e2bdfa864159f06dc7b97b22d041a94b26", size = 6133212, upload-time = "2026-03-30T08:52:39.077Z" }
+wheels = [
+ { url = "https://files.pythonhosted.org/packages/7a/54/1de67f5080da305a258758a8deb33f85666fa759f56785042a80b114a53f/grpcio_tools-1.80.0-cp310-cp310-linux_armv7l.whl", hash = "sha256:727477b9afa4b53f5ec70cafb41c3965d893835e0d4ea9b542fe3d0d005602bf", size = 2549601, upload-time = "2026-03-30T08:50:09.498Z" },
+ { url = "https://files.pythonhosted.org/packages/9a/b4/6d57ea199c5b880d182a2234aafa9a686f9c54c708ea7be75bd19d5aa825/grpcio_tools-1.80.0-cp310-cp310-macosx_11_0_universal2.whl", hash = "sha256:85fe8d15f146c62cb76f38d963e256392d287442b9232717d30ae9e3bbda9bc3", size = 5712717, upload-time = "2026-03-30T08:50:15.028Z" },
+ { url = "https://files.pythonhosted.org/packages/6a/1a/5505ee2277d368b409c796c78f22ea34a2a517b7d16755247efd663dc7af/grpcio_tools-1.80.0-cp310-cp310-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:95f0fffb5ca00519f3b602f938169b4dfa04b165e03258323965a9dfe8cc4d80", size = 2595941, upload-time = "2026-03-30T08:50:17.299Z" },
+ { url = "https://files.pythonhosted.org/packages/4e/39/7fc1d16d8b767805079d76365d73e82c88dfaf179034473dbc9fbccedb77/grpcio_tools-1.80.0-cp310-cp310-manylinux2014_i686.manylinux_2_17_i686.whl", hash = "sha256:7a0106af212748823a6ebd8ffbd9043414216f47cae3835f3187de0a62c415d3", size = 2909304, upload-time = "2026-03-30T08:50:19.485Z" },
+ { url = "https://files.pythonhosted.org/packages/97/d8/276ee759755d8f34f2ca5e9d2debd1a59f29f66059fb790bc369f2236c26/grpcio_tools-1.80.0-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:31fd01a4038b5dfc4ec79504a17061344f670f851833411717fef66920f13cd7", size = 2660269, upload-time = "2026-03-30T08:50:21.266Z" },
+ { url = "https://files.pythonhosted.org/packages/51/04/a6bb47942ad52901d777a649324d3203cf19d487f1d446263637f7a5bf12/grpcio_tools-1.80.0-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:57da9e19607fac4a01c48ead333c0dd15d91ed38794dce1194eda308f73e2038", size = 3109798, upload-time = "2026-03-30T08:50:23.267Z" },
+ { url = "https://files.pythonhosted.org/packages/be/50/7ee69b2919916739787d725f205b878e8d1619dd30422b8278e324664669/grpcio_tools-1.80.0-cp310-cp310-musllinux_1_2_i686.whl", hash = "sha256:90968f751851abb8b145593609800fa70c837e1c93ba0792c480b1c8d8bc29ef", size = 3658930, upload-time = "2026-03-30T08:50:25.458Z" },
+ { url = "https://files.pythonhosted.org/packages/92/61/6d50783092b0e8bbcb04152d5388bf50ecf3ea2f783d95288ff6c3bb00fa/grpcio_tools-1.80.0-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:b69dc5d6376ab43406304d1e2fc61ccf960b287d4325d77c3d45448c37a9d2da", size = 3326562, upload-time = "2026-03-30T08:50:27.809Z" },
+ { url = "https://files.pythonhosted.org/packages/ea/58/d272ba549f6b1f0d8504f5fc4cd0a296f2c495a64d6e987fe871c4151557/grpcio_tools-1.80.0-cp310-cp310-win32.whl", hash = "sha256:3e8dcfebe34cb54df095de3d5871a4562a85a29f26d0f8bb41ee2c3dcfb11c3c", size = 997620, upload-time = "2026-03-30T08:50:29.959Z" },
+ { url = "https://files.pythonhosted.org/packages/70/5f/9f45a9946a0298711c72ca48b2c1f46a7d0c207a44cd3e4bb59d04556ba3/grpcio_tools-1.80.0-cp310-cp310-win_amd64.whl", hash = "sha256:fc622ed4ca400695f41c9eae3266276c6ba007e4c28164ce53b44e7ccc5e492b", size = 1162466, upload-time = "2026-03-30T08:50:32.242Z" },
+ { url = "https://files.pythonhosted.org/packages/8a/d7/225dc91e6cb4f8d4830f16a478a468e9c6f342dcdf8cacc3772cc1d1f607/grpcio_tools-1.80.0-cp311-cp311-linux_armv7l.whl", hash = "sha256:1c43e5c768578fe0c6de3dbfaabe64af642951e1aa05c487cacedda63fa6c6c4", size = 2549937, upload-time = "2026-03-30T08:50:34.651Z" },
+ { url = "https://files.pythonhosted.org/packages/97/3d/a3684cb7677f3bea8db434eae02a9ce30135d7a268cd473b1bc8041c4722/grpcio_tools-1.80.0-cp311-cp311-macosx_11_0_universal2.whl", hash = "sha256:a225348456575f3ac7851d8e23163195e76d2a905ee340cf73f33da62fba08aa", size = 5713099, upload-time = "2026-03-30T08:50:37.158Z" },
+ { url = "https://files.pythonhosted.org/packages/b1/81/5665c697173ec346076358bfbfed0f7386825852494593ca14386478dfee/grpcio_tools-1.80.0-cp311-cp311-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:a9396f02820d3f51c368c2c9dee15c55c77636c91be48a4d5c702e98d6fe0fdc", size = 2595776, upload-time = "2026-03-30T08:50:39.087Z" },
+ { url = "https://files.pythonhosted.org/packages/03/4f/fb81384f08a8226fa079972ba88272ac6277581fc72e8ab234d74c7e065b/grpcio_tools-1.80.0-cp311-cp311-manylinux2014_i686.manylinux_2_17_i686.whl", hash = "sha256:797c08460cae16b402326eac329aec720dccf45c9f9279b95a352792eb53cf0f", size = 2909144, upload-time = "2026-03-30T08:50:40.922Z" },
+ { url = "https://files.pythonhosted.org/packages/4d/9c/c957618f1c2a3195ecf5e83b03edcb364c2c1391f74183cb76e5763fa536/grpcio_tools-1.80.0-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:1872a867eb6217de19edb70a4ce4a374ced9d94293533dfd42fa649713f55bf4", size = 2660477, upload-time = "2026-03-30T08:50:42.766Z" },
+ { url = "https://files.pythonhosted.org/packages/42/c7/23913da184febfd4eaf04de256a26bc5ff0411a5feb753e2adcff10fa86a/grpcio_tools-1.80.0-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:db122ba5ee357e3bb14e8944d69bbebcbdae91d5eace29ed4df3edc53cbc6528", size = 3110164, upload-time = "2026-03-30T08:50:44.761Z" },
+ { url = "https://files.pythonhosted.org/packages/af/fa/b25ed85ebdb0396910eaa250b1346d75527d22fca586265416bd4330dcd5/grpcio_tools-1.80.0-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:ddefd48c227e6f4d640fe576fac5fb2c4a8898196f513604c8ec7671b3b3d421", size = 3658988, upload-time = "2026-03-30T08:50:47.546Z" },
+ { url = "https://files.pythonhosted.org/packages/60/85/2a55147cc9645e2ed777d1afcd2dc68cb34ba6f6c726bd4378ddb001a5ea/grpcio_tools-1.80.0-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:970ec058fa469dd6dae6ebc687501c5da670d95dead75f62f5b0933dce2c9794", size = 3326662, upload-time = "2026-03-30T08:50:49.59Z" },
+ { url = "https://files.pythonhosted.org/packages/68/ed/b05bee2a992e6f9bda81909692ea920d0896cfa05c5c9dd77ba03f2d22fb/grpcio_tools-1.80.0-cp311-cp311-win32.whl", hash = "sha256:526b4402d47a0e9b31cd6087e42b7674784617916cc73c764e0bc35ed41b4ee5", size = 997969, upload-time = "2026-03-30T08:50:51.539Z" },
+ { url = "https://files.pythonhosted.org/packages/b6/9a/cb50c8270e2f6285ff2761130ae257ac4e51789ded4b9d9710ce0381814d/grpcio_tools-1.80.0-cp311-cp311-win_amd64.whl", hash = "sha256:ee101ecda7231770f6a5da1024a9a6ed587a7785f8fe23ab8283f4a1acb3ffe6", size = 1162742, upload-time = "2026-03-30T08:50:54.232Z" },
+ { url = "https://files.pythonhosted.org/packages/0c/b9/65929df8c9614792db900a8e45d4997fadbd1734c827da3f0eb1f2fe4866/grpcio_tools-1.80.0-cp312-cp312-linux_armv7l.whl", hash = "sha256:d19d5a8244311947b96f749c417b32d144641c6953f1164824579e1f0a51d040", size = 2550856, upload-time = "2026-03-30T08:50:57.3Z" },
+ { url = "https://files.pythonhosted.org/packages/28/17/af1557544d68d1aeca9d9ea53ed16524022d521fec6ba334ab3530e9c1a6/grpcio_tools-1.80.0-cp312-cp312-macosx_11_0_universal2.whl", hash = "sha256:fb599a3dc89ed1bb24489a2724b2f6dd4cddbbf0f7bdd69c073477bab0dc7554", size = 5710883, upload-time = "2026-03-30T08:51:00.077Z" },
+ { url = "https://files.pythonhosted.org/packages/cc/48/aa9b4f7519ca972bc40d315d5c28f05ca28fa08de13d4e8b69f551b798ab/grpcio_tools-1.80.0-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:623ee31fc2ff7df9a987b4f3d139c30af17ce46a861ae0e25fb8c112daa32dd8", size = 2598004, upload-time = "2026-03-30T08:51:02.102Z" },
+ { url = "https://files.pythonhosted.org/packages/b4/b8/b01371c119924b3beca1fe3f047b1bc2cdc66b3d37f0f3acc9d10c567a43/grpcio_tools-1.80.0-cp312-cp312-manylinux2014_i686.manylinux_2_17_i686.whl", hash = "sha256:b46570a68378539ee2b75a5a43202561f8d753c832798b1047099e3c551cf5d6", size = 2909568, upload-time = "2026-03-30T08:51:04.159Z" },
+ { url = "https://files.pythonhosted.org/packages/4f/7c/1108f7bdb58475a7e701ec89b55eb494538b6e76acd211ba0d4cc5fd28e8/grpcio_tools-1.80.0-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:51caf99c28999e7e0f97e9cea190c1405b7681a57bb2e0631205accd92b43fa4", size = 2660938, upload-time = "2026-03-30T08:51:06.126Z" },
+ { url = "https://files.pythonhosted.org/packages/67/59/d1c0063d4cd3b85363c7044ff3e5159d6d5df96e2692a9a5312d9c8cb290/grpcio_tools-1.80.0-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:cdaa1c9aa8d3a87891a96700cadd29beec214711d6522818d207277f6452567c", size = 3113814, upload-time = "2026-03-30T08:51:08.834Z" },
+ { url = "https://files.pythonhosted.org/packages/76/21/18d34a4efe524c903cf66b0cfa5260d81f277b6ae668b647edf795df9ce5/grpcio_tools-1.80.0-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:3399b5fd7b59bcffd59c6b9975a969d9f37a3c87f3e3d63c3a09c147907acb0d", size = 3662793, upload-time = "2026-03-30T08:51:11.094Z" },
+ { url = "https://files.pythonhosted.org/packages/f3/40/cf2d9295a6bd593244ea703858f8fc2efd315046ca3ef7c6f9ebc5b810fa/grpcio_tools-1.80.0-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:9c6abc08d3485b2aac99bb58afcd31dc6cd4316ce36cf263ff09cb6df15f287f", size = 3329149, upload-time = "2026-03-30T08:51:13.066Z" },
+ { url = "https://files.pythonhosted.org/packages/0d/1d/fc34b32167966df20d69429b71dfca83c48434b047a5ac4fd6cd91ca4eed/grpcio_tools-1.80.0-cp312-cp312-win32.whl", hash = "sha256:18c51e07652ac7386fcdbd11866f8d55a795de073337c12447b5805575339f74", size = 997519, upload-time = "2026-03-30T08:51:14.87Z" },
+ { url = "https://files.pythonhosted.org/packages/91/98/6d6563cdf51085b75f8ec24605c6f2ce84197571878ca8ab4af949c6be2d/grpcio_tools-1.80.0-cp312-cp312-win_amd64.whl", hash = "sha256:ac6fdd42d5bb18f0d903a067e2825be172deff70cf197164b6f65676cb506c9b", size = 1162407, upload-time = "2026-03-30T08:51:16.793Z" },
+ { url = "https://files.pythonhosted.org/packages/44/d9/f7887a4805939e9a85d03744b66fc02575dc1df3c3e8b4d9ec000ee7a33d/grpcio_tools-1.80.0-cp313-cp313-linux_armv7l.whl", hash = "sha256:e7046837859bbfd10b01786056145480155c16b222c9e209215b68d3be13060e", size = 2550319, upload-time = "2026-03-30T08:51:19.117Z" },
+ { url = "https://files.pythonhosted.org/packages/57/5a/c8a05b32bd7203f1b9f4c0151090a2d6179d6c97692d32f2066dc29c67a6/grpcio_tools-1.80.0-cp313-cp313-macosx_11_0_universal2.whl", hash = "sha256:a447f28958a8fe84ff0d9d3d9473868feb27ee4a9c9c805e66f5b670121cec59", size = 5709681, upload-time = "2026-03-30T08:51:21.991Z" },
+ { url = "https://files.pythonhosted.org/packages/82/6b/794350ed645c12c310008f97068f6a6fd927150b0d0d08aad1d909e880b1/grpcio_tools-1.80.0-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:75f00450e08fe648ad8a1eeb25bc52219679d54cdd02f04dfdddc747309d83f6", size = 2596820, upload-time = "2026-03-30T08:51:24.323Z" },
+ { url = "https://files.pythonhosted.org/packages/f9/b2/b39e7b79f7c878135e0784a53cd7260ee77260c8c7f2c9e46bca8e05d017/grpcio_tools-1.80.0-cp313-cp313-manylinux2014_i686.manylinux_2_17_i686.whl", hash = "sha256:3db830eaff1f2c2797328f2fa86c9dcdbd7d81af573a68db81e27afa2182a611", size = 2909193, upload-time = "2026-03-30T08:51:27.025Z" },
+ { url = "https://files.pythonhosted.org/packages/10/f3/abe089b058f87f9910c9a458409505cbeb0b3e1c2d993a79721d02ee6a32/grpcio_tools-1.80.0-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:7982b5fe42f012686b667dda12916884de95c4b1c65ff64371fb7232a1474b23", size = 2660197, upload-time = "2026-03-30T08:51:29.392Z" },
+ { url = "https://files.pythonhosted.org/packages/09/c3/3f7806ad8b731d8a89fe3c6ed496473abd1ef4c9c42c9e9a8836ce96e377/grpcio_tools-1.80.0-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:6451b3f4eb52d12c7f32d04bf8e0185f80521f3f088ad04b8d222b3a4819c71e", size = 3113144, upload-time = "2026-03-30T08:51:31.671Z" },
+ { url = "https://files.pythonhosted.org/packages/fe/f5/415ef205e0b7e75d2a2005df6120145c4f02fda28d7b3715b55d924fe1a4/grpcio_tools-1.80.0-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:258bc30654a9a2236be4ca8e2ad443e2ac6db7c8cc20454d34cce60265922726", size = 3661897, upload-time = "2026-03-30T08:51:34.849Z" },
+ { url = "https://files.pythonhosted.org/packages/e3/d3/2ad54764c2a9547080dd8518f4a4dc7899c7e6e747a1b1de542ce6a12066/grpcio_tools-1.80.0-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:865a2b8e6334c838976ab02a322cbd55c863d2eaf3c1e1a0255883c63996772a", size = 3328786, upload-time = "2026-03-30T08:51:37.265Z" },
+ { url = "https://files.pythonhosted.org/packages/eb/63/23ab7db01f9630ab4f3742a2fc9fbff38b0cfc30c976114f913950664a75/grpcio_tools-1.80.0-cp313-cp313-win32.whl", hash = "sha256:f760ac1722f33e774814c37b6aa0444143f612e85088ead7447a0e9cd306a1f1", size = 997087, upload-time = "2026-03-30T08:51:39.137Z" },
+ { url = "https://files.pythonhosted.org/packages/9b/af/b1c1c4423fb49cb7c8e9d2c02196b038c44160b7028b425466743c6c81fa/grpcio_tools-1.80.0-cp313-cp313-win_amd64.whl", hash = "sha256:7843b9ac6ff8ca508424d0dd968bd9a1a4559967e4a290f26be5bd6f04af2234", size = 1162167, upload-time = "2026-03-30T08:51:41.498Z" },
+ { url = "https://files.pythonhosted.org/packages/0e/44/7beeee2348f9f412804f5bf80b7d13b81d522bf926a338ae3da46b2213b7/grpcio_tools-1.80.0-cp314-cp314-linux_armv7l.whl", hash = "sha256:12f950470449dbeec78317dbc090add7a00eb6ca812af7b0538ab7441e0a42c3", size = 2550303, upload-time = "2026-03-30T08:51:44.373Z" },
+ { url = "https://files.pythonhosted.org/packages/2d/aa/f77dd85409a1855f8c6319ffc69d81e8c3ffe122ee3a7136653e1991d8b6/grpcio_tools-1.80.0-cp314-cp314-macosx_11_0_universal2.whl", hash = "sha256:d3f9a376a29c9adf62bb56f7ff5bc81eb4abeaf53d1e7dde5015564832901a51", size = 5709778, upload-time = "2026-03-30T08:51:47.112Z" },
+ { url = "https://files.pythonhosted.org/packages/9c/7c/ab7af4883ebdfdc228b853de89fed409703955e8d47285b321a5794856bd/grpcio_tools-1.80.0-cp314-cp314-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:1ba1ffbf2cff71533615e2c5a138ed5569611eec9ae7f9c67b8898e127b54ac0", size = 2597928, upload-time = "2026-03-30T08:51:49.494Z" },
+ { url = "https://files.pythonhosted.org/packages/22/e8/4381a963d472e3ab6690ba067ed2b1f1abf8518b10f402678bd2dcb79a54/grpcio_tools-1.80.0-cp314-cp314-manylinux2014_i686.manylinux_2_17_i686.whl", hash = "sha256:13f60f8d9397c514c6745a967d22b5c8c698347e88deebca1ff2e1b94555e450", size = 2909333, upload-time = "2026-03-30T08:51:52.124Z" },
+ { url = "https://files.pythonhosted.org/packages/94/cb/356b5fdf79dd99455b425fb16302fe60995554ceb721afbf3cf770a19208/grpcio_tools-1.80.0-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:88d77bad5dd3cd5e6f952c4ecdd0ee33e0c02ecfc2e4b0cbee3391ac19e0a431", size = 2660217, upload-time = "2026-03-30T08:51:55.066Z" },
+ { url = "https://files.pythonhosted.org/packages/2b/d7/1752018cc2c36b2c5612051379e2e5f59f2dbe612de23e817d2f066a9487/grpcio_tools-1.80.0-cp314-cp314-musllinux_1_2_aarch64.whl", hash = "sha256:017945c3e98a4ed1c4e21399781b4137fc08dfc1f802c8ace2e64ef52d32b142", size = 3113896, upload-time = "2026-03-30T08:51:57.3Z" },
+ { url = "https://files.pythonhosted.org/packages/cc/17/695bbe454f70df35c03e22b48c5314683b913d3e6ed35ec90d065418c1ab/grpcio_tools-1.80.0-cp314-cp314-musllinux_1_2_i686.whl", hash = "sha256:a33e265d4db803495007a6c623eafb0f6b9bb123ff4a0af89e44567dad809b88", size = 3661950, upload-time = "2026-03-30T08:51:59.867Z" },
+ { url = "https://files.pythonhosted.org/packages/9c/d0/533d87629ec823c02c9169ee20228f734c264b209dcdf55268b5a14cde0a/grpcio_tools-1.80.0-cp314-cp314-musllinux_1_2_x86_64.whl", hash = "sha256:6c129da370c5f85f569be2e545317dda786a60dd51d7deea29b03b0c05f6aac3", size = 3328755, upload-time = "2026-03-30T08:52:02.942Z" },
+ { url = "https://files.pythonhosted.org/packages/08/a1/504d7838770c73a9761e8a8ff4869dba1146b44f297ff0ac6641481942d3/grpcio_tools-1.80.0-cp314-cp314-win32.whl", hash = "sha256:25742de5958ae4325249a37e724e7c0e5120f8e302a24a977ebd1737b48a5e97", size = 1019620, upload-time = "2026-03-30T08:52:05.342Z" },
+ { url = "https://files.pythonhosted.org/packages/f3/75/8b7cd281c5cdfb4ca2c308f7e9b2799bab2be6e7a9e9212ea5a82e2aecd4/grpcio_tools-1.80.0-cp314-cp314-win_amd64.whl", hash = "sha256:bbf8eeef78fda1966f732f79c1c802fadd5cfd203d845d2af4d314d18569069c", size = 1194210, upload-time = "2026-03-30T08:52:08.105Z" },
+ { url = "https://files.pythonhosted.org/packages/83/b1/13c9bc91742ac6fb89e00aa71611c7e004883ccc0f36ab9c660d6ef8edad/grpcio_tools-1.80.0-cp39-cp39-linux_armv7l.whl", hash = "sha256:4c615f3b5c6f7e8e0b06f60e3fa9cebf88372296255268db9e9a23e72bb698bf", size = 2550165, upload-time = "2026-03-30T08:52:10.917Z" },
+ { url = "https://files.pythonhosted.org/packages/5a/89/9a385c8f2084654b8290febcef733cc2d87ec4a21a9eabdc68ef705101c5/grpcio_tools-1.80.0-cp39-cp39-macosx_11_0_universal2.whl", hash = "sha256:3954b5d07ac19d752ee70c7d63ee0ba0f9a840c33e042decf355f04b1ff41d93", size = 5713585, upload-time = "2026-03-30T08:52:14.275Z" },
+ { url = "https://files.pythonhosted.org/packages/ba/87/bc7561e500091da7448ee0fb8f4c1e58b08469e19bc73fbade682eacb1b7/grpcio_tools-1.80.0-cp39-cp39-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:9a765334d3080d147ecf7b8ab04900e56108f6457dde0a3ba7f68c270f9d6efc", size = 2596071, upload-time = "2026-03-30T08:52:16.723Z" },
+ { url = "https://files.pythonhosted.org/packages/d1/92/9de892f2d9a7353a4b114dfd7cb826af7dbf8cdfee83b44f1187acf9bc5d/grpcio_tools-1.80.0-cp39-cp39-manylinux2014_i686.manylinux_2_17_i686.whl", hash = "sha256:c18def9c38d36767946932d2cc7baf39dcae5fea5a02843ea34399871f981a09", size = 2909487, upload-time = "2026-03-30T08:52:19.287Z" },
+ { url = "https://files.pythonhosted.org/packages/28/2f/9271289aec6ff6e767366b9114c1b113af41b807153043c4c58ce21f3242/grpcio_tools-1.80.0-cp39-cp39-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:4534022e4d5dd3d7d2183ff5846bf950cbaf889af0ea5290f94212001f7cad84", size = 2661058, upload-time = "2026-03-30T08:52:22.256Z" },
+ { url = "https://files.pythonhosted.org/packages/72/20/e6843693bc5ce6f35179f863997d4ed0c12049539b06b961a02dfa157073/grpcio_tools-1.80.0-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:1816e8e512402ed0b3fe4a336aaff14f9cb42455aa88fa86f754d53973668bd6", size = 3110581, upload-time = "2026-03-30T08:52:25.505Z" },
+ { url = "https://files.pythonhosted.org/packages/30/98/1215204b3658c751b22c0e5c78d7e46383d7fff74d376217b85ab4ff1eb3/grpcio_tools-1.80.0-cp39-cp39-musllinux_1_2_i686.whl", hash = "sha256:e3b6d09f87eb87a8cab58f7e99cae3551467f51b2bcbab17a2fe931e94e7efef", size = 3659157, upload-time = "2026-03-30T08:52:28.274Z" },
+ { url = "https://files.pythonhosted.org/packages/63/8e/4f1accc96df27e625ca05210f46ad972dd75bd77ce399755593f69bedddb/grpcio_tools-1.80.0-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:6c6ce08167fd77fa057dc44fea8501c66d108eeef536073dba55c8fd3684c7a9", size = 3327150, upload-time = "2026-03-30T08:52:30.854Z" },
+ { url = "https://files.pythonhosted.org/packages/e3/cc/445e949b75b14c6957b3addc99c0ed19c9d2a42369b470e2d551b68e0915/grpcio_tools-1.80.0-cp39-cp39-win32.whl", hash = "sha256:5de4eb2d08bddeee28265c10369934b2d23b8c4acc39d419ee6a58afe34d754f", size = 998074, upload-time = "2026-03-30T08:52:33.18Z" },
+ { url = "https://files.pythonhosted.org/packages/fc/f4/03ae4ef2b68cf979d7eea2549d33e989dc3baf281a8558549911b1a839b6/grpcio_tools-1.80.0-cp39-cp39-win_amd64.whl", hash = "sha256:6a35a73042dc4bbcdd7aafc141ee9966c8ae97bf4b9f0f49e10e3e1aa54139ac", size = 1162908, upload-time = "2026-03-30T08:52:35.906Z" },
]
[[package]]
@@ -401,23 +883,41 @@ wheels = [
[[package]]
name = "identify"
-version = "2.6.18"
+version = "2.6.19"
+source = { registry = "https://pypi.org/simple" }
+resolution-markers = [
+ "python_full_version >= '3.15'",
+ "python_full_version >= '3.10' and python_full_version < '3.15'",
+]
+sdist = { url = "https://files.pythonhosted.org/packages/52/63/51723b5f116cc04b061cb6f5a561790abf249d25931d515cd375e063e0f4/identify-2.6.19.tar.gz", hash = "sha256:6be5020c38fcb07da56c53733538a3081ea5aa70d36a156f83044bfbf9173842", size = 99567, upload-time = "2026-04-17T18:39:50.265Z" }
+wheels = [
+ { url = "https://files.pythonhosted.org/packages/94/84/d9273cd09688070a6523c4aee4663a8538721b2b755c4962aafae0011e72/identify-2.6.19-py2.py3-none-any.whl", hash = "sha256:20e6a87f786f768c092a721ad107fc9df0eb89347be9396cadf3f4abbd1fb78a", size = 99397, upload-time = "2026-04-17T18:39:49.221Z" },
+]
+
+[[package]]
+name = "idna"
+version = "3.15"
source = { registry = "https://pypi.org/simple" }
resolution-markers = [
- "python_full_version >= '3.10'",
+ "python_full_version < '3.9'",
]
-sdist = { url = "https://files.pythonhosted.org/packages/46/c4/7fb4db12296cdb11893d61c92048fe617ee853f8523b9b296ac03b43757e/identify-2.6.18.tar.gz", hash = "sha256:873ac56a5e3fd63e7438a7ecbc4d91aca692eb3fefa4534db2b7913f3fc352fd", size = 99580, upload-time = "2026-03-15T18:39:50.319Z" }
+sdist = { url = "https://files.pythonhosted.org/packages/82/77/7b3966d0b9d1d31a36ddf1746926a11dface89a83409bf1483f0237aa758/idna-3.15.tar.gz", hash = "sha256:ca962446ea538f7092a95e057da437618e886f4d349216d2b1e294abfdb65fdc", size = 199245, upload-time = "2026-05-12T22:45:57.011Z" }
wheels = [
- { url = "https://files.pythonhosted.org/packages/46/33/92ef41c6fad0233e41d3d84ba8e8ad18d1780f1e5d99b3c683e6d7f98b63/identify-2.6.18-py2.py3-none-any.whl", hash = "sha256:8db9d3c8ea9079db92cafb0ebf97abdc09d52e97f4dcf773a2e694048b7cd737", size = 99394, upload-time = "2026-03-15T18:39:48.915Z" },
+ { url = "https://files.pythonhosted.org/packages/d2/23/408243171aa9aaba178d3e2559159c24c1171a641aa83b67bdd3394ead8e/idna-3.15-py3-none-any.whl", hash = "sha256:048adeaf8c2d788c40fee287673ccaa74c24ffd8dcf09ffa555a2fbb59f10ac8", size = 72340, upload-time = "2026-05-12T22:45:55.733Z" },
]
[[package]]
name = "idna"
-version = "3.11"
+version = "3.19"
source = { registry = "https://pypi.org/simple" }
-sdist = { url = "https://files.pythonhosted.org/packages/6f/6d/0703ccc57f3a7233505399edb88de3cbd678da106337b9fcde432b65ed60/idna-3.11.tar.gz", hash = "sha256:795dafcc9c04ed0c1fb032c2aa73654d8e8c5023a7df64a53f39190ada629902", size = 194582, upload-time = "2025-10-12T14:55:20.501Z" }
+resolution-markers = [
+ "python_full_version >= '3.15'",
+ "python_full_version >= '3.10' and python_full_version < '3.15'",
+ "python_full_version == '3.9.*'",
+]
+sdist = { url = "https://files.pythonhosted.org/packages/5f/f7/abb373e5757eaec4b922b92f97ec8d6d7e057cf06778247604fbc4e7c3f3/idna-3.19.tar.gz", hash = "sha256:5e0811a4383b21dc5838069f801c4fb62113b7447663d2530d2bd6e77b49bf15", size = 215237, upload-time = "2026-08-18T05:14:24.27Z" }
wheels = [
- { url = "https://files.pythonhosted.org/packages/0e/61/66938bbb5fc52dbdf84594873d5b51fb1f7c7794e9c0f5bd885f30bc507b/idna-3.11-py3-none-any.whl", hash = "sha256:771a87f49d9defaf64091e6e6fe9c18d4833f140bd19464795bc32d966ca37ea", size = 71008, upload-time = "2025-10-12T14:55:18.883Z" },
+ { url = "https://files.pythonhosted.org/packages/57/b0/0e52c878c53f245edd3a11020f20979b3f490f245af532c7cae3027754b5/idna-3.19-py3-none-any.whl", hash = "sha256:815e7be7a7806d54abb586dc943addc79e8b2ee16915059658cbeff4b1b43bf4", size = 68550, upload-time = "2026-08-18T05:14:22.343Z" },
]
[[package]]
@@ -428,7 +928,7 @@ resolution-markers = [
"python_full_version < '3.9'",
]
dependencies = [
- { name = "zipp", version = "3.20.2", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.9'" },
+ { name = "zipp", version = "3.20.2", source = { registry = "https://pypi.org/simple" } },
]
sdist = { url = "https://files.pythonhosted.org/packages/cd/12/33e59336dca5be0c398a7482335911a33aa0e20776128f038019f1a95f1b/importlib_metadata-8.5.0.tar.gz", hash = "sha256:71522656f0abace1d072b9e5481a48f07c138e00f079c38c8f883823f9c26bd7", size = 55304, upload-time = "2024-09-11T14:56:08.937Z" }
wheels = [
@@ -443,7 +943,7 @@ resolution-markers = [
"python_full_version == '3.9.*'",
]
dependencies = [
- { name = "zipp", version = "3.23.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version == '3.9.*'" },
+ { name = "zipp", version = "3.23.1", source = { registry = "https://pypi.org/simple" } },
]
sdist = { url = "https://files.pythonhosted.org/packages/f3/49/3b30cad09e7771a4982d9975a8cbf64f00d4a1ececb53297f1d9a7be1b10/importlib_metadata-8.7.1.tar.gz", hash = "sha256:49fef1ae6440c182052f407c8d34a68f72efc36db9ca90dc0113398f2fdde8bb", size = 57107, upload-time = "2025-12-21T10:00:19.278Z" }
wheels = [
@@ -458,7 +958,7 @@ resolution-markers = [
"python_full_version < '3.9'",
]
dependencies = [
- { name = "zipp", version = "3.20.2", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.9'" },
+ { name = "zipp", version = "3.20.2", source = { registry = "https://pypi.org/simple" } },
]
sdist = { url = "https://files.pythonhosted.org/packages/98/be/f3e8c6081b684f176b761e6a2fef02a0be939740ed6f54109a2951d806f3/importlib_resources-6.4.5.tar.gz", hash = "sha256:980862a1d16c9e147a59603677fa2aa5fd82b87f223b6cb870695bcfce830065", size = 43372, upload-time = "2024-09-09T17:03:14.677Z" }
wheels = [
@@ -470,11 +970,12 @@ name = "importlib-resources"
version = "6.5.2"
source = { registry = "https://pypi.org/simple" }
resolution-markers = [
- "python_full_version >= '3.10'",
+ "python_full_version >= '3.15'",
+ "python_full_version >= '3.10' and python_full_version < '3.15'",
"python_full_version == '3.9.*'",
]
dependencies = [
- { name = "zipp", version = "3.23.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version == '3.9.*'" },
+ { name = "zipp", version = "3.23.1", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.10'" },
]
sdist = { url = "https://files.pythonhosted.org/packages/cf/8c/f834fbf984f691b4f7ff60f50b514cc3de5cc08abfc3295564dd89c5e2e7/importlib_resources-6.5.2.tar.gz", hash = "sha256:185f87adef5bcc288449d98fb4fba07cea78bc036455dd44c5fc4a2fe78fed2c", size = 44693, upload-time = "2025-01-03T18:51:56.698Z" }
wheels = [
@@ -499,7 +1000,8 @@ name = "iniconfig"
version = "2.3.0"
source = { registry = "https://pypi.org/simple" }
resolution-markers = [
- "python_full_version >= '3.10'",
+ "python_full_version >= '3.15'",
+ "python_full_version >= '3.10' and python_full_version < '3.15'",
]
sdist = { url = "https://files.pythonhosted.org/packages/72/34/14ca021ce8e5dfedc35312d08ba8bf51fdd999c576889fc2c24cb97f4f10/iniconfig-2.3.0.tar.gz", hash = "sha256:c76315c77db068650d49c5b56314774a7804df16fee4402c1f19d6d15d8c4730", size = 20503, upload-time = "2025-10-18T21:55:43.219Z" }
wheels = [
@@ -519,149 +1021,157 @@ wheels = [
{ url = "https://files.pythonhosted.org/packages/62/a1/3d680cbfd5f4b8f15abc1d571870c5fc3e594bb582bc3b64ea099db13e56/jinja2-3.1.6-py3-none-any.whl", hash = "sha256:85ece4451f492d0c13c5dd7c13a64681a86afae63a5f347908daf103ce6d2f67", size = 134899, upload-time = "2025-03-05T20:05:00.369Z" },
]
-[[package]]
-name = "jsmin"
-version = "3.0.1"
-source = { registry = "https://pypi.org/simple" }
-sdist = { url = "https://files.pythonhosted.org/packages/5e/73/e01e4c5e11ad0494f4407a3f623ad4d87714909f50b17a06ed121034ff6e/jsmin-3.0.1.tar.gz", hash = "sha256:c0959a121ef94542e807a674142606f7e90214a2b3d1eb17300244bbb5cc2bfc", size = 13925, upload-time = "2022-01-16T20:35:59.13Z" }
-
[[package]]
name = "librt"
-version = "0.8.1"
-source = { registry = "https://pypi.org/simple" }
-sdist = { url = "https://files.pythonhosted.org/packages/56/9c/b4b0c54d84da4a94b37bd44151e46d5e583c9534c7e02250b961b1b6d8a8/librt-0.8.1.tar.gz", hash = "sha256:be46a14693955b3bd96014ccbdb8339ee8c9346fbe11c1b78901b55125f14c73", size = 177471, upload-time = "2026-02-17T16:13:06.101Z" }
-wheels = [
- { url = "https://files.pythonhosted.org/packages/7c/5f/63f5fa395c7a8a93558c0904ba8f1c8d1b997ca6a3de61bc7659970d66bf/librt-0.8.1-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:81fd938344fecb9373ba1b155968c8a329491d2ce38e7ddb76f30ffb938f12dc", size = 65697, upload-time = "2026-02-17T16:11:06.903Z" },
- { url = "https://files.pythonhosted.org/packages/ff/e0/0472cf37267b5920eff2f292ccfaede1886288ce35b7f3203d8de00abfe6/librt-0.8.1-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:5db05697c82b3a2ec53f6e72b2ed373132b0c2e05135f0696784e97d7f5d48e7", size = 68376, upload-time = "2026-02-17T16:11:08.395Z" },
- { url = "https://files.pythonhosted.org/packages/c8/be/8bd1359fdcd27ab897cd5963294fa4a7c83b20a8564678e4fd12157e56a5/librt-0.8.1-cp310-cp310-manylinux1_i686.manylinux_2_28_i686.manylinux_2_5_i686.whl", hash = "sha256:d56bc4011975f7460bea7b33e1ff425d2f1adf419935ff6707273c77f8a4ada6", size = 197084, upload-time = "2026-02-17T16:11:09.774Z" },
- { url = "https://files.pythonhosted.org/packages/e2/fe/163e33fdd091d0c2b102f8a60cc0a61fd730ad44e32617cd161e7cd67a01/librt-0.8.1-cp310-cp310-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:5cdc0f588ff4b663ea96c26d2a230c525c6fc62b28314edaaaca8ed5af931ad0", size = 207337, upload-time = "2026-02-17T16:11:11.311Z" },
- { url = "https://files.pythonhosted.org/packages/01/99/f85130582f05dcf0c8902f3d629270231d2f4afdfc567f8305a952ac7f14/librt-0.8.1-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:97c2b54ff6717a7a563b72627990bec60d8029df17df423f0ed37d56a17a176b", size = 219980, upload-time = "2026-02-17T16:11:12.499Z" },
- { url = "https://files.pythonhosted.org/packages/6f/54/cb5e4d03659e043a26c74e08206412ac9a3742f0477d96f9761a55313b5f/librt-0.8.1-cp310-cp310-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:8f1125e6bbf2f1657d9a2f3ccc4a2c9b0c8b176965bb565dd4d86be67eddb4b6", size = 212921, upload-time = "2026-02-17T16:11:14.484Z" },
- { url = "https://files.pythonhosted.org/packages/b1/81/a3a01e4240579c30f3487f6fed01eb4bc8ef0616da5b4ebac27ca19775f3/librt-0.8.1-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:8f4bb453f408137d7581be309b2fbc6868a80e7ef60c88e689078ee3a296ae71", size = 221381, upload-time = "2026-02-17T16:11:17.459Z" },
- { url = "https://files.pythonhosted.org/packages/08/b0/fc2d54b4b1c6fb81e77288ff31ff25a2c1e62eaef4424a984f228839717b/librt-0.8.1-cp310-cp310-musllinux_1_2_i686.whl", hash = "sha256:c336d61d2fe74a3195edc1646d53ff1cddd3a9600b09fa6ab75e5514ba4862a7", size = 216714, upload-time = "2026-02-17T16:11:19.197Z" },
- { url = "https://files.pythonhosted.org/packages/96/96/85daa73ffbd87e1fb287d7af6553ada66bf25a2a6b0de4764344a05469f6/librt-0.8.1-cp310-cp310-musllinux_1_2_riscv64.whl", hash = "sha256:eb5656019db7c4deacf0c1a55a898c5bb8f989be904597fcb5232a2f4828fa05", size = 214777, upload-time = "2026-02-17T16:11:20.443Z" },
- { url = "https://files.pythonhosted.org/packages/12/9c/c3aa7a2360383f4bf4f04d98195f2739a579128720c603f4807f006a4225/librt-0.8.1-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:c25d9e338d5bed46c1632f851babf3d13c78f49a225462017cf5e11e845c5891", size = 237398, upload-time = "2026-02-17T16:11:22.083Z" },
- { url = "https://files.pythonhosted.org/packages/61/19/d350ea89e5274665185dabc4bbb9c3536c3411f862881d316c8b8e00eb66/librt-0.8.1-cp310-cp310-win32.whl", hash = "sha256:aaab0e307e344cb28d800957ef3ec16605146ef0e59e059a60a176d19543d1b7", size = 54285, upload-time = "2026-02-17T16:11:23.27Z" },
- { url = "https://files.pythonhosted.org/packages/4f/d6/45d587d3d41c112e9543a0093d883eb57a24a03e41561c127818aa2a6bcc/librt-0.8.1-cp310-cp310-win_amd64.whl", hash = "sha256:56e04c14b696300d47b3bc5f1d10a00e86ae978886d0cee14e5714fafb5df5d2", size = 61352, upload-time = "2026-02-17T16:11:24.207Z" },
- { url = "https://files.pythonhosted.org/packages/1d/01/0e748af5e4fee180cf7cd12bd12b0513ad23b045dccb2a83191bde82d168/librt-0.8.1-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:681dc2451d6d846794a828c16c22dc452d924e9f700a485b7ecb887a30aad1fd", size = 65315, upload-time = "2026-02-17T16:11:25.152Z" },
- { url = "https://files.pythonhosted.org/packages/9d/4d/7184806efda571887c798d573ca4134c80ac8642dcdd32f12c31b939c595/librt-0.8.1-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:a3b4350b13cc0e6f5bec8fa7caf29a8fb8cdc051a3bae45cfbfd7ce64f009965", size = 68021, upload-time = "2026-02-17T16:11:26.129Z" },
- { url = "https://files.pythonhosted.org/packages/ae/88/c3c52d2a5d5101f28d3dc89298444626e7874aa904eed498464c2af17627/librt-0.8.1-cp311-cp311-manylinux1_i686.manylinux_2_28_i686.manylinux_2_5_i686.whl", hash = "sha256:ac1e7817fd0ed3d14fd7c5df91daed84c48e4c2a11ee99c0547f9f62fdae13da", size = 194500, upload-time = "2026-02-17T16:11:27.177Z" },
- { url = "https://files.pythonhosted.org/packages/d6/5d/6fb0a25b6a8906e85b2c3b87bee1d6ed31510be7605b06772f9374ca5cb3/librt-0.8.1-cp311-cp311-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:747328be0c5b7075cde86a0e09d7a9196029800ba75a1689332348e998fb85c0", size = 205622, upload-time = "2026-02-17T16:11:28.242Z" },
- { url = "https://files.pythonhosted.org/packages/b2/a6/8006ae81227105476a45691f5831499e4d936b1c049b0c1feb17c11b02d1/librt-0.8.1-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:f0af2bd2bc204fa27f3d6711d0f360e6b8c684a035206257a81673ab924aa11e", size = 218304, upload-time = "2026-02-17T16:11:29.344Z" },
- { url = "https://files.pythonhosted.org/packages/ee/19/60e07886ad16670aae57ef44dada41912c90906a6fe9f2b9abac21374748/librt-0.8.1-cp311-cp311-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:d480de377f5b687b6b1bc0c0407426da556e2a757633cc7e4d2e1a057aa688f3", size = 211493, upload-time = "2026-02-17T16:11:30.445Z" },
- { url = "https://files.pythonhosted.org/packages/9c/cf/f666c89d0e861d05600438213feeb818c7514d3315bae3648b1fc145d2b6/librt-0.8.1-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:d0ee06b5b5291f609ddb37b9750985b27bc567791bc87c76a569b3feed8481ac", size = 219129, upload-time = "2026-02-17T16:11:32.021Z" },
- { url = "https://files.pythonhosted.org/packages/8f/ef/f1bea01e40b4a879364c031476c82a0dc69ce068daad67ab96302fed2d45/librt-0.8.1-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:9e2c6f77b9ad48ce5603b83b7da9ee3e36b3ab425353f695cba13200c5d96596", size = 213113, upload-time = "2026-02-17T16:11:33.192Z" },
- { url = "https://files.pythonhosted.org/packages/9b/80/cdab544370cc6bc1b72ea369525f547a59e6938ef6863a11ab3cd24759af/librt-0.8.1-cp311-cp311-musllinux_1_2_riscv64.whl", hash = "sha256:439352ba9373f11cb8e1933da194dcc6206daf779ff8df0ed69c5e39113e6a99", size = 212269, upload-time = "2026-02-17T16:11:34.373Z" },
- { url = "https://files.pythonhosted.org/packages/9d/9c/48d6ed8dac595654f15eceab2035131c136d1ae9a1e3548e777bb6dbb95d/librt-0.8.1-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:82210adabbc331dbb65d7868b105185464ef13f56f7f76688565ad79f648b0fe", size = 234673, upload-time = "2026-02-17T16:11:36.063Z" },
- { url = "https://files.pythonhosted.org/packages/16/01/35b68b1db517f27a01be4467593292eb5315def8900afad29fabf56304ba/librt-0.8.1-cp311-cp311-win32.whl", hash = "sha256:52c224e14614b750c0a6d97368e16804a98c684657c7518752c356834fff83bb", size = 54597, upload-time = "2026-02-17T16:11:37.544Z" },
- { url = "https://files.pythonhosted.org/packages/71/02/796fe8f02822235966693f257bf2c79f40e11337337a657a8cfebba5febc/librt-0.8.1-cp311-cp311-win_amd64.whl", hash = "sha256:c00e5c884f528c9932d278d5c9cbbea38a6b81eb62c02e06ae53751a83a4d52b", size = 61733, upload-time = "2026-02-17T16:11:38.691Z" },
- { url = "https://files.pythonhosted.org/packages/28/ad/232e13d61f879a42a4e7117d65e4984bb28371a34bb6fb9ca54ec2c8f54e/librt-0.8.1-cp311-cp311-win_arm64.whl", hash = "sha256:f7cdf7f26c2286ffb02e46d7bac56c94655540b26347673bea15fa52a6af17e9", size = 52273, upload-time = "2026-02-17T16:11:40.308Z" },
- { url = "https://files.pythonhosted.org/packages/95/21/d39b0a87ac52fc98f621fb6f8060efb017a767ebbbac2f99fbcbc9ddc0d7/librt-0.8.1-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:a28f2612ab566b17f3698b0da021ff9960610301607c9a5e8eaca62f5e1c350a", size = 66516, upload-time = "2026-02-17T16:11:41.604Z" },
- { url = "https://files.pythonhosted.org/packages/69/f1/46375e71441c43e8ae335905e069f1c54febee63a146278bcee8782c84fd/librt-0.8.1-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:60a78b694c9aee2a0f1aaeaa7d101cf713e92e8423a941d2897f4fa37908dab9", size = 68634, upload-time = "2026-02-17T16:11:43.268Z" },
- { url = "https://files.pythonhosted.org/packages/0a/33/c510de7f93bf1fa19e13423a606d8189a02624a800710f6e6a0a0f0784b3/librt-0.8.1-cp312-cp312-manylinux1_i686.manylinux_2_28_i686.manylinux_2_5_i686.whl", hash = "sha256:758509ea3f1eba2a57558e7e98f4659d0ea7670bff49673b0dde18a3c7e6c0eb", size = 198941, upload-time = "2026-02-17T16:11:44.28Z" },
- { url = "https://files.pythonhosted.org/packages/dd/36/e725903416409a533d92398e88ce665476f275081d0d7d42f9c4951999e5/librt-0.8.1-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:039b9f2c506bd0ab0f8725aa5ba339c6f0cd19d3b514b50d134789809c24285d", size = 209991, upload-time = "2026-02-17T16:11:45.462Z" },
- { url = "https://files.pythonhosted.org/packages/30/7a/8d908a152e1875c9f8eac96c97a480df425e657cdb47854b9efaa4998889/librt-0.8.1-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:5bb54f1205a3a6ab41a6fd71dfcdcbd278670d3a90ca502a30d9da583105b6f7", size = 224476, upload-time = "2026-02-17T16:11:46.542Z" },
- { url = "https://files.pythonhosted.org/packages/a8/b8/a22c34f2c485b8903a06f3fe3315341fe6876ef3599792344669db98fcff/librt-0.8.1-cp312-cp312-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:05bd41cdee35b0c59c259f870f6da532a2c5ca57db95b5f23689fcb5c9e42440", size = 217518, upload-time = "2026-02-17T16:11:47.746Z" },
- { url = "https://files.pythonhosted.org/packages/79/6f/5c6fea00357e4f82ba44f81dbfb027921f1ab10e320d4a64e1c408d035d9/librt-0.8.1-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:adfab487facf03f0d0857b8710cf82d0704a309d8ffc33b03d9302b4c64e91a9", size = 225116, upload-time = "2026-02-17T16:11:49.298Z" },
- { url = "https://files.pythonhosted.org/packages/f2/a0/95ced4e7b1267fe1e2720a111685bcddf0e781f7e9e0ce59d751c44dcfe5/librt-0.8.1-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:153188fe98a72f206042be10a2c6026139852805215ed9539186312d50a8e972", size = 217751, upload-time = "2026-02-17T16:11:50.49Z" },
- { url = "https://files.pythonhosted.org/packages/93/c2/0517281cb4d4101c27ab59472924e67f55e375bc46bedae94ac6dc6e1902/librt-0.8.1-cp312-cp312-musllinux_1_2_riscv64.whl", hash = "sha256:dd3c41254ee98604b08bd5b3af5bf0a89740d4ee0711de95b65166bf44091921", size = 218378, upload-time = "2026-02-17T16:11:51.783Z" },
- { url = "https://files.pythonhosted.org/packages/43/e8/37b3ac108e8976888e559a7b227d0ceac03c384cfd3e7a1c2ee248dbae79/librt-0.8.1-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:e0d138c7ae532908cbb342162b2611dbd4d90c941cd25ab82084aaf71d2c0bd0", size = 241199, upload-time = "2026-02-17T16:11:53.561Z" },
- { url = "https://files.pythonhosted.org/packages/4b/5b/35812d041c53967fedf551a39399271bbe4257e681236a2cf1a69c8e7fa1/librt-0.8.1-cp312-cp312-win32.whl", hash = "sha256:43353b943613c5d9c49a25aaffdba46f888ec354e71e3529a00cca3f04d66a7a", size = 54917, upload-time = "2026-02-17T16:11:54.758Z" },
- { url = "https://files.pythonhosted.org/packages/de/d1/fa5d5331b862b9775aaf2a100f5ef86854e5d4407f71bddf102f4421e034/librt-0.8.1-cp312-cp312-win_amd64.whl", hash = "sha256:ff8baf1f8d3f4b6b7257fcb75a501f2a5499d0dda57645baa09d4d0d34b19444", size = 62017, upload-time = "2026-02-17T16:11:55.748Z" },
- { url = "https://files.pythonhosted.org/packages/c7/7c/c614252f9acda59b01a66e2ddfd243ed1c7e1deab0293332dfbccf862808/librt-0.8.1-cp312-cp312-win_arm64.whl", hash = "sha256:0f2ae3725904f7377e11cc37722d5d401e8b3d5851fb9273d7f4fe04f6b3d37d", size = 52441, upload-time = "2026-02-17T16:11:56.801Z" },
- { url = "https://files.pythonhosted.org/packages/c5/3c/f614c8e4eaac7cbf2bbdf9528790b21d89e277ee20d57dc6e559c626105f/librt-0.8.1-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:7e6bad1cd94f6764e1e21950542f818a09316645337fd5ab9a7acc45d99a8f35", size = 66529, upload-time = "2026-02-17T16:11:57.809Z" },
- { url = "https://files.pythonhosted.org/packages/ab/96/5836544a45100ae411eda07d29e3d99448e5258b6e9c8059deb92945f5c2/librt-0.8.1-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:cf450f498c30af55551ba4f66b9123b7185362ec8b625a773b3d39aa1a717583", size = 68669, upload-time = "2026-02-17T16:11:58.843Z" },
- { url = "https://files.pythonhosted.org/packages/06/53/f0b992b57af6d5531bf4677d75c44f095f2366a1741fb695ee462ae04b05/librt-0.8.1-cp313-cp313-manylinux1_i686.manylinux_2_28_i686.manylinux_2_5_i686.whl", hash = "sha256:eca45e982fa074090057132e30585a7e8674e9e885d402eae85633e9f449ce6c", size = 199279, upload-time = "2026-02-17T16:11:59.862Z" },
- { url = "https://files.pythonhosted.org/packages/f3/ad/4848cc16e268d14280d8168aee4f31cea92bbd2b79ce33d3e166f2b4e4fc/librt-0.8.1-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:0c3811485fccfda840861905b8c70bba5ec094e02825598bb9d4ca3936857a04", size = 210288, upload-time = "2026-02-17T16:12:00.954Z" },
- { url = "https://files.pythonhosted.org/packages/52/05/27fdc2e95de26273d83b96742d8d3b7345f2ea2bdbd2405cc504644f2096/librt-0.8.1-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:5e4af413908f77294605e28cfd98063f54b2c790561383971d2f52d113d9c363", size = 224809, upload-time = "2026-02-17T16:12:02.108Z" },
- { url = "https://files.pythonhosted.org/packages/7a/d0/78200a45ba3240cb042bc597d6f2accba9193a2c57d0356268cbbe2d0925/librt-0.8.1-cp313-cp313-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:5212a5bd7fae98dae95710032902edcd2ec4dc994e883294f75c857b83f9aba0", size = 218075, upload-time = "2026-02-17T16:12:03.631Z" },
- { url = "https://files.pythonhosted.org/packages/af/72/a210839fa74c90474897124c064ffca07f8d4b347b6574d309686aae7ca6/librt-0.8.1-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:e692aa2d1d604e6ca12d35e51fdc36f4cda6345e28e36374579f7ef3611b3012", size = 225486, upload-time = "2026-02-17T16:12:04.725Z" },
- { url = "https://files.pythonhosted.org/packages/a3/c1/a03cc63722339ddbf087485f253493e2b013039f5b707e8e6016141130fa/librt-0.8.1-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:4be2a5c926b9770c9e08e717f05737a269b9d0ebc5d2f0060f0fe3fe9ce47acb", size = 218219, upload-time = "2026-02-17T16:12:05.828Z" },
- { url = "https://files.pythonhosted.org/packages/58/f5/fff6108af0acf941c6f274a946aea0e484bd10cd2dc37610287ce49388c5/librt-0.8.1-cp313-cp313-musllinux_1_2_riscv64.whl", hash = "sha256:fd1a720332ea335ceb544cf0a03f81df92abd4bb887679fd1e460976b0e6214b", size = 218750, upload-time = "2026-02-17T16:12:07.09Z" },
- { url = "https://files.pythonhosted.org/packages/71/67/5a387bfef30ec1e4b4f30562c8586566faf87e47d696768c19feb49e3646/librt-0.8.1-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:93c2af9e01e0ef80d95ae3c720be101227edae5f2fe7e3dc63d8857fadfc5a1d", size = 241624, upload-time = "2026-02-17T16:12:08.43Z" },
- { url = "https://files.pythonhosted.org/packages/d4/be/24f8502db11d405232ac1162eb98069ca49c3306c1d75c6ccc61d9af8789/librt-0.8.1-cp313-cp313-win32.whl", hash = "sha256:086a32dbb71336627e78cc1d6ee305a68d038ef7d4c39aaff41ae8c9aa46e91a", size = 54969, upload-time = "2026-02-17T16:12:09.633Z" },
- { url = "https://files.pythonhosted.org/packages/5c/73/c9fdf6cb2a529c1a092ce769a12d88c8cca991194dfe641b6af12fa964d2/librt-0.8.1-cp313-cp313-win_amd64.whl", hash = "sha256:e11769a1dbda4da7b00a76cfffa67aa47cfa66921d2724539eee4b9ede780b79", size = 62000, upload-time = "2026-02-17T16:12:10.632Z" },
- { url = "https://files.pythonhosted.org/packages/d3/97/68f80ca3ac4924f250cdfa6e20142a803e5e50fca96ef5148c52ee8c10ea/librt-0.8.1-cp313-cp313-win_arm64.whl", hash = "sha256:924817ab3141aca17893386ee13261f1d100d1ef410d70afe4389f2359fea4f0", size = 52495, upload-time = "2026-02-17T16:12:11.633Z" },
- { url = "https://files.pythonhosted.org/packages/c9/6a/907ef6800f7bca71b525a05f1839b21f708c09043b1c6aa77b6b827b3996/librt-0.8.1-cp314-cp314-macosx_10_13_x86_64.whl", hash = "sha256:6cfa7fe54fd4d1f47130017351a959fe5804bda7a0bc7e07a2cdbc3fdd28d34f", size = 66081, upload-time = "2026-02-17T16:12:12.766Z" },
- { url = "https://files.pythonhosted.org/packages/1b/18/25e991cd5640c9fb0f8d91b18797b29066b792f17bf8493da183bf5caabe/librt-0.8.1-cp314-cp314-macosx_11_0_arm64.whl", hash = "sha256:228c2409c079f8c11fb2e5d7b277077f694cb93443eb760e00b3b83cb8b3176c", size = 68309, upload-time = "2026-02-17T16:12:13.756Z" },
- { url = "https://files.pythonhosted.org/packages/a4/36/46820d03f058cfb5a9de5940640ba03165ed8aded69e0733c417bb04df34/librt-0.8.1-cp314-cp314-manylinux1_i686.manylinux_2_28_i686.manylinux_2_5_i686.whl", hash = "sha256:7aae78ab5e3206181780e56912d1b9bb9f90a7249ce12f0e8bf531d0462dd0fc", size = 196804, upload-time = "2026-02-17T16:12:14.818Z" },
- { url = "https://files.pythonhosted.org/packages/59/18/5dd0d3b87b8ff9c061849fbdb347758d1f724b9a82241aa908e0ec54ccd0/librt-0.8.1-cp314-cp314-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:172d57ec04346b047ca6af181e1ea4858086c80bdf455f61994c4aa6fc3f866c", size = 206907, upload-time = "2026-02-17T16:12:16.513Z" },
- { url = "https://files.pythonhosted.org/packages/d1/96/ef04902aad1424fd7299b62d1890e803e6ab4018c3044dca5922319c4b97/librt-0.8.1-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:6b1977c4ea97ce5eb7755a78fae68d87e4102e4aaf54985e8b56806849cc06a3", size = 221217, upload-time = "2026-02-17T16:12:17.906Z" },
- { url = "https://files.pythonhosted.org/packages/6d/ff/7e01f2dda84a8f5d280637a2e5827210a8acca9a567a54507ef1c75b342d/librt-0.8.1-cp314-cp314-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:10c42e1f6fd06733ef65ae7bebce2872bcafd8d6e6b0a08fe0a05a23b044fb14", size = 214622, upload-time = "2026-02-17T16:12:19.108Z" },
- { url = "https://files.pythonhosted.org/packages/1e/8c/5b093d08a13946034fed57619742f790faf77058558b14ca36a6e331161e/librt-0.8.1-cp314-cp314-musllinux_1_2_aarch64.whl", hash = "sha256:4c8dfa264b9193c4ee19113c985c95f876fae5e51f731494fc4e0cf594990ba7", size = 221987, upload-time = "2026-02-17T16:12:20.331Z" },
- { url = "https://files.pythonhosted.org/packages/d3/cc/86b0b3b151d40920ad45a94ce0171dec1aebba8a9d72bb3fa00c73ab25dd/librt-0.8.1-cp314-cp314-musllinux_1_2_i686.whl", hash = "sha256:01170b6729a438f0dedc4a26ed342e3dc4f02d1000b4b19f980e1877f0c297e6", size = 215132, upload-time = "2026-02-17T16:12:21.54Z" },
- { url = "https://files.pythonhosted.org/packages/fc/be/8588164a46edf1e69858d952654e216a9a91174688eeefb9efbb38a9c799/librt-0.8.1-cp314-cp314-musllinux_1_2_riscv64.whl", hash = "sha256:7b02679a0d783bdae30d443025b94465d8c3dc512f32f5b5031f93f57ac32071", size = 215195, upload-time = "2026-02-17T16:12:23.073Z" },
- { url = "https://files.pythonhosted.org/packages/f5/f2/0b9279bea735c734d69344ecfe056c1ba211694a72df10f568745c899c76/librt-0.8.1-cp314-cp314-musllinux_1_2_x86_64.whl", hash = "sha256:190b109bb69592a3401fe1ffdea41a2e73370ace2ffdc4a0e8e2b39cdea81b78", size = 237946, upload-time = "2026-02-17T16:12:24.275Z" },
- { url = "https://files.pythonhosted.org/packages/e9/cc/5f2a34fbc8aeb35314a3641f9956fa9051a947424652fad9882be7a97949/librt-0.8.1-cp314-cp314-win32.whl", hash = "sha256:e70a57ecf89a0f64c24e37f38d3fe217a58169d2fe6ed6d70554964042474023", size = 50689, upload-time = "2026-02-17T16:12:25.766Z" },
- { url = "https://files.pythonhosted.org/packages/a0/76/cd4d010ab2147339ca2b93e959c3686e964edc6de66ddacc935c325883d7/librt-0.8.1-cp314-cp314-win_amd64.whl", hash = "sha256:7e2f3edca35664499fbb36e4770650c4bd4a08abc1f4458eab9df4ec56389730", size = 57875, upload-time = "2026-02-17T16:12:27.465Z" },
- { url = "https://files.pythonhosted.org/packages/84/0f/2143cb3c3ca48bd3379dcd11817163ca50781927c4537345d608b5045998/librt-0.8.1-cp314-cp314-win_arm64.whl", hash = "sha256:0d2f82168e55ddefd27c01c654ce52379c0750ddc31ee86b4b266bcf4d65f2a3", size = 48058, upload-time = "2026-02-17T16:12:28.556Z" },
- { url = "https://files.pythonhosted.org/packages/d2/0e/9b23a87e37baf00311c3efe6b48d6b6c168c29902dfc3f04c338372fd7db/librt-0.8.1-cp314-cp314t-macosx_10_13_x86_64.whl", hash = "sha256:2c74a2da57a094bd48d03fa5d196da83d2815678385d2978657499063709abe1", size = 68313, upload-time = "2026-02-17T16:12:29.659Z" },
- { url = "https://files.pythonhosted.org/packages/db/9a/859c41e5a4f1c84200a7d2b92f586aa27133c8243b6cac9926f6e54d01b9/librt-0.8.1-cp314-cp314t-macosx_11_0_arm64.whl", hash = "sha256:a355d99c4c0d8e5b770313b8b247411ed40949ca44e33e46a4789b9293a907ee", size = 70994, upload-time = "2026-02-17T16:12:31.516Z" },
- { url = "https://files.pythonhosted.org/packages/4c/28/10605366ee599ed34223ac2bf66404c6fb59399f47108215d16d5ad751a8/librt-0.8.1-cp314-cp314t-manylinux1_i686.manylinux_2_28_i686.manylinux_2_5_i686.whl", hash = "sha256:2eb345e8b33fb748227409c9f1233d4df354d6e54091f0e8fc53acdb2ffedeb7", size = 220770, upload-time = "2026-02-17T16:12:33.294Z" },
- { url = "https://files.pythonhosted.org/packages/af/8d/16ed8fd452dafae9c48d17a6bc1ee3e818fd40ef718d149a8eff2c9f4ea2/librt-0.8.1-cp314-cp314t-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:9be2f15e53ce4e83cc08adc29b26fb5978db62ef2a366fbdf716c8a6c8901040", size = 235409, upload-time = "2026-02-17T16:12:35.443Z" },
- { url = "https://files.pythonhosted.org/packages/89/1b/7bdf3e49349c134b25db816e4a3db6b94a47ac69d7d46b1e682c2c4949be/librt-0.8.1-cp314-cp314t-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:785ae29c1f5c6e7c2cde2c7c0e148147f4503da3abc5d44d482068da5322fd9e", size = 246473, upload-time = "2026-02-17T16:12:36.656Z" },
- { url = "https://files.pythonhosted.org/packages/4e/8a/91fab8e4fd2a24930a17188c7af5380eb27b203d72101c9cc000dbdfd95a/librt-0.8.1-cp314-cp314t-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:1d3a7da44baf692f0c6aeb5b2a09c5e6fc7a703bca9ffa337ddd2e2da53f7732", size = 238866, upload-time = "2026-02-17T16:12:37.849Z" },
- { url = "https://files.pythonhosted.org/packages/b9/e0/c45a098843fc7c07e18a7f8a24ca8496aecbf7bdcd54980c6ca1aaa79a8e/librt-0.8.1-cp314-cp314t-musllinux_1_2_aarch64.whl", hash = "sha256:5fc48998000cbc39ec0d5311312dda93ecf92b39aaf184c5e817d5d440b29624", size = 250248, upload-time = "2026-02-17T16:12:39.445Z" },
- { url = "https://files.pythonhosted.org/packages/82/30/07627de23036640c952cce0c1fe78972e77d7d2f8fd54fa5ef4554ff4a56/librt-0.8.1-cp314-cp314t-musllinux_1_2_i686.whl", hash = "sha256:e96baa6820280077a78244b2e06e416480ed859bbd8e5d641cf5742919d8beb4", size = 240629, upload-time = "2026-02-17T16:12:40.889Z" },
- { url = "https://files.pythonhosted.org/packages/fb/c1/55bfe1ee3542eba055616f9098eaf6eddb966efb0ca0f44eaa4aba327307/librt-0.8.1-cp314-cp314t-musllinux_1_2_riscv64.whl", hash = "sha256:31362dbfe297b23590530007062c32c6f6176f6099646bb2c95ab1b00a57c382", size = 239615, upload-time = "2026-02-17T16:12:42.446Z" },
- { url = "https://files.pythonhosted.org/packages/2b/39/191d3d28abc26c9099b19852e6c99f7f6d400b82fa5a4e80291bd3803e19/librt-0.8.1-cp314-cp314t-musllinux_1_2_x86_64.whl", hash = "sha256:cc3656283d11540ab0ea01978378e73e10002145117055e03722417aeab30994", size = 263001, upload-time = "2026-02-17T16:12:43.627Z" },
- { url = "https://files.pythonhosted.org/packages/b9/eb/7697f60fbe7042ab4e88f4ee6af496b7f222fffb0a4e3593ef1f29f81652/librt-0.8.1-cp314-cp314t-win32.whl", hash = "sha256:738f08021b3142c2918c03692608baed43bc51144c29e35807682f8070ee2a3a", size = 51328, upload-time = "2026-02-17T16:12:45.148Z" },
- { url = "https://files.pythonhosted.org/packages/7c/72/34bf2eb7a15414a23e5e70ecb9440c1d3179f393d9349338a91e2781c0fb/librt-0.8.1-cp314-cp314t-win_amd64.whl", hash = "sha256:89815a22daf9c51884fb5dbe4f1ef65ee6a146e0b6a8df05f753e2e4a9359bf4", size = 58722, upload-time = "2026-02-17T16:12:46.85Z" },
- { url = "https://files.pythonhosted.org/packages/b2/c8/d148e041732d631fc76036f8b30fae4e77b027a1e95b7a84bb522481a940/librt-0.8.1-cp314-cp314t-win_arm64.whl", hash = "sha256:bf512a71a23504ed08103a13c941f763db13fb11177beb3d9244c98c29fb4a61", size = 48755, upload-time = "2026-02-17T16:12:47.943Z" },
- { url = "https://files.pythonhosted.org/packages/01/1f/c7d8b66a3ca3ca3ed8ded4b32c96ee58a45920ebbbaa934355c74adcc33e/librt-0.8.1-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:3dff3d3ca8db20e783b1bc7de49c0a2ab0b8387f31236d6a026597d07fcd68ac", size = 65990, upload-time = "2026-02-17T16:12:48.972Z" },
- { url = "https://files.pythonhosted.org/packages/56/be/ee9ba1730052313d08457f19beaa1b878619978863fba09b40aed5b5c123/librt-0.8.1-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:08eec3a1fc435f0d09c87b6bf1ec798986a3544f446b864e4099633a56fcd9ed", size = 68640, upload-time = "2026-02-17T16:12:50.24Z" },
- { url = "https://files.pythonhosted.org/packages/81/27/b7309298b96f7690cec3ceee38004c1a7f60fcd96d952d3ac344a1e3e8b3/librt-0.8.1-cp39-cp39-manylinux1_i686.manylinux_2_28_i686.manylinux_2_5_i686.whl", hash = "sha256:e3f0a41487fd5fad7e760b9e8a90e251e27c2816fbc2cff36a22a0e6bcbbd9dd", size = 196099, upload-time = "2026-02-17T16:12:52.788Z" },
- { url = "https://files.pythonhosted.org/packages/10/48/160a5aacdcb21824b10a52378c39e88c46a29bb31efdaf3910dd1f9b670e/librt-0.8.1-cp39-cp39-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:bacdb58d9939d95cc557b4dbaa86527c9db2ac1ed76a18bc8d26f6dc8647d851", size = 206663, upload-time = "2026-02-17T16:12:55.017Z" },
- { url = "https://files.pythonhosted.org/packages/ee/65/33dd1d8caabb7c6805d87d095b143417dc96b0277c06ffa0508361422c82/librt-0.8.1-cp39-cp39-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:b6d7ab1f01aa753188605b09a51faa44a3327400b00b8cce424c71910fc0a128", size = 219318, upload-time = "2026-02-17T16:12:56.145Z" },
- { url = "https://files.pythonhosted.org/packages/09/d4/353805aa6181c7950a2462bd6e855366eeca21a501f375228d72a51547df/librt-0.8.1-cp39-cp39-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:4998009e7cb9e896569f4be7004f09d0ed70d386fa99d42b6d363f6d200501ac", size = 212191, upload-time = "2026-02-17T16:12:57.326Z" },
- { url = "https://files.pythonhosted.org/packages/06/08/725b3f304d61eba56c713c251fb833a06d84bf93381caad5152366f5d2bb/librt-0.8.1-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:2cc68eeeef5e906839c7bb0815748b5b0a974ec27125beefc0f942715785b551", size = 220672, upload-time = "2026-02-17T16:12:58.497Z" },
- { url = "https://files.pythonhosted.org/packages/0e/55/e8cdf04145872b3b97cb9b68287b22d1c08348227063f305aec11a3e6ce7/librt-0.8.1-cp39-cp39-musllinux_1_2_i686.whl", hash = "sha256:0bf69d79a23f4f40b8673a947a234baeeb133b5078b483b7297c5916539cf5d5", size = 216172, upload-time = "2026-02-17T16:12:59.751Z" },
- { url = "https://files.pythonhosted.org/packages/8f/d8/23b1c6592d2422dd6829c672f45b1f1c257f219926b0d216fedb572d0184/librt-0.8.1-cp39-cp39-musllinux_1_2_riscv64.whl", hash = "sha256:22b46eabd76c1986ee7d231b0765ad387d7673bbd996aa0d0d054b38ac65d8f6", size = 214116, upload-time = "2026-02-17T16:13:01.056Z" },
- { url = "https://files.pythonhosted.org/packages/c9/92/2b44fd3cc3313f44e43bdbb41343735b568fa675fa351642b408ee48d418/librt-0.8.1-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:237796479f4d0637d6b9cbcb926ff424a97735e68ade6facf402df4ec93375ed", size = 236664, upload-time = "2026-02-17T16:13:02.314Z" },
- { url = "https://files.pythonhosted.org/packages/00/23/92313ecdab80e142d8ea10e8dfa6297694359dbaacc9e81679bdc8cbceb6/librt-0.8.1-cp39-cp39-win32.whl", hash = "sha256:4beb04b8c66c6ae62f8c1e0b2f097c1ebad9295c929a8d5286c05eae7c2fc7dc", size = 54368, upload-time = "2026-02-17T16:13:03.549Z" },
- { url = "https://files.pythonhosted.org/packages/68/36/18f6e768afad6b55a690d38427c53251b69b7ba8795512730fd2508b31a9/librt-0.8.1-cp39-cp39-win_amd64.whl", hash = "sha256:64548cde61b692dc0dc379f4b5f59a2f582c2ebe7890d09c1ae3b9e66fa015b7", size = 61507, upload-time = "2026-02-17T16:13:04.556Z" },
+version = "0.15.0"
+source = { registry = "https://pypi.org/simple" }
+sdist = { url = "https://files.pythonhosted.org/packages/36/9b/356320fbae2ac8467e21c5e73e1389c80468e4998c62cc7d3536cc51b614/librt-0.15.0.tar.gz", hash = "sha256:4e66cbe84437497d951b799d3e1551291b6fb3d643820a7014b3655d57a59162", size = 214338, upload-time = "2026-08-07T10:49:42.663Z" }
+wheels = [
+ { url = "https://files.pythonhosted.org/packages/48/12/e2e9ca532cf5a0e08c9489826c4a35c6958c92ba0313fda70e8c6c3912be/librt-0.15.0-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:e1a49adf16a7c9d9646816c2946135527197b6fcf4347c7b8b761cf1bfbf4489", size = 148673, upload-time = "2026-08-07T10:46:22.569Z" },
+ { url = "https://files.pythonhosted.org/packages/6d/7c/02005e23478bd5950618d9712e0fd2b4c511657857f3efd8ba6a5feabcdd/librt-0.15.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:81a398f45b45a59200e13cd5ad1ae1d3f44334de98b148331afe2cdfee701c52", size = 153547, upload-time = "2026-08-07T10:46:23.931Z" },
+ { url = "https://files.pythonhosted.org/packages/a0/90/d8848a735f5642077fc4b3b4bebcdb08edf10178e3add45597f5201a368f/librt-0.15.0-cp310-cp310-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:4eafbaff06b9563f8b1c850621ce51605de05208e09d4d71ce490bc972b7b9e8", size = 494355, upload-time = "2026-08-07T10:46:25.122Z" },
+ { url = "https://files.pythonhosted.org/packages/e1/0b/8604f41ea02feace490e9e405a338a15f9905369f55b239a9ce31c946f24/librt-0.15.0-cp310-cp310-manylinux2014_i686.manylinux_2_17_i686.manylinux_2_28_i686.whl", hash = "sha256:b0411b4066db926b80258c60dcb0e6db4c9cee312eab45b7e8866b17ddf9ada1", size = 485459, upload-time = "2026-08-07T10:46:26.447Z" },
+ { url = "https://files.pythonhosted.org/packages/a0/ac/84153bda1ce0da609182527ab92b40d961809e544eefdc5a1c2422971416/librt-0.15.0-cp310-cp310-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:febb1ce6cac545a54e6b769982824e955a700fdd9fbf3a08a3d82c990968b57d", size = 498398, upload-time = "2026-08-07T10:46:27.701Z" },
+ { url = "https://files.pythonhosted.org/packages/2c/3a/5ca6cd282b2c244bec8ec84102e09773264e9c02891d56ab3a8f0e4d7083/librt-0.15.0-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:b230acc1c3bfe2d6f2627ba2b95dc92e58aa494600e9722d0e6ccbc931e59702", size = 515474, upload-time = "2026-08-07T10:46:28.9Z" },
+ { url = "https://files.pythonhosted.org/packages/73/d3/bd34110234779eb843c6ed66aba7c9b2091d3dd85989f1fb9922f564cb7a/librt-0.15.0-cp310-cp310-manylinux_2_34_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:6da110e5f314c19ab8478464d02ae18808ae73d522c15260fa4918acdcd64da9", size = 509484, upload-time = "2026-08-07T10:46:30.124Z" },
+ { url = "https://files.pythonhosted.org/packages/1b/6c/43c3f7f071d71631a7daa3b835ef2168ea39f20692d81464d4e47fbaa6d6/librt-0.15.0-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:eab9208b00ca55bf75983ec99f7bf13acc746a36102e98953addaad7f7ea1e1b", size = 532534, upload-time = "2026-08-07T10:46:31.511Z" },
+ { url = "https://files.pythonhosted.org/packages/c5/1c/b854adf036ea817c40408873a5b794d65a91d9f0f39826f2ad2a2d5d7f48/librt-0.15.0-cp310-cp310-musllinux_1_2_i686.whl", hash = "sha256:6c013cd3a1721e69e14380ada97eaa4b7b0cdf1c6b96fa765d4ea47c875088db", size = 537087, upload-time = "2026-08-07T10:46:32.734Z" },
+ { url = "https://files.pythonhosted.org/packages/25/5c/c9a890e244e7dd725d3bd8b560e41f0aec787eaf343b46956a290ab7b841/librt-0.15.0-cp310-cp310-musllinux_1_2_ppc64le.whl", hash = "sha256:567b1c430f8bd560e689421468278ac5941bab4a05303b5d95b6ae10db03f451", size = 536575, upload-time = "2026-08-07T10:46:33.965Z" },
+ { url = "https://files.pythonhosted.org/packages/5f/c5/c8e70b60b704299555f55db468eb46b1c81bfc60201ffbfe20407d89870c/librt-0.15.0-cp310-cp310-musllinux_1_2_riscv64.whl", hash = "sha256:29c4cab9df457b19672c39be7f384ebb2bc925c4e2684b8780c222b43eb36389", size = 517142, upload-time = "2026-08-07T10:46:35.577Z" },
+ { url = "https://files.pythonhosted.org/packages/56/d1/767a90c41f5d381b3195bc88ac0ec4afda35777c9c781e1f9848fedd965e/librt-0.15.0-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:bccbd8e5b0bffb7106cf18eb1baa3d7194b1cebb3b4b1cdbd4bdb19382a6ee6c", size = 558714, upload-time = "2026-08-07T10:46:36.829Z" },
+ { url = "https://files.pythonhosted.org/packages/f9/b4/3c0624b8dc8301ab808f2b3a910995bcabe28df070fb9a0e5505ae997dae/librt-0.15.0-cp310-cp310-win32.whl", hash = "sha256:8ae493ed5f659a7761c43d42f183db514536073ded9bcf671d2d1df47e29a07e", size = 104426, upload-time = "2026-08-07T10:46:38.594Z" },
+ { url = "https://files.pythonhosted.org/packages/31/98/e91c0382304bedb2db9c6801897319a9dcb68daac5e975819b562362f20d/librt-0.15.0-cp310-cp310-win_amd64.whl", hash = "sha256:bc25fb356d0c7810bb49ff3df908ad1fda6995d660ab099ded69244ed7ab6053", size = 125057, upload-time = "2026-08-07T10:46:40.052Z" },
+ { url = "https://files.pythonhosted.org/packages/59/52/06790ced2ac7117f890c21bda43c39c958ec82aa665c0718e821d33ff939/librt-0.15.0-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:823b92cf3c18ecd08afc70c42473888b41b6e8ef5046f3b82c05c154a2fa3d22", size = 148039, upload-time = "2026-08-07T10:46:41.165Z" },
+ { url = "https://files.pythonhosted.org/packages/e7/1d/8e150b7fc449a1f33c8a760965cc1f43b14fc1577d9d0b50ab2701420e74/librt-0.15.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:c70bc1b602cf59917e8f0c7a2cbc8bcc6fbc14d5486136b00707a79619121d63", size = 153067, upload-time = "2026-08-07T10:46:42.418Z" },
+ { url = "https://files.pythonhosted.org/packages/51/87/a162bc5a66a35599dc619ecb215145f4de7d68e886b479b6d12593139f7c/librt-0.15.0-cp311-cp311-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:814ff83a25b5fce8b9c80c4dd803153fb5c5599fc74db9e022466938368957ef", size = 493087, upload-time = "2026-08-07T10:46:43.657Z" },
+ { url = "https://files.pythonhosted.org/packages/e5/3a/aeea1fc620cf48060d3065b37614edbf97043c099d0f50782bc8ca61d897/librt-0.15.0-cp311-cp311-manylinux2014_i686.manylinux_2_17_i686.manylinux_2_28_i686.whl", hash = "sha256:57f5eeb6ad4c180de583b1038e61fe5fbd9796bb69a8a1c1a0c7ddbec4c8c60f", size = 485608, upload-time = "2026-08-07T10:46:45.038Z" },
+ { url = "https://files.pythonhosted.org/packages/52/ff/fe571ad416f0856fd0d5578ffc2e6dc531891e586e36b647bcf50569cab8/librt-0.15.0-cp311-cp311-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:82909c8f7eb9952656b65d3147afde4cf8e6d5a991eebc86418b5e65843b0ab8", size = 498723, upload-time = "2026-08-07T10:46:46.35Z" },
+ { url = "https://files.pythonhosted.org/packages/0f/e1/7a65eb5dedb1f00aebd948cdd8e17add48bf066cab3514e9daf84ab45a6c/librt-0.15.0-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:f779070399f991400fc451719e0ea388eb7de313388bada2c127a35de05f798a", size = 516002, upload-time = "2026-08-07T10:46:47.599Z" },
+ { url = "https://files.pythonhosted.org/packages/5f/45/59832b0ebfbd08c2742e6ece372ceb53f18bf1faef5d33c8daf3abebf749/librt-0.15.0-cp311-cp311-manylinux_2_34_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:bac89069bc496ebdf4f79ebb57bbd10d0b214c8454225deb672d91002bd17e18", size = 508607, upload-time = "2026-08-07T10:46:48.873Z" },
+ { url = "https://files.pythonhosted.org/packages/ea/0d/37fa73f3b43ebd8259f91ae9102a15e5a54e65d581e48dea72df3e81d7a4/librt-0.15.0-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:e0d00c708fb2f5822b152429b1ac80a58dbbbc3f6c232c4d13a3f7fcf2ea5b4c", size = 530422, upload-time = "2026-08-07T10:46:50.45Z" },
+ { url = "https://files.pythonhosted.org/packages/26/02/e046c6fe7a5881ac34623242192f484426ba8a75595fd18f22c53a3f530f/librt-0.15.0-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:6c6624fe268625869485553dd7cc1daf30d22558215bb2a4ff16f67a9801a31a", size = 534303, upload-time = "2026-08-07T10:46:51.693Z" },
+ { url = "https://files.pythonhosted.org/packages/95/32/d5e6d861ab0366f3edf74f887ab0c9eb9f535aaf01d32b80b4f734daa179/librt-0.15.0-cp311-cp311-musllinux_1_2_ppc64le.whl", hash = "sha256:f56b397858a23dacf35ede366ed2212fdc03a6a57a1ad36468ad6e9dc5fac091", size = 536084, upload-time = "2026-08-07T10:46:52.951Z" },
+ { url = "https://files.pythonhosted.org/packages/2a/de/d69d725513fe53fc90c6d7a1f86e4428939bad2fb905b17fe4c18d413dde/librt-0.15.0-cp311-cp311-musllinux_1_2_riscv64.whl", hash = "sha256:4388184646efe2054911c5b00a1077d6d1ee86a95b7e8ba96dc7850a809f3f40", size = 514307, upload-time = "2026-08-07T10:46:54.194Z" },
+ { url = "https://files.pythonhosted.org/packages/36/93/f8aded0d6682b4f25820fa86e0690f87f01df9fd7bd09ddb04d9167ad021/librt-0.15.0-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:97335f59082f9fe2ce6c2a9cc6433a0114bbb6cd4d5c09dd76c95c68b9f9a8b0", size = 557686, upload-time = "2026-08-07T10:46:55.443Z" },
+ { url = "https://files.pythonhosted.org/packages/74/09/ffeb6bdeb6cd862b4272fddc8ad05f938dd25d020ed517e631813917d80a/librt-0.15.0-cp311-cp311-win32.whl", hash = "sha256:83380ffde38062a2e9bb55d83e74474f6614665528b98a6928720fc006dfffbb", size = 104917, upload-time = "2026-08-07T10:46:56.605Z" },
+ { url = "https://files.pythonhosted.org/packages/96/28/7e2313a3ffbf0b4de7ba3da58a09e488507b4bd1ea2b5e69378354a23415/librt-0.15.0-cp311-cp311-win_amd64.whl", hash = "sha256:f75720477ee05d509a310e856cacc8d909adc182f7b91193c207bcc26d7ee6db", size = 125886, upload-time = "2026-08-07T10:46:57.729Z" },
+ { url = "https://files.pythonhosted.org/packages/39/9e/04b8c3cde014ef255ee785730425268354543acc38902093a40afa0dc164/librt-0.15.0-cp311-cp311-win_arm64.whl", hash = "sha256:256237037a3ab001ae8d9803b2d43562a4c3aa38739843694349e4d5ebb0fd56", size = 111885, upload-time = "2026-08-07T10:46:58.787Z" },
+ { url = "https://files.pythonhosted.org/packages/ba/39/99c25030e782bdfb7a21be8c05254806a2e4bbb05c8d50c2a2130acbfa05/librt-0.15.0-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:e87bc679f86a99aa3b26e3c78eeb821a247c9a28eae48eaafcc32c3bf4c3bb9e", size = 151021, upload-time = "2026-08-07T10:47:00.057Z" },
+ { url = "https://files.pythonhosted.org/packages/14/43/f4b1bd1b2888798a1409808889a25ea1ba49eaabce7d681ed27734c2df9d/librt-0.15.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:71599e011ac880e8e45d46047d714871894c7d4ab6f25626f8d4f89da21f368d", size = 155267, upload-time = "2026-08-07T10:47:01.311Z" },
+ { url = "https://files.pythonhosted.org/packages/0c/db/3ad9c965c72f1e1d6beeec44ec10a54e17be8ae042fbb4baade16cbadced/librt-0.15.0-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:c802434092b769b1d613ed2e13fac15fbfce1934a74bd10283b03c0fae231cd1", size = 503136, upload-time = "2026-08-07T10:47:02.45Z" },
+ { url = "https://files.pythonhosted.org/packages/4b/07/5888a6d76acd62ebce66c61b74d94e9370b9c32929f111e487bb6546f8ed/librt-0.15.0-cp312-cp312-manylinux2014_i686.manylinux_2_17_i686.manylinux_2_28_i686.whl", hash = "sha256:5500eeae393a184d14e1f35645962c27129d20c81afa4069e6ef826ebc2b3aaa", size = 496670, upload-time = "2026-08-07T10:47:03.675Z" },
+ { url = "https://files.pythonhosted.org/packages/29/39/ab57cc2f5b276156da02bb7f5a8921bada1cb1993ffec99acf811c602c23/librt-0.15.0-cp312-cp312-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:6ecfc32dfb46fb7b565bcd6abf9412acf978775a998273d22888a6d7953730dd", size = 513688, upload-time = "2026-08-07T10:47:04.981Z" },
+ { url = "https://files.pythonhosted.org/packages/a7/b9/bdbb0b648b5c2befb031f4c6f3b1dd857415e8fb492a25a3c764a6681e6c/librt-0.15.0-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:89cc46cfd15022e35084355478c9ac809d90b1152222706ac9a7655ec21df6fa", size = 531904, upload-time = "2026-08-07T10:47:06.211Z" },
+ { url = "https://files.pythonhosted.org/packages/93/26/473c2e4b6c104e9e58e27ce95fc8005c8bd4fc36cae4f254371125a92db8/librt-0.15.0-cp312-cp312-manylinux_2_34_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:d5f51401d102c885b9ca509e62c79b1dbff286e1b9b047fde6f763780789356d", size = 524427, upload-time = "2026-08-07T10:47:07.592Z" },
+ { url = "https://files.pythonhosted.org/packages/26/60/03b3abb82b41714671b907bf6989b228e31e6a8af52dec82b5b0728dc250/librt-0.15.0-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:cc30523e3f1a23fb7511cc659834a0d01a1042bb9de359bc1c131cc4ec6c9656", size = 543155, upload-time = "2026-08-07T10:47:08.866Z" },
+ { url = "https://files.pythonhosted.org/packages/f2/0e/9bb1f0a4affbd0a1888f4f79dc03ed2a299d9a2c26c59ab2a97dcbf11903/librt-0.15.0-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:59fe030d8ae4a57e3fb7756bf35a858de74e04066fc8555c53d0af979132af81", size = 546890, upload-time = "2026-08-07T10:47:10.327Z" },
+ { url = "https://files.pythonhosted.org/packages/dc/84/6937a280d461f7de6e031ffb02edc2b7c3c90d49d630565ce8ff27cbc5f2/librt-0.15.0-cp312-cp312-musllinux_1_2_ppc64le.whl", hash = "sha256:5a6526a2a956bbb1e4ae3568c82e650fc99119c66bb011ea60715744955a2b4d", size = 555163, upload-time = "2026-08-07T10:47:11.798Z" },
+ { url = "https://files.pythonhosted.org/packages/bc/95/2a2853c1ee014bf102116e7f897a04beeaeb2461b45b79af98bdfb95f1ef/librt-0.15.0-cp312-cp312-musllinux_1_2_riscv64.whl", hash = "sha256:85ea21ec6730194d67156b0e0b5430ccb1d61f8b8b907e39b37f9812b74a13f0", size = 535812, upload-time = "2026-08-07T10:47:13.279Z" },
+ { url = "https://files.pythonhosted.org/packages/c9/4c/cf9601c1b4c5f09280acd5d83abdb2e68527a2be8257136eb42304218622/librt-0.15.0-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:1e47b8ba865d7ede071a91a7163073bbaeb72541f1ef8a07d512c45c7b5007f2", size = 573688, upload-time = "2026-08-07T10:47:14.727Z" },
+ { url = "https://files.pythonhosted.org/packages/47/6d/9ac7cbec46189a7625af4b5acbd25f10d827f4141b2002181848c8418923/librt-0.15.0-cp312-cp312-win32.whl", hash = "sha256:a5207ec414d1c4a2a7231b2086970dc036f94293cdf338190984958a013a42f1", size = 106138, upload-time = "2026-08-07T10:47:15.973Z" },
+ { url = "https://files.pythonhosted.org/packages/38/d0/2ae99c83be86ce23f925ac1aeeedc777e97f427c4a8d190c70d0a16e9a87/librt-0.15.0-cp312-cp312-win_amd64.whl", hash = "sha256:73b30cfa976659b3917c8f6153bdb0591c6a9ec6583599fd24a689b690622022", size = 126974, upload-time = "2026-08-07T10:47:17.049Z" },
+ { url = "https://files.pythonhosted.org/packages/5d/ef/dd24f9635c730b86b87587967dda7516b1845e8b17684603d31607fed598/librt-0.15.0-cp312-cp312-win_arm64.whl", hash = "sha256:a54cf9e0ef47b96af580849db5471142200568ce1e02cbf416addab551369570", size = 112292, upload-time = "2026-08-07T10:47:18.222Z" },
+ { url = "https://files.pythonhosted.org/packages/e7/42/467b53a601b406ccd7b97c1fd54b59cb34f9185ad5ce7e9d5c3c4e8961c8/librt-0.15.0-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:db13ca398005abcbe538deda87b686d9bd08b7001cf40c4c06b444960ae10a26", size = 151029, upload-time = "2026-08-07T10:47:19.312Z" },
+ { url = "https://files.pythonhosted.org/packages/3e/e6/36c2299b7a94b84fdd01220d8a777a71be5be0925bb0dbdf71c0a06a34d9/librt-0.15.0-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:aa1f1995789dca3698bc550aaceb09a51bd5df0a057ff84ff15296cd1975b801", size = 155194, upload-time = "2026-08-07T10:47:20.398Z" },
+ { url = "https://files.pythonhosted.org/packages/c9/b6/ed5071f9325845e670bd36012757419767fbf56af77ed483077b9e4db541/librt-0.15.0-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:55456ea87d8df21808446d03817be2f65e20391c1c615d9187440dff28cd08dc", size = 502568, upload-time = "2026-08-07T10:47:21.652Z" },
+ { url = "https://files.pythonhosted.org/packages/7f/81/6450c67c3615d87704bcbc21323fafc69c799b06a044c447529f725d4b01/librt-0.15.0-cp313-cp313-manylinux2014_i686.manylinux_2_17_i686.manylinux_2_28_i686.whl", hash = "sha256:5a86a5a08c2235316bdb359d5dbb6ce0abfca7fac06363103e2c5af571d92f95", size = 496153, upload-time = "2026-08-07T10:47:22.925Z" },
+ { url = "https://files.pythonhosted.org/packages/e1/d6/5f52b722bc75076954b3bfd49be15ea362df4d580c6fb315d0f617100d30/librt-0.15.0-cp313-cp313-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:e56b6a368529bed262da40ce13f8fef590db0479819cca84f16a1f01ac356d0b", size = 513336, upload-time = "2026-08-07T10:47:24.213Z" },
+ { url = "https://files.pythonhosted.org/packages/8d/e2/c08fd1d36ce63ea5a12b85c5d37f4550b5f86a692167e41e5a74222607ae/librt-0.15.0-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:234d8d394721fa0d786af15ebf1f3fb7f3ed82fd1cd0cde45c2f247b5d4281d2", size = 531661, upload-time = "2026-08-07T10:47:25.507Z" },
+ { url = "https://files.pythonhosted.org/packages/3f/d8/d9482fcbeb177b9eb87bb3899eeb3b42be690313c652f9e146b1d0681fb2/librt-0.15.0-cp313-cp313-manylinux_2_34_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:d8363d7accb0286ac3a0e633f396e93800dafb8150494505daf9515bbda591f3", size = 524487, upload-time = "2026-08-07T10:47:26.79Z" },
+ { url = "https://files.pythonhosted.org/packages/10/cc/075171517b41f861753034fbb151b42cfc83bcc853849f24f5e66fd60ccf/librt-0.15.0-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:0f0ee3644d951f31055ad07d77d92520e84505dd7a432cc4cd501dd70ee06785", size = 543201, upload-time = "2026-08-07T10:47:27.999Z" },
+ { url = "https://files.pythonhosted.org/packages/b0/03/42c2330f37eeb475b6affeedd06518f60035f323af3a839335e3fc9fef2d/librt-0.15.0-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:2cfd1a81a648806e6a7717be4cc4d1bb392fa229752bf8444ba365e381e984d6", size = 546467, upload-time = "2026-08-07T10:47:29.396Z" },
+ { url = "https://files.pythonhosted.org/packages/57/1e/1ad4c5638f7e64d8560328bd25c54b409a661bdb6ff254b38ff90744288d/librt-0.15.0-cp313-cp313-musllinux_1_2_ppc64le.whl", hash = "sha256:a6cd22c9da0d866558e46a041f1cc0c2bbb26b61b137b2347fa834c332e1d101", size = 555139, upload-time = "2026-08-07T10:47:30.815Z" },
+ { url = "https://files.pythonhosted.org/packages/49/41/39fa7d15db1204cd1cbe6514680fbdc243adf754a0885061308f43afc013/librt-0.15.0-cp313-cp313-musllinux_1_2_riscv64.whl", hash = "sha256:6d5225ef8801e4ea5e482fa9b5dfb891dd9ef6f6d870f1f25d449ca2c70ac218", size = 536050, upload-time = "2026-08-07T10:47:32.222Z" },
+ { url = "https://files.pythonhosted.org/packages/1e/88/c6dcf0dd8e26dc0c9a499a2abab8646c86dcaf9ecea9524cb46d3686331a/librt-0.15.0-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:6d28a05796b99f749bf8794f17ba9ba1612d0076b802e9cfc62c554634e9ce3b", size = 573700, upload-time = "2026-08-07T10:47:33.527Z" },
+ { url = "https://files.pythonhosted.org/packages/1b/9b/ab54c71a7918a7c34fa5327fb61390a77446a07a146fbfb1165250a61035/librt-0.15.0-cp313-cp313-pyemscripten_2025_0_wasm32.whl", hash = "sha256:2067ff438048cead9d223ca5675bae2a25e520a7c3e6c1498bf9c6892d22caab", size = 82194, upload-time = "2026-08-07T10:47:34.835Z" },
+ { url = "https://files.pythonhosted.org/packages/8d/b2/4f9a243bb892395f3becb80789ade13771701091f9f07ab8230247953ba8/librt-0.15.0-cp313-cp313-win32.whl", hash = "sha256:1cd3b721f24c206398b9e26da3c3a9c011e6e89d06f318ba8ebefc30f1003890", size = 106231, upload-time = "2026-08-07T10:47:36.251Z" },
+ { url = "https://files.pythonhosted.org/packages/bf/af/64aff4885a40b93132382f2c314647d722574605416504379184ef3045ea/librt-0.15.0-cp313-cp313-win_amd64.whl", hash = "sha256:f395a4a9a03ac062dbe9a9f82e0c720502e590a38feee6a757bc82e9c63afbd8", size = 126996, upload-time = "2026-08-07T10:47:37.453Z" },
+ { url = "https://files.pythonhosted.org/packages/27/83/335bccf6c7cb9028cb0b54aead27d9ece3f01f83bc6baa2abace5da655c1/librt-0.15.0-cp313-cp313-win_arm64.whl", hash = "sha256:0a15cb554761247d84a3ec0cbdf4078d70725384f0e4662c0fa3b26266eb60ad", size = 112188, upload-time = "2026-08-07T10:47:38.729Z" },
+ { url = "https://files.pythonhosted.org/packages/a8/93/949053fb462eecc4a9a5ee770a81f4b40be7b79538b245545d4aebc6b58b/librt-0.15.0-cp314-cp314-macosx_10_15_x86_64.whl", hash = "sha256:f5de7feedc56337a088eb15cd9fafa9938367362221d8cc62c642b7f94821993", size = 149833, upload-time = "2026-08-07T10:47:39.86Z" },
+ { url = "https://files.pythonhosted.org/packages/61/ca/8281aa6cd560a3420e4497729f6b704b53be3eeaaef82d5aeadddaf7441f/librt-0.15.0-cp314-cp314-macosx_11_0_arm64.whl", hash = "sha256:6c0eb900c0e91f4aebe680845242e614f1864edfd44106380d0752ac29522bf8", size = 154088, upload-time = "2026-08-07T10:47:41.065Z" },
+ { url = "https://files.pythonhosted.org/packages/dd/02/1a1662dceaba6a086360891448d5ce9a7d3555976cae59a31a39d744b9c7/librt-0.15.0-cp314-cp314-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:e8c9a650a188e38bac005048cbe6342e81407782944d01934540ab75e417df21", size = 494215, upload-time = "2026-08-07T10:47:42.388Z" },
+ { url = "https://files.pythonhosted.org/packages/69/84/99211619dc656370a3740c33d2b0b6d5a3fb1e73689314f6ed477a397dc4/librt-0.15.0-cp314-cp314-manylinux2014_i686.manylinux_2_17_i686.manylinux_2_28_i686.whl", hash = "sha256:92bfed8deec93df30286b9fe9e3b1dd17329cc076a192b4ee5ec223841d54953", size = 491173, upload-time = "2026-08-07T10:47:43.683Z" },
+ { url = "https://files.pythonhosted.org/packages/d4/aa/5448d0b05f4579b635d3899176817ebf561af0e57bacd425b5b1887264c1/librt-0.15.0-cp314-cp314-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:ec4b19788f835711a2072f9dbe6b03b3bf32ed1f0fb30cf399bdd59d9f0c33fa", size = 505512, upload-time = "2026-08-07T10:47:45.314Z" },
+ { url = "https://files.pythonhosted.org/packages/95/82/01940e40b83c43a546c4a3c896cf34ca272a9690899d55914e4827b3dcce/librt-0.15.0-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:d4c7bacb70930f3d0a56f4ecf1be474a1f0d941b01dd73b756f3c256d42cb879", size = 523073, upload-time = "2026-08-07T10:47:46.66Z" },
+ { url = "https://files.pythonhosted.org/packages/88/fa/759c0030f3ee371439eb26de34fc745807caf0abb878af7af4b8b7c3dd3d/librt-0.15.0-cp314-cp314-manylinux_2_34_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:3e79f05e4a08b4d880342673312bbc895b56df7765605796f15902eb5367d3ae", size = 515080, upload-time = "2026-08-07T10:47:48.319Z" },
+ { url = "https://files.pythonhosted.org/packages/0b/27/894e072228fcb159703c655da69f8cd10dbed489c36e3df7dd032a2483be/librt-0.15.0-cp314-cp314-musllinux_1_2_aarch64.whl", hash = "sha256:a417149c0cba4d50b61e992e5a15e69eaf96746609b461cc4ed168aeef6b79dd", size = 534164, upload-time = "2026-08-07T10:47:49.875Z" },
+ { url = "https://files.pythonhosted.org/packages/98/a3/0078e91c1f36f8815db17827de15650b9a3fe56c55fbf998c854b34e40d3/librt-0.15.0-cp314-cp314-musllinux_1_2_i686.whl", hash = "sha256:da7a94d6a3411f579d72aa3e3bc5fbca7ed4549f3dbd7e5de3aa567333374285", size = 540616, upload-time = "2026-08-07T10:47:51.408Z" },
+ { url = "https://files.pythonhosted.org/packages/86/33/81a29b796dd52a45e9ef7974c7732926e8f10f15b8d2be505665979f896d/librt-0.15.0-cp314-cp314-musllinux_1_2_ppc64le.whl", hash = "sha256:856f743ae607f2c1380eccb566c0038a9fb3eabf0fc2be2704d76d9f73557239", size = 545890, upload-time = "2026-08-07T10:47:52.818Z" },
+ { url = "https://files.pythonhosted.org/packages/05/82/8be1baa1350e5d30cfd70ae79d0a6f4dc5862ef47f7bb2808aabc9bb86e5/librt-0.15.0-cp314-cp314-musllinux_1_2_riscv64.whl", hash = "sha256:779a6e7c894737e5983e7790a9c78c4000c30e23c9aada08081bdbea53b0fa60", size = 523287, upload-time = "2026-08-07T10:47:54.165Z" },
+ { url = "https://files.pythonhosted.org/packages/c6/4f/d1be6a01a35c20ef734e0e44113f87d4af756a9354a89dcfbe3b4f8af5e1/librt-0.15.0-cp314-cp314-musllinux_1_2_x86_64.whl", hash = "sha256:96bb17dbe8bab3c0954fbebfc69ed395599de75b6bbc35e3270a878e15d4dd65", size = 565868, upload-time = "2026-08-07T10:47:55.566Z" },
+ { url = "https://files.pythonhosted.org/packages/67/88/649cfa33f5825927b160610f670bdab012a64d627eddb94fa795ea4292fd/librt-0.15.0-cp314-cp314-pyemscripten_2026_0_wasm32.whl", hash = "sha256:7220697efaa6e5348fc3d18ee7f8563d4bfecd9872b37ffb915bfc1d08840622", size = 81619, upload-time = "2026-08-07T10:47:56.886Z" },
+ { url = "https://files.pythonhosted.org/packages/22/31/8e88a8d5e48fc8d1a817787fb6811dfff6499acd6c8683dd83934aa6ede0/librt-0.15.0-cp314-cp314-win32.whl", hash = "sha256:f54598964d357b1c5ab77cf5d92f21e598fe0e23cdbe9618480807f81b4eba15", size = 100138, upload-time = "2026-08-07T10:47:58.093Z" },
+ { url = "https://files.pythonhosted.org/packages/80/92/20fd6c4b6a1b1a564b076d55cd3d427d8428217d7638dc25a654cc4791d4/librt-0.15.0-cp314-cp314-win_amd64.whl", hash = "sha256:3ff5893a2c23d886aa9ce786de5ac6ddc74aeeaf90743682b74d920e117d2e28", size = 121258, upload-time = "2026-08-07T10:47:59.564Z" },
+ { url = "https://files.pythonhosted.org/packages/fc/28/6af430b44d9ebb897b865a3c363b6dcace51357be2347cc0f8f869656a86/librt-0.15.0-cp314-cp314-win_arm64.whl", hash = "sha256:3722a099730704c9a3d70c879fc0f51daec25fe5f1555672d97bc595abeafb95", size = 106467, upload-time = "2026-08-07T10:48:01.097Z" },
+ { url = "https://files.pythonhosted.org/packages/7e/aa/b42bb798942ced219f6d63b27e07f91237887a8d0bd0921666db79a13790/librt-0.15.0-cp314-cp314t-macosx_10_15_x86_64.whl", hash = "sha256:38c0c7d4b6fc06c3324b3f9162c8391bfc4fd9dde53afe1033ce7edb48d5a714", size = 159523, upload-time = "2026-08-07T10:48:02.442Z" },
+ { url = "https://files.pythonhosted.org/packages/75/03/1b53cd4ef904e73b1d828a5f90143bf94a2967d7cfff0b9ccf93e12aa9b4/librt-0.15.0-cp314-cp314t-macosx_11_0_arm64.whl", hash = "sha256:8b2fdd7ead3c995c37940a790690660d0ca006c302db26cc51933f6766866fc3", size = 161638, upload-time = "2026-08-07T10:48:03.725Z" },
+ { url = "https://files.pythonhosted.org/packages/ac/c4/9f9c9fba097d49e9e694c2b4dc331df31884645ecbc58a93b4b5fc69d2c5/librt-0.15.0-cp314-cp314t-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:2fde98cf1fc4bac144ce23c2c4c017b924ba714509ea9334977b0b27050c837d", size = 701795, upload-time = "2026-08-07T10:48:05.135Z" },
+ { url = "https://files.pythonhosted.org/packages/4c/05/0966840bda0380c8ae167b9043c6230202941cc90ea29c48e096964c765e/librt-0.15.0-cp314-cp314t-manylinux2014_i686.manylinux_2_17_i686.manylinux_2_28_i686.whl", hash = "sha256:e3b461183c5fa7681b48560f91515f53a953122fb30c71e07abc67d7ddf58c38", size = 682147, upload-time = "2026-08-07T10:48:06.555Z" },
+ { url = "https://files.pythonhosted.org/packages/18/af/1c47ca573c30ea47d195aec26133af522fea1104afaace028d7b32247ea8/librt-0.15.0-cp314-cp314t-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:4bbcc257e3babea20a91715c361b24554ec4e8f51aa578568afc230799fe1a19", size = 696397, upload-time = "2026-08-07T10:48:08.03Z" },
+ { url = "https://files.pythonhosted.org/packages/2e/0f/1aed6223d4f9f9d1171a8596ff100ea4c3f7699fea7a4ba657c3e60daa6c/librt-0.15.0-cp314-cp314t-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:b845b8d48088fad0cadc84be4b8fda63203be7e9237b71015b3925443c1f35ab", size = 722542, upload-time = "2026-08-07T10:48:09.569Z" },
+ { url = "https://files.pythonhosted.org/packages/c6/22/9e3a929aea456c97d69e6ef3884efea56d4807f97399471cc946baebd8af/librt-0.15.0-cp314-cp314t-manylinux_2_34_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:b30e600e8f337b9bd7f39b86d9fdfedc73cc46e3d0f745931a23a234220bb7e2", size = 729709, upload-time = "2026-08-07T10:48:11.129Z" },
+ { url = "https://files.pythonhosted.org/packages/e9/1b/c327ef6018e3a9ca0b8e7c5eddeeb331ba8f9b76c24e126d37d0f6d62faf/librt-0.15.0-cp314-cp314t-musllinux_1_2_aarch64.whl", hash = "sha256:64b0c8c35aa4c4ed79896359f3e0b285cbe4e610042106500da4811c322cc108", size = 752891, upload-time = "2026-08-07T10:48:12.558Z" },
+ { url = "https://files.pythonhosted.org/packages/d7/d1/d5f1ea02c56930087009e39db9b70660a663e76c730b27b925d786718457/librt-0.15.0-cp314-cp314t-musllinux_1_2_i686.whl", hash = "sha256:0da0d94cb802f32a0524653e7201f2cef72d5f700a5407678f5290483d4fcd08", size = 745301, upload-time = "2026-08-07T10:48:14.55Z" },
+ { url = "https://files.pythonhosted.org/packages/d9/3c/5f7c585d15ebb2250c73e7c0ee4e9e47be72c65d520c07ddbcdc62037674/librt-0.15.0-cp314-cp314t-musllinux_1_2_ppc64le.whl", hash = "sha256:4a6369168d371207339b1e50d4532b06a7121586141f82599505a3f315751d47", size = 747921, upload-time = "2026-08-07T10:48:16.453Z" },
+ { url = "https://files.pythonhosted.org/packages/7f/52/1443a446486eba966bcbca1696b472e4f210320ec42f490a47f48fbf0fdc/librt-0.15.0-cp314-cp314t-musllinux_1_2_riscv64.whl", hash = "sha256:c434e072557ade9cbc642d052c89d031efe47d5c9614523619d0d74a02378e81", size = 727561, upload-time = "2026-08-07T10:48:18.089Z" },
+ { url = "https://files.pythonhosted.org/packages/79/91/2270a9380f11725cf83ce1925a5e32dd1dde2be9bba597f25c10a38644e7/librt-0.15.0-cp314-cp314t-musllinux_1_2_x86_64.whl", hash = "sha256:c7eec6a42018bc1d45763b1c162d3d2bf7c3b9a1b0ed30d3e91dcba390efefcc", size = 774417, upload-time = "2026-08-07T10:48:19.611Z" },
+ { url = "https://files.pythonhosted.org/packages/9e/3b/f4b1548d4f5b99186737fe27aec238e9823e8d5d23bf4df007c030689dc5/librt-0.15.0-cp314-cp314t-win32.whl", hash = "sha256:6912fa5e635d74529ac7cdb1bdf6ca3af4453da8d1edbe0110ee1cb4ad407ebf", size = 104381, upload-time = "2026-08-07T10:48:21.048Z" },
+ { url = "https://files.pythonhosted.org/packages/80/b6/134afad262def1de04c0843c376d02135f1168af43f22e09a52bd8394727/librt-0.15.0-cp314-cp314t-win_amd64.whl", hash = "sha256:8e11699ed745931c395acd3621b07062e0f840efa6935aad87a64ed0995f0915", size = 127034, upload-time = "2026-08-07T10:48:22.561Z" },
+ { url = "https://files.pythonhosted.org/packages/99/5f/1b6846b20572bd699c9e9ec321a5f781845bee477df2aa2a43b28bc40119/librt-0.15.0-cp314-cp314t-win_arm64.whl", hash = "sha256:5d2a91724463bfed4f573cd7a9fdc856d2e230d0c0e5a61416a93481dccd8605", size = 110827, upload-time = "2026-08-07T10:48:23.804Z" },
+ { url = "https://files.pythonhosted.org/packages/c6/44/4de9f4ddadb009a55c7758eb5736d62534a7daaf27bd71bc50e64b606b06/librt-0.15.0-cp315-cp315-macosx_10_15_x86_64.whl", hash = "sha256:8443e38dcfcfdbcf5add5118c623efd788d65ac2e25756d6251a54a06a4d0aca", size = 149843, upload-time = "2026-08-07T10:48:25.148Z" },
+ { url = "https://files.pythonhosted.org/packages/1f/eb/5d9ab71e30119c44094e0275f38b47dd327aea0f843a080396677029d508/librt-0.15.0-cp315-cp315-macosx_11_0_arm64.whl", hash = "sha256:6d15a29033c57490cfe2069097c6fc4049e4e65ffbb749be7dc453b7c4c68965", size = 154510, upload-time = "2026-08-07T10:48:26.485Z" },
+ { url = "https://files.pythonhosted.org/packages/d0/9c/8505d1b8f5e8c19587bd03f7429993b3e9ce5c06819d856bfb11d919374c/librt-0.15.0-cp315-cp315-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:d2c05c729b589e734c09578bf5964be48a911765484840d017bbc84f49d4c4ad", size = 497543, upload-time = "2026-08-07T10:48:28.045Z" },
+ { url = "https://files.pythonhosted.org/packages/1d/9a/3a8390775cb095765aded027ac9c63e7c8ea74e731498607544c6505de0e/librt-0.15.0-cp315-cp315-manylinux2014_i686.manylinux_2_17_i686.manylinux_2_28_i686.whl", hash = "sha256:fa60887537e1d0cd2d9982269d33a709bf54b195cd2b9364fc0a758022af5bd9", size = 480452, upload-time = "2026-08-07T10:48:29.531Z" },
+ { url = "https://files.pythonhosted.org/packages/e7/40/258a4a7117ee915d66de5cd9b8ade65a440993161107ce3a686f1859955c/librt-0.15.0-cp315-cp315-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:d8bc24219b24c0af375718942ab75e3544b2763085f40f965be4326734ae8328", size = 507768, upload-time = "2026-08-07T10:48:31.007Z" },
+ { url = "https://files.pythonhosted.org/packages/6b/c6/2f4dd296c97a0b85b98894519b279408ec9dd602d4f692b1ea0e25dee670/librt-0.15.0-cp315-cp315-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:86a21a7bd3fe3a419512ef424cc1c020f6771d0b29cfddff36d1635a855e63f0", size = 525122, upload-time = "2026-08-07T10:48:32.7Z" },
+ { url = "https://files.pythonhosted.org/packages/49/dd/29eab42be13b2bf0ea8cb227135a45d44693e30a7e8b92871981ff56b82b/librt-0.15.0-cp315-cp315-manylinux_2_34_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:dbab647e88d90b3167b91efe7091e248653688ed4337e4f90907a722c7361bb9", size = 520371, upload-time = "2026-08-07T10:48:34.294Z" },
+ { url = "https://files.pythonhosted.org/packages/91/ed/4bad71adeca8fe208b775c2a35417fa5a2584c8f4791daaf89a89450fea1/librt-0.15.0-cp315-cp315-musllinux_1_2_aarch64.whl", hash = "sha256:d8edcf6f550e918dca779c069b9e156385c60b406f99fc7641f32c52f7193659", size = 537258, upload-time = "2026-08-07T10:48:35.88Z" },
+ { url = "https://files.pythonhosted.org/packages/4c/63/59dba6143fdcc7240c54458b629f3250000a61b8945890fc9efd451b19c5/librt-0.15.0-cp315-cp315-musllinux_1_2_i686.whl", hash = "sha256:8b62076030baa2d8b1501a46bf0e19c27a489aa90671c55665bff7887f7660b0", size = 527432, upload-time = "2026-08-07T10:48:37.466Z" },
+ { url = "https://files.pythonhosted.org/packages/ec/21/21a24c6a2327d8362580efebe77286bf47b0f4062ec5ea41766e609d3c7d/librt-0.15.0-cp315-cp315-musllinux_1_2_ppc64le.whl", hash = "sha256:d00d20d1818e82a07a0ee0aa89a98b17ed7916b92441090b683719cb20a59b6d", size = 548108, upload-time = "2026-08-07T10:48:39.384Z" },
+ { url = "https://files.pythonhosted.org/packages/5a/6d/fc68c89a7971418b41f9a873623ff935cb864097544c6a2f8ce491c8ef5d/librt-0.15.0-cp315-cp315-musllinux_1_2_riscv64.whl", hash = "sha256:4e6ee93fc3cf848dcbf0cce2eca73d8e7dcd0cc2b6df3a529d57750b30a4c55c", size = 529681, upload-time = "2026-08-07T10:48:41.392Z" },
+ { url = "https://files.pythonhosted.org/packages/65/7e/c2d98766124400d722063a630b0fde38a9fc768705d37eecca15c47dc192/librt-0.15.0-cp315-cp315-musllinux_1_2_x86_64.whl", hash = "sha256:32896a0af72508ea979e0acb4e4c04cbeeae04938167950d535c83c45597167d", size = 567736, upload-time = "2026-08-07T10:48:43.124Z" },
+ { url = "https://files.pythonhosted.org/packages/55/6c/f8c34a95e3a515c6e1c192b89511e7253c89a7760c6b500d57ffdb8d2dc8/librt-0.15.0-cp315-cp315-pyemscripten_2026_5_wasm32.whl", hash = "sha256:ec3ba415afaf951f6951b1dd16d3c8e4f540065fc382d7e70b823a79567ca374", size = 81673, upload-time = "2026-08-07T10:48:44.645Z" },
+ { url = "https://files.pythonhosted.org/packages/c9/9e/e23fa8e78679ec45728188650b39e8ff476c83b691c96f749217df3b1b7c/librt-0.15.0-cp315-cp315-win32.whl", hash = "sha256:d2813ba2503764f0450680c533d13df7cff9b49df1411062eded5f67db4195b9", size = 100081, upload-time = "2026-08-07T10:48:46.171Z" },
+ { url = "https://files.pythonhosted.org/packages/e1/dc/3eb4c5e297343f0620a55532cd7c8d764d3001fa2159212dadf480464827/librt-0.15.0-cp315-cp315-win_amd64.whl", hash = "sha256:b87d67e33afaf265262f2a66db578284b88ee2e6fcd224579cb5c15518677ad8", size = 121228, upload-time = "2026-08-07T10:48:47.631Z" },
+ { url = "https://files.pythonhosted.org/packages/97/70/43abce19f04e49762f8ec834c8fafee13cc40fd6b94a72a24e534febfcd0/librt-0.15.0-cp315-cp315-win_arm64.whl", hash = "sha256:713bd7df21170b982e729e46870f31d6b437bd1a9b4648cffb529bd3c2ec5c4b", size = 106487, upload-time = "2026-08-07T10:48:49.095Z" },
+ { url = "https://files.pythonhosted.org/packages/de/15/83f2deddb9368b8951ec8c9477269b5b9b8bd9bbf15e57402d0f38817dca/librt-0.15.0-cp315-cp315t-macosx_10_15_x86_64.whl", hash = "sha256:3de789c82752730f94782a5ee518baf9c05edf85733aeaf73bb6e518755cdf54", size = 159448, upload-time = "2026-08-07T10:48:50.649Z" },
+ { url = "https://files.pythonhosted.org/packages/06/bf/043097353f9b3c73b583d07f6b8e552795463f4bfc8caf85e42eee50c26a/librt-0.15.0-cp315-cp315t-macosx_11_0_arm64.whl", hash = "sha256:e0b5deec9a8664eb722c797241970fd4aa1894d25fda36a1ddac0f7407606bd6", size = 161686, upload-time = "2026-08-07T10:48:52.174Z" },
+ { url = "https://files.pythonhosted.org/packages/f4/2a/8ae77f9719d42ce71cd708560a3557b38ac3c17a0383e57f87084de45bbe/librt-0.15.0-cp315-cp315t-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:5563302a8359bc2295bb7084d1a8ed1519df96afb30eb2aa4e0bff7b54228988", size = 710668, upload-time = "2026-08-07T10:48:53.782Z" },
+ { url = "https://files.pythonhosted.org/packages/61/34/c0436ea134deb9a0d6da80a396a2739a81cb31e0418f7227239e23140898/librt-0.15.0-cp315-cp315t-manylinux2014_i686.manylinux_2_17_i686.manylinux_2_28_i686.whl", hash = "sha256:22d6263b9d39d7bbb286fa791945646e3218f1be2d693e36fb630f1d0e59cd13", size = 679396, upload-time = "2026-08-07T10:48:55.645Z" },
+ { url = "https://files.pythonhosted.org/packages/4a/9f/001e0d99aa9250d5cd5715a9081291a20656083459f9019cda15255329e1/librt-0.15.0-cp315-cp315t-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:39ffd14646190c454f0d86e0d256b33f00a87a26ab410e619773b841d0e41416", size = 704313, upload-time = "2026-08-07T10:48:57.46Z" },
+ { url = "https://files.pythonhosted.org/packages/2d/53/b34fa9d0ff00f136f4d58ebb4c411ff634baed1eb412bb602a2bc8dcafcb/librt-0.15.0-cp315-cp315t-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:c47318cd3a61401452de11282242937e3e057c4fd3dbaf601e269d0928a06c0a", size = 729847, upload-time = "2026-08-07T10:48:59.231Z" },
+ { url = "https://files.pythonhosted.org/packages/86/ac/fa4d7a424665040e95baf480a6d523446057684b6758624c85338e8a23b2/librt-0.15.0-cp315-cp315t-manylinux_2_34_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:a56a1d4f859a82ca5b99fc4b82c9b027b15e3c455c5cd99e7d0719f27bb20b6c", size = 742736, upload-time = "2026-08-07T10:49:01.151Z" },
+ { url = "https://files.pythonhosted.org/packages/8a/f1/e17a9bb5de6fb8c3186ed1a7d68d21618b027ac2d3633e03d3b6109c67ae/librt-0.15.0-cp315-cp315t-musllinux_1_2_aarch64.whl", hash = "sha256:077471b3182db4e17c36ae91555f36a4d2c00080b267f749bcad34a478a9a302", size = 763454, upload-time = "2026-08-07T10:49:03.039Z" },
+ { url = "https://files.pythonhosted.org/packages/1d/ec/ecd02cd30935b931b9cdbfed6ab5a099c51b280b4e7baa274da80978ed27/librt-0.15.0-cp315-cp315t-musllinux_1_2_i686.whl", hash = "sha256:411ca4d1b905b860ceba7570dd6717a71dedaddcc4b0f77ece710aa41ee11f8d", size = 743296, upload-time = "2026-08-07T10:49:04.941Z" },
+ { url = "https://files.pythonhosted.org/packages/e6/b5/b3c2b8353ce820a4854f78d19321344242f89fa71c975b71132ba9bf242a/librt-0.15.0-cp315-cp315t-musllinux_1_2_ppc64le.whl", hash = "sha256:1256589e0b0adb31751d685a68bce29d73407ddf4ef05d4188f49d5dcf9566d9", size = 756217, upload-time = "2026-08-07T10:49:06.825Z" },
+ { url = "https://files.pythonhosted.org/packages/3c/52/6cc22542ba59146b05cca2a656f9ff8bb67e38e63d12c3b0cc183d837bf1/librt-0.15.0-cp315-cp315t-musllinux_1_2_riscv64.whl", hash = "sha256:f42b74a53e5f26a0ba0007411a7455b66c67ce4022a39cc1f56fc4efd65bcbab", size = 741934, upload-time = "2026-08-07T10:49:08.839Z" },
+ { url = "https://files.pythonhosted.org/packages/40/32/a04b72b1aa86e3be23b2ecff8c1aad2dcc955bd3956d6d26e7e34267e57a/librt-0.15.0-cp315-cp315t-musllinux_1_2_x86_64.whl", hash = "sha256:291bf73caf78b9e88d6fae9bfd693207ff7d832e2fdbe2cf8e746bc13f5f892b", size = 783763, upload-time = "2026-08-07T10:49:10.661Z" },
+ { url = "https://files.pythonhosted.org/packages/6c/f0/89eb11dffbe9279ff37144dec786927314502ae0b114f1449dc78c458aab/librt-0.15.0-cp315-cp315t-win32.whl", hash = "sha256:c16d15ee371643ab48dc8248a3e680ebbeca573a13af2c3dd0c985b142d77162", size = 104313, upload-time = "2026-08-07T10:49:12.305Z" },
+ { url = "https://files.pythonhosted.org/packages/6d/4a/1f1978c200f563beda63c36adff2d65bbecb81e365e8e69e572f5f70fbc6/librt-0.15.0-cp315-cp315t-win_amd64.whl", hash = "sha256:dbd605739f228912dc49027cb764456b9757750bdc2b6b7773164db7096c6fd1", size = 126889, upload-time = "2026-08-07T10:49:13.881Z" },
+ { url = "https://files.pythonhosted.org/packages/38/a6/800800bfed7b1fb10fc3f3d557785c3854e80d3f7a9800d784b176a1fc2d/librt-0.15.0-cp315-cp315t-win_arm64.whl", hash = "sha256:84d244b00604d17df3fc7736c327892d6bba66181254aa4087be807b6c342bdc", size = 110700, upload-time = "2026-08-07T10:49:15.499Z" },
+ { url = "https://files.pythonhosted.org/packages/fd/c8/3f33f32a612139e0e59f9a3798104850e85b70752b0e2cbad586623abc4b/librt-0.15.0-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:0e2d0c0acf5b0ada7d045912b7cf787c21315c95b38b1fa939ef72d45d366b3d", size = 149546, upload-time = "2026-08-07T10:49:17.007Z" },
+ { url = "https://files.pythonhosted.org/packages/8c/d8/e19702379d43f6c9fd54b2dcf0b7824ac01277be581ab701ed066fbe8ee8/librt-0.15.0-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:f9ca190fe9edc0eb08eec558a509a16d28d91c35667b8f043cba40ed5e77a959", size = 154470, upload-time = "2026-08-07T10:49:18.627Z" },
+ { url = "https://files.pythonhosted.org/packages/f0/12/9cc66774b023d4a0fb770e2015064aee60745968395c90a97eb4f6b79576/librt-0.15.0-cp39-cp39-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:80811e1c42386ea95c6fb30571d3250ad43d7863f883f787f70517f441150e59", size = 493643, upload-time = "2026-08-07T10:49:20.352Z" },
+ { url = "https://files.pythonhosted.org/packages/4d/46/79b7ff1e6d58731ce12d23d9a9cbf969a1b48f7a2db893680783d36c6d2b/librt-0.15.0-cp39-cp39-manylinux2014_i686.manylinux_2_17_i686.manylinux_2_28_i686.whl", hash = "sha256:88c2a17815c266e6d8180204ff62cb739ab869ada4a746d4c505331526ac58f1", size = 484421, upload-time = "2026-08-07T10:49:22.128Z" },
+ { url = "https://files.pythonhosted.org/packages/0c/1a/7f2142227c37147f17820b65601d1221c7ff15393c769fdb8450e6aadd8b/librt-0.15.0-cp39-cp39-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:a5fa8f1f916988d0bf1afea005bda37f56ac41a18016e813ccf0097a8d460ca4", size = 497493, upload-time = "2026-08-07T10:49:23.905Z" },
+ { url = "https://files.pythonhosted.org/packages/c5/91/053c7396a7d4fe0f731a52ea87803f64251e42a175e28086c79e89738e58/librt-0.15.0-cp39-cp39-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:355e3a4c725225a14262004fc1872a552b9d3634b4f791a0dfc80804aafbfd55", size = 515104, upload-time = "2026-08-07T10:49:25.871Z" },
+ { url = "https://files.pythonhosted.org/packages/06/dd/34eb3aff3207b44f8c5562f46ab96b821a915c647e8724ac355df8e2eb0f/librt-0.15.0-cp39-cp39-manylinux_2_34_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:fc1ed11c4ad0b91af24def2050f2840ea4567828e3dd058fbe608d982f6e5465", size = 508969, upload-time = "2026-08-07T10:49:27.728Z" },
+ { url = "https://files.pythonhosted.org/packages/f4/04/3a30b3f0c5103c7c02d902dc0ea27f123b857f63d4a26cd181860d7e7ea2/librt-0.15.0-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:1f4ef2e71db33df4309167ed7f1520c4fae5e611226e159fa9cf33f93e6ddb3d", size = 531810, upload-time = "2026-08-07T10:49:29.736Z" },
+ { url = "https://files.pythonhosted.org/packages/ba/50/2964fa8fd1392e65a898938e8bd9ccf19314d7f92abcbc73403abc072051/librt-0.15.0-cp39-cp39-musllinux_1_2_i686.whl", hash = "sha256:1a1a8cd430c7dd0c083f455cb1b328d7fc682b05c31b940906f7845bdff80881", size = 536891, upload-time = "2026-08-07T10:49:31.687Z" },
+ { url = "https://files.pythonhosted.org/packages/9a/b5/724157f9cb5df4bdd3904caf1b1a17031de40dfd35942c3ef66f9e116860/librt-0.15.0-cp39-cp39-musllinux_1_2_ppc64le.whl", hash = "sha256:04d5387b908676c0b8d5d2f5fb58373b4ea382d81f7a6f0fab8ea2a462bb4738", size = 535985, upload-time = "2026-08-07T10:49:33.532Z" },
+ { url = "https://files.pythonhosted.org/packages/27/00/8bc5b14983c0346abba77ef11b28ef3d3a0e5452301a3cd6c99a15bb73e7/librt-0.15.0-cp39-cp39-musllinux_1_2_riscv64.whl", hash = "sha256:1172c6ad2a88b646e7fe3b480e3fac4ab4418b3443fd8a4061fdd531e0622fc7", size = 516616, upload-time = "2026-08-07T10:49:35.459Z" },
+ { url = "https://files.pythonhosted.org/packages/06/b6/4938502caf417c8c0c88b60fe6bb5ed8f0d1b59549dd76929f2e1bbf6cd8/librt-0.15.0-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:52e8db01f603f5da0ca30987479acff98769382efc8e142fa3962395dcf3ffdb", size = 558549, upload-time = "2026-08-07T10:49:37.256Z" },
+ { url = "https://files.pythonhosted.org/packages/37/3c/a6682d0c2682f366aeb9d9cec02d6d38c428bb087864fe79914468e25fb0/librt-0.15.0-cp39-cp39-win32.whl", hash = "sha256:e4c911f15a1652ca94ae9f1abd92e74cbb1b3597d2d92fdd556202f94e8cd455", size = 104936, upload-time = "2026-08-07T10:49:39.131Z" },
+ { url = "https://files.pythonhosted.org/packages/25/49/d8cd057754799fb59c9d90c8dfb65fc043ee14032e6238a77a5d99556cad/librt-0.15.0-cp39-cp39-win_amd64.whl", hash = "sha256:68242379c9b65a582b6e97318a1e9fbd6d445e58954f2d437991c4804ab11578", size = 125606, upload-time = "2026-08-07T10:49:40.854Z" },
]
[[package]]
name = "markdown"
-version = "3.7"
+version = "3.10.3"
source = { registry = "https://pypi.org/simple" }
-resolution-markers = [
- "python_full_version < '3.9'",
-]
-dependencies = [
- { name = "importlib-metadata", version = "8.5.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.9'" },
-]
-sdist = { url = "https://files.pythonhosted.org/packages/54/28/3af612670f82f4c056911fbbbb42760255801b3068c48de792d354ff4472/markdown-3.7.tar.gz", hash = "sha256:2ae2471477cfd02dbbf038d5d9bc226d40def84b4fe2986e49b59b6b472bbed2", size = 357086, upload-time = "2024-08-16T15:55:17.812Z" }
+sdist = { url = "https://files.pythonhosted.org/packages/29/6f/da4c6aea59b3001f2e8c0ec7497475aadaf3b021c10cab5b2858f0f32b26/markdown-3.10.3.tar.gz", hash = "sha256:3589362618f743188b4d955b874402bc814f4f83f544dc207719f4baa7d9c45f", size = 372596, upload-time = "2026-07-30T19:05:29.005Z" }
wheels = [
- { url = "https://files.pythonhosted.org/packages/3f/08/83871f3c50fc983b88547c196d11cf8c3340e37c32d2e9d6152abe2c61f7/Markdown-3.7-py3-none-any.whl", hash = "sha256:7eb6df5690b81a1d7942992c97fad2938e956e79df20cbc6186e9c3a77b1c803", size = 106349, upload-time = "2024-08-16T15:55:16.176Z" },
-]
-
-[[package]]
-name = "markdown"
-version = "3.9"
-source = { registry = "https://pypi.org/simple" }
-resolution-markers = [
- "python_full_version == '3.9.*'",
-]
-dependencies = [
- { name = "importlib-metadata", version = "8.7.1", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version == '3.9.*'" },
-]
-sdist = { url = "https://files.pythonhosted.org/packages/8d/37/02347f6d6d8279247a5837082ebc26fc0d5aaeaf75aa013fcbb433c777ab/markdown-3.9.tar.gz", hash = "sha256:d2900fe1782bd33bdbbd56859defef70c2e78fc46668f8eb9df3128138f2cb6a", size = 364585, upload-time = "2025-09-04T20:25:22.885Z" }
-wheels = [
- { url = "https://files.pythonhosted.org/packages/70/ae/44c4a6a4cbb496d93c6257954260fe3a6e91b7bed2240e5dad2a717f5111/markdown-3.9-py3-none-any.whl", hash = "sha256:9f4d91ed810864ea88a6f32c07ba8bee1346c0cc1f6b1f9f6c822f2a9667d280", size = 107441, upload-time = "2025-09-04T20:25:21.784Z" },
-]
-
-[[package]]
-name = "markdown"
-version = "3.10.2"
-source = { registry = "https://pypi.org/simple" }
-resolution-markers = [
- "python_full_version >= '3.10'",
-]
-sdist = { url = "https://files.pythonhosted.org/packages/2b/f4/69fa6ed85ae003c2378ffa8f6d2e3234662abd02c10d216c0ba96081a238/markdown-3.10.2.tar.gz", hash = "sha256:994d51325d25ad8aa7ce4ebaec003febcce822c3f8c911e3b17c52f7f589f950", size = 368805, upload-time = "2026-02-09T14:57:26.942Z" }
-wheels = [
- { url = "https://files.pythonhosted.org/packages/de/1f/77fa3081e4f66ca3576c896ae5d31c3002ac6607f9747d2e3aa49227e464/markdown-3.10.2-py3-none-any.whl", hash = "sha256:e91464b71ae3ee7afd3017d9f358ef0baf158fd9a298db92f1d4761133824c36", size = 108180, upload-time = "2026-02-09T14:57:25.787Z" },
+ { url = "https://files.pythonhosted.org/packages/64/69/4a5af2bc115a9a33fefe51709749de8262be3f9ba063d1753a837cdbc49c/markdown-3.10.3-py3-none-any.whl", hash = "sha256:fa6c92a00a4a3c98b22728c64a935ae1928250ae65058a6ded814d2cc29a4cea", size = 110757, upload-time = "2026-07-30T19:05:27.883Z" },
]
[[package]]
@@ -673,7 +1183,7 @@ resolution-markers = [
"python_full_version < '3.9'",
]
dependencies = [
- { name = "mdurl", marker = "python_full_version < '3.10'" },
+ { name = "mdurl" },
]
sdist = { url = "https://files.pythonhosted.org/packages/38/71/3b932df36c1a044d397a1f92d1cf91ee0a503d91e470cbd670aa66b07ed0/markdown-it-py-3.0.0.tar.gz", hash = "sha256:e3f60a94fa066dc52ec76661e37c851cb232d92f9886b15cb560aaada2df8feb", size = 74596, upload-time = "2023-06-03T06:41:14.443Z" }
wheels = [
@@ -682,17 +1192,18 @@ wheels = [
[[package]]
name = "markdown-it-py"
-version = "4.0.0"
+version = "4.2.0"
source = { registry = "https://pypi.org/simple" }
resolution-markers = [
- "python_full_version >= '3.10'",
+ "python_full_version >= '3.15'",
+ "python_full_version >= '3.10' and python_full_version < '3.15'",
]
dependencies = [
- { name = "mdurl", marker = "python_full_version >= '3.10'" },
+ { name = "mdurl" },
]
-sdist = { url = "https://files.pythonhosted.org/packages/5b/f5/4ec618ed16cc4f8fb3b701563655a69816155e79e24a17b651541804721d/markdown_it_py-4.0.0.tar.gz", hash = "sha256:cb0a2b4aa34f932c007117b194e945bd74e0ec24133ceb5bac59009cda1cb9f3", size = 73070, upload-time = "2025-08-11T12:57:52.854Z" }
+sdist = { url = "https://files.pythonhosted.org/packages/06/ff/7841249c247aa650a76b9ee4bbaeae59370dc8bfd2f6c01f3630c35eb134/markdown_it_py-4.2.0.tar.gz", hash = "sha256:04a21681d6fbb623de53f6f364d352309d4094dd4194040a10fd51833e418d49", size = 82454, upload-time = "2026-05-07T12:08:28.36Z" }
wheels = [
- { url = "https://files.pythonhosted.org/packages/94/54/e7d793b573f298e1c9013b8c4dade17d481164aa517d1d7148619c2cedbf/markdown_it_py-4.0.0-py3-none-any.whl", hash = "sha256:87327c59b172c5011896038353a81343b6754500a08cd7a4973bb48c6d578147", size = 87321, upload-time = "2025-08-11T12:57:51.923Z" },
+ { url = "https://files.pythonhosted.org/packages/b3/81/4da04ced5a082363ecfa159c010d200ecbd959ae410c10c0264a38cac0f5/markdown_it_py-4.2.0-py3-none-any.whl", hash = "sha256:9f7ebbcd14fe59494226453aed97c1070d83f8d24b6fc3a3bcf9a38092641c4a", size = 91687, upload-time = "2026-05-07T12:08:27.182Z" },
]
[[package]]
@@ -761,7 +1272,8 @@ name = "markupsafe"
version = "3.0.3"
source = { registry = "https://pypi.org/simple" }
resolution-markers = [
- "python_full_version >= '3.10'",
+ "python_full_version >= '3.15'",
+ "python_full_version >= '3.10' and python_full_version < '3.15'",
"python_full_version == '3.9.*'",
]
sdist = { url = "https://files.pythonhosted.org/packages/7e/99/7690b6d4034fffd95959cbe0c02de8deb3098cc577c67bb6a24fe5d7caa7/markupsafe-3.0.3.tar.gz", hash = "sha256:722695808f4b6457b320fdc131280796bdceb04ab50fe1795cd540799ebe1698", size = 80313, upload-time = "2025-09-27T18:37:40.426Z" }
@@ -858,26 +1370,26 @@ wheels = [
[[package]]
name = "maturin"
-version = "1.12.6"
+version = "1.14.1"
source = { registry = "https://pypi.org/simple" }
dependencies = [
{ name = "tomli", marker = "python_full_version < '3.11'" },
]
-sdist = { url = "https://files.pythonhosted.org/packages/0c/18/8b2eebd3ea086a5ec73d7081f95ec64918ceda1900075902fc296ea3ad55/maturin-1.12.6.tar.gz", hash = "sha256:d37be3a811a7f2ee28a0fa0964187efa50e90f21da0c6135c27787fa0b6a89db", size = 269165, upload-time = "2026-03-01T14:54:04.21Z" }
+sdist = { url = "https://files.pythonhosted.org/packages/e7/b3/addd877f871fb1860d46d3a4f206ecb10b946c85846805e6367631926fd3/maturin-1.14.1.tar.gz", hash = "sha256:9d6577a62cd08e0ceba7a0db06fb098e0c9b1b3429bad747a4f3a18215a1b3df", size = 369637, upload-time = "2026-06-19T05:19:49.774Z" }
wheels = [
- { url = "https://files.pythonhosted.org/packages/71/8b/9ddfde8a485489e3ebdc50ee3042ef1c854f00dfea776b951068f6ffe451/maturin-1.12.6-py3-none-linux_armv6l.whl", hash = "sha256:6892b4176992fcc143f9d1c1c874a816e9a041248eef46433db87b0f0aff4278", size = 9789847, upload-time = "2026-03-01T14:54:09.172Z" },
- { url = "https://files.pythonhosted.org/packages/ef/e8/5f7fd3763f214a77ac0388dbcc71cc30aec5490016bd0c8e6bd729fc7b0a/maturin-1.12.6-py3-none-macosx_10_12_x86_64.macosx_11_0_arm64.macosx_10_12_universal2.whl", hash = "sha256:c0c742beeeef7fb93b6a81bd53e75507887e396fd1003c45117658d063812dad", size = 19023833, upload-time = "2026-03-01T14:53:46.743Z" },
- { url = "https://files.pythonhosted.org/packages/e0/7f/706ff3839c8b2046436d4c2bc97596c558728264d18abc298a1ad862a4be/maturin-1.12.6-py3-none-macosx_10_12_x86_64.whl", hash = "sha256:2cb41139295eed6411d3cdafc7430738094c2721f34b7eeb44f33cac516115dc", size = 9821620, upload-time = "2026-03-01T14:54:12.04Z" },
- { url = "https://files.pythonhosted.org/packages/0e/9c/70917fb123c8dd6b595e913616c9c72d730cbf4a2b6cac8077dc02a12586/maturin-1.12.6-py3-none-manylinux_2_12_i686.manylinux2010_i686.musllinux_1_1_i686.whl", hash = "sha256:351f3af1488a7cbdcff3b6d8482c17164273ac981378a13a4a9937a49aec7d71", size = 9849107, upload-time = "2026-03-01T14:53:48.971Z" },
- { url = "https://files.pythonhosted.org/packages/59/ea/f1d6ad95c0a12fbe761a7c28a57540341f188564dbe8ad730a4d1788cd32/maturin-1.12.6-py3-none-manylinux_2_12_x86_64.manylinux2010_x86_64.musllinux_1_1_x86_64.whl", hash = "sha256:6dbddfe4dc7ddee60bbac854870bd7cfec660acb54d015d24597d59a1c828f61", size = 10242855, upload-time = "2026-03-01T14:53:44.605Z" },
- { url = "https://files.pythonhosted.org/packages/93/1b/2419843a4f1d2fb4747f3dc3d9c4a2881cd97a3274dd94738fcdf0835e79/maturin-1.12.6-py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.musllinux_1_1_aarch64.whl", hash = "sha256:8fdb0f63e77ee3df0f027a120e9af78dbc31edf0eb0f263d55783c250c33b728", size = 9674972, upload-time = "2026-03-01T14:53:52.763Z" },
- { url = "https://files.pythonhosted.org/packages/71/46/b60ab2fc996d904b40e55bd475599dcdccd8f7ad3e649bf95e87970df466/maturin-1.12.6-py3-none-manylinux_2_17_armv7l.manylinux2014_armv7l.musllinux_1_1_armv7l.whl", hash = "sha256:fa84b7493a2e80759cacc2e668fa5b444d55b9994e90707c42904f55d6322c1e", size = 9645755, upload-time = "2026-03-01T14:53:58.497Z" },
- { url = "https://files.pythonhosted.org/packages/a4/96/03f2b55a8c226805115232fc23c4a4f33f0c9d39e11efab8166dc440f80d/maturin-1.12.6-py3-none-manylinux_2_17_ppc64le.manylinux2014_ppc64le.musllinux_1_1_ppc64le.whl", hash = "sha256:e90dc12bc6a38e9495692a36c9e231c4d7e0c9bfde60719468ab7d8673db3c45", size = 12737612, upload-time = "2026-03-01T14:54:05.393Z" },
- { url = "https://files.pythonhosted.org/packages/2b/c2/648667022c5b53cdccefa67c245e8a984970f3045820f00c2e23bdb2aff4/maturin-1.12.6-py3-none-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:06fc8d089f98623ce924c669b70911dfed30f9a29956c362945f727f9abc546b", size = 10455028, upload-time = "2026-03-01T14:54:07.349Z" },
- { url = "https://files.pythonhosted.org/packages/63/d6/5b5efe3ca0c043357ed3f8d2b2d556169fdbf1ff75e50e8e597708a359d2/maturin-1.12.6-py3-none-manylinux_2_31_riscv64.musllinux_1_1_riscv64.whl", hash = "sha256:75133e56274d43b9227fd49dca9a86e32f1fd56a7b55544910c4ce978c2bb5aa", size = 10014531, upload-time = "2026-03-01T14:53:54.548Z" },
- { url = "https://files.pythonhosted.org/packages/68/d5/39c594c27b1a8b32a0cb95fff9ad60b888c4352d1d1c389ac1bd20dc1e16/maturin-1.12.6-py3-none-win32.whl", hash = "sha256:3f32e0a3720b81423c9d35c14e728cb1f954678124749776dc72d533ea1115e8", size = 8553012, upload-time = "2026-03-01T14:53:50.706Z" },
- { url = "https://files.pythonhosted.org/packages/94/66/b262832a91747e04051e21f986bd01a8af81fbffafacc7d66a11e79aab5f/maturin-1.12.6-py3-none-win_amd64.whl", hash = "sha256:977290159d252db946054a0555263c59b3d0c7957135c69e690f4b1558ee9983", size = 9890470, upload-time = "2026-03-01T14:53:56.659Z" },
- { url = "https://files.pythonhosted.org/packages/e3/47/76b8ca470ddc8d7d36aa8c15f5a6aed1841806bb93a0f4ead8ee61e9a088/maturin-1.12.6-py3-none-win_arm64.whl", hash = "sha256:bae91976cdc8148038e13c881e1e844e5c63e58e026e8b9945aa2d19b3b4ae89", size = 8606158, upload-time = "2026-03-01T14:54:02.423Z" },
+ { url = "https://files.pythonhosted.org/packages/f4/f0/97c5a5bd9c71653a066c0976a484eaaae50b9369557838a4176b7b0bdaa5/maturin-1.14.1-py3-none-linux_armv6l.whl", hash = "sha256:522292398945442cdafa9daeb2271b2340fbde57027b818f923f88eab04174f8", size = 10207496, upload-time = "2026-06-19T05:19:09.321Z" },
+ { url = "https://files.pythonhosted.org/packages/fe/83/294bca639b0e052f1e2f65199b3db258780c7d4e31408b934c9c974a1379/maturin-1.14.1-py3-none-macosx_10_12_x86_64.macosx_11_0_arm64.macosx_10_12_universal2.whl", hash = "sha256:ffe5ad71f21d1e6603c4dd75f7fee34adf5ed5ebcebb692886549888ebb329ed", size = 19680113, upload-time = "2026-06-19T05:19:13.43Z" },
+ { url = "https://files.pythonhosted.org/packages/43/b6/79c881410a3b1c187f7eb3d407aecae646c6a4433d630d72200359015e83/maturin-1.14.1-py3-none-macosx_10_12_x86_64.whl", hash = "sha256:f3306078070c1508fd715b9116070cbcaff5959024272a9f1e6f5cb29768b86c", size = 10169205, upload-time = "2026-06-19T05:19:16.615Z" },
+ { url = "https://files.pythonhosted.org/packages/93/9d/44b6f26dcb7f7a04c5501ac2dbb6ca1490150682baa525ca5860504f9eab/maturin-1.14.1-py3-none-manylinux_2_12_i686.manylinux2010_i686.musllinux_1_1_i686.whl", hash = "sha256:cd457cd88961156e26379e1155bd287cc0ec1c8b2f1582b0660fb31b87c8842d", size = 10188098, upload-time = "2026-06-19T05:19:19.736Z" },
+ { url = "https://files.pythonhosted.org/packages/1a/bd/9c0d5d6983905ce2c9edaa073a7e89355a9cf7f396988e05d32f1c37785d/maturin-1.14.1-py3-none-manylinux_2_12_x86_64.manylinux2010_x86_64.musllinux_1_1_x86_64.whl", hash = "sha256:dfc54ae32e6fcb18302193ab9a30b0b25eefffba994ae13238974805533ef75e", size = 10627576, upload-time = "2026-06-19T05:19:22.713Z" },
+ { url = "https://files.pythonhosted.org/packages/e5/33/b096412bd6a7cb399652b260666f901adf88a687181a6dbd6a3f89f0a94e/maturin-1.14.1-py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.musllinux_1_1_aarch64.whl", hash = "sha256:a131d912b5267e640bc96d70f4914e10590aed64082ec9abacba7cea52004224", size = 10085181, upload-time = "2026-06-19T05:19:25.69Z" },
+ { url = "https://files.pythonhosted.org/packages/56/8d/08c3bf469c38a23c9e6c877e338193001eb604d010fedc08341974e38528/maturin-1.14.1-py3-none-manylinux_2_17_armv7l.manylinux2014_armv7l.musllinux_1_1_armv7l.whl", hash = "sha256:be18fc568fb76884c0205456336892a75105ec398e6b667cd777c6268bd06d69", size = 10026363, upload-time = "2026-06-19T05:19:28.904Z" },
+ { url = "https://files.pythonhosted.org/packages/3a/a4/c4d1a92839f8745ab4aab988a7db884a79d6d710bd3b286fcf9316dece1a/maturin-1.14.1-py3-none-manylinux_2_17_ppc64le.manylinux2014_ppc64le.musllinux_1_1_ppc64le.whl", hash = "sha256:994a0c8ba3ad8a92b3a9ee1b02645d200d610216b15cff5102b0fe65e8e08666", size = 13321347, upload-time = "2026-06-19T05:19:32.411Z" },
+ { url = "https://files.pythonhosted.org/packages/b3/fa/170f04624d03fd07d2a8b1b67de83a127af93aef9eaa425839553347297b/maturin-1.14.1-py3-none-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:be80866363e605d137991b491a741a84cde9ae350183c4c85f49690ca9aaaa65", size = 10877609, upload-time = "2026-06-19T05:19:35.448Z" },
+ { url = "https://files.pythonhosted.org/packages/61/ad/1ae2e1d0ded282bf2c55ac13f0811d87deb425e200ae64a15785675dede9/maturin-1.14.1-py3-none-manylinux_2_31_riscv64.musllinux_1_1_riscv64.whl", hash = "sha256:5282dffd4b539d2be245f4e5b1a5ab6bc1033b58f4a4872f5833f9d43c954aa4", size = 10417316, upload-time = "2026-06-19T05:19:38.28Z" },
+ { url = "https://files.pythonhosted.org/packages/fb/27/bf677183920718da49cd7982d6a3ffc440aad8919329f571d189f81b7bdf/maturin-1.14.1-py3-none-win32.whl", hash = "sha256:1a04de0a20188f95c721b5702eed18140bdcccb28c386797093eca3f62f4d4e0", size = 8931293, upload-time = "2026-06-19T05:19:41.183Z" },
+ { url = "https://files.pythonhosted.org/packages/63/4b/585adeb9167b08d3cdff0032a938b0e72655c92003df4f52c3f696a1bcc2/maturin-1.14.1-py3-none-win_amd64.whl", hash = "sha256:3c9f94640ecc4895e94abaf834a0684430032c865b2748a36c12461fd9252fdd", size = 10314067, upload-time = "2026-06-19T05:19:44.389Z" },
+ { url = "https://files.pythonhosted.org/packages/51/d4/dac8c0720ae246be1700afb6fbdbbea20fe35b13f6570b2f70faa005df77/maturin-1.14.1-py3-none-win_arm64.whl", hash = "sha256:15cea8fcb3ba47dd636f50092bb34baea8b04ac777392f23e6bf8a9a61efb894", size = 9718943, upload-time = "2026-06-19T05:19:47.49Z" },
]
[[package]]
@@ -898,33 +1410,35 @@ wheels = [
{ url = "https://files.pythonhosted.org/packages/2c/19/04f9b178c2d8a15b076c8b5140708fa6ffc5601fb6f1e975537072df5b2a/mergedeep-1.3.4-py3-none-any.whl", hash = "sha256:70775750742b25c0d8f36c55aed03d24c3384d17c951b3175d898bd778ef0307", size = 6354, upload-time = "2021-02-05T18:55:29.583Z" },
]
+[[package]]
+name = "mike"
+version = "2.2.0+zensical.0.1.0"
+source = { git = "https://github.com/squidfunk/mike.git#2d4ad799442f4592db8ad53b179bfb33db8c69ac" }
+dependencies = [
+ { name = "jinja2" },
+ { name = "pyparsing" },
+ { name = "verspec" },
+ { name = "zensical" },
+]
+
[[package]]
name = "mkdocs"
version = "1.6.1"
source = { registry = "https://pypi.org/simple" }
dependencies = [
- { name = "click" },
+ { name = "click", version = "8.4.2", source = { registry = "https://pypi.org/simple" } },
{ name = "colorama", marker = "sys_platform == 'win32'" },
{ name = "ghp-import" },
- { name = "importlib-metadata", version = "8.5.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.9'" },
- { name = "importlib-metadata", version = "8.7.1", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version == '3.9.*'" },
{ name = "jinja2" },
- { name = "markdown", version = "3.7", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.9'" },
- { name = "markdown", version = "3.9", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version == '3.9.*'" },
- { name = "markdown", version = "3.10.2", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.10'" },
- { name = "markupsafe", version = "2.1.5", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.9'" },
- { name = "markupsafe", version = "3.0.3", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.9'" },
+ { name = "markdown" },
+ { name = "markupsafe", version = "3.0.3", source = { registry = "https://pypi.org/simple" } },
{ name = "mergedeep" },
- { name = "mkdocs-get-deps", version = "0.2.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.9'" },
- { name = "mkdocs-get-deps", version = "0.2.2", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.9'" },
- { name = "packaging" },
- { name = "pathspec", version = "0.12.1", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.9'" },
- { name = "pathspec", version = "1.0.4", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.9'" },
+ { name = "mkdocs-get-deps" },
+ { name = "packaging", version = "26.3", source = { registry = "https://pypi.org/simple" } },
+ { name = "pathspec" },
{ name = "pyyaml" },
- { name = "pyyaml-env-tag", version = "0.1", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.9'" },
- { name = "pyyaml-env-tag", version = "1.1", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.9'" },
- { name = "watchdog", version = "4.0.2", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.9'" },
- { name = "watchdog", version = "6.0.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.9'" },
+ { name = "pyyaml-env-tag" },
+ { name = "watchdog" },
]
sdist = { url = "https://files.pythonhosted.org/packages/bc/c6/bbd4f061bd16b378247f12953ffcb04786a618ce5e904b8c5a01a0309061/mkdocs-1.6.1.tar.gz", hash = "sha256:7b432f01d928c084353ab39c57282f29f92136665bdd6abf7c1ec8d822ef86f2", size = 3889159, upload-time = "2024-08-30T12:24:06.899Z" }
wheels = [
@@ -932,37 +1446,27 @@ wheels = [
]
[[package]]
-name = "mkdocs-get-deps"
-version = "0.2.0"
+name = "mkdocs-autorefs"
+version = "1.4.4"
source = { registry = "https://pypi.org/simple" }
-resolution-markers = [
- "python_full_version < '3.9'",
-]
dependencies = [
- { name = "importlib-metadata", version = "8.5.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.9'" },
- { name = "mergedeep", marker = "python_full_version < '3.9'" },
- { name = "platformdirs", version = "4.3.6", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.9'" },
- { name = "pyyaml", marker = "python_full_version < '3.9'" },
+ { name = "markdown" },
+ { name = "markupsafe", version = "3.0.3", source = { registry = "https://pypi.org/simple" } },
+ { name = "mkdocs" },
]
-sdist = { url = "https://files.pythonhosted.org/packages/98/f5/ed29cd50067784976f25ed0ed6fcd3c2ce9eb90650aa3b2796ddf7b6870b/mkdocs_get_deps-0.2.0.tar.gz", hash = "sha256:162b3d129c7fad9b19abfdcb9c1458a651628e4b1dea628ac68790fb3061c60c", size = 10239, upload-time = "2023-11-20T17:51:09.981Z" }
+sdist = { url = "https://files.pythonhosted.org/packages/52/c0/f641843de3f612a6b48253f39244165acff36657a91cc903633d456ae1ac/mkdocs_autorefs-1.4.4.tar.gz", hash = "sha256:d54a284f27a7346b9c38f1f852177940c222da508e66edc816a0fa55fc6da197", size = 56588, upload-time = "2026-02-10T15:23:55.105Z" }
wheels = [
- { url = "https://files.pythonhosted.org/packages/9f/d4/029f984e8d3f3b6b726bd33cafc473b75e9e44c0f7e80a5b29abc466bdea/mkdocs_get_deps-0.2.0-py3-none-any.whl", hash = "sha256:2bf11d0b133e77a0dd036abeeb06dec8775e46efa526dc70667d8863eefc6134", size = 9521, upload-time = "2023-11-20T17:51:08.587Z" },
+ { url = "https://files.pythonhosted.org/packages/28/de/a3e710469772c6a89595fc52816da05c1e164b4c866a89e3cb82fb1b67c5/mkdocs_autorefs-1.4.4-py3-none-any.whl", hash = "sha256:834ef5408d827071ad1bc69e0f39704fa34c7fc05bc8e1c72b227dfdc5c76089", size = 25530, upload-time = "2026-02-10T15:23:53.817Z" },
]
[[package]]
name = "mkdocs-get-deps"
version = "0.2.2"
source = { registry = "https://pypi.org/simple" }
-resolution-markers = [
- "python_full_version >= '3.10'",
- "python_full_version == '3.9.*'",
-]
dependencies = [
- { name = "importlib-metadata", version = "8.7.1", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version == '3.9.*'" },
- { name = "mergedeep", marker = "python_full_version >= '3.9'" },
- { name = "platformdirs", version = "4.4.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version == '3.9.*'" },
- { name = "platformdirs", version = "4.9.4", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.10'" },
- { name = "pyyaml", marker = "python_full_version >= '3.9'" },
+ { name = "mergedeep" },
+ { name = "platformdirs", version = "4.11.3", source = { registry = "https://pypi.org/simple" } },
+ { name = "pyyaml" },
]
sdist = { url = "https://files.pythonhosted.org/packages/ce/25/b3cccb187655b9393572bde9b09261d267c3bf2f2cdabe347673be5976a6/mkdocs_get_deps-0.2.2.tar.gz", hash = "sha256:8ee8d5f316cdbbb2834bc1df6e69c08fe769a83e040060de26d3c19fad3599a1", size = 11047, upload-time = "2026-03-10T02:46:33.632Z" }
wheels = [
@@ -971,31 +1475,24 @@ wheels = [
[[package]]
name = "mkdocs-material"
-version = "9.7.6"
+version = "9.7.7"
source = { registry = "https://pypi.org/simple" }
dependencies = [
{ name = "babel" },
- { name = "backrefs", version = "5.7.post1", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.9'" },
- { name = "backrefs", version = "6.2", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.9'" },
+ { name = "backrefs" },
{ name = "colorama" },
{ name = "jinja2" },
- { name = "markdown", version = "3.7", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.9'" },
- { name = "markdown", version = "3.9", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version == '3.9.*'" },
- { name = "markdown", version = "3.10.2", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.10'" },
+ { name = "markdown" },
{ name = "mkdocs" },
{ name = "mkdocs-material-extensions" },
{ name = "paginate" },
- { name = "pygments", version = "2.19.2", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.9'" },
- { name = "pygments", version = "2.20.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.9'" },
- { name = "pymdown-extensions", version = "10.15", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.9'" },
- { name = "pymdown-extensions", version = "10.21.2", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.9'" },
- { name = "requests", version = "2.32.4", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.9'" },
- { name = "requests", version = "2.32.5", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version == '3.9.*'" },
- { name = "requests", version = "2.33.1", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.10'" },
+ { name = "pygments", version = "2.21.0", source = { registry = "https://pypi.org/simple" } },
+ { name = "pymdown-extensions" },
+ { name = "requests", version = "2.34.2", source = { registry = "https://pypi.org/simple" } },
]
-sdist = { url = "https://files.pythonhosted.org/packages/45/29/6d2bcf41ae40802c4beda2432396fff97b8456fb496371d1bc7aad6512ec/mkdocs_material-9.7.6.tar.gz", hash = "sha256:00bdde50574f776d328b1862fe65daeaf581ec309bd150f7bff345a098c64a69", size = 4097959, upload-time = "2026-03-19T15:41:58.161Z" }
+sdist = { url = "https://files.pythonhosted.org/packages/f1/cd/c05d3a530ba7934f144fb45f7203cd236adc25c7bdcc34673d202f4b0278/mkdocs_material-9.7.7.tar.gz", hash = "sha256:c0649c065b1b0512d60aad8c10f947f8e455284475239b364b610f2deb4d0855", size = 4097923, upload-time = "2026-07-17T16:21:33.156Z" }
wheels = [
- { url = "https://files.pythonhosted.org/packages/2c/01/bc663630c510822c95c47a66af9fa7a443c295b47d5f041e5e6ae62ef659/mkdocs_material-9.7.6-py3-none-any.whl", hash = "sha256:71b84353921b8ea1ba84fe11c50912cc512da8fe0881038fcc9a0761c0e635ba", size = 9305470, upload-time = "2026-03-19T15:41:55.217Z" },
+ { url = "https://files.pythonhosted.org/packages/ad/21/17c1bc9e6f47c972ad66fb2ac2568f99f90f1207eeb6fc3b34d094dba7b5/mkdocs_material-9.7.7-py3-none-any.whl", hash = "sha256:8ea9bb1737a5b524a5f9dcf2e1b4ebda8274ae3008aa7845720a97083bef708f", size = 9305438, upload-time = "2026-07-17T16:21:30.017Z" },
]
[[package]]
@@ -1008,18 +1505,35 @@ wheels = [
]
[[package]]
-name = "mkdocs-minify-plugin"
-version = "0.8.0"
+name = "mkdocstrings"
+version = "1.0.6"
source = { registry = "https://pypi.org/simple" }
dependencies = [
- { name = "csscompressor" },
- { name = "htmlmin2" },
- { name = "jsmin" },
+ { name = "jinja2" },
+ { name = "markdown" },
+ { name = "markupsafe", version = "3.0.3", source = { registry = "https://pypi.org/simple" } },
{ name = "mkdocs" },
+ { name = "mkdocs-autorefs" },
+ { name = "pymdown-extensions" },
+]
+sdist = { url = "https://files.pythonhosted.org/packages/53/71/f85bdf13355073ae15a7375f09879375a830553552e58c1c4b7e0bbc5c8b/mkdocstrings-1.0.6.tar.gz", hash = "sha256:a0b8c2bdd29a6416c80d717aa369bbf7831946bd9f23c2a66db1b1dbe7693dbd", size = 100649, upload-time = "2026-07-11T19:38:05.732Z" }
+wheels = [
+ { url = "https://files.pythonhosted.org/packages/5d/5b/4c1902e8bdd5c4db63284e9d101dece4038d4025d6d88850ffe0a1578980/mkdocstrings-1.0.6-py3-none-any.whl", hash = "sha256:2703708697487d1b6d6d7b412e176fa436edf120c1bf81dc9e126b12d00893c7", size = 35787, upload-time = "2026-07-11T19:38:04.417Z" },
+]
+
+[[package]]
+name = "mkdocstrings-python"
+version = "2.0.7"
+source = { registry = "https://pypi.org/simple" }
+dependencies = [
+ { name = "griffelib" },
+ { name = "mkdocs-autorefs" },
+ { name = "mkdocstrings" },
+ { name = "typing-extensions", version = "4.16.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.11'" },
]
-sdist = { url = "https://files.pythonhosted.org/packages/52/67/fe4b77e7a8ae7628392e28b14122588beaf6078b53eb91c7ed000fd158ac/mkdocs-minify-plugin-0.8.0.tar.gz", hash = "sha256:bc11b78b8120d79e817308e2b11539d790d21445eb63df831e393f76e52e753d", size = 8366, upload-time = "2024-01-29T16:11:32.982Z" }
+sdist = { url = "https://files.pythonhosted.org/packages/90/5d/1be1c7a49d8fa13dc80f66a85f53333d52cf5206911412006ffdff8fb9a0/mkdocstrings_python-2.0.7.tar.gz", hash = "sha256:8c49faf66d243072d7590a1b5dea028d9d7425fac191f54f096123a4a9c1a783", size = 201598, upload-time = "2026-08-17T16:56:18.239Z" }
wheels = [
- { url = "https://files.pythonhosted.org/packages/1b/cd/2e8d0d92421916e2ea4ff97f10a544a9bd5588eb747556701c983581df13/mkdocs_minify_plugin-0.8.0-py3-none-any.whl", hash = "sha256:5fba1a3f7bd9a2142c9954a6559a57e946587b21f133165ece30ea145c66aee6", size = 6723, upload-time = "2024-01-29T16:11:31.851Z" },
+ { url = "https://files.pythonhosted.org/packages/b2/6d/77546d8c26f038fce314a507106954f76270f6c182488bcf9ac9721175df/mkdocstrings_python-2.0.7-py3-none-any.whl", hash = "sha256:1fce5fbfe4ffa6e8136a35351cdc97c3bf55219c7efbd3f92a82260f93235d60", size = 105387, upload-time = "2026-08-17T16:56:16.813Z" },
]
[[package]]
@@ -1030,9 +1544,9 @@ resolution-markers = [
"python_full_version < '3.9'",
]
dependencies = [
- { name = "mypy-extensions", marker = "python_full_version < '3.9'" },
- { name = "tomli", marker = "python_full_version < '3.9'" },
- { name = "typing-extensions", version = "4.13.2", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.9'" },
+ { name = "mypy-extensions" },
+ { name = "tomli" },
+ { name = "typing-extensions", version = "4.13.2", source = { registry = "https://pypi.org/simple" } },
]
sdist = { url = "https://files.pythonhosted.org/packages/b9/eb/2c92d8ea1e684440f54fa49ac5d9a5f19967b7b472a281f419e69a8d228e/mypy-1.14.1.tar.gz", hash = "sha256:7ec88144fe9b510e8475ec2f5f251992690fcf89ccb4500b214b4226abcd32d6", size = 3216051, upload-time = "2024-12-30T16:39:07.335Z" }
wheels = [
@@ -1083,11 +1597,11 @@ resolution-markers = [
"python_full_version == '3.9.*'",
]
dependencies = [
- { name = "librt", marker = "python_full_version == '3.9.*' and platform_python_implementation != 'PyPy'" },
- { name = "mypy-extensions", marker = "python_full_version == '3.9.*'" },
- { name = "pathspec", version = "1.0.4", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version == '3.9.*'" },
- { name = "tomli", marker = "python_full_version == '3.9.*'" },
- { name = "typing-extensions", version = "4.15.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version == '3.9.*'" },
+ { name = "librt", marker = "platform_python_implementation != 'PyPy'" },
+ { name = "mypy-extensions" },
+ { name = "pathspec" },
+ { name = "tomli" },
+ { name = "typing-extensions", version = "4.16.0", source = { registry = "https://pypi.org/simple" } },
]
sdist = { url = "https://files.pythonhosted.org/packages/f5/db/4efed9504bc01309ab9c2da7e352cc223569f05478012b5d9ece38fd44d2/mypy-1.19.1.tar.gz", hash = "sha256:19d88bb05303fe63f71dd2c6270daca27cb9401c4ca8255fe50d1d920e0eb9ba", size = 3582404, upload-time = "2025-12-15T05:03:48.42Z" }
wheels = [
@@ -1132,63 +1646,73 @@ wheels = [
[[package]]
name = "mypy"
-version = "1.20.0"
+version = "2.3.1"
source = { registry = "https://pypi.org/simple" }
resolution-markers = [
- "python_full_version >= '3.10'",
+ "python_full_version >= '3.15'",
+ "python_full_version >= '3.10' and python_full_version < '3.15'",
]
dependencies = [
- { name = "librt", marker = "python_full_version >= '3.10' and platform_python_implementation != 'PyPy'" },
- { name = "mypy-extensions", marker = "python_full_version >= '3.10'" },
- { name = "pathspec", version = "1.0.4", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.10'" },
- { name = "tomli", marker = "python_full_version == '3.10.*'" },
- { name = "typing-extensions", version = "4.15.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.10'" },
-]
-sdist = { url = "https://files.pythonhosted.org/packages/f8/5c/b0089fe7fef0a994ae5ee07029ced0526082c6cfaaa4c10d40a10e33b097/mypy-1.20.0.tar.gz", hash = "sha256:eb96c84efcc33f0b5e0e04beacf00129dd963b67226b01c00b9dfc8affb464c3", size = 3815028, upload-time = "2026-03-31T16:55:14.959Z" }
-wheels = [
- { url = "https://files.pythonhosted.org/packages/4d/a2/a965c8c3fcd4fa8b84ba0d46606181b0d0a1d50f274c67877f3e9ed4882c/mypy-1.20.0-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:d99f515f95fd03a90875fdb2cca12ff074aa04490db4d190905851bdf8a549a8", size = 14430138, upload-time = "2026-03-31T16:52:37.843Z" },
- { url = "https://files.pythonhosted.org/packages/53/6e/043477501deeb8eabbab7f1a2f6cac62cfb631806dc1d6862a04a7f5011b/mypy-1.20.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:bd0212976dc57a5bfeede7c219e7cd66568a32c05c9129686dd487c059c1b88a", size = 13311282, upload-time = "2026-03-31T16:55:11.021Z" },
- { url = "https://files.pythonhosted.org/packages/65/aa/bd89b247b83128197a214f29f0632ff3c14f54d4cd70d144d157bd7d7d6e/mypy-1.20.0-cp310-cp310-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:f8426d4d75d68714abc17a4292d922f6ba2cfb984b72c2278c437f6dae797865", size = 13750889, upload-time = "2026-03-31T16:52:02.909Z" },
- { url = "https://files.pythonhosted.org/packages/fa/9d/2860be7355c45247ccc0be1501c91176318964c2a137bd4743f58ce6200e/mypy-1.20.0-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:02cca0761c75b42a20a2757ae58713276605eb29a08dd8a6e092aa347c4115ca", size = 14619788, upload-time = "2026-03-31T16:50:48.928Z" },
- { url = "https://files.pythonhosted.org/packages/75/7f/3ef3e360c91f3de120f205c8ce405e9caf9fc52ef14b65d37073e322c114/mypy-1.20.0-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:b3a49064504be59e59da664c5e149edc1f26c67c4f8e8456f6ba6aba55033018", size = 14918849, upload-time = "2026-03-31T16:51:10.478Z" },
- { url = "https://files.pythonhosted.org/packages/ae/72/af970dfe167ef788df7c5e6109d2ed0229f164432ce828bc9741a4250e64/mypy-1.20.0-cp310-cp310-win_amd64.whl", hash = "sha256:ebea00201737ad4391142808ed16e875add5c17f676e0912b387739f84991e13", size = 10822007, upload-time = "2026-03-31T16:50:25.268Z" },
- { url = "https://files.pythonhosted.org/packages/93/94/ba9065c2ebe5421619aff684b793d953e438a8bfe31a320dd6d1e0706e81/mypy-1.20.0-cp310-cp310-win_arm64.whl", hash = "sha256:e80cf77847d0d3e6e3111b7b25db32a7f8762fd4b9a3a72ce53fe16a2863b281", size = 9756158, upload-time = "2026-03-31T16:48:36.213Z" },
- { url = "https://files.pythonhosted.org/packages/6e/1c/74cb1d9993236910286865679d1c616b136b2eae468493aa939431eda410/mypy-1.20.0-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:4525e7010b1b38334516181c5b81e16180b8e149e6684cee5a727c78186b4e3b", size = 14343972, upload-time = "2026-03-31T16:49:04.887Z" },
- { url = "https://files.pythonhosted.org/packages/d5/0d/01399515eca280386e308cf57901e68d3a52af18691941b773b3380c1df8/mypy-1.20.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:a17c5d0bdcca61ce24a35beb828a2d0d323d3fcf387d7512206888c900193367", size = 13225007, upload-time = "2026-03-31T16:50:08.151Z" },
- { url = "https://files.pythonhosted.org/packages/56/ac/b4ba5094fb2d7fe9d2037cd8d18bbe02bcf68fd22ab9ff013f55e57ba095/mypy-1.20.0-cp311-cp311-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:f75ff57defcd0f1d6e006d721ccdec6c88d4f6a7816eb92f1c4890d979d9ee62", size = 13663752, upload-time = "2026-03-31T16:49:26.064Z" },
- { url = "https://files.pythonhosted.org/packages/db/a7/460678d3cf7da252d2288dad0c602294b6ec22a91932ec368cc11e44bb6e/mypy-1.20.0-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:b503ab55a836136b619b5fc21c8803d810c5b87551af8600b72eecafb0059cb0", size = 14532265, upload-time = "2026-03-31T16:53:55.077Z" },
- { url = "https://files.pythonhosted.org/packages/a3/3e/051cca8166cf0438ae3ea80e0e7c030d7a8ab98dffc93f80a1aa3f23c1a2/mypy-1.20.0-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:1973868d2adbb4584a3835780b27436f06d1dc606af5be09f187aaa25be1070f", size = 14768476, upload-time = "2026-03-31T16:50:34.587Z" },
- { url = "https://files.pythonhosted.org/packages/be/66/8e02ec184f852ed5c4abb805583305db475930854e09964b55e107cdcbc4/mypy-1.20.0-cp311-cp311-win_amd64.whl", hash = "sha256:2fcedb16d456106e545b2bfd7ef9d24e70b38ec252d2a629823a4d07ebcdb69e", size = 10818226, upload-time = "2026-03-31T16:53:15.624Z" },
- { url = "https://files.pythonhosted.org/packages/13/4b/383ad1924b28f41e4879a74151e7a5451123330d45652da359f9183bcd45/mypy-1.20.0-cp311-cp311-win_arm64.whl", hash = "sha256:379edf079ce44ac8d2805bcf9b3dd7340d4f97aad3a5e0ebabbf9d125b84b442", size = 9750091, upload-time = "2026-03-31T16:54:12.162Z" },
- { url = "https://files.pythonhosted.org/packages/be/dd/3afa29b58c2e57c79116ed55d700721c3c3b15955e2b6251dd165d377c0e/mypy-1.20.0-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:002b613ae19f4ac7d18b7e168ffe1cb9013b37c57f7411984abbd3b817b0a214", size = 14509525, upload-time = "2026-03-31T16:55:01.824Z" },
- { url = "https://files.pythonhosted.org/packages/54/eb/227b516ab8cad9f2a13c5e7a98d28cd6aa75e9c83e82776ae6c1c4c046c7/mypy-1.20.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:a9336b5e6712f4adaf5afc3203a99a40b379049104349d747eb3e5a3aa23ac2e", size = 13326469, upload-time = "2026-03-31T16:51:41.23Z" },
- { url = "https://files.pythonhosted.org/packages/57/d4/1ddb799860c1b5ac6117ec307b965f65deeb47044395ff01ab793248a591/mypy-1.20.0-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:f13b3e41bce9d257eded794c0f12878af3129d80aacd8a3ee0dee51f3a978651", size = 13705953, upload-time = "2026-03-31T16:48:55.69Z" },
- { url = "https://files.pythonhosted.org/packages/c5/b7/54a720f565a87b893182a2a393370289ae7149e4715859e10e1c05e49154/mypy-1.20.0-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:9804c3ad27f78e54e58b32e7cb532d128b43dbfb9f3f9f06262b821a0f6bd3f5", size = 14710363, upload-time = "2026-03-31T16:53:26.948Z" },
- { url = "https://files.pythonhosted.org/packages/b2/2a/74810274848d061f8a8ea4ac23aaad43bd3d8c1882457999c2e568341c57/mypy-1.20.0-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:697f102c5c1d526bdd761a69f17c6070f9892eebcb94b1a5963d679288c09e78", size = 14947005, upload-time = "2026-03-31T16:50:17.591Z" },
- { url = "https://files.pythonhosted.org/packages/77/91/21b8ba75f958bcda75690951ce6fa6b7138b03471618959529d74b8544e2/mypy-1.20.0-cp312-cp312-win_amd64.whl", hash = "sha256:0ecd63f75fdd30327e4ad8b5704bd6d91fc6c1b2e029f8ee14705e1207212489", size = 10880616, upload-time = "2026-03-31T16:52:19.986Z" },
- { url = "https://files.pythonhosted.org/packages/8a/15/3d8198ef97c1ca03aea010cce4f1d4f3bc5d9849e8c0140111ca2ead9fdd/mypy-1.20.0-cp312-cp312-win_arm64.whl", hash = "sha256:f194db59657c58593a3c47c6dfd7bad4ef4ac12dbc94d01b3a95521f78177e33", size = 9813091, upload-time = "2026-03-31T16:53:44.385Z" },
- { url = "https://files.pythonhosted.org/packages/d6/a7/f64ea7bd592fa431cb597418b6dec4a47f7d0c36325fec7ac67bc8402b94/mypy-1.20.0-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:b20c8b0fd5877abdf402e79a3af987053de07e6fb208c18df6659f708b535134", size = 14485344, upload-time = "2026-03-31T16:49:16.78Z" },
- { url = "https://files.pythonhosted.org/packages/bb/72/8927d84cfc90c6abea6e96663576e2e417589347eb538749a464c4c218a0/mypy-1.20.0-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:367e5c993ba34d5054d11937d0485ad6dfc60ba760fa326c01090fc256adf15c", size = 13327400, upload-time = "2026-03-31T16:53:08.02Z" },
- { url = "https://files.pythonhosted.org/packages/ab/4a/11ab99f9afa41aa350178d24a7d2da17043228ea10f6456523f64b5a6cf6/mypy-1.20.0-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:f799d9db89fc00446f03281f84a221e50018fc40113a3ba9864b132895619ebe", size = 13706384, upload-time = "2026-03-31T16:52:28.577Z" },
- { url = "https://files.pythonhosted.org/packages/42/79/694ca73979cfb3535ebfe78733844cd5aff2e63304f59bf90585110d975a/mypy-1.20.0-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:555658c611099455b2da507582ea20d2043dfdfe7f5ad0add472b1c6238b433f", size = 14700378, upload-time = "2026-03-31T16:48:45.527Z" },
- { url = "https://files.pythonhosted.org/packages/84/24/a022ccab3a46e3d2cdf2e0e260648633640eb396c7e75d5a42818a8d3971/mypy-1.20.0-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:efe8d70949c3023698c3fca1e94527e7e790a361ab8116f90d11221421cd8726", size = 14932170, upload-time = "2026-03-31T16:49:36.038Z" },
- { url = "https://files.pythonhosted.org/packages/d8/9b/549228d88f574d04117e736f55958bd4908f980f9f5700a07aeb85df005b/mypy-1.20.0-cp313-cp313-win_amd64.whl", hash = "sha256:f49590891d2c2f8a9de15614e32e459a794bcba84693c2394291a2038bbaaa69", size = 10888526, upload-time = "2026-03-31T16:50:59.827Z" },
- { url = "https://files.pythonhosted.org/packages/91/17/15095c0e54a8bc04d22d4ff06b2139d5f142c2e87520b4e39010c4862771/mypy-1.20.0-cp313-cp313-win_arm64.whl", hash = "sha256:76a70bf840495729be47510856b978f1b0ec7d08f257ca38c9d932720bf6b43e", size = 9816456, upload-time = "2026-03-31T16:49:59.537Z" },
- { url = "https://files.pythonhosted.org/packages/4e/0e/6ca4a84cbed9e62384bc0b2974c90395ece5ed672393e553996501625fc5/mypy-1.20.0-cp314-cp314-macosx_10_15_x86_64.whl", hash = "sha256:0f42dfaab7ec1baff3b383ad7af562ab0de573c5f6edb44b2dab016082b89948", size = 14483331, upload-time = "2026-03-31T16:52:57.999Z" },
- { url = "https://files.pythonhosted.org/packages/7d/c5/5fe9d8a729dd9605064691816243ae6c49fde0bd28f6e5e17f6a24203c43/mypy-1.20.0-cp314-cp314-macosx_11_0_arm64.whl", hash = "sha256:31b5dbb55293c1bd27c0fc813a0d2bb5ceef9d65ac5afa2e58f829dab7921fd5", size = 13342047, upload-time = "2026-03-31T16:54:21.555Z" },
- { url = "https://files.pythonhosted.org/packages/4c/33/e18bcfa338ca4e6b2771c85d4c5203e627d0c69d9de5c1a2cf2ba13320ba/mypy-1.20.0-cp314-cp314-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:49d11c6f573a5a08f77fad13faff2139f6d0730ebed2cfa9b3d2702671dd7188", size = 13719585, upload-time = "2026-03-31T16:51:53.89Z" },
- { url = "https://files.pythonhosted.org/packages/6b/8d/93491ff7b79419edc7eabf95cb3b3f7490e2e574b2855c7c7e7394ff933f/mypy-1.20.0-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:7d3243c406773185144527f83be0e0aefc7bf4601b0b2b956665608bf7c98a83", size = 14685075, upload-time = "2026-03-31T16:54:04.464Z" },
- { url = "https://files.pythonhosted.org/packages/b5/9d/d924b38a4923f8d164bf2b4ec98bf13beaf6e10a5348b4b137eadae40a6e/mypy-1.20.0-cp314-cp314-musllinux_1_2_x86_64.whl", hash = "sha256:a79c1eba7ac4209f2d850f0edd0a2f8bba88cbfdfefe6fb76a19e9d4fe5e71a2", size = 14919141, upload-time = "2026-03-31T16:54:51.785Z" },
- { url = "https://files.pythonhosted.org/packages/59/98/1da9977016678c0b99d43afe52ed00bb3c1a0c4c995d3e6acca1a6ebb9b4/mypy-1.20.0-cp314-cp314-win_amd64.whl", hash = "sha256:00e047c74d3ec6e71a2eb88e9ea551a2edb90c21f993aefa9e0d2a898e0bb732", size = 11050925, upload-time = "2026-03-31T16:51:30.758Z" },
- { url = "https://files.pythonhosted.org/packages/5e/e3/ba0b7a3143e49a9c4f5967dde6ea4bf8e0b10ecbbcca69af84027160ee89/mypy-1.20.0-cp314-cp314-win_arm64.whl", hash = "sha256:931a7630bba591593dcf6e97224a21ff80fb357e7982628d25e3c618e7f598ef", size = 10001089, upload-time = "2026-03-31T16:49:43.632Z" },
- { url = "https://files.pythonhosted.org/packages/12/28/e617e67b3be9d213cda7277913269c874eb26472489f95d09d89765ce2d8/mypy-1.20.0-cp314-cp314t-macosx_10_15_x86_64.whl", hash = "sha256:26c8b52627b6552f47ff11adb4e1509605f094e29815323e487fc0053ebe93d1", size = 15534710, upload-time = "2026-03-31T16:52:12.506Z" },
- { url = "https://files.pythonhosted.org/packages/6e/0c/3b5f2d3e45dc7169b811adce8451679d9430399d03b168f9b0489f43adaa/mypy-1.20.0-cp314-cp314t-macosx_11_0_arm64.whl", hash = "sha256:39362cdb4ba5f916e7976fccecaab1ba3a83e35f60fa68b64e9a70e221bb2436", size = 14393013, upload-time = "2026-03-31T16:54:41.186Z" },
- { url = "https://files.pythonhosted.org/packages/a3/49/edc8b0aa145cc09c1c74f7ce2858eead9329931dcbbb26e2ad40906daa4e/mypy-1.20.0-cp314-cp314t-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:34506397dbf40c15dc567635d18a21d33827e9ab29014fb83d292a8f4f8953b6", size = 15047240, upload-time = "2026-03-31T16:54:31.955Z" },
- { url = "https://files.pythonhosted.org/packages/42/37/a946bb416e37a57fa752b3100fd5ede0e28df94f92366d1716555d47c454/mypy-1.20.0-cp314-cp314t-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:555493c44a4f5a1b58d611a43333e71a9981c6dbe26270377b6f8174126a0526", size = 15858565, upload-time = "2026-03-31T16:53:36.997Z" },
- { url = "https://files.pythonhosted.org/packages/2f/99/7690b5b5b552db1bd4ff362e4c0eb3107b98d680835e65823fbe888c8b78/mypy-1.20.0-cp314-cp314t-musllinux_1_2_x86_64.whl", hash = "sha256:2721f0ce49cb74a38f00c50da67cb7d36317b5eda38877a49614dc018e91c787", size = 16087874, upload-time = "2026-03-31T16:52:48.313Z" },
- { url = "https://files.pythonhosted.org/packages/aa/76/53e893a498138066acd28192b77495c9357e5a58cc4be753182846b43315/mypy-1.20.0-cp314-cp314t-win_amd64.whl", hash = "sha256:47781555a7aa5fedcc2d16bcd72e0dc83eb272c10dd657f9fb3f9cc08e2e6abb", size = 12572380, upload-time = "2026-03-31T16:49:52.454Z" },
- { url = "https://files.pythonhosted.org/packages/76/9c/6dbdae21f01b7aacddc2c0bbf3c5557aa547827fdf271770fe1e521e7093/mypy-1.20.0-cp314-cp314t-win_arm64.whl", hash = "sha256:c70380fe5d64010f79fb863b9081c7004dd65225d2277333c219d93a10dad4dd", size = 10381174, upload-time = "2026-03-31T16:51:20.179Z" },
- { url = "https://files.pythonhosted.org/packages/21/66/4d734961ce167f0fd8380769b3b7c06dbdd6ff54c2190f3f2ecd22528158/mypy-1.20.0-py3-none-any.whl", hash = "sha256:a6e0641147cbfa7e4e94efdb95c2dab1aff8cfc159ded13e07f308ddccc8c48e", size = 2636365, upload-time = "2026-03-31T16:51:44.911Z" },
+ { name = "ast-serialize" },
+ { name = "librt", marker = "platform_python_implementation != 'PyPy'" },
+ { name = "mypy-extensions" },
+ { name = "pathspec" },
+ { name = "tomli", marker = "python_full_version < '3.11'" },
+ { name = "typing-extensions", version = "4.16.0", source = { registry = "https://pypi.org/simple" } },
+]
+sdist = { url = "https://files.pythonhosted.org/packages/82/6a/878cc1097d4035f82bd516658d0c528d2a9955bc7b363afcbd0b07fea11b/mypy-2.3.1.tar.gz", hash = "sha256:47c1b1207258513a9d93495f69c8be9de73916186f0e52703e8c461b7a623419", size = 3992554, upload-time = "2026-08-15T03:03:38.549Z" }
+wheels = [
+ { url = "https://files.pythonhosted.org/packages/eb/b9/de8f67e12d721cdcc8ba6cfc440b989a4ba4dfabe4402ae94dfdd8bb30a4/mypy-2.3.1-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:57a936373fc690c43a8cd7e7e12a35148e4ec5aa7698ad7fc0a9f918bdc5be41", size = 14015541, upload-time = "2026-08-15T03:01:53.104Z" },
+ { url = "https://files.pythonhosted.org/packages/f1/8a/9e746ab012c67ed8ea3232a613716c306ee8c0b5682c80d8103b4f04568e/mypy-2.3.1-cp310-cp310-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:d00d769056bde2f4e69c175071eba45cfb44fa1ed92bdfbfe64a93e0543b0cf0", size = 14248142, upload-time = "2026-08-15T03:02:43.201Z" },
+ { url = "https://files.pythonhosted.org/packages/f7/5c/c99ff2d8d0e2c53393e32dfe22d9aa43a5d959d30db46c786dafd24527d3/mypy-2.3.1-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:2166b29228835e1f88ff411e96639e6ca3c7fdde84b62ec211f70f86b4051167", size = 15193309, upload-time = "2026-08-15T03:01:28.714Z" },
+ { url = "https://files.pythonhosted.org/packages/64/39/124638f745243faae1ff4b37d5426fe41c0f0454535edc82fe8102b56a3c/mypy-2.3.1-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:83d36c2924df7426333abe7faf4724a7e1aab0d9fd41625e81b4683034b80c13", size = 15498246, upload-time = "2026-08-15T03:02:46.29Z" },
+ { url = "https://files.pythonhosted.org/packages/b2/83/31c0781e243836505c0fb5f4e865487d6df1023e4ad959f4ebd4b84a0226/mypy-2.3.1-cp310-cp310-win_amd64.whl", hash = "sha256:f12fdb70459d0060dea40b29e52163a961b156106d68d57882a6a9f648983a53", size = 11155028, upload-time = "2026-08-15T03:01:39.08Z" },
+ { url = "https://files.pythonhosted.org/packages/a0/ab/bc2eb0129e72d7d7d93d5e981a78084a9abefda7efa732a7e02f97d6e27d/mypy-2.3.1-cp310-cp310-win_arm64.whl", hash = "sha256:e099200a1b1b1223a4951f0a90cbff1b8c91b250ba599dab1f7217a628144d90", size = 10151438, upload-time = "2026-08-15T03:02:19.04Z" },
+ { url = "https://files.pythonhosted.org/packages/a4/be/c624d4241484f37dc62839e177ab607a9b8b3e96f0866544ca99e8e41d51/mypy-2.3.1-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:94f04929f1c44c35fb0061e912087edaf504acede963a4a7d00680bd089d8531", size = 13936739, upload-time = "2026-08-15T03:03:26.475Z" },
+ { url = "https://files.pythonhosted.org/packages/53/84/e3cf72f90dce5960871c82551c8fba6da05fc1018f79be41c047bd126bdd/mypy-2.3.1-cp311-cp311-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:f5d716048611e85ca9eefb2e1baa5d73ede389b5820ded260ea27c757d667af8", size = 14166460, upload-time = "2026-08-15T03:01:50.565Z" },
+ { url = "https://files.pythonhosted.org/packages/4a/ff/6b97d58aa0f79a5ab9b472db1f6d6df1b11a51d74d0c08ab3760d3a613ba/mypy-2.3.1-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:b091a455111214cb5c9d54a57b9618e9a49f9fe2a42e4e1ac86e9d104ed96ce8", size = 15100476, upload-time = "2026-08-15T03:03:12.079Z" },
+ { url = "https://files.pythonhosted.org/packages/da/f0/cbb4b7d2ae3ac635f6b4f2d9b04070b8a92edf50da599d3b39e5ed109001/mypy-2.3.1-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:df12e20c9efd614738c71b390007ecd0181125afc4ccafca04d78a1d2eed2c01", size = 15347826, upload-time = "2026-08-15T03:03:02.856Z" },
+ { url = "https://files.pythonhosted.org/packages/5f/10/91dcdc6f8d43fc08e6a06ab1f9732f3abaaf835ac1b2e67b9dff56910855/mypy-2.3.1-cp311-cp311-win_amd64.whl", hash = "sha256:52eaf3a155f35cf80b40220288c861eb45f14a2340c1f6cbfbdb0feff32879d1", size = 11142615, upload-time = "2026-08-15T03:03:36.316Z" },
+ { url = "https://files.pythonhosted.org/packages/3d/8a/28d54535bf4b9aa43b2d8918c2ef660378b9f66b23d78dcee052744ae622/mypy-2.3.1-cp311-cp311-win_arm64.whl", hash = "sha256:9b4eacbee8a69836c06eff6d0dd4e134a07c2b047755b30c08625fe214f322c6", size = 10141145, upload-time = "2026-08-15T03:03:07.406Z" },
+ { url = "https://files.pythonhosted.org/packages/85/da/d6effc4f808a842d91edc22535dc9e799d2ff6e91449168b7f47a0771f54/mypy-2.3.1-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:a32bbbb940af990d3be0b8af321c7b6815bb1b3b48142fe7459b9cc5f58959ff", size = 14047547, upload-time = "2026-08-15T03:02:57.707Z" },
+ { url = "https://files.pythonhosted.org/packages/e4/e6/478229701dab76f26485fc8ff5d6f241f393da22447400bbc56f6946aebe/mypy-2.3.1-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:ff715e45b2231a8e85de1d163d1b42791e4d7aab8f5145f85fee1b710b735aff", size = 14216515, upload-time = "2026-08-15T03:01:26.496Z" },
+ { url = "https://files.pythonhosted.org/packages/8d/fe/7c42327a3b21e84681f691982cbfe43f334a3685f3b683b72c376476c4fa/mypy-2.3.1-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:858fc57d3d91fa728e33e7ad71def60fc6272694607b306cd3292db53ae39080", size = 15307789, upload-time = "2026-08-15T03:03:31.62Z" },
+ { url = "https://files.pythonhosted.org/packages/59/f4/7e597edbe01b5a56fa958ce541302dcaabfed979966f1dffedbea0ea0fc2/mypy-2.3.1-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:851833db876e7b650f93719c74b7879a08e338979c96054fdfc3bfd90a486355", size = 15548831, upload-time = "2026-08-15T03:03:15.55Z" },
+ { url = "https://files.pythonhosted.org/packages/a3/52/cb31e084bc0314a1e384bdd677a4b80e55af04ccac077545e2238b9d320a/mypy-2.3.1-cp312-cp312-win_amd64.whl", hash = "sha256:4c5095a327483591c94e0c8d3ef9e50d4ab1369b541eae007c1f23bc2a41f6bb", size = 11226359, upload-time = "2026-08-15T03:03:29.002Z" },
+ { url = "https://files.pythonhosted.org/packages/7a/47/88fcf6217b43fa2da81a8c2611370af18141536a4f0294bbf98b457d456d/mypy-2.3.1-cp312-cp312-win_arm64.whl", hash = "sha256:bbfe022634a2a195406bd469e888d2eaf193b02ba7e607391cd7640374aaae3b", size = 10214707, upload-time = "2026-08-15T03:02:48.807Z" },
+ { url = "https://files.pythonhosted.org/packages/de/cf/862010ee800ca9c2bd0c4c0dacf0f092e5411824a09b8f97ad4be8fe250e/mypy-2.3.1-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:114dff494000f18bd10d5d95d84b8567b26da60279ecbe838131841df20e635d", size = 13964542, upload-time = "2026-08-15T03:02:21.43Z" },
+ { url = "https://files.pythonhosted.org/packages/75/5a/3f3a2107b41e3e92e617e25daaee121413b91e9784bea733131ed4fecc5d/mypy-2.3.1-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:c8637731bb5eee3671eb2c3200827aa3564ed8a9309ecee4d1afe77e6d031bdb", size = 14168922, upload-time = "2026-08-15T03:03:00.351Z" },
+ { url = "https://files.pythonhosted.org/packages/8b/41/04dc4fe7e63d7820fa4eff272e95157d30cbea921388f3ab3fe77794cd0b/mypy-2.3.1-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:1c80fbc405ed8020f5ff3802dc18cf060197bcdd3fbdd6a26ef2fd34dfdd5226", size = 15244791, upload-time = "2026-08-15T03:02:31.089Z" },
+ { url = "https://files.pythonhosted.org/packages/96/fc/c3053b26b9054949285aa868cb6af8c10e7591541cacd79c5dcc06a1fcf9/mypy-2.3.1-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:84081f538ce27375045c02e3d7f81bd11d853400621ae245d87ce7b6c420ec74", size = 15501627, upload-time = "2026-08-15T03:03:34.128Z" },
+ { url = "https://files.pythonhosted.org/packages/70/4e/d77daab008bbc4e5001374d7928f4a260d28f0e6747af444fc4763f7a310/mypy-2.3.1-cp313-cp313-win_amd64.whl", hash = "sha256:e9144ac16fde007096f9563eb2041b4433c2d705c4218edeb79e7e9d01035ee6", size = 11243961, upload-time = "2026-08-15T03:02:11.952Z" },
+ { url = "https://files.pythonhosted.org/packages/f0/f8/7eb68c136e4abd30569fe31ef2bfcb7eceae9952cab80017c04cd09f5d0c/mypy-2.3.1-cp313-cp313-win_arm64.whl", hash = "sha256:77ad9529e67dca28e511f5cd5671436584ce91f6d3bac159a353158187b986ac", size = 10213219, upload-time = "2026-08-15T03:02:26.361Z" },
+ { url = "https://files.pythonhosted.org/packages/be/c4/42a49d44aeff804edf1b19acce0b49e8bd1a9c57dee9605dd8d980aa43d7/mypy-2.3.1-cp314-cp314-macosx_11_0_arm64.whl", hash = "sha256:192abaedf75da1bc0b1cef104927e70ec49c1ef0031cc4825c7ee10a438ed24d", size = 13986778, upload-time = "2026-08-15T03:01:33.69Z" },
+ { url = "https://files.pythonhosted.org/packages/45/13/9331fd2dfed7194d66c5304072894a8be3e51e9deda6863c1eceaa35a43d/mypy-2.3.1-cp314-cp314-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:bf678dffd16efcda2c15cbd30e9ecc0081388e29ea23687a88e686ed92638dc3", size = 14188467, upload-time = "2026-08-15T03:02:40.554Z" },
+ { url = "https://files.pythonhosted.org/packages/78/f7/f4a34edab45667c5465855dc585a20e87978ffa8aee711445b7239d120c6/mypy-2.3.1-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:8e036f06b41630f4c8a1d48f9ac6aa26acc65f8be089973f5519da643318f03f", size = 15225538, upload-time = "2026-08-15T03:03:09.761Z" },
+ { url = "https://files.pythonhosted.org/packages/40/05/534b3590757bd05794f73e07f6666c2a77b8597ffed795c94ce570096aa0/mypy-2.3.1-cp314-cp314-musllinux_1_2_x86_64.whl", hash = "sha256:71af9c8a894e862b58e92abb08e53b05a384a1e5e5d6dc7cda59126211a53d82", size = 15480805, upload-time = "2026-08-15T03:01:41.134Z" },
+ { url = "https://files.pythonhosted.org/packages/55/da/bdfba852e2562f599624af5bb7d29e36b0b4f526f2b8bac85efe0dd1803d/mypy-2.3.1-cp314-cp314-pyemscripten_2026_0_wasm32.whl", hash = "sha256:3c80cd23d85368bdd9f37d5231dfd97d35bcbf5bf41af96ef3a9b078ad1957f9", size = 7761712, upload-time = "2026-08-15T03:02:36.008Z" },
+ { url = "https://files.pythonhosted.org/packages/98/31/60fc64a74cdba4f2a5d642d32317993e479163e1ac7d91b695e5d15e2264/mypy-2.3.1-cp314-cp314-win_amd64.whl", hash = "sha256:4956f34d145e145562a0a0bf367f642bbc85c04ec2baf47ae015947c3169a85d", size = 11423968, upload-time = "2026-08-15T03:02:06.931Z" },
+ { url = "https://files.pythonhosted.org/packages/a9/23/eb5950b24cd26ba3b78f87707a275568d633c77dae8e61c9661be6055ca6/mypy-2.3.1-cp314-cp314-win_arm64.whl", hash = "sha256:cfb12e360242d23d91f5e978d94f58ea66acf5804c4fb6f2f794a20d4cb1b595", size = 10399323, upload-time = "2026-08-15T03:02:33.671Z" },
+ { url = "https://files.pythonhosted.org/packages/82/c7/f80f4e46c0b9a00eb5f78a79d49dda8bdf56a5230f7257fb33e76be04da7/mypy-2.3.1-cp314-cp314t-macosx_11_0_arm64.whl", hash = "sha256:e5f1c50bb05b64e2026b52867e8d21106f01313c744a2c4ecc34c90d12e8d6e2", size = 15121308, upload-time = "2026-08-15T03:01:46.053Z" },
+ { url = "https://files.pythonhosted.org/packages/5d/74/9b04f17c7074cc5188f02fb63a2ca1d43fedf479e84fe3091c39061a1d7f/mypy-2.3.1-cp314-cp314t-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:667196b352f4cf304ded4c10f90cfc179263a1acfb3cdcfa984bdfd340d498bc", size = 15536590, upload-time = "2026-08-15T03:01:35.941Z" },
+ { url = "https://files.pythonhosted.org/packages/26/04/c837ef6208e567774e2ed1f863f8ba6ec4817b1b6dd426315e5d559b6ec9/mypy-2.3.1-cp314-cp314t-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:b9c53e395c12cad2c6d4b67d5da7c6057638a132d85c08b73646b18f802a0045", size = 16791074, upload-time = "2026-08-15T03:01:31.073Z" },
+ { url = "https://files.pythonhosted.org/packages/37/68/48730230afa45192d5bd429a6a2ff24a6f8dedda90fdf2b221792b54518f/mypy-2.3.1-cp314-cp314t-musllinux_1_2_x86_64.whl", hash = "sha256:18162b128c3f9c703cd35f5537446900b0d21a2549aa7a95d21380d2ef643fb0", size = 17069183, upload-time = "2026-08-15T03:02:28.566Z" },
+ { url = "https://files.pythonhosted.org/packages/1c/ea/ca23fc9c20eeda09a15c9cbcf50015d0e73f409f6ead059e42aa69a608ff/mypy-2.3.1-cp314-cp314t-win_amd64.whl", hash = "sha256:30c0477d4aab7b7f39c8397dc877f2c96b9fe5588ec379f372c56eb63d599f63", size = 12154679, upload-time = "2026-08-15T03:02:04.809Z" },
+ { url = "https://files.pythonhosted.org/packages/3b/67/8d982126034990869466f73b8db80dcb2234a7ac39b4dad093e047a79835/mypy-2.3.1-cp314-cp314t-win_arm64.whl", hash = "sha256:6941ab3619377bc3f32ca02876b07d27f216f5201604b664d3937ea0fdd23bb4", size = 10969159, upload-time = "2026-08-15T03:02:38.152Z" },
+ { url = "https://files.pythonhosted.org/packages/ee/f7/41e7f2d8117fbc7a7587286162ffe2f688984b69c46ed63cf5f2e4fc3bae/mypy-2.3.1-cp315-cp315-macosx_11_0_arm64.whl", hash = "sha256:6f041a6de52c9217ca125e78ba0a335cb7fd98a1c0580978e49ab2b126f70b57", size = 13990694, upload-time = "2026-08-15T03:03:21.919Z" },
+ { url = "https://files.pythonhosted.org/packages/06/85/8f665811a0c8f3bf6fa1d9acd665ec2d97a2bcc453ae68dcd92340941cd6/mypy-2.3.1-cp315-cp315-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:5159ae60f5dbc3a498af5ba8365505808ac8031bc63f9e00304ad545d40bdd9b", size = 14203518, upload-time = "2026-08-15T03:01:48.455Z" },
+ { url = "https://files.pythonhosted.org/packages/2d/82/91b866c8546b120bff83b73a439d90d2d63ef3aff113599e6b8e4d566848/mypy-2.3.1-cp315-cp315-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:47a8a7a0a7f6f6e63995c0ac36fa0c07b127413fdc81f0439b7f3dccafd33561", size = 15220224, upload-time = "2026-08-15T03:01:23.577Z" },
+ { url = "https://files.pythonhosted.org/packages/c8/78/c226c99208ee40de7c768369fa533f933afa003dfdc606ff021450724e91/mypy-2.3.1-cp315-cp315-musllinux_1_2_x86_64.whl", hash = "sha256:2329c0501293d4e1f33bc15d04d6304d65a1cdda967ee93a05c1e681a3923133", size = 15501512, upload-time = "2026-08-15T03:02:09.453Z" },
+ { url = "https://files.pythonhosted.org/packages/a9/e7/7cfb3f106c393979f4cc37ad6c0586044d50401e3c35b0c003e4f3ba6bc9/mypy-2.3.1-cp315-cp315-pyemscripten_2026_5_wasm32.whl", hash = "sha256:bb26deed807bdb0457cf3e3f1cd7c4a1cf9d66864eaf1b4a61e06805d4c6b1f9", size = 7761913, upload-time = "2026-08-15T03:01:55.65Z" },
+ { url = "https://files.pythonhosted.org/packages/99/3c/52affefa273b97939a1f474ae4a349c8718635c15b941112dfab4291b0c1/mypy-2.3.1-cp315-cp315-win_amd64.whl", hash = "sha256:375d7013876a8233b2d05be185bfa09f689696cd999ce8b1cfe6acac5c80e8a3", size = 11422533, upload-time = "2026-08-15T03:03:24.101Z" },
+ { url = "https://files.pythonhosted.org/packages/2a/b7/75643e70c72a5b346d8a9b1543c967ea8824df2ee3fb7ccba652c272b7bb/mypy-2.3.1-cp315-cp315-win_arm64.whl", hash = "sha256:586b3612214cceabb3c0f588c97e7d1e535393f06a60e912e994f6b3ace97523", size = 10397931, upload-time = "2026-08-15T03:02:55.265Z" },
+ { url = "https://files.pythonhosted.org/packages/10/ce/53be21f2d4adfcd26f63f1184a13ed797015ab463853f117e2e11e4d726f/mypy-2.3.1-cp315-cp315t-macosx_11_0_arm64.whl", hash = "sha256:ef0c6335cda9d807f8193d8ff6204a72bc909fa9882aacbca14f43cdb7188306", size = 15118669, upload-time = "2026-08-15T03:02:51.479Z" },
+ { url = "https://files.pythonhosted.org/packages/62/43/20de757cd42989d291a17fad607742c4c74e875ce5cea00e5a5225020ac1/mypy-2.3.1-cp315-cp315t-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:e598c8c66401d26b150872154a286e6d484cf2789c3bb28a7556806298423021", size = 15545627, upload-time = "2026-08-15T03:03:05.132Z" },
+ { url = "https://files.pythonhosted.org/packages/7e/fc/092bdf77ad280eaf501422f0f3b966012b528076cc13e41a774861c907d1/mypy-2.3.1-cp315-cp315t-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:eda22fd4efa9dcd39331d1dede9b5b8b8a7fd69af07592e778433da98610d29e", size = 16764157, upload-time = "2026-08-15T03:02:23.958Z" },
+ { url = "https://files.pythonhosted.org/packages/94/5c/c94c4d62d909b07f552d0d9356d7acc943825558e602a64822ffa2231536/mypy-2.3.1-cp315-cp315t-musllinux_1_2_x86_64.whl", hash = "sha256:2a0ba2e57847849fb0d1fcdabb32786d223095ed8bc121dfe322bcdb3d9c46bc", size = 17073258, upload-time = "2026-08-15T03:02:14.573Z" },
+ { url = "https://files.pythonhosted.org/packages/c0/f7/511a88b89e478053c02d22039bb8f3ce4183efe8fd7a4f0a5910a8bb0a32/mypy-2.3.1-cp315-cp315t-win_amd64.whl", hash = "sha256:3f7e865dd51f235f60a2dbcd8728a1c095f5ca28f095d48a725b84cd935735c4", size = 12135505, upload-time = "2026-08-15T03:02:16.714Z" },
+ { url = "https://files.pythonhosted.org/packages/71/bf/02573b56964ecb0f7c644f915f53c325ae15c3faec521c5adf11599a32df/mypy-2.3.1-cp315-cp315t-win_arm64.whl", hash = "sha256:8ad80807dc3ab8ea978b1b2b6e4a657194ace1d4ef03e0e731aff1abd517da29", size = 10962647, upload-time = "2026-08-15T03:01:43.712Z" },
+ { url = "https://files.pythonhosted.org/packages/8e/41/9675c7a1e78edecfba0b79e587a52594c56e189368261dc7b3a7fffb9527/mypy-2.3.1-py3-none-any.whl", hash = "sha256:6ed5c7e3419083268e5c9258bd1c1ef91af44a9e89374dbcaf37b775716e72eb", size = 2754338, upload-time = "2026-08-15T03:02:53.4Z" },
]
[[package]]
@@ -1202,19 +1726,18 @@ wheels = [
[[package]]
name = "mypy-protobuf"
-version = "5.0.0"
+version = "5.1.0"
source = { registry = "https://pypi.org/simple" }
dependencies = [
{ name = "protobuf", version = "5.29.6", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.9'" },
- { name = "protobuf", version = "6.33.6", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version == '3.9.*'" },
- { name = "protobuf", version = "7.35.1", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.10'" },
+ { name = "protobuf", version = "6.33.6", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.9'" },
{ name = "types-protobuf", version = "5.29.1.20241207", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.9'" },
{ name = "types-protobuf", version = "6.32.1.20251210", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version == '3.9.*'" },
- { name = "types-protobuf", version = "6.32.1.20260221", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.10'" },
+ { name = "types-protobuf", version = "7.35.1.20260822", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.10'" },
]
-sdist = { url = "https://files.pythonhosted.org/packages/d5/48/658827446368bca30a94e545598065587ece9cd09b678d7d2895c37a59d2/mypy_protobuf-5.0.0.tar.gz", hash = "sha256:6fdd1cfdbb4419c713291d800a332d4bba6510dbd1341ed95e0bcc82fcadb6b5", size = 37309, upload-time = "2026-01-13T17:10:12.616Z" }
+sdist = { url = "https://files.pythonhosted.org/packages/87/07/7ffb897eee5c01e816e037f51a6720bf1a0a8c17cca1a2382ae554f43044/mypy_protobuf-5.1.0.tar.gz", hash = "sha256:8493758852a9cdc075a11dbe96c6e37ea2feba5fd5f33ef7442b9a275322a94c", size = 37529, upload-time = "2026-04-28T15:56:40.356Z" }
wheels = [
- { url = "https://files.pythonhosted.org/packages/b4/b1/ab1e7a49930a8c1d1f7a570bbd4ec7d552ef035acc7aa4b97906e17a34a9/mypy_protobuf-5.0.0-py3-none-any.whl", hash = "sha256:3a7dd753ef3e3b8783a824eb51f07983f62812f9ec066e4fbb1b22d6c5dc36d0", size = 26008, upload-time = "2026-01-13T17:10:11.053Z" },
+ { url = "https://files.pythonhosted.org/packages/e8/ec/5ffcf8f5f53757e01afdece10c664e694ac60d2f17c2036811b85b842a5b/mypy_protobuf-5.1.0-py3-none-any.whl", hash = "sha256:d7031f563f806b8bcd448a3e86768bf0994c0af5b0017b344a4fbbba4191f43c", size = 26313, upload-time = "2026-04-28T15:56:39.096Z" },
]
[[package]]
@@ -1228,57 +1751,46 @@ wheels = [
[[package]]
name = "packaging"
-version = "26.0"
+version = "26.2"
source = { registry = "https://pypi.org/simple" }
-sdist = { url = "https://files.pythonhosted.org/packages/65/ee/299d360cdc32edc7d2cf530f3accf79c4fca01e96ffc950d8a52213bd8e4/packaging-26.0.tar.gz", hash = "sha256:00243ae351a257117b6a241061796684b084ed1c516a08c48a3f7e147a9d80b4", size = 143416, upload-time = "2026-01-21T20:50:39.064Z" }
-wheels = [
- { url = "https://files.pythonhosted.org/packages/b7/b9/c538f279a4e237a006a2c98387d081e9eb060d203d8ed34467cc0f0b9b53/packaging-26.0-py3-none-any.whl", hash = "sha256:b36f1fef9334a5588b4166f8bcd26a14e521f2b55e6b9de3aaa80d3ff7a37529", size = 74366, upload-time = "2026-01-21T20:50:37.788Z" },
+resolution-markers = [
+ "python_full_version < '3.9'",
]
-
-[[package]]
-name = "paginate"
-version = "0.5.7"
-source = { registry = "https://pypi.org/simple" }
-sdist = { url = "https://files.pythonhosted.org/packages/ec/46/68dde5b6bc00c1296ec6466ab27dddede6aec9af1b99090e1107091b3b84/paginate-0.5.7.tar.gz", hash = "sha256:22bd083ab41e1a8b4f3690544afb2c60c25e5c9a63a30fa2f483f6c60c8e5945", size = 19252, upload-time = "2024-08-25T14:17:24.139Z" }
+sdist = { url = "https://files.pythonhosted.org/packages/d7/f1/e7a6dd94a8d4a5626c03e4e99c87f241ba9e350cd9e6d75123f992427270/packaging-26.2.tar.gz", hash = "sha256:ff452ff5a3e828ce110190feff1178bb1f2ea2281fa2075aadb987c2fb221661", size = 228134, upload-time = "2026-04-24T20:15:23.917Z" }
wheels = [
- { url = "https://files.pythonhosted.org/packages/90/96/04b8e52da071d28f5e21a805b19cb9390aa17a47462ac87f5e2696b9566d/paginate-0.5.7-py2.py3-none-any.whl", hash = "sha256:b885e2af73abcf01d9559fd5216b57ef722f8c42affbb63942377668e35c7591", size = 13746, upload-time = "2024-08-25T14:17:22.55Z" },
+ { url = "https://files.pythonhosted.org/packages/df/b2/87e62e8c3e2f4b32e5fe99e0b86d576da1312593b39f47d8ceef365e95ed/packaging-26.2-py3-none-any.whl", hash = "sha256:5fc45236b9446107ff2415ce77c807cee2862cb6fac22b8a73826d0693b0980e", size = 100195, upload-time = "2026-04-24T20:15:22.081Z" },
]
[[package]]
-name = "pathspec"
-version = "0.12.1"
+name = "packaging"
+version = "26.3"
source = { registry = "https://pypi.org/simple" }
resolution-markers = [
- "python_full_version < '3.9'",
+ "python_full_version >= '3.15'",
+ "python_full_version >= '3.10' and python_full_version < '3.15'",
+ "python_full_version == '3.9.*'",
]
-sdist = { url = "https://files.pythonhosted.org/packages/ca/bc/f35b8446f4531a7cb215605d100cd88b7ac6f44ab3fc94870c120ab3adbf/pathspec-0.12.1.tar.gz", hash = "sha256:a482d51503a1ab33b1c67a6c3813a26953dbdc71c31dacaef9a838c4e29f5712", size = 51043, upload-time = "2023-12-10T22:30:45Z" }
+sdist = { url = "https://files.pythonhosted.org/packages/7d/fa/3944b40b07da9ce895c0e6303a5ab7d53da063554f534556b134a54d6093/packaging-26.3.tar.gz", hash = "sha256:94edc256424af38762eb31306eed28beb9f0efc50a8837492c9d6fd6004aed79", size = 313412, upload-time = "2026-08-04T18:15:28.737Z" }
wheels = [
- { url = "https://files.pythonhosted.org/packages/cc/20/ff623b09d963f88bfde16306a54e12ee5ea43e9b597108672ff3a408aad6/pathspec-0.12.1-py3-none-any.whl", hash = "sha256:a0d503e138a4c123b27490a4f7beda6a01c6f288df0e4a8b79c7eb0dc7b4cc08", size = 31191, upload-time = "2023-12-10T22:30:43.14Z" },
+ { url = "https://files.pythonhosted.org/packages/63/34/ba1c580383c9eada3711951fef0795c80b829a078d72188184bcab9dd527/packaging-26.3-py3-none-any.whl", hash = "sha256:d7193f7c8e4e93f444fde0262bf90af30e16fa0ad0ad44cb553c87339b23cd1c", size = 129956, upload-time = "2026-08-04T18:15:27.159Z" },
]
[[package]]
-name = "pathspec"
-version = "1.0.4"
+name = "paginate"
+version = "0.5.7"
source = { registry = "https://pypi.org/simple" }
-resolution-markers = [
- "python_full_version >= '3.10'",
- "python_full_version == '3.9.*'",
-]
-sdist = { url = "https://files.pythonhosted.org/packages/fa/36/e27608899f9b8d4dff0617b2d9ab17ca5608956ca44461ac14ac48b44015/pathspec-1.0.4.tar.gz", hash = "sha256:0210e2ae8a21a9137c0d470578cb0e595af87edaa6ebf12ff176f14a02e0e645", size = 131200, upload-time = "2026-01-27T03:59:46.938Z" }
+sdist = { url = "https://files.pythonhosted.org/packages/ec/46/68dde5b6bc00c1296ec6466ab27dddede6aec9af1b99090e1107091b3b84/paginate-0.5.7.tar.gz", hash = "sha256:22bd083ab41e1a8b4f3690544afb2c60c25e5c9a63a30fa2f483f6c60c8e5945", size = 19252, upload-time = "2024-08-25T14:17:24.139Z" }
wheels = [
- { url = "https://files.pythonhosted.org/packages/ef/3c/2c197d226f9ea224a9ab8d197933f9da0ae0aac5b6e0f884e2b8d9c8e9f7/pathspec-1.0.4-py3-none-any.whl", hash = "sha256:fb6ae2fd4e7c921a165808a552060e722767cfa526f99ca5156ed2ce45a5c723", size = 55206, upload-time = "2026-01-27T03:59:45.137Z" },
+ { url = "https://files.pythonhosted.org/packages/90/96/04b8e52da071d28f5e21a805b19cb9390aa17a47462ac87f5e2696b9566d/paginate-0.5.7-py2.py3-none-any.whl", hash = "sha256:b885e2af73abcf01d9559fd5216b57ef722f8c42affbb63942377668e35c7591", size = 13746, upload-time = "2024-08-25T14:17:22.55Z" },
]
[[package]]
-name = "platformdirs"
-version = "4.3.6"
+name = "pathspec"
+version = "1.1.1"
source = { registry = "https://pypi.org/simple" }
-resolution-markers = [
- "python_full_version < '3.9'",
-]
-sdist = { url = "https://files.pythonhosted.org/packages/13/fc/128cc9cb8f03208bdbf93d3aa862e16d376844a14f9a0ce5cf4507372de4/platformdirs-4.3.6.tar.gz", hash = "sha256:357fb2acbc885b0419afd3ce3ed34564c13c9b95c89360cd9563f73aa5e2b907", size = 21302, upload-time = "2024-09-17T19:06:50.688Z" }
+sdist = { url = "https://files.pythonhosted.org/packages/5a/82/42f767fc1c1143d6fd36efb827202a2d997a375e160a71eb2888a925aac1/pathspec-1.1.1.tar.gz", hash = "sha256:17db5ecd524104a120e173814c90367a96a98d07c45b2e10c2f3919fff91bf5a", size = 135180, upload-time = "2026-04-27T01:46:08.907Z" }
wheels = [
- { url = "https://files.pythonhosted.org/packages/3c/a6/bc1012356d8ece4d66dd75c4b9fc6c1f6650ddd5991e421177d9f8f671be/platformdirs-4.3.6-py3-none-any.whl", hash = "sha256:73e575e1408ab8103900836b97580d5307456908a03e92031bab39e4554cc3fb", size = 18439, upload-time = "2024-09-17T19:06:49.212Z" },
+ { url = "https://files.pythonhosted.org/packages/f1/d9/7fb5aa316bc299258e68c73ba3bddbc499654a07f151cba08f6153988714/pathspec-1.1.1-py3-none-any.whl", hash = "sha256:a00ce642f577bf7f473932318056212bc4f8bfdf53128c78bbd5af0b9b20b189", size = 57328, upload-time = "2026-04-27T01:46:07.06Z" },
]
[[package]]
@@ -1295,14 +1807,15 @@ wheels = [
[[package]]
name = "platformdirs"
-version = "4.9.4"
+version = "4.11.3"
source = { registry = "https://pypi.org/simple" }
resolution-markers = [
- "python_full_version >= '3.10'",
+ "python_full_version >= '3.15'",
+ "python_full_version >= '3.10' and python_full_version < '3.15'",
]
-sdist = { url = "https://files.pythonhosted.org/packages/19/56/8d4c30c8a1d07013911a8fdbd8f89440ef9f08d07a1b50ab8ca8be5a20f9/platformdirs-4.9.4.tar.gz", hash = "sha256:1ec356301b7dc906d83f371c8f487070e99d3ccf9e501686456394622a01a934", size = 28737, upload-time = "2026-03-05T18:34:13.271Z" }
+sdist = { url = "https://files.pythonhosted.org/packages/b8/d7/e7bfbc86e9f99ff7807e24de7703f032e9c9ba80bb355cf26e0e9bc5a75e/platformdirs-4.11.3.tar.gz", hash = "sha256:66a73d38a849810252df809a3d8bcbda8e26f6c189920e7535ad608a48dbb5ab", size = 33050, upload-time = "2026-08-13T22:43:27.52Z" }
wheels = [
- { url = "https://files.pythonhosted.org/packages/63/d7/97f7e3a6abb67d8080dd406fd4df842c2be0efaf712d1c899c32a075027c/platformdirs-4.9.4-py3-none-any.whl", hash = "sha256:68a9a4619a666ea6439f2ff250c12a853cd1cbd5158d258bd824a7df6be2f868", size = 21216, upload-time = "2026-03-05T18:34:12.172Z" },
+ { url = "https://files.pythonhosted.org/packages/19/a9/c34aebedd3a4c9afe5101b1b8713710b3fec18087c8a36c35d2f909861bd/platformdirs-4.11.3-py3-none-any.whl", hash = "sha256:5ed065d443751de711da036041a7a214122efc4a4de393b3f4137ba5576540e7", size = 23491, upload-time = "2026-08-13T22:43:26.121Z" },
]
[[package]]
@@ -1322,7 +1835,8 @@ name = "pluggy"
version = "1.6.0"
source = { registry = "https://pypi.org/simple" }
resolution-markers = [
- "python_full_version >= '3.10'",
+ "python_full_version >= '3.15'",
+ "python_full_version >= '3.10' and python_full_version < '3.15'",
"python_full_version == '3.9.*'",
]
sdist = { url = "https://files.pythonhosted.org/packages/f9/e2/3e91f31a7d2b083fe6ef3fa267035b518369d9511ffab804f839851d2779/pluggy-1.6.0.tar.gz", hash = "sha256:7dcc130b76258d33b90f61b658791dede3486c3e6bfb003ee5c9bfb396dd22f3", size = 69412, upload-time = "2025-05-15T12:30:07.975Z" }
@@ -1338,11 +1852,11 @@ resolution-markers = [
"python_full_version == '3.9.*'",
]
dependencies = [
- { name = "cfgv", version = "3.4.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version == '3.9.*'" },
- { name = "identify", version = "2.6.15", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version == '3.9.*'" },
- { name = "nodeenv", marker = "python_full_version == '3.9.*'" },
- { name = "pyyaml", marker = "python_full_version == '3.9.*'" },
- { name = "virtualenv", marker = "python_full_version == '3.9.*'" },
+ { name = "cfgv", version = "3.4.0", source = { registry = "https://pypi.org/simple" } },
+ { name = "identify", version = "2.6.15", source = { registry = "https://pypi.org/simple" } },
+ { name = "nodeenv" },
+ { name = "pyyaml" },
+ { name = "virtualenv" },
]
sdist = { url = "https://files.pythonhosted.org/packages/ff/29/7cf5bbc236333876e4b41f56e06857a87937ce4bf91e117a6991a2dbb02a/pre_commit-4.3.0.tar.gz", hash = "sha256:499fe450cc9d42e9d58e606262795ecb64dd05438943c62b66f6a8673da30b16", size = 193792, upload-time = "2025-08-09T18:56:14.651Z" }
wheels = [
@@ -1351,21 +1865,22 @@ wheels = [
[[package]]
name = "pre-commit"
-version = "4.5.1"
+version = "4.6.2"
source = { registry = "https://pypi.org/simple" }
resolution-markers = [
- "python_full_version >= '3.10'",
+ "python_full_version >= '3.15'",
+ "python_full_version >= '3.10' and python_full_version < '3.15'",
]
dependencies = [
- { name = "cfgv", version = "3.5.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.10'" },
- { name = "identify", version = "2.6.18", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.10'" },
- { name = "nodeenv", marker = "python_full_version >= '3.10'" },
- { name = "pyyaml", marker = "python_full_version >= '3.10'" },
- { name = "virtualenv", marker = "python_full_version >= '3.10'" },
+ { name = "cfgv", version = "3.5.0", source = { registry = "https://pypi.org/simple" } },
+ { name = "identify", version = "2.6.19", source = { registry = "https://pypi.org/simple" } },
+ { name = "nodeenv" },
+ { name = "pyyaml" },
+ { name = "virtualenv" },
]
-sdist = { url = "https://files.pythonhosted.org/packages/40/f1/6d86a29246dfd2e9b6237f0b5823717f60cad94d47ddc26afa916d21f525/pre_commit-4.5.1.tar.gz", hash = "sha256:eb545fcff725875197837263e977ea257a402056661f09dae08e4b149b030a61", size = 198232, upload-time = "2025-12-16T21:14:33.552Z" }
+sdist = { url = "https://files.pythonhosted.org/packages/74/89/1f3e8e1fc3e97de0fa963495832f581f025f29471602a309e48808244292/pre_commit-4.6.2.tar.gz", hash = "sha256:8f5d7bfb021ecdbcd9d49d89847082dd24172ccde534390081a679ad046e2441", size = 198670, upload-time = "2026-08-10T22:07:18.421Z" }
wheels = [
- { url = "https://files.pythonhosted.org/packages/5d/19/fd3ef348460c80af7bb4669ea7926651d1f95c23ff2df18b9d24bab4f3fa/pre_commit-4.5.1-py2.py3-none-any.whl", hash = "sha256:3b3afd891e97337708c1674210f8eba659b52a38ea5f822ff142d10786221f77", size = 226437, upload-time = "2025-12-16T21:14:32.409Z" },
+ { url = "https://files.pythonhosted.org/packages/45/e2/bbb7129c9e7999a6b8ee9cca3b66486c25c423ab5a75f34071798b74ce94/pre_commit-4.6.2-py2.py3-none-any.whl", hash = "sha256:e2dde9a75d3bce11bd3831c26d134df00a2803c1d818be6a0383c3dcda25dc4e", size = 226202, upload-time = "2026-08-10T22:07:16.942Z" },
]
[[package]]
@@ -1394,6 +1909,8 @@ name = "protobuf"
version = "6.33.6"
source = { registry = "https://pypi.org/simple" }
resolution-markers = [
+ "python_full_version >= '3.15'",
+ "python_full_version >= '3.10' and python_full_version < '3.15'",
"python_full_version == '3.9.*'",
]
sdist = { url = "https://files.pythonhosted.org/packages/66/70/e908e9c5e52ef7c3a6c7902c9dfbb34c7e29c25d2f81ade3856445fd5c94/protobuf-6.33.6.tar.gz", hash = "sha256:a6768d25248312c297558af96a9f9c929e8c4cee0659cb07e780731095f38135", size = 444531, upload-time = "2026-03-18T19:05:00.988Z" }
@@ -1409,24 +1926,6 @@ wheels = [
{ url = "https://files.pythonhosted.org/packages/c4/72/02445137af02769918a93807b2b7890047c32bfb9f90371cbc12688819eb/protobuf-6.33.6-py3-none-any.whl", hash = "sha256:77179e006c476e69bf8e8ce866640091ec42e1beb80b213c3900006ecfba6901", size = 170656, upload-time = "2026-03-18T19:04:59.826Z" },
]
-[[package]]
-name = "protobuf"
-version = "7.35.1"
-source = { registry = "https://pypi.org/simple" }
-resolution-markers = [
- "python_full_version >= '3.10'",
-]
-sdist = { url = "https://files.pythonhosted.org/packages/da/01/9ef0afd7999eb9badb3a768b4aedd78c86d4c65cfaf1958ab276199e76b4/protobuf-7.35.1.tar.gz", hash = "sha256:ce115a26fe0c39a2c29973d914d327e516a6455464489fe3cd1e51a1b354f81a", size = 458717, upload-time = "2026-06-11T21:55:40.257Z" }
-wheels = [
- { url = "https://files.pythonhosted.org/packages/10/03/8aeeb7458d22546bf64b5250ca1daeb5ff757d900e8e4a7476c6f0db843e/protobuf-7.35.1-cp310-abi3-macosx_10_9_universal2.whl", hash = "sha256:24f857477359a85c0c235261b8ba905fd51b2562f4a64ca1df5473f29850cbf6", size = 433226, upload-time = "2026-06-11T21:55:31.719Z" },
- { url = "https://files.pythonhosted.org/packages/37/4b/dfb89eb0e652a1ff073c39a59fb5e3a83cfe9b57a2c83fa6d78270101767/protobuf-7.35.1-cp310-abi3-manylinux2014_aarch64.whl", hash = "sha256:11d6b0ec246892d85215b0a13ca6e0233cf5284b68f0ac02646427f4ff88a799", size = 328847, upload-time = "2026-06-11T21:55:34.035Z" },
- { url = "https://files.pythonhosted.org/packages/0f/58/dc12f2cd484951524af6e3382c785869b9b3fb5e52ee95ae23add53ee8f9/protobuf-7.35.1-cp310-abi3-manylinux2014_s390x.whl", hash = "sha256:b73f9489a4b8b1c9cb1f8ed951c736392592edb24b9d6819f36d2e10b171d5b4", size = 344030, upload-time = "2026-06-11T21:55:34.941Z" },
- { url = "https://files.pythonhosted.org/packages/e4/be/5b3cfe508bfab6761414ff944e3366eb13be4fd71efcd69450f89ba39f43/protobuf-7.35.1-cp310-abi3-manylinux2014_x86_64.whl", hash = "sha256:74758715c53d7158fb76caf4f0cfdacc5329a4b1bb994f865d6cf302d413a1c4", size = 327130, upload-time = "2026-06-11T21:55:35.921Z" },
- { url = "https://files.pythonhosted.org/packages/d8/bc/6d6c7ba8709c85f8f2c390b2b118d6fb08a783676a572271851bf45a7d22/protobuf-7.35.1-cp310-abi3-win32.whl", hash = "sha256:353652e4efd0bca5b5fc2656abf8307ef351f0cf938c9eba09f0e09c20a25c30", size = 428945, upload-time = "2026-06-11T21:55:37.034Z" },
- { url = "https://files.pythonhosted.org/packages/0a/19/8d0cb6f20a1ef7b18f1c8986ad5783f22f84cce39c6ce9a6e645ea55192e/protobuf-7.35.1-cp310-abi3-win_amd64.whl", hash = "sha256:230a75ddfc2de4806e56696ce9640c1cdfdb6543b7cfce98d42a4c0a0e7bdb87", size = 439996, upload-time = "2026-06-11T21:55:38.123Z" },
- { url = "https://files.pythonhosted.org/packages/19/c7/5f7c636ec43e0c545e28d1f1db71990108306f7bdcb89f069ba97e428e7f/protobuf-7.35.1-py3-none-any.whl", hash = "sha256:4bc97768d8fe4ad6743c8a19403e314511ed9f6d13205b687e52421c023ac1b9", size = 171659, upload-time = "2026-06-11T21:55:39.155Z" },
-]
-
[[package]]
name = "pydantic"
version = "2.10.6"
@@ -1435,9 +1934,9 @@ resolution-markers = [
"python_full_version < '3.9'",
]
dependencies = [
- { name = "annotated-types", marker = "python_full_version < '3.9'" },
- { name = "pydantic-core", version = "2.27.2", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.9'" },
- { name = "typing-extensions", version = "4.13.2", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.9'" },
+ { name = "annotated-types", version = "0.7.0", source = { registry = "https://pypi.org/simple" } },
+ { name = "pydantic-core", version = "2.27.2", source = { registry = "https://pypi.org/simple" } },
+ { name = "typing-extensions", version = "4.13.2", source = { registry = "https://pypi.org/simple" } },
]
sdist = { url = "https://files.pythonhosted.org/packages/b7/ae/d5220c5c52b158b1de7ca89fc5edb72f304a70a4c540c84c8844bf4008de/pydantic-2.10.6.tar.gz", hash = "sha256:ca5daa827cce33de7a42be142548b0096bf05a7e7b365aebfa5f8eeec7128236", size = 761681, upload-time = "2025-01-24T01:42:12.693Z" }
wheels = [
@@ -1446,21 +1945,24 @@ wheels = [
[[package]]
name = "pydantic"
-version = "2.12.5"
+version = "2.13.4"
source = { registry = "https://pypi.org/simple" }
resolution-markers = [
- "python_full_version >= '3.10'",
+ "python_full_version >= '3.15'",
+ "python_full_version >= '3.10' and python_full_version < '3.15'",
"python_full_version == '3.9.*'",
]
dependencies = [
- { name = "annotated-types", marker = "python_full_version >= '3.9'" },
- { name = "pydantic-core", version = "2.41.5", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.9'" },
- { name = "typing-extensions", version = "4.15.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.9'" },
- { name = "typing-inspection", marker = "python_full_version >= '3.9'" },
+ { name = "annotated-types", version = "0.7.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.10'" },
+ { name = "annotated-types", version = "0.8.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.10'" },
+ { name = "pydantic-core", version = "2.46.4", source = { registry = "https://pypi.org/simple" } },
+ { name = "typing-extensions", version = "4.16.0", source = { registry = "https://pypi.org/simple" } },
+ { name = "typing-inspection", version = "0.4.2", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.10'" },
+ { name = "typing-inspection", version = "0.4.4", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.10'" },
]
-sdist = { url = "https://files.pythonhosted.org/packages/69/44/36f1a6e523abc58ae5f928898e4aca2e0ea509b5aa6f6f392a5d882be928/pydantic-2.12.5.tar.gz", hash = "sha256:4d351024c75c0f085a9febbb665ce8c0c6ec5d30e903bdb6394b7ede26aebb49", size = 821591, upload-time = "2025-11-26T15:11:46.471Z" }
+sdist = { url = "https://files.pythonhosted.org/packages/18/a5/b60d21ac674192f8ab0ba4e9fd860690f9b4a6e51ca5df118733b487d8d6/pydantic-2.13.4.tar.gz", hash = "sha256:c40756b57adaa8b1efeeced5c196f3f3b7c435f90e84ea7f443901bec8099ef6", size = 844775, upload-time = "2026-05-06T13:43:05.343Z" }
wheels = [
- { url = "https://files.pythonhosted.org/packages/5a/87/b70ad306ebb6f9b585f114d0ac2137d792b48be34d732d60e597c2f8465a/pydantic-2.12.5-py3-none-any.whl", hash = "sha256:e561593fccf61e8a20fc46dfc2dfe075b8be7d0188df33f221ad1f0139180f9d", size = 463580, upload-time = "2025-11-26T15:11:44.605Z" },
+ { url = "https://files.pythonhosted.org/packages/fd/7b/122376b1fd3c62c1ed9dc80c931ace4844b3c55407b6fb2d199377c9736f/pydantic-2.13.4-py3-none-any.whl", hash = "sha256:45a282cde31d808236fd7ea9d919b128653c8b38b393d1c4ab335c62924d9aba", size = 472262, upload-time = "2026-05-06T13:43:02.641Z" },
]
[[package]]
@@ -1471,7 +1973,7 @@ resolution-markers = [
"python_full_version < '3.9'",
]
dependencies = [
- { name = "typing-extensions", version = "4.13.2", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.9'" },
+ { name = "typing-extensions", version = "4.13.2", source = { registry = "https://pypi.org/simple" } },
]
sdist = { url = "https://files.pythonhosted.org/packages/fc/01/f3e5ac5e7c25833db5eb555f7b7ab24cd6f8c322d3a3ad2d67a952dc0abc/pydantic_core-2.27.2.tar.gz", hash = "sha256:eb026e5a4c1fee05726072337ff51d1efb6f59090b7da90d30ea58625b1ffb39", size = 413443, upload-time = "2024-12-18T11:31:54.917Z" }
wheels = [
@@ -1578,137 +2080,137 @@ wheels = [
[[package]]
name = "pydantic-core"
-version = "2.41.5"
+version = "2.46.4"
source = { registry = "https://pypi.org/simple" }
resolution-markers = [
- "python_full_version >= '3.10'",
+ "python_full_version >= '3.15'",
+ "python_full_version >= '3.10' and python_full_version < '3.15'",
"python_full_version == '3.9.*'",
]
dependencies = [
- { name = "typing-extensions", version = "4.15.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.9'" },
-]
-sdist = { url = "https://files.pythonhosted.org/packages/71/70/23b021c950c2addd24ec408e9ab05d59b035b39d97cdc1130e1bce647bb6/pydantic_core-2.41.5.tar.gz", hash = "sha256:08daa51ea16ad373ffd5e7606252cc32f07bc72b28284b6bc9c6df804816476e", size = 460952, upload-time = "2025-11-04T13:43:49.098Z" }
-wheels = [
- { url = "https://files.pythonhosted.org/packages/c6/90/32c9941e728d564b411d574d8ee0cf09b12ec978cb22b294995bae5549a5/pydantic_core-2.41.5-cp310-cp310-macosx_10_12_x86_64.whl", hash = "sha256:77b63866ca88d804225eaa4af3e664c5faf3568cea95360d21f4725ab6e07146", size = 2107298, upload-time = "2025-11-04T13:39:04.116Z" },
- { url = "https://files.pythonhosted.org/packages/fb/a8/61c96a77fe28993d9a6fb0f4127e05430a267b235a124545d79fea46dd65/pydantic_core-2.41.5-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:dfa8a0c812ac681395907e71e1274819dec685fec28273a28905df579ef137e2", size = 1901475, upload-time = "2025-11-04T13:39:06.055Z" },
- { url = "https://files.pythonhosted.org/packages/5d/b6/338abf60225acc18cdc08b4faef592d0310923d19a87fba1faf05af5346e/pydantic_core-2.41.5-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:5921a4d3ca3aee735d9fd163808f5e8dd6c6972101e4adbda9a4667908849b97", size = 1918815, upload-time = "2025-11-04T13:39:10.41Z" },
- { url = "https://files.pythonhosted.org/packages/d1/1c/2ed0433e682983d8e8cba9c8d8ef274d4791ec6a6f24c58935b90e780e0a/pydantic_core-2.41.5-cp310-cp310-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:e25c479382d26a2a41b7ebea1043564a937db462816ea07afa8a44c0866d52f9", size = 2065567, upload-time = "2025-11-04T13:39:12.244Z" },
- { url = "https://files.pythonhosted.org/packages/b3/24/cf84974ee7d6eae06b9e63289b7b8f6549d416b5c199ca2d7ce13bbcf619/pydantic_core-2.41.5-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:f547144f2966e1e16ae626d8ce72b4cfa0caedc7fa28052001c94fb2fcaa1c52", size = 2230442, upload-time = "2025-11-04T13:39:13.962Z" },
- { url = "https://files.pythonhosted.org/packages/fd/21/4e287865504b3edc0136c89c9c09431be326168b1eb7841911cbc877a995/pydantic_core-2.41.5-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:6f52298fbd394f9ed112d56f3d11aabd0d5bd27beb3084cc3d8ad069483b8941", size = 2350956, upload-time = "2025-11-04T13:39:15.889Z" },
- { url = "https://files.pythonhosted.org/packages/a8/76/7727ef2ffa4b62fcab916686a68a0426b9b790139720e1934e8ba797e238/pydantic_core-2.41.5-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:100baa204bb412b74fe285fb0f3a385256dad1d1879f0a5cb1499ed2e83d132a", size = 2068253, upload-time = "2025-11-04T13:39:17.403Z" },
- { url = "https://files.pythonhosted.org/packages/d5/8c/a4abfc79604bcb4c748e18975c44f94f756f08fb04218d5cb87eb0d3a63e/pydantic_core-2.41.5-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:05a2c8852530ad2812cb7914dc61a1125dc4e06252ee98e5638a12da6cc6fb6c", size = 2177050, upload-time = "2025-11-04T13:39:19.351Z" },
- { url = "https://files.pythonhosted.org/packages/67/b1/de2e9a9a79b480f9cb0b6e8b6ba4c50b18d4e89852426364c66aa82bb7b3/pydantic_core-2.41.5-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:29452c56df2ed968d18d7e21f4ab0ac55e71dc59524872f6fc57dcf4a3249ed2", size = 2147178, upload-time = "2025-11-04T13:39:21Z" },
- { url = "https://files.pythonhosted.org/packages/16/c1/dfb33f837a47b20417500efaa0378adc6635b3c79e8369ff7a03c494b4ac/pydantic_core-2.41.5-cp310-cp310-musllinux_1_1_armv7l.whl", hash = "sha256:d5160812ea7a8a2ffbe233d8da666880cad0cbaf5d4de74ae15c313213d62556", size = 2341833, upload-time = "2025-11-04T13:39:22.606Z" },
- { url = "https://files.pythonhosted.org/packages/47/36/00f398642a0f4b815a9a558c4f1dca1b4020a7d49562807d7bc9ff279a6c/pydantic_core-2.41.5-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:df3959765b553b9440adfd3c795617c352154e497a4eaf3752555cfb5da8fc49", size = 2321156, upload-time = "2025-11-04T13:39:25.843Z" },
- { url = "https://files.pythonhosted.org/packages/7e/70/cad3acd89fde2010807354d978725ae111ddf6d0ea46d1ea1775b5c1bd0c/pydantic_core-2.41.5-cp310-cp310-win32.whl", hash = "sha256:1f8d33a7f4d5a7889e60dc39856d76d09333d8a6ed0f5f1190635cbec70ec4ba", size = 1989378, upload-time = "2025-11-04T13:39:27.92Z" },
- { url = "https://files.pythonhosted.org/packages/76/92/d338652464c6c367e5608e4488201702cd1cbb0f33f7b6a85a60fe5f3720/pydantic_core-2.41.5-cp310-cp310-win_amd64.whl", hash = "sha256:62de39db01b8d593e45871af2af9e497295db8d73b085f6bfd0b18c83c70a8f9", size = 2013622, upload-time = "2025-11-04T13:39:29.848Z" },
- { url = "https://files.pythonhosted.org/packages/e8/72/74a989dd9f2084b3d9530b0915fdda64ac48831c30dbf7c72a41a5232db8/pydantic_core-2.41.5-cp311-cp311-macosx_10_12_x86_64.whl", hash = "sha256:a3a52f6156e73e7ccb0f8cced536adccb7042be67cb45f9562e12b319c119da6", size = 2105873, upload-time = "2025-11-04T13:39:31.373Z" },
- { url = "https://files.pythonhosted.org/packages/12/44/37e403fd9455708b3b942949e1d7febc02167662bf1a7da5b78ee1ea2842/pydantic_core-2.41.5-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:7f3bf998340c6d4b0c9a2f02d6a400e51f123b59565d74dc60d252ce888c260b", size = 1899826, upload-time = "2025-11-04T13:39:32.897Z" },
- { url = "https://files.pythonhosted.org/packages/33/7f/1d5cab3ccf44c1935a359d51a8a2a9e1a654b744b5e7f80d41b88d501eec/pydantic_core-2.41.5-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:378bec5c66998815d224c9ca994f1e14c0c21cb95d2f52b6021cc0b2a58f2a5a", size = 1917869, upload-time = "2025-11-04T13:39:34.469Z" },
- { url = "https://files.pythonhosted.org/packages/6e/6a/30d94a9674a7fe4f4744052ed6c5e083424510be1e93da5bc47569d11810/pydantic_core-2.41.5-cp311-cp311-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:e7b576130c69225432866fe2f4a469a85a54ade141d96fd396dffcf607b558f8", size = 2063890, upload-time = "2025-11-04T13:39:36.053Z" },
- { url = "https://files.pythonhosted.org/packages/50/be/76e5d46203fcb2750e542f32e6c371ffa9b8ad17364cf94bb0818dbfb50c/pydantic_core-2.41.5-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:6cb58b9c66f7e4179a2d5e0f849c48eff5c1fca560994d6eb6543abf955a149e", size = 2229740, upload-time = "2025-11-04T13:39:37.753Z" },
- { url = "https://files.pythonhosted.org/packages/d3/ee/fed784df0144793489f87db310a6bbf8118d7b630ed07aa180d6067e653a/pydantic_core-2.41.5-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:88942d3a3dff3afc8288c21e565e476fc278902ae4d6d134f1eeda118cc830b1", size = 2350021, upload-time = "2025-11-04T13:39:40.94Z" },
- { url = "https://files.pythonhosted.org/packages/c8/be/8fed28dd0a180dca19e72c233cbf58efa36df055e5b9d90d64fd1740b828/pydantic_core-2.41.5-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f31d95a179f8d64d90f6831d71fa93290893a33148d890ba15de25642c5d075b", size = 2066378, upload-time = "2025-11-04T13:39:42.523Z" },
- { url = "https://files.pythonhosted.org/packages/b0/3b/698cf8ae1d536a010e05121b4958b1257f0b5522085e335360e53a6b1c8b/pydantic_core-2.41.5-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:c1df3d34aced70add6f867a8cf413e299177e0c22660cc767218373d0779487b", size = 2175761, upload-time = "2025-11-04T13:39:44.553Z" },
- { url = "https://files.pythonhosted.org/packages/b8/ba/15d537423939553116dea94ce02f9c31be0fa9d0b806d427e0308ec17145/pydantic_core-2.41.5-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:4009935984bd36bd2c774e13f9a09563ce8de4abaa7226f5108262fa3e637284", size = 2146303, upload-time = "2025-11-04T13:39:46.238Z" },
- { url = "https://files.pythonhosted.org/packages/58/7f/0de669bf37d206723795f9c90c82966726a2ab06c336deba4735b55af431/pydantic_core-2.41.5-cp311-cp311-musllinux_1_1_armv7l.whl", hash = "sha256:34a64bc3441dc1213096a20fe27e8e128bd3ff89921706e83c0b1ac971276594", size = 2340355, upload-time = "2025-11-04T13:39:48.002Z" },
- { url = "https://files.pythonhosted.org/packages/e5/de/e7482c435b83d7e3c3ee5ee4451f6e8973cff0eb6007d2872ce6383f6398/pydantic_core-2.41.5-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:c9e19dd6e28fdcaa5a1de679aec4141f691023916427ef9bae8584f9c2fb3b0e", size = 2319875, upload-time = "2025-11-04T13:39:49.705Z" },
- { url = "https://files.pythonhosted.org/packages/fe/e6/8c9e81bb6dd7560e33b9053351c29f30c8194b72f2d6932888581f503482/pydantic_core-2.41.5-cp311-cp311-win32.whl", hash = "sha256:2c010c6ded393148374c0f6f0bf89d206bf3217f201faa0635dcd56bd1520f6b", size = 1987549, upload-time = "2025-11-04T13:39:51.842Z" },
- { url = "https://files.pythonhosted.org/packages/11/66/f14d1d978ea94d1bc21fc98fcf570f9542fe55bfcc40269d4e1a21c19bf7/pydantic_core-2.41.5-cp311-cp311-win_amd64.whl", hash = "sha256:76ee27c6e9c7f16f47db7a94157112a2f3a00e958bc626e2f4ee8bec5c328fbe", size = 2011305, upload-time = "2025-11-04T13:39:53.485Z" },
- { url = "https://files.pythonhosted.org/packages/56/d8/0e271434e8efd03186c5386671328154ee349ff0354d83c74f5caaf096ed/pydantic_core-2.41.5-cp311-cp311-win_arm64.whl", hash = "sha256:4bc36bbc0b7584de96561184ad7f012478987882ebf9f9c389b23f432ea3d90f", size = 1972902, upload-time = "2025-11-04T13:39:56.488Z" },
- { url = "https://files.pythonhosted.org/packages/5f/5d/5f6c63eebb5afee93bcaae4ce9a898f3373ca23df3ccaef086d0233a35a7/pydantic_core-2.41.5-cp312-cp312-macosx_10_12_x86_64.whl", hash = "sha256:f41a7489d32336dbf2199c8c0a215390a751c5b014c2c1c5366e817202e9cdf7", size = 2110990, upload-time = "2025-11-04T13:39:58.079Z" },
- { url = "https://files.pythonhosted.org/packages/aa/32/9c2e8ccb57c01111e0fd091f236c7b371c1bccea0fa85247ac55b1e2b6b6/pydantic_core-2.41.5-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:070259a8818988b9a84a449a2a7337c7f430a22acc0859c6b110aa7212a6d9c0", size = 1896003, upload-time = "2025-11-04T13:39:59.956Z" },
- { url = "https://files.pythonhosted.org/packages/68/b8/a01b53cb0e59139fbc9e4fda3e9724ede8de279097179be4ff31f1abb65a/pydantic_core-2.41.5-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:e96cea19e34778f8d59fe40775a7a574d95816eb150850a85a7a4c8f4b94ac69", size = 1919200, upload-time = "2025-11-04T13:40:02.241Z" },
- { url = "https://files.pythonhosted.org/packages/38/de/8c36b5198a29bdaade07b5985e80a233a5ac27137846f3bc2d3b40a47360/pydantic_core-2.41.5-cp312-cp312-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:ed2e99c456e3fadd05c991f8f437ef902e00eedf34320ba2b0842bd1c3ca3a75", size = 2052578, upload-time = "2025-11-04T13:40:04.401Z" },
- { url = "https://files.pythonhosted.org/packages/00/b5/0e8e4b5b081eac6cb3dbb7e60a65907549a1ce035a724368c330112adfdd/pydantic_core-2.41.5-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:65840751b72fbfd82c3c640cff9284545342a4f1eb1586ad0636955b261b0b05", size = 2208504, upload-time = "2025-11-04T13:40:06.072Z" },
- { url = "https://files.pythonhosted.org/packages/77/56/87a61aad59c7c5b9dc8caad5a41a5545cba3810c3e828708b3d7404f6cef/pydantic_core-2.41.5-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:e536c98a7626a98feb2d3eaf75944ef6f3dbee447e1f841eae16f2f0a72d8ddc", size = 2335816, upload-time = "2025-11-04T13:40:07.835Z" },
- { url = "https://files.pythonhosted.org/packages/0d/76/941cc9f73529988688a665a5c0ecff1112b3d95ab48f81db5f7606f522d3/pydantic_core-2.41.5-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:eceb81a8d74f9267ef4081e246ffd6d129da5d87e37a77c9bde550cb04870c1c", size = 2075366, upload-time = "2025-11-04T13:40:09.804Z" },
- { url = "https://files.pythonhosted.org/packages/d3/43/ebef01f69baa07a482844faaa0a591bad1ef129253ffd0cdaa9d8a7f72d3/pydantic_core-2.41.5-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:d38548150c39b74aeeb0ce8ee1d8e82696f4a4e16ddc6de7b1d8823f7de4b9b5", size = 2171698, upload-time = "2025-11-04T13:40:12.004Z" },
- { url = "https://files.pythonhosted.org/packages/b1/87/41f3202e4193e3bacfc2c065fab7706ebe81af46a83d3e27605029c1f5a6/pydantic_core-2.41.5-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:c23e27686783f60290e36827f9c626e63154b82b116d7fe9adba1fda36da706c", size = 2132603, upload-time = "2025-11-04T13:40:13.868Z" },
- { url = "https://files.pythonhosted.org/packages/49/7d/4c00df99cb12070b6bccdef4a195255e6020a550d572768d92cc54dba91a/pydantic_core-2.41.5-cp312-cp312-musllinux_1_1_armv7l.whl", hash = "sha256:482c982f814460eabe1d3bb0adfdc583387bd4691ef00b90575ca0d2b6fe2294", size = 2329591, upload-time = "2025-11-04T13:40:15.672Z" },
- { url = "https://files.pythonhosted.org/packages/cc/6a/ebf4b1d65d458f3cda6a7335d141305dfa19bdc61140a884d165a8a1bbc7/pydantic_core-2.41.5-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:bfea2a5f0b4d8d43adf9d7b8bf019fb46fdd10a2e5cde477fbcb9d1fa08c68e1", size = 2319068, upload-time = "2025-11-04T13:40:17.532Z" },
- { url = "https://files.pythonhosted.org/packages/49/3b/774f2b5cd4192d5ab75870ce4381fd89cf218af999515baf07e7206753f0/pydantic_core-2.41.5-cp312-cp312-win32.whl", hash = "sha256:b74557b16e390ec12dca509bce9264c3bbd128f8a2c376eaa68003d7f327276d", size = 1985908, upload-time = "2025-11-04T13:40:19.309Z" },
- { url = "https://files.pythonhosted.org/packages/86/45/00173a033c801cacf67c190fef088789394feaf88a98a7035b0e40d53dc9/pydantic_core-2.41.5-cp312-cp312-win_amd64.whl", hash = "sha256:1962293292865bca8e54702b08a4f26da73adc83dd1fcf26fbc875b35d81c815", size = 2020145, upload-time = "2025-11-04T13:40:21.548Z" },
- { url = "https://files.pythonhosted.org/packages/f9/22/91fbc821fa6d261b376a3f73809f907cec5ca6025642c463d3488aad22fb/pydantic_core-2.41.5-cp312-cp312-win_arm64.whl", hash = "sha256:1746d4a3d9a794cacae06a5eaaccb4b8643a131d45fbc9af23e353dc0a5ba5c3", size = 1976179, upload-time = "2025-11-04T13:40:23.393Z" },
- { url = "https://files.pythonhosted.org/packages/87/06/8806241ff1f70d9939f9af039c6c35f2360cf16e93c2ca76f184e76b1564/pydantic_core-2.41.5-cp313-cp313-macosx_10_12_x86_64.whl", hash = "sha256:941103c9be18ac8daf7b7adca8228f8ed6bb7a1849020f643b3a14d15b1924d9", size = 2120403, upload-time = "2025-11-04T13:40:25.248Z" },
- { url = "https://files.pythonhosted.org/packages/94/02/abfa0e0bda67faa65fef1c84971c7e45928e108fe24333c81f3bfe35d5f5/pydantic_core-2.41.5-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:112e305c3314f40c93998e567879e887a3160bb8689ef3d2c04b6cc62c33ac34", size = 1896206, upload-time = "2025-11-04T13:40:27.099Z" },
- { url = "https://files.pythonhosted.org/packages/15/df/a4c740c0943e93e6500f9eb23f4ca7ec9bf71b19e608ae5b579678c8d02f/pydantic_core-2.41.5-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:0cbaad15cb0c90aa221d43c00e77bb33c93e8d36e0bf74760cd00e732d10a6a0", size = 1919307, upload-time = "2025-11-04T13:40:29.806Z" },
- { url = "https://files.pythonhosted.org/packages/9a/e3/6324802931ae1d123528988e0e86587c2072ac2e5394b4bc2bc34b61ff6e/pydantic_core-2.41.5-cp313-cp313-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:03ca43e12fab6023fc79d28ca6b39b05f794ad08ec2feccc59a339b02f2b3d33", size = 2063258, upload-time = "2025-11-04T13:40:33.544Z" },
- { url = "https://files.pythonhosted.org/packages/c9/d4/2230d7151d4957dd79c3044ea26346c148c98fbf0ee6ebd41056f2d62ab5/pydantic_core-2.41.5-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:dc799088c08fa04e43144b164feb0c13f9a0bc40503f8df3e9fde58a3c0c101e", size = 2214917, upload-time = "2025-11-04T13:40:35.479Z" },
- { url = "https://files.pythonhosted.org/packages/e6/9f/eaac5df17a3672fef0081b6c1bb0b82b33ee89aa5cec0d7b05f52fd4a1fa/pydantic_core-2.41.5-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:97aeba56665b4c3235a0e52b2c2f5ae9cd071b8a8310ad27bddb3f7fb30e9aa2", size = 2332186, upload-time = "2025-11-04T13:40:37.436Z" },
- { url = "https://files.pythonhosted.org/packages/cf/4e/35a80cae583a37cf15604b44240e45c05e04e86f9cfd766623149297e971/pydantic_core-2.41.5-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:406bf18d345822d6c21366031003612b9c77b3e29ffdb0f612367352aab7d586", size = 2073164, upload-time = "2025-11-04T13:40:40.289Z" },
- { url = "https://files.pythonhosted.org/packages/bf/e3/f6e262673c6140dd3305d144d032f7bd5f7497d3871c1428521f19f9efa2/pydantic_core-2.41.5-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:b93590ae81f7010dbe380cdeab6f515902ebcbefe0b9327cc4804d74e93ae69d", size = 2179146, upload-time = "2025-11-04T13:40:42.809Z" },
- { url = "https://files.pythonhosted.org/packages/75/c7/20bd7fc05f0c6ea2056a4565c6f36f8968c0924f19b7d97bbfea55780e73/pydantic_core-2.41.5-cp313-cp313-musllinux_1_1_aarch64.whl", hash = "sha256:01a3d0ab748ee531f4ea6c3e48ad9dac84ddba4b0d82291f87248f2f9de8d740", size = 2137788, upload-time = "2025-11-04T13:40:44.752Z" },
- { url = "https://files.pythonhosted.org/packages/3a/8d/34318ef985c45196e004bc46c6eab2eda437e744c124ef0dbe1ff2c9d06b/pydantic_core-2.41.5-cp313-cp313-musllinux_1_1_armv7l.whl", hash = "sha256:6561e94ba9dacc9c61bce40e2d6bdc3bfaa0259d3ff36ace3b1e6901936d2e3e", size = 2340133, upload-time = "2025-11-04T13:40:46.66Z" },
- { url = "https://files.pythonhosted.org/packages/9c/59/013626bf8c78a5a5d9350d12e7697d3d4de951a75565496abd40ccd46bee/pydantic_core-2.41.5-cp313-cp313-musllinux_1_1_x86_64.whl", hash = "sha256:915c3d10f81bec3a74fbd4faebe8391013ba61e5a1a8d48c4455b923bdda7858", size = 2324852, upload-time = "2025-11-04T13:40:48.575Z" },
- { url = "https://files.pythonhosted.org/packages/1a/d9/c248c103856f807ef70c18a4f986693a46a8ffe1602e5d361485da502d20/pydantic_core-2.41.5-cp313-cp313-win32.whl", hash = "sha256:650ae77860b45cfa6e2cdafc42618ceafab3a2d9a3811fcfbd3bbf8ac3c40d36", size = 1994679, upload-time = "2025-11-04T13:40:50.619Z" },
- { url = "https://files.pythonhosted.org/packages/9e/8b/341991b158ddab181cff136acd2552c9f35bd30380422a639c0671e99a91/pydantic_core-2.41.5-cp313-cp313-win_amd64.whl", hash = "sha256:79ec52ec461e99e13791ec6508c722742ad745571f234ea6255bed38c6480f11", size = 2019766, upload-time = "2025-11-04T13:40:52.631Z" },
- { url = "https://files.pythonhosted.org/packages/73/7d/f2f9db34af103bea3e09735bb40b021788a5e834c81eedb541991badf8f5/pydantic_core-2.41.5-cp313-cp313-win_arm64.whl", hash = "sha256:3f84d5c1b4ab906093bdc1ff10484838aca54ef08de4afa9de0f5f14d69639cd", size = 1981005, upload-time = "2025-11-04T13:40:54.734Z" },
- { url = "https://files.pythonhosted.org/packages/ea/28/46b7c5c9635ae96ea0fbb779e271a38129df2550f763937659ee6c5dbc65/pydantic_core-2.41.5-cp314-cp314-macosx_10_12_x86_64.whl", hash = "sha256:3f37a19d7ebcdd20b96485056ba9e8b304e27d9904d233d7b1015db320e51f0a", size = 2119622, upload-time = "2025-11-04T13:40:56.68Z" },
- { url = "https://files.pythonhosted.org/packages/74/1a/145646e5687e8d9a1e8d09acb278c8535ebe9e972e1f162ed338a622f193/pydantic_core-2.41.5-cp314-cp314-macosx_11_0_arm64.whl", hash = "sha256:1d1d9764366c73f996edd17abb6d9d7649a7eb690006ab6adbda117717099b14", size = 1891725, upload-time = "2025-11-04T13:40:58.807Z" },
- { url = "https://files.pythonhosted.org/packages/23/04/e89c29e267b8060b40dca97bfc64a19b2a3cf99018167ea1677d96368273/pydantic_core-2.41.5-cp314-cp314-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:25e1c2af0fce638d5f1988b686f3b3ea8cd7de5f244ca147c777769e798a9cd1", size = 1915040, upload-time = "2025-11-04T13:41:00.853Z" },
- { url = "https://files.pythonhosted.org/packages/84/a3/15a82ac7bd97992a82257f777b3583d3e84bdb06ba6858f745daa2ec8a85/pydantic_core-2.41.5-cp314-cp314-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:506d766a8727beef16b7adaeb8ee6217c64fc813646b424d0804d67c16eddb66", size = 2063691, upload-time = "2025-11-04T13:41:03.504Z" },
- { url = "https://files.pythonhosted.org/packages/74/9b/0046701313c6ef08c0c1cf0e028c67c770a4e1275ca73131563c5f2a310a/pydantic_core-2.41.5-cp314-cp314-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:4819fa52133c9aa3c387b3328f25c1facc356491e6135b459f1de698ff64d869", size = 2213897, upload-time = "2025-11-04T13:41:05.804Z" },
- { url = "https://files.pythonhosted.org/packages/8a/cd/6bac76ecd1b27e75a95ca3a9a559c643b3afcd2dd62086d4b7a32a18b169/pydantic_core-2.41.5-cp314-cp314-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:2b761d210c9ea91feda40d25b4efe82a1707da2ef62901466a42492c028553a2", size = 2333302, upload-time = "2025-11-04T13:41:07.809Z" },
- { url = "https://files.pythonhosted.org/packages/4c/d2/ef2074dc020dd6e109611a8be4449b98cd25e1b9b8a303c2f0fca2f2bcf7/pydantic_core-2.41.5-cp314-cp314-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:22f0fb8c1c583a3b6f24df2470833b40207e907b90c928cc8d3594b76f874375", size = 2064877, upload-time = "2025-11-04T13:41:09.827Z" },
- { url = "https://files.pythonhosted.org/packages/18/66/e9db17a9a763d72f03de903883c057b2592c09509ccfe468187f2a2eef29/pydantic_core-2.41.5-cp314-cp314-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:2782c870e99878c634505236d81e5443092fba820f0373997ff75f90f68cd553", size = 2180680, upload-time = "2025-11-04T13:41:12.379Z" },
- { url = "https://files.pythonhosted.org/packages/d3/9e/3ce66cebb929f3ced22be85d4c2399b8e85b622db77dad36b73c5387f8f8/pydantic_core-2.41.5-cp314-cp314-musllinux_1_1_aarch64.whl", hash = "sha256:0177272f88ab8312479336e1d777f6b124537d47f2123f89cb37e0accea97f90", size = 2138960, upload-time = "2025-11-04T13:41:14.627Z" },
- { url = "https://files.pythonhosted.org/packages/a6/62/205a998f4327d2079326b01abee48e502ea739d174f0a89295c481a2272e/pydantic_core-2.41.5-cp314-cp314-musllinux_1_1_armv7l.whl", hash = "sha256:63510af5e38f8955b8ee5687740d6ebf7c2a0886d15a6d65c32814613681bc07", size = 2339102, upload-time = "2025-11-04T13:41:16.868Z" },
- { url = "https://files.pythonhosted.org/packages/3c/0d/f05e79471e889d74d3d88f5bd20d0ed189ad94c2423d81ff8d0000aab4ff/pydantic_core-2.41.5-cp314-cp314-musllinux_1_1_x86_64.whl", hash = "sha256:e56ba91f47764cc14f1daacd723e3e82d1a89d783f0f5afe9c364b8bb491ccdb", size = 2326039, upload-time = "2025-11-04T13:41:18.934Z" },
- { url = "https://files.pythonhosted.org/packages/ec/e1/e08a6208bb100da7e0c4b288eed624a703f4d129bde2da475721a80cab32/pydantic_core-2.41.5-cp314-cp314-win32.whl", hash = "sha256:aec5cf2fd867b4ff45b9959f8b20ea3993fc93e63c7363fe6851424c8a7e7c23", size = 1995126, upload-time = "2025-11-04T13:41:21.418Z" },
- { url = "https://files.pythonhosted.org/packages/48/5d/56ba7b24e9557f99c9237e29f5c09913c81eeb2f3217e40e922353668092/pydantic_core-2.41.5-cp314-cp314-win_amd64.whl", hash = "sha256:8e7c86f27c585ef37c35e56a96363ab8de4e549a95512445b85c96d3e2f7c1bf", size = 2015489, upload-time = "2025-11-04T13:41:24.076Z" },
- { url = "https://files.pythonhosted.org/packages/4e/bb/f7a190991ec9e3e0ba22e4993d8755bbc4a32925c0b5b42775c03e8148f9/pydantic_core-2.41.5-cp314-cp314-win_arm64.whl", hash = "sha256:e672ba74fbc2dc8eea59fb6d4aed6845e6905fc2a8afe93175d94a83ba2a01a0", size = 1977288, upload-time = "2025-11-04T13:41:26.33Z" },
- { url = "https://files.pythonhosted.org/packages/92/ed/77542d0c51538e32e15afe7899d79efce4b81eee631d99850edc2f5e9349/pydantic_core-2.41.5-cp314-cp314t-macosx_10_12_x86_64.whl", hash = "sha256:8566def80554c3faa0e65ac30ab0932b9e3a5cd7f8323764303d468e5c37595a", size = 2120255, upload-time = "2025-11-04T13:41:28.569Z" },
- { url = "https://files.pythonhosted.org/packages/bb/3d/6913dde84d5be21e284439676168b28d8bbba5600d838b9dca99de0fad71/pydantic_core-2.41.5-cp314-cp314t-macosx_11_0_arm64.whl", hash = "sha256:b80aa5095cd3109962a298ce14110ae16b8c1aece8b72f9dafe81cf597ad80b3", size = 1863760, upload-time = "2025-11-04T13:41:31.055Z" },
- { url = "https://files.pythonhosted.org/packages/5a/f0/e5e6b99d4191da102f2b0eb9687aaa7f5bea5d9964071a84effc3e40f997/pydantic_core-2.41.5-cp314-cp314t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:3006c3dd9ba34b0c094c544c6006cc79e87d8612999f1a5d43b769b89181f23c", size = 1878092, upload-time = "2025-11-04T13:41:33.21Z" },
- { url = "https://files.pythonhosted.org/packages/71/48/36fb760642d568925953bcc8116455513d6e34c4beaa37544118c36aba6d/pydantic_core-2.41.5-cp314-cp314t-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:72f6c8b11857a856bcfa48c86f5368439f74453563f951e473514579d44aa612", size = 2053385, upload-time = "2025-11-04T13:41:35.508Z" },
- { url = "https://files.pythonhosted.org/packages/20/25/92dc684dd8eb75a234bc1c764b4210cf2646479d54b47bf46061657292a8/pydantic_core-2.41.5-cp314-cp314t-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:5cb1b2f9742240e4bb26b652a5aeb840aa4b417c7748b6f8387927bc6e45e40d", size = 2218832, upload-time = "2025-11-04T13:41:37.732Z" },
- { url = "https://files.pythonhosted.org/packages/e2/09/f53e0b05023d3e30357d82eb35835d0f6340ca344720a4599cd663dca599/pydantic_core-2.41.5-cp314-cp314t-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:bd3d54f38609ff308209bd43acea66061494157703364ae40c951f83ba99a1a9", size = 2327585, upload-time = "2025-11-04T13:41:40Z" },
- { url = "https://files.pythonhosted.org/packages/aa/4e/2ae1aa85d6af35a39b236b1b1641de73f5a6ac4d5a7509f77b814885760c/pydantic_core-2.41.5-cp314-cp314t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:2ff4321e56e879ee8d2a879501c8e469414d948f4aba74a2d4593184eb326660", size = 2041078, upload-time = "2025-11-04T13:41:42.323Z" },
- { url = "https://files.pythonhosted.org/packages/cd/13/2e215f17f0ef326fc72afe94776edb77525142c693767fc347ed6288728d/pydantic_core-2.41.5-cp314-cp314t-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:d0d2568a8c11bf8225044aa94409e21da0cb09dcdafe9ecd10250b2baad531a9", size = 2173914, upload-time = "2025-11-04T13:41:45.221Z" },
- { url = "https://files.pythonhosted.org/packages/02/7a/f999a6dcbcd0e5660bc348a3991c8915ce6599f4f2c6ac22f01d7a10816c/pydantic_core-2.41.5-cp314-cp314t-musllinux_1_1_aarch64.whl", hash = "sha256:a39455728aabd58ceabb03c90e12f71fd30fa69615760a075b9fec596456ccc3", size = 2129560, upload-time = "2025-11-04T13:41:47.474Z" },
- { url = "https://files.pythonhosted.org/packages/3a/b1/6c990ac65e3b4c079a4fb9f5b05f5b013afa0f4ed6780a3dd236d2cbdc64/pydantic_core-2.41.5-cp314-cp314t-musllinux_1_1_armv7l.whl", hash = "sha256:239edca560d05757817c13dc17c50766136d21f7cd0fac50295499ae24f90fdf", size = 2329244, upload-time = "2025-11-04T13:41:49.992Z" },
- { url = "https://files.pythonhosted.org/packages/d9/02/3c562f3a51afd4d88fff8dffb1771b30cfdfd79befd9883ee094f5b6c0d8/pydantic_core-2.41.5-cp314-cp314t-musllinux_1_1_x86_64.whl", hash = "sha256:2a5e06546e19f24c6a96a129142a75cee553cc018ffee48a460059b1185f4470", size = 2331955, upload-time = "2025-11-04T13:41:54.079Z" },
- { url = "https://files.pythonhosted.org/packages/5c/96/5fb7d8c3c17bc8c62fdb031c47d77a1af698f1d7a406b0f79aaa1338f9ad/pydantic_core-2.41.5-cp314-cp314t-win32.whl", hash = "sha256:b4ececa40ac28afa90871c2cc2b9ffd2ff0bf749380fbdf57d165fd23da353aa", size = 1988906, upload-time = "2025-11-04T13:41:56.606Z" },
- { url = "https://files.pythonhosted.org/packages/22/ed/182129d83032702912c2e2d8bbe33c036f342cc735737064668585dac28f/pydantic_core-2.41.5-cp314-cp314t-win_amd64.whl", hash = "sha256:80aa89cad80b32a912a65332f64a4450ed00966111b6615ca6816153d3585a8c", size = 1981607, upload-time = "2025-11-04T13:41:58.889Z" },
- { url = "https://files.pythonhosted.org/packages/9f/ed/068e41660b832bb0b1aa5b58011dea2a3fe0ba7861ff38c4d4904c1c1a99/pydantic_core-2.41.5-cp314-cp314t-win_arm64.whl", hash = "sha256:35b44f37a3199f771c3eaa53051bc8a70cd7b54f333531c59e29fd4db5d15008", size = 1974769, upload-time = "2025-11-04T13:42:01.186Z" },
- { url = "https://files.pythonhosted.org/packages/54/db/160dffb57ed9a3705c4cbcbff0ac03bdae45f1ca7d58ab74645550df3fbd/pydantic_core-2.41.5-cp39-cp39-macosx_10_12_x86_64.whl", hash = "sha256:8bfeaf8735be79f225f3fefab7f941c712aaca36f1128c9d7e2352ee1aa87bdf", size = 2107999, upload-time = "2025-11-04T13:42:03.885Z" },
- { url = "https://files.pythonhosted.org/packages/a3/7d/88e7de946f60d9263cc84819f32513520b85c0f8322f9b8f6e4afc938383/pydantic_core-2.41.5-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:346285d28e4c8017da95144c7f3acd42740d637ff41946af5ce6e5e420502dd5", size = 1929745, upload-time = "2025-11-04T13:42:06.075Z" },
- { url = "https://files.pythonhosted.org/packages/d5/c2/aef51e5b283780e85e99ff19db0f05842d2d4a8a8cd15e63b0280029b08f/pydantic_core-2.41.5-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a75dafbf87d6276ddc5b2bf6fae5254e3d0876b626eb24969a574fff9149ee5d", size = 1920220, upload-time = "2025-11-04T13:42:08.457Z" },
- { url = "https://files.pythonhosted.org/packages/c7/97/492ab10f9ac8695cd76b2fdb24e9e61f394051df71594e9bcc891c9f586e/pydantic_core-2.41.5-cp39-cp39-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:7b93a4d08587e2b7e7882de461e82b6ed76d9026ce91ca7915e740ecc7855f60", size = 2067296, upload-time = "2025-11-04T13:42:10.817Z" },
- { url = "https://files.pythonhosted.org/packages/ec/23/984149650e5269c59a2a4c41d234a9570adc68ab29981825cfaf4cfad8f4/pydantic_core-2.41.5-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:e8465ab91a4bd96d36dde3263f06caa6a8a6019e4113f24dc753d79a8b3a3f82", size = 2231548, upload-time = "2025-11-04T13:42:13.843Z" },
- { url = "https://files.pythonhosted.org/packages/71/0c/85bcbb885b9732c28bec67a222dbed5ed2d77baee1f8bba2002e8cd00c5c/pydantic_core-2.41.5-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:299e0a22e7ae2b85c1a57f104538b2656e8ab1873511fd718a1c1c6f149b77b5", size = 2362571, upload-time = "2025-11-04T13:42:16.208Z" },
- { url = "https://files.pythonhosted.org/packages/c0/4a/412d2048be12c334003e9b823a3fa3d038e46cc2d64dd8aab50b31b65499/pydantic_core-2.41.5-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:707625ef0983fcfb461acfaf14de2067c5942c6bb0f3b4c99158bed6fedd3cf3", size = 2068175, upload-time = "2025-11-04T13:42:18.911Z" },
- { url = "https://files.pythonhosted.org/packages/73/f4/c58b6a776b502d0a5540ad02e232514285513572060f0d78f7832ca3c98b/pydantic_core-2.41.5-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:f41eb9797986d6ebac5e8edff36d5cef9de40def462311b3eb3eeded1431e425", size = 2177203, upload-time = "2025-11-04T13:42:22.578Z" },
- { url = "https://files.pythonhosted.org/packages/ed/ae/f06ea4c7e7a9eead3d165e7623cd2ea0cb788e277e4f935af63fc98fa4e6/pydantic_core-2.41.5-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:0384e2e1021894b1ff5a786dbf94771e2986ebe2869533874d7e43bc79c6f504", size = 2148191, upload-time = "2025-11-04T13:42:24.89Z" },
- { url = "https://files.pythonhosted.org/packages/c1/57/25a11dcdc656bf5f8b05902c3c2934ac3ea296257cc4a3f79a6319e61856/pydantic_core-2.41.5-cp39-cp39-musllinux_1_1_armv7l.whl", hash = "sha256:f0cd744688278965817fd0839c4a4116add48d23890d468bc436f78beb28abf5", size = 2343907, upload-time = "2025-11-04T13:42:27.683Z" },
- { url = "https://files.pythonhosted.org/packages/96/82/e33d5f4933d7a03327c0c43c65d575e5919d4974ffc026bc917a5f7b9f61/pydantic_core-2.41.5-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:753e230374206729bf0a807954bcc6c150d3743928a73faffee51ac6557a03c3", size = 2322174, upload-time = "2025-11-04T13:42:30.776Z" },
- { url = "https://files.pythonhosted.org/packages/81/45/4091be67ce9f469e81656f880f3506f6a5624121ec5eb3eab37d7581897d/pydantic_core-2.41.5-cp39-cp39-win32.whl", hash = "sha256:873e0d5b4fb9b89ef7c2d2a963ea7d02879d9da0da8d9d4933dee8ee86a8b460", size = 1990353, upload-time = "2025-11-04T13:42:33.111Z" },
- { url = "https://files.pythonhosted.org/packages/44/8a/a98aede18db6e9cd5d66bcacd8a409fcf8134204cdede2e7de35c5a2c5ef/pydantic_core-2.41.5-cp39-cp39-win_amd64.whl", hash = "sha256:e4f4a984405e91527a0d62649ee21138f8e3d0ef103be488c1dc11a80d7f184b", size = 2015698, upload-time = "2025-11-04T13:42:35.484Z" },
- { url = "https://files.pythonhosted.org/packages/11/72/90fda5ee3b97e51c494938a4a44c3a35a9c96c19bba12372fb9c634d6f57/pydantic_core-2.41.5-graalpy311-graalpy242_311_native-macosx_10_12_x86_64.whl", hash = "sha256:b96d5f26b05d03cc60f11a7761a5ded1741da411e7fe0909e27a5e6a0cb7b034", size = 2115441, upload-time = "2025-11-04T13:42:39.557Z" },
- { url = "https://files.pythonhosted.org/packages/1f/53/8942f884fa33f50794f119012dc6a1a02ac43a56407adaac20463df8e98f/pydantic_core-2.41.5-graalpy311-graalpy242_311_native-macosx_11_0_arm64.whl", hash = "sha256:634e8609e89ceecea15e2d61bc9ac3718caaaa71963717bf3c8f38bfde64242c", size = 1930291, upload-time = "2025-11-04T13:42:42.169Z" },
- { url = "https://files.pythonhosted.org/packages/79/c8/ecb9ed9cd942bce09fc888ee960b52654fbdbede4ba6c2d6e0d3b1d8b49c/pydantic_core-2.41.5-graalpy311-graalpy242_311_native-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:93e8740d7503eb008aa2df04d3b9735f845d43ae845e6dcd2be0b55a2da43cd2", size = 1948632, upload-time = "2025-11-04T13:42:44.564Z" },
- { url = "https://files.pythonhosted.org/packages/2e/1b/687711069de7efa6af934e74f601e2a4307365e8fdc404703afc453eab26/pydantic_core-2.41.5-graalpy311-graalpy242_311_native-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f15489ba13d61f670dcc96772e733aad1a6f9c429cc27574c6cdaed82d0146ad", size = 2138905, upload-time = "2025-11-04T13:42:47.156Z" },
- { url = "https://files.pythonhosted.org/packages/09/32/59b0c7e63e277fa7911c2fc70ccfb45ce4b98991e7ef37110663437005af/pydantic_core-2.41.5-graalpy312-graalpy250_312_native-macosx_10_12_x86_64.whl", hash = "sha256:7da7087d756b19037bc2c06edc6c170eeef3c3bafcb8f532ff17d64dc427adfd", size = 2110495, upload-time = "2025-11-04T13:42:49.689Z" },
- { url = "https://files.pythonhosted.org/packages/aa/81/05e400037eaf55ad400bcd318c05bb345b57e708887f07ddb2d20e3f0e98/pydantic_core-2.41.5-graalpy312-graalpy250_312_native-macosx_11_0_arm64.whl", hash = "sha256:aabf5777b5c8ca26f7824cb4a120a740c9588ed58df9b2d196ce92fba42ff8dc", size = 1915388, upload-time = "2025-11-04T13:42:52.215Z" },
- { url = "https://files.pythonhosted.org/packages/6e/0d/e3549b2399f71d56476b77dbf3cf8937cec5cd70536bdc0e374a421d0599/pydantic_core-2.41.5-graalpy312-graalpy250_312_native-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:c007fe8a43d43b3969e8469004e9845944f1a80e6acd47c150856bb87f230c56", size = 1942879, upload-time = "2025-11-04T13:42:56.483Z" },
- { url = "https://files.pythonhosted.org/packages/f7/07/34573da085946b6a313d7c42f82f16e8920bfd730665de2d11c0c37a74b5/pydantic_core-2.41.5-graalpy312-graalpy250_312_native-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:76d0819de158cd855d1cbb8fcafdf6f5cf1eb8e470abe056d5d161106e38062b", size = 2139017, upload-time = "2025-11-04T13:42:59.471Z" },
- { url = "https://files.pythonhosted.org/packages/e6/b0/1a2aa41e3b5a4ba11420aba2d091b2d17959c8d1519ece3627c371951e73/pydantic_core-2.41.5-pp310-pypy310_pp73-macosx_10_12_x86_64.whl", hash = "sha256:b5819cd790dbf0c5eb9f82c73c16b39a65dd6dd4d1439dcdea7816ec9adddab8", size = 2103351, upload-time = "2025-11-04T13:43:02.058Z" },
- { url = "https://files.pythonhosted.org/packages/a4/ee/31b1f0020baaf6d091c87900ae05c6aeae101fa4e188e1613c80e4f1ea31/pydantic_core-2.41.5-pp310-pypy310_pp73-macosx_11_0_arm64.whl", hash = "sha256:5a4e67afbc95fa5c34cf27d9089bca7fcab4e51e57278d710320a70b956d1b9a", size = 1925363, upload-time = "2025-11-04T13:43:05.159Z" },
- { url = "https://files.pythonhosted.org/packages/e1/89/ab8e86208467e467a80deaca4e434adac37b10a9d134cd2f99b28a01e483/pydantic_core-2.41.5-pp310-pypy310_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:ece5c59f0ce7d001e017643d8d24da587ea1f74f6993467d85ae8a5ef9d4f42b", size = 2135615, upload-time = "2025-11-04T13:43:08.116Z" },
- { url = "https://files.pythonhosted.org/packages/99/0a/99a53d06dd0348b2008f2f30884b34719c323f16c3be4e6cc1203b74a91d/pydantic_core-2.41.5-pp310-pypy310_pp73-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:16f80f7abe3351f8ea6858914ddc8c77e02578544a0ebc15b4c2e1a0e813b0b2", size = 2175369, upload-time = "2025-11-04T13:43:12.49Z" },
- { url = "https://files.pythonhosted.org/packages/6d/94/30ca3b73c6d485b9bb0bc66e611cff4a7138ff9736b7e66bcf0852151636/pydantic_core-2.41.5-pp310-pypy310_pp73-musllinux_1_1_aarch64.whl", hash = "sha256:33cb885e759a705b426baada1fe68cbb0a2e68e34c5d0d0289a364cf01709093", size = 2144218, upload-time = "2025-11-04T13:43:15.431Z" },
- { url = "https://files.pythonhosted.org/packages/87/57/31b4f8e12680b739a91f472b5671294236b82586889ef764b5fbc6669238/pydantic_core-2.41.5-pp310-pypy310_pp73-musllinux_1_1_armv7l.whl", hash = "sha256:c8d8b4eb992936023be7dee581270af5c6e0697a8559895f527f5b7105ecd36a", size = 2329951, upload-time = "2025-11-04T13:43:18.062Z" },
- { url = "https://files.pythonhosted.org/packages/7d/73/3c2c8edef77b8f7310e6fb012dbc4b8551386ed575b9eb6fb2506e28a7eb/pydantic_core-2.41.5-pp310-pypy310_pp73-musllinux_1_1_x86_64.whl", hash = "sha256:242a206cd0318f95cd21bdacff3fcc3aab23e79bba5cac3db5a841c9ef9c6963", size = 2318428, upload-time = "2025-11-04T13:43:20.679Z" },
- { url = "https://files.pythonhosted.org/packages/2f/02/8559b1f26ee0d502c74f9cca5c0d2fd97e967e083e006bbbb4e97f3a043a/pydantic_core-2.41.5-pp310-pypy310_pp73-win_amd64.whl", hash = "sha256:d3a978c4f57a597908b7e697229d996d77a6d3c94901e9edee593adada95ce1a", size = 2147009, upload-time = "2025-11-04T13:43:23.286Z" },
- { url = "https://files.pythonhosted.org/packages/5f/9b/1b3f0e9f9305839d7e84912f9e8bfbd191ed1b1ef48083609f0dabde978c/pydantic_core-2.41.5-pp311-pypy311_pp73-macosx_10_12_x86_64.whl", hash = "sha256:b2379fa7ed44ddecb5bfe4e48577d752db9fc10be00a6b7446e9663ba143de26", size = 2101980, upload-time = "2025-11-04T13:43:25.97Z" },
- { url = "https://files.pythonhosted.org/packages/a4/ed/d71fefcb4263df0da6a85b5d8a7508360f2f2e9b3bf5814be9c8bccdccc1/pydantic_core-2.41.5-pp311-pypy311_pp73-macosx_11_0_arm64.whl", hash = "sha256:266fb4cbf5e3cbd0b53669a6d1b039c45e3ce651fd5442eff4d07c2cc8d66808", size = 1923865, upload-time = "2025-11-04T13:43:28.763Z" },
- { url = "https://files.pythonhosted.org/packages/ce/3a/626b38db460d675f873e4444b4bb030453bbe7b4ba55df821d026a0493c4/pydantic_core-2.41.5-pp311-pypy311_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:58133647260ea01e4d0500089a8c4f07bd7aa6ce109682b1426394988d8aaacc", size = 2134256, upload-time = "2025-11-04T13:43:31.71Z" },
- { url = "https://files.pythonhosted.org/packages/83/d9/8412d7f06f616bbc053d30cb4e5f76786af3221462ad5eee1f202021eb4e/pydantic_core-2.41.5-pp311-pypy311_pp73-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:287dad91cfb551c363dc62899a80e9e14da1f0e2b6ebde82c806612ca2a13ef1", size = 2174762, upload-time = "2025-11-04T13:43:34.744Z" },
- { url = "https://files.pythonhosted.org/packages/55/4c/162d906b8e3ba3a99354e20faa1b49a85206c47de97a639510a0e673f5da/pydantic_core-2.41.5-pp311-pypy311_pp73-musllinux_1_1_aarch64.whl", hash = "sha256:03b77d184b9eb40240ae9fd676ca364ce1085f203e1b1256f8ab9984dca80a84", size = 2143141, upload-time = "2025-11-04T13:43:37.701Z" },
- { url = "https://files.pythonhosted.org/packages/1f/f2/f11dd73284122713f5f89fc940f370d035fa8e1e078d446b3313955157fe/pydantic_core-2.41.5-pp311-pypy311_pp73-musllinux_1_1_armv7l.whl", hash = "sha256:a668ce24de96165bb239160b3d854943128f4334822900534f2fe947930e5770", size = 2330317, upload-time = "2025-11-04T13:43:40.406Z" },
- { url = "https://files.pythonhosted.org/packages/88/9d/b06ca6acfe4abb296110fb1273a4d848a0bfb2ff65f3ee92127b3244e16b/pydantic_core-2.41.5-pp311-pypy311_pp73-musllinux_1_1_x86_64.whl", hash = "sha256:f14f8f046c14563f8eb3f45f499cc658ab8d10072961e07225e507adb700e93f", size = 2316992, upload-time = "2025-11-04T13:43:43.602Z" },
- { url = "https://files.pythonhosted.org/packages/36/c7/cfc8e811f061c841d7990b0201912c3556bfeb99cdcb7ed24adc8d6f8704/pydantic_core-2.41.5-pp311-pypy311_pp73-win_amd64.whl", hash = "sha256:56121965f7a4dc965bff783d70b907ddf3d57f6eba29b6d2e5dabfaf07799c51", size = 2145302, upload-time = "2025-11-04T13:43:46.64Z" },
+ { name = "typing-extensions", version = "4.16.0", source = { registry = "https://pypi.org/simple" } },
+]
+sdist = { url = "https://files.pythonhosted.org/packages/9d/56/921726b776ace8d8f5db44c4ef961006580d91dc52b803c489fafd1aa249/pydantic_core-2.46.4.tar.gz", hash = "sha256:62f875393d7f270851f20523dd2e29f082bcc82292d66db2b64ea71f64b6e1c1", size = 471464, upload-time = "2026-05-06T13:37:06.98Z" }
+wheels = [
+ { url = "https://files.pythonhosted.org/packages/e7/08/f1ba952f1c8ae5581c70fa9c6da89f247b83e3dd8c09c035d5d7931fc23d/pydantic_core-2.46.4-cp310-cp310-macosx_10_12_x86_64.whl", hash = "sha256:a396dcc17e5a0b164dbe026896245a4fa9ff402edca1dff0be3d53a517f74de4", size = 2113146, upload-time = "2026-05-06T13:37:36.537Z" },
+ { url = "https://files.pythonhosted.org/packages/56/c6/65f646c7ff09bd257f660434adb45c4dfcbbcebcc030562fecf6f5bf887d/pydantic_core-2.46.4-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:da4b951fe36dc7c3a1ccb4e3cd1747c3542b8c9ceede8fc86cae054e764485f5", size = 1949769, upload-time = "2026-05-06T13:37:46.365Z" },
+ { url = "https://files.pythonhosted.org/packages/64/ba/bfb1d928fd5b49e1258935ff104ae356e9fd89384a55bf9f847e9193ad40/pydantic_core-2.46.4-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:bb63e0198ca18aad131c089b9204c23079c3afa95487e561f4c522d519e55aba", size = 1974958, upload-time = "2026-05-06T13:37:28.611Z" },
+ { url = "https://files.pythonhosted.org/packages/4e/74/76223bfb117b64af743c9b6670d1364516f5c0604f96b48f3272f6af6cc6/pydantic_core-2.46.4-cp310-cp310-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:f47286a97f0bc9b8859519809077b91b2cefe4ae47fcbf5e466a009c1c5d742b", size = 2042118, upload-time = "2026-05-06T13:36:55.216Z" },
+ { url = "https://files.pythonhosted.org/packages/cb/7b/848732968bc8f48f3187542f08358b9d842db564147b256669426ebb1652/pydantic_core-2.46.4-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:905a0ed8ea6f2d61c1738835f99b699348d7857379083e5fc497fa0c967a407c", size = 2222876, upload-time = "2026-05-06T13:38:25.455Z" },
+ { url = "https://files.pythonhosted.org/packages/b5/2f/e90b63ee2e14bd8d3db8f705a6d75d64e6ee1b7c2c8833747ce706e1e0ce/pydantic_core-2.46.4-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:ea793e075b70290d89d8142074262885d3f7da19634845135751bd6344f73b50", size = 2286703, upload-time = "2026-05-06T13:37:53.304Z" },
+ { url = "https://files.pythonhosted.org/packages/ba/1e/acc4d70f88a0a277e4a1fa77ebb985ceabaf900430f875bf9338e11c9420/pydantic_core-2.46.4-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:395aebd9183f9d112f569aeb5b2214d1a10a33bec8456447f7fbdfa51d38d4cd", size = 2092042, upload-time = "2026-05-06T13:38:46.981Z" },
+ { url = "https://files.pythonhosted.org/packages/a9/da/0a422b57bf8504102bf3c4ccea9c41bab5a5cee6a54650acf8faf67f5a24/pydantic_core-2.46.4-cp310-cp310-manylinux_2_31_riscv64.whl", hash = "sha256:b078afbc25f3a1436c7a1d2cd3e322497ee99615ba97c563566fdf46aff1ee01", size = 2117231, upload-time = "2026-05-06T13:39:23.146Z" },
+ { url = "https://files.pythonhosted.org/packages/bd/2a/2ac13c3af305843e23c5078c53d135656b3f05a2fd78cb7bbbb12e97b473/pydantic_core-2.46.4-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:f747929cf940cddb5b3668a390056ddd5ba2e5010615ea2dcf4f9c4f3ab8791d", size = 2168388, upload-time = "2026-05-06T13:40:08.06Z" },
+ { url = "https://files.pythonhosted.org/packages/72/04/2beacf7e1607e93eefe4aed1b4709f079b905fb77530179d4f7c71745f22/pydantic_core-2.46.4-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:daa27d92c36f24388fe3ad306b174781c747627f134452e4f128ea00ce1fe8c4", size = 2184769, upload-time = "2026-05-06T13:38:13.901Z" },
+ { url = "https://files.pythonhosted.org/packages/9e/29/d2b9fd9f539133548eaf622c06a4ce176cb46ac59f32d0359c4abc0de047/pydantic_core-2.46.4-cp310-cp310-musllinux_1_1_armv7l.whl", hash = "sha256:19e51f073cd3df251856a8a4189fbdf1de4012c3ebacfb1884f94f1eb406079f", size = 2319312, upload-time = "2026-05-06T13:39:08.24Z" },
+ { url = "https://files.pythonhosted.org/packages/7c/af/0f7a5b85fec6075bea96e3ef9187de38fccced0de92c1e7feda8d5cc7bb9/pydantic_core-2.46.4-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:c1747f85cee84c26985853c6f3d9bd3e75da5212912443fa111c113b9c246f39", size = 2361817, upload-time = "2026-05-06T13:38:43.2Z" },
+ { url = "https://files.pythonhosted.org/packages/25/a4/73363fec545fd3ec025490bdda2743c56d0dd5b6266b1a53bbe9e4265375/pydantic_core-2.46.4-cp310-cp310-win32.whl", hash = "sha256:2f84c03c8607173d16b5a854ec68a2f9079ae03237a54fb506d13af47e1d018d", size = 1987085, upload-time = "2026-05-06T13:39:25.497Z" },
+ { url = "https://files.pythonhosted.org/packages/01/aa/62f082da2c91fac1c234bc9ee0066257ce83f0604abd72e4c9d5991f2d84/pydantic_core-2.46.4-cp310-cp310-win_amd64.whl", hash = "sha256:8358a950c8909158e3df31538a7e4edc2d7265a7c54b47f0864d9e5bae9dcebf", size = 2074311, upload-time = "2026-05-06T13:39:59.922Z" },
+ { url = "https://files.pythonhosted.org/packages/5c/fa/6d7708d2cfc1a832acb6aeb0cd16e801902df8a0f583bb3b4b527fde022e/pydantic_core-2.46.4-cp311-cp311-macosx_10_12_x86_64.whl", hash = "sha256:0e96592440881c74a213e5ad528e2b24d3d4f940de2766bed9010ab1d9e51594", size = 2111872, upload-time = "2026-05-06T13:40:27.596Z" },
+ { url = "https://files.pythonhosted.org/packages/ae/6f/aa064a3e74b5745afbdf250594f38e7ead05e2d651bcb35994b9417a0d4d/pydantic_core-2.46.4-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:e0d65b8c354be7fb5f720c3caa8bc940bc2d20ce749c8e06135f07f8ed95dd7c", size = 1948255, upload-time = "2026-05-06T13:39:12.574Z" },
+ { url = "https://files.pythonhosted.org/packages/43/3a/41114a9f7569b84b4d84e7a018c57c56347dac30c0d4a872946ec4e36c46/pydantic_core-2.46.4-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:7bfb192b3f4b9e8a89b6277b6ce787564f62cfd272055f6e685726b111dc7826", size = 1972827, upload-time = "2026-05-06T13:38:19.841Z" },
+ { url = "https://files.pythonhosted.org/packages/ef/25/1ab42e8048fe551934d9884e8d64daa7e990ad386f310a15981aeb6a5b08/pydantic_core-2.46.4-cp311-cp311-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:9037063db01f09b09e237c282b6792bd4da634b5402c4e7f0c61effed7701a04", size = 2041051, upload-time = "2026-05-06T13:38:10.447Z" },
+ { url = "https://files.pythonhosted.org/packages/94/c2/1a934597ddf08da410385b3b7aae91956a5a76c635effef456074fad7e88/pydantic_core-2.46.4-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:fc010ab034c8c7452522748bf937df58020d256ccae0874463d1f4d01758af8e", size = 2221314, upload-time = "2026-05-06T13:40:13.089Z" },
+ { url = "https://files.pythonhosted.org/packages/02/6d/9e8ad178c9c4df27ad3c8f25d1fe2a7ab0d2ba0559fad4aee5d3d1f16771/pydantic_core-2.46.4-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:8c5dac79fa1614d1e06ca695109c6105923bd9c7d1d6c918d4e637b7e6b32fd3", size = 2285146, upload-time = "2026-05-06T13:38:59.224Z" },
+ { url = "https://files.pythonhosted.org/packages/80/50/540cd3aeefc041beb111125c4bff779831a2111fc6b15a9138cda277d32c/pydantic_core-2.46.4-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f9fa868638bf362d3d138ea55829cefb3d5f4b0d7f142234382a15e2485dbec4", size = 2089685, upload-time = "2026-05-06T13:38:17.762Z" },
+ { url = "https://files.pythonhosted.org/packages/6b/a4/b440ad35f05f6a38f89fa0f149accb3f0e02be94ca5e15f3c449a61b4bc9/pydantic_core-2.46.4-cp311-cp311-manylinux_2_31_riscv64.whl", hash = "sha256:17299feefe090f2caa5b8e37222bb5f663e4935a8bfa6931d4102e5df1a9f398", size = 2115420, upload-time = "2026-05-06T13:37:58.195Z" },
+ { url = "https://files.pythonhosted.org/packages/99/61/de4f55db8dfd57bfdfa9a12ec90fe1b57c4f41062f7ca86f08586b3e0ac0/pydantic_core-2.46.4-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:4c63ebc82684aa89d9a3bcbd13d515b3be44250dc68dd3bd81526c1cb31286c3", size = 2165122, upload-time = "2026-05-06T13:37:01.167Z" },
+ { url = "https://files.pythonhosted.org/packages/f7/52/7c529d7bdb2d1068bd52f51fe32572c8301f9a4febf1948f10639f1436f5/pydantic_core-2.46.4-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:aaa2a54443eff1950ba5ddc6b6ccda0d9c84a364276a62f969bdf2a390650848", size = 2182573, upload-time = "2026-05-06T13:38:45.04Z" },
+ { url = "https://files.pythonhosted.org/packages/37/b3/7c40325848ba78247f2812dcf9c7274e38cd801820ca6dd9fe63bcfb0eb4/pydantic_core-2.46.4-cp311-cp311-musllinux_1_1_armv7l.whl", hash = "sha256:18e5ceec2ab67e6d5f1a9085e5a24c9c4e2ac4545730bfe668680bca05e555f3", size = 2317139, upload-time = "2026-05-06T13:37:15.539Z" },
+ { url = "https://files.pythonhosted.org/packages/d9/37/f913f81a657c865b75da6c0dbed79876073c2a43b5bd9edbe8da785e4d49/pydantic_core-2.46.4-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:a0f62d0a58f4e7da165457e995725421e0064f2255d8eccebc49f41bbc23b109", size = 2360433, upload-time = "2026-05-06T13:37:30.099Z" },
+ { url = "https://files.pythonhosted.org/packages/c4/67/6acaa1be2567f9256b056d8477158cac7240813956ce86e49deae8e173b4/pydantic_core-2.46.4-cp311-cp311-win32.whl", hash = "sha256:041bde0a48fd37cf71cab1c9d56d3e8625a3793fef1f7dd232b3ff37e978ecda", size = 1985513, upload-time = "2026-05-06T13:38:15.669Z" },
+ { url = "https://files.pythonhosted.org/packages/aa/e6/c505f83dfeda9a2e5c995cfd872949e4d05e12f7feb3dca72f633daefa94/pydantic_core-2.46.4-cp311-cp311-win_amd64.whl", hash = "sha256:6f2eeda33a839975441c86a4119e1383c50b47faf0cbb5176985565c6bb02c33", size = 2071114, upload-time = "2026-05-06T13:40:35.416Z" },
+ { url = "https://files.pythonhosted.org/packages/0f/da/7a263a96d965d9d0df5e8de8a475f33495451117035b09acb110288c381f/pydantic_core-2.46.4-cp311-cp311-win_arm64.whl", hash = "sha256:14f4c5d6db102bd796a627bbb3a17b4cf4574b9ae861d8b7c9a9661c6dd3362d", size = 2044298, upload-time = "2026-05-06T13:38:29.754Z" },
+ { url = "https://files.pythonhosted.org/packages/ce/8c/af022f0af448d7747c5154288d46b5f2bc5f17366eaa0e23e9aa04d59f3b/pydantic_core-2.46.4-cp312-cp312-macosx_10_12_x86_64.whl", hash = "sha256:3245406455a5d98187ec35530fd772b1d799b26667980872c8d4614991e2c4a2", size = 2106158, upload-time = "2026-05-06T13:38:57.215Z" },
+ { url = "https://files.pythonhosted.org/packages/19/95/6195171e385007300f0f5574592e467c568becce2d937a0b6804f218bc49/pydantic_core-2.46.4-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:962ccbab7b642487b1d8b7df90ef677e03134cf1fd8880bf698649b22a69371f", size = 1951724, upload-time = "2026-05-06T13:37:02.697Z" },
+ { url = "https://files.pythonhosted.org/packages/8e/bc/f47d1ff9cbb1620e1b5b697eef06010035735f07820180e74178226b27b3/pydantic_core-2.46.4-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:8233f2947cf85404441fd7e0085f53b10c93e0ee78611099b5c7237e36aacbf7", size = 1975742, upload-time = "2026-05-06T13:37:09.448Z" },
+ { url = "https://files.pythonhosted.org/packages/5b/11/9b9a5b0306345664a2da6410877af6e8082481b5884b3ddd78d47c6013ce/pydantic_core-2.46.4-cp312-cp312-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:3a233125ac121aa3ffba9a2b59edfc4a985a76092dc8279586ab4b71390875e7", size = 2052418, upload-time = "2026-05-06T13:37:38.234Z" },
+ { url = "https://files.pythonhosted.org/packages/f1/b7/a65fec226f5d78fc39f4a13c4cc0c768c22b113438f60c14adc9d2865038/pydantic_core-2.46.4-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:5b712b53160b79a5850310b912a5ef8e57e56947c8ad690c227f5c9d7e561712", size = 2232274, upload-time = "2026-05-06T13:38:27.753Z" },
+ { url = "https://files.pythonhosted.org/packages/68/f0/92039db98b907ef49269a8271f67db9cb78ae2fc68062ef7e4e77adb5f61/pydantic_core-2.46.4-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:9401557acd873c3a7f3eb9383edef8ac4968f9510e340f4808d427e75667e7b4", size = 2309940, upload-time = "2026-05-06T13:38:05.353Z" },
+ { url = "https://files.pythonhosted.org/packages/5f/97/2aab507d3d00ca626e8e57c1eac6a79e4e5fbcc63eb99733ff55d1717f65/pydantic_core-2.46.4-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:926c9541b14b12b1681dca8a0b75feb510b06c6341b70a8e500c2fdcff837cce", size = 2094516, upload-time = "2026-05-06T13:39:10.577Z" },
+ { url = "https://files.pythonhosted.org/packages/22/37/a8aca44d40d737dde2bc05b3c6c07dff0de07ce6f82e9f3167aeaf4d5dea/pydantic_core-2.46.4-cp312-cp312-manylinux_2_31_riscv64.whl", hash = "sha256:56cb4851bcaf3d117eddcef4fe66afd750a50274b0da8e22be256d10e5611987", size = 2136854, upload-time = "2026-05-06T13:40:22.59Z" },
+ { url = "https://files.pythonhosted.org/packages/24/99/fcef1b79238c06a8cbec70819ac722ba76e02bc8ada9b0fd66eba40da01b/pydantic_core-2.46.4-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:c68fcd102d71ea85c5b2dfac3f4f8476eff42a9e078fd5faefff6d145063536b", size = 2180306, upload-time = "2026-05-06T13:40:10.666Z" },
+ { url = "https://files.pythonhosted.org/packages/ae/6c/fc44000918855b42779d007ae63b0532794739027b2f417321cddbc44f6a/pydantic_core-2.46.4-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:b2f69dec1725e79a012d920df1707de5caf7ed5e08f3be4435e25803efc47458", size = 2190044, upload-time = "2026-05-06T13:40:43.231Z" },
+ { url = "https://files.pythonhosted.org/packages/6b/65/d9cadc9f1920d7a127ad2edba16c1db7916e59719285cd6c94600b0080ba/pydantic_core-2.46.4-cp312-cp312-musllinux_1_1_armv7l.whl", hash = "sha256:8d0820e8192167f80d88d64038e609c31452eeca865b4e1d9950a27a4609b00b", size = 2329133, upload-time = "2026-05-06T13:39:57.365Z" },
+ { url = "https://files.pythonhosted.org/packages/d0/cf/c873d91679f3a30bcf5e7ac280ce5573483e72295307685120d0d5ad3416/pydantic_core-2.46.4-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:fbdb89b3e1c94a30cc5edfce477c6e6a5dc4d8f84665b455c27582f211a1c72c", size = 2374464, upload-time = "2026-05-06T13:38:06.976Z" },
+ { url = "https://files.pythonhosted.org/packages/47/bd/6f2fc8188f31bf10590f1e98e7b306336161fac930a8c514cd7bd828c7dc/pydantic_core-2.46.4-cp312-cp312-win32.whl", hash = "sha256:9aa768456404a8bf48a4406685ac2bec8e72b62c69313734fa3b73cf33b3a894", size = 1974823, upload-time = "2026-05-06T13:40:47.985Z" },
+ { url = "https://files.pythonhosted.org/packages/40/8c/985c1d41ea1107c2534abd9870e4ed5c8e7669b5c308297835c001e7a1c4/pydantic_core-2.46.4-cp312-cp312-win_amd64.whl", hash = "sha256:e9c26f834c65f5752f3f06cb08cb86a913ceb7274d0db6e267808a708b46bc89", size = 2072919, upload-time = "2026-05-06T13:39:21.153Z" },
+ { url = "https://files.pythonhosted.org/packages/c4/ba/f463d006e0c47373ca7ec5e1a261c59dc01ef4d62b2657af925fb0deee3a/pydantic_core-2.46.4-cp312-cp312-win_arm64.whl", hash = "sha256:4fc73cb559bdb54b1134a706a2802a4cddd27a0633f5abb7e53056268751ac6a", size = 2027604, upload-time = "2026-05-06T13:39:03.753Z" },
+ { url = "https://files.pythonhosted.org/packages/51/a2/5d30b469c5267a17b39dec53208222f76a8d351dfac4af661888c5aee77d/pydantic_core-2.46.4-cp313-cp313-macosx_10_12_x86_64.whl", hash = "sha256:5d5902252db0d3cedf8d4a1bc68f70eeb430f7e4c7104c8c476753519b423008", size = 2106306, upload-time = "2026-05-06T13:37:48.029Z" },
+ { url = "https://files.pythonhosted.org/packages/c1/81/4fa520eaffa8bd7d1525e644cd6d39e7d60b1592bc5b516693c7340b50f1/pydantic_core-2.46.4-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:c94f0688e7b8d0a67abf40e57a7eaaecd17cc9586706a31b76c031f63df052b4", size = 1951906, upload-time = "2026-05-06T13:37:17.012Z" },
+ { url = "https://files.pythonhosted.org/packages/03/d5/fd02da45b659668b05923b17ba3a0100a0a3d5541e3bd8fcc4ecb711309e/pydantic_core-2.46.4-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:f027324c56cd5406ca49c124b0db10e56c69064fec039acc571c29020cc87c76", size = 1976802, upload-time = "2026-05-06T13:37:35.113Z" },
+ { url = "https://files.pythonhosted.org/packages/21/f2/95727e1368be3d3ed485eaab7adbd7dda408f33f7a36e8b48e0144002b91/pydantic_core-2.46.4-cp313-cp313-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:e739fee756ba1010f8bcccb534252e85a35fe45ae92c295a06059ce58b74ccd3", size = 2052446, upload-time = "2026-05-06T13:37:12.313Z" },
+ { url = "https://files.pythonhosted.org/packages/9c/86/5d99feea3f77c7234b8718075b23db11532773c1a0dbd9b9490215dc2eeb/pydantic_core-2.46.4-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:9d56801be94b86a9da183e5f3766e6310752b99ff647e38b09a9500d88e46e76", size = 2232757, upload-time = "2026-05-06T13:39:01.149Z" },
+ { url = "https://files.pythonhosted.org/packages/d2/3a/508ac615935ef7588cf6d9e9b91309fdc2da751af865e02a9098de88258c/pydantic_core-2.46.4-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:2412e734dcb48da14d4e4006b82b46b74f2518b8a26ee7e58c6844a6cd6d03c4", size = 2309275, upload-time = "2026-05-06T13:37:41.406Z" },
+ { url = "https://files.pythonhosted.org/packages/07/f8/41db9de19d7987d6b04715a02b3b40aea467000275d9d758ffaa31af7d50/pydantic_core-2.46.4-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:9551187363ffc0de2a00b2e47c25aeaeb1020b69b668762966df15fc5659dd5a", size = 2094467, upload-time = "2026-05-06T13:39:18.847Z" },
+ { url = "https://files.pythonhosted.org/packages/2c/e2/f35033184cb11d0052daf4416e8e10a502ea2ac006fc4f459aee872727d1/pydantic_core-2.46.4-cp313-cp313-manylinux_2_31_riscv64.whl", hash = "sha256:0186750b482eefa11d7f435892b09c5c606193ef3375bcf94aa00ae6bfb66262", size = 2134417, upload-time = "2026-05-06T13:40:17.944Z" },
+ { url = "https://files.pythonhosted.org/packages/7e/7b/6ceeb1cc90e193862f444ebe373d8fdf613f0a82572dde03fb10734c6c71/pydantic_core-2.46.4-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:5855698a4856556d86e8e6cd8434bc3ac0314ee8e12089ae0e143f64c6256e4e", size = 2179782, upload-time = "2026-05-06T13:40:32.618Z" },
+ { url = "https://files.pythonhosted.org/packages/5a/f2/c8d7773ede6af08036423a00ae0ceffce266c3c52a096c435d68c896083f/pydantic_core-2.46.4-cp313-cp313-musllinux_1_1_aarch64.whl", hash = "sha256:cbaf13819775b7f769bf4a1f066cb6df7a28d4480081a589828ef190226881cd", size = 2188782, upload-time = "2026-05-06T13:36:51.018Z" },
+ { url = "https://files.pythonhosted.org/packages/59/31/0c864784e31f09f05cdd87606f08923b9c9e7f6e51dd27f20f62f975ce9f/pydantic_core-2.46.4-cp313-cp313-musllinux_1_1_armv7l.whl", hash = "sha256:633147d34cf4550417f12e2b1a0383973bdf5cdfde212cb09e9a581cf10820be", size = 2328334, upload-time = "2026-05-06T13:40:37.764Z" },
+ { url = "https://files.pythonhosted.org/packages/c2/eb/4f6c8a41efa30baa755590f4141abf3a8c370fab610915733e74134a7270/pydantic_core-2.46.4-cp313-cp313-musllinux_1_1_x86_64.whl", hash = "sha256:82cf5301172168103724d49a1444d3378cb20cdee30b116a1bd6031236298a5d", size = 2372986, upload-time = "2026-05-06T13:39:34.152Z" },
+ { url = "https://files.pythonhosted.org/packages/5b/24/b375a480d53113860c299764bfe9f349a3dc9108b3adc0d7f0d786492ebf/pydantic_core-2.46.4-cp313-cp313-win32.whl", hash = "sha256:9fa8ae11da9e2b3126c6426f147e0fba88d96d65921799bb30c6abd1cb2c97fb", size = 1973693, upload-time = "2026-05-06T13:37:55.072Z" },
+ { url = "https://files.pythonhosted.org/packages/7e/e8/cff247591966f2d22ec8c003cd7587e27b7ba7b81ab2fb888e3ab75dc285/pydantic_core-2.46.4-cp313-cp313-win_amd64.whl", hash = "sha256:6b3ace8194b0e5204818c92802dcdca7fc6d88aabbb799d7c795540d9cd6d292", size = 2071819, upload-time = "2026-05-06T13:38:49.139Z" },
+ { url = "https://files.pythonhosted.org/packages/c6/1a/f4aee670d5670e9e148e0c82c7db98d780be566c6e6a97ee8035528ca0b3/pydantic_core-2.46.4-cp313-cp313-win_arm64.whl", hash = "sha256:184c081504d17f1c1066e430e117142b2c77d9448a97f7b65c6ac9fd9aee238d", size = 2027411, upload-time = "2026-05-06T13:40:45.796Z" },
+ { url = "https://files.pythonhosted.org/packages/8d/74/228a26ddad29c6672b805d9fd78e8d251cd04004fa7eed0e622096cd0250/pydantic_core-2.46.4-cp314-cp314-macosx_10_12_x86_64.whl", hash = "sha256:428e04521a40150c85216fc8b85e8d39fece235a9cf5e383761238c7fa9b96fb", size = 2102079, upload-time = "2026-05-06T13:38:41.019Z" },
+ { url = "https://files.pythonhosted.org/packages/ad/1f/8970b150a4b4365623ae00fc88603491f763c627311ae8031e3111356d6e/pydantic_core-2.46.4-cp314-cp314-macosx_11_0_arm64.whl", hash = "sha256:23ace664830ee0bfe014a0c7bc248b1f7f25ed7ad103852c317624a1083af462", size = 1952179, upload-time = "2026-05-06T13:36:59.812Z" },
+ { url = "https://files.pythonhosted.org/packages/95/30/5211a831ae054928054b2f79731661087a2bc5c01e825c672b3a4a8f1b3e/pydantic_core-2.46.4-cp314-cp314-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:ce5c1d2a8b27468f433ca974829c44060b8097eedc39933e3c206a90ee49c4a9", size = 1978926, upload-time = "2026-05-06T13:37:39.933Z" },
+ { url = "https://files.pythonhosted.org/packages/57/e9/689668733b1eb67adeef047db3c2e8788fcf65a7fd9c9e2b46b7744fe245/pydantic_core-2.46.4-cp314-cp314-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:7283d57845ecf5a163403eb0702dfc220cc4fbdd18919cb5ccea4f95ee1cdab4", size = 2046785, upload-time = "2026-05-06T13:38:01.995Z" },
+ { url = "https://files.pythonhosted.org/packages/60/d9/6715260422ff50a2109878fd24d948a6c3446bb2664f34ee78cd972b3acd/pydantic_core-2.46.4-cp314-cp314-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:8daafc69c93ee8a0204506a3b6b30f586ef54028f52aeeeb5c4cfc5184fd5914", size = 2228733, upload-time = "2026-05-06T13:40:50.371Z" },
+ { url = "https://files.pythonhosted.org/packages/18/ae/fdb2f64316afca925640f8e70bb1a564b0ec2721c1389e25b8eb4bf9a299/pydantic_core-2.46.4-cp314-cp314-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:cd2213145bcc2ba85884d0ac63d222fece9209678f77b9b4d76f054c561adb28", size = 2307534, upload-time = "2026-05-06T13:37:21.531Z" },
+ { url = "https://files.pythonhosted.org/packages/89/1d/8eff589b45bb8190a9d12c49cfad0f176a5cbd1534908a6b5125e2886239/pydantic_core-2.46.4-cp314-cp314-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:7a5f930472650a82629163023e630d160863fce524c616f4e5186e5de9d9a49b", size = 2099732, upload-time = "2026-05-06T13:39:31.942Z" },
+ { url = "https://files.pythonhosted.org/packages/06/d5/ee5a3366637fee41dee51a1fc91562dcf12ddbc68fda34e6b253da2324bb/pydantic_core-2.46.4-cp314-cp314-manylinux_2_31_riscv64.whl", hash = "sha256:c1b3f518abeca3aa13c712fd202306e145abf59a18b094a6bafb2d2bbf59192c", size = 2129627, upload-time = "2026-05-06T13:37:25.033Z" },
+ { url = "https://files.pythonhosted.org/packages/94/33/2414be571d2c6a6c4d08be21f9292b6d3fdb08949a97b6dfe985017821db/pydantic_core-2.46.4-cp314-cp314-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:1a7dd0b3ee80d90150e3495a3a13ac34dbcbfd4f012996a6a1d8900e91b5c0fb", size = 2179141, upload-time = "2026-05-06T13:37:14.046Z" },
+ { url = "https://files.pythonhosted.org/packages/7b/79/7daa95be995be0eecc4cf75064cb33f9bbbfe3fe0158caf2f0d4a996a5c7/pydantic_core-2.46.4-cp314-cp314-musllinux_1_1_aarch64.whl", hash = "sha256:3fb702cd90b0446a3a1c5e470bfa0dd23c0233b676a9099ddcc964fa6ca13898", size = 2184325, upload-time = "2026-05-06T13:36:53.615Z" },
+ { url = "https://files.pythonhosted.org/packages/9f/cb/d0a382f5c0de8a222dc61c65348e0ce831b1f68e0a018450d31c2cace3a5/pydantic_core-2.46.4-cp314-cp314-musllinux_1_1_armv7l.whl", hash = "sha256:b8458003118a712e66286df6a707db01c52c0f52f7db8e4a38f0da1d3b94fc4e", size = 2323990, upload-time = "2026-05-06T13:40:29.971Z" },
+ { url = "https://files.pythonhosted.org/packages/05/db/d9ba624cc4a5aced1598e88c04fdbd8310c8a69b9d38b9a3d39ce3a61ed7/pydantic_core-2.46.4-cp314-cp314-musllinux_1_1_x86_64.whl", hash = "sha256:372429a130e469c9cd698925ce5fc50940b7a1336b0d82038e63d5bbc4edc519", size = 2369978, upload-time = "2026-05-06T13:37:23.027Z" },
+ { url = "https://files.pythonhosted.org/packages/f2/20/d15df15ba918c423461905802bfd2981c3af0bfa0e40d05e13edbfa48bc3/pydantic_core-2.46.4-cp314-cp314-win32.whl", hash = "sha256:85bb3611ff1802f3ee7fdd7dbff26b56f343fb432d57a4728fdd49b6ef35e2f4", size = 1966354, upload-time = "2026-05-06T13:38:03.499Z" },
+ { url = "https://files.pythonhosted.org/packages/fc/b6/6b8de4c0a7d7ab3004c439c80c5c1e0a3e8d78bbae19379b01960383d9e5/pydantic_core-2.46.4-cp314-cp314-win_amd64.whl", hash = "sha256:811ff8e9c313ab425368bcbb36e5c4ebd7108c2bbf4e4089cfbb0b01eff63fac", size = 2072238, upload-time = "2026-05-06T13:39:40.807Z" },
+ { url = "https://files.pythonhosted.org/packages/32/36/51eb763beec1f4cf59b1db243a7dcc39cbb41230f050a09b9d69faaf0a48/pydantic_core-2.46.4-cp314-cp314-win_arm64.whl", hash = "sha256:bfec22eab3c8cc2ceec0248aec886624116dc079afa027ecc8ad4a7e62010f8a", size = 2018251, upload-time = "2026-05-06T13:37:26.72Z" },
+ { url = "https://files.pythonhosted.org/packages/e8/91/855af51d625b23aa987116a19e231d2aaef9c4a415273ddc189b79a45fee/pydantic_core-2.46.4-cp314-cp314t-macosx_10_12_x86_64.whl", hash = "sha256:af8244b2bef6aaad6d92cda81372de7f8c8d36c9f0c3ea36e827c60e7d9467a0", size = 2099593, upload-time = "2026-05-06T13:39:47.682Z" },
+ { url = "https://files.pythonhosted.org/packages/fb/1b/8784a54c65edb5f49f0a14d6977cf1b209bba85a4c77445b255c2de58ab3/pydantic_core-2.46.4-cp314-cp314t-macosx_11_0_arm64.whl", hash = "sha256:5a4330cdbc57162e4b3aa303f588ba752257694c9c9be3e7ebb11b4aca659b5d", size = 1935226, upload-time = "2026-05-06T13:40:40.428Z" },
+ { url = "https://files.pythonhosted.org/packages/e8/e7/1955d28d1afc56dd4b3ad7cc0cf39df1b9852964cf16e5d13912756d6d6b/pydantic_core-2.46.4-cp314-cp314t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:29c61fc04a3d840155ff08e475a04809278972fe6aef51e2720554e96367e34b", size = 1974605, upload-time = "2026-05-06T13:37:32.029Z" },
+ { url = "https://files.pythonhosted.org/packages/93/e2/3fedbf0ba7a22850e6e9fd78117f1c0f10f950182344d8a6c535d468fdd8/pydantic_core-2.46.4-cp314-cp314t-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:c50f2528cf200c5eed56faf3f4e22fcd5f38c157a8b78576e6ba3168ec35f000", size = 2030777, upload-time = "2026-05-06T13:38:55.239Z" },
+ { url = "https://files.pythonhosted.org/packages/f8/61/46be275fcaaba0b4f5b9669dd852267ce1ff616592dccf7a7845588df091/pydantic_core-2.46.4-cp314-cp314t-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:0cbe8b01f948de4286c74cdd6c667aceb38f5c1e26f0693b3983d9d74887c65e", size = 2236641, upload-time = "2026-05-06T13:37:08.096Z" },
+ { url = "https://files.pythonhosted.org/packages/60/db/12e93e46a8bac9988be3c016860f83293daea8c716c029c9ace279036f2f/pydantic_core-2.46.4-cp314-cp314t-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:617d7e2ca7dcb8c5cf6bcb8c59b8832c94b36196bbf1cbd1bfb56ed341905edd", size = 2286404, upload-time = "2026-05-06T13:40:20.221Z" },
+ { url = "https://files.pythonhosted.org/packages/e2/4a/4d8b19008f38d31c53b8219cfedc2e3d5de5fe99d90076b7e767de29274f/pydantic_core-2.46.4-cp314-cp314t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:7027560ee92211647d0d34e3f7cd6f50da56399d26a9c8ad0da286d3869a53f3", size = 2109219, upload-time = "2026-05-06T13:38:12.153Z" },
+ { url = "https://files.pythonhosted.org/packages/88/70/3cbc40978fefb7bb09c6708d40d4ad1a5d70fd7213c3d17f971de868ec1f/pydantic_core-2.46.4-cp314-cp314t-manylinux_2_31_riscv64.whl", hash = "sha256:f99626688942fb746e545232e7726926f3be91b5975f8b55327665fafda991c7", size = 2110594, upload-time = "2026-05-06T13:40:02.971Z" },
+ { url = "https://files.pythonhosted.org/packages/9d/20/b8d36736216e29491125531685b2f9e61aa5b4b2599893f8268551da3338/pydantic_core-2.46.4-cp314-cp314t-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:fc3e9034a63de20e15e8ade85358bc6efc614008cab72898b4b4952bea0509ff", size = 2159542, upload-time = "2026-05-06T13:39:27.506Z" },
+ { url = "https://files.pythonhosted.org/packages/1d/a2/367df868eb584dacf6bf82a389272406d7178e301c4ac82545ab98bc2dd9/pydantic_core-2.46.4-cp314-cp314t-musllinux_1_1_aarch64.whl", hash = "sha256:97e7cf2be5c77b7d1a9713a05605d49460d02c6078d38d8bef3cbe323c548424", size = 2168146, upload-time = "2026-05-06T13:38:31.93Z" },
+ { url = "https://files.pythonhosted.org/packages/c1/b8/4460f77f7e201893f649a29ab355dddd3beee8a97bcb1a320db414f9a06e/pydantic_core-2.46.4-cp314-cp314t-musllinux_1_1_armv7l.whl", hash = "sha256:3bf92c5d0e00fefaab325a4d27828fe6b6e2a21848686b5b60d2d9eeb09d76c6", size = 2306309, upload-time = "2026-05-06T13:37:44.717Z" },
+ { url = "https://files.pythonhosted.org/packages/64/c4/be2639293acd87dc8ddbcec41a73cee9b2ebf996fe6d892a1a74e88ad3f7/pydantic_core-2.46.4-cp314-cp314t-musllinux_1_1_x86_64.whl", hash = "sha256:3ecbc122d18468d06ca279dc26a8c2e2d5acb10943bb35e36ae92096dc3b5565", size = 2369736, upload-time = "2026-05-06T13:37:05.645Z" },
+ { url = "https://files.pythonhosted.org/packages/30/a6/9f9f380dbb301f67023bf8f707aaa75daadf84f7152d95c410fd7e81d994/pydantic_core-2.46.4-cp314-cp314t-win32.whl", hash = "sha256:e846ae7835bf0703ae43f534ab79a867146dadd59dc9ca5c8b53d5c8f7c9ef02", size = 1955575, upload-time = "2026-05-06T13:38:51.116Z" },
+ { url = "https://files.pythonhosted.org/packages/40/1f/f1eb9eb350e795d1af8586289746f5c5677d16043040d63710e22abc43c9/pydantic_core-2.46.4-cp314-cp314t-win_amd64.whl", hash = "sha256:2108ba5c1c1eca18030634489dc544844144ee36357f2f9f780b93e7ddbb44b5", size = 2051624, upload-time = "2026-05-06T13:38:21.672Z" },
+ { url = "https://files.pythonhosted.org/packages/f6/d2/42dd53d0a85c27606f316d3aa5d2869c4e8470a5ed6dec30e4a1abe19192/pydantic_core-2.46.4-cp314-cp314t-win_arm64.whl", hash = "sha256:4fcbe087dbc2068af7eda3aa87634eba216dbda64d1ae73c8684b621d33f6596", size = 2017325, upload-time = "2026-05-06T13:40:52.723Z" },
+ { url = "https://files.pythonhosted.org/packages/5d/00/13a0c039569d1e583779ee1b8d7df6bfe275a0db83fcae14f01d6856c16e/pydantic_core-2.46.4-cp39-cp39-macosx_10_12_x86_64.whl", hash = "sha256:fd8b3d9fd264be37976686c7f65cd52a83f5e84f4bfd2adf9c1d469676bbb6ae", size = 2115337, upload-time = "2026-05-06T13:38:37.741Z" },
+ { url = "https://files.pythonhosted.org/packages/41/60/e70fa1ee03e243bdfd4b1fddf1e1f2a8fba681df3034b51b9376c0fb5bf5/pydantic_core-2.46.4-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:9f444c499b3eefd3a92e348059471ea0c3a6e303d9c1cec09fa748fd9f895201", size = 1957976, upload-time = "2026-05-06T13:37:33.478Z" },
+ { url = "https://files.pythonhosted.org/packages/11/9a/78fb5f2ea849f767ea802de8b4e8f5a0c4a48ddbe4bc66bd19ac2f55a01c/pydantic_core-2.46.4-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:3447661d99f75a3683a4cf5c87da72f2161964611864dbbeac7fbb118bb4bfc0", size = 1979390, upload-time = "2026-05-06T13:36:52.419Z" },
+ { url = "https://files.pythonhosted.org/packages/f5/7d/3acfdcd000bad9735de0430a88355948469781f62cb841fd63e8a307e80e/pydantic_core-2.46.4-cp39-cp39-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:8b9bab013d1c7a79d3501ff86d0bc9c31bf587db4551677b96bec07df78c6b15", size = 2043263, upload-time = "2026-05-06T13:39:54.798Z" },
+ { url = "https://files.pythonhosted.org/packages/35/60/1325e5a8d7f9697416481c7f7c1c304738d6b961a7fd1ea0f054ce0f14fb/pydantic_core-2.46.4-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:d995260fdf4e1db774581b4900e0f832abe3c7c84996726bbc161b19c8f29e76", size = 2225708, upload-time = "2026-05-06T13:40:24.887Z" },
+ { url = "https://files.pythonhosted.org/packages/6a/b0/9ec8c38f33b26db0b612cb7fd165bb0a370773710432a2a74fa31287b430/pydantic_core-2.46.4-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:f13a646d65d09fbf1bc6b3a9635d30095c8e7e5cc419ff35ecc563c5fd04cd49", size = 2288494, upload-time = "2026-05-06T13:38:00.091Z" },
+ { url = "https://files.pythonhosted.org/packages/65/05/497446a9586d1b2d24ee25ebe208beb15388f1875d783e1e014055d150ac/pydantic_core-2.46.4-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:432c179df7874eeb73307aad2df0755e1ae0efa61ff0ea89b93e194411ae3928", size = 2095629, upload-time = "2026-05-06T13:38:23.632Z" },
+ { url = "https://files.pythonhosted.org/packages/93/d9/cd5fa98f9d94f9294c15459396c8a2383c164469e679ac178d6d42cfee6b/pydantic_core-2.46.4-cp39-cp39-manylinux_2_31_riscv64.whl", hash = "sha256:e68b7a074f65a2fd746c52a7ce6142ab7006074ac269ace0c25cd8ba171f8066", size = 2119309, upload-time = "2026-05-06T13:39:50.144Z" },
+ { url = "https://files.pythonhosted.org/packages/20/1b/64cec655451ddbf3976df5dc9706b240df4fdaebdeebeadd4f59a8dab926/pydantic_core-2.46.4-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:4a05d69cba51d852c5c3e92758653245a50c0b646ced0cf05bd793ed592839d6", size = 2170216, upload-time = "2026-05-06T13:39:14.561Z" },
+ { url = "https://files.pythonhosted.org/packages/2a/21/fe9f039138c9ea3be10ccdb6ec490acb54dcbef5a5e96dbdf1411f82b929/pydantic_core-2.46.4-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:228ee9bae8bef5b1e97ec58302f80357c37199e0d0a99174e138d28e6957b9d9", size = 2186726, upload-time = "2026-05-06T13:37:51.597Z" },
+ { url = "https://files.pythonhosted.org/packages/44/cb/19ca0da64821d1aefcef65f253aa9ecbdd0dde360f607d0f9b3d95db2b4e/pydantic_core-2.46.4-cp39-cp39-musllinux_1_1_armv7l.whl", hash = "sha256:10e17cbb10a330363733efc4d7c4d0dd827ac0909b8f6a6542298fed1ea62f29", size = 2320400, upload-time = "2026-05-06T13:39:36.29Z" },
+ { url = "https://files.pythonhosted.org/packages/cd/14/fe3fbf6e845bf2080dc2f282d75085ddf79d037b35634ecde68f33c217b4/pydantic_core-2.46.4-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:91a06d2e259ecfbd8c901d70c3c507900458498142b3026a296b7de4d1322cc9", size = 2363318, upload-time = "2026-05-06T13:38:53.039Z" },
+ { url = "https://files.pythonhosted.org/packages/62/88/60b110889507a426eecf626f7536566cb290ada71147eff49b6e2724ca62/pydantic_core-2.46.4-cp39-cp39-win32.whl", hash = "sha256:d80ee3d731373b24cebbc10d689ca4ee1875caf0d5703a245db18efd4dd37fc1", size = 1988880, upload-time = "2026-05-06T13:39:16.572Z" },
+ { url = "https://files.pythonhosted.org/packages/0b/d6/8ede2f98f17e1e4e127d37be0eced4eee931a511c62cd68af50e1b25bfa9/pydantic_core-2.46.4-cp39-cp39-win_amd64.whl", hash = "sha256:3be77f45df024d789a672ae34f8b06fb346c4f9f46ea714956660ea4862e89ac", size = 2079257, upload-time = "2026-05-06T13:39:38.498Z" },
+ { url = "https://files.pythonhosted.org/packages/ee/a4/73995fd4ebbb46ba0ee51e6fa049b8f02c40daebb762208feda8a6b7894d/pydantic_core-2.46.4-graalpy311-graalpy242_311_native-macosx_10_12_x86_64.whl", hash = "sha256:14d4edf427bdcf950a8a02d7cb44a08614388dd6e1bdcbf4f67504fa7887da9c", size = 2111589, upload-time = "2026-05-06T13:37:10.817Z" },
+ { url = "https://files.pythonhosted.org/packages/fb/7f/f37d3a5e8bfcc2e403f5c57a730f2d815693fb42119e8ea48b3789335af1/pydantic_core-2.46.4-graalpy311-graalpy242_311_native-macosx_11_0_arm64.whl", hash = "sha256:0ce40cd7b21210e99342afafbd4d0f76d784eb5b1d60f3bdc566be4983c6c73b", size = 1944552, upload-time = "2026-05-06T13:36:56.717Z" },
+ { url = "https://files.pythonhosted.org/packages/15/3c/d7eb777b3ff43e8433a4efb39a17aa8fd98a4ee8561a24a67ef5db07b2d6/pydantic_core-2.46.4-graalpy311-graalpy242_311_native-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:90884113d8b48f760e9587002789ddd741e76ab9f89518cd1e43b1f1a52ec44b", size = 1982984, upload-time = "2026-05-06T13:39:06.207Z" },
+ { url = "https://files.pythonhosted.org/packages/63/87/70b9f40170a81afd55ca26c9b2acb25c20d64bcfbf888fafecb3ba077d4c/pydantic_core-2.46.4-graalpy311-graalpy242_311_native-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:66ce7632c22d837c95301830e111ad0128a32b8207533b60896a96c4915192ea", size = 2138417, upload-time = "2026-05-06T13:39:45.476Z" },
+ { url = "https://files.pythonhosted.org/packages/9d/1d/8987ad40f65ae1432753072f214fb5c74fe47ffbd0698bb9cbbb585664f8/pydantic_core-2.46.4-graalpy312-graalpy250_312_native-macosx_10_12_x86_64.whl", hash = "sha256:1d8ba486450b14f3b1d63bc521d410ec7565e52f887b9fb671791886436a42f7", size = 2095527, upload-time = "2026-05-06T13:39:52.283Z" },
+ { url = "https://files.pythonhosted.org/packages/64/d3/84c282a7eee1d3ac4c0377546ef5a1ea436ce26840d9ac3b7ed54a377507/pydantic_core-2.46.4-graalpy312-graalpy250_312_native-macosx_11_0_arm64.whl", hash = "sha256:3009f12e4e90b7f88b4f9adb1b0c4a3d58fe7820f3238c190047209d148026df", size = 1936024, upload-time = "2026-05-06T13:40:15.671Z" },
+ { url = "https://files.pythonhosted.org/packages/d7/ca/eac61596cdeb4d7e174d3dc0bd8a6238f14f75f97a24e7b7db4c7e7340a0/pydantic_core-2.46.4-graalpy312-graalpy250_312_native-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:ad785e92e6dc634c21555edc8bd6b64957ab844541bcb96a1366c202951ae526", size = 1990696, upload-time = "2026-05-06T13:38:34.717Z" },
+ { url = "https://files.pythonhosted.org/packages/fa/c3/7c8b240552251faf6b3a957db200fcfbbcec36763c050428b601e0c9b83b/pydantic_core-2.46.4-graalpy312-graalpy250_312_native-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:00c603d540afdd6b80eb39f078f33ebd46211f02f33e34a32d9f053bba711de0", size = 2147590, upload-time = "2026-05-06T13:39:29.883Z" },
+ { url = "https://files.pythonhosted.org/packages/11/cb/428de0385b6c8d44b716feba566abfacfbd23ee3c4439faa789a1456242f/pydantic_core-2.46.4-pp311-pypy311_pp73-macosx_10_12_x86_64.whl", hash = "sha256:0c563b08bca408dc7f65f700633d8442fffb2421fc47b8101377e9fd65051ff0", size = 2112782, upload-time = "2026-05-06T13:37:04.016Z" },
+ { url = "https://files.pythonhosted.org/packages/0b/b5/6a17bdadd0fc1f170adfd05a20d37c832f52b117b4d9131da1f41bb097ce/pydantic_core-2.46.4-pp311-pypy311_pp73-macosx_11_0_arm64.whl", hash = "sha256:db06ffe51636ffe9ca531fe9023dd64bdd794be8754cb5df57c5498ae5b518a7", size = 1952146, upload-time = "2026-05-06T13:39:43.092Z" },
+ { url = "https://files.pythonhosted.org/packages/2a/dc/03734d80e362cd43ef65428e9de77c730ce7f2f11c60d2b1e1b39f0fbf99/pydantic_core-2.46.4-pp311-pypy311_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:133878133d271ade3d41d1bfb2a45ec38dbdbda40bc065921c6b04e4630127e2", size = 2134492, upload-time = "2026-05-06T13:36:58.124Z" },
+ { url = "https://files.pythonhosted.org/packages/de/df/5e5ffc085ed07cc22d298134d3d911c63e91f6a0eb91fe646750a3209910/pydantic_core-2.46.4-pp311-pypy311_pp73-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:9bc519fbf2b7578398853d815009ae5e4d4603d12f4e3f91da8c06852d3da3e9", size = 2156604, upload-time = "2026-05-06T13:37:49.88Z" },
+ { url = "https://files.pythonhosted.org/packages/81/44/6e112a4253e56f5705467cbab7ab5e91ee7398ba3d56d358635958893d3e/pydantic_core-2.46.4-pp311-pypy311_pp73-musllinux_1_1_aarch64.whl", hash = "sha256:c7a7bd4e39e8e4c12c39cd480356842b6a8a06e41b23a55a5e3e191718838ddf", size = 2183828, upload-time = "2026-05-06T13:37:43.053Z" },
+ { url = "https://files.pythonhosted.org/packages/ac/ad/5565071e937d8e752842ac241463944c9eb14c87e2d269f2658a5bd05e98/pydantic_core-2.46.4-pp311-pypy311_pp73-musllinux_1_1_armv7l.whl", hash = "sha256:d396ec2b979760aaf3218e76c24e65bd0aca24983298653b3a9d7a45f9e47b30", size = 2310000, upload-time = "2026-05-06T13:37:56.694Z" },
+ { url = "https://files.pythonhosted.org/packages/4f/c3/66883a5cec183e7fba4d024b4cbbe61851a63750ef606b0afecc46d1f2bf/pydantic_core-2.46.4-pp311-pypy311_pp73-musllinux_1_1_x86_64.whl", hash = "sha256:86e1a4418c6cd97d60c95c71164158eaf7324fae7b0923264016baa993eba6fc", size = 2361286, upload-time = "2026-05-06T13:40:05.667Z" },
+ { url = "https://files.pythonhosted.org/packages/4b/2d/69abac8f838090bbecd5df894befb2c2619e7996a98ddb949db9f3b93225/pydantic_core-2.46.4-pp311-pypy311_pp73-win_amd64.whl", hash = "sha256:d51026d73fcfd93610abc7b27789c26b313920fcfb20e27462d74a7f8b06e983", size = 2193071, upload-time = "2026-05-06T13:38:08.682Z" },
]
[[package]]
@@ -1725,49 +2227,52 @@ wheels = [
[[package]]
name = "pygments"
-version = "2.20.0"
+version = "2.21.0"
source = { registry = "https://pypi.org/simple" }
resolution-markers = [
- "python_full_version >= '3.10'",
+ "python_full_version >= '3.15'",
+ "python_full_version >= '3.10' and python_full_version < '3.15'",
"python_full_version == '3.9.*'",
]
-sdist = { url = "https://files.pythonhosted.org/packages/c3/b2/bc9c9196916376152d655522fdcebac55e66de6603a76a02bca1b6414f6c/pygments-2.20.0.tar.gz", hash = "sha256:6757cd03768053ff99f3039c1a36d6c0aa0b263438fcab17520b30a303a82b5f", size = 4955991, upload-time = "2026-03-29T13:29:33.898Z" }
+sdist = { url = "https://files.pythonhosted.org/packages/49/2e/ced460408999b33da6b31b0021b0f37d329e202d4169aeb164493778f25b/pygments-2.21.0.tar.gz", hash = "sha256:610ca751c9bc2492b38eb9a38a7fbc93edbbb2d7182edaf34e66ae493dee5c8c", size = 5005329, upload-time = "2026-08-17T08:02:48.824Z" }
wheels = [
- { url = "https://files.pythonhosted.org/packages/f4/7e/a72dd26f3b0f4f2bf1dd8923c85f7ceb43172af56d63c7383eb62b332364/pygments-2.20.0-py3-none-any.whl", hash = "sha256:81a9e26dd42fd28a23a2d169d86d7ac03b46e2f8b59ed4698fb4785f946d0176", size = 1231151, upload-time = "2026-03-29T13:29:30.038Z" },
+ { url = "https://files.pythonhosted.org/packages/71/46/17f022dd3e953bf20a04a028a21ec746d942f8d2af30fa0f124fa0e6a684/pygments-2.21.0-py3-none-any.whl", hash = "sha256:2363c69b61c4a97c838da3b130dcd6468f4848992b21a82f2a63ec34377137d9", size = 1250147, upload-time = "2026-08-17T08:02:44.912Z" },
]
[[package]]
name = "pymdown-extensions"
-version = "10.15"
+version = "11.0.1"
source = { registry = "https://pypi.org/simple" }
-resolution-markers = [
- "python_full_version < '3.9'",
-]
dependencies = [
- { name = "markdown", version = "3.7", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.9'" },
- { name = "pyyaml", marker = "python_full_version < '3.9'" },
+ { name = "markdown" },
+ { name = "pyyaml" },
]
-sdist = { url = "https://files.pythonhosted.org/packages/08/92/a7296491dbf5585b3a987f3f3fc87af0e632121ff3e490c14b5f2d2b4eb5/pymdown_extensions-10.15.tar.gz", hash = "sha256:0e5994e32155f4b03504f939e501b981d306daf7ec2aa1cd2eb6bd300784f8f7", size = 852320, upload-time = "2025-04-27T23:48:29.183Z" }
+sdist = { url = "https://files.pythonhosted.org/packages/21/a9/5f0c535ba3b08fe09270c16808e053a968868242ecbd5676d4e3a488bf28/pymdown_extensions-11.0.1.tar.gz", hash = "sha256:dd2905ae6fc5b75582fafb139a1266ffc754705efa902aa50067fa7ff4f94ec0", size = 857113, upload-time = "2026-07-02T17:59:22.955Z" }
wheels = [
- { url = "https://files.pythonhosted.org/packages/a7/d1/c54e608505776ce4e7966d03358ae635cfd51dff1da6ee421c090dbc797b/pymdown_extensions-10.15-py3-none-any.whl", hash = "sha256:46e99bb272612b0de3b7e7caf6da8dd5f4ca5212c0b273feb9304e236c484e5f", size = 265845, upload-time = "2025-04-27T23:48:27.359Z" },
+ { url = "https://files.pythonhosted.org/packages/d6/54/da572c98c0b77626a91b5d3b89f0231d8bff5125c225420908632f8b342d/pymdown_extensions-11.0.1-py3-none-any.whl", hash = "sha256:db3943a62bab7e03af1364f0c4083e64b91fb097675a4b6cceccfbe9a77e5eb2", size = 269455, upload-time = "2026-07-02T17:59:21.271Z" },
]
[[package]]
-name = "pymdown-extensions"
-version = "10.21.2"
+name = "pyparsing"
+version = "3.3.2"
source = { registry = "https://pypi.org/simple" }
-resolution-markers = [
- "python_full_version >= '3.10'",
- "python_full_version == '3.9.*'",
+sdist = { url = "https://files.pythonhosted.org/packages/f3/91/9c6ee907786a473bf81c5f53cf703ba0957b23ab84c264080fb5a450416f/pyparsing-3.3.2.tar.gz", hash = "sha256:c777f4d763f140633dcb6d8a3eda953bf7a214dc4eff598413c070bcdc117cbc", size = 6851574, upload-time = "2026-01-21T03:57:59.36Z" }
+wheels = [
+ { url = "https://files.pythonhosted.org/packages/10/bd/c038d7cc38edc1aa5bf91ab8068b63d4308c66c4c8bb3cbba7dfbc049f9c/pyparsing-3.3.2-py3-none-any.whl", hash = "sha256:850ba148bd908d7e2411587e247a1e4f0327839c40e2e5e6d05a007ecc69911d", size = 122781, upload-time = "2026-01-21T03:57:55.912Z" },
]
+
+[[package]]
+name = "pyright"
+version = "1.1.411"
+source = { registry = "https://pypi.org/simple" }
dependencies = [
- { name = "markdown", version = "3.9", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version == '3.9.*'" },
- { name = "markdown", version = "3.10.2", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.10'" },
- { name = "pyyaml", marker = "python_full_version >= '3.9'" },
+ { name = "nodeenv" },
+ { name = "typing-extensions", version = "4.13.2", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.9'" },
+ { name = "typing-extensions", version = "4.16.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.9'" },
]
-sdist = { url = "https://files.pythonhosted.org/packages/df/08/f1c908c581fd11913da4711ea7ba32c0eee40b0190000996bb863b0c9349/pymdown_extensions-10.21.2.tar.gz", hash = "sha256:c3f55a5b8a1d0edf6699e35dcbea71d978d34ff3fa79f3d807b8a5b3fa90fbdc", size = 853922, upload-time = "2026-03-29T15:01:55.233Z" }
+sdist = { url = "https://files.pythonhosted.org/packages/7e/ab/265f7dc69d28113ebba19092e57b075f41543b2ed048429c5f56e2b88eac/pyright-1.1.411.tar.gz", hash = "sha256:d885a0551f2e763b089a02702174e7f4ba77548cddabc972ab86d1f7f1b0f998", size = 4112861, upload-time = "2026-06-25T02:14:06.37Z" }
wheels = [
- { url = "https://files.pythonhosted.org/packages/f7/27/a2fc51a4a122dfd1015e921ae9d22fee3d20b0b8080d9a704578bf9deece/pymdown_extensions-10.21.2-py3-none-any.whl", hash = "sha256:5c0fd2a2bea14eb39af8ff284f1066d898ab2187d81b889b75d46d4348c01638", size = 268901, upload-time = "2026-03-29T15:01:53.244Z" },
+ { url = "https://files.pythonhosted.org/packages/0a/49/385be530a6a5b78d1cbcd5c2e38debc8959a2fc6bdb716f4e581002979fc/pyright-1.1.411-py3-none-any.whl", hash = "sha256:dc7c72a8e2700c55baa127554040e067041ea53ccfd50bf96308cc4291c7d5d9", size = 6181526, upload-time = "2026-06-25T02:14:04.691Z" },
]
[[package]]
@@ -1778,12 +2283,12 @@ resolution-markers = [
"python_full_version < '3.9'",
]
dependencies = [
- { name = "colorama", marker = "python_full_version < '3.9' and sys_platform == 'win32'" },
- { name = "exceptiongroup", marker = "python_full_version < '3.9'" },
- { name = "iniconfig", version = "2.1.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.9'" },
- { name = "packaging", marker = "python_full_version < '3.9'" },
- { name = "pluggy", version = "1.5.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.9'" },
- { name = "tomli", marker = "python_full_version < '3.9'" },
+ { name = "colorama", marker = "sys_platform == 'win32'" },
+ { name = "exceptiongroup" },
+ { name = "iniconfig", version = "2.1.0", source = { registry = "https://pypi.org/simple" } },
+ { name = "packaging", version = "26.2", source = { registry = "https://pypi.org/simple" } },
+ { name = "pluggy", version = "1.5.0", source = { registry = "https://pypi.org/simple" } },
+ { name = "tomli" },
]
sdist = { url = "https://files.pythonhosted.org/packages/ae/3c/c9d525a414d506893f0cd8a8d0de7706446213181570cdbd766691164e40/pytest-8.3.5.tar.gz", hash = "sha256:f4efe70cc14e511565ac476b57c279e12a855b11f48f212af1080ef2263d3845", size = 1450891, upload-time = "2025-03-02T12:54:54.503Z" }
wheels = [
@@ -1798,13 +2303,13 @@ resolution-markers = [
"python_full_version == '3.9.*'",
]
dependencies = [
- { name = "colorama", marker = "python_full_version == '3.9.*' and sys_platform == 'win32'" },
- { name = "exceptiongroup", marker = "python_full_version == '3.9.*'" },
- { name = "iniconfig", version = "2.1.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version == '3.9.*'" },
- { name = "packaging", marker = "python_full_version == '3.9.*'" },
- { name = "pluggy", version = "1.6.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version == '3.9.*'" },
- { name = "pygments", version = "2.20.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version == '3.9.*'" },
- { name = "tomli", marker = "python_full_version == '3.9.*'" },
+ { name = "colorama", marker = "sys_platform == 'win32'" },
+ { name = "exceptiongroup" },
+ { name = "iniconfig", version = "2.1.0", source = { registry = "https://pypi.org/simple" } },
+ { name = "packaging", version = "26.3", source = { registry = "https://pypi.org/simple" } },
+ { name = "pluggy", version = "1.6.0", source = { registry = "https://pypi.org/simple" } },
+ { name = "pygments", version = "2.21.0", source = { registry = "https://pypi.org/simple" } },
+ { name = "tomli" },
]
sdist = { url = "https://files.pythonhosted.org/packages/a3/5c/00a0e072241553e1a7496d638deababa67c5058571567b92a7eaa258397c/pytest-8.4.2.tar.gz", hash = "sha256:86c0d0b93306b961d58d62a4db4879f27fe25513d4b969df351abdddb3c30e01", size = 1519618, upload-time = "2025-09-04T14:34:22.711Z" }
wheels = [
@@ -1813,23 +2318,24 @@ wheels = [
[[package]]
name = "pytest"
-version = "9.0.2"
+version = "9.1.1"
source = { registry = "https://pypi.org/simple" }
resolution-markers = [
- "python_full_version >= '3.10'",
+ "python_full_version >= '3.15'",
+ "python_full_version >= '3.10' and python_full_version < '3.15'",
]
dependencies = [
- { name = "colorama", marker = "python_full_version >= '3.10' and sys_platform == 'win32'" },
- { name = "exceptiongroup", marker = "python_full_version == '3.10.*'" },
- { name = "iniconfig", version = "2.3.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.10'" },
- { name = "packaging", marker = "python_full_version >= '3.10'" },
- { name = "pluggy", version = "1.6.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.10'" },
- { name = "pygments", version = "2.20.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.10'" },
- { name = "tomli", marker = "python_full_version == '3.10.*'" },
+ { name = "colorama", marker = "sys_platform == 'win32'" },
+ { name = "exceptiongroup", marker = "python_full_version < '3.11'" },
+ { name = "iniconfig", version = "2.3.0", source = { registry = "https://pypi.org/simple" } },
+ { name = "packaging", version = "26.3", source = { registry = "https://pypi.org/simple" } },
+ { name = "pluggy", version = "1.6.0", source = { registry = "https://pypi.org/simple" } },
+ { name = "pygments", version = "2.21.0", source = { registry = "https://pypi.org/simple" } },
+ { name = "tomli", marker = "python_full_version < '3.11'" },
]
-sdist = { url = "https://files.pythonhosted.org/packages/d1/db/7ef3487e0fb0049ddb5ce41d3a49c235bf9ad299b6a25d5780a89f19230f/pytest-9.0.2.tar.gz", hash = "sha256:75186651a92bd89611d1d9fc20f0b4345fd827c41ccd5c299a868a05d70edf11", size = 1568901, upload-time = "2025-12-06T21:30:51.014Z" }
+sdist = { url = "https://files.pythonhosted.org/packages/e4/47/b9efed96c114afcfa3c9d3fe98a76a1d14c74a9e266d397cf6eb64be5e01/pytest-9.1.1.tar.gz", hash = "sha256:1088fbde8f2b49d95a549a195707afa7a76a3ce9bcadc26b6d71f0ffda5fe313", size = 1636369, upload-time = "2026-06-19T10:58:32.857Z" }
wheels = [
- { url = "https://files.pythonhosted.org/packages/3b/ab/b3226f0bd7cdcf710fbede2b3548584366da3b19b5021e74f5bde2a8fa3f/pytest-9.0.2-py3-none-any.whl", hash = "sha256:711ffd45bf766d5264d487b917733b453d917afd2b0ad65223959f59089f875b", size = 374801, upload-time = "2025-12-06T21:30:49.154Z" },
+ { url = "https://files.pythonhosted.org/packages/24/25/1de2678b631f5a49215c6c96fff41ba892b0a34df68d6d80292b1b48aa7f/pytest-9.1.1-py3-none-any.whl", hash = "sha256:37a86b45efb9a47a61a36449063e8e18d0cab3161329fc099eb21783169c4f0c", size = 386536, upload-time = "2026-06-19T10:58:31.347Z" },
]
[[package]]
@@ -1846,17 +2352,15 @@ wheels = [
[[package]]
name = "python-discovery"
-version = "1.2.1"
+version = "1.5.2"
source = { registry = "https://pypi.org/simple" }
dependencies = [
- { name = "filelock", version = "3.19.1", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version == '3.9.*'" },
- { name = "filelock", version = "3.25.2", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.10'" },
- { name = "platformdirs", version = "4.4.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version == '3.9.*'" },
- { name = "platformdirs", version = "4.9.4", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.10'" },
+ { name = "filelock", version = "3.19.1", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.10'" },
+ { name = "filelock", version = "3.32.3", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.10'" },
]
-sdist = { url = "https://files.pythonhosted.org/packages/b9/88/815e53084c5079a59df912825a279f41dd2e0df82281770eadc732f5352c/python_discovery-1.2.1.tar.gz", hash = "sha256:180c4d114bff1c32462537eac5d6a332b768242b76b69c0259c7d14b1b680c9e", size = 58457, upload-time = "2026-03-26T22:30:44.496Z" }
+sdist = { url = "https://files.pythonhosted.org/packages/38/b7/ac44da2cf0e53ada0e419033c2d058219c95dc1403126f163304c9e814b1/python_discovery-1.5.2.tar.gz", hash = "sha256:45fd4f20a4e3f9b7bf2e0817870bc8e3b320a19658da177af800768c82dbf354", size = 82350, upload-time = "2026-08-12T14:05:26.419Z" }
wheels = [
- { url = "https://files.pythonhosted.org/packages/67/0f/019d3949a40280f6193b62bc010177d4ce702d0fce424322286488569cd3/python_discovery-1.2.1-py3-none-any.whl", hash = "sha256:b6a957b24c1cd79252484d3566d1b49527581d46e789aaf43181005e56201502", size = 31674, upload-time = "2026-03-26T22:30:43.396Z" },
+ { url = "https://files.pythonhosted.org/packages/71/45/689603d04b3bb8d7faa00f25c24acef993aab7813b3dbbfc472a459ab0b5/python_discovery-1.5.2-py3-none-any.whl", hash = "sha256:3e338c2d0f15dfaeea57493f4c2c6caebe0e998ea815c30ae8bf8ee21f1112d3", size = 38350, upload-time = "2026-08-12T14:05:25.113Z" },
]
[[package]]
@@ -1867,8 +2371,8 @@ resolution-markers = [
"python_full_version < '3.9'",
]
dependencies = [
- { name = "requests", version = "2.32.4", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.9'" },
- { name = "requests-toolbelt", marker = "python_full_version < '3.9'" },
+ { name = "requests", version = "2.32.4", source = { registry = "https://pypi.org/simple" } },
+ { name = "requests-toolbelt" },
]
sdist = { url = "https://files.pythonhosted.org/packages/c4/ea/e2cde926d63526935c1df259177371a195089b631d67a577fe5c39fbc7e1/python_gitlab-4.13.0.tar.gz", hash = "sha256:576bfb0901faca0c6b2d1ff2592e02944a6ec3e086c3129fb43c2a0df56a1c67", size = 484996, upload-time = "2024-10-08T13:28:48.755Z" }
wheels = [
@@ -1880,25 +2384,41 @@ name = "python-gitlab"
version = "6.5.0"
source = { registry = "https://pypi.org/simple" }
resolution-markers = [
- "python_full_version >= '3.10'",
"python_full_version == '3.9.*'",
]
dependencies = [
- { name = "requests", version = "2.32.5", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version == '3.9.*'" },
- { name = "requests", version = "2.33.1", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.10'" },
- { name = "requests-toolbelt", marker = "python_full_version >= '3.9'" },
+ { name = "requests", version = "2.32.5", source = { registry = "https://pypi.org/simple" } },
+ { name = "requests-toolbelt" },
]
sdist = { url = "https://files.pythonhosted.org/packages/9a/bd/b30f1d3b303cb5d3c72e2d57a847d699e8573cbdfd67ece5f1795e49da1c/python_gitlab-6.5.0.tar.gz", hash = "sha256:97553652d94b02de343e9ca92782239aa2b5f6594c5482331a9490d9d5e8737d", size = 400591, upload-time = "2025-10-17T21:40:02.89Z" }
wheels = [
{ url = "https://files.pythonhosted.org/packages/34/bd/b0d440685fbcafee462bed793a74aea88541887c4c30556a55ac64914b8d/python_gitlab-6.5.0-py3-none-any.whl", hash = "sha256:494e1e8e5edd15286eaf7c286f3a06652688f1ee20a49e2a0218ddc5cc475e32", size = 144419, upload-time = "2025-10-17T21:40:01.233Z" },
]
+[[package]]
+name = "python-gitlab"
+version = "8.5.0"
+source = { registry = "https://pypi.org/simple" }
+resolution-markers = [
+ "python_full_version >= '3.15'",
+ "python_full_version >= '3.10' and python_full_version < '3.15'",
+]
+dependencies = [
+ { name = "requests", version = "2.34.2", source = { registry = "https://pypi.org/simple" } },
+ { name = "requests-toolbelt" },
+]
+sdist = { url = "https://files.pythonhosted.org/packages/26/55/8050293b360a29218a15892c2b936e286a69fd4f5d2cf54c7cbe19d34b47/python_gitlab-8.5.0.tar.gz", hash = "sha256:628529ec4ce1f9a7ba2c145b2cf5e4eeca3015418e504b2e6fba70171b6b1b59", size = 411497, upload-time = "2026-07-28T02:04:30.015Z" }
+wheels = [
+ { url = "https://files.pythonhosted.org/packages/93/3d/fb547ed2ac318132517e001b74b09d1f17d2c2c681cad1e32a8b84139867/python_gitlab-8.5.0-py3-none-any.whl", hash = "sha256:94228973c54f09eccd30f5160eca91200adc31d6ed0c894221a3865b90f96426", size = 148234, upload-time = "2026-07-28T02:04:28.454Z" },
+]
+
[[package]]
name = "python-semantic-release"
-version = "10.5.3"
+version = "10.6.1"
source = { registry = "https://pypi.org/simple" }
dependencies = [
- { name = "click" },
+ { name = "click", version = "8.1.8", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.10'" },
+ { name = "click", version = "8.4.2", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.10'" },
{ name = "click-option-group" },
{ name = "deprecated" },
{ name = "dotty-dict" },
@@ -1907,28 +2427,20 @@ dependencies = [
{ name = "importlib-resources", version = "6.5.2", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.9'" },
{ name = "jinja2" },
{ name = "pydantic", version = "2.10.6", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.9'" },
- { name = "pydantic", version = "2.12.5", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.9'" },
+ { name = "pydantic", version = "2.13.4", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.9'" },
{ name = "python-gitlab", version = "4.13.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.9'" },
- { name = "python-gitlab", version = "6.5.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.9'" },
+ { name = "python-gitlab", version = "6.5.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version == '3.9.*'" },
+ { name = "python-gitlab", version = "8.5.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.10'" },
{ name = "requests", version = "2.32.4", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.9'" },
{ name = "requests", version = "2.32.5", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version == '3.9.*'" },
- { name = "requests", version = "2.33.1", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.10'" },
+ { name = "requests", version = "2.34.2", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.10'" },
{ name = "rich" },
{ name = "shellingham" },
{ name = "tomlkit" },
]
-sdist = { url = "https://files.pythonhosted.org/packages/19/3a/7332b822825ed0e902c6e950e0d1e90e8f666fd12eb27855d1c8b6677eff/python_semantic_release-10.5.3.tar.gz", hash = "sha256:de4da78635fa666e5774caaca2be32063cae72431eb75e2ac23b9f2dfd190785", size = 618034, upload-time = "2025-12-14T22:37:29.782Z" }
+sdist = { url = "https://files.pythonhosted.org/packages/a6/f6/06d5aa54b46bb192b00ef3e74234300ea5932dd310d142a3c8070e770e93/python_semantic_release-10.6.1.tar.gz", hash = "sha256:ee6369238f72e75a009b3724481232c8b813416191be099bc0266e375fd02b2b", size = 626453, upload-time = "2026-07-06T06:14:35.507Z" }
wheels = [
- { url = "https://files.pythonhosted.org/packages/6b/01/ada29a1215df601bded0a2efd3b6d53864a0a9e0a9ea52aeaebe14fd03fd/python_semantic_release-10.5.3-py3-none-any.whl", hash = "sha256:1be0e07c36fa1f1ec9da4f438c1f6bbd7bc10eb0d6ac0089b0643103708c2823", size = 152716, upload-time = "2025-12-14T22:37:28.089Z" },
-]
-
-[[package]]
-name = "pytz"
-version = "2026.1.post1"
-source = { registry = "https://pypi.org/simple" }
-sdist = { url = "https://files.pythonhosted.org/packages/56/db/b8721d71d945e6a8ac63c0fc900b2067181dbb50805958d4d4661cf7d277/pytz-2026.1.post1.tar.gz", hash = "sha256:3378dde6a0c3d26719182142c56e60c7f9af7e968076f31aae569d72a0358ee1", size = 321088, upload-time = "2026-03-03T07:47:50.683Z" }
-wheels = [
- { url = "https://files.pythonhosted.org/packages/10/99/781fe0c827be2742bcc775efefccb3b048a3a9c6ce9aec0cbf4a101677e5/pytz-2026.1.post1-py2.py3-none-any.whl", hash = "sha256:f2fd16142fda348286a75e1a524be810bb05d444e5a081f37f7affc635035f7a", size = 510489, upload-time = "2026-03-03T07:47:49.167Z" },
+ { url = "https://files.pythonhosted.org/packages/18/97/be812cd1eb350551d2f3cc38426864cce493a03ed31f4749133bcff8d053/python_semantic_release-10.6.1-py3-none-any.whl", hash = "sha256:36f7319515f218719d0972bc9535813a930f04cd19556767599e9863242efcdc", size = 155674, upload-time = "2026-07-06T06:14:33.575Z" },
]
[[package]]
@@ -2011,31 +2523,12 @@ wheels = [
{ url = "https://files.pythonhosted.org/packages/f0/0c/25113e0b5e103d7f1490c0e947e303fe4a696c10b501dea7a9f49d4e876c/pyyaml-6.0.3-cp39-cp39-win_amd64.whl", hash = "sha256:2e71d11abed7344e42a8849600193d15b6def118602c4c176f748e4583246007", size = 158777, upload-time = "2025-09-25T21:33:15.55Z" },
]
-[[package]]
-name = "pyyaml-env-tag"
-version = "0.1"
-source = { registry = "https://pypi.org/simple" }
-resolution-markers = [
- "python_full_version < '3.9'",
-]
-dependencies = [
- { name = "pyyaml", marker = "python_full_version < '3.9'" },
-]
-sdist = { url = "https://files.pythonhosted.org/packages/fb/8e/da1c6c58f751b70f8ceb1eb25bc25d524e8f14fe16edcce3f4e3ba08629c/pyyaml_env_tag-0.1.tar.gz", hash = "sha256:70092675bda14fdec33b31ba77e7543de9ddc88f2e5b99160396572d11525bdb", size = 5631, upload-time = "2020-11-12T02:38:26.239Z" }
-wheels = [
- { url = "https://files.pythonhosted.org/packages/5a/66/bbb1dd374f5c870f59c5bb1db0e18cbe7fa739415a24cbd95b2d1f5ae0c4/pyyaml_env_tag-0.1-py3-none-any.whl", hash = "sha256:af31106dec8a4d68c60207c1886031cbf839b68aa7abccdb19868200532c2069", size = 3911, upload-time = "2020-11-12T02:38:24.638Z" },
-]
-
[[package]]
name = "pyyaml-env-tag"
version = "1.1"
source = { registry = "https://pypi.org/simple" }
-resolution-markers = [
- "python_full_version >= '3.10'",
- "python_full_version == '3.9.*'",
-]
dependencies = [
- { name = "pyyaml", marker = "python_full_version >= '3.9'" },
+ { name = "pyyaml" },
]
sdist = { url = "https://files.pythonhosted.org/packages/eb/2e/79c822141bfd05a853236b504869ebc6b70159afc570e1d5a20641782eaa/pyyaml_env_tag-1.1.tar.gz", hash = "sha256:2eb38b75a2d21ee0475d6d97ec19c63287a7e140231e4214969d0eac923cd7ff", size = 5737, upload-time = "2025-05-13T15:24:01.64Z" }
wheels = [
@@ -2050,10 +2543,10 @@ resolution-markers = [
"python_full_version < '3.9'",
]
dependencies = [
- { name = "certifi", marker = "python_full_version < '3.9'" },
- { name = "charset-normalizer", marker = "python_full_version < '3.9'" },
- { name = "idna", marker = "python_full_version < '3.9'" },
- { name = "urllib3", version = "2.2.3", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.9'" },
+ { name = "certifi" },
+ { name = "charset-normalizer" },
+ { name = "idna", version = "3.15", source = { registry = "https://pypi.org/simple" } },
+ { name = "urllib3", version = "2.2.3", source = { registry = "https://pypi.org/simple" } },
]
sdist = { url = "https://files.pythonhosted.org/packages/e1/0a/929373653770d8a0d7ea76c37de6e41f11eb07559b103b1c02cafb3f7cf8/requests-2.32.4.tar.gz", hash = "sha256:27d0316682c8a29834d3264820024b62a36942083d52caf2f14c0591336d3422", size = 135258, upload-time = "2025-06-09T16:43:07.34Z" }
wheels = [
@@ -2068,10 +2561,10 @@ resolution-markers = [
"python_full_version == '3.9.*'",
]
dependencies = [
- { name = "certifi", marker = "python_full_version == '3.9.*'" },
- { name = "charset-normalizer", marker = "python_full_version == '3.9.*'" },
- { name = "idna", marker = "python_full_version == '3.9.*'" },
- { name = "urllib3", version = "2.6.3", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version == '3.9.*'" },
+ { name = "certifi" },
+ { name = "charset-normalizer" },
+ { name = "idna", version = "3.19", source = { registry = "https://pypi.org/simple" } },
+ { name = "urllib3", version = "2.6.3", source = { registry = "https://pypi.org/simple" } },
]
sdist = { url = "https://files.pythonhosted.org/packages/c9/74/b3ff8e6c8446842c3f5c837e9c3dfcfe2018ea6ecef224c710c85ef728f4/requests-2.32.5.tar.gz", hash = "sha256:dbba0bac56e100853db0ea71b82b4dfd5fe2bf6d3754a8893c3af500cec7d7cf", size = 134517, upload-time = "2025-08-18T20:46:02.573Z" }
wheels = [
@@ -2080,20 +2573,21 @@ wheels = [
[[package]]
name = "requests"
-version = "2.33.1"
+version = "2.34.2"
source = { registry = "https://pypi.org/simple" }
resolution-markers = [
- "python_full_version >= '3.10'",
+ "python_full_version >= '3.15'",
+ "python_full_version >= '3.10' and python_full_version < '3.15'",
]
dependencies = [
- { name = "certifi", marker = "python_full_version >= '3.10'" },
- { name = "charset-normalizer", marker = "python_full_version >= '3.10'" },
- { name = "idna", marker = "python_full_version >= '3.10'" },
- { name = "urllib3", version = "2.6.3", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.10'" },
+ { name = "certifi" },
+ { name = "charset-normalizer" },
+ { name = "idna", version = "3.19", source = { registry = "https://pypi.org/simple" } },
+ { name = "urllib3", version = "2.7.0", source = { registry = "https://pypi.org/simple" } },
]
-sdist = { url = "https://files.pythonhosted.org/packages/5f/a4/98b9c7c6428a668bf7e42ebb7c79d576a1c3c1e3ae2d47e674b468388871/requests-2.33.1.tar.gz", hash = "sha256:18817f8c57c6263968bc123d237e3b8b08ac046f5456bd1e307ee8f4250d3517", size = 134120, upload-time = "2026-03-30T16:09:15.531Z" }
+sdist = { url = "https://files.pythonhosted.org/packages/ac/c3/e2a2b89f2d3e2179abd6d00ebd70bff6273f37fb3e0cc209f48b39d00cbf/requests-2.34.2.tar.gz", hash = "sha256:f288924cae4e29463698d6d60bc6a4da69c89185ad1e0bcc4104f584e960b9ed", size = 142856, upload-time = "2026-05-14T19:25:27.735Z" }
wheels = [
- { url = "https://files.pythonhosted.org/packages/d7/8e/7540e8a2036f79a125c1d2ebadf69ed7901608859186c856fa0388ef4197/requests-2.33.1-py3-none-any.whl", hash = "sha256:4e6d1ef462f3626a1f0a0a9c42dd93c63bad33f9f1c1937509b8c5c8718ab56a", size = 64947, upload-time = "2026-03-30T16:09:13.83Z" },
+ { url = "https://files.pythonhosted.org/packages/a0/f4/c67b0b3f1b9245e8d266f0f112c500d50e5b4e83cb6f3b71b6528104182a/requests-2.34.2-py3-none-any.whl", hash = "sha256:2a0d60c172f83ac6ab31e4554906c0f3b3588d37b5cb939b1c061f4907e278e0", size = 73075, upload-time = "2026-05-14T19:25:26.443Z" },
]
[[package]]
@@ -2103,7 +2597,7 @@ source = { registry = "https://pypi.org/simple" }
dependencies = [
{ name = "requests", version = "2.32.4", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.9'" },
{ name = "requests", version = "2.32.5", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version == '3.9.*'" },
- { name = "requests", version = "2.33.1", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.10'" },
+ { name = "requests", version = "2.34.2", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.10'" },
]
sdist = { url = "https://files.pythonhosted.org/packages/f3/61/d7545dafb7ac2230c70d38d31cbfe4cc64f7144dc41f6e4e4b78ecd9f5bb/requests-toolbelt-1.0.0.tar.gz", hash = "sha256:7681a0a3d047012b5bdc0ee37d7f8f07ebe76ab08caeccfc3921ce23c88d5bc6", size = 206888, upload-time = "2023-05-01T04:11:33.229Z" }
wheels = [
@@ -2112,42 +2606,42 @@ wheels = [
[[package]]
name = "rich"
-version = "14.3.3"
+version = "14.3.4"
source = { registry = "https://pypi.org/simple" }
dependencies = [
{ name = "markdown-it-py", version = "3.0.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.10'" },
- { name = "markdown-it-py", version = "4.0.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.10'" },
+ { name = "markdown-it-py", version = "4.2.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.10'" },
{ name = "pygments", version = "2.19.2", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.9'" },
- { name = "pygments", version = "2.20.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.9'" },
+ { name = "pygments", version = "2.21.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.9'" },
]
-sdist = { url = "https://files.pythonhosted.org/packages/b3/c6/f3b320c27991c46f43ee9d856302c70dc2d0fb2dba4842ff739d5f46b393/rich-14.3.3.tar.gz", hash = "sha256:b8daa0b9e4eef54dd8cf7c86c03713f53241884e814f4e2f5fb342fe520f639b", size = 230582, upload-time = "2026-02-19T17:23:12.474Z" }
+sdist = { url = "https://files.pythonhosted.org/packages/e9/67/cae617f1351490c25a4b8ac3b8b63a4dda609295d8222bad12242dfdc629/rich-14.3.4.tar.gz", hash = "sha256:817e02727f2b25b40ef56f5aa2217f400c8489f79ca8f46ea2b70dd5e14558a9", size = 230524, upload-time = "2026-04-11T02:57:45.419Z" }
wheels = [
- { url = "https://files.pythonhosted.org/packages/14/25/b208c5683343959b670dc001595f2f3737e051da617f66c31f7c4fa93abc/rich-14.3.3-py3-none-any.whl", hash = "sha256:793431c1f8619afa7d3b52b2cdec859562b950ea0d4b6b505397612db8d5362d", size = 310458, upload-time = "2026-02-19T17:23:13.732Z" },
+ { url = "https://files.pythonhosted.org/packages/b3/76/6d163cfac87b632216f71879e6b2cf17163f773ff59c00b5ff4900a80fa3/rich-14.3.4-py3-none-any.whl", hash = "sha256:07e7adb4690f68864777b1450859253bed81a99a31ac321ac1817b2313558952", size = 310480, upload-time = "2026-04-11T02:57:47.484Z" },
]
[[package]]
name = "ruff"
-version = "0.15.8"
-source = { registry = "https://pypi.org/simple" }
-sdist = { url = "https://files.pythonhosted.org/packages/14/b0/73cf7550861e2b4824950b8b52eebdcc5adc792a00c514406556c5b80817/ruff-0.15.8.tar.gz", hash = "sha256:995f11f63597ee362130d1d5a327a87cb6f3f5eae3094c620bcc632329a4d26e", size = 4610921, upload-time = "2026-03-26T18:39:38.675Z" }
-wheels = [
- { url = "https://files.pythonhosted.org/packages/4a/92/c445b0cd6da6e7ae51e954939cb69f97e008dbe750cfca89b8cedc081be7/ruff-0.15.8-py3-none-linux_armv6l.whl", hash = "sha256:cbe05adeba76d58162762d6b239c9056f1a15a55bd4b346cfd21e26cd6ad7bc7", size = 10527394, upload-time = "2026-03-26T18:39:41.566Z" },
- { url = "https://files.pythonhosted.org/packages/eb/92/f1c662784d149ad1414cae450b082cf736430c12ca78367f20f5ed569d65/ruff-0.15.8-py3-none-macosx_10_12_x86_64.whl", hash = "sha256:d3e3d0b6ba8dca1b7ef9ab80a28e840a20070c4b62e56d675c24f366ef330570", size = 10905693, upload-time = "2026-03-26T18:39:30.364Z" },
- { url = "https://files.pythonhosted.org/packages/ca/f2/7a631a8af6d88bcef997eb1bf87cc3da158294c57044aafd3e17030613de/ruff-0.15.8-py3-none-macosx_11_0_arm64.whl", hash = "sha256:6ee3ae5c65a42f273f126686353f2e08ff29927b7b7e203b711514370d500de3", size = 10323044, upload-time = "2026-03-26T18:39:33.37Z" },
- { url = "https://files.pythonhosted.org/packages/67/18/1bf38e20914a05e72ef3b9569b1d5c70a7ef26cd188d69e9ca8ef588d5bf/ruff-0.15.8-py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:fdce027ada77baa448077ccc6ebb2fa9c3c62fd110d8659d601cf2f475858d94", size = 10629135, upload-time = "2026-03-26T18:39:44.142Z" },
- { url = "https://files.pythonhosted.org/packages/d2/e9/138c150ff9af60556121623d41aba18b7b57d95ac032e177b6a53789d279/ruff-0.15.8-py3-none-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:12e617fc01a95e5821648a6df341d80456bd627bfab8a829f7cfc26a14a4b4a3", size = 10348041, upload-time = "2026-03-26T18:39:52.178Z" },
- { url = "https://files.pythonhosted.org/packages/02/f1/5bfb9298d9c323f842c5ddeb85f1f10ef51516ac7a34ba446c9347d898df/ruff-0.15.8-py3-none-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:432701303b26416d22ba696c39f2c6f12499b89093b61360abc34bcc9bf07762", size = 11121987, upload-time = "2026-03-26T18:39:55.195Z" },
- { url = "https://files.pythonhosted.org/packages/10/11/6da2e538704e753c04e8d86b1fc55712fdbdcc266af1a1ece7a51fff0d10/ruff-0.15.8-py3-none-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:d910ae974b7a06a33a057cb87d2a10792a3b2b3b35e33d2699fdf63ec8f6b17a", size = 11951057, upload-time = "2026-03-26T18:39:19.18Z" },
- { url = "https://files.pythonhosted.org/packages/83/f0/c9208c5fd5101bf87002fed774ff25a96eea313d305f1e5d5744698dc314/ruff-0.15.8-py3-none-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:2033f963c43949d51e6fdccd3946633c6b37c484f5f98c3035f49c27395a8ab8", size = 11464613, upload-time = "2026-03-26T18:40:06.301Z" },
- { url = "https://files.pythonhosted.org/packages/f8/22/d7f2fabdba4fae9f3b570e5605d5eb4500dcb7b770d3217dca4428484b17/ruff-0.15.8-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:0f29b989a55572fb885b77464cf24af05500806ab4edf9a0fd8977f9759d85b1", size = 11257557, upload-time = "2026-03-26T18:39:57.972Z" },
- { url = "https://files.pythonhosted.org/packages/71/8c/382a9620038cf6906446b23ce8632ab8c0811b8f9d3e764f58bedd0c9a6f/ruff-0.15.8-py3-none-manylinux_2_31_riscv64.whl", hash = "sha256:ac51d486bf457cdc985a412fb1801b2dfd1bd8838372fc55de64b1510eff4bec", size = 11169440, upload-time = "2026-03-26T18:39:22.205Z" },
- { url = "https://files.pythonhosted.org/packages/4d/0d/0994c802a7eaaf99380085e4e40c845f8e32a562e20a38ec06174b52ef24/ruff-0.15.8-py3-none-musllinux_1_2_aarch64.whl", hash = "sha256:c9861eb959edab053c10ad62c278835ee69ca527b6dcd72b47d5c1e5648964f6", size = 10605963, upload-time = "2026-03-26T18:39:46.682Z" },
- { url = "https://files.pythonhosted.org/packages/19/aa/d624b86f5b0aad7cef6bbf9cd47a6a02dfdc4f72c92a337d724e39c9d14b/ruff-0.15.8-py3-none-musllinux_1_2_armv7l.whl", hash = "sha256:8d9a5b8ea13f26ae90838afc33f91b547e61b794865374f114f349e9036835fb", size = 10357484, upload-time = "2026-03-26T18:39:49.176Z" },
- { url = "https://files.pythonhosted.org/packages/35/c3/e0b7835d23001f7d999f3895c6b569927c4d39912286897f625736e1fd04/ruff-0.15.8-py3-none-musllinux_1_2_i686.whl", hash = "sha256:c2a33a529fb3cbc23a7124b5c6ff121e4d6228029cba374777bd7649cc8598b8", size = 10830426, upload-time = "2026-03-26T18:40:03.702Z" },
- { url = "https://files.pythonhosted.org/packages/f0/51/ab20b322f637b369383adc341d761eaaa0f0203d6b9a7421cd6e783d81b9/ruff-0.15.8-py3-none-musllinux_1_2_x86_64.whl", hash = "sha256:75e5cd06b1cf3f47a3996cfc999226b19aa92e7cce682dcd62f80d7035f98f49", size = 11345125, upload-time = "2026-03-26T18:39:27.799Z" },
- { url = "https://files.pythonhosted.org/packages/37/e6/90b2b33419f59d0f2c4c8a48a4b74b460709a557e8e0064cf33ad894f983/ruff-0.15.8-py3-none-win32.whl", hash = "sha256:bc1f0a51254ba21767bfa9a8b5013ca8149dcf38092e6a9eb704d876de94dc34", size = 10571959, upload-time = "2026-03-26T18:39:36.117Z" },
- { url = "https://files.pythonhosted.org/packages/1f/a2/ef467cb77099062317154c63f234b8a7baf7cb690b99af760c5b68b9ee7f/ruff-0.15.8-py3-none-win_amd64.whl", hash = "sha256:04f79eff02a72db209d47d665ba7ebcad609d8918a134f86cb13dd132159fc89", size = 11743893, upload-time = "2026-03-26T18:39:25.01Z" },
- { url = "https://files.pythonhosted.org/packages/15/e2/77be4fff062fa78d9b2a4dea85d14785dac5f1d0c1fb58ed52331f0ebe28/ruff-0.15.8-py3-none-win_arm64.whl", hash = "sha256:cf891fa8e3bb430c0e7fac93851a5978fc99c8fa2c053b57b118972866f8e5f2", size = 11048175, upload-time = "2026-03-26T18:40:01.06Z" },
+version = "0.16.4"
+source = { registry = "https://pypi.org/simple" }
+sdist = { url = "https://files.pythonhosted.org/packages/00/8f/d8074b1f25e003164087a8bfe79a0f1a3945135764dbb6aaab04103dcaf9/ruff-0.16.4.tar.gz", hash = "sha256:13171aa9d9af2240ee3504e639de73122c67e74036de5ba2e1d01422cd17e3dc", size = 4899731, upload-time = "2026-08-20T17:43:59.196Z" }
+wheels = [
+ { url = "https://files.pythonhosted.org/packages/ff/80/779895ef584e089d22f2c6df0d0e99a65ec2df0805f1fffd439415b8c1f0/ruff-0.16.4-py3-none-linux_armv6l.whl", hash = "sha256:df4075f71ddac40b9934af60c3ec8a53047dd5a5fdc43224e6e4e8e9a27cb6f7", size = 10006909, upload-time = "2026-08-20T17:43:16.888Z" },
+ { url = "https://files.pythonhosted.org/packages/a9/e6/f553199b5e8927a05cb5c422d921fd0656b29ab976e91c44802107c6b0da/ruff-0.16.4-py3-none-macosx_10_12_x86_64.whl", hash = "sha256:0c95538517af68004306b0fb3214ff2f2af67a65092aee77cd9eb86db6656604", size = 10240201, upload-time = "2026-08-20T17:43:19.337Z" },
+ { url = "https://files.pythonhosted.org/packages/1c/70/4a6dc4bb34da4dee35e30f09bbd1bfbdd26f33b62fb9b8df31f08a199cd2/ruff-0.16.4-py3-none-macosx_11_0_arm64.whl", hash = "sha256:963f83df8e69e575b64d67dd447ebbc917db41a14bf38d4593a4183e7aaa8255", size = 9835122, upload-time = "2026-08-20T17:43:21.708Z" },
+ { url = "https://files.pythonhosted.org/packages/24/12/c6e22d686372c15bcb7af99831f1a1be96df696491babf4f24e4f942c527/ruff-0.16.4-py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:32a5057c7ff3f6e6480a48fccfb3a412a690f48a3d03ac5cf08177d6c2da3ade", size = 9977162, upload-time = "2026-08-20T17:43:24.236Z" },
+ { url = "https://files.pythonhosted.org/packages/46/49/72b10ec912f5ab5854992eaf7aa7cd36729b6937d9dc4e0fb41b3bf428ec/ruff-0.16.4-py3-none-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:b3dce8d9b0c57c265b91885a66a567d8ea1372e8eb4e250fa8e5e3f579e99cff", size = 9829789, upload-time = "2026-08-20T17:43:26.966Z" },
+ { url = "https://files.pythonhosted.org/packages/fa/80/0f30e32e7f6ee26edc39075502db9d368d788a44a79b55f763eb4ab03796/ruff-0.16.4-py3-none-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:7dc651db49283c69f8e72c834eec4fe5573e4c646856aebece0ce385dceb2a80", size = 10527949, upload-time = "2026-08-20T17:43:29.384Z" },
+ { url = "https://files.pythonhosted.org/packages/52/3d/86e8ad3542169e56cac3859a343afdb9df2ad54d35a59ce1e67baee83421/ruff-0.16.4-py3-none-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:3817b87dbcabc92f13b05019257c5b89b5b4d51b5fb20f56fb5235ceb723cd07", size = 11333695, upload-time = "2026-08-20T17:43:31.872Z" },
+ { url = "https://files.pythonhosted.org/packages/d0/16/481c29b380c20a0054a8261066665e1b3488e23636c49d0a43e75975b9bb/ruff-0.16.4-py3-none-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:e9fce1499134b2c8c68e5166f95705a5812062bb93aacc5f9873bb1a27084bc7", size = 10727741, upload-time = "2026-08-20T17:43:34.596Z" },
+ { url = "https://files.pythonhosted.org/packages/5e/b6/56bc0b8cf45b54b28b3a5e6381c8945d51b5b18adf659454c32295209a31/ruff-0.16.4-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f2d812e482f5a7e02eee26cd73d2a37ebbdf47d795ea63ba1b89110ae93e9fb3", size = 10286522, upload-time = "2026-08-20T17:43:37.288Z" },
+ { url = "https://files.pythonhosted.org/packages/e8/8b/b345b4fb110f2fbe2bd31eabd271e5e8b3b7e4ee6c0e02f2dc6be78db000/ruff-0.16.4-py3-none-manylinux_2_31_riscv64.whl", hash = "sha256:6baaf984aa7976edf93d3b627fe2d1d22ee94bbca05fa6f90fc76d73924e3454", size = 10584182, upload-time = "2026-08-20T17:43:39.984Z" },
+ { url = "https://files.pythonhosted.org/packages/29/e5/827b34041c35f58774a9681a4213994c164fc987800f4dddabcf451da0bf/ruff-0.16.4-py3-none-musllinux_1_2_aarch64.whl", hash = "sha256:bdfcf0b28662eb890372d50f92c283bb94e67e7635ed93c7fd533970acff7b2b", size = 10134195, upload-time = "2026-08-20T17:43:42.351Z" },
+ { url = "https://files.pythonhosted.org/packages/0f/10/d0bffcdd6729b87afc82ba0ef377173356a7dc8e972f5179968cf2fdf98c/ruff-0.16.4-py3-none-musllinux_1_2_armv7l.whl", hash = "sha256:b66b02cb9b04f537643cadf5768e5f98dc461890d530cb67113d71c8c76e605d", size = 9825821, upload-time = "2026-08-20T17:43:44.532Z" },
+ { url = "https://files.pythonhosted.org/packages/f5/32/0db2a863b796ca62d83e92a07a3ccf00921b14db02059347576a2fda3d4b/ruff-0.16.4-py3-none-musllinux_1_2_i686.whl", hash = "sha256:8528bf9a4b291a60bf02ea453511e8ce6215bd2b982ee80405b66b008b6c30a0", size = 10267658, upload-time = "2026-08-20T17:43:46.989Z" },
+ { url = "https://files.pythonhosted.org/packages/b2/a0/fbdeb59e48c6261f523e56c8f12e9c08fbe693786595cc7e3959207a9232/ruff-0.16.4-py3-none-musllinux_1_2_x86_64.whl", hash = "sha256:fbd85d2875fdd67e833213a651f613bbf25303abf6aa822a5121f4531195678d", size = 10697071, upload-time = "2026-08-20T17:43:49.891Z" },
+ { url = "https://files.pythonhosted.org/packages/aa/28/0c6dd865859c6d17bc8ccc34cb72b0e02d6c7eb25e8a1e22b5bea681e2c0/ruff-0.16.4-py3-none-win32.whl", hash = "sha256:312769988007aaeb8e189b443ccdd03c0e6374489e053467be6d96518ebff76e", size = 10021687, upload-time = "2026-08-20T17:43:52.281Z" },
+ { url = "https://files.pythonhosted.org/packages/a3/03/e724450f621698117f9aa6dd241c94d0274ae96781378dc86745ae29f0e7/ruff-0.16.4-py3-none-win_amd64.whl", hash = "sha256:05d9d27a18c4bcbefada602480ec9e01e0bc949d432e0ced5df77edac195919c", size = 10567657, upload-time = "2026-08-20T17:43:54.78Z" },
+ { url = "https://files.pythonhosted.org/packages/0e/fe/da8b9e1347696bb22120b77280ec5ce25d500ca5cb39d5ad6e5c18de19c1/ruff-0.16.4-py3-none-win_arm64.whl", hash = "sha256:a3a61621c9b6f6a89573e938a080e648f1695baa3f58570a3a707bc51ff65a21", size = 10451579, upload-time = "2026-08-20T17:43:57.135Z" },
]
[[package]]
@@ -2163,6 +2657,43 @@ wheels = [
{ url = "https://files.pythonhosted.org/packages/d6/02/12c73fd423eb9577b97fc1924966b929eff7074ae6b2e15dd3d30cb9e4ae/segno-1.6.6-py3-none-any.whl", hash = "sha256:28c7d081ed0cf935e0411293a465efd4d500704072cdb039778a2ab8736190c7", size = 76503, upload-time = "2025-03-12T22:12:48.106Z" },
]
+[[package]]
+name = "setuptools"
+version = "75.3.4"
+source = { registry = "https://pypi.org/simple" }
+resolution-markers = [
+ "python_full_version < '3.9'",
+]
+sdist = { url = "https://files.pythonhosted.org/packages/0e/93/d2622cbf262418995140dfc1ddb890badd6322893fa122302577c82b9617/setuptools-75.3.4.tar.gz", hash = "sha256:b4ea3f76e1633c4d2d422a5d68ab35fd35402ad71e6acaa5d7e5956eb47e8887", size = 1354595, upload-time = "2026-02-08T14:12:34.287Z" }
+wheels = [
+ { url = "https://files.pythonhosted.org/packages/cd/b1/961ba076c7d3732e3a97e6681c55ef647afb795fe8bfcd27becec8a762ce/setuptools-75.3.4-py3-none-any.whl", hash = "sha256:2dd50a7f42dddfa1d02a36f275dbe716f38ed250224f609d35fb60a09593d93e", size = 1251633, upload-time = "2026-02-08T14:12:32.364Z" },
+]
+
+[[package]]
+name = "setuptools"
+version = "82.0.1"
+source = { registry = "https://pypi.org/simple" }
+resolution-markers = [
+ "python_full_version == '3.9.*'",
+]
+sdist = { url = "https://files.pythonhosted.org/packages/4f/db/cfac1baf10650ab4d1c111714410d2fbb77ac5a616db26775db562c8fab2/setuptools-82.0.1.tar.gz", hash = "sha256:7d872682c5d01cfde07da7bccc7b65469d3dca203318515ada1de5eda35efbf9", size = 1152316, upload-time = "2026-03-09T12:47:17.221Z" }
+wheels = [
+ { url = "https://files.pythonhosted.org/packages/9d/76/f789f7a86709c6b087c5a2f52f911838cad707cc613162401badc665acfe/setuptools-82.0.1-py3-none-any.whl", hash = "sha256:a59e362652f08dcd477c78bb6e7bd9d80a7995bc73ce773050228a348ce2e5bb", size = 1006223, upload-time = "2026-03-09T12:47:15.026Z" },
+]
+
+[[package]]
+name = "setuptools"
+version = "84.0.0"
+source = { registry = "https://pypi.org/simple" }
+resolution-markers = [
+ "python_full_version >= '3.15'",
+ "python_full_version >= '3.10' and python_full_version < '3.15'",
+]
+sdist = { url = "https://files.pythonhosted.org/packages/6d/44/f5da03a8ef95d369145c5bb53050e7877c9f3d312e128605fd9504829143/setuptools-84.0.0.tar.gz", hash = "sha256:f4695c21257f0d9b537ec2692c941d02ee143b7cc1276941349a546573b2ef73", size = 1168449, upload-time = "2026-08-08T18:27:58.365Z" }
+wheels = [
+ { url = "https://files.pythonhosted.org/packages/95/9c/c510029fc6ef33a6275cd2c5d3cecd6613dfd6aa401d57c54f1c18852ccf/setuptools-84.0.0-py3-none-any.whl", hash = "sha256:51a52592b3b99e102b609654876bd65f19f999935166d1352678931132b0c670", size = 818216, upload-time = "2026-08-08T18:27:56.719Z" },
+]
+
[[package]]
name = "shellingham"
version = "1.5.4"
@@ -2258,51 +2789,59 @@ name = "tryx"
source = { editable = "." }
dependencies = [
{ name = "protobuf", version = "5.29.6", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.9'" },
- { name = "protobuf", version = "6.33.6", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version == '3.9.*'" },
- { name = "protobuf", version = "7.35.1", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.10'" },
+ { name = "protobuf", version = "6.33.6", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.9'" },
]
[package.dev-dependencies]
dev = [
+ { name = "grpcio-tools", version = "1.70.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.9'" },
+ { name = "grpcio-tools", version = "1.80.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.9'" },
{ name = "maturin" },
{ name = "mypy", version = "1.14.1", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.9'" },
{ name = "mypy", version = "1.19.1", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version == '3.9.*'" },
- { name = "mypy", version = "1.20.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.10'" },
+ { name = "mypy", version = "2.3.1", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.10'" },
{ name = "mypy-protobuf" },
{ name = "pre-commit", version = "4.3.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version == '3.9.*'" },
- { name = "pre-commit", version = "4.5.1", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.10'" },
+ { name = "pre-commit", version = "4.6.2", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.10'" },
+ { name = "pyright" },
{ name = "pytest", version = "8.3.5", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.9'" },
{ name = "pytest", version = "8.4.2", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version == '3.9.*'" },
- { name = "pytest", version = "9.0.2", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.10'" },
+ { name = "pytest", version = "9.1.1", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.10'" },
{ name = "python-semantic-release" },
{ name = "ruff" },
{ name = "segno" },
]
docs = [
- { name = "mkdocs" },
- { name = "mkdocs-material" },
- { name = "mkdocs-minify-plugin" },
+ { name = "mike", marker = "python_full_version >= '3.10'" },
+ { name = "mkdocs-material", marker = "python_full_version >= '3.10'" },
+ { name = "mkdocstrings", marker = "python_full_version >= '3.10'" },
+ { name = "mkdocstrings-python", marker = "python_full_version >= '3.10'" },
+ { name = "zensical", marker = "python_full_version >= '3.10'" },
]
[package.metadata]
-requires-dist = [{ name = "protobuf", specifier = ">=5.29.6" }]
+requires-dist = [{ name = "protobuf", specifier = ">=5.28.3,<7" }]
[package.metadata.requires-dev]
dev = [
+ { name = "grpcio-tools", specifier = ">=1.70.0" },
{ name = "maturin", specifier = ">=1.12,<2.0" },
{ name = "mypy", specifier = ">=1.14.0" },
{ name = "mypy-protobuf", specifier = ">=5.0.0" },
{ name = "pre-commit", marker = "python_full_version == '3.9.*'", specifier = ">=3.7.1,<4.4" },
{ name = "pre-commit", marker = "python_full_version >= '3.10'", specifier = ">=4.5.0" },
+ { name = "pyright", specifier = ">=1.1.390" },
{ name = "pytest", specifier = ">=8.3.5" },
{ name = "python-semantic-release", specifier = ">=9.21.1" },
{ name = "ruff", specifier = ">=0.11.4" },
{ name = "segno", specifier = ">=1.6.6" },
]
docs = [
- { name = "mkdocs", specifier = ">=1.6.0" },
- { name = "mkdocs-material", specifier = ">=9.6.0" },
- { name = "mkdocs-minify-plugin", specifier = ">=0.8.0" },
+ { name = "mike", marker = "python_full_version >= '3.10'", git = "https://github.com/squidfunk/mike.git" },
+ { name = "mkdocs-material", marker = "python_full_version >= '3.10'", specifier = ">=9.6" },
+ { name = "mkdocstrings", marker = "python_full_version >= '3.10'", specifier = ">=1.0.0" },
+ { name = "mkdocstrings-python", marker = "python_full_version >= '3.10'", specifier = ">=1.12.0" },
+ { name = "zensical", marker = "python_full_version >= '3.10'", specifier = ">=0.0.57" },
]
[[package]]
@@ -2331,14 +2870,15 @@ wheels = [
[[package]]
name = "types-protobuf"
-version = "6.32.1.20260221"
+version = "7.35.1.20260822"
source = { registry = "https://pypi.org/simple" }
resolution-markers = [
- "python_full_version >= '3.10'",
+ "python_full_version >= '3.15'",
+ "python_full_version >= '3.10' and python_full_version < '3.15'",
]
-sdist = { url = "https://files.pythonhosted.org/packages/5f/e2/9aa4a3b2469508bd7b4e2ae11cbedaf419222a09a1b94daffcd5efca4023/types_protobuf-6.32.1.20260221.tar.gz", hash = "sha256:6d5fb060a616bfb076cbb61b4b3c3969f5fc8bec5810f9a2f7e648ee5cbcbf6e", size = 64408, upload-time = "2026-02-21T03:55:13.916Z" }
+sdist = { url = "https://files.pythonhosted.org/packages/ae/73/83a53029c6acf3c1d041c14864e9c4256b687787719f9f04b0ece7487bf8/types_protobuf-7.35.1.20260822.tar.gz", hash = "sha256:734db0a9620a032eea789eabfd2848a875e17aedc3fb0dcb57ef530c0badda00", size = 69612, upload-time = "2026-08-22T02:43:48.607Z" }
wheels = [
- { url = "https://files.pythonhosted.org/packages/2e/e8/1fd38926f9cf031188fbc5a96694203ea6f24b0e34bd64a225ec6f6291ba/types_protobuf-6.32.1.20260221-py3-none-any.whl", hash = "sha256:da7cdd947975964a93c30bfbcc2c6841ee646b318d3816b033adc2c4eb6448e4", size = 77956, upload-time = "2026-02-21T03:55:12.894Z" },
+ { url = "https://files.pythonhosted.org/packages/0c/ba/eb30d4110b7c426555b5bffd79cdd1e920290983a5744858dd3e2682c8db/types_protobuf-7.35.1.20260822-py3-none-any.whl", hash = "sha256:0a6621dd28ec85876bbd0e2e80fba4998bfb63bbd4cff2c15eb469e73915fa05", size = 86411, upload-time = "2026-08-22T02:43:47.529Z" },
]
[[package]]
@@ -2355,29 +2895,49 @@ wheels = [
[[package]]
name = "typing-extensions"
-version = "4.15.0"
+version = "4.16.0"
source = { registry = "https://pypi.org/simple" }
resolution-markers = [
- "python_full_version >= '3.10'",
+ "python_full_version >= '3.15'",
+ "python_full_version >= '3.10' and python_full_version < '3.15'",
"python_full_version == '3.9.*'",
]
-sdist = { url = "https://files.pythonhosted.org/packages/72/94/1a15dd82efb362ac84269196e94cf00f187f7ed21c242792a923cdb1c61f/typing_extensions-4.15.0.tar.gz", hash = "sha256:0cea48d173cc12fa28ecabc3b837ea3cf6f38c6d1136f85cbaaf598984861466", size = 109391, upload-time = "2025-08-25T13:49:26.313Z" }
+sdist = { url = "https://files.pythonhosted.org/packages/f6/cc/6253133b5bb138fc3306cebfbda2c520f545d36b5be2c7255cc528bb45d6/typing_extensions-4.16.0.tar.gz", hash = "sha256:dc983d19a509c94dba722ee6abd33940f7c05a89e243c47e907eb4db6f1a43e5", size = 113555, upload-time = "2026-07-02T08:40:05.92Z" }
wheels = [
- { url = "https://files.pythonhosted.org/packages/18/67/36e9267722cc04a6b9f15c7f3441c2363321a3ea07da7ae0c0707beb2a9c/typing_extensions-4.15.0-py3-none-any.whl", hash = "sha256:f0fa19c6845758ab08074a0cfa8b7aecb71c999ca73d62883bc25cc018c4e548", size = 44614, upload-time = "2025-08-25T13:49:24.86Z" },
+ { url = "https://files.pythonhosted.org/packages/49/d3/b8441a820a491ddfc024b0b0cf0393375b75ea13866d9c66727e54c2fc80/typing_extensions-4.16.0-py3-none-any.whl", hash = "sha256:481caa481374e813c1b176ada14e97f1f67a4539ce9cfeb3f350d78d6370c2e8", size = 45571, upload-time = "2026-07-02T08:40:04.659Z" },
]
[[package]]
name = "typing-inspection"
version = "0.4.2"
source = { registry = "https://pypi.org/simple" }
+resolution-markers = [
+ "python_full_version == '3.9.*'",
+]
dependencies = [
- { name = "typing-extensions", version = "4.15.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.9'" },
+ { name = "typing-extensions", version = "4.16.0", source = { registry = "https://pypi.org/simple" } },
]
sdist = { url = "https://files.pythonhosted.org/packages/55/e3/70399cb7dd41c10ac53367ae42139cf4b1ca5f36bb3dc6c9d33acdb43655/typing_inspection-0.4.2.tar.gz", hash = "sha256:ba561c48a67c5958007083d386c3295464928b01faa735ab8547c5692e87f464", size = 75949, upload-time = "2025-10-01T02:14:41.687Z" }
wheels = [
{ url = "https://files.pythonhosted.org/packages/dc/9b/47798a6c91d8bdb567fe2698fe81e0c6b7cb7ef4d13da4114b41d239f65d/typing_inspection-0.4.2-py3-none-any.whl", hash = "sha256:4ed1cacbdc298c220f1bd249ed5287caa16f34d44ef4e9c3d0cbad5b521545e7", size = 14611, upload-time = "2025-10-01T02:14:40.154Z" },
]
+[[package]]
+name = "typing-inspection"
+version = "0.4.4"
+source = { registry = "https://pypi.org/simple" }
+resolution-markers = [
+ "python_full_version >= '3.15'",
+ "python_full_version >= '3.10' and python_full_version < '3.15'",
+]
+dependencies = [
+ { name = "typing-extensions", version = "4.16.0", source = { registry = "https://pypi.org/simple" } },
+]
+sdist = { url = "https://files.pythonhosted.org/packages/a3/26/b09b8010994eccc3c09092e6b34058f36a460eea2d4c3e8b910c695975a0/typing_inspection-0.4.4.tar.gz", hash = "sha256:547274fa6b0a561ccf549cc9524b999a578e737d015d8709d021f9d0d13bea47", size = 76928, upload-time = "2026-08-12T12:37:25.997Z" }
+wheels = [
+ { url = "https://files.pythonhosted.org/packages/67/81/4add07e5172b7ac40d8ed5ff580409a7801a4fe26d529bdd915401dabfbe/typing_inspection-0.4.4-py3-none-any.whl", hash = "sha256:65b8397ba37ccbce054456aaccddfc91e6e3083c92824df348d96ca832f3f147", size = 14750, upload-time = "2026-08-12T12:37:24.648Z" },
+]
+
[[package]]
name = "urllib3"
version = "2.2.3"
@@ -2395,7 +2955,6 @@ name = "urllib3"
version = "2.6.3"
source = { registry = "https://pypi.org/simple" }
resolution-markers = [
- "python_full_version >= '3.10'",
"python_full_version == '3.9.*'",
]
sdist = { url = "https://files.pythonhosted.org/packages/c7/24/5f1b3bdffd70275f6661c76461e25f024d5a38a46f04aaca912426a2b1d3/urllib3-2.6.3.tar.gz", hash = "sha256:1b62b6884944a57dbe321509ab94fd4d3b307075e0c2eae991ac71ee15ad38ed", size = 435556, upload-time = "2026-01-07T16:24:43.925Z" }
@@ -2404,76 +2963,49 @@ wheels = [
]
[[package]]
-name = "virtualenv"
-version = "21.2.0"
+name = "urllib3"
+version = "2.7.0"
source = { registry = "https://pypi.org/simple" }
-dependencies = [
- { name = "distlib", marker = "python_full_version >= '3.9'" },
- { name = "filelock", version = "3.19.1", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version == '3.9.*'" },
- { name = "filelock", version = "3.25.2", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.10'" },
- { name = "platformdirs", version = "4.4.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version == '3.9.*'" },
- { name = "platformdirs", version = "4.9.4", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.10'" },
- { name = "python-discovery", marker = "python_full_version >= '3.9'" },
- { name = "typing-extensions", version = "4.15.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.9' and python_full_version < '3.11'" },
+resolution-markers = [
+ "python_full_version >= '3.15'",
+ "python_full_version >= '3.10' and python_full_version < '3.15'",
]
-sdist = { url = "https://files.pythonhosted.org/packages/aa/92/58199fe10049f9703c2666e809c4f686c54ef0a68b0f6afccf518c0b1eb9/virtualenv-21.2.0.tar.gz", hash = "sha256:1720dc3a62ef5b443092e3f499228599045d7fea4c79199770499df8becf9098", size = 5840618, upload-time = "2026-03-09T17:24:38.013Z" }
+sdist = { url = "https://files.pythonhosted.org/packages/53/0c/06f8b233b8fd13b9e5ee11424ef85419ba0d8ba0b3138bf360be2ff56953/urllib3-2.7.0.tar.gz", hash = "sha256:231e0ec3b63ceb14667c67be60f2f2c40a518cb38b03af60abc813da26505f4c", size = 433602, upload-time = "2026-05-07T16:13:18.596Z" }
wheels = [
- { url = "https://files.pythonhosted.org/packages/c6/59/7d02447a55b2e55755011a647479041bc92a82e143f96a8195cb33bd0a1c/virtualenv-21.2.0-py3-none-any.whl", hash = "sha256:1bd755b504931164a5a496d217c014d098426cddc79363ad66ac78125f9d908f", size = 5825084, upload-time = "2026-03-09T17:24:35.378Z" },
+ { url = "https://files.pythonhosted.org/packages/7f/3e/5db95bcf282c52709639744ca2a8b149baccf648e39c8cc87553df9eae0c/urllib3-2.7.0-py3-none-any.whl", hash = "sha256:9fb4c81ebbb1ce9531cce37674bbc6f1360472bc18ca9a553ede278ef7276897", size = 131087, upload-time = "2026-05-07T16:13:17.151Z" },
]
[[package]]
-name = "watchdog"
-version = "4.0.2"
+name = "verspec"
+version = "0.1.0"
source = { registry = "https://pypi.org/simple" }
-resolution-markers = [
- "python_full_version < '3.9'",
+sdist = { url = "https://files.pythonhosted.org/packages/e7/44/8126f9f0c44319b2efc65feaad589cadef4d77ece200ae3c9133d58464d0/verspec-0.1.0.tar.gz", hash = "sha256:c4504ca697b2056cdb4bfa7121461f5a0e81809255b41c03dda4ba823637c01e", size = 27123, upload-time = "2020-11-30T02:24:09.646Z" }
+wheels = [
+ { url = "https://files.pythonhosted.org/packages/a4/ce/3b6fee91c85626eaf769d617f1be9d2e15c1cca027bbdeb2e0d751469355/verspec-0.1.0-py3-none-any.whl", hash = "sha256:741877d5633cc9464c45a469ae2a31e801e6dbbaa85b9675d481cda100f11c31", size = 19640, upload-time = "2020-11-30T02:24:08.387Z" },
]
-sdist = { url = "https://files.pythonhosted.org/packages/4f/38/764baaa25eb5e35c9a043d4c4588f9836edfe52a708950f4b6d5f714fd42/watchdog-4.0.2.tar.gz", hash = "sha256:b4dfbb6c49221be4535623ea4474a4d6ee0a9cef4a80b20c28db4d858b64e270", size = 126587, upload-time = "2024-08-11T07:38:01.623Z" }
-wheels = [
- { url = "https://files.pythonhosted.org/packages/46/b0/219893d41c16d74d0793363bf86df07d50357b81f64bba4cb94fe76e7af4/watchdog-4.0.2-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:ede7f010f2239b97cc79e6cb3c249e72962404ae3865860855d5cbe708b0fd22", size = 100257, upload-time = "2024-08-11T07:37:04.209Z" },
- { url = "https://files.pythonhosted.org/packages/6d/c6/8e90c65693e87d98310b2e1e5fd7e313266990853b489e85ce8396cc26e3/watchdog-4.0.2-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:a2cffa171445b0efa0726c561eca9a27d00a1f2b83846dbd5a4f639c4f8ca8e1", size = 92249, upload-time = "2024-08-11T07:37:06.364Z" },
- { url = "https://files.pythonhosted.org/packages/6f/cd/2e306756364a934532ff8388d90eb2dc8bb21fe575cd2b33d791ce05a02f/watchdog-4.0.2-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:c50f148b31b03fbadd6d0b5980e38b558046b127dc483e5e4505fcef250f9503", size = 92888, upload-time = "2024-08-11T07:37:08.275Z" },
- { url = "https://files.pythonhosted.org/packages/de/78/027ad372d62f97642349a16015394a7680530460b1c70c368c506cb60c09/watchdog-4.0.2-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:7c7d4bf585ad501c5f6c980e7be9c4f15604c7cc150e942d82083b31a7548930", size = 100256, upload-time = "2024-08-11T07:37:11.017Z" },
- { url = "https://files.pythonhosted.org/packages/59/a9/412b808568c1814d693b4ff1cec0055dc791780b9dc947807978fab86bc1/watchdog-4.0.2-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:914285126ad0b6eb2258bbbcb7b288d9dfd655ae88fa28945be05a7b475a800b", size = 92252, upload-time = "2024-08-11T07:37:13.098Z" },
- { url = "https://files.pythonhosted.org/packages/04/57/179d76076cff264982bc335dd4c7da6d636bd3e9860bbc896a665c3447b6/watchdog-4.0.2-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:984306dc4720da5498b16fc037b36ac443816125a3705dfde4fd90652d8028ef", size = 92888, upload-time = "2024-08-11T07:37:15.077Z" },
- { url = "https://files.pythonhosted.org/packages/92/f5/ea22b095340545faea37ad9a42353b265ca751f543da3fb43f5d00cdcd21/watchdog-4.0.2-cp312-cp312-macosx_10_9_universal2.whl", hash = "sha256:1cdcfd8142f604630deef34722d695fb455d04ab7cfe9963055df1fc69e6727a", size = 100342, upload-time = "2024-08-11T07:37:16.393Z" },
- { url = "https://files.pythonhosted.org/packages/cb/d2/8ce97dff5e465db1222951434e3115189ae54a9863aef99c6987890cc9ef/watchdog-4.0.2-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:d7ab624ff2f663f98cd03c8b7eedc09375a911794dfea6bf2a359fcc266bff29", size = 92306, upload-time = "2024-08-11T07:37:17.997Z" },
- { url = "https://files.pythonhosted.org/packages/49/c4/1aeba2c31b25f79b03b15918155bc8c0b08101054fc727900f1a577d0d54/watchdog-4.0.2-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:132937547a716027bd5714383dfc40dc66c26769f1ce8a72a859d6a48f371f3a", size = 92915, upload-time = "2024-08-11T07:37:19.967Z" },
- { url = "https://files.pythonhosted.org/packages/79/63/eb8994a182672c042d85a33507475c50c2ee930577524dd97aea05251527/watchdog-4.0.2-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:cd67c7df93eb58f360c43802acc945fa8da70c675b6fa37a241e17ca698ca49b", size = 100343, upload-time = "2024-08-11T07:37:21.935Z" },
- { url = "https://files.pythonhosted.org/packages/ce/82/027c0c65c2245769580605bcd20a1dc7dfd6c6683c8c4e2ef43920e38d27/watchdog-4.0.2-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:bcfd02377be80ef3b6bc4ce481ef3959640458d6feaae0bd43dd90a43da90a7d", size = 92313, upload-time = "2024-08-11T07:37:23.314Z" },
- { url = "https://files.pythonhosted.org/packages/2a/89/ad4715cbbd3440cb0d336b78970aba243a33a24b1a79d66f8d16b4590d6a/watchdog-4.0.2-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:980b71510f59c884d684b3663d46e7a14b457c9611c481e5cef08f4dd022eed7", size = 92919, upload-time = "2024-08-11T07:37:24.715Z" },
- { url = "https://files.pythonhosted.org/packages/55/08/1a9086a3380e8828f65b0c835b86baf29ebb85e5e94a2811a2eb4f889cfd/watchdog-4.0.2-cp38-cp38-macosx_10_9_universal2.whl", hash = "sha256:aa160781cafff2719b663c8a506156e9289d111d80f3387cf3af49cedee1f040", size = 100255, upload-time = "2024-08-11T07:37:26.862Z" },
- { url = "https://files.pythonhosted.org/packages/6c/3e/064974628cf305831f3f78264800bd03b3358ec181e3e9380a36ff156b93/watchdog-4.0.2-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:f6ee8dedd255087bc7fe82adf046f0b75479b989185fb0bdf9a98b612170eac7", size = 92257, upload-time = "2024-08-11T07:37:28.253Z" },
- { url = "https://files.pythonhosted.org/packages/23/69/1d2ad9c12d93bc1e445baa40db46bc74757f3ffc3a3be592ba8dbc51b6e5/watchdog-4.0.2-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:0b4359067d30d5b864e09c8597b112fe0a0a59321a0f331498b013fb097406b4", size = 92886, upload-time = "2024-08-11T07:37:29.52Z" },
- { url = "https://files.pythonhosted.org/packages/68/eb/34d3173eceab490d4d1815ba9a821e10abe1da7a7264a224e30689b1450c/watchdog-4.0.2-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:770eef5372f146997638d737c9a3c597a3b41037cfbc5c41538fc27c09c3a3f9", size = 100254, upload-time = "2024-08-11T07:37:30.888Z" },
- { url = "https://files.pythonhosted.org/packages/18/a1/4bbafe7ace414904c2cc9bd93e472133e8ec11eab0b4625017f0e34caad8/watchdog-4.0.2-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:eeea812f38536a0aa859972d50c76e37f4456474b02bd93674d1947cf1e39578", size = 92249, upload-time = "2024-08-11T07:37:32.193Z" },
- { url = "https://files.pythonhosted.org/packages/f3/11/ec5684e0ca692950826af0de862e5db167523c30c9cbf9b3f4ce7ec9cc05/watchdog-4.0.2-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:b2c45f6e1e57ebb4687690c05bc3a2c1fb6ab260550c4290b8abb1335e0fd08b", size = 92891, upload-time = "2024-08-11T07:37:34.212Z" },
- { url = "https://files.pythonhosted.org/packages/3b/9a/6f30f023324de7bad8a3eb02b0afb06bd0726003a3550e9964321315df5a/watchdog-4.0.2-pp310-pypy310_pp73-macosx_10_15_x86_64.whl", hash = "sha256:10b6683df70d340ac3279eff0b2766813f00f35a1d37515d2c99959ada8f05fa", size = 91775, upload-time = "2024-08-11T07:37:35.567Z" },
- { url = "https://files.pythonhosted.org/packages/87/62/8be55e605d378a154037b9ba484e00a5478e627b69c53d0f63e3ef413ba6/watchdog-4.0.2-pp310-pypy310_pp73-macosx_11_0_arm64.whl", hash = "sha256:f7c739888c20f99824f7aa9d31ac8a97353e22d0c0e54703a547a218f6637eb3", size = 92255, upload-time = "2024-08-11T07:37:37.596Z" },
- { url = "https://files.pythonhosted.org/packages/6b/59/12e03e675d28f450bade6da6bc79ad6616080b317c472b9ae688d2495a03/watchdog-4.0.2-pp38-pypy38_pp73-macosx_10_9_x86_64.whl", hash = "sha256:c100d09ac72a8a08ddbf0629ddfa0b8ee41740f9051429baa8e31bb903ad7508", size = 91682, upload-time = "2024-08-11T07:37:38.901Z" },
- { url = "https://files.pythonhosted.org/packages/ef/69/241998de9b8e024f5c2fbdf4324ea628b4231925305011ca8b7e1c3329f6/watchdog-4.0.2-pp38-pypy38_pp73-macosx_11_0_arm64.whl", hash = "sha256:f5315a8c8dd6dd9425b974515081fc0aadca1d1d61e078d2246509fd756141ee", size = 92249, upload-time = "2024-08-11T07:37:40.143Z" },
- { url = "https://files.pythonhosted.org/packages/70/3f/2173b4d9581bc9b5df4d7f2041b6c58b5e5448407856f68d4be9981000d0/watchdog-4.0.2-pp39-pypy39_pp73-macosx_10_15_x86_64.whl", hash = "sha256:2d468028a77b42cc685ed694a7a550a8d1771bb05193ba7b24006b8241a571a1", size = 91773, upload-time = "2024-08-11T07:37:42.095Z" },
- { url = "https://files.pythonhosted.org/packages/f0/de/6fff29161d5789048f06ef24d94d3ddcc25795f347202b7ea503c3356acb/watchdog-4.0.2-pp39-pypy39_pp73-macosx_11_0_arm64.whl", hash = "sha256:f15edcae3830ff20e55d1f4e743e92970c847bcddc8b7509bcd172aa04de506e", size = 92250, upload-time = "2024-08-11T07:37:44.052Z" },
- { url = "https://files.pythonhosted.org/packages/8a/b1/25acf6767af6f7e44e0086309825bd8c098e301eed5868dc5350642124b9/watchdog-4.0.2-py3-none-manylinux2014_aarch64.whl", hash = "sha256:936acba76d636f70db8f3c66e76aa6cb5136a936fc2a5088b9ce1c7a3508fc83", size = 82947, upload-time = "2024-08-11T07:37:45.388Z" },
- { url = "https://files.pythonhosted.org/packages/e8/90/aebac95d6f954bd4901f5d46dcd83d68e682bfd21798fd125a95ae1c9dbf/watchdog-4.0.2-py3-none-manylinux2014_armv7l.whl", hash = "sha256:e252f8ca942a870f38cf785aef420285431311652d871409a64e2a0a52a2174c", size = 82942, upload-time = "2024-08-11T07:37:46.722Z" },
- { url = "https://files.pythonhosted.org/packages/15/3a/a4bd8f3b9381824995787488b9282aff1ed4667e1110f31a87b871ea851c/watchdog-4.0.2-py3-none-manylinux2014_i686.whl", hash = "sha256:0e83619a2d5d436a7e58a1aea957a3c1ccbf9782c43c0b4fed80580e5e4acd1a", size = 82947, upload-time = "2024-08-11T07:37:48.941Z" },
- { url = "https://files.pythonhosted.org/packages/09/cc/238998fc08e292a4a18a852ed8274159019ee7a66be14441325bcd811dfd/watchdog-4.0.2-py3-none-manylinux2014_ppc64.whl", hash = "sha256:88456d65f207b39f1981bf772e473799fcdc10801062c36fd5ad9f9d1d463a73", size = 82946, upload-time = "2024-08-11T07:37:50.279Z" },
- { url = "https://files.pythonhosted.org/packages/80/f1/d4b915160c9d677174aa5fae4537ae1f5acb23b3745ab0873071ef671f0a/watchdog-4.0.2-py3-none-manylinux2014_ppc64le.whl", hash = "sha256:32be97f3b75693a93c683787a87a0dc8db98bb84701539954eef991fb35f5fbc", size = 82947, upload-time = "2024-08-11T07:37:51.55Z" },
- { url = "https://files.pythonhosted.org/packages/db/02/56ebe2cf33b352fe3309588eb03f020d4d1c061563d9858a9216ba004259/watchdog-4.0.2-py3-none-manylinux2014_s390x.whl", hash = "sha256:c82253cfc9be68e3e49282831afad2c1f6593af80c0daf1287f6a92657986757", size = 82944, upload-time = "2024-08-11T07:37:52.855Z" },
- { url = "https://files.pythonhosted.org/packages/01/d2/c8931ff840a7e5bd5dcb93f2bb2a1fd18faf8312e9f7f53ff1cf76ecc8ed/watchdog-4.0.2-py3-none-manylinux2014_x86_64.whl", hash = "sha256:c0b14488bd336c5b1845cee83d3e631a1f8b4e9c5091ec539406e4a324f882d8", size = 82947, upload-time = "2024-08-11T07:37:55.172Z" },
- { url = "https://files.pythonhosted.org/packages/d0/d8/cdb0c21a4a988669d7c210c75c6a2c9a0e16a3b08d9f7e633df0d9a16ad8/watchdog-4.0.2-py3-none-win32.whl", hash = "sha256:0d8a7e523ef03757a5aa29f591437d64d0d894635f8a50f370fe37f913ce4e19", size = 82935, upload-time = "2024-08-11T07:37:56.668Z" },
- { url = "https://files.pythonhosted.org/packages/99/2e/b69dfaae7a83ea64ce36538cc103a3065e12c447963797793d5c0a1d5130/watchdog-4.0.2-py3-none-win_amd64.whl", hash = "sha256:c344453ef3bf875a535b0488e3ad28e341adbd5a9ffb0f7d62cefacc8824ef2b", size = 82934, upload-time = "2024-08-11T07:37:57.991Z" },
- { url = "https://files.pythonhosted.org/packages/b0/0b/43b96a9ecdd65ff5545b1b13b687ca486da5c6249475b1a45f24d63a1858/watchdog-4.0.2-py3-none-win_ia64.whl", hash = "sha256:baececaa8edff42cd16558a639a9b0ddf425f93d892e8392a56bf904f5eff22c", size = 82933, upload-time = "2024-08-11T07:37:59.573Z" },
+
+[[package]]
+name = "virtualenv"
+version = "21.7.4"
+source = { registry = "https://pypi.org/simple" }
+dependencies = [
+ { name = "distlib" },
+ { name = "filelock", version = "3.19.1", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.10'" },
+ { name = "filelock", version = "3.32.3", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.10'" },
+ { name = "platformdirs", version = "4.4.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.10'" },
+ { name = "platformdirs", version = "4.11.3", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.10'" },
+ { name = "python-discovery" },
+ { name = "typing-extensions", version = "4.16.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.11'" },
+]
+sdist = { url = "https://files.pythonhosted.org/packages/2d/dc/a6eb1ddfa7f1e390fa599b078453c97edb3f6f846b34fb4eac3e8ea16401/virtualenv-21.7.4.tar.gz", hash = "sha256:c9d960c95fa458171e58222a5ccab7465298e4b6559977865e627c4719f1e825", size = 5345511, upload-time = "2026-08-10T22:54:33.316Z" }
+wheels = [
+ { url = "https://files.pythonhosted.org/packages/40/4c/eb2f52aeeaf30dbd073d315a251a63ae2b8263171ec4428c135140cb0802/virtualenv-21.7.4-py3-none-any.whl", hash = "sha256:376ec93cd6aab3044fa395d7db226db38043b7b5748948044b2a87168525e843", size = 5324444, upload-time = "2026-08-10T22:54:31.515Z" },
]
[[package]]
name = "watchdog"
version = "6.0.0"
source = { registry = "https://pypi.org/simple" }
-resolution-markers = [
- "python_full_version >= '3.10'",
- "python_full_version == '3.9.*'",
-]
sdist = { url = "https://files.pythonhosted.org/packages/db/7d/7f3d619e951c88ed75c6037b246ddcf2d322812ee8ea189be89511721d54/watchdog-6.0.0.tar.gz", hash = "sha256:9ddf7c82fda3ae8e24decda1338ede66e1c99883db93711d8fb941eaa2d8c282", size = 131220, upload-time = "2024-11-01T14:07:13.037Z" }
wheels = [
{ url = "https://files.pythonhosted.org/packages/0c/56/90994d789c61df619bfc5ce2ecdabd5eeff564e1eb47512bd01b5e019569/watchdog-6.0.0-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:d1cdb490583ebd691c012b3d6dae011000fe42edb7a82ece80965b42abd61f26", size = 96390, upload-time = "2024-11-01T14:06:24.793Z" },
@@ -2626,103 +3158,134 @@ wheels = [
[[package]]
name = "wrapt"
-version = "2.1.2"
+version = "2.3.0"
source = { registry = "https://pypi.org/simple" }
resolution-markers = [
- "python_full_version >= '3.10'",
+ "python_full_version >= '3.15'",
+ "python_full_version >= '3.10' and python_full_version < '3.15'",
"python_full_version == '3.9.*'",
]
-sdist = { url = "https://files.pythonhosted.org/packages/2e/64/925f213fdcbb9baeb1530449ac71a4d57fc361c053d06bf78d0c5c7cd80c/wrapt-2.1.2.tar.gz", hash = "sha256:3996a67eecc2c68fd47b4e3c564405a5777367adfd9b8abb58387b63ee83b21e", size = 81678, upload-time = "2026-03-06T02:53:25.134Z" }
-wheels = [
- { url = "https://files.pythonhosted.org/packages/da/d2/387594fb592d027366645f3d7cc9b4d7ca7be93845fbaba6d835a912ef3c/wrapt-2.1.2-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:4b7a86d99a14f76facb269dc148590c01aaf47584071809a70da30555228158c", size = 60669, upload-time = "2026-03-06T02:52:40.671Z" },
- { url = "https://files.pythonhosted.org/packages/c9/18/3f373935bc5509e7ac444c8026a56762e50c1183e7061797437ca96c12ce/wrapt-2.1.2-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:a819e39017f95bf7aede768f75915635aa8f671f2993c036991b8d3bfe8dbb6f", size = 61603, upload-time = "2026-03-06T02:54:21.032Z" },
- { url = "https://files.pythonhosted.org/packages/c2/7a/32758ca2853b07a887a4574b74e28843919103194bb47001a304e24af62f/wrapt-2.1.2-cp310-cp310-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl", hash = "sha256:5681123e60aed0e64c7d44f72bbf8b4ce45f79d81467e2c4c728629f5baf06eb", size = 113632, upload-time = "2026-03-06T02:53:54.121Z" },
- { url = "https://files.pythonhosted.org/packages/1d/d5/eeaa38f670d462e97d978b3b0d9ce06d5b91e54bebac6fbed867809216e7/wrapt-2.1.2-cp310-cp310-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:2b8b28e97a44d21836259739ae76284e180b18abbb4dcfdff07a415cf1016c3e", size = 115644, upload-time = "2026-03-06T02:54:53.33Z" },
- { url = "https://files.pythonhosted.org/packages/e3/09/2a41506cb17affb0bdf9d5e2129c8c19e192b388c4c01d05e1b14db23c00/wrapt-2.1.2-cp310-cp310-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:cef91c95a50596fcdc31397eb6955476f82ae8a3f5a8eabdc13611b60ee380ba", size = 112016, upload-time = "2026-03-06T02:54:43.274Z" },
- { url = "https://files.pythonhosted.org/packages/64/15/0e6c3f5e87caadc43db279724ee36979246d5194fa32fed489c73643ba59/wrapt-2.1.2-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:dad63212b168de8569b1c512f4eac4b57f2c6934b30df32d6ee9534a79f1493f", size = 114823, upload-time = "2026-03-06T02:54:29.392Z" },
- { url = "https://files.pythonhosted.org/packages/56/b2/0ad17c8248f4e57bedf44938c26ec3ee194715f812d2dbbd9d7ff4be6c06/wrapt-2.1.2-cp310-cp310-musllinux_1_2_riscv64.whl", hash = "sha256:d307aa6888d5efab2c1cde09843d48c843990be13069003184b67d426d145394", size = 111244, upload-time = "2026-03-06T02:54:02.149Z" },
- { url = "https://files.pythonhosted.org/packages/ff/04/bcdba98c26f2c6522c7c09a726d5d9229120163493620205b2f76bd13c01/wrapt-2.1.2-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:c87cf3f0c85e27b3ac7d9ad95da166bf8739ca215a8b171e8404a2d739897a45", size = 113307, upload-time = "2026-03-06T02:54:12.428Z" },
- { url = "https://files.pythonhosted.org/packages/0e/1b/5e2883c6bc14143924e465a6fc5a92d09eeabe35310842a481fb0581f832/wrapt-2.1.2-cp310-cp310-win32.whl", hash = "sha256:d1c5fea4f9fe3762e2b905fdd67df51e4be7a73b7674957af2d2ade71a5c075d", size = 57986, upload-time = "2026-03-06T02:54:26.823Z" },
- { url = "https://files.pythonhosted.org/packages/42/5a/4efc997bccadd3af5749c250b49412793bc41e13a83a486b2b54a33e240c/wrapt-2.1.2-cp310-cp310-win_amd64.whl", hash = "sha256:d8f7740e1af13dff2684e4d56fe604a7e04d6c94e737a60568d8d4238b9a0c71", size = 60336, upload-time = "2026-03-06T02:54:18Z" },
- { url = "https://files.pythonhosted.org/packages/c1/f5/a2bb833e20181b937e87c242645ed5d5aa9c373006b0467bfe1a35c727d0/wrapt-2.1.2-cp310-cp310-win_arm64.whl", hash = "sha256:1c6cc827c00dc839350155f316f1f8b4b0c370f52b6a19e782e2bda89600c7dc", size = 58757, upload-time = "2026-03-06T02:53:51.545Z" },
- { url = "https://files.pythonhosted.org/packages/c7/81/60c4471fce95afa5922ca09b88a25f03c93343f759aae0f31fb4412a85c7/wrapt-2.1.2-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:96159a0ee2b0277d44201c3b5be479a9979cf154e8c82fa5df49586a8e7679bb", size = 60666, upload-time = "2026-03-06T02:52:58.934Z" },
- { url = "https://files.pythonhosted.org/packages/6b/be/80e80e39e7cb90b006a0eaf11c73ac3a62bbfb3068469aec15cc0bc795de/wrapt-2.1.2-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:98ba61833a77b747901e9012072f038795de7fc77849f1faa965464f3f87ff2d", size = 61601, upload-time = "2026-03-06T02:53:00.487Z" },
- { url = "https://files.pythonhosted.org/packages/b0/be/d7c88cd9293c859fc74b232abdc65a229bb953997995d6912fc85af18323/wrapt-2.1.2-cp311-cp311-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl", hash = "sha256:767c0dbbe76cae2a60dd2b235ac0c87c9cccf4898aef8062e57bead46b5f6894", size = 114057, upload-time = "2026-03-06T02:52:44.08Z" },
- { url = "https://files.pythonhosted.org/packages/ea/25/36c04602831a4d685d45a93b3abea61eca7fe35dab6c842d6f5d570ef94a/wrapt-2.1.2-cp311-cp311-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:9c691a6bc752c0cc4711cc0c00896fcd0f116abc253609ef64ef930032821842", size = 116099, upload-time = "2026-03-06T02:54:56.74Z" },
- { url = "https://files.pythonhosted.org/packages/5c/4e/98a6eb417ef551dc277bec1253d5246b25003cf36fdf3913b65cb7657a56/wrapt-2.1.2-cp311-cp311-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:f3b7d73012ea75aee5844de58c88f44cf62d0d62711e39da5a82824a7c4626a8", size = 112457, upload-time = "2026-03-06T02:53:52.842Z" },
- { url = "https://files.pythonhosted.org/packages/cb/a6/a6f7186a5297cad8ec53fd7578533b28f795fdf5372368c74bd7e6e9841c/wrapt-2.1.2-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:577dff354e7acd9d411eaf4bfe76b724c89c89c8fc9b7e127ee28c5f7bcb25b6", size = 115351, upload-time = "2026-03-06T02:53:32.684Z" },
- { url = "https://files.pythonhosted.org/packages/97/6f/06e66189e721dbebd5cf20e138acc4d1150288ce118462f2fcbff92d38db/wrapt-2.1.2-cp311-cp311-musllinux_1_2_riscv64.whl", hash = "sha256:3d7b6fd105f8b24e5bd23ccf41cb1d1099796524bcc6f7fbb8fe576c44befbc9", size = 111748, upload-time = "2026-03-06T02:53:08.455Z" },
- { url = "https://files.pythonhosted.org/packages/ef/43/4808b86f499a51370fbdbdfa6cb91e9b9169e762716456471b619fca7a70/wrapt-2.1.2-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:866abdbf4612e0b34764922ef8b1c5668867610a718d3053d59e24a5e5fcfc15", size = 113783, upload-time = "2026-03-06T02:53:02.02Z" },
- { url = "https://files.pythonhosted.org/packages/91/2c/a3f28b8fa7ac2cefa01cfcaca3471f9b0460608d012b693998cd61ef43df/wrapt-2.1.2-cp311-cp311-win32.whl", hash = "sha256:5a0a0a3a882393095573344075189eb2d566e0fd205a2b6414e9997b1b800a8b", size = 57977, upload-time = "2026-03-06T02:53:27.844Z" },
- { url = "https://files.pythonhosted.org/packages/3f/c3/2b1c7bd07a27b1db885a2fab469b707bdd35bddf30a113b4917a7e2139d2/wrapt-2.1.2-cp311-cp311-win_amd64.whl", hash = "sha256:64a07a71d2730ba56f11d1a4b91f7817dc79bc134c11516b75d1921a7c6fcda1", size = 60336, upload-time = "2026-03-06T02:54:28.104Z" },
- { url = "https://files.pythonhosted.org/packages/ec/5c/76ece7b401b088daa6503d6264dd80f9a727df3e6042802de9a223084ea2/wrapt-2.1.2-cp311-cp311-win_arm64.whl", hash = "sha256:b89f095fe98bc12107f82a9f7d570dc83a0870291aeb6b1d7a7d35575f55d98a", size = 58756, upload-time = "2026-03-06T02:53:16.319Z" },
- { url = "https://files.pythonhosted.org/packages/4c/b6/1db817582c49c7fcbb7df6809d0f515af29d7c2fbf57eb44c36e98fb1492/wrapt-2.1.2-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:ff2aad9c4cda28a8f0653fc2d487596458c2a3f475e56ba02909e950a9efa6a9", size = 61255, upload-time = "2026-03-06T02:52:45.663Z" },
- { url = "https://files.pythonhosted.org/packages/a2/16/9b02a6b99c09227c93cd4b73acc3678114154ec38da53043c0ddc1fba0dc/wrapt-2.1.2-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:6433ea84e1cfacf32021d2a4ee909554ade7fd392caa6f7c13f1f4bf7b8e8748", size = 61848, upload-time = "2026-03-06T02:53:48.728Z" },
- { url = "https://files.pythonhosted.org/packages/af/aa/ead46a88f9ec3a432a4832dfedb84092fc35af2d0ba40cd04aea3889f247/wrapt-2.1.2-cp312-cp312-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl", hash = "sha256:c20b757c268d30d6215916a5fa8461048d023865d888e437fab451139cad6c8e", size = 121433, upload-time = "2026-03-06T02:54:40.328Z" },
- { url = "https://files.pythonhosted.org/packages/3a/9f/742c7c7cdf58b59085a1ee4b6c37b013f66ac33673a7ef4aaed5e992bc33/wrapt-2.1.2-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:79847b83eb38e70d93dc392c7c5b587efe65b3e7afcc167aa8abd5d60e8761c8", size = 123013, upload-time = "2026-03-06T02:53:26.58Z" },
- { url = "https://files.pythonhosted.org/packages/e8/44/2c3dd45d53236b7ed7c646fcf212251dc19e48e599debd3926b52310fafb/wrapt-2.1.2-cp312-cp312-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:f8fba1bae256186a83d1875b2b1f4e2d1242e8fac0f58ec0d7e41b26967b965c", size = 117326, upload-time = "2026-03-06T02:53:11.547Z" },
- { url = "https://files.pythonhosted.org/packages/74/e2/b17d66abc26bd96f89dec0ecd0ef03da4a1286e6ff793839ec431b9fae57/wrapt-2.1.2-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:e3d3b35eedcf5f7d022291ecd7533321c4775f7b9cd0050a31a68499ba45757c", size = 121444, upload-time = "2026-03-06T02:54:09.5Z" },
- { url = "https://files.pythonhosted.org/packages/3c/62/e2977843fdf9f03daf1586a0ff49060b1b2fc7ff85a7ea82b6217c1ae36e/wrapt-2.1.2-cp312-cp312-musllinux_1_2_riscv64.whl", hash = "sha256:6f2c5390460de57fa9582bc8a1b7a6c86e1a41dfad74c5225fc07044c15cc8d1", size = 116237, upload-time = "2026-03-06T02:54:03.884Z" },
- { url = "https://files.pythonhosted.org/packages/88/dd/27fc67914e68d740bce512f11734aec08696e6b17641fef8867c00c949fc/wrapt-2.1.2-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:7dfa9f2cf65d027b951d05c662cc99ee3bd01f6e4691ed39848a7a5fffc902b2", size = 120563, upload-time = "2026-03-06T02:53:20.412Z" },
- { url = "https://files.pythonhosted.org/packages/ec/9f/b750b3692ed2ef4705cb305bd68858e73010492b80e43d2a4faa5573cbe7/wrapt-2.1.2-cp312-cp312-win32.whl", hash = "sha256:eba8155747eb2cae4a0b913d9ebd12a1db4d860fc4c829d7578c7b989bd3f2f0", size = 58198, upload-time = "2026-03-06T02:53:37.732Z" },
- { url = "https://files.pythonhosted.org/packages/8e/b2/feecfe29f28483d888d76a48f03c4c4d8afea944dbee2b0cd3380f9df032/wrapt-2.1.2-cp312-cp312-win_amd64.whl", hash = "sha256:1c51c738d7d9faa0b3601708e7e2eda9bf779e1b601dce6c77411f2a1b324a63", size = 60441, upload-time = "2026-03-06T02:52:47.138Z" },
- { url = "https://files.pythonhosted.org/packages/44/e1/e328f605d6e208547ea9fd120804fcdec68536ac748987a68c47c606eea8/wrapt-2.1.2-cp312-cp312-win_arm64.whl", hash = "sha256:c8e46ae8e4032792eb2f677dbd0d557170a8e5524d22acc55199f43efedd39bf", size = 58836, upload-time = "2026-03-06T02:53:22.053Z" },
- { url = "https://files.pythonhosted.org/packages/4c/7a/d936840735c828b38d26a854e85d5338894cda544cb7a85a9d5b8b9c4df7/wrapt-2.1.2-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:787fd6f4d67befa6fe2abdffcbd3de2d82dfc6fb8a6d850407c53332709d030b", size = 61259, upload-time = "2026-03-06T02:53:41.922Z" },
- { url = "https://files.pythonhosted.org/packages/5e/88/9a9b9a90ac8ca11c2fdb6a286cb3a1fc7dd774c00ed70929a6434f6bc634/wrapt-2.1.2-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:4bdf26e03e6d0da3f0e9422fd36bcebf7bc0eeb55fdf9c727a09abc6b9fe472e", size = 61851, upload-time = "2026-03-06T02:52:48.672Z" },
- { url = "https://files.pythonhosted.org/packages/03/a9/5b7d6a16fd6533fed2756900fc8fc923f678179aea62ada6d65c92718c00/wrapt-2.1.2-cp313-cp313-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl", hash = "sha256:bbac24d879aa22998e87f6b3f481a5216311e7d53c7db87f189a7a0266dafffb", size = 121446, upload-time = "2026-03-06T02:54:14.013Z" },
- { url = "https://files.pythonhosted.org/packages/45/bb/34c443690c847835cfe9f892be78c533d4f32366ad2888972c094a897e39/wrapt-2.1.2-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:16997dfb9d67addc2e3f41b62a104341e80cac52f91110dece393923c0ebd5ca", size = 123056, upload-time = "2026-03-06T02:54:10.829Z" },
- { url = "https://files.pythonhosted.org/packages/93/b9/ff205f391cb708f67f41ea148545f2b53ff543a7ac293b30d178af4d2271/wrapt-2.1.2-cp313-cp313-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:162e4e2ba7542da9027821cb6e7c5e068d64f9a10b5f15512ea28e954893a267", size = 117359, upload-time = "2026-03-06T02:53:03.623Z" },
- { url = "https://files.pythonhosted.org/packages/1f/3d/1ea04d7747825119c3c9a5e0874a40b33594ada92e5649347c457d982805/wrapt-2.1.2-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:f29c827a8d9936ac320746747a016c4bc66ef639f5cd0d32df24f5eacbf9c69f", size = 121479, upload-time = "2026-03-06T02:53:45.844Z" },
- { url = "https://files.pythonhosted.org/packages/78/cc/ee3a011920c7a023b25e8df26f306b2484a531ab84ca5c96260a73de76c0/wrapt-2.1.2-cp313-cp313-musllinux_1_2_riscv64.whl", hash = "sha256:a9dd9813825f7ecb018c17fd147a01845eb330254dff86d3b5816f20f4d6aaf8", size = 116271, upload-time = "2026-03-06T02:54:46.356Z" },
- { url = "https://files.pythonhosted.org/packages/98/fd/e5ff7ded41b76d802cf1191288473e850d24ba2e39a6ec540f21ae3b57cb/wrapt-2.1.2-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:6f8dbdd3719e534860d6a78526aafc220e0241f981367018c2875178cf83a413", size = 120573, upload-time = "2026-03-06T02:52:50.163Z" },
- { url = "https://files.pythonhosted.org/packages/47/c5/242cae3b5b080cd09bacef0591691ba1879739050cc7c801ff35c8886b66/wrapt-2.1.2-cp313-cp313-win32.whl", hash = "sha256:5c35b5d82b16a3bc6e0a04349b606a0582bc29f573786aebe98e0c159bc48db6", size = 58205, upload-time = "2026-03-06T02:53:47.494Z" },
- { url = "https://files.pythonhosted.org/packages/12/69/c358c61e7a50f290958809b3c61ebe8b3838ea3e070d7aac9814f95a0528/wrapt-2.1.2-cp313-cp313-win_amd64.whl", hash = "sha256:f8bc1c264d8d1cf5b3560a87bbdd31131573eb25f9f9447bb6252b8d4c44a3a1", size = 60452, upload-time = "2026-03-06T02:53:30.038Z" },
- { url = "https://files.pythonhosted.org/packages/8e/66/c8a6fcfe321295fd8c0ab1bd685b5a01462a9b3aa2f597254462fc2bc975/wrapt-2.1.2-cp313-cp313-win_arm64.whl", hash = "sha256:3beb22f674550d5634642c645aba4c72a2c66fb185ae1aebe1e955fae5a13baf", size = 58842, upload-time = "2026-03-06T02:52:52.114Z" },
- { url = "https://files.pythonhosted.org/packages/da/55/9c7052c349106e0b3f17ae8db4b23a691a963c334de7f9dbd60f8f74a831/wrapt-2.1.2-cp313-cp313t-macosx_10_13_x86_64.whl", hash = "sha256:0fc04bc8664a8bc4c8e00b37b5355cffca2535209fba1abb09ae2b7c76ddf82b", size = 63075, upload-time = "2026-03-06T02:53:19.108Z" },
- { url = "https://files.pythonhosted.org/packages/09/a8/ce7b4006f7218248dd71b7b2b732d0710845a0e49213b18faef64811ffef/wrapt-2.1.2-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:a9b9d50c9af998875a1482a038eb05755dfd6fe303a313f6a940bb53a83c3f18", size = 63719, upload-time = "2026-03-06T02:54:33.452Z" },
- { url = "https://files.pythonhosted.org/packages/e4/e5/2ca472e80b9e2b7a17f106bb8f9df1db11e62101652ce210f66935c6af67/wrapt-2.1.2-cp313-cp313t-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl", hash = "sha256:2d3ff4f0024dd224290c0eabf0240f1bfc1f26363431505fb1b0283d3b08f11d", size = 152643, upload-time = "2026-03-06T02:52:42.721Z" },
- { url = "https://files.pythonhosted.org/packages/36/42/30f0f2cefca9d9cbf6835f544d825064570203c3e70aa873d8ae12e23791/wrapt-2.1.2-cp313-cp313t-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:3278c471f4468ad544a691b31bb856374fbdefb7fee1a152153e64019379f015", size = 158805, upload-time = "2026-03-06T02:54:25.441Z" },
- { url = "https://files.pythonhosted.org/packages/bb/67/d08672f801f604889dcf58f1a0b424fe3808860ede9e03affc1876b295af/wrapt-2.1.2-cp313-cp313t-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:a8914c754d3134a3032601c6984db1c576e6abaf3fc68094bb8ab1379d75ff92", size = 145990, upload-time = "2026-03-06T02:53:57.456Z" },
- { url = "https://files.pythonhosted.org/packages/68/a7/fd371b02e73babec1de6ade596e8cd9691051058cfdadbfd62a5898f3295/wrapt-2.1.2-cp313-cp313t-musllinux_1_2_aarch64.whl", hash = "sha256:ff95d4264e55839be37bafe1536db2ab2de19da6b65f9244f01f332b5286cfbf", size = 155670, upload-time = "2026-03-06T02:54:55.309Z" },
- { url = "https://files.pythonhosted.org/packages/86/2d/9fe0095dfdb621009f40117dcebf41d7396c2c22dca6eac779f4c007b86c/wrapt-2.1.2-cp313-cp313t-musllinux_1_2_riscv64.whl", hash = "sha256:76405518ca4e1b76fbb1b9f686cff93aebae03920cc55ceeec48ff9f719c5f67", size = 144357, upload-time = "2026-03-06T02:54:24.092Z" },
- { url = "https://files.pythonhosted.org/packages/0e/b6/ec7b4a254abbe4cde9fa15c5d2cca4518f6b07d0f1b77d4ee9655e30280e/wrapt-2.1.2-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:c0be8b5a74c5824e9359b53e7e58bef71a729bacc82e16587db1c4ebc91f7c5a", size = 150269, upload-time = "2026-03-06T02:53:31.268Z" },
- { url = "https://files.pythonhosted.org/packages/6e/6b/2fabe8ebf148f4ee3c782aae86a795cc68ffe7d432ef550f234025ce0cfa/wrapt-2.1.2-cp313-cp313t-win32.whl", hash = "sha256:f01277d9a5fc1862f26f7626da9cf443bebc0abd2f303f41c5e995b15887dabd", size = 59894, upload-time = "2026-03-06T02:54:15.391Z" },
- { url = "https://files.pythonhosted.org/packages/ca/fb/9ba66fc2dedc936de5f8073c0217b5d4484e966d87723415cc8262c5d9c2/wrapt-2.1.2-cp313-cp313t-win_amd64.whl", hash = "sha256:84ce8f1c2104d2f6daa912b1b5b039f331febfeee74f8042ad4e04992bd95c8f", size = 63197, upload-time = "2026-03-06T02:54:41.943Z" },
- { url = "https://files.pythonhosted.org/packages/c0/1c/012d7423c95d0e337117723eb8ecf73c622ce15a97847e84cf3f8f26cd7e/wrapt-2.1.2-cp313-cp313t-win_arm64.whl", hash = "sha256:a93cd767e37faeddbe07d8fc4212d5cba660af59bdb0f6372c93faaa13e6e679", size = 60363, upload-time = "2026-03-06T02:54:48.093Z" },
- { url = "https://files.pythonhosted.org/packages/39/25/e7ea0b417db02bb796182a5316398a75792cd9a22528783d868755e1f669/wrapt-2.1.2-cp314-cp314-macosx_10_15_x86_64.whl", hash = "sha256:1370e516598854e5b4366e09ce81e08bfe94d42b0fd569b88ec46cc56d9164a9", size = 61418, upload-time = "2026-03-06T02:53:55.706Z" },
- { url = "https://files.pythonhosted.org/packages/ec/0f/fa539e2f6a770249907757eaeb9a5ff4deb41c026f8466c1c6d799088a9b/wrapt-2.1.2-cp314-cp314-macosx_11_0_arm64.whl", hash = "sha256:6de1a3851c27e0bd6a04ca993ea6f80fc53e6c742ee1601f486c08e9f9b900a9", size = 61914, upload-time = "2026-03-06T02:52:53.37Z" },
- { url = "https://files.pythonhosted.org/packages/53/37/02af1867f5b1441aaeda9c82deed061b7cd1372572ddcd717f6df90b5e93/wrapt-2.1.2-cp314-cp314-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl", hash = "sha256:de9f1a2bbc5ac7f6012ec24525bdd444765a2ff64b5985ac6e0692144838542e", size = 120417, upload-time = "2026-03-06T02:54:30.74Z" },
- { url = "https://files.pythonhosted.org/packages/c3/b7/0138a6238c8ba7476c77cf786a807f871672b37f37a422970342308276e7/wrapt-2.1.2-cp314-cp314-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:970d57ed83fa040d8b20c52fe74a6ae7e3775ae8cff5efd6a81e06b19078484c", size = 122797, upload-time = "2026-03-06T02:54:51.539Z" },
- { url = "https://files.pythonhosted.org/packages/e1/ad/819ae558036d6a15b7ed290d5b14e209ca795dd4da9c58e50c067d5927b0/wrapt-2.1.2-cp314-cp314-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:3969c56e4563c375861c8df14fa55146e81ac11c8db49ea6fb7f2ba58bc1ff9a", size = 117350, upload-time = "2026-03-06T02:54:37.651Z" },
- { url = "https://files.pythonhosted.org/packages/8b/2d/afc18dc57a4600a6e594f77a9ae09db54f55ba455440a54886694a84c71b/wrapt-2.1.2-cp314-cp314-musllinux_1_2_aarch64.whl", hash = "sha256:57d7c0c980abdc5f1d98b11a2aa3bb159790add80258c717fa49a99921456d90", size = 121223, upload-time = "2026-03-06T02:54:35.221Z" },
- { url = "https://files.pythonhosted.org/packages/b9/5b/5ec189b22205697bc56eb3b62aed87a1e0423e9c8285d0781c7a83170d15/wrapt-2.1.2-cp314-cp314-musllinux_1_2_riscv64.whl", hash = "sha256:776867878e83130c7a04237010463372e877c1c994d449ca6aaafeab6aab2586", size = 116287, upload-time = "2026-03-06T02:54:19.654Z" },
- { url = "https://files.pythonhosted.org/packages/f7/2d/f84939a7c9b5e6cdd8a8d0f6a26cabf36a0f7e468b967720e8b0cd2bdf69/wrapt-2.1.2-cp314-cp314-musllinux_1_2_x86_64.whl", hash = "sha256:fab036efe5464ec3291411fabb80a7a39e2dd80bae9bcbeeca5087fdfa891e19", size = 119593, upload-time = "2026-03-06T02:54:16.697Z" },
- { url = "https://files.pythonhosted.org/packages/0b/fe/ccd22a1263159c4ac811ab9374c061bcb4a702773f6e06e38de5f81a1bdc/wrapt-2.1.2-cp314-cp314-win32.whl", hash = "sha256:e6ed62c82ddf58d001096ae84ce7f833db97ae2263bff31c9b336ba8cfe3f508", size = 58631, upload-time = "2026-03-06T02:53:06.498Z" },
- { url = "https://files.pythonhosted.org/packages/65/0a/6bd83be7bff2e7efaac7b4ac9748da9d75a34634bbbbc8ad077d527146df/wrapt-2.1.2-cp314-cp314-win_amd64.whl", hash = "sha256:467e7c76315390331c67073073d00662015bb730c566820c9ca9b54e4d67fd04", size = 60875, upload-time = "2026-03-06T02:53:50.252Z" },
- { url = "https://files.pythonhosted.org/packages/6c/c0/0b3056397fe02ff80e5a5d72d627c11eb885d1ca78e71b1a5c1e8c7d45de/wrapt-2.1.2-cp314-cp314-win_arm64.whl", hash = "sha256:da1f00a557c66225d53b095a97eace0fc5349e3bfda28fa34ffae238978ee575", size = 59164, upload-time = "2026-03-06T02:53:59.128Z" },
- { url = "https://files.pythonhosted.org/packages/71/ed/5d89c798741993b2371396eb9d4634f009ff1ad8a6c78d366fe2883ea7a6/wrapt-2.1.2-cp314-cp314t-macosx_10_15_x86_64.whl", hash = "sha256:62503ffbc2d3a69891cf29beeaccdb4d5e0a126e2b6a851688d4777e01428dbb", size = 63163, upload-time = "2026-03-06T02:52:54.873Z" },
- { url = "https://files.pythonhosted.org/packages/c6/8c/05d277d182bf36b0a13d6bd393ed1dec3468a25b59d01fba2dd70fe4d6ae/wrapt-2.1.2-cp314-cp314t-macosx_11_0_arm64.whl", hash = "sha256:c7e6cd120ef837d5b6f860a6ea3745f8763805c418bb2f12eeb1fa6e25f22d22", size = 63723, upload-time = "2026-03-06T02:52:56.374Z" },
- { url = "https://files.pythonhosted.org/packages/f4/27/6c51ec1eff4413c57e72d6106bb8dec6f0c7cdba6503d78f0fa98767bcc9/wrapt-2.1.2-cp314-cp314t-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl", hash = "sha256:3769a77df8e756d65fbc050333f423c01ae012b4f6731aaf70cf2bef61b34596", size = 152652, upload-time = "2026-03-06T02:53:23.79Z" },
- { url = "https://files.pythonhosted.org/packages/db/4c/d7dd662d6963fc7335bfe29d512b02b71cdfa23eeca7ab3ac74a67505deb/wrapt-2.1.2-cp314-cp314t-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:a76d61a2e851996150ba0f80582dd92a870643fa481f3b3846f229de88caf044", size = 158807, upload-time = "2026-03-06T02:53:35.742Z" },
- { url = "https://files.pythonhosted.org/packages/b4/4d/1e5eea1a78d539d346765727422976676615814029522c76b87a95f6bcdd/wrapt-2.1.2-cp314-cp314t-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:6f97edc9842cf215312b75fe737ee7c8adda75a89979f8e11558dfff6343cc4b", size = 146061, upload-time = "2026-03-06T02:52:57.574Z" },
- { url = "https://files.pythonhosted.org/packages/89/bc/62cabea7695cd12a288023251eeefdcb8465056ddaab6227cb78a2de005b/wrapt-2.1.2-cp314-cp314t-musllinux_1_2_aarch64.whl", hash = "sha256:4006c351de6d5007aa33a551f600404ba44228a89e833d2fadc5caa5de8edfbf", size = 155667, upload-time = "2026-03-06T02:53:39.422Z" },
- { url = "https://files.pythonhosted.org/packages/e9/99/6f2888cd68588f24df3a76572c69c2de28287acb9e1972bf0c83ce97dbc1/wrapt-2.1.2-cp314-cp314t-musllinux_1_2_riscv64.whl", hash = "sha256:a9372fc3639a878c8e7d87e1556fa209091b0a66e912c611e3f833e2c4202be2", size = 144392, upload-time = "2026-03-06T02:54:22.41Z" },
- { url = "https://files.pythonhosted.org/packages/40/51/1dfc783a6c57971614c48e361a82ca3b6da9055879952587bc99fe1a7171/wrapt-2.1.2-cp314-cp314t-musllinux_1_2_x86_64.whl", hash = "sha256:3144b027ff30cbd2fca07c0a87e67011adb717eb5f5bd8496325c17e454257a3", size = 150296, upload-time = "2026-03-06T02:54:07.848Z" },
- { url = "https://files.pythonhosted.org/packages/6c/38/cbb8b933a0201076c1f64fc42883b0023002bdc14a4964219154e6ff3350/wrapt-2.1.2-cp314-cp314t-win32.whl", hash = "sha256:3b8d15e52e195813efe5db8cec156eebe339aaf84222f4f4f051a6c01f237ed7", size = 60539, upload-time = "2026-03-06T02:54:00.594Z" },
- { url = "https://files.pythonhosted.org/packages/82/dd/e5176e4b241c9f528402cebb238a36785a628179d7d8b71091154b3e4c9e/wrapt-2.1.2-cp314-cp314t-win_amd64.whl", hash = "sha256:08ffa54146a7559f5b8df4b289b46d963a8e74ed16ba3687f99896101a3990c5", size = 63969, upload-time = "2026-03-06T02:54:39Z" },
- { url = "https://files.pythonhosted.org/packages/5c/99/79f17046cf67e4a95b9987ea129632ba8bcec0bc81f3fb3d19bdb0bd60cd/wrapt-2.1.2-cp314-cp314t-win_arm64.whl", hash = "sha256:72aaa9d0d8e4ed0e2e98019cea47a21f823c9dd4b43c7b77bba6679ffcca6a00", size = 60554, upload-time = "2026-03-06T02:53:14.132Z" },
- { url = "https://files.pythonhosted.org/packages/f7/ea/fe375f8a012e5f25b2cd31b093860c8c6540be445345c6f886e5d8bca9ef/wrapt-2.1.2-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:5e0fa9cc32300daf9eb09a1f5bdc6deb9a79defd70d5356ba453bcd50aef3742", size = 60661, upload-time = "2026-03-06T02:54:06.572Z" },
- { url = "https://files.pythonhosted.org/packages/d8/2a/0dff969ddf4d3f69f051c8f81afbd3a9fc9fb08ab993b1061ee582b6543c/wrapt-2.1.2-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:710f6e5dfaf6a5d5c397d2d6758a78fecd9649deb21f1b645f5b57a328d63050", size = 61602, upload-time = "2026-03-06T02:53:44.48Z" },
- { url = "https://files.pythonhosted.org/packages/25/62/b80dd7a6c21486a7b8aea63b6bac509b2e4ea184b0eefe3795aa7202a92c/wrapt-2.1.2-cp39-cp39-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl", hash = "sha256:305d8a1755116bfdad5dda9e771dcb2138990a1d66e9edd81658816edf51aed1", size = 113340, upload-time = "2026-03-06T02:54:44.626Z" },
- { url = "https://files.pythonhosted.org/packages/82/06/adbe093e07a775d8687cc45329cda9e1b33779357d146c688accbc3a9f1f/wrapt-2.1.2-cp39-cp39-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:f0d8fc30a43b5fe191cf2b1a0c82bab2571dadd38e7c0062ee87d6df858dd06e", size = 115305, upload-time = "2026-03-06T02:53:04.929Z" },
- { url = "https://files.pythonhosted.org/packages/3f/dd/31c2596c6bf6bfb1874aa637c66e3028baa83d00708d1439db3b395f8371/wrapt-2.1.2-cp39-cp39-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:a5d516e22aedb7c9c1d47cba1c63160b1a6f61ec2f3948d127cd38d5cfbb556f", size = 111691, upload-time = "2026-03-06T02:53:17.845Z" },
- { url = "https://files.pythonhosted.org/packages/03/92/e9ba179f4a00b7eb7ab8afc1f729fc3be8bd468b9f1d33be1fd99476493a/wrapt-2.1.2-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:45914e8efbe4b9d5102fcf0e8e2e3258b83a5d5fba9f8f7b6d15681e9d29ffe0", size = 114507, upload-time = "2026-03-06T02:54:49.398Z" },
- { url = "https://files.pythonhosted.org/packages/0f/dd/5ce1332e824503fb7041a8f8b51ec1f06e7033834e38c01416fa1c599668/wrapt-2.1.2-cp39-cp39-musllinux_1_2_riscv64.whl", hash = "sha256:478282ebd3795a089154fb16d3db360e103aa13d3b2ad30f8f6aac0d2207de0e", size = 110945, upload-time = "2026-03-06T02:54:32.088Z" },
- { url = "https://files.pythonhosted.org/packages/1b/17/d1c1d7b63a029205fe8add19db654fd105e2a92a3776c1312e74456ce3ab/wrapt-2.1.2-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:3756219045f73fb28c5d7662778e4156fbd06cf823c4d2d4b19f97305e52819c", size = 113107, upload-time = "2026-03-06T02:54:05.226Z" },
- { url = "https://files.pythonhosted.org/packages/85/9f/aa5b1570ca36a0533ad5fc9d9e436047b9af187f9bd182f5eb6b718fe28b/wrapt-2.1.2-cp39-cp39-win32.whl", hash = "sha256:b8aefb4dbb18d904b96827435a763fa42fc1f08ea096a391710407a60983ced8", size = 57984, upload-time = "2026-03-06T02:53:10.07Z" },
- { url = "https://files.pythonhosted.org/packages/71/3a/a0c92e4c8b6cd8ef179c62249f03f5ce50c142f71fe04c2a14279bd826b4/wrapt-2.1.2-cp39-cp39-win_amd64.whl", hash = "sha256:e5aeab8fe15c3dff75cfee94260dcd9cded012d4ff06add036c28fae7718593b", size = 60334, upload-time = "2026-03-06T02:53:34.183Z" },
- { url = "https://files.pythonhosted.org/packages/75/87/2725632aa7f1f70a9730952444e2ba856bd15ce8ee0210afcdb50f48ab69/wrapt-2.1.2-cp39-cp39-win_arm64.whl", hash = "sha256:f069e113743a21a3defac6677f000068ebb931639f789b5b226598e247a4c89e", size = 58759, upload-time = "2026-03-06T02:53:43.16Z" },
- { url = "https://files.pythonhosted.org/packages/1a/c7/8528ac2dfa2c1e6708f647df7ae144ead13f0a31146f43c7264b4942bf12/wrapt-2.1.2-py3-none-any.whl", hash = "sha256:b8fd6fa2b2c4e7621808f8c62e8317f4aae56e59721ad933bac5239d913cf0e8", size = 43993, upload-time = "2026-03-06T02:53:12.905Z" },
+sdist = { url = "https://files.pythonhosted.org/packages/2b/b0/c1f5a970721f06b85c0cd5142e0ff8fe067708abd779b0c4f4be7d61d09f/wrapt-2.3.0.tar.gz", hash = "sha256:681a2d0eefd721998f90642762b8e75c2159ec531b20ad5e437245ea7b06a107", size = 131509, upload-time = "2026-07-28T06:06:14.895Z" }
+wheels = [
+ { url = "https://files.pythonhosted.org/packages/40/31/5822ce37ca8820c2ed35a498c67c8b37960b9cee2ba437fd32849d0a234c/wrapt-2.3.0-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:0bb2797048db0956348cb3058c33bc4184614f13231389cfbccc16a5d32780a7", size = 81191, upload-time = "2026-07-28T06:04:04.858Z" },
+ { url = "https://files.pythonhosted.org/packages/7a/5a/3c6117938be98754578ab83f5a40d7d0ea2cd2c487dc5cd6027ee7228229/wrapt-2.3.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:ce9f398f868d2b3b27aa2ea4de79645ef9077aeeac8dfc2814b0d542c6a2b87f", size = 82255, upload-time = "2026-07-28T06:04:07.151Z" },
+ { url = "https://files.pythonhosted.org/packages/a5/0f/94ae724c5087eb6054c0d63febd7094947dcf302fe058e2e0488102a872b/wrapt-2.3.0-cp310-cp310-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl", hash = "sha256:ad71df7a04dd3497e9302e81f4a7c91bd401ea0e15a9df9029527900f94bee43", size = 155228, upload-time = "2026-07-28T06:04:08.272Z" },
+ { url = "https://files.pythonhosted.org/packages/6c/21/1f780bba935dcf697c0c59de9be3a559bbb8e31a53ca3f25422023738432/wrapt-2.3.0-cp310-cp310-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:fc82c2ccc8e234c844f5303d9f2984b346dcdd53e94823ce8420d2c75b4b9023", size = 157073, upload-time = "2026-07-28T06:04:09.459Z" },
+ { url = "https://files.pythonhosted.org/packages/73/31/6c7799d7b6431fcd7e1b83245fb45258a2d2c3a2187fbaecb83572a72d7a/wrapt-2.3.0-cp310-cp310-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:a6e19531ae33c508cea7d84a7edfda01fa86e51b8d1a93a77712c55e6e469152", size = 151594, upload-time = "2026-07-28T06:04:10.784Z" },
+ { url = "https://files.pythonhosted.org/packages/ce/17/42d670dbfafd49076c6eb2b7d67633d7e1c968e39bfb11a135acb6fac67b/wrapt-2.3.0-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:df4ce31150bcd5d9f36f816aac3010ab4f4bf8672ac1d3b0ac7d539ec61c7c02", size = 156069, upload-time = "2026-07-28T06:04:12.316Z" },
+ { url = "https://files.pythonhosted.org/packages/1f/d6/c66b4ba4eda49257c84d5c2df26118280f09ca7905aee20d0064db778d13/wrapt-2.3.0-cp310-cp310-musllinux_1_2_riscv64.whl", hash = "sha256:e2e692bc0d63f881cf7006730a56bd4e0c2fab5dc318466942805d692b166276", size = 150930, upload-time = "2026-07-28T06:04:13.482Z" },
+ { url = "https://files.pythonhosted.org/packages/c0/f2/1a3b949c0322fb27396eafd1044328c1cb0400e0b32105d75a3cd03096e7/wrapt-2.3.0-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:c8388ba7faf5dbf9ee106bb70d66f257629b1bd98091123e19e8a4553a319199", size = 154525, upload-time = "2026-07-28T06:04:14.698Z" },
+ { url = "https://files.pythonhosted.org/packages/12/65/147563a3dfa6e830c857b93b530ebd8c0cd9d540e5914aec8f9b12880c02/wrapt-2.3.0-cp310-cp310-win32.whl", hash = "sha256:e045ff75d7d94900fc32896ed93c45ce2d2cac28c9dead582ff9a5a49d446e35", size = 77879, upload-time = "2026-07-28T06:04:16.102Z" },
+ { url = "https://files.pythonhosted.org/packages/c4/eb/921405b4dc55d4f8be4c700ef120539fdd75d5fdb50d83bd257171ee18e0/wrapt-2.3.0-cp310-cp310-win_amd64.whl", hash = "sha256:b4fc96b159af0a3e0faa72475a69d66292bea72a5bed1e1aca1bffbddc3cb2b0", size = 80733, upload-time = "2026-07-28T06:04:17.43Z" },
+ { url = "https://files.pythonhosted.org/packages/b6/13/75947450c5bb57795fa86384721cd52c5c4deb0879022f309501a8a85d44/wrapt-2.3.0-cp310-cp310-win_arm64.whl", hash = "sha256:1236fa25173ca964c97422470482e9011b9e3c7ed0d75798b40b3da3b0e0e760", size = 80199, upload-time = "2026-07-28T06:04:18.761Z" },
+ { url = "https://files.pythonhosted.org/packages/00/b8/9182e4c618a847be0baccb68e4602b070d0fa22c782cf058f4bc66b32709/wrapt-2.3.0-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:5ab559e1b2551d23d54db2a0001c6d73bad022a254639561c5f6c382a9d6c2fe", size = 81427, upload-time = "2026-07-28T06:04:20.106Z" },
+ { url = "https://files.pythonhosted.org/packages/84/ca/613cefd9c5977366b1587e61c0b428176d382e6d75b454084c5e58503042/wrapt-2.3.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:bff9a671bc00709cab5a7f745c592b5671873449db0ee2a569af994f16b29a4d", size = 82360, upload-time = "2026-07-28T06:04:21.613Z" },
+ { url = "https://files.pythonhosted.org/packages/71/71/4cd2151a236f44a6e2dd4ed8011838d7ba0be3d656c8bafdfc65a2ed1917/wrapt-2.3.0-cp311-cp311-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl", hash = "sha256:fc648a335d7e01adb3640b25f02fd0ea05886cf04d0af7f4ee902bc7b5e466e8", size = 161700, upload-time = "2026-07-28T06:04:22.723Z" },
+ { url = "https://files.pythonhosted.org/packages/49/2c/bc508fee75eb2919ed69769800b09968e4aab16897f909a23f39c81e323f/wrapt-2.3.0-cp311-cp311-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:d0077f3d65541925fa83002f967b22ad6550d24813ac64cb905f717194128d9c", size = 162922, upload-time = "2026-07-28T06:04:24.177Z" },
+ { url = "https://files.pythonhosted.org/packages/4d/e5/04f34d38e66d857dfc2fc4088d60e70c0e422467822defa49b2b4a26e17b/wrapt-2.3.0-cp311-cp311-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:9790ea25190a4e0fe4cdf4eeb868e9d75f8a024a70a5b6bf9c348a3a2b72e731", size = 156125, upload-time = "2026-07-28T06:04:25.58Z" },
+ { url = "https://files.pythonhosted.org/packages/23/41/c35940ea1c423f129ebe4361db853bc80d4def6326242e1206fa15bf94f4/wrapt-2.3.0-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:816877aa749253149f9ecfd2635d4d948ecfa338e1a0311d187b1acb1bb8a3eb", size = 162039, upload-time = "2026-07-28T06:04:27.154Z" },
+ { url = "https://files.pythonhosted.org/packages/0e/60/9bda34c3d7d182aa703fe35339ae0ed4c4dad5e5c587f93890143e1f87fb/wrapt-2.3.0-cp311-cp311-musllinux_1_2_riscv64.whl", hash = "sha256:3d1c2c1b808600d2ea808e6360910a60ed5f409a4011655e10f9164ba0a414a6", size = 155110, upload-time = "2026-07-28T06:04:28.497Z" },
+ { url = "https://files.pythonhosted.org/packages/e8/ba/60bfd9b1a751f4fcb2d603668fc272d651ccdd339a56acf8c40ad21a0293/wrapt-2.3.0-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:5ba1e5e08ddc46130e9682b2c249f2d1dd39bda9106ed4bd401b7519f18f41bd", size = 161089, upload-time = "2026-07-28T06:04:29.959Z" },
+ { url = "https://files.pythonhosted.org/packages/0f/32/2bd358c6f4f1305c813479d1e9ba746bebdd794f4a20107ab2b3ee0cbd45/wrapt-2.3.0-cp311-cp311-win32.whl", hash = "sha256:45c9279b373d15649dfa2c2077cb3408ea1a6d3125afbdab9d6b809a66f68e14", size = 78030, upload-time = "2026-07-28T06:04:31.241Z" },
+ { url = "https://files.pythonhosted.org/packages/4a/62/ecc969b13b141fef89b888c9760821cb01a86ac8fc953911592c8e1e1522/wrapt-2.3.0-cp311-cp311-win_amd64.whl", hash = "sha256:195b1842b4122fb54e3cd3dd5b2b4aa49302a5a61da901df0481f5c97aedde84", size = 80944, upload-time = "2026-07-28T06:04:32.655Z" },
+ { url = "https://files.pythonhosted.org/packages/c4/3d/9278ada8a2b3f24372b630361e84e9a7de7abc3784634860c26d1c37785a/wrapt-2.3.0-cp311-cp311-win_arm64.whl", hash = "sha256:6db604ef0c67bdb2042ecdfd7b7f037cf09733557ca42360d1018285634f7b98", size = 80074, upload-time = "2026-07-28T06:04:33.811Z" },
+ { url = "https://files.pythonhosted.org/packages/5b/4a/d17a0fad1bf1c5f2c887ff71fef75654141b0880bff71d157d955b5bec3a/wrapt-2.3.0-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:0a45ffae742ce91a16e11cb6c7cd71e7f9994f3cbd283b962ab093f5c6dcf525", size = 82139, upload-time = "2026-07-28T06:04:35.082Z" },
+ { url = "https://files.pythonhosted.org/packages/6e/55/51b92daaf6defb57f4dc56bdcce985400f75c6984a03ca5e78ccac717028/wrapt-2.3.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:69e477046f2237ef0bc6547544ee73008dc764ca26eff44f09e976d221b34d5d", size = 82723, upload-time = "2026-07-28T06:04:36.502Z" },
+ { url = "https://files.pythonhosted.org/packages/28/7f/cfd9bc4b1f5e424eeea83d0493e43f3b1b02707ce8e50c47945873982bd5/wrapt-2.3.0-cp312-cp312-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl", hash = "sha256:5d221a6e6ddd302b8397433184e96b59f259f50024b854db1c411a881586b6b8", size = 172381, upload-time = "2026-07-28T06:04:37.674Z" },
+ { url = "https://files.pythonhosted.org/packages/cb/89/ff7814f6eb6856b479946117d1138a2fbb46cdb6b1f379db359056c69743/wrapt-2.3.0-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:392158c9a7f2ab1b8699418bfc0fe6f83548788c418b27d7bf2019ad3405cebb", size = 174120, upload-time = "2026-07-28T06:04:38.987Z" },
+ { url = "https://files.pythonhosted.org/packages/12/1e/8eded8615d39e3ce81f626937a3a87b280a2a86239a2bf14a4b4bb345034/wrapt-2.3.0-cp312-cp312-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:e5301c35cf75655eb33498f2bd6ae8703ca19940e3167dc9cdf740c712a39c60", size = 163035, upload-time = "2026-07-28T06:04:40.361Z" },
+ { url = "https://files.pythonhosted.org/packages/35/ea/a0af2d9da62897af2a055484920de05dade30d2ba2c0d65cbdea875d3d8b/wrapt-2.3.0-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:418f54bb09d1762db02c7009b4051149893af3153a87f92d70356703c11eea02", size = 171887, upload-time = "2026-07-28T06:04:41.614Z" },
+ { url = "https://files.pythonhosted.org/packages/7e/dd/63cd4c864c65ef4906df64bd2d378f4a62b54f28063f282dfb3bf93caead/wrapt-2.3.0-cp312-cp312-musllinux_1_2_riscv64.whl", hash = "sha256:1598becd30f8f2777d18564064eb4f4dbe1ab0e05a8f09786d0ef505ac782bf3", size = 161113, upload-time = "2026-07-28T06:04:42.864Z" },
+ { url = "https://files.pythonhosted.org/packages/ca/ee/82f1fc9e431b5c2c5a6d201aa865dbeae3984c311c6d11a185f0c8367cf6/wrapt-2.3.0-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:3da470536bf9645143323dd41b32db55c6f4304ad382094c1a1da8a92061e10d", size = 170530, upload-time = "2026-07-28T06:04:44.212Z" },
+ { url = "https://files.pythonhosted.org/packages/37/a5/5dc590e863a419930d988f8b7ca3e75a6befcfb10b6003b3a152f3d5f732/wrapt-2.3.0-cp312-cp312-win32.whl", hash = "sha256:fb8e2e6704a1e0b1b989546c69e2688371ef4a07fa5f61bde3eb6211186f5ac1", size = 78323, upload-time = "2026-07-28T06:04:45.484Z" },
+ { url = "https://files.pythonhosted.org/packages/51/f9/4a6925a07951df56394f7e6ebe14f69f1c5ef9d87aa63e0839acf15aa63a/wrapt-2.3.0-cp312-cp312-win_amd64.whl", hash = "sha256:cdc021cb0b62471d6aac7f2bd92f3b4658073775f9ee7fcd325c511129e7bcc8", size = 81180, upload-time = "2026-07-28T06:04:47.021Z" },
+ { url = "https://files.pythonhosted.org/packages/a8/4f/8b5de0395b2a72216751d41c9861df6facaeb611b619d8810ed2b3b23eb2/wrapt-2.3.0-cp312-cp312-win_arm64.whl", hash = "sha256:67bfe2485f50368c3fcd2275fc1fd100e350d601e0058921a7c82678a465aeab", size = 80155, upload-time = "2026-07-28T06:04:48.373Z" },
+ { url = "https://files.pythonhosted.org/packages/8e/6e/0f88a072483e76b881e3fdcd6b6ffb4a5791002514fe541e72b1b73c859a/wrapt-2.3.0-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:0d3fb71e65b001adfc42684522eeccd9c21d8ba679945abc993439567b66e59f", size = 81960, upload-time = "2026-07-28T06:04:49.622Z" },
+ { url = "https://files.pythonhosted.org/packages/d7/ff/b7e2776e7c294075eb712cc9ef573d1b818f393006d09787262b8fc871c4/wrapt-2.3.0-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:51a7a4181c1295774812271fbcd7c909df372bc25579d4ed9eb875caaf0ae86f", size = 82435, upload-time = "2026-07-28T06:04:50.9Z" },
+ { url = "https://files.pythonhosted.org/packages/d8/90/343bb5d0f1f9669bc252a6073f085b4abf862511bd5c9c9eaec754341f1d/wrapt-2.3.0-cp313-cp313-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl", hash = "sha256:9045917809c63fdf7abe3a2ceaed3d670b8ee4500ddd9291192d30aeb34467c5", size = 170350, upload-time = "2026-07-28T06:04:52.187Z" },
+ { url = "https://files.pythonhosted.org/packages/59/f8/13b79a392930bd0dd6b86cbfbfe1c40944110456e1dc6d809e5c46ece904/wrapt-2.3.0-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:54ca1d5573f69b5fe1d74f1f65799c68015e82f685efec9fd8cfa40a094c44d0", size = 170022, upload-time = "2026-07-28T06:04:53.599Z" },
+ { url = "https://files.pythonhosted.org/packages/b2/fc/4f1b6918f5290db959d6e0c07f77385d87cede29c39c9cf8f145e9c82954/wrapt-2.3.0-cp313-cp313-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:242b60c21e30866e6a2fa606c612b47c553fa60c0eaeeeb7797fb842ac0ce609", size = 161043, upload-time = "2026-07-28T06:04:54.936Z" },
+ { url = "https://files.pythonhosted.org/packages/01/e1/45d3cf74414780bdff6d0380467e003f6eb0f028b6c9403db868dbc7209c/wrapt-2.3.0-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:e3f3d7ec0a51fbfe00d3aef047641ff2c58b25565b4717fc1f90e050be01cba8", size = 168576, upload-time = "2026-07-28T06:04:56.261Z" },
+ { url = "https://files.pythonhosted.org/packages/f3/73/2fa58dd97f191c997755e2c6d569a68f0c433db4e4b36099bdd7227b6cac/wrapt-2.3.0-cp313-cp313-musllinux_1_2_riscv64.whl", hash = "sha256:261f53870cd4fb2bf38f9f972c56c728fd224cb7c65721307de59d9e7e6741ae", size = 159140, upload-time = "2026-07-28T06:04:57.754Z" },
+ { url = "https://files.pythonhosted.org/packages/29/a8/08a56e2000a8816d449dcbad8c8b081697acbbd490821ceca0f9d8e8d20c/wrapt-2.3.0-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:8159ec0b0cb7608175eb150de94c19e34f4d47ac655f5ca9baf45df6b688ffd3", size = 169263, upload-time = "2026-07-28T06:04:59.161Z" },
+ { url = "https://files.pythonhosted.org/packages/9e/d4/354e1725e35a73b2af4fa70a3e024c7a5d1bf1802dfb862dcb668aae0253/wrapt-2.3.0-cp313-cp313-win32.whl", hash = "sha256:10461884b3014fbfc8eb7d09a93c5f246363e6711d9d881f95eb8c27fdef049f", size = 78241, upload-time = "2026-07-28T06:05:00.507Z" },
+ { url = "https://files.pythonhosted.org/packages/6c/7e/34c87fa2174848dfee820322aaa318bab08913998ccecc8d2f57b4ad4639/wrapt-2.3.0-cp313-cp313-win_amd64.whl", hash = "sha256:ac870cc97b73bb00ac353329e9559a4bebc47c4c86792ed9b23b58c15b6ad838", size = 81113, upload-time = "2026-07-28T06:05:01.839Z" },
+ { url = "https://files.pythonhosted.org/packages/11/86/fcc9a530579e008c9478bb565a6cdfbfd33536660f069c8b91a6607c5050/wrapt-2.3.0-cp313-cp313-win_arm64.whl", hash = "sha256:a65e8db2b4e90c2e7ade931086351c98ef420bf7a94ee08c95ac8a3cbbc43579", size = 80182, upload-time = "2026-07-28T06:05:03.152Z" },
+ { url = "https://files.pythonhosted.org/packages/96/50/3864848b95b28ef73e17551fc8dccbff2628a834f52cf26a57f9c419fb83/wrapt-2.3.0-cp313-cp313t-macosx_10_13_x86_64.whl", hash = "sha256:fd1f2f557dd3491fe75905e578f4db967393d40d1a8f468edc4d40ac7f2d5944", size = 83921, upload-time = "2026-07-28T06:05:04.476Z" },
+ { url = "https://files.pythonhosted.org/packages/3b/4c/3d1921a60c3e8c71c540ff136e6a47a1fbccf7f671e818394889f7871d9c/wrapt-2.3.0-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:9f5d2aec29dfc76c37e23897dee92766a3fd4f3bff3ae7fc9c6b4bf37d8c1360", size = 84412, upload-time = "2026-07-28T06:05:05.921Z" },
+ { url = "https://files.pythonhosted.org/packages/fa/1a/4a796ff7adb26ada6d4b758c94d47a38320b085e7099afc088efbbcdb006/wrapt-2.3.0-cp313-cp313t-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl", hash = "sha256:646d20d413ffcd1b0a2f700076e2d0252d872dcb7754860a73e45a59ea883614", size = 207168, upload-time = "2026-07-28T06:05:07.256Z" },
+ { url = "https://files.pythonhosted.org/packages/1d/3e/d7777776806c579b761bac2f91721dda9f04c7a1b380213c5935cc750ae6/wrapt-2.3.0-cp313-cp313t-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:379f670f45b7bb8993edd9f6fc36c6cc65edb81cffa0b504be34acb0303fff0a", size = 214351, upload-time = "2026-07-28T06:05:08.945Z" },
+ { url = "https://files.pythonhosted.org/packages/63/27/2d64d394df7bf181955b3bb562bf33c4492fb4be113f53071106d43ad8b5/wrapt-2.3.0-cp313-cp313t-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:6208f302f110295d64b22a7ac96500c791bf492dce4366e622e4912b077c9687", size = 199020, upload-time = "2026-07-28T06:05:10.418Z" },
+ { url = "https://files.pythonhosted.org/packages/3e/3d/fb31d3db7d9834d265fb1a27a2adf0ddf51557c67458c97b22439ad6ae3d/wrapt-2.3.0-cp313-cp313t-musllinux_1_2_aarch64.whl", hash = "sha256:ed635a9ca4f3a5a2b900c10c69e823373bc00ebc114b459383596d3487da3570", size = 209969, upload-time = "2026-07-28T06:05:11.983Z" },
+ { url = "https://files.pythonhosted.org/packages/1f/d1/8724b5da582e62070dc9bf4d8bf1972f317297eefd7ba1f2b5c6393ccf6c/wrapt-2.3.0-cp313-cp313t-musllinux_1_2_riscv64.whl", hash = "sha256:e3b9eaa742ae7a0aaaaad4ca4b69469d757af2d6e6663ef1dadc47adec0aeb41", size = 196324, upload-time = "2026-07-28T06:05:13.557Z" },
+ { url = "https://files.pythonhosted.org/packages/0d/5c/3d9ef411149543016ee6bcf3af707f787cebd946527452b94bf122e9b7b4/wrapt-2.3.0-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:d0f7284f88f4833705132d06d3b425a43095c2cbd07c58166aac3ab646ba12a4", size = 202610, upload-time = "2026-07-28T06:05:15.048Z" },
+ { url = "https://files.pythonhosted.org/packages/13/9b/4fc042ceb757866dd4a5fc057b3b736f2b360d3703ce9f830d83dc9226e0/wrapt-2.3.0-cp313-cp313t-win32.whl", hash = "sha256:7ebb274aba688b043429eb1500ff8a76ce0cb8ac0812ca3e301f06247b8722b3", size = 79178, upload-time = "2026-07-28T06:05:16.469Z" },
+ { url = "https://files.pythonhosted.org/packages/6b/ff/b94878f8eed809ca042685276bcea9f24e8c2ca7c9653bb80bbb920a68a5/wrapt-2.3.0-cp313-cp313t-win_amd64.whl", hash = "sha256:c4bded758ad6f03b965830944a2f0bc5b2eb3767fe5a7310134315d1a6610e98", size = 82634, upload-time = "2026-07-28T06:05:18.026Z" },
+ { url = "https://files.pythonhosted.org/packages/80/fb/663e1de5332a71685a729754312d327d4cada767c36e1c5a2db4c8de49e6/wrapt-2.3.0-cp313-cp313t-win_arm64.whl", hash = "sha256:d2cc64539da63e39ffb9c7ede849b6e8ddaaf7b3876b5cfb04efd85a5f3f4eb6", size = 81387, upload-time = "2026-07-28T06:05:19.417Z" },
+ { url = "https://files.pythonhosted.org/packages/58/10/b073beaea89bc0d3670a75ff51139430a54b6af7ba7796507730634536dd/wrapt-2.3.0-cp314-cp314-macosx_10_15_x86_64.whl", hash = "sha256:ea52a0d0f08c584943d5764be0e84efa912c8da23c23e1e285ff2f5641c18fcc", size = 81978, upload-time = "2026-07-28T06:05:21.133Z" },
+ { url = "https://files.pythonhosted.org/packages/b3/31/0916d9cebf848ed3f1a0c1888faee421747df77331e4db2bc527a9a85988/wrapt-2.3.0-cp314-cp314-macosx_11_0_arm64.whl", hash = "sha256:fd85b0aa88efdb189d6ae2f35f4526943a8f091c38599c9c31478241c819e6a1", size = 82518, upload-time = "2026-07-28T06:05:22.562Z" },
+ { url = "https://files.pythonhosted.org/packages/f5/73/31c1bf0f3384062751c2094dadb314916d70aa9b6bfd26d994b4a7b393fa/wrapt-2.3.0-cp314-cp314-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl", hash = "sha256:141ed6211286a9660d8d6702de598b43f0934b4f0eda16393f100a80f501d945", size = 170187, upload-time = "2026-07-28T06:05:23.904Z" },
+ { url = "https://files.pythonhosted.org/packages/ed/25/fce087d54b79b8905f3c3c9dd5f454bbd8d8acb80b960c4a6aee5b4659b3/wrapt-2.3.0-cp314-cp314-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:2e49885a62ec4ee854d1b9e6371fda6afd219917225752abf729a3f36d4df9a5", size = 169288, upload-time = "2026-07-28T06:05:25.378Z" },
+ { url = "https://files.pythonhosted.org/packages/c7/30/0d09e6dddc6b7a7230ac77f50254b5980ab4fcd22976f72f8cc8a0404458/wrapt-2.3.0-cp314-cp314-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:1d6159c9b2fefec02314e1332dbbbfaf960e369dfd26bcf7f8b258b5732065b3", size = 160932, upload-time = "2026-07-28T06:05:27.022Z" },
+ { url = "https://files.pythonhosted.org/packages/2c/ca/0913af0d2ec0c43865d32d615f518fea66c13c5c930e489e9b0de248e9a8/wrapt-2.3.0-cp314-cp314-musllinux_1_2_aarch64.whl", hash = "sha256:24da48596326ef8e448cfa837b454f638713d3531262375f00e5a9681682fc07", size = 169017, upload-time = "2026-07-28T06:05:28.501Z" },
+ { url = "https://files.pythonhosted.org/packages/c3/f2/3d1e47ea81b822210f5df1bf942fd90780a75c055243d569b664529dea88/wrapt-2.3.0-cp314-cp314-musllinux_1_2_riscv64.whl", hash = "sha256:cd3a2edf0427013736b8127955cec62608c56e53ea47e82812ea32059cda407f", size = 159065, upload-time = "2026-07-28T06:05:30.01Z" },
+ { url = "https://files.pythonhosted.org/packages/43/a5/ef2066ced8e5fca204e2b361e9708e36555b40949c583d997ea3b590817d/wrapt-2.3.0-cp314-cp314-musllinux_1_2_x86_64.whl", hash = "sha256:4fa0df3bff4e7ce45759f33fd39335fe2f60477bb9ecf7b8aa41e7d07ee36a23", size = 168821, upload-time = "2026-07-28T06:05:31.649Z" },
+ { url = "https://files.pythonhosted.org/packages/d5/e1/016104650d4e572fa91506eb396b3dd8efbccc9284fdc1c9479c3d21db28/wrapt-2.3.0-cp314-cp314-win32.whl", hash = "sha256:2935d5454b3f179a29b12cf390ee47246740ba2c3a7545b1b46ba31a5f2a4a0b", size = 78700, upload-time = "2026-07-28T06:05:33.391Z" },
+ { url = "https://files.pythonhosted.org/packages/3d/97/6fdc20a9f2ca304748b3f0819cbf377d55260562777bf0b615431bc3c181/wrapt-2.3.0-cp314-cp314-win_amd64.whl", hash = "sha256:cc2cea812e5cb179a796b766747e7d3b21088760d8deb95676d482b8c8e6fa7d", size = 81422, upload-time = "2026-07-28T06:05:34.774Z" },
+ { url = "https://files.pythonhosted.org/packages/5e/a4/9cbd53bf05746bea2c392af39cb052427a8ec95cbd494d930733d8f44681/wrapt-2.3.0-cp314-cp314-win_arm64.whl", hash = "sha256:22cc5c0a717bd4da87018ae0bffd4c19c6fb679d3ff357216ba566ab26c76cab", size = 80639, upload-time = "2026-07-28T06:05:36.228Z" },
+ { url = "https://files.pythonhosted.org/packages/43/bb/6c5e4a0f66ea0d2b2dd267e8dd05a0014eea56840b3c8595d40b0a5d1f91/wrapt-2.3.0-cp314-cp314t-macosx_10_15_x86_64.whl", hash = "sha256:a6b5984cd65dd639546f0eb4b8eacf1c31cb2fe9fb5c27bffe240987cdb2cf84", size = 84030, upload-time = "2026-07-28T06:05:37.714Z" },
+ { url = "https://files.pythonhosted.org/packages/6a/eb/a1aedf03283bc9cbf8a1783995ddc54e3c5a86878f19002d2c428494f4c5/wrapt-2.3.0-cp314-cp314t-macosx_11_0_arm64.whl", hash = "sha256:c88abcf53daef80e01a75c7530e727fa6e2c1888fe83e3dcdba4c96216a1f5c7", size = 84419, upload-time = "2026-07-28T06:05:39.131Z" },
+ { url = "https://files.pythonhosted.org/packages/63/61/50d511c0dc5105563849e86daa3e16ac7feef699f79fb05af45ea70107d5/wrapt-2.3.0-cp314-cp314t-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl", hash = "sha256:85de890ff968196e92dd1ae73a9fb8970495e7650a457b1c9ef0ac3dd550bce2", size = 207171, upload-time = "2026-07-28T06:05:40.69Z" },
+ { url = "https://files.pythonhosted.org/packages/3f/59/9b538cf7795217e810699d16bc88b96a830d9b5c403eb2ec2db6b5f2ae81/wrapt-2.3.0-cp314-cp314t-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:50f416b74d092bb9f41b424e90dd457f365f7ba4b11de62a23679769a21bd85c", size = 214329, upload-time = "2026-07-28T06:05:42.287Z" },
+ { url = "https://files.pythonhosted.org/packages/b3/28/9935d62b1499e5c8b3d191e99ba4eb31ca237a0b699142011a837e9dc7ea/wrapt-2.3.0-cp314-cp314t-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:39febbee6d77301d31da6996b152ce52452da7c7ef72aba10c2fa976dff9c295", size = 199079, upload-time = "2026-07-28T06:05:43.958Z" },
+ { url = "https://files.pythonhosted.org/packages/2b/01/4446b80fa2ffa47a3449b250d004ba1c1937f07f64a179608fec735df866/wrapt-2.3.0-cp314-cp314t-musllinux_1_2_aarch64.whl", hash = "sha256:93513bec052c6cd987f9f580c3df068c8bc4ebae6543736be3ca7ec5959cafcd", size = 209992, upload-time = "2026-07-28T06:05:45.677Z" },
+ { url = "https://files.pythonhosted.org/packages/d4/07/56f26c9f9979586a021e8148747004aba4498f49458c90b0502969b904e1/wrapt-2.3.0-cp314-cp314t-musllinux_1_2_riscv64.whl", hash = "sha256:729126e667da34d251b8ebf8a45ef0c5ddadc21542b3d6e1abf4259ece6508df", size = 196334, upload-time = "2026-07-28T06:05:47.608Z" },
+ { url = "https://files.pythonhosted.org/packages/8b/41/6d7bcc895b0f28b2250e10908f060687b9165429dcd7f22ddb3d4c031b74/wrapt-2.3.0-cp314-cp314t-musllinux_1_2_x86_64.whl", hash = "sha256:626b69db2021aa01671ec7bbc9740e558522bd44c18cf2ce69bf3d666a014109", size = 202644, upload-time = "2026-07-28T06:05:49.183Z" },
+ { url = "https://files.pythonhosted.org/packages/cd/25/7860927edba06b758b8852a6f02e832be715563c67a6795d94350bc81099/wrapt-2.3.0-cp314-cp314t-win32.whl", hash = "sha256:629d73378082c00a8173031f9fb30a3ac6abbc894a5bfdfae71fabc60642d501", size = 79685, upload-time = "2026-07-28T06:05:50.976Z" },
+ { url = "https://files.pythonhosted.org/packages/c4/0f/270bafe92fde3b069a39bc01e39ee79340895b335640df861d43d2a51885/wrapt-2.3.0-cp314-cp314t-win_amd64.whl", hash = "sha256:42869085687f0aefd57c0f636c3f9354f8ffb321a8ba9cb52d19beb796e561c5", size = 83104, upload-time = "2026-07-28T06:05:52.405Z" },
+ { url = "https://files.pythonhosted.org/packages/55/b3/af176d79a8515a8a720eccdad9a96f6e31a30abf2865430c8c42adf2fd13/wrapt-2.3.0-cp314-cp314t-win_arm64.whl", hash = "sha256:b1e5aa486e269b00ed35e64771c7d0ab8096cfd2643405ca8cd60ebedc099a51", size = 81774, upload-time = "2026-07-28T06:05:53.902Z" },
+ { url = "https://files.pythonhosted.org/packages/40/99/b44e9dc20c8d768ffe65174bfebde1412068fc1638aac436eccf1e7a603a/wrapt-2.3.0-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:c3b476ae63b4a3b4da681aafcb25ff3542d289fbda8b5da7caf76aaffafafdbb", size = 81227, upload-time = "2026-07-28T06:05:55.438Z" },
+ { url = "https://files.pythonhosted.org/packages/7e/cb/1e1bbdb39ea166b4b2568c5eec3d82f59cddecf1ed57e5c4a1ed54692107/wrapt-2.3.0-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:932dced0a7b2950ed58a3325536a1dcb7b58e7330af54e8552d2e566b5328b99", size = 82284, upload-time = "2026-07-28T06:05:56.879Z" },
+ { url = "https://files.pythonhosted.org/packages/54/0a/935b037716e02376415dbc9fe95e523c64111c223a0de4dc2e12c1e1ee20/wrapt-2.3.0-cp39-cp39-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl", hash = "sha256:0db083387d6e75ec0be8173ecbf0e811cf60bae1cc75a815feb104167ea10d4d", size = 154975, upload-time = "2026-07-28T06:05:58.369Z" },
+ { url = "https://files.pythonhosted.org/packages/6e/ed/6222b5e4ab73a0185d77e3490dbdd372dc1cd961acbcdc62b0bc345a8d2c/wrapt-2.3.0-cp39-cp39-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:abc71504669d126d91f89fc0e388c6295d8fbd2439be884f175133fda8aa403c", size = 157056, upload-time = "2026-07-28T06:06:00.038Z" },
+ { url = "https://files.pythonhosted.org/packages/20/f8/eac651ecc80db2c7ac697111411de05fd4d4f9eea557d32b9bb11e1ada5c/wrapt-2.3.0-cp39-cp39-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:b767a9566f165dd14decf8f4194c6bb0ce3a8420cec213824e05a99400c9260a", size = 151513, upload-time = "2026-07-28T06:06:01.808Z" },
+ { url = "https://files.pythonhosted.org/packages/e1/32/ed810ea37c2b4b9948bf23def5954a1848d98021602dd7220db3f8ee1a58/wrapt-2.3.0-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:73d0b10b64620a2cf4bc3d31775c4d9527e309a5549e4379e3bf71e8d2dc193e", size = 156054, upload-time = "2026-07-28T06:06:03.467Z" },
+ { url = "https://files.pythonhosted.org/packages/7f/8e/facfaa9b2d4eda4f14fb5f88fc493947d1513cec28538613082e1663037d/wrapt-2.3.0-cp39-cp39-musllinux_1_2_riscv64.whl", hash = "sha256:e31734c5077f29f892b2565eee5106d610278151ad49fc6a9d69a647cd5730e2", size = 150821, upload-time = "2026-07-28T06:06:05.152Z" },
+ { url = "https://files.pythonhosted.org/packages/5a/7e/14f4b6f2d9a89186f35f04dd1ec6aad41ffa439dac16c88fc41f3756b9a6/wrapt-2.3.0-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:628f3ba8ec793a5b10a6cd8c6c6b7b55eb552abd1f3bd301336acb74c7a82dfe", size = 154303, upload-time = "2026-07-28T06:06:06.808Z" },
+ { url = "https://files.pythonhosted.org/packages/4b/90/e25fd18051bc83a1f7c62edd184a262a3f593716126619ebbc79de801e6a/wrapt-2.3.0-cp39-cp39-win32.whl", hash = "sha256:3873c3c5ca9f4ef91f693602eca19d1f1e7c410338df82a4ff11d826b5896a8f", size = 77908, upload-time = "2026-07-28T06:06:08.384Z" },
+ { url = "https://files.pythonhosted.org/packages/eb/2c/40f523565f1aed94d0030f4f99f481adc5b5620ee8600bfcd46effb49a79/wrapt-2.3.0-cp39-cp39-win_amd64.whl", hash = "sha256:8f8a1c6472675956cece9a8f403f43c3594f1681319eed2dd56f60877397c636", size = 80796, upload-time = "2026-07-28T06:06:09.906Z" },
+ { url = "https://files.pythonhosted.org/packages/3f/91/a86501de81265751a42b3c3f977e6c88d580936dd180e3298e2bd813e0d4/wrapt-2.3.0-cp39-cp39-win_arm64.whl", hash = "sha256:c8858d8ff9822a081e3cc49ae1b3b22f0f789c14001cdac8f94564010d9c9d66", size = 80227, upload-time = "2026-07-28T06:06:11.413Z" },
+ { url = "https://files.pythonhosted.org/packages/00/39/3daf9f47be208606586de4568ba6713db53ebc8fd7a575aea1fe57983b69/wrapt-2.3.0-py3-none-any.whl", hash = "sha256:d8c7ed08477429752b8c44991f40ad7838b18332a160698740a6bfbc10d998a2", size = 61866, upload-time = "2026-07-28T06:06:12.9Z" },
+]
+
+[[package]]
+name = "zensical"
+version = "0.0.57"
+source = { registry = "https://pypi.org/simple" }
+dependencies = [
+ { name = "click", version = "8.4.2", source = { registry = "https://pypi.org/simple" } },
+ { name = "deepmerge" },
+ { name = "jinja2" },
+ { name = "markdown" },
+ { name = "pygments", version = "2.21.0", source = { registry = "https://pypi.org/simple" } },
+ { name = "pymdown-extensions" },
+ { name = "pyyaml" },
+ { name = "tomli" },
+]
+sdist = { url = "https://files.pythonhosted.org/packages/83/f4/fa40086c46a2e59e3d9239031f76623622e60e0d79f3df1282df2797a5c4/zensical-0.0.57.tar.gz", hash = "sha256:25fcbdf89a57153cc3ad1108a89d17c7226da5d3c551a8839c69cbd9c472a9d8", size = 4000458, upload-time = "2026-08-21T20:43:49.5Z" }
+wheels = [
+ { url = "https://files.pythonhosted.org/packages/92/b9/49c37dc65105d1ca4a8b600a02c84ece00218d2293b2630611c620185ca3/zensical-0.0.57-cp310-abi3-macosx_10_12_x86_64.whl", hash = "sha256:98867d1a6ea2c57f1ebcf4902f61601f427350f2df0c04e30cfac8ba6163cd29", size = 12888507, upload-time = "2026-08-21T20:43:20.365Z" },
+ { url = "https://files.pythonhosted.org/packages/05/f7/54539984418de11387bbace39a744195555d32c98c95bf4d112b432548f5/zensical-0.0.57-cp310-abi3-macosx_11_0_arm64.whl", hash = "sha256:0d7935d77d73a279545052e05d89d31960f30c1f33f53933f4c101fa271aee74", size = 12778169, upload-time = "2026-08-21T20:43:22.879Z" },
+ { url = "https://files.pythonhosted.org/packages/40/16/74aa60aa4cfecd5bd31ce60cb6a092cb56f1bc1aaadcc173463861ea4eb5/zensical-0.0.57-cp310-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:b7046d433511d97aa603915f0f6792d15b7f839793abc2b66ab7b7ff753ecff5", size = 13230823, upload-time = "2026-08-21T20:43:25.141Z" },
+ { url = "https://files.pythonhosted.org/packages/8a/d1/742d2487dd65dd18277daebcd37db56d5bd4a2408df02bde703ef8fb7b64/zensical-0.0.57-cp310-abi3-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:ab85c5066b95e3a877cf8971e4ce30abb1ca1459fbfcc631f0a5a2bab56351a4", size = 13170523, upload-time = "2026-08-21T20:43:27.456Z" },
+ { url = "https://files.pythonhosted.org/packages/56/6f/12b570775d344f1a3d77e26d4ae0160bcac9e41ca38f7135352ccdf9b2c8/zensical-0.0.57-cp310-abi3-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:0f13d1b57ad3c8b8634933a93ea870ebac11245fe0c968d27fd2a059ee1c6311", size = 13549941, upload-time = "2026-08-21T20:43:29.964Z" },
+ { url = "https://files.pythonhosted.org/packages/7b/4e/436e6fc76674244c084ef7f6f17dc5ff85c76b15aef77c48b703fd0a2dda/zensical-0.0.57-cp310-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:021dd8fb70d1816cd012684fcf45d32b8f88a0cd28b7cbe71e5f8564f6d5764d", size = 13210086, upload-time = "2026-08-21T20:43:32.098Z" },
+ { url = "https://files.pythonhosted.org/packages/ef/52/20f3aeda9af1090f24241670a5cc20fff7494545fea9f5fa094c82f3dbdf/zensical-0.0.57-cp310-abi3-musllinux_1_2_aarch64.whl", hash = "sha256:7e10f3c27fdc3eac3a9ae6ddcd87f3f00edc9f332050923313c95537961bfadd", size = 13408253, upload-time = "2026-08-21T20:43:34.258Z" },
+ { url = "https://files.pythonhosted.org/packages/e1/f2/2b18ba2f19674dbfcf745f3b66e005cc8efa66a1bcaba5e1b4f79467868a/zensical-0.0.57-cp310-abi3-musllinux_1_2_armv7l.whl", hash = "sha256:78c85fee55c5aac3bdf8157e980c56397dca835167a5577c5429b5eb24ed990c", size = 13446689, upload-time = "2026-08-21T20:43:36.527Z" },
+ { url = "https://files.pythonhosted.org/packages/05/ba/68cdba447a9097e5f97742eef046020c6fa42d82972849b3a46a0718e890/zensical-0.0.57-cp310-abi3-musllinux_1_2_i686.whl", hash = "sha256:478d252e1924f3876e72cf7806967cb62e50d86eddb3da04bf43e882b532fa1b", size = 13598580, upload-time = "2026-08-21T20:43:38.646Z" },
+ { url = "https://files.pythonhosted.org/packages/ec/89/6358a4df272328bed5bea90b04d43e73758bc45ff058c5cb2665e1147314/zensical-0.0.57-cp310-abi3-musllinux_1_2_x86_64.whl", hash = "sha256:66a9ca6b5f625b2a2b215eec2f3c72843a92d5d512042045ac6351d5dee9b339", size = 13557609, upload-time = "2026-08-21T20:43:40.866Z" },
+ { url = "https://files.pythonhosted.org/packages/77/e1/8831301a24f736743e3788f09ea048918b0bdcea4aaa90f7770a433d6eec/zensical-0.0.57-cp310-abi3-win32.whl", hash = "sha256:f0fe3dc27ca7dc4e168eddd0fe5b0f4d44e311fd4e0019241e289819e445203c", size = 12446805, upload-time = "2026-08-21T20:43:43.097Z" },
+ { url = "https://files.pythonhosted.org/packages/d7/3f/5d0ecd77d9ce962fdfde22dec036f4257a43ef6dbd55fb5c05fd294985ad/zensical-0.0.57-cp310-abi3-win_amd64.whl", hash = "sha256:a756834025c1c54e806e943be6d8df1048d0f8bcf6086e958568407a070a2572", size = 12716781, upload-time = "2026-08-21T20:43:45.273Z" },
]
[[package]]
@@ -2739,12 +3302,12 @@ wheels = [
[[package]]
name = "zipp"
-version = "3.23.0"
+version = "3.23.1"
source = { registry = "https://pypi.org/simple" }
resolution-markers = [
"python_full_version == '3.9.*'",
]
-sdist = { url = "https://files.pythonhosted.org/packages/e3/02/0f2892c661036d50ede074e376733dca2ae7c6eb617489437771209d4180/zipp-3.23.0.tar.gz", hash = "sha256:a07157588a12518c9d4034df3fbbee09c814741a33ff63c05fa29d26a2404166", size = 25547, upload-time = "2025-06-08T17:06:39.4Z" }
+sdist = { url = "https://files.pythonhosted.org/packages/30/21/093488dfc7cc8964ded15ab726fad40f25fd3d788fd741cc1c5a17d78ee8/zipp-3.23.1.tar.gz", hash = "sha256:32120e378d32cd9714ad503c1d024619063ec28aad2248dc6672ad13edfa5110", size = 25965, upload-time = "2026-04-13T23:21:46.6Z" }
wheels = [
- { url = "https://files.pythonhosted.org/packages/2e/54/647ade08bf0db230bfea292f893923872fd20be6ac6f53b2b936ba839d75/zipp-3.23.0-py3-none-any.whl", hash = "sha256:071652d6115ed432f5ce1d34c336c0adfd6a884660d1e9712a256d3d3bd4b14e", size = 10276, upload-time = "2025-06-08T17:06:38.034Z" },
+ { url = "https://files.pythonhosted.org/packages/08/8a/0861bec20485572fbddf3dfba2910e38fe249796cb73ecdeb74e07eeb8d3/zipp-3.23.1-py3-none-any.whl", hash = "sha256:0b3596c50a5c700c9cb40ba8d86d9f2cc4807e9bedb06bcdf7fac85633e444dc", size = 10378, upload-time = "2026-04-13T23:21:45.386Z" },
]
diff --git a/waproto/whatsapp.proto b/waproto/whatsapp.proto
index 596ee88..0b48b9d 100644
--- a/waproto/whatsapp.proto
+++ b/waproto/whatsapp.proto
@@ -1,26 +1,27 @@
syntax = "proto2";
package whatsapp;
-/// WhatsApp Version: 2.3000.1031424117
+/// WhatsApp Version: 2.3000.1045368834
message ADVDeviceIdentity {
optional uint32 rawId = 1;
optional uint64 timestamp = 2;
optional uint32 keyIndex = 3;
- optional ADVEncryptionType accountType = 4;
- optional ADVEncryptionType deviceType = 5;
+ optional ADVEncryptionType accountType = 4 [default = E2EE];
+ optional ADVEncryptionType deviceType = 5 [default = E2EE];
}
enum ADVEncryptionType {
E2EE = 0;
HOSTED = 1;
+ NON_E2EE = 2;
}
message ADVKeyIndexList {
optional uint32 rawId = 1;
optional uint64 timestamp = 2;
optional uint32 currentIndex = 3;
repeated uint32 validIndexes = 4 [packed = true];
- optional ADVEncryptionType accountType = 5;
+ optional ADVEncryptionType accountType = 5 [default = E2EE];
}
message ADVSignedDeviceIdentity {
@@ -33,7 +34,7 @@ message ADVSignedDeviceIdentity {
message ADVSignedDeviceIdentityHMAC {
optional bytes details = 1;
optional bytes hmac = 2;
- optional ADVEncryptionType accountType = 3;
+ optional ADVEncryptionType accountType = 3 [default = E2EE];
}
message ADVSignedKeyIndexList {
@@ -54,15 +55,42 @@ message AIHomeState {
optional string imageWdsIdentifier = 5;
optional string imageTintColor = 6;
optional string imageBackgroundColor = 7;
+ optional string cardTypeId = 8;
enum AIHomeActionType {
PROMPT = 0;
CREATE_IMAGE = 1;
ANIMATE_PHOTO = 2;
ANALYZE_FILE = 3;
+ COLLABORATE = 4;
+ OPEN_GREETING_CARD = 5;
}
}
}
+message AIMediaCollectionMessage {
+ optional string collectionId = 1;
+ optional uint32 expectedMediaCount = 2;
+ optional bool hasGlobalCaption = 3;
+}
+
+message AIMediaCollectionMetadata {
+ optional string collectionId = 1;
+ optional uint32 uploadOrderIndex = 2;
+}
+
+message AIMetadataOperation {
+ optional HatchMetadataSync hatchMetadataSync = 1;
+}
+
+message AIProvenance {
+ optional Metadata c2PaMetadata = 1;
+ optional Metadata iptcMetadata = 2;
+ message Metadata {
+ optional bool createdWithGenAi = 1;
+ optional bool editedWithGenAi = 2;
+ }
+}
+
message AIQueryFanout {
optional MessageKey messageKey = 1;
optional Message message = 2;
@@ -96,7 +124,7 @@ message AIRichResponseContentItemsMetadata {
repeated AIRichResponseContentItemMetadata itemsMetadata = 1;
optional ContentType contentType = 2;
message AIRichResponseContentItemMetadata {
- oneof aIRichResponseContentItem {
+ oneof aiRichResponseContentItem {
AIRichResponseContentItemsMetadata.AIRichResponseReelItem reelItem = 1;
}
}
@@ -230,15 +258,27 @@ message AIRichResponseUnifiedResponse {
optional bytes data = 1;
}
+enum AISubscriptionRequestType {
+ UNSPECIFIED = 0;
+ THINK_HARD = 1;
+ IMAGE_GEN = 2;
+ VIDEO_GEN = 3;
+}
+message AISubscriptionUpsellMetadata {
+ optional AISubscriptionRequestType requestType = 1;
+}
+
message AIThreadInfo {
optional AIThreadServerInfo serverInfo = 1;
optional AIThreadClientInfo clientInfo = 2;
message AIThreadClientInfo {
optional AIThreadType type = 1;
+ optional string sourceChatJid = 2;
enum AIThreadType {
UNKNOWN = 0;
DEFAULT = 1;
INCOGNITO = 2;
+ SIDE_CHAT = 3;
}
}
@@ -254,6 +294,13 @@ message Account {
optional bool isUsernameDeleted = 4;
}
+message AccountLinkingOpaqueData {
+ optional string accesstoken = 1;
+ optional string fbid = 2;
+ optional string nonce = 3;
+ optional string encryptedPassword = 4;
+}
+
message ActionLink {
optional string url = 1;
optional string buttonTitle = 2;
@@ -271,6 +318,12 @@ message AvatarUserSettings {
optional string password = 2;
}
+message BackwardEdge {
+ optional bytes encryptedPrevEpochAnonId = 1;
+ optional bytes encryptedPrevEpochRootKey = 2;
+ optional bytes prevEpochRootKeyFingerprint = 3;
+}
+
message BizAccountLinkInfo {
optional uint64 whatsappBizAcctFbid = 1;
optional string whatsappAcctNumber = 2;
@@ -325,12 +378,13 @@ message BotAgeCollectionMetadata {
}
}
-message BotAvatarMetadata {
- optional uint32 sentiment = 1;
- optional string behaviorGraph = 2;
- optional uint32 action = 3;
- optional uint32 intensity = 4;
- optional uint32 wordCount = 5;
+message BotAgentDeepLinkMetadata {
+ optional string token = 1;
+ optional bytes clientPublicKey = 2;
+}
+
+message BotAgentMetadata {
+ optional BotAgentDeepLinkMetadata deepLinkMetadata = 1;
}
message BotCapabilityMetadata {
@@ -391,7 +445,28 @@ message BotCapabilityMetadata {
AI_IMAGINE_LOADING_INDICATOR = 52;
RICH_RESPONSE_UR_IMAGINE = 53;
AI_IMAGINE_UR_TO_NATIVE_LOADING_INDICATOR = 54;
- }
+ RICH_RESPONSE_UR_BLOKS_ENABLED = 55;
+ RICH_RESPONSE_INLINE_LINKS_ENABLED = 56;
+ RICH_RESPONSE_UR_IMAGINE_VIDEO = 57;
+ JSON_PATCH_STREAMING = 58;
+ AI_TAB_FORCE_CLIPPY = 59;
+ UNIFIED_RESPONSE_EMBEDDED_SCREENS = 60;
+ AI_SUBSCRIPTION_ENABLED = 61;
+ UNIFIED_RESPONSE_AI_CONTENT_SEARCH_ENABLED = 62;
+ UNIFIED_RESPONSE_MARKDOWN_LINKS_ENABLED = 63;
+ AI_RICH_RESPONSE_MAPS_V2_ENABLED = 64;
+ AI_SUBSCRIPTION_METERING_ENABLED = 65;
+ RICH_RESPONSE_SPORTS_WIDGET_ENABLED = 66;
+ AI_RICH_RESPONSE_ARTIFACTS_ENABLED = 67;
+ AI_RICH_RESPONSE_EMAIL_CALENDAR_ENABLED = 68;
+ AI_RICH_RESPONSE_REMINDERS_ENABLED = 69;
+ }
+}
+
+message BotCommandMetadata {
+ optional string commandName = 1;
+ optional string commandDescription = 2;
+ optional string commandPrompt = 3;
}
message BotDocumentMessageMetadata {
@@ -502,8 +577,13 @@ message BotGroupParticipantMetadata {
optional string botFbid = 1;
}
+message BotHistoryShareMetadata {
+ repeated BotGroupParticipantMetadata participantsMetadata = 1;
+}
+
message BotImagineMetadata {
optional ImagineType imagineType = 1;
+ optional string shortPrompt = 2;
enum ImagineType {
UNKNOWN = 0;
IMAGINE = 1;
@@ -513,6 +593,16 @@ message BotImagineMetadata {
}
}
+message BotInfrastructureDiagnostics {
+ optional BotBackend botBackend = 1;
+ repeated string toolsUsed = 2;
+ optional bool isThinking = 3;
+ enum BotBackend {
+ AAPI = 0;
+ CLIPPY = 1;
+ }
+}
+
message BotLinkedAccount {
optional BotLinkedAccountType type = 1;
enum BotLinkedAccountType {
@@ -573,7 +663,6 @@ message BotMessageSharingInfo {
}
message BotMetadata {
- optional BotAvatarMetadata avatarMetadata = 1;
optional string personaId = 2;
optional BotPluginMetadata pluginMetadata = 3;
optional BotSuggestedPromptMetadata suggestedPromptMetadata = 4;
@@ -609,6 +698,13 @@ message BotMetadata {
optional BotDocumentMessageMetadata botDocumentMessageMetadata = 34;
optional BotGroupMetadata botGroupMetadata = 35;
optional BotRenderingConfigMetadata botRenderingConfigMetadata = 36;
+ optional BotInfrastructureDiagnostics botInfrastructureDiagnostics = 37;
+ optional AIMediaCollectionMetadata aiMediaCollectionMetadata = 38;
+ optional BotCommandMetadata commandMetadata = 39;
+ optional BotResolvedToolCallMetadata resolvedToolCallMetadata = 40;
+ optional AISubscriptionUpsellMetadata subscriptionUpsellMetadata = 41;
+ optional BotPttPromptMetadata pttPromptMetadata = 42;
+ optional BotHistoryShareMetadata botHistoryShareMetadata = 43;
optional bytes internalMetadata = 999;
}
@@ -656,6 +752,12 @@ enum BotMetricsEntryPoint {
MEDIA_PICKER_GROUP_CHAT = 40;
ASK_META_AI_NO_SEARCH_RESULTS = 41;
META_AI_SETTINGS = 45;
+ WEB_INTRO_PANEL = 46;
+ WEB_NAVIGATION_BAR = 47;
+ GROUP_MEMBER = 54;
+ CHATLIST_SEARCH = 55;
+ NEW_CHAT_LIST = 56;
+ CONTACTS_TAB = 57;
}
message BotMetricsMetadata {
optional string destinationId = 1;
@@ -672,9 +774,10 @@ enum BotMetricsThreadEntryPoint {
}
message BotModeSelectionMetadata {
repeated BotUserSelectionMode mode = 1;
+ repeated uint32 overrideMode = 2;
enum BotUserSelectionMode {
- UNKNOWN_MODE = 0;
- REASONING_MODE = 1;
+ DEFAULT_MODE = 0;
+ THINK_HARD_MODE = 1;
}
}
@@ -791,6 +894,10 @@ message BotPromptSuggestions {
repeated BotPromptSuggestion suggestions = 1;
}
+message BotPttPromptMetadata {
+ optional string transcript = 1;
+}
+
message BotQuotaMetadata {
repeated BotFeatureQuotaMetadata botFeatureQuotaMetadata = 1;
message BotFeatureQuotaMetadata {
@@ -838,6 +945,11 @@ message BotRenderingMetadata {
}
}
+message BotResolvedToolCallMetadata {
+ optional string toolCallId = 1;
+ optional string resolutionDataSerialized = 2;
+}
+
message BotSessionMetadata {
optional string sessionId = 1;
optional BotSessionSource sessionSource = 2;
@@ -862,9 +974,18 @@ message BotSignatureVerificationUseCaseProof {
optional BotSignatureUseCase useCase = 2;
optional bytes signature = 3;
repeated bytes certificateChain = 4;
+ repeated CertificateSKI certificateChainSki = 5;
enum BotSignatureUseCase {
UNSPECIFIED = 0;
WA_BOT_MSG = 1;
+ WA_TEE_BOT_MSG = 2;
+ P2P_PILLS = 3;
+ WA_WAFFLE = 4;
+ WA_FEATURE_PKI = 5;
+ }
+ message CertificateSKI {
+ optional BotSignatureVerificationUseCaseProof.BotSignatureUseCase useCase = 1;
+ optional bytes ski = 2;
}
}
@@ -910,6 +1031,25 @@ message BotUnifiedResponseMutation {
}
}
+enum COMMAND_COMMAND_TYPE {
+ EVERYONE = 1;
+ SILENT = 2;
+ AI = 3;
+ AI_IMAGINE = 4;
+}
+enum CONSUMER_APPLICATION_METADATA_SPECIAL_TEXT_SIZE {
+ SMALL = 1;
+ MEDIUM = 2;
+ LARGE = 3;
+}
+enum CONSUMER_APPLICATION_STATUS_TEXT_MESAGE_FONT_TYPE {
+ SANS_SERIF = 0;
+ SERIF = 1;
+ NORICAN_REGULAR = 2;
+ BRYNDAN_WRITE = 3;
+ BEBASNEUE_REGULAR = 4;
+ OSWALD_HEAVY = 5;
+}
message CallLogRecord {
optional CallResult callResult = 1;
optional bool isDndMode = 2;
@@ -1027,6 +1167,7 @@ message ClientPairingProps {
optional bool isSyncdPureLidSession = 2;
optional bool isSyncdSnapshotRecoveryEnabled = 3;
optional bool isHsThumbnailSyncEnabled = 4;
+ optional bytes subscriptionSyncPayload = 5;
}
message ClientPayload {
@@ -1064,6 +1205,8 @@ message ClientPayload {
optional bool paaLink = 44;
optional int32 preacksCount = 45;
optional int32 processingQueueSize = 46;
+ repeated string pairedPeripherals = 47;
+ optional bytes testIsolationId = 48;
enum AccountType {
DEFAULT = 0;
GUEST = 1;
@@ -1159,6 +1302,7 @@ message ClientPayload {
optional string deviceExpId = 14;
optional DeviceType deviceType = 15;
optional string deviceModelType = 16;
+ optional DistributionChannel distributionChannel = 17;
message AppVersion {
optional uint32 primary = 1;
optional uint32 secondary = 2;
@@ -1174,6 +1318,12 @@ message ClientPayload {
WEARABLE = 3;
VR = 4;
}
+ enum DistributionChannel {
+ APPSTORE = 0;
+ WEBSITE = 1;
+ TESTFLIGHT = 2;
+ INTERNAL = 3;
+ }
enum Platform {
ANDROID = 0;
IOS = 1;
@@ -1213,6 +1363,7 @@ message ClientPayload {
SMART_GLASSES = 35;
BLUE_VR = 36;
AR_WRIST = 37;
+ WAIL = 38;
}
enum ReleaseChannel {
RELEASE = 0;
@@ -1253,6 +1404,21 @@ message ClientPayload {
}
}
+message CoexStateSync {
+ repeated CollectionMutations collectionMutations = 1;
+ message CollectionMutations {
+ optional string collection = 1;
+ repeated CoexStateSync.Mutation mutations = 2;
+ }
+
+ message Mutation {
+ optional SyncdIndex index = 1;
+ optional SyncdValue value = 2;
+ optional uint64 dirtyVersion = 3;
+ optional SyncdMutation.SyncdOperation operation = 4;
+ }
+}
+
enum CollectionName {
COLLECTION_NAME_UNKNOWN = 0;
REGULAR = 1;
@@ -1261,6 +1427,19 @@ enum CollectionName {
CRITICAL_BLOCK = 4;
CRITICAL_UNBLOCK_LOW = 5;
}
+message CombinedFingerprint {
+ optional uint32 version = 1;
+ optional FingerprintData localFingerprint = 2;
+ optional FingerprintData remoteFingerprint = 3;
+}
+
+message Command {
+ optional COMMAND_COMMAND_TYPE commandType = 1;
+ optional uint32 offset = 2;
+ optional uint32 length = 3;
+ optional string validationToken = 4;
+}
+
message CommentMetadata {
optional MessageKey commentParentKey = 1;
optional uint32 replyCount = 2;
@@ -1281,6 +1460,216 @@ message Config {
optional uint32 version = 2;
}
+message ConsumerApplication {
+ optional Payload payload = 1;
+ optional Metadata metadata = 2;
+ message ApplicationData {
+ oneof applicationContent {
+ ConsumerApplication.RevokeMessage revoke = 1;
+ }
+ }
+
+ message AudioMessage {
+ optional SubProtocol audio = 1;
+ optional bool ptt = 2;
+ }
+
+ message ContactMessage {
+ optional SubProtocol contact = 1;
+ }
+
+ message ContactsArrayMessage {
+ optional string displayName = 1;
+ repeated ConsumerApplication.ContactMessage contacts = 2;
+ }
+
+ message Content {
+ oneof content {
+ MessageText messageText = 1;
+ ConsumerApplication.ImageMessage imageMessage = 2;
+ ConsumerApplication.ContactMessage contactMessage = 3;
+ ConsumerApplication.LocationMessage locationMessage = 4;
+ ConsumerApplication.ExtendedTextMessage extendedTextMessage = 5;
+ ConsumerApplication.StatusTextMesage statusTextMessage = 6;
+ ConsumerApplication.DocumentMessage documentMessage = 7;
+ ConsumerApplication.AudioMessage audioMessage = 8;
+ ConsumerApplication.VideoMessage videoMessage = 9;
+ ConsumerApplication.ContactsArrayMessage contactsArrayMessage = 10;
+ ConsumerApplication.LiveLocationMessage liveLocationMessage = 11;
+ ConsumerApplication.StickerMessage stickerMessage = 12;
+ ConsumerApplication.GroupInviteMessage groupInviteMessage = 13;
+ ConsumerApplication.ViewOnceMessage viewOnceMessage = 14;
+ ConsumerApplication.ReactionMessage reactionMessage = 16;
+ ConsumerApplication.PollCreationMessage pollCreationMessage = 17;
+ ConsumerApplication.PollUpdateMessage pollUpdateMessage = 18;
+ ConsumerApplication.EditMessage editMessage = 19;
+ }
+ }
+
+ message DocumentMessage {
+ optional SubProtocol document = 1;
+ optional string fileName = 2;
+ }
+
+ message EditMessage {
+ optional MessageKey key = 1;
+ optional MessageText message = 2;
+ optional int64 timestampMs = 3;
+ }
+
+ message ExtendedTextMessage {
+ optional MessageText text = 1;
+ optional string matchedText = 2;
+ optional string canonicalUrl = 3;
+ optional string description = 4;
+ optional string title = 5;
+ optional SubProtocol thumbnail = 6;
+ optional CONSUMER_APPLICATION_EXTENDED_TEXT_MESSAGE_PREVIEW_TYPE previewType = 7;
+ }
+
+ message GroupInviteMessage {
+ optional string groupJid = 1;
+ optional string inviteCode = 2;
+ optional int64 inviteExpiration = 3;
+ optional string groupName = 4;
+ optional bytes jpegThumbnail = 5;
+ optional MessageText caption = 6;
+ }
+
+ message ImageMessage {
+ optional SubProtocol image = 1;
+ optional MessageText caption = 2;
+ }
+
+ message InteractiveAnnotation {
+ repeated ConsumerApplication.Point polygonVertices = 1;
+ oneof action {
+ ConsumerApplication.Location location = 2;
+ }
+ }
+
+ message LiveLocationMessage {
+ optional ConsumerApplication.Location location = 1;
+ optional uint32 accuracyInMeters = 2;
+ optional float speedInMps = 3;
+ optional uint32 degreesClockwiseFromMagneticNorth = 4;
+ optional MessageText caption = 5;
+ optional int64 sequenceNumber = 6;
+ optional uint32 timeOffset = 7;
+ }
+
+ message Location {
+ optional double degreesLatitude = 1;
+ optional double degreesLongitude = 2;
+ optional string name = 3;
+ }
+
+ message LocationMessage {
+ optional ConsumerApplication.Location location = 1;
+ optional string address = 2;
+ }
+
+ message MediaPayload {
+ optional SubProtocol protocol = 1;
+ }
+
+ message Metadata {
+ optional CONSUMER_APPLICATION_METADATA_SPECIAL_TEXT_SIZE specialTextSize = 1;
+ }
+
+ message Option {
+ optional string optionName = 1;
+ }
+
+ message Payload {
+ oneof payload {
+ ConsumerApplication.Content content = 1;
+ ConsumerApplication.ApplicationData applicationData = 2;
+ ConsumerApplication.Signal signal = 3;
+ ConsumerApplication.SubProtocolPayload subProtocol = 4;
+ }
+ }
+
+ message Point {
+ optional double x = 1;
+ optional double y = 2;
+ }
+
+ message PollAddOptionMessage {
+ repeated ConsumerApplication.Option pollOption = 1;
+ }
+
+ message PollCreationMessage {
+ optional bytes encKey = 1;
+ optional string name = 2;
+ repeated ConsumerApplication.Option options = 3;
+ optional uint32 selectableOptionsCount = 4;
+ }
+
+ message PollEncValue {
+ optional bytes encPayload = 1;
+ optional bytes encIv = 2;
+ }
+
+ message PollUpdateMessage {
+ optional MessageKey pollCreationMessageKey = 1;
+ optional ConsumerApplication.PollEncValue vote = 2;
+ optional ConsumerApplication.PollEncValue addOption = 3;
+ }
+
+ message PollVoteMessage {
+ repeated bytes selectedOptions = 1;
+ optional int64 senderTimestampMs = 2;
+ }
+
+ message ReactionMessage {
+ optional MessageKey key = 1;
+ optional string text = 2;
+ optional string groupingKey = 3;
+ optional int64 senderTimestampMs = 4;
+ optional string reactionMetadataDataclassData = 5;
+ optional int32 style = 6;
+ }
+
+ message RevokeMessage {
+ optional MessageKey key = 1;
+ }
+
+ message Signal {}
+
+ message StatusTextMesage {
+ optional ConsumerApplication.ExtendedTextMessage text = 1;
+ optional fixed32 textArgb = 6;
+ optional fixed32 backgroundArgb = 7;
+ optional CONSUMER_APPLICATION_STATUS_TEXT_MESAGE_FONT_TYPE font = 8;
+ }
+
+ message StickerMessage {
+ optional SubProtocol sticker = 1;
+ }
+
+ message SubProtocolPayload {
+ optional FUTURE_PROOF_BEHAVIOR futureProof = 1;
+ }
+
+ message VideoMessage {
+ optional SubProtocol video = 1;
+ optional MessageText caption = 2;
+ }
+
+ message ViewOnceMessage {
+ oneof viewOnceContent {
+ ConsumerApplication.ImageMessage imageMessage = 1;
+ ConsumerApplication.VideoMessage videoMessage = 2;
+ }
+ }
+
+ enum CONSUMER_APPLICATION_EXTENDED_TEXT_MESSAGE_PREVIEW_TYPE {
+ NONE = 0;
+ VIDEO = 1;
+ }
+}
+
message ContextInfo {
optional string stanzaId = 1;
optional string participant = 2;
@@ -1337,6 +1726,15 @@ message ContextInfo {
optional uint32 nonJidMentions = 70;
optional QuotedType quotedType = 71;
optional BotMessageSharingInfo botMessageSharingInfo = 72;
+ optional bool isSpoiler = 73;
+ optional MediaDomainInfo mediaDomainInfo = 74;
+ optional PartiallySelectedContent partiallySelectedContent = 75;
+ optional uint32 afterReadDuration = 76;
+ optional CrossAppSource crossAppSource = 77;
+ optional BusinessInteractionPills businessInteractionPills = 78;
+ optional string posterStatusId = 79;
+ optional InstagramThreadLink instagramThreadLink = 80;
+ optional AIProvenance aiProvenance = 81;
message AdReplyInfo {
optional string advertiserName = 1;
optional MediaType mediaType = 2;
@@ -1349,10 +1747,63 @@ message ContextInfo {
}
}
+ message BusinessInteractionPills {
+ optional string businessJid = 1;
+ repeated Pill pills = 2;
+ optional EntryPoint entryPoint = 3;
+ optional bytes signedPayload = 4;
+ optional BotSignatureVerificationMetadata signatureEnvelope = 5;
+ optional UnauthenticatedBusinessMetadata unauthenticatedBusinessMetadata = 6;
+ enum EntryPoint {
+ ENTRY_POINT_UNKNOWN = 0;
+ P2P_LINK_SHARE = 1;
+ CONTACT_CARD_SHARING = 2;
+ PHONE_NUMBER = 3;
+ STATUS = 4;
+ IN_THREAD_CONTEXT_CARD = 5;
+ }
+ message Pill {
+ optional ContextInfo.BusinessInteractionPills.PillType pillType = 1;
+ optional string actionUrl = 2;
+ }
+
+ enum PillType {
+ UNKNOWN = 0;
+ VIEW_BUSINESS = 1;
+ CHAT = 2;
+ CALL = 3;
+ CATALOG = 4;
+ CHANNEL = 5;
+ BOOK_APPOINTMENT = 6;
+ OFFERS = 7;
+ BESTSELLERS = 8;
+ MENU = 9;
+ ABOUT = 10;
+ SHOP = 11;
+ ORDER = 12;
+ }
+ message SignedPayload {
+ optional string verifiedName = 1;
+ repeated ContextInfo.BusinessInteractionPills.Pill pills = 2;
+ }
+
+ message UnauthenticatedBusinessMetadata {
+ optional string businessName = 1;
+ optional string businessCategory = 2;
+ optional bool businessIsOpen = 3;
+ optional int64 businessIsOpenSnapshotMs = 4;
+ }
+ }
+
message BusinessMessageForwardInfo {
optional string businessOwnerJid = 1;
}
+ enum CrossAppSource {
+ CROSS_APP_SOURCE_UNKNOWN = 0;
+ CROSS_APP_SOURCE_INSTAGRAM = 1;
+ CROSS_APP_SOURCE_FACEBOOK = 2;
+ }
message DataSharingContext {
optional bool showMmDisclosure = 1;
optional string encryptedSignalTokenConsented = 2;
@@ -1399,6 +1850,11 @@ message ContextInfo {
optional AdType adType = 25;
optional string wtwaWebsiteUrl = 26;
optional string adPreviewUrl = 27;
+ optional bool containsCtwaFlowsAutoReply = 28;
+ optional int32 agmThumbnailStrategy = 29;
+ optional int32 agmTitleStrategy = 30;
+ optional int32 agmSubtitleStrategy = 31;
+ optional int32 agmHeaderInteractionStrategy = 32;
enum AdType {
CTWA = 0;
CAWC = 1;
@@ -1411,11 +1867,11 @@ message ContextInfo {
}
message FeatureEligibilities {
- optional bool cannotBeReactedTo = 1;
- optional bool cannotBeRanked = 2;
- optional bool canRequestFeedback = 3;
- optional bool canBeReshared = 4;
- optional bool canReceiveMultiReact = 5;
+ optional bool cannotBeReactedTo = 1 [default = false];
+ optional bool cannotBeRanked = 2 [default = false];
+ optional bool canRequestFeedback = 3 [default = false];
+ optional bool canBeReshared = 4 [default = false];
+ optional bool canReceiveMultiReact = 5 [default = false];
}
enum ForwardOrigin {
@@ -1440,6 +1896,10 @@ message ContextInfo {
}
}
+ message InstagramThreadLink {
+ optional string url = 1;
+ }
+
enum PairedMediaType {
NOT_PAIRED_MEDIA = 0;
SD_VIDEO_PARENT = 1;
@@ -1451,6 +1911,10 @@ message ContextInfo {
HEVC_VIDEO_PARENT = 7;
HEVC_VIDEO_CHILD = 8;
}
+ message PartiallySelectedContent {
+ optional string text = 1;
+ }
+
message QuestionReplyQuotedMessage {
optional int32 serverQuestionId = 1;
optional Message quotedQuestion = 2;
@@ -1470,6 +1934,8 @@ message ContextInfo {
}
message StatusAudienceMetadata {
optional AudienceType audienceType = 1;
+ optional string listName = 2;
+ optional string listEmoji = 3;
enum AudienceType {
UNKNOWN = 0;
CLOSE_FRIENDS = 1;
@@ -1545,12 +2011,211 @@ message Conversation {
optional LimitSharing.TriggerType limitSharingTrigger = 52;
optional bool limitSharingInitiatedByMe = 53;
optional bool maibaAiThreadEnabled = 54;
+ optional bool isMarketingMessageThread = 55;
+ optional bool isSenderNewAccount = 56;
+ optional uint32 afterReadDuration = 57;
+ optional bool isSenderSuspicious = 58;
+ optional GroupAppealStatus appealStatus = 59;
+ optional uint64 appealUpdateTime = 60;
+ optional string authAgentParentCompanyName = 61;
+ optional string authAgentObaPhoneNumber = 62;
+ optional IdentityVerificationState identityVerification = 63;
enum EndOfHistoryTransferType {
COMPLETE_BUT_MORE_MESSAGES_REMAIN_ON_PRIMARY = 0;
COMPLETE_AND_NO_MORE_MESSAGE_REMAIN_ON_PRIMARY = 1;
COMPLETE_ON_DEMAND_SYNC_BUT_MORE_MSG_REMAIN_ON_PRIMARY = 2;
COMPLETE_ON_DEMAND_SYNC_WITH_MORE_MSG_ON_PRIMARY_BUT_NO_ACCESS = 3;
}
+ enum GroupAppealStatus {
+ NO_APPEAL = 0;
+ APPEAL_IN_REVIEW = 1;
+ APPEAL_APPROVED = 2;
+ APPEAL_REJECTED = 3;
+ }
+}
+
+message CreateBackupInput {
+ required string recoveryCode = 1;
+ required uint64 userId = 2;
+}
+
+message CreateBackupOutput {
+ optional DeviceOutput device = 1;
+ optional VirtualDeviceOutput virtualDevice = 2;
+ optional Epoch0Output epoch0 = 3;
+ optional bytes mailboxRootKey = 4;
+ optional string error = 5;
+}
+
+message DecryptMekForDistributionFromTransportSenderInput {
+ required TransportSenderMEKDistributionSingleRecipient mekDistribution = 1;
+ required bytes mekId = 2;
+ required bytes rosterHash = 3;
+ required bytes recipientEncSk = 4;
+ required uint64 version = 5;
+ optional MinosClientConfig conf = 6;
+ message TransportSenderMEKDistributionSingleRecipient {
+ required bytes encryptedMek = 1;
+ required bytes ephemeralEncryptionPk = 2;
+ required bytes signingPk = 3;
+ required bytes signature = 4;
+ optional bytes recipientEpochHead = 5;
+ }
+}
+
+message DecryptMekForDistributionFromTransportSenderResult {
+ oneof result {
+ DecryptMekForDistributionFromTransportSenderSuccess success = 1;
+ string errorMessage = 2;
+ }
+}
+
+message DecryptMekForDistributionFromTransportSenderSuccess {
+ required bytes mek = 1;
+}
+
+message DecryptMekForDistributionInput {
+ required bytes toMailboxSk = 1;
+ required bytes fromPk = 2;
+ required bytes mekId = 3;
+ required bytes senderEpochHead = 4;
+ required bytes rosterHash = 5;
+ required bytes ciphertext = 6;
+ optional bytes toEpochHead = 7;
+ optional int32 mekEncryptionVersion = 8;
+ optional MinosClientConfig conf = 9;
+}
+
+message DecryptMekForDistributionResult {
+ oneof result {
+ DecryptMekForDistributionSuccess success = 1;
+ string errorMessage = 2;
+ }
+}
+
+message DecryptMekForDistributionSuccess {
+ required bytes mek = 1;
+}
+
+message DecryptMessageInput {
+ required bytes epochRootKey = 1;
+ required bytes epochAnonId = 2;
+ required string threadId = 3;
+ required int32 encryptionVersion = 4;
+ required bytes ciphertext = 5;
+}
+
+message DecryptMessageOutput {
+ optional bytes plaintextPayload = 1;
+ optional string error = 2;
+}
+
+message DecryptSelfMmkDistributionInput {
+ required bytes encryptedMmk = 1;
+ required bytes exportRootKey = 2;
+ required bytes mailboxHeadHash = 3;
+}
+
+message DecryptSelfMmkDistributionResult {
+ oneof result {
+ DecryptSelfMmkDistributionSuccess success = 1;
+ string errorMessage = 2;
+ }
+}
+
+message DecryptSelfMmkDistributionSuccess {
+ required bytes mmkSeed = 1;
+}
+
+message DeriveAttachmentAccessTokenSecretInput {
+ required bytes mediaKey = 1;
+}
+
+message DeriveAttachmentAccessTokenSecretResult {
+ required bytes attachmentAccessTokenSecret = 1;
+}
+
+message DeriveAttachmentPrimaryKeySecretInput {
+ required bytes mediaKey = 1;
+}
+
+message DeriveAttachmentPrimaryKeySecretResult {
+ required bytes attachmentPrimaryKeySecret = 1;
+}
+
+message DeriveMailboxAuthKeypairInput {
+ required bytes exportRootKey = 1;
+ required uint64 epochNumber = 2;
+}
+
+message DeriveMailboxAuthKeypairResult {
+ required bytes mailboxAuthPublicKey = 1;
+ required bytes mailboxAuthPrivateKey = 2;
+}
+
+message DeriveMailboxEncryptionKeypairInput {
+ required bytes exportRootKey = 1;
+ required uint64 epochNumber = 2;
+}
+
+message DeriveMailboxEncryptionKeypairResult {
+ required bytes mailboxEncryptionPublicKey = 1;
+ required bytes mailboxEncryptionPrivateKey = 2;
+}
+
+message DeriveMailboxSigningKeypairInput {
+ required bytes exportRootKey = 1;
+ required uint64 epochNumber = 2;
+}
+
+message DeriveMailboxSigningKeypairResult {
+ oneof result {
+ DeriveMailboxSigningKeypairSuccess success = 1;
+ string errorMessage = 2;
+ }
+}
+
+message DeriveMailboxSigningKeypairSuccess {
+ required bytes mailboxSigningPublicKey = 1;
+ required bytes mailboxSigningPrivateKey = 2;
+}
+
+message DeriveMessageKeyInput {
+ required bytes epochRootKey = 1;
+ required bytes epochAnonId = 2;
+ required string threadId = 3;
+}
+
+message DeriveMessageKeyOutput {
+ optional bytes messageKey = 1;
+ optional string error = 2;
+}
+
+message DeriveMessagingMailboxKeypairsInput {
+ required bytes mmkSeed = 1;
+}
+
+message DeriveMessagingMailboxKeypairsResult {
+ oneof result {
+ DeriveMessagingMailboxKeypairsSuccess success = 1;
+ string errorMessage = 2;
+ }
+}
+
+message DeriveMessagingMailboxKeypairsSuccess {
+ required bytes encSk = 1;
+ required bytes encPk = 2;
+ optional bytes authSk = 3;
+ optional bytes authPk = 4;
+}
+
+message DetachedDevicePublicData {
+ required uint64 deviceId = 1;
+ required bytes name = 2;
+ required bytes sigPk = 3;
+ required bytes authPk = 4;
+ required bytes encPk = 5;
+ required bytes signature = 6;
}
message DeviceCapabilities {
@@ -1560,6 +2225,13 @@ message DeviceCapabilities {
optional UserHasAvatar userHasAvatar = 4;
optional MemberNameTagPrimarySupport memberNameTagPrimarySupport = 5;
optional AiThread aiThread = 6;
+ optional AiFbidMigration aiFbidMigration = 7;
+ optional BizAiSettingsSync bizAiSettingsSync = 8;
+ optional ContactRefresh contactRefresh = 9;
+ message AiFbidMigration {
+ optional uint64 chatDbMigrationTimestamp = 1;
+ }
+
message AiThread {
optional SupportLevel supportLevel = 1;
enum SupportLevel {
@@ -1569,8 +2241,16 @@ message DeviceCapabilities {
}
}
+ message BizAiSettingsSync {
+ optional bool handoffRemovalTimingEnabled = 1;
+ }
+
message BusinessBroadcast {
optional bool importListEnabled = 1;
+ optional bool companionSupportEnabled = 2;
+ optional bool campaignSyncEnabled = 3;
+ optional bool insightsSyncEnabled = 4;
+ optional int32 recipientLimit = 5;
}
enum ChatLockSupportLevel {
@@ -1578,6 +2258,10 @@ message DeviceCapabilities {
MINIMAL = 1;
FULL = 2;
}
+ message ContactRefresh {
+ optional bool refreshSupported = 1;
+ }
+
message LIDMigration {
optional uint64 chatDbMigrationTimestamp = 1;
}
@@ -1601,13 +2285,26 @@ message DeviceListMetadata {
optional bytes senderKeyHash = 1;
optional uint64 senderTimestamp = 2;
repeated uint32 senderKeyIndexes = 3 [packed = true];
- optional ADVEncryptionType senderAccountType = 4;
- optional ADVEncryptionType receiverAccountType = 5;
+ optional ADVEncryptionType senderAccountType = 4 [default = E2EE];
+ optional ADVEncryptionType receiverAccountType = 5 [default = E2EE];
optional bytes recipientKeyHash = 8;
optional uint64 recipientTimestamp = 9;
repeated uint32 recipientKeyIndexes = 10 [packed = true];
}
+message DeviceOutput {
+ required bytes publicKey = 1;
+ required bytes epochAuthPublicKey = 2;
+ required bytes epochAuthPublicKeySig = 3;
+ required bytes epochStoragePublicKey = 4;
+ required bytes epochStoragePublicKeySig = 5;
+ repeated int32 supportedEncryptionVersions = 6;
+ required bytes encryptionVersionSignature = 7;
+ required int32 clientVersion = 8;
+ required bytes ocmfClientState = 9;
+ required bytes epochStoragePrivateKey = 10;
+}
+
message DeviceProps {
optional string os = 1;
optional AppVersion version = 2;
@@ -1642,6 +2339,12 @@ message DeviceProps {
optional bool supportGuestChat = 17;
optional bool completeOnDemandReady = 18;
optional uint32 thumbnailSyncDaysLimit = 19;
+ optional uint32 initialSyncMaxMessagesPerChat = 20;
+ optional bool supportManusHistory = 21;
+ optional bool supportHatchHistory = 22;
+ repeated string supportedBotChannelFbids = 23;
+ optional bool supportInlineContacts = 24;
+ optional bool supportNewsletter = 25;
}
enum PlatformType {
@@ -1670,6 +2373,7 @@ message DeviceProps {
VR = 22;
CLOUD_API = 23;
SMARTGLASSES = 24;
+ WAIL = 25;
}
}
@@ -1694,6 +2398,107 @@ message DisappearingMode {
}
}
+enum EXTENDED_CONTENT_MESSAGE_CTA_BUTTON_TYPE {
+ OPEN_NATIVE = 11;
+}
+enum EXTENDED_CONTENT_MESSAGE_EXTENDED_CONTENT_TYPE {
+ UNSUPPORTED = -1;
+ IG_STORY_PHOTO_MENTION = 4;
+ IG_SINGLE_IMAGE_POST_SHARE = 9;
+ IG_MULTIPOST_SHARE = 10;
+ IG_SINGLE_VIDEO_POST_SHARE = 11;
+ IG_STORY_PHOTO_SHARE = 12;
+ IG_STORY_VIDEO_SHARE = 13;
+ IG_CLIPS_SHARE = 14;
+ IG_IGTV_SHARE = 15;
+ IG_SHOP_SHARE = 16;
+ IG_PROFILE_SHARE = 19;
+ IG_STORY_PHOTO_HIGHLIGHT_SHARE = 20;
+ IG_STORY_VIDEO_HIGHLIGHT_SHARE = 21;
+ IG_STORY_REPLY = 22;
+ IG_STORY_REACTION = 23;
+ IG_STORY_VIDEO_MENTION = 24;
+ IG_STORY_HIGHLIGHT_REPLY = 25;
+ IG_STORY_HIGHLIGHT_REACTION = 26;
+ IG_EXTERNAL_LINK = 27;
+ IG_RECEIVER_FETCH = 28;
+ FB_FEED_SHARE = 1000;
+ FB_STORY_REPLY = 1001;
+ FB_STORY_SHARE = 1002;
+ FB_STORY_MENTION = 1003;
+ FB_FEED_VIDEO_SHARE = 1004;
+ FB_GAMING_CUSTOM_UPDATE = 1005;
+ FB_PRODUCER_STORY_REPLY = 1006;
+ FB_EVENT = 1007;
+ FB_FEED_POST_PRIVATE_REPLY = 1008;
+ FB_SHORT = 1009;
+ FB_COMMENT_MENTION_SHARE = 1010;
+ FB_POST_MENTION = 1011;
+ FB_PROFILE_DIRECTORY_ITEM = 1013;
+ FB_FEED_POST_REACTION_REPLY = 1014;
+ FB_QUICKSNAP_REPLY = 1015;
+ MSG_EXTERNAL_LINK_SHARE = 2000;
+ MSG_P2P_PAYMENT = 2001;
+ MSG_LOCATION_SHARING = 2002;
+ MSG_LOCATION_SHARING_V2 = 2003;
+ MSG_HIGHLIGHTS_TAB_FRIEND_UPDATES_REPLY = 2004;
+ MSG_HIGHLIGHTS_TAB_LOCAL_EVENT_REPLY = 2005;
+ MSG_RECEIVER_FETCH = 2006;
+ MSG_IG_MEDIA_SHARE = 2007;
+ MSG_GEN_AI_SEARCH_PLUGIN_RESPONSE = 2008;
+ MSG_REELS_LIST = 2009;
+ MSG_CONTACT = 2010;
+ MSG_THREADS_POST_SHARE = 2011;
+ MSG_FILE = 2012;
+ MSG_AVATAR_DETAILS = 2013;
+ MSG_AI_CONTACT = 2014;
+ MSG_MEMORIES_SHARE = 2015;
+ MSG_SHARED_ALBUM_REPLY = 2016;
+ MSG_SHARED_ALBUM = 2017;
+ MSG_OCCAMADILLO_XMA = 2018;
+ MSG_GEN_AI_SUBSCRIPTION = 2021;
+ MSG_GEN_AI_REMINDER = 2022;
+ MSG_GEN_AI_MEMU_ONBOARDING_RESPONSE = 2023;
+ MSG_NOTE_REPLY = 2024;
+ MSG_NOTE_MENTION = 2025;
+ GEN_AI_ENTITY = 2026;
+ MSG_OPG_P2P_PAYMENT = 2027;
+ GEN_AI_RICH_RESPONSE = 2028;
+ MSG_MUSIC_STICKER = 2029;
+ MSG_PHONE_NUMBER = 2030;
+ AI_ACTIVITY_SHARE = 2031;
+ MSG_PRIVATE_XMA = 2032;
+ MSG_SOCIAL_CUE_MEMORIES = 2033;
+ MSG_MANUS_GROWTH_REFERRAL = 2060;
+ MSG_MOMENT_LINK = 2061;
+ MSG_HORIZON_WEEL = 2062;
+ MSG_MOMENT_ADDED = 2063;
+ RTC_AUDIO_CALL = 3000;
+ RTC_VIDEO_CALL = 3001;
+ RTC_MISSED_AUDIO_CALL = 3002;
+ RTC_MISSED_VIDEO_CALL = 3003;
+ RTC_GROUP_AUDIO_CALL = 3004;
+ RTC_GROUP_VIDEO_CALL = 3005;
+ RTC_MISSED_GROUP_AUDIO_CALL = 3006;
+ RTC_MISSED_GROUP_VIDEO_CALL = 3007;
+ RTC_ONGOING_AUDIO_CALL = 3008;
+ RTC_ONGOING_VIDEO_CALL = 3009;
+ MSG_RECEIVER_FETCH_FALLBACK = 3025;
+ DATACLASS_SENDER_COPY = 4000;
+}
+enum EXTENDED_CONTENT_MESSAGE_XMA_DATACLASS_TYPE {
+ SENDER_COPY = 0;
+ SERVER = 1;
+ SIGNED_CLIENT = 2;
+}
+enum EXTENDED_CONTENT_MESSAGE_XMA_LAYOUT_TYPE {
+ SINGLE = 0;
+ HSCROLL = 1;
+ PORTRAIT = 3;
+ STANDARD_DXMA = 12;
+ LIST_DXMA = 15;
+ GRID = 16;
+}
message EmbeddedContent {
oneof content {
EmbeddedMessage embeddedMessage = 1;
@@ -1723,16 +2528,112 @@ message EmbeddedMusic {
optional int64 overlapDurationInMs = 14;
}
+message EncryptMekForDistributionInput {
+ required bytes senderEpochHead = 1;
+ required bytes toMailboxPk = 2;
+ required MailboxAuthKP fromKeypair = 3;
+ required MekBundle mek = 4;
+ optional bytes toEpochHead = 5;
+ optional MinosClientConfig conf = 6;
+ message MailboxAuthKP {
+ required bytes sk = 1;
+ required bytes pk = 2;
+ }
+}
+
+message EncryptMekForDistributionResult {
+ required bytes ciphertext = 1;
+ required uint64 version = 2;
+}
+
+message EncryptMeksForDistributionFromTransportSenderInput {
+ required MekBundle mek = 1;
+ required TransportSigningKP transportSigningKp = 2;
+ repeated bytes recipientMailboxEncryptionPks = 3;
+ repeated bytes recipientEpochHeads = 4;
+ optional MinosClientConfig conf = 5;
+ message TransportSigningKP {
+ required bytes sk = 1;
+ required bytes pk = 2;
+ }
+}
+
+message EncryptMeksForDistributionFromTransportSenderResult {
+ repeated bytes encryptedMeks = 1;
+ required bytes ephemeralEncryptionPk = 2;
+ required bytes signingPk = 3;
+ required bytes signature = 4;
+ required uint64 version = 5;
+}
+
+message EncryptMessageInput {
+ required bytes epochRootKey = 1;
+ required bytes mailboxRootKey = 2;
+ required bytes orfClientState = 3;
+ required bytes epochAnonId = 4;
+ required uint64 epochId = 5;
+ required string threadId = 6;
+ required uint64 waCanonicalUserFbid = 7;
+ required uint64 timestampMs = 8;
+ required uint64 backupId = 9;
+ required bytes plaintextPayload = 10;
+ required string stanzaId = 11;
+}
+
+message EncryptMessageOutput {
+ optional bytes encryptedProtobuf = 1;
+ optional bytes orfThreadId = 2;
+ optional string valueSecretRef = 3;
+ optional uint64 offlineThreadingId = 4;
+ optional uint64 timestampMs = 5;
+ optional string error = 7;
+}
+
message EncryptedPairingRequest {
optional bytes encryptedPayload = 1;
optional bytes iv = 2;
}
+message EncryptedSecretValuesOutput {
+ required bytes encryptedDevicePrivateKey = 1;
+ required bytes encryptedObliviousValidationTokenBlob = 2;
+ required bytes encryptedEpochStoragePrivateKey = 3;
+ required bytes encryptedOcmfClientState = 4;
+ optional bytes encryptedOrfClientStateV2 = 5;
+ required bytes encryptedMailboxRootKeyBlob = 6;
+ required bytes encryptedEpochAnonId = 7;
+ required bytes encryptedEpochRootKey = 8;
+}
+
message EphemeralSetting {
optional sfixed32 duration = 1;
optional sfixed64 timestamp = 2;
}
+message Epoch0Output {
+ required uint64 epochFbid = 1;
+ required bytes epochAnonId = 2;
+ required bytes epochData = 3;
+ required bytes wrappedRootKeyForSelf = 4;
+ required bytes epochSignature = 5;
+ required bytes epochRootKeyFingerprint = 6;
+ optional bytes epochRootKey = 7;
+}
+
+message EpochPublicData {
+ required uint64 epochNumber = 1;
+ required string userFbid = 2;
+ required bytes mailboxSigningPk = 3;
+ required bytes mailboxEncryptionPk = 4;
+ required bytes mailboxAuthPk = 5;
+ optional bytes previousEpochHead = 6;
+}
+
+message EpochSignatures {
+ required bytes selfSignature = 1;
+ optional bytes prevSignature = 2;
+}
+
message EventAdditionalMetadata {
optional bool isStale = 1;
}
@@ -1749,6 +2650,59 @@ message ExitCode {
optional string text = 2;
}
+message ExtendedContentMessage {
+ optional SubProtocol associatedMessage = 1;
+ optional EXTENDED_CONTENT_MESSAGE_EXTENDED_CONTENT_TYPE targetType = 2;
+ optional string targetUsername = 3;
+ optional string targetId = 4;
+ optional int64 targetExpiringAtSec = 5;
+ optional EXTENDED_CONTENT_MESSAGE_XMA_LAYOUT_TYPE xmaLayoutType = 6;
+ repeated CTA ctas = 7;
+ repeated SubProtocol previews = 8;
+ optional string titleText = 9;
+ optional string subtitleText = 10;
+ optional uint32 maxTitleNumOfLines = 11;
+ optional uint32 maxSubtitleNumOfLines = 12;
+ optional SubProtocol favicon = 13;
+ optional SubProtocol headerImage = 14;
+ optional string headerTitle = 15;
+ optional EXTENDED_CONTENT_MESSAGE_OVERLAY_ICON_GLYPH overlayIconGlyph = 16;
+ optional string overlayTitle = 17;
+ optional string overlayDescription = 18;
+ optional string sentWithMessageId = 19;
+ optional string messageText = 20;
+ optional string headerSubtitle = 21;
+ optional string xmaDataclass = 22;
+ optional string contentRef = 23;
+ repeated string mentionedJid = 24;
+ repeated Command commands = 25;
+ repeated Mention mentions = 26;
+ optional EXTENDED_CONTENT_MESSAGE_XMA_DATACLASS_TYPE xmaDataclassType = 27;
+ optional string signedXmaDataclassValidation = 28;
+ optional string featureSharedSessionId = 29;
+ message CTA {
+ optional EXTENDED_CONTENT_MESSAGE_CTA_BUTTON_TYPE buttonType = 1;
+ optional string title = 2;
+ optional string actionUrl = 3;
+ optional string nativeUrl = 4;
+ optional string ctaType = 5;
+ optional string actionContentBlob = 6;
+ }
+
+ enum EXTENDED_CONTENT_MESSAGE_OVERLAY_ICON_GLYPH {
+ INFO = 0;
+ EYE_OFF = 1;
+ NEWS_OFF = 2;
+ WARNING = 3;
+ PRIVATE = 4;
+ NONE = 5;
+ MEDIA_LABEL = 6;
+ POST_COVER = 7;
+ POST_LABEL = 8;
+ WARNING_SCREENS = 9;
+ }
+}
+
message ExternalBlobReference {
optional bytes mediaKey = 1;
optional string directPath = 2;
@@ -1758,20 +2712,54 @@ message ExternalBlobReference {
optional bytes fileEncSha256 = 6;
}
+enum FUTURE_PROOF_BEHAVIOR {
+ PLACEHOLDER = 0;
+ NO_PLACEHOLDER = 1;
+ IGNORE = 2;
+}
message Field {
- optional uint32 minVersion = 1;
+ optional uint32 minVersion = 1 [default = 1];
optional uint32 maxVersion = 2;
optional uint32 notReportableMinVersion = 3;
optional bool isMessage = 4;
map subfield = 5;
}
+message FingerprintData {
+ optional bytes publicKey = 1;
+ optional bytes pnIdentifier = 2;
+ optional bytes lidIdentifier = 3;
+ optional bytes usernameIdentifier = 4;
+ optional HostedState hostedState = 5;
+ optional bytes hashedPublicKey = 6;
+ enum HostedState {
+ E2EE = 0;
+ HOSTED = 1;
+ }
+}
+
message ForwardedAIBotMessageInfo {
optional string botName = 1;
optional string botJid = 2;
optional string creatorName = 3;
}
+message GenerateMekInput {
+ repeated bytes epochHeads = 1;
+}
+
+message GenerateMekResult {
+ required MekBundle mek = 1;
+}
+
+message GenerateMekRosterHashInput {
+ repeated bytes epochHeads = 1;
+}
+
+message GenerateMekRosterHashResult {
+ required bytes rosterHash = 1;
+}
+
message GlobalSettings {
optional WallpaperSettings lightThemeWallpaper = 1;
optional MediaVisibility mediaVisibility = 2;
@@ -1795,6 +2783,13 @@ message GlobalSettings {
optional int64 chatDbLidMigrationTimestamp = 20;
}
+message GroupHistory {
+ repeated WebMessageInfo messages = 1;
+ repeated UnCountedAssociatedMessageList uncountedAssociatedMessageLists = 2;
+ repeated WebMessageInfo commentMessages = 3;
+ repeated WebMessageInfo outOfWindowPinnedMessages = 4;
+}
+
message GroupHistoryBundleInfo {
optional Message.MessageHistoryBundle deprecatedMessageHistoryBundle = 1;
optional ProcessState processState = 2;
@@ -1804,6 +2799,7 @@ message GroupHistoryBundleInfo {
INJECTED_PARTIAL = 2;
INJECTION_FAILED = 3;
INJECTION_FAILED_NO_RETRY = 4;
+ DEDUPED = 5;
}
}
@@ -1812,6 +2808,13 @@ message GroupHistoryIndividualMessageInfo {
optional bool editedAfterReceivedAsHistory = 2;
}
+message GroupHistoryWithMessageBytes {
+ repeated WebMessageInfoWithMessageBytes messages = 1;
+ repeated UnCountedAssociatedMessageListWithMessageBytes uncountedAssociatedMessageLists = 2;
+ repeated WebMessageInfoWithMessageBytes commentMessages = 3;
+ repeated WebMessageInfoWithMessageBytes outOfWindowPinnedMessages = 4;
+}
+
message GroupMention {
optional string groupJid = 1;
optional string groupSubject = 2;
@@ -1828,6 +2831,17 @@ message GroupParticipant {
}
}
+message GroupRootKeyShare {
+ repeated GroupRootKeyShareEntry keys = 1;
+}
+
+message GroupRootKeyShareEntry {
+ optional bytes groupRootKey = 1;
+ optional string keyId = 2;
+ optional int64 expiryTimestampMs = 3;
+ optional int64 createdTimestampMs = 4;
+}
+
message HandshakeMessage {
optional ClientHello clientHello = 2;
optional ServerHello serverHello = 3;
@@ -1836,6 +2850,8 @@ message HandshakeMessage {
optional bytes static = 1;
optional bytes payload = 2;
optional bytes extendedCiphertext = 3;
+ optional bytes paddedBytes = 4;
+ optional bool simulateXxkemFs = 5;
}
message ClientHello {
@@ -1844,16 +2860,41 @@ message HandshakeMessage {
optional bytes payload = 3;
optional bool useExtended = 4;
optional bytes extendedCiphertext = 5;
+ optional bytes paddedBytes = 6;
+ optional bool sendServerHelloPaddedBytes = 7;
+ optional bool simulateXxkemFs = 8;
+ optional HandshakeMessage.HandshakePqMode pqMode = 9;
+ optional bytes extendedEphemeral = 10;
+ }
+
+ enum HandshakePqMode {
+ HANDSHAKE_PQ_MODE_UNKNOWN = 0;
+ XXKEM = 1;
+ XXKEM_FS = 2;
+ XXKEM_EPH = 9;
+ WA_CLASSICAL = 3;
+ WA_PQ = 4;
+ IKKEM = 5;
+ IKKEM_FS = 6;
+ XXKEM_2 = 7;
+ IKKEM_2 = 8;
}
-
message ServerHello {
optional bytes ephemeral = 1;
optional bytes static = 2;
optional bytes payload = 3;
optional bytes extendedStatic = 4;
+ optional bytes paddingBytes = 5;
+ optional bytes extendedCiphertext = 6;
}
}
+message HatchMetadataSync {
+ optional bytes data = 1;
+ optional int64 timestampMs = 2;
+ optional string requestId = 3;
+}
+
message HistorySync {
required HistorySyncType syncType = 1;
repeated Conversation conversations = 2;
@@ -1872,6 +2913,9 @@ message HistorySync {
optional string companionMetaNonce = 16;
optional bytes shareableChatIdentifierEncryptionKey = 17;
repeated Account accounts = 18;
+ optional bytes nctSalt = 19;
+ repeated InlineContact inlineContacts = 20;
+ optional bool inlineContactsProvided = 21;
enum BotAIWaitListState {
IN_WAITLIST = 0;
AI_AVAILABLE = 1;
@@ -1927,6 +2971,11 @@ message IdentityKeyPairStructure {
optional bytes privateKey = 2;
}
+message IdentityVerificationState {
+ optional bool verified = 1;
+ optional uint64 actionSeq = 2;
+}
+
message InThreadSurveyMetadata {
optional string tessaSessionId = 1;
optional string simonSessionId = 2;
@@ -1964,6 +3013,14 @@ message InThreadSurveyMetadata {
}
}
+message InlineContact {
+ optional string pnJid = 1;
+ optional string lidJid = 2;
+ optional string fullName = 3;
+ optional string firstName = 4;
+ optional string username = 5;
+}
+
message InteractiveAnnotation {
repeated Point polygonVertices = 1;
optional bool shouldSkipConfirmation = 4;
@@ -2012,21 +3069,34 @@ message KeyId {
optional bytes id = 1;
}
+message LIDMigrationMappingSyncMessage {
+ optional bytes encodedMappingPayload = 1;
+}
+
+// Retained locally: WA dropped these from the public JS bundle, but the wire
+// still carries them as the protobuf-encoded `encodedMappingPayload` above.
message LIDMigrationMapping {
required uint64 pn = 1;
required uint64 assignedLid = 2;
optional uint64 latestLid = 3;
}
-message LIDMigrationMappingSyncMessage {
- optional bytes encodedMappingPayload = 1;
-}
-
message LIDMigrationMappingSyncPayload {
repeated LIDMigrationMapping pnToLidMappings = 1;
optional uint64 chatDbMigrationTimestamp = 2;
}
+message LabyrinthWaCommand {
+ oneof commandInput {
+ CreateBackupInput createBackupInput = 1;
+ EncryptMessageInput encryptMessageInput = 2;
+ DecryptMessageInput decryptMessageInput = 3;
+ OrfThreadIdInput orfThreadIdInput = 4;
+ DeriveMessageKeyInput deriveMessageKeyInput = 5;
+ RotateEpochInput rotateEpochInput = 6;
+ }
+}
+
message LegacyMessage {
optional Message.EventResponseMessage eventResponseMessage = 1;
optional Message.PollVoteMessage pollVote = 2;
@@ -2034,7 +3104,7 @@ message LegacyMessage {
message LimitSharing {
optional bool sharingLimited = 1;
- optional TriggerType trigger = 2;
+ optional TriggerType trigger = 2 [default = UNKNOWN];
optional int64 limitSharingSettingTimestamp = 3;
optional bool initiatedByMe = 4;
enum TriggerType {
@@ -2057,10 +3127,204 @@ message Location {
optional string name = 3;
}
-message MediaData {
- optional string localPath = 1;
+enum MENTION_MENTION_TYPE {
+ PROFILE = 0;
+}
+message MandrakeDecryptMekInput {
+ required bytes encryptedMek = 1;
+ required bytes recipientsHash = 4;
+ required bytes recipientEncSk = 5;
+ optional uint64 mekEncryptionVersion = 6;
+ optional MinosClientConfig conf = 7;
+ required MessagingMailboxPublicData recipientMmk = 8;
+ optional bytes mekId = 9;
+ optional MerkleMembershipProof recipientMembershipProof = 10;
+ oneof senderPublicData {
+ MandrakeDecryptMekInput.MmkSenderPublicData mmkSender = 2;
+ MandrakeDecryptMekInput.EpochSenderPublicData epochSender = 3;
+ MandrakeDecryptMekInput.PrecomputedEpochSenderPublicData precomputedEpochSender = 11;
+ }
+ message EpochSenderPublicData {
+ required EpochPublicData epochPublicData = 1;
+ }
+
+ message MmkSenderPublicData {
+ required MessagingMailboxPublicData mmkPublicData = 1;
+ }
+
+ message PrecomputedEpochSenderPublicData {
+ required bytes authPk = 1;
+ required bytes epochHead = 2;
+ }
+}
+
+message MandrakeDecryptMekResult {
+ oneof result {
+ MandrakeDecryptMekSuccess success = 1;
+ string errorMessage = 2;
+ }
+}
+
+message MandrakeDecryptMekSuccess {
+ required bytes mek = 1;
+}
+
+message MandrakeEncryptMekInput {
+ required MandrakeMekBundle mek = 1;
+ repeated MessagingMailboxPublicData recipients = 2;
+ optional MinosClientConfig conf = 5;
+ oneof sender {
+ MandrakeEncryptMekInput.MmkSender mmkSender = 3;
+ MandrakeEncryptMekInput.EpochSender epochSender = 4;
+ MandrakeEncryptMekInput.DetachedDeviceSender detachedDeviceSender = 6;
+ }
+ message DetachedDeviceSender {
+ required DetachedDevicePublicData detachedDevicePublicData = 1;
+ required bytes authSk = 2;
+ required bytes authPk = 3;
+ }
+
+ message EpochSender {
+ required EpochPublicData epochPublicData = 1;
+ required bytes authSk = 2;
+ required bytes authPk = 3;
+ }
+
+ message MmkSender {
+ required MessagingMailboxPublicData mmkPublicData = 1;
+ required bytes authSk = 2;
+ required bytes authPk = 3;
+ }
+}
+
+message MandrakeEncryptMekResult {
+ oneof result {
+ MandrakeEncryptMekSuccess success = 1;
+ string errorMessage = 2;
+ }
+}
+
+message MandrakeEncryptMekSuccess {
+ repeated MekDistributionSingleRecipient distributions = 1;
+ required bytes recipientsHash = 2;
+ required uint64 version = 3;
+ message MekDistributionSingleRecipient {
+ required bytes encryptedMek = 1;
+ required MessagingMailboxPublicData toMmk = 2;
+ optional MerkleMembershipProof recipientMembershipProof = 3;
+ }
+}
+
+message MandrakeMekBundle {
+ required bytes key = 1;
+ required bytes mekId = 2;
+ required bytes mailboxHeadHash = 3;
+}
+
+message MandrakeOpenEpochInput {
+ required string userFbid = 1;
+ required uint64 epochNumber = 2;
+ required bytes exportRootKey = 3;
+ required bytes previousExportRootKey = 4;
+ required uint64 previousEpochNumber = 5;
+ required bytes previousEpochHead = 6;
+ optional MessagingMailboxPublicData previousMmk = 7;
+ repeated DetachedDevicePublicData detachedDevices = 8;
+}
+
+message MandrakeOpenEpochResult {
+ oneof result {
+ MandrakeOpenEpochSuccess success = 1;
+ string errorMessage = 2;
+ }
+}
+
+message MandrakeOpenEpochSuccess {
+ required MinosSignedEpoch minosSignedEpoch = 1;
+ required SignedMmkDistributionFromMailbox signedMmkDistribution = 2;
+}
+
+message MandrakeOpenInitialEpochInput {
+ required string userFbid = 1;
+ required uint64 epochNumber = 2;
+ required bytes exportRootKey = 3;
+ repeated DetachedDevicePublicData detachedDevices = 4;
+}
+
+message MandrakeOpenInitialEpochResult {
+ oneof result {
+ MandrakeOpenEpochSuccess success = 1;
+ string errorMessage = 2;
+ }
+}
+
+message MandrakeValidateNewMmkFromDetachedDeviceInput {
+ required MmkFromDetachedDevice mmkFromDevice = 1;
+ required bytes signature = 2;
+ required MessagingMailboxPublicData prevMmk = 3;
+}
+
+message MandrakeValidateNewMmkFromMailboxInput {
+ required MessagingMailboxPublicData newMmk = 1;
+ required bytes signature = 2;
+ optional MessagingMailboxPublicData prevMmk = 3;
+ required EpochPublicData epochPublicData = 4;
+}
+
+message MandrakeValidateNewMmkResult {
+ oneof result {
+ bool valid = 1;
+ string errorMessage = 2;
+ }
+}
+
+message MediaData {
+ optional string localPath = 1;
+}
+
+message MediaDomainInfo {
+ optional MediaKeyDomain mediaKeyDomain = 1;
+ optional bytes e2EeMediaKey = 2;
+}
+
+message MediaEntry {
+ optional bytes fileSha256 = 1;
+ optional bytes mediaKey = 2;
+ optional bytes fileEncSha256 = 3;
+ optional string directPath = 4;
+ optional int64 mediaKeyTimestamp = 5;
+ optional string serverMediaType = 6;
+ optional bytes uploadToken = 7;
+ optional bytes validatedTimestamp = 8;
+ optional bytes sidecar = 9;
+ optional string objectId = 10;
+ optional string fbid = 11;
+ optional DownloadableThumbnail downloadableThumbnail = 12;
+ optional string handle = 13;
+ optional string filename = 14;
+ optional ProgressiveJpegDetails progressiveJpegDetails = 15;
+ optional int64 size = 16;
+ optional int64 lastDownloadAttemptTimestamp = 17;
+ message DownloadableThumbnail {
+ optional bytes fileSha256 = 1;
+ optional bytes fileEncSha256 = 2;
+ optional string directPath = 3;
+ optional bytes mediaKey = 4;
+ optional int64 mediaKeyTimestamp = 5;
+ optional string objectId = 6;
+ }
+
+ message ProgressiveJpegDetails {
+ repeated uint32 scanLengths = 1;
+ optional bytes sidecar = 2;
+ }
}
+enum MediaKeyDomain {
+ MEDIA_KEY_DOMAIN_UNKNOWN = 0;
+ MEDIA_KEY_DOMAIN_E2EE = 1;
+ MEDIA_KEY_DOMAIN_NON_E2EE = 2;
+}
message MediaNotifyMessage {
optional string expressPathUrl = 1;
optional bytes fileEncSha256 = 2;
@@ -2085,11 +3349,31 @@ enum MediaVisibility {
OFF = 1;
ON = 2;
}
+message MekBundle {
+ required bytes key = 1;
+ required bytes mekId = 2;
+ required bytes rosterHash = 3;
+}
+
message MemberLabel {
optional string label = 1;
optional int64 labelTimestamp = 2;
}
+message Mention {
+ optional MENTION_MENTION_TYPE mentionType = 1;
+ optional string mentionedJid = 2;
+ optional uint32 offset = 3;
+ optional uint32 length = 4;
+}
+
+message MerkleMembershipProof {
+ required bytes proof = 1;
+ required bytes root = 2;
+ required uint64 leafIndex = 3;
+ required uint64 totalLeaves = 4;
+}
+
message Message {
optional string conversation = 1;
optional SenderKeyDistributionMessage senderKeyDistributionMessage = 2;
@@ -2187,6 +3471,21 @@ message Message {
optional NewsletterFollowerInviteMessage newsletterFollowerInviteMessageV2 = 113;
optional PollResultSnapshotMessage pollResultSnapshotMessageV3 = 115;
optional FutureProofMessage newsletterAdminProfileMessage = 116;
+ optional FutureProofMessage newsletterAdminProfileMessageV2 = 117;
+ optional FutureProofMessage spoilerMessage = 118;
+ optional PollCreationMessage pollCreationMessageV6 = 119;
+ optional ConditionalRevealMessage conditionalRevealMessage = 120;
+ optional PollAddOptionMessage pollAddOptionMessage = 121;
+ optional EventInviteMessage eventInviteMessage = 122;
+ optional GroupRootKeyShare groupRootKeyShare = 123;
+ optional PaymentReminderMessage paymentReminderMessage = 124;
+ optional SplitPaymentMessage splitPaymentMessage = 125;
+ optional FutureProofMessage newsletterAdminProfileStatusMessage = 126;
+ optional RootSecretDistributeMessage rootSecretDistributeMessage = 127;
+ optional SplitPaymentUpdateMessage splitPaymentUpdateMessage = 128;
+ optional MusicMessage musicMessage = 129;
+ optional StatusLinkPreviewMetadata statusLinkPreviewMetadata = 130;
+ optional FutureProofMessage botPlatformRegistrationSuccessMessage = 131;
message AlbumMessage {
optional uint32 expectedImageCount = 2;
optional uint32 expectedVideoCount = 3;
@@ -2244,7 +3543,6 @@ message Message {
optional fixed32 backgroundArgb = 20;
optional bool viewOnce = 21;
optional string accessibilityLabel = 22;
- optional Message.MediaKeyDomain mediaKeyDomain = 23;
}
message BCallMessage {
@@ -2259,6 +3557,12 @@ message Message {
}
}
+ message BotHistoryShareSyncMetadata {
+ optional string botJid = 1;
+ optional int64 historyShareCutoffTimestamp = 2;
+ repeated Message.HistoryShareMessageEntry historyShareMessages = 3;
+ }
+
message ButtonsMessage {
optional string contentText = 6;
optional string footerText = 7;
@@ -2328,6 +3632,8 @@ message Message {
optional string nativeFlowCallButtonPayload = 8;
optional string deeplinkPayload = 9;
optional MessageContextInfo messageContextInfo = 10;
+ optional uint32 callEntryPoint = 11;
+ optional string callReason = 12;
}
message CallLogMessage {
@@ -2367,6 +3673,41 @@ message Message {
optional string id = 2;
}
+ message ChatCustomImageWallpaper {
+ optional string directPath = 1;
+ optional bytes mediaKey = 2;
+ optional bytes fileEncSha256 = 3;
+ optional bytes fileSha256 = 4;
+ optional float dimLevel = 5;
+ }
+
+ message ChatDefaultWallpaper {
+ optional bool isDoodleEnabled = 1;
+ }
+
+ message ChatSolidColorWallpaper {
+ optional string colorLight = 1;
+ optional string colorDark = 2;
+ optional bool isDoodleEnabled = 3;
+ }
+
+ message ChatStockImageWallpaper {
+ optional string stockImageId = 1;
+ optional float dimLevel = 2;
+ }
+
+ message ChatThemeSetting {
+ optional int64 settingTimestampMs = 1;
+ optional bool clearTheme = 2;
+ optional string colorSchemeId = 3;
+ oneof wallpaper {
+ Message.ChatDefaultWallpaper defaultWallpaper = 10;
+ Message.ChatSolidColorWallpaper solidColor = 11;
+ Message.ChatStockImageWallpaper stockImage = 12;
+ Message.ChatCustomImageWallpaper customImage = 13;
+ }
+ }
+
message CloudAPIThreadControlNotification {
optional CloudAPIThreadControl status = 1;
optional int64 senderNotificationTimestampMs = 2;
@@ -2378,6 +3719,7 @@ message Message {
UNKNOWN = 0;
CONTROL_PASSED = 1;
CONTROL_TAKEN = 2;
+ INFO = 3;
}
message CloudAPIThreadControlNotificationContent {
optional string handoffNotificationText = 1;
@@ -2390,10 +3732,22 @@ message Message {
optional MessageKey targetMessageKey = 2;
}
+ message ConditionalRevealMessage {
+ optional bytes encPayload = 1;
+ optional bytes encIv = 2;
+ optional ConditionalRevealMessageType conditionalRevealMessageType = 3;
+ optional string revealKeyId = 4;
+ enum ConditionalRevealMessageType {
+ UNKNOWN = 0;
+ SCHEDULED_MESSAGE = 1;
+ }
+ }
+
message ContactMessage {
optional string displayName = 1;
optional string vcard = 16;
optional ContextInfo contextInfo = 17;
+ optional bool isSelfContact = 18;
}
message ContactsArrayMessage {
@@ -2434,7 +3788,6 @@ message Message {
optional uint32 thumbnailWidth = 19;
optional string caption = 20;
optional string accessibilityLabel = 21;
- optional Message.MediaKeyDomain mediaKeyDomain = 22;
}
message EncCommentMessage {
@@ -2455,6 +3808,18 @@ message Message {
optional bytes encIv = 3;
}
+ message EventInviteMessage {
+ optional ContextInfo contextInfo = 1;
+ optional string eventId = 2;
+ optional string eventTitle = 3;
+ optional bytes jpegThumbnail = 4;
+ optional int64 startTime = 5;
+ optional string caption = 6;
+ optional bool isCanceled = 7;
+ optional int64 endTime = 8;
+ optional string callLink = 9;
+ }
+
message EventMessage {
optional ContextInfo contextInfo = 1;
optional bool isCanceled = 2;
@@ -2508,7 +3873,7 @@ message Message {
optional bool viewOnce = 30;
optional uint32 videoHeight = 31;
optional uint32 videoWidth = 32;
- optional Message.MMSThumbnailMetadata faviconMMSMetadata = 33;
+ optional Message.MMSThumbnailMetadata faviconMmsMetadata = 33;
optional Message.LinkPreviewMetadata linkPreviewMetadata = 34;
optional Message.PaymentLinkMetadata paymentLinkMetadata = 35;
repeated Message.VideoEndCard endCardTiles = 36;
@@ -2541,8 +3906,15 @@ message Message {
}
}
+ message FullHistorySyncOnDemandConfig {
+ optional uint64 historyFromTimestamp = 1;
+ optional uint32 historyDurationDays = 2;
+ }
+
message FullHistorySyncOnDemandRequestMetadata {
optional string requestId = 1;
+ optional string businessProduct = 2;
+ optional bytes opaqueClientData = 3;
}
message FutureProofMessage {
@@ -2620,6 +3992,11 @@ message Message {
}
}
+ message HistoryShareMessageEntry {
+ optional string stanzaId = 1;
+ optional bytes messageSecretProof = 2;
+ }
+
message HistorySyncMessageAccessStatus {
optional bool completeAccessGranted = 1;
}
@@ -2683,7 +4060,6 @@ message Message {
repeated InteractiveAnnotation annotations = 30;
optional ImageSourceType imageSourceType = 31;
optional string accessibilityLabel = 32;
- optional Message.MediaKeyDomain mediaKeyDomain = 33;
optional string qrUrl = 34;
enum ImageSourceType {
USER_IMAGE = 0;
@@ -2697,10 +4073,18 @@ message Message {
optional bool securityNotificationEnabled = 1;
}
+ enum InsightDeliveryState {
+ SENT = 0;
+ DELIVERED = 1;
+ READ = 2;
+ REPLIED = 3;
+ QUICK_REPLIED = 4;
+ }
message InteractiveMessage {
optional Header header = 1;
optional Body body = 2;
optional Footer footer = 3;
+ optional BloksWidget bloksWidget = 8;
optional ContextInfo contextInfo = 15;
optional UrlTrackingMap urlTrackingMap = 16;
oneof interactiveMessage {
@@ -2709,14 +4093,21 @@ message Message {
Message.InteractiveMessage.NativeFlowMessage nativeFlowMessage = 6;
Message.InteractiveMessage.CarouselMessage carouselMessage = 7;
}
+ message BloksWidget {
+ optional string uuid = 1;
+ optional string data = 2;
+ optional string type = 3;
+ optional string fallback = 4;
+ }
+
message Body {
optional string text = 1;
}
message CarouselMessage {
repeated Message.InteractiveMessage cards = 1;
- optional int32 messageVersion = 2;
- optional CarouselCardType carouselCardType = 3;
+ optional int32 messageVersion = 2 [default = 1];
+ optional CarouselCardType carouselCardType = 3 [default = HSCROLL_CARDS];
enum CarouselCardType {
UNKNOWN = 0;
HSCROLL_CARDS = 1;
@@ -2727,7 +4118,7 @@ message Message {
message CollectionMessage {
optional string bizJid = 1;
optional string id = 2;
- optional int32 messageVersion = 3;
+ optional int32 messageVersion = 3 [default = 1];
}
message Footer {
@@ -2742,6 +4133,7 @@ message Message {
optional string title = 1;
optional string subtitle = 2;
optional bool hasMediaAttachment = 5;
+ optional Message.InteractiveMessage.BloksWidget bloksWidget = 10;
oneof media {
Message.DocumentMessage documentMessage = 3;
Message.ImageMessage imageMessage = 4;
@@ -2755,7 +4147,7 @@ message Message {
message NativeFlowMessage {
repeated NativeFlowButton buttons = 1;
optional string messageParamsJson = 2;
- optional int32 messageVersion = 3;
+ optional int32 messageVersion = 3 [default = 1];
message NativeFlowButton {
optional string name = 1;
optional string buttonParamsJson = 2;
@@ -2765,7 +4157,7 @@ message Message {
message ShopMessage {
optional string id = 1;
optional Surface surface = 2;
- optional int32 messageVersion = 3;
+ optional int32 messageVersion = 3 [default = 1];
enum Surface {
UNKNOWN_SURFACE = 0;
FB = 1;
@@ -2783,7 +4175,7 @@ message Message {
}
message Body {
optional string text = 1;
- optional Format format = 2;
+ optional Format format = 2 [default = DEFAULT];
enum Format {
DEFAULT = 0;
EXTENSIONS_1 = 1;
@@ -2793,7 +4185,7 @@ message Message {
message NativeFlowResponseMessage {
optional string name = 1;
optional string paramsJson = 2;
- optional int32 version = 3;
+ optional int32 version = 3 [default = 1];
}
}
@@ -2937,16 +4329,15 @@ message Message {
optional int64 mediaKeyTimestamp = 5;
optional uint32 thumbnailHeight = 6;
optional uint32 thumbnailWidth = 7;
- optional Message.MediaKeyDomain mediaKeyDomain = 8;
}
- enum MediaKeyDomain {
- UNSET = 0;
- E2EE_CHAT = 1;
- STATUS = 2;
- CAPI = 3;
- BOT = 4;
+ message MarkAsVerifiedAction {
+ optional string userJidString = 1;
+ optional bool verified = 2;
+ optional bytes verifiedIdentityKey = 3;
+ optional uint64 actionSeq = 4;
}
+
message MessageHistoryBundle {
optional string mimetype = 1;
optional bytes fileSha256 = 2;
@@ -2960,13 +4351,28 @@ message Message {
message MessageHistoryMetadata {
repeated string historyReceivers = 1;
- optional int64 oldestMessageTimestamp = 2;
+ optional int64 oldestMessageTimestampInWindow = 2;
optional int64 messageCount = 3;
+ repeated string nonHistoryReceivers = 4;
+ optional int64 oldestMessageTimestampInBundle = 5;
}
message MessageHistoryNotice {
optional ContextInfo contextInfo = 1;
optional Message.MessageHistoryMetadata messageHistoryMetadata = 2;
+ optional Message.BotHistoryShareSyncMetadata botHistoryShareSyncMetadata = 3;
+ }
+
+ message MusicMessage {
+ optional EmbeddedMusic embeddedMusic = 1;
+ optional string songUri = 2;
+ optional string artworkUri = 3;
+ optional int32 style = 4;
+ optional ContextInfo contextInfo = 5;
+ enum MusicMessageStyle {
+ UNKNOWN = 0;
+ VINYL = 1;
+ }
}
message NewsletterAdminInviteMessage {
@@ -2999,7 +4405,7 @@ message Message {
optional int64 totalAmount1000 = 10;
optional string totalCurrencyCode = 11;
optional ContextInfo contextInfo = 17;
- optional int32 messageVersion = 12;
+ optional int32 messageVersion = 12 [default = 1];
optional MessageKey orderRequestMessageId = 13;
optional string catalogType = 15;
enum OrderStatus {
@@ -3015,16 +4421,25 @@ message Message {
message PaymentExtendedMetadata {
optional uint32 type = 1;
optional string platform = 2;
+ optional string messageParamsJson = 3;
}
message PaymentInviteMessage {
optional ServiceType serviceType = 1;
optional int64 expiryTimestamp = 2;
+ optional bool incentiveEligible = 3;
+ optional string referralId = 4;
+ optional InviteType inviteType = 5;
+ enum InviteType {
+ DEFAULT = 0;
+ MAPPER = 1;
+ }
enum ServiceType {
UNKNOWN = 0;
FBPAY = 1;
NOVI = 2;
UPI = 3;
+ PIX = 4;
}
}
@@ -3049,6 +4464,33 @@ message Message {
}
}
+ message PaymentReminderMessage {
+ optional string reminderId = 1;
+ optional string instanceId = 2;
+ optional string description = 3;
+ optional ReminderFrequency frequency = 4;
+ optional ReminderStatus status = 5;
+ optional string payeeVpa = 6;
+ optional string payeeJid = 7;
+ optional string payerJid = 8;
+ optional Money amount = 9;
+ enum ReminderFrequency {
+ REMINDER_FREQUENCY_UNKNOWN = 0;
+ WEEKLY = 1;
+ BI_WEEKLY = 2;
+ MONTHLY = 3;
+ QUARTERLY = 4;
+ }
+ enum ReminderStatus {
+ REMINDER_STATUS_UNKNOWN = 0;
+ ACTIVE = 1;
+ CANCELLED_BY_CREATOR = 2;
+ STOPPED_BY_RECEIVER = 3;
+ EXPIRED = 4;
+ PAID = 5;
+ }
+ }
+
message PeerDataOperationRequestMessage {
optional Message.PeerDataOperationRequestType peerDataOperationRequestType = 1;
repeated RequestStickerReupload requestStickerReupload = 2;
@@ -3059,17 +4501,36 @@ message Message {
optional SyncDCollectionFatalRecoveryRequest syncdCollectionFatalRecoveryRequest = 7;
optional HistorySyncChunkRetryRequest historySyncChunkRetryRequest = 8;
optional GalaxyFlowAction galaxyFlowAction = 9;
+ optional CompanionCanonicalUserNonceFetchRequest companionCanonicalUserNonceFetchRequest = 10;
+ optional BizBroadcastInsightsContactListRequest bizBroadcastInsightsContactListRequest = 11;
+ optional BizBroadcastInsightsRefreshRequest bizBroadcastInsightsRefreshRequest = 12;
+ message BizBroadcastInsightsContactListRequest {
+ optional string campaignId = 1;
+ }
+
+ message BizBroadcastInsightsRefreshRequest {
+ optional string campaignId = 1;
+ }
+
+ message CompanionCanonicalUserNonceFetchRequest {
+ optional string registrationTraceId = 1;
+ }
+
message FullHistorySyncOnDemandRequest {
optional Message.FullHistorySyncOnDemandRequestMetadata requestMetadata = 1;
optional DeviceProps.HistorySyncConfig historySyncConfig = 2;
+ optional Message.FullHistorySyncOnDemandConfig fullHistorySyncOnDemandConfig = 3;
}
message GalaxyFlowAction {
optional GalaxyFlowActionType type = 1;
optional string flowId = 2;
optional string stanzaId = 3;
+ optional string galaxyFlowDownloadRequestId = 4;
+ optional string agmId = 5;
enum GalaxyFlowActionType {
NOTIFY_LAUNCH = 1;
+ DOWNLOAD_RESPONSES = 2;
}
}
@@ -3087,6 +4548,7 @@ message Message {
optional int32 onDemandMsgCount = 4;
optional int64 oldestMsgTimestampMs = 5;
optional string accountLid = 6;
+ optional bool supportInlineResponse = 7;
}
message PlaceholderMessageResendRequest {
@@ -3123,6 +4585,20 @@ message Message {
optional SyncDSnapshotFatalRecoveryResponse syncdSnapshotFatalRecoveryResponse = 8;
optional CompanionCanonicalUserNonceFetchResponse companionCanonicalUserNonceFetchRequestResponse = 9;
optional HistorySyncChunkRetryResponse historySyncChunkRetryResponse = 10;
+ optional FlowResponsesCsvBundle flowResponsesCsvBundle = 11;
+ optional BizBroadcastInsightsContactListResponse bizBroadcastInsightsContactListResponse = 12;
+ optional ContactRefreshResponse contactRefreshResponse = 13;
+ message BizBroadcastInsightsContactListResponse {
+ optional string campaignId = 1;
+ optional int64 timestampMs = 2;
+ repeated Message.PeerDataOperationRequestResponseMessage.PeerDataOperationResult.BizBroadcastInsightsContactState contacts = 3;
+ }
+
+ message BizBroadcastInsightsContactState {
+ optional string contactJid = 1;
+ optional Message.InsightDeliveryState state = 2;
+ }
+
message CompanionCanonicalUserNonceFetchResponse {
optional string nonce = 1;
optional string waFbid = 2;
@@ -3133,6 +4609,26 @@ message Message {
optional string nonce = 1;
}
+ message ContactRefreshResponse {
+ repeated string coveredRequestIds = 1;
+ optional uint64 collectionVersion = 2;
+ optional int64 primaryDurationMs = 3;
+ optional uint32 uniqueContactCount = 4;
+ }
+
+ message FlowResponsesCsvBundle {
+ optional string flowId = 1;
+ optional string galaxyFlowDownloadRequestId = 2;
+ optional string fileName = 3;
+ optional string mimetype = 4;
+ optional bytes fileSha256 = 5;
+ optional bytes mediaKey = 6;
+ optional bytes fileEncSha256 = 7;
+ optional string directPath = 8;
+ optional int64 mediaKeyTimestamp = 9;
+ optional uint64 fileLength = 10;
+ }
+
message FullHistorySyncOnDemandRequestResponse {
optional Message.FullHistorySyncOnDemandRequestMetadata requestMetadata = 1;
optional Message.PeerDataOperationRequestResponseMessage.PeerDataOperationResult.FullHistorySyncOnDemandResponseCode responseCode = 2;
@@ -3146,6 +4642,7 @@ message Message {
ERROR_REQUEST_ON_NON_SMB_PRIMARY = 4;
ERROR_HOSTED_DEVICE_NOT_CONNECTED = 5;
ERROR_HOSTED_DEVICE_LOGIN_TIME_NOT_SET = 6;
+ ERROR_MULTI_PROVIDER_NOT_CONFIGURED = 7;
}
message HistorySyncChunkRetryResponse {
optional Message.HistorySyncType syncType = 1;
@@ -3185,6 +4682,9 @@ message Message {
message PaymentLinkPreviewMetadata {
optional bool isBusinessVerified = 1;
optional string providerName = 2;
+ optional string amount = 3;
+ optional string offset = 4;
+ optional string currency = 5;
}
}
@@ -3217,6 +4717,9 @@ message Message {
COMPANION_CANONICAL_USER_NONCE_FETCH = 9;
HISTORY_SYNC_CHUNK_RETRY = 10;
GALAXY_FLOW_ACTION = 11;
+ BUSINESS_BROADCAST_INSIGHTS_DELIVERED_TO = 12;
+ BUSINESS_BROADCAST_INSIGHTS_REFRESH = 13;
+ CONTACT_REFRESH_REQUEST = 14;
}
message PinInChatMessage {
optional MessageKey key = 1;
@@ -3236,6 +4739,12 @@ message Message {
}
}
+ message PollAddOptionMessage {
+ optional MessageKey pollCreationMessageKey = 1;
+ optional Message.PollCreationMessage.Option addOption = 2;
+ optional Message.PollUpdateMessageMetadata metadata = 3;
+ }
+
enum PollContentType {
UNKNOWN = 0;
TEXT = 1;
@@ -3250,6 +4759,9 @@ message Message {
optional Message.PollContentType pollContentType = 6;
optional Message.PollType pollType = 7;
optional Option correctAnswer = 8;
+ optional int64 endTime = 9;
+ optional bool hideParticipantName = 10;
+ optional bool allowAddOption = 11;
message Option {
optional string optionName = 1;
optional string optionHash = 2;
@@ -3283,7 +4795,10 @@ message Message {
optional int64 senderTimestampMs = 4;
}
- message PollUpdateMessageMetadata {}
+ message PollUpdateMessageMetadata {
+ optional bytes pollNameHash = 1;
+ optional string lastEditStanzaId = 2;
+ }
message PollVoteMessage {
repeated bytes selectedOptions = 1;
@@ -3343,6 +4858,12 @@ message Message {
optional bytes aiPsiMetadata = 25;
optional AIQueryFanout aiQueryFanout = 26;
optional MemberLabel memberLabel = 27;
+ optional AIMediaCollectionMessage aiMediaCollectionMessage = 28;
+ optional uint32 afterReadDuration = 29;
+ optional Message.ChatThemeSetting chatThemeSetting = 30;
+ optional AIMetadataOperation aiMetadataOperation = 31;
+ optional Message.MarkAsVerifiedAction markAsVerifiedAction = 32;
+ optional CoexStateSync coexStateSync = 33;
enum Type {
REVOKE = 0;
EPHEMERAL_SETTING = 3;
@@ -3370,6 +4891,12 @@ message Message {
AI_PSI_METADATA = 28;
AI_QUERY_FANOUT = 29;
GROUP_MEMBER_LABEL_CHANGE = 30;
+ AI_MEDIA_COLLECTION_MESSAGE = 31;
+ MESSAGE_UNSCHEDULE = 32;
+ CHAT_THEME_SETTING = 34;
+ AI_METADATA_OPERATION = 35;
+ MARK_AS_VERIFIED_ACTION = 36;
+ COEX_STATE_SYNC = 37;
}
}
@@ -3401,10 +4928,20 @@ message Message {
message RequestWelcomeMessageMetadata {
optional LocalChatState localChatState = 1;
+ optional WelcomeTrigger welcomeTrigger = 2;
+ optional BotAgentMetadata botAgentMetadata = 3;
enum LocalChatState {
EMPTY = 0;
NON_EMPTY = 1;
}
+ enum WelcomeTrigger {
+ CHAT_OPEN = 0;
+ COMPANION_PAIRING = 1;
+ }
+ }
+
+ message RootSecretDistributeMessage {
+ optional string chatJid = 1;
}
message ScheduledCallCreationMessage {
@@ -3432,10 +4969,14 @@ message Message {
optional bytes encPayload = 2;
optional bytes encIv = 3;
optional SecretEncType secretEncType = 4;
+ optional string remoteKeyId = 5;
enum SecretEncType {
UNKNOWN = 0;
EVENT_EDIT = 1;
MESSAGE_EDIT = 2;
+ MESSAGE_SCHEDULE = 3;
+ POLL_EDIT = 4;
+ POLL_ADD_OPTION = 5;
}
}
@@ -3451,6 +4992,41 @@ message Message {
optional bytes axolotlSenderKeyDistributionMessage = 2;
}
+ message SplitPaymentMessage {
+ optional string splitId = 1;
+ optional Money totalAmount = 2;
+ optional string description = 3;
+ optional string requesterJid = 4;
+ repeated Message.SplitPaymentParticipant participants = 5;
+ optional int64 createdAtMs = 6;
+ optional ContextInfo contextInfo = 17;
+ }
+
+ message SplitPaymentParticipant {
+ optional string jid = 1;
+ optional Money amount = 2;
+ optional SplitPaymentStatus status = 3;
+ enum SplitPaymentStatus {
+ PENDING = 0;
+ PAID = 1;
+ }
+ }
+
+ message SplitPaymentUpdateMessage {
+ optional string splitId = 1;
+ optional string participantJid = 2;
+ }
+
+ message StatusLinkPreviewMetadata {
+ optional Style style = 1;
+ enum Style {
+ AUTO = 0;
+ COMPACT = 1;
+ FULL = 2;
+ IMMERSIVE = 3;
+ }
+ }
+
message StatusNotificationMessage {
optional MessageKey responseMessageKey = 1;
optional MessageKey originalMessageKey = 2;
@@ -3460,6 +5036,7 @@ message Message {
STATUS_ADD_YOURS = 1;
STATUS_RESHARE = 2;
STATUS_QUESTION_ANSWER_RESHARE = 3;
+ STATUS_GROUP_STATUS_REPLY = 4;
}
}
@@ -3509,7 +5086,8 @@ message Message {
optional bool isAiSticker = 20;
optional bool isLottie = 21;
optional string accessibilityLabel = 22;
- optional Message.MediaKeyDomain mediaKeyDomain = 23;
+ optional int32 premium = 24;
+ optional string emojis = 25;
}
message StickerPackMessage {
@@ -3542,6 +5120,7 @@ message Message {
optional string accessibilityLabel = 4;
optional bool isLottie = 5;
optional string mimetype = 6;
+ optional int32 premium = 7;
}
enum StickerPackOrigin {
@@ -3645,7 +5224,6 @@ message Message {
optional uint64 motionPhotoPresentationOffsetMs = 29;
optional string metadataUrl = 30;
optional VideoSourceType videoSourceType = 31;
- optional Message.MediaKeyDomain mediaKeyDomain = 32;
enum Attribution {
NONE = 0;
GIPHY = 1;
@@ -3664,7 +5242,7 @@ message MessageAddOn {
optional Message messageAddOn = 2;
optional int64 senderTimestampMs = 3;
optional int64 serverTimestampMs = 4;
- optional WebMessageInfo.Status status = 5;
+ optional WebMessageInfo.Status status = 5 [default = PENDING];
optional MessageAddOnContextInfo addOnContextInfo = 6;
optional MessageKey messageAddOnKey = 7;
optional LegacyMessage legacyMessage = 8;
@@ -3707,6 +5285,7 @@ message MessageAssociation {
STATUS_ADD_YOURS_DIWALI = 17;
STATUS_REACTION = 18;
HEVC_VIDEO_DUAL_UPLOAD = 19;
+ POLL_ADD_OPTION = 20;
}
}
@@ -3727,6 +5306,9 @@ message MessageContextInfo {
optional LimitSharing limitSharingV2 = 14;
repeated ThreadID threadId = 15;
optional WebLinkRenderConfig weblinkRenderConfig = 16;
+ optional bytes teeBotMetadata = 17;
+ optional NonE2EEAttestation accountEncryptionAttestation = 18;
+ optional bytes associatedPrimaryIdentityKey = 19;
enum MessageAddonExpiryType {
STATIC = 1;
DEPENDENT_ON_PARENT = 2;
@@ -3746,6 +5328,194 @@ message MessageSecretMessage {
optional bytes encPayload = 3;
}
+message MessageText {
+ optional string text = 1;
+ repeated string mentionedJid = 2;
+ repeated Command commands = 3;
+ repeated Mention mentions = 4;
+}
+
+message MessagingMailboxPublicData {
+ required bytes epochHead = 1;
+ required bytes deviceRosterHash = 2;
+ required uint64 sequenceNumber = 3;
+ required bytes sigPk = 4;
+ required bytes encPk = 5;
+ required bytes authPk = 6;
+}
+
+message MinosClientConfig {
+ required int32 preferredMessageEncryptionVersion = 1;
+ required int32 preferredMekEncryptionVersion = 2;
+}
+
+message MinosCommand {
+ oneof commandInput {
+ MinosEncryptAndSignMessageInput encryptAndSignMessage = 1;
+ MinosDecryptAndVerifyMessageInput decryptAndVerifyMessage = 2;
+ GenerateMekInput generateMek = 3;
+ GenerateMekRosterHashInput generateMekRosterHash = 4;
+ EncryptMekForDistributionInput encryptMekForDistribution = 5;
+ DecryptMekForDistributionInput decryptMekForDistribution = 6;
+ EncryptMeksForDistributionFromTransportSenderInput encryptMeksForDistributionFromTransportSender = 7;
+ DecryptMekForDistributionFromTransportSenderInput decryptMekForDistributionFromTransportSender = 8;
+ WrapTransportSigningPublicKeyInput wrapTransportSigningPublicKey = 9;
+ WrapTransportSigningSecretKeyInput wrapTransportSigningSecretKey = 10;
+ DeriveMailboxSigningKeypairInput deriveMailboxSigningKeypair = 11;
+ DeriveMailboxEncryptionKeypairInput deriveMailboxEncryptionKeypair = 12;
+ DeriveMailboxAuthKeypairInput deriveMailboxAuthKeypair = 13;
+ DeriveAttachmentAccessTokenSecretInput deriveAttachmentAccessTokenSecret = 14;
+ DeriveAttachmentPrimaryKeySecretInput deriveAttachmentPrimaryKeySecret = 15;
+ MinosOpenInitialEpochInput minosOpenInitialEpoch = 16;
+ MinosOpenEpochInput minosOpenEpoch = 17;
+ MinosValidateEpochInput minosValidateEpoch = 18;
+ MinosVerifySingleEpochInput minosVerifySingleEpoch = 19;
+ MinosThreadIdFromOneToOneThreadInput minosThreadIdFromOneToOneThread = 20;
+ MinosThreadIdFromActThreadIdInput minosThreadIdFromActThreadId = 21;
+ MandrakeOpenEpochInput mandrakeOpenEpoch = 22;
+ MandrakeEncryptMekInput mandrakeEncryptMek = 23;
+ MandrakeDecryptMekInput mandrakeDecryptMek = 24;
+ MandrakeOpenInitialEpochInput mandrakeOpenInitialEpoch = 25;
+ MandrakeValidateNewMmkFromMailboxInput mandrakeValidateNewMmkFromMailbox = 27;
+ MandrakeValidateNewMmkFromDetachedDeviceInput mandrakeValidateNewMmkFromDetachedDevice = 28;
+ DeriveMessagingMailboxKeypairsInput deriveMessagingMailboxKeypairs = 29;
+ DecryptSelfMmkDistributionInput decryptSelfMmkDistribution = 30;
+ }
+}
+
+message MinosDecryptAndVerifyMessageInput {
+ required bytes transportSigningPk = 1;
+ required bytes mek = 2;
+ required bytes encryptedMessageCiphertext = 3;
+ required bytes encryptedMessageSignature = 4;
+ required MinosMessageMetadata metadata = 5;
+ optional int32 messageEncryptionVersion = 6;
+ optional MinosClientConfig conf = 7;
+}
+
+message MinosDecryptAndVerifyMessageResult {
+ oneof result {
+ MinosDecryptAndVerifyMessageSuccess success = 1;
+ string errorMessage = 2;
+ }
+}
+
+message MinosDecryptAndVerifyMessageSuccess {
+ required bytes plaintext = 1;
+}
+
+message MinosEncryptAndSignMessageInput {
+ required bytes transportSigningSk = 1;
+ required bytes mek = 2;
+ required bytes plaintext = 3;
+ required MinosMessageMetadata metadata = 4;
+ optional bytes transportSigningPk = 5;
+ optional MinosClientConfig conf = 6;
+}
+
+message MinosEncryptAndSignMessageResult {
+ required bytes ciphertext = 1;
+ required bytes signature = 2;
+ required int32 version = 3;
+}
+
+message MinosMessageMetadata {
+ required bytes mekId = 1;
+ required uint64 timestamp = 2;
+ required string messageId = 3;
+ required bytes threadId = 4;
+}
+
+message MinosOpenEpochInput {
+ required string userFbid = 1;
+ required uint64 epochNumber = 2;
+ required bytes exportRootKey = 3;
+ required bytes previousExportRootKey = 4;
+ required uint64 previousEpochNumber = 5;
+ required bytes previousEpochHead = 6;
+}
+
+message MinosOpenEpochResult {
+ required MinosSignedEpoch minosSignedEpoch = 1;
+}
+
+message MinosOpenInitialEpochInput {
+ required string userFbid = 1;
+ required uint64 epochNumber = 2;
+ required bytes exportRootKey = 3;
+}
+
+message MinosOpenInitialEpochResult {
+ required MinosSignedEpoch minosSignedEpoch = 1;
+}
+
+message MinosSignedEpoch {
+ required EpochPublicData epochPublicData = 1;
+ required EpochSignatures signatures = 2;
+ required bytes epochHead = 3;
+}
+
+message MinosThreadIdFromActThreadIdInput {
+ required string actThreadId = 1;
+}
+
+message MinosThreadIdFromActThreadIdResult {
+ required bytes threadId = 1;
+}
+
+message MinosThreadIdFromOneToOneThreadInput {
+ required string actThreadId = 1;
+ required string selfFbid = 2;
+}
+
+message MinosThreadIdFromOneToOneThreadResult {
+ required bytes threadId = 1;
+}
+
+message MinosValidateEpochInput {
+ required EpochPublicData epochPublicData = 1;
+ required EpochPublicData previousEpochPublicData = 2;
+ required EpochSignatures signatures = 3;
+}
+
+message MinosValidateEpochResult {
+ oneof result {
+ bool valid = 1;
+ string errorMessage = 2;
+ }
+}
+
+message MinosVerifySingleEpochInput {
+ required EpochPublicData epochPublicData = 1;
+ required bytes signature = 2;
+}
+
+message MinosVerifySingleEpochResult {
+ required bool valid = 1;
+}
+
+message MmkDistribution {
+ repeated MmkDistributionToDetachedDevice toDetachedDevices = 1;
+ required MmkDistributionToMailbox toMailbox = 2;
+ required uint64 version = 3;
+}
+
+message MmkDistributionToDetachedDevice {
+ required bytes encryptedMmk = 1;
+ required bytes recipDeviceHash = 2;
+}
+
+message MmkDistributionToMailbox {
+ required bytes encryptedMmk = 1;
+ required bytes recipMailboxHeadHash = 2;
+}
+
+message MmkFromDetachedDevice {
+ required MessagingMailboxPublicData mmk = 1;
+ required DetachedDevicePublicData fromDetachedDevice = 2;
+ required MerkleMembershipProof membershipProof = 3;
+}
+
message Money {
optional int64 value = 1;
optional uint32 offset = 2;
@@ -3796,6 +5566,18 @@ message MsgOpaqueData {
optional bool eventIsScheduledCall = 44;
optional bool eventExtraGuestsAllowed = 45;
optional bytes plainProtobufBytes = 43;
+ optional string quarantineExtractedText = 48;
+ optional int64 pollEndTime = 49;
+ optional bool pollHideVoterNames = 50;
+ optional bool pollAllowAddOption = 52;
+ optional string sharableEventInviteId = 53;
+ optional string sharableEventInviteTitle = 54;
+ optional int64 sharableEventInviteStartTime = 55;
+ optional int64 sharableEventInviteEndTime = 56;
+ optional string sharableEventInviteCaption = 57;
+ optional bool sharableEventInviteIsCanceled = 58;
+ optional bytes sharableEventInviteJpegThumbnail = 59;
+ optional string sharableEventInviteCallLink = 60;
message EventLocation {
optional double degreesLatitude = 1;
optional double degreesLongitude = 2;
@@ -3907,6 +5689,21 @@ enum MutationProps {
AI_THREAD_RENAME_ACTION = 76;
INTERACTIVE_MESSAGE_ACTION = 77;
SETTINGS_SYNC_ACTION = 78;
+ OUT_CONTACT_ACTION = 79;
+ NCT_SALT_SYNC_ACTION = 80;
+ BUSINESS_BROADCAST_CAMPAIGN_ACTION = 81;
+ BUSINESS_BROADCAST_INSIGHTS_ACTION = 82;
+ CUSTOMER_DATA_ACTION = 83;
+ SUBSCRIPTIONS_SYNC_V2_ACTION = 84;
+ THREAD_PIN_ACTION = 85;
+ AUTO_ORGANIZE_BUSINESS_CHAT_SETTING = 86;
+ BIZ_AI_SETTINGS_NUDGE_ACTION = 87;
+ COEX_V2_VERSION_ACTION = 88;
+ WASA_ROOT_SECRET_ACTION = 89;
+ BUBBLE_LOCK_MESSAGE_ACTION = 90;
+ LABEL_SUBLIST_ACTION = 91;
+ DEVICE_CAPABILITIES_V2 = 92;
+ CTWA_MESSAGE_RECEIVED_ACTION = 93;
SHARE_OWN_PN = 10001;
BUSINESS_BROADCAST_ACTION = 10002;
AI_THREAD_DELETE_ACTION = 10003;
@@ -3923,6 +5720,15 @@ message NoiseCertificate {
}
}
+message NonE2EEAttestation {
+ optional AccountType accountType = 1;
+ enum AccountType {
+ E2EE = 0;
+ HYBRID_E2EE = 1;
+ NON_E2EE = 2;
+ }
+}
+
message NotificationMessageInfo {
optional MessageKey key = 1;
optional Message message = 2;
@@ -3939,6 +5745,16 @@ message NotificationSettings {
optional string callVibrate = 6;
}
+message OrfThreadIdInput {
+ required bytes orfClientState = 1;
+ required string threadId = 2;
+}
+
+message OrfThreadIdOutput {
+ optional bytes orfThreadId = 1;
+ optional string error = 2;
+}
+
message PairingRequest {
optional bytes companionPublicKey = 1;
optional bytes companionIdentityKey = 2;
@@ -4114,6 +5930,11 @@ message Point {
message PollAdditionalMetadata {
optional bool pollInvalidated = 1;
+ repeated PollNameHashHistoryEntry pollNameHashHistory = 2;
+ message PollNameHashHistoryEntry {
+ optional string editStanzaId = 1;
+ optional bytes pollNameHash = 2;
+ }
}
message PollEncValue {
@@ -4127,6 +5948,7 @@ message PollUpdate {
optional int64 senderTimestampMs = 3;
optional int64 serverTimestampMs = 4;
optional bool unread = 5;
+ optional Message.PollUpdateMessageMetadata metadata = 6;
}
message PreKeyRecordStructure {
@@ -4142,6 +5964,8 @@ message PreKeySignalMessage {
optional bytes baseKey = 2;
optional bytes identityKey = 3;
optional bytes message = 4;
+ optional uint32 kyberPreKeyId = 7;
+ optional bytes kyberCiphertext = 8;
}
message PremiumMessageInfo {
@@ -4185,6 +6009,41 @@ message Pushname {
optional string pushname = 2;
}
+message QP {
+ enum ClauseType {
+ AND = 1;
+ OR = 2;
+ NOR = 3;
+ }
+ message Filter {
+ required string filterName = 1;
+ repeated QP.FilterParameters parameters = 2;
+ optional QP.FilterResult filterResult = 3;
+ required QP.FilterClientNotSupportedConfig clientNotSupportedConfig = 4;
+ }
+
+ message FilterClause {
+ required QP.ClauseType clauseType = 1;
+ repeated QP.FilterClause clauses = 2;
+ repeated QP.Filter filters = 3;
+ }
+
+ enum FilterClientNotSupportedConfig {
+ PASS_BY_DEFAULT = 1;
+ FAIL_BY_DEFAULT = 2;
+ }
+ message FilterParameters {
+ optional string key = 1;
+ optional string value = 2;
+ }
+
+ enum FilterResult {
+ TRUE = 1;
+ FALSE = 2;
+ UNKNOWN = 3;
+ }
+}
+
message QuarantinedMessage {
optional bytes originalData = 1;
optional string extractedText = 2;
@@ -4209,7 +6068,7 @@ message RecordStructure {
}
message Reportable {
- optional uint32 minVersion = 1;
+ optional uint32 minVersion = 1 [default = 1];
optional uint32 maxVersion = 2;
optional uint32 notReportableMinVersion = 3;
optional bool never = 4;
@@ -4217,6 +6076,53 @@ message Reportable {
message ReportingTokenInfo {
optional bytes reportingTag = 1;
+ optional uint64 reportingTagTimestamp = 2;
+}
+
+message RotateEpochInput {
+ required bytes currentEpochRootKey = 1;
+ required bytes currentEpochAnonId = 2;
+ required uint64 currentEpochFbid = 3;
+ required bytes epochStoragePrivateKey = 4;
+ repeated RotateEpochMemberInput members = 5;
+}
+
+message RotateEpochMemberEdge {
+ optional uint64 deviceId = 1;
+ optional bytes encryptedEpochKey = 2;
+ optional bytes deviceEpochHmac = 3;
+}
+
+message RotateEpochMemberInput {
+ required uint64 deviceId = 1;
+ required bytes epochStoragePublicKey = 2;
+ required bytes devicePublicKey = 3;
+}
+
+message RotateEpochOutput {
+ optional bytes newEpochRootKey = 1;
+ optional uint64 newEpochAnonId = 2;
+ optional uint64 newEpochFbid = 8;
+ optional bytes epochAnonId = 3;
+ optional BackwardEdge backwardEdge = 4;
+ repeated RotateEpochMemberEdge memberEdges = 5;
+ optional bytes epochRootKeyFingerprint = 6;
+ optional string error = 7;
+}
+
+message RoutingInfo {
+ repeated int32 regionId = 1;
+ repeated int32 clusterId = 2;
+ optional int32 taskId = 3 [default = -1];
+ optional bool debug = 4 [default = false];
+ optional bool tcpBbr = 5 [default = false];
+ optional bool tcpKeepalive = 6;
+}
+
+message ScheduledMessageMetadata {
+ optional string revealKeyId = 1;
+ optional bytes revealKey = 2;
+ optional uint64 scheduledTime = 3;
}
message SenderKeyDistributionMessage {
@@ -4307,6 +6213,8 @@ message SessionStructure {
optional uint32 preKeyId = 1;
optional int32 signedPreKeyId = 3;
optional bytes baseKey = 2;
+ optional uint32 kyberPreKeyId = 4;
+ optional bytes kyberCiphertext = 5;
}
}
@@ -4327,6 +6235,12 @@ message SignalMessage {
optional bytes ciphertext = 4;
}
+message SignedMmkDistributionFromMailbox {
+ required MmkDistribution mmkDistribution = 1;
+ required bytes signature = 2;
+ required MessagingMailboxPublicData fromMailbox = 3;
+}
+
message SignedPreKeyRecordStructure {
optional uint32 id = 1;
optional bytes publicKey = 2;
@@ -4371,6 +6285,9 @@ message StatusAttribution {
APPLE_MUSIC = 8;
SHARECHAT = 9;
GOOGLE_PHOTOS = 10;
+ SOUNDCLOUD = 11;
+ SHAZAM = 12;
+ PICSART = 13;
}
}
@@ -4426,6 +6343,10 @@ message StatusAttribution {
RL_ATTRIBUTION = 6;
AI_CREATED = 7;
LAYOUTS = 8;
+ NEWSLETTER_STATUS = 9;
+ STATUS_CLOSE_SHARING = 10;
+ PAID_PARTNERSHIP = 11;
+ USERNAME_STATUS = 12;
}
}
@@ -4455,6 +6376,11 @@ message StickerMetadata {
optional bool isAvatarSticker = 14;
}
+message SubProtocol {
+ optional bytes payload = 1;
+ optional int32 version = 2;
+}
+
message SyncActionData {
optional bytes index = 1;
optional SyncActionValue value = 2;
@@ -4532,9 +6458,24 @@ message SyncActionValue {
optional AiThreadRenameAction aiThreadRenameAction = 76;
optional InteractiveMessageAction interactiveMessageAction = 77;
optional SettingsSyncAction settingsSyncAction = 78;
+ optional OutContactAction outContactAction = 79;
+ optional NctSaltSyncAction nctSaltSyncAction = 80;
+ optional BusinessBroadcastCampaignAction businessBroadcastCampaignAction = 81;
+ optional BusinessBroadcastInsightsAction businessBroadcastInsightsAction = 82;
+ optional CustomerDataAction customerDataAction = 83;
+ optional SubscriptionsSyncV2Action subscriptionsSyncV2Action = 84;
+ optional ThreadPinAction threadPinAction = 85;
+ optional AutoOrganizeBusinessChatSetting autoOrganizeBusinessChatSetting = 86;
+ optional BizAISettingsNudgeAction bizAiSettingsNudgeAction = 87;
+ optional CoexV2VersionAction coexV2VersionAction = 88;
+ optional WASARootSecretAction wasaRootSecretAction = 89;
+ optional BubbleLockMessageAction bubbleLockMessageAction = 90;
+ optional LabelSublistAction labelSublistAction = 91;
+ optional DeviceCapabilities deviceCapabilitiesV2 = 92;
+ optional CtwaMessageReceivedAction ctwaMessageReceivedAction = 93;
message AgentAction {
optional string name = 1;
- optional int32 deviceID = 2;
+ optional int32 deviceId = 2;
optional bool isDeleted = 3;
}
@@ -4551,6 +6492,10 @@ message SyncActionValue {
optional SyncActionValue.SyncActionMessageRange messageRange = 2;
}
+ message AutoOrganizeBusinessChatSetting {
+ optional bool autoOrganize = 1;
+ }
+
message AvatarUpdatedAction {
optional AvatarEventType eventType = 1;
repeated SyncActionValue.StickerAction recentAvatarStickers = 2;
@@ -4561,6 +6506,21 @@ message SyncActionValue {
}
}
+ message BizAISettingsNudgeAction {
+ optional BizAISettingsCategory category = 1;
+ optional int64 version = 2;
+ optional int64 updatedAtMs = 3;
+ enum BizAISettingsCategory {
+ UNKNOWN = 0;
+ INSTRUCTIONS = 1;
+ RESPONSE_SETTINGS = 2;
+ EXAMPLE_RESPONSES = 3;
+ KNOWLEDGE = 4;
+ LEAD_GEN = 5;
+ HANDOFF_REMOVAL_TIMING = 6;
+ }
+ }
+
message BotWelcomeRequestAction {
optional bool isSent = 1;
}
@@ -4570,15 +6530,48 @@ message SyncActionValue {
optional string pnJid = 2;
}
+ message BubbleLockMessageAction {
+ optional bool locked = 1;
+ }
+
message BusinessBroadcastAssociationAction {
optional bool deleted = 1;
}
+ message BusinessBroadcastCampaignAction {
+ optional int32 deviceId = 1;
+ optional string adId = 2;
+ optional string name = 3;
+ optional string msgId = 4;
+ optional string broadcastJid = 5;
+ optional int32 reservedQuota = 6;
+ optional int64 scheduledTimestamp = 7;
+ optional int64 createTimestamp = 8;
+ optional SyncActionValue.BusinessBroadcastCampaignStatus status = 9;
+ }
+
+ enum BusinessBroadcastCampaignStatus {
+ DRAFT = 1;
+ SCHEDULED = 2;
+ PROCESSING = 3;
+ FAILED = 4;
+ SENT = 5;
+ }
+ message BusinessBroadcastInsightsAction {
+ optional int32 recipientCount = 1;
+ optional int32 deliveredCount = 2;
+ optional int32 readCount = 3;
+ optional int32 repliedCount = 4;
+ optional int32 quickReplyCount = 5;
+ }
+
message BusinessBroadcastListAction {
optional bool deleted = 1;
repeated SyncActionValue.BroadcastListParticipant participants = 2;
optional string listName = 3;
repeated string labelIds = 4;
+ optional string audienceExpression = 5;
+ optional string customAudienceFbid = 6;
}
message CallLogAction {
@@ -4586,7 +6579,7 @@ message SyncActionValue {
}
message ChatAssignmentAction {
- optional string deviceAgentID = 1;
+ optional string deviceAgentId = 1;
}
message ChatAssignmentOpenedStatusAction {
@@ -4597,6 +6590,10 @@ message SyncActionValue {
optional SyncActionValue.SyncActionMessageRange messageRange = 1;
}
+ message CoexV2VersionAction {
+ optional uint64 version = 1;
+ }
+
message ContactAction {
optional string fullName = 1;
optional string firstName = 2;
@@ -4606,6 +6603,10 @@ message SyncActionValue {
optional string username = 6;
}
+ message CtwaMessageReceivedAction {
+ optional bool isCtwaMessageReceived = 1;
+ }
+
message CtwaPerCustomerDataSharingAction {
optional bool isCtwaPerCustomerDataSharingEnabled = 1;
}
@@ -4626,6 +6627,20 @@ message SyncActionValue {
repeated SyncActionValue.CustomPaymentMethod customPaymentMethods = 1;
}
+ message CustomerDataAction {
+ optional string chatJid = 1;
+ optional int32 contactType = 2;
+ optional string email = 3;
+ optional string altPhoneNumbers = 4;
+ optional int64 birthday = 5;
+ optional string address = 6;
+ optional int32 acquisitionSource = 7;
+ optional int32 leadStage = 8;
+ optional int64 lastOrder = 9;
+ optional int64 createdAt = 10;
+ optional int64 modifiedAt = 11;
+ }
+
message DeleteChatAction {
optional SyncActionValue.SyncActionMessageRange messageRange = 1;
}
@@ -4657,6 +6672,7 @@ message SyncActionValue {
message InteractiveMessageAction {
required InteractiveMessageActionMode type = 1;
+ optional string agmId = 2;
enum InteractiveMessageActionMode {
DISABLE_CTA = 1;
}
@@ -4668,6 +6684,7 @@ message SyncActionValue {
message LabelAssociationAction {
optional bool labeled = 1;
+ optional string modelMetaData = 2;
}
message LabelEditAction {
@@ -4691,6 +6708,14 @@ message SyncActionValue {
SERVER_ASSIGNED = 7;
DRAFTED = 8;
AI_HANDOFF = 9;
+ CHANNELS = 10;
+ AI_RESPONDING = 11;
+ ARCHIVED = 12;
+ LOCKED = 13;
+ INVITES = 14;
+ THIRD_PARTY = 15;
+ LEAD = 16;
+ MENTIONS_AND_REPLIES = 17;
}
}
@@ -4698,6 +6723,10 @@ message SyncActionValue {
repeated int32 sortedLabelIds = 1;
}
+ message LabelSublistAction {
+ optional int32 subListId = 1;
+ }
+
message LidContactAction {
optional string fullName = 1;
optional string firstName = 2;
@@ -4714,11 +6743,17 @@ message SyncActionValue {
message MaibaAIFeaturesControlAction {
optional MaibaAIFeatureStatus aiFeatureStatus = 1;
+ optional MaibaAIReplyMode aiReplyMode = 2;
enum MaibaAIFeatureStatus {
ENABLED = 0;
ENABLED_HAS_LEARNING = 1;
DISABLED = 2;
}
+ enum MaibaAIReplyMode {
+ MUTED = 0;
+ AI_AGENT = 1;
+ SUGGESTIONS = 2;
+ }
}
message MarkChatAsReadAction {
@@ -4763,6 +6798,11 @@ message SyncActionValue {
optional bool muted = 1;
optional int64 muteEndTimestamp = 2;
optional bool autoMuted = 3;
+ optional int64 muteEveryoneMentionEndTimestamp = 4;
+ }
+
+ message NctSaltSyncAction {
+ optional bytes salt = 1;
}
message NewsletterSavedInterestsAction {
@@ -4795,6 +6835,11 @@ message SyncActionValue {
optional bool acknowledged = 1;
}
+ message OutContactAction {
+ optional string fullName = 1;
+ optional string firstName = 2;
+ }
+
message PaymentInfoAction {
optional string cpi = 1;
}
@@ -4854,6 +6899,7 @@ message SyncActionValue {
repeated string keywords = 3;
optional int32 count = 4;
optional bool deleted = 5;
+ repeated string associatedLabelIds = 6;
}
message RecentEmojiWeightsAction {
@@ -4888,12 +6934,28 @@ message SyncActionValue {
optional bool isDocumentsAutodownloadEnabled = 21;
optional bool disableLinkPreviews = 22;
optional int32 notificationToneId = 23;
+ optional MediaQualitySetting mediaUploadQuality = 24;
+ optional bool isSpellCheckEnabled = 25;
+ optional bool isEnterToSendEnabled = 26;
+ optional bool isGroupMessageNotificationEnabled = 27;
+ optional bool isGroupReactionsNotificationEnabled = 28;
+ optional bool isStatusNotificationEnabled = 29;
+ optional int32 statusNotificationToneId = 30;
+ optional bool shouldPlaySoundForCallNotification = 31;
+ optional string chatThemeId = 32;
+ optional string colorSchemeId = 33;
+ optional string stockWallpaperImageId = 34;
enum DisplayMode {
DISPLAY_MODE_UNKNOWN = 0;
ALWAYS = 1;
NEVER = 2;
ONLY_WHEN_APP_IS_OPEN = 3;
}
+ enum MediaQualitySetting {
+ MEDIA_QUALITY_UNKNOWN = 0;
+ STANDARD = 1;
+ HD = 2;
+ }
enum SettingKey {
SETTING_KEY_UNKNOWN = 0;
START_AT_LOGIN = 1;
@@ -4919,6 +6981,17 @@ message SyncActionValue {
IS_DOCUMENTS_AUTODOWNLOAD_ENABLED = 21;
DISABLE_LINK_PREVIEWS = 22;
NOTIFICATION_TONE_ID = 23;
+ MEDIA_UPLOAD_QUALITY = 24;
+ IS_SPELL_CHECK_ENABLED = 25;
+ IS_ENTER_TO_SEND_ENABLED = 26;
+ IS_GROUP_MESSAGE_NOTIFICATION_ENABLED = 27;
+ IS_GROUP_REACTIONS_NOTIFICATION_ENABLED = 28;
+ IS_STATUS_NOTIFICATION_ENABLED = 29;
+ STATUS_NOTIFICATION_TONE_ID = 30;
+ SHOULD_PLAY_SOUND_FOR_CALL_NOTIFICATION = 31;
+ CHAT_THEME_ID = 32;
+ COLOR_SCHEME_ID = 33;
+ STOCK_WALLPAPER_IMAGE_ID = 34;
}
enum SettingPlatform {
PLATFORM_UNKNOWN = 0;
@@ -4940,11 +7013,24 @@ message SyncActionValue {
message StatusPrivacyAction {
optional StatusDistributionMode mode = 1;
repeated string userJid = 2;
+ optional bool shareToFb = 3;
+ optional bool shareToIg = 4;
+ repeated CustomList customLists = 5;
+ repeated StatusDistributionMode modes = 6;
+ message CustomList {
+ optional string listId = 1;
+ optional string name = 2;
+ optional string emoji = 3;
+ optional bool isSelected = 4;
+ repeated string userJid = 5;
+ }
+
enum StatusDistributionMode {
ALLOW_LIST = 0;
DENY_LIST = 1;
CONTACTS = 2;
CLOSE_FRIENDS = 3;
+ CUSTOM_LIST = 4;
}
}
@@ -4970,6 +7056,28 @@ message SyncActionValue {
optional int64 expirationDate = 3;
}
+ message SubscriptionsSyncV2Action {
+ repeated SubscriptionInfo subscriptions = 1;
+ repeated PaidFeature paidFeature = 2;
+ message PaidFeature {
+ optional string name = 1;
+ optional bool enabled = 2;
+ optional int32 limit = 3;
+ optional int64 expirationTime = 4;
+ }
+
+ message SubscriptionInfo {
+ optional string id = 1;
+ optional int32 tier = 2;
+ optional string status = 3;
+ optional int64 startTime = 4;
+ optional int64 endTime = 5;
+ optional bool isPlatformChanged = 6;
+ optional string source = 7;
+ optional int64 creationTime = 8;
+ }
+ }
+
message SyncActionMessage {
optional MessageKey key = 1;
optional int64 timestamp = 2;
@@ -4981,6 +7089,10 @@ message SyncActionValue {
repeated SyncActionValue.SyncActionMessage messages = 3;
}
+ message ThreadPinAction {
+ optional bool pinned = 1;
+ }
+
message TimeFormatAction {
optional bool isTwentyFourHourFormatEnabled = 1;
}
@@ -5005,6 +7117,20 @@ message SyncActionValue {
}
}
+ message WASARootSecretAction {
+ repeated RootSecretEntry secrets = 1;
+ message RootSecretEntry {
+ optional string id = 1;
+ optional bytes rootSecret = 2;
+ optional int64 epoch = 3;
+ optional Status status = 4;
+ enum Status {
+ INACTIVE = 0;
+ ACTIVE = 1;
+ }
+ }
+ }
+
message WaffleAccountLinkStateAction {
optional AccountLinkState linkState = 2;
enum AccountLinkState {
@@ -5048,6 +7174,12 @@ message SyncdPatch {
optional bytes clientDebugData = 9;
}
+message SyncdPlainTextRecord {
+ optional SyncActionData value = 1;
+ optional bytes keyId = 2;
+ optional bytes mac = 3;
+}
+
message SyncdRecord {
optional SyncdIndex index = 1;
optional SyncdValue value = 2;
@@ -5061,6 +7193,13 @@ message SyncdSnapshot {
optional KeyId keyId = 4;
}
+message SyncdSnapshotRecovery {
+ optional SyncdVersion version = 1;
+ optional string collectionName = 2;
+ repeated SyncdPlainTextRecord mutationRecords = 3;
+ optional bytes collectionLthash = 4;
+}
+
message SyncdValue {
optional bytes blob = 1;
}
@@ -5107,6 +7246,17 @@ message ThreadID {
}
}
+message UnCountedAssociatedMessageList {
+ repeated WebMessageInfo messages = 1;
+ optional MessageKey parentMessage = 2;
+ optional MessageAssociation.AssociationType associationType = 3;
+}
+
+message UnCountedAssociatedMessageListWithMessageBytes {
+ repeated WebMessageInfoWithMessageBytes messages = 1;
+ optional MessageKey parentMessage = 2;
+}
+
message UrlTrackingMap {
repeated UrlTrackingMapElement urlTrackingMapElements = 1;
message UrlTrackingMapElement {
@@ -5165,9 +7315,20 @@ message VerifiedNameCertificate {
}
}
+message VirtualDeviceOutput {
+ required bytes vdId = 1;
+ required bytes vdPublicKey = 2;
+ required bytes vdEpochStoragePublicKey = 3;
+ required bytes vdEpochStoragePublicKeySig = 4;
+ required bytes ocmfRotationToken = 5;
+ required bytes deviceEpochHmac = 6;
+ required EncryptedSecretValuesOutput encryptedSecretValues = 7;
+}
+
message WallpaperSettings {
optional string filename = 1;
optional uint32 opacity = 2;
+ optional bool isGenAi = 3;
}
message WebFeatures {
@@ -5232,7 +7393,7 @@ message WebMessageInfo {
required MessageKey key = 1;
optional Message message = 2;
optional uint64 messageTimestamp = 3;
- optional Status status = 4;
+ optional Status status = 4 [default = PENDING];
optional string participant = 5;
optional uint64 messageC2STimestamp = 6;
optional bool ignore = 16;
@@ -5296,6 +7457,11 @@ message WebMessageInfo {
optional InteractiveMessageAdditionalMetadata interactiveMessageAdditionalMetadata = 76;
optional QuarantinedMessage quarantinedMessage = 77;
optional uint32 nonJidMentions = 78;
+ optional string hsmTag = 79;
+ optional uint64 ephemeralExpirationTimestamp = 80;
+ optional ScheduledMessageMetadata scheduledMessageMetadata = 81;
+ optional string decisionId = 82;
+ repeated string decisionSources = 83;
enum BizPrivacyStatus {
E2EE = 0;
FB = 2;
@@ -5535,12 +7701,39 @@ message WebMessageInfo {
GROUP_MEMBER_SHARE_GROUP_HISTORY_MODE = 221;
GROUP_OPEN_BOT_ADDED = 222;
GROUP_TEE_BOT_ADDED = 223;
+ CONTACT_INFO = 224;
+ SCHEDULED_MESSAGE_CREATED = 225;
+ IDENTITY_TRUST_MARKED = 226;
+ IDENTITY_TRUST_UNMARKED = 227;
+ IDENTITY_TRUST_REVOKED = 228;
+ CTWA_CONSUMER_DISCLOSURE = 230;
}
}
+message WebMessageInfoWithMessageBytes {
+ optional MessageKey key = 1;
+ optional bytes messageBytes = 2;
+}
+
message WebNotificationsInfo {
optional uint64 timestamp = 2;
optional uint32 unreadChats = 3;
optional uint32 notifyMessageCount = 4;
repeated WebMessageInfo notifyMessages = 5;
}
+
+message WrapTransportSigningPublicKeyInput {
+ required bytes keyBytes = 1;
+}
+
+message WrapTransportSigningPublicKeyResult {
+ required bytes prefixedKey = 1;
+}
+
+message WrapTransportSigningSecretKeyInput {
+ required bytes keyBytes = 1;
+}
+
+message WrapTransportSigningSecretKeyResult {
+ required bytes prefixedKey = 1;
+}