From 972912c0409f2b24e57a15f43ab84b447a9b346b Mon Sep 17 00:00:00 2001 From: jarvis2f <137974272+jarvis2f@users.noreply.github.com> Date: Sun, 15 Dec 2024 19:46:49 +0800 Subject: [PATCH] =?UTF-8?q?=F0=9F=8E=89=20First=20commit.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .dockerignore | 150 + .env.example | 8 + .github/workflows/docker-publish.yml | 74 + .gitignore | 17 + BUILD_TDLIB.md | 70 + Dockerfile | 102 + LICENSE | 21 + README.md | 165 + VERSION | 1 + api/build.gradle | 83 + api/gradle/wrapper/gradle-wrapper.jar | Bin 0 -> 60756 bytes api/gradle/wrapper/gradle-wrapper.properties | 6 + api/gradlew | 234 + api/gradlew.bat | 89 + api/settings.gradle | 2 + .../main/java/org/drinkless/tdlib/Client.java | 259 + .../main/java/org/drinkless/tdlib/TdApi.java | 54183 ++++++++++++++++ .../telegram/files/AutoDownloadVerticle.java | 289 + api/src/main/java/telegram/files/Config.java | 45 + .../java/telegram/files/DataVerticle.java | 73 + .../main/java/telegram/files/EventEnum.java | 35 + .../java/telegram/files/EventPayload.java | 23 + .../java/telegram/files/HttpVerticle.java | 554 + api/src/main/java/telegram/files/Start.java | 31 + .../main/java/telegram/files/TdApiHelp.java | 439 + .../telegram/files/TelegramUpdateHandler.java | 63 + .../java/telegram/files/TelegramVerticle.java | 632 + .../telegram/files/repository/FileRecord.java | 99 + .../files/repository/FileRepository.java | 31 + .../files/repository/SettingAutoRecords.java | 66 + .../telegram/files/repository/SettingKey.java | 29 + .../files/repository/SettingRecord.java | 27 + .../files/repository/SettingRepository.java | 16 + .../files/repository/TelegramRecord.java | 31 + .../files/repository/TelegramRepository.java | 18 + .../repository/impl/FileRepositoryImpl.java | 243 + .../impl/SettingRepositoryImpl.java | 103 + .../impl/TelegramRepositoryImpl.java | 77 + api/src/main/resources/logging.properties | 27 + .../java/telegram/files/DataVerticleTest.java | 105 + .../java/telegram/files/TdApiHelpTest.java | 40 + .../telegram/files/TelegramVerticleTest.java | 6 + docker-compose.yaml | 16 + entrypoint.sh | 32 + http-client.env.json | 10 + misc/screenshot.png | Bin 0 -> 939809 bytes misc/update_version.py | 94 + nginx.conf | 42 + request.http | 158 + web/.env.example | 4 + web/.eslintrc.cjs | 43 + web/.gitignore | 46 + web/README.md | 29 + web/components.json | 21 + web/next.config.js | 21 + web/package-lock.json | 11725 ++++ web/package.json | 76 + web/pm2.json | 16 + web/postcss.config.js | 5 + web/prettier.config.js | 4 + web/public/apple-touch-icon.png | Bin 0 -> 2523 bytes web/public/favicon-96x96.png | Bin 0 -> 1377 bytes web/public/favicon.ico | Bin 0 -> 15086 bytes web/public/favicon.svg | 6 + web/public/site.webmanifest | 21 + web/public/web-app-manifest-192x192.png | Bin 0 -> 2773 bytes web/public/web-app-manifest-512x512.png | Bin 0 -> 11554 bytes .../app/account/[accountId]/[chatId]/page.tsx | 17 + web/src/app/account/[accountId]/page.tsx | 11 + web/src/app/layout.tsx | 61 + web/src/app/page.tsx | 16 + web/src/components/account-delete-dialog.tsx | 93 + web/src/components/account-dialog.tsx | 297 + web/src/components/account-list.tsx | 71 + web/src/components/auto-download-button.tsx | 60 + web/src/components/auto-download-dialog.tsx | 130 + web/src/components/chat-select.tsx | 125 + web/src/components/empty-state.tsx | 74 + web/src/components/file-card.tsx | 72 + web/src/components/file-control.tsx | 104 + web/src/components/file-extra.tsx | 88 + web/src/components/file-filters.tsx | 95 + web/src/components/file-list.tsx | 400 + web/src/components/file-not-found.tsx | 109 + web/src/components/file-progress.tsx | 49 + web/src/components/file-statistics.tsx | 181 + web/src/components/file-type-filter.tsx | 63 + web/src/components/header.tsx | 154 + web/src/components/photo-preview.tsx | 146 + web/src/components/settings-dialog.tsx | 199 + web/src/components/spoiled-wrapper.tsx | 28 + web/src/components/swr-provider.tsx | 24 + web/src/components/table-column-filter.tsx | 161 + .../components/table-row-height-switch.tsx | 74 + web/src/components/telegram-icon.tsx | 13 + web/src/components/ui/avatar.tsx | 50 + web/src/components/ui/badge.tsx | 36 + web/src/components/ui/border-beam.tsx | 49 + web/src/components/ui/button.tsx | 58 + web/src/components/ui/card.tsx | 83 + web/src/components/ui/checkbox.tsx | 30 + web/src/components/ui/command.tsx | 153 + web/src/components/ui/dialog.tsx | 122 + web/src/components/ui/dropdown-menu.tsx | 202 + web/src/components/ui/form.tsx | 179 + web/src/components/ui/input-otp.tsx | 71 + web/src/components/ui/input.tsx | 22 + web/src/components/ui/label.tsx | 26 + web/src/components/ui/orbiting-circles.tsx | 63 + web/src/components/ui/popover.tsx | 33 + web/src/components/ui/progress.tsx | 28 + web/src/components/ui/select.tsx | 159 + web/src/components/ui/table.tsx | 120 + web/src/components/ui/tabs.tsx | 55 + web/src/components/ui/toast.tsx | 129 + web/src/components/ui/toaster.tsx | 35 + web/src/components/ui/tooltip.tsx | 32 + web/src/env.js | 46 + web/src/hooks/use-copy-to-clipboard.tsx | 47 + web/src/hooks/use-file-control.tsx | 70 + web/src/hooks/use-file-speed.ts | 100 + web/src/hooks/use-files.ts | 134 + web/src/hooks/use-local-storage.ts | 58 + web/src/hooks/use-settings.tsx | 77 + web/src/hooks/use-telegram-account.tsx | 111 + web/src/hooks/use-telegram-chat.tsx | 97 + web/src/hooks/use-toast.ts | 191 + web/src/hooks/use-websocket.tsx | 163 + web/src/lib/api.ts | 96 + web/src/lib/types.ts | 92 + web/src/lib/utils.ts | 6 + web/src/lib/websocket-types.ts | 31 + web/src/styles/globals.css | 66 + web/tailwind.config.ts | 99 + web/tsconfig.json | 42 + 135 files changed, 77111 insertions(+) create mode 100644 .dockerignore create mode 100644 .env.example create mode 100644 .github/workflows/docker-publish.yml create mode 100644 .gitignore create mode 100644 BUILD_TDLIB.md create mode 100644 Dockerfile create mode 100644 LICENSE create mode 100644 README.md create mode 100644 VERSION create mode 100644 api/build.gradle create mode 100644 api/gradle/wrapper/gradle-wrapper.jar create mode 100644 api/gradle/wrapper/gradle-wrapper.properties create mode 100755 api/gradlew create mode 100644 api/gradlew.bat create mode 100644 api/settings.gradle create mode 100644 api/src/main/java/org/drinkless/tdlib/Client.java create mode 100644 api/src/main/java/org/drinkless/tdlib/TdApi.java create mode 100644 api/src/main/java/telegram/files/AutoDownloadVerticle.java create mode 100644 api/src/main/java/telegram/files/Config.java create mode 100644 api/src/main/java/telegram/files/DataVerticle.java create mode 100644 api/src/main/java/telegram/files/EventEnum.java create mode 100644 api/src/main/java/telegram/files/EventPayload.java create mode 100644 api/src/main/java/telegram/files/HttpVerticle.java create mode 100644 api/src/main/java/telegram/files/Start.java create mode 100644 api/src/main/java/telegram/files/TdApiHelp.java create mode 100644 api/src/main/java/telegram/files/TelegramUpdateHandler.java create mode 100644 api/src/main/java/telegram/files/TelegramVerticle.java create mode 100644 api/src/main/java/telegram/files/repository/FileRecord.java create mode 100644 api/src/main/java/telegram/files/repository/FileRepository.java create mode 100644 api/src/main/java/telegram/files/repository/SettingAutoRecords.java create mode 100644 api/src/main/java/telegram/files/repository/SettingKey.java create mode 100644 api/src/main/java/telegram/files/repository/SettingRecord.java create mode 100644 api/src/main/java/telegram/files/repository/SettingRepository.java create mode 100644 api/src/main/java/telegram/files/repository/TelegramRecord.java create mode 100644 api/src/main/java/telegram/files/repository/TelegramRepository.java create mode 100644 api/src/main/java/telegram/files/repository/impl/FileRepositoryImpl.java create mode 100644 api/src/main/java/telegram/files/repository/impl/SettingRepositoryImpl.java create mode 100644 api/src/main/java/telegram/files/repository/impl/TelegramRepositoryImpl.java create mode 100644 api/src/main/resources/logging.properties create mode 100644 api/src/test/java/telegram/files/DataVerticleTest.java create mode 100644 api/src/test/java/telegram/files/TdApiHelpTest.java create mode 100644 api/src/test/java/telegram/files/TelegramVerticleTest.java create mode 100644 docker-compose.yaml create mode 100644 entrypoint.sh create mode 100644 http-client.env.json create mode 100644 misc/screenshot.png create mode 100644 misc/update_version.py create mode 100644 nginx.conf create mode 100644 request.http create mode 100644 web/.env.example create mode 100644 web/.eslintrc.cjs create mode 100644 web/.gitignore create mode 100644 web/README.md create mode 100644 web/components.json create mode 100644 web/next.config.js create mode 100644 web/package-lock.json create mode 100644 web/package.json create mode 100644 web/pm2.json create mode 100644 web/postcss.config.js create mode 100644 web/prettier.config.js create mode 100644 web/public/apple-touch-icon.png create mode 100644 web/public/favicon-96x96.png create mode 100644 web/public/favicon.ico create mode 100644 web/public/favicon.svg create mode 100644 web/public/site.webmanifest create mode 100644 web/public/web-app-manifest-192x192.png create mode 100644 web/public/web-app-manifest-512x512.png create mode 100644 web/src/app/account/[accountId]/[chatId]/page.tsx create mode 100644 web/src/app/account/[accountId]/page.tsx create mode 100644 web/src/app/layout.tsx create mode 100644 web/src/app/page.tsx create mode 100644 web/src/components/account-delete-dialog.tsx create mode 100644 web/src/components/account-dialog.tsx create mode 100644 web/src/components/account-list.tsx create mode 100644 web/src/components/auto-download-button.tsx create mode 100644 web/src/components/auto-download-dialog.tsx create mode 100644 web/src/components/chat-select.tsx create mode 100644 web/src/components/empty-state.tsx create mode 100644 web/src/components/file-card.tsx create mode 100644 web/src/components/file-control.tsx create mode 100644 web/src/components/file-extra.tsx create mode 100644 web/src/components/file-filters.tsx create mode 100644 web/src/components/file-list.tsx create mode 100644 web/src/components/file-not-found.tsx create mode 100644 web/src/components/file-progress.tsx create mode 100644 web/src/components/file-statistics.tsx create mode 100644 web/src/components/file-type-filter.tsx create mode 100644 web/src/components/header.tsx create mode 100644 web/src/components/photo-preview.tsx create mode 100644 web/src/components/settings-dialog.tsx create mode 100644 web/src/components/spoiled-wrapper.tsx create mode 100644 web/src/components/swr-provider.tsx create mode 100644 web/src/components/table-column-filter.tsx create mode 100644 web/src/components/table-row-height-switch.tsx create mode 100644 web/src/components/telegram-icon.tsx create mode 100644 web/src/components/ui/avatar.tsx create mode 100644 web/src/components/ui/badge.tsx create mode 100644 web/src/components/ui/border-beam.tsx create mode 100644 web/src/components/ui/button.tsx create mode 100644 web/src/components/ui/card.tsx create mode 100644 web/src/components/ui/checkbox.tsx create mode 100644 web/src/components/ui/command.tsx create mode 100644 web/src/components/ui/dialog.tsx create mode 100644 web/src/components/ui/dropdown-menu.tsx create mode 100644 web/src/components/ui/form.tsx create mode 100644 web/src/components/ui/input-otp.tsx create mode 100644 web/src/components/ui/input.tsx create mode 100644 web/src/components/ui/label.tsx create mode 100644 web/src/components/ui/orbiting-circles.tsx create mode 100644 web/src/components/ui/popover.tsx create mode 100644 web/src/components/ui/progress.tsx create mode 100644 web/src/components/ui/select.tsx create mode 100644 web/src/components/ui/table.tsx create mode 100644 web/src/components/ui/tabs.tsx create mode 100644 web/src/components/ui/toast.tsx create mode 100644 web/src/components/ui/toaster.tsx create mode 100644 web/src/components/ui/tooltip.tsx create mode 100644 web/src/env.js create mode 100644 web/src/hooks/use-copy-to-clipboard.tsx create mode 100644 web/src/hooks/use-file-control.tsx create mode 100644 web/src/hooks/use-file-speed.ts create mode 100644 web/src/hooks/use-files.ts create mode 100644 web/src/hooks/use-local-storage.ts create mode 100644 web/src/hooks/use-settings.tsx create mode 100644 web/src/hooks/use-telegram-account.tsx create mode 100644 web/src/hooks/use-telegram-chat.tsx create mode 100644 web/src/hooks/use-toast.ts create mode 100644 web/src/hooks/use-websocket.tsx create mode 100644 web/src/lib/api.ts create mode 100644 web/src/lib/types.ts create mode 100644 web/src/lib/utils.ts create mode 100644 web/src/lib/websocket-types.ts create mode 100644 web/src/styles/globals.css create mode 100644 web/tailwind.config.ts create mode 100644 web/tsconfig.json diff --git a/.dockerignore b/.dockerignore new file mode 100644 index 0000000..79551d4 --- /dev/null +++ b/.dockerignore @@ -0,0 +1,150 @@ +### JetBrains template +# Covers JetBrains IDEs: IntelliJ, RubyMine, PhpStorm, AppCode, PyCharm, CLion, Android Studio, WebStorm and Rider +# Reference: https://intellij-support.jetbrains.com/hc/en-us/articles/206544839 + +# User-specific stuff +.idea/**/workspace.xml +.idea/**/tasks.xml +.idea/**/usage.statistics.xml +.idea/**/dictionaries +.idea/**/shelf + +# AWS User-specific +.idea/**/aws.xml + +# Generated files +.idea/**/contentModel.xml + +# Sensitive or high-churn files +.idea/**/dataSources/ +.idea/**/dataSources.ids +.idea/**/dataSources.local.xml +.idea/**/sqlDataSources.xml +.idea/**/dynamic.xml +.idea/**/uiDesigner.xml +.idea/**/dbnavigator.xml + +# Gradle +.idea/**/gradle.xml +.idea/**/libraries + +# Gradle and Maven with auto-import +# When using Gradle or Maven with auto-import, you should exclude module files, +# since they will be recreated, and may cause churn. Uncomment if using +# auto-import. +# .idea/artifacts +# .idea/compiler.xml +# .idea/jarRepositories.xml +# .idea/modules.xml +# .idea/*.iml +# .idea/modules +# *.iml +# *.ipr + +# CMake +cmake-build-*/ + +# Mongo Explorer plugin +.idea/**/mongoSettings.xml + +# File-based project format +*.iws + +# IntelliJ +out/ + +# mpeltonen/sbt-idea plugin +.idea_modules/ + +# JIRA plugin +atlassian-ide-plugin.xml + +# Cursive Clojure plugin +.idea/replstate.xml + +# SonarLint plugin +.idea/sonarlint/ + +# Crashlytics plugin (for Android Studio and IntelliJ) +com_crashlytics_export_strings.xml +crashlytics.properties +crashlytics-build.properties +fabric.properties + +# Editor-based Rest Client +.idea/httpRequests + +# Android studio 3.1+ serialized cache file +.idea/caches/build_file_checksums.ser + + +### Gradle template +api/.gradle +api/build +!src/**/build/ + +# Ignore Gradle GUI config +api/gradle-app.setting + +# Avoid ignoring Gradle wrapper jar file (.jar files are usually ignored) +api/!gradle-wrapper.jar + +# Avoid ignore Gradle wrappper properties +api/!gradle-wrapper.properties + +# Cache of project +api/.gradletasknamecache + +# Eclipse Gradle plugin generated files +# Eclipse Core +api/.project +# JDT-specific (Eclipse Java Development Tools) +api/.classpath + + +### NextJS template +# dependencies +web/node_modules +web/.pnp +web/.pnp.js + +# testing +web/coverage + +# next.js +web/.next/ +web/out/ + +# production +web/build + +# misc +.DS_Store +*.pem + +# debug +web/npm-debug.log* +web/yarn-debug.log* +web/yarn-error.log* +web/.pnpm-debug.log* + +# local env files +web/.env*.local +web/.env + +# vercel +web/.vercel + +# typescript +web/*.tsbuildinfo +web/next-env.d.ts + + + +**/*.iml +app/ + +**/.env.* +!**/.env.example +api.log.lck +http-client.private.env.json diff --git a/.env.example b/.env.example new file mode 100644 index 0000000..1776b75 --- /dev/null +++ b/.env.example @@ -0,0 +1,8 @@ + +# The root directory of the application +APP_ENV=dev +APP_ROOT= +TDLIB_PATH= + +TELEGRAM_API_ID= +TELEGRAM_API_HASH= diff --git a/.github/workflows/docker-publish.yml b/.github/workflows/docker-publish.yml new file mode 100644 index 0000000..7cbc15d --- /dev/null +++ b/.github/workflows/docker-publish.yml @@ -0,0 +1,74 @@ +name: Docker + +on: + push: + branches: + - "dev" + release: + types: [published] + +env: + REGISTRY: ghcr.io + IMAGE_NAME: ${{ github.repository }} + +jobs: + build: + runs-on: 'ubuntu-24.04' + permissions: + contents: read + packages: write + id-token: write + + steps: + - name: Checkout repository + uses: actions/checkout@v4 + + - name: Docker Setup QEMU + uses: docker/setup-qemu-action@v3.0.0 + + # Set up BuildKit Docker container builder to be able to build + # multi-platform images and export cache + # https://github.com/docker/setup-buildx-action + - name: Set up Docker Buildx + uses: docker/setup-buildx-action@v3.2.0 +# with: +# buildkitd-config-inline: | +# [worker.oci] +# max-parallelism = 1 + + # Login against a Docker registry except on PR + # https://github.com/docker/login-action + - name: Login to registry ${{ env.REGISTRY }} + if: github.event_name != 'pull_request' + uses: docker/login-action@v3.1.0 + with: + registry: ${{ env.REGISTRY }} + username: ${{ github.actor }} + password: ${{ secrets.GITHUB_TOKEN }} + + # Extract metadata (tags, labels) for Docker + # https://github.com/docker/metadata-action + - name: Extract Docker metadata + id: meta + uses: docker/metadata-action@v5.5.1 + with: + images: ${{ env.REGISTRY }}/${{ env.IMAGE_NAME }} + tags: | + type=raw,value=latest,enable=${{ startsWith(github.ref, 'refs/tags/') && !contains(github.ref, '-') }} + type=raw,value=${{ github.ref_name }},enable=${{ startsWith(github.ref, 'refs/tags/') }} + type=ref,event=branch + + # Build and push Docker image with Buildx + # https://github.com/docker/build-push-action + - name: Build and push Docker image + id: build-and-push + uses: docker/build-push-action@v6.10.0 + with: + push: true + context: . + file: Dockerfile + platforms: linux/amd64,linux/arm64 + tags: ${{ steps.meta.outputs.tags }} + labels: ${{ steps.meta.outputs.labels }} + cache-from: type=registry,ref=${{ env.REGISTRY }}/${{ env.IMAGE_NAME }}:buildcache + cache-to: type=registry,ref=${{ env.REGISTRY }}/${{ env.IMAGE_NAME }}:buildcache,mode=max diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..0fac399 --- /dev/null +++ b/.gitignore @@ -0,0 +1,17 @@ +.idea/ +**/*.iml +*.iws + +out/ +*/.gradle +**/*build*/ + +app/ +app-test/ + +**/*.log +api.log.lck +**/.env.* +!**/.env.example + +http-client.private.env.json diff --git a/BUILD_TDLIB.md b/BUILD_TDLIB.md new file mode 100644 index 0000000..a574b99 --- /dev/null +++ b/BUILD_TDLIB.md @@ -0,0 +1,70 @@ +1. **安装命令行工具**: + ```bash + xcode-select --install + ``` + 安装 macOS 的命令行开发工具(包括 `clang`、`make` 等)。 + +2. **安装 Homebrew**: + ```bash + /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)" + ``` + 下载并安装 Homebrew,一个包管理器,用于安装依赖软件。 + +3. **安装必要的软件包**: + ```bash + brew install gperf cmake openssl coreutils + brew install openjdk + ``` + - `gperf`:生成完美哈希函数的工具。 + - `cmake`:跨平台的构建工具。 + - `openssl`:用于安全通信的加密库。 + - `coreutils`:GNU 核心实用工具,提供了 `greadlink` 等命令。 + - `openjdk`:Java 开发工具包。 + +4. **克隆 TDLib 仓库**: + ```bash + git clone https://github.com/tdlib/td.git + cd td + ``` + 下载 TDLib 的源码。 + +5. **创建和清理构建目录**: + ```bash + rm -rf build + mkdir build + cd build + ``` + 确保构建环境干净无误。 + +6. **配置和构建库**: + ```bash + cmake -DCMAKE_BUILD_TYPE=Release -DJAVA_HOME=/opt/homebrew/opt/openjdk/libexec/openjdk.jdk/Contents/Home/ -DOPENSSL_ROOT_DIR=/opt/homebrew/opt/openssl/ -DCMAKE_INSTALL_PREFIX:PATH=../example/java/td -DTD_ENABLE_JNI=ON .. + cmake --build . --target install + ``` + - `-DCMAKE_BUILD_TYPE=Release`:构建为发布版本。 + - `-DJAVA_HOME` 和 `-DOPENSSL_ROOT_DIR`:指定 OpenJDK 和 OpenSSL 的路径。 + - `-DCMAKE_INSTALL_PREFIX`:指定安装路径。 + - `-DTD_ENABLE_JNI=ON`:启用 Java JNI 接口。 + - 构建并安装到指定目录。 + +7. **构建 Java 示例项目**: + ```bash + cd .. + cd example/java + rm -rf build + mkdir build + cd build + cmake -DCMAKE_BUILD_TYPE=Release -DJAVA_HOME=/opt/homebrew/opt/openjdk/libexec/openjdk.jdk/Contents/Home/ -DCMAKE_INSTALL_PREFIX:PATH=../../../tdlib -DTd_DIR:PATH=$(greadlink -e ../td/lib/cmake/Td) .. + cmake --build . --target install + ``` + 使用 TDLib 构建 Java 示例程序,`-DTd_DIR` 指向 TDLib 的 cmake 文件路径。 + +8. **验证安装结果**: + ```bash + cd ../../.. + cd .. + ls -l td/tdlib + ``` + 查看生成的文件是否存在,确认构建和安装是否成功。 + +完成以上步骤后,`td/tdlib` 目录下应该包含构建好的库文件。 diff --git a/Dockerfile b/Dockerfile new file mode 100644 index 0000000..7c58a48 --- /dev/null +++ b/Dockerfile @@ -0,0 +1,102 @@ +# 多阶段构建:第一阶段用于构建 API 应用程序 +FROM gradle:8.10-jdk21-alpine AS api-builder + +# 设置工作目录 +WORKDIR /app + +# 将 API 项目的所有文件拷贝到容器中 +COPY ./api . + +# 使用 Gradle 构建项目 +RUN gradle shadowJar --no-daemon + +# 提取构建的 jar 文件 +RUN mkdir -p /app/build/libs && \ + cp /app/build/libs/*.jar /app/api.jar + +# 使用 jdeps 分析依赖 +RUN jdeps --print-module-deps --ignore-missing-deps /app/api.jar > /app/dependencies.txt + +# 第二阶段:创建定制化的 JRE +FROM openjdk:21-jdk-slim AS runtime-builder + +# 设置工作目录 +WORKDIR /custom-jre + +# 通过 jlink 创建最小化的 JRE +COPY --from=api-builder /app/dependencies.txt /custom-jre/dependencies.txt +RUN apt-get update && apt-get install binutils -y && \ + jlink \ + --add-modules $(cat /custom-jre/dependencies.txt) \ + --output /custom-jre/jre \ + --strip-debug \ + --no-man-pages \ + --no-header-files \ + --compress=2 + +# 第三阶段:构建 Web 前端 +FROM node:21 AS web-builder + +ENV NEXT_PUBLIC_API_URL=/api +ENV NEXT_PUBLIC_WS_URL=/ws +ENV NEXT_TELEMETRY_DISABLED=1 +ENV SKIP_ENV_VALIDATION=1 + +# 设置工作目录 +WORKDIR /web + +# 安装依赖 +COPY ./web/package.json ./web/package-lock.json ./ +RUN npm install --frozen-lockfile + +# 将 Web 项目的所有文件拷贝到容器中 +COPY ./web . + +# 构建 Next.js 应用 +RUN npm run build + +# 第四阶段:最终运行镜像 +FROM node:21-slim AS final + +WORKDIR /app + +RUN npm install pm2 -g \ + && apt-get update && apt-get install -y --no-install-recommends nginx wget unzip \ + && if [ "$(uname -m)" = "x86_64" ]; then \ + wget http://nz2.archive.ubuntu.com/ubuntu/pool/main/o/openssl/libssl1.1_1.1.1f-1ubuntu2.23_amd64.deb && \ + dpkg -i libssl1.1_1.1.1f-1ubuntu2.23_amd64.deb && \ + rm libssl1.1_1.1.1f-1ubuntu2.23_amd64.deb; \ + elif [ "$(uname -m)" = "aarch64" ]; then \ + wget http://ports.ubuntu.com/pool/main/o/openssl/libssl1.1_1.1.1f-1ubuntu2_arm64.deb && \ + dpkg -i libssl1.1_1.1.1f-1ubuntu2_arm64.deb && \ + rm libssl1.1_1.1.1f-1ubuntu2_arm64.deb; \ + else \ + echo "Unsupported architecture: $(uname -m)"; \ + exit 1; \ + fi \ + && apt-get clean && rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/*; + +# 拷贝定制化的 JRE +COPY --from=runtime-builder /custom-jre/jre /jre + +# 设置环境变量 +ENV JAVA_HOME=/jre +ENV PATH="$JAVA_HOME/bin:$PATH" + +# 拷贝 API 应用程序 +COPY --from=api-builder /app/api.jar /app/api.jar + +# 拷贝 Web 前端静态文件到 nginx +COPY --from=web-builder /web/public /app/web/public +COPY --from=web-builder /web/.next/standalone /app/web/ +COPY --from=web-builder /web/.next/static /app/web/.next/static + +COPY ./web/pm2.json /app/web/pm2.json +COPY ./entrypoint.sh ./entrypoint.sh +COPY ./nginx.conf /etc/nginx/nginx.conf + +# 暴露服务端口 +EXPOSE 80 + +# 启动服务 +CMD ["/bin/sh", "./entrypoint.sh"] diff --git a/LICENSE b/LICENSE new file mode 100644 index 0000000..29d36fa --- /dev/null +++ b/LICENSE @@ -0,0 +1,21 @@ +MIT License + +Copyright (c) 2024 jarvis2f + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/README.md b/README.md new file mode 100644 index 0000000..d284c49 --- /dev/null +++ b/README.md @@ -0,0 +1,165 @@ +

+ +

+

Telegram Files

+

+ A simple telegram file downloader. +

+

+ license + last-commit + repo-top-language + repo-language-count +

+
+ +## 🔗 Table of Contents + +- [📍 Overview](#-overview) +- [🧩 Screenshots](#-screenshots) +- [🚀 Getting Started](#-getting-started) + - [☑️ Prerequisites](#-prerequisites) + - [⚙️ Installation](#-installation) + - [🤖 Usage](#🤖-usage) +- [📌 Project Roadmap](#-project-roadmap) +- [🔰 Contributing](#-contributing) +- [🎗 License](#-license) + +--- + +## 📍 Overview + +* Support for downloading files from telegram channels and groups. +* Support multiple telegram accounts for downloading files. +* Support suspending and resuming downloads. +* Multiple accounts with same files will be downloaded only once. + +--- + +## 🧩 Screenshots + +

+ +

+ +## 🚀 Getting Started + +### ☑️ Prerequisites + +Before getting started with telegram-files, ensure your runtime environment meets the following requirements: + +- **Programming Language:** JDK21,TypeScript +- **Package Manager:** Gradle,Npm +- **Container Runtime:** Docker + +### ⚙️ Installation + +Install telegram-files using one of the following methods: + +**Build from source:** + +1. Clone the telegram-files repository: + +```sh +git clone https://github.com/jarvis2f/telegram-files +``` + +2. Navigate to the project directory: + +```sh +cd telegram-files +``` + +3. Install the project dependencies: + +**Using `npm`** +  [](https://www.npmjs.com/) + +```sh +cd web +npm install +``` + +**Using `gradle`** +  [](https://gradle.org/) + +```sh +cd api +gradle build +``` + +**Using `docker`** +  [](https://www.docker.com/) + +```sh +docker build -t jarvis2f/telegram-files . +``` + +### 🤖 Usage + +**Using `docker`** +  [](https://www.docker.com/) + +Copy [docker-compose.yaml](docker-compose.yaml) to your project directory and run the following command: + +```sh +docker-compose up -d +``` + +> **Important Note:** You should NOT expose the service to the public internet. Because the service is not secure. +--- + +## 📌 Project Roadmap + +- [ ] **`Task 1`**: Improve Telegram’s login functionality. +- [ ] **`Task 2`**: Support auto transfer files to other destinations. +- [ ] **`Task 3`**: Automatically download files based on set rules. +- [ ] **`Task 4`**: Download statistics and reports. + +--- + +## 🔰 Contributing + +- **💬 [Join the Discussions](https://github.com/jarvis2f/telegram-files/discussions)**: Share your insights, provide + feedback, or ask questions. +- **🐛 [Report Issues](https://github.com/jarvis2f/telegram-files/issues)**: Submit bugs found or log feature requests + for the `telegram-files` project. +- **💡 [Submit Pull Requests](https://github.com/jarvis2f/telegram-files/blob/main/CONTRIBUTING.md)**: Review open PRs, + and submit your own PRs. + +
+Contributing Guidelines + +1. **Fork the Repository**: Start by forking the project repository to your github account. +2. **Clone Locally**: Clone the forked repository to your local machine using a git client. + ```sh + git clone https://github.com/jarvis2f/telegram-files + ``` +3. **Create a New Branch**: Always work on a new branch, giving it a descriptive name. + ```sh + git checkout -b new-feature-x + ``` +4. **Make Your Changes**: Develop and test your changes locally. +5. **Commit Your Changes**: Commit with a clear message describing your updates. + ```sh + git commit -m 'Implemented new feature x.' + ``` +6. **Push to github**: Push the changes to your forked repository. + ```sh + git push origin new-feature-x + ``` +7. **Submit a Pull Request**: Create a PR against the original project repository. Clearly describe the changes and + their motivations. +8. **Review**: Once your PR is reviewed and approved, it will be merged into the main branch. Congratulations on your + contribution! + +
+ +--- + +## 🎗 License + +This project is protected under the MIT License. For more details, +refer to the [LICENSE](LICENSE) file. + +--- diff --git a/VERSION b/VERSION new file mode 100644 index 0000000..77d6f4c --- /dev/null +++ b/VERSION @@ -0,0 +1 @@ +0.0.0 diff --git a/api/build.gradle b/api/build.gradle new file mode 100644 index 0000000..5988050 --- /dev/null +++ b/api/build.gradle @@ -0,0 +1,83 @@ +plugins { + id 'java' + id 'com.gradleup.shadow' version '8.3.5' +} + +group = 'telegram.files' +version = '0.0.0' + +repositories { + mavenCentral() +} + +dependencies { + implementation 'io.vertx:vertx-core:4.5.11' + implementation 'io.vertx:vertx-web:4.5.11' + implementation 'io.vertx:vertx-jdbc-client:4.5.11' + implementation 'io.vertx:vertx-sql-client-templates:4.5.11' + implementation 'io.vertx:vertx-health-check:4.5.11' + implementation 'org.xerial:sqlite-jdbc:3.47.1.0' + implementation 'io.agroal:agroal-api:1.16' + implementation 'io.agroal:agroal-pool:1.16' + implementation 'cn.hutool:hutool-core:5.8.34' + implementation 'cn.hutool:hutool-log:5.8.34' + implementation 'org.jooq:jool:0.9.15' + implementation 'com.fasterxml.jackson.core:jackson-databind:2.17.3' + + testImplementation 'io.vertx:vertx-junit5:4.5.11' + testImplementation platform('org.junit:junit-bom:5.10.0') + testImplementation 'org.junit.jupiter:junit-jupiter' +} + +test { + def envFile = file('../.env.test') + if (envFile.exists()) { + doFirst { + envFile.eachLine { + if (!it.startsWith("#") && !it.isEmpty()) { + def (key, value) = it.tokenize('=') + environment key, value + } + return + } + } + } + jvmArgs "-Djava.library.path=${System.getenv('TDLIB_PATH')}" + environment "APP_ROOT", "${testClassesDirs.asPath}" + useJUnitPlatform() +} + +tasks.build { + dependsOn shadowJar +} + +shadowJar { + archiveBaseName.set('telegram-files') + archiveClassifier.set('') + archiveVersion.set('') + manifest { + attributes( + 'Main-Class': 'telegram.files.Start' + ) + } +} + +tasks.named('jar') { + manifest { + attributes( + 'Implementation-Title': project.name, + 'Implementation-Version': project.version, + 'Built-By': System.getProperty('user.name'), + 'Build-Time': new Date().format('yyyy-MM-dd HH:mm:ss'), + 'Git-Commit': getGitCommit() + ) + } +} + +static def getGitCommit() { + try { + return 'git rev-parse --short HEAD'.execute().text.trim() + } catch (ignored) { + return 'unknown' + } +} diff --git a/api/gradle/wrapper/gradle-wrapper.jar b/api/gradle/wrapper/gradle-wrapper.jar new file mode 100644 index 0000000000000000000000000000000000000000..249e5832f090a2944b7473328c07c9755baa3196 GIT binary patch literal 60756 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 '} + case $link in #( + /*) app_path=$link ;; #( + *) app_path=$APP_HOME$link ;; + esac +done + +APP_HOME=$( cd "${APP_HOME:-./}" && pwd -P ) || exit + +APP_NAME="Gradle" +APP_BASE_NAME=${0##*/} + +# Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script. +DEFAULT_JVM_OPTS='"-Xmx64m" "-Xms64m"' + +# Use the maximum available, or set MAX_FD != -1 to use that value. +MAX_FD=maximum + +warn () { + echo "$*" +} >&2 + +die () { + echo + echo "$*" + echo + exit 1 +} >&2 + +# OS specific support (must be 'true' or 'false'). +cygwin=false +msys=false +darwin=false +nonstop=false +case "$( uname )" in #( + CYGWIN* ) cygwin=true ;; #( + Darwin* ) darwin=true ;; #( + MSYS* | MINGW* ) msys=true ;; #( + NONSTOP* ) nonstop=true ;; +esac + +CLASSPATH=$APP_HOME/gradle/wrapper/gradle-wrapper.jar + + +# Determine the Java command to use to start the JVM. +if [ -n "$JAVA_HOME" ] ; then + if [ -x "$JAVA_HOME/jre/sh/java" ] ; then + # IBM's JDK on AIX uses strange locations for the executables + JAVACMD=$JAVA_HOME/jre/sh/java + else + JAVACMD=$JAVA_HOME/bin/java + fi + if [ ! -x "$JAVACMD" ] ; then + die "ERROR: JAVA_HOME is set to an invalid directory: $JAVA_HOME + +Please set the JAVA_HOME variable in your environment to match the +location of your Java installation." + fi +else + JAVACMD=java + which java >/dev/null 2>&1 || die "ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. + +Please set the JAVA_HOME variable in your environment to match the +location of your Java installation." +fi + +# Increase the maximum file descriptors if we can. +if ! "$cygwin" && ! "$darwin" && ! "$nonstop" ; then + case $MAX_FD in #( + max*) + MAX_FD=$( ulimit -H -n ) || + warn "Could not query maximum file descriptor limit" + esac + case $MAX_FD in #( + '' | soft) :;; #( + *) + ulimit -n "$MAX_FD" || + warn "Could not set maximum file descriptor limit to $MAX_FD" + esac +fi + +# Collect all arguments for the java command, stacking in reverse order: +# * args from the command line +# * the main class name +# * -classpath +# * -D...appname settings +# * --module-path (only if needed) +# * DEFAULT_JVM_OPTS, JAVA_OPTS, and GRADLE_OPTS environment variables. + +# For Cygwin or MSYS, switch paths to Windows format before running java +if "$cygwin" || "$msys" ; then + APP_HOME=$( cygpath --path --mixed "$APP_HOME" ) + CLASSPATH=$( cygpath --path --mixed "$CLASSPATH" ) + + JAVACMD=$( cygpath --unix "$JAVACMD" ) + + # Now convert the arguments - kludge to limit ourselves to /bin/sh + for arg do + if + case $arg in #( + -*) false ;; # don't mess with options #( + /?*) t=${arg#/} t=/${t%%/*} # looks like a POSIX filepath + [ -e "$t" ] ;; #( + *) false ;; + esac + then + arg=$( cygpath --path --ignore --mixed "$arg" ) + fi + # Roll the args list around exactly as many times as the number of + # args, so each arg winds up back in the position where it started, but + # possibly modified. + # + # NB: a `for` loop captures its iteration list before it begins, so + # changing the positional parameters here affects neither the number of + # iterations, nor the values presented in `arg`. + shift # remove old arg + set -- "$@" "$arg" # push replacement arg + done +fi + +# Collect all arguments for the java command; +# * $DEFAULT_JVM_OPTS, $JAVA_OPTS, and $GRADLE_OPTS can contain fragments of +# shell script including quotes and variable substitutions, so put them in +# double quotes to make sure that they get re-expanded; and +# * put everything else in single quotes, so that it's not re-expanded. + +set -- \ + "-Dorg.gradle.appname=$APP_BASE_NAME" \ + -classpath "$CLASSPATH" \ + org.gradle.wrapper.GradleWrapperMain \ + "$@" + +# Use "xargs" to parse quoted args. +# +# With -n1 it outputs one arg per line, with the quotes and backslashes removed. +# +# In Bash we could simply go: +# +# readarray ARGS < <( xargs -n1 <<<"$var" ) && +# set -- "${ARGS[@]}" "$@" +# +# but POSIX shell has neither arrays nor command substitution, so instead we +# post-process each arg (as a line of input to sed) to backslash-escape any +# character that might be a shell metacharacter, then use eval to reverse +# that process (while maintaining the separation between arguments), and wrap +# the whole thing up as a single "set" statement. +# +# This will of course break if any of these variables contains a newline or +# an unmatched quote. +# + +eval "set -- $( + printf '%s\n' "$DEFAULT_JVM_OPTS $JAVA_OPTS $GRADLE_OPTS" | + xargs -n1 | + sed ' s~[^-[:alnum:]+,./:=@_]~\\&~g; ' | + tr '\n' ' ' + )" '"$@"' + +exec "$JAVACMD" "$@" diff --git a/api/gradlew.bat b/api/gradlew.bat new file mode 100644 index 0000000..107acd3 --- /dev/null +++ b/api/gradlew.bat @@ -0,0 +1,89 @@ +@rem +@rem Copyright 2015 the original author or authors. +@rem +@rem Licensed under the Apache License, Version 2.0 (the "License"); +@rem you may not use this file except in compliance with the License. +@rem You may obtain a copy of the License at +@rem +@rem https://www.apache.org/licenses/LICENSE-2.0 +@rem +@rem Unless required by applicable law or agreed to in writing, software +@rem distributed under the License is distributed on an "AS IS" BASIS, +@rem WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +@rem See the License for the specific language governing permissions and +@rem limitations under the License. +@rem + +@if "%DEBUG%" == "" @echo off +@rem ########################################################################## +@rem +@rem Gradle startup script for Windows +@rem +@rem ########################################################################## + +@rem Set local scope for the variables with windows NT shell +if "%OS%"=="Windows_NT" setlocal + +set DIRNAME=%~dp0 +if "%DIRNAME%" == "" set DIRNAME=. +set APP_BASE_NAME=%~n0 +set APP_HOME=%DIRNAME% + +@rem Resolve any "." and ".." in APP_HOME to make it shorter. +for %%i in ("%APP_HOME%") do set APP_HOME=%%~fi + +@rem Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script. +set DEFAULT_JVM_OPTS="-Xmx64m" "-Xms64m" + +@rem Find java.exe +if defined JAVA_HOME goto findJavaFromJavaHome + +set JAVA_EXE=java.exe +%JAVA_EXE% -version >NUL 2>&1 +if "%ERRORLEVEL%" == "0" goto execute + +echo. +echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. +echo. +echo Please set the JAVA_HOME variable in your environment to match the +echo location of your Java installation. + +goto fail + +:findJavaFromJavaHome +set JAVA_HOME=%JAVA_HOME:"=% +set JAVA_EXE=%JAVA_HOME%/bin/java.exe + +if exist "%JAVA_EXE%" goto execute + +echo. +echo ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME% +echo. +echo Please set the JAVA_HOME variable in your environment to match the +echo location of your Java installation. + +goto fail + +:execute +@rem Setup the command line + +set CLASSPATH=%APP_HOME%\gradle\wrapper\gradle-wrapper.jar + + +@rem Execute Gradle +"%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -classpath "%CLASSPATH%" org.gradle.wrapper.GradleWrapperMain %* + +:end +@rem End local scope for the variables with windows NT shell +if "%ERRORLEVEL%"=="0" goto mainEnd + +:fail +rem Set variable GRADLE_EXIT_CONSOLE if you need the _script_ return code instead of +rem the _cmd.exe /c_ return code! +if not "" == "%GRADLE_EXIT_CONSOLE%" exit 1 +exit /b 1 + +:mainEnd +if "%OS%"=="Windows_NT" endlocal + +:omega diff --git a/api/settings.gradle b/api/settings.gradle new file mode 100644 index 0000000..198b632 --- /dev/null +++ b/api/settings.gradle @@ -0,0 +1,2 @@ +rootProject.name = 'api' + diff --git a/api/src/main/java/org/drinkless/tdlib/Client.java b/api/src/main/java/org/drinkless/tdlib/Client.java new file mode 100644 index 0000000..2156937 --- /dev/null +++ b/api/src/main/java/org/drinkless/tdlib/Client.java @@ -0,0 +1,259 @@ +// +// Copyright Aliaksei Levin (levlam@telegram.org), Arseny Smirnov (arseny30@gmail.com) 2014-2024 +// +// Distributed under the Boost Software License, Version 1.0. (See accompanying +// file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) +// +package org.drinkless.tdlib; + +import java.util.concurrent.ConcurrentHashMap; +import java.util.concurrent.atomic.AtomicLong; + +/** + * Main class for interaction with the TDLib. + */ +public final class Client { + static { + try { + System.loadLibrary("tdjni"); + } catch (UnsatisfiedLinkError e) { + e.printStackTrace(); + } + } + + /** + * Interface for handler for results of queries to TDLib and incoming updates from TDLib. + */ + public interface ResultHandler { + /** + * Callback called on result of query to TDLib or incoming update from TDLib. + * + * @param object Result of query or update of type TdApi.Update about new events. + */ + void onResult(TdApi.Object object); + } + + /** + * Interface for handler of exceptions thrown while invoking ResultHandler. + * By default, all such exceptions are ignored. + * All exceptions thrown from ExceptionHandler are ignored. + */ + public interface ExceptionHandler { + /** + * Callback called on exceptions thrown while invoking ResultHandler. + * + * @param e Exception thrown by ResultHandler. + */ + void onException(Throwable e); + } + + /** + * Interface for handler of messages that are added to the internal TDLib log. + */ + public interface LogMessageHandler { + /** + * Callback called on messages that are added to the internal TDLib log. + * + * @param verbosityLevel Log verbosity level with which the message was added from -1 up to 1024. + * If 0, then TDLib will crash as soon as the callback returns. + * None of the TDLib methods can be called from the callback. + * @param message The message added to the internal TDLib log. + */ + void onLogMessage(int verbosityLevel, String message); + } + + /** + * Exception class thrown when TDLib error occurred while performing {@link #execute(TdApi.Function)}. + */ + public static class ExecutionException extends Exception { + /** + * Original TDLib error occurred when performing one of the synchronous functions. + */ + public final TdApi.Error error; + + /** + * @param error TDLib error occurred while performing {@link #execute(TdApi.Function)}. + */ + ExecutionException (TdApi.Error error) { + super(error.code + ": " + error.message); + this.error = error; + } + } + + /** + * Sends a request to the TDLib. + * + * @param query Object representing a query to the TDLib. + * @param resultHandler Result handler with onResult method which will be called with result + * of the query or with TdApi.Error as parameter. If it is null, nothing + * will be called. + * @param exceptionHandler Exception handler with onException method which will be called on + * exception thrown from resultHandler. If it is null, then + * defaultExceptionHandler will be called. + */ + public void send(TdApi.Function query, ResultHandler resultHandler, ExceptionHandler exceptionHandler) { + long queryId = currentQueryId.incrementAndGet(); + if (resultHandler != null) { + handlers.put(queryId, new Handler(resultHandler, exceptionHandler)); + } + nativeClientSend(nativeClientId, queryId, query); + } + + /** + * Sends a request to the TDLib with an empty ExceptionHandler. + * + * @param query Object representing a query to the TDLib. + * @param resultHandler Result handler with onResult method which will be called with result + * of the query or with TdApi.Error as parameter. If it is null, then + * defaultExceptionHandler will be called. + */ + public void send(TdApi.Function query, ResultHandler resultHandler) { + send(query, resultHandler, null); + } + + /** + * Synchronously executes a TDLib request. Only a few marked accordingly requests can be executed synchronously. + * + * @param query Object representing a query to the TDLib. + * @param Automatically deduced return type of the query. + * @return request result. + * @throws ExecutionException if query execution fails. + */ + @SuppressWarnings("unchecked") + public static T execute(TdApi.Function query) throws ExecutionException { + TdApi.Object object = nativeClientExecute(query); + if (object instanceof TdApi.Error) { + throw new ExecutionException((TdApi.Error) object); + } + return (T) object; + } + + /** + * Creates new Client. + * + * @param updateHandler Handler for incoming updates. + * @param updateExceptionHandler Handler for exceptions thrown from updateHandler. If it is null, exceptions will be ignored. + * @param defaultExceptionHandler Default handler for exceptions thrown from all ResultHandler. If it is null, exceptions will be ignored. + * @return created Client + */ + public static Client create(ResultHandler updateHandler, ExceptionHandler updateExceptionHandler, ExceptionHandler defaultExceptionHandler) { + Client client = new Client(updateHandler, updateExceptionHandler, defaultExceptionHandler); + synchronized (responseReceiver) { + if (!responseReceiver.isRun) { + responseReceiver.isRun = true; + + Thread receiverThread = new Thread(responseReceiver, "TDLib thread"); + receiverThread.setDaemon(true); + receiverThread.start(); + } + } + return client; + } + + /** + * Sets the handler for messages that are added to the internal TDLib log. + * None of the TDLib methods can be called from the callback. + * + * @param maxVerbosityLevel The maximum verbosity level of messages for which the callback will be called. + * @param logMessageHandler Handler for messages that are added to the internal TDLib log. Pass null to remove the handler. + */ + public static void setLogMessageHandler(int maxVerbosityLevel, LogMessageHandler logMessageHandler) { + nativeClientSetLogMessageHandler(maxVerbosityLevel, logMessageHandler); + } + + private static class ResponseReceiver implements Runnable { + public boolean isRun = false; + + @Override + public void run() { + while (true) { + int resultN = nativeClientReceive(clientIds, eventIds, events, 100000.0 /*seconds*/); + for (int i = 0; i < resultN; i++) { + processResult(clientIds[i], eventIds[i], events[i]); + events[i] = null; + } + } + } + + private void processResult(int clientId, long id, TdApi.Object object) { + boolean isClosed = false; + if (id == 0 && object instanceof TdApi.UpdateAuthorizationState) { + TdApi.AuthorizationState authorizationState = ((TdApi.UpdateAuthorizationState) object).authorizationState; + if (authorizationState instanceof TdApi.AuthorizationStateClosed) { + isClosed = true; + } + } + + Handler handler = id == 0 ? updateHandlers.get(clientId) : handlers.remove(id); + if (handler != null) { + try { + handler.resultHandler.onResult(object); + } catch (Throwable cause) { + ExceptionHandler exceptionHandler = handler.exceptionHandler; + if (exceptionHandler == null) { + exceptionHandler = defaultExceptionHandlers.get(clientId); + } + if (exceptionHandler != null) { + try { + exceptionHandler.onException(cause); + } catch (Throwable ignored) { + } + } + } + } + + if (isClosed) { + updateHandlers.remove(clientId); // there will be no more updates + defaultExceptionHandlers.remove(clientId); // ignore further exceptions + clientCount.decrementAndGet(); + } + } + + private static final int MAX_EVENTS = 1000; + private final int[] clientIds = new int[MAX_EVENTS]; + private final long[] eventIds = new long[MAX_EVENTS]; + private final TdApi.Object[] events = new TdApi.Object[MAX_EVENTS]; + } + + private final int nativeClientId; + + private static final ConcurrentHashMap defaultExceptionHandlers = new ConcurrentHashMap(); + private static final ConcurrentHashMap updateHandlers = new ConcurrentHashMap(); + private static final ConcurrentHashMap handlers = new ConcurrentHashMap(); + private static final AtomicLong currentQueryId = new AtomicLong(); + private static final AtomicLong clientCount = new AtomicLong(); + + private static final ResponseReceiver responseReceiver = new ResponseReceiver(); + + private static class Handler { + final ResultHandler resultHandler; + final ExceptionHandler exceptionHandler; + + Handler(ResultHandler resultHandler, ExceptionHandler exceptionHandler) { + this.resultHandler = resultHandler; + this.exceptionHandler = exceptionHandler; + } + } + + private Client(ResultHandler updateHandler, ExceptionHandler updateExceptionHandler, ExceptionHandler defaultExceptionHandler) { + clientCount.incrementAndGet(); + nativeClientId = createNativeClient(); + if (updateHandler != null) { + updateHandlers.put(nativeClientId, new Handler(updateHandler, updateExceptionHandler)); + } + if (defaultExceptionHandler != null) { + defaultExceptionHandlers.put(nativeClientId, defaultExceptionHandler); + } + send(new TdApi.GetOption("version"), null, null); + } + + private static native int createNativeClient(); + + private static native void nativeClientSend(int nativeClientId, long eventId, TdApi.Function function); + + private static native int nativeClientReceive(int[] clientIds, long[] eventIds, TdApi.Object[] events, double timeout); + + private static native TdApi.Object nativeClientExecute(TdApi.Function function); + + private static native void nativeClientSetLogMessageHandler(int maxVerbosityLevel, LogMessageHandler logMessageHandler); +} diff --git a/api/src/main/java/org/drinkless/tdlib/TdApi.java b/api/src/main/java/org/drinkless/tdlib/TdApi.java new file mode 100644 index 0000000..d39e50c --- /dev/null +++ b/api/src/main/java/org/drinkless/tdlib/TdApi.java @@ -0,0 +1,54183 @@ +package org.drinkless.tdlib; + +public class TdApi { + + private static final String GIT_COMMIT_HASH = "eb98bbe611e1132f98914e4cd4e2c727079cc84d"; + + private TdApi() { + } + + public abstract static class Object { + + public Object() { + } + + public native String toString(); + + public abstract int getConstructor(); + } + + public abstract static class Function extends Object { + + public Function() { + } + + public native String toString(); + } + + public static class AccentColor extends Object { + + public int id; + + public int builtInAccentColorId; + + public int[] lightThemeColors; + + public int[] darkThemeColors; + + public int minChannelChatBoostLevel; + + public AccentColor() { + } + + public AccentColor(int id, int builtInAccentColorId, int[] lightThemeColors, int[] darkThemeColors, int minChannelChatBoostLevel) { + this.id = id; + this.builtInAccentColorId = builtInAccentColorId; + this.lightThemeColors = lightThemeColors; + this.darkThemeColors = darkThemeColors; + this.minChannelChatBoostLevel = minChannelChatBoostLevel; + } + + public static final int CONSTRUCTOR = -496870680; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class AccountTtl extends Object { + + public int days; + + public AccountTtl() { + } + + public AccountTtl(int days) { + this.days = days; + } + + public static final int CONSTRUCTOR = 1324495492; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class AddedReaction extends Object { + + public ReactionType type; + + public MessageSender senderId; + + public boolean isOutgoing; + + public int date; + + public AddedReaction() { + } + + public AddedReaction(ReactionType type, MessageSender senderId, boolean isOutgoing, int date) { + this.type = type; + this.senderId = senderId; + this.isOutgoing = isOutgoing; + this.date = date; + } + + public static final int CONSTRUCTOR = 1258586525; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class AddedReactions extends Object { + + public int totalCount; + + public AddedReaction[] reactions; + + public String nextOffset; + + public AddedReactions() { + } + + public AddedReactions(int totalCount, AddedReaction[] reactions, String nextOffset) { + this.totalCount = totalCount; + this.reactions = reactions; + this.nextOffset = nextOffset; + } + + public static final int CONSTRUCTOR = 226352304; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class Address extends Object { + + public String countryCode; + + public String state; + + public String city; + + public String streetLine1; + + public String streetLine2; + + public String postalCode; + + public Address() { + } + + public Address(String countryCode, String state, String city, String streetLine1, String streetLine2, String postalCode) { + this.countryCode = countryCode; + this.state = state; + this.city = city; + this.streetLine1 = streetLine1; + this.streetLine2 = streetLine2; + this.postalCode = postalCode; + } + + public static final int CONSTRUCTOR = -2043654342; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class AffiliateInfo extends Object { + + public int commissionPerMille; + + public long affiliateChatId; + + public StarAmount starAmount; + + public AffiliateInfo() { + } + + public AffiliateInfo(int commissionPerMille, long affiliateChatId, StarAmount starAmount) { + this.commissionPerMille = commissionPerMille; + this.affiliateChatId = affiliateChatId; + this.starAmount = starAmount; + } + + public static final int CONSTRUCTOR = -1312695046; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class AffiliateProgramInfo extends Object { + + public AffiliateProgramParameters parameters; + + public int endDate; + + public StarAmount dailyRevenuePerUserAmount; + + public AffiliateProgramInfo() { + } + + public AffiliateProgramInfo(AffiliateProgramParameters parameters, int endDate, StarAmount dailyRevenuePerUserAmount) { + this.parameters = parameters; + this.endDate = endDate; + this.dailyRevenuePerUserAmount = dailyRevenuePerUserAmount; + } + + public static final int CONSTRUCTOR = -1761810251; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class AffiliateProgramParameters extends Object { + + public int commissionPerMille; + + public int monthCount; + + public AffiliateProgramParameters() { + } + + public AffiliateProgramParameters(int commissionPerMille, int monthCount) { + this.commissionPerMille = commissionPerMille; + this.monthCount = monthCount; + } + + public static final int CONSTRUCTOR = 1642662996; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public abstract static class AffiliateProgramSortOrder extends Object { + + public AffiliateProgramSortOrder() { + } + } + + public static class AffiliateProgramSortOrderProfitability extends AffiliateProgramSortOrder { + public AffiliateProgramSortOrderProfitability() { + } + + public static final int CONSTRUCTOR = -1963282585; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class AffiliateProgramSortOrderCreationDate extends AffiliateProgramSortOrder { + public AffiliateProgramSortOrderCreationDate() { + } + + public static final int CONSTRUCTOR = -1558628083; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class AffiliateProgramSortOrderRevenue extends AffiliateProgramSortOrder { + public AffiliateProgramSortOrderRevenue() { + } + + public static final int CONSTRUCTOR = 1923269304; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class AlternativeVideo extends Object { + + public int width; + + public int height; + + public String codec; + + public File hlsFile; + + public File video; + + public AlternativeVideo() { + } + + public AlternativeVideo(int width, int height, String codec, File hlsFile, File video) { + this.width = width; + this.height = height; + this.codec = codec; + this.hlsFile = hlsFile; + this.video = video; + } + + public static final int CONSTRUCTOR = -1076216909; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class AnimatedChatPhoto extends Object { + + public int length; + + public File file; + + public double mainFrameTimestamp; + + public AnimatedChatPhoto() { + } + + public AnimatedChatPhoto(int length, File file, double mainFrameTimestamp) { + this.length = length; + this.file = file; + this.mainFrameTimestamp = mainFrameTimestamp; + } + + public static final int CONSTRUCTOR = 191994926; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class AnimatedEmoji extends Object { + + public Sticker sticker; + + public int stickerWidth; + + public int stickerHeight; + + public int fitzpatrickType; + + public File sound; + + public AnimatedEmoji() { + } + + public AnimatedEmoji(Sticker sticker, int stickerWidth, int stickerHeight, int fitzpatrickType, File sound) { + this.sticker = sticker; + this.stickerWidth = stickerWidth; + this.stickerHeight = stickerHeight; + this.fitzpatrickType = fitzpatrickType; + this.sound = sound; + } + + public static final int CONSTRUCTOR = 1378918079; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class Animation extends Object { + + public int duration; + + public int width; + + public int height; + + public String fileName; + + public String mimeType; + + public boolean hasStickers; + + public Minithumbnail minithumbnail; + + public Thumbnail thumbnail; + + public File animation; + + public Animation() { + } + + public Animation(int duration, int width, int height, String fileName, String mimeType, boolean hasStickers, Minithumbnail minithumbnail, Thumbnail thumbnail, File animation) { + this.duration = duration; + this.width = width; + this.height = height; + this.fileName = fileName; + this.mimeType = mimeType; + this.hasStickers = hasStickers; + this.minithumbnail = minithumbnail; + this.thumbnail = thumbnail; + this.animation = animation; + } + + public static final int CONSTRUCTOR = -872359106; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class Animations extends Object { + + public Animation[] animations; + + public Animations() { + } + + public Animations(Animation[] animations) { + this.animations = animations; + } + + public static final int CONSTRUCTOR = 344216945; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class ArchiveChatListSettings extends Object { + + public boolean archiveAndMuteNewChatsFromUnknownUsers; + + public boolean keepUnmutedChatsArchived; + + public boolean keepChatsFromFoldersArchived; + + public ArchiveChatListSettings() { + } + + public ArchiveChatListSettings(boolean archiveAndMuteNewChatsFromUnknownUsers, boolean keepUnmutedChatsArchived, boolean keepChatsFromFoldersArchived) { + this.archiveAndMuteNewChatsFromUnknownUsers = archiveAndMuteNewChatsFromUnknownUsers; + this.keepUnmutedChatsArchived = keepUnmutedChatsArchived; + this.keepChatsFromFoldersArchived = keepChatsFromFoldersArchived; + } + + public static final int CONSTRUCTOR = 1058499236; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class AttachmentMenuBot extends Object { + + public long botUserId; + + public boolean supportsSelfChat; + + public boolean supportsUserChats; + + public boolean supportsBotChats; + + public boolean supportsGroupChats; + + public boolean supportsChannelChats; + + public boolean requestWriteAccess; + + public boolean isAdded; + + public boolean showInAttachmentMenu; + + public boolean showInSideMenu; + + public boolean showDisclaimerInSideMenu; + + public String name; + + public AttachmentMenuBotColor nameColor; + + public File defaultIcon; + + public File iosStaticIcon; + + public File iosAnimatedIcon; + + public File iosSideMenuIcon; + + public File androidIcon; + + public File androidSideMenuIcon; + + public File macosIcon; + + public File macosSideMenuIcon; + + public AttachmentMenuBotColor iconColor; + + public File webAppPlaceholder; + + public AttachmentMenuBot() { + } + + public AttachmentMenuBot(long botUserId, boolean supportsSelfChat, boolean supportsUserChats, boolean supportsBotChats, boolean supportsGroupChats, boolean supportsChannelChats, boolean requestWriteAccess, boolean isAdded, boolean showInAttachmentMenu, boolean showInSideMenu, boolean showDisclaimerInSideMenu, String name, AttachmentMenuBotColor nameColor, File defaultIcon, File iosStaticIcon, File iosAnimatedIcon, File iosSideMenuIcon, File androidIcon, File androidSideMenuIcon, File macosIcon, File macosSideMenuIcon, AttachmentMenuBotColor iconColor, File webAppPlaceholder) { + this.botUserId = botUserId; + this.supportsSelfChat = supportsSelfChat; + this.supportsUserChats = supportsUserChats; + this.supportsBotChats = supportsBotChats; + this.supportsGroupChats = supportsGroupChats; + this.supportsChannelChats = supportsChannelChats; + this.requestWriteAccess = requestWriteAccess; + this.isAdded = isAdded; + this.showInAttachmentMenu = showInAttachmentMenu; + this.showInSideMenu = showInSideMenu; + this.showDisclaimerInSideMenu = showDisclaimerInSideMenu; + this.name = name; + this.nameColor = nameColor; + this.defaultIcon = defaultIcon; + this.iosStaticIcon = iosStaticIcon; + this.iosAnimatedIcon = iosAnimatedIcon; + this.iosSideMenuIcon = iosSideMenuIcon; + this.androidIcon = androidIcon; + this.androidSideMenuIcon = androidSideMenuIcon; + this.macosIcon = macosIcon; + this.macosSideMenuIcon = macosSideMenuIcon; + this.iconColor = iconColor; + this.webAppPlaceholder = webAppPlaceholder; + } + + public static final int CONSTRUCTOR = -1183966273; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class AttachmentMenuBotColor extends Object { + + public int lightColor; + + public int darkColor; + + public AttachmentMenuBotColor() { + } + + public AttachmentMenuBotColor(int lightColor, int darkColor) { + this.lightColor = lightColor; + this.darkColor = darkColor; + } + + public static final int CONSTRUCTOR = 1680039612; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class Audio extends Object { + + public int duration; + + public String title; + + public String performer; + + public String fileName; + + public String mimeType; + + public Minithumbnail albumCoverMinithumbnail; + + public Thumbnail albumCoverThumbnail; + + public Thumbnail[] externalAlbumCovers; + + public File audio; + + public Audio() { + } + + public Audio(int duration, String title, String performer, String fileName, String mimeType, Minithumbnail albumCoverMinithumbnail, Thumbnail albumCoverThumbnail, Thumbnail[] externalAlbumCovers, File audio) { + this.duration = duration; + this.title = title; + this.performer = performer; + this.fileName = fileName; + this.mimeType = mimeType; + this.albumCoverMinithumbnail = albumCoverMinithumbnail; + this.albumCoverThumbnail = albumCoverThumbnail; + this.externalAlbumCovers = externalAlbumCovers; + this.audio = audio; + } + + public static final int CONSTRUCTOR = -166398841; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class AuthenticationCodeInfo extends Object { + + public String phoneNumber; + + public AuthenticationCodeType type; + + public AuthenticationCodeType nextType; + + public int timeout; + + public AuthenticationCodeInfo() { + } + + public AuthenticationCodeInfo(String phoneNumber, AuthenticationCodeType type, AuthenticationCodeType nextType, int timeout) { + this.phoneNumber = phoneNumber; + this.type = type; + this.nextType = nextType; + this.timeout = timeout; + } + + public static final int CONSTRUCTOR = -860345416; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public abstract static class AuthenticationCodeType extends Object { + + public AuthenticationCodeType() { + } + } + + public static class AuthenticationCodeTypeTelegramMessage extends AuthenticationCodeType { + + public int length; + + public AuthenticationCodeTypeTelegramMessage() { + } + + public AuthenticationCodeTypeTelegramMessage(int length) { + this.length = length; + } + + public static final int CONSTRUCTOR = 2079628074; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class AuthenticationCodeTypeSms extends AuthenticationCodeType { + + public int length; + + public AuthenticationCodeTypeSms() { + } + + public AuthenticationCodeTypeSms(int length) { + this.length = length; + } + + public static final int CONSTRUCTOR = 962650760; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class AuthenticationCodeTypeSmsWord extends AuthenticationCodeType { + + public String firstLetter; + + public AuthenticationCodeTypeSmsWord() { + } + + public AuthenticationCodeTypeSmsWord(String firstLetter) { + this.firstLetter = firstLetter; + } + + public static final int CONSTRUCTOR = -1509540765; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class AuthenticationCodeTypeSmsPhrase extends AuthenticationCodeType { + + public String firstWord; + + public AuthenticationCodeTypeSmsPhrase() { + } + + public AuthenticationCodeTypeSmsPhrase(String firstWord) { + this.firstWord = firstWord; + } + + public static final int CONSTRUCTOR = 784108753; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class AuthenticationCodeTypeCall extends AuthenticationCodeType { + + public int length; + + public AuthenticationCodeTypeCall() { + } + + public AuthenticationCodeTypeCall(int length) { + this.length = length; + } + + public static final int CONSTRUCTOR = 1636265063; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class AuthenticationCodeTypeFlashCall extends AuthenticationCodeType { + + public String pattern; + + public AuthenticationCodeTypeFlashCall() { + } + + public AuthenticationCodeTypeFlashCall(String pattern) { + this.pattern = pattern; + } + + public static final int CONSTRUCTOR = 1395882402; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class AuthenticationCodeTypeMissedCall extends AuthenticationCodeType { + + public String phoneNumberPrefix; + + public int length; + + public AuthenticationCodeTypeMissedCall() { + } + + public AuthenticationCodeTypeMissedCall(String phoneNumberPrefix, int length) { + this.phoneNumberPrefix = phoneNumberPrefix; + this.length = length; + } + + public static final int CONSTRUCTOR = 700123783; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class AuthenticationCodeTypeFragment extends AuthenticationCodeType { + + public String url; + + public int length; + + public AuthenticationCodeTypeFragment() { + } + + public AuthenticationCodeTypeFragment(String url, int length) { + this.url = url; + this.length = length; + } + + public static final int CONSTRUCTOR = -2129693491; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class AuthenticationCodeTypeFirebaseAndroid extends AuthenticationCodeType { + + public FirebaseDeviceVerificationParameters deviceVerificationParameters; + + public int length; + + public AuthenticationCodeTypeFirebaseAndroid() { + } + + public AuthenticationCodeTypeFirebaseAndroid(FirebaseDeviceVerificationParameters deviceVerificationParameters, int length) { + this.deviceVerificationParameters = deviceVerificationParameters; + this.length = length; + } + + public static final int CONSTRUCTOR = 1872475422; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class AuthenticationCodeTypeFirebaseIos extends AuthenticationCodeType { + + public String receipt; + + public int pushTimeout; + + public int length; + + public AuthenticationCodeTypeFirebaseIos() { + } + + public AuthenticationCodeTypeFirebaseIos(String receipt, int pushTimeout, int length) { + this.receipt = receipt; + this.pushTimeout = pushTimeout; + this.length = length; + } + + public static final int CONSTRUCTOR = -11162989; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public abstract static class AuthorizationState extends Object { + + public AuthorizationState() { + } + } + + public static class AuthorizationStateWaitTdlibParameters extends AuthorizationState { + public AuthorizationStateWaitTdlibParameters() { + } + + public static final int CONSTRUCTOR = 904720988; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class AuthorizationStateWaitPhoneNumber extends AuthorizationState { + public AuthorizationStateWaitPhoneNumber() { + } + + public static final int CONSTRUCTOR = 306402531; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class AuthorizationStateWaitEmailAddress extends AuthorizationState { + + public boolean allowAppleId; + + public boolean allowGoogleId; + + public AuthorizationStateWaitEmailAddress() { + } + + public AuthorizationStateWaitEmailAddress(boolean allowAppleId, boolean allowGoogleId) { + this.allowAppleId = allowAppleId; + this.allowGoogleId = allowGoogleId; + } + + public static final int CONSTRUCTOR = 1040478663; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class AuthorizationStateWaitEmailCode extends AuthorizationState { + + public boolean allowAppleId; + + public boolean allowGoogleId; + + public EmailAddressAuthenticationCodeInfo codeInfo; + + public EmailAddressResetState emailAddressResetState; + + public AuthorizationStateWaitEmailCode() { + } + + public AuthorizationStateWaitEmailCode(boolean allowAppleId, boolean allowGoogleId, EmailAddressAuthenticationCodeInfo codeInfo, EmailAddressResetState emailAddressResetState) { + this.allowAppleId = allowAppleId; + this.allowGoogleId = allowGoogleId; + this.codeInfo = codeInfo; + this.emailAddressResetState = emailAddressResetState; + } + + public static final int CONSTRUCTOR = -1868627365; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class AuthorizationStateWaitCode extends AuthorizationState { + + public AuthenticationCodeInfo codeInfo; + + public AuthorizationStateWaitCode() { + } + + public AuthorizationStateWaitCode(AuthenticationCodeInfo codeInfo) { + this.codeInfo = codeInfo; + } + + public static final int CONSTRUCTOR = 52643073; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class AuthorizationStateWaitOtherDeviceConfirmation extends AuthorizationState { + + public String link; + + public AuthorizationStateWaitOtherDeviceConfirmation() { + } + + public AuthorizationStateWaitOtherDeviceConfirmation(String link) { + this.link = link; + } + + public static final int CONSTRUCTOR = 860166378; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class AuthorizationStateWaitRegistration extends AuthorizationState { + + public TermsOfService termsOfService; + + public AuthorizationStateWaitRegistration() { + } + + public AuthorizationStateWaitRegistration(TermsOfService termsOfService) { + this.termsOfService = termsOfService; + } + + public static final int CONSTRUCTOR = 550350511; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class AuthorizationStateWaitPassword extends AuthorizationState { + + public String passwordHint; + + public boolean hasRecoveryEmailAddress; + + public boolean hasPassportData; + + public String recoveryEmailAddressPattern; + + public AuthorizationStateWaitPassword() { + } + + public AuthorizationStateWaitPassword(String passwordHint, boolean hasRecoveryEmailAddress, boolean hasPassportData, String recoveryEmailAddressPattern) { + this.passwordHint = passwordHint; + this.hasRecoveryEmailAddress = hasRecoveryEmailAddress; + this.hasPassportData = hasPassportData; + this.recoveryEmailAddressPattern = recoveryEmailAddressPattern; + } + + public static final int CONSTRUCTOR = 112238030; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class AuthorizationStateReady extends AuthorizationState { + public AuthorizationStateReady() { + } + + public static final int CONSTRUCTOR = -1834871737; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class AuthorizationStateLoggingOut extends AuthorizationState { + public AuthorizationStateLoggingOut() { + } + + public static final int CONSTRUCTOR = 154449270; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class AuthorizationStateClosing extends AuthorizationState { + public AuthorizationStateClosing() { + } + + public static final int CONSTRUCTOR = 445855311; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class AuthorizationStateClosed extends AuthorizationState { + public AuthorizationStateClosed() { + } + + public static final int CONSTRUCTOR = 1526047584; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class AutoDownloadSettings extends Object { + + public boolean isAutoDownloadEnabled; + + public int maxPhotoFileSize; + + public long maxVideoFileSize; + + public long maxOtherFileSize; + + public int videoUploadBitrate; + + public boolean preloadLargeVideos; + + public boolean preloadNextAudio; + + public boolean preloadStories; + + public boolean useLessDataForCalls; + + public AutoDownloadSettings() { + } + + public AutoDownloadSettings(boolean isAutoDownloadEnabled, int maxPhotoFileSize, long maxVideoFileSize, long maxOtherFileSize, int videoUploadBitrate, boolean preloadLargeVideos, boolean preloadNextAudio, boolean preloadStories, boolean useLessDataForCalls) { + this.isAutoDownloadEnabled = isAutoDownloadEnabled; + this.maxPhotoFileSize = maxPhotoFileSize; + this.maxVideoFileSize = maxVideoFileSize; + this.maxOtherFileSize = maxOtherFileSize; + this.videoUploadBitrate = videoUploadBitrate; + this.preloadLargeVideos = preloadLargeVideos; + this.preloadNextAudio = preloadNextAudio; + this.preloadStories = preloadStories; + this.useLessDataForCalls = useLessDataForCalls; + } + + public static final int CONSTRUCTOR = 991433696; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class AutoDownloadSettingsPresets extends Object { + + public AutoDownloadSettings low; + + public AutoDownloadSettings medium; + + public AutoDownloadSettings high; + + public AutoDownloadSettingsPresets() { + } + + public AutoDownloadSettingsPresets(AutoDownloadSettings low, AutoDownloadSettings medium, AutoDownloadSettings high) { + this.low = low; + this.medium = medium; + this.high = high; + } + + public static final int CONSTRUCTOR = -782099166; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class AutosaveSettings extends Object { + + public ScopeAutosaveSettings privateChatSettings; + + public ScopeAutosaveSettings groupSettings; + + public ScopeAutosaveSettings channelSettings; + + public AutosaveSettingsException[] exceptions; + + public AutosaveSettings() { + } + + public AutosaveSettings(ScopeAutosaveSettings privateChatSettings, ScopeAutosaveSettings groupSettings, ScopeAutosaveSettings channelSettings, AutosaveSettingsException[] exceptions) { + this.privateChatSettings = privateChatSettings; + this.groupSettings = groupSettings; + this.channelSettings = channelSettings; + this.exceptions = exceptions; + } + + public static final int CONSTRUCTOR = 1629412502; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class AutosaveSettingsException extends Object { + + public long chatId; + + public ScopeAutosaveSettings settings; + + public AutosaveSettingsException() { + } + + public AutosaveSettingsException(long chatId, ScopeAutosaveSettings settings) { + this.chatId = chatId; + this.settings = settings; + } + + public static final int CONSTRUCTOR = 1483470280; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public abstract static class AutosaveSettingsScope extends Object { + + public AutosaveSettingsScope() { + } + } + + public static class AutosaveSettingsScopePrivateChats extends AutosaveSettingsScope { + public AutosaveSettingsScopePrivateChats() { + } + + public static final int CONSTRUCTOR = 1395227007; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class AutosaveSettingsScopeGroupChats extends AutosaveSettingsScope { + public AutosaveSettingsScopeGroupChats() { + } + + public static final int CONSTRUCTOR = 853544526; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class AutosaveSettingsScopeChannelChats extends AutosaveSettingsScope { + public AutosaveSettingsScopeChannelChats() { + } + + public static final int CONSTRUCTOR = -499572783; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class AutosaveSettingsScopeChat extends AutosaveSettingsScope { + + public long chatId; + + public AutosaveSettingsScopeChat() { + } + + public AutosaveSettingsScopeChat(long chatId) { + this.chatId = chatId; + } + + public static final int CONSTRUCTOR = -1632255255; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class AvailableReaction extends Object { + + public ReactionType type; + + public boolean needsPremium; + + public AvailableReaction() { + } + + public AvailableReaction(ReactionType type, boolean needsPremium) { + this.type = type; + this.needsPremium = needsPremium; + } + + public static final int CONSTRUCTOR = -117292153; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class AvailableReactions extends Object { + + public AvailableReaction[] topReactions; + + public AvailableReaction[] recentReactions; + + public AvailableReaction[] popularReactions; + + public boolean allowCustomEmoji; + + public boolean areTags; + + public ReactionUnavailabilityReason unavailabilityReason; + + public AvailableReactions() { + } + + public AvailableReactions(AvailableReaction[] topReactions, AvailableReaction[] recentReactions, AvailableReaction[] popularReactions, boolean allowCustomEmoji, boolean areTags, ReactionUnavailabilityReason unavailabilityReason) { + this.topReactions = topReactions; + this.recentReactions = recentReactions; + this.popularReactions = popularReactions; + this.allowCustomEmoji = allowCustomEmoji; + this.areTags = areTags; + this.unavailabilityReason = unavailabilityReason; + } + + public static final int CONSTRUCTOR = 912529522; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class Background extends Object { + + public long id; + + public boolean isDefault; + + public boolean isDark; + + public String name; + + public Document document; + + public BackgroundType type; + + public Background() { + } + + public Background(long id, boolean isDefault, boolean isDark, String name, Document document, BackgroundType type) { + this.id = id; + this.isDefault = isDefault; + this.isDark = isDark; + this.name = name; + this.document = document; + this.type = type; + } + + public static final int CONSTRUCTOR = -429971172; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public abstract static class BackgroundFill extends Object { + + public BackgroundFill() { + } + } + + public static class BackgroundFillSolid extends BackgroundFill { + + public int color; + + public BackgroundFillSolid() { + } + + public BackgroundFillSolid(int color) { + this.color = color; + } + + public static final int CONSTRUCTOR = 1010678813; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class BackgroundFillGradient extends BackgroundFill { + + public int topColor; + + public int bottomColor; + + public int rotationAngle; + + public BackgroundFillGradient() { + } + + public BackgroundFillGradient(int topColor, int bottomColor, int rotationAngle) { + this.topColor = topColor; + this.bottomColor = bottomColor; + this.rotationAngle = rotationAngle; + } + + public static final int CONSTRUCTOR = -1839206017; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class BackgroundFillFreeformGradient extends BackgroundFill { + + public int[] colors; + + public BackgroundFillFreeformGradient() { + } + + public BackgroundFillFreeformGradient(int[] colors) { + this.colors = colors; + } + + public static final int CONSTRUCTOR = -1145469255; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public abstract static class BackgroundType extends Object { + + public BackgroundType() { + } + } + + public static class BackgroundTypeWallpaper extends BackgroundType { + + public boolean isBlurred; + + public boolean isMoving; + + public BackgroundTypeWallpaper() { + } + + public BackgroundTypeWallpaper(boolean isBlurred, boolean isMoving) { + this.isBlurred = isBlurred; + this.isMoving = isMoving; + } + + public static final int CONSTRUCTOR = 1972128891; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class BackgroundTypePattern extends BackgroundType { + + public BackgroundFill fill; + + public int intensity; + + public boolean isInverted; + + public boolean isMoving; + + public BackgroundTypePattern() { + } + + public BackgroundTypePattern(BackgroundFill fill, int intensity, boolean isInverted, boolean isMoving) { + this.fill = fill; + this.intensity = intensity; + this.isInverted = isInverted; + this.isMoving = isMoving; + } + + public static final int CONSTRUCTOR = 1290213117; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class BackgroundTypeFill extends BackgroundType { + + public BackgroundFill fill; + + public BackgroundTypeFill() { + } + + public BackgroundTypeFill(BackgroundFill fill) { + this.fill = fill; + } + + public static final int CONSTRUCTOR = 993008684; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class BackgroundTypeChatTheme extends BackgroundType { + + public String themeName; + + public BackgroundTypeChatTheme() { + } + + public BackgroundTypeChatTheme(String themeName) { + this.themeName = themeName; + } + + public static final int CONSTRUCTOR = 1299879762; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class Backgrounds extends Object { + + public Background[] backgrounds; + + public Backgrounds() { + } + + public Backgrounds(Background[] backgrounds) { + this.backgrounds = backgrounds; + } + + public static final int CONSTRUCTOR = 724728704; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class BankCardActionOpenUrl extends Object { + + public String text; + + public String url; + + public BankCardActionOpenUrl() { + } + + public BankCardActionOpenUrl(String text, String url) { + this.text = text; + this.url = url; + } + + public static final int CONSTRUCTOR = -196454267; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class BankCardInfo extends Object { + + public String title; + + public BankCardActionOpenUrl[] actions; + + public BankCardInfo() { + } + + public BankCardInfo(String title, BankCardActionOpenUrl[] actions) { + this.title = title; + this.actions = actions; + } + + public static final int CONSTRUCTOR = -2116647730; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class BasicGroup extends Object { + + public long id; + + public int memberCount; + + public ChatMemberStatus status; + + public boolean isActive; + + public long upgradedToSupergroupId; + + public BasicGroup() { + } + + public BasicGroup(long id, int memberCount, ChatMemberStatus status, boolean isActive, long upgradedToSupergroupId) { + this.id = id; + this.memberCount = memberCount; + this.status = status; + this.isActive = isActive; + this.upgradedToSupergroupId = upgradedToSupergroupId; + } + + public static final int CONSTRUCTOR = -194767217; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class BasicGroupFullInfo extends Object { + + public ChatPhoto photo; + + public String description; + + public long creatorUserId; + + public ChatMember[] members; + + public boolean canHideMembers; + + public boolean canToggleAggressiveAntiSpam; + + public ChatInviteLink inviteLink; + + public BotCommands[] botCommands; + + public BasicGroupFullInfo() { + } + + public BasicGroupFullInfo(ChatPhoto photo, String description, long creatorUserId, ChatMember[] members, boolean canHideMembers, boolean canToggleAggressiveAntiSpam, ChatInviteLink inviteLink, BotCommands[] botCommands) { + this.photo = photo; + this.description = description; + this.creatorUserId = creatorUserId; + this.members = members; + this.canHideMembers = canHideMembers; + this.canToggleAggressiveAntiSpam = canToggleAggressiveAntiSpam; + this.inviteLink = inviteLink; + this.botCommands = botCommands; + } + + public static final int CONSTRUCTOR = -1879035520; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class Birthdate extends Object { + + public int day; + + public int month; + + public int year; + + public Birthdate() { + } + + public Birthdate(int day, int month, int year) { + this.day = day; + this.month = month; + this.year = year; + } + + public static final int CONSTRUCTOR = 1644064030; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public abstract static class BlockList extends Object { + + public BlockList() { + } + } + + public static class BlockListMain extends BlockList { + public BlockListMain() { + } + + public static final int CONSTRUCTOR = 1352930172; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class BlockListStories extends BlockList { + public BlockListStories() { + } + + public static final int CONSTRUCTOR = 103323228; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class BotCommand extends Object { + + public String command; + + public String description; + + public BotCommand() { + } + + public BotCommand(String command, String description) { + this.command = command; + this.description = description; + } + + public static final int CONSTRUCTOR = -1032140601; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public abstract static class BotCommandScope extends Object { + + public BotCommandScope() { + } + } + + public static class BotCommandScopeDefault extends BotCommandScope { + public BotCommandScopeDefault() { + } + + public static final int CONSTRUCTOR = 795652779; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class BotCommandScopeAllPrivateChats extends BotCommandScope { + public BotCommandScopeAllPrivateChats() { + } + + public static final int CONSTRUCTOR = -344889543; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class BotCommandScopeAllGroupChats extends BotCommandScope { + public BotCommandScopeAllGroupChats() { + } + + public static final int CONSTRUCTOR = -981088162; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class BotCommandScopeAllChatAdministrators extends BotCommandScope { + public BotCommandScopeAllChatAdministrators() { + } + + public static final int CONSTRUCTOR = 1998329169; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class BotCommandScopeChat extends BotCommandScope { + + public long chatId; + + public BotCommandScopeChat() { + } + + public BotCommandScopeChat(long chatId) { + this.chatId = chatId; + } + + public static final int CONSTRUCTOR = -430234971; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class BotCommandScopeChatAdministrators extends BotCommandScope { + + public long chatId; + + public BotCommandScopeChatAdministrators() { + } + + public BotCommandScopeChatAdministrators(long chatId) { + this.chatId = chatId; + } + + public static final int CONSTRUCTOR = 1119682126; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class BotCommandScopeChatMember extends BotCommandScope { + + public long chatId; + + public long userId; + + public BotCommandScopeChatMember() { + } + + public BotCommandScopeChatMember(long chatId, long userId) { + this.chatId = chatId; + this.userId = userId; + } + + public static final int CONSTRUCTOR = -211380494; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class BotCommands extends Object { + + public long botUserId; + + public BotCommand[] commands; + + public BotCommands() { + } + + public BotCommands(long botUserId, BotCommand[] commands) { + this.botUserId = botUserId; + this.commands = commands; + } + + public static final int CONSTRUCTOR = 1741364468; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class BotInfo extends Object { + + public String shortDescription; + + public String description; + + public Photo photo; + + public Animation animation; + + public BotMenuButton menuButton; + + public BotCommand[] commands; + + public String privacyPolicyUrl; + + public ChatAdministratorRights defaultGroupAdministratorRights; + + public ChatAdministratorRights defaultChannelAdministratorRights; + + public AffiliateProgramInfo affiliateProgram; + + public int webAppBackgroundLightColor; + + public int webAppBackgroundDarkColor; + + public int webAppHeaderLightColor; + + public int webAppHeaderDarkColor; + + public boolean canGetRevenueStatistics; + + public boolean canManageEmojiStatus; + + public boolean hasMediaPreviews; + + public InternalLinkType editCommandsLink; + + public InternalLinkType editDescriptionLink; + + public InternalLinkType editDescriptionMediaLink; + + public InternalLinkType editSettingsLink; + + public BotInfo() { + } + + public BotInfo(String shortDescription, String description, Photo photo, Animation animation, BotMenuButton menuButton, BotCommand[] commands, String privacyPolicyUrl, ChatAdministratorRights defaultGroupAdministratorRights, ChatAdministratorRights defaultChannelAdministratorRights, AffiliateProgramInfo affiliateProgram, int webAppBackgroundLightColor, int webAppBackgroundDarkColor, int webAppHeaderLightColor, int webAppHeaderDarkColor, boolean canGetRevenueStatistics, boolean canManageEmojiStatus, boolean hasMediaPreviews, InternalLinkType editCommandsLink, InternalLinkType editDescriptionLink, InternalLinkType editDescriptionMediaLink, InternalLinkType editSettingsLink) { + this.shortDescription = shortDescription; + this.description = description; + this.photo = photo; + this.animation = animation; + this.menuButton = menuButton; + this.commands = commands; + this.privacyPolicyUrl = privacyPolicyUrl; + this.defaultGroupAdministratorRights = defaultGroupAdministratorRights; + this.defaultChannelAdministratorRights = defaultChannelAdministratorRights; + this.affiliateProgram = affiliateProgram; + this.webAppBackgroundLightColor = webAppBackgroundLightColor; + this.webAppBackgroundDarkColor = webAppBackgroundDarkColor; + this.webAppHeaderLightColor = webAppHeaderLightColor; + this.webAppHeaderDarkColor = webAppHeaderDarkColor; + this.canGetRevenueStatistics = canGetRevenueStatistics; + this.canManageEmojiStatus = canManageEmojiStatus; + this.hasMediaPreviews = hasMediaPreviews; + this.editCommandsLink = editCommandsLink; + this.editDescriptionLink = editDescriptionLink; + this.editDescriptionMediaLink = editDescriptionMediaLink; + this.editSettingsLink = editSettingsLink; + } + + public static final int CONSTRUCTOR = 759416187; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class BotMediaPreview extends Object { + + public int date; + + public StoryContent content; + + public BotMediaPreview() { + } + + public BotMediaPreview(int date, StoryContent content) { + this.date = date; + this.content = content; + } + + public static final int CONSTRUCTOR = -1632264984; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class BotMediaPreviewInfo extends Object { + + public BotMediaPreview[] previews; + + public String[] languageCodes; + + public BotMediaPreviewInfo() { + } + + public BotMediaPreviewInfo(BotMediaPreview[] previews, String[] languageCodes) { + this.previews = previews; + this.languageCodes = languageCodes; + } + + public static final int CONSTRUCTOR = -284783012; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class BotMediaPreviews extends Object { + + public BotMediaPreview[] previews; + + public BotMediaPreviews() { + } + + public BotMediaPreviews(BotMediaPreview[] previews) { + this.previews = previews; + } + + public static final int CONSTRUCTOR = -1787720586; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class BotMenuButton extends Object { + + public String text; + + public String url; + + public BotMenuButton() { + } + + public BotMenuButton(String text, String url) { + this.text = text; + this.url = url; + } + + public static final int CONSTRUCTOR = -944407322; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public abstract static class BotWriteAccessAllowReason extends Object { + + public BotWriteAccessAllowReason() { + } + } + + public static class BotWriteAccessAllowReasonConnectedWebsite extends BotWriteAccessAllowReason { + + public String domainName; + + public BotWriteAccessAllowReasonConnectedWebsite() { + } + + public BotWriteAccessAllowReasonConnectedWebsite(String domainName) { + this.domainName = domainName; + } + + public static final int CONSTRUCTOR = 2016325603; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class BotWriteAccessAllowReasonAddedToAttachmentMenu extends BotWriteAccessAllowReason { + public BotWriteAccessAllowReasonAddedToAttachmentMenu() { + } + + public static final int CONSTRUCTOR = -2104795235; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class BotWriteAccessAllowReasonLaunchedWebApp extends BotWriteAccessAllowReason { + + public WebApp webApp; + + public BotWriteAccessAllowReasonLaunchedWebApp() { + } + + public BotWriteAccessAllowReasonLaunchedWebApp(WebApp webApp) { + this.webApp = webApp; + } + + public static final int CONSTRUCTOR = -240843561; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class BotWriteAccessAllowReasonAcceptedRequest extends BotWriteAccessAllowReason { + public BotWriteAccessAllowReasonAcceptedRequest() { + } + + public static final int CONSTRUCTOR = -1983497220; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public abstract static class BusinessAwayMessageSchedule extends Object { + + public BusinessAwayMessageSchedule() { + } + } + + public static class BusinessAwayMessageScheduleAlways extends BusinessAwayMessageSchedule { + public BusinessAwayMessageScheduleAlways() { + } + + public static final int CONSTRUCTOR = -910564679; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class BusinessAwayMessageScheduleOutsideOfOpeningHours extends BusinessAwayMessageSchedule { + public BusinessAwayMessageScheduleOutsideOfOpeningHours() { + } + + public static final int CONSTRUCTOR = -968630506; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class BusinessAwayMessageScheduleCustom extends BusinessAwayMessageSchedule { + + public int startDate; + + public int endDate; + + public BusinessAwayMessageScheduleCustom() { + } + + public BusinessAwayMessageScheduleCustom(int startDate, int endDate) { + this.startDate = startDate; + this.endDate = endDate; + } + + public static final int CONSTRUCTOR = -1967108654; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class BusinessAwayMessageSettings extends Object { + + public int shortcutId; + + public BusinessRecipients recipients; + + public BusinessAwayMessageSchedule schedule; + + public boolean offlineOnly; + + public BusinessAwayMessageSettings() { + } + + public BusinessAwayMessageSettings(int shortcutId, BusinessRecipients recipients, BusinessAwayMessageSchedule schedule, boolean offlineOnly) { + this.shortcutId = shortcutId; + this.recipients = recipients; + this.schedule = schedule; + this.offlineOnly = offlineOnly; + } + + public static final int CONSTRUCTOR = 353084137; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class BusinessBotManageBar extends Object { + + public long botUserId; + + public String manageUrl; + + public boolean isBotPaused; + + public boolean canBotReply; + + public BusinessBotManageBar() { + } + + public BusinessBotManageBar(long botUserId, String manageUrl, boolean isBotPaused, boolean canBotReply) { + this.botUserId = botUserId; + this.manageUrl = manageUrl; + this.isBotPaused = isBotPaused; + this.canBotReply = canBotReply; + } + + public static final int CONSTRUCTOR = -311399806; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class BusinessChatLink extends Object { + + public String link; + + public FormattedText text; + + public String title; + + public int viewCount; + + public BusinessChatLink() { + } + + public BusinessChatLink(String link, FormattedText text, String title, int viewCount) { + this.link = link; + this.text = text; + this.title = title; + this.viewCount = viewCount; + } + + public static final int CONSTRUCTOR = -1902539901; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class BusinessChatLinkInfo extends Object { + + public long chatId; + + public FormattedText text; + + public BusinessChatLinkInfo() { + } + + public BusinessChatLinkInfo(long chatId, FormattedText text) { + this.chatId = chatId; + this.text = text; + } + + public static final int CONSTRUCTOR = -864865105; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class BusinessChatLinks extends Object { + + public BusinessChatLink[] links; + + public BusinessChatLinks() { + } + + public BusinessChatLinks(BusinessChatLink[] links) { + this.links = links; + } + + public static final int CONSTRUCTOR = 79067036; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class BusinessConnectedBot extends Object { + + public long botUserId; + + public BusinessRecipients recipients; + + public boolean canReply; + + public BusinessConnectedBot() { + } + + public BusinessConnectedBot(long botUserId, BusinessRecipients recipients, boolean canReply) { + this.botUserId = botUserId; + this.recipients = recipients; + this.canReply = canReply; + } + + public static final int CONSTRUCTOR = -330241321; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class BusinessConnection extends Object { + + public String id; + + public long userId; + + public long userChatId; + + public int date; + + public boolean canReply; + + public boolean isEnabled; + + public BusinessConnection() { + } + + public BusinessConnection(String id, long userId, long userChatId, int date, boolean canReply, boolean isEnabled) { + this.id = id; + this.userId = userId; + this.userChatId = userChatId; + this.date = date; + this.canReply = canReply; + this.isEnabled = isEnabled; + } + + public static final int CONSTRUCTOR = 1144447540; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public abstract static class BusinessFeature extends Object { + + public BusinessFeature() { + } + } + + public static class BusinessFeatureLocation extends BusinessFeature { + public BusinessFeatureLocation() { + } + + public static final int CONSTRUCTOR = -1064304004; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class BusinessFeatureOpeningHours extends BusinessFeature { + public BusinessFeatureOpeningHours() { + } + + public static final int CONSTRUCTOR = 461054701; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class BusinessFeatureQuickReplies extends BusinessFeature { + public BusinessFeatureQuickReplies() { + } + + public static final int CONSTRUCTOR = -1674048894; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class BusinessFeatureGreetingMessage extends BusinessFeature { + public BusinessFeatureGreetingMessage() { + } + + public static final int CONSTRUCTOR = 1789424756; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class BusinessFeatureAwayMessage extends BusinessFeature { + public BusinessFeatureAwayMessage() { + } + + public static final int CONSTRUCTOR = 1090119901; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class BusinessFeatureAccountLinks extends BusinessFeature { + public BusinessFeatureAccountLinks() { + } + + public static final int CONSTRUCTOR = 1878693646; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class BusinessFeatureStartPage extends BusinessFeature { + public BusinessFeatureStartPage() { + } + + public static final int CONSTRUCTOR = 401471457; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class BusinessFeatureBots extends BusinessFeature { + public BusinessFeatureBots() { + } + + public static final int CONSTRUCTOR = 275084773; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class BusinessFeatureEmojiStatus extends BusinessFeature { + public BusinessFeatureEmojiStatus() { + } + + public static final int CONSTRUCTOR = -846282523; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class BusinessFeatureChatFolderTags extends BusinessFeature { + public BusinessFeatureChatFolderTags() { + } + + public static final int CONSTRUCTOR = -543880918; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class BusinessFeatureUpgradedStories extends BusinessFeature { + public BusinessFeatureUpgradedStories() { + } + + public static final int CONSTRUCTOR = -1812245550; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class BusinessFeaturePromotionAnimation extends Object { + + public BusinessFeature feature; + + public Animation animation; + + public BusinessFeaturePromotionAnimation() { + } + + public BusinessFeaturePromotionAnimation(BusinessFeature feature, Animation animation) { + this.feature = feature; + this.animation = animation; + } + + public static final int CONSTRUCTOR = 2047174666; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class BusinessFeatures extends Object { + + public BusinessFeature[] features; + + public BusinessFeatures() { + } + + public BusinessFeatures(BusinessFeature[] features) { + this.features = features; + } + + public static final int CONSTRUCTOR = -1532468184; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class BusinessGreetingMessageSettings extends Object { + + public int shortcutId; + + public BusinessRecipients recipients; + + public int inactivityDays; + + public BusinessGreetingMessageSettings() { + } + + public BusinessGreetingMessageSettings(int shortcutId, BusinessRecipients recipients, int inactivityDays) { + this.shortcutId = shortcutId; + this.recipients = recipients; + this.inactivityDays = inactivityDays; + } + + public static final int CONSTRUCTOR = 1689140754; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class BusinessInfo extends Object { + + public BusinessLocation location; + + public BusinessOpeningHours openingHours; + + public BusinessOpeningHours localOpeningHours; + + public int nextOpenIn; + + public int nextCloseIn; + + public BusinessGreetingMessageSettings greetingMessageSettings; + + public BusinessAwayMessageSettings awayMessageSettings; + + public BusinessStartPage startPage; + + public BusinessInfo() { + } + + public BusinessInfo(BusinessLocation location, BusinessOpeningHours openingHours, BusinessOpeningHours localOpeningHours, int nextOpenIn, int nextCloseIn, BusinessGreetingMessageSettings greetingMessageSettings, BusinessAwayMessageSettings awayMessageSettings, BusinessStartPage startPage) { + this.location = location; + this.openingHours = openingHours; + this.localOpeningHours = localOpeningHours; + this.nextOpenIn = nextOpenIn; + this.nextCloseIn = nextCloseIn; + this.greetingMessageSettings = greetingMessageSettings; + this.awayMessageSettings = awayMessageSettings; + this.startPage = startPage; + } + + public static final int CONSTRUCTOR = 1428179342; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class BusinessLocation extends Object { + + public Location location; + + public String address; + + public BusinessLocation() { + } + + public BusinessLocation(Location location, String address) { + this.location = location; + this.address = address; + } + + public static final int CONSTRUCTOR = -1084969126; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class BusinessMessage extends Object { + + public Message message; + + public Message replyToMessage; + + public BusinessMessage() { + } + + public BusinessMessage(Message message, Message replyToMessage) { + this.message = message; + this.replyToMessage = replyToMessage; + } + + public static final int CONSTRUCTOR = -94353850; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class BusinessMessages extends Object { + + public BusinessMessage[] messages; + + public BusinessMessages() { + } + + public BusinessMessages(BusinessMessage[] messages) { + this.messages = messages; + } + + public static final int CONSTRUCTOR = -764562473; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class BusinessOpeningHours extends Object { + + public String timeZoneId; + + public BusinessOpeningHoursInterval[] openingHours; + + public BusinessOpeningHours() { + } + + public BusinessOpeningHours(String timeZoneId, BusinessOpeningHoursInterval[] openingHours) { + this.timeZoneId = timeZoneId; + this.openingHours = openingHours; + } + + public static final int CONSTRUCTOR = 816603700; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class BusinessOpeningHoursInterval extends Object { + + public int startMinute; + + public int endMinute; + + public BusinessOpeningHoursInterval() { + } + + public BusinessOpeningHoursInterval(int startMinute, int endMinute) { + this.startMinute = startMinute; + this.endMinute = endMinute; + } + + public static final int CONSTRUCTOR = -1108322732; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class BusinessRecipients extends Object { + + public long[] chatIds; + + public long[] excludedChatIds; + + public boolean selectExistingChats; + + public boolean selectNewChats; + + public boolean selectContacts; + + public boolean selectNonContacts; + + public boolean excludeSelected; + + public BusinessRecipients() { + } + + public BusinessRecipients(long[] chatIds, long[] excludedChatIds, boolean selectExistingChats, boolean selectNewChats, boolean selectContacts, boolean selectNonContacts, boolean excludeSelected) { + this.chatIds = chatIds; + this.excludedChatIds = excludedChatIds; + this.selectExistingChats = selectExistingChats; + this.selectNewChats = selectNewChats; + this.selectContacts = selectContacts; + this.selectNonContacts = selectNonContacts; + this.excludeSelected = excludeSelected; + } + + public static final int CONSTRUCTOR = 868656909; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class BusinessStartPage extends Object { + + public String title; + + public String message; + + public Sticker sticker; + + public BusinessStartPage() { + } + + public BusinessStartPage(String title, String message, Sticker sticker) { + this.title = title; + this.message = message; + this.sticker = sticker; + } + + public static final int CONSTRUCTOR = -1616709681; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class Call extends Object { + + public int id; + + public long userId; + + public boolean isOutgoing; + + public boolean isVideo; + + public CallState state; + + public Call() { + } + + public Call(int id, long userId, boolean isOutgoing, boolean isVideo, CallState state) { + this.id = id; + this.userId = userId; + this.isOutgoing = isOutgoing; + this.isVideo = isVideo; + this.state = state; + } + + public static final int CONSTRUCTOR = 920360804; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public abstract static class CallDiscardReason extends Object { + + public CallDiscardReason() { + } + } + + public static class CallDiscardReasonEmpty extends CallDiscardReason { + public CallDiscardReasonEmpty() { + } + + public static final int CONSTRUCTOR = -1258917949; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class CallDiscardReasonMissed extends CallDiscardReason { + public CallDiscardReasonMissed() { + } + + public static final int CONSTRUCTOR = 1680358012; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class CallDiscardReasonDeclined extends CallDiscardReason { + public CallDiscardReasonDeclined() { + } + + public static final int CONSTRUCTOR = -1729926094; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class CallDiscardReasonDisconnected extends CallDiscardReason { + public CallDiscardReasonDisconnected() { + } + + public static final int CONSTRUCTOR = -1342872670; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class CallDiscardReasonHungUp extends CallDiscardReason { + public CallDiscardReasonHungUp() { + } + + public static final int CONSTRUCTOR = 438216166; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class CallId extends Object { + + public int id; + + public CallId() { + } + + public CallId(int id) { + this.id = id; + } + + public static final int CONSTRUCTOR = 65717769; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public abstract static class CallProblem extends Object { + + public CallProblem() { + } + } + + public static class CallProblemEcho extends CallProblem { + public CallProblemEcho() { + } + + public static final int CONSTRUCTOR = 801116548; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class CallProblemNoise extends CallProblem { + public CallProblemNoise() { + } + + public static final int CONSTRUCTOR = 1053065359; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class CallProblemInterruptions extends CallProblem { + public CallProblemInterruptions() { + } + + public static final int CONSTRUCTOR = 1119493218; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class CallProblemDistortedSpeech extends CallProblem { + public CallProblemDistortedSpeech() { + } + + public static final int CONSTRUCTOR = 379960581; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class CallProblemSilentLocal extends CallProblem { + public CallProblemSilentLocal() { + } + + public static final int CONSTRUCTOR = 253652790; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class CallProblemSilentRemote extends CallProblem { + public CallProblemSilentRemote() { + } + + public static final int CONSTRUCTOR = 573634714; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class CallProblemDropped extends CallProblem { + public CallProblemDropped() { + } + + public static final int CONSTRUCTOR = -1207311487; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class CallProblemDistortedVideo extends CallProblem { + public CallProblemDistortedVideo() { + } + + public static final int CONSTRUCTOR = 385245706; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class CallProblemPixelatedVideo extends CallProblem { + public CallProblemPixelatedVideo() { + } + + public static final int CONSTRUCTOR = 2115315411; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class CallProtocol extends Object { + + public boolean udpP2p; + + public boolean udpReflector; + + public int minLayer; + + public int maxLayer; + + public String[] libraryVersions; + + public CallProtocol() { + } + + public CallProtocol(boolean udpP2p, boolean udpReflector, int minLayer, int maxLayer, String[] libraryVersions) { + this.udpP2p = udpP2p; + this.udpReflector = udpReflector; + this.minLayer = minLayer; + this.maxLayer = maxLayer; + this.libraryVersions = libraryVersions; + } + + public static final int CONSTRUCTOR = -1075562897; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class CallServer extends Object { + + public long id; + + public String ipAddress; + + public String ipv6Address; + + public int port; + + public CallServerType type; + + public CallServer() { + } + + public CallServer(long id, String ipAddress, String ipv6Address, int port, CallServerType type) { + this.id = id; + this.ipAddress = ipAddress; + this.ipv6Address = ipv6Address; + this.port = port; + this.type = type; + } + + public static final int CONSTRUCTOR = 1865932695; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public abstract static class CallServerType extends Object { + + public CallServerType() { + } + } + + public static class CallServerTypeTelegramReflector extends CallServerType { + + public byte[] peerTag; + + public boolean isTcp; + + public CallServerTypeTelegramReflector() { + } + + public CallServerTypeTelegramReflector(byte[] peerTag, boolean isTcp) { + this.peerTag = peerTag; + this.isTcp = isTcp; + } + + public static final int CONSTRUCTOR = 850343189; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class CallServerTypeWebrtc extends CallServerType { + + public String username; + + public String password; + + public boolean supportsTurn; + + public boolean supportsStun; + + public CallServerTypeWebrtc() { + } + + public CallServerTypeWebrtc(String username, String password, boolean supportsTurn, boolean supportsStun) { + this.username = username; + this.password = password; + this.supportsTurn = supportsTurn; + this.supportsStun = supportsStun; + } + + public static final int CONSTRUCTOR = 1250622821; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public abstract static class CallState extends Object { + + public CallState() { + } + } + + public static class CallStatePending extends CallState { + + public boolean isCreated; + + public boolean isReceived; + + public CallStatePending() { + } + + public CallStatePending(boolean isCreated, boolean isReceived) { + this.isCreated = isCreated; + this.isReceived = isReceived; + } + + public static final int CONSTRUCTOR = 1073048620; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class CallStateExchangingKeys extends CallState { + public CallStateExchangingKeys() { + } + + public static final int CONSTRUCTOR = -1848149403; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class CallStateReady extends CallState { + + public CallProtocol protocol; + + public CallServer[] servers; + + public String config; + + public byte[] encryptionKey; + + public String[] emojis; + + public boolean allowP2p; + + public String customParameters; + + public CallStateReady() { + } + + public CallStateReady(CallProtocol protocol, CallServer[] servers, String config, byte[] encryptionKey, String[] emojis, boolean allowP2p, String customParameters) { + this.protocol = protocol; + this.servers = servers; + this.config = config; + this.encryptionKey = encryptionKey; + this.emojis = emojis; + this.allowP2p = allowP2p; + this.customParameters = customParameters; + } + + public static final int CONSTRUCTOR = 731619651; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class CallStateHangingUp extends CallState { + public CallStateHangingUp() { + } + + public static final int CONSTRUCTOR = -2133790038; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class CallStateDiscarded extends CallState { + + public CallDiscardReason reason; + + public boolean needRating; + + public boolean needDebugInformation; + + public boolean needLog; + + public CallStateDiscarded() { + } + + public CallStateDiscarded(CallDiscardReason reason, boolean needRating, boolean needDebugInformation, boolean needLog) { + this.reason = reason; + this.needRating = needRating; + this.needDebugInformation = needDebugInformation; + this.needLog = needLog; + } + + public static final int CONSTRUCTOR = 1394310213; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class CallStateError extends CallState { + + public Error error; + + public CallStateError() { + } + + public CallStateError(Error error) { + this.error = error; + } + + public static final int CONSTRUCTOR = -975215467; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class CallbackQueryAnswer extends Object { + + public String text; + + public boolean showAlert; + + public String url; + + public CallbackQueryAnswer() { + } + + public CallbackQueryAnswer(String text, boolean showAlert, String url) { + this.text = text; + this.showAlert = showAlert; + this.url = url; + } + + public static final int CONSTRUCTOR = 360867933; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public abstract static class CallbackQueryPayload extends Object { + + public CallbackQueryPayload() { + } + } + + public static class CallbackQueryPayloadData extends CallbackQueryPayload { + + public byte[] data; + + public CallbackQueryPayloadData() { + } + + public CallbackQueryPayloadData(byte[] data) { + this.data = data; + } + + public static final int CONSTRUCTOR = -1977729946; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class CallbackQueryPayloadDataWithPassword extends CallbackQueryPayload { + + public String password; + + public byte[] data; + + public CallbackQueryPayloadDataWithPassword() { + } + + public CallbackQueryPayloadDataWithPassword(String password, byte[] data) { + this.password = password; + this.data = data; + } + + public static final int CONSTRUCTOR = 1340266738; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class CallbackQueryPayloadGame extends CallbackQueryPayload { + + public String gameShortName; + + public CallbackQueryPayloadGame() { + } + + public CallbackQueryPayloadGame(String gameShortName) { + this.gameShortName = gameShortName; + } + + public static final int CONSTRUCTOR = 1303571512; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public abstract static class CanSendMessageToUserResult extends Object { + + public CanSendMessageToUserResult() { + } + } + + public static class CanSendMessageToUserResultOk extends CanSendMessageToUserResult { + public CanSendMessageToUserResultOk() { + } + + public static final int CONSTRUCTOR = 1530583042; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class CanSendMessageToUserResultUserIsDeleted extends CanSendMessageToUserResult { + public CanSendMessageToUserResultUserIsDeleted() { + } + + public static final int CONSTRUCTOR = -1944639903; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class CanSendMessageToUserResultUserRestrictsNewChats extends CanSendMessageToUserResult { + public CanSendMessageToUserResultUserRestrictsNewChats() { + } + + public static final int CONSTRUCTOR = 1929699797; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public abstract static class CanSendStoryResult extends Object { + + public CanSendStoryResult() { + } + } + + public static class CanSendStoryResultOk extends CanSendStoryResult { + public CanSendStoryResultOk() { + } + + public static final int CONSTRUCTOR = 1346171133; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class CanSendStoryResultPremiumNeeded extends CanSendStoryResult { + public CanSendStoryResultPremiumNeeded() { + } + + public static final int CONSTRUCTOR = 1451220585; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class CanSendStoryResultBoostNeeded extends CanSendStoryResult { + public CanSendStoryResultBoostNeeded() { + } + + public static final int CONSTRUCTOR = -1637816017; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class CanSendStoryResultActiveStoryLimitExceeded extends CanSendStoryResult { + public CanSendStoryResultActiveStoryLimitExceeded() { + } + + public static final int CONSTRUCTOR = -1344689450; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class CanSendStoryResultWeeklyLimitExceeded extends CanSendStoryResult { + + public int retryAfter; + + public CanSendStoryResultWeeklyLimitExceeded() { + } + + public CanSendStoryResultWeeklyLimitExceeded(int retryAfter) { + this.retryAfter = retryAfter; + } + + public static final int CONSTRUCTOR = 323068088; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class CanSendStoryResultMonthlyLimitExceeded extends CanSendStoryResult { + + public int retryAfter; + + public CanSendStoryResultMonthlyLimitExceeded() { + } + + public CanSendStoryResultMonthlyLimitExceeded(int retryAfter) { + this.retryAfter = retryAfter; + } + + public static final int CONSTRUCTOR = -578665771; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public abstract static class CanTransferOwnershipResult extends Object { + + public CanTransferOwnershipResult() { + } + } + + public static class CanTransferOwnershipResultOk extends CanTransferOwnershipResult { + public CanTransferOwnershipResultOk() { + } + + public static final int CONSTRUCTOR = -89881021; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class CanTransferOwnershipResultPasswordNeeded extends CanTransferOwnershipResult { + public CanTransferOwnershipResultPasswordNeeded() { + } + + public static final int CONSTRUCTOR = 1548372703; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class CanTransferOwnershipResultPasswordTooFresh extends CanTransferOwnershipResult { + + public int retryAfter; + + public CanTransferOwnershipResultPasswordTooFresh() { + } + + public CanTransferOwnershipResultPasswordTooFresh(int retryAfter) { + this.retryAfter = retryAfter; + } + + public static final int CONSTRUCTOR = 811440913; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class CanTransferOwnershipResultSessionTooFresh extends CanTransferOwnershipResult { + + public int retryAfter; + + public CanTransferOwnershipResultSessionTooFresh() { + } + + public CanTransferOwnershipResultSessionTooFresh(int retryAfter) { + this.retryAfter = retryAfter; + } + + public static final int CONSTRUCTOR = 984664289; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class Chat extends Object { + + public long id; + + public ChatType type; + + public String title; + + public ChatPhotoInfo photo; + + public int accentColorId; + + public long backgroundCustomEmojiId; + + public int profileAccentColorId; + + public long profileBackgroundCustomEmojiId; + + public ChatPermissions permissions; + + public Message lastMessage; + + public ChatPosition[] positions; + + public ChatList[] chatLists; + + public MessageSender messageSenderId; + + public BlockList blockList; + + public boolean hasProtectedContent; + + public boolean isTranslatable; + + public boolean isMarkedAsUnread; + + public boolean viewAsTopics; + + public boolean hasScheduledMessages; + + public boolean canBeDeletedOnlyForSelf; + + public boolean canBeDeletedForAllUsers; + + public boolean canBeReported; + + public boolean defaultDisableNotification; + + public int unreadCount; + + public long lastReadInboxMessageId; + + public long lastReadOutboxMessageId; + + public int unreadMentionCount; + + public int unreadReactionCount; + + public ChatNotificationSettings notificationSettings; + + public ChatAvailableReactions availableReactions; + + public int messageAutoDeleteTime; + + public EmojiStatus emojiStatus; + + public ChatBackground background; + + public String themeName; + + public ChatActionBar actionBar; + + public BusinessBotManageBar businessBotManageBar; + + public VideoChat videoChat; + + public ChatJoinRequestsInfo pendingJoinRequests; + + public long replyMarkupMessageId; + + public DraftMessage draftMessage; + + public String clientData; + + public Chat() { + } + + public Chat(long id, ChatType type, String title, ChatPhotoInfo photo, int accentColorId, long backgroundCustomEmojiId, int profileAccentColorId, long profileBackgroundCustomEmojiId, ChatPermissions permissions, Message lastMessage, ChatPosition[] positions, ChatList[] chatLists, MessageSender messageSenderId, BlockList blockList, boolean hasProtectedContent, boolean isTranslatable, boolean isMarkedAsUnread, boolean viewAsTopics, boolean hasScheduledMessages, boolean canBeDeletedOnlyForSelf, boolean canBeDeletedForAllUsers, boolean canBeReported, boolean defaultDisableNotification, int unreadCount, long lastReadInboxMessageId, long lastReadOutboxMessageId, int unreadMentionCount, int unreadReactionCount, ChatNotificationSettings notificationSettings, ChatAvailableReactions availableReactions, int messageAutoDeleteTime, EmojiStatus emojiStatus, ChatBackground background, String themeName, ChatActionBar actionBar, BusinessBotManageBar businessBotManageBar, VideoChat videoChat, ChatJoinRequestsInfo pendingJoinRequests, long replyMarkupMessageId, DraftMessage draftMessage, String clientData) { + this.id = id; + this.type = type; + this.title = title; + this.photo = photo; + this.accentColorId = accentColorId; + this.backgroundCustomEmojiId = backgroundCustomEmojiId; + this.profileAccentColorId = profileAccentColorId; + this.profileBackgroundCustomEmojiId = profileBackgroundCustomEmojiId; + this.permissions = permissions; + this.lastMessage = lastMessage; + this.positions = positions; + this.chatLists = chatLists; + this.messageSenderId = messageSenderId; + this.blockList = blockList; + this.hasProtectedContent = hasProtectedContent; + this.isTranslatable = isTranslatable; + this.isMarkedAsUnread = isMarkedAsUnread; + this.viewAsTopics = viewAsTopics; + this.hasScheduledMessages = hasScheduledMessages; + this.canBeDeletedOnlyForSelf = canBeDeletedOnlyForSelf; + this.canBeDeletedForAllUsers = canBeDeletedForAllUsers; + this.canBeReported = canBeReported; + this.defaultDisableNotification = defaultDisableNotification; + this.unreadCount = unreadCount; + this.lastReadInboxMessageId = lastReadInboxMessageId; + this.lastReadOutboxMessageId = lastReadOutboxMessageId; + this.unreadMentionCount = unreadMentionCount; + this.unreadReactionCount = unreadReactionCount; + this.notificationSettings = notificationSettings; + this.availableReactions = availableReactions; + this.messageAutoDeleteTime = messageAutoDeleteTime; + this.emojiStatus = emojiStatus; + this.background = background; + this.themeName = themeName; + this.actionBar = actionBar; + this.businessBotManageBar = businessBotManageBar; + this.videoChat = videoChat; + this.pendingJoinRequests = pendingJoinRequests; + this.replyMarkupMessageId = replyMarkupMessageId; + this.draftMessage = draftMessage; + this.clientData = clientData; + } + + public static final int CONSTRUCTOR = 830601369; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public abstract static class ChatAction extends Object { + + public ChatAction() { + } + } + + public static class ChatActionTyping extends ChatAction { + public ChatActionTyping() { + } + + public static final int CONSTRUCTOR = 380122167; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class ChatActionRecordingVideo extends ChatAction { + public ChatActionRecordingVideo() { + } + + public static final int CONSTRUCTOR = 216553362; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class ChatActionUploadingVideo extends ChatAction { + + public int progress; + + public ChatActionUploadingVideo() { + } + + public ChatActionUploadingVideo(int progress) { + this.progress = progress; + } + + public static final int CONSTRUCTOR = 1234185270; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class ChatActionRecordingVoiceNote extends ChatAction { + public ChatActionRecordingVoiceNote() { + } + + public static final int CONSTRUCTOR = -808850058; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class ChatActionUploadingVoiceNote extends ChatAction { + + public int progress; + + public ChatActionUploadingVoiceNote() { + } + + public ChatActionUploadingVoiceNote(int progress) { + this.progress = progress; + } + + public static final int CONSTRUCTOR = -613643666; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class ChatActionUploadingPhoto extends ChatAction { + + public int progress; + + public ChatActionUploadingPhoto() { + } + + public ChatActionUploadingPhoto(int progress) { + this.progress = progress; + } + + public static final int CONSTRUCTOR = 654240583; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class ChatActionUploadingDocument extends ChatAction { + + public int progress; + + public ChatActionUploadingDocument() { + } + + public ChatActionUploadingDocument(int progress) { + this.progress = progress; + } + + public static final int CONSTRUCTOR = 167884362; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class ChatActionChoosingSticker extends ChatAction { + public ChatActionChoosingSticker() { + } + + public static final int CONSTRUCTOR = 372753697; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class ChatActionChoosingLocation extends ChatAction { + public ChatActionChoosingLocation() { + } + + public static final int CONSTRUCTOR = -2017893596; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class ChatActionChoosingContact extends ChatAction { + public ChatActionChoosingContact() { + } + + public static final int CONSTRUCTOR = -1222507496; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class ChatActionStartPlayingGame extends ChatAction { + public ChatActionStartPlayingGame() { + } + + public static final int CONSTRUCTOR = -865884164; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class ChatActionRecordingVideoNote extends ChatAction { + public ChatActionRecordingVideoNote() { + } + + public static final int CONSTRUCTOR = 16523393; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class ChatActionUploadingVideoNote extends ChatAction { + + public int progress; + + public ChatActionUploadingVideoNote() { + } + + public ChatActionUploadingVideoNote(int progress) { + this.progress = progress; + } + + public static final int CONSTRUCTOR = 1172364918; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class ChatActionWatchingAnimations extends ChatAction { + + public String emoji; + + public ChatActionWatchingAnimations() { + } + + public ChatActionWatchingAnimations(String emoji) { + this.emoji = emoji; + } + + public static final int CONSTRUCTOR = 2052990641; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class ChatActionCancel extends ChatAction { + public ChatActionCancel() { + } + + public static final int CONSTRUCTOR = 1160523958; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public abstract static class ChatActionBar extends Object { + + public ChatActionBar() { + } + } + + public static class ChatActionBarReportSpam extends ChatActionBar { + + public boolean canUnarchive; + + public ChatActionBarReportSpam() { + } + + public ChatActionBarReportSpam(boolean canUnarchive) { + this.canUnarchive = canUnarchive; + } + + public static final int CONSTRUCTOR = -1312758246; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class ChatActionBarInviteMembers extends ChatActionBar { + public ChatActionBarInviteMembers() { + } + + public static final int CONSTRUCTOR = 1985313904; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class ChatActionBarReportAddBlock extends ChatActionBar { + + public boolean canUnarchive; + + public ChatActionBarReportAddBlock() { + } + + public ChatActionBarReportAddBlock(boolean canUnarchive) { + this.canUnarchive = canUnarchive; + } + + public static final int CONSTRUCTOR = -1451980246; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class ChatActionBarAddContact extends ChatActionBar { + public ChatActionBarAddContact() { + } + + public static final int CONSTRUCTOR = -733325295; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class ChatActionBarSharePhoneNumber extends ChatActionBar { + public ChatActionBarSharePhoneNumber() { + } + + public static final int CONSTRUCTOR = 35188697; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class ChatActionBarJoinRequest extends ChatActionBar { + + public String title; + + public boolean isChannel; + + public int requestDate; + + public ChatActionBarJoinRequest() { + } + + public ChatActionBarJoinRequest(String title, boolean isChannel, int requestDate) { + this.title = title; + this.isChannel = isChannel; + this.requestDate = requestDate; + } + + public static final int CONSTRUCTOR = 1037140744; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class ChatActiveStories extends Object { + + public long chatId; + + public StoryList list; + + public long order; + + public int maxReadStoryId; + + public StoryInfo[] stories; + + public ChatActiveStories() { + } + + public ChatActiveStories(long chatId, StoryList list, long order, int maxReadStoryId, StoryInfo[] stories) { + this.chatId = chatId; + this.list = list; + this.order = order; + this.maxReadStoryId = maxReadStoryId; + this.stories = stories; + } + + public static final int CONSTRUCTOR = -1398869529; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class ChatAdministrator extends Object { + + public long userId; + + public String customTitle; + + public boolean isOwner; + + public ChatAdministrator() { + } + + public ChatAdministrator(long userId, String customTitle, boolean isOwner) { + this.userId = userId; + this.customTitle = customTitle; + this.isOwner = isOwner; + } + + public static final int CONSTRUCTOR = 1920449836; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class ChatAdministratorRights extends Object { + + public boolean canManageChat; + + public boolean canChangeInfo; + + public boolean canPostMessages; + + public boolean canEditMessages; + + public boolean canDeleteMessages; + + public boolean canInviteUsers; + + public boolean canRestrictMembers; + + public boolean canPinMessages; + + public boolean canManageTopics; + + public boolean canPromoteMembers; + + public boolean canManageVideoChats; + + public boolean canPostStories; + + public boolean canEditStories; + + public boolean canDeleteStories; + + public boolean isAnonymous; + + public ChatAdministratorRights() { + } + + public ChatAdministratorRights(boolean canManageChat, boolean canChangeInfo, boolean canPostMessages, boolean canEditMessages, boolean canDeleteMessages, boolean canInviteUsers, boolean canRestrictMembers, boolean canPinMessages, boolean canManageTopics, boolean canPromoteMembers, boolean canManageVideoChats, boolean canPostStories, boolean canEditStories, boolean canDeleteStories, boolean isAnonymous) { + this.canManageChat = canManageChat; + this.canChangeInfo = canChangeInfo; + this.canPostMessages = canPostMessages; + this.canEditMessages = canEditMessages; + this.canDeleteMessages = canDeleteMessages; + this.canInviteUsers = canInviteUsers; + this.canRestrictMembers = canRestrictMembers; + this.canPinMessages = canPinMessages; + this.canManageTopics = canManageTopics; + this.canPromoteMembers = canPromoteMembers; + this.canManageVideoChats = canManageVideoChats; + this.canPostStories = canPostStories; + this.canEditStories = canEditStories; + this.canDeleteStories = canDeleteStories; + this.isAnonymous = isAnonymous; + } + + public static final int CONSTRUCTOR = 1599049796; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class ChatAdministrators extends Object { + + public ChatAdministrator[] administrators; + + public ChatAdministrators() { + } + + public ChatAdministrators(ChatAdministrator[] administrators) { + this.administrators = administrators; + } + + public static final int CONSTRUCTOR = -2126186435; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class ChatAffiliateProgram extends Object { + + public String url; + + public long botUserId; + + public AffiliateProgramParameters parameters; + + public int connectionDate; + + public boolean isDisconnected; + + public long userCount; + + public long revenueStarCount; + + public ChatAffiliateProgram() { + } + + public ChatAffiliateProgram(String url, long botUserId, AffiliateProgramParameters parameters, int connectionDate, boolean isDisconnected, long userCount, long revenueStarCount) { + this.url = url; + this.botUserId = botUserId; + this.parameters = parameters; + this.connectionDate = connectionDate; + this.isDisconnected = isDisconnected; + this.userCount = userCount; + this.revenueStarCount = revenueStarCount; + } + + public static final int CONSTRUCTOR = -1415835338; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class ChatAffiliatePrograms extends Object { + + public int totalCount; + + public ChatAffiliateProgram[] programs; + + public String nextOffset; + + public ChatAffiliatePrograms() { + } + + public ChatAffiliatePrograms(int totalCount, ChatAffiliateProgram[] programs, String nextOffset) { + this.totalCount = totalCount; + this.programs = programs; + this.nextOffset = nextOffset; + } + + public static final int CONSTRUCTOR = 1107955123; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public abstract static class ChatAvailableReactions extends Object { + + public ChatAvailableReactions() { + } + } + + public static class ChatAvailableReactionsAll extends ChatAvailableReactions { + + public int maxReactionCount; + + public ChatAvailableReactionsAll() { + } + + public ChatAvailableReactionsAll(int maxReactionCount) { + this.maxReactionCount = maxReactionCount; + } + + public static final int CONSTRUCTOR = 694160279; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class ChatAvailableReactionsSome extends ChatAvailableReactions { + + public ReactionType[] reactions; + + public int maxReactionCount; + + public ChatAvailableReactionsSome() { + } + + public ChatAvailableReactionsSome(ReactionType[] reactions, int maxReactionCount) { + this.reactions = reactions; + this.maxReactionCount = maxReactionCount; + } + + public static final int CONSTRUCTOR = 152513153; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class ChatBackground extends Object { + + public Background background; + + public int darkThemeDimming; + + public ChatBackground() { + } + + public ChatBackground(Background background, int darkThemeDimming) { + this.background = background; + this.darkThemeDimming = darkThemeDimming; + } + + public static final int CONSTRUCTOR = 1653152104; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class ChatBoost extends Object { + + public String id; + + public int count; + + public ChatBoostSource source; + + public int startDate; + + public int expirationDate; + + public ChatBoost() { + } + + public ChatBoost(String id, int count, ChatBoostSource source, int startDate, int expirationDate) { + this.id = id; + this.count = count; + this.source = source; + this.startDate = startDate; + this.expirationDate = expirationDate; + } + + public static final int CONSTRUCTOR = -1765815118; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class ChatBoostFeatures extends Object { + + public ChatBoostLevelFeatures[] features; + + public int minProfileBackgroundCustomEmojiBoostLevel; + + public int minBackgroundCustomEmojiBoostLevel; + + public int minEmojiStatusBoostLevel; + + public int minChatThemeBackgroundBoostLevel; + + public int minCustomBackgroundBoostLevel; + + public int minCustomEmojiStickerSetBoostLevel; + + public int minSpeechRecognitionBoostLevel; + + public int minSponsoredMessageDisableBoostLevel; + + public ChatBoostFeatures() { + } + + public ChatBoostFeatures(ChatBoostLevelFeatures[] features, int minProfileBackgroundCustomEmojiBoostLevel, int minBackgroundCustomEmojiBoostLevel, int minEmojiStatusBoostLevel, int minChatThemeBackgroundBoostLevel, int minCustomBackgroundBoostLevel, int minCustomEmojiStickerSetBoostLevel, int minSpeechRecognitionBoostLevel, int minSponsoredMessageDisableBoostLevel) { + this.features = features; + this.minProfileBackgroundCustomEmojiBoostLevel = minProfileBackgroundCustomEmojiBoostLevel; + this.minBackgroundCustomEmojiBoostLevel = minBackgroundCustomEmojiBoostLevel; + this.minEmojiStatusBoostLevel = minEmojiStatusBoostLevel; + this.minChatThemeBackgroundBoostLevel = minChatThemeBackgroundBoostLevel; + this.minCustomBackgroundBoostLevel = minCustomBackgroundBoostLevel; + this.minCustomEmojiStickerSetBoostLevel = minCustomEmojiStickerSetBoostLevel; + this.minSpeechRecognitionBoostLevel = minSpeechRecognitionBoostLevel; + this.minSponsoredMessageDisableBoostLevel = minSponsoredMessageDisableBoostLevel; + } + + public static final int CONSTRUCTOR = 866182642; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class ChatBoostLevelFeatures extends Object { + + public int level; + + public int storyPerDayCount; + + public int customEmojiReactionCount; + + public int titleColorCount; + + public int profileAccentColorCount; + + public boolean canSetProfileBackgroundCustomEmoji; + + public int accentColorCount; + + public boolean canSetBackgroundCustomEmoji; + + public boolean canSetEmojiStatus; + + public int chatThemeBackgroundCount; + + public boolean canSetCustomBackground; + + public boolean canSetCustomEmojiStickerSet; + + public boolean canRecognizeSpeech; + + public boolean canDisableSponsoredMessages; + + public ChatBoostLevelFeatures() { + } + + public ChatBoostLevelFeatures(int level, int storyPerDayCount, int customEmojiReactionCount, int titleColorCount, int profileAccentColorCount, boolean canSetProfileBackgroundCustomEmoji, int accentColorCount, boolean canSetBackgroundCustomEmoji, boolean canSetEmojiStatus, int chatThemeBackgroundCount, boolean canSetCustomBackground, boolean canSetCustomEmojiStickerSet, boolean canRecognizeSpeech, boolean canDisableSponsoredMessages) { + this.level = level; + this.storyPerDayCount = storyPerDayCount; + this.customEmojiReactionCount = customEmojiReactionCount; + this.titleColorCount = titleColorCount; + this.profileAccentColorCount = profileAccentColorCount; + this.canSetProfileBackgroundCustomEmoji = canSetProfileBackgroundCustomEmoji; + this.accentColorCount = accentColorCount; + this.canSetBackgroundCustomEmoji = canSetBackgroundCustomEmoji; + this.canSetEmojiStatus = canSetEmojiStatus; + this.chatThemeBackgroundCount = chatThemeBackgroundCount; + this.canSetCustomBackground = canSetCustomBackground; + this.canSetCustomEmojiStickerSet = canSetCustomEmojiStickerSet; + this.canRecognizeSpeech = canRecognizeSpeech; + this.canDisableSponsoredMessages = canDisableSponsoredMessages; + } + + public static final int CONSTRUCTOR = -189458156; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class ChatBoostLink extends Object { + + public String link; + + public boolean isPublic; + + public ChatBoostLink() { + } + + public ChatBoostLink(String link, boolean isPublic) { + this.link = link; + this.isPublic = isPublic; + } + + public static final int CONSTRUCTOR = -1253999503; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class ChatBoostLinkInfo extends Object { + + public boolean isPublic; + + public long chatId; + + public ChatBoostLinkInfo() { + } + + public ChatBoostLinkInfo(boolean isPublic, long chatId) { + this.isPublic = isPublic; + this.chatId = chatId; + } + + public static final int CONSTRUCTOR = -602785660; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class ChatBoostSlot extends Object { + + public int slotId; + + public long currentlyBoostedChatId; + + public int startDate; + + public int expirationDate; + + public int cooldownUntilDate; + + public ChatBoostSlot() { + } + + public ChatBoostSlot(int slotId, long currentlyBoostedChatId, int startDate, int expirationDate, int cooldownUntilDate) { + this.slotId = slotId; + this.currentlyBoostedChatId = currentlyBoostedChatId; + this.startDate = startDate; + this.expirationDate = expirationDate; + this.cooldownUntilDate = cooldownUntilDate; + } + + public static final int CONSTRUCTOR = 123206343; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class ChatBoostSlots extends Object { + + public ChatBoostSlot[] slots; + + public ChatBoostSlots() { + } + + public ChatBoostSlots(ChatBoostSlot[] slots) { + this.slots = slots; + } + + public static final int CONSTRUCTOR = 1014966293; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public abstract static class ChatBoostSource extends Object { + + public ChatBoostSource() { + } + } + + public static class ChatBoostSourceGiftCode extends ChatBoostSource { + + public long userId; + + public String giftCode; + + public ChatBoostSourceGiftCode() { + } + + public ChatBoostSourceGiftCode(long userId, String giftCode) { + this.userId = userId; + this.giftCode = giftCode; + } + + public static final int CONSTRUCTOR = -98299206; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class ChatBoostSourceGiveaway extends ChatBoostSource { + + public long userId; + + public String giftCode; + + public long starCount; + + public long giveawayMessageId; + + public boolean isUnclaimed; + + public ChatBoostSourceGiveaway() { + } + + public ChatBoostSourceGiveaway(long userId, String giftCode, long starCount, long giveawayMessageId, boolean isUnclaimed) { + this.userId = userId; + this.giftCode = giftCode; + this.starCount = starCount; + this.giveawayMessageId = giveawayMessageId; + this.isUnclaimed = isUnclaimed; + } + + public static final int CONSTRUCTOR = 1918145690; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class ChatBoostSourcePremium extends ChatBoostSource { + + public long userId; + + public ChatBoostSourcePremium() { + } + + public ChatBoostSourcePremium(long userId) { + this.userId = userId; + } + + public static final int CONSTRUCTOR = 972011; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class ChatBoostStatus extends Object { + + public String boostUrl; + + public int[] appliedSlotIds; + + public int level; + + public int giftCodeBoostCount; + + public int boostCount; + + public int currentLevelBoostCount; + + public int nextLevelBoostCount; + + public int premiumMemberCount; + + public double premiumMemberPercentage; + + public PrepaidGiveaway[] prepaidGiveaways; + + public ChatBoostStatus() { + } + + public ChatBoostStatus(String boostUrl, int[] appliedSlotIds, int level, int giftCodeBoostCount, int boostCount, int currentLevelBoostCount, int nextLevelBoostCount, int premiumMemberCount, double premiumMemberPercentage, PrepaidGiveaway[] prepaidGiveaways) { + this.boostUrl = boostUrl; + this.appliedSlotIds = appliedSlotIds; + this.level = level; + this.giftCodeBoostCount = giftCodeBoostCount; + this.boostCount = boostCount; + this.currentLevelBoostCount = currentLevelBoostCount; + this.nextLevelBoostCount = nextLevelBoostCount; + this.premiumMemberCount = premiumMemberCount; + this.premiumMemberPercentage = premiumMemberPercentage; + this.prepaidGiveaways = prepaidGiveaways; + } + + public static final int CONSTRUCTOR = -1050332618; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class ChatEvent extends Object { + + public long id; + + public int date; + + public MessageSender memberId; + + public ChatEventAction action; + + public ChatEvent() { + } + + public ChatEvent(long id, int date, MessageSender memberId, ChatEventAction action) { + this.id = id; + this.date = date; + this.memberId = memberId; + this.action = action; + } + + public static final int CONSTRUCTOR = -652102704; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public abstract static class ChatEventAction extends Object { + + public ChatEventAction() { + } + } + + public static class ChatEventMessageEdited extends ChatEventAction { + + public Message oldMessage; + + public Message newMessage; + + public ChatEventMessageEdited() { + } + + public ChatEventMessageEdited(Message oldMessage, Message newMessage) { + this.oldMessage = oldMessage; + this.newMessage = newMessage; + } + + public static final int CONSTRUCTOR = -430967304; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class ChatEventMessageDeleted extends ChatEventAction { + + public Message message; + + public boolean canReportAntiSpamFalsePositive; + + public ChatEventMessageDeleted() { + } + + public ChatEventMessageDeleted(Message message, boolean canReportAntiSpamFalsePositive) { + this.message = message; + this.canReportAntiSpamFalsePositive = canReportAntiSpamFalsePositive; + } + + public static final int CONSTRUCTOR = 935316851; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class ChatEventMessagePinned extends ChatEventAction { + + public Message message; + + public ChatEventMessagePinned() { + } + + public ChatEventMessagePinned(Message message) { + this.message = message; + } + + public static final int CONSTRUCTOR = 438742298; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class ChatEventMessageUnpinned extends ChatEventAction { + + public Message message; + + public ChatEventMessageUnpinned() { + } + + public ChatEventMessageUnpinned(Message message) { + this.message = message; + } + + public static final int CONSTRUCTOR = -376161513; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class ChatEventPollStopped extends ChatEventAction { + + public Message message; + + public ChatEventPollStopped() { + } + + public ChatEventPollStopped(Message message) { + this.message = message; + } + + public static final int CONSTRUCTOR = 2009893861; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class ChatEventMemberJoined extends ChatEventAction { + public ChatEventMemberJoined() { + } + + public static final int CONSTRUCTOR = -235468508; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class ChatEventMemberJoinedByInviteLink extends ChatEventAction { + + public ChatInviteLink inviteLink; + + public boolean viaChatFolderInviteLink; + + public ChatEventMemberJoinedByInviteLink() { + } + + public ChatEventMemberJoinedByInviteLink(ChatInviteLink inviteLink, boolean viaChatFolderInviteLink) { + this.inviteLink = inviteLink; + this.viaChatFolderInviteLink = viaChatFolderInviteLink; + } + + public static final int CONSTRUCTOR = -1445536390; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class ChatEventMemberJoinedByRequest extends ChatEventAction { + + public long approverUserId; + + public ChatInviteLink inviteLink; + + public ChatEventMemberJoinedByRequest() { + } + + public ChatEventMemberJoinedByRequest(long approverUserId, ChatInviteLink inviteLink) { + this.approverUserId = approverUserId; + this.inviteLink = inviteLink; + } + + public static final int CONSTRUCTOR = -1647804865; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class ChatEventMemberInvited extends ChatEventAction { + + public long userId; + + public ChatMemberStatus status; + + public ChatEventMemberInvited() { + } + + public ChatEventMemberInvited(long userId, ChatMemberStatus status) { + this.userId = userId; + this.status = status; + } + + public static final int CONSTRUCTOR = 953663433; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class ChatEventMemberLeft extends ChatEventAction { + public ChatEventMemberLeft() { + } + + public static final int CONSTRUCTOR = -948420593; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class ChatEventMemberPromoted extends ChatEventAction { + + public long userId; + + public ChatMemberStatus oldStatus; + + public ChatMemberStatus newStatus; + + public ChatEventMemberPromoted() { + } + + public ChatEventMemberPromoted(long userId, ChatMemberStatus oldStatus, ChatMemberStatus newStatus) { + this.userId = userId; + this.oldStatus = oldStatus; + this.newStatus = newStatus; + } + + public static final int CONSTRUCTOR = 525297761; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class ChatEventMemberRestricted extends ChatEventAction { + + public MessageSender memberId; + + public ChatMemberStatus oldStatus; + + public ChatMemberStatus newStatus; + + public ChatEventMemberRestricted() { + } + + public ChatEventMemberRestricted(MessageSender memberId, ChatMemberStatus oldStatus, ChatMemberStatus newStatus) { + this.memberId = memberId; + this.oldStatus = oldStatus; + this.newStatus = newStatus; + } + + public static final int CONSTRUCTOR = 1603608069; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class ChatEventMemberSubscriptionExtended extends ChatEventAction { + + public long userId; + + public ChatMemberStatus oldStatus; + + public ChatMemberStatus newStatus; + + public ChatEventMemberSubscriptionExtended() { + } + + public ChatEventMemberSubscriptionExtended(long userId, ChatMemberStatus oldStatus, ChatMemberStatus newStatus) { + this.userId = userId; + this.oldStatus = oldStatus; + this.newStatus = newStatus; + } + + public static final int CONSTRUCTOR = -1141198846; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class ChatEventAvailableReactionsChanged extends ChatEventAction { + + public ChatAvailableReactions oldAvailableReactions; + + public ChatAvailableReactions newAvailableReactions; + + public ChatEventAvailableReactionsChanged() { + } + + public ChatEventAvailableReactionsChanged(ChatAvailableReactions oldAvailableReactions, ChatAvailableReactions newAvailableReactions) { + this.oldAvailableReactions = oldAvailableReactions; + this.newAvailableReactions = newAvailableReactions; + } + + public static final int CONSTRUCTOR = -1749491521; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class ChatEventBackgroundChanged extends ChatEventAction { + + public ChatBackground oldBackground; + + public ChatBackground newBackground; + + public ChatEventBackgroundChanged() { + } + + public ChatEventBackgroundChanged(ChatBackground oldBackground, ChatBackground newBackground) { + this.oldBackground = oldBackground; + this.newBackground = newBackground; + } + + public static final int CONSTRUCTOR = -1225953992; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class ChatEventDescriptionChanged extends ChatEventAction { + + public String oldDescription; + + public String newDescription; + + public ChatEventDescriptionChanged() { + } + + public ChatEventDescriptionChanged(String oldDescription, String newDescription) { + this.oldDescription = oldDescription; + this.newDescription = newDescription; + } + + public static final int CONSTRUCTOR = 39112478; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class ChatEventEmojiStatusChanged extends ChatEventAction { + + public EmojiStatus oldEmojiStatus; + + public EmojiStatus newEmojiStatus; + + public ChatEventEmojiStatusChanged() { + } + + public ChatEventEmojiStatusChanged(EmojiStatus oldEmojiStatus, EmojiStatus newEmojiStatus) { + this.oldEmojiStatus = oldEmojiStatus; + this.newEmojiStatus = newEmojiStatus; + } + + public static final int CONSTRUCTOR = -2081850594; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class ChatEventLinkedChatChanged extends ChatEventAction { + + public long oldLinkedChatId; + + public long newLinkedChatId; + + public ChatEventLinkedChatChanged() { + } + + public ChatEventLinkedChatChanged(long oldLinkedChatId, long newLinkedChatId) { + this.oldLinkedChatId = oldLinkedChatId; + this.newLinkedChatId = newLinkedChatId; + } + + public static final int CONSTRUCTOR = 1797419439; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class ChatEventLocationChanged extends ChatEventAction { + + public ChatLocation oldLocation; + + public ChatLocation newLocation; + + public ChatEventLocationChanged() { + } + + public ChatEventLocationChanged(ChatLocation oldLocation, ChatLocation newLocation) { + this.oldLocation = oldLocation; + this.newLocation = newLocation; + } + + public static final int CONSTRUCTOR = -405930674; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class ChatEventMessageAutoDeleteTimeChanged extends ChatEventAction { + + public int oldMessageAutoDeleteTime; + + public int newMessageAutoDeleteTime; + + public ChatEventMessageAutoDeleteTimeChanged() { + } + + public ChatEventMessageAutoDeleteTimeChanged(int oldMessageAutoDeleteTime, int newMessageAutoDeleteTime) { + this.oldMessageAutoDeleteTime = oldMessageAutoDeleteTime; + this.newMessageAutoDeleteTime = newMessageAutoDeleteTime; + } + + public static final int CONSTRUCTOR = 17317668; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class ChatEventPermissionsChanged extends ChatEventAction { + + public ChatPermissions oldPermissions; + + public ChatPermissions newPermissions; + + public ChatEventPermissionsChanged() { + } + + public ChatEventPermissionsChanged(ChatPermissions oldPermissions, ChatPermissions newPermissions) { + this.oldPermissions = oldPermissions; + this.newPermissions = newPermissions; + } + + public static final int CONSTRUCTOR = -1311557720; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class ChatEventPhotoChanged extends ChatEventAction { + + public ChatPhoto oldPhoto; + + public ChatPhoto newPhoto; + + public ChatEventPhotoChanged() { + } + + public ChatEventPhotoChanged(ChatPhoto oldPhoto, ChatPhoto newPhoto) { + this.oldPhoto = oldPhoto; + this.newPhoto = newPhoto; + } + + public static final int CONSTRUCTOR = -811572541; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class ChatEventSlowModeDelayChanged extends ChatEventAction { + + public int oldSlowModeDelay; + + public int newSlowModeDelay; + + public ChatEventSlowModeDelayChanged() { + } + + public ChatEventSlowModeDelayChanged(int oldSlowModeDelay, int newSlowModeDelay) { + this.oldSlowModeDelay = oldSlowModeDelay; + this.newSlowModeDelay = newSlowModeDelay; + } + + public static final int CONSTRUCTOR = -1653195765; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class ChatEventStickerSetChanged extends ChatEventAction { + + public long oldStickerSetId; + + public long newStickerSetId; + + public ChatEventStickerSetChanged() { + } + + public ChatEventStickerSetChanged(long oldStickerSetId, long newStickerSetId) { + this.oldStickerSetId = oldStickerSetId; + this.newStickerSetId = newStickerSetId; + } + + public static final int CONSTRUCTOR = -1243130481; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class ChatEventCustomEmojiStickerSetChanged extends ChatEventAction { + + public long oldStickerSetId; + + public long newStickerSetId; + + public ChatEventCustomEmojiStickerSetChanged() { + } + + public ChatEventCustomEmojiStickerSetChanged(long oldStickerSetId, long newStickerSetId) { + this.oldStickerSetId = oldStickerSetId; + this.newStickerSetId = newStickerSetId; + } + + public static final int CONSTRUCTOR = 118244123; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class ChatEventTitleChanged extends ChatEventAction { + + public String oldTitle; + + public String newTitle; + + public ChatEventTitleChanged() { + } + + public ChatEventTitleChanged(String oldTitle, String newTitle) { + this.oldTitle = oldTitle; + this.newTitle = newTitle; + } + + public static final int CONSTRUCTOR = 1134103250; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class ChatEventUsernameChanged extends ChatEventAction { + + public String oldUsername; + + public String newUsername; + + public ChatEventUsernameChanged() { + } + + public ChatEventUsernameChanged(String oldUsername, String newUsername) { + this.oldUsername = oldUsername; + this.newUsername = newUsername; + } + + public static final int CONSTRUCTOR = 1728558443; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class ChatEventActiveUsernamesChanged extends ChatEventAction { + + public String[] oldUsernames; + + public String[] newUsernames; + + public ChatEventActiveUsernamesChanged() { + } + + public ChatEventActiveUsernamesChanged(String[] oldUsernames, String[] newUsernames) { + this.oldUsernames = oldUsernames; + this.newUsernames = newUsernames; + } + + public static final int CONSTRUCTOR = -1508790810; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class ChatEventAccentColorChanged extends ChatEventAction { + + public int oldAccentColorId; + + public long oldBackgroundCustomEmojiId; + + public int newAccentColorId; + + public long newBackgroundCustomEmojiId; + + public ChatEventAccentColorChanged() { + } + + public ChatEventAccentColorChanged(int oldAccentColorId, long oldBackgroundCustomEmojiId, int newAccentColorId, long newBackgroundCustomEmojiId) { + this.oldAccentColorId = oldAccentColorId; + this.oldBackgroundCustomEmojiId = oldBackgroundCustomEmojiId; + this.newAccentColorId = newAccentColorId; + this.newBackgroundCustomEmojiId = newBackgroundCustomEmojiId; + } + + public static final int CONSTRUCTOR = -427591885; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class ChatEventProfileAccentColorChanged extends ChatEventAction { + + public int oldProfileAccentColorId; + + public long oldProfileBackgroundCustomEmojiId; + + public int newProfileAccentColorId; + + public long newProfileBackgroundCustomEmojiId; + + public ChatEventProfileAccentColorChanged() { + } + + public ChatEventProfileAccentColorChanged(int oldProfileAccentColorId, long oldProfileBackgroundCustomEmojiId, int newProfileAccentColorId, long newProfileBackgroundCustomEmojiId) { + this.oldProfileAccentColorId = oldProfileAccentColorId; + this.oldProfileBackgroundCustomEmojiId = oldProfileBackgroundCustomEmojiId; + this.newProfileAccentColorId = newProfileAccentColorId; + this.newProfileBackgroundCustomEmojiId = newProfileBackgroundCustomEmojiId; + } + + public static final int CONSTRUCTOR = -1514612124; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class ChatEventHasProtectedContentToggled extends ChatEventAction { + + public boolean hasProtectedContent; + + public ChatEventHasProtectedContentToggled() { + } + + public ChatEventHasProtectedContentToggled(boolean hasProtectedContent) { + this.hasProtectedContent = hasProtectedContent; + } + + public static final int CONSTRUCTOR = -184270335; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class ChatEventInvitesToggled extends ChatEventAction { + + public boolean canInviteUsers; + + public ChatEventInvitesToggled() { + } + + public ChatEventInvitesToggled(boolean canInviteUsers) { + this.canInviteUsers = canInviteUsers; + } + + public static final int CONSTRUCTOR = -62548373; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class ChatEventIsAllHistoryAvailableToggled extends ChatEventAction { + + public boolean isAllHistoryAvailable; + + public ChatEventIsAllHistoryAvailableToggled() { + } + + public ChatEventIsAllHistoryAvailableToggled(boolean isAllHistoryAvailable) { + this.isAllHistoryAvailable = isAllHistoryAvailable; + } + + public static final int CONSTRUCTOR = -1599063019; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class ChatEventHasAggressiveAntiSpamEnabledToggled extends ChatEventAction { + + public boolean hasAggressiveAntiSpamEnabled; + + public ChatEventHasAggressiveAntiSpamEnabledToggled() { + } + + public ChatEventHasAggressiveAntiSpamEnabledToggled(boolean hasAggressiveAntiSpamEnabled) { + this.hasAggressiveAntiSpamEnabled = hasAggressiveAntiSpamEnabled; + } + + public static final int CONSTRUCTOR = -125348094; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class ChatEventSignMessagesToggled extends ChatEventAction { + + public boolean signMessages; + + public ChatEventSignMessagesToggled() { + } + + public ChatEventSignMessagesToggled(boolean signMessages) { + this.signMessages = signMessages; + } + + public static final int CONSTRUCTOR = -1313265634; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class ChatEventShowMessageSenderToggled extends ChatEventAction { + + public boolean showMessageSender; + + public ChatEventShowMessageSenderToggled() { + } + + public ChatEventShowMessageSenderToggled(boolean showMessageSender) { + this.showMessageSender = showMessageSender; + } + + public static final int CONSTRUCTOR = -794343453; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class ChatEventInviteLinkEdited extends ChatEventAction { + + public ChatInviteLink oldInviteLink; + + public ChatInviteLink newInviteLink; + + public ChatEventInviteLinkEdited() { + } + + public ChatEventInviteLinkEdited(ChatInviteLink oldInviteLink, ChatInviteLink newInviteLink) { + this.oldInviteLink = oldInviteLink; + this.newInviteLink = newInviteLink; + } + + public static final int CONSTRUCTOR = -460190366; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class ChatEventInviteLinkRevoked extends ChatEventAction { + + public ChatInviteLink inviteLink; + + public ChatEventInviteLinkRevoked() { + } + + public ChatEventInviteLinkRevoked(ChatInviteLink inviteLink) { + this.inviteLink = inviteLink; + } + + public static final int CONSTRUCTOR = -1579417629; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class ChatEventInviteLinkDeleted extends ChatEventAction { + + public ChatInviteLink inviteLink; + + public ChatEventInviteLinkDeleted() { + } + + public ChatEventInviteLinkDeleted(ChatInviteLink inviteLink) { + this.inviteLink = inviteLink; + } + + public static final int CONSTRUCTOR = -1394974361; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class ChatEventVideoChatCreated extends ChatEventAction { + + public int groupCallId; + + public ChatEventVideoChatCreated() { + } + + public ChatEventVideoChatCreated(int groupCallId) { + this.groupCallId = groupCallId; + } + + public static final int CONSTRUCTOR = 1822853755; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class ChatEventVideoChatEnded extends ChatEventAction { + + public int groupCallId; + + public ChatEventVideoChatEnded() { + } + + public ChatEventVideoChatEnded(int groupCallId) { + this.groupCallId = groupCallId; + } + + public static final int CONSTRUCTOR = 1630039112; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class ChatEventVideoChatMuteNewParticipantsToggled extends ChatEventAction { + + public boolean muteNewParticipants; + + public ChatEventVideoChatMuteNewParticipantsToggled() { + } + + public ChatEventVideoChatMuteNewParticipantsToggled(boolean muteNewParticipants) { + this.muteNewParticipants = muteNewParticipants; + } + + public static final int CONSTRUCTOR = -126547970; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class ChatEventVideoChatParticipantIsMutedToggled extends ChatEventAction { + + public MessageSender participantId; + + public boolean isMuted; + + public ChatEventVideoChatParticipantIsMutedToggled() { + } + + public ChatEventVideoChatParticipantIsMutedToggled(MessageSender participantId, boolean isMuted) { + this.participantId = participantId; + this.isMuted = isMuted; + } + + public static final int CONSTRUCTOR = 521165047; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class ChatEventVideoChatParticipantVolumeLevelChanged extends ChatEventAction { + + public MessageSender participantId; + + public int volumeLevel; + + public ChatEventVideoChatParticipantVolumeLevelChanged() { + } + + public ChatEventVideoChatParticipantVolumeLevelChanged(MessageSender participantId, int volumeLevel) { + this.participantId = participantId; + this.volumeLevel = volumeLevel; + } + + public static final int CONSTRUCTOR = 1131385534; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class ChatEventIsForumToggled extends ChatEventAction { + + public boolean isForum; + + public ChatEventIsForumToggled() { + } + + public ChatEventIsForumToggled(boolean isForum) { + this.isForum = isForum; + } + + public static final int CONSTRUCTOR = 1516491033; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class ChatEventForumTopicCreated extends ChatEventAction { + + public ForumTopicInfo topicInfo; + + public ChatEventForumTopicCreated() { + } + + public ChatEventForumTopicCreated(ForumTopicInfo topicInfo) { + this.topicInfo = topicInfo; + } + + public static final int CONSTRUCTOR = 2005269314; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class ChatEventForumTopicEdited extends ChatEventAction { + + public ForumTopicInfo oldTopicInfo; + + public ForumTopicInfo newTopicInfo; + + public ChatEventForumTopicEdited() { + } + + public ChatEventForumTopicEdited(ForumTopicInfo oldTopicInfo, ForumTopicInfo newTopicInfo) { + this.oldTopicInfo = oldTopicInfo; + this.newTopicInfo = newTopicInfo; + } + + public static final int CONSTRUCTOR = 1624910860; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class ChatEventForumTopicToggleIsClosed extends ChatEventAction { + + public ForumTopicInfo topicInfo; + + public ChatEventForumTopicToggleIsClosed() { + } + + public ChatEventForumTopicToggleIsClosed(ForumTopicInfo topicInfo) { + this.topicInfo = topicInfo; + } + + public static final int CONSTRUCTOR = -962704070; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class ChatEventForumTopicToggleIsHidden extends ChatEventAction { + + public ForumTopicInfo topicInfo; + + public ChatEventForumTopicToggleIsHidden() { + } + + public ChatEventForumTopicToggleIsHidden(ForumTopicInfo topicInfo) { + this.topicInfo = topicInfo; + } + + public static final int CONSTRUCTOR = -1609175250; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class ChatEventForumTopicDeleted extends ChatEventAction { + + public ForumTopicInfo topicInfo; + + public ChatEventForumTopicDeleted() { + } + + public ChatEventForumTopicDeleted(ForumTopicInfo topicInfo) { + this.topicInfo = topicInfo; + } + + public static final int CONSTRUCTOR = -1332795123; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class ChatEventForumTopicPinned extends ChatEventAction { + + public ForumTopicInfo oldTopicInfo; + + public ForumTopicInfo newTopicInfo; + + public ChatEventForumTopicPinned() { + } + + public ChatEventForumTopicPinned(ForumTopicInfo oldTopicInfo, ForumTopicInfo newTopicInfo) { + this.oldTopicInfo = oldTopicInfo; + this.newTopicInfo = newTopicInfo; + } + + public static final int CONSTRUCTOR = 2143626222; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class ChatEventLogFilters extends Object { + + public boolean messageEdits; + + public boolean messageDeletions; + + public boolean messagePins; + + public boolean memberJoins; + + public boolean memberLeaves; + + public boolean memberInvites; + + public boolean memberPromotions; + + public boolean memberRestrictions; + + public boolean infoChanges; + + public boolean settingChanges; + + public boolean inviteLinkChanges; + + public boolean videoChatChanges; + + public boolean forumChanges; + + public boolean subscriptionExtensions; + + public ChatEventLogFilters() { + } + + public ChatEventLogFilters(boolean messageEdits, boolean messageDeletions, boolean messagePins, boolean memberJoins, boolean memberLeaves, boolean memberInvites, boolean memberPromotions, boolean memberRestrictions, boolean infoChanges, boolean settingChanges, boolean inviteLinkChanges, boolean videoChatChanges, boolean forumChanges, boolean subscriptionExtensions) { + this.messageEdits = messageEdits; + this.messageDeletions = messageDeletions; + this.messagePins = messagePins; + this.memberJoins = memberJoins; + this.memberLeaves = memberLeaves; + this.memberInvites = memberInvites; + this.memberPromotions = memberPromotions; + this.memberRestrictions = memberRestrictions; + this.infoChanges = infoChanges; + this.settingChanges = settingChanges; + this.inviteLinkChanges = inviteLinkChanges; + this.videoChatChanges = videoChatChanges; + this.forumChanges = forumChanges; + this.subscriptionExtensions = subscriptionExtensions; + } + + public static final int CONSTRUCTOR = -1032965711; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class ChatEvents extends Object { + + public ChatEvent[] events; + + public ChatEvents() { + } + + public ChatEvents(ChatEvent[] events) { + this.events = events; + } + + public static final int CONSTRUCTOR = -585329664; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class ChatFolder extends Object { + + public String title; + + public ChatFolderIcon icon; + + public int colorId; + + public boolean isShareable; + + public long[] pinnedChatIds; + + public long[] includedChatIds; + + public long[] excludedChatIds; + + public boolean excludeMuted; + + public boolean excludeRead; + + public boolean excludeArchived; + + public boolean includeContacts; + + public boolean includeNonContacts; + + public boolean includeBots; + + public boolean includeGroups; + + public boolean includeChannels; + + public ChatFolder() { + } + + public ChatFolder(String title, ChatFolderIcon icon, int colorId, boolean isShareable, long[] pinnedChatIds, long[] includedChatIds, long[] excludedChatIds, boolean excludeMuted, boolean excludeRead, boolean excludeArchived, boolean includeContacts, boolean includeNonContacts, boolean includeBots, boolean includeGroups, boolean includeChannels) { + this.title = title; + this.icon = icon; + this.colorId = colorId; + this.isShareable = isShareable; + this.pinnedChatIds = pinnedChatIds; + this.includedChatIds = includedChatIds; + this.excludedChatIds = excludedChatIds; + this.excludeMuted = excludeMuted; + this.excludeRead = excludeRead; + this.excludeArchived = excludeArchived; + this.includeContacts = includeContacts; + this.includeNonContacts = includeNonContacts; + this.includeBots = includeBots; + this.includeGroups = includeGroups; + this.includeChannels = includeChannels; + } + + public static final int CONSTRUCTOR = -474905057; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class ChatFolderIcon extends Object { + + public String name; + + public ChatFolderIcon() { + } + + public ChatFolderIcon(String name) { + this.name = name; + } + + public static final int CONSTRUCTOR = -146104090; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class ChatFolderInfo extends Object { + + public int id; + + public String title; + + public ChatFolderIcon icon; + + public int colorId; + + public boolean isShareable; + + public boolean hasMyInviteLinks; + + public ChatFolderInfo() { + } + + public ChatFolderInfo(int id, String title, ChatFolderIcon icon, int colorId, boolean isShareable, boolean hasMyInviteLinks) { + this.id = id; + this.title = title; + this.icon = icon; + this.colorId = colorId; + this.isShareable = isShareable; + this.hasMyInviteLinks = hasMyInviteLinks; + } + + public static final int CONSTRUCTOR = 190948485; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class ChatFolderInviteLink extends Object { + + public String inviteLink; + + public String name; + + public long[] chatIds; + + public ChatFolderInviteLink() { + } + + public ChatFolderInviteLink(String inviteLink, String name, long[] chatIds) { + this.inviteLink = inviteLink; + this.name = name; + this.chatIds = chatIds; + } + + public static final int CONSTRUCTOR = 493969661; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class ChatFolderInviteLinkInfo extends Object { + + public ChatFolderInfo chatFolderInfo; + + public long[] missingChatIds; + + public long[] addedChatIds; + + public ChatFolderInviteLinkInfo() { + } + + public ChatFolderInviteLinkInfo(ChatFolderInfo chatFolderInfo, long[] missingChatIds, long[] addedChatIds) { + this.chatFolderInfo = chatFolderInfo; + this.missingChatIds = missingChatIds; + this.addedChatIds = addedChatIds; + } + + public static final int CONSTRUCTOR = 1119450395; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class ChatFolderInviteLinks extends Object { + + public ChatFolderInviteLink[] inviteLinks; + + public ChatFolderInviteLinks() { + } + + public ChatFolderInviteLinks(ChatFolderInviteLink[] inviteLinks) { + this.inviteLinks = inviteLinks; + } + + public static final int CONSTRUCTOR = 1853351525; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class ChatInviteLink extends Object { + + public String inviteLink; + + public String name; + + public long creatorUserId; + + public int date; + + public int editDate; + + public int expirationDate; + + public StarSubscriptionPricing subscriptionPricing; + + public int memberLimit; + + public int memberCount; + + public int expiredMemberCount; + + public int pendingJoinRequestCount; + + public boolean createsJoinRequest; + + public boolean isPrimary; + + public boolean isRevoked; + + public ChatInviteLink() { + } + + public ChatInviteLink(String inviteLink, String name, long creatorUserId, int date, int editDate, int expirationDate, StarSubscriptionPricing subscriptionPricing, int memberLimit, int memberCount, int expiredMemberCount, int pendingJoinRequestCount, boolean createsJoinRequest, boolean isPrimary, boolean isRevoked) { + this.inviteLink = inviteLink; + this.name = name; + this.creatorUserId = creatorUserId; + this.date = date; + this.editDate = editDate; + this.expirationDate = expirationDate; + this.subscriptionPricing = subscriptionPricing; + this.memberLimit = memberLimit; + this.memberCount = memberCount; + this.expiredMemberCount = expiredMemberCount; + this.pendingJoinRequestCount = pendingJoinRequestCount; + this.createsJoinRequest = createsJoinRequest; + this.isPrimary = isPrimary; + this.isRevoked = isRevoked; + } + + public static final int CONSTRUCTOR = -957651664; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class ChatInviteLinkCount extends Object { + + public long userId; + + public int inviteLinkCount; + + public int revokedInviteLinkCount; + + public ChatInviteLinkCount() { + } + + public ChatInviteLinkCount(long userId, int inviteLinkCount, int revokedInviteLinkCount) { + this.userId = userId; + this.inviteLinkCount = inviteLinkCount; + this.revokedInviteLinkCount = revokedInviteLinkCount; + } + + public static final int CONSTRUCTOR = -1021999210; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class ChatInviteLinkCounts extends Object { + + public ChatInviteLinkCount[] inviteLinkCounts; + + public ChatInviteLinkCounts() { + } + + public ChatInviteLinkCounts(ChatInviteLinkCount[] inviteLinkCounts) { + this.inviteLinkCounts = inviteLinkCounts; + } + + public static final int CONSTRUCTOR = 920326637; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class ChatInviteLinkInfo extends Object { + + public long chatId; + + public int accessibleFor; + + public InviteLinkChatType type; + + public String title; + + public ChatPhotoInfo photo; + + public int accentColorId; + + public String description; + + public int memberCount; + + public long[] memberUserIds; + + public ChatInviteLinkSubscriptionInfo subscriptionInfo; + + public boolean createsJoinRequest; + + public boolean isPublic; + + public boolean isVerified; + + public boolean isScam; + + public boolean isFake; + + public ChatInviteLinkInfo() { + } + + public ChatInviteLinkInfo(long chatId, int accessibleFor, InviteLinkChatType type, String title, ChatPhotoInfo photo, int accentColorId, String description, int memberCount, long[] memberUserIds, ChatInviteLinkSubscriptionInfo subscriptionInfo, boolean createsJoinRequest, boolean isPublic, boolean isVerified, boolean isScam, boolean isFake) { + this.chatId = chatId; + this.accessibleFor = accessibleFor; + this.type = type; + this.title = title; + this.photo = photo; + this.accentColorId = accentColorId; + this.description = description; + this.memberCount = memberCount; + this.memberUserIds = memberUserIds; + this.subscriptionInfo = subscriptionInfo; + this.createsJoinRequest = createsJoinRequest; + this.isPublic = isPublic; + this.isVerified = isVerified; + this.isScam = isScam; + this.isFake = isFake; + } + + public static final int CONSTRUCTOR = 2052328938; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class ChatInviteLinkMember extends Object { + + public long userId; + + public int joinedChatDate; + + public boolean viaChatFolderInviteLink; + + public long approverUserId; + + public ChatInviteLinkMember() { + } + + public ChatInviteLinkMember(long userId, int joinedChatDate, boolean viaChatFolderInviteLink, long approverUserId) { + this.userId = userId; + this.joinedChatDate = joinedChatDate; + this.viaChatFolderInviteLink = viaChatFolderInviteLink; + this.approverUserId = approverUserId; + } + + public static final int CONSTRUCTOR = 29156795; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class ChatInviteLinkMembers extends Object { + + public int totalCount; + + public ChatInviteLinkMember[] members; + + public ChatInviteLinkMembers() { + } + + public ChatInviteLinkMembers(int totalCount, ChatInviteLinkMember[] members) { + this.totalCount = totalCount; + this.members = members; + } + + public static final int CONSTRUCTOR = 315635051; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class ChatInviteLinkSubscriptionInfo extends Object { + + public StarSubscriptionPricing pricing; + + public boolean canReuse; + + public long formId; + + public ChatInviteLinkSubscriptionInfo() { + } + + public ChatInviteLinkSubscriptionInfo(StarSubscriptionPricing pricing, boolean canReuse, long formId) { + this.pricing = pricing; + this.canReuse = canReuse; + this.formId = formId; + } + + public static final int CONSTRUCTOR = 953119592; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class ChatInviteLinks extends Object { + + public int totalCount; + + public ChatInviteLink[] inviteLinks; + + public ChatInviteLinks() { + } + + public ChatInviteLinks(int totalCount, ChatInviteLink[] inviteLinks) { + this.totalCount = totalCount; + this.inviteLinks = inviteLinks; + } + + public static final int CONSTRUCTOR = 112891427; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class ChatJoinRequest extends Object { + + public long userId; + + public int date; + + public String bio; + + public ChatJoinRequest() { + } + + public ChatJoinRequest(long userId, int date, String bio) { + this.userId = userId; + this.date = date; + this.bio = bio; + } + + public static final int CONSTRUCTOR = 59341416; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class ChatJoinRequests extends Object { + + public int totalCount; + + public ChatJoinRequest[] requests; + + public ChatJoinRequests() { + } + + public ChatJoinRequests(int totalCount, ChatJoinRequest[] requests) { + this.totalCount = totalCount; + this.requests = requests; + } + + public static final int CONSTRUCTOR = 1291680519; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class ChatJoinRequestsInfo extends Object { + + public int totalCount; + + public long[] userIds; + + public ChatJoinRequestsInfo() { + } + + public ChatJoinRequestsInfo(int totalCount, long[] userIds) { + this.totalCount = totalCount; + this.userIds = userIds; + } + + public static final int CONSTRUCTOR = 888534463; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public abstract static class ChatList extends Object { + + public ChatList() { + } + } + + public static class ChatListMain extends ChatList { + public ChatListMain() { + } + + public static final int CONSTRUCTOR = -400991316; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class ChatListArchive extends ChatList { + public ChatListArchive() { + } + + public static final int CONSTRUCTOR = 362770115; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class ChatListFolder extends ChatList { + + public int chatFolderId; + + public ChatListFolder() { + } + + public ChatListFolder(int chatFolderId) { + this.chatFolderId = chatFolderId; + } + + public static final int CONSTRUCTOR = 385760856; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class ChatLists extends Object { + + public ChatList[] chatLists; + + public ChatLists() { + } + + public ChatLists(ChatList[] chatLists) { + this.chatLists = chatLists; + } + + public static final int CONSTRUCTOR = -258292771; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class ChatLocation extends Object { + + public Location location; + + public String address; + + public ChatLocation() { + } + + public ChatLocation(Location location, String address) { + this.location = location; + this.address = address; + } + + public static final int CONSTRUCTOR = -1566863583; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class ChatMember extends Object { + + public MessageSender memberId; + + public long inviterUserId; + + public int joinedChatDate; + + public ChatMemberStatus status; + + public ChatMember() { + } + + public ChatMember(MessageSender memberId, long inviterUserId, int joinedChatDate, ChatMemberStatus status) { + this.memberId = memberId; + this.inviterUserId = inviterUserId; + this.joinedChatDate = joinedChatDate; + this.status = status; + } + + public static final int CONSTRUCTOR = 1829953909; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public abstract static class ChatMemberStatus extends Object { + + public ChatMemberStatus() { + } + } + + public static class ChatMemberStatusCreator extends ChatMemberStatus { + + public String customTitle; + + public boolean isAnonymous; + + public boolean isMember; + + public ChatMemberStatusCreator() { + } + + public ChatMemberStatusCreator(String customTitle, boolean isAnonymous, boolean isMember) { + this.customTitle = customTitle; + this.isAnonymous = isAnonymous; + this.isMember = isMember; + } + + public static final int CONSTRUCTOR = -160019714; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class ChatMemberStatusAdministrator extends ChatMemberStatus { + + public String customTitle; + + public boolean canBeEdited; + + public ChatAdministratorRights rights; + + public ChatMemberStatusAdministrator() { + } + + public ChatMemberStatusAdministrator(String customTitle, boolean canBeEdited, ChatAdministratorRights rights) { + this.customTitle = customTitle; + this.canBeEdited = canBeEdited; + this.rights = rights; + } + + public static final int CONSTRUCTOR = -70024163; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class ChatMemberStatusMember extends ChatMemberStatus { + + public int memberUntilDate; + + public ChatMemberStatusMember() { + } + + public ChatMemberStatusMember(int memberUntilDate) { + this.memberUntilDate = memberUntilDate; + } + + public static final int CONSTRUCTOR = -32707562; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class ChatMemberStatusRestricted extends ChatMemberStatus { + + public boolean isMember; + + public int restrictedUntilDate; + + public ChatPermissions permissions; + + public ChatMemberStatusRestricted() { + } + + public ChatMemberStatusRestricted(boolean isMember, int restrictedUntilDate, ChatPermissions permissions) { + this.isMember = isMember; + this.restrictedUntilDate = restrictedUntilDate; + this.permissions = permissions; + } + + public static final int CONSTRUCTOR = 1661432998; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class ChatMemberStatusLeft extends ChatMemberStatus { + public ChatMemberStatusLeft() { + } + + public static final int CONSTRUCTOR = -5815259; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class ChatMemberStatusBanned extends ChatMemberStatus { + + public int bannedUntilDate; + + public ChatMemberStatusBanned() { + } + + public ChatMemberStatusBanned(int bannedUntilDate) { + this.bannedUntilDate = bannedUntilDate; + } + + public static final int CONSTRUCTOR = -1653518666; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class ChatMembers extends Object { + + public int totalCount; + + public ChatMember[] members; + + public ChatMembers() { + } + + public ChatMembers(int totalCount, ChatMember[] members) { + this.totalCount = totalCount; + this.members = members; + } + + public static final int CONSTRUCTOR = -497558622; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public abstract static class ChatMembersFilter extends Object { + + public ChatMembersFilter() { + } + } + + public static class ChatMembersFilterContacts extends ChatMembersFilter { + public ChatMembersFilterContacts() { + } + + public static final int CONSTRUCTOR = 1774485671; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class ChatMembersFilterAdministrators extends ChatMembersFilter { + public ChatMembersFilterAdministrators() { + } + + public static final int CONSTRUCTOR = -1266893796; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class ChatMembersFilterMembers extends ChatMembersFilter { + public ChatMembersFilterMembers() { + } + + public static final int CONSTRUCTOR = 670504342; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class ChatMembersFilterMention extends ChatMembersFilter { + + public long messageThreadId; + + public ChatMembersFilterMention() { + } + + public ChatMembersFilterMention(long messageThreadId) { + this.messageThreadId = messageThreadId; + } + + public static final int CONSTRUCTOR = 856419831; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class ChatMembersFilterRestricted extends ChatMembersFilter { + public ChatMembersFilterRestricted() { + } + + public static final int CONSTRUCTOR = 1256282813; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class ChatMembersFilterBanned extends ChatMembersFilter { + public ChatMembersFilterBanned() { + } + + public static final int CONSTRUCTOR = -1863102648; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class ChatMembersFilterBots extends ChatMembersFilter { + public ChatMembersFilterBots() { + } + + public static final int CONSTRUCTOR = -1422567288; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class ChatMessageSender extends Object { + + public MessageSender sender; + + public boolean needsPremium; + + public ChatMessageSender() { + } + + public ChatMessageSender(MessageSender sender, boolean needsPremium) { + this.sender = sender; + this.needsPremium = needsPremium; + } + + public static final int CONSTRUCTOR = 760590010; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class ChatMessageSenders extends Object { + + public ChatMessageSender[] senders; + + public ChatMessageSenders() { + } + + public ChatMessageSenders(ChatMessageSender[] senders) { + this.senders = senders; + } + + public static final int CONSTRUCTOR = -1866230970; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class ChatNotificationSettings extends Object { + + public boolean useDefaultMuteFor; + + public int muteFor; + + public boolean useDefaultSound; + + public long soundId; + + public boolean useDefaultShowPreview; + + public boolean showPreview; + + public boolean useDefaultMuteStories; + + public boolean muteStories; + + public boolean useDefaultStorySound; + + public long storySoundId; + + public boolean useDefaultShowStorySender; + + public boolean showStorySender; + + public boolean useDefaultDisablePinnedMessageNotifications; + + public boolean disablePinnedMessageNotifications; + + public boolean useDefaultDisableMentionNotifications; + + public boolean disableMentionNotifications; + + public ChatNotificationSettings() { + } + + public ChatNotificationSettings(boolean useDefaultMuteFor, int muteFor, boolean useDefaultSound, long soundId, boolean useDefaultShowPreview, boolean showPreview, boolean useDefaultMuteStories, boolean muteStories, boolean useDefaultStorySound, long storySoundId, boolean useDefaultShowStorySender, boolean showStorySender, boolean useDefaultDisablePinnedMessageNotifications, boolean disablePinnedMessageNotifications, boolean useDefaultDisableMentionNotifications, boolean disableMentionNotifications) { + this.useDefaultMuteFor = useDefaultMuteFor; + this.muteFor = muteFor; + this.useDefaultSound = useDefaultSound; + this.soundId = soundId; + this.useDefaultShowPreview = useDefaultShowPreview; + this.showPreview = showPreview; + this.useDefaultMuteStories = useDefaultMuteStories; + this.muteStories = muteStories; + this.useDefaultStorySound = useDefaultStorySound; + this.storySoundId = storySoundId; + this.useDefaultShowStorySender = useDefaultShowStorySender; + this.showStorySender = showStorySender; + this.useDefaultDisablePinnedMessageNotifications = useDefaultDisablePinnedMessageNotifications; + this.disablePinnedMessageNotifications = disablePinnedMessageNotifications; + this.useDefaultDisableMentionNotifications = useDefaultDisableMentionNotifications; + this.disableMentionNotifications = disableMentionNotifications; + } + + public static final int CONSTRUCTOR = -572779825; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class ChatPermissions extends Object { + + public boolean canSendBasicMessages; + + public boolean canSendAudios; + + public boolean canSendDocuments; + + public boolean canSendPhotos; + + public boolean canSendVideos; + + public boolean canSendVideoNotes; + + public boolean canSendVoiceNotes; + + public boolean canSendPolls; + + public boolean canSendOtherMessages; + + public boolean canAddLinkPreviews; + + public boolean canChangeInfo; + + public boolean canInviteUsers; + + public boolean canPinMessages; + + public boolean canCreateTopics; + + public ChatPermissions() { + } + + public ChatPermissions(boolean canSendBasicMessages, boolean canSendAudios, boolean canSendDocuments, boolean canSendPhotos, boolean canSendVideos, boolean canSendVideoNotes, boolean canSendVoiceNotes, boolean canSendPolls, boolean canSendOtherMessages, boolean canAddLinkPreviews, boolean canChangeInfo, boolean canInviteUsers, boolean canPinMessages, boolean canCreateTopics) { + this.canSendBasicMessages = canSendBasicMessages; + this.canSendAudios = canSendAudios; + this.canSendDocuments = canSendDocuments; + this.canSendPhotos = canSendPhotos; + this.canSendVideos = canSendVideos; + this.canSendVideoNotes = canSendVideoNotes; + this.canSendVoiceNotes = canSendVoiceNotes; + this.canSendPolls = canSendPolls; + this.canSendOtherMessages = canSendOtherMessages; + this.canAddLinkPreviews = canAddLinkPreviews; + this.canChangeInfo = canChangeInfo; + this.canInviteUsers = canInviteUsers; + this.canPinMessages = canPinMessages; + this.canCreateTopics = canCreateTopics; + } + + public static final int CONSTRUCTOR = -118334855; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class ChatPhoto extends Object { + + public long id; + + public int addedDate; + + public Minithumbnail minithumbnail; + + public PhotoSize[] sizes; + + public AnimatedChatPhoto animation; + + public AnimatedChatPhoto smallAnimation; + + public ChatPhotoSticker sticker; + + public ChatPhoto() { + } + + public ChatPhoto(long id, int addedDate, Minithumbnail minithumbnail, PhotoSize[] sizes, AnimatedChatPhoto animation, AnimatedChatPhoto smallAnimation, ChatPhotoSticker sticker) { + this.id = id; + this.addedDate = addedDate; + this.minithumbnail = minithumbnail; + this.sizes = sizes; + this.animation = animation; + this.smallAnimation = smallAnimation; + this.sticker = sticker; + } + + public static final int CONSTRUCTOR = -1430870201; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class ChatPhotoInfo extends Object { + + public File small; + + public File big; + + public Minithumbnail minithumbnail; + + public boolean hasAnimation; + + public boolean isPersonal; + + public ChatPhotoInfo() { + } + + public ChatPhotoInfo(File small, File big, Minithumbnail minithumbnail, boolean hasAnimation, boolean isPersonal) { + this.small = small; + this.big = big; + this.minithumbnail = minithumbnail; + this.hasAnimation = hasAnimation; + this.isPersonal = isPersonal; + } + + public static final int CONSTRUCTOR = 281195686; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class ChatPhotoSticker extends Object { + + public ChatPhotoStickerType type; + + public BackgroundFill backgroundFill; + + public ChatPhotoSticker() { + } + + public ChatPhotoSticker(ChatPhotoStickerType type, BackgroundFill backgroundFill) { + this.type = type; + this.backgroundFill = backgroundFill; + } + + public static final int CONSTRUCTOR = -1459387485; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public abstract static class ChatPhotoStickerType extends Object { + + public ChatPhotoStickerType() { + } + } + + public static class ChatPhotoStickerTypeRegularOrMask extends ChatPhotoStickerType { + + public long stickerSetId; + + public long stickerId; + + public ChatPhotoStickerTypeRegularOrMask() { + } + + public ChatPhotoStickerTypeRegularOrMask(long stickerSetId, long stickerId) { + this.stickerSetId = stickerSetId; + this.stickerId = stickerId; + } + + public static final int CONSTRUCTOR = -415147620; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class ChatPhotoStickerTypeCustomEmoji extends ChatPhotoStickerType { + + public long customEmojiId; + + public ChatPhotoStickerTypeCustomEmoji() { + } + + public ChatPhotoStickerTypeCustomEmoji(long customEmojiId) { + this.customEmojiId = customEmojiId; + } + + public static final int CONSTRUCTOR = -266224943; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class ChatPhotos extends Object { + + public int totalCount; + + public ChatPhoto[] photos; + + public ChatPhotos() { + } + + public ChatPhotos(int totalCount, ChatPhoto[] photos) { + this.totalCount = totalCount; + this.photos = photos; + } + + public static final int CONSTRUCTOR = -1510699180; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class ChatPosition extends Object { + + public ChatList list; + + public long order; + + public boolean isPinned; + + public ChatSource source; + + public ChatPosition() { + } + + public ChatPosition(ChatList list, long order, boolean isPinned, ChatSource source) { + this.list = list; + this.order = order; + this.isPinned = isPinned; + this.source = source; + } + + public static final int CONSTRUCTOR = -622557355; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class ChatRevenueAmount extends Object { + + public String cryptocurrency; + + public long totalAmount; + + public long balanceAmount; + + public long availableAmount; + + public boolean withdrawalEnabled; + + public ChatRevenueAmount() { + } + + public ChatRevenueAmount(String cryptocurrency, long totalAmount, long balanceAmount, long availableAmount, boolean withdrawalEnabled) { + this.cryptocurrency = cryptocurrency; + this.totalAmount = totalAmount; + this.balanceAmount = balanceAmount; + this.availableAmount = availableAmount; + this.withdrawalEnabled = withdrawalEnabled; + } + + public static final int CONSTRUCTOR = -1505178024; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class ChatRevenueStatistics extends Object { + + public StatisticalGraph revenueByHourGraph; + + public StatisticalGraph revenueGraph; + + public ChatRevenueAmount revenueAmount; + + public double usdRate; + + public ChatRevenueStatistics() { + } + + public ChatRevenueStatistics(StatisticalGraph revenueByHourGraph, StatisticalGraph revenueGraph, ChatRevenueAmount revenueAmount, double usdRate) { + this.revenueByHourGraph = revenueByHourGraph; + this.revenueGraph = revenueGraph; + this.revenueAmount = revenueAmount; + this.usdRate = usdRate; + } + + public static final int CONSTRUCTOR = 1667438779; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class ChatRevenueTransaction extends Object { + + public String cryptocurrency; + + public long cryptocurrencyAmount; + + public ChatRevenueTransactionType type; + + public ChatRevenueTransaction() { + } + + public ChatRevenueTransaction(String cryptocurrency, long cryptocurrencyAmount, ChatRevenueTransactionType type) { + this.cryptocurrency = cryptocurrency; + this.cryptocurrencyAmount = cryptocurrencyAmount; + this.type = type; + } + + public static final int CONSTRUCTOR = 80192767; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public abstract static class ChatRevenueTransactionType extends Object { + + public ChatRevenueTransactionType() { + } + } + + public static class ChatRevenueTransactionTypeEarnings extends ChatRevenueTransactionType { + + public int startDate; + + public int endDate; + + public ChatRevenueTransactionTypeEarnings() { + } + + public ChatRevenueTransactionTypeEarnings(int startDate, int endDate) { + this.startDate = startDate; + this.endDate = endDate; + } + + public static final int CONSTRUCTOR = -400776056; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class ChatRevenueTransactionTypeWithdrawal extends ChatRevenueTransactionType { + + public int withdrawalDate; + + public String provider; + + public RevenueWithdrawalState state; + + public ChatRevenueTransactionTypeWithdrawal() { + } + + public ChatRevenueTransactionTypeWithdrawal(int withdrawalDate, String provider, RevenueWithdrawalState state) { + this.withdrawalDate = withdrawalDate; + this.provider = provider; + this.state = state; + } + + public static final int CONSTRUCTOR = 252939755; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class ChatRevenueTransactionTypeRefund extends ChatRevenueTransactionType { + + public int refundDate; + + public String provider; + + public ChatRevenueTransactionTypeRefund() { + } + + public ChatRevenueTransactionTypeRefund(int refundDate, String provider) { + this.refundDate = refundDate; + this.provider = provider; + } + + public static final int CONSTRUCTOR = 302430279; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class ChatRevenueTransactions extends Object { + + public int totalCount; + + public ChatRevenueTransaction[] transactions; + + public ChatRevenueTransactions() { + } + + public ChatRevenueTransactions(int totalCount, ChatRevenueTransaction[] transactions) { + this.totalCount = totalCount; + this.transactions = transactions; + } + + public static final int CONSTRUCTOR = -553258171; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public abstract static class ChatSource extends Object { + + public ChatSource() { + } + } + + public static class ChatSourceMtprotoProxy extends ChatSource { + public ChatSourceMtprotoProxy() { + } + + public static final int CONSTRUCTOR = 394074115; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class ChatSourcePublicServiceAnnouncement extends ChatSource { + + public String type; + + public String text; + + public ChatSourcePublicServiceAnnouncement() { + } + + public ChatSourcePublicServiceAnnouncement(String type, String text) { + this.type = type; + this.text = text; + } + + public static final int CONSTRUCTOR = -328571244; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public abstract static class ChatStatistics extends Object { + + public ChatStatistics() { + } + } + + public static class ChatStatisticsSupergroup extends ChatStatistics { + + public DateRange period; + + public StatisticalValue memberCount; + + public StatisticalValue messageCount; + + public StatisticalValue viewerCount; + + public StatisticalValue senderCount; + + public StatisticalGraph memberCountGraph; + + public StatisticalGraph joinGraph; + + public StatisticalGraph joinBySourceGraph; + + public StatisticalGraph languageGraph; + + public StatisticalGraph messageContentGraph; + + public StatisticalGraph actionGraph; + + public StatisticalGraph dayGraph; + + public StatisticalGraph weekGraph; + + public ChatStatisticsMessageSenderInfo[] topSenders; + + public ChatStatisticsAdministratorActionsInfo[] topAdministrators; + + public ChatStatisticsInviterInfo[] topInviters; + + public ChatStatisticsSupergroup() { + } + + public ChatStatisticsSupergroup(DateRange period, StatisticalValue memberCount, StatisticalValue messageCount, StatisticalValue viewerCount, StatisticalValue senderCount, StatisticalGraph memberCountGraph, StatisticalGraph joinGraph, StatisticalGraph joinBySourceGraph, StatisticalGraph languageGraph, StatisticalGraph messageContentGraph, StatisticalGraph actionGraph, StatisticalGraph dayGraph, StatisticalGraph weekGraph, ChatStatisticsMessageSenderInfo[] topSenders, ChatStatisticsAdministratorActionsInfo[] topAdministrators, ChatStatisticsInviterInfo[] topInviters) { + this.period = period; + this.memberCount = memberCount; + this.messageCount = messageCount; + this.viewerCount = viewerCount; + this.senderCount = senderCount; + this.memberCountGraph = memberCountGraph; + this.joinGraph = joinGraph; + this.joinBySourceGraph = joinBySourceGraph; + this.languageGraph = languageGraph; + this.messageContentGraph = messageContentGraph; + this.actionGraph = actionGraph; + this.dayGraph = dayGraph; + this.weekGraph = weekGraph; + this.topSenders = topSenders; + this.topAdministrators = topAdministrators; + this.topInviters = topInviters; + } + + public static final int CONSTRUCTOR = -17244633; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class ChatStatisticsChannel extends ChatStatistics { + + public DateRange period; + + public StatisticalValue memberCount; + + public StatisticalValue meanMessageViewCount; + + public StatisticalValue meanMessageShareCount; + + public StatisticalValue meanMessageReactionCount; + + public StatisticalValue meanStoryViewCount; + + public StatisticalValue meanStoryShareCount; + + public StatisticalValue meanStoryReactionCount; + + public double enabledNotificationsPercentage; + + public StatisticalGraph memberCountGraph; + + public StatisticalGraph joinGraph; + + public StatisticalGraph muteGraph; + + public StatisticalGraph viewCountByHourGraph; + + public StatisticalGraph viewCountBySourceGraph; + + public StatisticalGraph joinBySourceGraph; + + public StatisticalGraph languageGraph; + + public StatisticalGraph messageInteractionGraph; + + public StatisticalGraph messageReactionGraph; + + public StatisticalGraph storyInteractionGraph; + + public StatisticalGraph storyReactionGraph; + + public StatisticalGraph instantViewInteractionGraph; + + public ChatStatisticsInteractionInfo[] recentInteractions; + + public ChatStatisticsChannel() { + } + + public ChatStatisticsChannel(DateRange period, StatisticalValue memberCount, StatisticalValue meanMessageViewCount, StatisticalValue meanMessageShareCount, StatisticalValue meanMessageReactionCount, StatisticalValue meanStoryViewCount, StatisticalValue meanStoryShareCount, StatisticalValue meanStoryReactionCount, double enabledNotificationsPercentage, StatisticalGraph memberCountGraph, StatisticalGraph joinGraph, StatisticalGraph muteGraph, StatisticalGraph viewCountByHourGraph, StatisticalGraph viewCountBySourceGraph, StatisticalGraph joinBySourceGraph, StatisticalGraph languageGraph, StatisticalGraph messageInteractionGraph, StatisticalGraph messageReactionGraph, StatisticalGraph storyInteractionGraph, StatisticalGraph storyReactionGraph, StatisticalGraph instantViewInteractionGraph, ChatStatisticsInteractionInfo[] recentInteractions) { + this.period = period; + this.memberCount = memberCount; + this.meanMessageViewCount = meanMessageViewCount; + this.meanMessageShareCount = meanMessageShareCount; + this.meanMessageReactionCount = meanMessageReactionCount; + this.meanStoryViewCount = meanStoryViewCount; + this.meanStoryShareCount = meanStoryShareCount; + this.meanStoryReactionCount = meanStoryReactionCount; + this.enabledNotificationsPercentage = enabledNotificationsPercentage; + this.memberCountGraph = memberCountGraph; + this.joinGraph = joinGraph; + this.muteGraph = muteGraph; + this.viewCountByHourGraph = viewCountByHourGraph; + this.viewCountBySourceGraph = viewCountBySourceGraph; + this.joinBySourceGraph = joinBySourceGraph; + this.languageGraph = languageGraph; + this.messageInteractionGraph = messageInteractionGraph; + this.messageReactionGraph = messageReactionGraph; + this.storyInteractionGraph = storyInteractionGraph; + this.storyReactionGraph = storyReactionGraph; + this.instantViewInteractionGraph = instantViewInteractionGraph; + this.recentInteractions = recentInteractions; + } + + public static final int CONSTRUCTOR = -1375151660; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class ChatStatisticsAdministratorActionsInfo extends Object { + + public long userId; + + public int deletedMessageCount; + + public int bannedUserCount; + + public int restrictedUserCount; + + public ChatStatisticsAdministratorActionsInfo() { + } + + public ChatStatisticsAdministratorActionsInfo(long userId, int deletedMessageCount, int bannedUserCount, int restrictedUserCount) { + this.userId = userId; + this.deletedMessageCount = deletedMessageCount; + this.bannedUserCount = bannedUserCount; + this.restrictedUserCount = restrictedUserCount; + } + + public static final int CONSTRUCTOR = -406467202; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class ChatStatisticsInteractionInfo extends Object { + + public ChatStatisticsObjectType objectType; + + public int viewCount; + + public int forwardCount; + + public int reactionCount; + + public ChatStatisticsInteractionInfo() { + } + + public ChatStatisticsInteractionInfo(ChatStatisticsObjectType objectType, int viewCount, int forwardCount, int reactionCount) { + this.objectType = objectType; + this.viewCount = viewCount; + this.forwardCount = forwardCount; + this.reactionCount = reactionCount; + } + + public static final int CONSTRUCTOR = 1766496909; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class ChatStatisticsInviterInfo extends Object { + + public long userId; + + public int addedMemberCount; + + public ChatStatisticsInviterInfo() { + } + + public ChatStatisticsInviterInfo(long userId, int addedMemberCount) { + this.userId = userId; + this.addedMemberCount = addedMemberCount; + } + + public static final int CONSTRUCTOR = 629396619; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class ChatStatisticsMessageSenderInfo extends Object { + + public long userId; + + public int sentMessageCount; + + public int averageCharacterCount; + + public ChatStatisticsMessageSenderInfo() { + } + + public ChatStatisticsMessageSenderInfo(long userId, int sentMessageCount, int averageCharacterCount) { + this.userId = userId; + this.sentMessageCount = sentMessageCount; + this.averageCharacterCount = averageCharacterCount; + } + + public static final int CONSTRUCTOR = 1762295371; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public abstract static class ChatStatisticsObjectType extends Object { + + public ChatStatisticsObjectType() { + } + } + + public static class ChatStatisticsObjectTypeMessage extends ChatStatisticsObjectType { + + public long messageId; + + public ChatStatisticsObjectTypeMessage() { + } + + public ChatStatisticsObjectTypeMessage(long messageId) { + this.messageId = messageId; + } + + public static final int CONSTRUCTOR = 1872700662; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class ChatStatisticsObjectTypeStory extends ChatStatisticsObjectType { + + public int storyId; + + public ChatStatisticsObjectTypeStory() { + } + + public ChatStatisticsObjectTypeStory(int storyId) { + this.storyId = storyId; + } + + public static final int CONSTRUCTOR = 364575152; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class ChatTheme extends Object { + + public String name; + + public ThemeSettings lightSettings; + + public ThemeSettings darkSettings; + + public ChatTheme() { + } + + public ChatTheme(String name, ThemeSettings lightSettings, ThemeSettings darkSettings) { + this.name = name; + this.lightSettings = lightSettings; + this.darkSettings = darkSettings; + } + + public static final int CONSTRUCTOR = -113218503; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public abstract static class ChatType extends Object { + + public ChatType() { + } + } + + public static class ChatTypePrivate extends ChatType { + + public long userId; + + public ChatTypePrivate() { + } + + public ChatTypePrivate(long userId) { + this.userId = userId; + } + + public static final int CONSTRUCTOR = 1579049844; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class ChatTypeBasicGroup extends ChatType { + + public long basicGroupId; + + public ChatTypeBasicGroup() { + } + + public ChatTypeBasicGroup(long basicGroupId) { + this.basicGroupId = basicGroupId; + } + + public static final int CONSTRUCTOR = 973884508; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class ChatTypeSupergroup extends ChatType { + + public long supergroupId; + + public boolean isChannel; + + public ChatTypeSupergroup() { + } + + public ChatTypeSupergroup(long supergroupId, boolean isChannel) { + this.supergroupId = supergroupId; + this.isChannel = isChannel; + } + + public static final int CONSTRUCTOR = -1472570774; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class ChatTypeSecret extends ChatType { + + public int secretChatId; + + public long userId; + + public ChatTypeSecret() { + } + + public ChatTypeSecret(int secretChatId, long userId) { + this.secretChatId = secretChatId; + this.userId = userId; + } + + public static final int CONSTRUCTOR = 862366513; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class Chats extends Object { + + public int totalCount; + + public long[] chatIds; + + public Chats() { + } + + public Chats(int totalCount, long[] chatIds) { + this.totalCount = totalCount; + this.chatIds = chatIds; + } + + public static final int CONSTRUCTOR = 1809654812; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public abstract static class CheckChatUsernameResult extends Object { + + public CheckChatUsernameResult() { + } + } + + public static class CheckChatUsernameResultOk extends CheckChatUsernameResult { + public CheckChatUsernameResultOk() { + } + + public static final int CONSTRUCTOR = -1498956964; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class CheckChatUsernameResultUsernameInvalid extends CheckChatUsernameResult { + public CheckChatUsernameResultUsernameInvalid() { + } + + public static final int CONSTRUCTOR = -636979370; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class CheckChatUsernameResultUsernameOccupied extends CheckChatUsernameResult { + public CheckChatUsernameResultUsernameOccupied() { + } + + public static final int CONSTRUCTOR = 1320892201; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class CheckChatUsernameResultUsernamePurchasable extends CheckChatUsernameResult { + public CheckChatUsernameResultUsernamePurchasable() { + } + + public static final int CONSTRUCTOR = 5885529; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class CheckChatUsernameResultPublicChatsTooMany extends CheckChatUsernameResult { + public CheckChatUsernameResultPublicChatsTooMany() { + } + + public static final int CONSTRUCTOR = -659264388; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class CheckChatUsernameResultPublicGroupsUnavailable extends CheckChatUsernameResult { + public CheckChatUsernameResultPublicGroupsUnavailable() { + } + + public static final int CONSTRUCTOR = -51833641; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public abstract static class CheckStickerSetNameResult extends Object { + + public CheckStickerSetNameResult() { + } + } + + public static class CheckStickerSetNameResultOk extends CheckStickerSetNameResult { + public CheckStickerSetNameResultOk() { + } + + public static final int CONSTRUCTOR = -1404308904; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class CheckStickerSetNameResultNameInvalid extends CheckStickerSetNameResult { + public CheckStickerSetNameResultNameInvalid() { + } + + public static final int CONSTRUCTOR = 177992244; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class CheckStickerSetNameResultNameOccupied extends CheckStickerSetNameResult { + public CheckStickerSetNameResultNameOccupied() { + } + + public static final int CONSTRUCTOR = 1012980872; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class CloseBirthdayUser extends Object { + + public long userId; + + public Birthdate birthdate; + + public CloseBirthdayUser() { + } + + public CloseBirthdayUser(long userId, Birthdate birthdate) { + this.userId = userId; + this.birthdate = birthdate; + } + + public static final int CONSTRUCTOR = -2147067410; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class ClosedVectorPath extends Object { + + public VectorPathCommand[] commands; + + public ClosedVectorPath() { + } + + public ClosedVectorPath(VectorPathCommand[] commands) { + this.commands = commands; + } + + public static final int CONSTRUCTOR = 589951657; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class CollectibleItemInfo extends Object { + + public int purchaseDate; + + public String currency; + + public long amount; + + public String cryptocurrency; + + public long cryptocurrencyAmount; + + public String url; + + public CollectibleItemInfo() { + } + + public CollectibleItemInfo(int purchaseDate, String currency, long amount, String cryptocurrency, long cryptocurrencyAmount, String url) { + this.purchaseDate = purchaseDate; + this.currency = currency; + this.amount = amount; + this.cryptocurrency = cryptocurrency; + this.cryptocurrencyAmount = cryptocurrencyAmount; + this.url = url; + } + + public static final int CONSTRUCTOR = 1460640717; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public abstract static class CollectibleItemType extends Object { + + public CollectibleItemType() { + } + } + + public static class CollectibleItemTypeUsername extends CollectibleItemType { + + public String username; + + public CollectibleItemTypeUsername() { + } + + public CollectibleItemTypeUsername(String username) { + this.username = username; + } + + public static final int CONSTRUCTOR = 458680273; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class CollectibleItemTypePhoneNumber extends CollectibleItemType { + + public String phoneNumber; + + public CollectibleItemTypePhoneNumber() { + } + + public CollectibleItemTypePhoneNumber(String phoneNumber) { + this.phoneNumber = phoneNumber; + } + + public static final int CONSTRUCTOR = 1256251714; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class ConnectedWebsite extends Object { + + public long id; + + public String domainName; + + public long botUserId; + + public String browser; + + public String platform; + + public int logInDate; + + public int lastActiveDate; + + public String ipAddress; + + public String location; + + public ConnectedWebsite() { + } + + public ConnectedWebsite(long id, String domainName, long botUserId, String browser, String platform, int logInDate, int lastActiveDate, String ipAddress, String location) { + this.id = id; + this.domainName = domainName; + this.botUserId = botUserId; + this.browser = browser; + this.platform = platform; + this.logInDate = logInDate; + this.lastActiveDate = lastActiveDate; + this.ipAddress = ipAddress; + this.location = location; + } + + public static final int CONSTRUCTOR = 1978115978; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class ConnectedWebsites extends Object { + + public ConnectedWebsite[] websites; + + public ConnectedWebsites() { + } + + public ConnectedWebsites(ConnectedWebsite[] websites) { + this.websites = websites; + } + + public static final int CONSTRUCTOR = -1727949694; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public abstract static class ConnectionState extends Object { + + public ConnectionState() { + } + } + + public static class ConnectionStateWaitingForNetwork extends ConnectionState { + public ConnectionStateWaitingForNetwork() { + } + + public static final int CONSTRUCTOR = 1695405912; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class ConnectionStateConnectingToProxy extends ConnectionState { + public ConnectionStateConnectingToProxy() { + } + + public static final int CONSTRUCTOR = -93187239; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class ConnectionStateConnecting extends ConnectionState { + public ConnectionStateConnecting() { + } + + public static final int CONSTRUCTOR = -1298400670; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class ConnectionStateUpdating extends ConnectionState { + public ConnectionStateUpdating() { + } + + public static final int CONSTRUCTOR = -188104009; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class ConnectionStateReady extends ConnectionState { + public ConnectionStateReady() { + } + + public static final int CONSTRUCTOR = 48608492; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class Contact extends Object { + + public String phoneNumber; + + public String firstName; + + public String lastName; + + public String vcard; + + public long userId; + + public Contact() { + } + + public Contact(String phoneNumber, String firstName, String lastName, String vcard, long userId) { + this.phoneNumber = phoneNumber; + this.firstName = firstName; + this.lastName = lastName; + this.vcard = vcard; + this.userId = userId; + } + + public static final int CONSTRUCTOR = -1993844876; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class Count extends Object { + + public int count; + + public Count() { + } + + public Count(int count) { + this.count = count; + } + + public static final int CONSTRUCTOR = 1295577348; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class Countries extends Object { + + public CountryInfo[] countries; + + public Countries() { + } + + public Countries(CountryInfo[] countries) { + this.countries = countries; + } + + public static final int CONSTRUCTOR = 1854211813; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class CountryInfo extends Object { + + public String countryCode; + + public String name; + + public String englishName; + + public boolean isHidden; + + public String[] callingCodes; + + public CountryInfo() { + } + + public CountryInfo(String countryCode, String name, String englishName, boolean isHidden, String[] callingCodes) { + this.countryCode = countryCode; + this.name = name; + this.englishName = englishName; + this.isHidden = isHidden; + this.callingCodes = callingCodes; + } + + public static final int CONSTRUCTOR = 1617195722; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class CreatedBasicGroupChat extends Object { + + public long chatId; + + public FailedToAddMembers failedToAddMembers; + + public CreatedBasicGroupChat() { + } + + public CreatedBasicGroupChat(long chatId, FailedToAddMembers failedToAddMembers) { + this.chatId = chatId; + this.failedToAddMembers = failedToAddMembers; + } + + public static final int CONSTRUCTOR = -20417068; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class CurrentWeather extends Object { + + public double temperature; + + public String emoji; + + public CurrentWeather() { + } + + public CurrentWeather(double temperature, String emoji) { + this.temperature = temperature; + this.emoji = emoji; + } + + public static final int CONSTRUCTOR = -355555136; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class CustomRequestResult extends Object { + + public String result; + + public CustomRequestResult() { + } + + public CustomRequestResult(String result) { + this.result = result; + } + + public static final int CONSTRUCTOR = -2009960452; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class DatabaseStatistics extends Object { + + public String statistics; + + public DatabaseStatistics() { + } + + public DatabaseStatistics(String statistics) { + this.statistics = statistics; + } + + public static final int CONSTRUCTOR = -1123912880; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class Date extends Object { + + public int day; + + public int month; + + public int year; + + public Date() { + } + + public Date(int day, int month, int year) { + this.day = day; + this.month = month; + this.year = year; + } + + public static final int CONSTRUCTOR = -277956960; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class DateRange extends Object { + + public int startDate; + + public int endDate; + + public DateRange() { + } + + public DateRange(int startDate, int endDate) { + this.startDate = startDate; + this.endDate = endDate; + } + + public static final int CONSTRUCTOR = 1360333926; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class DatedFile extends Object { + + public File file; + + public int date; + + public DatedFile() { + } + + public DatedFile(File file, int date) { + this.file = file; + this.date = date; + } + + public static final int CONSTRUCTOR = -1840795491; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class DeepLinkInfo extends Object { + + public FormattedText text; + + public boolean needUpdateApplication; + + public DeepLinkInfo() { + } + + public DeepLinkInfo(FormattedText text, boolean needUpdateApplication) { + this.text = text; + this.needUpdateApplication = needUpdateApplication; + } + + public static final int CONSTRUCTOR = 1864081662; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public abstract static class DeviceToken extends Object { + + public DeviceToken() { + } + } + + public static class DeviceTokenFirebaseCloudMessaging extends DeviceToken { + + public String token; + + public boolean encrypt; + + public DeviceTokenFirebaseCloudMessaging() { + } + + public DeviceTokenFirebaseCloudMessaging(String token, boolean encrypt) { + this.token = token; + this.encrypt = encrypt; + } + + public static final int CONSTRUCTOR = -797881849; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class DeviceTokenApplePush extends DeviceToken { + + public String deviceToken; + + public boolean isAppSandbox; + + public DeviceTokenApplePush() { + } + + public DeviceTokenApplePush(String deviceToken, boolean isAppSandbox) { + this.deviceToken = deviceToken; + this.isAppSandbox = isAppSandbox; + } + + public static final int CONSTRUCTOR = 387541955; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class DeviceTokenApplePushVoIP extends DeviceToken { + + public String deviceToken; + + public boolean isAppSandbox; + + public boolean encrypt; + + public DeviceTokenApplePushVoIP() { + } + + public DeviceTokenApplePushVoIP(String deviceToken, boolean isAppSandbox, boolean encrypt) { + this.deviceToken = deviceToken; + this.isAppSandbox = isAppSandbox; + this.encrypt = encrypt; + } + + public static final int CONSTRUCTOR = 804275689; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class DeviceTokenWindowsPush extends DeviceToken { + + public String accessToken; + + public DeviceTokenWindowsPush() { + } + + public DeviceTokenWindowsPush(String accessToken) { + this.accessToken = accessToken; + } + + public static final int CONSTRUCTOR = -1410514289; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class DeviceTokenMicrosoftPush extends DeviceToken { + + public String channelUri; + + public DeviceTokenMicrosoftPush() { + } + + public DeviceTokenMicrosoftPush(String channelUri) { + this.channelUri = channelUri; + } + + public static final int CONSTRUCTOR = 1224269900; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class DeviceTokenMicrosoftPushVoIP extends DeviceToken { + + public String channelUri; + + public DeviceTokenMicrosoftPushVoIP() { + } + + public DeviceTokenMicrosoftPushVoIP(String channelUri) { + this.channelUri = channelUri; + } + + public static final int CONSTRUCTOR = -785603759; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class DeviceTokenWebPush extends DeviceToken { + + public String endpoint; + + public String p256dhBase64url; + + public String authBase64url; + + public DeviceTokenWebPush() { + } + + public DeviceTokenWebPush(String endpoint, String p256dhBase64url, String authBase64url) { + this.endpoint = endpoint; + this.p256dhBase64url = p256dhBase64url; + this.authBase64url = authBase64url; + } + + public static final int CONSTRUCTOR = -1694507273; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class DeviceTokenSimplePush extends DeviceToken { + + public String endpoint; + + public DeviceTokenSimplePush() { + } + + public DeviceTokenSimplePush(String endpoint) { + this.endpoint = endpoint; + } + + public static final int CONSTRUCTOR = 49584736; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class DeviceTokenUbuntuPush extends DeviceToken { + + public String token; + + public DeviceTokenUbuntuPush() { + } + + public DeviceTokenUbuntuPush(String token) { + this.token = token; + } + + public static final int CONSTRUCTOR = 1782320422; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class DeviceTokenBlackBerryPush extends DeviceToken { + + public String token; + + public DeviceTokenBlackBerryPush() { + } + + public DeviceTokenBlackBerryPush(String token) { + this.token = token; + } + + public static final int CONSTRUCTOR = 1559167234; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class DeviceTokenTizenPush extends DeviceToken { + + public String regId; + + public DeviceTokenTizenPush() { + } + + public DeviceTokenTizenPush(String regId) { + this.regId = regId; + } + + public static final int CONSTRUCTOR = -1359947213; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class DeviceTokenHuaweiPush extends DeviceToken { + + public String token; + + public boolean encrypt; + + public DeviceTokenHuaweiPush() { + } + + public DeviceTokenHuaweiPush(String token, boolean encrypt) { + this.token = token; + this.encrypt = encrypt; + } + + public static final int CONSTRUCTOR = 1989103142; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public abstract static class DiceStickers extends Object { + + public DiceStickers() { + } + } + + public static class DiceStickersRegular extends DiceStickers { + + public Sticker sticker; + + public DiceStickersRegular() { + } + + public DiceStickersRegular(Sticker sticker) { + this.sticker = sticker; + } + + public static final int CONSTRUCTOR = -740299570; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class DiceStickersSlotMachine extends DiceStickers { + + public Sticker background; + + public Sticker lever; + + public Sticker leftReel; + + public Sticker centerReel; + + public Sticker rightReel; + + public DiceStickersSlotMachine() { + } + + public DiceStickersSlotMachine(Sticker background, Sticker lever, Sticker leftReel, Sticker centerReel, Sticker rightReel) { + this.background = background; + this.lever = lever; + this.leftReel = leftReel; + this.centerReel = centerReel; + this.rightReel = rightReel; + } + + public static final int CONSTRUCTOR = -375223124; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class Document extends Object { + + public String fileName; + + public String mimeType; + + public Minithumbnail minithumbnail; + + public Thumbnail thumbnail; + + public File document; + + public Document() { + } + + public Document(String fileName, String mimeType, Minithumbnail minithumbnail, Thumbnail thumbnail, File document) { + this.fileName = fileName; + this.mimeType = mimeType; + this.minithumbnail = minithumbnail; + this.thumbnail = thumbnail; + this.document = document; + } + + public static final int CONSTRUCTOR = -1357271080; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class DownloadedFileCounts extends Object { + + public int activeCount; + + public int pausedCount; + + public int completedCount; + + public DownloadedFileCounts() { + } + + public DownloadedFileCounts(int activeCount, int pausedCount, int completedCount) { + this.activeCount = activeCount; + this.pausedCount = pausedCount; + this.completedCount = completedCount; + } + + public static final int CONSTRUCTOR = -1973999550; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class DraftMessage extends Object { + + public InputMessageReplyTo replyTo; + + public int date; + + public InputMessageContent inputMessageText; + + public long effectId; + + public DraftMessage() { + } + + public DraftMessage(InputMessageReplyTo replyTo, int date, InputMessageContent inputMessageText, long effectId) { + this.replyTo = replyTo; + this.date = date; + this.inputMessageText = inputMessageText; + this.effectId = effectId; + } + + public static final int CONSTRUCTOR = 1125328749; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public abstract static class EmailAddressAuthentication extends Object { + + public EmailAddressAuthentication() { + } + } + + public static class EmailAddressAuthenticationCode extends EmailAddressAuthentication { + + public String code; + + public EmailAddressAuthenticationCode() { + } + + public EmailAddressAuthenticationCode(String code) { + this.code = code; + } + + public static final int CONSTRUCTOR = -993257022; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class EmailAddressAuthenticationAppleId extends EmailAddressAuthentication { + + public String token; + + public EmailAddressAuthenticationAppleId() { + } + + public EmailAddressAuthenticationAppleId(String token) { + this.token = token; + } + + public static final int CONSTRUCTOR = 633948265; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class EmailAddressAuthenticationGoogleId extends EmailAddressAuthentication { + + public String token; + + public EmailAddressAuthenticationGoogleId() { + } + + public EmailAddressAuthenticationGoogleId(String token) { + this.token = token; + } + + public static final int CONSTRUCTOR = -19142846; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class EmailAddressAuthenticationCodeInfo extends Object { + + public String emailAddressPattern; + + public int length; + + public EmailAddressAuthenticationCodeInfo() { + } + + public EmailAddressAuthenticationCodeInfo(String emailAddressPattern, int length) { + this.emailAddressPattern = emailAddressPattern; + this.length = length; + } + + public static final int CONSTRUCTOR = 1151066659; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public abstract static class EmailAddressResetState extends Object { + + public EmailAddressResetState() { + } + } + + public static class EmailAddressResetStateAvailable extends EmailAddressResetState { + + public int waitPeriod; + + public EmailAddressResetStateAvailable() { + } + + public EmailAddressResetStateAvailable(int waitPeriod) { + this.waitPeriod = waitPeriod; + } + + public static final int CONSTRUCTOR = -1917177600; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class EmailAddressResetStatePending extends EmailAddressResetState { + + public int resetIn; + + public EmailAddressResetStatePending() { + } + + public EmailAddressResetStatePending(int resetIn) { + this.resetIn = resetIn; + } + + public static final int CONSTRUCTOR = -1885966805; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class EmojiCategories extends Object { + + public EmojiCategory[] categories; + + public EmojiCategories() { + } + + public EmojiCategories(EmojiCategory[] categories) { + this.categories = categories; + } + + public static final int CONSTRUCTOR = -1455387824; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class EmojiCategory extends Object { + + public String name; + + public Sticker icon; + + public EmojiCategorySource source; + + public boolean isGreeting; + + public EmojiCategory() { + } + + public EmojiCategory(String name, Sticker icon, EmojiCategorySource source, boolean isGreeting) { + this.name = name; + this.icon = icon; + this.source = source; + this.isGreeting = isGreeting; + } + + public static final int CONSTRUCTOR = 571335919; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public abstract static class EmojiCategorySource extends Object { + + public EmojiCategorySource() { + } + } + + public static class EmojiCategorySourceSearch extends EmojiCategorySource { + + public String[] emojis; + + public EmojiCategorySourceSearch() { + } + + public EmojiCategorySourceSearch(String[] emojis) { + this.emojis = emojis; + } + + public static final int CONSTRUCTOR = -453260262; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class EmojiCategorySourcePremium extends EmojiCategorySource { + public EmojiCategorySourcePremium() { + } + + public static final int CONSTRUCTOR = -1932358388; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public abstract static class EmojiCategoryType extends Object { + + public EmojiCategoryType() { + } + } + + public static class EmojiCategoryTypeDefault extends EmojiCategoryType { + public EmojiCategoryTypeDefault() { + } + + public static final int CONSTRUCTOR = 1188782699; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class EmojiCategoryTypeRegularStickers extends EmojiCategoryType { + public EmojiCategoryTypeRegularStickers() { + } + + public static final int CONSTRUCTOR = -1337484846; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class EmojiCategoryTypeEmojiStatus extends EmojiCategoryType { + public EmojiCategoryTypeEmojiStatus() { + } + + public static final int CONSTRUCTOR = 1381282631; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class EmojiCategoryTypeChatPhoto extends EmojiCategoryType { + public EmojiCategoryTypeChatPhoto() { + } + + public static final int CONSTRUCTOR = 1059063081; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class EmojiKeyword extends Object { + + public String emoji; + + public String keyword; + + public EmojiKeyword() { + } + + public EmojiKeyword(String emoji, String keyword) { + this.emoji = emoji; + this.keyword = keyword; + } + + public static final int CONSTRUCTOR = -2112285985; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class EmojiKeywords extends Object { + + public EmojiKeyword[] emojiKeywords; + + public EmojiKeywords() { + } + + public EmojiKeywords(EmojiKeyword[] emojiKeywords) { + this.emojiKeywords = emojiKeywords; + } + + public static final int CONSTRUCTOR = 689723339; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class EmojiReaction extends Object { + + public String emoji; + + public String title; + + public boolean isActive; + + public Sticker staticIcon; + + public Sticker appearAnimation; + + public Sticker selectAnimation; + + public Sticker activateAnimation; + + public Sticker effectAnimation; + + public Sticker aroundAnimation; + + public Sticker centerAnimation; + + public EmojiReaction() { + } + + public EmojiReaction(String emoji, String title, boolean isActive, Sticker staticIcon, Sticker appearAnimation, Sticker selectAnimation, Sticker activateAnimation, Sticker effectAnimation, Sticker aroundAnimation, Sticker centerAnimation) { + this.emoji = emoji; + this.title = title; + this.isActive = isActive; + this.staticIcon = staticIcon; + this.appearAnimation = appearAnimation; + this.selectAnimation = selectAnimation; + this.activateAnimation = activateAnimation; + this.effectAnimation = effectAnimation; + this.aroundAnimation = aroundAnimation; + this.centerAnimation = centerAnimation; + } + + public static final int CONSTRUCTOR = 1616063583; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class EmojiStatus extends Object { + + public long customEmojiId; + + public int expirationDate; + + public EmojiStatus() { + } + + public EmojiStatus(long customEmojiId, int expirationDate) { + this.customEmojiId = customEmojiId; + this.expirationDate = expirationDate; + } + + public static final int CONSTRUCTOR = -606529994; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class EmojiStatuses extends Object { + + public long[] customEmojiIds; + + public EmojiStatuses() { + } + + public EmojiStatuses(long[] customEmojiIds) { + this.customEmojiIds = customEmojiIds; + } + + public static final int CONSTRUCTOR = -377859594; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class Emojis extends Object { + + public String[] emojis; + + public Emojis() { + } + + public Emojis(String[] emojis) { + this.emojis = emojis; + } + + public static final int CONSTRUCTOR = 950339552; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class EncryptedCredentials extends Object { + + public byte[] data; + + public byte[] hash; + + public byte[] secret; + + public EncryptedCredentials() { + } + + public EncryptedCredentials(byte[] data, byte[] hash, byte[] secret) { + this.data = data; + this.hash = hash; + this.secret = secret; + } + + public static final int CONSTRUCTOR = 1331106766; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class EncryptedPassportElement extends Object { + + public PassportElementType type; + + public byte[] data; + + public DatedFile frontSide; + + public DatedFile reverseSide; + + public DatedFile selfie; + + public DatedFile[] translation; + + public DatedFile[] files; + + public String value; + + public String hash; + + public EncryptedPassportElement() { + } + + public EncryptedPassportElement(PassportElementType type, byte[] data, DatedFile frontSide, DatedFile reverseSide, DatedFile selfie, DatedFile[] translation, DatedFile[] files, String value, String hash) { + this.type = type; + this.data = data; + this.frontSide = frontSide; + this.reverseSide = reverseSide; + this.selfie = selfie; + this.translation = translation; + this.files = files; + this.value = value; + this.hash = hash; + } + + public static final int CONSTRUCTOR = 2002386193; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class Error extends Object { + + public int code; + + public String message; + + public Error() { + } + + public Error(int code, String message) { + this.code = code; + this.message = message; + } + + public static final int CONSTRUCTOR = -1679978726; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class FactCheck extends Object { + + public FormattedText text; + + public String countryCode; + + public FactCheck() { + } + + public FactCheck(FormattedText text, String countryCode) { + this.text = text; + this.countryCode = countryCode; + } + + public static final int CONSTRUCTOR = -1048184552; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class FailedToAddMember extends Object { + + public long userId; + + public boolean premiumWouldAllowInvite; + + public boolean premiumRequiredToSendMessages; + + public FailedToAddMember() { + } + + public FailedToAddMember(long userId, boolean premiumWouldAllowInvite, boolean premiumRequiredToSendMessages) { + this.userId = userId; + this.premiumWouldAllowInvite = premiumWouldAllowInvite; + this.premiumRequiredToSendMessages = premiumRequiredToSendMessages; + } + + public static final int CONSTRUCTOR = -282891070; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class FailedToAddMembers extends Object { + + public FailedToAddMember[] failedToAddMembers; + + public FailedToAddMembers() { + } + + public FailedToAddMembers(FailedToAddMember[] failedToAddMembers) { + this.failedToAddMembers = failedToAddMembers; + } + + public static final int CONSTRUCTOR = -272587152; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class File extends Object { + + public int id; + + public long size; + + public long expectedSize; + + public LocalFile local; + + public RemoteFile remote; + + public File() { + } + + public File(int id, long size, long expectedSize, LocalFile local, RemoteFile remote) { + this.id = id; + this.size = size; + this.expectedSize = expectedSize; + this.local = local; + this.remote = remote; + } + + public static final int CONSTRUCTOR = 1263291956; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class FileDownload extends Object { + + public int fileId; + + public Message message; + + public int addDate; + + public int completeDate; + + public boolean isPaused; + + public FileDownload() { + } + + public FileDownload(int fileId, Message message, int addDate, int completeDate, boolean isPaused) { + this.fileId = fileId; + this.message = message; + this.addDate = addDate; + this.completeDate = completeDate; + this.isPaused = isPaused; + } + + public static final int CONSTRUCTOR = -2092100780; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class FileDownloadedPrefixSize extends Object { + + public long size; + + public FileDownloadedPrefixSize() { + } + + public FileDownloadedPrefixSize(long size) { + this.size = size; + } + + public static final int CONSTRUCTOR = -2015205381; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class FilePart extends Object { + + public byte[] data; + + public FilePart() { + } + + public FilePart(byte[] data) { + this.data = data; + } + + public static final int CONSTRUCTOR = 911821878; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public abstract static class FileType extends Object { + + public FileType() { + } + } + + public static class FileTypeNone extends FileType { + public FileTypeNone() { + } + + public static final int CONSTRUCTOR = 2003009189; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class FileTypeAnimation extends FileType { + public FileTypeAnimation() { + } + + public static final int CONSTRUCTOR = -290816582; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class FileTypeAudio extends FileType { + public FileTypeAudio() { + } + + public static final int CONSTRUCTOR = -709112160; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class FileTypeDocument extends FileType { + public FileTypeDocument() { + } + + public static final int CONSTRUCTOR = -564722929; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class FileTypeNotificationSound extends FileType { + public FileTypeNotificationSound() { + } + + public static final int CONSTRUCTOR = -1020289271; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class FileTypePhoto extends FileType { + public FileTypePhoto() { + } + + public static final int CONSTRUCTOR = -1718914651; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class FileTypePhotoStory extends FileType { + public FileTypePhotoStory() { + } + + public static final int CONSTRUCTOR = 2018995956; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class FileTypeProfilePhoto extends FileType { + public FileTypeProfilePhoto() { + } + + public static final int CONSTRUCTOR = 1795089315; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class FileTypeSecret extends FileType { + public FileTypeSecret() { + } + + public static final int CONSTRUCTOR = -1871899401; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class FileTypeSecretThumbnail extends FileType { + public FileTypeSecretThumbnail() { + } + + public static final int CONSTRUCTOR = -1401326026; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class FileTypeSecure extends FileType { + public FileTypeSecure() { + } + + public static final int CONSTRUCTOR = -1419133146; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class FileTypeSelfDestructingPhoto extends FileType { + public FileTypeSelfDestructingPhoto() { + } + + public static final int CONSTRUCTOR = 2077176475; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class FileTypeSelfDestructingVideo extends FileType { + public FileTypeSelfDestructingVideo() { + } + + public static final int CONSTRUCTOR = -1223900123; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class FileTypeSelfDestructingVideoNote extends FileType { + public FileTypeSelfDestructingVideoNote() { + } + + public static final int CONSTRUCTOR = 1495274177; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class FileTypeSelfDestructingVoiceNote extends FileType { + public FileTypeSelfDestructingVoiceNote() { + } + + public static final int CONSTRUCTOR = 1691409181; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class FileTypeSticker extends FileType { + public FileTypeSticker() { + } + + public static final int CONSTRUCTOR = 475233385; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class FileTypeThumbnail extends FileType { + public FileTypeThumbnail() { + } + + public static final int CONSTRUCTOR = -12443298; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class FileTypeUnknown extends FileType { + public FileTypeUnknown() { + } + + public static final int CONSTRUCTOR = -2011566768; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class FileTypeVideo extends FileType { + public FileTypeVideo() { + } + + public static final int CONSTRUCTOR = 1430816539; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class FileTypeVideoNote extends FileType { + public FileTypeVideoNote() { + } + + public static final int CONSTRUCTOR = -518412385; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class FileTypeVideoStory extends FileType { + public FileTypeVideoStory() { + } + + public static final int CONSTRUCTOR = -2146754143; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class FileTypeVoiceNote extends FileType { + public FileTypeVoiceNote() { + } + + public static final int CONSTRUCTOR = -588681661; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class FileTypeWallpaper extends FileType { + public FileTypeWallpaper() { + } + + public static final int CONSTRUCTOR = 1854930076; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public abstract static class FirebaseAuthenticationSettings extends Object { + + public FirebaseAuthenticationSettings() { + } + } + + public static class FirebaseAuthenticationSettingsAndroid extends FirebaseAuthenticationSettings { + public FirebaseAuthenticationSettingsAndroid() { + } + + public static final int CONSTRUCTOR = -1771112932; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class FirebaseAuthenticationSettingsIos extends FirebaseAuthenticationSettings { + + public String deviceToken; + + public boolean isAppSandbox; + + public FirebaseAuthenticationSettingsIos() { + } + + public FirebaseAuthenticationSettingsIos(String deviceToken, boolean isAppSandbox) { + this.deviceToken = deviceToken; + this.isAppSandbox = isAppSandbox; + } + + public static final int CONSTRUCTOR = 222930116; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public abstract static class FirebaseDeviceVerificationParameters extends Object { + + public FirebaseDeviceVerificationParameters() { + } + } + + public static class FirebaseDeviceVerificationParametersSafetyNet extends FirebaseDeviceVerificationParameters { + + public byte[] nonce; + + public FirebaseDeviceVerificationParametersSafetyNet() { + } + + public FirebaseDeviceVerificationParametersSafetyNet(byte[] nonce) { + this.nonce = nonce; + } + + public static final int CONSTRUCTOR = 731296497; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class FirebaseDeviceVerificationParametersPlayIntegrity extends FirebaseDeviceVerificationParameters { + + public String nonce; + + public long cloudProjectNumber; + + public FirebaseDeviceVerificationParametersPlayIntegrity() { + } + + public FirebaseDeviceVerificationParametersPlayIntegrity(String nonce, long cloudProjectNumber) { + this.nonce = nonce; + this.cloudProjectNumber = cloudProjectNumber; + } + + public static final int CONSTRUCTOR = -889936502; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class FormattedText extends Object { + + public String text; + + public TextEntity[] entities; + + public FormattedText() { + } + + public FormattedText(String text, TextEntity[] entities) { + this.text = text; + this.entities = entities; + } + + public static final int CONSTRUCTOR = -252624564; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class ForumTopic extends Object { + + public ForumTopicInfo info; + + public Message lastMessage; + + public boolean isPinned; + + public int unreadCount; + + public long lastReadInboxMessageId; + + public long lastReadOutboxMessageId; + + public int unreadMentionCount; + + public int unreadReactionCount; + + public ChatNotificationSettings notificationSettings; + + public DraftMessage draftMessage; + + public ForumTopic() { + } + + public ForumTopic(ForumTopicInfo info, Message lastMessage, boolean isPinned, int unreadCount, long lastReadInboxMessageId, long lastReadOutboxMessageId, int unreadMentionCount, int unreadReactionCount, ChatNotificationSettings notificationSettings, DraftMessage draftMessage) { + this.info = info; + this.lastMessage = lastMessage; + this.isPinned = isPinned; + this.unreadCount = unreadCount; + this.lastReadInboxMessageId = lastReadInboxMessageId; + this.lastReadOutboxMessageId = lastReadOutboxMessageId; + this.unreadMentionCount = unreadMentionCount; + this.unreadReactionCount = unreadReactionCount; + this.notificationSettings = notificationSettings; + this.draftMessage = draftMessage; + } + + public static final int CONSTRUCTOR = 303279334; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class ForumTopicIcon extends Object { + + public int color; + + public long customEmojiId; + + public ForumTopicIcon() { + } + + public ForumTopicIcon(int color, long customEmojiId) { + this.color = color; + this.customEmojiId = customEmojiId; + } + + public static final int CONSTRUCTOR = -818765421; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class ForumTopicInfo extends Object { + + public long messageThreadId; + + public String name; + + public ForumTopicIcon icon; + + public int creationDate; + + public MessageSender creatorId; + + public boolean isGeneral; + + public boolean isOutgoing; + + public boolean isClosed; + + public boolean isHidden; + + public ForumTopicInfo() { + } + + public ForumTopicInfo(long messageThreadId, String name, ForumTopicIcon icon, int creationDate, MessageSender creatorId, boolean isGeneral, boolean isOutgoing, boolean isClosed, boolean isHidden) { + this.messageThreadId = messageThreadId; + this.name = name; + this.icon = icon; + this.creationDate = creationDate; + this.creatorId = creatorId; + this.isGeneral = isGeneral; + this.isOutgoing = isOutgoing; + this.isClosed = isClosed; + this.isHidden = isHidden; + } + + public static final int CONSTRUCTOR = -1879842914; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class ForumTopics extends Object { + + public int totalCount; + + public ForumTopic[] topics; + + public int nextOffsetDate; + + public long nextOffsetMessageId; + + public long nextOffsetMessageThreadId; + + public ForumTopics() { + } + + public ForumTopics(int totalCount, ForumTopic[] topics, int nextOffsetDate, long nextOffsetMessageId, long nextOffsetMessageThreadId) { + this.totalCount = totalCount; + this.topics = topics; + this.nextOffsetDate = nextOffsetDate; + this.nextOffsetMessageId = nextOffsetMessageId; + this.nextOffsetMessageThreadId = nextOffsetMessageThreadId; + } + + public static final int CONSTRUCTOR = 732819537; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class ForwardSource extends Object { + + public long chatId; + + public long messageId; + + public MessageSender senderId; + + public String senderName; + + public int date; + + public boolean isOutgoing; + + public ForwardSource() { + } + + public ForwardSource(long chatId, long messageId, MessageSender senderId, String senderName, int date, boolean isOutgoing) { + this.chatId = chatId; + this.messageId = messageId; + this.senderId = senderId; + this.senderName = senderName; + this.date = date; + this.isOutgoing = isOutgoing; + } + + public static final int CONSTRUCTOR = 1795337929; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class FoundAffiliateProgram extends Object { + + public long botUserId; + + public AffiliateProgramInfo parameters; + + public FoundAffiliateProgram() { + } + + public FoundAffiliateProgram(long botUserId, AffiliateProgramInfo parameters) { + this.botUserId = botUserId; + this.parameters = parameters; + } + + public static final int CONSTRUCTOR = -2134937582; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class FoundAffiliatePrograms extends Object { + + public int totalCount; + + public FoundAffiliateProgram[] programs; + + public String nextOffset; + + public FoundAffiliatePrograms() { + } + + public FoundAffiliatePrograms(int totalCount, FoundAffiliateProgram[] programs, String nextOffset) { + this.totalCount = totalCount; + this.programs = programs; + this.nextOffset = nextOffset; + } + + public static final int CONSTRUCTOR = 186317057; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class FoundChatBoosts extends Object { + + public int totalCount; + + public ChatBoost[] boosts; + + public String nextOffset; + + public FoundChatBoosts() { + } + + public FoundChatBoosts(int totalCount, ChatBoost[] boosts, String nextOffset) { + this.totalCount = totalCount; + this.boosts = boosts; + this.nextOffset = nextOffset; + } + + public static final int CONSTRUCTOR = 51457680; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class FoundChatMessages extends Object { + + public int totalCount; + + public Message[] messages; + + public long nextFromMessageId; + + public FoundChatMessages() { + } + + public FoundChatMessages(int totalCount, Message[] messages, long nextFromMessageId) { + this.totalCount = totalCount; + this.messages = messages; + this.nextFromMessageId = nextFromMessageId; + } + + public static final int CONSTRUCTOR = 427484196; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class FoundFileDownloads extends Object { + + public DownloadedFileCounts totalCounts; + + public FileDownload[] files; + + public String nextOffset; + + public FoundFileDownloads() { + } + + public FoundFileDownloads(DownloadedFileCounts totalCounts, FileDownload[] files, String nextOffset) { + this.totalCounts = totalCounts; + this.files = files; + this.nextOffset = nextOffset; + } + + public static final int CONSTRUCTOR = 1395890392; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class FoundMessages extends Object { + + public int totalCount; + + public Message[] messages; + + public String nextOffset; + + public FoundMessages() { + } + + public FoundMessages(int totalCount, Message[] messages, String nextOffset) { + this.totalCount = totalCount; + this.messages = messages; + this.nextOffset = nextOffset; + } + + public static final int CONSTRUCTOR = -529809608; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class FoundPosition extends Object { + + public int position; + + public FoundPosition() { + } + + public FoundPosition(int position) { + this.position = position; + } + + public static final int CONSTRUCTOR = -1886724216; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class FoundPositions extends Object { + + public int totalCount; + + public int[] positions; + + public FoundPositions() { + } + + public FoundPositions(int totalCount, int[] positions) { + this.totalCount = totalCount; + this.positions = positions; + } + + public static final int CONSTRUCTOR = -80518368; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class FoundStories extends Object { + + public int totalCount; + + public Story[] stories; + + public String nextOffset; + + public FoundStories() { + } + + public FoundStories(int totalCount, Story[] stories, String nextOffset) { + this.totalCount = totalCount; + this.stories = stories; + this.nextOffset = nextOffset; + } + + public static final int CONSTRUCTOR = 1678513512; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class FoundUsers extends Object { + + public long[] userIds; + + public String nextOffset; + + public FoundUsers() { + } + + public FoundUsers(long[] userIds, String nextOffset) { + this.userIds = userIds; + this.nextOffset = nextOffset; + } + + public static final int CONSTRUCTOR = 1150570075; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class FoundWebApp extends Object { + + public WebApp webApp; + + public boolean requestWriteAccess; + + public boolean skipConfirmation; + + public FoundWebApp() { + } + + public FoundWebApp(WebApp webApp, boolean requestWriteAccess, boolean skipConfirmation) { + this.webApp = webApp; + this.requestWriteAccess = requestWriteAccess; + this.skipConfirmation = skipConfirmation; + } + + public static final int CONSTRUCTOR = -290926562; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class Game extends Object { + + public long id; + + public String shortName; + + public String title; + + public FormattedText text; + + public String description; + + public Photo photo; + + public Animation animation; + + public Game() { + } + + public Game(long id, String shortName, String title, FormattedText text, String description, Photo photo, Animation animation) { + this.id = id; + this.shortName = shortName; + this.title = title; + this.text = text; + this.description = description; + this.photo = photo; + this.animation = animation; + } + + public static final int CONSTRUCTOR = -1565597752; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class GameHighScore extends Object { + + public int position; + + public long userId; + + public int score; + + public GameHighScore() { + } + + public GameHighScore(int position, long userId, int score) { + this.position = position; + this.userId = userId; + this.score = score; + } + + public static final int CONSTRUCTOR = 342871838; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class GameHighScores extends Object { + + public GameHighScore[] scores; + + public GameHighScores() { + } + + public GameHighScores(GameHighScore[] scores) { + this.scores = scores; + } + + public static final int CONSTRUCTOR = -725770727; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class Gift extends Object { + + public long id; + + public Sticker sticker; + + public long starCount; + + public long defaultSellStarCount; + + public boolean isForBirthday; + + public int remainingCount; + + public int totalCount; + + public int firstSendDate; + + public int lastSendDate; + + public Gift() { + } + + public Gift(long id, Sticker sticker, long starCount, long defaultSellStarCount, boolean isForBirthday, int remainingCount, int totalCount, int firstSendDate, int lastSendDate) { + this.id = id; + this.sticker = sticker; + this.starCount = starCount; + this.defaultSellStarCount = defaultSellStarCount; + this.isForBirthday = isForBirthday; + this.remainingCount = remainingCount; + this.totalCount = totalCount; + this.firstSendDate = firstSendDate; + this.lastSendDate = lastSendDate; + } + + public static final int CONSTRUCTOR = -752333618; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class Gifts extends Object { + + public Gift[] gifts; + + public Gifts() { + } + + public Gifts(Gift[] gifts) { + this.gifts = gifts; + } + + public static final int CONSTRUCTOR = 1652323382; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public abstract static class GiveawayInfo extends Object { + + public GiveawayInfo() { + } + } + + public static class GiveawayInfoOngoing extends GiveawayInfo { + + public int creationDate; + + public GiveawayParticipantStatus status; + + public boolean isEnded; + + public GiveawayInfoOngoing() { + } + + public GiveawayInfoOngoing(int creationDate, GiveawayParticipantStatus status, boolean isEnded) { + this.creationDate = creationDate; + this.status = status; + this.isEnded = isEnded; + } + + public static final int CONSTRUCTOR = 1649336400; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class GiveawayInfoCompleted extends GiveawayInfo { + + public int creationDate; + + public int actualWinnersSelectionDate; + + public boolean wasRefunded; + + public boolean isWinner; + + public int winnerCount; + + public int activationCount; + + public String giftCode; + + public long wonStarCount; + + public GiveawayInfoCompleted() { + } + + public GiveawayInfoCompleted(int creationDate, int actualWinnersSelectionDate, boolean wasRefunded, boolean isWinner, int winnerCount, int activationCount, String giftCode, long wonStarCount) { + this.creationDate = creationDate; + this.actualWinnersSelectionDate = actualWinnersSelectionDate; + this.wasRefunded = wasRefunded; + this.isWinner = isWinner; + this.winnerCount = winnerCount; + this.activationCount = activationCount; + this.giftCode = giftCode; + this.wonStarCount = wonStarCount; + } + + public static final int CONSTRUCTOR = 848085852; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class GiveawayParameters extends Object { + + public long boostedChatId; + + public long[] additionalChatIds; + + public int winnersSelectionDate; + + public boolean onlyNewMembers; + + public boolean hasPublicWinners; + + public String[] countryCodes; + + public String prizeDescription; + + public GiveawayParameters() { + } + + public GiveawayParameters(long boostedChatId, long[] additionalChatIds, int winnersSelectionDate, boolean onlyNewMembers, boolean hasPublicWinners, String[] countryCodes, String prizeDescription) { + this.boostedChatId = boostedChatId; + this.additionalChatIds = additionalChatIds; + this.winnersSelectionDate = winnersSelectionDate; + this.onlyNewMembers = onlyNewMembers; + this.hasPublicWinners = hasPublicWinners; + this.countryCodes = countryCodes; + this.prizeDescription = prizeDescription; + } + + public static final int CONSTRUCTOR = 1171549354; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public abstract static class GiveawayParticipantStatus extends Object { + + public GiveawayParticipantStatus() { + } + } + + public static class GiveawayParticipantStatusEligible extends GiveawayParticipantStatus { + public GiveawayParticipantStatusEligible() { + } + + public static final int CONSTRUCTOR = 304799383; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class GiveawayParticipantStatusParticipating extends GiveawayParticipantStatus { + public GiveawayParticipantStatusParticipating() { + } + + public static final int CONSTRUCTOR = 492036975; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class GiveawayParticipantStatusAlreadyWasMember extends GiveawayParticipantStatus { + + public int joinedChatDate; + + public GiveawayParticipantStatusAlreadyWasMember() { + } + + public GiveawayParticipantStatusAlreadyWasMember(int joinedChatDate) { + this.joinedChatDate = joinedChatDate; + } + + public static final int CONSTRUCTOR = 301577632; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class GiveawayParticipantStatusAdministrator extends GiveawayParticipantStatus { + + public long chatId; + + public GiveawayParticipantStatusAdministrator() { + } + + public GiveawayParticipantStatusAdministrator(long chatId) { + this.chatId = chatId; + } + + public static final int CONSTRUCTOR = -934593931; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class GiveawayParticipantStatusDisallowedCountry extends GiveawayParticipantStatus { + + public String userCountryCode; + + public GiveawayParticipantStatusDisallowedCountry() { + } + + public GiveawayParticipantStatusDisallowedCountry(String userCountryCode) { + this.userCountryCode = userCountryCode; + } + + public static final int CONSTRUCTOR = 1879794779; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public abstract static class GiveawayPrize extends Object { + + public GiveawayPrize() { + } + } + + public static class GiveawayPrizePremium extends GiveawayPrize { + + public int monthCount; + + public GiveawayPrizePremium() { + } + + public GiveawayPrizePremium(int monthCount) { + this.monthCount = monthCount; + } + + public static final int CONSTRUCTOR = 454224248; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class GiveawayPrizeStars extends GiveawayPrize { + + public long starCount; + + public GiveawayPrizeStars() { + } + + public GiveawayPrizeStars(long starCount) { + this.starCount = starCount; + } + + public static final int CONSTRUCTOR = -1790173276; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class GroupCall extends Object { + + public int id; + + public String title; + + public int scheduledStartDate; + + public boolean enabledStartNotification; + + public boolean isActive; + + public boolean isRtmpStream; + + public boolean isJoined; + + public boolean needRejoin; + + public boolean canBeManaged; + + public int participantCount; + + public boolean hasHiddenListeners; + + public boolean loadedAllParticipants; + + public GroupCallRecentSpeaker[] recentSpeakers; + + public boolean isMyVideoEnabled; + + public boolean isMyVideoPaused; + + public boolean canEnableVideo; + + public boolean muteNewParticipants; + + public boolean canToggleMuteNewParticipants; + + public int recordDuration; + + public boolean isVideoRecorded; + + public int duration; + + public GroupCall() { + } + + public GroupCall(int id, String title, int scheduledStartDate, boolean enabledStartNotification, boolean isActive, boolean isRtmpStream, boolean isJoined, boolean needRejoin, boolean canBeManaged, int participantCount, boolean hasHiddenListeners, boolean loadedAllParticipants, GroupCallRecentSpeaker[] recentSpeakers, boolean isMyVideoEnabled, boolean isMyVideoPaused, boolean canEnableVideo, boolean muteNewParticipants, boolean canToggleMuteNewParticipants, int recordDuration, boolean isVideoRecorded, int duration) { + this.id = id; + this.title = title; + this.scheduledStartDate = scheduledStartDate; + this.enabledStartNotification = enabledStartNotification; + this.isActive = isActive; + this.isRtmpStream = isRtmpStream; + this.isJoined = isJoined; + this.needRejoin = needRejoin; + this.canBeManaged = canBeManaged; + this.participantCount = participantCount; + this.hasHiddenListeners = hasHiddenListeners; + this.loadedAllParticipants = loadedAllParticipants; + this.recentSpeakers = recentSpeakers; + this.isMyVideoEnabled = isMyVideoEnabled; + this.isMyVideoPaused = isMyVideoPaused; + this.canEnableVideo = canEnableVideo; + this.muteNewParticipants = muteNewParticipants; + this.canToggleMuteNewParticipants = canToggleMuteNewParticipants; + this.recordDuration = recordDuration; + this.isVideoRecorded = isVideoRecorded; + this.duration = duration; + } + + public static final int CONSTRUCTOR = -123443355; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class GroupCallId extends Object { + + public int id; + + public GroupCallId() { + } + + public GroupCallId(int id) { + this.id = id; + } + + public static final int CONSTRUCTOR = 350534469; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class GroupCallParticipant extends Object { + + public MessageSender participantId; + + public int audioSourceId; + + public int screenSharingAudioSourceId; + + public GroupCallParticipantVideoInfo videoInfo; + + public GroupCallParticipantVideoInfo screenSharingVideoInfo; + + public String bio; + + public boolean isCurrentUser; + + public boolean isSpeaking; + + public boolean isHandRaised; + + public boolean canBeMutedForAllUsers; + + public boolean canBeUnmutedForAllUsers; + + public boolean canBeMutedForCurrentUser; + + public boolean canBeUnmutedForCurrentUser; + + public boolean isMutedForAllUsers; + + public boolean isMutedForCurrentUser; + + public boolean canUnmuteSelf; + + public int volumeLevel; + + public String order; + + public GroupCallParticipant() { + } + + public GroupCallParticipant(MessageSender participantId, int audioSourceId, int screenSharingAudioSourceId, GroupCallParticipantVideoInfo videoInfo, GroupCallParticipantVideoInfo screenSharingVideoInfo, String bio, boolean isCurrentUser, boolean isSpeaking, boolean isHandRaised, boolean canBeMutedForAllUsers, boolean canBeUnmutedForAllUsers, boolean canBeMutedForCurrentUser, boolean canBeUnmutedForCurrentUser, boolean isMutedForAllUsers, boolean isMutedForCurrentUser, boolean canUnmuteSelf, int volumeLevel, String order) { + this.participantId = participantId; + this.audioSourceId = audioSourceId; + this.screenSharingAudioSourceId = screenSharingAudioSourceId; + this.videoInfo = videoInfo; + this.screenSharingVideoInfo = screenSharingVideoInfo; + this.bio = bio; + this.isCurrentUser = isCurrentUser; + this.isSpeaking = isSpeaking; + this.isHandRaised = isHandRaised; + this.canBeMutedForAllUsers = canBeMutedForAllUsers; + this.canBeUnmutedForAllUsers = canBeUnmutedForAllUsers; + this.canBeMutedForCurrentUser = canBeMutedForCurrentUser; + this.canBeUnmutedForCurrentUser = canBeUnmutedForCurrentUser; + this.isMutedForAllUsers = isMutedForAllUsers; + this.isMutedForCurrentUser = isMutedForCurrentUser; + this.canUnmuteSelf = canUnmuteSelf; + this.volumeLevel = volumeLevel; + this.order = order; + } + + public static final int CONSTRUCTOR = 2059182571; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class GroupCallParticipantVideoInfo extends Object { + + public GroupCallVideoSourceGroup[] sourceGroups; + + public String endpointId; + + public boolean isPaused; + + public GroupCallParticipantVideoInfo() { + } + + public GroupCallParticipantVideoInfo(GroupCallVideoSourceGroup[] sourceGroups, String endpointId, boolean isPaused) { + this.sourceGroups = sourceGroups; + this.endpointId = endpointId; + this.isPaused = isPaused; + } + + public static final int CONSTRUCTOR = -14294645; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class GroupCallRecentSpeaker extends Object { + + public MessageSender participantId; + + public boolean isSpeaking; + + public GroupCallRecentSpeaker() { + } + + public GroupCallRecentSpeaker(MessageSender participantId, boolean isSpeaking) { + this.participantId = participantId; + this.isSpeaking = isSpeaking; + } + + public static final int CONSTRUCTOR = 1819519436; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class GroupCallStream extends Object { + + public int channelId; + + public int scale; + + public long timeOffset; + + public GroupCallStream() { + } + + public GroupCallStream(int channelId, int scale, long timeOffset) { + this.channelId = channelId; + this.scale = scale; + this.timeOffset = timeOffset; + } + + public static final int CONSTRUCTOR = -264564795; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class GroupCallStreams extends Object { + + public GroupCallStream[] streams; + + public GroupCallStreams() { + } + + public GroupCallStreams(GroupCallStream[] streams) { + this.streams = streams; + } + + public static final int CONSTRUCTOR = -1032959578; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public abstract static class GroupCallVideoQuality extends Object { + + public GroupCallVideoQuality() { + } + } + + public static class GroupCallVideoQualityThumbnail extends GroupCallVideoQuality { + public GroupCallVideoQualityThumbnail() { + } + + public static final int CONSTRUCTOR = -379186304; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class GroupCallVideoQualityMedium extends GroupCallVideoQuality { + public GroupCallVideoQualityMedium() { + } + + public static final int CONSTRUCTOR = 394968234; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class GroupCallVideoQualityFull extends GroupCallVideoQuality { + public GroupCallVideoQualityFull() { + } + + public static final int CONSTRUCTOR = -2125916617; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class GroupCallVideoSourceGroup extends Object { + + public String semantics; + + public int[] sourceIds; + + public GroupCallVideoSourceGroup() { + } + + public GroupCallVideoSourceGroup(String semantics, int[] sourceIds) { + this.semantics = semantics; + this.sourceIds = sourceIds; + } + + public static final int CONSTRUCTOR = -1190900785; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class Hashtags extends Object { + + public String[] hashtags; + + public Hashtags() { + } + + public Hashtags(String[] hashtags) { + this.hashtags = hashtags; + } + + public static final int CONSTRUCTOR = 676798885; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class HttpUrl extends Object { + + public String url; + + public HttpUrl() { + } + + public HttpUrl(String url) { + this.url = url; + } + + public static final int CONSTRUCTOR = -2018019930; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class IdentityDocument extends Object { + + public String number; + + public Date expirationDate; + + public DatedFile frontSide; + + public DatedFile reverseSide; + + public DatedFile selfie; + + public DatedFile[] translation; + + public IdentityDocument() { + } + + public IdentityDocument(String number, Date expirationDate, DatedFile frontSide, DatedFile reverseSide, DatedFile selfie, DatedFile[] translation) { + this.number = number; + this.expirationDate = expirationDate; + this.frontSide = frontSide; + this.reverseSide = reverseSide; + this.selfie = selfie; + this.translation = translation; + } + + public static final int CONSTRUCTOR = 1001703606; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class ImportedContacts extends Object { + + public long[] userIds; + + public int[] importerCount; + + public ImportedContacts() { + } + + public ImportedContacts(long[] userIds, int[] importerCount) { + this.userIds = userIds; + this.importerCount = importerCount; + } + + public static final int CONSTRUCTOR = 2068432290; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class InlineKeyboardButton extends Object { + + public String text; + + public InlineKeyboardButtonType type; + + public InlineKeyboardButton() { + } + + public InlineKeyboardButton(String text, InlineKeyboardButtonType type) { + this.text = text; + this.type = type; + } + + public static final int CONSTRUCTOR = -372105704; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public abstract static class InlineKeyboardButtonType extends Object { + + public InlineKeyboardButtonType() { + } + } + + public static class InlineKeyboardButtonTypeUrl extends InlineKeyboardButtonType { + + public String url; + + public InlineKeyboardButtonTypeUrl() { + } + + public InlineKeyboardButtonTypeUrl(String url) { + this.url = url; + } + + public static final int CONSTRUCTOR = 1130741420; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class InlineKeyboardButtonTypeLoginUrl extends InlineKeyboardButtonType { + + public String url; + + public long id; + + public String forwardText; + + public InlineKeyboardButtonTypeLoginUrl() { + } + + public InlineKeyboardButtonTypeLoginUrl(String url, long id, String forwardText) { + this.url = url; + this.id = id; + this.forwardText = forwardText; + } + + public static final int CONSTRUCTOR = -1203413081; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class InlineKeyboardButtonTypeWebApp extends InlineKeyboardButtonType { + + public String url; + + public InlineKeyboardButtonTypeWebApp() { + } + + public InlineKeyboardButtonTypeWebApp(String url) { + this.url = url; + } + + public static final int CONSTRUCTOR = -1767471672; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class InlineKeyboardButtonTypeCallback extends InlineKeyboardButtonType { + + public byte[] data; + + public InlineKeyboardButtonTypeCallback() { + } + + public InlineKeyboardButtonTypeCallback(byte[] data) { + this.data = data; + } + + public static final int CONSTRUCTOR = -1127515139; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class InlineKeyboardButtonTypeCallbackWithPassword extends InlineKeyboardButtonType { + + public byte[] data; + + public InlineKeyboardButtonTypeCallbackWithPassword() { + } + + public InlineKeyboardButtonTypeCallbackWithPassword(byte[] data) { + this.data = data; + } + + public static final int CONSTRUCTOR = 908018248; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class InlineKeyboardButtonTypeCallbackGame extends InlineKeyboardButtonType { + public InlineKeyboardButtonTypeCallbackGame() { + } + + public static final int CONSTRUCTOR = -383429528; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class InlineKeyboardButtonTypeSwitchInline extends InlineKeyboardButtonType { + + public String query; + + public TargetChat targetChat; + + public InlineKeyboardButtonTypeSwitchInline() { + } + + public InlineKeyboardButtonTypeSwitchInline(String query, TargetChat targetChat) { + this.query = query; + this.targetChat = targetChat; + } + + public static final int CONSTRUCTOR = 544906485; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class InlineKeyboardButtonTypeBuy extends InlineKeyboardButtonType { + public InlineKeyboardButtonTypeBuy() { + } + + public static final int CONSTRUCTOR = 1360739440; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class InlineKeyboardButtonTypeUser extends InlineKeyboardButtonType { + + public long userId; + + public InlineKeyboardButtonTypeUser() { + } + + public InlineKeyboardButtonTypeUser(long userId) { + this.userId = userId; + } + + public static final int CONSTRUCTOR = 1836574114; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class InlineKeyboardButtonTypeCopyText extends InlineKeyboardButtonType { + + public String text; + + public InlineKeyboardButtonTypeCopyText() { + } + + public InlineKeyboardButtonTypeCopyText(String text) { + this.text = text; + } + + public static final int CONSTRUCTOR = 68883206; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public abstract static class InlineQueryResult extends Object { + + public InlineQueryResult() { + } + } + + public static class InlineQueryResultArticle extends InlineQueryResult { + + public String id; + + public String url; + + public boolean hideUrl; + + public String title; + + public String description; + + public Thumbnail thumbnail; + + public InlineQueryResultArticle() { + } + + public InlineQueryResultArticle(String id, String url, boolean hideUrl, String title, String description, Thumbnail thumbnail) { + this.id = id; + this.url = url; + this.hideUrl = hideUrl; + this.title = title; + this.description = description; + this.thumbnail = thumbnail; + } + + public static final int CONSTRUCTOR = 206340825; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class InlineQueryResultContact extends InlineQueryResult { + + public String id; + + public Contact contact; + + public Thumbnail thumbnail; + + public InlineQueryResultContact() { + } + + public InlineQueryResultContact(String id, Contact contact, Thumbnail thumbnail) { + this.id = id; + this.contact = contact; + this.thumbnail = thumbnail; + } + + public static final int CONSTRUCTOR = -181960174; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class InlineQueryResultLocation extends InlineQueryResult { + + public String id; + + public Location location; + + public String title; + + public Thumbnail thumbnail; + + public InlineQueryResultLocation() { + } + + public InlineQueryResultLocation(String id, Location location, String title, Thumbnail thumbnail) { + this.id = id; + this.location = location; + this.title = title; + this.thumbnail = thumbnail; + } + + public static final int CONSTRUCTOR = 466004752; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class InlineQueryResultVenue extends InlineQueryResult { + + public String id; + + public Venue venue; + + public Thumbnail thumbnail; + + public InlineQueryResultVenue() { + } + + public InlineQueryResultVenue(String id, Venue venue, Thumbnail thumbnail) { + this.id = id; + this.venue = venue; + this.thumbnail = thumbnail; + } + + public static final int CONSTRUCTOR = 1281036382; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class InlineQueryResultGame extends InlineQueryResult { + + public String id; + + public Game game; + + public InlineQueryResultGame() { + } + + public InlineQueryResultGame(String id, Game game) { + this.id = id; + this.game = game; + } + + public static final int CONSTRUCTOR = 1706916987; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class InlineQueryResultAnimation extends InlineQueryResult { + + public String id; + + public Animation animation; + + public String title; + + public InlineQueryResultAnimation() { + } + + public InlineQueryResultAnimation(String id, Animation animation, String title) { + this.id = id; + this.animation = animation; + this.title = title; + } + + public static final int CONSTRUCTOR = 2009984267; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class InlineQueryResultAudio extends InlineQueryResult { + + public String id; + + public Audio audio; + + public InlineQueryResultAudio() { + } + + public InlineQueryResultAudio(String id, Audio audio) { + this.id = id; + this.audio = audio; + } + + public static final int CONSTRUCTOR = 842650360; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class InlineQueryResultDocument extends InlineQueryResult { + + public String id; + + public Document document; + + public String title; + + public String description; + + public InlineQueryResultDocument() { + } + + public InlineQueryResultDocument(String id, Document document, String title, String description) { + this.id = id; + this.document = document; + this.title = title; + this.description = description; + } + + public static final int CONSTRUCTOR = -1491268539; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class InlineQueryResultPhoto extends InlineQueryResult { + + public String id; + + public Photo photo; + + public String title; + + public String description; + + public InlineQueryResultPhoto() { + } + + public InlineQueryResultPhoto(String id, Photo photo, String title, String description) { + this.id = id; + this.photo = photo; + this.title = title; + this.description = description; + } + + public static final int CONSTRUCTOR = 1848319440; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class InlineQueryResultSticker extends InlineQueryResult { + + public String id; + + public Sticker sticker; + + public InlineQueryResultSticker() { + } + + public InlineQueryResultSticker(String id, Sticker sticker) { + this.id = id; + this.sticker = sticker; + } + + public static final int CONSTRUCTOR = -1848224245; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class InlineQueryResultVideo extends InlineQueryResult { + + public String id; + + public Video video; + + public String title; + + public String description; + + public InlineQueryResultVideo() { + } + + public InlineQueryResultVideo(String id, Video video, String title, String description) { + this.id = id; + this.video = video; + this.title = title; + this.description = description; + } + + public static final int CONSTRUCTOR = -1373158683; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class InlineQueryResultVoiceNote extends InlineQueryResult { + + public String id; + + public VoiceNote voiceNote; + + public String title; + + public InlineQueryResultVoiceNote() { + } + + public InlineQueryResultVoiceNote(String id, VoiceNote voiceNote, String title) { + this.id = id; + this.voiceNote = voiceNote; + this.title = title; + } + + public static final int CONSTRUCTOR = -1897393105; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class InlineQueryResults extends Object { + + public long inlineQueryId; + + public InlineQueryResultsButton button; + + public InlineQueryResult[] results; + + public String nextOffset; + + public InlineQueryResults() { + } + + public InlineQueryResults(long inlineQueryId, InlineQueryResultsButton button, InlineQueryResult[] results, String nextOffset) { + this.inlineQueryId = inlineQueryId; + this.button = button; + this.results = results; + this.nextOffset = nextOffset; + } + + public static final int CONSTRUCTOR = 1830685615; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class InlineQueryResultsButton extends Object { + + public String text; + + public InlineQueryResultsButtonType type; + + public InlineQueryResultsButton() { + } + + public InlineQueryResultsButton(String text, InlineQueryResultsButtonType type) { + this.text = text; + this.type = type; + } + + public static final int CONSTRUCTOR = -790689618; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public abstract static class InlineQueryResultsButtonType extends Object { + + public InlineQueryResultsButtonType() { + } + } + + public static class InlineQueryResultsButtonTypeStartBot extends InlineQueryResultsButtonType { + + public String parameter; + + public InlineQueryResultsButtonTypeStartBot() { + } + + public InlineQueryResultsButtonTypeStartBot(String parameter) { + this.parameter = parameter; + } + + public static final int CONSTRUCTOR = -23400235; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class InlineQueryResultsButtonTypeWebApp extends InlineQueryResultsButtonType { + + public String url; + + public InlineQueryResultsButtonTypeWebApp() { + } + + public InlineQueryResultsButtonTypeWebApp(String url) { + this.url = url; + } + + public static final int CONSTRUCTOR = -1197382814; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public abstract static class InputBackground extends Object { + + public InputBackground() { + } + } + + public static class InputBackgroundLocal extends InputBackground { + + public InputFile background; + + public InputBackgroundLocal() { + } + + public InputBackgroundLocal(InputFile background) { + this.background = background; + } + + public static final int CONSTRUCTOR = -1747094364; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class InputBackgroundRemote extends InputBackground { + + public long backgroundId; + + public InputBackgroundRemote() { + } + + public InputBackgroundRemote(long backgroundId) { + this.backgroundId = backgroundId; + } + + public static final int CONSTRUCTOR = -274976231; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class InputBackgroundPrevious extends InputBackground { + + public long messageId; + + public InputBackgroundPrevious() { + } + + public InputBackgroundPrevious(long messageId) { + this.messageId = messageId; + } + + public static final int CONSTRUCTOR = -351905954; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class InputBusinessChatLink extends Object { + + public FormattedText text; + + public String title; + + public InputBusinessChatLink() { + } + + public InputBusinessChatLink(FormattedText text, String title) { + this.text = text; + this.title = title; + } + + public static final int CONSTRUCTOR = 237858296; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class InputBusinessStartPage extends Object { + + public String title; + + public String message; + + public InputFile sticker; + + public InputBusinessStartPage() { + } + + public InputBusinessStartPage(String title, String message, InputFile sticker) { + this.title = title; + this.message = message; + this.sticker = sticker; + } + + public static final int CONSTRUCTOR = -327383072; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public abstract static class InputChatPhoto extends Object { + + public InputChatPhoto() { + } + } + + public static class InputChatPhotoPrevious extends InputChatPhoto { + + public long chatPhotoId; + + public InputChatPhotoPrevious() { + } + + public InputChatPhotoPrevious(long chatPhotoId) { + this.chatPhotoId = chatPhotoId; + } + + public static final int CONSTRUCTOR = 23128529; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class InputChatPhotoStatic extends InputChatPhoto { + + public InputFile photo; + + public InputChatPhotoStatic() { + } + + public InputChatPhotoStatic(InputFile photo) { + this.photo = photo; + } + + public static final int CONSTRUCTOR = 1979179699; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class InputChatPhotoAnimation extends InputChatPhoto { + + public InputFile animation; + + public double mainFrameTimestamp; + + public InputChatPhotoAnimation() { + } + + public InputChatPhotoAnimation(InputFile animation, double mainFrameTimestamp) { + this.animation = animation; + this.mainFrameTimestamp = mainFrameTimestamp; + } + + public static final int CONSTRUCTOR = 90846242; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class InputChatPhotoSticker extends InputChatPhoto { + + public ChatPhotoSticker sticker; + + public InputChatPhotoSticker() { + } + + public InputChatPhotoSticker(ChatPhotoSticker sticker) { + this.sticker = sticker; + } + + public static final int CONSTRUCTOR = 1315861341; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public abstract static class InputCredentials extends Object { + + public InputCredentials() { + } + } + + public static class InputCredentialsSaved extends InputCredentials { + + public String savedCredentialsId; + + public InputCredentialsSaved() { + } + + public InputCredentialsSaved(String savedCredentialsId) { + this.savedCredentialsId = savedCredentialsId; + } + + public static final int CONSTRUCTOR = -2034385364; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class InputCredentialsNew extends InputCredentials { + + public String data; + + public boolean allowSave; + + public InputCredentialsNew() { + } + + public InputCredentialsNew(String data, boolean allowSave) { + this.data = data; + this.allowSave = allowSave; + } + + public static final int CONSTRUCTOR = -829689558; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class InputCredentialsApplePay extends InputCredentials { + + public String data; + + public InputCredentialsApplePay() { + } + + public InputCredentialsApplePay(String data) { + this.data = data; + } + + public static final int CONSTRUCTOR = -1246570799; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class InputCredentialsGooglePay extends InputCredentials { + + public String data; + + public InputCredentialsGooglePay() { + } + + public InputCredentialsGooglePay(String data) { + this.data = data; + } + + public static final int CONSTRUCTOR = 844384100; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public abstract static class InputFile extends Object { + + public InputFile() { + } + } + + public static class InputFileId extends InputFile { + + public int id; + + public InputFileId() { + } + + public InputFileId(int id) { + this.id = id; + } + + public static final int CONSTRUCTOR = 1788906253; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class InputFileRemote extends InputFile { + + public String id; + + public InputFileRemote() { + } + + public InputFileRemote(String id) { + this.id = id; + } + + public static final int CONSTRUCTOR = -107574466; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class InputFileLocal extends InputFile { + + public String path; + + public InputFileLocal() { + } + + public InputFileLocal(String path) { + this.path = path; + } + + public static final int CONSTRUCTOR = 2056030919; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class InputFileGenerated extends InputFile { + + public String originalPath; + + public String conversion; + + public long expectedSize; + + public InputFileGenerated() { + } + + public InputFileGenerated(String originalPath, String conversion, long expectedSize) { + this.originalPath = originalPath; + this.conversion = conversion; + this.expectedSize = expectedSize; + } + + public static final int CONSTRUCTOR = -1333385216; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class InputIdentityDocument extends Object { + + public String number; + + public Date expirationDate; + + public InputFile frontSide; + + public InputFile reverseSide; + + public InputFile selfie; + + public InputFile[] translation; + + public InputIdentityDocument() { + } + + public InputIdentityDocument(String number, Date expirationDate, InputFile frontSide, InputFile reverseSide, InputFile selfie, InputFile[] translation) { + this.number = number; + this.expirationDate = expirationDate; + this.frontSide = frontSide; + this.reverseSide = reverseSide; + this.selfie = selfie; + this.translation = translation; + } + + public static final int CONSTRUCTOR = 767353688; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public abstract static class InputInlineQueryResult extends Object { + + public InputInlineQueryResult() { + } + } + + public static class InputInlineQueryResultAnimation extends InputInlineQueryResult { + + public String id; + + public String title; + + public String thumbnailUrl; + + public String thumbnailMimeType; + + public String videoUrl; + + public String videoMimeType; + + public int videoDuration; + + public int videoWidth; + + public int videoHeight; + + public ReplyMarkup replyMarkup; + + public InputMessageContent inputMessageContent; + + public InputInlineQueryResultAnimation() { + } + + public InputInlineQueryResultAnimation(String id, String title, String thumbnailUrl, String thumbnailMimeType, String videoUrl, String videoMimeType, int videoDuration, int videoWidth, int videoHeight, ReplyMarkup replyMarkup, InputMessageContent inputMessageContent) { + this.id = id; + this.title = title; + this.thumbnailUrl = thumbnailUrl; + this.thumbnailMimeType = thumbnailMimeType; + this.videoUrl = videoUrl; + this.videoMimeType = videoMimeType; + this.videoDuration = videoDuration; + this.videoWidth = videoWidth; + this.videoHeight = videoHeight; + this.replyMarkup = replyMarkup; + this.inputMessageContent = inputMessageContent; + } + + public static final int CONSTRUCTOR = -1489808874; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class InputInlineQueryResultArticle extends InputInlineQueryResult { + + public String id; + + public String url; + + public boolean hideUrl; + + public String title; + + public String description; + + public String thumbnailUrl; + + public int thumbnailWidth; + + public int thumbnailHeight; + + public ReplyMarkup replyMarkup; + + public InputMessageContent inputMessageContent; + + public InputInlineQueryResultArticle() { + } + + public InputInlineQueryResultArticle(String id, String url, boolean hideUrl, String title, String description, String thumbnailUrl, int thumbnailWidth, int thumbnailHeight, ReplyMarkup replyMarkup, InputMessageContent inputMessageContent) { + this.id = id; + this.url = url; + this.hideUrl = hideUrl; + this.title = title; + this.description = description; + this.thumbnailUrl = thumbnailUrl; + this.thumbnailWidth = thumbnailWidth; + this.thumbnailHeight = thumbnailHeight; + this.replyMarkup = replyMarkup; + this.inputMessageContent = inputMessageContent; + } + + public static final int CONSTRUCTOR = 1973670156; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class InputInlineQueryResultAudio extends InputInlineQueryResult { + + public String id; + + public String title; + + public String performer; + + public String audioUrl; + + public int audioDuration; + + public ReplyMarkup replyMarkup; + + public InputMessageContent inputMessageContent; + + public InputInlineQueryResultAudio() { + } + + public InputInlineQueryResultAudio(String id, String title, String performer, String audioUrl, int audioDuration, ReplyMarkup replyMarkup, InputMessageContent inputMessageContent) { + this.id = id; + this.title = title; + this.performer = performer; + this.audioUrl = audioUrl; + this.audioDuration = audioDuration; + this.replyMarkup = replyMarkup; + this.inputMessageContent = inputMessageContent; + } + + public static final int CONSTRUCTOR = 1260139988; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class InputInlineQueryResultContact extends InputInlineQueryResult { + + public String id; + + public Contact contact; + + public String thumbnailUrl; + + public int thumbnailWidth; + + public int thumbnailHeight; + + public ReplyMarkup replyMarkup; + + public InputMessageContent inputMessageContent; + + public InputInlineQueryResultContact() { + } + + public InputInlineQueryResultContact(String id, Contact contact, String thumbnailUrl, int thumbnailWidth, int thumbnailHeight, ReplyMarkup replyMarkup, InputMessageContent inputMessageContent) { + this.id = id; + this.contact = contact; + this.thumbnailUrl = thumbnailUrl; + this.thumbnailWidth = thumbnailWidth; + this.thumbnailHeight = thumbnailHeight; + this.replyMarkup = replyMarkup; + this.inputMessageContent = inputMessageContent; + } + + public static final int CONSTRUCTOR = 1846064594; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class InputInlineQueryResultDocument extends InputInlineQueryResult { + + public String id; + + public String title; + + public String description; + + public String documentUrl; + + public String mimeType; + + public String thumbnailUrl; + + public int thumbnailWidth; + + public int thumbnailHeight; + + public ReplyMarkup replyMarkup; + + public InputMessageContent inputMessageContent; + + public InputInlineQueryResultDocument() { + } + + public InputInlineQueryResultDocument(String id, String title, String description, String documentUrl, String mimeType, String thumbnailUrl, int thumbnailWidth, int thumbnailHeight, ReplyMarkup replyMarkup, InputMessageContent inputMessageContent) { + this.id = id; + this.title = title; + this.description = description; + this.documentUrl = documentUrl; + this.mimeType = mimeType; + this.thumbnailUrl = thumbnailUrl; + this.thumbnailWidth = thumbnailWidth; + this.thumbnailHeight = thumbnailHeight; + this.replyMarkup = replyMarkup; + this.inputMessageContent = inputMessageContent; + } + + public static final int CONSTRUCTOR = 578801869; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class InputInlineQueryResultGame extends InputInlineQueryResult { + + public String id; + + public String gameShortName; + + public ReplyMarkup replyMarkup; + + public InputInlineQueryResultGame() { + } + + public InputInlineQueryResultGame(String id, String gameShortName, ReplyMarkup replyMarkup) { + this.id = id; + this.gameShortName = gameShortName; + this.replyMarkup = replyMarkup; + } + + public static final int CONSTRUCTOR = 966074327; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class InputInlineQueryResultLocation extends InputInlineQueryResult { + + public String id; + + public Location location; + + public int livePeriod; + + public String title; + + public String thumbnailUrl; + + public int thumbnailWidth; + + public int thumbnailHeight; + + public ReplyMarkup replyMarkup; + + public InputMessageContent inputMessageContent; + + public InputInlineQueryResultLocation() { + } + + public InputInlineQueryResultLocation(String id, Location location, int livePeriod, String title, String thumbnailUrl, int thumbnailWidth, int thumbnailHeight, ReplyMarkup replyMarkup, InputMessageContent inputMessageContent) { + this.id = id; + this.location = location; + this.livePeriod = livePeriod; + this.title = title; + this.thumbnailUrl = thumbnailUrl; + this.thumbnailWidth = thumbnailWidth; + this.thumbnailHeight = thumbnailHeight; + this.replyMarkup = replyMarkup; + this.inputMessageContent = inputMessageContent; + } + + public static final int CONSTRUCTOR = -1887650218; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class InputInlineQueryResultPhoto extends InputInlineQueryResult { + + public String id; + + public String title; + + public String description; + + public String thumbnailUrl; + + public String photoUrl; + + public int photoWidth; + + public int photoHeight; + + public ReplyMarkup replyMarkup; + + public InputMessageContent inputMessageContent; + + public InputInlineQueryResultPhoto() { + } + + public InputInlineQueryResultPhoto(String id, String title, String description, String thumbnailUrl, String photoUrl, int photoWidth, int photoHeight, ReplyMarkup replyMarkup, InputMessageContent inputMessageContent) { + this.id = id; + this.title = title; + this.description = description; + this.thumbnailUrl = thumbnailUrl; + this.photoUrl = photoUrl; + this.photoWidth = photoWidth; + this.photoHeight = photoHeight; + this.replyMarkup = replyMarkup; + this.inputMessageContent = inputMessageContent; + } + + public static final int CONSTRUCTOR = -1123338721; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class InputInlineQueryResultSticker extends InputInlineQueryResult { + + public String id; + + public String thumbnailUrl; + + public String stickerUrl; + + public int stickerWidth; + + public int stickerHeight; + + public ReplyMarkup replyMarkup; + + public InputMessageContent inputMessageContent; + + public InputInlineQueryResultSticker() { + } + + public InputInlineQueryResultSticker(String id, String thumbnailUrl, String stickerUrl, int stickerWidth, int stickerHeight, ReplyMarkup replyMarkup, InputMessageContent inputMessageContent) { + this.id = id; + this.thumbnailUrl = thumbnailUrl; + this.stickerUrl = stickerUrl; + this.stickerWidth = stickerWidth; + this.stickerHeight = stickerHeight; + this.replyMarkup = replyMarkup; + this.inputMessageContent = inputMessageContent; + } + + public static final int CONSTRUCTOR = 274007129; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class InputInlineQueryResultVenue extends InputInlineQueryResult { + + public String id; + + public Venue venue; + + public String thumbnailUrl; + + public int thumbnailWidth; + + public int thumbnailHeight; + + public ReplyMarkup replyMarkup; + + public InputMessageContent inputMessageContent; + + public InputInlineQueryResultVenue() { + } + + public InputInlineQueryResultVenue(String id, Venue venue, String thumbnailUrl, int thumbnailWidth, int thumbnailHeight, ReplyMarkup replyMarkup, InputMessageContent inputMessageContent) { + this.id = id; + this.venue = venue; + this.thumbnailUrl = thumbnailUrl; + this.thumbnailWidth = thumbnailWidth; + this.thumbnailHeight = thumbnailHeight; + this.replyMarkup = replyMarkup; + this.inputMessageContent = inputMessageContent; + } + + public static final int CONSTRUCTOR = 541704509; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class InputInlineQueryResultVideo extends InputInlineQueryResult { + + public String id; + + public String title; + + public String description; + + public String thumbnailUrl; + + public String videoUrl; + + public String mimeType; + + public int videoWidth; + + public int videoHeight; + + public int videoDuration; + + public ReplyMarkup replyMarkup; + + public InputMessageContent inputMessageContent; + + public InputInlineQueryResultVideo() { + } + + public InputInlineQueryResultVideo(String id, String title, String description, String thumbnailUrl, String videoUrl, String mimeType, int videoWidth, int videoHeight, int videoDuration, ReplyMarkup replyMarkup, InputMessageContent inputMessageContent) { + this.id = id; + this.title = title; + this.description = description; + this.thumbnailUrl = thumbnailUrl; + this.videoUrl = videoUrl; + this.mimeType = mimeType; + this.videoWidth = videoWidth; + this.videoHeight = videoHeight; + this.videoDuration = videoDuration; + this.replyMarkup = replyMarkup; + this.inputMessageContent = inputMessageContent; + } + + public static final int CONSTRUCTOR = 1724073191; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class InputInlineQueryResultVoiceNote extends InputInlineQueryResult { + + public String id; + + public String title; + + public String voiceNoteUrl; + + public int voiceNoteDuration; + + public ReplyMarkup replyMarkup; + + public InputMessageContent inputMessageContent; + + public InputInlineQueryResultVoiceNote() { + } + + public InputInlineQueryResultVoiceNote(String id, String title, String voiceNoteUrl, int voiceNoteDuration, ReplyMarkup replyMarkup, InputMessageContent inputMessageContent) { + this.id = id; + this.title = title; + this.voiceNoteUrl = voiceNoteUrl; + this.voiceNoteDuration = voiceNoteDuration; + this.replyMarkup = replyMarkup; + this.inputMessageContent = inputMessageContent; + } + + public static final int CONSTRUCTOR = -1790072503; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public abstract static class InputInvoice extends Object { + + public InputInvoice() { + } + } + + public static class InputInvoiceMessage extends InputInvoice { + + public long chatId; + + public long messageId; + + public InputInvoiceMessage() { + } + + public InputInvoiceMessage(long chatId, long messageId) { + this.chatId = chatId; + this.messageId = messageId; + } + + public static final int CONSTRUCTOR = 1490872848; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class InputInvoiceName extends InputInvoice { + + public String name; + + public InputInvoiceName() { + } + + public InputInvoiceName(String name) { + this.name = name; + } + + public static final int CONSTRUCTOR = -1312155917; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class InputInvoiceTelegram extends InputInvoice { + + public TelegramPaymentPurpose purpose; + + public InputInvoiceTelegram() { + } + + public InputInvoiceTelegram(TelegramPaymentPurpose purpose) { + this.purpose = purpose; + } + + public static final int CONSTRUCTOR = -1762853139; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public abstract static class InputMessageContent extends Object { + + public InputMessageContent() { + } + } + + public static class InputMessageText extends InputMessageContent { + + public FormattedText text; + + public LinkPreviewOptions linkPreviewOptions; + + public boolean clearDraft; + + public InputMessageText() { + } + + public InputMessageText(FormattedText text, LinkPreviewOptions linkPreviewOptions, boolean clearDraft) { + this.text = text; + this.linkPreviewOptions = linkPreviewOptions; + this.clearDraft = clearDraft; + } + + public static final int CONSTRUCTOR = -212805484; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class InputMessageAnimation extends InputMessageContent { + + public InputFile animation; + + public InputThumbnail thumbnail; + + public int[] addedStickerFileIds; + + public int duration; + + public int width; + + public int height; + + public FormattedText caption; + + public boolean showCaptionAboveMedia; + + public boolean hasSpoiler; + + public InputMessageAnimation() { + } + + public InputMessageAnimation(InputFile animation, InputThumbnail thumbnail, int[] addedStickerFileIds, int duration, int width, int height, FormattedText caption, boolean showCaptionAboveMedia, boolean hasSpoiler) { + this.animation = animation; + this.thumbnail = thumbnail; + this.addedStickerFileIds = addedStickerFileIds; + this.duration = duration; + this.width = width; + this.height = height; + this.caption = caption; + this.showCaptionAboveMedia = showCaptionAboveMedia; + this.hasSpoiler = hasSpoiler; + } + + public static final int CONSTRUCTOR = -210404059; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class InputMessageAudio extends InputMessageContent { + + public InputFile audio; + + public InputThumbnail albumCoverThumbnail; + + public int duration; + + public String title; + + public String performer; + + public FormattedText caption; + + public InputMessageAudio() { + } + + public InputMessageAudio(InputFile audio, InputThumbnail albumCoverThumbnail, int duration, String title, String performer, FormattedText caption) { + this.audio = audio; + this.albumCoverThumbnail = albumCoverThumbnail; + this.duration = duration; + this.title = title; + this.performer = performer; + this.caption = caption; + } + + public static final int CONSTRUCTOR = -626786126; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class InputMessageDocument extends InputMessageContent { + + public InputFile document; + + public InputThumbnail thumbnail; + + public boolean disableContentTypeDetection; + + public FormattedText caption; + + public InputMessageDocument() { + } + + public InputMessageDocument(InputFile document, InputThumbnail thumbnail, boolean disableContentTypeDetection, FormattedText caption) { + this.document = document; + this.thumbnail = thumbnail; + this.disableContentTypeDetection = disableContentTypeDetection; + this.caption = caption; + } + + public static final int CONSTRUCTOR = 1633383097; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class InputMessagePaidMedia extends InputMessageContent { + + public long starCount; + + public InputPaidMedia[] paidMedia; + + public FormattedText caption; + + public boolean showCaptionAboveMedia; + + public String payload; + + public InputMessagePaidMedia() { + } + + public InputMessagePaidMedia(long starCount, InputPaidMedia[] paidMedia, FormattedText caption, boolean showCaptionAboveMedia, String payload) { + this.starCount = starCount; + this.paidMedia = paidMedia; + this.caption = caption; + this.showCaptionAboveMedia = showCaptionAboveMedia; + this.payload = payload; + } + + public static final int CONSTRUCTOR = -1274819374; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class InputMessagePhoto extends InputMessageContent { + + public InputFile photo; + + public InputThumbnail thumbnail; + + public int[] addedStickerFileIds; + + public int width; + + public int height; + + public FormattedText caption; + + public boolean showCaptionAboveMedia; + + public MessageSelfDestructType selfDestructType; + + public boolean hasSpoiler; + + public InputMessagePhoto() { + } + + public InputMessagePhoto(InputFile photo, InputThumbnail thumbnail, int[] addedStickerFileIds, int width, int height, FormattedText caption, boolean showCaptionAboveMedia, MessageSelfDestructType selfDestructType, boolean hasSpoiler) { + this.photo = photo; + this.thumbnail = thumbnail; + this.addedStickerFileIds = addedStickerFileIds; + this.width = width; + this.height = height; + this.caption = caption; + this.showCaptionAboveMedia = showCaptionAboveMedia; + this.selfDestructType = selfDestructType; + this.hasSpoiler = hasSpoiler; + } + + public static final int CONSTRUCTOR = -810129442; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class InputMessageSticker extends InputMessageContent { + + public InputFile sticker; + + public InputThumbnail thumbnail; + + public int width; + + public int height; + + public String emoji; + + public InputMessageSticker() { + } + + public InputMessageSticker(InputFile sticker, InputThumbnail thumbnail, int width, int height, String emoji) { + this.sticker = sticker; + this.thumbnail = thumbnail; + this.width = width; + this.height = height; + this.emoji = emoji; + } + + public static final int CONSTRUCTOR = 1072805625; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class InputMessageVideo extends InputMessageContent { + + public InputFile video; + + public InputThumbnail thumbnail; + + public int[] addedStickerFileIds; + + public int duration; + + public int width; + + public int height; + + public boolean supportsStreaming; + + public FormattedText caption; + + public boolean showCaptionAboveMedia; + + public MessageSelfDestructType selfDestructType; + + public boolean hasSpoiler; + + public InputMessageVideo() { + } + + public InputMessageVideo(InputFile video, InputThumbnail thumbnail, int[] addedStickerFileIds, int duration, int width, int height, boolean supportsStreaming, FormattedText caption, boolean showCaptionAboveMedia, MessageSelfDestructType selfDestructType, boolean hasSpoiler) { + this.video = video; + this.thumbnail = thumbnail; + this.addedStickerFileIds = addedStickerFileIds; + this.duration = duration; + this.width = width; + this.height = height; + this.supportsStreaming = supportsStreaming; + this.caption = caption; + this.showCaptionAboveMedia = showCaptionAboveMedia; + this.selfDestructType = selfDestructType; + this.hasSpoiler = hasSpoiler; + } + + public static final int CONSTRUCTOR = 615537686; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class InputMessageVideoNote extends InputMessageContent { + + public InputFile videoNote; + + public InputThumbnail thumbnail; + + public int duration; + + public int length; + + public MessageSelfDestructType selfDestructType; + + public InputMessageVideoNote() { + } + + public InputMessageVideoNote(InputFile videoNote, InputThumbnail thumbnail, int duration, int length, MessageSelfDestructType selfDestructType) { + this.videoNote = videoNote; + this.thumbnail = thumbnail; + this.duration = duration; + this.length = length; + this.selfDestructType = selfDestructType; + } + + public static final int CONSTRUCTOR = -714598691; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class InputMessageVoiceNote extends InputMessageContent { + + public InputFile voiceNote; + + public int duration; + + public byte[] waveform; + + public FormattedText caption; + + public MessageSelfDestructType selfDestructType; + + public InputMessageVoiceNote() { + } + + public InputMessageVoiceNote(InputFile voiceNote, int duration, byte[] waveform, FormattedText caption, MessageSelfDestructType selfDestructType) { + this.voiceNote = voiceNote; + this.duration = duration; + this.waveform = waveform; + this.caption = caption; + this.selfDestructType = selfDestructType; + } + + public static final int CONSTRUCTOR = 1461977004; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class InputMessageLocation extends InputMessageContent { + + public Location location; + + public int livePeriod; + + public int heading; + + public int proximityAlertRadius; + + public InputMessageLocation() { + } + + public InputMessageLocation(Location location, int livePeriod, int heading, int proximityAlertRadius) { + this.location = location; + this.livePeriod = livePeriod; + this.heading = heading; + this.proximityAlertRadius = proximityAlertRadius; + } + + public static final int CONSTRUCTOR = 648735088; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class InputMessageVenue extends InputMessageContent { + + public Venue venue; + + public InputMessageVenue() { + } + + public InputMessageVenue(Venue venue) { + this.venue = venue; + } + + public static final int CONSTRUCTOR = 1447926269; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class InputMessageContact extends InputMessageContent { + + public Contact contact; + + public InputMessageContact() { + } + + public InputMessageContact(Contact contact) { + this.contact = contact; + } + + public static final int CONSTRUCTOR = -982446849; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class InputMessageDice extends InputMessageContent { + + public String emoji; + + public boolean clearDraft; + + public InputMessageDice() { + } + + public InputMessageDice(String emoji, boolean clearDraft) { + this.emoji = emoji; + this.clearDraft = clearDraft; + } + + public static final int CONSTRUCTOR = 841574313; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class InputMessageGame extends InputMessageContent { + + public long botUserId; + + public String gameShortName; + + public InputMessageGame() { + } + + public InputMessageGame(long botUserId, String gameShortName) { + this.botUserId = botUserId; + this.gameShortName = gameShortName; + } + + public static final int CONSTRUCTOR = 1252944610; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class InputMessageInvoice extends InputMessageContent { + + public Invoice invoice; + + public String title; + + public String description; + + public String photoUrl; + + public int photoSize; + + public int photoWidth; + + public int photoHeight; + + public byte[] payload; + + public String providerToken; + + public String providerData; + + public String startParameter; + + public InputPaidMedia paidMedia; + + public FormattedText paidMediaCaption; + + public InputMessageInvoice() { + } + + public InputMessageInvoice(Invoice invoice, String title, String description, String photoUrl, int photoSize, int photoWidth, int photoHeight, byte[] payload, String providerToken, String providerData, String startParameter, InputPaidMedia paidMedia, FormattedText paidMediaCaption) { + this.invoice = invoice; + this.title = title; + this.description = description; + this.photoUrl = photoUrl; + this.photoSize = photoSize; + this.photoWidth = photoWidth; + this.photoHeight = photoHeight; + this.payload = payload; + this.providerToken = providerToken; + this.providerData = providerData; + this.startParameter = startParameter; + this.paidMedia = paidMedia; + this.paidMediaCaption = paidMediaCaption; + } + + public static final int CONSTRUCTOR = -1162047631; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class InputMessagePoll extends InputMessageContent { + + public FormattedText question; + + public FormattedText[] options; + + public boolean isAnonymous; + + public PollType type; + + public int openPeriod; + + public int closeDate; + + public boolean isClosed; + + public InputMessagePoll() { + } + + public InputMessagePoll(FormattedText question, FormattedText[] options, boolean isAnonymous, PollType type, int openPeriod, int closeDate, boolean isClosed) { + this.question = question; + this.options = options; + this.isAnonymous = isAnonymous; + this.type = type; + this.openPeriod = openPeriod; + this.closeDate = closeDate; + this.isClosed = isClosed; + } + + public static final int CONSTRUCTOR = -263337164; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class InputMessageStory extends InputMessageContent { + + public long storySenderChatId; + + public int storyId; + + public InputMessageStory() { + } + + public InputMessageStory(long storySenderChatId, int storyId) { + this.storySenderChatId = storySenderChatId; + this.storyId = storyId; + } + + public static final int CONSTRUCTOR = 554278243; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class InputMessageForwarded extends InputMessageContent { + + public long fromChatId; + + public long messageId; + + public boolean inGameShare; + + public MessageCopyOptions copyOptions; + + public InputMessageForwarded() { + } + + public InputMessageForwarded(long fromChatId, long messageId, boolean inGameShare, MessageCopyOptions copyOptions) { + this.fromChatId = fromChatId; + this.messageId = messageId; + this.inGameShare = inGameShare; + this.copyOptions = copyOptions; + } + + public static final int CONSTRUCTOR = 1696232440; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public abstract static class InputMessageReplyTo extends Object { + + public InputMessageReplyTo() { + } + } + + public static class InputMessageReplyToMessage extends InputMessageReplyTo { + + public long messageId; + + public InputTextQuote quote; + + public InputMessageReplyToMessage() { + } + + public InputMessageReplyToMessage(long messageId, InputTextQuote quote) { + this.messageId = messageId; + this.quote = quote; + } + + public static final int CONSTRUCTOR = -1033987837; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class InputMessageReplyToExternalMessage extends InputMessageReplyTo { + + public long chatId; + + public long messageId; + + public InputTextQuote quote; + + public InputMessageReplyToExternalMessage() { + } + + public InputMessageReplyToExternalMessage(long chatId, long messageId, InputTextQuote quote) { + this.chatId = chatId; + this.messageId = messageId; + this.quote = quote; + } + + public static final int CONSTRUCTOR = -1993530582; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class InputMessageReplyToStory extends InputMessageReplyTo { + + public long storySenderChatId; + + public int storyId; + + public InputMessageReplyToStory() { + } + + public InputMessageReplyToStory(long storySenderChatId, int storyId) { + this.storySenderChatId = storySenderChatId; + this.storyId = storyId; + } + + public static final int CONSTRUCTOR = 1370410616; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class InputPaidMedia extends Object { + + public InputPaidMediaType type; + + public InputFile media; + + public InputThumbnail thumbnail; + + public int[] addedStickerFileIds; + + public int width; + + public int height; + + public InputPaidMedia() { + } + + public InputPaidMedia(InputPaidMediaType type, InputFile media, InputThumbnail thumbnail, int[] addedStickerFileIds, int width, int height) { + this.type = type; + this.media = media; + this.thumbnail = thumbnail; + this.addedStickerFileIds = addedStickerFileIds; + this.width = width; + this.height = height; + } + + public static final int CONSTRUCTOR = 475844035; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public abstract static class InputPaidMediaType extends Object { + + public InputPaidMediaType() { + } + } + + public static class InputPaidMediaTypePhoto extends InputPaidMediaType { + public InputPaidMediaTypePhoto() { + } + + public static final int CONSTRUCTOR = -761660134; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class InputPaidMediaTypeVideo extends InputPaidMediaType { + + public int duration; + + public boolean supportsStreaming; + + public InputPaidMediaTypeVideo() { + } + + public InputPaidMediaTypeVideo(int duration, boolean supportsStreaming) { + this.duration = duration; + this.supportsStreaming = supportsStreaming; + } + + public static final int CONSTRUCTOR = -1336673796; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public abstract static class InputPassportElement extends Object { + + public InputPassportElement() { + } + } + + public static class InputPassportElementPersonalDetails extends InputPassportElement { + + public PersonalDetails personalDetails; + + public InputPassportElementPersonalDetails() { + } + + public InputPassportElementPersonalDetails(PersonalDetails personalDetails) { + this.personalDetails = personalDetails; + } + + public static final int CONSTRUCTOR = 164791359; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class InputPassportElementPassport extends InputPassportElement { + + public InputIdentityDocument passport; + + public InputPassportElementPassport() { + } + + public InputPassportElementPassport(InputIdentityDocument passport) { + this.passport = passport; + } + + public static final int CONSTRUCTOR = -497011356; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class InputPassportElementDriverLicense extends InputPassportElement { + + public InputIdentityDocument driverLicense; + + public InputPassportElementDriverLicense() { + } + + public InputPassportElementDriverLicense(InputIdentityDocument driverLicense) { + this.driverLicense = driverLicense; + } + + public static final int CONSTRUCTOR = 304813264; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class InputPassportElementIdentityCard extends InputPassportElement { + + public InputIdentityDocument identityCard; + + public InputPassportElementIdentityCard() { + } + + public InputPassportElementIdentityCard(InputIdentityDocument identityCard) { + this.identityCard = identityCard; + } + + public static final int CONSTRUCTOR = -9963390; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class InputPassportElementInternalPassport extends InputPassportElement { + + public InputIdentityDocument internalPassport; + + public InputPassportElementInternalPassport() { + } + + public InputPassportElementInternalPassport(InputIdentityDocument internalPassport) { + this.internalPassport = internalPassport; + } + + public static final int CONSTRUCTOR = 715360043; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class InputPassportElementAddress extends InputPassportElement { + + public Address address; + + public InputPassportElementAddress() { + } + + public InputPassportElementAddress(Address address) { + this.address = address; + } + + public static final int CONSTRUCTOR = 461630480; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class InputPassportElementUtilityBill extends InputPassportElement { + + public InputPersonalDocument utilityBill; + + public InputPassportElementUtilityBill() { + } + + public InputPassportElementUtilityBill(InputPersonalDocument utilityBill) { + this.utilityBill = utilityBill; + } + + public static final int CONSTRUCTOR = 1389203841; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class InputPassportElementBankStatement extends InputPassportElement { + + public InputPersonalDocument bankStatement; + + public InputPassportElementBankStatement() { + } + + public InputPassportElementBankStatement(InputPersonalDocument bankStatement) { + this.bankStatement = bankStatement; + } + + public static final int CONSTRUCTOR = -26585208; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class InputPassportElementRentalAgreement extends InputPassportElement { + + public InputPersonalDocument rentalAgreement; + + public InputPassportElementRentalAgreement() { + } + + public InputPassportElementRentalAgreement(InputPersonalDocument rentalAgreement) { + this.rentalAgreement = rentalAgreement; + } + + public static final int CONSTRUCTOR = 1736154155; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class InputPassportElementPassportRegistration extends InputPassportElement { + + public InputPersonalDocument passportRegistration; + + public InputPassportElementPassportRegistration() { + } + + public InputPassportElementPassportRegistration(InputPersonalDocument passportRegistration) { + this.passportRegistration = passportRegistration; + } + + public static final int CONSTRUCTOR = 1314562128; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class InputPassportElementTemporaryRegistration extends InputPassportElement { + + public InputPersonalDocument temporaryRegistration; + + public InputPassportElementTemporaryRegistration() { + } + + public InputPassportElementTemporaryRegistration(InputPersonalDocument temporaryRegistration) { + this.temporaryRegistration = temporaryRegistration; + } + + public static final int CONSTRUCTOR = -1913238047; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class InputPassportElementPhoneNumber extends InputPassportElement { + + public String phoneNumber; + + public InputPassportElementPhoneNumber() { + } + + public InputPassportElementPhoneNumber(String phoneNumber) { + this.phoneNumber = phoneNumber; + } + + public static final int CONSTRUCTOR = 1319357497; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class InputPassportElementEmailAddress extends InputPassportElement { + + public String emailAddress; + + public InputPassportElementEmailAddress() { + } + + public InputPassportElementEmailAddress(String emailAddress) { + this.emailAddress = emailAddress; + } + + public static final int CONSTRUCTOR = -248605659; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class InputPassportElementError extends Object { + + public PassportElementType type; + + public String message; + + public InputPassportElementErrorSource source; + + public InputPassportElementError() { + } + + public InputPassportElementError(PassportElementType type, String message, InputPassportElementErrorSource source) { + this.type = type; + this.message = message; + this.source = source; + } + + public static final int CONSTRUCTOR = 285756898; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public abstract static class InputPassportElementErrorSource extends Object { + + public InputPassportElementErrorSource() { + } + } + + public static class InputPassportElementErrorSourceUnspecified extends InputPassportElementErrorSource { + + public byte[] elementHash; + + public InputPassportElementErrorSourceUnspecified() { + } + + public InputPassportElementErrorSourceUnspecified(byte[] elementHash) { + this.elementHash = elementHash; + } + + public static final int CONSTRUCTOR = 267230319; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class InputPassportElementErrorSourceDataField extends InputPassportElementErrorSource { + + public String fieldName; + + public byte[] dataHash; + + public InputPassportElementErrorSourceDataField() { + } + + public InputPassportElementErrorSourceDataField(String fieldName, byte[] dataHash) { + this.fieldName = fieldName; + this.dataHash = dataHash; + } + + public static final int CONSTRUCTOR = -426795002; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class InputPassportElementErrorSourceFrontSide extends InputPassportElementErrorSource { + + public byte[] fileHash; + + public InputPassportElementErrorSourceFrontSide() { + } + + public InputPassportElementErrorSourceFrontSide(byte[] fileHash) { + this.fileHash = fileHash; + } + + public static final int CONSTRUCTOR = 588023741; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class InputPassportElementErrorSourceReverseSide extends InputPassportElementErrorSource { + + public byte[] fileHash; + + public InputPassportElementErrorSourceReverseSide() { + } + + public InputPassportElementErrorSourceReverseSide(byte[] fileHash) { + this.fileHash = fileHash; + } + + public static final int CONSTRUCTOR = 413072891; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class InputPassportElementErrorSourceSelfie extends InputPassportElementErrorSource { + + public byte[] fileHash; + + public InputPassportElementErrorSourceSelfie() { + } + + public InputPassportElementErrorSourceSelfie(byte[] fileHash) { + this.fileHash = fileHash; + } + + public static final int CONSTRUCTOR = -773575528; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class InputPassportElementErrorSourceTranslationFile extends InputPassportElementErrorSource { + + public byte[] fileHash; + + public InputPassportElementErrorSourceTranslationFile() { + } + + public InputPassportElementErrorSourceTranslationFile(byte[] fileHash) { + this.fileHash = fileHash; + } + + public static final int CONSTRUCTOR = 505842299; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class InputPassportElementErrorSourceTranslationFiles extends InputPassportElementErrorSource { + + public byte[][] fileHashes; + + public InputPassportElementErrorSourceTranslationFiles() { + } + + public InputPassportElementErrorSourceTranslationFiles(byte[][] fileHashes) { + this.fileHashes = fileHashes; + } + + public static final int CONSTRUCTOR = -527254048; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class InputPassportElementErrorSourceFile extends InputPassportElementErrorSource { + + public byte[] fileHash; + + public InputPassportElementErrorSourceFile() { + } + + public InputPassportElementErrorSourceFile(byte[] fileHash) { + this.fileHash = fileHash; + } + + public static final int CONSTRUCTOR = -298492469; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class InputPassportElementErrorSourceFiles extends InputPassportElementErrorSource { + + public byte[][] fileHashes; + + public InputPassportElementErrorSourceFiles() { + } + + public InputPassportElementErrorSourceFiles(byte[][] fileHashes) { + this.fileHashes = fileHashes; + } + + public static final int CONSTRUCTOR = -2008541640; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class InputPersonalDocument extends Object { + + public InputFile[] files; + + public InputFile[] translation; + + public InputPersonalDocument() { + } + + public InputPersonalDocument(InputFile[] files, InputFile[] translation) { + this.files = files; + this.translation = translation; + } + + public static final int CONSTRUCTOR = 1676966826; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class InputSticker extends Object { + + public InputFile sticker; + + public StickerFormat format; + + public String emojis; + + public MaskPosition maskPosition; + + public String[] keywords; + + public InputSticker() { + } + + public InputSticker(InputFile sticker, StickerFormat format, String emojis, MaskPosition maskPosition, String[] keywords) { + this.sticker = sticker; + this.format = format; + this.emojis = emojis; + this.maskPosition = maskPosition; + this.keywords = keywords; + } + + public static final int CONSTRUCTOR = 1589392402; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class InputStoryArea extends Object { + + public StoryAreaPosition position; + + public InputStoryAreaType type; + + public InputStoryArea() { + } + + public InputStoryArea(StoryAreaPosition position, InputStoryAreaType type) { + this.position = position; + this.type = type; + } + + public static final int CONSTRUCTOR = 122859135; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public abstract static class InputStoryAreaType extends Object { + + public InputStoryAreaType() { + } + } + + public static class InputStoryAreaTypeLocation extends InputStoryAreaType { + + public Location location; + + public LocationAddress address; + + public InputStoryAreaTypeLocation() { + } + + public InputStoryAreaTypeLocation(Location location, LocationAddress address) { + this.location = location; + this.address = address; + } + + public static final int CONSTRUCTOR = -1433714887; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class InputStoryAreaTypeFoundVenue extends InputStoryAreaType { + + public long queryId; + + public String resultId; + + public InputStoryAreaTypeFoundVenue() { + } + + public InputStoryAreaTypeFoundVenue(long queryId, String resultId) { + this.queryId = queryId; + this.resultId = resultId; + } + + public static final int CONSTRUCTOR = -1395809130; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class InputStoryAreaTypePreviousVenue extends InputStoryAreaType { + + public String venueProvider; + + public String venueId; + + public InputStoryAreaTypePreviousVenue() { + } + + public InputStoryAreaTypePreviousVenue(String venueProvider, String venueId) { + this.venueProvider = venueProvider; + this.venueId = venueId; + } + + public static final int CONSTRUCTOR = 1846693388; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class InputStoryAreaTypeSuggestedReaction extends InputStoryAreaType { + + public ReactionType reactionType; + + public boolean isDark; + + public boolean isFlipped; + + public InputStoryAreaTypeSuggestedReaction() { + } + + public InputStoryAreaTypeSuggestedReaction(ReactionType reactionType, boolean isDark, boolean isFlipped) { + this.reactionType = reactionType; + this.isDark = isDark; + this.isFlipped = isFlipped; + } + + public static final int CONSTRUCTOR = 2101826003; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class InputStoryAreaTypeMessage extends InputStoryAreaType { + + public long chatId; + + public long messageId; + + public InputStoryAreaTypeMessage() { + } + + public InputStoryAreaTypeMessage(long chatId, long messageId) { + this.chatId = chatId; + this.messageId = messageId; + } + + public static final int CONSTRUCTOR = -266607529; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class InputStoryAreaTypeLink extends InputStoryAreaType { + + public String url; + + public InputStoryAreaTypeLink() { + } + + public InputStoryAreaTypeLink(String url) { + this.url = url; + } + + public static final int CONSTRUCTOR = 1408441160; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class InputStoryAreaTypeWeather extends InputStoryAreaType { + + public double temperature; + + public String emoji; + + public int backgroundColor; + + public InputStoryAreaTypeWeather() { + } + + public InputStoryAreaTypeWeather(double temperature, String emoji, int backgroundColor) { + this.temperature = temperature; + this.emoji = emoji; + this.backgroundColor = backgroundColor; + } + + public static final int CONSTRUCTOR = -1212686691; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class InputStoryAreas extends Object { + + public InputStoryArea[] areas; + + public InputStoryAreas() { + } + + public InputStoryAreas(InputStoryArea[] areas) { + this.areas = areas; + } + + public static final int CONSTRUCTOR = -883247088; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public abstract static class InputStoryContent extends Object { + + public InputStoryContent() { + } + } + + public static class InputStoryContentPhoto extends InputStoryContent { + + public InputFile photo; + + public int[] addedStickerFileIds; + + public InputStoryContentPhoto() { + } + + public InputStoryContentPhoto(InputFile photo, int[] addedStickerFileIds) { + this.photo = photo; + this.addedStickerFileIds = addedStickerFileIds; + } + + public static final int CONSTRUCTOR = -309196727; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class InputStoryContentVideo extends InputStoryContent { + + public InputFile video; + + public int[] addedStickerFileIds; + + public double duration; + + public double coverFrameTimestamp; + + public boolean isAnimation; + + public InputStoryContentVideo() { + } + + public InputStoryContentVideo(InputFile video, int[] addedStickerFileIds, double duration, double coverFrameTimestamp, boolean isAnimation) { + this.video = video; + this.addedStickerFileIds = addedStickerFileIds; + this.duration = duration; + this.coverFrameTimestamp = coverFrameTimestamp; + this.isAnimation = isAnimation; + } + + public static final int CONSTRUCTOR = 3809243; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class InputTextQuote extends Object { + + public FormattedText text; + + public int position; + + public InputTextQuote() { + } + + public InputTextQuote(FormattedText text, int position) { + this.text = text; + this.position = position; + } + + public static final int CONSTRUCTOR = -1219859172; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class InputThumbnail extends Object { + + public InputFile thumbnail; + + public int width; + + public int height; + + public InputThumbnail() { + } + + public InputThumbnail(InputFile thumbnail, int width, int height) { + this.thumbnail = thumbnail; + this.width = width; + this.height = height; + } + + public static final int CONSTRUCTOR = 1582387236; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public abstract static class InternalLinkType extends Object { + + public InternalLinkType() { + } + } + + public static class InternalLinkTypeActiveSessions extends InternalLinkType { + public InternalLinkTypeActiveSessions() { + } + + public static final int CONSTRUCTOR = 1886108589; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class InternalLinkTypeAttachmentMenuBot extends InternalLinkType { + + public TargetChat targetChat; + + public String botUsername; + + public String url; + + public InternalLinkTypeAttachmentMenuBot() { + } + + public InternalLinkTypeAttachmentMenuBot(TargetChat targetChat, String botUsername, String url) { + this.targetChat = targetChat; + this.botUsername = botUsername; + this.url = url; + } + + public static final int CONSTRUCTOR = 1682719269; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class InternalLinkTypeAuthenticationCode extends InternalLinkType { + + public String code; + + public InternalLinkTypeAuthenticationCode() { + } + + public InternalLinkTypeAuthenticationCode(String code) { + this.code = code; + } + + public static final int CONSTRUCTOR = -209235982; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class InternalLinkTypeBackground extends InternalLinkType { + + public String backgroundName; + + public InternalLinkTypeBackground() { + } + + public InternalLinkTypeBackground(String backgroundName) { + this.backgroundName = backgroundName; + } + + public static final int CONSTRUCTOR = 185411848; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class InternalLinkTypeBotAddToChannel extends InternalLinkType { + + public String botUsername; + + public ChatAdministratorRights administratorRights; + + public InternalLinkTypeBotAddToChannel() { + } + + public InternalLinkTypeBotAddToChannel(String botUsername, ChatAdministratorRights administratorRights) { + this.botUsername = botUsername; + this.administratorRights = administratorRights; + } + + public static final int CONSTRUCTOR = 1401602752; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class InternalLinkTypeBotStart extends InternalLinkType { + + public String botUsername; + + public String startParameter; + + public boolean autostart; + + public InternalLinkTypeBotStart() { + } + + public InternalLinkTypeBotStart(String botUsername, String startParameter, boolean autostart) { + this.botUsername = botUsername; + this.startParameter = startParameter; + this.autostart = autostart; + } + + public static final int CONSTRUCTOR = 1066950637; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class InternalLinkTypeBotStartInGroup extends InternalLinkType { + + public String botUsername; + + public String startParameter; + + public ChatAdministratorRights administratorRights; + + public InternalLinkTypeBotStartInGroup() { + } + + public InternalLinkTypeBotStartInGroup(String botUsername, String startParameter, ChatAdministratorRights administratorRights) { + this.botUsername = botUsername; + this.startParameter = startParameter; + this.administratorRights = administratorRights; + } + + public static final int CONSTRUCTOR = -905081650; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class InternalLinkTypeBusinessChat extends InternalLinkType { + + public String linkName; + + public InternalLinkTypeBusinessChat() { + } + + public InternalLinkTypeBusinessChat(String linkName) { + this.linkName = linkName; + } + + public static final int CONSTRUCTOR = -1606751785; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class InternalLinkTypeBuyStars extends InternalLinkType { + + public long starCount; + + public String purpose; + + public InternalLinkTypeBuyStars() { + } + + public InternalLinkTypeBuyStars(long starCount, String purpose) { + this.starCount = starCount; + this.purpose = purpose; + } + + public static final int CONSTRUCTOR = -1454587065; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class InternalLinkTypeChangePhoneNumber extends InternalLinkType { + public InternalLinkTypeChangePhoneNumber() { + } + + public static final int CONSTRUCTOR = -265856255; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class InternalLinkTypeChatAffiliateProgram extends InternalLinkType { + + public String username; + + public String referrer; + + public InternalLinkTypeChatAffiliateProgram() { + } + + public InternalLinkTypeChatAffiliateProgram(String username, String referrer) { + this.username = username; + this.referrer = referrer; + } + + public static final int CONSTRUCTOR = 632049700; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class InternalLinkTypeChatBoost extends InternalLinkType { + + public String url; + + public InternalLinkTypeChatBoost() { + } + + public InternalLinkTypeChatBoost(String url) { + this.url = url; + } + + public static final int CONSTRUCTOR = -716571328; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class InternalLinkTypeChatFolderInvite extends InternalLinkType { + + public String inviteLink; + + public InternalLinkTypeChatFolderInvite() { + } + + public InternalLinkTypeChatFolderInvite(String inviteLink) { + this.inviteLink = inviteLink; + } + + public static final int CONSTRUCTOR = -1984804546; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class InternalLinkTypeChatFolderSettings extends InternalLinkType { + public InternalLinkTypeChatFolderSettings() { + } + + public static final int CONSTRUCTOR = -1073805988; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class InternalLinkTypeChatInvite extends InternalLinkType { + + public String inviteLink; + + public InternalLinkTypeChatInvite() { + } + + public InternalLinkTypeChatInvite(String inviteLink) { + this.inviteLink = inviteLink; + } + + public static final int CONSTRUCTOR = 428621017; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class InternalLinkTypeDefaultMessageAutoDeleteTimerSettings extends InternalLinkType { + public InternalLinkTypeDefaultMessageAutoDeleteTimerSettings() { + } + + public static final int CONSTRUCTOR = 732625201; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class InternalLinkTypeEditProfileSettings extends InternalLinkType { + public InternalLinkTypeEditProfileSettings() { + } + + public static final int CONSTRUCTOR = -1022472090; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class InternalLinkTypeGame extends InternalLinkType { + + public String botUsername; + + public String gameShortName; + + public InternalLinkTypeGame() { + } + + public InternalLinkTypeGame(String botUsername, String gameShortName) { + this.botUsername = botUsername; + this.gameShortName = gameShortName; + } + + public static final int CONSTRUCTOR = -260788787; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class InternalLinkTypeInstantView extends InternalLinkType { + + public String url; + + public String fallbackUrl; + + public InternalLinkTypeInstantView() { + } + + public InternalLinkTypeInstantView(String url, String fallbackUrl) { + this.url = url; + this.fallbackUrl = fallbackUrl; + } + + public static final int CONSTRUCTOR = 1776607039; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class InternalLinkTypeInvoice extends InternalLinkType { + + public String invoiceName; + + public InternalLinkTypeInvoice() { + } + + public InternalLinkTypeInvoice(String invoiceName) { + this.invoiceName = invoiceName; + } + + public static final int CONSTRUCTOR = -213094996; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class InternalLinkTypeLanguagePack extends InternalLinkType { + + public String languagePackId; + + public InternalLinkTypeLanguagePack() { + } + + public InternalLinkTypeLanguagePack(String languagePackId) { + this.languagePackId = languagePackId; + } + + public static final int CONSTRUCTOR = -1450766996; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class InternalLinkTypeLanguageSettings extends InternalLinkType { + public InternalLinkTypeLanguageSettings() { + } + + public static final int CONSTRUCTOR = -1340479770; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class InternalLinkTypeMainWebApp extends InternalLinkType { + + public String botUsername; + + public String startParameter; + + public WebAppOpenMode mode; + + public InternalLinkTypeMainWebApp() { + } + + public InternalLinkTypeMainWebApp(String botUsername, String startParameter, WebAppOpenMode mode) { + this.botUsername = botUsername; + this.startParameter = startParameter; + this.mode = mode; + } + + public static final int CONSTRUCTOR = 1574925033; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class InternalLinkTypeMessage extends InternalLinkType { + + public String url; + + public InternalLinkTypeMessage() { + } + + public InternalLinkTypeMessage(String url) { + this.url = url; + } + + public static final int CONSTRUCTOR = 978541650; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class InternalLinkTypeMessageDraft extends InternalLinkType { + + public FormattedText text; + + public boolean containsLink; + + public InternalLinkTypeMessageDraft() { + } + + public InternalLinkTypeMessageDraft(FormattedText text, boolean containsLink) { + this.text = text; + this.containsLink = containsLink; + } + + public static final int CONSTRUCTOR = 661633749; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class InternalLinkTypePassportDataRequest extends InternalLinkType { + + public long botUserId; + + public String scope; + + public String publicKey; + + public String nonce; + + public String callbackUrl; + + public InternalLinkTypePassportDataRequest() { + } + + public InternalLinkTypePassportDataRequest(long botUserId, String scope, String publicKey, String nonce, String callbackUrl) { + this.botUserId = botUserId; + this.scope = scope; + this.publicKey = publicKey; + this.nonce = nonce; + this.callbackUrl = callbackUrl; + } + + public static final int CONSTRUCTOR = -988819839; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class InternalLinkTypePhoneNumberConfirmation extends InternalLinkType { + + public String hash; + + public String phoneNumber; + + public InternalLinkTypePhoneNumberConfirmation() { + } + + public InternalLinkTypePhoneNumberConfirmation(String hash, String phoneNumber) { + this.hash = hash; + this.phoneNumber = phoneNumber; + } + + public static final int CONSTRUCTOR = 1757375254; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class InternalLinkTypePremiumFeatures extends InternalLinkType { + + public String referrer; + + public InternalLinkTypePremiumFeatures() { + } + + public InternalLinkTypePremiumFeatures(String referrer) { + this.referrer = referrer; + } + + public static final int CONSTRUCTOR = 1216892745; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class InternalLinkTypePremiumGift extends InternalLinkType { + + public String referrer; + + public InternalLinkTypePremiumGift() { + } + + public InternalLinkTypePremiumGift(String referrer) { + this.referrer = referrer; + } + + public static final int CONSTRUCTOR = 1523936577; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class InternalLinkTypePremiumGiftCode extends InternalLinkType { + + public String code; + + public InternalLinkTypePremiumGiftCode() { + } + + public InternalLinkTypePremiumGiftCode(String code) { + this.code = code; + } + + public static final int CONSTRUCTOR = -564356974; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class InternalLinkTypePrivacyAndSecuritySettings extends InternalLinkType { + public InternalLinkTypePrivacyAndSecuritySettings() { + } + + public static final int CONSTRUCTOR = -1386255665; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class InternalLinkTypeProxy extends InternalLinkType { + + public String server; + + public int port; + + public ProxyType type; + + public InternalLinkTypeProxy() { + } + + public InternalLinkTypeProxy(String server, int port, ProxyType type) { + this.server = server; + this.port = port; + this.type = type; + } + + public static final int CONSTRUCTOR = -1313788694; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class InternalLinkTypePublicChat extends InternalLinkType { + + public String chatUsername; + + public String draftText; + + public boolean openProfile; + + public InternalLinkTypePublicChat() { + } + + public InternalLinkTypePublicChat(String chatUsername, String draftText, boolean openProfile) { + this.chatUsername = chatUsername; + this.draftText = draftText; + this.openProfile = openProfile; + } + + public static final int CONSTRUCTOR = 1769614592; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class InternalLinkTypeQrCodeAuthentication extends InternalLinkType { + public InternalLinkTypeQrCodeAuthentication() { + } + + public static final int CONSTRUCTOR = -1089332956; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class InternalLinkTypeRestorePurchases extends InternalLinkType { + public InternalLinkTypeRestorePurchases() { + } + + public static final int CONSTRUCTOR = 606090371; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class InternalLinkTypeSettings extends InternalLinkType { + public InternalLinkTypeSettings() { + } + + public static final int CONSTRUCTOR = 393561524; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class InternalLinkTypeStickerSet extends InternalLinkType { + + public String stickerSetName; + + public boolean expectCustomEmoji; + + public InternalLinkTypeStickerSet() { + } + + public InternalLinkTypeStickerSet(String stickerSetName, boolean expectCustomEmoji) { + this.stickerSetName = stickerSetName; + this.expectCustomEmoji = expectCustomEmoji; + } + + public static final int CONSTRUCTOR = -1589227614; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class InternalLinkTypeStory extends InternalLinkType { + + public String storySenderUsername; + + public int storyId; + + public InternalLinkTypeStory() { + } + + public InternalLinkTypeStory(String storySenderUsername, int storyId) { + this.storySenderUsername = storySenderUsername; + this.storyId = storyId; + } + + public static final int CONSTRUCTOR = 1471997511; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class InternalLinkTypeTheme extends InternalLinkType { + + public String themeName; + + public InternalLinkTypeTheme() { + } + + public InternalLinkTypeTheme(String themeName) { + this.themeName = themeName; + } + + public static final int CONSTRUCTOR = -200935417; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class InternalLinkTypeThemeSettings extends InternalLinkType { + public InternalLinkTypeThemeSettings() { + } + + public static final int CONSTRUCTOR = -1051903722; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class InternalLinkTypeUnknownDeepLink extends InternalLinkType { + + public String link; + + public InternalLinkTypeUnknownDeepLink() { + } + + public InternalLinkTypeUnknownDeepLink(String link) { + this.link = link; + } + + public static final int CONSTRUCTOR = 625596379; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class InternalLinkTypeUnsupportedProxy extends InternalLinkType { + public InternalLinkTypeUnsupportedProxy() { + } + + public static final int CONSTRUCTOR = -566649079; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class InternalLinkTypeUserPhoneNumber extends InternalLinkType { + + public String phoneNumber; + + public String draftText; + + public boolean openProfile; + + public InternalLinkTypeUserPhoneNumber() { + } + + public InternalLinkTypeUserPhoneNumber(String phoneNumber, String draftText, boolean openProfile) { + this.phoneNumber = phoneNumber; + this.draftText = draftText; + this.openProfile = openProfile; + } + + public static final int CONSTRUCTOR = 273398536; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class InternalLinkTypeUserToken extends InternalLinkType { + + public String token; + + public InternalLinkTypeUserToken() { + } + + public InternalLinkTypeUserToken(String token) { + this.token = token; + } + + public static final int CONSTRUCTOR = -1462248615; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class InternalLinkTypeVideoChat extends InternalLinkType { + + public String chatUsername; + + public String inviteHash; + + public boolean isLiveStream; + + public InternalLinkTypeVideoChat() { + } + + public InternalLinkTypeVideoChat(String chatUsername, String inviteHash, boolean isLiveStream) { + this.chatUsername = chatUsername; + this.inviteHash = inviteHash; + this.isLiveStream = isLiveStream; + } + + public static final int CONSTRUCTOR = -2020149068; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class InternalLinkTypeWebApp extends InternalLinkType { + + public String botUsername; + + public String webAppShortName; + + public String startParameter; + + public WebAppOpenMode mode; + + public InternalLinkTypeWebApp() { + } + + public InternalLinkTypeWebApp(String botUsername, String webAppShortName, String startParameter, WebAppOpenMode mode) { + this.botUsername = botUsername; + this.webAppShortName = webAppShortName; + this.startParameter = startParameter; + this.mode = mode; + } + + public static final int CONSTRUCTOR = 2062112045; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public abstract static class InviteLinkChatType extends Object { + + public InviteLinkChatType() { + } + } + + public static class InviteLinkChatTypeBasicGroup extends InviteLinkChatType { + public InviteLinkChatTypeBasicGroup() { + } + + public static final int CONSTRUCTOR = 1296287214; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class InviteLinkChatTypeSupergroup extends InviteLinkChatType { + public InviteLinkChatTypeSupergroup() { + } + + public static final int CONSTRUCTOR = 1038640984; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class InviteLinkChatTypeChannel extends InviteLinkChatType { + public InviteLinkChatTypeChannel() { + } + + public static final int CONSTRUCTOR = 806547211; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class Invoice extends Object { + + public String currency; + + public LabeledPricePart[] priceParts; + + public int subscriptionPeriod; + + public long maxTipAmount; + + public long[] suggestedTipAmounts; + + public String recurringPaymentTermsOfServiceUrl; + + public String termsOfServiceUrl; + + public boolean isTest; + + public boolean needName; + + public boolean needPhoneNumber; + + public boolean needEmailAddress; + + public boolean needShippingAddress; + + public boolean sendPhoneNumberToProvider; + + public boolean sendEmailAddressToProvider; + + public boolean isFlexible; + + public Invoice() { + } + + public Invoice(String currency, LabeledPricePart[] priceParts, int subscriptionPeriod, long maxTipAmount, long[] suggestedTipAmounts, String recurringPaymentTermsOfServiceUrl, String termsOfServiceUrl, boolean isTest, boolean needName, boolean needPhoneNumber, boolean needEmailAddress, boolean needShippingAddress, boolean sendPhoneNumberToProvider, boolean sendEmailAddressToProvider, boolean isFlexible) { + this.currency = currency; + this.priceParts = priceParts; + this.subscriptionPeriod = subscriptionPeriod; + this.maxTipAmount = maxTipAmount; + this.suggestedTipAmounts = suggestedTipAmounts; + this.recurringPaymentTermsOfServiceUrl = recurringPaymentTermsOfServiceUrl; + this.termsOfServiceUrl = termsOfServiceUrl; + this.isTest = isTest; + this.needName = needName; + this.needPhoneNumber = needPhoneNumber; + this.needEmailAddress = needEmailAddress; + this.needShippingAddress = needShippingAddress; + this.sendPhoneNumberToProvider = sendPhoneNumberToProvider; + this.sendEmailAddressToProvider = sendEmailAddressToProvider; + this.isFlexible = isFlexible; + } + + public static final int CONSTRUCTOR = 113204876; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class JsonObjectMember extends Object { + + public String key; + + public JsonValue value; + + public JsonObjectMember() { + } + + public JsonObjectMember(String key, JsonValue value) { + this.key = key; + this.value = value; + } + + public static final int CONSTRUCTOR = -1803309418; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public abstract static class JsonValue extends Object { + + public JsonValue() { + } + } + + public static class JsonValueNull extends JsonValue { + public JsonValueNull() { + } + + public static final int CONSTRUCTOR = -92872499; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class JsonValueBoolean extends JsonValue { + + public boolean value; + + public JsonValueBoolean() { + } + + public JsonValueBoolean(boolean value) { + this.value = value; + } + + public static final int CONSTRUCTOR = -2142186576; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class JsonValueNumber extends JsonValue { + + public double value; + + public JsonValueNumber() { + } + + public JsonValueNumber(double value) { + this.value = value; + } + + public static final int CONSTRUCTOR = -1010822033; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class JsonValueString extends JsonValue { + + public String value; + + public JsonValueString() { + } + + public JsonValueString(String value) { + this.value = value; + } + + public static final int CONSTRUCTOR = 1597947313; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class JsonValueArray extends JsonValue { + + public JsonValue[] values; + + public JsonValueArray() { + } + + public JsonValueArray(JsonValue[] values) { + this.values = values; + } + + public static final int CONSTRUCTOR = -183913546; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class JsonValueObject extends JsonValue { + + public JsonObjectMember[] members; + + public JsonValueObject() { + } + + public JsonValueObject(JsonObjectMember[] members) { + this.members = members; + } + + public static final int CONSTRUCTOR = 520252026; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class KeyboardButton extends Object { + + public String text; + + public KeyboardButtonType type; + + public KeyboardButton() { + } + + public KeyboardButton(String text, KeyboardButtonType type) { + this.text = text; + this.type = type; + } + + public static final int CONSTRUCTOR = -2069836172; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public abstract static class KeyboardButtonType extends Object { + + public KeyboardButtonType() { + } + } + + public static class KeyboardButtonTypeText extends KeyboardButtonType { + public KeyboardButtonTypeText() { + } + + public static final int CONSTRUCTOR = -1773037256; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class KeyboardButtonTypeRequestPhoneNumber extends KeyboardButtonType { + public KeyboardButtonTypeRequestPhoneNumber() { + } + + public static final int CONSTRUCTOR = -1529235527; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class KeyboardButtonTypeRequestLocation extends KeyboardButtonType { + public KeyboardButtonTypeRequestLocation() { + } + + public static final int CONSTRUCTOR = -125661955; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class KeyboardButtonTypeRequestPoll extends KeyboardButtonType { + + public boolean forceRegular; + + public boolean forceQuiz; + + public KeyboardButtonTypeRequestPoll() { + } + + public KeyboardButtonTypeRequestPoll(boolean forceRegular, boolean forceQuiz) { + this.forceRegular = forceRegular; + this.forceQuiz = forceQuiz; + } + + public static final int CONSTRUCTOR = 1902435512; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class KeyboardButtonTypeRequestUsers extends KeyboardButtonType { + + public int id; + + public boolean restrictUserIsBot; + + public boolean userIsBot; + + public boolean restrictUserIsPremium; + + public boolean userIsPremium; + + public int maxQuantity; + + public boolean requestName; + + public boolean requestUsername; + + public boolean requestPhoto; + + public KeyboardButtonTypeRequestUsers() { + } + + public KeyboardButtonTypeRequestUsers(int id, boolean restrictUserIsBot, boolean userIsBot, boolean restrictUserIsPremium, boolean userIsPremium, int maxQuantity, boolean requestName, boolean requestUsername, boolean requestPhoto) { + this.id = id; + this.restrictUserIsBot = restrictUserIsBot; + this.userIsBot = userIsBot; + this.restrictUserIsPremium = restrictUserIsPremium; + this.userIsPremium = userIsPremium; + this.maxQuantity = maxQuantity; + this.requestName = requestName; + this.requestUsername = requestUsername; + this.requestPhoto = requestPhoto; + } + + public static final int CONSTRUCTOR = -1738765315; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class KeyboardButtonTypeRequestChat extends KeyboardButtonType { + + public int id; + + public boolean chatIsChannel; + + public boolean restrictChatIsForum; + + public boolean chatIsForum; + + public boolean restrictChatHasUsername; + + public boolean chatHasUsername; + + public boolean chatIsCreated; + + public ChatAdministratorRights userAdministratorRights; + + public ChatAdministratorRights botAdministratorRights; + + public boolean botIsMember; + + public boolean requestTitle; + + public boolean requestUsername; + + public boolean requestPhoto; + + public KeyboardButtonTypeRequestChat() { + } + + public KeyboardButtonTypeRequestChat(int id, boolean chatIsChannel, boolean restrictChatIsForum, boolean chatIsForum, boolean restrictChatHasUsername, boolean chatHasUsername, boolean chatIsCreated, ChatAdministratorRights userAdministratorRights, ChatAdministratorRights botAdministratorRights, boolean botIsMember, boolean requestTitle, boolean requestUsername, boolean requestPhoto) { + this.id = id; + this.chatIsChannel = chatIsChannel; + this.restrictChatIsForum = restrictChatIsForum; + this.chatIsForum = chatIsForum; + this.restrictChatHasUsername = restrictChatHasUsername; + this.chatHasUsername = chatHasUsername; + this.chatIsCreated = chatIsCreated; + this.userAdministratorRights = userAdministratorRights; + this.botAdministratorRights = botAdministratorRights; + this.botIsMember = botIsMember; + this.requestTitle = requestTitle; + this.requestUsername = requestUsername; + this.requestPhoto = requestPhoto; + } + + public static final int CONSTRUCTOR = 1511138485; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class KeyboardButtonTypeWebApp extends KeyboardButtonType { + + public String url; + + public KeyboardButtonTypeWebApp() { + } + + public KeyboardButtonTypeWebApp(String url) { + this.url = url; + } + + public static final int CONSTRUCTOR = 1892220770; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class LabeledPricePart extends Object { + + public String label; + + public long amount; + + public LabeledPricePart() { + } + + public LabeledPricePart(String label, long amount) { + this.label = label; + this.amount = amount; + } + + public static final int CONSTRUCTOR = 552789798; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class LanguagePackInfo extends Object { + + public String id; + + public String baseLanguagePackId; + + public String name; + + public String nativeName; + + public String pluralCode; + + public boolean isOfficial; + + public boolean isRtl; + + public boolean isBeta; + + public boolean isInstalled; + + public int totalStringCount; + + public int translatedStringCount; + + public int localStringCount; + + public String translationUrl; + + public LanguagePackInfo() { + } + + public LanguagePackInfo(String id, String baseLanguagePackId, String name, String nativeName, String pluralCode, boolean isOfficial, boolean isRtl, boolean isBeta, boolean isInstalled, int totalStringCount, int translatedStringCount, int localStringCount, String translationUrl) { + this.id = id; + this.baseLanguagePackId = baseLanguagePackId; + this.name = name; + this.nativeName = nativeName; + this.pluralCode = pluralCode; + this.isOfficial = isOfficial; + this.isRtl = isRtl; + this.isBeta = isBeta; + this.isInstalled = isInstalled; + this.totalStringCount = totalStringCount; + this.translatedStringCount = translatedStringCount; + this.localStringCount = localStringCount; + this.translationUrl = translationUrl; + } + + public static final int CONSTRUCTOR = 542199642; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class LanguagePackString extends Object { + + public String key; + + public LanguagePackStringValue value; + + public LanguagePackString() { + } + + public LanguagePackString(String key, LanguagePackStringValue value) { + this.key = key; + this.value = value; + } + + public static final int CONSTRUCTOR = 1307632736; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public abstract static class LanguagePackStringValue extends Object { + + public LanguagePackStringValue() { + } + } + + public static class LanguagePackStringValueOrdinary extends LanguagePackStringValue { + + public String value; + + public LanguagePackStringValueOrdinary() { + } + + public LanguagePackStringValueOrdinary(String value) { + this.value = value; + } + + public static final int CONSTRUCTOR = -249256352; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class LanguagePackStringValuePluralized extends LanguagePackStringValue { + + public String zeroValue; + + public String oneValue; + + public String twoValue; + + public String fewValue; + + public String manyValue; + + public String otherValue; + + public LanguagePackStringValuePluralized() { + } + + public LanguagePackStringValuePluralized(String zeroValue, String oneValue, String twoValue, String fewValue, String manyValue, String otherValue) { + this.zeroValue = zeroValue; + this.oneValue = oneValue; + this.twoValue = twoValue; + this.fewValue = fewValue; + this.manyValue = manyValue; + this.otherValue = otherValue; + } + + public static final int CONSTRUCTOR = 1906840261; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class LanguagePackStringValueDeleted extends LanguagePackStringValue { + public LanguagePackStringValueDeleted() { + } + + public static final int CONSTRUCTOR = 1834792698; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class LanguagePackStrings extends Object { + + public LanguagePackString[] strings; + + public LanguagePackStrings() { + } + + public LanguagePackStrings(LanguagePackString[] strings) { + this.strings = strings; + } + + public static final int CONSTRUCTOR = 1172082922; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class LinkPreview extends Object { + + public String url; + + public String displayUrl; + + public String siteName; + + public String title; + + public FormattedText description; + + public String author; + + public LinkPreviewType type; + + public boolean hasLargeMedia; + + public boolean showLargeMedia; + + public boolean showMediaAboveDescription; + + public boolean skipConfirmation; + + public boolean showAboveText; + + public int instantViewVersion; + + public LinkPreview() { + } + + public LinkPreview(String url, String displayUrl, String siteName, String title, FormattedText description, String author, LinkPreviewType type, boolean hasLargeMedia, boolean showLargeMedia, boolean showMediaAboveDescription, boolean skipConfirmation, boolean showAboveText, int instantViewVersion) { + this.url = url; + this.displayUrl = displayUrl; + this.siteName = siteName; + this.title = title; + this.description = description; + this.author = author; + this.type = type; + this.hasLargeMedia = hasLargeMedia; + this.showLargeMedia = showLargeMedia; + this.showMediaAboveDescription = showMediaAboveDescription; + this.skipConfirmation = skipConfirmation; + this.showAboveText = showAboveText; + this.instantViewVersion = instantViewVersion; + } + + public static final int CONSTRUCTOR = 1729417714; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public abstract static class LinkPreviewAlbumMedia extends Object { + + public LinkPreviewAlbumMedia() { + } + } + + public static class LinkPreviewAlbumMediaPhoto extends LinkPreviewAlbumMedia { + + public Photo photo; + + public LinkPreviewAlbumMediaPhoto() { + } + + public LinkPreviewAlbumMediaPhoto(Photo photo) { + this.photo = photo; + } + + public static final int CONSTRUCTOR = -935480434; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class LinkPreviewAlbumMediaVideo extends LinkPreviewAlbumMedia { + + public Video video; + + public LinkPreviewAlbumMediaVideo() { + } + + public LinkPreviewAlbumMediaVideo(Video video) { + this.video = video; + } + + public static final int CONSTRUCTOR = 390616795; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class LinkPreviewOptions extends Object { + + public boolean isDisabled; + + public String url; + + public boolean forceSmallMedia; + + public boolean forceLargeMedia; + + public boolean showAboveText; + + public LinkPreviewOptions() { + } + + public LinkPreviewOptions(boolean isDisabled, String url, boolean forceSmallMedia, boolean forceLargeMedia, boolean showAboveText) { + this.isDisabled = isDisabled; + this.url = url; + this.forceSmallMedia = forceSmallMedia; + this.forceLargeMedia = forceLargeMedia; + this.showAboveText = showAboveText; + } + + public static final int CONSTRUCTOR = 1046590451; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public abstract static class LinkPreviewType extends Object { + + public LinkPreviewType() { + } + } + + public static class LinkPreviewTypeAlbum extends LinkPreviewType { + + public LinkPreviewAlbumMedia[] media; + + public String caption; + + public LinkPreviewTypeAlbum() { + } + + public LinkPreviewTypeAlbum(LinkPreviewAlbumMedia[] media, String caption) { + this.media = media; + this.caption = caption; + } + + public static final int CONSTRUCTOR = -919156671; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class LinkPreviewTypeAnimation extends LinkPreviewType { + + public Animation animation; + + public LinkPreviewTypeAnimation() { + } + + public LinkPreviewTypeAnimation(Animation animation) { + this.animation = animation; + } + + public static final int CONSTRUCTOR = -1386429132; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class LinkPreviewTypeApp extends LinkPreviewType { + + public Photo photo; + + public LinkPreviewTypeApp() { + } + + public LinkPreviewTypeApp(Photo photo) { + this.photo = photo; + } + + public static final int CONSTRUCTOR = -475623953; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class LinkPreviewTypeArticle extends LinkPreviewType { + + public Photo photo; + + public LinkPreviewTypeArticle() { + } + + public LinkPreviewTypeArticle(Photo photo) { + this.photo = photo; + } + + public static final int CONSTRUCTOR = 2093915097; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class LinkPreviewTypeAudio extends LinkPreviewType { + + public Audio audio; + + public LinkPreviewTypeAudio() { + } + + public LinkPreviewTypeAudio(Audio audio) { + this.audio = audio; + } + + public static final int CONSTRUCTOR = 1977878482; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class LinkPreviewTypeBackground extends LinkPreviewType { + + public Document document; + + public BackgroundType backgroundType; + + public LinkPreviewTypeBackground() { + } + + public LinkPreviewTypeBackground(Document document, BackgroundType backgroundType) { + this.document = document; + this.backgroundType = backgroundType; + } + + public static final int CONSTRUCTOR = 977838560; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class LinkPreviewTypeChannelBoost extends LinkPreviewType { + + public ChatPhoto photo; + + public LinkPreviewTypeChannelBoost() { + } + + public LinkPreviewTypeChannelBoost(ChatPhoto photo) { + this.photo = photo; + } + + public static final int CONSTRUCTOR = -957086634; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class LinkPreviewTypeChat extends LinkPreviewType { + + public InviteLinkChatType type; + + public ChatPhoto photo; + + public boolean createsJoinRequest; + + public LinkPreviewTypeChat() { + } + + public LinkPreviewTypeChat(InviteLinkChatType type, ChatPhoto photo, boolean createsJoinRequest) { + this.type = type; + this.photo = photo; + this.createsJoinRequest = createsJoinRequest; + } + + public static final int CONSTRUCTOR = -1372610270; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class LinkPreviewTypeDocument extends LinkPreviewType { + + public Document document; + + public LinkPreviewTypeDocument() { + } + + public LinkPreviewTypeDocument(Document document) { + this.document = document; + } + + public static final int CONSTRUCTOR = -1090426462; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class LinkPreviewTypeEmbeddedAnimationPlayer extends LinkPreviewType { + + public String url; + + public Photo thumbnail; + + public int duration; + + public int width; + + public int height; + + public LinkPreviewTypeEmbeddedAnimationPlayer() { + } + + public LinkPreviewTypeEmbeddedAnimationPlayer(String url, Photo thumbnail, int duration, int width, int height) { + this.url = url; + this.thumbnail = thumbnail; + this.duration = duration; + this.width = width; + this.height = height; + } + + public static final int CONSTRUCTOR = -1436887547; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class LinkPreviewTypeEmbeddedAudioPlayer extends LinkPreviewType { + + public String url; + + public Photo thumbnail; + + public int duration; + + public int width; + + public int height; + + public LinkPreviewTypeEmbeddedAudioPlayer() { + } + + public LinkPreviewTypeEmbeddedAudioPlayer(String url, Photo thumbnail, int duration, int width, int height) { + this.url = url; + this.thumbnail = thumbnail; + this.duration = duration; + this.width = width; + this.height = height; + } + + public static final int CONSTRUCTOR = 571163292; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class LinkPreviewTypeEmbeddedVideoPlayer extends LinkPreviewType { + + public String url; + + public Photo thumbnail; + + public int duration; + + public int width; + + public int height; + + public LinkPreviewTypeEmbeddedVideoPlayer() { + } + + public LinkPreviewTypeEmbeddedVideoPlayer(String url, Photo thumbnail, int duration, int width, int height) { + this.url = url; + this.thumbnail = thumbnail; + this.duration = duration; + this.width = width; + this.height = height; + } + + public static final int CONSTRUCTOR = -1480606973; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class LinkPreviewTypeExternalAudio extends LinkPreviewType { + + public String url; + + public String mimeType; + + public int duration; + + public LinkPreviewTypeExternalAudio() { + } + + public LinkPreviewTypeExternalAudio(String url, String mimeType, int duration) { + this.url = url; + this.mimeType = mimeType; + this.duration = duration; + } + + public static final int CONSTRUCTOR = -1971126291; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class LinkPreviewTypeExternalVideo extends LinkPreviewType { + + public String url; + + public String mimeType; + + public int width; + + public int height; + + public int duration; + + public LinkPreviewTypeExternalVideo() { + } + + public LinkPreviewTypeExternalVideo(String url, String mimeType, int width, int height, int duration) { + this.url = url; + this.mimeType = mimeType; + this.width = width; + this.height = height; + this.duration = duration; + } + + public static final int CONSTRUCTOR = 1367198616; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class LinkPreviewTypeInvoice extends LinkPreviewType { + public LinkPreviewTypeInvoice() { + } + + public static final int CONSTRUCTOR = -729855782; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class LinkPreviewTypeMessage extends LinkPreviewType { + public LinkPreviewTypeMessage() { + } + + public static final int CONSTRUCTOR = 435470750; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class LinkPreviewTypePhoto extends LinkPreviewType { + + public Photo photo; + + public LinkPreviewTypePhoto() { + } + + public LinkPreviewTypePhoto(Photo photo) { + this.photo = photo; + } + + public static final int CONSTRUCTOR = -1362122068; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class LinkPreviewTypePremiumGiftCode extends LinkPreviewType { + public LinkPreviewTypePremiumGiftCode() { + } + + public static final int CONSTRUCTOR = 1309507761; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class LinkPreviewTypeShareableChatFolder extends LinkPreviewType { + public LinkPreviewTypeShareableChatFolder() { + } + + public static final int CONSTRUCTOR = -2141539524; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class LinkPreviewTypeSticker extends LinkPreviewType { + + public Sticker sticker; + + public LinkPreviewTypeSticker() { + } + + public LinkPreviewTypeSticker(Sticker sticker) { + this.sticker = sticker; + } + + public static final int CONSTRUCTOR = 610225445; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class LinkPreviewTypeStickerSet extends LinkPreviewType { + + public Sticker[] stickers; + + public LinkPreviewTypeStickerSet() { + } + + public LinkPreviewTypeStickerSet(Sticker[] stickers) { + this.stickers = stickers; + } + + public static final int CONSTRUCTOR = -145958768; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class LinkPreviewTypeStory extends LinkPreviewType { + + public long storySenderChatId; + + public int storyId; + + public LinkPreviewTypeStory() { + } + + public LinkPreviewTypeStory(long storySenderChatId, int storyId) { + this.storySenderChatId = storySenderChatId; + this.storyId = storyId; + } + + public static final int CONSTRUCTOR = 513574862; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class LinkPreviewTypeSupergroupBoost extends LinkPreviewType { + + public ChatPhoto photo; + + public LinkPreviewTypeSupergroupBoost() { + } + + public LinkPreviewTypeSupergroupBoost(ChatPhoto photo) { + this.photo = photo; + } + + public static final int CONSTRUCTOR = -1873345418; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class LinkPreviewTypeTheme extends LinkPreviewType { + + public Document[] documents; + + public ThemeSettings settings; + + public LinkPreviewTypeTheme() { + } + + public LinkPreviewTypeTheme(Document[] documents, ThemeSettings settings) { + this.documents = documents; + this.settings = settings; + } + + public static final int CONSTRUCTOR = -226118489; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class LinkPreviewTypeUnsupported extends LinkPreviewType { + public LinkPreviewTypeUnsupported() { + } + + public static final int CONSTRUCTOR = 1924738233; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class LinkPreviewTypeUser extends LinkPreviewType { + + public ChatPhoto photo; + + public boolean isBot; + + public LinkPreviewTypeUser() { + } + + public LinkPreviewTypeUser(ChatPhoto photo, boolean isBot) { + this.photo = photo; + this.isBot = isBot; + } + + public static final int CONSTRUCTOR = -1465024132; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class LinkPreviewTypeVideo extends LinkPreviewType { + + public Video video; + + public LinkPreviewTypeVideo() { + } + + public LinkPreviewTypeVideo(Video video) { + this.video = video; + } + + public static final int CONSTRUCTOR = 281672712; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class LinkPreviewTypeVideoChat extends LinkPreviewType { + + public ChatPhoto photo; + + public boolean isLiveStream; + + public LinkPreviewTypeVideoChat() { + } + + public LinkPreviewTypeVideoChat(ChatPhoto photo, boolean isLiveStream) { + this.photo = photo; + this.isLiveStream = isLiveStream; + } + + public static final int CONSTRUCTOR = 420015635; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class LinkPreviewTypeVideoNote extends LinkPreviewType { + + public VideoNote videoNote; + + public LinkPreviewTypeVideoNote() { + } + + public LinkPreviewTypeVideoNote(VideoNote videoNote) { + this.videoNote = videoNote; + } + + public static final int CONSTRUCTOR = -814687391; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class LinkPreviewTypeVoiceNote extends LinkPreviewType { + + public VoiceNote voiceNote; + + public LinkPreviewTypeVoiceNote() { + } + + public LinkPreviewTypeVoiceNote(VoiceNote voiceNote) { + this.voiceNote = voiceNote; + } + + public static final int CONSTRUCTOR = -757936341; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class LinkPreviewTypeWebApp extends LinkPreviewType { + + public Photo photo; + + public LinkPreviewTypeWebApp() { + } + + public LinkPreviewTypeWebApp(Photo photo) { + this.photo = photo; + } + + public static final int CONSTRUCTOR = -1506873462; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class LocalFile extends Object { + + public String path; + + public boolean canBeDownloaded; + + public boolean canBeDeleted; + + public boolean isDownloadingActive; + + public boolean isDownloadingCompleted; + + public long downloadOffset; + + public long downloadedPrefixSize; + + public long downloadedSize; + + public LocalFile() { + } + + public LocalFile(String path, boolean canBeDownloaded, boolean canBeDeleted, boolean isDownloadingActive, boolean isDownloadingCompleted, long downloadOffset, long downloadedPrefixSize, long downloadedSize) { + this.path = path; + this.canBeDownloaded = canBeDownloaded; + this.canBeDeleted = canBeDeleted; + this.isDownloadingActive = isDownloadingActive; + this.isDownloadingCompleted = isDownloadingCompleted; + this.downloadOffset = downloadOffset; + this.downloadedPrefixSize = downloadedPrefixSize; + this.downloadedSize = downloadedSize; + } + + public static final int CONSTRUCTOR = -1562732153; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class LocalizationTargetInfo extends Object { + + public LanguagePackInfo[] languagePacks; + + public LocalizationTargetInfo() { + } + + public LocalizationTargetInfo(LanguagePackInfo[] languagePacks) { + this.languagePacks = languagePacks; + } + + public static final int CONSTRUCTOR = -2048670809; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class Location extends Object { + + public double latitude; + + public double longitude; + + public double horizontalAccuracy; + + public Location() { + } + + public Location(double latitude, double longitude, double horizontalAccuracy) { + this.latitude = latitude; + this.longitude = longitude; + this.horizontalAccuracy = horizontalAccuracy; + } + + public static final int CONSTRUCTOR = -443392141; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class LocationAddress extends Object { + + public String countryCode; + + public String state; + + public String city; + + public String street; + + public LocationAddress() { + } + + public LocationAddress(String countryCode, String state, String city, String street) { + this.countryCode = countryCode; + this.state = state; + this.city = city; + this.street = street; + } + + public static final int CONSTRUCTOR = -1545940190; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public abstract static class LogStream extends Object { + + public LogStream() { + } + } + + public static class LogStreamDefault extends LogStream { + public LogStreamDefault() { + } + + public static final int CONSTRUCTOR = 1390581436; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class LogStreamFile extends LogStream { + + public String path; + + public long maxFileSize; + + public boolean redirectStderr; + + public LogStreamFile() { + } + + public LogStreamFile(String path, long maxFileSize, boolean redirectStderr) { + this.path = path; + this.maxFileSize = maxFileSize; + this.redirectStderr = redirectStderr; + } + + public static final int CONSTRUCTOR = 1532136933; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class LogStreamEmpty extends LogStream { + public LogStreamEmpty() { + } + + public static final int CONSTRUCTOR = -499912244; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class LogTags extends Object { + + public String[] tags; + + public LogTags() { + } + + public LogTags(String[] tags) { + this.tags = tags; + } + + public static final int CONSTRUCTOR = -1604930601; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class LogVerbosityLevel extends Object { + + public int verbosityLevel; + + public LogVerbosityLevel() { + } + + public LogVerbosityLevel(int verbosityLevel) { + this.verbosityLevel = verbosityLevel; + } + + public static final int CONSTRUCTOR = 1734624234; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public abstract static class LoginUrlInfo extends Object { + + public LoginUrlInfo() { + } + } + + public static class LoginUrlInfoOpen extends LoginUrlInfo { + + public String url; + + public boolean skipConfirmation; + + public LoginUrlInfoOpen() { + } + + public LoginUrlInfoOpen(String url, boolean skipConfirmation) { + this.url = url; + this.skipConfirmation = skipConfirmation; + } + + public static final int CONSTRUCTOR = 837282306; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class LoginUrlInfoRequestConfirmation extends LoginUrlInfo { + + public String url; + + public String domain; + + public long botUserId; + + public boolean requestWriteAccess; + + public LoginUrlInfoRequestConfirmation() { + } + + public LoginUrlInfoRequestConfirmation(String url, String domain, long botUserId, boolean requestWriteAccess) { + this.url = url; + this.domain = domain; + this.botUserId = botUserId; + this.requestWriteAccess = requestWriteAccess; + } + + public static final int CONSTRUCTOR = 2128290863; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class MainWebApp extends Object { + + public String url; + + public WebAppOpenMode mode; + + public MainWebApp() { + } + + public MainWebApp(String url, WebAppOpenMode mode) { + this.url = url; + this.mode = mode; + } + + public static final int CONSTRUCTOR = 1940368506; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public abstract static class MaskPoint extends Object { + + public MaskPoint() { + } + } + + public static class MaskPointForehead extends MaskPoint { + public MaskPointForehead() { + } + + public static final int CONSTRUCTOR = 1027512005; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class MaskPointEyes extends MaskPoint { + public MaskPointEyes() { + } + + public static final int CONSTRUCTOR = 1748310861; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class MaskPointMouth extends MaskPoint { + public MaskPointMouth() { + } + + public static final int CONSTRUCTOR = 411773406; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class MaskPointChin extends MaskPoint { + public MaskPointChin() { + } + + public static final int CONSTRUCTOR = 534995335; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class MaskPosition extends Object { + + public MaskPoint point; + + public double xShift; + + public double yShift; + + public double scale; + + public MaskPosition() { + } + + public MaskPosition(MaskPoint point, double xShift, double yShift, double scale) { + this.point = point; + this.xShift = xShift; + this.yShift = yShift; + this.scale = scale; + } + + public static final int CONSTRUCTOR = -2097433026; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class Message extends Object { + + public long id; + + public MessageSender senderId; + + public long chatId; + + public MessageSendingState sendingState; + + public MessageSchedulingState schedulingState; + + public boolean isOutgoing; + + public boolean isPinned; + + public boolean isFromOffline; + + public boolean canBeSaved; + + public boolean hasTimestampedMedia; + + public boolean isChannelPost; + + public boolean isTopicMessage; + + public boolean containsUnreadMention; + + public int date; + + public int editDate; + + public MessageForwardInfo forwardInfo; + + public MessageImportInfo importInfo; + + public MessageInteractionInfo interactionInfo; + + public UnreadReaction[] unreadReactions; + + public FactCheck factCheck; + + public MessageReplyTo replyTo; + + public long messageThreadId; + + public long savedMessagesTopicId; + + public MessageSelfDestructType selfDestructType; + + public double selfDestructIn; + + public double autoDeleteIn; + + public long viaBotUserId; + + public long senderBusinessBotUserId; + + public int senderBoostCount; + + public String authorSignature; + + public long mediaAlbumId; + + public long effectId; + + public boolean hasSensitiveContent; + + public String restrictionReason; + + public MessageContent content; + + public ReplyMarkup replyMarkup; + + public Message() { + } + + public Message(long id, MessageSender senderId, long chatId, MessageSendingState sendingState, MessageSchedulingState schedulingState, boolean isOutgoing, boolean isPinned, boolean isFromOffline, boolean canBeSaved, boolean hasTimestampedMedia, boolean isChannelPost, boolean isTopicMessage, boolean containsUnreadMention, int date, int editDate, MessageForwardInfo forwardInfo, MessageImportInfo importInfo, MessageInteractionInfo interactionInfo, UnreadReaction[] unreadReactions, FactCheck factCheck, MessageReplyTo replyTo, long messageThreadId, long savedMessagesTopicId, MessageSelfDestructType selfDestructType, double selfDestructIn, double autoDeleteIn, long viaBotUserId, long senderBusinessBotUserId, int senderBoostCount, String authorSignature, long mediaAlbumId, long effectId, boolean hasSensitiveContent, String restrictionReason, MessageContent content, ReplyMarkup replyMarkup) { + this.id = id; + this.senderId = senderId; + this.chatId = chatId; + this.sendingState = sendingState; + this.schedulingState = schedulingState; + this.isOutgoing = isOutgoing; + this.isPinned = isPinned; + this.isFromOffline = isFromOffline; + this.canBeSaved = canBeSaved; + this.hasTimestampedMedia = hasTimestampedMedia; + this.isChannelPost = isChannelPost; + this.isTopicMessage = isTopicMessage; + this.containsUnreadMention = containsUnreadMention; + this.date = date; + this.editDate = editDate; + this.forwardInfo = forwardInfo; + this.importInfo = importInfo; + this.interactionInfo = interactionInfo; + this.unreadReactions = unreadReactions; + this.factCheck = factCheck; + this.replyTo = replyTo; + this.messageThreadId = messageThreadId; + this.savedMessagesTopicId = savedMessagesTopicId; + this.selfDestructType = selfDestructType; + this.selfDestructIn = selfDestructIn; + this.autoDeleteIn = autoDeleteIn; + this.viaBotUserId = viaBotUserId; + this.senderBusinessBotUserId = senderBusinessBotUserId; + this.senderBoostCount = senderBoostCount; + this.authorSignature = authorSignature; + this.mediaAlbumId = mediaAlbumId; + this.effectId = effectId; + this.hasSensitiveContent = hasSensitiveContent; + this.restrictionReason = restrictionReason; + this.content = content; + this.replyMarkup = replyMarkup; + } + + public static final int CONSTRUCTOR = 1132260831; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class MessageAutoDeleteTime extends Object { + + public int time; + + public MessageAutoDeleteTime() { + } + + public MessageAutoDeleteTime(int time) { + this.time = time; + } + + public static final int CONSTRUCTOR = 1972045589; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class MessageCalendar extends Object { + + public int totalCount; + + public MessageCalendarDay[] days; + + public MessageCalendar() { + } + + public MessageCalendar(int totalCount, MessageCalendarDay[] days) { + this.totalCount = totalCount; + this.days = days; + } + + public static final int CONSTRUCTOR = -1682890519; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class MessageCalendarDay extends Object { + + public int totalCount; + + public Message message; + + public MessageCalendarDay() { + } + + public MessageCalendarDay(int totalCount, Message message) { + this.totalCount = totalCount; + this.message = message; + } + + public static final int CONSTRUCTOR = -376467614; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public abstract static class MessageContent extends Object { + + public MessageContent() { + } + } + + public static class MessageText extends MessageContent { + + public FormattedText text; + + public LinkPreview linkPreview; + + public LinkPreviewOptions linkPreviewOptions; + + public MessageText() { + } + + public MessageText(FormattedText text, LinkPreview linkPreview, LinkPreviewOptions linkPreviewOptions) { + this.text = text; + this.linkPreview = linkPreview; + this.linkPreviewOptions = linkPreviewOptions; + } + + public static final int CONSTRUCTOR = 1751469188; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class MessageAnimation extends MessageContent { + + public Animation animation; + + public FormattedText caption; + + public boolean showCaptionAboveMedia; + + public boolean hasSpoiler; + + public boolean isSecret; + + public MessageAnimation() { + } + + public MessageAnimation(Animation animation, FormattedText caption, boolean showCaptionAboveMedia, boolean hasSpoiler, boolean isSecret) { + this.animation = animation; + this.caption = caption; + this.showCaptionAboveMedia = showCaptionAboveMedia; + this.hasSpoiler = hasSpoiler; + this.isSecret = isSecret; + } + + public static final int CONSTRUCTOR = -1899294424; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class MessageAudio extends MessageContent { + + public Audio audio; + + public FormattedText caption; + + public MessageAudio() { + } + + public MessageAudio(Audio audio, FormattedText caption) { + this.audio = audio; + this.caption = caption; + } + + public static final int CONSTRUCTOR = 276722716; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class MessageDocument extends MessageContent { + + public Document document; + + public FormattedText caption; + + public MessageDocument() { + } + + public MessageDocument(Document document, FormattedText caption) { + this.document = document; + this.caption = caption; + } + + public static final int CONSTRUCTOR = 596945783; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class MessagePaidMedia extends MessageContent { + + public long starCount; + + public PaidMedia[] media; + + public FormattedText caption; + + public boolean showCaptionAboveMedia; + + public MessagePaidMedia() { + } + + public MessagePaidMedia(long starCount, PaidMedia[] media, FormattedText caption, boolean showCaptionAboveMedia) { + this.starCount = starCount; + this.media = media; + this.caption = caption; + this.showCaptionAboveMedia = showCaptionAboveMedia; + } + + public static final int CONSTRUCTOR = -724750073; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class MessagePhoto extends MessageContent { + + public Photo photo; + + public FormattedText caption; + + public boolean showCaptionAboveMedia; + + public boolean hasSpoiler; + + public boolean isSecret; + + public MessagePhoto() { + } + + public MessagePhoto(Photo photo, FormattedText caption, boolean showCaptionAboveMedia, boolean hasSpoiler, boolean isSecret) { + this.photo = photo; + this.caption = caption; + this.showCaptionAboveMedia = showCaptionAboveMedia; + this.hasSpoiler = hasSpoiler; + this.isSecret = isSecret; + } + + public static final int CONSTRUCTOR = 1967947295; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class MessageSticker extends MessageContent { + + public Sticker sticker; + + public boolean isPremium; + + public MessageSticker() { + } + + public MessageSticker(Sticker sticker, boolean isPremium) { + this.sticker = sticker; + this.isPremium = isPremium; + } + + public static final int CONSTRUCTOR = -437199670; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class MessageVideo extends MessageContent { + + public Video video; + + public AlternativeVideo[] alternativeVideos; + + public FormattedText caption; + + public boolean showCaptionAboveMedia; + + public boolean hasSpoiler; + + public boolean isSecret; + + public MessageVideo() { + } + + public MessageVideo(Video video, AlternativeVideo[] alternativeVideos, FormattedText caption, boolean showCaptionAboveMedia, boolean hasSpoiler, boolean isSecret) { + this.video = video; + this.alternativeVideos = alternativeVideos; + this.caption = caption; + this.showCaptionAboveMedia = showCaptionAboveMedia; + this.hasSpoiler = hasSpoiler; + this.isSecret = isSecret; + } + + public static final int CONSTRUCTOR = -1307143860; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class MessageVideoNote extends MessageContent { + + public VideoNote videoNote; + + public boolean isViewed; + + public boolean isSecret; + + public MessageVideoNote() { + } + + public MessageVideoNote(VideoNote videoNote, boolean isViewed, boolean isSecret) { + this.videoNote = videoNote; + this.isViewed = isViewed; + this.isSecret = isSecret; + } + + public static final int CONSTRUCTOR = 963323014; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class MessageVoiceNote extends MessageContent { + + public VoiceNote voiceNote; + + public FormattedText caption; + + public boolean isListened; + + public MessageVoiceNote() { + } + + public MessageVoiceNote(VoiceNote voiceNote, FormattedText caption, boolean isListened) { + this.voiceNote = voiceNote; + this.caption = caption; + this.isListened = isListened; + } + + public static final int CONSTRUCTOR = 527777781; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class MessageExpiredPhoto extends MessageContent { + public MessageExpiredPhoto() { + } + + public static final int CONSTRUCTOR = -1404641801; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class MessageExpiredVideo extends MessageContent { + public MessageExpiredVideo() { + } + + public static final int CONSTRUCTOR = -1212209981; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class MessageExpiredVideoNote extends MessageContent { + public MessageExpiredVideoNote() { + } + + public static final int CONSTRUCTOR = 599540711; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class MessageExpiredVoiceNote extends MessageContent { + public MessageExpiredVoiceNote() { + } + + public static final int CONSTRUCTOR = 143684989; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class MessageLocation extends MessageContent { + + public Location location; + + public int livePeriod; + + public int expiresIn; + + public int heading; + + public int proximityAlertRadius; + + public MessageLocation() { + } + + public MessageLocation(Location location, int livePeriod, int expiresIn, int heading, int proximityAlertRadius) { + this.location = location; + this.livePeriod = livePeriod; + this.expiresIn = expiresIn; + this.heading = heading; + this.proximityAlertRadius = proximityAlertRadius; + } + + public static final int CONSTRUCTOR = 303973492; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class MessageVenue extends MessageContent { + + public Venue venue; + + public MessageVenue() { + } + + public MessageVenue(Venue venue) { + this.venue = venue; + } + + public static final int CONSTRUCTOR = -2146492043; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class MessageContact extends MessageContent { + + public Contact contact; + + public MessageContact() { + } + + public MessageContact(Contact contact) { + this.contact = contact; + } + + public static final int CONSTRUCTOR = -512684966; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class MessageAnimatedEmoji extends MessageContent { + + public AnimatedEmoji animatedEmoji; + + public String emoji; + + public MessageAnimatedEmoji() { + } + + public MessageAnimatedEmoji(AnimatedEmoji animatedEmoji, String emoji) { + this.animatedEmoji = animatedEmoji; + this.emoji = emoji; + } + + public static final int CONSTRUCTOR = 908195298; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class MessageDice extends MessageContent { + + public DiceStickers initialState; + + public DiceStickers finalState; + + public String emoji; + + public int value; + + public int successAnimationFrameNumber; + + public MessageDice() { + } + + public MessageDice(DiceStickers initialState, DiceStickers finalState, String emoji, int value, int successAnimationFrameNumber) { + this.initialState = initialState; + this.finalState = finalState; + this.emoji = emoji; + this.value = value; + this.successAnimationFrameNumber = successAnimationFrameNumber; + } + + public static final int CONSTRUCTOR = 1115779641; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class MessageGame extends MessageContent { + + public Game game; + + public MessageGame() { + } + + public MessageGame(Game game) { + this.game = game; + } + + public static final int CONSTRUCTOR = -69441162; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class MessagePoll extends MessageContent { + + public Poll poll; + + public MessagePoll() { + } + + public MessagePoll(Poll poll) { + this.poll = poll; + } + + public static final int CONSTRUCTOR = -662130099; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class MessageStory extends MessageContent { + + public long storySenderChatId; + + public int storyId; + + public boolean viaMention; + + public MessageStory() { + } + + public MessageStory(long storySenderChatId, int storyId, boolean viaMention) { + this.storySenderChatId = storySenderChatId; + this.storyId = storyId; + this.viaMention = viaMention; + } + + public static final int CONSTRUCTOR = 858387156; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class MessageInvoice extends MessageContent { + + public ProductInfo productInfo; + + public String currency; + + public long totalAmount; + + public String startParameter; + + public boolean isTest; + + public boolean needShippingAddress; + + public long receiptMessageId; + + public PaidMedia paidMedia; + + public FormattedText paidMediaCaption; + + public MessageInvoice() { + } + + public MessageInvoice(ProductInfo productInfo, String currency, long totalAmount, String startParameter, boolean isTest, boolean needShippingAddress, long receiptMessageId, PaidMedia paidMedia, FormattedText paidMediaCaption) { + this.productInfo = productInfo; + this.currency = currency; + this.totalAmount = totalAmount; + this.startParameter = startParameter; + this.isTest = isTest; + this.needShippingAddress = needShippingAddress; + this.receiptMessageId = receiptMessageId; + this.paidMedia = paidMedia; + this.paidMediaCaption = paidMediaCaption; + } + + public static final int CONSTRUCTOR = 263060806; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class MessageCall extends MessageContent { + + public boolean isVideo; + + public CallDiscardReason discardReason; + + public int duration; + + public MessageCall() { + } + + public MessageCall(boolean isVideo, CallDiscardReason discardReason, int duration) { + this.isVideo = isVideo; + this.discardReason = discardReason; + this.duration = duration; + } + + public static final int CONSTRUCTOR = 538893824; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class MessageVideoChatScheduled extends MessageContent { + + public int groupCallId; + + public int startDate; + + public MessageVideoChatScheduled() { + } + + public MessageVideoChatScheduled(int groupCallId, int startDate) { + this.groupCallId = groupCallId; + this.startDate = startDate; + } + + public static final int CONSTRUCTOR = -1855185481; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class MessageVideoChatStarted extends MessageContent { + + public int groupCallId; + + public MessageVideoChatStarted() { + } + + public MessageVideoChatStarted(int groupCallId) { + this.groupCallId = groupCallId; + } + + public static final int CONSTRUCTOR = 521225561; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class MessageVideoChatEnded extends MessageContent { + + public int duration; + + public MessageVideoChatEnded() { + } + + public MessageVideoChatEnded(int duration) { + this.duration = duration; + } + + public static final int CONSTRUCTOR = 2032544855; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class MessageInviteVideoChatParticipants extends MessageContent { + + public int groupCallId; + + public long[] userIds; + + public MessageInviteVideoChatParticipants() { + } + + public MessageInviteVideoChatParticipants(int groupCallId, long[] userIds) { + this.groupCallId = groupCallId; + this.userIds = userIds; + } + + public static final int CONSTRUCTOR = -1459065585; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class MessageBasicGroupChatCreate extends MessageContent { + + public String title; + + public long[] memberUserIds; + + public MessageBasicGroupChatCreate() { + } + + public MessageBasicGroupChatCreate(String title, long[] memberUserIds) { + this.title = title; + this.memberUserIds = memberUserIds; + } + + public static final int CONSTRUCTOR = 795404060; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class MessageSupergroupChatCreate extends MessageContent { + + public String title; + + public MessageSupergroupChatCreate() { + } + + public MessageSupergroupChatCreate(String title) { + this.title = title; + } + + public static final int CONSTRUCTOR = -434325733; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class MessageChatChangeTitle extends MessageContent { + + public String title; + + public MessageChatChangeTitle() { + } + + public MessageChatChangeTitle(String title) { + this.title = title; + } + + public static final int CONSTRUCTOR = 748272449; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class MessageChatChangePhoto extends MessageContent { + + public ChatPhoto photo; + + public MessageChatChangePhoto() { + } + + public MessageChatChangePhoto(ChatPhoto photo) { + this.photo = photo; + } + + public static final int CONSTRUCTOR = -813415093; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class MessageChatDeletePhoto extends MessageContent { + public MessageChatDeletePhoto() { + } + + public static final int CONSTRUCTOR = -184374809; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class MessageChatAddMembers extends MessageContent { + + public long[] memberUserIds; + + public MessageChatAddMembers() { + } + + public MessageChatAddMembers(long[] memberUserIds) { + this.memberUserIds = memberUserIds; + } + + public static final int CONSTRUCTOR = 1701117908; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class MessageChatJoinByLink extends MessageContent { + public MessageChatJoinByLink() { + } + + public static final int CONSTRUCTOR = 1846493311; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class MessageChatJoinByRequest extends MessageContent { + public MessageChatJoinByRequest() { + } + + public static final int CONSTRUCTOR = 1195428732; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class MessageChatDeleteMember extends MessageContent { + + public long userId; + + public MessageChatDeleteMember() { + } + + public MessageChatDeleteMember(long userId) { + this.userId = userId; + } + + public static final int CONSTRUCTOR = 938029481; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class MessageChatUpgradeTo extends MessageContent { + + public long supergroupId; + + public MessageChatUpgradeTo() { + } + + public MessageChatUpgradeTo(long supergroupId) { + this.supergroupId = supergroupId; + } + + public static final int CONSTRUCTOR = 104813723; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class MessageChatUpgradeFrom extends MessageContent { + + public String title; + + public long basicGroupId; + + public MessageChatUpgradeFrom() { + } + + public MessageChatUpgradeFrom(String title, long basicGroupId) { + this.title = title; + this.basicGroupId = basicGroupId; + } + + public static final int CONSTRUCTOR = 325954268; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class MessagePinMessage extends MessageContent { + + public long messageId; + + public MessagePinMessage() { + } + + public MessagePinMessage(long messageId) { + this.messageId = messageId; + } + + public static final int CONSTRUCTOR = 953503801; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class MessageScreenshotTaken extends MessageContent { + public MessageScreenshotTaken() { + } + + public static final int CONSTRUCTOR = -1564971605; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class MessageChatSetBackground extends MessageContent { + + public long oldBackgroundMessageId; + + public ChatBackground background; + + public boolean onlyForSelf; + + public MessageChatSetBackground() { + } + + public MessageChatSetBackground(long oldBackgroundMessageId, ChatBackground background, boolean onlyForSelf) { + this.oldBackgroundMessageId = oldBackgroundMessageId; + this.background = background; + this.onlyForSelf = onlyForSelf; + } + + public static final int CONSTRUCTOR = 1029536832; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class MessageChatSetTheme extends MessageContent { + + public String themeName; + + public MessageChatSetTheme() { + } + + public MessageChatSetTheme(String themeName) { + this.themeName = themeName; + } + + public static final int CONSTRUCTOR = -1716612088; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class MessageChatSetMessageAutoDeleteTime extends MessageContent { + + public int messageAutoDeleteTime; + + public long fromUserId; + + public MessageChatSetMessageAutoDeleteTime() { + } + + public MessageChatSetMessageAutoDeleteTime(int messageAutoDeleteTime, long fromUserId) { + this.messageAutoDeleteTime = messageAutoDeleteTime; + this.fromUserId = fromUserId; + } + + public static final int CONSTRUCTOR = 1637745966; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class MessageChatBoost extends MessageContent { + + public int boostCount; + + public MessageChatBoost() { + } + + public MessageChatBoost(int boostCount) { + this.boostCount = boostCount; + } + + public static final int CONSTRUCTOR = 1583310219; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class MessageForumTopicCreated extends MessageContent { + + public String name; + + public ForumTopicIcon icon; + + public MessageForumTopicCreated() { + } + + public MessageForumTopicCreated(String name, ForumTopicIcon icon) { + this.name = name; + this.icon = icon; + } + + public static final int CONSTRUCTOR = -1194440751; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class MessageForumTopicEdited extends MessageContent { + + public String name; + + public boolean editIconCustomEmojiId; + + public long iconCustomEmojiId; + + public MessageForumTopicEdited() { + } + + public MessageForumTopicEdited(String name, boolean editIconCustomEmojiId, long iconCustomEmojiId) { + this.name = name; + this.editIconCustomEmojiId = editIconCustomEmojiId; + this.iconCustomEmojiId = iconCustomEmojiId; + } + + public static final int CONSTRUCTOR = 12629888; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class MessageForumTopicIsClosedToggled extends MessageContent { + + public boolean isClosed; + + public MessageForumTopicIsClosedToggled() { + } + + public MessageForumTopicIsClosedToggled(boolean isClosed) { + this.isClosed = isClosed; + } + + public static final int CONSTRUCTOR = 1264029664; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class MessageForumTopicIsHiddenToggled extends MessageContent { + + public boolean isHidden; + + public MessageForumTopicIsHiddenToggled() { + } + + public MessageForumTopicIsHiddenToggled(boolean isHidden) { + this.isHidden = isHidden; + } + + public static final int CONSTRUCTOR = -1751936002; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class MessageSuggestProfilePhoto extends MessageContent { + + public ChatPhoto photo; + + public MessageSuggestProfilePhoto() { + } + + public MessageSuggestProfilePhoto(ChatPhoto photo) { + this.photo = photo; + } + + public static final int CONSTRUCTOR = -1251926297; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class MessageCustomServiceAction extends MessageContent { + + public String text; + + public MessageCustomServiceAction() { + } + + public MessageCustomServiceAction(String text) { + this.text = text; + } + + public static final int CONSTRUCTOR = 1435879282; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class MessageGameScore extends MessageContent { + + public long gameMessageId; + + public long gameId; + + public int score; + + public MessageGameScore() { + } + + public MessageGameScore(long gameMessageId, long gameId, int score) { + this.gameMessageId = gameMessageId; + this.gameId = gameId; + this.score = score; + } + + public static final int CONSTRUCTOR = 1344904575; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class MessagePaymentSuccessful extends MessageContent { + + public long invoiceChatId; + + public long invoiceMessageId; + + public String currency; + + public long totalAmount; + + public int subscriptionUntilDate; + + public boolean isRecurring; + + public boolean isFirstRecurring; + + public String invoiceName; + + public MessagePaymentSuccessful() { + } + + public MessagePaymentSuccessful(long invoiceChatId, long invoiceMessageId, String currency, long totalAmount, int subscriptionUntilDate, boolean isRecurring, boolean isFirstRecurring, String invoiceName) { + this.invoiceChatId = invoiceChatId; + this.invoiceMessageId = invoiceMessageId; + this.currency = currency; + this.totalAmount = totalAmount; + this.subscriptionUntilDate = subscriptionUntilDate; + this.isRecurring = isRecurring; + this.isFirstRecurring = isFirstRecurring; + this.invoiceName = invoiceName; + } + + public static final int CONSTRUCTOR = 1046878481; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class MessagePaymentSuccessfulBot extends MessageContent { + + public String currency; + + public long totalAmount; + + public int subscriptionUntilDate; + + public boolean isRecurring; + + public boolean isFirstRecurring; + + public byte[] invoicePayload; + + public String shippingOptionId; + + public OrderInfo orderInfo; + + public String telegramPaymentChargeId; + + public String providerPaymentChargeId; + + public MessagePaymentSuccessfulBot() { + } + + public MessagePaymentSuccessfulBot(String currency, long totalAmount, int subscriptionUntilDate, boolean isRecurring, boolean isFirstRecurring, byte[] invoicePayload, String shippingOptionId, OrderInfo orderInfo, String telegramPaymentChargeId, String providerPaymentChargeId) { + this.currency = currency; + this.totalAmount = totalAmount; + this.subscriptionUntilDate = subscriptionUntilDate; + this.isRecurring = isRecurring; + this.isFirstRecurring = isFirstRecurring; + this.invoicePayload = invoicePayload; + this.shippingOptionId = shippingOptionId; + this.orderInfo = orderInfo; + this.telegramPaymentChargeId = telegramPaymentChargeId; + this.providerPaymentChargeId = providerPaymentChargeId; + } + + public static final int CONSTRUCTOR = -949596737; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class MessagePaymentRefunded extends MessageContent { + + public MessageSender ownerId; + + public String currency; + + public long totalAmount; + + public byte[] invoicePayload; + + public String telegramPaymentChargeId; + + public String providerPaymentChargeId; + + public MessagePaymentRefunded() { + } + + public MessagePaymentRefunded(MessageSender ownerId, String currency, long totalAmount, byte[] invoicePayload, String telegramPaymentChargeId, String providerPaymentChargeId) { + this.ownerId = ownerId; + this.currency = currency; + this.totalAmount = totalAmount; + this.invoicePayload = invoicePayload; + this.telegramPaymentChargeId = telegramPaymentChargeId; + this.providerPaymentChargeId = providerPaymentChargeId; + } + + public static final int CONSTRUCTOR = 297580787; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class MessageGiftedPremium extends MessageContent { + + public long gifterUserId; + + public long receiverUserId; + + public FormattedText text; + + public String currency; + + public long amount; + + public String cryptocurrency; + + public long cryptocurrencyAmount; + + public int monthCount; + + public Sticker sticker; + + public MessageGiftedPremium() { + } + + public MessageGiftedPremium(long gifterUserId, long receiverUserId, FormattedText text, String currency, long amount, String cryptocurrency, long cryptocurrencyAmount, int monthCount, Sticker sticker) { + this.gifterUserId = gifterUserId; + this.receiverUserId = receiverUserId; + this.text = text; + this.currency = currency; + this.amount = amount; + this.cryptocurrency = cryptocurrency; + this.cryptocurrencyAmount = cryptocurrencyAmount; + this.monthCount = monthCount; + this.sticker = sticker; + } + + public static final int CONSTRUCTOR = -456073094; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class MessagePremiumGiftCode extends MessageContent { + + public MessageSender creatorId; + + public FormattedText text; + + public boolean isFromGiveaway; + + public boolean isUnclaimed; + + public String currency; + + public long amount; + + public String cryptocurrency; + + public long cryptocurrencyAmount; + + public int monthCount; + + public Sticker sticker; + + public String code; + + public MessagePremiumGiftCode() { + } + + public MessagePremiumGiftCode(MessageSender creatorId, FormattedText text, boolean isFromGiveaway, boolean isUnclaimed, String currency, long amount, String cryptocurrency, long cryptocurrencyAmount, int monthCount, Sticker sticker, String code) { + this.creatorId = creatorId; + this.text = text; + this.isFromGiveaway = isFromGiveaway; + this.isUnclaimed = isUnclaimed; + this.currency = currency; + this.amount = amount; + this.cryptocurrency = cryptocurrency; + this.cryptocurrencyAmount = cryptocurrencyAmount; + this.monthCount = monthCount; + this.sticker = sticker; + this.code = code; + } + + public static final int CONSTRUCTOR = 701640270; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class MessageGiveawayCreated extends MessageContent { + + public long starCount; + + public MessageGiveawayCreated() { + } + + public MessageGiveawayCreated(long starCount) { + this.starCount = starCount; + } + + public static final int CONSTRUCTOR = 972252063; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class MessageGiveaway extends MessageContent { + + public GiveawayParameters parameters; + + public int winnerCount; + + public GiveawayPrize prize; + + public Sticker sticker; + + public MessageGiveaway() { + } + + public MessageGiveaway(GiveawayParameters parameters, int winnerCount, GiveawayPrize prize, Sticker sticker) { + this.parameters = parameters; + this.winnerCount = winnerCount; + this.prize = prize; + this.sticker = sticker; + } + + public static final int CONSTRUCTOR = -345908568; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class MessageGiveawayCompleted extends MessageContent { + + public long giveawayMessageId; + + public int winnerCount; + + public boolean isStarGiveaway; + + public int unclaimedPrizeCount; + + public MessageGiveawayCompleted() { + } + + public MessageGiveawayCompleted(long giveawayMessageId, int winnerCount, boolean isStarGiveaway, int unclaimedPrizeCount) { + this.giveawayMessageId = giveawayMessageId; + this.winnerCount = winnerCount; + this.isStarGiveaway = isStarGiveaway; + this.unclaimedPrizeCount = unclaimedPrizeCount; + } + + public static final int CONSTRUCTOR = -467351305; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class MessageGiveawayWinners extends MessageContent { + + public long boostedChatId; + + public long giveawayMessageId; + + public int additionalChatCount; + + public int actualWinnersSelectionDate; + + public boolean onlyNewMembers; + + public boolean wasRefunded; + + public GiveawayPrize prize; + + public String prizeDescription; + + public int winnerCount; + + public long[] winnerUserIds; + + public int unclaimedPrizeCount; + + public MessageGiveawayWinners() { + } + + public MessageGiveawayWinners(long boostedChatId, long giveawayMessageId, int additionalChatCount, int actualWinnersSelectionDate, boolean onlyNewMembers, boolean wasRefunded, GiveawayPrize prize, String prizeDescription, int winnerCount, long[] winnerUserIds, int unclaimedPrizeCount) { + this.boostedChatId = boostedChatId; + this.giveawayMessageId = giveawayMessageId; + this.additionalChatCount = additionalChatCount; + this.actualWinnersSelectionDate = actualWinnersSelectionDate; + this.onlyNewMembers = onlyNewMembers; + this.wasRefunded = wasRefunded; + this.prize = prize; + this.prizeDescription = prizeDescription; + this.winnerCount = winnerCount; + this.winnerUserIds = winnerUserIds; + this.unclaimedPrizeCount = unclaimedPrizeCount; + } + + public static final int CONSTRUCTOR = 2098585405; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class MessageGiftedStars extends MessageContent { + + public long gifterUserId; + + public long receiverUserId; + + public String currency; + + public long amount; + + public String cryptocurrency; + + public long cryptocurrencyAmount; + + public long starCount; + + public String transactionId; + + public Sticker sticker; + + public MessageGiftedStars() { + } + + public MessageGiftedStars(long gifterUserId, long receiverUserId, String currency, long amount, String cryptocurrency, long cryptocurrencyAmount, long starCount, String transactionId, Sticker sticker) { + this.gifterUserId = gifterUserId; + this.receiverUserId = receiverUserId; + this.currency = currency; + this.amount = amount; + this.cryptocurrency = cryptocurrency; + this.cryptocurrencyAmount = cryptocurrencyAmount; + this.starCount = starCount; + this.transactionId = transactionId; + this.sticker = sticker; + } + + public static final int CONSTRUCTOR = 1102954151; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class MessageGiveawayPrizeStars extends MessageContent { + + public long starCount; + + public String transactionId; + + public long boostedChatId; + + public long giveawayMessageId; + + public boolean isUnclaimed; + + public Sticker sticker; + + public MessageGiveawayPrizeStars() { + } + + public MessageGiveawayPrizeStars(long starCount, String transactionId, long boostedChatId, long giveawayMessageId, boolean isUnclaimed, Sticker sticker) { + this.starCount = starCount; + this.transactionId = transactionId; + this.boostedChatId = boostedChatId; + this.giveawayMessageId = giveawayMessageId; + this.isUnclaimed = isUnclaimed; + this.sticker = sticker; + } + + public static final int CONSTRUCTOR = -1441833501; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class MessageGift extends MessageContent { + + public Gift gift; + + public FormattedText text; + + public long sellStarCount; + + public boolean isPrivate; + + public boolean isSaved; + + public boolean wasConverted; + + public MessageGift() { + } + + public MessageGift(Gift gift, FormattedText text, long sellStarCount, boolean isPrivate, boolean isSaved, boolean wasConverted) { + this.gift = gift; + this.text = text; + this.sellStarCount = sellStarCount; + this.isPrivate = isPrivate; + this.isSaved = isSaved; + this.wasConverted = wasConverted; + } + + public static final int CONSTRUCTOR = -1741766297; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class MessageContactRegistered extends MessageContent { + public MessageContactRegistered() { + } + + public static final int CONSTRUCTOR = -1502020353; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class MessageUsersShared extends MessageContent { + + public SharedUser[] users; + + public int buttonId; + + public MessageUsersShared() { + } + + public MessageUsersShared(SharedUser[] users, int buttonId) { + this.users = users; + this.buttonId = buttonId; + } + + public static final int CONSTRUCTOR = -842442318; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class MessageChatShared extends MessageContent { + + public SharedChat chat; + + public int buttonId; + + public MessageChatShared() { + } + + public MessageChatShared(SharedChat chat, int buttonId) { + this.chat = chat; + this.buttonId = buttonId; + } + + public static final int CONSTRUCTOR = -1362699935; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class MessageBotWriteAccessAllowed extends MessageContent { + + public BotWriteAccessAllowReason reason; + + public MessageBotWriteAccessAllowed() { + } + + public MessageBotWriteAccessAllowed(BotWriteAccessAllowReason reason) { + this.reason = reason; + } + + public static final int CONSTRUCTOR = -1702185036; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class MessageWebAppDataSent extends MessageContent { + + public String buttonText; + + public MessageWebAppDataSent() { + } + + public MessageWebAppDataSent(String buttonText) { + this.buttonText = buttonText; + } + + public static final int CONSTRUCTOR = -83674862; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class MessageWebAppDataReceived extends MessageContent { + + public String buttonText; + + public String data; + + public MessageWebAppDataReceived() { + } + + public MessageWebAppDataReceived(String buttonText, String data) { + this.buttonText = buttonText; + this.data = data; + } + + public static final int CONSTRUCTOR = -8578539; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class MessagePassportDataSent extends MessageContent { + + public PassportElementType[] types; + + public MessagePassportDataSent() { + } + + public MessagePassportDataSent(PassportElementType[] types) { + this.types = types; + } + + public static final int CONSTRUCTOR = 1017405171; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class MessagePassportDataReceived extends MessageContent { + + public EncryptedPassportElement[] elements; + + public EncryptedCredentials credentials; + + public MessagePassportDataReceived() { + } + + public MessagePassportDataReceived(EncryptedPassportElement[] elements, EncryptedCredentials credentials) { + this.elements = elements; + this.credentials = credentials; + } + + public static final int CONSTRUCTOR = -1367863624; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class MessageProximityAlertTriggered extends MessageContent { + + public MessageSender travelerId; + + public MessageSender watcherId; + + public int distance; + + public MessageProximityAlertTriggered() { + } + + public MessageProximityAlertTriggered(MessageSender travelerId, MessageSender watcherId, int distance) { + this.travelerId = travelerId; + this.watcherId = watcherId; + this.distance = distance; + } + + public static final int CONSTRUCTOR = 67761875; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class MessageUnsupported extends MessageContent { + public MessageUnsupported() { + } + + public static final int CONSTRUCTOR = -1816726139; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class MessageCopyOptions extends Object { + + public boolean sendCopy; + + public boolean replaceCaption; + + public FormattedText newCaption; + + public boolean newShowCaptionAboveMedia; + + public MessageCopyOptions() { + } + + public MessageCopyOptions(boolean sendCopy, boolean replaceCaption, FormattedText newCaption, boolean newShowCaptionAboveMedia) { + this.sendCopy = sendCopy; + this.replaceCaption = replaceCaption; + this.newCaption = newCaption; + this.newShowCaptionAboveMedia = newShowCaptionAboveMedia; + } + + public static final int CONSTRUCTOR = 1079772090; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class MessageEffect extends Object { + + public long id; + + public Sticker staticIcon; + + public String emoji; + + public boolean isPremium; + + public MessageEffectType type; + + public MessageEffect() { + } + + public MessageEffect(long id, Sticker staticIcon, String emoji, boolean isPremium, MessageEffectType type) { + this.id = id; + this.staticIcon = staticIcon; + this.emoji = emoji; + this.isPremium = isPremium; + this.type = type; + } + + public static final int CONSTRUCTOR = -1758836433; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public abstract static class MessageEffectType extends Object { + + public MessageEffectType() { + } + } + + public static class MessageEffectTypeEmojiReaction extends MessageEffectType { + + public Sticker selectAnimation; + + public Sticker effectAnimation; + + public MessageEffectTypeEmojiReaction() { + } + + public MessageEffectTypeEmojiReaction(Sticker selectAnimation, Sticker effectAnimation) { + this.selectAnimation = selectAnimation; + this.effectAnimation = effectAnimation; + } + + public static final int CONSTRUCTOR = 1756079678; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class MessageEffectTypePremiumSticker extends MessageEffectType { + + public Sticker sticker; + + public MessageEffectTypePremiumSticker() { + } + + public MessageEffectTypePremiumSticker(Sticker sticker) { + this.sticker = sticker; + } + + public static final int CONSTRUCTOR = 1637231609; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public abstract static class MessageFileType extends Object { + + public MessageFileType() { + } + } + + public static class MessageFileTypePrivate extends MessageFileType { + + public String name; + + public MessageFileTypePrivate() { + } + + public MessageFileTypePrivate(String name) { + this.name = name; + } + + public static final int CONSTRUCTOR = -521908524; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class MessageFileTypeGroup extends MessageFileType { + + public String title; + + public MessageFileTypeGroup() { + } + + public MessageFileTypeGroup(String title) { + this.title = title; + } + + public static final int CONSTRUCTOR = -219836568; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class MessageFileTypeUnknown extends MessageFileType { + public MessageFileTypeUnknown() { + } + + public static final int CONSTRUCTOR = 1176353458; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class MessageForwardInfo extends Object { + + public MessageOrigin origin; + + public int date; + + public ForwardSource source; + + public String publicServiceAnnouncementType; + + public MessageForwardInfo() { + } + + public MessageForwardInfo(MessageOrigin origin, int date, ForwardSource source, String publicServiceAnnouncementType) { + this.origin = origin; + this.date = date; + this.source = source; + this.publicServiceAnnouncementType = publicServiceAnnouncementType; + } + + public static final int CONSTRUCTOR = -880313475; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class MessageImportInfo extends Object { + + public String senderName; + + public int date; + + public MessageImportInfo() { + } + + public MessageImportInfo(String senderName, int date) { + this.senderName = senderName; + this.date = date; + } + + public static final int CONSTRUCTOR = -421549105; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class MessageInteractionInfo extends Object { + + public int viewCount; + + public int forwardCount; + + public MessageReplyInfo replyInfo; + + public MessageReactions reactions; + + public MessageInteractionInfo() { + } + + public MessageInteractionInfo(int viewCount, int forwardCount, MessageReplyInfo replyInfo, MessageReactions reactions) { + this.viewCount = viewCount; + this.forwardCount = forwardCount; + this.replyInfo = replyInfo; + this.reactions = reactions; + } + + public static final int CONSTRUCTOR = 733797893; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class MessageLink extends Object { + + public String link; + + public boolean isPublic; + + public MessageLink() { + } + + public MessageLink(String link, boolean isPublic) { + this.link = link; + this.isPublic = isPublic; + } + + public static final int CONSTRUCTOR = -1354089818; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class MessageLinkInfo extends Object { + + public boolean isPublic; + + public long chatId; + + public long messageThreadId; + + public Message message; + + public int mediaTimestamp; + + public boolean forAlbum; + + public MessageLinkInfo() { + } + + public MessageLinkInfo(boolean isPublic, long chatId, long messageThreadId, Message message, int mediaTimestamp, boolean forAlbum) { + this.isPublic = isPublic; + this.chatId = chatId; + this.messageThreadId = messageThreadId; + this.message = message; + this.mediaTimestamp = mediaTimestamp; + this.forAlbum = forAlbum; + } + + public static final int CONSTRUCTOR = 731315024; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public abstract static class MessageOrigin extends Object { + + public MessageOrigin() { + } + } + + public static class MessageOriginUser extends MessageOrigin { + + public long senderUserId; + + public MessageOriginUser() { + } + + public MessageOriginUser(long senderUserId) { + this.senderUserId = senderUserId; + } + + public static final int CONSTRUCTOR = -1677684669; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class MessageOriginHiddenUser extends MessageOrigin { + + public String senderName; + + public MessageOriginHiddenUser() { + } + + public MessageOriginHiddenUser(String senderName) { + this.senderName = senderName; + } + + public static final int CONSTRUCTOR = -317971494; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class MessageOriginChat extends MessageOrigin { + + public long senderChatId; + + public String authorSignature; + + public MessageOriginChat() { + } + + public MessageOriginChat(long senderChatId, String authorSignature) { + this.senderChatId = senderChatId; + this.authorSignature = authorSignature; + } + + public static final int CONSTRUCTOR = -205824332; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class MessageOriginChannel extends MessageOrigin { + + public long chatId; + + public long messageId; + + public String authorSignature; + + public MessageOriginChannel() { + } + + public MessageOriginChannel(long chatId, long messageId, String authorSignature) { + this.chatId = chatId; + this.messageId = messageId; + this.authorSignature = authorSignature; + } + + public static final int CONSTRUCTOR = -1451535938; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class MessagePosition extends Object { + + public int position; + + public long messageId; + + public int date; + + public MessagePosition() { + } + + public MessagePosition(int position, long messageId, int date) { + this.position = position; + this.messageId = messageId; + this.date = date; + } + + public static final int CONSTRUCTOR = 1292189935; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class MessagePositions extends Object { + + public int totalCount; + + public MessagePosition[] positions; + + public MessagePositions() { + } + + public MessagePositions(int totalCount, MessagePosition[] positions) { + this.totalCount = totalCount; + this.positions = positions; + } + + public static final int CONSTRUCTOR = -1930466649; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class MessageProperties extends Object { + + public boolean canBeCopiedToSecretChat; + + public boolean canBeDeletedOnlyForSelf; + + public boolean canBeDeletedForAllUsers; + + public boolean canBeEdited; + + public boolean canBeForwarded; + + public boolean canBePaid; + + public boolean canBePinned; + + public boolean canBeReplied; + + public boolean canBeRepliedInAnotherChat; + + public boolean canBeSaved; + + public boolean canBeSharedInStory; + + public boolean canEditMedia; + + public boolean canEditSchedulingState; + + public boolean canGetEmbeddingCode; + + public boolean canGetLink; + + public boolean canGetMediaTimestampLinks; + + public boolean canGetMessageThread; + + public boolean canGetReadDate; + + public boolean canGetStatistics; + + public boolean canGetViewers; + + public boolean canRecognizeSpeech; + + public boolean canReportChat; + + public boolean canReportReactions; + + public boolean canReportSupergroupSpam; + + public boolean canSetFactCheck; + + public boolean needShowStatistics; + + public MessageProperties() { + } + + public MessageProperties(boolean canBeCopiedToSecretChat, boolean canBeDeletedOnlyForSelf, boolean canBeDeletedForAllUsers, boolean canBeEdited, boolean canBeForwarded, boolean canBePaid, boolean canBePinned, boolean canBeReplied, boolean canBeRepliedInAnotherChat, boolean canBeSaved, boolean canBeSharedInStory, boolean canEditMedia, boolean canEditSchedulingState, boolean canGetEmbeddingCode, boolean canGetLink, boolean canGetMediaTimestampLinks, boolean canGetMessageThread, boolean canGetReadDate, boolean canGetStatistics, boolean canGetViewers, boolean canRecognizeSpeech, boolean canReportChat, boolean canReportReactions, boolean canReportSupergroupSpam, boolean canSetFactCheck, boolean needShowStatistics) { + this.canBeCopiedToSecretChat = canBeCopiedToSecretChat; + this.canBeDeletedOnlyForSelf = canBeDeletedOnlyForSelf; + this.canBeDeletedForAllUsers = canBeDeletedForAllUsers; + this.canBeEdited = canBeEdited; + this.canBeForwarded = canBeForwarded; + this.canBePaid = canBePaid; + this.canBePinned = canBePinned; + this.canBeReplied = canBeReplied; + this.canBeRepliedInAnotherChat = canBeRepliedInAnotherChat; + this.canBeSaved = canBeSaved; + this.canBeSharedInStory = canBeSharedInStory; + this.canEditMedia = canEditMedia; + this.canEditSchedulingState = canEditSchedulingState; + this.canGetEmbeddingCode = canGetEmbeddingCode; + this.canGetLink = canGetLink; + this.canGetMediaTimestampLinks = canGetMediaTimestampLinks; + this.canGetMessageThread = canGetMessageThread; + this.canGetReadDate = canGetReadDate; + this.canGetStatistics = canGetStatistics; + this.canGetViewers = canGetViewers; + this.canRecognizeSpeech = canRecognizeSpeech; + this.canReportChat = canReportChat; + this.canReportReactions = canReportReactions; + this.canReportSupergroupSpam = canReportSupergroupSpam; + this.canSetFactCheck = canSetFactCheck; + this.needShowStatistics = needShowStatistics; + } + + public static final int CONSTRUCTOR = -27014655; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class MessageReaction extends Object { + + public ReactionType type; + + public int totalCount; + + public boolean isChosen; + + public MessageSender usedSenderId; + + public MessageSender[] recentSenderIds; + + public MessageReaction() { + } + + public MessageReaction(ReactionType type, int totalCount, boolean isChosen, MessageSender usedSenderId, MessageSender[] recentSenderIds) { + this.type = type; + this.totalCount = totalCount; + this.isChosen = isChosen; + this.usedSenderId = usedSenderId; + this.recentSenderIds = recentSenderIds; + } + + public static final int CONSTRUCTOR = -1093994369; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class MessageReactions extends Object { + + public MessageReaction[] reactions; + + public boolean areTags; + + public PaidReactor[] paidReactors; + + public boolean canGetAddedReactions; + + public MessageReactions() { + } + + public MessageReactions(MessageReaction[] reactions, boolean areTags, PaidReactor[] paidReactors, boolean canGetAddedReactions) { + this.reactions = reactions; + this.areTags = areTags; + this.paidReactors = paidReactors; + this.canGetAddedReactions = canGetAddedReactions; + } + + public static final int CONSTRUCTOR = 1475966817; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public abstract static class MessageReadDate extends Object { + + public MessageReadDate() { + } + } + + public static class MessageReadDateRead extends MessageReadDate { + + public int readDate; + + public MessageReadDateRead() { + } + + public MessageReadDateRead(int readDate) { + this.readDate = readDate; + } + + public static final int CONSTRUCTOR = 1972186672; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class MessageReadDateUnread extends MessageReadDate { + public MessageReadDateUnread() { + } + + public static final int CONSTRUCTOR = 397549868; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class MessageReadDateTooOld extends MessageReadDate { + public MessageReadDateTooOld() { + } + + public static final int CONSTRUCTOR = -1233773024; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class MessageReadDateUserPrivacyRestricted extends MessageReadDate { + public MessageReadDateUserPrivacyRestricted() { + } + + public static final int CONSTRUCTOR = -1282567130; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class MessageReadDateMyPrivacyRestricted extends MessageReadDate { + public MessageReadDateMyPrivacyRestricted() { + } + + public static final int CONSTRUCTOR = -693971852; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class MessageReplyInfo extends Object { + + public int replyCount; + + public MessageSender[] recentReplierIds; + + public long lastReadInboxMessageId; + + public long lastReadOutboxMessageId; + + public long lastMessageId; + + public MessageReplyInfo() { + } + + public MessageReplyInfo(int replyCount, MessageSender[] recentReplierIds, long lastReadInboxMessageId, long lastReadOutboxMessageId, long lastMessageId) { + this.replyCount = replyCount; + this.recentReplierIds = recentReplierIds; + this.lastReadInboxMessageId = lastReadInboxMessageId; + this.lastReadOutboxMessageId = lastReadOutboxMessageId; + this.lastMessageId = lastMessageId; + } + + public static final int CONSTRUCTOR = -2093702263; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public abstract static class MessageReplyTo extends Object { + + public MessageReplyTo() { + } + } + + public static class MessageReplyToMessage extends MessageReplyTo { + + public long chatId; + + public long messageId; + + public TextQuote quote; + + public MessageOrigin origin; + + public int originSendDate; + + public MessageContent content; + + public MessageReplyToMessage() { + } + + public MessageReplyToMessage(long chatId, long messageId, TextQuote quote, MessageOrigin origin, int originSendDate, MessageContent content) { + this.chatId = chatId; + this.messageId = messageId; + this.quote = quote; + this.origin = origin; + this.originSendDate = originSendDate; + this.content = content; + } + + public static final int CONSTRUCTOR = -300918393; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class MessageReplyToStory extends MessageReplyTo { + + public long storySenderChatId; + + public int storyId; + + public MessageReplyToStory() { + } + + public MessageReplyToStory(long storySenderChatId, int storyId) { + this.storySenderChatId = storySenderChatId; + this.storyId = storyId; + } + + public static final int CONSTRUCTOR = 1888266553; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public abstract static class MessageSchedulingState extends Object { + + public MessageSchedulingState() { + } + } + + public static class MessageSchedulingStateSendAtDate extends MessageSchedulingState { + + public int sendDate; + + public MessageSchedulingStateSendAtDate() { + } + + public MessageSchedulingStateSendAtDate(int sendDate) { + this.sendDate = sendDate; + } + + public static final int CONSTRUCTOR = -1485570073; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class MessageSchedulingStateSendWhenOnline extends MessageSchedulingState { + public MessageSchedulingStateSendWhenOnline() { + } + + public static final int CONSTRUCTOR = 2092947464; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class MessageSchedulingStateSendWhenVideoProcessed extends MessageSchedulingState { + + public int sendDate; + + public MessageSchedulingStateSendWhenVideoProcessed() { + } + + public MessageSchedulingStateSendWhenVideoProcessed(int sendDate) { + this.sendDate = sendDate; + } + + public static final int CONSTRUCTOR = 2101578734; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public abstract static class MessageSelfDestructType extends Object { + + public MessageSelfDestructType() { + } + } + + public static class MessageSelfDestructTypeTimer extends MessageSelfDestructType { + + public int selfDestructTime; + + public MessageSelfDestructTypeTimer() { + } + + public MessageSelfDestructTypeTimer(int selfDestructTime) { + this.selfDestructTime = selfDestructTime; + } + + public static final int CONSTRUCTOR = 1351440333; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class MessageSelfDestructTypeImmediately extends MessageSelfDestructType { + public MessageSelfDestructTypeImmediately() { + } + + public static final int CONSTRUCTOR = -1036218363; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class MessageSendOptions extends Object { + + public boolean disableNotification; + + public boolean fromBackground; + + public boolean protectContent; + + public boolean allowPaidBroadcast; + + public boolean updateOrderOfInstalledStickerSets; + + public MessageSchedulingState schedulingState; + + public long effectId; + + public int sendingId; + + public boolean onlyPreview; + + public MessageSendOptions() { + } + + public MessageSendOptions(boolean disableNotification, boolean fromBackground, boolean protectContent, boolean allowPaidBroadcast, boolean updateOrderOfInstalledStickerSets, MessageSchedulingState schedulingState, long effectId, int sendingId, boolean onlyPreview) { + this.disableNotification = disableNotification; + this.fromBackground = fromBackground; + this.protectContent = protectContent; + this.allowPaidBroadcast = allowPaidBroadcast; + this.updateOrderOfInstalledStickerSets = updateOrderOfInstalledStickerSets; + this.schedulingState = schedulingState; + this.effectId = effectId; + this.sendingId = sendingId; + this.onlyPreview = onlyPreview; + } + + public static final int CONSTRUCTOR = 776354378; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public abstract static class MessageSender extends Object { + + public MessageSender() { + } + } + + public static class MessageSenderUser extends MessageSender { + + public long userId; + + public MessageSenderUser() { + } + + public MessageSenderUser(long userId) { + this.userId = userId; + } + + public static final int CONSTRUCTOR = -336109341; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class MessageSenderChat extends MessageSender { + + public long chatId; + + public MessageSenderChat() { + } + + public MessageSenderChat(long chatId) { + this.chatId = chatId; + } + + public static final int CONSTRUCTOR = -239660751; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class MessageSenders extends Object { + + public int totalCount; + + public MessageSender[] senders; + + public MessageSenders() { + } + + public MessageSenders(int totalCount, MessageSender[] senders) { + this.totalCount = totalCount; + this.senders = senders; + } + + public static final int CONSTRUCTOR = -690158467; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public abstract static class MessageSendingState extends Object { + + public MessageSendingState() { + } + } + + public static class MessageSendingStatePending extends MessageSendingState { + + public int sendingId; + + public MessageSendingStatePending() { + } + + public MessageSendingStatePending(int sendingId) { + this.sendingId = sendingId; + } + + public static final int CONSTRUCTOR = -215260236; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class MessageSendingStateFailed extends MessageSendingState { + + public Error error; + + public boolean canRetry; + + public boolean needAnotherSender; + + public boolean needAnotherReplyQuote; + + public boolean needDropReply; + + public double retryAfter; + + public MessageSendingStateFailed() { + } + + public MessageSendingStateFailed(Error error, boolean canRetry, boolean needAnotherSender, boolean needAnotherReplyQuote, boolean needDropReply, double retryAfter) { + this.error = error; + this.canRetry = canRetry; + this.needAnotherSender = needAnotherSender; + this.needAnotherReplyQuote = needAnotherReplyQuote; + this.needDropReply = needDropReply; + this.retryAfter = retryAfter; + } + + public static final int CONSTRUCTOR = -1400770978; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public abstract static class MessageSource extends Object { + + public MessageSource() { + } + } + + public static class MessageSourceChatHistory extends MessageSource { + public MessageSourceChatHistory() { + } + + public static final int CONSTRUCTOR = -1090386116; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class MessageSourceMessageThreadHistory extends MessageSource { + public MessageSourceMessageThreadHistory() { + } + + public static final int CONSTRUCTOR = 290427142; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class MessageSourceForumTopicHistory extends MessageSource { + public MessageSourceForumTopicHistory() { + } + + public static final int CONSTRUCTOR = -1518064457; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class MessageSourceHistoryPreview extends MessageSource { + public MessageSourceHistoryPreview() { + } + + public static final int CONSTRUCTOR = 1024254993; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class MessageSourceChatList extends MessageSource { + public MessageSourceChatList() { + } + + public static final int CONSTRUCTOR = -2047406102; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class MessageSourceSearch extends MessageSource { + public MessageSourceSearch() { + } + + public static final int CONSTRUCTOR = 1921333105; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class MessageSourceChatEventLog extends MessageSource { + public MessageSourceChatEventLog() { + } + + public static final int CONSTRUCTOR = -1028777540; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class MessageSourceNotification extends MessageSource { + public MessageSourceNotification() { + } + + public static final int CONSTRUCTOR = -1046406163; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class MessageSourceScreenshot extends MessageSource { + public MessageSourceScreenshot() { + } + + public static final int CONSTRUCTOR = 469982474; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class MessageSourceOther extends MessageSource { + public MessageSourceOther() { + } + + public static final int CONSTRUCTOR = 901818114; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class MessageSponsor extends Object { + + public String url; + + public Photo photo; + + public String info; + + public MessageSponsor() { + } + + public MessageSponsor(String url, Photo photo, String info) { + this.url = url; + this.photo = photo; + this.info = info; + } + + public static final int CONSTRUCTOR = 2009223646; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class MessageStatistics extends Object { + + public StatisticalGraph messageInteractionGraph; + + public StatisticalGraph messageReactionGraph; + + public MessageStatistics() { + } + + public MessageStatistics(StatisticalGraph messageInteractionGraph, StatisticalGraph messageReactionGraph) { + this.messageInteractionGraph = messageInteractionGraph; + this.messageReactionGraph = messageReactionGraph; + } + + public static final int CONSTRUCTOR = -1563537657; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class MessageThreadInfo extends Object { + + public long chatId; + + public long messageThreadId; + + public MessageReplyInfo replyInfo; + + public int unreadMessageCount; + + public Message[] messages; + + public DraftMessage draftMessage; + + public MessageThreadInfo() { + } + + public MessageThreadInfo(long chatId, long messageThreadId, MessageReplyInfo replyInfo, int unreadMessageCount, Message[] messages, DraftMessage draftMessage) { + this.chatId = chatId; + this.messageThreadId = messageThreadId; + this.replyInfo = replyInfo; + this.unreadMessageCount = unreadMessageCount; + this.messages = messages; + this.draftMessage = draftMessage; + } + + public static final int CONSTRUCTOR = -248536056; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class MessageViewer extends Object { + + public long userId; + + public int viewDate; + + public MessageViewer() { + } + + public MessageViewer(long userId, int viewDate) { + this.userId = userId; + this.viewDate = viewDate; + } + + public static final int CONSTRUCTOR = 1458639309; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class MessageViewers extends Object { + + public MessageViewer[] viewers; + + public MessageViewers() { + } + + public MessageViewers(MessageViewer[] viewers) { + this.viewers = viewers; + } + + public static final int CONSTRUCTOR = 2116480287; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class Messages extends Object { + + public int totalCount; + + public Message[] messages; + + public Messages() { + } + + public Messages(int totalCount, Message[] messages) { + this.totalCount = totalCount; + this.messages = messages; + } + + public static final int CONSTRUCTOR = -16498159; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class Minithumbnail extends Object { + + public int width; + + public int height; + + public byte[] data; + + public Minithumbnail() { + } + + public Minithumbnail(int width, int height, byte[] data) { + this.width = width; + this.height = height; + this.data = data; + } + + public static final int CONSTRUCTOR = -328540758; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class NetworkStatistics extends Object { + + public int sinceDate; + + public NetworkStatisticsEntry[] entries; + + public NetworkStatistics() { + } + + public NetworkStatistics(int sinceDate, NetworkStatisticsEntry[] entries) { + this.sinceDate = sinceDate; + this.entries = entries; + } + + public static final int CONSTRUCTOR = 1615554212; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public abstract static class NetworkStatisticsEntry extends Object { + + public NetworkStatisticsEntry() { + } + } + + public static class NetworkStatisticsEntryFile extends NetworkStatisticsEntry { + + public FileType fileType; + + public NetworkType networkType; + + public long sentBytes; + + public long receivedBytes; + + public NetworkStatisticsEntryFile() { + } + + public NetworkStatisticsEntryFile(FileType fileType, NetworkType networkType, long sentBytes, long receivedBytes) { + this.fileType = fileType; + this.networkType = networkType; + this.sentBytes = sentBytes; + this.receivedBytes = receivedBytes; + } + + public static final int CONSTRUCTOR = 188452706; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class NetworkStatisticsEntryCall extends NetworkStatisticsEntry { + + public NetworkType networkType; + + public long sentBytes; + + public long receivedBytes; + + public double duration; + + public NetworkStatisticsEntryCall() { + } + + public NetworkStatisticsEntryCall(NetworkType networkType, long sentBytes, long receivedBytes, double duration) { + this.networkType = networkType; + this.sentBytes = sentBytes; + this.receivedBytes = receivedBytes; + this.duration = duration; + } + + public static final int CONSTRUCTOR = 737000365; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public abstract static class NetworkType extends Object { + + public NetworkType() { + } + } + + public static class NetworkTypeNone extends NetworkType { + public NetworkTypeNone() { + } + + public static final int CONSTRUCTOR = -1971691759; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class NetworkTypeMobile extends NetworkType { + public NetworkTypeMobile() { + } + + public static final int CONSTRUCTOR = 819228239; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class NetworkTypeMobileRoaming extends NetworkType { + public NetworkTypeMobileRoaming() { + } + + public static final int CONSTRUCTOR = -1435199760; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class NetworkTypeWiFi extends NetworkType { + public NetworkTypeWiFi() { + } + + public static final int CONSTRUCTOR = -633872070; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class NetworkTypeOther extends NetworkType { + public NetworkTypeOther() { + } + + public static final int CONSTRUCTOR = 1942128539; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class NewChatPrivacySettings extends Object { + + public boolean allowNewChatsFromUnknownUsers; + + public NewChatPrivacySettings() { + } + + public NewChatPrivacySettings(boolean allowNewChatsFromUnknownUsers) { + this.allowNewChatsFromUnknownUsers = allowNewChatsFromUnknownUsers; + } + + public static final int CONSTRUCTOR = 1528154694; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class Notification extends Object { + + public int id; + + public int date; + + public boolean isSilent; + + public NotificationType type; + + public Notification() { + } + + public Notification(int id, int date, boolean isSilent, NotificationType type) { + this.id = id; + this.date = date; + this.isSilent = isSilent; + this.type = type; + } + + public static final int CONSTRUCTOR = 788743120; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class NotificationGroup extends Object { + + public int id; + + public NotificationGroupType type; + + public long chatId; + + public int totalCount; + + public Notification[] notifications; + + public NotificationGroup() { + } + + public NotificationGroup(int id, NotificationGroupType type, long chatId, int totalCount, Notification[] notifications) { + this.id = id; + this.type = type; + this.chatId = chatId; + this.totalCount = totalCount; + this.notifications = notifications; + } + + public static final int CONSTRUCTOR = 780691541; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public abstract static class NotificationGroupType extends Object { + + public NotificationGroupType() { + } + } + + public static class NotificationGroupTypeMessages extends NotificationGroupType { + public NotificationGroupTypeMessages() { + } + + public static final int CONSTRUCTOR = -1702481123; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class NotificationGroupTypeMentions extends NotificationGroupType { + public NotificationGroupTypeMentions() { + } + + public static final int CONSTRUCTOR = -2050324051; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class NotificationGroupTypeSecretChat extends NotificationGroupType { + public NotificationGroupTypeSecretChat() { + } + + public static final int CONSTRUCTOR = 1390759476; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class NotificationGroupTypeCalls extends NotificationGroupType { + public NotificationGroupTypeCalls() { + } + + public static final int CONSTRUCTOR = 1379123538; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public abstract static class NotificationSettingsScope extends Object { + + public NotificationSettingsScope() { + } + } + + public static class NotificationSettingsScopePrivateChats extends NotificationSettingsScope { + public NotificationSettingsScopePrivateChats() { + } + + public static final int CONSTRUCTOR = 937446759; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class NotificationSettingsScopeGroupChats extends NotificationSettingsScope { + public NotificationSettingsScopeGroupChats() { + } + + public static final int CONSTRUCTOR = 1212142067; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class NotificationSettingsScopeChannelChats extends NotificationSettingsScope { + public NotificationSettingsScopeChannelChats() { + } + + public static final int CONSTRUCTOR = 548013448; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class NotificationSound extends Object { + + public long id; + + public int duration; + + public int date; + + public String title; + + public String data; + + public File sound; + + public NotificationSound() { + } + + public NotificationSound(long id, int duration, int date, String title, String data, File sound) { + this.id = id; + this.duration = duration; + this.date = date; + this.title = title; + this.data = data; + this.sound = sound; + } + + public static final int CONSTRUCTOR = -185638601; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class NotificationSounds extends Object { + + public NotificationSound[] notificationSounds; + + public NotificationSounds() { + } + + public NotificationSounds(NotificationSound[] notificationSounds) { + this.notificationSounds = notificationSounds; + } + + public static final int CONSTRUCTOR = -630813169; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public abstract static class NotificationType extends Object { + + public NotificationType() { + } + } + + public static class NotificationTypeNewMessage extends NotificationType { + + public Message message; + + public boolean showPreview; + + public NotificationTypeNewMessage() { + } + + public NotificationTypeNewMessage(Message message, boolean showPreview) { + this.message = message; + this.showPreview = showPreview; + } + + public static final int CONSTRUCTOR = -254745614; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class NotificationTypeNewSecretChat extends NotificationType { + public NotificationTypeNewSecretChat() { + } + + public static final int CONSTRUCTOR = 1198638768; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class NotificationTypeNewCall extends NotificationType { + + public int callId; + + public NotificationTypeNewCall() { + } + + public NotificationTypeNewCall(int callId) { + this.callId = callId; + } + + public static final int CONSTRUCTOR = 1712734585; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class NotificationTypeNewPushMessage extends NotificationType { + + public long messageId; + + public MessageSender senderId; + + public String senderName; + + public boolean isOutgoing; + + public PushMessageContent content; + + public NotificationTypeNewPushMessage() { + } + + public NotificationTypeNewPushMessage(long messageId, MessageSender senderId, String senderName, boolean isOutgoing, PushMessageContent content) { + this.messageId = messageId; + this.senderId = senderId; + this.senderName = senderName; + this.isOutgoing = isOutgoing; + this.content = content; + } + + public static final int CONSTRUCTOR = -711680462; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class Ok extends Object { + public Ok() { + } + + public static final int CONSTRUCTOR = -722616727; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public abstract static class OptionValue extends Object { + + public OptionValue() { + } + } + + public static class OptionValueBoolean extends OptionValue { + + public boolean value; + + public OptionValueBoolean() { + } + + public OptionValueBoolean(boolean value) { + this.value = value; + } + + public static final int CONSTRUCTOR = 63135518; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class OptionValueEmpty extends OptionValue { + public OptionValueEmpty() { + } + + public static final int CONSTRUCTOR = 918955155; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class OptionValueInteger extends OptionValue { + + public long value; + + public OptionValueInteger() { + } + + public OptionValueInteger(long value) { + this.value = value; + } + + public static final int CONSTRUCTOR = -186858780; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class OptionValueString extends OptionValue { + + public String value; + + public OptionValueString() { + } + + public OptionValueString(String value) { + this.value = value; + } + + public static final int CONSTRUCTOR = 756248212; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class OrderInfo extends Object { + + public String name; + + public String phoneNumber; + + public String emailAddress; + + public Address shippingAddress; + + public OrderInfo() { + } + + public OrderInfo(String name, String phoneNumber, String emailAddress, Address shippingAddress) { + this.name = name; + this.phoneNumber = phoneNumber; + this.emailAddress = emailAddress; + this.shippingAddress = shippingAddress; + } + + public static final int CONSTRUCTOR = 783997294; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class Outline extends Object { + + public ClosedVectorPath[] paths; + + public Outline() { + } + + public Outline(ClosedVectorPath[] paths) { + this.paths = paths; + } + + public static final int CONSTRUCTOR = -161506702; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public abstract static class PageBlock extends Object { + + public PageBlock() { + } + } + + public static class PageBlockTitle extends PageBlock { + + public RichText title; + + public PageBlockTitle() { + } + + public PageBlockTitle(RichText title) { + this.title = title; + } + + public static final int CONSTRUCTOR = 1629664784; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class PageBlockSubtitle extends PageBlock { + + public RichText subtitle; + + public PageBlockSubtitle() { + } + + public PageBlockSubtitle(RichText subtitle) { + this.subtitle = subtitle; + } + + public static final int CONSTRUCTOR = 264524263; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class PageBlockAuthorDate extends PageBlock { + + public RichText author; + + public int publishDate; + + public PageBlockAuthorDate() { + } + + public PageBlockAuthorDate(RichText author, int publishDate) { + this.author = author; + this.publishDate = publishDate; + } + + public static final int CONSTRUCTOR = 1300231184; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class PageBlockHeader extends PageBlock { + + public RichText header; + + public PageBlockHeader() { + } + + public PageBlockHeader(RichText header) { + this.header = header; + } + + public static final int CONSTRUCTOR = 1402854811; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class PageBlockSubheader extends PageBlock { + + public RichText subheader; + + public PageBlockSubheader() { + } + + public PageBlockSubheader(RichText subheader) { + this.subheader = subheader; + } + + public static final int CONSTRUCTOR = 1263956774; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class PageBlockKicker extends PageBlock { + + public RichText kicker; + + public PageBlockKicker() { + } + + public PageBlockKicker(RichText kicker) { + this.kicker = kicker; + } + + public static final int CONSTRUCTOR = 1361282635; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class PageBlockParagraph extends PageBlock { + + public RichText text; + + public PageBlockParagraph() { + } + + public PageBlockParagraph(RichText text) { + this.text = text; + } + + public static final int CONSTRUCTOR = 1182402406; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class PageBlockPreformatted extends PageBlock { + + public RichText text; + + public String language; + + public PageBlockPreformatted() { + } + + public PageBlockPreformatted(RichText text, String language) { + this.text = text; + this.language = language; + } + + public static final int CONSTRUCTOR = -1066346178; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class PageBlockFooter extends PageBlock { + + public RichText footer; + + public PageBlockFooter() { + } + + public PageBlockFooter(RichText footer) { + this.footer = footer; + } + + public static final int CONSTRUCTOR = 886429480; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class PageBlockDivider extends PageBlock { + public PageBlockDivider() { + } + + public static final int CONSTRUCTOR = -618614392; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class PageBlockAnchor extends PageBlock { + + public String name; + + public PageBlockAnchor() { + } + + public PageBlockAnchor(String name) { + this.name = name; + } + + public static final int CONSTRUCTOR = -837994576; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class PageBlockList extends PageBlock { + + public PageBlockListItem[] items; + + public PageBlockList() { + } + + public PageBlockList(PageBlockListItem[] items) { + this.items = items; + } + + public static final int CONSTRUCTOR = -1037074852; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class PageBlockBlockQuote extends PageBlock { + + public RichText text; + + public RichText credit; + + public PageBlockBlockQuote() { + } + + public PageBlockBlockQuote(RichText text, RichText credit) { + this.text = text; + this.credit = credit; + } + + public static final int CONSTRUCTOR = 1657834142; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class PageBlockPullQuote extends PageBlock { + + public RichText text; + + public RichText credit; + + public PageBlockPullQuote() { + } + + public PageBlockPullQuote(RichText text, RichText credit) { + this.text = text; + this.credit = credit; + } + + public static final int CONSTRUCTOR = 490242317; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class PageBlockAnimation extends PageBlock { + + public Animation animation; + + public PageBlockCaption caption; + + public boolean needAutoplay; + + public PageBlockAnimation() { + } + + public PageBlockAnimation(Animation animation, PageBlockCaption caption, boolean needAutoplay) { + this.animation = animation; + this.caption = caption; + this.needAutoplay = needAutoplay; + } + + public static final int CONSTRUCTOR = 1355669513; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class PageBlockAudio extends PageBlock { + + public Audio audio; + + public PageBlockCaption caption; + + public PageBlockAudio() { + } + + public PageBlockAudio(Audio audio, PageBlockCaption caption) { + this.audio = audio; + this.caption = caption; + } + + public static final int CONSTRUCTOR = -63371245; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class PageBlockPhoto extends PageBlock { + + public Photo photo; + + public PageBlockCaption caption; + + public String url; + + public PageBlockPhoto() { + } + + public PageBlockPhoto(Photo photo, PageBlockCaption caption, String url) { + this.photo = photo; + this.caption = caption; + this.url = url; + } + + public static final int CONSTRUCTOR = 417601156; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class PageBlockVideo extends PageBlock { + + public Video video; + + public PageBlockCaption caption; + + public boolean needAutoplay; + + public boolean isLooped; + + public PageBlockVideo() { + } + + public PageBlockVideo(Video video, PageBlockCaption caption, boolean needAutoplay, boolean isLooped) { + this.video = video; + this.caption = caption; + this.needAutoplay = needAutoplay; + this.isLooped = isLooped; + } + + public static final int CONSTRUCTOR = 510041394; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class PageBlockVoiceNote extends PageBlock { + + public VoiceNote voiceNote; + + public PageBlockCaption caption; + + public PageBlockVoiceNote() { + } + + public PageBlockVoiceNote(VoiceNote voiceNote, PageBlockCaption caption) { + this.voiceNote = voiceNote; + this.caption = caption; + } + + public static final int CONSTRUCTOR = 1823310463; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class PageBlockCover extends PageBlock { + + public PageBlock cover; + + public PageBlockCover() { + } + + public PageBlockCover(PageBlock cover) { + this.cover = cover; + } + + public static final int CONSTRUCTOR = 972174080; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class PageBlockEmbedded extends PageBlock { + + public String url; + + public String html; + + public Photo posterPhoto; + + public int width; + + public int height; + + public PageBlockCaption caption; + + public boolean isFullWidth; + + public boolean allowScrolling; + + public PageBlockEmbedded() { + } + + public PageBlockEmbedded(String url, String html, Photo posterPhoto, int width, int height, PageBlockCaption caption, boolean isFullWidth, boolean allowScrolling) { + this.url = url; + this.html = html; + this.posterPhoto = posterPhoto; + this.width = width; + this.height = height; + this.caption = caption; + this.isFullWidth = isFullWidth; + this.allowScrolling = allowScrolling; + } + + public static final int CONSTRUCTOR = -1942577763; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class PageBlockEmbeddedPost extends PageBlock { + + public String url; + + public String author; + + public Photo authorPhoto; + + public int date; + + public PageBlock[] pageBlocks; + + public PageBlockCaption caption; + + public PageBlockEmbeddedPost() { + } + + public PageBlockEmbeddedPost(String url, String author, Photo authorPhoto, int date, PageBlock[] pageBlocks, PageBlockCaption caption) { + this.url = url; + this.author = author; + this.authorPhoto = authorPhoto; + this.date = date; + this.pageBlocks = pageBlocks; + this.caption = caption; + } + + public static final int CONSTRUCTOR = 397600949; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class PageBlockCollage extends PageBlock { + + public PageBlock[] pageBlocks; + + public PageBlockCaption caption; + + public PageBlockCollage() { + } + + public PageBlockCollage(PageBlock[] pageBlocks, PageBlockCaption caption) { + this.pageBlocks = pageBlocks; + this.caption = caption; + } + + public static final int CONSTRUCTOR = 1163760110; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class PageBlockSlideshow extends PageBlock { + + public PageBlock[] pageBlocks; + + public PageBlockCaption caption; + + public PageBlockSlideshow() { + } + + public PageBlockSlideshow(PageBlock[] pageBlocks, PageBlockCaption caption) { + this.pageBlocks = pageBlocks; + this.caption = caption; + } + + public static final int CONSTRUCTOR = 539217375; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class PageBlockChatLink extends PageBlock { + + public String title; + + public ChatPhotoInfo photo; + + public int accentColorId; + + public String username; + + public PageBlockChatLink() { + } + + public PageBlockChatLink(String title, ChatPhotoInfo photo, int accentColorId, String username) { + this.title = title; + this.photo = photo; + this.accentColorId = accentColorId; + this.username = username; + } + + public static final int CONSTRUCTOR = 1646188731; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class PageBlockTable extends PageBlock { + + public RichText caption; + + public PageBlockTableCell[][] cells; + + public boolean isBordered; + + public boolean isStriped; + + public PageBlockTable() { + } + + public PageBlockTable(RichText caption, PageBlockTableCell[][] cells, boolean isBordered, boolean isStriped) { + this.caption = caption; + this.cells = cells; + this.isBordered = isBordered; + this.isStriped = isStriped; + } + + public static final int CONSTRUCTOR = -942649288; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class PageBlockDetails extends PageBlock { + + public RichText header; + + public PageBlock[] pageBlocks; + + public boolean isOpen; + + public PageBlockDetails() { + } + + public PageBlockDetails(RichText header, PageBlock[] pageBlocks, boolean isOpen) { + this.header = header; + this.pageBlocks = pageBlocks; + this.isOpen = isOpen; + } + + public static final int CONSTRUCTOR = -1599869809; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class PageBlockRelatedArticles extends PageBlock { + + public RichText header; + + public PageBlockRelatedArticle[] articles; + + public PageBlockRelatedArticles() { + } + + public PageBlockRelatedArticles(RichText header, PageBlockRelatedArticle[] articles) { + this.header = header; + this.articles = articles; + } + + public static final int CONSTRUCTOR = -1807324374; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class PageBlockMap extends PageBlock { + + public Location location; + + public int zoom; + + public int width; + + public int height; + + public PageBlockCaption caption; + + public PageBlockMap() { + } + + public PageBlockMap(Location location, int zoom, int width, int height, PageBlockCaption caption) { + this.location = location; + this.zoom = zoom; + this.width = width; + this.height = height; + this.caption = caption; + } + + public static final int CONSTRUCTOR = 1510961171; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class PageBlockCaption extends Object { + + public RichText text; + + public RichText credit; + + public PageBlockCaption() { + } + + public PageBlockCaption(RichText text, RichText credit) { + this.text = text; + this.credit = credit; + } + + public static final int CONSTRUCTOR = -1180064650; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public abstract static class PageBlockHorizontalAlignment extends Object { + + public PageBlockHorizontalAlignment() { + } + } + + public static class PageBlockHorizontalAlignmentLeft extends PageBlockHorizontalAlignment { + public PageBlockHorizontalAlignmentLeft() { + } + + public static final int CONSTRUCTOR = 848701417; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class PageBlockHorizontalAlignmentCenter extends PageBlockHorizontalAlignment { + public PageBlockHorizontalAlignmentCenter() { + } + + public static final int CONSTRUCTOR = -1009203990; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class PageBlockHorizontalAlignmentRight extends PageBlockHorizontalAlignment { + public PageBlockHorizontalAlignmentRight() { + } + + public static final int CONSTRUCTOR = 1371369214; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class PageBlockListItem extends Object { + + public String label; + + public PageBlock[] pageBlocks; + + public PageBlockListItem() { + } + + public PageBlockListItem(String label, PageBlock[] pageBlocks) { + this.label = label; + this.pageBlocks = pageBlocks; + } + + public static final int CONSTRUCTOR = 323186259; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class PageBlockRelatedArticle extends Object { + + public String url; + + public String title; + + public String description; + + public Photo photo; + + public String author; + + public int publishDate; + + public PageBlockRelatedArticle() { + } + + public PageBlockRelatedArticle(String url, String title, String description, Photo photo, String author, int publishDate) { + this.url = url; + this.title = title; + this.description = description; + this.photo = photo; + this.author = author; + this.publishDate = publishDate; + } + + public static final int CONSTRUCTOR = 481199251; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class PageBlockTableCell extends Object { + + public RichText text; + + public boolean isHeader; + + public int colspan; + + public int rowspan; + + public PageBlockHorizontalAlignment align; + + public PageBlockVerticalAlignment valign; + + public PageBlockTableCell() { + } + + public PageBlockTableCell(RichText text, boolean isHeader, int colspan, int rowspan, PageBlockHorizontalAlignment align, PageBlockVerticalAlignment valign) { + this.text = text; + this.isHeader = isHeader; + this.colspan = colspan; + this.rowspan = rowspan; + this.align = align; + this.valign = valign; + } + + public static final int CONSTRUCTOR = 1417658214; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public abstract static class PageBlockVerticalAlignment extends Object { + + public PageBlockVerticalAlignment() { + } + } + + public static class PageBlockVerticalAlignmentTop extends PageBlockVerticalAlignment { + public PageBlockVerticalAlignmentTop() { + } + + public static final int CONSTRUCTOR = 195500454; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class PageBlockVerticalAlignmentMiddle extends PageBlockVerticalAlignment { + public PageBlockVerticalAlignmentMiddle() { + } + + public static final int CONSTRUCTOR = -2123096587; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class PageBlockVerticalAlignmentBottom extends PageBlockVerticalAlignment { + public PageBlockVerticalAlignmentBottom() { + } + + public static final int CONSTRUCTOR = 2092531158; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public abstract static class PaidMedia extends Object { + + public PaidMedia() { + } + } + + public static class PaidMediaPreview extends PaidMedia { + + public int width; + + public int height; + + public int duration; + + public Minithumbnail minithumbnail; + + public PaidMediaPreview() { + } + + public PaidMediaPreview(int width, int height, int duration, Minithumbnail minithumbnail) { + this.width = width; + this.height = height; + this.duration = duration; + this.minithumbnail = minithumbnail; + } + + public static final int CONSTRUCTOR = -1128151948; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class PaidMediaPhoto extends PaidMedia { + + public Photo photo; + + public PaidMediaPhoto() { + } + + public PaidMediaPhoto(Photo photo) { + this.photo = photo; + } + + public static final int CONSTRUCTOR = -1165863654; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class PaidMediaVideo extends PaidMedia { + + public Video video; + + public PaidMediaVideo() { + } + + public PaidMediaVideo(Video video) { + this.video = video; + } + + public static final int CONSTRUCTOR = 464858633; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class PaidMediaUnsupported extends PaidMedia { + public PaidMediaUnsupported() { + } + + public static final int CONSTRUCTOR = 112999974; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class PaidReactor extends Object { + + public MessageSender senderId; + + public int starCount; + + public boolean isTop; + + public boolean isMe; + + public boolean isAnonymous; + + public PaidReactor() { + } + + public PaidReactor(MessageSender senderId, int starCount, boolean isTop, boolean isMe, boolean isAnonymous) { + this.senderId = senderId; + this.starCount = starCount; + this.isTop = isTop; + this.isMe = isMe; + this.isAnonymous = isAnonymous; + } + + public static final int CONSTRUCTOR = -1657303032; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class PassportAuthorizationForm extends Object { + + public int id; + + public PassportRequiredElement[] requiredElements; + + public String privacyPolicyUrl; + + public PassportAuthorizationForm() { + } + + public PassportAuthorizationForm(int id, PassportRequiredElement[] requiredElements, String privacyPolicyUrl) { + this.id = id; + this.requiredElements = requiredElements; + this.privacyPolicyUrl = privacyPolicyUrl; + } + + public static final int CONSTRUCTOR = -1070673218; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public abstract static class PassportElement extends Object { + + public PassportElement() { + } + } + + public static class PassportElementPersonalDetails extends PassportElement { + + public PersonalDetails personalDetails; + + public PassportElementPersonalDetails() { + } + + public PassportElementPersonalDetails(PersonalDetails personalDetails) { + this.personalDetails = personalDetails; + } + + public static final int CONSTRUCTOR = 1217724035; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class PassportElementPassport extends PassportElement { + + public IdentityDocument passport; + + public PassportElementPassport() { + } + + public PassportElementPassport(IdentityDocument passport) { + this.passport = passport; + } + + public static final int CONSTRUCTOR = -263985373; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class PassportElementDriverLicense extends PassportElement { + + public IdentityDocument driverLicense; + + public PassportElementDriverLicense() { + } + + public PassportElementDriverLicense(IdentityDocument driverLicense) { + this.driverLicense = driverLicense; + } + + public static final int CONSTRUCTOR = 1643580589; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class PassportElementIdentityCard extends PassportElement { + + public IdentityDocument identityCard; + + public PassportElementIdentityCard() { + } + + public PassportElementIdentityCard(IdentityDocument identityCard) { + this.identityCard = identityCard; + } + + public static final int CONSTRUCTOR = 2083775797; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class PassportElementInternalPassport extends PassportElement { + + public IdentityDocument internalPassport; + + public PassportElementInternalPassport() { + } + + public PassportElementInternalPassport(IdentityDocument internalPassport) { + this.internalPassport = internalPassport; + } + + public static final int CONSTRUCTOR = 36220295; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class PassportElementAddress extends PassportElement { + + public Address address; + + public PassportElementAddress() { + } + + public PassportElementAddress(Address address) { + this.address = address; + } + + public static final int CONSTRUCTOR = -782625232; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class PassportElementUtilityBill extends PassportElement { + + public PersonalDocument utilityBill; + + public PassportElementUtilityBill() { + } + + public PassportElementUtilityBill(PersonalDocument utilityBill) { + this.utilityBill = utilityBill; + } + + public static final int CONSTRUCTOR = -234611246; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class PassportElementBankStatement extends PassportElement { + + public PersonalDocument bankStatement; + + public PassportElementBankStatement() { + } + + public PassportElementBankStatement(PersonalDocument bankStatement) { + this.bankStatement = bankStatement; + } + + public static final int CONSTRUCTOR = -366464408; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class PassportElementRentalAgreement extends PassportElement { + + public PersonalDocument rentalAgreement; + + public PassportElementRentalAgreement() { + } + + public PassportElementRentalAgreement(PersonalDocument rentalAgreement) { + this.rentalAgreement = rentalAgreement; + } + + public static final int CONSTRUCTOR = -290141400; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class PassportElementPassportRegistration extends PassportElement { + + public PersonalDocument passportRegistration; + + public PassportElementPassportRegistration() { + } + + public PassportElementPassportRegistration(PersonalDocument passportRegistration) { + this.passportRegistration = passportRegistration; + } + + public static final int CONSTRUCTOR = 618323071; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class PassportElementTemporaryRegistration extends PassportElement { + + public PersonalDocument temporaryRegistration; + + public PassportElementTemporaryRegistration() { + } + + public PassportElementTemporaryRegistration(PersonalDocument temporaryRegistration) { + this.temporaryRegistration = temporaryRegistration; + } + + public static final int CONSTRUCTOR = 1237626864; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class PassportElementPhoneNumber extends PassportElement { + + public String phoneNumber; + + public PassportElementPhoneNumber() { + } + + public PassportElementPhoneNumber(String phoneNumber) { + this.phoneNumber = phoneNumber; + } + + public static final int CONSTRUCTOR = -1320118375; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class PassportElementEmailAddress extends PassportElement { + + public String emailAddress; + + public PassportElementEmailAddress() { + } + + public PassportElementEmailAddress(String emailAddress) { + this.emailAddress = emailAddress; + } + + public static final int CONSTRUCTOR = -1528129531; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class PassportElementError extends Object { + + public PassportElementType type; + + public String message; + + public PassportElementErrorSource source; + + public PassportElementError() { + } + + public PassportElementError(PassportElementType type, String message, PassportElementErrorSource source) { + this.type = type; + this.message = message; + this.source = source; + } + + public static final int CONSTRUCTOR = -1861902395; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public abstract static class PassportElementErrorSource extends Object { + + public PassportElementErrorSource() { + } + } + + public static class PassportElementErrorSourceUnspecified extends PassportElementErrorSource { + public PassportElementErrorSourceUnspecified() { + } + + public static final int CONSTRUCTOR = -378320830; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class PassportElementErrorSourceDataField extends PassportElementErrorSource { + + public String fieldName; + + public PassportElementErrorSourceDataField() { + } + + public PassportElementErrorSourceDataField(String fieldName) { + this.fieldName = fieldName; + } + + public static final int CONSTRUCTOR = -308650776; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class PassportElementErrorSourceFrontSide extends PassportElementErrorSource { + public PassportElementErrorSourceFrontSide() { + } + + public static final int CONSTRUCTOR = 1895658292; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class PassportElementErrorSourceReverseSide extends PassportElementErrorSource { + public PassportElementErrorSourceReverseSide() { + } + + public static final int CONSTRUCTOR = 1918630391; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class PassportElementErrorSourceSelfie extends PassportElementErrorSource { + public PassportElementErrorSourceSelfie() { + } + + public static final int CONSTRUCTOR = -797043672; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class PassportElementErrorSourceTranslationFile extends PassportElementErrorSource { + + public int fileIndex; + + public PassportElementErrorSourceTranslationFile() { + } + + public PassportElementErrorSourceTranslationFile(int fileIndex) { + this.fileIndex = fileIndex; + } + + public static final int CONSTRUCTOR = -689621228; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class PassportElementErrorSourceTranslationFiles extends PassportElementErrorSource { + public PassportElementErrorSourceTranslationFiles() { + } + + public static final int CONSTRUCTOR = 581280796; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class PassportElementErrorSourceFile extends PassportElementErrorSource { + + public int fileIndex; + + public PassportElementErrorSourceFile() { + } + + public PassportElementErrorSourceFile(int fileIndex) { + this.fileIndex = fileIndex; + } + + public static final int CONSTRUCTOR = 2020358960; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class PassportElementErrorSourceFiles extends PassportElementErrorSource { + public PassportElementErrorSourceFiles() { + } + + public static final int CONSTRUCTOR = 1894164178; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public abstract static class PassportElementType extends Object { + + public PassportElementType() { + } + } + + public static class PassportElementTypePersonalDetails extends PassportElementType { + public PassportElementTypePersonalDetails() { + } + + public static final int CONSTRUCTOR = -1032136365; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class PassportElementTypePassport extends PassportElementType { + public PassportElementTypePassport() { + } + + public static final int CONSTRUCTOR = -436360376; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class PassportElementTypeDriverLicense extends PassportElementType { + public PassportElementTypeDriverLicense() { + } + + public static final int CONSTRUCTOR = 1827298379; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class PassportElementTypeIdentityCard extends PassportElementType { + public PassportElementTypeIdentityCard() { + } + + public static final int CONSTRUCTOR = -502356132; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class PassportElementTypeInternalPassport extends PassportElementType { + public PassportElementTypeInternalPassport() { + } + + public static final int CONSTRUCTOR = -793781959; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class PassportElementTypeAddress extends PassportElementType { + public PassportElementTypeAddress() { + } + + public static final int CONSTRUCTOR = 496327874; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class PassportElementTypeUtilityBill extends PassportElementType { + public PassportElementTypeUtilityBill() { + } + + public static final int CONSTRUCTOR = 627084906; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class PassportElementTypeBankStatement extends PassportElementType { + public PassportElementTypeBankStatement() { + } + + public static final int CONSTRUCTOR = 574095667; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class PassportElementTypeRentalAgreement extends PassportElementType { + public PassportElementTypeRentalAgreement() { + } + + public static final int CONSTRUCTOR = -2060583280; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class PassportElementTypePassportRegistration extends PassportElementType { + public PassportElementTypePassportRegistration() { + } + + public static final int CONSTRUCTOR = -159478209; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class PassportElementTypeTemporaryRegistration extends PassportElementType { + public PassportElementTypeTemporaryRegistration() { + } + + public static final int CONSTRUCTOR = 1092498527; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class PassportElementTypePhoneNumber extends PassportElementType { + public PassportElementTypePhoneNumber() { + } + + public static final int CONSTRUCTOR = -995361172; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class PassportElementTypeEmailAddress extends PassportElementType { + public PassportElementTypeEmailAddress() { + } + + public static final int CONSTRUCTOR = -79321405; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class PassportElements extends Object { + + public PassportElement[] elements; + + public PassportElements() { + } + + public PassportElements(PassportElement[] elements) { + this.elements = elements; + } + + public static final int CONSTRUCTOR = 1264617556; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class PassportElementsWithErrors extends Object { + + public PassportElement[] elements; + + public PassportElementError[] errors; + + public PassportElementsWithErrors() { + } + + public PassportElementsWithErrors(PassportElement[] elements, PassportElementError[] errors) { + this.elements = elements; + this.errors = errors; + } + + public static final int CONSTRUCTOR = 1308923044; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class PassportRequiredElement extends Object { + + public PassportSuitableElement[] suitableElements; + + public PassportRequiredElement() { + } + + public PassportRequiredElement(PassportSuitableElement[] suitableElements) { + this.suitableElements = suitableElements; + } + + public static final int CONSTRUCTOR = -1983641651; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class PassportSuitableElement extends Object { + + public PassportElementType type; + + public boolean isSelfieRequired; + + public boolean isTranslationRequired; + + public boolean isNativeNameRequired; + + public PassportSuitableElement() { + } + + public PassportSuitableElement(PassportElementType type, boolean isSelfieRequired, boolean isTranslationRequired, boolean isNativeNameRequired) { + this.type = type; + this.isSelfieRequired = isSelfieRequired; + this.isTranslationRequired = isTranslationRequired; + this.isNativeNameRequired = isNativeNameRequired; + } + + public static final int CONSTRUCTOR = -789019876; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class PasswordState extends Object { + + public boolean hasPassword; + + public String passwordHint; + + public boolean hasRecoveryEmailAddress; + + public boolean hasPassportData; + + public EmailAddressAuthenticationCodeInfo recoveryEmailAddressCodeInfo; + + public String loginEmailAddressPattern; + + public int pendingResetDate; + + public PasswordState() { + } + + public PasswordState(boolean hasPassword, String passwordHint, boolean hasRecoveryEmailAddress, boolean hasPassportData, EmailAddressAuthenticationCodeInfo recoveryEmailAddressCodeInfo, String loginEmailAddressPattern, int pendingResetDate) { + this.hasPassword = hasPassword; + this.passwordHint = passwordHint; + this.hasRecoveryEmailAddress = hasRecoveryEmailAddress; + this.hasPassportData = hasPassportData; + this.recoveryEmailAddressCodeInfo = recoveryEmailAddressCodeInfo; + this.loginEmailAddressPattern = loginEmailAddressPattern; + this.pendingResetDate = pendingResetDate; + } + + public static final int CONSTRUCTOR = 483801128; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class PaymentForm extends Object { + + public long id; + + public PaymentFormType type; + + public long sellerBotUserId; + + public ProductInfo productInfo; + + public PaymentForm() { + } + + public PaymentForm(long id, PaymentFormType type, long sellerBotUserId, ProductInfo productInfo) { + this.id = id; + this.type = type; + this.sellerBotUserId = sellerBotUserId; + this.productInfo = productInfo; + } + + public static final int CONSTRUCTOR = 1998651315; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public abstract static class PaymentFormType extends Object { + + public PaymentFormType() { + } + } + + public static class PaymentFormTypeRegular extends PaymentFormType { + + public Invoice invoice; + + public long paymentProviderUserId; + + public PaymentProvider paymentProvider; + + public PaymentOption[] additionalPaymentOptions; + + public OrderInfo savedOrderInfo; + + public SavedCredentials[] savedCredentials; + + public boolean canSaveCredentials; + + public boolean needPassword; + + public PaymentFormTypeRegular() { + } + + public PaymentFormTypeRegular(Invoice invoice, long paymentProviderUserId, PaymentProvider paymentProvider, PaymentOption[] additionalPaymentOptions, OrderInfo savedOrderInfo, SavedCredentials[] savedCredentials, boolean canSaveCredentials, boolean needPassword) { + this.invoice = invoice; + this.paymentProviderUserId = paymentProviderUserId; + this.paymentProvider = paymentProvider; + this.additionalPaymentOptions = additionalPaymentOptions; + this.savedOrderInfo = savedOrderInfo; + this.savedCredentials = savedCredentials; + this.canSaveCredentials = canSaveCredentials; + this.needPassword = needPassword; + } + + public static final int CONSTRUCTOR = -615089778; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class PaymentFormTypeStars extends PaymentFormType { + + public long starCount; + + public PaymentFormTypeStars() { + } + + public PaymentFormTypeStars(long starCount) { + this.starCount = starCount; + } + + public static final int CONSTRUCTOR = 90938685; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class PaymentFormTypeStarSubscription extends PaymentFormType { + + public StarSubscriptionPricing pricing; + + public PaymentFormTypeStarSubscription() { + } + + public PaymentFormTypeStarSubscription(StarSubscriptionPricing pricing) { + this.pricing = pricing; + } + + public static final int CONSTRUCTOR = 271444827; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class PaymentOption extends Object { + + public String title; + + public String url; + + public PaymentOption() { + } + + public PaymentOption(String title, String url) { + this.title = title; + this.url = url; + } + + public static final int CONSTRUCTOR = -294020965; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public abstract static class PaymentProvider extends Object { + + public PaymentProvider() { + } + } + + public static class PaymentProviderSmartGlocal extends PaymentProvider { + + public String publicToken; + + public String tokenizeUrl; + + public PaymentProviderSmartGlocal() { + } + + public PaymentProviderSmartGlocal(String publicToken, String tokenizeUrl) { + this.publicToken = publicToken; + this.tokenizeUrl = tokenizeUrl; + } + + public static final int CONSTRUCTOR = -1174112396; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class PaymentProviderStripe extends PaymentProvider { + + public String publishableKey; + + public boolean needCountry; + + public boolean needPostalCode; + + public boolean needCardholderName; + + public PaymentProviderStripe() { + } + + public PaymentProviderStripe(String publishableKey, boolean needCountry, boolean needPostalCode, boolean needCardholderName) { + this.publishableKey = publishableKey; + this.needCountry = needCountry; + this.needPostalCode = needPostalCode; + this.needCardholderName = needCardholderName; + } + + public static final int CONSTRUCTOR = 370467227; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class PaymentProviderOther extends PaymentProvider { + + public String url; + + public PaymentProviderOther() { + } + + public PaymentProviderOther(String url) { + this.url = url; + } + + public static final int CONSTRUCTOR = -1336876828; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class PaymentReceipt extends Object { + + public ProductInfo productInfo; + + public int date; + + public long sellerBotUserId; + + public PaymentReceiptType type; + + public PaymentReceipt() { + } + + public PaymentReceipt(ProductInfo productInfo, int date, long sellerBotUserId, PaymentReceiptType type) { + this.productInfo = productInfo; + this.date = date; + this.sellerBotUserId = sellerBotUserId; + this.type = type; + } + + public static final int CONSTRUCTOR = 758199186; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public abstract static class PaymentReceiptType extends Object { + + public PaymentReceiptType() { + } + } + + public static class PaymentReceiptTypeRegular extends PaymentReceiptType { + + public long paymentProviderUserId; + + public Invoice invoice; + + public OrderInfo orderInfo; + + public ShippingOption shippingOption; + + public String credentialsTitle; + + public long tipAmount; + + public PaymentReceiptTypeRegular() { + } + + public PaymentReceiptTypeRegular(long paymentProviderUserId, Invoice invoice, OrderInfo orderInfo, ShippingOption shippingOption, String credentialsTitle, long tipAmount) { + this.paymentProviderUserId = paymentProviderUserId; + this.invoice = invoice; + this.orderInfo = orderInfo; + this.shippingOption = shippingOption; + this.credentialsTitle = credentialsTitle; + this.tipAmount = tipAmount; + } + + public static final int CONSTRUCTOR = -1636362826; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class PaymentReceiptTypeStars extends PaymentReceiptType { + + public long starCount; + + public String transactionId; + + public PaymentReceiptTypeStars() { + } + + public PaymentReceiptTypeStars(long starCount, String transactionId) { + this.starCount = starCount; + this.transactionId = transactionId; + } + + public static final int CONSTRUCTOR = 294913868; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class PaymentResult extends Object { + + public boolean success; + + public String verificationUrl; + + public PaymentResult() { + } + + public PaymentResult(boolean success, String verificationUrl) { + this.success = success; + this.verificationUrl = verificationUrl; + } + + public static final int CONSTRUCTOR = -804263843; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class PersonalDetails extends Object { + + public String firstName; + + public String middleName; + + public String lastName; + + public String nativeFirstName; + + public String nativeMiddleName; + + public String nativeLastName; + + public Date birthdate; + + public String gender; + + public String countryCode; + + public String residenceCountryCode; + + public PersonalDetails() { + } + + public PersonalDetails(String firstName, String middleName, String lastName, String nativeFirstName, String nativeMiddleName, String nativeLastName, Date birthdate, String gender, String countryCode, String residenceCountryCode) { + this.firstName = firstName; + this.middleName = middleName; + this.lastName = lastName; + this.nativeFirstName = nativeFirstName; + this.nativeMiddleName = nativeMiddleName; + this.nativeLastName = nativeLastName; + this.birthdate = birthdate; + this.gender = gender; + this.countryCode = countryCode; + this.residenceCountryCode = residenceCountryCode; + } + + public static final int CONSTRUCTOR = -1061656137; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class PersonalDocument extends Object { + + public DatedFile[] files; + + public DatedFile[] translation; + + public PersonalDocument() { + } + + public PersonalDocument(DatedFile[] files, DatedFile[] translation) { + this.files = files; + this.translation = translation; + } + + public static final int CONSTRUCTOR = -1011634661; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class PhoneNumberAuthenticationSettings extends Object { + + public boolean allowFlashCall; + + public boolean allowMissedCall; + + public boolean isCurrentPhoneNumber; + + public boolean hasUnknownPhoneNumber; + + public boolean allowSmsRetrieverApi; + + public FirebaseAuthenticationSettings firebaseAuthenticationSettings; + + public String[] authenticationTokens; + + public PhoneNumberAuthenticationSettings() { + } + + public PhoneNumberAuthenticationSettings(boolean allowFlashCall, boolean allowMissedCall, boolean isCurrentPhoneNumber, boolean hasUnknownPhoneNumber, boolean allowSmsRetrieverApi, FirebaseAuthenticationSettings firebaseAuthenticationSettings, String[] authenticationTokens) { + this.allowFlashCall = allowFlashCall; + this.allowMissedCall = allowMissedCall; + this.isCurrentPhoneNumber = isCurrentPhoneNumber; + this.hasUnknownPhoneNumber = hasUnknownPhoneNumber; + this.allowSmsRetrieverApi = allowSmsRetrieverApi; + this.firebaseAuthenticationSettings = firebaseAuthenticationSettings; + this.authenticationTokens = authenticationTokens; + } + + public static final int CONSTRUCTOR = 1881885547; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public abstract static class PhoneNumberCodeType extends Object { + + public PhoneNumberCodeType() { + } + } + + public static class PhoneNumberCodeTypeChange extends PhoneNumberCodeType { + public PhoneNumberCodeTypeChange() { + } + + public static final int CONSTRUCTOR = 87144986; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class PhoneNumberCodeTypeVerify extends PhoneNumberCodeType { + public PhoneNumberCodeTypeVerify() { + } + + public static final int CONSTRUCTOR = -1029402661; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class PhoneNumberCodeTypeConfirmOwnership extends PhoneNumberCodeType { + + public String hash; + + public PhoneNumberCodeTypeConfirmOwnership() { + } + + public PhoneNumberCodeTypeConfirmOwnership(String hash) { + this.hash = hash; + } + + public static final int CONSTRUCTOR = -485404696; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class PhoneNumberInfo extends Object { + + public CountryInfo country; + + public String countryCallingCode; + + public String formattedPhoneNumber; + + public boolean isAnonymous; + + public PhoneNumberInfo() { + } + + public PhoneNumberInfo(CountryInfo country, String countryCallingCode, String formattedPhoneNumber, boolean isAnonymous) { + this.country = country; + this.countryCallingCode = countryCallingCode; + this.formattedPhoneNumber = formattedPhoneNumber; + this.isAnonymous = isAnonymous; + } + + public static final int CONSTRUCTOR = -758933343; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class Photo extends Object { + + public boolean hasStickers; + + public Minithumbnail minithumbnail; + + public PhotoSize[] sizes; + + public Photo() { + } + + public Photo(boolean hasStickers, Minithumbnail minithumbnail, PhotoSize[] sizes) { + this.hasStickers = hasStickers; + this.minithumbnail = minithumbnail; + this.sizes = sizes; + } + + public static final int CONSTRUCTOR = -2022871583; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class PhotoSize extends Object { + + public String type; + + public File photo; + + public int width; + + public int height; + + public int[] progressiveSizes; + + public PhotoSize() { + } + + public PhotoSize(String type, File photo, int width, int height, int[] progressiveSizes) { + this.type = type; + this.photo = photo; + this.width = width; + this.height = height; + this.progressiveSizes = progressiveSizes; + } + + public static final int CONSTRUCTOR = 1609182352; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class Point extends Object { + + public double x; + + public double y; + + public Point() { + } + + public Point(double x, double y) { + this.x = x; + this.y = y; + } + + public static final int CONSTRUCTOR = 437515705; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class Poll extends Object { + + public long id; + + public FormattedText question; + + public PollOption[] options; + + public int totalVoterCount; + + public MessageSender[] recentVoterIds; + + public boolean isAnonymous; + + public PollType type; + + public int openPeriod; + + public int closeDate; + + public boolean isClosed; + + public Poll() { + } + + public Poll(long id, FormattedText question, PollOption[] options, int totalVoterCount, MessageSender[] recentVoterIds, boolean isAnonymous, PollType type, int openPeriod, int closeDate, boolean isClosed) { + this.id = id; + this.question = question; + this.options = options; + this.totalVoterCount = totalVoterCount; + this.recentVoterIds = recentVoterIds; + this.isAnonymous = isAnonymous; + this.type = type; + this.openPeriod = openPeriod; + this.closeDate = closeDate; + this.isClosed = isClosed; + } + + public static final int CONSTRUCTOR = 1913016502; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class PollOption extends Object { + + public FormattedText text; + + public int voterCount; + + public int votePercentage; + + public boolean isChosen; + + public boolean isBeingChosen; + + public PollOption() { + } + + public PollOption(FormattedText text, int voterCount, int votePercentage, boolean isChosen, boolean isBeingChosen) { + this.text = text; + this.voterCount = voterCount; + this.votePercentage = votePercentage; + this.isChosen = isChosen; + this.isBeingChosen = isBeingChosen; + } + + public static final int CONSTRUCTOR = 1676243088; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public abstract static class PollType extends Object { + + public PollType() { + } + } + + public static class PollTypeRegular extends PollType { + + public boolean allowMultipleAnswers; + + public PollTypeRegular() { + } + + public PollTypeRegular(boolean allowMultipleAnswers) { + this.allowMultipleAnswers = allowMultipleAnswers; + } + + public static final int CONSTRUCTOR = 641265698; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class PollTypeQuiz extends PollType { + + public int correctOptionId; + + public FormattedText explanation; + + public PollTypeQuiz() { + } + + public PollTypeQuiz(int correctOptionId, FormattedText explanation) { + this.correctOptionId = correctOptionId; + this.explanation = explanation; + } + + public static final int CONSTRUCTOR = 657013913; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public abstract static class PremiumFeature extends Object { + + public PremiumFeature() { + } + } + + public static class PremiumFeatureIncreasedLimits extends PremiumFeature { + public PremiumFeatureIncreasedLimits() { + } + + public static final int CONSTRUCTOR = 1785455031; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class PremiumFeatureIncreasedUploadFileSize extends PremiumFeature { + public PremiumFeatureIncreasedUploadFileSize() { + } + + public static final int CONSTRUCTOR = 1825367155; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class PremiumFeatureImprovedDownloadSpeed extends PremiumFeature { + public PremiumFeatureImprovedDownloadSpeed() { + } + + public static final int CONSTRUCTOR = -267695554; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class PremiumFeatureVoiceRecognition extends PremiumFeature { + public PremiumFeatureVoiceRecognition() { + } + + public static final int CONSTRUCTOR = 1288216542; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class PremiumFeatureDisabledAds extends PremiumFeature { + public PremiumFeatureDisabledAds() { + } + + public static final int CONSTRUCTOR = -2008587702; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class PremiumFeatureUniqueReactions extends PremiumFeature { + public PremiumFeatureUniqueReactions() { + } + + public static final int CONSTRUCTOR = 766750743; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class PremiumFeatureUniqueStickers extends PremiumFeature { + public PremiumFeatureUniqueStickers() { + } + + public static final int CONSTRUCTOR = -2101773312; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class PremiumFeatureCustomEmoji extends PremiumFeature { + public PremiumFeatureCustomEmoji() { + } + + public static final int CONSTRUCTOR = 1332599628; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class PremiumFeatureAdvancedChatManagement extends PremiumFeature { + public PremiumFeatureAdvancedChatManagement() { + } + + public static final int CONSTRUCTOR = 796347674; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class PremiumFeatureProfileBadge extends PremiumFeature { + public PremiumFeatureProfileBadge() { + } + + public static final int CONSTRUCTOR = 233648322; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class PremiumFeatureEmojiStatus extends PremiumFeature { + public PremiumFeatureEmojiStatus() { + } + + public static final int CONSTRUCTOR = -36516639; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class PremiumFeatureAnimatedProfilePhoto extends PremiumFeature { + public PremiumFeatureAnimatedProfilePhoto() { + } + + public static final int CONSTRUCTOR = -100741914; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class PremiumFeatureForumTopicIcon extends PremiumFeature { + public PremiumFeatureForumTopicIcon() { + } + + public static final int CONSTRUCTOR = -823172286; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class PremiumFeatureAppIcons extends PremiumFeature { + public PremiumFeatureAppIcons() { + } + + public static final int CONSTRUCTOR = 1585050761; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class PremiumFeatureRealTimeChatTranslation extends PremiumFeature { + public PremiumFeatureRealTimeChatTranslation() { + } + + public static final int CONSTRUCTOR = -1143471488; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class PremiumFeatureUpgradedStories extends PremiumFeature { + public PremiumFeatureUpgradedStories() { + } + + public static final int CONSTRUCTOR = -1878522597; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class PremiumFeatureChatBoost extends PremiumFeature { + public PremiumFeatureChatBoost() { + } + + public static final int CONSTRUCTOR = 1576574747; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class PremiumFeatureAccentColor extends PremiumFeature { + public PremiumFeatureAccentColor() { + } + + public static final int CONSTRUCTOR = 907724190; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class PremiumFeatureBackgroundForBoth extends PremiumFeature { + public PremiumFeatureBackgroundForBoth() { + } + + public static final int CONSTRUCTOR = 575074042; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class PremiumFeatureSavedMessagesTags extends PremiumFeature { + public PremiumFeatureSavedMessagesTags() { + } + + public static final int CONSTRUCTOR = 1003219334; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class PremiumFeatureMessagePrivacy extends PremiumFeature { + public PremiumFeatureMessagePrivacy() { + } + + public static final int CONSTRUCTOR = 802322678; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class PremiumFeatureLastSeenTimes extends PremiumFeature { + public PremiumFeatureLastSeenTimes() { + } + + public static final int CONSTRUCTOR = -762230129; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class PremiumFeatureBusiness extends PremiumFeature { + public PremiumFeatureBusiness() { + } + + public static final int CONSTRUCTOR = -1503619324; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class PremiumFeatureMessageEffects extends PremiumFeature { + public PremiumFeatureMessageEffects() { + } + + public static final int CONSTRUCTOR = -723300255; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class PremiumFeaturePromotionAnimation extends Object { + + public PremiumFeature feature; + + public Animation animation; + + public PremiumFeaturePromotionAnimation() { + } + + public PremiumFeaturePromotionAnimation(PremiumFeature feature, Animation animation) { + this.feature = feature; + this.animation = animation; + } + + public static final int CONSTRUCTOR = -1986155748; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class PremiumFeatures extends Object { + + public PremiumFeature[] features; + + public PremiumLimit[] limits; + + public InternalLinkType paymentLink; + + public PremiumFeatures() { + } + + public PremiumFeatures(PremiumFeature[] features, PremiumLimit[] limits, InternalLinkType paymentLink) { + this.features = features; + this.limits = limits; + this.paymentLink = paymentLink; + } + + public static final int CONSTRUCTOR = 1875162172; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class PremiumGiftCodeInfo extends Object { + + public MessageSender creatorId; + + public int creationDate; + + public boolean isFromGiveaway; + + public long giveawayMessageId; + + public int monthCount; + + public long userId; + + public int useDate; + + public PremiumGiftCodeInfo() { + } + + public PremiumGiftCodeInfo(MessageSender creatorId, int creationDate, boolean isFromGiveaway, long giveawayMessageId, int monthCount, long userId, int useDate) { + this.creatorId = creatorId; + this.creationDate = creationDate; + this.isFromGiveaway = isFromGiveaway; + this.giveawayMessageId = giveawayMessageId; + this.monthCount = monthCount; + this.userId = userId; + this.useDate = useDate; + } + + public static final int CONSTRUCTOR = -1198544674; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class PremiumGiftCodePaymentOption extends Object { + + public String currency; + + public long amount; + + public int discountPercentage; + + public int winnerCount; + + public int monthCount; + + public String storeProductId; + + public int storeProductQuantity; + + public Sticker sticker; + + public PremiumGiftCodePaymentOption() { + } + + public PremiumGiftCodePaymentOption(String currency, long amount, int discountPercentage, int winnerCount, int monthCount, String storeProductId, int storeProductQuantity, Sticker sticker) { + this.currency = currency; + this.amount = amount; + this.discountPercentage = discountPercentage; + this.winnerCount = winnerCount; + this.monthCount = monthCount; + this.storeProductId = storeProductId; + this.storeProductQuantity = storeProductQuantity; + this.sticker = sticker; + } + + public static final int CONSTRUCTOR = -661038611; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class PremiumGiftCodePaymentOptions extends Object { + + public PremiumGiftCodePaymentOption[] options; + + public PremiumGiftCodePaymentOptions() { + } + + public PremiumGiftCodePaymentOptions(PremiumGiftCodePaymentOption[] options) { + this.options = options; + } + + public static final int CONSTRUCTOR = -1141866719; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class PremiumLimit extends Object { + + public PremiumLimitType type; + + public int defaultValue; + + public int premiumValue; + + public PremiumLimit() { + } + + public PremiumLimit(PremiumLimitType type, int defaultValue, int premiumValue) { + this.type = type; + this.defaultValue = defaultValue; + this.premiumValue = premiumValue; + } + + public static final int CONSTRUCTOR = 2127786726; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public abstract static class PremiumLimitType extends Object { + + public PremiumLimitType() { + } + } + + public static class PremiumLimitTypeSupergroupCount extends PremiumLimitType { + public PremiumLimitTypeSupergroupCount() { + } + + public static final int CONSTRUCTOR = -247467131; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class PremiumLimitTypePinnedChatCount extends PremiumLimitType { + public PremiumLimitTypePinnedChatCount() { + } + + public static final int CONSTRUCTOR = -998947871; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class PremiumLimitTypeCreatedPublicChatCount extends PremiumLimitType { + public PremiumLimitTypeCreatedPublicChatCount() { + } + + public static final int CONSTRUCTOR = 446086841; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class PremiumLimitTypeSavedAnimationCount extends PremiumLimitType { + public PremiumLimitTypeSavedAnimationCount() { + } + + public static final int CONSTRUCTOR = -19759735; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class PremiumLimitTypeFavoriteStickerCount extends PremiumLimitType { + public PremiumLimitTypeFavoriteStickerCount() { + } + + public static final int CONSTRUCTOR = 639754787; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class PremiumLimitTypeChatFolderCount extends PremiumLimitType { + public PremiumLimitTypeChatFolderCount() { + } + + public static final int CONSTRUCTOR = 377489774; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class PremiumLimitTypeChatFolderChosenChatCount extends PremiumLimitType { + public PremiumLimitTypeChatFolderChosenChatCount() { + } + + public static final int CONSTRUCTOR = 1691435861; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class PremiumLimitTypePinnedArchivedChatCount extends PremiumLimitType { + public PremiumLimitTypePinnedArchivedChatCount() { + } + + public static final int CONSTRUCTOR = 1485515276; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class PremiumLimitTypePinnedSavedMessagesTopicCount extends PremiumLimitType { + public PremiumLimitTypePinnedSavedMessagesTopicCount() { + } + + public static final int CONSTRUCTOR = -1544854305; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class PremiumLimitTypeCaptionLength extends PremiumLimitType { + public PremiumLimitTypeCaptionLength() { + } + + public static final int CONSTRUCTOR = 293984314; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class PremiumLimitTypeBioLength extends PremiumLimitType { + public PremiumLimitTypeBioLength() { + } + + public static final int CONSTRUCTOR = -1146976765; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class PremiumLimitTypeChatFolderInviteLinkCount extends PremiumLimitType { + public PremiumLimitTypeChatFolderInviteLinkCount() { + } + + public static final int CONSTRUCTOR = -128702950; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class PremiumLimitTypeShareableChatFolderCount extends PremiumLimitType { + public PremiumLimitTypeShareableChatFolderCount() { + } + + public static final int CONSTRUCTOR = 1612625095; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class PremiumLimitTypeActiveStoryCount extends PremiumLimitType { + public PremiumLimitTypeActiveStoryCount() { + } + + public static final int CONSTRUCTOR = -1926486372; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class PremiumLimitTypeWeeklySentStoryCount extends PremiumLimitType { + public PremiumLimitTypeWeeklySentStoryCount() { + } + + public static final int CONSTRUCTOR = 40485707; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class PremiumLimitTypeMonthlySentStoryCount extends PremiumLimitType { + public PremiumLimitTypeMonthlySentStoryCount() { + } + + public static final int CONSTRUCTOR = 819481475; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class PremiumLimitTypeStoryCaptionLength extends PremiumLimitType { + public PremiumLimitTypeStoryCaptionLength() { + } + + public static final int CONSTRUCTOR = -1093324030; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class PremiumLimitTypeStorySuggestedReactionAreaCount extends PremiumLimitType { + public PremiumLimitTypeStorySuggestedReactionAreaCount() { + } + + public static final int CONSTRUCTOR = -1170032633; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class PremiumLimitTypeSimilarChatCount extends PremiumLimitType { + public PremiumLimitTypeSimilarChatCount() { + } + + public static final int CONSTRUCTOR = -1563549935; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class PremiumPaymentOption extends Object { + + public String currency; + + public long amount; + + public int discountPercentage; + + public int monthCount; + + public String storeProductId; + + public InternalLinkType paymentLink; + + public PremiumPaymentOption() { + } + + public PremiumPaymentOption(String currency, long amount, int discountPercentage, int monthCount, String storeProductId, InternalLinkType paymentLink) { + this.currency = currency; + this.amount = amount; + this.discountPercentage = discountPercentage; + this.monthCount = monthCount; + this.storeProductId = storeProductId; + this.paymentLink = paymentLink; + } + + public static final int CONSTRUCTOR = -1945346126; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public abstract static class PremiumSource extends Object { + + public PremiumSource() { + } + } + + public static class PremiumSourceLimitExceeded extends PremiumSource { + + public PremiumLimitType limitType; + + public PremiumSourceLimitExceeded() { + } + + public PremiumSourceLimitExceeded(PremiumLimitType limitType) { + this.limitType = limitType; + } + + public static final int CONSTRUCTOR = -2052159742; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class PremiumSourceFeature extends PremiumSource { + + public PremiumFeature feature; + + public PremiumSourceFeature() { + } + + public PremiumSourceFeature(PremiumFeature feature) { + this.feature = feature; + } + + public static final int CONSTRUCTOR = 445813541; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class PremiumSourceBusinessFeature extends PremiumSource { + + public BusinessFeature feature; + + public PremiumSourceBusinessFeature() { + } + + public PremiumSourceBusinessFeature(BusinessFeature feature) { + this.feature = feature; + } + + public static final int CONSTRUCTOR = -1492946340; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class PremiumSourceStoryFeature extends PremiumSource { + + public PremiumStoryFeature feature; + + public PremiumSourceStoryFeature() { + } + + public PremiumSourceStoryFeature(PremiumStoryFeature feature) { + this.feature = feature; + } + + public static final int CONSTRUCTOR = -1030737556; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class PremiumSourceLink extends PremiumSource { + + public String referrer; + + public PremiumSourceLink() { + } + + public PremiumSourceLink(String referrer) { + this.referrer = referrer; + } + + public static final int CONSTRUCTOR = 2135071132; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class PremiumSourceSettings extends PremiumSource { + public PremiumSourceSettings() { + } + + public static final int CONSTRUCTOR = -285702859; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class PremiumState extends Object { + + public FormattedText state; + + public PremiumStatePaymentOption[] paymentOptions; + + public PremiumFeaturePromotionAnimation[] animations; + + public BusinessFeaturePromotionAnimation[] businessAnimations; + + public PremiumState() { + } + + public PremiumState(FormattedText state, PremiumStatePaymentOption[] paymentOptions, PremiumFeaturePromotionAnimation[] animations, BusinessFeaturePromotionAnimation[] businessAnimations) { + this.state = state; + this.paymentOptions = paymentOptions; + this.animations = animations; + this.businessAnimations = businessAnimations; + } + + public static final int CONSTRUCTOR = 1772082178; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class PremiumStatePaymentOption extends Object { + + public PremiumPaymentOption paymentOption; + + public boolean isCurrent; + + public boolean isUpgrade; + + public String lastTransactionId; + + public PremiumStatePaymentOption() { + } + + public PremiumStatePaymentOption(PremiumPaymentOption paymentOption, boolean isCurrent, boolean isUpgrade, String lastTransactionId) { + this.paymentOption = paymentOption; + this.isCurrent = isCurrent; + this.isUpgrade = isUpgrade; + this.lastTransactionId = lastTransactionId; + } + + public static final int CONSTRUCTOR = 2097591673; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public abstract static class PremiumStoryFeature extends Object { + + public PremiumStoryFeature() { + } + } + + public static class PremiumStoryFeaturePriorityOrder extends PremiumStoryFeature { + public PremiumStoryFeaturePriorityOrder() { + } + + public static final int CONSTRUCTOR = -1880001849; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class PremiumStoryFeatureStealthMode extends PremiumStoryFeature { + public PremiumStoryFeatureStealthMode() { + } + + public static final int CONSTRUCTOR = 1194605988; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class PremiumStoryFeaturePermanentViewsHistory extends PremiumStoryFeature { + public PremiumStoryFeaturePermanentViewsHistory() { + } + + public static final int CONSTRUCTOR = -1029683296; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class PremiumStoryFeatureCustomExpirationDuration extends PremiumStoryFeature { + public PremiumStoryFeatureCustomExpirationDuration() { + } + + public static final int CONSTRUCTOR = -593229162; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class PremiumStoryFeatureSaveStories extends PremiumStoryFeature { + public PremiumStoryFeatureSaveStories() { + } + + public static final int CONSTRUCTOR = -1501286467; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class PremiumStoryFeatureLinksAndFormatting extends PremiumStoryFeature { + public PremiumStoryFeatureLinksAndFormatting() { + } + + public static final int CONSTRUCTOR = -622623753; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class PremiumStoryFeatureVideoQuality extends PremiumStoryFeature { + public PremiumStoryFeatureVideoQuality() { + } + + public static final int CONSTRUCTOR = -1162887511; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class PrepaidGiveaway extends Object { + + public long id; + + public int winnerCount; + + public GiveawayPrize prize; + + public int boostCount; + + public int paymentDate; + + public PrepaidGiveaway() { + } + + public PrepaidGiveaway(long id, int winnerCount, GiveawayPrize prize, int boostCount, int paymentDate) { + this.id = id; + this.winnerCount = winnerCount; + this.prize = prize; + this.boostCount = boostCount; + this.paymentDate = paymentDate; + } + + public static final int CONSTRUCTOR = -277859441; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class PreparedInlineMessage extends Object { + + public long inlineQueryId; + + public InlineQueryResult result; + + public TargetChatTypes chatTypes; + + public PreparedInlineMessage() { + } + + public PreparedInlineMessage(long inlineQueryId, InlineQueryResult result, TargetChatTypes chatTypes) { + this.inlineQueryId = inlineQueryId; + this.result = result; + this.chatTypes = chatTypes; + } + + public static final int CONSTRUCTOR = -1808892734; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class PreparedInlineMessageId extends Object { + + public String id; + + public int expirationDate; + + public PreparedInlineMessageId() { + } + + public PreparedInlineMessageId(String id, int expirationDate) { + this.id = id; + this.expirationDate = expirationDate; + } + + public static final int CONSTRUCTOR = 940415972; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class ProductInfo extends Object { + + public String title; + + public FormattedText description; + + public Photo photo; + + public ProductInfo() { + } + + public ProductInfo(String title, FormattedText description, Photo photo) { + this.title = title; + this.description = description; + this.photo = photo; + } + + public static final int CONSTRUCTOR = -2015069020; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class ProfileAccentColor extends Object { + + public int id; + + public ProfileAccentColors lightThemeColors; + + public ProfileAccentColors darkThemeColors; + + public int minSupergroupChatBoostLevel; + + public int minChannelChatBoostLevel; + + public ProfileAccentColor() { + } + + public ProfileAccentColor(int id, ProfileAccentColors lightThemeColors, ProfileAccentColors darkThemeColors, int minSupergroupChatBoostLevel, int minChannelChatBoostLevel) { + this.id = id; + this.lightThemeColors = lightThemeColors; + this.darkThemeColors = darkThemeColors; + this.minSupergroupChatBoostLevel = minSupergroupChatBoostLevel; + this.minChannelChatBoostLevel = minChannelChatBoostLevel; + } + + public static final int CONSTRUCTOR = 557679253; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class ProfileAccentColors extends Object { + + public int[] paletteColors; + + public int[] backgroundColors; + + public int[] storyColors; + + public ProfileAccentColors() { + } + + public ProfileAccentColors(int[] paletteColors, int[] backgroundColors, int[] storyColors) { + this.paletteColors = paletteColors; + this.backgroundColors = backgroundColors; + this.storyColors = storyColors; + } + + public static final int CONSTRUCTOR = -596042431; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class ProfilePhoto extends Object { + + public long id; + + public File small; + + public File big; + + public Minithumbnail minithumbnail; + + public boolean hasAnimation; + + public boolean isPersonal; + + public ProfilePhoto() { + } + + public ProfilePhoto(long id, File small, File big, Minithumbnail minithumbnail, boolean hasAnimation, boolean isPersonal) { + this.id = id; + this.small = small; + this.big = big; + this.minithumbnail = minithumbnail; + this.hasAnimation = hasAnimation; + this.isPersonal = isPersonal; + } + + public static final int CONSTRUCTOR = -1025754018; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class Proxies extends Object { + + public Proxy[] proxies; + + public Proxies() { + } + + public Proxies(Proxy[] proxies) { + this.proxies = proxies; + } + + public static final int CONSTRUCTOR = 1200447205; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class Proxy extends Object { + + public int id; + + public String server; + + public int port; + + public int lastUsedDate; + + public boolean isEnabled; + + public ProxyType type; + + public Proxy() { + } + + public Proxy(int id, String server, int port, int lastUsedDate, boolean isEnabled, ProxyType type) { + this.id = id; + this.server = server; + this.port = port; + this.lastUsedDate = lastUsedDate; + this.isEnabled = isEnabled; + this.type = type; + } + + public static final int CONSTRUCTOR = 196049779; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public abstract static class ProxyType extends Object { + + public ProxyType() { + } + } + + public static class ProxyTypeSocks5 extends ProxyType { + + public String username; + + public String password; + + public ProxyTypeSocks5() { + } + + public ProxyTypeSocks5(String username, String password) { + this.username = username; + this.password = password; + } + + public static final int CONSTRUCTOR = -890027341; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class ProxyTypeHttp extends ProxyType { + + public String username; + + public String password; + + public boolean httpOnly; + + public ProxyTypeHttp() { + } + + public ProxyTypeHttp(String username, String password, boolean httpOnly) { + this.username = username; + this.password = password; + this.httpOnly = httpOnly; + } + + public static final int CONSTRUCTOR = -1547188361; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class ProxyTypeMtproto extends ProxyType { + + public String secret; + + public ProxyTypeMtproto() { + } + + public ProxyTypeMtproto(String secret) { + this.secret = secret; + } + + public static final int CONSTRUCTOR = -1964826627; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public abstract static class PublicChatType extends Object { + + public PublicChatType() { + } + } + + public static class PublicChatTypeHasUsername extends PublicChatType { + public PublicChatTypeHasUsername() { + } + + public static final int CONSTRUCTOR = 350789758; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class PublicChatTypeIsLocationBased extends PublicChatType { + public PublicChatTypeIsLocationBased() { + } + + public static final int CONSTRUCTOR = 1183735952; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public abstract static class PublicForward extends Object { + + public PublicForward() { + } + } + + public static class PublicForwardMessage extends PublicForward { + + public Message message; + + public PublicForwardMessage() { + } + + public PublicForwardMessage(Message message) { + this.message = message; + } + + public static final int CONSTRUCTOR = 51885010; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class PublicForwardStory extends PublicForward { + + public Story story; + + public PublicForwardStory() { + } + + public PublicForwardStory(Story story) { + this.story = story; + } + + public static final int CONSTRUCTOR = 2145330863; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class PublicForwards extends Object { + + public int totalCount; + + public PublicForward[] forwards; + + public String nextOffset; + + public PublicForwards() { + } + + public PublicForwards(int totalCount, PublicForward[] forwards, String nextOffset) { + this.totalCount = totalCount; + this.forwards = forwards; + this.nextOffset = nextOffset; + } + + public static final int CONSTRUCTOR = -2011272719; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public abstract static class PushMessageContent extends Object { + + public PushMessageContent() { + } + } + + public static class PushMessageContentHidden extends PushMessageContent { + + public boolean isPinned; + + public PushMessageContentHidden() { + } + + public PushMessageContentHidden(boolean isPinned) { + this.isPinned = isPinned; + } + + public static final int CONSTRUCTOR = -316950436; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class PushMessageContentAnimation extends PushMessageContent { + + public Animation animation; + + public String caption; + + public boolean isPinned; + + public PushMessageContentAnimation() { + } + + public PushMessageContentAnimation(Animation animation, String caption, boolean isPinned) { + this.animation = animation; + this.caption = caption; + this.isPinned = isPinned; + } + + public static final int CONSTRUCTOR = 1034215396; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class PushMessageContentAudio extends PushMessageContent { + + public Audio audio; + + public boolean isPinned; + + public PushMessageContentAudio() { + } + + public PushMessageContentAudio(Audio audio, boolean isPinned) { + this.audio = audio; + this.isPinned = isPinned; + } + + public static final int CONSTRUCTOR = 381581426; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class PushMessageContentContact extends PushMessageContent { + + public String name; + + public boolean isPinned; + + public PushMessageContentContact() { + } + + public PushMessageContentContact(String name, boolean isPinned) { + this.name = name; + this.isPinned = isPinned; + } + + public static final int CONSTRUCTOR = -12219820; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class PushMessageContentContactRegistered extends PushMessageContent { + public PushMessageContentContactRegistered() { + } + + public static final int CONSTRUCTOR = -303962720; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class PushMessageContentDocument extends PushMessageContent { + + public Document document; + + public boolean isPinned; + + public PushMessageContentDocument() { + } + + public PushMessageContentDocument(Document document, boolean isPinned) { + this.document = document; + this.isPinned = isPinned; + } + + public static final int CONSTRUCTOR = -458379775; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class PushMessageContentGame extends PushMessageContent { + + public String title; + + public boolean isPinned; + + public PushMessageContentGame() { + } + + public PushMessageContentGame(String title, boolean isPinned) { + this.title = title; + this.isPinned = isPinned; + } + + public static final int CONSTRUCTOR = -515131109; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class PushMessageContentGameScore extends PushMessageContent { + + public String title; + + public int score; + + public boolean isPinned; + + public PushMessageContentGameScore() { + } + + public PushMessageContentGameScore(String title, int score, boolean isPinned) { + this.title = title; + this.score = score; + this.isPinned = isPinned; + } + + public static final int CONSTRUCTOR = 901303688; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class PushMessageContentInvoice extends PushMessageContent { + + public String price; + + public boolean isPinned; + + public PushMessageContentInvoice() { + } + + public PushMessageContentInvoice(String price, boolean isPinned) { + this.price = price; + this.isPinned = isPinned; + } + + public static final int CONSTRUCTOR = -1731687492; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class PushMessageContentLocation extends PushMessageContent { + + public boolean isLive; + + public boolean isPinned; + + public PushMessageContentLocation() { + } + + public PushMessageContentLocation(boolean isLive, boolean isPinned) { + this.isLive = isLive; + this.isPinned = isPinned; + } + + public static final int CONSTRUCTOR = -1288005709; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class PushMessageContentPaidMedia extends PushMessageContent { + + public long starCount; + + public boolean isPinned; + + public PushMessageContentPaidMedia() { + } + + public PushMessageContentPaidMedia(long starCount, boolean isPinned) { + this.starCount = starCount; + this.isPinned = isPinned; + } + + public static final int CONSTRUCTOR = -1252595894; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class PushMessageContentPhoto extends PushMessageContent { + + public Photo photo; + + public String caption; + + public boolean isSecret; + + public boolean isPinned; + + public PushMessageContentPhoto() { + } + + public PushMessageContentPhoto(Photo photo, String caption, boolean isSecret, boolean isPinned) { + this.photo = photo; + this.caption = caption; + this.isSecret = isSecret; + this.isPinned = isPinned; + } + + public static final int CONSTRUCTOR = 140631122; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class PushMessageContentPoll extends PushMessageContent { + + public String question; + + public boolean isRegular; + + public boolean isPinned; + + public PushMessageContentPoll() { + } + + public PushMessageContentPoll(String question, boolean isRegular, boolean isPinned) { + this.question = question; + this.isRegular = isRegular; + this.isPinned = isPinned; + } + + public static final int CONSTRUCTOR = -44403654; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class PushMessageContentPremiumGiftCode extends PushMessageContent { + + public int monthCount; + + public PushMessageContentPremiumGiftCode() { + } + + public PushMessageContentPremiumGiftCode(int monthCount) { + this.monthCount = monthCount; + } + + public static final int CONSTRUCTOR = 413224997; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class PushMessageContentGiveaway extends PushMessageContent { + + public int winnerCount; + + public GiveawayPrize prize; + + public boolean isPinned; + + public PushMessageContentGiveaway() { + } + + public PushMessageContentGiveaway(int winnerCount, GiveawayPrize prize, boolean isPinned) { + this.winnerCount = winnerCount; + this.prize = prize; + this.isPinned = isPinned; + } + + public static final int CONSTRUCTOR = -700547186; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class PushMessageContentGift extends PushMessageContent { + + public long starCount; + + public PushMessageContentGift() { + } + + public PushMessageContentGift(long starCount) { + this.starCount = starCount; + } + + public static final int CONSTRUCTOR = -2069312245; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class PushMessageContentScreenshotTaken extends PushMessageContent { + public PushMessageContentScreenshotTaken() { + } + + public static final int CONSTRUCTOR = 214245369; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class PushMessageContentSticker extends PushMessageContent { + + public Sticker sticker; + + public String emoji; + + public boolean isPinned; + + public PushMessageContentSticker() { + } + + public PushMessageContentSticker(Sticker sticker, String emoji, boolean isPinned) { + this.sticker = sticker; + this.emoji = emoji; + this.isPinned = isPinned; + } + + public static final int CONSTRUCTOR = 1553513939; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class PushMessageContentStory extends PushMessageContent { + + public boolean isPinned; + + public PushMessageContentStory() { + } + + public PushMessageContentStory(boolean isPinned) { + this.isPinned = isPinned; + } + + public static final int CONSTRUCTOR = -1721470519; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class PushMessageContentText extends PushMessageContent { + + public String text; + + public boolean isPinned; + + public PushMessageContentText() { + } + + public PushMessageContentText(String text, boolean isPinned) { + this.text = text; + this.isPinned = isPinned; + } + + public static final int CONSTRUCTOR = 274587305; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class PushMessageContentVideo extends PushMessageContent { + + public Video video; + + public String caption; + + public boolean isSecret; + + public boolean isPinned; + + public PushMessageContentVideo() { + } + + public PushMessageContentVideo(Video video, String caption, boolean isSecret, boolean isPinned) { + this.video = video; + this.caption = caption; + this.isSecret = isSecret; + this.isPinned = isPinned; + } + + public static final int CONSTRUCTOR = 310038831; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class PushMessageContentVideoNote extends PushMessageContent { + + public VideoNote videoNote; + + public boolean isPinned; + + public PushMessageContentVideoNote() { + } + + public PushMessageContentVideoNote(VideoNote videoNote, boolean isPinned) { + this.videoNote = videoNote; + this.isPinned = isPinned; + } + + public static final int CONSTRUCTOR = -1122764417; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class PushMessageContentVoiceNote extends PushMessageContent { + + public VoiceNote voiceNote; + + public boolean isPinned; + + public PushMessageContentVoiceNote() { + } + + public PushMessageContentVoiceNote(VoiceNote voiceNote, boolean isPinned) { + this.voiceNote = voiceNote; + this.isPinned = isPinned; + } + + public static final int CONSTRUCTOR = 88910987; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class PushMessageContentBasicGroupChatCreate extends PushMessageContent { + public PushMessageContentBasicGroupChatCreate() { + } + + public static final int CONSTRUCTOR = -2114855172; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class PushMessageContentChatAddMembers extends PushMessageContent { + + public String memberName; + + public boolean isCurrentUser; + + public boolean isReturned; + + public PushMessageContentChatAddMembers() { + } + + public PushMessageContentChatAddMembers(String memberName, boolean isCurrentUser, boolean isReturned) { + this.memberName = memberName; + this.isCurrentUser = isCurrentUser; + this.isReturned = isReturned; + } + + public static final int CONSTRUCTOR = -1087145158; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class PushMessageContentChatChangePhoto extends PushMessageContent { + public PushMessageContentChatChangePhoto() { + } + + public static final int CONSTRUCTOR = -1114222051; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class PushMessageContentChatChangeTitle extends PushMessageContent { + + public String title; + + public PushMessageContentChatChangeTitle() { + } + + public PushMessageContentChatChangeTitle(String title) { + this.title = title; + } + + public static final int CONSTRUCTOR = -1964902749; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class PushMessageContentChatSetBackground extends PushMessageContent { + + public boolean isSame; + + public PushMessageContentChatSetBackground() { + } + + public PushMessageContentChatSetBackground(boolean isSame) { + this.isSame = isSame; + } + + public static final int CONSTRUCTOR = -1490331933; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class PushMessageContentChatSetTheme extends PushMessageContent { + + public String themeName; + + public PushMessageContentChatSetTheme() { + } + + public PushMessageContentChatSetTheme(String themeName) { + this.themeName = themeName; + } + + public static final int CONSTRUCTOR = 173882216; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class PushMessageContentChatDeleteMember extends PushMessageContent { + + public String memberName; + + public boolean isCurrentUser; + + public boolean isLeft; + + public PushMessageContentChatDeleteMember() { + } + + public PushMessageContentChatDeleteMember(String memberName, boolean isCurrentUser, boolean isLeft) { + this.memberName = memberName; + this.isCurrentUser = isCurrentUser; + this.isLeft = isLeft; + } + + public static final int CONSTRUCTOR = 598714783; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class PushMessageContentChatJoinByLink extends PushMessageContent { + public PushMessageContentChatJoinByLink() { + } + + public static final int CONSTRUCTOR = 1553719113; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class PushMessageContentChatJoinByRequest extends PushMessageContent { + public PushMessageContentChatJoinByRequest() { + } + + public static final int CONSTRUCTOR = -205823627; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class PushMessageContentRecurringPayment extends PushMessageContent { + + public String amount; + + public PushMessageContentRecurringPayment() { + } + + public PushMessageContentRecurringPayment(String amount) { + this.amount = amount; + } + + public static final int CONSTRUCTOR = 1619211802; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class PushMessageContentSuggestProfilePhoto extends PushMessageContent { + public PushMessageContentSuggestProfilePhoto() { + } + + public static final int CONSTRUCTOR = 2104225963; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class PushMessageContentMessageForwards extends PushMessageContent { + + public int totalCount; + + public PushMessageContentMessageForwards() { + } + + public PushMessageContentMessageForwards(int totalCount) { + this.totalCount = totalCount; + } + + public static final int CONSTRUCTOR = -1913083876; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class PushMessageContentMediaAlbum extends PushMessageContent { + + public int totalCount; + + public boolean hasPhotos; + + public boolean hasVideos; + + public boolean hasAudios; + + public boolean hasDocuments; + + public PushMessageContentMediaAlbum() { + } + + public PushMessageContentMediaAlbum(int totalCount, boolean hasPhotos, boolean hasVideos, boolean hasAudios, boolean hasDocuments) { + this.totalCount = totalCount; + this.hasPhotos = hasPhotos; + this.hasVideos = hasVideos; + this.hasAudios = hasAudios; + this.hasDocuments = hasDocuments; + } + + public static final int CONSTRUCTOR = -748426897; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class PushReceiverId extends Object { + + public long id; + + public PushReceiverId() { + } + + public PushReceiverId(long id) { + this.id = id; + } + + public static final int CONSTRUCTOR = 371056428; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class QuickReplyMessage extends Object { + + public long id; + + public MessageSendingState sendingState; + + public boolean canBeEdited; + + public long replyToMessageId; + + public long viaBotUserId; + + public long mediaAlbumId; + + public MessageContent content; + + public ReplyMarkup replyMarkup; + + public QuickReplyMessage() { + } + + public QuickReplyMessage(long id, MessageSendingState sendingState, boolean canBeEdited, long replyToMessageId, long viaBotUserId, long mediaAlbumId, MessageContent content, ReplyMarkup replyMarkup) { + this.id = id; + this.sendingState = sendingState; + this.canBeEdited = canBeEdited; + this.replyToMessageId = replyToMessageId; + this.viaBotUserId = viaBotUserId; + this.mediaAlbumId = mediaAlbumId; + this.content = content; + this.replyMarkup = replyMarkup; + } + + public static final int CONSTRUCTOR = -1090965757; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class QuickReplyMessages extends Object { + + public QuickReplyMessage[] messages; + + public QuickReplyMessages() { + } + + public QuickReplyMessages(QuickReplyMessage[] messages) { + this.messages = messages; + } + + public static final int CONSTRUCTOR = 743214375; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class QuickReplyShortcut extends Object { + + public int id; + + public String name; + + public QuickReplyMessage firstMessage; + + public int messageCount; + + public QuickReplyShortcut() { + } + + public QuickReplyShortcut(int id, String name, QuickReplyMessage firstMessage, int messageCount) { + this.id = id; + this.name = name; + this.firstMessage = firstMessage; + this.messageCount = messageCount; + } + + public static final int CONSTRUCTOR = -1107453291; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class ReactionNotificationSettings extends Object { + + public ReactionNotificationSource messageReactionSource; + + public ReactionNotificationSource storyReactionSource; + + public long soundId; + + public boolean showPreview; + + public ReactionNotificationSettings() { + } + + public ReactionNotificationSettings(ReactionNotificationSource messageReactionSource, ReactionNotificationSource storyReactionSource, long soundId, boolean showPreview) { + this.messageReactionSource = messageReactionSource; + this.storyReactionSource = storyReactionSource; + this.soundId = soundId; + this.showPreview = showPreview; + } + + public static final int CONSTRUCTOR = 733017684; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public abstract static class ReactionNotificationSource extends Object { + + public ReactionNotificationSource() { + } + } + + public static class ReactionNotificationSourceNone extends ReactionNotificationSource { + public ReactionNotificationSourceNone() { + } + + public static final int CONSTRUCTOR = 366374940; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class ReactionNotificationSourceContacts extends ReactionNotificationSource { + public ReactionNotificationSourceContacts() { + } + + public static final int CONSTRUCTOR = 555501621; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class ReactionNotificationSourceAll extends ReactionNotificationSource { + public ReactionNotificationSourceAll() { + } + + public static final int CONSTRUCTOR = 1241689234; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public abstract static class ReactionType extends Object { + + public ReactionType() { + } + } + + public static class ReactionTypeEmoji extends ReactionType { + + public String emoji; + + public ReactionTypeEmoji() { + } + + public ReactionTypeEmoji(String emoji) { + this.emoji = emoji; + } + + public static final int CONSTRUCTOR = -1942084920; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class ReactionTypeCustomEmoji extends ReactionType { + + public long customEmojiId; + + public ReactionTypeCustomEmoji() { + } + + public ReactionTypeCustomEmoji(long customEmojiId) { + this.customEmojiId = customEmojiId; + } + + public static final int CONSTRUCTOR = -989117709; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class ReactionTypePaid extends ReactionType { + public ReactionTypePaid() { + } + + public static final int CONSTRUCTOR = 436294381; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public abstract static class ReactionUnavailabilityReason extends Object { + + public ReactionUnavailabilityReason() { + } + } + + public static class ReactionUnavailabilityReasonAnonymousAdministrator extends ReactionUnavailabilityReason { + public ReactionUnavailabilityReasonAnonymousAdministrator() { + } + + public static final int CONSTRUCTOR = -499612677; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class ReactionUnavailabilityReasonGuest extends ReactionUnavailabilityReason { + public ReactionUnavailabilityReasonGuest() { + } + + public static final int CONSTRUCTOR = 1357861444; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class ReadDatePrivacySettings extends Object { + + public boolean showReadDate; + + public ReadDatePrivacySettings() { + } + + public ReadDatePrivacySettings(boolean showReadDate) { + this.showReadDate = showReadDate; + } + + public static final int CONSTRUCTOR = 1654842920; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class RecommendedChatFolder extends Object { + + public ChatFolder folder; + + public String description; + + public RecommendedChatFolder() { + } + + public RecommendedChatFolder(ChatFolder folder, String description) { + this.folder = folder; + this.description = description; + } + + public static final int CONSTRUCTOR = -2116569930; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class RecommendedChatFolders extends Object { + + public RecommendedChatFolder[] chatFolders; + + public RecommendedChatFolders() { + } + + public RecommendedChatFolders(RecommendedChatFolder[] chatFolders) { + this.chatFolders = chatFolders; + } + + public static final int CONSTRUCTOR = -739217656; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class RecoveryEmailAddress extends Object { + + public String recoveryEmailAddress; + + public RecoveryEmailAddress() { + } + + public RecoveryEmailAddress(String recoveryEmailAddress) { + this.recoveryEmailAddress = recoveryEmailAddress; + } + + public static final int CONSTRUCTOR = 1290526187; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class RemoteFile extends Object { + + public String id; + + public String uniqueId; + + public boolean isUploadingActive; + + public boolean isUploadingCompleted; + + public long uploadedSize; + + public RemoteFile() { + } + + public RemoteFile(String id, String uniqueId, boolean isUploadingActive, boolean isUploadingCompleted, long uploadedSize) { + this.id = id; + this.uniqueId = uniqueId; + this.isUploadingActive = isUploadingActive; + this.isUploadingCompleted = isUploadingCompleted; + this.uploadedSize = uploadedSize; + } + + public static final int CONSTRUCTOR = 747731030; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public abstract static class ReplyMarkup extends Object { + + public ReplyMarkup() { + } + } + + public static class ReplyMarkupRemoveKeyboard extends ReplyMarkup { + + public boolean isPersonal; + + public ReplyMarkupRemoveKeyboard() { + } + + public ReplyMarkupRemoveKeyboard(boolean isPersonal) { + this.isPersonal = isPersonal; + } + + public static final int CONSTRUCTOR = -691252879; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class ReplyMarkupForceReply extends ReplyMarkup { + + public boolean isPersonal; + + public String inputFieldPlaceholder; + + public ReplyMarkupForceReply() { + } + + public ReplyMarkupForceReply(boolean isPersonal, String inputFieldPlaceholder) { + this.isPersonal = isPersonal; + this.inputFieldPlaceholder = inputFieldPlaceholder; + } + + public static final int CONSTRUCTOR = 1101461919; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class ReplyMarkupShowKeyboard extends ReplyMarkup { + + public KeyboardButton[][] rows; + + public boolean isPersistent; + + public boolean resizeKeyboard; + + public boolean oneTime; + + public boolean isPersonal; + + public String inputFieldPlaceholder; + + public ReplyMarkupShowKeyboard() { + } + + public ReplyMarkupShowKeyboard(KeyboardButton[][] rows, boolean isPersistent, boolean resizeKeyboard, boolean oneTime, boolean isPersonal, String inputFieldPlaceholder) { + this.rows = rows; + this.isPersistent = isPersistent; + this.resizeKeyboard = resizeKeyboard; + this.oneTime = oneTime; + this.isPersonal = isPersonal; + this.inputFieldPlaceholder = inputFieldPlaceholder; + } + + public static final int CONSTRUCTOR = -791495984; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class ReplyMarkupInlineKeyboard extends ReplyMarkup { + + public InlineKeyboardButton[][] rows; + + public ReplyMarkupInlineKeyboard() { + } + + public ReplyMarkupInlineKeyboard(InlineKeyboardButton[][] rows) { + this.rows = rows; + } + + public static final int CONSTRUCTOR = -619317658; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public abstract static class ReportChatResult extends Object { + + public ReportChatResult() { + } + } + + public static class ReportChatResultOk extends ReportChatResult { + public ReportChatResultOk() { + } + + public static final int CONSTRUCTOR = 1209685373; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class ReportChatResultOptionRequired extends ReportChatResult { + + public String title; + + public ReportOption[] options; + + public ReportChatResultOptionRequired() { + } + + public ReportChatResultOptionRequired(String title, ReportOption[] options) { + this.title = title; + this.options = options; + } + + public static final int CONSTRUCTOR = -881375669; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class ReportChatResultTextRequired extends ReportChatResult { + + public byte[] optionId; + + public boolean isOptional; + + public ReportChatResultTextRequired() { + } + + public ReportChatResultTextRequired(byte[] optionId, boolean isOptional) { + this.optionId = optionId; + this.isOptional = isOptional; + } + + public static final int CONSTRUCTOR = -1949552447; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class ReportChatResultMessagesRequired extends ReportChatResult { + public ReportChatResultMessagesRequired() { + } + + public static final int CONSTRUCTOR = 106043280; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public abstract static class ReportChatSponsoredMessageResult extends Object { + + public ReportChatSponsoredMessageResult() { + } + } + + public static class ReportChatSponsoredMessageResultOk extends ReportChatSponsoredMessageResult { + public ReportChatSponsoredMessageResultOk() { + } + + public static final int CONSTRUCTOR = 1968140831; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class ReportChatSponsoredMessageResultFailed extends ReportChatSponsoredMessageResult { + public ReportChatSponsoredMessageResultFailed() { + } + + public static final int CONSTRUCTOR = 2132777926; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class ReportChatSponsoredMessageResultOptionRequired extends ReportChatSponsoredMessageResult { + + public String title; + + public ReportOption[] options; + + public ReportChatSponsoredMessageResultOptionRequired() { + } + + public ReportChatSponsoredMessageResultOptionRequired(String title, ReportOption[] options) { + this.title = title; + this.options = options; + } + + public static final int CONSTRUCTOR = 1172751995; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class ReportChatSponsoredMessageResultAdsHidden extends ReportChatSponsoredMessageResult { + public ReportChatSponsoredMessageResultAdsHidden() { + } + + public static final int CONSTRUCTOR = -387260898; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class ReportChatSponsoredMessageResultPremiumRequired extends ReportChatSponsoredMessageResult { + public ReportChatSponsoredMessageResultPremiumRequired() { + } + + public static final int CONSTRUCTOR = 1997287120; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class ReportOption extends Object { + + public byte[] id; + + public String text; + + public ReportOption() { + } + + public ReportOption(byte[] id, String text) { + this.id = id; + this.text = text; + } + + public static final int CONSTRUCTOR = 1106390048; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public abstract static class ReportReason extends Object { + + public ReportReason() { + } + } + + public static class ReportReasonSpam extends ReportReason { + public ReportReasonSpam() { + } + + public static final int CONSTRUCTOR = -1207032897; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class ReportReasonViolence extends ReportReason { + public ReportReasonViolence() { + } + + public static final int CONSTRUCTOR = 2038679353; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class ReportReasonPornography extends ReportReason { + public ReportReasonPornography() { + } + + public static final int CONSTRUCTOR = 1306467575; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class ReportReasonChildAbuse extends ReportReason { + public ReportReasonChildAbuse() { + } + + public static final int CONSTRUCTOR = 761086718; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class ReportReasonCopyright extends ReportReason { + public ReportReasonCopyright() { + } + + public static final int CONSTRUCTOR = 1474441135; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class ReportReasonUnrelatedLocation extends ReportReason { + public ReportReasonUnrelatedLocation() { + } + + public static final int CONSTRUCTOR = 87562288; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class ReportReasonFake extends ReportReason { + public ReportReasonFake() { + } + + public static final int CONSTRUCTOR = 352862176; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class ReportReasonIllegalDrugs extends ReportReason { + public ReportReasonIllegalDrugs() { + } + + public static final int CONSTRUCTOR = -61599200; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class ReportReasonPersonalDetails extends ReportReason { + public ReportReasonPersonalDetails() { + } + + public static final int CONSTRUCTOR = -1588882414; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class ReportReasonCustom extends ReportReason { + public ReportReasonCustom() { + } + + public static final int CONSTRUCTOR = -1380459917; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public abstract static class ReportStoryResult extends Object { + + public ReportStoryResult() { + } + } + + public static class ReportStoryResultOk extends ReportStoryResult { + public ReportStoryResultOk() { + } + + public static final int CONSTRUCTOR = -1405328461; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class ReportStoryResultOptionRequired extends ReportStoryResult { + + public String title; + + public ReportOption[] options; + + public ReportStoryResultOptionRequired() { + } + + public ReportStoryResultOptionRequired(String title, ReportOption[] options) { + this.title = title; + this.options = options; + } + + public static final int CONSTRUCTOR = 1632974839; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class ReportStoryResultTextRequired extends ReportStoryResult { + + public byte[] optionId; + + public boolean isOptional; + + public ReportStoryResultTextRequired() { + } + + public ReportStoryResultTextRequired(byte[] optionId, boolean isOptional) { + this.optionId = optionId; + this.isOptional = isOptional; + } + + public static final int CONSTRUCTOR = 334339473; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public abstract static class ResendCodeReason extends Object { + + public ResendCodeReason() { + } + } + + public static class ResendCodeReasonUserRequest extends ResendCodeReason { + public ResendCodeReasonUserRequest() { + } + + public static final int CONSTRUCTOR = -441923456; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class ResendCodeReasonVerificationFailed extends ResendCodeReason { + + public String errorMessage; + + public ResendCodeReasonVerificationFailed() { + } + + public ResendCodeReasonVerificationFailed(String errorMessage) { + this.errorMessage = errorMessage; + } + + public static final int CONSTRUCTOR = 529870273; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public abstract static class ResetPasswordResult extends Object { + + public ResetPasswordResult() { + } + } + + public static class ResetPasswordResultOk extends ResetPasswordResult { + public ResetPasswordResultOk() { + } + + public static final int CONSTRUCTOR = -1397267463; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class ResetPasswordResultPending extends ResetPasswordResult { + + public int pendingResetDate; + + public ResetPasswordResultPending() { + } + + public ResetPasswordResultPending(int pendingResetDate) { + this.pendingResetDate = pendingResetDate; + } + + public static final int CONSTRUCTOR = 1193925721; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class ResetPasswordResultDeclined extends ResetPasswordResult { + + public int retryDate; + + public ResetPasswordResultDeclined() { + } + + public ResetPasswordResultDeclined(int retryDate) { + this.retryDate = retryDate; + } + + public static final int CONSTRUCTOR = -1202200373; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public abstract static class RevenueWithdrawalState extends Object { + + public RevenueWithdrawalState() { + } + } + + public static class RevenueWithdrawalStatePending extends RevenueWithdrawalState { + public RevenueWithdrawalStatePending() { + } + + public static final int CONSTRUCTOR = 1563512741; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class RevenueWithdrawalStateSucceeded extends RevenueWithdrawalState { + + public int date; + + public String url; + + public RevenueWithdrawalStateSucceeded() { + } + + public RevenueWithdrawalStateSucceeded(int date, String url) { + this.date = date; + this.url = url; + } + + public static final int CONSTRUCTOR = 265375242; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class RevenueWithdrawalStateFailed extends RevenueWithdrawalState { + public RevenueWithdrawalStateFailed() { + } + + public static final int CONSTRUCTOR = -12504951; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public abstract static class RichText extends Object { + + public RichText() { + } + } + + public static class RichTextPlain extends RichText { + + public String text; + + public RichTextPlain() { + } + + public RichTextPlain(String text) { + this.text = text; + } + + public static final int CONSTRUCTOR = 482617702; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class RichTextBold extends RichText { + + public RichText text; + + public RichTextBold() { + } + + public RichTextBold(RichText text) { + this.text = text; + } + + public static final int CONSTRUCTOR = 1670844268; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class RichTextItalic extends RichText { + + public RichText text; + + public RichTextItalic() { + } + + public RichTextItalic(RichText text) { + this.text = text; + } + + public static final int CONSTRUCTOR = 1853354047; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class RichTextUnderline extends RichText { + + public RichText text; + + public RichTextUnderline() { + } + + public RichTextUnderline(RichText text) { + this.text = text; + } + + public static final int CONSTRUCTOR = -536019572; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class RichTextStrikethrough extends RichText { + + public RichText text; + + public RichTextStrikethrough() { + } + + public RichTextStrikethrough(RichText text) { + this.text = text; + } + + public static final int CONSTRUCTOR = 723413585; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class RichTextFixed extends RichText { + + public RichText text; + + public RichTextFixed() { + } + + public RichTextFixed(RichText text) { + this.text = text; + } + + public static final int CONSTRUCTOR = -1271496249; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class RichTextUrl extends RichText { + + public RichText text; + + public String url; + + public boolean isCached; + + public RichTextUrl() { + } + + public RichTextUrl(RichText text, String url, boolean isCached) { + this.text = text; + this.url = url; + this.isCached = isCached; + } + + public static final int CONSTRUCTOR = 83939092; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class RichTextEmailAddress extends RichText { + + public RichText text; + + public String emailAddress; + + public RichTextEmailAddress() { + } + + public RichTextEmailAddress(RichText text, String emailAddress) { + this.text = text; + this.emailAddress = emailAddress; + } + + public static final int CONSTRUCTOR = 40018679; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class RichTextSubscript extends RichText { + + public RichText text; + + public RichTextSubscript() { + } + + public RichTextSubscript(RichText text) { + this.text = text; + } + + public static final int CONSTRUCTOR = -868197812; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class RichTextSuperscript extends RichText { + + public RichText text; + + public RichTextSuperscript() { + } + + public RichTextSuperscript(RichText text) { + this.text = text; + } + + public static final int CONSTRUCTOR = -382241437; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class RichTextMarked extends RichText { + + public RichText text; + + public RichTextMarked() { + } + + public RichTextMarked(RichText text) { + this.text = text; + } + + public static final int CONSTRUCTOR = -1271999614; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class RichTextPhoneNumber extends RichText { + + public RichText text; + + public String phoneNumber; + + public RichTextPhoneNumber() { + } + + public RichTextPhoneNumber(RichText text, String phoneNumber) { + this.text = text; + this.phoneNumber = phoneNumber; + } + + public static final int CONSTRUCTOR = 128521539; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class RichTextIcon extends RichText { + + public Document document; + + public int width; + + public int height; + + public RichTextIcon() { + } + + public RichTextIcon(Document document, int width, int height) { + this.document = document; + this.width = width; + this.height = height; + } + + public static final int CONSTRUCTOR = -1480316158; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class RichTextReference extends RichText { + + public RichText text; + + public String anchorName; + + public String url; + + public RichTextReference() { + } + + public RichTextReference(RichText text, String anchorName, String url) { + this.text = text; + this.anchorName = anchorName; + this.url = url; + } + + public static final int CONSTRUCTOR = -1147530634; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class RichTextAnchor extends RichText { + + public String name; + + public RichTextAnchor() { + } + + public RichTextAnchor(String name) { + this.name = name; + } + + public static final int CONSTRUCTOR = 1316950068; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class RichTextAnchorLink extends RichText { + + public RichText text; + + public String anchorName; + + public String url; + + public RichTextAnchorLink() { + } + + public RichTextAnchorLink(RichText text, String anchorName, String url) { + this.text = text; + this.anchorName = anchorName; + this.url = url; + } + + public static final int CONSTRUCTOR = -1541418282; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class RichTexts extends RichText { + + public RichText[] texts; + + public RichTexts() { + } + + public RichTexts(RichText[] texts) { + this.texts = texts; + } + + public static final int CONSTRUCTOR = 1647457821; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class RtmpUrl extends Object { + + public String url; + + public String streamKey; + + public RtmpUrl() { + } + + public RtmpUrl(String url, String streamKey) { + this.url = url; + this.streamKey = streamKey; + } + + public static final int CONSTRUCTOR = 1009302613; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class SavedCredentials extends Object { + + public String id; + + public String title; + + public SavedCredentials() { + } + + public SavedCredentials(String id, String title) { + this.id = id; + this.title = title; + } + + public static final int CONSTRUCTOR = -370273060; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class SavedMessagesTag extends Object { + + public ReactionType tag; + + public String label; + + public int count; + + public SavedMessagesTag() { + } + + public SavedMessagesTag(ReactionType tag, String label, int count) { + this.tag = tag; + this.label = label; + this.count = count; + } + + public static final int CONSTRUCTOR = 1785183329; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class SavedMessagesTags extends Object { + + public SavedMessagesTag[] tags; + + public SavedMessagesTags() { + } + + public SavedMessagesTags(SavedMessagesTag[] tags) { + this.tags = tags; + } + + public static final int CONSTRUCTOR = -1749291430; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class SavedMessagesTopic extends Object { + + public long id; + + public SavedMessagesTopicType type; + + public boolean isPinned; + + public long order; + + public Message lastMessage; + + public DraftMessage draftMessage; + + public SavedMessagesTopic() { + } + + public SavedMessagesTopic(long id, SavedMessagesTopicType type, boolean isPinned, long order, Message lastMessage, DraftMessage draftMessage) { + this.id = id; + this.type = type; + this.isPinned = isPinned; + this.order = order; + this.lastMessage = lastMessage; + this.draftMessage = draftMessage; + } + + public static final int CONSTRUCTOR = -760684124; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public abstract static class SavedMessagesTopicType extends Object { + + public SavedMessagesTopicType() { + } + } + + public static class SavedMessagesTopicTypeMyNotes extends SavedMessagesTopicType { + public SavedMessagesTopicTypeMyNotes() { + } + + public static final int CONSTRUCTOR = -1282784779; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class SavedMessagesTopicTypeAuthorHidden extends SavedMessagesTopicType { + public SavedMessagesTopicTypeAuthorHidden() { + } + + public static final int CONSTRUCTOR = 1882997141; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class SavedMessagesTopicTypeSavedFromChat extends SavedMessagesTopicType { + + public long chatId; + + public SavedMessagesTopicTypeSavedFromChat() { + } + + public SavedMessagesTopicTypeSavedFromChat(long chatId) { + this.chatId = chatId; + } + + public static final int CONSTRUCTOR = -1723880104; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class ScopeAutosaveSettings extends Object { + + public boolean autosavePhotos; + + public boolean autosaveVideos; + + public long maxVideoFileSize; + + public ScopeAutosaveSettings() { + } + + public ScopeAutosaveSettings(boolean autosavePhotos, boolean autosaveVideos, long maxVideoFileSize) { + this.autosavePhotos = autosavePhotos; + this.autosaveVideos = autosaveVideos; + this.maxVideoFileSize = maxVideoFileSize; + } + + public static final int CONSTRUCTOR = 1546821427; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class ScopeNotificationSettings extends Object { + + public int muteFor; + + public long soundId; + + public boolean showPreview; + + public boolean useDefaultMuteStories; + + public boolean muteStories; + + public long storySoundId; + + public boolean showStorySender; + + public boolean disablePinnedMessageNotifications; + + public boolean disableMentionNotifications; + + public ScopeNotificationSettings() { + } + + public ScopeNotificationSettings(int muteFor, long soundId, boolean showPreview, boolean useDefaultMuteStories, boolean muteStories, long storySoundId, boolean showStorySender, boolean disablePinnedMessageNotifications, boolean disableMentionNotifications) { + this.muteFor = muteFor; + this.soundId = soundId; + this.showPreview = showPreview; + this.useDefaultMuteStories = useDefaultMuteStories; + this.muteStories = muteStories; + this.storySoundId = storySoundId; + this.showStorySender = showStorySender; + this.disablePinnedMessageNotifications = disablePinnedMessageNotifications; + this.disableMentionNotifications = disableMentionNotifications; + } + + public static final int CONSTRUCTOR = -599105185; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public abstract static class SearchMessagesFilter extends Object { + + public SearchMessagesFilter() { + } + } + + public static class SearchMessagesFilterEmpty extends SearchMessagesFilter { + public SearchMessagesFilterEmpty() { + } + + public static final int CONSTRUCTOR = -869395657; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class SearchMessagesFilterAnimation extends SearchMessagesFilter { + public SearchMessagesFilterAnimation() { + } + + public static final int CONSTRUCTOR = -155713339; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class SearchMessagesFilterAudio extends SearchMessagesFilter { + public SearchMessagesFilterAudio() { + } + + public static final int CONSTRUCTOR = 867505275; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class SearchMessagesFilterDocument extends SearchMessagesFilter { + public SearchMessagesFilterDocument() { + } + + public static final int CONSTRUCTOR = 1526331215; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class SearchMessagesFilterPhoto extends SearchMessagesFilter { + public SearchMessagesFilterPhoto() { + } + + public static final int CONSTRUCTOR = 925932293; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class SearchMessagesFilterVideo extends SearchMessagesFilter { + public SearchMessagesFilterVideo() { + } + + public static final int CONSTRUCTOR = 115538222; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class SearchMessagesFilterVoiceNote extends SearchMessagesFilter { + public SearchMessagesFilterVoiceNote() { + } + + public static final int CONSTRUCTOR = 1841439357; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class SearchMessagesFilterPhotoAndVideo extends SearchMessagesFilter { + public SearchMessagesFilterPhotoAndVideo() { + } + + public static final int CONSTRUCTOR = 1352130963; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class SearchMessagesFilterUrl extends SearchMessagesFilter { + public SearchMessagesFilterUrl() { + } + + public static final int CONSTRUCTOR = -1828724341; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class SearchMessagesFilterChatPhoto extends SearchMessagesFilter { + public SearchMessagesFilterChatPhoto() { + } + + public static final int CONSTRUCTOR = -1247751329; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class SearchMessagesFilterVideoNote extends SearchMessagesFilter { + public SearchMessagesFilterVideoNote() { + } + + public static final int CONSTRUCTOR = 564323321; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class SearchMessagesFilterVoiceAndVideoNote extends SearchMessagesFilter { + public SearchMessagesFilterVoiceAndVideoNote() { + } + + public static final int CONSTRUCTOR = 664174819; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class SearchMessagesFilterMention extends SearchMessagesFilter { + public SearchMessagesFilterMention() { + } + + public static final int CONSTRUCTOR = 2001258652; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class SearchMessagesFilterUnreadMention extends SearchMessagesFilter { + public SearchMessagesFilterUnreadMention() { + } + + public static final int CONSTRUCTOR = -95769149; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class SearchMessagesFilterUnreadReaction extends SearchMessagesFilter { + public SearchMessagesFilterUnreadReaction() { + } + + public static final int CONSTRUCTOR = -1379651328; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class SearchMessagesFilterFailedToSend extends SearchMessagesFilter { + public SearchMessagesFilterFailedToSend() { + } + + public static final int CONSTRUCTOR = -596322564; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class SearchMessagesFilterPinned extends SearchMessagesFilter { + public SearchMessagesFilterPinned() { + } + + public static final int CONSTRUCTOR = 371805512; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class Seconds extends Object { + + public double seconds; + + public Seconds() { + } + + public Seconds(double seconds) { + this.seconds = seconds; + } + + public static final int CONSTRUCTOR = 959899022; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class SecretChat extends Object { + + public int id; + + public long userId; + + public SecretChatState state; + + public boolean isOutbound; + + public byte[] keyHash; + + public int layer; + + public SecretChat() { + } + + public SecretChat(int id, long userId, SecretChatState state, boolean isOutbound, byte[] keyHash, int layer) { + this.id = id; + this.userId = userId; + this.state = state; + this.isOutbound = isOutbound; + this.keyHash = keyHash; + this.layer = layer; + } + + public static final int CONSTRUCTOR = -676918325; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public abstract static class SecretChatState extends Object { + + public SecretChatState() { + } + } + + public static class SecretChatStatePending extends SecretChatState { + public SecretChatStatePending() { + } + + public static final int CONSTRUCTOR = -1637050756; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class SecretChatStateReady extends SecretChatState { + public SecretChatStateReady() { + } + + public static final int CONSTRUCTOR = -1611352087; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class SecretChatStateClosed extends SecretChatState { + public SecretChatStateClosed() { + } + + public static final int CONSTRUCTOR = -1945106707; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class SentWebAppMessage extends Object { + + public String inlineMessageId; + + public SentWebAppMessage() { + } + + public SentWebAppMessage(String inlineMessageId) { + this.inlineMessageId = inlineMessageId; + } + + public static final int CONSTRUCTOR = 1243934400; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class Session extends Object { + + public long id; + + public boolean isCurrent; + + public boolean isPasswordPending; + + public boolean isUnconfirmed; + + public boolean canAcceptSecretChats; + + public boolean canAcceptCalls; + + public SessionType type; + + public int apiId; + + public String applicationName; + + public String applicationVersion; + + public boolean isOfficialApplication; + + public String deviceModel; + + public String platform; + + public String systemVersion; + + public int logInDate; + + public int lastActiveDate; + + public String ipAddress; + + public String location; + + public Session() { + } + + public Session(long id, boolean isCurrent, boolean isPasswordPending, boolean isUnconfirmed, boolean canAcceptSecretChats, boolean canAcceptCalls, SessionType type, int apiId, String applicationName, String applicationVersion, boolean isOfficialApplication, String deviceModel, String platform, String systemVersion, int logInDate, int lastActiveDate, String ipAddress, String location) { + this.id = id; + this.isCurrent = isCurrent; + this.isPasswordPending = isPasswordPending; + this.isUnconfirmed = isUnconfirmed; + this.canAcceptSecretChats = canAcceptSecretChats; + this.canAcceptCalls = canAcceptCalls; + this.type = type; + this.apiId = apiId; + this.applicationName = applicationName; + this.applicationVersion = applicationVersion; + this.isOfficialApplication = isOfficialApplication; + this.deviceModel = deviceModel; + this.platform = platform; + this.systemVersion = systemVersion; + this.logInDate = logInDate; + this.lastActiveDate = lastActiveDate; + this.ipAddress = ipAddress; + this.location = location; + } + + public static final int CONSTRUCTOR = 158702140; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public abstract static class SessionType extends Object { + + public SessionType() { + } + } + + public static class SessionTypeAndroid extends SessionType { + public SessionTypeAndroid() { + } + + public static final int CONSTRUCTOR = -2071764840; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class SessionTypeApple extends SessionType { + public SessionTypeApple() { + } + + public static final int CONSTRUCTOR = -1818635701; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class SessionTypeBrave extends SessionType { + public SessionTypeBrave() { + } + + public static final int CONSTRUCTOR = -1216812563; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class SessionTypeChrome extends SessionType { + public SessionTypeChrome() { + } + + public static final int CONSTRUCTOR = 1573464425; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class SessionTypeEdge extends SessionType { + public SessionTypeEdge() { + } + + public static final int CONSTRUCTOR = -538916005; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class SessionTypeFirefox extends SessionType { + public SessionTypeFirefox() { + } + + public static final int CONSTRUCTOR = 2122579364; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class SessionTypeIpad extends SessionType { + public SessionTypeIpad() { + } + + public static final int CONSTRUCTOR = 1294647023; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class SessionTypeIphone extends SessionType { + public SessionTypeIphone() { + } + + public static final int CONSTRUCTOR = 97616573; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class SessionTypeLinux extends SessionType { + public SessionTypeLinux() { + } + + public static final int CONSTRUCTOR = -1487422871; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class SessionTypeMac extends SessionType { + public SessionTypeMac() { + } + + public static final int CONSTRUCTOR = -612250975; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class SessionTypeOpera extends SessionType { + public SessionTypeOpera() { + } + + public static final int CONSTRUCTOR = -1463673734; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class SessionTypeSafari extends SessionType { + public SessionTypeSafari() { + } + + public static final int CONSTRUCTOR = 710646873; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class SessionTypeUbuntu extends SessionType { + public SessionTypeUbuntu() { + } + + public static final int CONSTRUCTOR = 1569680069; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class SessionTypeUnknown extends SessionType { + public SessionTypeUnknown() { + } + + public static final int CONSTRUCTOR = 233926704; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class SessionTypeVivaldi extends SessionType { + public SessionTypeVivaldi() { + } + + public static final int CONSTRUCTOR = 1120503279; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class SessionTypeWindows extends SessionType { + public SessionTypeWindows() { + } + + public static final int CONSTRUCTOR = -1676512600; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class SessionTypeXbox extends SessionType { + public SessionTypeXbox() { + } + + public static final int CONSTRUCTOR = 1856216492; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class Sessions extends Object { + + public Session[] sessions; + + public int inactiveSessionTtlDays; + + public Sessions() { + } + + public Sessions(Session[] sessions, int inactiveSessionTtlDays) { + this.sessions = sessions; + this.inactiveSessionTtlDays = inactiveSessionTtlDays; + } + + public static final int CONSTRUCTOR = 842912274; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class SharedChat extends Object { + + public long chatId; + + public String title; + + public String username; + + public Photo photo; + + public SharedChat() { + } + + public SharedChat(long chatId, String title, String username, Photo photo) { + this.chatId = chatId; + this.title = title; + this.username = username; + this.photo = photo; + } + + public static final int CONSTRUCTOR = 1250406426; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class SharedUser extends Object { + + public long userId; + + public String firstName; + + public String lastName; + + public String username; + + public Photo photo; + + public SharedUser() { + } + + public SharedUser(long userId, String firstName, String lastName, String username, Photo photo) { + this.userId = userId; + this.firstName = firstName; + this.lastName = lastName; + this.username = username; + this.photo = photo; + } + + public static final int CONSTRUCTOR = 293020919; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class ShippingOption extends Object { + + public String id; + + public String title; + + public LabeledPricePart[] priceParts; + + public ShippingOption() { + } + + public ShippingOption(String id, String title, LabeledPricePart[] priceParts) { + this.id = id; + this.title = title; + this.priceParts = priceParts; + } + + public static final int CONSTRUCTOR = 1425690001; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public abstract static class SpeechRecognitionResult extends Object { + + public SpeechRecognitionResult() { + } + } + + public static class SpeechRecognitionResultPending extends SpeechRecognitionResult { + + public String partialText; + + public SpeechRecognitionResultPending() { + } + + public SpeechRecognitionResultPending(String partialText) { + this.partialText = partialText; + } + + public static final int CONSTRUCTOR = -1631810048; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class SpeechRecognitionResultText extends SpeechRecognitionResult { + + public String text; + + public SpeechRecognitionResultText() { + } + + public SpeechRecognitionResultText(String text) { + this.text = text; + } + + public static final int CONSTRUCTOR = -2132377123; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class SpeechRecognitionResultError extends SpeechRecognitionResult { + + public Error error; + + public SpeechRecognitionResultError() { + } + + public SpeechRecognitionResultError(Error error) { + this.error = error; + } + + public static final int CONSTRUCTOR = 164774908; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class SponsoredMessage extends Object { + + public long messageId; + + public boolean isRecommended; + + public boolean canBeReported; + + public MessageContent content; + + public MessageSponsor sponsor; + + public String title; + + public String buttonText; + + public int accentColorId; + + public long backgroundCustomEmojiId; + + public String additionalInfo; + + public SponsoredMessage() { + } + + public SponsoredMessage(long messageId, boolean isRecommended, boolean canBeReported, MessageContent content, MessageSponsor sponsor, String title, String buttonText, int accentColorId, long backgroundCustomEmojiId, String additionalInfo) { + this.messageId = messageId; + this.isRecommended = isRecommended; + this.canBeReported = canBeReported; + this.content = content; + this.sponsor = sponsor; + this.title = title; + this.buttonText = buttonText; + this.accentColorId = accentColorId; + this.backgroundCustomEmojiId = backgroundCustomEmojiId; + this.additionalInfo = additionalInfo; + } + + public static final int CONSTRUCTOR = -1215476699; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class SponsoredMessages extends Object { + + public SponsoredMessage[] messages; + + public int messagesBetween; + + public SponsoredMessages() { + } + + public SponsoredMessages(SponsoredMessage[] messages, int messagesBetween) { + this.messages = messages; + this.messagesBetween = messagesBetween; + } + + public static final int CONSTRUCTOR = -537674389; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class StarAmount extends Object { + + public long starCount; + + public int nanostarCount; + + public StarAmount() { + } + + public StarAmount(long starCount, int nanostarCount) { + this.starCount = starCount; + this.nanostarCount = nanostarCount; + } + + public static final int CONSTRUCTOR = 1863216512; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class StarGiveawayPaymentOption extends Object { + + public String currency; + + public long amount; + + public long starCount; + + public String storeProductId; + + public int yearlyBoostCount; + + public StarGiveawayWinnerOption[] winnerOptions; + + public boolean isDefault; + + public boolean isAdditional; + + public StarGiveawayPaymentOption() { + } + + public StarGiveawayPaymentOption(String currency, long amount, long starCount, String storeProductId, int yearlyBoostCount, StarGiveawayWinnerOption[] winnerOptions, boolean isDefault, boolean isAdditional) { + this.currency = currency; + this.amount = amount; + this.starCount = starCount; + this.storeProductId = storeProductId; + this.yearlyBoostCount = yearlyBoostCount; + this.winnerOptions = winnerOptions; + this.isDefault = isDefault; + this.isAdditional = isAdditional; + } + + public static final int CONSTRUCTOR = 565089625; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class StarGiveawayPaymentOptions extends Object { + + public StarGiveawayPaymentOption[] options; + + public StarGiveawayPaymentOptions() { + } + + public StarGiveawayPaymentOptions(StarGiveawayPaymentOption[] options) { + this.options = options; + } + + public static final int CONSTRUCTOR = -1216716679; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class StarGiveawayWinnerOption extends Object { + + public int winnerCount; + + public long wonStarCount; + + public boolean isDefault; + + public StarGiveawayWinnerOption() { + } + + public StarGiveawayWinnerOption(int winnerCount, long wonStarCount, boolean isDefault) { + this.winnerCount = winnerCount; + this.wonStarCount = wonStarCount; + this.isDefault = isDefault; + } + + public static final int CONSTRUCTOR = -865888761; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class StarPaymentOption extends Object { + + public String currency; + + public long amount; + + public long starCount; + + public String storeProductId; + + public boolean isAdditional; + + public StarPaymentOption() { + } + + public StarPaymentOption(String currency, long amount, long starCount, String storeProductId, boolean isAdditional) { + this.currency = currency; + this.amount = amount; + this.starCount = starCount; + this.storeProductId = storeProductId; + this.isAdditional = isAdditional; + } + + public static final int CONSTRUCTOR = -1364056047; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class StarPaymentOptions extends Object { + + public StarPaymentOption[] options; + + public StarPaymentOptions() { + } + + public StarPaymentOptions(StarPaymentOption[] options) { + this.options = options; + } + + public static final int CONSTRUCTOR = -423720498; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class StarRevenueStatistics extends Object { + + public StatisticalGraph revenueByDayGraph; + + public StarRevenueStatus status; + + public double usdRate; + + public StarRevenueStatistics() { + } + + public StarRevenueStatistics(StatisticalGraph revenueByDayGraph, StarRevenueStatus status, double usdRate) { + this.revenueByDayGraph = revenueByDayGraph; + this.status = status; + this.usdRate = usdRate; + } + + public static final int CONSTRUCTOR = -1121086889; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class StarRevenueStatus extends Object { + + public StarAmount totalAmount; + + public StarAmount currentAmount; + + public StarAmount availableAmount; + + public boolean withdrawalEnabled; + + public int nextWithdrawalIn; + + public StarRevenueStatus() { + } + + public StarRevenueStatus(StarAmount totalAmount, StarAmount currentAmount, StarAmount availableAmount, boolean withdrawalEnabled, int nextWithdrawalIn) { + this.totalAmount = totalAmount; + this.currentAmount = currentAmount; + this.availableAmount = availableAmount; + this.withdrawalEnabled = withdrawalEnabled; + this.nextWithdrawalIn = nextWithdrawalIn; + } + + public static final int CONSTRUCTOR = 2006266600; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class StarSubscription extends Object { + + public String id; + + public long chatId; + + public int expirationDate; + + public boolean isCanceled; + + public boolean isExpiring; + + public StarSubscriptionPricing pricing; + + public StarSubscriptionType type; + + public StarSubscription() { + } + + public StarSubscription(String id, long chatId, int expirationDate, boolean isCanceled, boolean isExpiring, StarSubscriptionPricing pricing, StarSubscriptionType type) { + this.id = id; + this.chatId = chatId; + this.expirationDate = expirationDate; + this.isCanceled = isCanceled; + this.isExpiring = isExpiring; + this.pricing = pricing; + this.type = type; + } + + public static final int CONSTRUCTOR = 976753141; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class StarSubscriptionPricing extends Object { + + public int period; + + public long starCount; + + public StarSubscriptionPricing() { + } + + public StarSubscriptionPricing(int period, long starCount) { + this.period = period; + this.starCount = starCount; + } + + public static final int CONSTRUCTOR = -1767733162; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public abstract static class StarSubscriptionType extends Object { + + public StarSubscriptionType() { + } + } + + public static class StarSubscriptionTypeChannel extends StarSubscriptionType { + + public boolean canReuse; + + public String inviteLink; + + public StarSubscriptionTypeChannel() { + } + + public StarSubscriptionTypeChannel(boolean canReuse, String inviteLink) { + this.canReuse = canReuse; + this.inviteLink = inviteLink; + } + + public static final int CONSTRUCTOR = -1030048011; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class StarSubscriptionTypeBot extends StarSubscriptionType { + + public boolean isCanceledByBot; + + public String title; + + public Photo photo; + + public String invoiceLink; + + public StarSubscriptionTypeBot() { + } + + public StarSubscriptionTypeBot(boolean isCanceledByBot, String title, Photo photo, String invoiceLink) { + this.isCanceledByBot = isCanceledByBot; + this.title = title; + this.photo = photo; + this.invoiceLink = invoiceLink; + } + + public static final int CONSTRUCTOR = 226024914; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class StarSubscriptions extends Object { + + public StarAmount starAmount; + + public StarSubscription[] subscriptions; + + public long requiredStarCount; + + public String nextOffset; + + public StarSubscriptions() { + } + + public StarSubscriptions(StarAmount starAmount, StarSubscription[] subscriptions, long requiredStarCount, String nextOffset) { + this.starAmount = starAmount; + this.subscriptions = subscriptions; + this.requiredStarCount = requiredStarCount; + this.nextOffset = nextOffset; + } + + public static final int CONSTRUCTOR = 151169395; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class StarTransaction extends Object { + + public String id; + + public StarAmount starAmount; + + public boolean isRefund; + + public int date; + + public StarTransactionType type; + + public StarTransaction() { + } + + public StarTransaction(String id, StarAmount starAmount, boolean isRefund, int date, StarTransactionType type) { + this.id = id; + this.starAmount = starAmount; + this.isRefund = isRefund; + this.date = date; + this.type = type; + } + + public static final int CONSTRUCTOR = 2139228816; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public abstract static class StarTransactionDirection extends Object { + + public StarTransactionDirection() { + } + } + + public static class StarTransactionDirectionIncoming extends StarTransactionDirection { + public StarTransactionDirectionIncoming() { + } + + public static final int CONSTRUCTOR = -1295335866; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class StarTransactionDirectionOutgoing extends StarTransactionDirection { + public StarTransactionDirectionOutgoing() { + } + + public static final int CONSTRUCTOR = 1854125472; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public abstract static class StarTransactionType extends Object { + + public StarTransactionType() { + } + } + + public static class StarTransactionTypePremiumBotDeposit extends StarTransactionType { + public StarTransactionTypePremiumBotDeposit() { + } + + public static final int CONSTRUCTOR = -663156466; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class StarTransactionTypeAppStoreDeposit extends StarTransactionType { + public StarTransactionTypeAppStoreDeposit() { + } + + public static final int CONSTRUCTOR = 136853825; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class StarTransactionTypeGooglePlayDeposit extends StarTransactionType { + public StarTransactionTypeGooglePlayDeposit() { + } + + public static final int CONSTRUCTOR = -323111338; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class StarTransactionTypeFragmentDeposit extends StarTransactionType { + public StarTransactionTypeFragmentDeposit() { + } + + public static final int CONSTRUCTOR = 123887172; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class StarTransactionTypeUserDeposit extends StarTransactionType { + + public long userId; + + public Sticker sticker; + + public StarTransactionTypeUserDeposit() { + } + + public StarTransactionTypeUserDeposit(long userId, Sticker sticker) { + this.userId = userId; + this.sticker = sticker; + } + + public static final int CONSTRUCTOR = 204085481; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class StarTransactionTypeGiveawayDeposit extends StarTransactionType { + + public long chatId; + + public long giveawayMessageId; + + public StarTransactionTypeGiveawayDeposit() { + } + + public StarTransactionTypeGiveawayDeposit(long chatId, long giveawayMessageId) { + this.chatId = chatId; + this.giveawayMessageId = giveawayMessageId; + } + + public static final int CONSTRUCTOR = -1318977338; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class StarTransactionTypeFragmentWithdrawal extends StarTransactionType { + + public RevenueWithdrawalState withdrawalState; + + public StarTransactionTypeFragmentWithdrawal() { + } + + public StarTransactionTypeFragmentWithdrawal(RevenueWithdrawalState withdrawalState) { + this.withdrawalState = withdrawalState; + } + + public static final int CONSTRUCTOR = -1355142766; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class StarTransactionTypeTelegramAdsWithdrawal extends StarTransactionType { + public StarTransactionTypeTelegramAdsWithdrawal() { + } + + public static final int CONSTRUCTOR = -1517386647; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class StarTransactionTypeTelegramApiUsage extends StarTransactionType { + + public int requestCount; + + public StarTransactionTypeTelegramApiUsage() { + } + + public StarTransactionTypeTelegramApiUsage(int requestCount) { + this.requestCount = requestCount; + } + + public static final int CONSTRUCTOR = 665332478; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class StarTransactionTypeBotPaidMediaPurchase extends StarTransactionType { + + public long userId; + + public PaidMedia[] media; + + public StarTransactionTypeBotPaidMediaPurchase() { + } + + public StarTransactionTypeBotPaidMediaPurchase(long userId, PaidMedia[] media) { + this.userId = userId; + this.media = media; + } + + public static final int CONSTRUCTOR = 976645509; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class StarTransactionTypeBotPaidMediaSale extends StarTransactionType { + + public long userId; + + public PaidMedia[] media; + + public String payload; + + public AffiliateInfo affiliate; + + public StarTransactionTypeBotPaidMediaSale() { + } + + public StarTransactionTypeBotPaidMediaSale(long userId, PaidMedia[] media, String payload, AffiliateInfo affiliate) { + this.userId = userId; + this.media = media; + this.payload = payload; + this.affiliate = affiliate; + } + + public static final int CONSTRUCTOR = -1034408372; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class StarTransactionTypeChannelPaidMediaPurchase extends StarTransactionType { + + public long chatId; + + public long messageId; + + public PaidMedia[] media; + + public StarTransactionTypeChannelPaidMediaPurchase() { + } + + public StarTransactionTypeChannelPaidMediaPurchase(long chatId, long messageId, PaidMedia[] media) { + this.chatId = chatId; + this.messageId = messageId; + this.media = media; + } + + public static final int CONSTRUCTOR = -1321281338; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class StarTransactionTypeChannelPaidMediaSale extends StarTransactionType { + + public long userId; + + public long messageId; + + public PaidMedia[] media; + + public StarTransactionTypeChannelPaidMediaSale() { + } + + public StarTransactionTypeChannelPaidMediaSale(long userId, long messageId, PaidMedia[] media) { + this.userId = userId; + this.messageId = messageId; + this.media = media; + } + + public static final int CONSTRUCTOR = 52587085; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class StarTransactionTypeBotInvoicePurchase extends StarTransactionType { + + public long userId; + + public ProductInfo productInfo; + + public StarTransactionTypeBotInvoicePurchase() { + } + + public StarTransactionTypeBotInvoicePurchase(long userId, ProductInfo productInfo) { + this.userId = userId; + this.productInfo = productInfo; + } + + public static final int CONSTRUCTOR = 501066764; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class StarTransactionTypeBotInvoiceSale extends StarTransactionType { + + public long userId; + + public ProductInfo productInfo; + + public byte[] invoicePayload; + + public AffiliateInfo affiliate; + + public StarTransactionTypeBotInvoiceSale() { + } + + public StarTransactionTypeBotInvoiceSale(long userId, ProductInfo productInfo, byte[] invoicePayload, AffiliateInfo affiliate) { + this.userId = userId; + this.productInfo = productInfo; + this.invoicePayload = invoicePayload; + this.affiliate = affiliate; + } + + public static final int CONSTRUCTOR = 1534954799; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class StarTransactionTypeBotSubscriptionPurchase extends StarTransactionType { + + public long userId; + + public int subscriptionPeriod; + + public ProductInfo productInfo; + + public StarTransactionTypeBotSubscriptionPurchase() { + } + + public StarTransactionTypeBotSubscriptionPurchase(long userId, int subscriptionPeriod, ProductInfo productInfo) { + this.userId = userId; + this.subscriptionPeriod = subscriptionPeriod; + this.productInfo = productInfo; + } + + public static final int CONSTRUCTOR = 1086264149; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class StarTransactionTypeBotSubscriptionSale extends StarTransactionType { + + public long userId; + + public int subscriptionPeriod; + + public ProductInfo productInfo; + + public byte[] invoicePayload; + + public AffiliateInfo affiliate; + + public StarTransactionTypeBotSubscriptionSale() { + } + + public StarTransactionTypeBotSubscriptionSale(long userId, int subscriptionPeriod, ProductInfo productInfo, byte[] invoicePayload, AffiliateInfo affiliate) { + this.userId = userId; + this.subscriptionPeriod = subscriptionPeriod; + this.productInfo = productInfo; + this.invoicePayload = invoicePayload; + this.affiliate = affiliate; + } + + public static final int CONSTRUCTOR = 526936201; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class StarTransactionTypeChannelSubscriptionPurchase extends StarTransactionType { + + public long chatId; + + public int subscriptionPeriod; + + public StarTransactionTypeChannelSubscriptionPurchase() { + } + + public StarTransactionTypeChannelSubscriptionPurchase(long chatId, int subscriptionPeriod) { + this.chatId = chatId; + this.subscriptionPeriod = subscriptionPeriod; + } + + public static final int CONSTRUCTOR = 940487633; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class StarTransactionTypeChannelSubscriptionSale extends StarTransactionType { + + public long userId; + + public int subscriptionPeriod; + + public StarTransactionTypeChannelSubscriptionSale() { + } + + public StarTransactionTypeChannelSubscriptionSale(long userId, int subscriptionPeriod) { + this.userId = userId; + this.subscriptionPeriod = subscriptionPeriod; + } + + public static final int CONSTRUCTOR = -32342910; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class StarTransactionTypeGiftPurchase extends StarTransactionType { + + public long userId; + + public Gift gift; + + public StarTransactionTypeGiftPurchase() { + } + + public StarTransactionTypeGiftPurchase(long userId, Gift gift) { + this.userId = userId; + this.gift = gift; + } + + public static final int CONSTRUCTOR = -278979246; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class StarTransactionTypeGiftSale extends StarTransactionType { + + public long userId; + + public Gift gift; + + public StarTransactionTypeGiftSale() { + } + + public StarTransactionTypeGiftSale(long userId, Gift gift) { + this.userId = userId; + this.gift = gift; + } + + public static final int CONSTRUCTOR = 1691750743; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class StarTransactionTypeChannelPaidReactionSend extends StarTransactionType { + + public long chatId; + + public long messageId; + + public StarTransactionTypeChannelPaidReactionSend() { + } + + public StarTransactionTypeChannelPaidReactionSend(long chatId, long messageId) { + this.chatId = chatId; + this.messageId = messageId; + } + + public static final int CONSTRUCTOR = -1071224896; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class StarTransactionTypeChannelPaidReactionReceive extends StarTransactionType { + + public long userId; + + public long messageId; + + public StarTransactionTypeChannelPaidReactionReceive() { + } + + public StarTransactionTypeChannelPaidReactionReceive(long userId, long messageId) { + this.userId = userId; + this.messageId = messageId; + } + + public static final int CONSTRUCTOR = 601291243; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class StarTransactionTypeAffiliateProgramCommission extends StarTransactionType { + + public long chatId; + + public int commissionPerMille; + + public StarTransactionTypeAffiliateProgramCommission() { + } + + public StarTransactionTypeAffiliateProgramCommission(long chatId, int commissionPerMille) { + this.chatId = chatId; + this.commissionPerMille = commissionPerMille; + } + + public static final int CONSTRUCTOR = -1704757901; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class StarTransactionTypeUnsupported extends StarTransactionType { + public StarTransactionTypeUnsupported() { + } + + public static final int CONSTRUCTOR = 1993329330; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class StarTransactions extends Object { + + public StarAmount starAmount; + + public StarTransaction[] transactions; + + public String nextOffset; + + public StarTransactions() { + } + + public StarTransactions(StarAmount starAmount, StarTransaction[] transactions, String nextOffset) { + this.starAmount = starAmount; + this.transactions = transactions; + this.nextOffset = nextOffset; + } + + public static final int CONSTRUCTOR = 1218437859; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public abstract static class StatisticalGraph extends Object { + + public StatisticalGraph() { + } + } + + public static class StatisticalGraphData extends StatisticalGraph { + + public String jsonData; + + public String zoomToken; + + public StatisticalGraphData() { + } + + public StatisticalGraphData(String jsonData, String zoomToken) { + this.jsonData = jsonData; + this.zoomToken = zoomToken; + } + + public static final int CONSTRUCTOR = -1988940244; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class StatisticalGraphAsync extends StatisticalGraph { + + public String token; + + public StatisticalGraphAsync() { + } + + public StatisticalGraphAsync(String token) { + this.token = token; + } + + public static final int CONSTRUCTOR = 435891103; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class StatisticalGraphError extends StatisticalGraph { + + public String errorMessage; + + public StatisticalGraphError() { + } + + public StatisticalGraphError(String errorMessage) { + this.errorMessage = errorMessage; + } + + public static final int CONSTRUCTOR = -1006788526; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class StatisticalValue extends Object { + + public double value; + + public double previousValue; + + public double growthRatePercentage; + + public StatisticalValue() { + } + + public StatisticalValue(double value, double previousValue, double growthRatePercentage) { + this.value = value; + this.previousValue = previousValue; + this.growthRatePercentage = growthRatePercentage; + } + + public static final int CONSTRUCTOR = 1651337846; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class Sticker extends Object { + + public long id; + + public long setId; + + public int width; + + public int height; + + public String emoji; + + public StickerFormat format; + + public StickerFullType fullType; + + public Thumbnail thumbnail; + + public File sticker; + + public Sticker() { + } + + public Sticker(long id, long setId, int width, int height, String emoji, StickerFormat format, StickerFullType fullType, Thumbnail thumbnail, File sticker) { + this.id = id; + this.setId = setId; + this.width = width; + this.height = height; + this.emoji = emoji; + this.format = format; + this.fullType = fullType; + this.thumbnail = thumbnail; + this.sticker = sticker; + } + + public static final int CONSTRUCTOR = -647013057; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public abstract static class StickerFormat extends Object { + + public StickerFormat() { + } + } + + public static class StickerFormatWebp extends StickerFormat { + public StickerFormatWebp() { + } + + public static final int CONSTRUCTOR = -2123043040; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class StickerFormatTgs extends StickerFormat { + public StickerFormatTgs() { + } + + public static final int CONSTRUCTOR = 1614588662; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class StickerFormatWebm extends StickerFormat { + public StickerFormatWebm() { + } + + public static final int CONSTRUCTOR = -2070162097; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public abstract static class StickerFullType extends Object { + + public StickerFullType() { + } + } + + public static class StickerFullTypeRegular extends StickerFullType { + + public File premiumAnimation; + + public StickerFullTypeRegular() { + } + + public StickerFullTypeRegular(File premiumAnimation) { + this.premiumAnimation = premiumAnimation; + } + + public static final int CONSTRUCTOR = -2006425865; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class StickerFullTypeMask extends StickerFullType { + + public MaskPosition maskPosition; + + public StickerFullTypeMask() { + } + + public StickerFullTypeMask(MaskPosition maskPosition) { + this.maskPosition = maskPosition; + } + + public static final int CONSTRUCTOR = 652197687; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class StickerFullTypeCustomEmoji extends StickerFullType { + + public long customEmojiId; + + public boolean needsRepainting; + + public StickerFullTypeCustomEmoji() { + } + + public StickerFullTypeCustomEmoji(long customEmojiId, boolean needsRepainting) { + this.customEmojiId = customEmojiId; + this.needsRepainting = needsRepainting; + } + + public static final int CONSTRUCTOR = -1015085653; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class StickerSet extends Object { + + public long id; + + public String title; + + public String name; + + public Thumbnail thumbnail; + + public Outline thumbnailOutline; + + public boolean isOwned; + + public boolean isInstalled; + + public boolean isArchived; + + public boolean isOfficial; + + public StickerType stickerType; + + public boolean needsRepainting; + + public boolean isAllowedAsChatEmojiStatus; + + public boolean isViewed; + + public Sticker[] stickers; + + public Emojis[] emojis; + + public StickerSet() { + } + + public StickerSet(long id, String title, String name, Thumbnail thumbnail, Outline thumbnailOutline, boolean isOwned, boolean isInstalled, boolean isArchived, boolean isOfficial, StickerType stickerType, boolean needsRepainting, boolean isAllowedAsChatEmojiStatus, boolean isViewed, Sticker[] stickers, Emojis[] emojis) { + this.id = id; + this.title = title; + this.name = name; + this.thumbnail = thumbnail; + this.thumbnailOutline = thumbnailOutline; + this.isOwned = isOwned; + this.isInstalled = isInstalled; + this.isArchived = isArchived; + this.isOfficial = isOfficial; + this.stickerType = stickerType; + this.needsRepainting = needsRepainting; + this.isAllowedAsChatEmojiStatus = isAllowedAsChatEmojiStatus; + this.isViewed = isViewed; + this.stickers = stickers; + this.emojis = emojis; + } + + public static final int CONSTRUCTOR = -1783150210; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class StickerSetInfo extends Object { + + public long id; + + public String title; + + public String name; + + public Thumbnail thumbnail; + + public Outline thumbnailOutline; + + public boolean isOwned; + + public boolean isInstalled; + + public boolean isArchived; + + public boolean isOfficial; + + public StickerType stickerType; + + public boolean needsRepainting; + + public boolean isAllowedAsChatEmojiStatus; + + public boolean isViewed; + + public int size; + + public Sticker[] covers; + + public StickerSetInfo() { + } + + public StickerSetInfo(long id, String title, String name, Thumbnail thumbnail, Outline thumbnailOutline, boolean isOwned, boolean isInstalled, boolean isArchived, boolean isOfficial, StickerType stickerType, boolean needsRepainting, boolean isAllowedAsChatEmojiStatus, boolean isViewed, int size, Sticker[] covers) { + this.id = id; + this.title = title; + this.name = name; + this.thumbnail = thumbnail; + this.thumbnailOutline = thumbnailOutline; + this.isOwned = isOwned; + this.isInstalled = isInstalled; + this.isArchived = isArchived; + this.isOfficial = isOfficial; + this.stickerType = stickerType; + this.needsRepainting = needsRepainting; + this.isAllowedAsChatEmojiStatus = isAllowedAsChatEmojiStatus; + this.isViewed = isViewed; + this.size = size; + this.covers = covers; + } + + public static final int CONSTRUCTOR = -1649074729; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class StickerSets extends Object { + + public int totalCount; + + public StickerSetInfo[] sets; + + public StickerSets() { + } + + public StickerSets(int totalCount, StickerSetInfo[] sets) { + this.totalCount = totalCount; + this.sets = sets; + } + + public static final int CONSTRUCTOR = -1883828812; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public abstract static class StickerType extends Object { + + public StickerType() { + } + } + + public static class StickerTypeRegular extends StickerType { + public StickerTypeRegular() { + } + + public static final int CONSTRUCTOR = 56345973; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class StickerTypeMask extends StickerType { + public StickerTypeMask() { + } + + public static final int CONSTRUCTOR = -1765394796; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class StickerTypeCustomEmoji extends StickerType { + public StickerTypeCustomEmoji() { + } + + public static final int CONSTRUCTOR = -120752249; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class Stickers extends Object { + + public Sticker[] stickers; + + public Stickers() { + } + + public Stickers(Sticker[] stickers) { + this.stickers = stickers; + } + + public static final int CONSTRUCTOR = 1974859260; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class StorageStatistics extends Object { + + public long size; + + public int count; + + public StorageStatisticsByChat[] byChat; + + public StorageStatistics() { + } + + public StorageStatistics(long size, int count, StorageStatisticsByChat[] byChat) { + this.size = size; + this.count = count; + this.byChat = byChat; + } + + public static final int CONSTRUCTOR = 217237013; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class StorageStatisticsByChat extends Object { + + public long chatId; + + public long size; + + public int count; + + public StorageStatisticsByFileType[] byFileType; + + public StorageStatisticsByChat() { + } + + public StorageStatisticsByChat(long chatId, long size, int count, StorageStatisticsByFileType[] byFileType) { + this.chatId = chatId; + this.size = size; + this.count = count; + this.byFileType = byFileType; + } + + public static final int CONSTRUCTOR = 635434531; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class StorageStatisticsByFileType extends Object { + + public FileType fileType; + + public long size; + + public int count; + + public StorageStatisticsByFileType() { + } + + public StorageStatisticsByFileType(FileType fileType, long size, int count) { + this.fileType = fileType; + this.size = size; + this.count = count; + } + + public static final int CONSTRUCTOR = 714012840; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class StorageStatisticsFast extends Object { + + public long filesSize; + + public int fileCount; + + public long databaseSize; + + public long languagePackDatabaseSize; + + public long logSize; + + public StorageStatisticsFast() { + } + + public StorageStatisticsFast(long filesSize, int fileCount, long databaseSize, long languagePackDatabaseSize, long logSize) { + this.filesSize = filesSize; + this.fileCount = fileCount; + this.databaseSize = databaseSize; + this.languagePackDatabaseSize = languagePackDatabaseSize; + this.logSize = logSize; + } + + public static final int CONSTRUCTOR = -884922271; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public abstract static class StorePaymentPurpose extends Object { + + public StorePaymentPurpose() { + } + } + + public static class StorePaymentPurposePremiumSubscription extends StorePaymentPurpose { + + public boolean isRestore; + + public boolean isUpgrade; + + public StorePaymentPurposePremiumSubscription() { + } + + public StorePaymentPurposePremiumSubscription(boolean isRestore, boolean isUpgrade) { + this.isRestore = isRestore; + this.isUpgrade = isUpgrade; + } + + public static final int CONSTRUCTOR = 1263894804; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class StorePaymentPurposePremiumGiftCodes extends StorePaymentPurpose { + + public long boostedChatId; + + public String currency; + + public long amount; + + public long[] userIds; + + public FormattedText text; + + public StorePaymentPurposePremiumGiftCodes() { + } + + public StorePaymentPurposePremiumGiftCodes(long boostedChatId, String currency, long amount, long[] userIds, FormattedText text) { + this.boostedChatId = boostedChatId; + this.currency = currency; + this.amount = amount; + this.userIds = userIds; + this.text = text; + } + + public static final int CONSTRUCTOR = -1072286736; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class StorePaymentPurposePremiumGiveaway extends StorePaymentPurpose { + + public GiveawayParameters parameters; + + public String currency; + + public long amount; + + public StorePaymentPurposePremiumGiveaway() { + } + + public StorePaymentPurposePremiumGiveaway(GiveawayParameters parameters, String currency, long amount) { + this.parameters = parameters; + this.currency = currency; + this.amount = amount; + } + + public static final int CONSTRUCTOR = 1302624938; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class StorePaymentPurposeStarGiveaway extends StorePaymentPurpose { + + public GiveawayParameters parameters; + + public String currency; + + public long amount; + + public int winnerCount; + + public long starCount; + + public StorePaymentPurposeStarGiveaway() { + } + + public StorePaymentPurposeStarGiveaway(GiveawayParameters parameters, String currency, long amount, int winnerCount, long starCount) { + this.parameters = parameters; + this.currency = currency; + this.amount = amount; + this.winnerCount = winnerCount; + this.starCount = starCount; + } + + public static final int CONSTRUCTOR = 211212441; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class StorePaymentPurposeStars extends StorePaymentPurpose { + + public String currency; + + public long amount; + + public long starCount; + + public StorePaymentPurposeStars() { + } + + public StorePaymentPurposeStars(String currency, long amount, long starCount) { + this.currency = currency; + this.amount = amount; + this.starCount = starCount; + } + + public static final int CONSTRUCTOR = -1803497708; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class StorePaymentPurposeGiftedStars extends StorePaymentPurpose { + + public long userId; + + public String currency; + + public long amount; + + public long starCount; + + public StorePaymentPurposeGiftedStars() { + } + + public StorePaymentPurposeGiftedStars(long userId, String currency, long amount, long starCount) { + this.userId = userId; + this.currency = currency; + this.amount = amount; + this.starCount = starCount; + } + + public static final int CONSTRUCTOR = 893691428; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class Stories extends Object { + + public int totalCount; + + public Story[] stories; + + public int[] pinnedStoryIds; + + public Stories() { + } + + public Stories(int totalCount, Story[] stories, int[] pinnedStoryIds) { + this.totalCount = totalCount; + this.stories = stories; + this.pinnedStoryIds = pinnedStoryIds; + } + + public static final int CONSTRUCTOR = 670157595; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class Story extends Object { + + public int id; + + public long senderChatId; + + public MessageSender senderId; + + public int date; + + public boolean isBeingSent; + + public boolean isBeingEdited; + + public boolean isEdited; + + public boolean isPostedToChatPage; + + public boolean isVisibleOnlyForSelf; + + public boolean canBeDeleted; + + public boolean canBeEdited; + + public boolean canBeForwarded; + + public boolean canBeReplied; + + public boolean canToggleIsPostedToChatPage; + + public boolean canGetStatistics; + + public boolean canGetInteractions; + + public boolean hasExpiredViewers; + + public StoryRepostInfo repostInfo; + + public StoryInteractionInfo interactionInfo; + + public ReactionType chosenReactionType; + + public StoryPrivacySettings privacySettings; + + public StoryContent content; + + public StoryArea[] areas; + + public FormattedText caption; + + public Story() { + } + + public Story(int id, long senderChatId, MessageSender senderId, int date, boolean isBeingSent, boolean isBeingEdited, boolean isEdited, boolean isPostedToChatPage, boolean isVisibleOnlyForSelf, boolean canBeDeleted, boolean canBeEdited, boolean canBeForwarded, boolean canBeReplied, boolean canToggleIsPostedToChatPage, boolean canGetStatistics, boolean canGetInteractions, boolean hasExpiredViewers, StoryRepostInfo repostInfo, StoryInteractionInfo interactionInfo, ReactionType chosenReactionType, StoryPrivacySettings privacySettings, StoryContent content, StoryArea[] areas, FormattedText caption) { + this.id = id; + this.senderChatId = senderChatId; + this.senderId = senderId; + this.date = date; + this.isBeingSent = isBeingSent; + this.isBeingEdited = isBeingEdited; + this.isEdited = isEdited; + this.isPostedToChatPage = isPostedToChatPage; + this.isVisibleOnlyForSelf = isVisibleOnlyForSelf; + this.canBeDeleted = canBeDeleted; + this.canBeEdited = canBeEdited; + this.canBeForwarded = canBeForwarded; + this.canBeReplied = canBeReplied; + this.canToggleIsPostedToChatPage = canToggleIsPostedToChatPage; + this.canGetStatistics = canGetStatistics; + this.canGetInteractions = canGetInteractions; + this.hasExpiredViewers = hasExpiredViewers; + this.repostInfo = repostInfo; + this.interactionInfo = interactionInfo; + this.chosenReactionType = chosenReactionType; + this.privacySettings = privacySettings; + this.content = content; + this.areas = areas; + this.caption = caption; + } + + public static final int CONSTRUCTOR = -294015331; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class StoryArea extends Object { + + public StoryAreaPosition position; + + public StoryAreaType type; + + public StoryArea() { + } + + public StoryArea(StoryAreaPosition position, StoryAreaType type) { + this.position = position; + this.type = type; + } + + public static final int CONSTRUCTOR = -906033314; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class StoryAreaPosition extends Object { + + public double xPercentage; + + public double yPercentage; + + public double widthPercentage; + + public double heightPercentage; + + public double rotationAngle; + + public double cornerRadiusPercentage; + + public StoryAreaPosition() { + } + + public StoryAreaPosition(double xPercentage, double yPercentage, double widthPercentage, double heightPercentage, double rotationAngle, double cornerRadiusPercentage) { + this.xPercentage = xPercentage; + this.yPercentage = yPercentage; + this.widthPercentage = widthPercentage; + this.heightPercentage = heightPercentage; + this.rotationAngle = rotationAngle; + this.cornerRadiusPercentage = cornerRadiusPercentage; + } + + public static final int CONSTRUCTOR = -1533023124; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public abstract static class StoryAreaType extends Object { + + public StoryAreaType() { + } + } + + public static class StoryAreaTypeLocation extends StoryAreaType { + + public Location location; + + public LocationAddress address; + + public StoryAreaTypeLocation() { + } + + public StoryAreaTypeLocation(Location location, LocationAddress address) { + this.location = location; + this.address = address; + } + + public static final int CONSTRUCTOR = -1464612189; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class StoryAreaTypeVenue extends StoryAreaType { + + public Venue venue; + + public StoryAreaTypeVenue() { + } + + public StoryAreaTypeVenue(Venue venue) { + this.venue = venue; + } + + public static final int CONSTRUCTOR = 414076166; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class StoryAreaTypeSuggestedReaction extends StoryAreaType { + + public ReactionType reactionType; + + public int totalCount; + + public boolean isDark; + + public boolean isFlipped; + + public StoryAreaTypeSuggestedReaction() { + } + + public StoryAreaTypeSuggestedReaction(ReactionType reactionType, int totalCount, boolean isDark, boolean isFlipped) { + this.reactionType = reactionType; + this.totalCount = totalCount; + this.isDark = isDark; + this.isFlipped = isFlipped; + } + + public static final int CONSTRUCTOR = -111177092; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class StoryAreaTypeMessage extends StoryAreaType { + + public long chatId; + + public long messageId; + + public StoryAreaTypeMessage() { + } + + public StoryAreaTypeMessage(long chatId, long messageId) { + this.chatId = chatId; + this.messageId = messageId; + } + + public static final int CONSTRUCTOR = -1074825548; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class StoryAreaTypeLink extends StoryAreaType { + + public String url; + + public StoryAreaTypeLink() { + } + + public StoryAreaTypeLink(String url) { + this.url = url; + } + + public static final int CONSTRUCTOR = -127770235; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class StoryAreaTypeWeather extends StoryAreaType { + + public double temperature; + + public String emoji; + + public int backgroundColor; + + public StoryAreaTypeWeather() { + } + + public StoryAreaTypeWeather(double temperature, String emoji, int backgroundColor) { + this.temperature = temperature; + this.emoji = emoji; + this.backgroundColor = backgroundColor; + } + + public static final int CONSTRUCTOR = -1504150082; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public abstract static class StoryContent extends Object { + + public StoryContent() { + } + } + + public static class StoryContentPhoto extends StoryContent { + + public Photo photo; + + public StoryContentPhoto() { + } + + public StoryContentPhoto(Photo photo) { + this.photo = photo; + } + + public static final int CONSTRUCTOR = -731971504; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class StoryContentVideo extends StoryContent { + + public StoryVideo video; + + public StoryVideo alternativeVideo; + + public StoryContentVideo() { + } + + public StoryContentVideo(StoryVideo video, StoryVideo alternativeVideo) { + this.video = video; + this.alternativeVideo = alternativeVideo; + } + + public static final int CONSTRUCTOR = -1291754842; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class StoryContentUnsupported extends StoryContent { + public StoryContentUnsupported() { + } + + public static final int CONSTRUCTOR = -2033715858; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class StoryFullId extends Object { + + public long senderChatId; + + public int storyId; + + public StoryFullId() { + } + + public StoryFullId(long senderChatId, int storyId) { + this.senderChatId = senderChatId; + this.storyId = storyId; + } + + public static final int CONSTRUCTOR = 1880961525; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class StoryInfo extends Object { + + public int storyId; + + public int date; + + public boolean isForCloseFriends; + + public StoryInfo() { + } + + public StoryInfo(int storyId, int date, boolean isForCloseFriends) { + this.storyId = storyId; + this.date = date; + this.isForCloseFriends = isForCloseFriends; + } + + public static final int CONSTRUCTOR = -1986542766; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class StoryInteraction extends Object { + + public MessageSender actorId; + + public int interactionDate; + + public BlockList blockList; + + public StoryInteractionType type; + + public StoryInteraction() { + } + + public StoryInteraction(MessageSender actorId, int interactionDate, BlockList blockList, StoryInteractionType type) { + this.actorId = actorId; + this.interactionDate = interactionDate; + this.blockList = blockList; + this.type = type; + } + + public static final int CONSTRUCTOR = -702229982; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class StoryInteractionInfo extends Object { + + public int viewCount; + + public int forwardCount; + + public int reactionCount; + + public long[] recentViewerUserIds; + + public StoryInteractionInfo() { + } + + public StoryInteractionInfo(int viewCount, int forwardCount, int reactionCount, long[] recentViewerUserIds) { + this.viewCount = viewCount; + this.forwardCount = forwardCount; + this.reactionCount = reactionCount; + this.recentViewerUserIds = recentViewerUserIds; + } + + public static final int CONSTRUCTOR = -846542065; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public abstract static class StoryInteractionType extends Object { + + public StoryInteractionType() { + } + } + + public static class StoryInteractionTypeView extends StoryInteractionType { + + public ReactionType chosenReactionType; + + public StoryInteractionTypeView() { + } + + public StoryInteractionTypeView(ReactionType chosenReactionType) { + this.chosenReactionType = chosenReactionType; + } + + public static final int CONSTRUCTOR = 1407399888; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class StoryInteractionTypeForward extends StoryInteractionType { + + public Message message; + + public StoryInteractionTypeForward() { + } + + public StoryInteractionTypeForward(Message message) { + this.message = message; + } + + public static final int CONSTRUCTOR = 668089599; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class StoryInteractionTypeRepost extends StoryInteractionType { + + public Story story; + + public StoryInteractionTypeRepost() { + } + + public StoryInteractionTypeRepost(Story story) { + this.story = story; + } + + public static final int CONSTRUCTOR = -1021150780; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class StoryInteractions extends Object { + + public int totalCount; + + public int totalForwardCount; + + public int totalReactionCount; + + public StoryInteraction[] interactions; + + public String nextOffset; + + public StoryInteractions() { + } + + public StoryInteractions(int totalCount, int totalForwardCount, int totalReactionCount, StoryInteraction[] interactions, String nextOffset) { + this.totalCount = totalCount; + this.totalForwardCount = totalForwardCount; + this.totalReactionCount = totalReactionCount; + this.interactions = interactions; + this.nextOffset = nextOffset; + } + + public static final int CONSTRUCTOR = 1537062962; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public abstract static class StoryList extends Object { + + public StoryList() { + } + } + + public static class StoryListMain extends StoryList { + public StoryListMain() { + } + + public static final int CONSTRUCTOR = -672222209; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class StoryListArchive extends StoryList { + public StoryListArchive() { + } + + public static final int CONSTRUCTOR = -41900223; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public abstract static class StoryOrigin extends Object { + + public StoryOrigin() { + } + } + + public static class StoryOriginPublicStory extends StoryOrigin { + + public long chatId; + + public int storyId; + + public StoryOriginPublicStory() { + } + + public StoryOriginPublicStory(long chatId, int storyId) { + this.chatId = chatId; + this.storyId = storyId; + } + + public static final int CONSTRUCTOR = 741842878; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class StoryOriginHiddenUser extends StoryOrigin { + + public String senderName; + + public StoryOriginHiddenUser() { + } + + public StoryOriginHiddenUser(String senderName) { + this.senderName = senderName; + } + + public static final int CONSTRUCTOR = 1512016364; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public abstract static class StoryPrivacySettings extends Object { + + public StoryPrivacySettings() { + } + } + + public static class StoryPrivacySettingsEveryone extends StoryPrivacySettings { + + public long[] exceptUserIds; + + public StoryPrivacySettingsEveryone() { + } + + public StoryPrivacySettingsEveryone(long[] exceptUserIds) { + this.exceptUserIds = exceptUserIds; + } + + public static final int CONSTRUCTOR = 890847843; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class StoryPrivacySettingsContacts extends StoryPrivacySettings { + + public long[] exceptUserIds; + + public StoryPrivacySettingsContacts() { + } + + public StoryPrivacySettingsContacts(long[] exceptUserIds) { + this.exceptUserIds = exceptUserIds; + } + + public static final int CONSTRUCTOR = 50285309; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class StoryPrivacySettingsCloseFriends extends StoryPrivacySettings { + public StoryPrivacySettingsCloseFriends() { + } + + public static final int CONSTRUCTOR = 2097122144; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class StoryPrivacySettingsSelectedUsers extends StoryPrivacySettings { + + public long[] userIds; + + public StoryPrivacySettingsSelectedUsers() { + } + + public StoryPrivacySettingsSelectedUsers(long[] userIds) { + this.userIds = userIds; + } + + public static final int CONSTRUCTOR = -1885772602; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class StoryRepostInfo extends Object { + + public StoryOrigin origin; + + public boolean isContentModified; + + public StoryRepostInfo() { + } + + public StoryRepostInfo(StoryOrigin origin, boolean isContentModified) { + this.origin = origin; + this.isContentModified = isContentModified; + } + + public static final int CONSTRUCTOR = -8412096; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class StoryStatistics extends Object { + + public StatisticalGraph storyInteractionGraph; + + public StatisticalGraph storyReactionGraph; + + public StoryStatistics() { + } + + public StoryStatistics(StatisticalGraph storyInteractionGraph, StatisticalGraph storyReactionGraph) { + this.storyInteractionGraph = storyInteractionGraph; + this.storyReactionGraph = storyReactionGraph; + } + + public static final int CONSTRUCTOR = 1178897259; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class StoryVideo extends Object { + + public double duration; + + public int width; + + public int height; + + public boolean hasStickers; + + public boolean isAnimation; + + public Minithumbnail minithumbnail; + + public Thumbnail thumbnail; + + public int preloadPrefixSize; + + public double coverFrameTimestamp; + + public File video; + + public StoryVideo() { + } + + public StoryVideo(double duration, int width, int height, boolean hasStickers, boolean isAnimation, Minithumbnail minithumbnail, Thumbnail thumbnail, int preloadPrefixSize, double coverFrameTimestamp, File video) { + this.duration = duration; + this.width = width; + this.height = height; + this.hasStickers = hasStickers; + this.isAnimation = isAnimation; + this.minithumbnail = minithumbnail; + this.thumbnail = thumbnail; + this.preloadPrefixSize = preloadPrefixSize; + this.coverFrameTimestamp = coverFrameTimestamp; + this.video = video; + } + + public static final int CONSTRUCTOR = 1445661253; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public abstract static class SuggestedAction extends Object { + + public SuggestedAction() { + } + } + + public static class SuggestedActionEnableArchiveAndMuteNewChats extends SuggestedAction { + public SuggestedActionEnableArchiveAndMuteNewChats() { + } + + public static final int CONSTRUCTOR = 2017586255; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class SuggestedActionCheckPassword extends SuggestedAction { + public SuggestedActionCheckPassword() { + } + + public static final int CONSTRUCTOR = 1910534839; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class SuggestedActionCheckPhoneNumber extends SuggestedAction { + public SuggestedActionCheckPhoneNumber() { + } + + public static final int CONSTRUCTOR = 648771563; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class SuggestedActionViewChecksHint extends SuggestedAction { + public SuggestedActionViewChecksHint() { + } + + public static final int CONSTRUCTOR = 891303239; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class SuggestedActionConvertToBroadcastGroup extends SuggestedAction { + + public long supergroupId; + + public SuggestedActionConvertToBroadcastGroup() { + } + + public SuggestedActionConvertToBroadcastGroup(long supergroupId) { + this.supergroupId = supergroupId; + } + + public static final int CONSTRUCTOR = -965071304; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class SuggestedActionSetPassword extends SuggestedAction { + + public int authorizationDelay; + + public SuggestedActionSetPassword() { + } + + public SuggestedActionSetPassword(int authorizationDelay) { + this.authorizationDelay = authorizationDelay; + } + + public static final int CONSTRUCTOR = 1863613848; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class SuggestedActionUpgradePremium extends SuggestedAction { + public SuggestedActionUpgradePremium() { + } + + public static final int CONSTRUCTOR = 1890220539; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class SuggestedActionRestorePremium extends SuggestedAction { + public SuggestedActionRestorePremium() { + } + + public static final int CONSTRUCTOR = -385229468; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class SuggestedActionSubscribeToAnnualPremium extends SuggestedAction { + public SuggestedActionSubscribeToAnnualPremium() { + } + + public static final int CONSTRUCTOR = 373913787; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class SuggestedActionGiftPremiumForChristmas extends SuggestedAction { + public SuggestedActionGiftPremiumForChristmas() { + } + + public static final int CONSTRUCTOR = -1816924561; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class SuggestedActionSetBirthdate extends SuggestedAction { + public SuggestedActionSetBirthdate() { + } + + public static final int CONSTRUCTOR = -356672766; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class SuggestedActionExtendPremium extends SuggestedAction { + + public String managePremiumSubscriptionUrl; + + public SuggestedActionExtendPremium() { + } + + public SuggestedActionExtendPremium(String managePremiumSubscriptionUrl) { + this.managePremiumSubscriptionUrl = managePremiumSubscriptionUrl; + } + + public static final int CONSTRUCTOR = -566207286; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class SuggestedActionExtendStarSubscriptions extends SuggestedAction { + public SuggestedActionExtendStarSubscriptions() { + } + + public static final int CONSTRUCTOR = -47000234; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class Supergroup extends Object { + + public long id; + + public Usernames usernames; + + public int date; + + public ChatMemberStatus status; + + public int memberCount; + + public int boostLevel; + + public boolean hasLinkedChat; + + public boolean hasLocation; + + public boolean signMessages; + + public boolean showMessageSender; + + public boolean joinToSendMessages; + + public boolean joinByRequest; + + public boolean isSlowModeEnabled; + + public boolean isChannel; + + public boolean isBroadcastGroup; + + public boolean isForum; + + public boolean isVerified; + + public boolean hasSensitiveContent; + + public String restrictionReason; + + public boolean isScam; + + public boolean isFake; + + public boolean hasActiveStories; + + public boolean hasUnreadActiveStories; + + public Supergroup() { + } + + public Supergroup(long id, Usernames usernames, int date, ChatMemberStatus status, int memberCount, int boostLevel, boolean hasLinkedChat, boolean hasLocation, boolean signMessages, boolean showMessageSender, boolean joinToSendMessages, boolean joinByRequest, boolean isSlowModeEnabled, boolean isChannel, boolean isBroadcastGroup, boolean isForum, boolean isVerified, boolean hasSensitiveContent, String restrictionReason, boolean isScam, boolean isFake, boolean hasActiveStories, boolean hasUnreadActiveStories) { + this.id = id; + this.usernames = usernames; + this.date = date; + this.status = status; + this.memberCount = memberCount; + this.boostLevel = boostLevel; + this.hasLinkedChat = hasLinkedChat; + this.hasLocation = hasLocation; + this.signMessages = signMessages; + this.showMessageSender = showMessageSender; + this.joinToSendMessages = joinToSendMessages; + this.joinByRequest = joinByRequest; + this.isSlowModeEnabled = isSlowModeEnabled; + this.isChannel = isChannel; + this.isBroadcastGroup = isBroadcastGroup; + this.isForum = isForum; + this.isVerified = isVerified; + this.hasSensitiveContent = hasSensitiveContent; + this.restrictionReason = restrictionReason; + this.isScam = isScam; + this.isFake = isFake; + this.hasActiveStories = hasActiveStories; + this.hasUnreadActiveStories = hasUnreadActiveStories; + } + + public static final int CONSTRUCTOR = 212320974; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class SupergroupFullInfo extends Object { + + public ChatPhoto photo; + + public String description; + + public int memberCount; + + public int administratorCount; + + public int restrictedCount; + + public int bannedCount; + + public long linkedChatId; + + public int slowModeDelay; + + public double slowModeDelayExpiresIn; + + public boolean canEnablePaidReaction; + + public boolean canGetMembers; + + public boolean hasHiddenMembers; + + public boolean canHideMembers; + + public boolean canSetStickerSet; + + public boolean canSetLocation; + + public boolean canGetStatistics; + + public boolean canGetRevenueStatistics; + + public boolean canGetStarRevenueStatistics; + + public boolean canToggleAggressiveAntiSpam; + + public boolean isAllHistoryAvailable; + + public boolean canHaveSponsoredMessages; + + public boolean hasAggressiveAntiSpamEnabled; + + public boolean hasPaidMediaAllowed; + + public boolean hasPinnedStories; + + public int myBoostCount; + + public int unrestrictBoostCount; + + public long stickerSetId; + + public long customEmojiStickerSetId; + + public ChatLocation location; + + public ChatInviteLink inviteLink; + + public BotCommands[] botCommands; + + public long upgradedFromBasicGroupId; + + public long upgradedFromMaxMessageId; + + public SupergroupFullInfo() { + } + + public SupergroupFullInfo(ChatPhoto photo, String description, int memberCount, int administratorCount, int restrictedCount, int bannedCount, long linkedChatId, int slowModeDelay, double slowModeDelayExpiresIn, boolean canEnablePaidReaction, boolean canGetMembers, boolean hasHiddenMembers, boolean canHideMembers, boolean canSetStickerSet, boolean canSetLocation, boolean canGetStatistics, boolean canGetRevenueStatistics, boolean canGetStarRevenueStatistics, boolean canToggleAggressiveAntiSpam, boolean isAllHistoryAvailable, boolean canHaveSponsoredMessages, boolean hasAggressiveAntiSpamEnabled, boolean hasPaidMediaAllowed, boolean hasPinnedStories, int myBoostCount, int unrestrictBoostCount, long stickerSetId, long customEmojiStickerSetId, ChatLocation location, ChatInviteLink inviteLink, BotCommands[] botCommands, long upgradedFromBasicGroupId, long upgradedFromMaxMessageId) { + this.photo = photo; + this.description = description; + this.memberCount = memberCount; + this.administratorCount = administratorCount; + this.restrictedCount = restrictedCount; + this.bannedCount = bannedCount; + this.linkedChatId = linkedChatId; + this.slowModeDelay = slowModeDelay; + this.slowModeDelayExpiresIn = slowModeDelayExpiresIn; + this.canEnablePaidReaction = canEnablePaidReaction; + this.canGetMembers = canGetMembers; + this.hasHiddenMembers = hasHiddenMembers; + this.canHideMembers = canHideMembers; + this.canSetStickerSet = canSetStickerSet; + this.canSetLocation = canSetLocation; + this.canGetStatistics = canGetStatistics; + this.canGetRevenueStatistics = canGetRevenueStatistics; + this.canGetStarRevenueStatistics = canGetStarRevenueStatistics; + this.canToggleAggressiveAntiSpam = canToggleAggressiveAntiSpam; + this.isAllHistoryAvailable = isAllHistoryAvailable; + this.canHaveSponsoredMessages = canHaveSponsoredMessages; + this.hasAggressiveAntiSpamEnabled = hasAggressiveAntiSpamEnabled; + this.hasPaidMediaAllowed = hasPaidMediaAllowed; + this.hasPinnedStories = hasPinnedStories; + this.myBoostCount = myBoostCount; + this.unrestrictBoostCount = unrestrictBoostCount; + this.stickerSetId = stickerSetId; + this.customEmojiStickerSetId = customEmojiStickerSetId; + this.location = location; + this.inviteLink = inviteLink; + this.botCommands = botCommands; + this.upgradedFromBasicGroupId = upgradedFromBasicGroupId; + this.upgradedFromMaxMessageId = upgradedFromMaxMessageId; + } + + public static final int CONSTRUCTOR = 1718501070; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public abstract static class SupergroupMembersFilter extends Object { + + public SupergroupMembersFilter() { + } + } + + public static class SupergroupMembersFilterRecent extends SupergroupMembersFilter { + public SupergroupMembersFilterRecent() { + } + + public static final int CONSTRUCTOR = 1178199509; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class SupergroupMembersFilterContacts extends SupergroupMembersFilter { + + public String query; + + public SupergroupMembersFilterContacts() { + } + + public SupergroupMembersFilterContacts(String query) { + this.query = query; + } + + public static final int CONSTRUCTOR = -1282910856; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class SupergroupMembersFilterAdministrators extends SupergroupMembersFilter { + public SupergroupMembersFilterAdministrators() { + } + + public static final int CONSTRUCTOR = -2097380265; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class SupergroupMembersFilterSearch extends SupergroupMembersFilter { + + public String query; + + public SupergroupMembersFilterSearch() { + } + + public SupergroupMembersFilterSearch(String query) { + this.query = query; + } + + public static final int CONSTRUCTOR = -1696358469; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class SupergroupMembersFilterRestricted extends SupergroupMembersFilter { + + public String query; + + public SupergroupMembersFilterRestricted() { + } + + public SupergroupMembersFilterRestricted(String query) { + this.query = query; + } + + public static final int CONSTRUCTOR = -1107800034; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class SupergroupMembersFilterBanned extends SupergroupMembersFilter { + + public String query; + + public SupergroupMembersFilterBanned() { + } + + public SupergroupMembersFilterBanned(String query) { + this.query = query; + } + + public static final int CONSTRUCTOR = -1210621683; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class SupergroupMembersFilterMention extends SupergroupMembersFilter { + + public String query; + + public long messageThreadId; + + public SupergroupMembersFilterMention() { + } + + public SupergroupMembersFilterMention(String query, long messageThreadId) { + this.query = query; + this.messageThreadId = messageThreadId; + } + + public static final int CONSTRUCTOR = 947915036; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class SupergroupMembersFilterBots extends SupergroupMembersFilter { + public SupergroupMembersFilterBots() { + } + + public static final int CONSTRUCTOR = 492138918; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class TMeUrl extends Object { + + public String url; + + public TMeUrlType type; + + public TMeUrl() { + } + + public TMeUrl(String url, TMeUrlType type) { + this.url = url; + this.type = type; + } + + public static final int CONSTRUCTOR = -1140786622; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public abstract static class TMeUrlType extends Object { + + public TMeUrlType() { + } + } + + public static class TMeUrlTypeUser extends TMeUrlType { + + public long userId; + + public TMeUrlTypeUser() { + } + + public TMeUrlTypeUser(long userId) { + this.userId = userId; + } + + public static final int CONSTRUCTOR = 125336602; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class TMeUrlTypeSupergroup extends TMeUrlType { + + public long supergroupId; + + public TMeUrlTypeSupergroup() { + } + + public TMeUrlTypeSupergroup(long supergroupId) { + this.supergroupId = supergroupId; + } + + public static final int CONSTRUCTOR = -1353369944; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class TMeUrlTypeChatInvite extends TMeUrlType { + + public ChatInviteLinkInfo info; + + public TMeUrlTypeChatInvite() { + } + + public TMeUrlTypeChatInvite(ChatInviteLinkInfo info) { + this.info = info; + } + + public static final int CONSTRUCTOR = 313907785; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class TMeUrlTypeStickerSet extends TMeUrlType { + + public long stickerSetId; + + public TMeUrlTypeStickerSet() { + } + + public TMeUrlTypeStickerSet(long stickerSetId) { + this.stickerSetId = stickerSetId; + } + + public static final int CONSTRUCTOR = 1602473196; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class TMeUrls extends Object { + + public TMeUrl[] urls; + + public TMeUrls() { + } + + public TMeUrls(TMeUrl[] urls) { + this.urls = urls; + } + + public static final int CONSTRUCTOR = -1130595098; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public abstract static class TargetChat extends Object { + + public TargetChat() { + } + } + + public static class TargetChatCurrent extends TargetChat { + public TargetChatCurrent() { + } + + public static final int CONSTRUCTOR = -416689904; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class TargetChatChosen extends TargetChat { + + public TargetChatTypes types; + + public TargetChatChosen() { + } + + public TargetChatChosen(TargetChatTypes types) { + this.types = types; + } + + public static final int CONSTRUCTOR = -1392978522; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class TargetChatInternalLink extends TargetChat { + + public InternalLinkType link; + + public TargetChatInternalLink() { + } + + public TargetChatInternalLink(InternalLinkType link) { + this.link = link; + } + + public static final int CONSTRUCTOR = -579301408; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class TargetChatTypes extends Object { + + public boolean allowUserChats; + + public boolean allowBotChats; + + public boolean allowGroupChats; + + public boolean allowChannelChats; + + public TargetChatTypes() { + } + + public TargetChatTypes(boolean allowUserChats, boolean allowBotChats, boolean allowGroupChats, boolean allowChannelChats) { + this.allowUserChats = allowUserChats; + this.allowBotChats = allowBotChats; + this.allowGroupChats = allowGroupChats; + this.allowChannelChats = allowChannelChats; + } + + public static final int CONSTRUCTOR = 1513098833; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public abstract static class TelegramPaymentPurpose extends Object { + + public TelegramPaymentPurpose() { + } + } + + public static class TelegramPaymentPurposePremiumGiftCodes extends TelegramPaymentPurpose { + + public long boostedChatId; + + public String currency; + + public long amount; + + public long[] userIds; + + public int monthCount; + + public FormattedText text; + + public TelegramPaymentPurposePremiumGiftCodes() { + } + + public TelegramPaymentPurposePremiumGiftCodes(long boostedChatId, String currency, long amount, long[] userIds, int monthCount, FormattedText text) { + this.boostedChatId = boostedChatId; + this.currency = currency; + this.amount = amount; + this.userIds = userIds; + this.monthCount = monthCount; + this.text = text; + } + + public static final int CONSTRUCTOR = -1863495348; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class TelegramPaymentPurposePremiumGiveaway extends TelegramPaymentPurpose { + + public GiveawayParameters parameters; + + public String currency; + + public long amount; + + public int winnerCount; + + public int monthCount; + + public TelegramPaymentPurposePremiumGiveaway() { + } + + public TelegramPaymentPurposePremiumGiveaway(GiveawayParameters parameters, String currency, long amount, int winnerCount, int monthCount) { + this.parameters = parameters; + this.currency = currency; + this.amount = amount; + this.winnerCount = winnerCount; + this.monthCount = monthCount; + } + + public static final int CONSTRUCTOR = -760757441; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class TelegramPaymentPurposeStars extends TelegramPaymentPurpose { + + public String currency; + + public long amount; + + public long starCount; + + public TelegramPaymentPurposeStars() { + } + + public TelegramPaymentPurposeStars(String currency, long amount, long starCount) { + this.currency = currency; + this.amount = amount; + this.starCount = starCount; + } + + public static final int CONSTRUCTOR = -495718830; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class TelegramPaymentPurposeGiftedStars extends TelegramPaymentPurpose { + + public long userId; + + public String currency; + + public long amount; + + public long starCount; + + public TelegramPaymentPurposeGiftedStars() { + } + + public TelegramPaymentPurposeGiftedStars(long userId, String currency, long amount, long starCount) { + this.userId = userId; + this.currency = currency; + this.amount = amount; + this.starCount = starCount; + } + + public static final int CONSTRUCTOR = -1850308042; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class TelegramPaymentPurposeStarGiveaway extends TelegramPaymentPurpose { + + public GiveawayParameters parameters; + + public String currency; + + public long amount; + + public int winnerCount; + + public long starCount; + + public TelegramPaymentPurposeStarGiveaway() { + } + + public TelegramPaymentPurposeStarGiveaway(GiveawayParameters parameters, String currency, long amount, int winnerCount, long starCount) { + this.parameters = parameters; + this.currency = currency; + this.amount = amount; + this.winnerCount = winnerCount; + this.starCount = starCount; + } + + public static final int CONSTRUCTOR = 1014604689; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class TelegramPaymentPurposeJoinChat extends TelegramPaymentPurpose { + + public String inviteLink; + + public TelegramPaymentPurposeJoinChat() { + } + + public TelegramPaymentPurposeJoinChat(String inviteLink) { + this.inviteLink = inviteLink; + } + + public static final int CONSTRUCTOR = -1914869880; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class TemporaryPasswordState extends Object { + + public boolean hasPassword; + + public int validFor; + + public TemporaryPasswordState() { + } + + public TemporaryPasswordState(boolean hasPassword, int validFor) { + this.hasPassword = hasPassword; + this.validFor = validFor; + } + + public static final int CONSTRUCTOR = 939837410; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class TermsOfService extends Object { + + public FormattedText text; + + public int minUserAge; + + public boolean showPopup; + + public TermsOfService() { + } + + public TermsOfService(FormattedText text, int minUserAge, boolean showPopup) { + this.text = text; + this.minUserAge = minUserAge; + this.showPopup = showPopup; + } + + public static final int CONSTRUCTOR = 739422597; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class TestBytes extends Object { + + public byte[] value; + + public TestBytes() { + } + + public TestBytes(byte[] value) { + this.value = value; + } + + public static final int CONSTRUCTOR = -1541225250; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class TestInt extends Object { + + public int value; + + public TestInt() { + } + + public TestInt(int value) { + this.value = value; + } + + public static final int CONSTRUCTOR = -574804983; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class TestString extends Object { + + public String value; + + public TestString() { + } + + public TestString(String value) { + this.value = value; + } + + public static final int CONSTRUCTOR = -27891572; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class TestVectorInt extends Object { + + public int[] value; + + public TestVectorInt() { + } + + public TestVectorInt(int[] value) { + this.value = value; + } + + public static final int CONSTRUCTOR = 593682027; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class TestVectorIntObject extends Object { + + public TestInt[] value; + + public TestVectorIntObject() { + } + + public TestVectorIntObject(TestInt[] value) { + this.value = value; + } + + public static final int CONSTRUCTOR = 125891546; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class TestVectorString extends Object { + + public String[] value; + + public TestVectorString() { + } + + public TestVectorString(String[] value) { + this.value = value; + } + + public static final int CONSTRUCTOR = 79339995; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class TestVectorStringObject extends Object { + + public TestString[] value; + + public TestVectorStringObject() { + } + + public TestVectorStringObject(TestString[] value) { + this.value = value; + } + + public static final int CONSTRUCTOR = 80780537; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class Text extends Object { + + public String text; + + public Text() { + } + + public Text(String text) { + this.text = text; + } + + public static final int CONSTRUCTOR = 578181272; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class TextEntities extends Object { + + public TextEntity[] entities; + + public TextEntities() { + } + + public TextEntities(TextEntity[] entities) { + this.entities = entities; + } + + public static final int CONSTRUCTOR = -933199172; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class TextEntity extends Object { + + public int offset; + + public int length; + + public TextEntityType type; + + public TextEntity() { + } + + public TextEntity(int offset, int length, TextEntityType type) { + this.offset = offset; + this.length = length; + this.type = type; + } + + public static final int CONSTRUCTOR = -1951688280; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public abstract static class TextEntityType extends Object { + + public TextEntityType() { + } + } + + public static class TextEntityTypeMention extends TextEntityType { + public TextEntityTypeMention() { + } + + public static final int CONSTRUCTOR = 934535013; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class TextEntityTypeHashtag extends TextEntityType { + public TextEntityTypeHashtag() { + } + + public static final int CONSTRUCTOR = -1023958307; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class TextEntityTypeCashtag extends TextEntityType { + public TextEntityTypeCashtag() { + } + + public static final int CONSTRUCTOR = 1222915915; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class TextEntityTypeBotCommand extends TextEntityType { + public TextEntityTypeBotCommand() { + } + + public static final int CONSTRUCTOR = -1150997581; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class TextEntityTypeUrl extends TextEntityType { + public TextEntityTypeUrl() { + } + + public static final int CONSTRUCTOR = -1312762756; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class TextEntityTypeEmailAddress extends TextEntityType { + public TextEntityTypeEmailAddress() { + } + + public static final int CONSTRUCTOR = 1425545249; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class TextEntityTypePhoneNumber extends TextEntityType { + public TextEntityTypePhoneNumber() { + } + + public static final int CONSTRUCTOR = -1160140246; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class TextEntityTypeBankCardNumber extends TextEntityType { + public TextEntityTypeBankCardNumber() { + } + + public static final int CONSTRUCTOR = 105986320; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class TextEntityTypeBold extends TextEntityType { + public TextEntityTypeBold() { + } + + public static final int CONSTRUCTOR = -1128210000; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class TextEntityTypeItalic extends TextEntityType { + public TextEntityTypeItalic() { + } + + public static final int CONSTRUCTOR = -118253987; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class TextEntityTypeUnderline extends TextEntityType { + public TextEntityTypeUnderline() { + } + + public static final int CONSTRUCTOR = 792317842; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class TextEntityTypeStrikethrough extends TextEntityType { + public TextEntityTypeStrikethrough() { + } + + public static final int CONSTRUCTOR = 961529082; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class TextEntityTypeSpoiler extends TextEntityType { + public TextEntityTypeSpoiler() { + } + + public static final int CONSTRUCTOR = 544019899; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class TextEntityTypeCode extends TextEntityType { + public TextEntityTypeCode() { + } + + public static final int CONSTRUCTOR = -974534326; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class TextEntityTypePre extends TextEntityType { + public TextEntityTypePre() { + } + + public static final int CONSTRUCTOR = 1648958606; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class TextEntityTypePreCode extends TextEntityType { + + public String language; + + public TextEntityTypePreCode() { + } + + public TextEntityTypePreCode(String language) { + this.language = language; + } + + public static final int CONSTRUCTOR = -945325397; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class TextEntityTypeBlockQuote extends TextEntityType { + public TextEntityTypeBlockQuote() { + } + + public static final int CONSTRUCTOR = -1003999032; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class TextEntityTypeExpandableBlockQuote extends TextEntityType { + public TextEntityTypeExpandableBlockQuote() { + } + + public static final int CONSTRUCTOR = 36572261; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class TextEntityTypeTextUrl extends TextEntityType { + + public String url; + + public TextEntityTypeTextUrl() { + } + + public TextEntityTypeTextUrl(String url) { + this.url = url; + } + + public static final int CONSTRUCTOR = 445719651; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class TextEntityTypeMentionName extends TextEntityType { + + public long userId; + + public TextEntityTypeMentionName() { + } + + public TextEntityTypeMentionName(long userId) { + this.userId = userId; + } + + public static final int CONSTRUCTOR = -1570974289; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class TextEntityTypeCustomEmoji extends TextEntityType { + + public long customEmojiId; + + public TextEntityTypeCustomEmoji() { + } + + public TextEntityTypeCustomEmoji(long customEmojiId) { + this.customEmojiId = customEmojiId; + } + + public static final int CONSTRUCTOR = 1724820677; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class TextEntityTypeMediaTimestamp extends TextEntityType { + + public int mediaTimestamp; + + public TextEntityTypeMediaTimestamp() { + } + + public TextEntityTypeMediaTimestamp(int mediaTimestamp) { + this.mediaTimestamp = mediaTimestamp; + } + + public static final int CONSTRUCTOR = -1841898992; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public abstract static class TextParseMode extends Object { + + public TextParseMode() { + } + } + + public static class TextParseModeMarkdown extends TextParseMode { + + public int version; + + public TextParseModeMarkdown() { + } + + public TextParseModeMarkdown(int version) { + this.version = version; + } + + public static final int CONSTRUCTOR = 360073407; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class TextParseModeHTML extends TextParseMode { + public TextParseModeHTML() { + } + + public static final int CONSTRUCTOR = 1660208627; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class TextQuote extends Object { + + public FormattedText text; + + public int position; + + public boolean isManual; + + public TextQuote() { + } + + public TextQuote(FormattedText text, int position, boolean isManual) { + this.text = text; + this.position = position; + this.isManual = isManual; + } + + public static final int CONSTRUCTOR = -2039105358; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class ThemeParameters extends Object { + + public int backgroundColor; + + public int secondaryBackgroundColor; + + public int headerBackgroundColor; + + public int bottomBarBackgroundColor; + + public int sectionBackgroundColor; + + public int sectionSeparatorColor; + + public int textColor; + + public int accentTextColor; + + public int sectionHeaderTextColor; + + public int subtitleTextColor; + + public int destructiveTextColor; + + public int hintColor; + + public int linkColor; + + public int buttonColor; + + public int buttonTextColor; + + public ThemeParameters() { + } + + public ThemeParameters(int backgroundColor, int secondaryBackgroundColor, int headerBackgroundColor, int bottomBarBackgroundColor, int sectionBackgroundColor, int sectionSeparatorColor, int textColor, int accentTextColor, int sectionHeaderTextColor, int subtitleTextColor, int destructiveTextColor, int hintColor, int linkColor, int buttonColor, int buttonTextColor) { + this.backgroundColor = backgroundColor; + this.secondaryBackgroundColor = secondaryBackgroundColor; + this.headerBackgroundColor = headerBackgroundColor; + this.bottomBarBackgroundColor = bottomBarBackgroundColor; + this.sectionBackgroundColor = sectionBackgroundColor; + this.sectionSeparatorColor = sectionSeparatorColor; + this.textColor = textColor; + this.accentTextColor = accentTextColor; + this.sectionHeaderTextColor = sectionHeaderTextColor; + this.subtitleTextColor = subtitleTextColor; + this.destructiveTextColor = destructiveTextColor; + this.hintColor = hintColor; + this.linkColor = linkColor; + this.buttonColor = buttonColor; + this.buttonTextColor = buttonTextColor; + } + + public static final int CONSTRUCTOR = -276589137; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class ThemeSettings extends Object { + + public int accentColor; + + public Background background; + + public BackgroundFill outgoingMessageFill; + + public boolean animateOutgoingMessageFill; + + public int outgoingMessageAccentColor; + + public ThemeSettings() { + } + + public ThemeSettings(int accentColor, Background background, BackgroundFill outgoingMessageFill, boolean animateOutgoingMessageFill, int outgoingMessageAccentColor) { + this.accentColor = accentColor; + this.background = background; + this.outgoingMessageFill = outgoingMessageFill; + this.animateOutgoingMessageFill = animateOutgoingMessageFill; + this.outgoingMessageAccentColor = outgoingMessageAccentColor; + } + + public static final int CONSTRUCTOR = -62120942; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class Thumbnail extends Object { + + public ThumbnailFormat format; + + public int width; + + public int height; + + public File file; + + public Thumbnail() { + } + + public Thumbnail(ThumbnailFormat format, int width, int height, File file) { + this.format = format; + this.width = width; + this.height = height; + this.file = file; + } + + public static final int CONSTRUCTOR = 1243275371; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public abstract static class ThumbnailFormat extends Object { + + public ThumbnailFormat() { + } + } + + public static class ThumbnailFormatJpeg extends ThumbnailFormat { + public ThumbnailFormatJpeg() { + } + + public static final int CONSTRUCTOR = -653503352; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class ThumbnailFormatGif extends ThumbnailFormat { + public ThumbnailFormatGif() { + } + + public static final int CONSTRUCTOR = 1252205962; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class ThumbnailFormatMpeg4 extends ThumbnailFormat { + public ThumbnailFormatMpeg4() { + } + + public static final int CONSTRUCTOR = 278616062; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class ThumbnailFormatPng extends ThumbnailFormat { + public ThumbnailFormatPng() { + } + + public static final int CONSTRUCTOR = 1577490421; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class ThumbnailFormatTgs extends ThumbnailFormat { + public ThumbnailFormatTgs() { + } + + public static final int CONSTRUCTOR = 1315522642; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class ThumbnailFormatWebm extends ThumbnailFormat { + public ThumbnailFormatWebm() { + } + + public static final int CONSTRUCTOR = -660084953; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class ThumbnailFormatWebp extends ThumbnailFormat { + public ThumbnailFormatWebp() { + } + + public static final int CONSTRUCTOR = -53588974; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class TimeZone extends Object { + + public String id; + + public String name; + + public int utcTimeOffset; + + public TimeZone() { + } + + public TimeZone(String id, String name, int utcTimeOffset) { + this.id = id; + this.name = name; + this.utcTimeOffset = utcTimeOffset; + } + + public static final int CONSTRUCTOR = -1189481763; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class TimeZones extends Object { + + public TimeZone[] timeZones; + + public TimeZones() { + } + + public TimeZones(TimeZone[] timeZones) { + this.timeZones = timeZones; + } + + public static final int CONSTRUCTOR = -334655570; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public abstract static class TopChatCategory extends Object { + + public TopChatCategory() { + } + } + + public static class TopChatCategoryUsers extends TopChatCategory { + public TopChatCategoryUsers() { + } + + public static final int CONSTRUCTOR = 1026706816; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class TopChatCategoryBots extends TopChatCategory { + public TopChatCategoryBots() { + } + + public static final int CONSTRUCTOR = -1577129195; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class TopChatCategoryGroups extends TopChatCategory { + public TopChatCategoryGroups() { + } + + public static final int CONSTRUCTOR = 1530056846; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class TopChatCategoryChannels extends TopChatCategory { + public TopChatCategoryChannels() { + } + + public static final int CONSTRUCTOR = -500825885; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class TopChatCategoryInlineBots extends TopChatCategory { + public TopChatCategoryInlineBots() { + } + + public static final int CONSTRUCTOR = 377023356; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class TopChatCategoryWebAppBots extends TopChatCategory { + public TopChatCategoryWebAppBots() { + } + + public static final int CONSTRUCTOR = 100062973; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class TopChatCategoryCalls extends TopChatCategory { + public TopChatCategoryCalls() { + } + + public static final int CONSTRUCTOR = 356208861; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class TopChatCategoryForwardChats extends TopChatCategory { + public TopChatCategoryForwardChats() { + } + + public static final int CONSTRUCTOR = 1695922133; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class TrendingStickerSets extends Object { + + public int totalCount; + + public StickerSetInfo[] sets; + + public boolean isPremium; + + public TrendingStickerSets() { + } + + public TrendingStickerSets(int totalCount, StickerSetInfo[] sets, boolean isPremium) { + this.totalCount = totalCount; + this.sets = sets; + this.isPremium = isPremium; + } + + public static final int CONSTRUCTOR = 41028940; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class UnconfirmedSession extends Object { + + public long id; + + public int logInDate; + + public String deviceModel; + + public String location; + + public UnconfirmedSession() { + } + + public UnconfirmedSession(long id, int logInDate, String deviceModel, String location) { + this.id = id; + this.logInDate = logInDate; + this.deviceModel = deviceModel; + this.location = location; + } + + public static final int CONSTRUCTOR = -2062726663; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class UnreadReaction extends Object { + + public ReactionType type; + + public MessageSender senderId; + + public boolean isBig; + + public UnreadReaction() { + } + + public UnreadReaction(ReactionType type, MessageSender senderId, boolean isBig) { + this.type = type; + this.senderId = senderId; + this.isBig = isBig; + } + + public static final int CONSTRUCTOR = -1940178046; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public abstract static class Update extends Object { + + public Update() { + } + } + + public static class UpdateAuthorizationState extends Update { + + public AuthorizationState authorizationState; + + public UpdateAuthorizationState() { + } + + public UpdateAuthorizationState(AuthorizationState authorizationState) { + this.authorizationState = authorizationState; + } + + public static final int CONSTRUCTOR = 1622347490; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class UpdateNewMessage extends Update { + + public Message message; + + public UpdateNewMessage() { + } + + public UpdateNewMessage(Message message) { + this.message = message; + } + + public static final int CONSTRUCTOR = -563105266; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class UpdateMessageSendAcknowledged extends Update { + + public long chatId; + + public long messageId; + + public UpdateMessageSendAcknowledged() { + } + + public UpdateMessageSendAcknowledged(long chatId, long messageId) { + this.chatId = chatId; + this.messageId = messageId; + } + + public static final int CONSTRUCTOR = 1302843961; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class UpdateMessageSendSucceeded extends Update { + + public Message message; + + public long oldMessageId; + + public UpdateMessageSendSucceeded() { + } + + public UpdateMessageSendSucceeded(Message message, long oldMessageId) { + this.message = message; + this.oldMessageId = oldMessageId; + } + + public static final int CONSTRUCTOR = 1815715197; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class UpdateMessageSendFailed extends Update { + + public Message message; + + public long oldMessageId; + + public Error error; + + public UpdateMessageSendFailed() { + } + + public UpdateMessageSendFailed(Message message, long oldMessageId, Error error) { + this.message = message; + this.oldMessageId = oldMessageId; + this.error = error; + } + + public static final int CONSTRUCTOR = -635701017; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class UpdateMessageContent extends Update { + + public long chatId; + + public long messageId; + + public MessageContent newContent; + + public UpdateMessageContent() { + } + + public UpdateMessageContent(long chatId, long messageId, MessageContent newContent) { + this.chatId = chatId; + this.messageId = messageId; + this.newContent = newContent; + } + + public static final int CONSTRUCTOR = 506903332; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class UpdateMessageEdited extends Update { + + public long chatId; + + public long messageId; + + public int editDate; + + public ReplyMarkup replyMarkup; + + public UpdateMessageEdited() { + } + + public UpdateMessageEdited(long chatId, long messageId, int editDate, ReplyMarkup replyMarkup) { + this.chatId = chatId; + this.messageId = messageId; + this.editDate = editDate; + this.replyMarkup = replyMarkup; + } + + public static final int CONSTRUCTOR = -559545626; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class UpdateMessageIsPinned extends Update { + + public long chatId; + + public long messageId; + + public boolean isPinned; + + public UpdateMessageIsPinned() { + } + + public UpdateMessageIsPinned(long chatId, long messageId, boolean isPinned) { + this.chatId = chatId; + this.messageId = messageId; + this.isPinned = isPinned; + } + + public static final int CONSTRUCTOR = 1102848829; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class UpdateMessageInteractionInfo extends Update { + + public long chatId; + + public long messageId; + + public MessageInteractionInfo interactionInfo; + + public UpdateMessageInteractionInfo() { + } + + public UpdateMessageInteractionInfo(long chatId, long messageId, MessageInteractionInfo interactionInfo) { + this.chatId = chatId; + this.messageId = messageId; + this.interactionInfo = interactionInfo; + } + + public static final int CONSTRUCTOR = -1417659394; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class UpdateMessageContentOpened extends Update { + + public long chatId; + + public long messageId; + + public UpdateMessageContentOpened() { + } + + public UpdateMessageContentOpened(long chatId, long messageId) { + this.chatId = chatId; + this.messageId = messageId; + } + + public static final int CONSTRUCTOR = -1520523131; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class UpdateMessageMentionRead extends Update { + + public long chatId; + + public long messageId; + + public int unreadMentionCount; + + public UpdateMessageMentionRead() { + } + + public UpdateMessageMentionRead(long chatId, long messageId, int unreadMentionCount) { + this.chatId = chatId; + this.messageId = messageId; + this.unreadMentionCount = unreadMentionCount; + } + + public static final int CONSTRUCTOR = -252228282; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class UpdateMessageUnreadReactions extends Update { + + public long chatId; + + public long messageId; + + public UnreadReaction[] unreadReactions; + + public int unreadReactionCount; + + public UpdateMessageUnreadReactions() { + } + + public UpdateMessageUnreadReactions(long chatId, long messageId, UnreadReaction[] unreadReactions, int unreadReactionCount) { + this.chatId = chatId; + this.messageId = messageId; + this.unreadReactions = unreadReactions; + this.unreadReactionCount = unreadReactionCount; + } + + public static final int CONSTRUCTOR = 942840008; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class UpdateMessageFactCheck extends Update { + + public long chatId; + + public long messageId; + + public FactCheck factCheck; + + public UpdateMessageFactCheck() { + } + + public UpdateMessageFactCheck(long chatId, long messageId, FactCheck factCheck) { + this.chatId = chatId; + this.messageId = messageId; + this.factCheck = factCheck; + } + + public static final int CONSTRUCTOR = 1014561538; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class UpdateMessageLiveLocationViewed extends Update { + + public long chatId; + + public long messageId; + + public UpdateMessageLiveLocationViewed() { + } + + public UpdateMessageLiveLocationViewed(long chatId, long messageId) { + this.chatId = chatId; + this.messageId = messageId; + } + + public static final int CONSTRUCTOR = -1308260971; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class UpdateVideoPublished extends Update { + + public long chatId; + + public long messageId; + + public UpdateVideoPublished() { + } + + public UpdateVideoPublished(long chatId, long messageId) { + this.chatId = chatId; + this.messageId = messageId; + } + + public static final int CONSTRUCTOR = -352575406; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class UpdateNewChat extends Update { + + public Chat chat; + + public UpdateNewChat() { + } + + public UpdateNewChat(Chat chat) { + this.chat = chat; + } + + public static final int CONSTRUCTOR = 2075757773; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class UpdateChatTitle extends Update { + + public long chatId; + + public String title; + + public UpdateChatTitle() { + } + + public UpdateChatTitle(long chatId, String title) { + this.chatId = chatId; + this.title = title; + } + + public static final int CONSTRUCTOR = -175405660; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class UpdateChatPhoto extends Update { + + public long chatId; + + public ChatPhotoInfo photo; + + public UpdateChatPhoto() { + } + + public UpdateChatPhoto(long chatId, ChatPhotoInfo photo) { + this.chatId = chatId; + this.photo = photo; + } + + public static final int CONSTRUCTOR = -324713921; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class UpdateChatAccentColors extends Update { + + public long chatId; + + public int accentColorId; + + public long backgroundCustomEmojiId; + + public int profileAccentColorId; + + public long profileBackgroundCustomEmojiId; + + public UpdateChatAccentColors() { + } + + public UpdateChatAccentColors(long chatId, int accentColorId, long backgroundCustomEmojiId, int profileAccentColorId, long profileBackgroundCustomEmojiId) { + this.chatId = chatId; + this.accentColorId = accentColorId; + this.backgroundCustomEmojiId = backgroundCustomEmojiId; + this.profileAccentColorId = profileAccentColorId; + this.profileBackgroundCustomEmojiId = profileBackgroundCustomEmojiId; + } + + public static final int CONSTRUCTOR = -1212614407; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class UpdateChatPermissions extends Update { + + public long chatId; + + public ChatPermissions permissions; + + public UpdateChatPermissions() { + } + + public UpdateChatPermissions(long chatId, ChatPermissions permissions) { + this.chatId = chatId; + this.permissions = permissions; + } + + public static final int CONSTRUCTOR = -1622010003; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class UpdateChatLastMessage extends Update { + + public long chatId; + + public Message lastMessage; + + public ChatPosition[] positions; + + public UpdateChatLastMessage() { + } + + public UpdateChatLastMessage(long chatId, Message lastMessage, ChatPosition[] positions) { + this.chatId = chatId; + this.lastMessage = lastMessage; + this.positions = positions; + } + + public static final int CONSTRUCTOR = -923244537; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class UpdateChatPosition extends Update { + + public long chatId; + + public ChatPosition position; + + public UpdateChatPosition() { + } + + public UpdateChatPosition(long chatId, ChatPosition position) { + this.chatId = chatId; + this.position = position; + } + + public static final int CONSTRUCTOR = -8979849; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class UpdateChatAddedToList extends Update { + + public long chatId; + + public ChatList chatList; + + public UpdateChatAddedToList() { + } + + public UpdateChatAddedToList(long chatId, ChatList chatList) { + this.chatId = chatId; + this.chatList = chatList; + } + + public static final int CONSTRUCTOR = -1418722068; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class UpdateChatRemovedFromList extends Update { + + public long chatId; + + public ChatList chatList; + + public UpdateChatRemovedFromList() { + } + + public UpdateChatRemovedFromList(long chatId, ChatList chatList) { + this.chatId = chatId; + this.chatList = chatList; + } + + public static final int CONSTRUCTOR = 1294647836; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class UpdateChatReadInbox extends Update { + + public long chatId; + + public long lastReadInboxMessageId; + + public int unreadCount; + + public UpdateChatReadInbox() { + } + + public UpdateChatReadInbox(long chatId, long lastReadInboxMessageId, int unreadCount) { + this.chatId = chatId; + this.lastReadInboxMessageId = lastReadInboxMessageId; + this.unreadCount = unreadCount; + } + + public static final int CONSTRUCTOR = -797952281; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class UpdateChatReadOutbox extends Update { + + public long chatId; + + public long lastReadOutboxMessageId; + + public UpdateChatReadOutbox() { + } + + public UpdateChatReadOutbox(long chatId, long lastReadOutboxMessageId) { + this.chatId = chatId; + this.lastReadOutboxMessageId = lastReadOutboxMessageId; + } + + public static final int CONSTRUCTOR = 708334213; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class UpdateChatActionBar extends Update { + + public long chatId; + + public ChatActionBar actionBar; + + public UpdateChatActionBar() { + } + + public UpdateChatActionBar(long chatId, ChatActionBar actionBar) { + this.chatId = chatId; + this.actionBar = actionBar; + } + + public static final int CONSTRUCTOR = -643671870; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class UpdateChatBusinessBotManageBar extends Update { + + public long chatId; + + public BusinessBotManageBar businessBotManageBar; + + public UpdateChatBusinessBotManageBar() { + } + + public UpdateChatBusinessBotManageBar(long chatId, BusinessBotManageBar businessBotManageBar) { + this.chatId = chatId; + this.businessBotManageBar = businessBotManageBar; + } + + public static final int CONSTRUCTOR = -1104091145; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class UpdateChatAvailableReactions extends Update { + + public long chatId; + + public ChatAvailableReactions availableReactions; + + public UpdateChatAvailableReactions() { + } + + public UpdateChatAvailableReactions(long chatId, ChatAvailableReactions availableReactions) { + this.chatId = chatId; + this.availableReactions = availableReactions; + } + + public static final int CONSTRUCTOR = -1967909895; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class UpdateChatDraftMessage extends Update { + + public long chatId; + + public DraftMessage draftMessage; + + public ChatPosition[] positions; + + public UpdateChatDraftMessage() { + } + + public UpdateChatDraftMessage(long chatId, DraftMessage draftMessage, ChatPosition[] positions) { + this.chatId = chatId; + this.draftMessage = draftMessage; + this.positions = positions; + } + + public static final int CONSTRUCTOR = 1455190380; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class UpdateChatEmojiStatus extends Update { + + public long chatId; + + public EmojiStatus emojiStatus; + + public UpdateChatEmojiStatus() { + } + + public UpdateChatEmojiStatus(long chatId, EmojiStatus emojiStatus) { + this.chatId = chatId; + this.emojiStatus = emojiStatus; + } + + public static final int CONSTRUCTOR = 2004444432; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class UpdateChatMessageSender extends Update { + + public long chatId; + + public MessageSender messageSenderId; + + public UpdateChatMessageSender() { + } + + public UpdateChatMessageSender(long chatId, MessageSender messageSenderId) { + this.chatId = chatId; + this.messageSenderId = messageSenderId; + } + + public static final int CONSTRUCTOR = 2003849793; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class UpdateChatMessageAutoDeleteTime extends Update { + + public long chatId; + + public int messageAutoDeleteTime; + + public UpdateChatMessageAutoDeleteTime() { + } + + public UpdateChatMessageAutoDeleteTime(long chatId, int messageAutoDeleteTime) { + this.chatId = chatId; + this.messageAutoDeleteTime = messageAutoDeleteTime; + } + + public static final int CONSTRUCTOR = 1900174821; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class UpdateChatNotificationSettings extends Update { + + public long chatId; + + public ChatNotificationSettings notificationSettings; + + public UpdateChatNotificationSettings() { + } + + public UpdateChatNotificationSettings(long chatId, ChatNotificationSettings notificationSettings) { + this.chatId = chatId; + this.notificationSettings = notificationSettings; + } + + public static final int CONSTRUCTOR = -803163050; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class UpdateChatPendingJoinRequests extends Update { + + public long chatId; + + public ChatJoinRequestsInfo pendingJoinRequests; + + public UpdateChatPendingJoinRequests() { + } + + public UpdateChatPendingJoinRequests(long chatId, ChatJoinRequestsInfo pendingJoinRequests) { + this.chatId = chatId; + this.pendingJoinRequests = pendingJoinRequests; + } + + public static final int CONSTRUCTOR = 348578785; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class UpdateChatReplyMarkup extends Update { + + public long chatId; + + public long replyMarkupMessageId; + + public UpdateChatReplyMarkup() { + } + + public UpdateChatReplyMarkup(long chatId, long replyMarkupMessageId) { + this.chatId = chatId; + this.replyMarkupMessageId = replyMarkupMessageId; + } + + public static final int CONSTRUCTOR = 1309386144; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class UpdateChatBackground extends Update { + + public long chatId; + + public ChatBackground background; + + public UpdateChatBackground() { + } + + public UpdateChatBackground(long chatId, ChatBackground background) { + this.chatId = chatId; + this.background = background; + } + + public static final int CONSTRUCTOR = -6473549; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class UpdateChatTheme extends Update { + + public long chatId; + + public String themeName; + + public UpdateChatTheme() { + } + + public UpdateChatTheme(long chatId, String themeName) { + this.chatId = chatId; + this.themeName = themeName; + } + + public static final int CONSTRUCTOR = 838063205; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class UpdateChatUnreadMentionCount extends Update { + + public long chatId; + + public int unreadMentionCount; + + public UpdateChatUnreadMentionCount() { + } + + public UpdateChatUnreadMentionCount(long chatId, int unreadMentionCount) { + this.chatId = chatId; + this.unreadMentionCount = unreadMentionCount; + } + + public static final int CONSTRUCTOR = -2131461348; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class UpdateChatUnreadReactionCount extends Update { + + public long chatId; + + public int unreadReactionCount; + + public UpdateChatUnreadReactionCount() { + } + + public UpdateChatUnreadReactionCount(long chatId, int unreadReactionCount) { + this.chatId = chatId; + this.unreadReactionCount = unreadReactionCount; + } + + public static final int CONSTRUCTOR = -2124399395; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class UpdateChatVideoChat extends Update { + + public long chatId; + + public VideoChat videoChat; + + public UpdateChatVideoChat() { + } + + public UpdateChatVideoChat(long chatId, VideoChat videoChat) { + this.chatId = chatId; + this.videoChat = videoChat; + } + + public static final int CONSTRUCTOR = 637226150; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class UpdateChatDefaultDisableNotification extends Update { + + public long chatId; + + public boolean defaultDisableNotification; + + public UpdateChatDefaultDisableNotification() { + } + + public UpdateChatDefaultDisableNotification(long chatId, boolean defaultDisableNotification) { + this.chatId = chatId; + this.defaultDisableNotification = defaultDisableNotification; + } + + public static final int CONSTRUCTOR = 464087707; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class UpdateChatHasProtectedContent extends Update { + + public long chatId; + + public boolean hasProtectedContent; + + public UpdateChatHasProtectedContent() { + } + + public UpdateChatHasProtectedContent(long chatId, boolean hasProtectedContent) { + this.chatId = chatId; + this.hasProtectedContent = hasProtectedContent; + } + + public static final int CONSTRUCTOR = 1800406811; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class UpdateChatIsTranslatable extends Update { + + public long chatId; + + public boolean isTranslatable; + + public UpdateChatIsTranslatable() { + } + + public UpdateChatIsTranslatable(long chatId, boolean isTranslatable) { + this.chatId = chatId; + this.isTranslatable = isTranslatable; + } + + public static final int CONSTRUCTOR = 2063799831; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class UpdateChatIsMarkedAsUnread extends Update { + + public long chatId; + + public boolean isMarkedAsUnread; + + public UpdateChatIsMarkedAsUnread() { + } + + public UpdateChatIsMarkedAsUnread(long chatId, boolean isMarkedAsUnread) { + this.chatId = chatId; + this.isMarkedAsUnread = isMarkedAsUnread; + } + + public static final int CONSTRUCTOR = 1468347188; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class UpdateChatViewAsTopics extends Update { + + public long chatId; + + public boolean viewAsTopics; + + public UpdateChatViewAsTopics() { + } + + public UpdateChatViewAsTopics(long chatId, boolean viewAsTopics) { + this.chatId = chatId; + this.viewAsTopics = viewAsTopics; + } + + public static final int CONSTRUCTOR = 1543444029; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class UpdateChatBlockList extends Update { + + public long chatId; + + public BlockList blockList; + + public UpdateChatBlockList() { + } + + public UpdateChatBlockList(long chatId, BlockList blockList) { + this.chatId = chatId; + this.blockList = blockList; + } + + public static final int CONSTRUCTOR = -2027228018; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class UpdateChatHasScheduledMessages extends Update { + + public long chatId; + + public boolean hasScheduledMessages; + + public UpdateChatHasScheduledMessages() { + } + + public UpdateChatHasScheduledMessages(long chatId, boolean hasScheduledMessages) { + this.chatId = chatId; + this.hasScheduledMessages = hasScheduledMessages; + } + + public static final int CONSTRUCTOR = 2064958167; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class UpdateChatFolders extends Update { + + public ChatFolderInfo[] chatFolders; + + public int mainChatListPosition; + + public boolean areTagsEnabled; + + public UpdateChatFolders() { + } + + public UpdateChatFolders(ChatFolderInfo[] chatFolders, int mainChatListPosition, boolean areTagsEnabled) { + this.chatFolders = chatFolders; + this.mainChatListPosition = mainChatListPosition; + this.areTagsEnabled = areTagsEnabled; + } + + public static final int CONSTRUCTOR = 1998101395; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class UpdateChatOnlineMemberCount extends Update { + + public long chatId; + + public int onlineMemberCount; + + public UpdateChatOnlineMemberCount() { + } + + public UpdateChatOnlineMemberCount(long chatId, int onlineMemberCount) { + this.chatId = chatId; + this.onlineMemberCount = onlineMemberCount; + } + + public static final int CONSTRUCTOR = 487369373; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class UpdateSavedMessagesTopic extends Update { + + public SavedMessagesTopic topic; + + public UpdateSavedMessagesTopic() { + } + + public UpdateSavedMessagesTopic(SavedMessagesTopic topic) { + this.topic = topic; + } + + public static final int CONSTRUCTOR = -1618855120; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class UpdateSavedMessagesTopicCount extends Update { + + public int topicCount; + + public UpdateSavedMessagesTopicCount() { + } + + public UpdateSavedMessagesTopicCount(int topicCount) { + this.topicCount = topicCount; + } + + public static final int CONSTRUCTOR = -70092335; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class UpdateQuickReplyShortcut extends Update { + + public QuickReplyShortcut shortcut; + + public UpdateQuickReplyShortcut() { + } + + public UpdateQuickReplyShortcut(QuickReplyShortcut shortcut) { + this.shortcut = shortcut; + } + + public static final int CONSTRUCTOR = -963430193; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class UpdateQuickReplyShortcutDeleted extends Update { + + public int shortcutId; + + public UpdateQuickReplyShortcutDeleted() { + } + + public UpdateQuickReplyShortcutDeleted(int shortcutId) { + this.shortcutId = shortcutId; + } + + public static final int CONSTRUCTOR = -390480838; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class UpdateQuickReplyShortcuts extends Update { + + public int[] shortcutIds; + + public UpdateQuickReplyShortcuts() { + } + + public UpdateQuickReplyShortcuts(int[] shortcutIds) { + this.shortcutIds = shortcutIds; + } + + public static final int CONSTRUCTOR = -1994849731; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class UpdateQuickReplyShortcutMessages extends Update { + + public int shortcutId; + + public QuickReplyMessage[] messages; + + public UpdateQuickReplyShortcutMessages() { + } + + public UpdateQuickReplyShortcutMessages(int shortcutId, QuickReplyMessage[] messages) { + this.shortcutId = shortcutId; + this.messages = messages; + } + + public static final int CONSTRUCTOR = -1396685225; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class UpdateForumTopicInfo extends Update { + + public long chatId; + + public ForumTopicInfo info; + + public UpdateForumTopicInfo() { + } + + public UpdateForumTopicInfo(long chatId, ForumTopicInfo info) { + this.chatId = chatId; + this.info = info; + } + + public static final int CONSTRUCTOR = 1802448073; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class UpdateScopeNotificationSettings extends Update { + + public NotificationSettingsScope scope; + + public ScopeNotificationSettings notificationSettings; + + public UpdateScopeNotificationSettings() { + } + + public UpdateScopeNotificationSettings(NotificationSettingsScope scope, ScopeNotificationSettings notificationSettings) { + this.scope = scope; + this.notificationSettings = notificationSettings; + } + + public static final int CONSTRUCTOR = -1203975309; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class UpdateReactionNotificationSettings extends Update { + + public ReactionNotificationSettings notificationSettings; + + public UpdateReactionNotificationSettings() { + } + + public UpdateReactionNotificationSettings(ReactionNotificationSettings notificationSettings) { + this.notificationSettings = notificationSettings; + } + + public static final int CONSTRUCTOR = -447932436; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class UpdateNotification extends Update { + + public int notificationGroupId; + + public Notification notification; + + public UpdateNotification() { + } + + public UpdateNotification(int notificationGroupId, Notification notification) { + this.notificationGroupId = notificationGroupId; + this.notification = notification; + } + + public static final int CONSTRUCTOR = -1897496876; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class UpdateNotificationGroup extends Update { + + public int notificationGroupId; + + public NotificationGroupType type; + + public long chatId; + + public long notificationSettingsChatId; + + public long notificationSoundId; + + public int totalCount; + + public Notification[] addedNotifications; + + public int[] removedNotificationIds; + + public UpdateNotificationGroup() { + } + + public UpdateNotificationGroup(int notificationGroupId, NotificationGroupType type, long chatId, long notificationSettingsChatId, long notificationSoundId, int totalCount, Notification[] addedNotifications, int[] removedNotificationIds) { + this.notificationGroupId = notificationGroupId; + this.type = type; + this.chatId = chatId; + this.notificationSettingsChatId = notificationSettingsChatId; + this.notificationSoundId = notificationSoundId; + this.totalCount = totalCount; + this.addedNotifications = addedNotifications; + this.removedNotificationIds = removedNotificationIds; + } + + public static final int CONSTRUCTOR = 1381081378; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class UpdateActiveNotifications extends Update { + + public NotificationGroup[] groups; + + public UpdateActiveNotifications() { + } + + public UpdateActiveNotifications(NotificationGroup[] groups) { + this.groups = groups; + } + + public static final int CONSTRUCTOR = -1306672221; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class UpdateHavePendingNotifications extends Update { + + public boolean haveDelayedNotifications; + + public boolean haveUnreceivedNotifications; + + public UpdateHavePendingNotifications() { + } + + public UpdateHavePendingNotifications(boolean haveDelayedNotifications, boolean haveUnreceivedNotifications) { + this.haveDelayedNotifications = haveDelayedNotifications; + this.haveUnreceivedNotifications = haveUnreceivedNotifications; + } + + public static final int CONSTRUCTOR = 179233243; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class UpdateDeleteMessages extends Update { + + public long chatId; + + public long[] messageIds; + + public boolean isPermanent; + + public boolean fromCache; + + public UpdateDeleteMessages() { + } + + public UpdateDeleteMessages(long chatId, long[] messageIds, boolean isPermanent, boolean fromCache) { + this.chatId = chatId; + this.messageIds = messageIds; + this.isPermanent = isPermanent; + this.fromCache = fromCache; + } + + public static final int CONSTRUCTOR = 1669252686; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class UpdateChatAction extends Update { + + public long chatId; + + public long messageThreadId; + + public MessageSender senderId; + + public ChatAction action; + + public UpdateChatAction() { + } + + public UpdateChatAction(long chatId, long messageThreadId, MessageSender senderId, ChatAction action) { + this.chatId = chatId; + this.messageThreadId = messageThreadId; + this.senderId = senderId; + this.action = action; + } + + public static final int CONSTRUCTOR = -1698703832; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class UpdateUserStatus extends Update { + + public long userId; + + public UserStatus status; + + public UpdateUserStatus() { + } + + public UpdateUserStatus(long userId, UserStatus status) { + this.userId = userId; + this.status = status; + } + + public static final int CONSTRUCTOR = 958468625; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class UpdateUser extends Update { + + public User user; + + public UpdateUser() { + } + + public UpdateUser(User user) { + this.user = user; + } + + public static final int CONSTRUCTOR = 1183394041; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class UpdateBasicGroup extends Update { + + public BasicGroup basicGroup; + + public UpdateBasicGroup() { + } + + public UpdateBasicGroup(BasicGroup basicGroup) { + this.basicGroup = basicGroup; + } + + public static final int CONSTRUCTOR = -1003239581; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class UpdateSupergroup extends Update { + + public Supergroup supergroup; + + public UpdateSupergroup() { + } + + public UpdateSupergroup(Supergroup supergroup) { + this.supergroup = supergroup; + } + + public static final int CONSTRUCTOR = -76782300; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class UpdateSecretChat extends Update { + + public SecretChat secretChat; + + public UpdateSecretChat() { + } + + public UpdateSecretChat(SecretChat secretChat) { + this.secretChat = secretChat; + } + + public static final int CONSTRUCTOR = -1666903253; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class UpdateUserFullInfo extends Update { + + public long userId; + + public UserFullInfo userFullInfo; + + public UpdateUserFullInfo() { + } + + public UpdateUserFullInfo(long userId, UserFullInfo userFullInfo) { + this.userId = userId; + this.userFullInfo = userFullInfo; + } + + public static final int CONSTRUCTOR = -51197161; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class UpdateBasicGroupFullInfo extends Update { + + public long basicGroupId; + + public BasicGroupFullInfo basicGroupFullInfo; + + public UpdateBasicGroupFullInfo() { + } + + public UpdateBasicGroupFullInfo(long basicGroupId, BasicGroupFullInfo basicGroupFullInfo) { + this.basicGroupId = basicGroupId; + this.basicGroupFullInfo = basicGroupFullInfo; + } + + public static final int CONSTRUCTOR = 1391881151; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class UpdateSupergroupFullInfo extends Update { + + public long supergroupId; + + public SupergroupFullInfo supergroupFullInfo; + + public UpdateSupergroupFullInfo() { + } + + public UpdateSupergroupFullInfo(long supergroupId, SupergroupFullInfo supergroupFullInfo) { + this.supergroupId = supergroupId; + this.supergroupFullInfo = supergroupFullInfo; + } + + public static final int CONSTRUCTOR = 435539214; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class UpdateServiceNotification extends Update { + + public String type; + + public MessageContent content; + + public UpdateServiceNotification() { + } + + public UpdateServiceNotification(String type, MessageContent content) { + this.type = type; + this.content = content; + } + + public static final int CONSTRUCTOR = 1318622637; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class UpdateFile extends Update { + + public File file; + + public UpdateFile() { + } + + public UpdateFile(File file) { + this.file = file; + } + + public static final int CONSTRUCTOR = 114132831; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class UpdateFileGenerationStart extends Update { + + public long generationId; + + public String originalPath; + + public String destinationPath; + + public String conversion; + + public UpdateFileGenerationStart() { + } + + public UpdateFileGenerationStart(long generationId, String originalPath, String destinationPath, String conversion) { + this.generationId = generationId; + this.originalPath = originalPath; + this.destinationPath = destinationPath; + this.conversion = conversion; + } + + public static final int CONSTRUCTOR = 216817388; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class UpdateFileGenerationStop extends Update { + + public long generationId; + + public UpdateFileGenerationStop() { + } + + public UpdateFileGenerationStop(long generationId) { + this.generationId = generationId; + } + + public static final int CONSTRUCTOR = -1894449685; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class UpdateFileDownloads extends Update { + + public long totalSize; + + public int totalCount; + + public long downloadedSize; + + public UpdateFileDownloads() { + } + + public UpdateFileDownloads(long totalSize, int totalCount, long downloadedSize) { + this.totalSize = totalSize; + this.totalCount = totalCount; + this.downloadedSize = downloadedSize; + } + + public static final int CONSTRUCTOR = -389213497; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class UpdateFileAddedToDownloads extends Update { + + public FileDownload fileDownload; + + public DownloadedFileCounts counts; + + public UpdateFileAddedToDownloads() { + } + + public UpdateFileAddedToDownloads(FileDownload fileDownload, DownloadedFileCounts counts) { + this.fileDownload = fileDownload; + this.counts = counts; + } + + public static final int CONSTRUCTOR = 1609929242; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class UpdateFileDownload extends Update { + + public int fileId; + + public int completeDate; + + public boolean isPaused; + + public DownloadedFileCounts counts; + + public UpdateFileDownload() { + } + + public UpdateFileDownload(int fileId, int completeDate, boolean isPaused, DownloadedFileCounts counts) { + this.fileId = fileId; + this.completeDate = completeDate; + this.isPaused = isPaused; + this.counts = counts; + } + + public static final int CONSTRUCTOR = 875529162; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class UpdateFileRemovedFromDownloads extends Update { + + public int fileId; + + public DownloadedFileCounts counts; + + public UpdateFileRemovedFromDownloads() { + } + + public UpdateFileRemovedFromDownloads(int fileId, DownloadedFileCounts counts) { + this.fileId = fileId; + this.counts = counts; + } + + public static final int CONSTRUCTOR = 1853625576; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class UpdateApplicationVerificationRequired extends Update { + + public long verificationId; + + public String nonce; + + public long cloudProjectNumber; + + public UpdateApplicationVerificationRequired() { + } + + public UpdateApplicationVerificationRequired(long verificationId, String nonce, long cloudProjectNumber) { + this.verificationId = verificationId; + this.nonce = nonce; + this.cloudProjectNumber = cloudProjectNumber; + } + + public static final int CONSTRUCTOR = -979607081; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class UpdateCall extends Update { + + public Call call; + + public UpdateCall() { + } + + public UpdateCall(Call call) { + this.call = call; + } + + public static final int CONSTRUCTOR = 1337184477; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class UpdateGroupCall extends Update { + + public GroupCall groupCall; + + public UpdateGroupCall() { + } + + public UpdateGroupCall(GroupCall groupCall) { + this.groupCall = groupCall; + } + + public static final int CONSTRUCTOR = 808603136; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class UpdateGroupCallParticipant extends Update { + + public int groupCallId; + + public GroupCallParticipant participant; + + public UpdateGroupCallParticipant() { + } + + public UpdateGroupCallParticipant(int groupCallId, GroupCallParticipant participant) { + this.groupCallId = groupCallId; + this.participant = participant; + } + + public static final int CONSTRUCTOR = -803128071; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class UpdateNewCallSignalingData extends Update { + + public int callId; + + public byte[] data; + + public UpdateNewCallSignalingData() { + } + + public UpdateNewCallSignalingData(int callId, byte[] data) { + this.callId = callId; + this.data = data; + } + + public static final int CONSTRUCTOR = 583634317; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class UpdateUserPrivacySettingRules extends Update { + + public UserPrivacySetting setting; + + public UserPrivacySettingRules rules; + + public UpdateUserPrivacySettingRules() { + } + + public UpdateUserPrivacySettingRules(UserPrivacySetting setting, UserPrivacySettingRules rules) { + this.setting = setting; + this.rules = rules; + } + + public static final int CONSTRUCTOR = -912960778; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class UpdateUnreadMessageCount extends Update { + + public ChatList chatList; + + public int unreadCount; + + public int unreadUnmutedCount; + + public UpdateUnreadMessageCount() { + } + + public UpdateUnreadMessageCount(ChatList chatList, int unreadCount, int unreadUnmutedCount) { + this.chatList = chatList; + this.unreadCount = unreadCount; + this.unreadUnmutedCount = unreadUnmutedCount; + } + + public static final int CONSTRUCTOR = 78987721; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class UpdateUnreadChatCount extends Update { + + public ChatList chatList; + + public int totalCount; + + public int unreadCount; + + public int unreadUnmutedCount; + + public int markedAsUnreadCount; + + public int markedAsUnreadUnmutedCount; + + public UpdateUnreadChatCount() { + } + + public UpdateUnreadChatCount(ChatList chatList, int totalCount, int unreadCount, int unreadUnmutedCount, int markedAsUnreadCount, int markedAsUnreadUnmutedCount) { + this.chatList = chatList; + this.totalCount = totalCount; + this.unreadCount = unreadCount; + this.unreadUnmutedCount = unreadUnmutedCount; + this.markedAsUnreadCount = markedAsUnreadCount; + this.markedAsUnreadUnmutedCount = markedAsUnreadUnmutedCount; + } + + public static final int CONSTRUCTOR = 1994494530; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class UpdateStory extends Update { + + public Story story; + + public UpdateStory() { + } + + public UpdateStory(Story story) { + this.story = story; + } + + public static final int CONSTRUCTOR = 419845935; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class UpdateStoryDeleted extends Update { + + public long storySenderChatId; + + public int storyId; + + public UpdateStoryDeleted() { + } + + public UpdateStoryDeleted(long storySenderChatId, int storyId) { + this.storySenderChatId = storySenderChatId; + this.storyId = storyId; + } + + public static final int CONSTRUCTOR = 1879567261; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class UpdateStorySendSucceeded extends Update { + + public Story story; + + public int oldStoryId; + + public UpdateStorySendSucceeded() { + } + + public UpdateStorySendSucceeded(Story story, int oldStoryId) { + this.story = story; + this.oldStoryId = oldStoryId; + } + + public static final int CONSTRUCTOR = -1188651433; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class UpdateStorySendFailed extends Update { + + public Story story; + + public Error error; + + public CanSendStoryResult errorType; + + public UpdateStorySendFailed() { + } + + public UpdateStorySendFailed(Story story, Error error, CanSendStoryResult errorType) { + this.story = story; + this.error = error; + this.errorType = errorType; + } + + public static final int CONSTRUCTOR = -532221543; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class UpdateChatActiveStories extends Update { + + public ChatActiveStories activeStories; + + public UpdateChatActiveStories() { + } + + public UpdateChatActiveStories(ChatActiveStories activeStories) { + this.activeStories = activeStories; + } + + public static final int CONSTRUCTOR = 2037935148; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class UpdateStoryListChatCount extends Update { + + public StoryList storyList; + + public int chatCount; + + public UpdateStoryListChatCount() { + } + + public UpdateStoryListChatCount(StoryList storyList, int chatCount) { + this.storyList = storyList; + this.chatCount = chatCount; + } + + public static final int CONSTRUCTOR = -2009871041; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class UpdateStoryStealthMode extends Update { + + public int activeUntilDate; + + public int cooldownUntilDate; + + public UpdateStoryStealthMode() { + } + + public UpdateStoryStealthMode(int activeUntilDate, int cooldownUntilDate) { + this.activeUntilDate = activeUntilDate; + this.cooldownUntilDate = cooldownUntilDate; + } + + public static final int CONSTRUCTOR = 1878506778; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class UpdateOption extends Update { + + public String name; + + public OptionValue value; + + public UpdateOption() { + } + + public UpdateOption(String name, OptionValue value) { + this.name = name; + this.value = value; + } + + public static final int CONSTRUCTOR = 900822020; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class UpdateStickerSet extends Update { + + public StickerSet stickerSet; + + public UpdateStickerSet() { + } + + public UpdateStickerSet(StickerSet stickerSet) { + this.stickerSet = stickerSet; + } + + public static final int CONSTRUCTOR = 1879268812; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class UpdateInstalledStickerSets extends Update { + + public StickerType stickerType; + + public long[] stickerSetIds; + + public UpdateInstalledStickerSets() { + } + + public UpdateInstalledStickerSets(StickerType stickerType, long[] stickerSetIds) { + this.stickerType = stickerType; + this.stickerSetIds = stickerSetIds; + } + + public static final int CONSTRUCTOR = -1735084182; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class UpdateTrendingStickerSets extends Update { + + public StickerType stickerType; + + public TrendingStickerSets stickerSets; + + public UpdateTrendingStickerSets() { + } + + public UpdateTrendingStickerSets(StickerType stickerType, TrendingStickerSets stickerSets) { + this.stickerType = stickerType; + this.stickerSets = stickerSets; + } + + public static final int CONSTRUCTOR = 1266307239; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class UpdateRecentStickers extends Update { + + public boolean isAttached; + + public int[] stickerIds; + + public UpdateRecentStickers() { + } + + public UpdateRecentStickers(boolean isAttached, int[] stickerIds) { + this.isAttached = isAttached; + this.stickerIds = stickerIds; + } + + public static final int CONSTRUCTOR = 1906403540; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class UpdateFavoriteStickers extends Update { + + public int[] stickerIds; + + public UpdateFavoriteStickers() { + } + + public UpdateFavoriteStickers(int[] stickerIds) { + this.stickerIds = stickerIds; + } + + public static final int CONSTRUCTOR = 1662240999; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class UpdateSavedAnimations extends Update { + + public int[] animationIds; + + public UpdateSavedAnimations() { + } + + public UpdateSavedAnimations(int[] animationIds) { + this.animationIds = animationIds; + } + + public static final int CONSTRUCTOR = 65563814; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class UpdateSavedNotificationSounds extends Update { + + public long[] notificationSoundIds; + + public UpdateSavedNotificationSounds() { + } + + public UpdateSavedNotificationSounds(long[] notificationSoundIds) { + this.notificationSoundIds = notificationSoundIds; + } + + public static final int CONSTRUCTOR = 1052725698; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class UpdateDefaultBackground extends Update { + + public boolean forDarkTheme; + + public Background background; + + public UpdateDefaultBackground() { + } + + public UpdateDefaultBackground(boolean forDarkTheme, Background background) { + this.forDarkTheme = forDarkTheme; + this.background = background; + } + + public static final int CONSTRUCTOR = -716139217; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class UpdateChatThemes extends Update { + + public ChatTheme[] chatThemes; + + public UpdateChatThemes() { + } + + public UpdateChatThemes(ChatTheme[] chatThemes) { + this.chatThemes = chatThemes; + } + + public static final int CONSTRUCTOR = -1588098376; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class UpdateAccentColors extends Update { + + public AccentColor[] colors; + + public int[] availableAccentColorIds; + + public UpdateAccentColors() { + } + + public UpdateAccentColors(AccentColor[] colors, int[] availableAccentColorIds) { + this.colors = colors; + this.availableAccentColorIds = availableAccentColorIds; + } + + public static final int CONSTRUCTOR = -1197047738; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class UpdateProfileAccentColors extends Update { + + public ProfileAccentColor[] colors; + + public int[] availableAccentColorIds; + + public UpdateProfileAccentColors() { + } + + public UpdateProfileAccentColors(ProfileAccentColor[] colors, int[] availableAccentColorIds) { + this.colors = colors; + this.availableAccentColorIds = availableAccentColorIds; + } + + public static final int CONSTRUCTOR = 605202104; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class UpdateLanguagePackStrings extends Update { + + public String localizationTarget; + + public String languagePackId; + + public LanguagePackString[] strings; + + public UpdateLanguagePackStrings() { + } + + public UpdateLanguagePackStrings(String localizationTarget, String languagePackId, LanguagePackString[] strings) { + this.localizationTarget = localizationTarget; + this.languagePackId = languagePackId; + this.strings = strings; + } + + public static final int CONSTRUCTOR = -1056319886; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class UpdateConnectionState extends Update { + + public ConnectionState state; + + public UpdateConnectionState() { + } + + public UpdateConnectionState(ConnectionState state) { + this.state = state; + } + + public static final int CONSTRUCTOR = 1469292078; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class UpdateTermsOfService extends Update { + + public String termsOfServiceId; + + public TermsOfService termsOfService; + + public UpdateTermsOfService() { + } + + public UpdateTermsOfService(String termsOfServiceId, TermsOfService termsOfService) { + this.termsOfServiceId = termsOfServiceId; + this.termsOfService = termsOfService; + } + + public static final int CONSTRUCTOR = -1304640162; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class UpdateUnconfirmedSession extends Update { + + public UnconfirmedSession session; + + public UpdateUnconfirmedSession() { + } + + public UpdateUnconfirmedSession(UnconfirmedSession session) { + this.session = session; + } + + public static final int CONSTRUCTOR = -22673268; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class UpdateAttachmentMenuBots extends Update { + + public AttachmentMenuBot[] bots; + + public UpdateAttachmentMenuBots() { + } + + public UpdateAttachmentMenuBots(AttachmentMenuBot[] bots) { + this.bots = bots; + } + + public static final int CONSTRUCTOR = 291369922; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class UpdateWebAppMessageSent extends Update { + + public long webAppLaunchId; + + public UpdateWebAppMessageSent() { + } + + public UpdateWebAppMessageSent(long webAppLaunchId) { + this.webAppLaunchId = webAppLaunchId; + } + + public static final int CONSTRUCTOR = 1480790569; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class UpdateActiveEmojiReactions extends Update { + + public String[] emojis; + + public UpdateActiveEmojiReactions() { + } + + public UpdateActiveEmojiReactions(String[] emojis) { + this.emojis = emojis; + } + + public static final int CONSTRUCTOR = 77556818; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class UpdateAvailableMessageEffects extends Update { + + public long[] reactionEffectIds; + + public long[] stickerEffectIds; + + public UpdateAvailableMessageEffects() { + } + + public UpdateAvailableMessageEffects(long[] reactionEffectIds, long[] stickerEffectIds) { + this.reactionEffectIds = reactionEffectIds; + this.stickerEffectIds = stickerEffectIds; + } + + public static final int CONSTRUCTOR = 1964701061; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class UpdateDefaultReactionType extends Update { + + public ReactionType reactionType; + + public UpdateDefaultReactionType() { + } + + public UpdateDefaultReactionType(ReactionType reactionType) { + this.reactionType = reactionType; + } + + public static final int CONSTRUCTOR = 1264668933; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class UpdateSavedMessagesTags extends Update { + + public long savedMessagesTopicId; + + public SavedMessagesTags tags; + + public UpdateSavedMessagesTags() { + } + + public UpdateSavedMessagesTags(long savedMessagesTopicId, SavedMessagesTags tags) { + this.savedMessagesTopicId = savedMessagesTopicId; + this.tags = tags; + } + + public static final int CONSTRUCTOR = 1938178634; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class UpdateActiveLiveLocationMessages extends Update { + + public Message[] messages; + + public UpdateActiveLiveLocationMessages() { + } + + public UpdateActiveLiveLocationMessages(Message[] messages) { + this.messages = messages; + } + + public static final int CONSTRUCTOR = -1308142440; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class UpdateOwnedStarCount extends Update { + + public StarAmount starAmount; + + public UpdateOwnedStarCount() { + } + + public UpdateOwnedStarCount(StarAmount starAmount) { + this.starAmount = starAmount; + } + + public static final int CONSTRUCTOR = -1350647928; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class UpdateChatRevenueAmount extends Update { + + public long chatId; + + public ChatRevenueAmount revenueAmount; + + public UpdateChatRevenueAmount() { + } + + public UpdateChatRevenueAmount(long chatId, ChatRevenueAmount revenueAmount) { + this.chatId = chatId; + this.revenueAmount = revenueAmount; + } + + public static final int CONSTRUCTOR = -959857468; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class UpdateStarRevenueStatus extends Update { + + public MessageSender ownerId; + + public StarRevenueStatus status; + + public UpdateStarRevenueStatus() { + } + + public UpdateStarRevenueStatus(MessageSender ownerId, StarRevenueStatus status) { + this.ownerId = ownerId; + this.status = status; + } + + public static final int CONSTRUCTOR = -280232757; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class UpdateSpeechRecognitionTrial extends Update { + + public int maxMediaDuration; + + public int weeklyCount; + + public int leftCount; + + public int nextResetDate; + + public UpdateSpeechRecognitionTrial() { + } + + public UpdateSpeechRecognitionTrial(int maxMediaDuration, int weeklyCount, int leftCount, int nextResetDate) { + this.maxMediaDuration = maxMediaDuration; + this.weeklyCount = weeklyCount; + this.leftCount = leftCount; + this.nextResetDate = nextResetDate; + } + + public static final int CONSTRUCTOR = -11600703; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class UpdateDiceEmojis extends Update { + + public String[] emojis; + + public UpdateDiceEmojis() { + } + + public UpdateDiceEmojis(String[] emojis) { + this.emojis = emojis; + } + + public static final int CONSTRUCTOR = -1069066940; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class UpdateAnimatedEmojiMessageClicked extends Update { + + public long chatId; + + public long messageId; + + public Sticker sticker; + + public UpdateAnimatedEmojiMessageClicked() { + } + + public UpdateAnimatedEmojiMessageClicked(long chatId, long messageId, Sticker sticker) { + this.chatId = chatId; + this.messageId = messageId; + this.sticker = sticker; + } + + public static final int CONSTRUCTOR = -1558809595; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class UpdateAnimationSearchParameters extends Update { + + public String provider; + + public String[] emojis; + + public UpdateAnimationSearchParameters() { + } + + public UpdateAnimationSearchParameters(String provider, String[] emojis) { + this.provider = provider; + this.emojis = emojis; + } + + public static final int CONSTRUCTOR = -1144983202; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class UpdateSuggestedActions extends Update { + + public SuggestedAction[] addedActions; + + public SuggestedAction[] removedActions; + + public UpdateSuggestedActions() { + } + + public UpdateSuggestedActions(SuggestedAction[] addedActions, SuggestedAction[] removedActions) { + this.addedActions = addedActions; + this.removedActions = removedActions; + } + + public static final int CONSTRUCTOR = 1459452346; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class UpdateSpeedLimitNotification extends Update { + + public boolean isUpload; + + public UpdateSpeedLimitNotification() { + } + + public UpdateSpeedLimitNotification(boolean isUpload) { + this.isUpload = isUpload; + } + + public static final int CONSTRUCTOR = -964437912; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class UpdateContactCloseBirthdays extends Update { + + public CloseBirthdayUser[] closeBirthdayUsers; + + public UpdateContactCloseBirthdays() { + } + + public UpdateContactCloseBirthdays(CloseBirthdayUser[] closeBirthdayUsers) { + this.closeBirthdayUsers = closeBirthdayUsers; + } + + public static final int CONSTRUCTOR = -36007873; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class UpdateAutosaveSettings extends Update { + + public AutosaveSettingsScope scope; + + public ScopeAutosaveSettings settings; + + public UpdateAutosaveSettings() { + } + + public UpdateAutosaveSettings(AutosaveSettingsScope scope, ScopeAutosaveSettings settings) { + this.scope = scope; + this.settings = settings; + } + + public static final int CONSTRUCTOR = -634958069; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class UpdateBusinessConnection extends Update { + + public BusinessConnection connection; + + public UpdateBusinessConnection() { + } + + public UpdateBusinessConnection(BusinessConnection connection) { + this.connection = connection; + } + + public static final int CONSTRUCTOR = -2043480970; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class UpdateNewBusinessMessage extends Update { + + public String connectionId; + + public BusinessMessage message; + + public UpdateNewBusinessMessage() { + } + + public UpdateNewBusinessMessage(String connectionId, BusinessMessage message) { + this.connectionId = connectionId; + this.message = message; + } + + public static final int CONSTRUCTOR = -2034350524; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class UpdateBusinessMessageEdited extends Update { + + public String connectionId; + + public BusinessMessage message; + + public UpdateBusinessMessageEdited() { + } + + public UpdateBusinessMessageEdited(String connectionId, BusinessMessage message) { + this.connectionId = connectionId; + this.message = message; + } + + public static final int CONSTRUCTOR = -2119799415; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class UpdateBusinessMessagesDeleted extends Update { + + public String connectionId; + + public long chatId; + + public long[] messageIds; + + public UpdateBusinessMessagesDeleted() { + } + + public UpdateBusinessMessagesDeleted(String connectionId, long chatId, long[] messageIds) { + this.connectionId = connectionId; + this.chatId = chatId; + this.messageIds = messageIds; + } + + public static final int CONSTRUCTOR = -1106703050; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class UpdateNewInlineQuery extends Update { + + public long id; + + public long senderUserId; + + public Location userLocation; + + public ChatType chatType; + + public String query; + + public String offset; + + public UpdateNewInlineQuery() { + } + + public UpdateNewInlineQuery(long id, long senderUserId, Location userLocation, ChatType chatType, String query, String offset) { + this.id = id; + this.senderUserId = senderUserId; + this.userLocation = userLocation; + this.chatType = chatType; + this.query = query; + this.offset = offset; + } + + public static final int CONSTRUCTOR = 1903279924; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class UpdateNewChosenInlineResult extends Update { + + public long senderUserId; + + public Location userLocation; + + public String query; + + public String resultId; + + public String inlineMessageId; + + public UpdateNewChosenInlineResult() { + } + + public UpdateNewChosenInlineResult(long senderUserId, Location userLocation, String query, String resultId, String inlineMessageId) { + this.senderUserId = senderUserId; + this.userLocation = userLocation; + this.query = query; + this.resultId = resultId; + this.inlineMessageId = inlineMessageId; + } + + public static final int CONSTRUCTOR = -884191395; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class UpdateNewCallbackQuery extends Update { + + public long id; + + public long senderUserId; + + public long chatId; + + public long messageId; + + public long chatInstance; + + public CallbackQueryPayload payload; + + public UpdateNewCallbackQuery() { + } + + public UpdateNewCallbackQuery(long id, long senderUserId, long chatId, long messageId, long chatInstance, CallbackQueryPayload payload) { + this.id = id; + this.senderUserId = senderUserId; + this.chatId = chatId; + this.messageId = messageId; + this.chatInstance = chatInstance; + this.payload = payload; + } + + public static final int CONSTRUCTOR = -1989881762; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class UpdateNewInlineCallbackQuery extends Update { + + public long id; + + public long senderUserId; + + public String inlineMessageId; + + public long chatInstance; + + public CallbackQueryPayload payload; + + public UpdateNewInlineCallbackQuery() { + } + + public UpdateNewInlineCallbackQuery(long id, long senderUserId, String inlineMessageId, long chatInstance, CallbackQueryPayload payload) { + this.id = id; + this.senderUserId = senderUserId; + this.inlineMessageId = inlineMessageId; + this.chatInstance = chatInstance; + this.payload = payload; + } + + public static final int CONSTRUCTOR = -319212358; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class UpdateNewBusinessCallbackQuery extends Update { + + public long id; + + public long senderUserId; + + public String connectionId; + + public BusinessMessage message; + + public long chatInstance; + + public CallbackQueryPayload payload; + + public UpdateNewBusinessCallbackQuery() { + } + + public UpdateNewBusinessCallbackQuery(long id, long senderUserId, String connectionId, BusinessMessage message, long chatInstance, CallbackQueryPayload payload) { + this.id = id; + this.senderUserId = senderUserId; + this.connectionId = connectionId; + this.message = message; + this.chatInstance = chatInstance; + this.payload = payload; + } + + public static final int CONSTRUCTOR = 336745316; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class UpdateNewShippingQuery extends Update { + + public long id; + + public long senderUserId; + + public String invoicePayload; + + public Address shippingAddress; + + public UpdateNewShippingQuery() { + } + + public UpdateNewShippingQuery(long id, long senderUserId, String invoicePayload, Address shippingAddress) { + this.id = id; + this.senderUserId = senderUserId; + this.invoicePayload = invoicePayload; + this.shippingAddress = shippingAddress; + } + + public static final int CONSTRUCTOR = 693651058; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class UpdateNewPreCheckoutQuery extends Update { + + public long id; + + public long senderUserId; + + public String currency; + + public long totalAmount; + + public byte[] invoicePayload; + + public String shippingOptionId; + + public OrderInfo orderInfo; + + public UpdateNewPreCheckoutQuery() { + } + + public UpdateNewPreCheckoutQuery(long id, long senderUserId, String currency, long totalAmount, byte[] invoicePayload, String shippingOptionId, OrderInfo orderInfo) { + this.id = id; + this.senderUserId = senderUserId; + this.currency = currency; + this.totalAmount = totalAmount; + this.invoicePayload = invoicePayload; + this.shippingOptionId = shippingOptionId; + this.orderInfo = orderInfo; + } + + public static final int CONSTRUCTOR = 708342217; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class UpdateNewCustomEvent extends Update { + + public String event; + + public UpdateNewCustomEvent() { + } + + public UpdateNewCustomEvent(String event) { + this.event = event; + } + + public static final int CONSTRUCTOR = 1994222092; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class UpdateNewCustomQuery extends Update { + + public long id; + + public String data; + + public int timeout; + + public UpdateNewCustomQuery() { + } + + public UpdateNewCustomQuery(long id, String data, int timeout) { + this.id = id; + this.data = data; + this.timeout = timeout; + } + + public static final int CONSTRUCTOR = -687670874; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class UpdatePoll extends Update { + + public Poll poll; + + public UpdatePoll() { + } + + public UpdatePoll(Poll poll) { + this.poll = poll; + } + + public static final int CONSTRUCTOR = -1771342902; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class UpdatePollAnswer extends Update { + + public long pollId; + + public MessageSender voterId; + + public int[] optionIds; + + public UpdatePollAnswer() { + } + + public UpdatePollAnswer(long pollId, MessageSender voterId, int[] optionIds) { + this.pollId = pollId; + this.voterId = voterId; + this.optionIds = optionIds; + } + + public static final int CONSTRUCTOR = 1104905219; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class UpdateChatMember extends Update { + + public long chatId; + + public long actorUserId; + + public int date; + + public ChatInviteLink inviteLink; + + public boolean viaJoinRequest; + + public boolean viaChatFolderInviteLink; + + public ChatMember oldChatMember; + + public ChatMember newChatMember; + + public UpdateChatMember() { + } + + public UpdateChatMember(long chatId, long actorUserId, int date, ChatInviteLink inviteLink, boolean viaJoinRequest, boolean viaChatFolderInviteLink, ChatMember oldChatMember, ChatMember newChatMember) { + this.chatId = chatId; + this.actorUserId = actorUserId; + this.date = date; + this.inviteLink = inviteLink; + this.viaJoinRequest = viaJoinRequest; + this.viaChatFolderInviteLink = viaChatFolderInviteLink; + this.oldChatMember = oldChatMember; + this.newChatMember = newChatMember; + } + + public static final int CONSTRUCTOR = -1736025145; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class UpdateNewChatJoinRequest extends Update { + + public long chatId; + + public ChatJoinRequest request; + + public long userChatId; + + public ChatInviteLink inviteLink; + + public UpdateNewChatJoinRequest() { + } + + public UpdateNewChatJoinRequest(long chatId, ChatJoinRequest request, long userChatId, ChatInviteLink inviteLink) { + this.chatId = chatId; + this.request = request; + this.userChatId = userChatId; + this.inviteLink = inviteLink; + } + + public static final int CONSTRUCTOR = 2118694979; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class UpdateChatBoost extends Update { + + public long chatId; + + public ChatBoost boost; + + public UpdateChatBoost() { + } + + public UpdateChatBoost(long chatId, ChatBoost boost) { + this.chatId = chatId; + this.boost = boost; + } + + public static final int CONSTRUCTOR = 1349680676; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class UpdateMessageReaction extends Update { + + public long chatId; + + public long messageId; + + public MessageSender actorId; + + public int date; + + public ReactionType[] oldReactionTypes; + + public ReactionType[] newReactionTypes; + + public UpdateMessageReaction() { + } + + public UpdateMessageReaction(long chatId, long messageId, MessageSender actorId, int date, ReactionType[] oldReactionTypes, ReactionType[] newReactionTypes) { + this.chatId = chatId; + this.messageId = messageId; + this.actorId = actorId; + this.date = date; + this.oldReactionTypes = oldReactionTypes; + this.newReactionTypes = newReactionTypes; + } + + public static final int CONSTRUCTOR = 1084895706; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class UpdateMessageReactions extends Update { + + public long chatId; + + public long messageId; + + public int date; + + public MessageReaction[] reactions; + + public UpdateMessageReactions() { + } + + public UpdateMessageReactions(long chatId, long messageId, int date, MessageReaction[] reactions) { + this.chatId = chatId; + this.messageId = messageId; + this.date = date; + this.reactions = reactions; + } + + public static final int CONSTRUCTOR = 955237189; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class UpdatePaidMediaPurchased extends Update { + + public long userId; + + public String payload; + + public UpdatePaidMediaPurchased() { + } + + public UpdatePaidMediaPurchased(long userId, String payload) { + this.userId = userId; + this.payload = payload; + } + + public static final int CONSTRUCTOR = -1542396325; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class Updates extends Object { + + public Update[] updates; + + public Updates() { + } + + public Updates(Update[] updates) { + this.updates = updates; + } + + public static final int CONSTRUCTOR = 475842347; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class User extends Object { + + public long id; + + public String firstName; + + public String lastName; + + public Usernames usernames; + + public String phoneNumber; + + public UserStatus status; + + public ProfilePhoto profilePhoto; + + public int accentColorId; + + public long backgroundCustomEmojiId; + + public int profileAccentColorId; + + public long profileBackgroundCustomEmojiId; + + public EmojiStatus emojiStatus; + + public boolean isContact; + + public boolean isMutualContact; + + public boolean isCloseFriend; + + public boolean isVerified; + + public boolean isPremium; + + public boolean isSupport; + + public String restrictionReason; + + public boolean isScam; + + public boolean isFake; + + public boolean hasActiveStories; + + public boolean hasUnreadActiveStories; + + public boolean restrictsNewChats; + + public boolean haveAccess; + + public UserType type; + + public String languageCode; + + public boolean addedToAttachmentMenu; + + public User() { + } + + public User(long id, String firstName, String lastName, Usernames usernames, String phoneNumber, UserStatus status, ProfilePhoto profilePhoto, int accentColorId, long backgroundCustomEmojiId, int profileAccentColorId, long profileBackgroundCustomEmojiId, EmojiStatus emojiStatus, boolean isContact, boolean isMutualContact, boolean isCloseFriend, boolean isVerified, boolean isPremium, boolean isSupport, String restrictionReason, boolean isScam, boolean isFake, boolean hasActiveStories, boolean hasUnreadActiveStories, boolean restrictsNewChats, boolean haveAccess, UserType type, String languageCode, boolean addedToAttachmentMenu) { + this.id = id; + this.firstName = firstName; + this.lastName = lastName; + this.usernames = usernames; + this.phoneNumber = phoneNumber; + this.status = status; + this.profilePhoto = profilePhoto; + this.accentColorId = accentColorId; + this.backgroundCustomEmojiId = backgroundCustomEmojiId; + this.profileAccentColorId = profileAccentColorId; + this.profileBackgroundCustomEmojiId = profileBackgroundCustomEmojiId; + this.emojiStatus = emojiStatus; + this.isContact = isContact; + this.isMutualContact = isMutualContact; + this.isCloseFriend = isCloseFriend; + this.isVerified = isVerified; + this.isPremium = isPremium; + this.isSupport = isSupport; + this.restrictionReason = restrictionReason; + this.isScam = isScam; + this.isFake = isFake; + this.hasActiveStories = hasActiveStories; + this.hasUnreadActiveStories = hasUnreadActiveStories; + this.restrictsNewChats = restrictsNewChats; + this.haveAccess = haveAccess; + this.type = type; + this.languageCode = languageCode; + this.addedToAttachmentMenu = addedToAttachmentMenu; + } + + public static final int CONSTRUCTOR = 408235106; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class UserFullInfo extends Object { + + public ChatPhoto personalPhoto; + + public ChatPhoto photo; + + public ChatPhoto publicPhoto; + + public BlockList blockList; + + public boolean canBeCalled; + + public boolean supportsVideoCalls; + + public boolean hasPrivateCalls; + + public boolean hasPrivateForwards; + + public boolean hasRestrictedVoiceAndVideoNoteMessages; + + public boolean hasPostedToProfileStories; + + public boolean hasSponsoredMessagesEnabled; + + public boolean needPhoneNumberPrivacyException; + + public boolean setChatBackground; + + public FormattedText bio; + + public Birthdate birthdate; + + public long personalChatId; + + public int giftCount; + + public int groupInCommonCount; + + public BusinessInfo businessInfo; + + public BotInfo botInfo; + + public UserFullInfo() { + } + + public UserFullInfo(ChatPhoto personalPhoto, ChatPhoto photo, ChatPhoto publicPhoto, BlockList blockList, boolean canBeCalled, boolean supportsVideoCalls, boolean hasPrivateCalls, boolean hasPrivateForwards, boolean hasRestrictedVoiceAndVideoNoteMessages, boolean hasPostedToProfileStories, boolean hasSponsoredMessagesEnabled, boolean needPhoneNumberPrivacyException, boolean setChatBackground, FormattedText bio, Birthdate birthdate, long personalChatId, int giftCount, int groupInCommonCount, BusinessInfo businessInfo, BotInfo botInfo) { + this.personalPhoto = personalPhoto; + this.photo = photo; + this.publicPhoto = publicPhoto; + this.blockList = blockList; + this.canBeCalled = canBeCalled; + this.supportsVideoCalls = supportsVideoCalls; + this.hasPrivateCalls = hasPrivateCalls; + this.hasPrivateForwards = hasPrivateForwards; + this.hasRestrictedVoiceAndVideoNoteMessages = hasRestrictedVoiceAndVideoNoteMessages; + this.hasPostedToProfileStories = hasPostedToProfileStories; + this.hasSponsoredMessagesEnabled = hasSponsoredMessagesEnabled; + this.needPhoneNumberPrivacyException = needPhoneNumberPrivacyException; + this.setChatBackground = setChatBackground; + this.bio = bio; + this.birthdate = birthdate; + this.personalChatId = personalChatId; + this.giftCount = giftCount; + this.groupInCommonCount = groupInCommonCount; + this.businessInfo = businessInfo; + this.botInfo = botInfo; + } + + public static final int CONSTRUCTOR = -2049914619; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class UserGift extends Object { + + public long senderUserId; + + public FormattedText text; + + public boolean isPrivate; + + public boolean isSaved; + + public int date; + + public Gift gift; + + public long messageId; + + public long sellStarCount; + + public UserGift() { + } + + public UserGift(long senderUserId, FormattedText text, boolean isPrivate, boolean isSaved, int date, Gift gift, long messageId, long sellStarCount) { + this.senderUserId = senderUserId; + this.text = text; + this.isPrivate = isPrivate; + this.isSaved = isSaved; + this.date = date; + this.gift = gift; + this.messageId = messageId; + this.sellStarCount = sellStarCount; + } + + public static final int CONSTRUCTOR = 1229895457; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class UserGifts extends Object { + + public int totalCount; + + public UserGift[] gifts; + + public String nextOffset; + + public UserGifts() { + } + + public UserGifts(int totalCount, UserGift[] gifts, String nextOffset) { + this.totalCount = totalCount; + this.gifts = gifts; + this.nextOffset = nextOffset; + } + + public static final int CONSTRUCTOR = 1125548230; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class UserLink extends Object { + + public String url; + + public int expiresIn; + + public UserLink() { + } + + public UserLink(String url, int expiresIn) { + this.url = url; + this.expiresIn = expiresIn; + } + + public static final int CONSTRUCTOR = 498138872; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public abstract static class UserPrivacySetting extends Object { + + public UserPrivacySetting() { + } + } + + public static class UserPrivacySettingShowStatus extends UserPrivacySetting { + public UserPrivacySettingShowStatus() { + } + + public static final int CONSTRUCTOR = 1862829310; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class UserPrivacySettingShowProfilePhoto extends UserPrivacySetting { + public UserPrivacySettingShowProfilePhoto() { + } + + public static final int CONSTRUCTOR = 1408485877; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class UserPrivacySettingShowLinkInForwardedMessages extends UserPrivacySetting { + public UserPrivacySettingShowLinkInForwardedMessages() { + } + + public static final int CONSTRUCTOR = 592688870; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class UserPrivacySettingShowPhoneNumber extends UserPrivacySetting { + public UserPrivacySettingShowPhoneNumber() { + } + + public static final int CONSTRUCTOR = -791567831; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class UserPrivacySettingShowBio extends UserPrivacySetting { + public UserPrivacySettingShowBio() { + } + + public static final int CONSTRUCTOR = 959981409; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class UserPrivacySettingShowBirthdate extends UserPrivacySetting { + public UserPrivacySettingShowBirthdate() { + } + + public static final int CONSTRUCTOR = 1167504607; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class UserPrivacySettingAllowChatInvites extends UserPrivacySetting { + public UserPrivacySettingAllowChatInvites() { + } + + public static final int CONSTRUCTOR = 1271668007; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class UserPrivacySettingAllowCalls extends UserPrivacySetting { + public UserPrivacySettingAllowCalls() { + } + + public static final int CONSTRUCTOR = -906967291; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class UserPrivacySettingAllowPeerToPeerCalls extends UserPrivacySetting { + public UserPrivacySettingAllowPeerToPeerCalls() { + } + + public static final int CONSTRUCTOR = 352500032; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class UserPrivacySettingAllowFindingByPhoneNumber extends UserPrivacySetting { + public UserPrivacySettingAllowFindingByPhoneNumber() { + } + + public static final int CONSTRUCTOR = -1846645423; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class UserPrivacySettingAllowPrivateVoiceAndVideoNoteMessages extends UserPrivacySetting { + public UserPrivacySettingAllowPrivateVoiceAndVideoNoteMessages() { + } + + public static final int CONSTRUCTOR = 338112060; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class UserPrivacySettingAutosaveGifts extends UserPrivacySetting { + public UserPrivacySettingAutosaveGifts() { + } + + public static final int CONSTRUCTOR = 1889167821; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public abstract static class UserPrivacySettingRule extends Object { + + public UserPrivacySettingRule() { + } + } + + public static class UserPrivacySettingRuleAllowAll extends UserPrivacySettingRule { + public UserPrivacySettingRuleAllowAll() { + } + + public static final int CONSTRUCTOR = -1967186881; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class UserPrivacySettingRuleAllowContacts extends UserPrivacySettingRule { + public UserPrivacySettingRuleAllowContacts() { + } + + public static final int CONSTRUCTOR = -1892733680; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class UserPrivacySettingRuleAllowBots extends UserPrivacySettingRule { + public UserPrivacySettingRuleAllowBots() { + } + + public static final int CONSTRUCTOR = 1404208925; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class UserPrivacySettingRuleAllowPremiumUsers extends UserPrivacySettingRule { + public UserPrivacySettingRuleAllowPremiumUsers() { + } + + public static final int CONSTRUCTOR = 1624147265; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class UserPrivacySettingRuleAllowUsers extends UserPrivacySettingRule { + + public long[] userIds; + + public UserPrivacySettingRuleAllowUsers() { + } + + public UserPrivacySettingRuleAllowUsers(long[] userIds) { + this.userIds = userIds; + } + + public static final int CONSTRUCTOR = 1110988334; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class UserPrivacySettingRuleAllowChatMembers extends UserPrivacySettingRule { + + public long[] chatIds; + + public UserPrivacySettingRuleAllowChatMembers() { + } + + public UserPrivacySettingRuleAllowChatMembers(long[] chatIds) { + this.chatIds = chatIds; + } + + public static final int CONSTRUCTOR = -2048749863; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class UserPrivacySettingRuleRestrictAll extends UserPrivacySettingRule { + public UserPrivacySettingRuleRestrictAll() { + } + + public static final int CONSTRUCTOR = -1406495408; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class UserPrivacySettingRuleRestrictContacts extends UserPrivacySettingRule { + public UserPrivacySettingRuleRestrictContacts() { + } + + public static final int CONSTRUCTOR = 1008389378; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class UserPrivacySettingRuleRestrictBots extends UserPrivacySettingRule { + public UserPrivacySettingRuleRestrictBots() { + } + + public static final int CONSTRUCTOR = -1902547363; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class UserPrivacySettingRuleRestrictUsers extends UserPrivacySettingRule { + + public long[] userIds; + + public UserPrivacySettingRuleRestrictUsers() { + } + + public UserPrivacySettingRuleRestrictUsers(long[] userIds) { + this.userIds = userIds; + } + + public static final int CONSTRUCTOR = 622796522; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class UserPrivacySettingRuleRestrictChatMembers extends UserPrivacySettingRule { + + public long[] chatIds; + + public UserPrivacySettingRuleRestrictChatMembers() { + } + + public UserPrivacySettingRuleRestrictChatMembers(long[] chatIds) { + this.chatIds = chatIds; + } + + public static final int CONSTRUCTOR = 392530897; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class UserPrivacySettingRules extends Object { + + public UserPrivacySettingRule[] rules; + + public UserPrivacySettingRules() { + } + + public UserPrivacySettingRules(UserPrivacySettingRule[] rules) { + this.rules = rules; + } + + public static final int CONSTRUCTOR = 322477541; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public abstract static class UserStatus extends Object { + + public UserStatus() { + } + } + + public static class UserStatusEmpty extends UserStatus { + public UserStatusEmpty() { + } + + public static final int CONSTRUCTOR = 164646985; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class UserStatusOnline extends UserStatus { + + public int expires; + + public UserStatusOnline() { + } + + public UserStatusOnline(int expires) { + this.expires = expires; + } + + public static final int CONSTRUCTOR = -1529460876; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class UserStatusOffline extends UserStatus { + + public int wasOnline; + + public UserStatusOffline() { + } + + public UserStatusOffline(int wasOnline) { + this.wasOnline = wasOnline; + } + + public static final int CONSTRUCTOR = -759984891; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class UserStatusRecently extends UserStatus { + + public boolean byMyPrivacySettings; + + public UserStatusRecently() { + } + + public UserStatusRecently(boolean byMyPrivacySettings) { + this.byMyPrivacySettings = byMyPrivacySettings; + } + + public static final int CONSTRUCTOR = 262824117; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class UserStatusLastWeek extends UserStatus { + + public boolean byMyPrivacySettings; + + public UserStatusLastWeek() { + } + + public UserStatusLastWeek(boolean byMyPrivacySettings) { + this.byMyPrivacySettings = byMyPrivacySettings; + } + + public static final int CONSTRUCTOR = 310385495; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class UserStatusLastMonth extends UserStatus { + + public boolean byMyPrivacySettings; + + public UserStatusLastMonth() { + } + + public UserStatusLastMonth(boolean byMyPrivacySettings) { + this.byMyPrivacySettings = byMyPrivacySettings; + } + + public static final int CONSTRUCTOR = -1194644996; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class UserSupportInfo extends Object { + + public FormattedText message; + + public String author; + + public int date; + + public UserSupportInfo() { + } + + public UserSupportInfo(FormattedText message, String author, int date) { + this.message = message; + this.author = author; + this.date = date; + } + + public static final int CONSTRUCTOR = -1257366487; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public abstract static class UserType extends Object { + + public UserType() { + } + } + + public static class UserTypeRegular extends UserType { + public UserTypeRegular() { + } + + public static final int CONSTRUCTOR = -598644325; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class UserTypeDeleted extends UserType { + public UserTypeDeleted() { + } + + public static final int CONSTRUCTOR = -1807729372; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class UserTypeBot extends UserType { + + public boolean canBeEdited; + + public boolean canJoinGroups; + + public boolean canReadAllGroupMessages; + + public boolean hasMainWebApp; + + public boolean isInline; + + public String inlineQueryPlaceholder; + + public boolean needLocation; + + public boolean canConnectToBusiness; + + public boolean canBeAddedToAttachmentMenu; + + public int activeUserCount; + + public UserTypeBot() { + } + + public UserTypeBot(boolean canBeEdited, boolean canJoinGroups, boolean canReadAllGroupMessages, boolean hasMainWebApp, boolean isInline, String inlineQueryPlaceholder, boolean needLocation, boolean canConnectToBusiness, boolean canBeAddedToAttachmentMenu, int activeUserCount) { + this.canBeEdited = canBeEdited; + this.canJoinGroups = canJoinGroups; + this.canReadAllGroupMessages = canReadAllGroupMessages; + this.hasMainWebApp = hasMainWebApp; + this.isInline = isInline; + this.inlineQueryPlaceholder = inlineQueryPlaceholder; + this.needLocation = needLocation; + this.canConnectToBusiness = canConnectToBusiness; + this.canBeAddedToAttachmentMenu = canBeAddedToAttachmentMenu; + this.activeUserCount = activeUserCount; + } + + public static final int CONSTRUCTOR = -1952199642; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class UserTypeUnknown extends UserType { + public UserTypeUnknown() { + } + + public static final int CONSTRUCTOR = -724541123; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class Usernames extends Object { + + public String[] activeUsernames; + + public String[] disabledUsernames; + + public String editableUsername; + + public Usernames() { + } + + public Usernames(String[] activeUsernames, String[] disabledUsernames, String editableUsername) { + this.activeUsernames = activeUsernames; + this.disabledUsernames = disabledUsernames; + this.editableUsername = editableUsername; + } + + public static final int CONSTRUCTOR = 799608565; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class Users extends Object { + + public int totalCount; + + public long[] userIds; + + public Users() { + } + + public Users(int totalCount, long[] userIds) { + this.totalCount = totalCount; + this.userIds = userIds; + } + + public static final int CONSTRUCTOR = 171203420; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class ValidatedOrderInfo extends Object { + + public String orderInfoId; + + public ShippingOption[] shippingOptions; + + public ValidatedOrderInfo() { + } + + public ValidatedOrderInfo(String orderInfoId, ShippingOption[] shippingOptions) { + this.orderInfoId = orderInfoId; + this.shippingOptions = shippingOptions; + } + + public static final int CONSTRUCTOR = 1511451484; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public abstract static class VectorPathCommand extends Object { + + public VectorPathCommand() { + } + } + + public static class VectorPathCommandLine extends VectorPathCommand { + + public Point endPoint; + + public VectorPathCommandLine() { + } + + public VectorPathCommandLine(Point endPoint) { + this.endPoint = endPoint; + } + + public static final int CONSTRUCTOR = -614056822; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class VectorPathCommandCubicBezierCurve extends VectorPathCommand { + + public Point startControlPoint; + + public Point endControlPoint; + + public Point endPoint; + + public VectorPathCommandCubicBezierCurve() { + } + + public VectorPathCommandCubicBezierCurve(Point startControlPoint, Point endControlPoint, Point endPoint) { + this.startControlPoint = startControlPoint; + this.endControlPoint = endControlPoint; + this.endPoint = endPoint; + } + + public static final int CONSTRUCTOR = 1229733434; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class Venue extends Object { + + public Location location; + + public String title; + + public String address; + + public String provider; + + public String id; + + public String type; + + public Venue() { + } + + public Venue(Location location, String title, String address, String provider, String id, String type) { + this.location = location; + this.title = title; + this.address = address; + this.provider = provider; + this.id = id; + this.type = type; + } + + public static final int CONSTRUCTOR = 1070406393; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class Video extends Object { + + public int duration; + + public int width; + + public int height; + + public String fileName; + + public String mimeType; + + public boolean hasStickers; + + public boolean supportsStreaming; + + public Minithumbnail minithumbnail; + + public Thumbnail thumbnail; + + public File video; + + public Video() { + } + + public Video(int duration, int width, int height, String fileName, String mimeType, boolean hasStickers, boolean supportsStreaming, Minithumbnail minithumbnail, Thumbnail thumbnail, File video) { + this.duration = duration; + this.width = width; + this.height = height; + this.fileName = fileName; + this.mimeType = mimeType; + this.hasStickers = hasStickers; + this.supportsStreaming = supportsStreaming; + this.minithumbnail = minithumbnail; + this.thumbnail = thumbnail; + this.video = video; + } + + public static final int CONSTRUCTOR = 832856268; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class VideoChat extends Object { + + public int groupCallId; + + public boolean hasParticipants; + + public MessageSender defaultParticipantId; + + public VideoChat() { + } + + public VideoChat(int groupCallId, boolean hasParticipants, MessageSender defaultParticipantId) { + this.groupCallId = groupCallId; + this.hasParticipants = hasParticipants; + this.defaultParticipantId = defaultParticipantId; + } + + public static final int CONSTRUCTOR = -1374319320; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class VideoNote extends Object { + + public int duration; + + public byte[] waveform; + + public int length; + + public Minithumbnail minithumbnail; + + public Thumbnail thumbnail; + + public SpeechRecognitionResult speechRecognitionResult; + + public File video; + + public VideoNote() { + } + + public VideoNote(int duration, byte[] waveform, int length, Minithumbnail minithumbnail, Thumbnail thumbnail, SpeechRecognitionResult speechRecognitionResult, File video) { + this.duration = duration; + this.waveform = waveform; + this.length = length; + this.minithumbnail = minithumbnail; + this.thumbnail = thumbnail; + this.speechRecognitionResult = speechRecognitionResult; + this.video = video; + } + + public static final int CONSTRUCTOR = 2062096581; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class VoiceNote extends Object { + + public int duration; + + public byte[] waveform; + + public String mimeType; + + public SpeechRecognitionResult speechRecognitionResult; + + public File voice; + + public VoiceNote() { + } + + public VoiceNote(int duration, byte[] waveform, String mimeType, SpeechRecognitionResult speechRecognitionResult, File voice) { + this.duration = duration; + this.waveform = waveform; + this.mimeType = mimeType; + this.speechRecognitionResult = speechRecognitionResult; + this.voice = voice; + } + + public static final int CONSTRUCTOR = -1175302923; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class WebApp extends Object { + + public String shortName; + + public String title; + + public String description; + + public Photo photo; + + public Animation animation; + + public WebApp() { + } + + public WebApp(String shortName, String title, String description, Photo photo, Animation animation) { + this.shortName = shortName; + this.title = title; + this.description = description; + this.photo = photo; + this.animation = animation; + } + + public static final int CONSTRUCTOR = 1616619763; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class WebAppInfo extends Object { + + public long launchId; + + public String url; + + public WebAppInfo() { + } + + public WebAppInfo(long launchId, String url) { + this.launchId = launchId; + this.url = url; + } + + public static final int CONSTRUCTOR = 788378344; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public abstract static class WebAppOpenMode extends Object { + + public WebAppOpenMode() { + } + } + + public static class WebAppOpenModeCompact extends WebAppOpenMode { + public WebAppOpenModeCompact() { + } + + public static final int CONSTRUCTOR = 1711603675; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class WebAppOpenModeFullSize extends WebAppOpenMode { + public WebAppOpenModeFullSize() { + } + + public static final int CONSTRUCTOR = 189320513; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class WebAppOpenModeFullScreen extends WebAppOpenMode { + public WebAppOpenModeFullScreen() { + } + + public static final int CONSTRUCTOR = 1871315357; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class WebAppOpenParameters extends Object { + + public ThemeParameters theme; + + public String applicationName; + + public WebAppOpenMode mode; + + public WebAppOpenParameters() { + } + + public WebAppOpenParameters(ThemeParameters theme, String applicationName, WebAppOpenMode mode) { + this.theme = theme; + this.applicationName = applicationName; + this.mode = mode; + } + + public static final int CONSTRUCTOR = 1375356527; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class WebPageInstantView extends Object { + + public PageBlock[] pageBlocks; + + public int viewCount; + + public int version; + + public boolean isRtl; + + public boolean isFull; + + public InternalLinkType feedbackLink; + + public WebPageInstantView() { + } + + public WebPageInstantView(PageBlock[] pageBlocks, int viewCount, int version, boolean isRtl, boolean isFull, InternalLinkType feedbackLink) { + this.pageBlocks = pageBlocks; + this.viewCount = viewCount; + this.version = version; + this.isRtl = isRtl; + this.isFull = isFull; + this.feedbackLink = feedbackLink; + } + + public static final int CONSTRUCTOR = 778202453; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class AcceptCall extends Function { + + public int callId; + + public CallProtocol protocol; + + public AcceptCall() { + } + + public AcceptCall(int callId, CallProtocol protocol) { + this.callId = callId; + this.protocol = protocol; + } + + public static final int CONSTRUCTOR = -646618416; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class AcceptTermsOfService extends Function { + + public String termsOfServiceId; + + public AcceptTermsOfService() { + } + + public AcceptTermsOfService(String termsOfServiceId) { + this.termsOfServiceId = termsOfServiceId; + } + + public static final int CONSTRUCTOR = 2130576356; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class ActivateStoryStealthMode extends Function { + public ActivateStoryStealthMode() { + } + + public static final int CONSTRUCTOR = -1009023855; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class AddBotMediaPreview extends Function { + + public long botUserId; + + public String languageCode; + + public InputStoryContent content; + + public AddBotMediaPreview() { + } + + public AddBotMediaPreview(long botUserId, String languageCode, InputStoryContent content) { + this.botUserId = botUserId; + this.languageCode = languageCode; + this.content = content; + } + + public static final int CONSTRUCTOR = 1347126571; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class AddChatFolderByInviteLink extends Function { + + public String inviteLink; + + public long[] chatIds; + + public AddChatFolderByInviteLink() { + } + + public AddChatFolderByInviteLink(String inviteLink, long[] chatIds) { + this.inviteLink = inviteLink; + this.chatIds = chatIds; + } + + public static final int CONSTRUCTOR = -858593816; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class AddChatMember extends Function { + + public long chatId; + + public long userId; + + public int forwardLimit; + + public AddChatMember() { + } + + public AddChatMember(long chatId, long userId, int forwardLimit) { + this.chatId = chatId; + this.userId = userId; + this.forwardLimit = forwardLimit; + } + + public static final int CONSTRUCTOR = 1720144407; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class AddChatMembers extends Function { + + public long chatId; + + public long[] userIds; + + public AddChatMembers() { + } + + public AddChatMembers(long chatId, long[] userIds) { + this.chatId = chatId; + this.userIds = userIds; + } + + public static final int CONSTRUCTOR = -1675991329; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class AddChatToList extends Function { + + public long chatId; + + public ChatList chatList; + + public AddChatToList() { + } + + public AddChatToList(long chatId, ChatList chatList) { + this.chatId = chatId; + this.chatList = chatList; + } + + public static final int CONSTRUCTOR = -80523595; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class AddContact extends Function { + + public Contact contact; + + public boolean sharePhoneNumber; + + public AddContact() { + } + + public AddContact(Contact contact, boolean sharePhoneNumber) { + this.contact = contact; + this.sharePhoneNumber = sharePhoneNumber; + } + + public static final int CONSTRUCTOR = 1869640000; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class AddCustomServerLanguagePack extends Function { + + public String languagePackId; + + public AddCustomServerLanguagePack() { + } + + public AddCustomServerLanguagePack(String languagePackId) { + this.languagePackId = languagePackId; + } + + public static final int CONSTRUCTOR = 4492771; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class AddFavoriteSticker extends Function { + + public InputFile sticker; + + public AddFavoriteSticker() { + } + + public AddFavoriteSticker(InputFile sticker) { + this.sticker = sticker; + } + + public static final int CONSTRUCTOR = 324504799; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class AddFileToDownloads extends Function { + + public int fileId; + + public long chatId; + + public long messageId; + + public int priority; + + public AddFileToDownloads() { + } + + public AddFileToDownloads(int fileId, long chatId, long messageId, int priority) { + this.fileId = fileId; + this.chatId = chatId; + this.messageId = messageId; + this.priority = priority; + } + + public static final int CONSTRUCTOR = 867533751; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class AddLocalMessage extends Function { + + public long chatId; + + public MessageSender senderId; + + public InputMessageReplyTo replyTo; + + public boolean disableNotification; + + public InputMessageContent inputMessageContent; + + public AddLocalMessage() { + } + + public AddLocalMessage(long chatId, MessageSender senderId, InputMessageReplyTo replyTo, boolean disableNotification, InputMessageContent inputMessageContent) { + this.chatId = chatId; + this.senderId = senderId; + this.replyTo = replyTo; + this.disableNotification = disableNotification; + this.inputMessageContent = inputMessageContent; + } + + public static final int CONSTRUCTOR = -166217823; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class AddLogMessage extends Function { + + public int verbosityLevel; + + public String text; + + public AddLogMessage() { + } + + public AddLogMessage(int verbosityLevel, String text) { + this.verbosityLevel = verbosityLevel; + this.text = text; + } + + public static final int CONSTRUCTOR = 1597427692; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class AddMessageReaction extends Function { + + public long chatId; + + public long messageId; + + public ReactionType reactionType; + + public boolean isBig; + + public boolean updateRecentReactions; + + public AddMessageReaction() { + } + + public AddMessageReaction(long chatId, long messageId, ReactionType reactionType, boolean isBig, boolean updateRecentReactions) { + this.chatId = chatId; + this.messageId = messageId; + this.reactionType = reactionType; + this.isBig = isBig; + this.updateRecentReactions = updateRecentReactions; + } + + public static final int CONSTRUCTOR = 1419269613; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class AddNetworkStatistics extends Function { + + public NetworkStatisticsEntry entry; + + public AddNetworkStatistics() { + } + + public AddNetworkStatistics(NetworkStatisticsEntry entry) { + this.entry = entry; + } + + public static final int CONSTRUCTOR = 1264825305; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class AddPendingPaidMessageReaction extends Function { + + public long chatId; + + public long messageId; + + public long starCount; + + public boolean useDefaultIsAnonymous; + + public boolean isAnonymous; + + public AddPendingPaidMessageReaction() { + } + + public AddPendingPaidMessageReaction(long chatId, long messageId, long starCount, boolean useDefaultIsAnonymous, boolean isAnonymous) { + this.chatId = chatId; + this.messageId = messageId; + this.starCount = starCount; + this.useDefaultIsAnonymous = useDefaultIsAnonymous; + this.isAnonymous = isAnonymous; + } + + public static final int CONSTRUCTOR = 1716816153; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class AddProxy extends Function { + + public String server; + + public int port; + + public boolean enable; + + public ProxyType type; + + public AddProxy() { + } + + public AddProxy(String server, int port, boolean enable, ProxyType type) { + this.server = server; + this.port = port; + this.enable = enable; + this.type = type; + } + + public static final int CONSTRUCTOR = 331529432; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class AddQuickReplyShortcutInlineQueryResultMessage extends Function { + + public String shortcutName; + + public long replyToMessageId; + + public long queryId; + + public String resultId; + + public boolean hideViaBot; + + public AddQuickReplyShortcutInlineQueryResultMessage() { + } + + public AddQuickReplyShortcutInlineQueryResultMessage(String shortcutName, long replyToMessageId, long queryId, String resultId, boolean hideViaBot) { + this.shortcutName = shortcutName; + this.replyToMessageId = replyToMessageId; + this.queryId = queryId; + this.resultId = resultId; + this.hideViaBot = hideViaBot; + } + + public static final int CONSTRUCTOR = -2017449468; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class AddQuickReplyShortcutMessage extends Function { + + public String shortcutName; + + public long replyToMessageId; + + public InputMessageContent inputMessageContent; + + public AddQuickReplyShortcutMessage() { + } + + public AddQuickReplyShortcutMessage(String shortcutName, long replyToMessageId, InputMessageContent inputMessageContent) { + this.shortcutName = shortcutName; + this.replyToMessageId = replyToMessageId; + this.inputMessageContent = inputMessageContent; + } + + public static final int CONSTRUCTOR = 1058573098; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class AddQuickReplyShortcutMessageAlbum extends Function { + + public String shortcutName; + + public long replyToMessageId; + + public InputMessageContent[] inputMessageContents; + + public AddQuickReplyShortcutMessageAlbum() { + } + + public AddQuickReplyShortcutMessageAlbum(String shortcutName, long replyToMessageId, InputMessageContent[] inputMessageContents) { + this.shortcutName = shortcutName; + this.replyToMessageId = replyToMessageId; + this.inputMessageContents = inputMessageContents; + } + + public static final int CONSTRUCTOR = 1348436244; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class AddRecentSticker extends Function { + + public boolean isAttached; + + public InputFile sticker; + + public AddRecentSticker() { + } + + public AddRecentSticker(boolean isAttached, InputFile sticker) { + this.isAttached = isAttached; + this.sticker = sticker; + } + + public static final int CONSTRUCTOR = -1478109026; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class AddRecentlyFoundChat extends Function { + + public long chatId; + + public AddRecentlyFoundChat() { + } + + public AddRecentlyFoundChat(long chatId) { + this.chatId = chatId; + } + + public static final int CONSTRUCTOR = -1746396787; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class AddSavedAnimation extends Function { + + public InputFile animation; + + public AddSavedAnimation() { + } + + public AddSavedAnimation(InputFile animation) { + this.animation = animation; + } + + public static final int CONSTRUCTOR = -1538525088; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class AddSavedNotificationSound extends Function { + + public InputFile sound; + + public AddSavedNotificationSound() { + } + + public AddSavedNotificationSound(InputFile sound) { + this.sound = sound; + } + + public static final int CONSTRUCTOR = 1043956975; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class AddStickerToSet extends Function { + + public long userId; + + public String name; + + public InputSticker sticker; + + public AddStickerToSet() { + } + + public AddStickerToSet(long userId, String name, InputSticker sticker) { + this.userId = userId; + this.name = name; + this.sticker = sticker; + } + + public static final int CONSTRUCTOR = 1457266235; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class AllowBotToSendMessages extends Function { + + public long botUserId; + + public AllowBotToSendMessages() { + } + + public AllowBotToSendMessages(long botUserId) { + this.botUserId = botUserId; + } + + public static final int CONSTRUCTOR = 1776928142; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class AnswerCallbackQuery extends Function { + + public long callbackQueryId; + + public String text; + + public boolean showAlert; + + public String url; + + public int cacheTime; + + public AnswerCallbackQuery() { + } + + public AnswerCallbackQuery(long callbackQueryId, String text, boolean showAlert, String url, int cacheTime) { + this.callbackQueryId = callbackQueryId; + this.text = text; + this.showAlert = showAlert; + this.url = url; + this.cacheTime = cacheTime; + } + + public static final int CONSTRUCTOR = -1153028490; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class AnswerCustomQuery extends Function { + + public long customQueryId; + + public String data; + + public AnswerCustomQuery() { + } + + public AnswerCustomQuery(long customQueryId, String data) { + this.customQueryId = customQueryId; + this.data = data; + } + + public static final int CONSTRUCTOR = -1293603521; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class AnswerInlineQuery extends Function { + + public long inlineQueryId; + + public boolean isPersonal; + + public InlineQueryResultsButton button; + + public InputInlineQueryResult[] results; + + public int cacheTime; + + public String nextOffset; + + public AnswerInlineQuery() { + } + + public AnswerInlineQuery(long inlineQueryId, boolean isPersonal, InlineQueryResultsButton button, InputInlineQueryResult[] results, int cacheTime, String nextOffset) { + this.inlineQueryId = inlineQueryId; + this.isPersonal = isPersonal; + this.button = button; + this.results = results; + this.cacheTime = cacheTime; + this.nextOffset = nextOffset; + } + + public static final int CONSTRUCTOR = 1343853844; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class AnswerPreCheckoutQuery extends Function { + + public long preCheckoutQueryId; + + public String errorMessage; + + public AnswerPreCheckoutQuery() { + } + + public AnswerPreCheckoutQuery(long preCheckoutQueryId, String errorMessage) { + this.preCheckoutQueryId = preCheckoutQueryId; + this.errorMessage = errorMessage; + } + + public static final int CONSTRUCTOR = -1486789653; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class AnswerShippingQuery extends Function { + + public long shippingQueryId; + + public ShippingOption[] shippingOptions; + + public String errorMessage; + + public AnswerShippingQuery() { + } + + public AnswerShippingQuery(long shippingQueryId, ShippingOption[] shippingOptions, String errorMessage) { + this.shippingQueryId = shippingQueryId; + this.shippingOptions = shippingOptions; + this.errorMessage = errorMessage; + } + + public static final int CONSTRUCTOR = -434601324; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class AnswerWebAppQuery extends Function { + + public String webAppQueryId; + + public InputInlineQueryResult result; + + public AnswerWebAppQuery() { + } + + public AnswerWebAppQuery(String webAppQueryId, InputInlineQueryResult result) { + this.webAppQueryId = webAppQueryId; + this.result = result; + } + + public static final int CONSTRUCTOR = -1598776079; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class ApplyPremiumGiftCode extends Function { + + public String code; + + public ApplyPremiumGiftCode() { + } + + public ApplyPremiumGiftCode(String code) { + this.code = code; + } + + public static final int CONSTRUCTOR = -1347138530; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class AssignAppStoreTransaction extends Function { + + public byte[] receipt; + + public StorePaymentPurpose purpose; + + public AssignAppStoreTransaction() { + } + + public AssignAppStoreTransaction(byte[] receipt, StorePaymentPurpose purpose) { + this.receipt = receipt; + this.purpose = purpose; + } + + public static final int CONSTRUCTOR = -2030892112; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class AssignGooglePlayTransaction extends Function { + + public String packageName; + + public String storeProductId; + + public String purchaseToken; + + public StorePaymentPurpose purpose; + + public AssignGooglePlayTransaction() { + } + + public AssignGooglePlayTransaction(String packageName, String storeProductId, String purchaseToken, StorePaymentPurpose purpose) { + this.packageName = packageName; + this.storeProductId = storeProductId; + this.purchaseToken = purchaseToken; + this.purpose = purpose; + } + + public static final int CONSTRUCTOR = -1992704860; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class BanChatMember extends Function { + + public long chatId; + + public MessageSender memberId; + + public int bannedUntilDate; + + public boolean revokeMessages; + + public BanChatMember() { + } + + public BanChatMember(long chatId, MessageSender memberId, int bannedUntilDate, boolean revokeMessages) { + this.chatId = chatId; + this.memberId = memberId; + this.bannedUntilDate = bannedUntilDate; + this.revokeMessages = revokeMessages; + } + + public static final int CONSTRUCTOR = -888111748; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class BlockMessageSenderFromReplies extends Function { + + public long messageId; + + public boolean deleteMessage; + + public boolean deleteAllMessages; + + public boolean reportSpam; + + public BlockMessageSenderFromReplies() { + } + + public BlockMessageSenderFromReplies(long messageId, boolean deleteMessage, boolean deleteAllMessages, boolean reportSpam) { + this.messageId = messageId; + this.deleteMessage = deleteMessage; + this.deleteAllMessages = deleteAllMessages; + this.reportSpam = reportSpam; + } + + public static final int CONSTRUCTOR = -1214384757; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class BoostChat extends Function { + + public long chatId; + + public int[] slotIds; + + public BoostChat() { + } + + public BoostChat(long chatId, int[] slotIds) { + this.chatId = chatId; + this.slotIds = slotIds; + } + + public static final int CONSTRUCTOR = 1945750252; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class CanBotSendMessages extends Function { + + public long botUserId; + + public CanBotSendMessages() { + } + + public CanBotSendMessages(long botUserId) { + this.botUserId = botUserId; + } + + public static final int CONSTRUCTOR = 544052364; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class CanPurchaseFromStore extends Function { + + public StorePaymentPurpose purpose; + + public CanPurchaseFromStore() { + } + + public CanPurchaseFromStore(StorePaymentPurpose purpose) { + this.purpose = purpose; + } + + public static final int CONSTRUCTOR = 1017811816; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class CanSendMessageToUser extends Function { + + public long userId; + + public boolean onlyLocal; + + public CanSendMessageToUser() { + } + + public CanSendMessageToUser(long userId, boolean onlyLocal) { + this.userId = userId; + this.onlyLocal = onlyLocal; + } + + public static final int CONSTRUCTOR = 1529489462; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class CanSendStory extends Function { + + public long chatId; + + public CanSendStory() { + } + + public CanSendStory(long chatId) { + this.chatId = chatId; + } + + public static final int CONSTRUCTOR = -1226825365; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class CanTransferOwnership extends Function { + public CanTransferOwnership() { + } + + public static final int CONSTRUCTOR = 634602508; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class CancelDownloadFile extends Function { + + public int fileId; + + public boolean onlyIfPending; + + public CancelDownloadFile() { + } + + public CancelDownloadFile(int fileId, boolean onlyIfPending) { + this.fileId = fileId; + this.onlyIfPending = onlyIfPending; + } + + public static final int CONSTRUCTOR = -1954524450; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class CancelPasswordReset extends Function { + public CancelPasswordReset() { + } + + public static final int CONSTRUCTOR = 940733538; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class CancelPreliminaryUploadFile extends Function { + + public int fileId; + + public CancelPreliminaryUploadFile() { + } + + public CancelPreliminaryUploadFile(int fileId) { + this.fileId = fileId; + } + + public static final int CONSTRUCTOR = 823412414; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class CancelRecoveryEmailAddressVerification extends Function { + public CancelRecoveryEmailAddressVerification() { + } + + public static final int CONSTRUCTOR = -1516728691; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class ChangeImportedContacts extends Function { + + public Contact[] contacts; + + public ChangeImportedContacts() { + } + + public ChangeImportedContacts(Contact[] contacts) { + this.contacts = contacts; + } + + public static final int CONSTRUCTOR = 1968207955; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class ChangeStickerSet extends Function { + + public long setId; + + public boolean isInstalled; + + public boolean isArchived; + + public ChangeStickerSet() { + } + + public ChangeStickerSet(long setId, boolean isInstalled, boolean isArchived) { + this.setId = setId; + this.isInstalled = isInstalled; + this.isArchived = isArchived; + } + + public static final int CONSTRUCTOR = 449357293; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class CheckAuthenticationBotToken extends Function { + + public String token; + + public CheckAuthenticationBotToken() { + } + + public CheckAuthenticationBotToken(String token) { + this.token = token; + } + + public static final int CONSTRUCTOR = 639321206; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class CheckAuthenticationCode extends Function { + + public String code; + + public CheckAuthenticationCode() { + } + + public CheckAuthenticationCode(String code) { + this.code = code; + } + + public static final int CONSTRUCTOR = -302103382; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class CheckAuthenticationEmailCode extends Function { + + public EmailAddressAuthentication code; + + public CheckAuthenticationEmailCode() { + } + + public CheckAuthenticationEmailCode(EmailAddressAuthentication code) { + this.code = code; + } + + public static final int CONSTRUCTOR = -582827361; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class CheckAuthenticationPassword extends Function { + + public String password; + + public CheckAuthenticationPassword() { + } + + public CheckAuthenticationPassword(String password) { + this.password = password; + } + + public static final int CONSTRUCTOR = -2025698400; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class CheckAuthenticationPasswordRecoveryCode extends Function { + + public String recoveryCode; + + public CheckAuthenticationPasswordRecoveryCode() { + } + + public CheckAuthenticationPasswordRecoveryCode(String recoveryCode) { + this.recoveryCode = recoveryCode; + } + + public static final int CONSTRUCTOR = -603309083; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class CheckChatFolderInviteLink extends Function { + + public String inviteLink; + + public CheckChatFolderInviteLink() { + } + + public CheckChatFolderInviteLink(String inviteLink) { + this.inviteLink = inviteLink; + } + + public static final int CONSTRUCTOR = 522557851; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class CheckChatInviteLink extends Function { + + public String inviteLink; + + public CheckChatInviteLink() { + } + + public CheckChatInviteLink(String inviteLink) { + this.inviteLink = inviteLink; + } + + public static final int CONSTRUCTOR = -496940997; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class CheckChatUsername extends Function { + + public long chatId; + + public String username; + + public CheckChatUsername() { + } + + public CheckChatUsername(long chatId, String username) { + this.chatId = chatId; + this.username = username; + } + + public static final int CONSTRUCTOR = -119119344; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class CheckCreatedPublicChatsLimit extends Function { + + public PublicChatType type; + + public CheckCreatedPublicChatsLimit() { + } + + public CheckCreatedPublicChatsLimit(PublicChatType type) { + this.type = type; + } + + public static final int CONSTRUCTOR = -445546591; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class CheckEmailAddressVerificationCode extends Function { + + public String code; + + public CheckEmailAddressVerificationCode() { + } + + public CheckEmailAddressVerificationCode(String code) { + this.code = code; + } + + public static final int CONSTRUCTOR = -426386685; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class CheckLoginEmailAddressCode extends Function { + + public EmailAddressAuthentication code; + + public CheckLoginEmailAddressCode() { + } + + public CheckLoginEmailAddressCode(EmailAddressAuthentication code) { + this.code = code; + } + + public static final int CONSTRUCTOR = -1454244766; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class CheckPasswordRecoveryCode extends Function { + + public String recoveryCode; + + public CheckPasswordRecoveryCode() { + } + + public CheckPasswordRecoveryCode(String recoveryCode) { + this.recoveryCode = recoveryCode; + } + + public static final int CONSTRUCTOR = -200794600; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class CheckPhoneNumberCode extends Function { + + public String code; + + public CheckPhoneNumberCode() { + } + + public CheckPhoneNumberCode(String code) { + this.code = code; + } + + public static final int CONSTRUCTOR = -603626079; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class CheckPremiumGiftCode extends Function { + + public String code; + + public CheckPremiumGiftCode() { + } + + public CheckPremiumGiftCode(String code) { + this.code = code; + } + + public static final int CONSTRUCTOR = -1786063260; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class CheckQuickReplyShortcutName extends Function { + + public String name; + + public CheckQuickReplyShortcutName() { + } + + public CheckQuickReplyShortcutName(String name) { + this.name = name; + } + + public static final int CONSTRUCTOR = 2101203241; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class CheckRecoveryEmailAddressCode extends Function { + + public String code; + + public CheckRecoveryEmailAddressCode() { + } + + public CheckRecoveryEmailAddressCode(String code) { + this.code = code; + } + + public static final int CONSTRUCTOR = -1997039589; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class CheckStickerSetName extends Function { + + public String name; + + public CheckStickerSetName() { + } + + public CheckStickerSetName(String name) { + this.name = name; + } + + public static final int CONSTRUCTOR = -1789392642; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class CheckWebAppFileDownload extends Function { + + public long botUserId; + + public String fileName; + + public String url; + + public CheckWebAppFileDownload() { + } + + public CheckWebAppFileDownload(long botUserId, String fileName, String url) { + this.botUserId = botUserId; + this.fileName = fileName; + this.url = url; + } + + public static final int CONSTRUCTOR = -389397278; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class CleanFileName extends Function { + + public String fileName; + + public CleanFileName() { + } + + public CleanFileName(String fileName) { + this.fileName = fileName; + } + + public static final int CONSTRUCTOR = 967964667; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class ClearAllDraftMessages extends Function { + + public boolean excludeSecretChats; + + public ClearAllDraftMessages() { + } + + public ClearAllDraftMessages(boolean excludeSecretChats) { + this.excludeSecretChats = excludeSecretChats; + } + + public static final int CONSTRUCTOR = -46369573; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class ClearAutosaveSettingsExceptions extends Function { + public ClearAutosaveSettingsExceptions() { + } + + public static final int CONSTRUCTOR = 1475109874; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class ClearImportedContacts extends Function { + public ClearImportedContacts() { + } + + public static final int CONSTRUCTOR = 869503298; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class ClearRecentEmojiStatuses extends Function { + public ClearRecentEmojiStatuses() { + } + + public static final int CONSTRUCTOR = -428749986; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class ClearRecentReactions extends Function { + public ClearRecentReactions() { + } + + public static final int CONSTRUCTOR = 1298253650; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class ClearRecentStickers extends Function { + + public boolean isAttached; + + public ClearRecentStickers() { + } + + public ClearRecentStickers(boolean isAttached) { + this.isAttached = isAttached; + } + + public static final int CONSTRUCTOR = -321242684; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class ClearRecentlyFoundChats extends Function { + public ClearRecentlyFoundChats() { + } + + public static final int CONSTRUCTOR = -285582542; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class ClearSearchedForTags extends Function { + + public boolean clearCashtags; + + public ClearSearchedForTags() { + } + + public ClearSearchedForTags(boolean clearCashtags) { + this.clearCashtags = clearCashtags; + } + + public static final int CONSTRUCTOR = 512017238; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class ClickAnimatedEmojiMessage extends Function { + + public long chatId; + + public long messageId; + + public ClickAnimatedEmojiMessage() { + } + + public ClickAnimatedEmojiMessage(long chatId, long messageId) { + this.chatId = chatId; + this.messageId = messageId; + } + + public static final int CONSTRUCTOR = 196179554; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class ClickChatSponsoredMessage extends Function { + + public long chatId; + + public long messageId; + + public boolean isMediaClick; + + public boolean fromFullscreen; + + public ClickChatSponsoredMessage() { + } + + public ClickChatSponsoredMessage(long chatId, long messageId, boolean isMediaClick, boolean fromFullscreen) { + this.chatId = chatId; + this.messageId = messageId; + this.isMediaClick = isMediaClick; + this.fromFullscreen = fromFullscreen; + } + + public static final int CONSTRUCTOR = 971995671; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class ClickPremiumSubscriptionButton extends Function { + public ClickPremiumSubscriptionButton() { + } + + public static final int CONSTRUCTOR = -369319162; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class Close extends Function { + public Close() { + } + + public static final int CONSTRUCTOR = -1187782273; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class CloseChat extends Function { + + public long chatId; + + public CloseChat() { + } + + public CloseChat(long chatId) { + this.chatId = chatId; + } + + public static final int CONSTRUCTOR = 39749353; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class CloseSecretChat extends Function { + + public int secretChatId; + + public CloseSecretChat() { + } + + public CloseSecretChat(int secretChatId) { + this.secretChatId = secretChatId; + } + + public static final int CONSTRUCTOR = -471006133; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class CloseStory extends Function { + + public long storySenderChatId; + + public int storyId; + + public CloseStory() { + } + + public CloseStory(long storySenderChatId, int storyId) { + this.storySenderChatId = storySenderChatId; + this.storyId = storyId; + } + + public static final int CONSTRUCTOR = 1144852309; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class CloseWebApp extends Function { + + public long webAppLaunchId; + + public CloseWebApp() { + } + + public CloseWebApp(long webAppLaunchId) { + this.webAppLaunchId = webAppLaunchId; + } + + public static final int CONSTRUCTOR = 1755391174; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class CommitPendingPaidMessageReactions extends Function { + + public long chatId; + + public long messageId; + + public CommitPendingPaidMessageReactions() { + } + + public CommitPendingPaidMessageReactions(long chatId, long messageId) { + this.chatId = chatId; + this.messageId = messageId; + } + + public static final int CONSTRUCTOR = -171354618; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class ConfirmQrCodeAuthentication extends Function { + + public String link; + + public ConfirmQrCodeAuthentication() { + } + + public ConfirmQrCodeAuthentication(String link) { + this.link = link; + } + + public static final int CONSTRUCTOR = -376199379; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class ConfirmSession extends Function { + + public long sessionId; + + public ConfirmSession() { + } + + public ConfirmSession(long sessionId) { + this.sessionId = sessionId; + } + + public static final int CONSTRUCTOR = -674647009; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class ConnectChatAffiliateProgram extends Function { + + public long chatId; + + public long botUserId; + + public ConnectChatAffiliateProgram() { + } + + public ConnectChatAffiliateProgram(long chatId, long botUserId) { + this.chatId = chatId; + this.botUserId = botUserId; + } + + public static final int CONSTRUCTOR = 1974559684; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class CreateBasicGroupChat extends Function { + + public long basicGroupId; + + public boolean force; + + public CreateBasicGroupChat() { + } + + public CreateBasicGroupChat(long basicGroupId, boolean force) { + this.basicGroupId = basicGroupId; + this.force = force; + } + + public static final int CONSTRUCTOR = 1972024548; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class CreateBusinessChatLink extends Function { + + public InputBusinessChatLink linkInfo; + + public CreateBusinessChatLink() { + } + + public CreateBusinessChatLink(InputBusinessChatLink linkInfo) { + this.linkInfo = linkInfo; + } + + public static final int CONSTRUCTOR = -1861018304; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class CreateCall extends Function { + + public long userId; + + public CallProtocol protocol; + + public boolean isVideo; + + public CreateCall() { + } + + public CreateCall(long userId, CallProtocol protocol, boolean isVideo) { + this.userId = userId; + this.protocol = protocol; + this.isVideo = isVideo; + } + + public static final int CONSTRUCTOR = -1104663024; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class CreateChatFolder extends Function { + + public ChatFolder folder; + + public CreateChatFolder() { + } + + public CreateChatFolder(ChatFolder folder) { + this.folder = folder; + } + + public static final int CONSTRUCTOR = 1015399680; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class CreateChatFolderInviteLink extends Function { + + public int chatFolderId; + + public String name; + + public long[] chatIds; + + public CreateChatFolderInviteLink() { + } + + public CreateChatFolderInviteLink(int chatFolderId, String name, long[] chatIds) { + this.chatFolderId = chatFolderId; + this.name = name; + this.chatIds = chatIds; + } + + public static final int CONSTRUCTOR = -2037911099; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class CreateChatInviteLink extends Function { + + public long chatId; + + public String name; + + public int expirationDate; + + public int memberLimit; + + public boolean createsJoinRequest; + + public CreateChatInviteLink() { + } + + public CreateChatInviteLink(long chatId, String name, int expirationDate, int memberLimit, boolean createsJoinRequest) { + this.chatId = chatId; + this.name = name; + this.expirationDate = expirationDate; + this.memberLimit = memberLimit; + this.createsJoinRequest = createsJoinRequest; + } + + public static final int CONSTRUCTOR = 287744833; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class CreateChatSubscriptionInviteLink extends Function { + + public long chatId; + + public String name; + + public StarSubscriptionPricing subscriptionPricing; + + public CreateChatSubscriptionInviteLink() { + } + + public CreateChatSubscriptionInviteLink(long chatId, String name, StarSubscriptionPricing subscriptionPricing) { + this.chatId = chatId; + this.name = name; + this.subscriptionPricing = subscriptionPricing; + } + + public static final int CONSTRUCTOR = 2255717; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class CreateForumTopic extends Function { + + public long chatId; + + public String name; + + public ForumTopicIcon icon; + + public CreateForumTopic() { + } + + public CreateForumTopic(long chatId, String name, ForumTopicIcon icon) { + this.chatId = chatId; + this.name = name; + this.icon = icon; + } + + public static final int CONSTRUCTOR = -1040570140; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class CreateInvoiceLink extends Function { + + public String businessConnectionId; + + public InputMessageContent invoice; + + public CreateInvoiceLink() { + } + + public CreateInvoiceLink(String businessConnectionId, InputMessageContent invoice) { + this.businessConnectionId = businessConnectionId; + this.invoice = invoice; + } + + public static final int CONSTRUCTOR = -814692249; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class CreateNewBasicGroupChat extends Function { + + public long[] userIds; + + public String title; + + public int messageAutoDeleteTime; + + public CreateNewBasicGroupChat() { + } + + public CreateNewBasicGroupChat(long[] userIds, String title, int messageAutoDeleteTime) { + this.userIds = userIds; + this.title = title; + this.messageAutoDeleteTime = messageAutoDeleteTime; + } + + public static final int CONSTRUCTOR = 1806454709; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class CreateNewSecretChat extends Function { + + public long userId; + + public CreateNewSecretChat() { + } + + public CreateNewSecretChat(long userId) { + this.userId = userId; + } + + public static final int CONSTRUCTOR = -620682651; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class CreateNewStickerSet extends Function { + + public long userId; + + public String title; + + public String name; + + public StickerType stickerType; + + public boolean needsRepainting; + + public InputSticker[] stickers; + + public String source; + + public CreateNewStickerSet() { + } + + public CreateNewStickerSet(long userId, String title, String name, StickerType stickerType, boolean needsRepainting, InputSticker[] stickers, String source) { + this.userId = userId; + this.title = title; + this.name = name; + this.stickerType = stickerType; + this.needsRepainting = needsRepainting; + this.stickers = stickers; + this.source = source; + } + + public static final int CONSTRUCTOR = -481065727; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class CreateNewSupergroupChat extends Function { + + public String title; + + public boolean isForum; + + public boolean isChannel; + + public String description; + + public ChatLocation location; + + public int messageAutoDeleteTime; + + public boolean forImport; + + public CreateNewSupergroupChat() { + } + + public CreateNewSupergroupChat(String title, boolean isForum, boolean isChannel, String description, ChatLocation location, int messageAutoDeleteTime, boolean forImport) { + this.title = title; + this.isForum = isForum; + this.isChannel = isChannel; + this.description = description; + this.location = location; + this.messageAutoDeleteTime = messageAutoDeleteTime; + this.forImport = forImport; + } + + public static final int CONSTRUCTOR = 804058822; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class CreatePrivateChat extends Function { + + public long userId; + + public boolean force; + + public CreatePrivateChat() { + } + + public CreatePrivateChat(long userId, boolean force) { + this.userId = userId; + this.force = force; + } + + public static final int CONSTRUCTOR = -947758327; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class CreateSecretChat extends Function { + + public int secretChatId; + + public CreateSecretChat() { + } + + public CreateSecretChat(int secretChatId) { + this.secretChatId = secretChatId; + } + + public static final int CONSTRUCTOR = 1930285615; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class CreateSupergroupChat extends Function { + + public long supergroupId; + + public boolean force; + + public CreateSupergroupChat() { + } + + public CreateSupergroupChat(long supergroupId, boolean force) { + this.supergroupId = supergroupId; + this.force = force; + } + + public static final int CONSTRUCTOR = 1187475691; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class CreateTemporaryPassword extends Function { + + public String password; + + public int validFor; + + public CreateTemporaryPassword() { + } + + public CreateTemporaryPassword(String password, int validFor) { + this.password = password; + this.validFor = validFor; + } + + public static final int CONSTRUCTOR = -1626509434; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class CreateVideoChat extends Function { + + public long chatId; + + public String title; + + public int startDate; + + public boolean isRtmpStream; + + public CreateVideoChat() { + } + + public CreateVideoChat(long chatId, String title, int startDate, boolean isRtmpStream) { + this.chatId = chatId; + this.title = title; + this.startDate = startDate; + this.isRtmpStream = isRtmpStream; + } + + public static final int CONSTRUCTOR = 2124715405; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class DeleteAccount extends Function { + + public String reason; + + public String password; + + public DeleteAccount() { + } + + public DeleteAccount(String reason, String password) { + this.reason = reason; + this.password = password; + } + + public static final int CONSTRUCTOR = 1395816134; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class DeleteAllCallMessages extends Function { + + public boolean revoke; + + public DeleteAllCallMessages() { + } + + public DeleteAllCallMessages(boolean revoke) { + this.revoke = revoke; + } + + public static final int CONSTRUCTOR = -1466445325; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class DeleteAllRevokedChatInviteLinks extends Function { + + public long chatId; + + public long creatorUserId; + + public DeleteAllRevokedChatInviteLinks() { + } + + public DeleteAllRevokedChatInviteLinks(long chatId, long creatorUserId) { + this.chatId = chatId; + this.creatorUserId = creatorUserId; + } + + public static final int CONSTRUCTOR = 1112020698; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class DeleteBotMediaPreviews extends Function { + + public long botUserId; + + public String languageCode; + + public int[] fileIds; + + public DeleteBotMediaPreviews() { + } + + public DeleteBotMediaPreviews(long botUserId, String languageCode, int[] fileIds) { + this.botUserId = botUserId; + this.languageCode = languageCode; + this.fileIds = fileIds; + } + + public static final int CONSTRUCTOR = -1397512722; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class DeleteBusinessChatLink extends Function { + + public String link; + + public DeleteBusinessChatLink() { + } + + public DeleteBusinessChatLink(String link) { + this.link = link; + } + + public static final int CONSTRUCTOR = -1101895865; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class DeleteBusinessConnectedBot extends Function { + + public long botUserId; + + public DeleteBusinessConnectedBot() { + } + + public DeleteBusinessConnectedBot(long botUserId) { + this.botUserId = botUserId; + } + + public static final int CONSTRUCTOR = -1633976747; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class DeleteChat extends Function { + + public long chatId; + + public DeleteChat() { + } + + public DeleteChat(long chatId) { + this.chatId = chatId; + } + + public static final int CONSTRUCTOR = -171253666; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class DeleteChatBackground extends Function { + + public long chatId; + + public boolean restorePrevious; + + public DeleteChatBackground() { + } + + public DeleteChatBackground(long chatId, boolean restorePrevious) { + this.chatId = chatId; + this.restorePrevious = restorePrevious; + } + + public static final int CONSTRUCTOR = 320267896; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class DeleteChatFolder extends Function { + + public int chatFolderId; + + public long[] leaveChatIds; + + public DeleteChatFolder() { + } + + public DeleteChatFolder(int chatFolderId, long[] leaveChatIds) { + this.chatFolderId = chatFolderId; + this.leaveChatIds = leaveChatIds; + } + + public static final int CONSTRUCTOR = -1956364551; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class DeleteChatFolderInviteLink extends Function { + + public int chatFolderId; + + public String inviteLink; + + public DeleteChatFolderInviteLink() { + } + + public DeleteChatFolderInviteLink(int chatFolderId, String inviteLink) { + this.chatFolderId = chatFolderId; + this.inviteLink = inviteLink; + } + + public static final int CONSTRUCTOR = -930057858; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class DeleteChatHistory extends Function { + + public long chatId; + + public boolean removeFromChatList; + + public boolean revoke; + + public DeleteChatHistory() { + } + + public DeleteChatHistory(long chatId, boolean removeFromChatList, boolean revoke) { + this.chatId = chatId; + this.removeFromChatList = removeFromChatList; + this.revoke = revoke; + } + + public static final int CONSTRUCTOR = -1472081761; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class DeleteChatMessagesByDate extends Function { + + public long chatId; + + public int minDate; + + public int maxDate; + + public boolean revoke; + + public DeleteChatMessagesByDate() { + } + + public DeleteChatMessagesByDate(long chatId, int minDate, int maxDate, boolean revoke) { + this.chatId = chatId; + this.minDate = minDate; + this.maxDate = maxDate; + this.revoke = revoke; + } + + public static final int CONSTRUCTOR = -1639653185; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class DeleteChatMessagesBySender extends Function { + + public long chatId; + + public MessageSender senderId; + + public DeleteChatMessagesBySender() { + } + + public DeleteChatMessagesBySender(long chatId, MessageSender senderId) { + this.chatId = chatId; + this.senderId = senderId; + } + + public static final int CONSTRUCTOR = -1164235161; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class DeleteChatReplyMarkup extends Function { + + public long chatId; + + public long messageId; + + public DeleteChatReplyMarkup() { + } + + public DeleteChatReplyMarkup(long chatId, long messageId) { + this.chatId = chatId; + this.messageId = messageId; + } + + public static final int CONSTRUCTOR = 100637531; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class DeleteCommands extends Function { + + public BotCommandScope scope; + + public String languageCode; + + public DeleteCommands() { + } + + public DeleteCommands(BotCommandScope scope, String languageCode) { + this.scope = scope; + this.languageCode = languageCode; + } + + public static final int CONSTRUCTOR = 1002732586; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class DeleteDefaultBackground extends Function { + + public boolean forDarkTheme; + + public DeleteDefaultBackground() { + } + + public DeleteDefaultBackground(boolean forDarkTheme) { + this.forDarkTheme = forDarkTheme; + } + + public static final int CONSTRUCTOR = -1297814210; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class DeleteFile extends Function { + + public int fileId; + + public DeleteFile() { + } + + public DeleteFile(int fileId) { + this.fileId = fileId; + } + + public static final int CONSTRUCTOR = 1807653676; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class DeleteForumTopic extends Function { + + public long chatId; + + public long messageThreadId; + + public DeleteForumTopic() { + } + + public DeleteForumTopic(long chatId, long messageThreadId) { + this.chatId = chatId; + this.messageThreadId = messageThreadId; + } + + public static final int CONSTRUCTOR = 1864916152; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class DeleteLanguagePack extends Function { + + public String languagePackId; + + public DeleteLanguagePack() { + } + + public DeleteLanguagePack(String languagePackId) { + this.languagePackId = languagePackId; + } + + public static final int CONSTRUCTOR = -2108761026; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class DeleteMessages extends Function { + + public long chatId; + + public long[] messageIds; + + public boolean revoke; + + public DeleteMessages() { + } + + public DeleteMessages(long chatId, long[] messageIds, boolean revoke) { + this.chatId = chatId; + this.messageIds = messageIds; + this.revoke = revoke; + } + + public static final int CONSTRUCTOR = 1130090173; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class DeletePassportElement extends Function { + + public PassportElementType type; + + public DeletePassportElement() { + } + + public DeletePassportElement(PassportElementType type) { + this.type = type; + } + + public static final int CONSTRUCTOR = -1719555468; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class DeleteProfilePhoto extends Function { + + public long profilePhotoId; + + public DeleteProfilePhoto() { + } + + public DeleteProfilePhoto(long profilePhotoId) { + this.profilePhotoId = profilePhotoId; + } + + public static final int CONSTRUCTOR = 1319794625; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class DeleteQuickReplyShortcut extends Function { + + public int shortcutId; + + public DeleteQuickReplyShortcut() { + } + + public DeleteQuickReplyShortcut(int shortcutId) { + this.shortcutId = shortcutId; + } + + public static final int CONSTRUCTOR = -246911978; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class DeleteQuickReplyShortcutMessages extends Function { + + public int shortcutId; + + public long[] messageIds; + + public DeleteQuickReplyShortcutMessages() { + } + + public DeleteQuickReplyShortcutMessages(int shortcutId, long[] messageIds) { + this.shortcutId = shortcutId; + this.messageIds = messageIds; + } + + public static final int CONSTRUCTOR = -40522947; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class DeleteRevokedChatInviteLink extends Function { + + public long chatId; + + public String inviteLink; + + public DeleteRevokedChatInviteLink() { + } + + public DeleteRevokedChatInviteLink(long chatId, String inviteLink) { + this.chatId = chatId; + this.inviteLink = inviteLink; + } + + public static final int CONSTRUCTOR = -1859711873; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class DeleteSavedCredentials extends Function { + public DeleteSavedCredentials() { + } + + public static final int CONSTRUCTOR = 826300114; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class DeleteSavedMessagesTopicHistory extends Function { + + public long savedMessagesTopicId; + + public DeleteSavedMessagesTopicHistory() { + } + + public DeleteSavedMessagesTopicHistory(long savedMessagesTopicId) { + this.savedMessagesTopicId = savedMessagesTopicId; + } + + public static final int CONSTRUCTOR = 1776237930; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class DeleteSavedMessagesTopicMessagesByDate extends Function { + + public long savedMessagesTopicId; + + public int minDate; + + public int maxDate; + + public DeleteSavedMessagesTopicMessagesByDate() { + } + + public DeleteSavedMessagesTopicMessagesByDate(long savedMessagesTopicId, int minDate, int maxDate) { + this.savedMessagesTopicId = savedMessagesTopicId; + this.minDate = minDate; + this.maxDate = maxDate; + } + + public static final int CONSTRUCTOR = 1444389; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class DeleteSavedOrderInfo extends Function { + public DeleteSavedOrderInfo() { + } + + public static final int CONSTRUCTOR = 1629058164; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class DeleteStickerSet extends Function { + + public String name; + + public DeleteStickerSet() { + } + + public DeleteStickerSet(String name) { + this.name = name; + } + + public static final int CONSTRUCTOR = 1577745325; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class DeleteStory extends Function { + + public long storySenderChatId; + + public int storyId; + + public DeleteStory() { + } + + public DeleteStory(long storySenderChatId, int storyId) { + this.storySenderChatId = storySenderChatId; + this.storyId = storyId; + } + + public static final int CONSTRUCTOR = -1623871722; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class Destroy extends Function { + public Destroy() { + } + + public static final int CONSTRUCTOR = 685331274; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class DisableAllSupergroupUsernames extends Function { + + public long supergroupId; + + public DisableAllSupergroupUsernames() { + } + + public DisableAllSupergroupUsernames(long supergroupId) { + this.supergroupId = supergroupId; + } + + public static final int CONSTRUCTOR = 843511216; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class DisableProxy extends Function { + public DisableProxy() { + } + + public static final int CONSTRUCTOR = -2100095102; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class DiscardCall extends Function { + + public int callId; + + public boolean isDisconnected; + + public int duration; + + public boolean isVideo; + + public long connectionId; + + public DiscardCall() { + } + + public DiscardCall(int callId, boolean isDisconnected, int duration, boolean isVideo, long connectionId) { + this.callId = callId; + this.isDisconnected = isDisconnected; + this.duration = duration; + this.isVideo = isVideo; + this.connectionId = connectionId; + } + + public static final int CONSTRUCTOR = -1784044162; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class DisconnectAllWebsites extends Function { + public DisconnectAllWebsites() { + } + + public static final int CONSTRUCTOR = -1082985981; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class DisconnectChatAffiliateProgram extends Function { + + public long chatId; + + public String url; + + public DisconnectChatAffiliateProgram() { + } + + public DisconnectChatAffiliateProgram(long chatId, String url) { + this.chatId = chatId; + this.url = url; + } + + public static final int CONSTRUCTOR = 1223651927; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class DisconnectWebsite extends Function { + + public long websiteId; + + public DisconnectWebsite() { + } + + public DisconnectWebsite(long websiteId) { + this.websiteId = websiteId; + } + + public static final int CONSTRUCTOR = -778767395; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class DownloadFile extends Function { + + public int fileId; + + public int priority; + + public long offset; + + public long limit; + + public boolean synchronous; + + public DownloadFile() { + } + + public DownloadFile(int fileId, int priority, long offset, long limit, boolean synchronous) { + this.fileId = fileId; + this.priority = priority; + this.offset = offset; + this.limit = limit; + this.synchronous = synchronous; + } + + public static final int CONSTRUCTOR = 1059402292; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class EditBotMediaPreview extends Function { + + public long botUserId; + + public String languageCode; + + public int fileId; + + public InputStoryContent content; + + public EditBotMediaPreview() { + } + + public EditBotMediaPreview(long botUserId, String languageCode, int fileId, InputStoryContent content) { + this.botUserId = botUserId; + this.languageCode = languageCode; + this.fileId = fileId; + this.content = content; + } + + public static final int CONSTRUCTOR = -2037031582; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class EditBusinessChatLink extends Function { + + public String link; + + public InputBusinessChatLink linkInfo; + + public EditBusinessChatLink() { + } + + public EditBusinessChatLink(String link, InputBusinessChatLink linkInfo) { + this.link = link; + this.linkInfo = linkInfo; + } + + public static final int CONSTRUCTOR = 1594947110; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class EditBusinessMessageCaption extends Function { + + public String businessConnectionId; + + public long chatId; + + public long messageId; + + public ReplyMarkup replyMarkup; + + public FormattedText caption; + + public boolean showCaptionAboveMedia; + + public EditBusinessMessageCaption() { + } + + public EditBusinessMessageCaption(String businessConnectionId, long chatId, long messageId, ReplyMarkup replyMarkup, FormattedText caption, boolean showCaptionAboveMedia) { + this.businessConnectionId = businessConnectionId; + this.chatId = chatId; + this.messageId = messageId; + this.replyMarkup = replyMarkup; + this.caption = caption; + this.showCaptionAboveMedia = showCaptionAboveMedia; + } + + public static final int CONSTRUCTOR = -1071562045; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class EditBusinessMessageLiveLocation extends Function { + + public String businessConnectionId; + + public long chatId; + + public long messageId; + + public ReplyMarkup replyMarkup; + + public Location location; + + public int livePeriod; + + public int heading; + + public int proximityAlertRadius; + + public EditBusinessMessageLiveLocation() { + } + + public EditBusinessMessageLiveLocation(String businessConnectionId, long chatId, long messageId, ReplyMarkup replyMarkup, Location location, int livePeriod, int heading, int proximityAlertRadius) { + this.businessConnectionId = businessConnectionId; + this.chatId = chatId; + this.messageId = messageId; + this.replyMarkup = replyMarkup; + this.location = location; + this.livePeriod = livePeriod; + this.heading = heading; + this.proximityAlertRadius = proximityAlertRadius; + } + + public static final int CONSTRUCTOR = 494972447; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class EditBusinessMessageMedia extends Function { + + public String businessConnectionId; + + public long chatId; + + public long messageId; + + public ReplyMarkup replyMarkup; + + public InputMessageContent inputMessageContent; + + public EditBusinessMessageMedia() { + } + + public EditBusinessMessageMedia(String businessConnectionId, long chatId, long messageId, ReplyMarkup replyMarkup, InputMessageContent inputMessageContent) { + this.businessConnectionId = businessConnectionId; + this.chatId = chatId; + this.messageId = messageId; + this.replyMarkup = replyMarkup; + this.inputMessageContent = inputMessageContent; + } + + public static final int CONSTRUCTOR = -60733576; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class EditBusinessMessageReplyMarkup extends Function { + + public String businessConnectionId; + + public long chatId; + + public long messageId; + + public ReplyMarkup replyMarkup; + + public EditBusinessMessageReplyMarkup() { + } + + public EditBusinessMessageReplyMarkup(String businessConnectionId, long chatId, long messageId, ReplyMarkup replyMarkup) { + this.businessConnectionId = businessConnectionId; + this.chatId = chatId; + this.messageId = messageId; + this.replyMarkup = replyMarkup; + } + + public static final int CONSTRUCTOR = 701787159; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class EditBusinessMessageText extends Function { + + public String businessConnectionId; + + public long chatId; + + public long messageId; + + public ReplyMarkup replyMarkup; + + public InputMessageContent inputMessageContent; + + public EditBusinessMessageText() { + } + + public EditBusinessMessageText(String businessConnectionId, long chatId, long messageId, ReplyMarkup replyMarkup, InputMessageContent inputMessageContent) { + this.businessConnectionId = businessConnectionId; + this.chatId = chatId; + this.messageId = messageId; + this.replyMarkup = replyMarkup; + this.inputMessageContent = inputMessageContent; + } + + public static final int CONSTRUCTOR = -1149169252; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class EditChatFolder extends Function { + + public int chatFolderId; + + public ChatFolder folder; + + public EditChatFolder() { + } + + public EditChatFolder(int chatFolderId, ChatFolder folder) { + this.chatFolderId = chatFolderId; + this.folder = folder; + } + + public static final int CONSTRUCTOR = 53672754; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class EditChatFolderInviteLink extends Function { + + public int chatFolderId; + + public String inviteLink; + + public String name; + + public long[] chatIds; + + public EditChatFolderInviteLink() { + } + + public EditChatFolderInviteLink(int chatFolderId, String inviteLink, String name, long[] chatIds) { + this.chatFolderId = chatFolderId; + this.inviteLink = inviteLink; + this.name = name; + this.chatIds = chatIds; + } + + public static final int CONSTRUCTOR = -2141872095; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class EditChatInviteLink extends Function { + + public long chatId; + + public String inviteLink; + + public String name; + + public int expirationDate; + + public int memberLimit; + + public boolean createsJoinRequest; + + public EditChatInviteLink() { + } + + public EditChatInviteLink(long chatId, String inviteLink, String name, int expirationDate, int memberLimit, boolean createsJoinRequest) { + this.chatId = chatId; + this.inviteLink = inviteLink; + this.name = name; + this.expirationDate = expirationDate; + this.memberLimit = memberLimit; + this.createsJoinRequest = createsJoinRequest; + } + + public static final int CONSTRUCTOR = 1320303996; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class EditChatSubscriptionInviteLink extends Function { + + public long chatId; + + public String inviteLink; + + public String name; + + public EditChatSubscriptionInviteLink() { + } + + public EditChatSubscriptionInviteLink(long chatId, String inviteLink, String name) { + this.chatId = chatId; + this.inviteLink = inviteLink; + this.name = name; + } + + public static final int CONSTRUCTOR = -951826989; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class EditCustomLanguagePackInfo extends Function { + + public LanguagePackInfo info; + + public EditCustomLanguagePackInfo() { + } + + public EditCustomLanguagePackInfo(LanguagePackInfo info) { + this.info = info; + } + + public static final int CONSTRUCTOR = 1320751257; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class EditForumTopic extends Function { + + public long chatId; + + public long messageThreadId; + + public String name; + + public boolean editIconCustomEmoji; + + public long iconCustomEmojiId; + + public EditForumTopic() { + } + + public EditForumTopic(long chatId, long messageThreadId, String name, boolean editIconCustomEmoji, long iconCustomEmojiId) { + this.chatId = chatId; + this.messageThreadId = messageThreadId; + this.name = name; + this.editIconCustomEmoji = editIconCustomEmoji; + this.iconCustomEmojiId = iconCustomEmojiId; + } + + public static final int CONSTRUCTOR = -1485402016; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class EditInlineMessageCaption extends Function { + + public String inlineMessageId; + + public ReplyMarkup replyMarkup; + + public FormattedText caption; + + public boolean showCaptionAboveMedia; + + public EditInlineMessageCaption() { + } + + public EditInlineMessageCaption(String inlineMessageId, ReplyMarkup replyMarkup, FormattedText caption, boolean showCaptionAboveMedia) { + this.inlineMessageId = inlineMessageId; + this.replyMarkup = replyMarkup; + this.caption = caption; + this.showCaptionAboveMedia = showCaptionAboveMedia; + } + + public static final int CONSTRUCTOR = 1409762552; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class EditInlineMessageLiveLocation extends Function { + + public String inlineMessageId; + + public ReplyMarkup replyMarkup; + + public Location location; + + public int livePeriod; + + public int heading; + + public int proximityAlertRadius; + + public EditInlineMessageLiveLocation() { + } + + public EditInlineMessageLiveLocation(String inlineMessageId, ReplyMarkup replyMarkup, Location location, int livePeriod, int heading, int proximityAlertRadius) { + this.inlineMessageId = inlineMessageId; + this.replyMarkup = replyMarkup; + this.location = location; + this.livePeriod = livePeriod; + this.heading = heading; + this.proximityAlertRadius = proximityAlertRadius; + } + + public static final int CONSTRUCTOR = 2134352044; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class EditInlineMessageMedia extends Function { + + public String inlineMessageId; + + public ReplyMarkup replyMarkup; + + public InputMessageContent inputMessageContent; + + public EditInlineMessageMedia() { + } + + public EditInlineMessageMedia(String inlineMessageId, ReplyMarkup replyMarkup, InputMessageContent inputMessageContent) { + this.inlineMessageId = inlineMessageId; + this.replyMarkup = replyMarkup; + this.inputMessageContent = inputMessageContent; + } + + public static final int CONSTRUCTOR = 23553921; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class EditInlineMessageReplyMarkup extends Function { + + public String inlineMessageId; + + public ReplyMarkup replyMarkup; + + public EditInlineMessageReplyMarkup() { + } + + public EditInlineMessageReplyMarkup(String inlineMessageId, ReplyMarkup replyMarkup) { + this.inlineMessageId = inlineMessageId; + this.replyMarkup = replyMarkup; + } + + public static final int CONSTRUCTOR = -67565858; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class EditInlineMessageText extends Function { + + public String inlineMessageId; + + public ReplyMarkup replyMarkup; + + public InputMessageContent inputMessageContent; + + public EditInlineMessageText() { + } + + public EditInlineMessageText(String inlineMessageId, ReplyMarkup replyMarkup, InputMessageContent inputMessageContent) { + this.inlineMessageId = inlineMessageId; + this.replyMarkup = replyMarkup; + this.inputMessageContent = inputMessageContent; + } + + public static final int CONSTRUCTOR = -855457307; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class EditMessageCaption extends Function { + + public long chatId; + + public long messageId; + + public ReplyMarkup replyMarkup; + + public FormattedText caption; + + public boolean showCaptionAboveMedia; + + public EditMessageCaption() { + } + + public EditMessageCaption(long chatId, long messageId, ReplyMarkup replyMarkup, FormattedText caption, boolean showCaptionAboveMedia) { + this.chatId = chatId; + this.messageId = messageId; + this.replyMarkup = replyMarkup; + this.caption = caption; + this.showCaptionAboveMedia = showCaptionAboveMedia; + } + + public static final int CONSTRUCTOR = -2020117951; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class EditMessageLiveLocation extends Function { + + public long chatId; + + public long messageId; + + public ReplyMarkup replyMarkup; + + public Location location; + + public int livePeriod; + + public int heading; + + public int proximityAlertRadius; + + public EditMessageLiveLocation() { + } + + public EditMessageLiveLocation(long chatId, long messageId, ReplyMarkup replyMarkup, Location location, int livePeriod, int heading, int proximityAlertRadius) { + this.chatId = chatId; + this.messageId = messageId; + this.replyMarkup = replyMarkup; + this.location = location; + this.livePeriod = livePeriod; + this.heading = heading; + this.proximityAlertRadius = proximityAlertRadius; + } + + public static final int CONSTRUCTOR = -1890511980; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class EditMessageMedia extends Function { + + public long chatId; + + public long messageId; + + public ReplyMarkup replyMarkup; + + public InputMessageContent inputMessageContent; + + public EditMessageMedia() { + } + + public EditMessageMedia(long chatId, long messageId, ReplyMarkup replyMarkup, InputMessageContent inputMessageContent) { + this.chatId = chatId; + this.messageId = messageId; + this.replyMarkup = replyMarkup; + this.inputMessageContent = inputMessageContent; + } + + public static final int CONSTRUCTOR = -1152678125; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class EditMessageReplyMarkup extends Function { + + public long chatId; + + public long messageId; + + public ReplyMarkup replyMarkup; + + public EditMessageReplyMarkup() { + } + + public EditMessageReplyMarkup(long chatId, long messageId, ReplyMarkup replyMarkup) { + this.chatId = chatId; + this.messageId = messageId; + this.replyMarkup = replyMarkup; + } + + public static final int CONSTRUCTOR = 332127881; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class EditMessageSchedulingState extends Function { + + public long chatId; + + public long messageId; + + public MessageSchedulingState schedulingState; + + public EditMessageSchedulingState() { + } + + public EditMessageSchedulingState(long chatId, long messageId, MessageSchedulingState schedulingState) { + this.chatId = chatId; + this.messageId = messageId; + this.schedulingState = schedulingState; + } + + public static final int CONSTRUCTOR = -1372976192; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class EditMessageText extends Function { + + public long chatId; + + public long messageId; + + public ReplyMarkup replyMarkup; + + public InputMessageContent inputMessageContent; + + public EditMessageText() { + } + + public EditMessageText(long chatId, long messageId, ReplyMarkup replyMarkup, InputMessageContent inputMessageContent) { + this.chatId = chatId; + this.messageId = messageId; + this.replyMarkup = replyMarkup; + this.inputMessageContent = inputMessageContent; + } + + public static final int CONSTRUCTOR = 196272567; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class EditProxy extends Function { + + public int proxyId; + + public String server; + + public int port; + + public boolean enable; + + public ProxyType type; + + public EditProxy() { + } + + public EditProxy(int proxyId, String server, int port, boolean enable, ProxyType type) { + this.proxyId = proxyId; + this.server = server; + this.port = port; + this.enable = enable; + this.type = type; + } + + public static final int CONSTRUCTOR = -1605883821; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class EditQuickReplyMessage extends Function { + + public int shortcutId; + + public long messageId; + + public InputMessageContent inputMessageContent; + + public EditQuickReplyMessage() { + } + + public EditQuickReplyMessage(int shortcutId, long messageId, InputMessageContent inputMessageContent) { + this.shortcutId = shortcutId; + this.messageId = messageId; + this.inputMessageContent = inputMessageContent; + } + + public static final int CONSTRUCTOR = 80517006; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class EditStarSubscription extends Function { + + public String subscriptionId; + + public boolean isCanceled; + + public EditStarSubscription() { + } + + public EditStarSubscription(String subscriptionId, boolean isCanceled) { + this.subscriptionId = subscriptionId; + this.isCanceled = isCanceled; + } + + public static final int CONSTRUCTOR = 2048538904; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class EditStory extends Function { + + public long storySenderChatId; + + public int storyId; + + public InputStoryContent content; + + public InputStoryAreas areas; + + public FormattedText caption; + + public EditStory() { + } + + public EditStory(long storySenderChatId, int storyId, InputStoryContent content, InputStoryAreas areas, FormattedText caption) { + this.storySenderChatId = storySenderChatId; + this.storyId = storyId; + this.content = content; + this.areas = areas; + this.caption = caption; + } + + public static final int CONSTRUCTOR = 1584013745; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class EditStoryCover extends Function { + + public long storySenderChatId; + + public int storyId; + + public double coverFrameTimestamp; + + public EditStoryCover() { + } + + public EditStoryCover(long storySenderChatId, int storyId, double coverFrameTimestamp) { + this.storySenderChatId = storySenderChatId; + this.storyId = storyId; + this.coverFrameTimestamp = coverFrameTimestamp; + } + + public static final int CONSTRUCTOR = -1423307701; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class EditUserStarSubscription extends Function { + + public long userId; + + public String telegramPaymentChargeId; + + public boolean isCanceled; + + public EditUserStarSubscription() { + } + + public EditUserStarSubscription(long userId, String telegramPaymentChargeId, boolean isCanceled) { + this.userId = userId; + this.telegramPaymentChargeId = telegramPaymentChargeId; + this.isCanceled = isCanceled; + } + + public static final int CONSTRUCTOR = 1370582665; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class EnableProxy extends Function { + + public int proxyId; + + public EnableProxy() { + } + + public EnableProxy(int proxyId) { + this.proxyId = proxyId; + } + + public static final int CONSTRUCTOR = 1494450838; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class EndGroupCall extends Function { + + public int groupCallId; + + public EndGroupCall() { + } + + public EndGroupCall(int groupCallId) { + this.groupCallId = groupCallId; + } + + public static final int CONSTRUCTOR = 573131959; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class EndGroupCallRecording extends Function { + + public int groupCallId; + + public EndGroupCallRecording() { + } + + public EndGroupCallRecording(int groupCallId) { + this.groupCallId = groupCallId; + } + + public static final int CONSTRUCTOR = -75799927; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class EndGroupCallScreenSharing extends Function { + + public int groupCallId; + + public EndGroupCallScreenSharing() { + } + + public EndGroupCallScreenSharing(int groupCallId) { + this.groupCallId = groupCallId; + } + + public static final int CONSTRUCTOR = -2047599540; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class FinishFileGeneration extends Function { + + public long generationId; + + public Error error; + + public FinishFileGeneration() { + } + + public FinishFileGeneration(long generationId, Error error) { + this.generationId = generationId; + this.error = error; + } + + public static final int CONSTRUCTOR = -1055060835; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class ForwardMessages extends Function { + + public long chatId; + + public long messageThreadId; + + public long fromChatId; + + public long[] messageIds; + + public MessageSendOptions options; + + public boolean sendCopy; + + public boolean removeCaption; + + public ForwardMessages() { + } + + public ForwardMessages(long chatId, long messageThreadId, long fromChatId, long[] messageIds, MessageSendOptions options, boolean sendCopy, boolean removeCaption) { + this.chatId = chatId; + this.messageThreadId = messageThreadId; + this.fromChatId = fromChatId; + this.messageIds = messageIds; + this.options = options; + this.sendCopy = sendCopy; + this.removeCaption = removeCaption; + } + + public static final int CONSTRUCTOR = 966156347; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class GetAccountTtl extends Function { + public GetAccountTtl() { + } + + public static final int CONSTRUCTOR = -443905161; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class GetActiveSessions extends Function { + public GetActiveSessions() { + } + + public static final int CONSTRUCTOR = 1119710526; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class GetAllPassportElements extends Function { + + public String password; + + public GetAllPassportElements() { + } + + public GetAllPassportElements(String password) { + this.password = password; + } + + public static final int CONSTRUCTOR = -2038945045; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class GetAllStickerEmojis extends Function { + + public StickerType stickerType; + + public String query; + + public long chatId; + + public boolean returnOnlyMainEmoji; + + public GetAllStickerEmojis() { + } + + public GetAllStickerEmojis(StickerType stickerType, String query, long chatId, boolean returnOnlyMainEmoji) { + this.stickerType = stickerType; + this.query = query; + this.chatId = chatId; + this.returnOnlyMainEmoji = returnOnlyMainEmoji; + } + + public static final int CONSTRUCTOR = 296562224; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class GetAnimatedEmoji extends Function { + + public String emoji; + + public GetAnimatedEmoji() { + } + + public GetAnimatedEmoji(String emoji) { + this.emoji = emoji; + } + + public static final int CONSTRUCTOR = 1065635702; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class GetApplicationConfig extends Function { + public GetApplicationConfig() { + } + + public static final int CONSTRUCTOR = -1823144318; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class GetApplicationDownloadLink extends Function { + public GetApplicationDownloadLink() { + } + + public static final int CONSTRUCTOR = 112013252; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class GetArchiveChatListSettings extends Function { + public GetArchiveChatListSettings() { + } + + public static final int CONSTRUCTOR = -2087874976; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class GetArchivedStickerSets extends Function { + + public StickerType stickerType; + + public long offsetStickerSetId; + + public int limit; + + public GetArchivedStickerSets() { + } + + public GetArchivedStickerSets(StickerType stickerType, long offsetStickerSetId, int limit) { + this.stickerType = stickerType; + this.offsetStickerSetId = offsetStickerSetId; + this.limit = limit; + } + + public static final int CONSTRUCTOR = 1001931341; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class GetAttachedStickerSets extends Function { + + public int fileId; + + public GetAttachedStickerSets() { + } + + public GetAttachedStickerSets(int fileId) { + this.fileId = fileId; + } + + public static final int CONSTRUCTOR = 1302172429; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class GetAttachmentMenuBot extends Function { + + public long botUserId; + + public GetAttachmentMenuBot() { + } + + public GetAttachmentMenuBot(long botUserId) { + this.botUserId = botUserId; + } + + public static final int CONSTRUCTOR = 1034248699; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class GetAuthorizationState extends Function { + public GetAuthorizationState() { + } + + public static final int CONSTRUCTOR = 1949154877; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class GetAutoDownloadSettingsPresets extends Function { + public GetAutoDownloadSettingsPresets() { + } + + public static final int CONSTRUCTOR = -1721088201; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class GetAutosaveSettings extends Function { + public GetAutosaveSettings() { + } + + public static final int CONSTRUCTOR = 2136207914; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class GetAvailableChatBoostSlots extends Function { + public GetAvailableChatBoostSlots() { + } + + public static final int CONSTRUCTOR = 1929898965; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class GetAvailableGifts extends Function { + public GetAvailableGifts() { + } + + public static final int CONSTRUCTOR = -153786901; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class GetBackgroundUrl extends Function { + + public String name; + + public BackgroundType type; + + public GetBackgroundUrl() { + } + + public GetBackgroundUrl(String name, BackgroundType type) { + this.name = name; + this.type = type; + } + + public static final int CONSTRUCTOR = 733769682; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class GetBankCardInfo extends Function { + + public String bankCardNumber; + + public GetBankCardInfo() { + } + + public GetBankCardInfo(String bankCardNumber) { + this.bankCardNumber = bankCardNumber; + } + + public static final int CONSTRUCTOR = -1310515792; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class GetBasicGroup extends Function { + + public long basicGroupId; + + public GetBasicGroup() { + } + + public GetBasicGroup(long basicGroupId) { + this.basicGroupId = basicGroupId; + } + + public static final int CONSTRUCTOR = -1635174828; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class GetBasicGroupFullInfo extends Function { + + public long basicGroupId; + + public GetBasicGroupFullInfo() { + } + + public GetBasicGroupFullInfo(long basicGroupId) { + this.basicGroupId = basicGroupId; + } + + public static final int CONSTRUCTOR = -1822039253; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class GetBlockedMessageSenders extends Function { + + public BlockList blockList; + + public int offset; + + public int limit; + + public GetBlockedMessageSenders() { + } + + public GetBlockedMessageSenders(BlockList blockList, int offset, int limit) { + this.blockList = blockList; + this.offset = offset; + this.limit = limit; + } + + public static final int CONSTRUCTOR = -1931137258; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class GetBotInfoDescription extends Function { + + public long botUserId; + + public String languageCode; + + public GetBotInfoDescription() { + } + + public GetBotInfoDescription(long botUserId, String languageCode) { + this.botUserId = botUserId; + this.languageCode = languageCode; + } + + public static final int CONSTRUCTOR = -762841035; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class GetBotInfoShortDescription extends Function { + + public long botUserId; + + public String languageCode; + + public GetBotInfoShortDescription() { + } + + public GetBotInfoShortDescription(long botUserId, String languageCode) { + this.botUserId = botUserId; + this.languageCode = languageCode; + } + + public static final int CONSTRUCTOR = 1243358740; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class GetBotMediaPreviewInfo extends Function { + + public long botUserId; + + public String languageCode; + + public GetBotMediaPreviewInfo() { + } + + public GetBotMediaPreviewInfo(long botUserId, String languageCode) { + this.botUserId = botUserId; + this.languageCode = languageCode; + } + + public static final int CONSTRUCTOR = 1358299446; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class GetBotMediaPreviews extends Function { + + public long botUserId; + + public GetBotMediaPreviews() { + } + + public GetBotMediaPreviews(long botUserId) { + this.botUserId = botUserId; + } + + public static final int CONSTRUCTOR = 577131608; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class GetBotName extends Function { + + public long botUserId; + + public String languageCode; + + public GetBotName() { + } + + public GetBotName(long botUserId, String languageCode) { + this.botUserId = botUserId; + this.languageCode = languageCode; + } + + public static final int CONSTRUCTOR = -1707118036; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class GetBusinessChatLinkInfo extends Function { + + public String linkName; + + public GetBusinessChatLinkInfo() { + } + + public GetBusinessChatLinkInfo(String linkName) { + this.linkName = linkName; + } + + public static final int CONSTRUCTOR = 797670986; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class GetBusinessChatLinks extends Function { + public GetBusinessChatLinks() { + } + + public static final int CONSTRUCTOR = 710287703; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class GetBusinessConnectedBot extends Function { + public GetBusinessConnectedBot() { + } + + public static final int CONSTRUCTOR = 911058883; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class GetBusinessConnection extends Function { + + public String connectionId; + + public GetBusinessConnection() { + } + + public GetBusinessConnection(String connectionId) { + this.connectionId = connectionId; + } + + public static final int CONSTRUCTOR = -2114706400; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class GetBusinessFeatures extends Function { + + public BusinessFeature source; + + public GetBusinessFeatures() { + } + + public GetBusinessFeatures(BusinessFeature source) { + this.source = source; + } + + public static final int CONSTRUCTOR = -997171199; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class GetCallbackQueryAnswer extends Function { + + public long chatId; + + public long messageId; + + public CallbackQueryPayload payload; + + public GetCallbackQueryAnswer() { + } + + public GetCallbackQueryAnswer(long chatId, long messageId, CallbackQueryPayload payload) { + this.chatId = chatId; + this.messageId = messageId; + this.payload = payload; + } + + public static final int CONSTRUCTOR = 116357727; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class GetCallbackQueryMessage extends Function { + + public long chatId; + + public long messageId; + + public long callbackQueryId; + + public GetCallbackQueryMessage() { + } + + public GetCallbackQueryMessage(long chatId, long messageId, long callbackQueryId) { + this.chatId = chatId; + this.messageId = messageId; + this.callbackQueryId = callbackQueryId; + } + + public static final int CONSTRUCTOR = -1121939086; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class GetChat extends Function { + + public long chatId; + + public GetChat() { + } + + public GetChat(long chatId) { + this.chatId = chatId; + } + + public static final int CONSTRUCTOR = 1866601536; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class GetChatActiveStories extends Function { + + public long chatId; + + public GetChatActiveStories() { + } + + public GetChatActiveStories(long chatId) { + this.chatId = chatId; + } + + public static final int CONSTRUCTOR = 776993781; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class GetChatAdministrators extends Function { + + public long chatId; + + public GetChatAdministrators() { + } + + public GetChatAdministrators(long chatId) { + this.chatId = chatId; + } + + public static final int CONSTRUCTOR = 1544468155; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class GetChatAffiliateProgram extends Function { + + public long chatId; + + public long botUserId; + + public GetChatAffiliateProgram() { + } + + public GetChatAffiliateProgram(long chatId, long botUserId) { + this.chatId = chatId; + this.botUserId = botUserId; + } + + public static final int CONSTRUCTOR = 1858642842; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class GetChatAffiliatePrograms extends Function { + + public long chatId; + + public String offset; + + public int limit; + + public GetChatAffiliatePrograms() { + } + + public GetChatAffiliatePrograms(long chatId, String offset, int limit) { + this.chatId = chatId; + this.offset = offset; + this.limit = limit; + } + + public static final int CONSTRUCTOR = -102804911; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class GetChatArchivedStories extends Function { + + public long chatId; + + public int fromStoryId; + + public int limit; + + public GetChatArchivedStories() { + } + + public GetChatArchivedStories(long chatId, int fromStoryId, int limit) { + this.chatId = chatId; + this.fromStoryId = fromStoryId; + this.limit = limit; + } + + public static final int CONSTRUCTOR = -1356950392; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class GetChatAvailableMessageSenders extends Function { + + public long chatId; + + public GetChatAvailableMessageSenders() { + } + + public GetChatAvailableMessageSenders(long chatId) { + this.chatId = chatId; + } + + public static final int CONSTRUCTOR = 1158670635; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class GetChatBoostFeatures extends Function { + + public boolean isChannel; + + public GetChatBoostFeatures() { + } + + public GetChatBoostFeatures(boolean isChannel) { + this.isChannel = isChannel; + } + + public static final int CONSTRUCTOR = -389994336; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class GetChatBoostLevelFeatures extends Function { + + public boolean isChannel; + + public int level; + + public GetChatBoostLevelFeatures() { + } + + public GetChatBoostLevelFeatures(boolean isChannel, int level) { + this.isChannel = isChannel; + this.level = level; + } + + public static final int CONSTRUCTOR = 1172717195; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class GetChatBoostLink extends Function { + + public long chatId; + + public GetChatBoostLink() { + } + + public GetChatBoostLink(long chatId) { + this.chatId = chatId; + } + + public static final int CONSTRUCTOR = 1458662533; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class GetChatBoostLinkInfo extends Function { + + public String url; + + public GetChatBoostLinkInfo() { + } + + public GetChatBoostLinkInfo(String url) { + this.url = url; + } + + public static final int CONSTRUCTOR = 654068572; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class GetChatBoostStatus extends Function { + + public long chatId; + + public GetChatBoostStatus() { + } + + public GetChatBoostStatus(long chatId) { + this.chatId = chatId; + } + + public static final int CONSTRUCTOR = -810775857; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class GetChatBoosts extends Function { + + public long chatId; + + public boolean onlyGiftCodes; + + public String offset; + + public int limit; + + public GetChatBoosts() { + } + + public GetChatBoosts(long chatId, boolean onlyGiftCodes, String offset, int limit) { + this.chatId = chatId; + this.onlyGiftCodes = onlyGiftCodes; + this.offset = offset; + this.limit = limit; + } + + public static final int CONSTRUCTOR = -1419859400; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class GetChatEventLog extends Function { + + public long chatId; + + public String query; + + public long fromEventId; + + public int limit; + + public ChatEventLogFilters filters; + + public long[] userIds; + + public GetChatEventLog() { + } + + public GetChatEventLog(long chatId, String query, long fromEventId, int limit, ChatEventLogFilters filters, long[] userIds) { + this.chatId = chatId; + this.query = query; + this.fromEventId = fromEventId; + this.limit = limit; + this.filters = filters; + this.userIds = userIds; + } + + public static final int CONSTRUCTOR = -1281344669; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class GetChatFolder extends Function { + + public int chatFolderId; + + public GetChatFolder() { + } + + public GetChatFolder(int chatFolderId) { + this.chatFolderId = chatFolderId; + } + + public static final int CONSTRUCTOR = 92809880; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class GetChatFolderChatCount extends Function { + + public ChatFolder folder; + + public GetChatFolderChatCount() { + } + + public GetChatFolderChatCount(ChatFolder folder) { + this.folder = folder; + } + + public static final int CONSTRUCTOR = 2111097790; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class GetChatFolderChatsToLeave extends Function { + + public int chatFolderId; + + public GetChatFolderChatsToLeave() { + } + + public GetChatFolderChatsToLeave(int chatFolderId) { + this.chatFolderId = chatFolderId; + } + + public static final int CONSTRUCTOR = -1916672337; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class GetChatFolderDefaultIconName extends Function { + + public ChatFolder folder; + + public GetChatFolderDefaultIconName() { + } + + public GetChatFolderDefaultIconName(ChatFolder folder) { + this.folder = folder; + } + + public static final int CONSTRUCTOR = 754425959; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class GetChatFolderInviteLinks extends Function { + + public int chatFolderId; + + public GetChatFolderInviteLinks() { + } + + public GetChatFolderInviteLinks(int chatFolderId) { + this.chatFolderId = chatFolderId; + } + + public static final int CONSTRUCTOR = 329079776; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class GetChatFolderNewChats extends Function { + + public int chatFolderId; + + public GetChatFolderNewChats() { + } + + public GetChatFolderNewChats(int chatFolderId) { + this.chatFolderId = chatFolderId; + } + + public static final int CONSTRUCTOR = 2123181260; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class GetChatHistory extends Function { + + public long chatId; + + public long fromMessageId; + + public int offset; + + public int limit; + + public boolean onlyLocal; + + public GetChatHistory() { + } + + public GetChatHistory(long chatId, long fromMessageId, int offset, int limit, boolean onlyLocal) { + this.chatId = chatId; + this.fromMessageId = fromMessageId; + this.offset = offset; + this.limit = limit; + this.onlyLocal = onlyLocal; + } + + public static final int CONSTRUCTOR = -799960451; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class GetChatInviteLink extends Function { + + public long chatId; + + public String inviteLink; + + public GetChatInviteLink() { + } + + public GetChatInviteLink(long chatId, String inviteLink) { + this.chatId = chatId; + this.inviteLink = inviteLink; + } + + public static final int CONSTRUCTOR = -479575555; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class GetChatInviteLinkCounts extends Function { + + public long chatId; + + public GetChatInviteLinkCounts() { + } + + public GetChatInviteLinkCounts(long chatId) { + this.chatId = chatId; + } + + public static final int CONSTRUCTOR = 890299025; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class GetChatInviteLinkMembers extends Function { + + public long chatId; + + public String inviteLink; + + public boolean onlyWithExpiredSubscription; + + public ChatInviteLinkMember offsetMember; + + public int limit; + + public GetChatInviteLinkMembers() { + } + + public GetChatInviteLinkMembers(long chatId, String inviteLink, boolean onlyWithExpiredSubscription, ChatInviteLinkMember offsetMember, int limit) { + this.chatId = chatId; + this.inviteLink = inviteLink; + this.onlyWithExpiredSubscription = onlyWithExpiredSubscription; + this.offsetMember = offsetMember; + this.limit = limit; + } + + public static final int CONSTRUCTOR = 1728376124; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class GetChatInviteLinks extends Function { + + public long chatId; + + public long creatorUserId; + + public boolean isRevoked; + + public int offsetDate; + + public String offsetInviteLink; + + public int limit; + + public GetChatInviteLinks() { + } + + public GetChatInviteLinks(long chatId, long creatorUserId, boolean isRevoked, int offsetDate, String offsetInviteLink, int limit) { + this.chatId = chatId; + this.creatorUserId = creatorUserId; + this.isRevoked = isRevoked; + this.offsetDate = offsetDate; + this.offsetInviteLink = offsetInviteLink; + this.limit = limit; + } + + public static final int CONSTRUCTOR = 883252396; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class GetChatJoinRequests extends Function { + + public long chatId; + + public String inviteLink; + + public String query; + + public ChatJoinRequest offsetRequest; + + public int limit; + + public GetChatJoinRequests() { + } + + public GetChatJoinRequests(long chatId, String inviteLink, String query, ChatJoinRequest offsetRequest, int limit) { + this.chatId = chatId; + this.inviteLink = inviteLink; + this.query = query; + this.offsetRequest = offsetRequest; + this.limit = limit; + } + + public static final int CONSTRUCTOR = -388428126; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class GetChatListsToAddChat extends Function { + + public long chatId; + + public GetChatListsToAddChat() { + } + + public GetChatListsToAddChat(long chatId) { + this.chatId = chatId; + } + + public static final int CONSTRUCTOR = 654956193; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class GetChatMember extends Function { + + public long chatId; + + public MessageSender memberId; + + public GetChatMember() { + } + + public GetChatMember(long chatId, MessageSender memberId) { + this.chatId = chatId; + this.memberId = memberId; + } + + public static final int CONSTRUCTOR = -792636814; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class GetChatMessageByDate extends Function { + + public long chatId; + + public int date; + + public GetChatMessageByDate() { + } + + public GetChatMessageByDate(long chatId, int date) { + this.chatId = chatId; + this.date = date; + } + + public static final int CONSTRUCTOR = 1062564150; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class GetChatMessageCalendar extends Function { + + public long chatId; + + public SearchMessagesFilter filter; + + public long fromMessageId; + + public long savedMessagesTopicId; + + public GetChatMessageCalendar() { + } + + public GetChatMessageCalendar(long chatId, SearchMessagesFilter filter, long fromMessageId, long savedMessagesTopicId) { + this.chatId = chatId; + this.filter = filter; + this.fromMessageId = fromMessageId; + this.savedMessagesTopicId = savedMessagesTopicId; + } + + public static final int CONSTRUCTOR = -2119225929; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class GetChatMessageCount extends Function { + + public long chatId; + + public SearchMessagesFilter filter; + + public long savedMessagesTopicId; + + public boolean returnLocal; + + public GetChatMessageCount() { + } + + public GetChatMessageCount(long chatId, SearchMessagesFilter filter, long savedMessagesTopicId, boolean returnLocal) { + this.chatId = chatId; + this.filter = filter; + this.savedMessagesTopicId = savedMessagesTopicId; + this.returnLocal = returnLocal; + } + + public static final int CONSTRUCTOR = 955746569; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class GetChatMessagePosition extends Function { + + public long chatId; + + public long messageId; + + public SearchMessagesFilter filter; + + public long messageThreadId; + + public long savedMessagesTopicId; + + public GetChatMessagePosition() { + } + + public GetChatMessagePosition(long chatId, long messageId, SearchMessagesFilter filter, long messageThreadId, long savedMessagesTopicId) { + this.chatId = chatId; + this.messageId = messageId; + this.filter = filter; + this.messageThreadId = messageThreadId; + this.savedMessagesTopicId = savedMessagesTopicId; + } + + public static final int CONSTRUCTOR = 136051911; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class GetChatNotificationSettingsExceptions extends Function { + + public NotificationSettingsScope scope; + + public boolean compareSound; + + public GetChatNotificationSettingsExceptions() { + } + + public GetChatNotificationSettingsExceptions(NotificationSettingsScope scope, boolean compareSound) { + this.scope = scope; + this.compareSound = compareSound; + } + + public static final int CONSTRUCTOR = 201199121; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class GetChatPinnedMessage extends Function { + + public long chatId; + + public GetChatPinnedMessage() { + } + + public GetChatPinnedMessage(long chatId) { + this.chatId = chatId; + } + + public static final int CONSTRUCTOR = 359865008; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class GetChatPostedToChatPageStories extends Function { + + public long chatId; + + public int fromStoryId; + + public int limit; + + public GetChatPostedToChatPageStories() { + } + + public GetChatPostedToChatPageStories(long chatId, int fromStoryId, int limit) { + this.chatId = chatId; + this.fromStoryId = fromStoryId; + this.limit = limit; + } + + public static final int CONSTRUCTOR = -46414037; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class GetChatRevenueStatistics extends Function { + + public long chatId; + + public boolean isDark; + + public GetChatRevenueStatistics() { + } + + public GetChatRevenueStatistics(long chatId, boolean isDark) { + this.chatId = chatId; + this.isDark = isDark; + } + + public static final int CONSTRUCTOR = 701995836; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class GetChatRevenueTransactions extends Function { + + public long chatId; + + public int offset; + + public int limit; + + public GetChatRevenueTransactions() { + } + + public GetChatRevenueTransactions(long chatId, int offset, int limit) { + this.chatId = chatId; + this.offset = offset; + this.limit = limit; + } + + public static final int CONSTRUCTOR = 1194264341; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class GetChatRevenueWithdrawalUrl extends Function { + + public long chatId; + + public String password; + + public GetChatRevenueWithdrawalUrl() { + } + + public GetChatRevenueWithdrawalUrl(long chatId, String password) { + this.chatId = chatId; + this.password = password; + } + + public static final int CONSTRUCTOR = 506595104; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class GetChatScheduledMessages extends Function { + + public long chatId; + + public GetChatScheduledMessages() { + } + + public GetChatScheduledMessages(long chatId) { + this.chatId = chatId; + } + + public static final int CONSTRUCTOR = -549638149; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class GetChatSimilarChatCount extends Function { + + public long chatId; + + public boolean returnLocal; + + public GetChatSimilarChatCount() { + } + + public GetChatSimilarChatCount(long chatId, boolean returnLocal) { + this.chatId = chatId; + this.returnLocal = returnLocal; + } + + public static final int CONSTRUCTOR = 1178506894; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class GetChatSimilarChats extends Function { + + public long chatId; + + public GetChatSimilarChats() { + } + + public GetChatSimilarChats(long chatId) { + this.chatId = chatId; + } + + public static final int CONSTRUCTOR = -1152348285; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class GetChatSparseMessagePositions extends Function { + + public long chatId; + + public SearchMessagesFilter filter; + + public long fromMessageId; + + public int limit; + + public long savedMessagesTopicId; + + public GetChatSparseMessagePositions() { + } + + public GetChatSparseMessagePositions(long chatId, SearchMessagesFilter filter, long fromMessageId, int limit, long savedMessagesTopicId) { + this.chatId = chatId; + this.filter = filter; + this.fromMessageId = fromMessageId; + this.limit = limit; + this.savedMessagesTopicId = savedMessagesTopicId; + } + + public static final int CONSTRUCTOR = 994389757; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class GetChatSponsoredMessages extends Function { + + public long chatId; + + public GetChatSponsoredMessages() { + } + + public GetChatSponsoredMessages(long chatId) { + this.chatId = chatId; + } + + public static final int CONSTRUCTOR = 1353203864; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class GetChatStatistics extends Function { + + public long chatId; + + public boolean isDark; + + public GetChatStatistics() { + } + + public GetChatStatistics(long chatId, boolean isDark) { + this.chatId = chatId; + this.isDark = isDark; + } + + public static final int CONSTRUCTOR = 327057816; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class GetChatStoryInteractions extends Function { + + public long storySenderChatId; + + public int storyId; + + public ReactionType reactionType; + + public boolean preferForwards; + + public String offset; + + public int limit; + + public GetChatStoryInteractions() { + } + + public GetChatStoryInteractions(long storySenderChatId, int storyId, ReactionType reactionType, boolean preferForwards, String offset, int limit) { + this.storySenderChatId = storySenderChatId; + this.storyId = storyId; + this.reactionType = reactionType; + this.preferForwards = preferForwards; + this.offset = offset; + this.limit = limit; + } + + public static final int CONSTRUCTOR = -974359690; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class GetChats extends Function { + + public ChatList chatList; + + public int limit; + + public GetChats() { + } + + public GetChats(ChatList chatList, int limit) { + this.chatList = chatList; + this.limit = limit; + } + + public static final int CONSTRUCTOR = -972768574; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class GetChatsForChatFolderInviteLink extends Function { + + public int chatFolderId; + + public GetChatsForChatFolderInviteLink() { + } + + public GetChatsForChatFolderInviteLink(int chatFolderId) { + this.chatFolderId = chatFolderId; + } + + public static final int CONSTRUCTOR = 1873561929; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class GetChatsToSendStories extends Function { + public GetChatsToSendStories() { + } + + public static final int CONSTRUCTOR = 586802084; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class GetCloseFriends extends Function { + public GetCloseFriends() { + } + + public static final int CONSTRUCTOR = -1445628722; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class GetCollectibleItemInfo extends Function { + + public CollectibleItemType type; + + public GetCollectibleItemInfo() { + } + + public GetCollectibleItemInfo(CollectibleItemType type) { + this.type = type; + } + + public static final int CONSTRUCTOR = -217797238; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class GetCommands extends Function { + + public BotCommandScope scope; + + public String languageCode; + + public GetCommands() { + } + + public GetCommands(BotCommandScope scope, String languageCode) { + this.scope = scope; + this.languageCode = languageCode; + } + + public static final int CONSTRUCTOR = 1488621559; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class GetConnectedWebsites extends Function { + public GetConnectedWebsites() { + } + + public static final int CONSTRUCTOR = -170536110; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class GetContacts extends Function { + public GetContacts() { + } + + public static final int CONSTRUCTOR = -1417722768; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class GetCountries extends Function { + public GetCountries() { + } + + public static final int CONSTRUCTOR = -51902050; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class GetCountryCode extends Function { + public GetCountryCode() { + } + + public static final int CONSTRUCTOR = 1540593906; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class GetCountryFlagEmoji extends Function { + + public String countryCode; + + public GetCountryFlagEmoji() { + } + + public GetCountryFlagEmoji(String countryCode) { + this.countryCode = countryCode; + } + + public static final int CONSTRUCTOR = 981871098; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class GetCreatedPublicChats extends Function { + + public PublicChatType type; + + public GetCreatedPublicChats() { + } + + public GetCreatedPublicChats(PublicChatType type) { + this.type = type; + } + + public static final int CONSTRUCTOR = 710354415; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class GetCurrentState extends Function { + public GetCurrentState() { + } + + public static final int CONSTRUCTOR = -1191417719; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class GetCurrentWeather extends Function { + + public Location location; + + public GetCurrentWeather() { + } + + public GetCurrentWeather(Location location) { + this.location = location; + } + + public static final int CONSTRUCTOR = -1965384759; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class GetCustomEmojiReactionAnimations extends Function { + public GetCustomEmojiReactionAnimations() { + } + + public static final int CONSTRUCTOR = 1232375250; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class GetCustomEmojiStickers extends Function { + + public long[] customEmojiIds; + + public GetCustomEmojiStickers() { + } + + public GetCustomEmojiStickers(long[] customEmojiIds) { + this.customEmojiIds = customEmojiIds; + } + + public static final int CONSTRUCTOR = -2127427955; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class GetDatabaseStatistics extends Function { + public GetDatabaseStatistics() { + } + + public static final int CONSTRUCTOR = -1942760263; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class GetDeepLinkInfo extends Function { + + public String link; + + public GetDeepLinkInfo() { + } + + public GetDeepLinkInfo(String link) { + this.link = link; + } + + public static final int CONSTRUCTOR = 680673150; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class GetDefaultBackgroundCustomEmojiStickers extends Function { + public GetDefaultBackgroundCustomEmojiStickers() { + } + + public static final int CONSTRUCTOR = 485910542; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class GetDefaultChatEmojiStatuses extends Function { + public GetDefaultChatEmojiStatuses() { + } + + public static final int CONSTRUCTOR = -1481996570; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class GetDefaultChatPhotoCustomEmojiStickers extends Function { + public GetDefaultChatPhotoCustomEmojiStickers() { + } + + public static final int CONSTRUCTOR = -376342683; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class GetDefaultEmojiStatuses extends Function { + public GetDefaultEmojiStatuses() { + } + + public static final int CONSTRUCTOR = 618946243; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class GetDefaultMessageAutoDeleteTime extends Function { + public GetDefaultMessageAutoDeleteTime() { + } + + public static final int CONSTRUCTOR = -450857574; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class GetDefaultProfilePhotoCustomEmojiStickers extends Function { + public GetDefaultProfilePhotoCustomEmojiStickers() { + } + + public static final int CONSTRUCTOR = 1280041655; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class GetDisallowedChatEmojiStatuses extends Function { + public GetDisallowedChatEmojiStatuses() { + } + + public static final int CONSTRUCTOR = -770421344; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class GetEmojiCategories extends Function { + + public EmojiCategoryType type; + + public GetEmojiCategories() { + } + + public GetEmojiCategories(EmojiCategoryType type) { + this.type = type; + } + + public static final int CONSTRUCTOR = 2139537774; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class GetEmojiReaction extends Function { + + public String emoji; + + public GetEmojiReaction() { + } + + public GetEmojiReaction(String emoji) { + this.emoji = emoji; + } + + public static final int CONSTRUCTOR = -449572388; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class GetEmojiSuggestionsUrl extends Function { + + public String languageCode; + + public GetEmojiSuggestionsUrl() { + } + + public GetEmojiSuggestionsUrl(String languageCode) { + this.languageCode = languageCode; + } + + public static final int CONSTRUCTOR = -1404101841; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class GetExternalLink extends Function { + + public String link; + + public boolean allowWriteAccess; + + public GetExternalLink() { + } + + public GetExternalLink(String link, boolean allowWriteAccess) { + this.link = link; + this.allowWriteAccess = allowWriteAccess; + } + + public static final int CONSTRUCTOR = 1586688235; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class GetExternalLinkInfo extends Function { + + public String link; + + public GetExternalLinkInfo() { + } + + public GetExternalLinkInfo(String link) { + this.link = link; + } + + public static final int CONSTRUCTOR = 1175288383; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class GetFavoriteStickers extends Function { + public GetFavoriteStickers() { + } + + public static final int CONSTRUCTOR = -338964672; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class GetFile extends Function { + + public int fileId; + + public GetFile() { + } + + public GetFile(int fileId) { + this.fileId = fileId; + } + + public static final int CONSTRUCTOR = 1553923406; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class GetFileDownloadedPrefixSize extends Function { + + public int fileId; + + public long offset; + + public GetFileDownloadedPrefixSize() { + } + + public GetFileDownloadedPrefixSize(int fileId, long offset) { + this.fileId = fileId; + this.offset = offset; + } + + public static final int CONSTRUCTOR = 855948589; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class GetFileExtension extends Function { + + public String mimeType; + + public GetFileExtension() { + } + + public GetFileExtension(String mimeType) { + this.mimeType = mimeType; + } + + public static final int CONSTRUCTOR = -106055372; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class GetFileMimeType extends Function { + + public String fileName; + + public GetFileMimeType() { + } + + public GetFileMimeType(String fileName) { + this.fileName = fileName; + } + + public static final int CONSTRUCTOR = -2073879671; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class GetForumTopic extends Function { + + public long chatId; + + public long messageThreadId; + + public GetForumTopic() { + } + + public GetForumTopic(long chatId, long messageThreadId) { + this.chatId = chatId; + this.messageThreadId = messageThreadId; + } + + public static final int CONSTRUCTOR = -442761663; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class GetForumTopicDefaultIcons extends Function { + public GetForumTopicDefaultIcons() { + } + + public static final int CONSTRUCTOR = 1479898332; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class GetForumTopicLink extends Function { + + public long chatId; + + public long messageThreadId; + + public GetForumTopicLink() { + } + + public GetForumTopicLink(long chatId, long messageThreadId) { + this.chatId = chatId; + this.messageThreadId = messageThreadId; + } + + public static final int CONSTRUCTOR = -914650933; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class GetForumTopics extends Function { + + public long chatId; + + public String query; + + public int offsetDate; + + public long offsetMessageId; + + public long offsetMessageThreadId; + + public int limit; + + public GetForumTopics() { + } + + public GetForumTopics(long chatId, String query, int offsetDate, long offsetMessageId, long offsetMessageThreadId, int limit) { + this.chatId = chatId; + this.query = query; + this.offsetDate = offsetDate; + this.offsetMessageId = offsetMessageId; + this.offsetMessageThreadId = offsetMessageThreadId; + this.limit = limit; + } + + public static final int CONSTRUCTOR = -72647334; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class GetGameHighScores extends Function { + + public long chatId; + + public long messageId; + + public long userId; + + public GetGameHighScores() { + } + + public GetGameHighScores(long chatId, long messageId, long userId) { + this.chatId = chatId; + this.messageId = messageId; + this.userId = userId; + } + + public static final int CONSTRUCTOR = 15746459; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class GetGiveawayInfo extends Function { + + public long chatId; + + public long messageId; + + public GetGiveawayInfo() { + } + + public GetGiveawayInfo(long chatId, long messageId) { + this.chatId = chatId; + this.messageId = messageId; + } + + public static final int CONSTRUCTOR = -1215852357; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class GetGreetingStickers extends Function { + public GetGreetingStickers() { + } + + public static final int CONSTRUCTOR = 374873372; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class GetGrossingWebAppBots extends Function { + + public String offset; + + public int limit; + + public GetGrossingWebAppBots() { + } + + public GetGrossingWebAppBots(String offset, int limit) { + this.offset = offset; + this.limit = limit; + } + + public static final int CONSTRUCTOR = 1696779802; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class GetGroupCall extends Function { + + public int groupCallId; + + public GetGroupCall() { + } + + public GetGroupCall(int groupCallId) { + this.groupCallId = groupCallId; + } + + public static final int CONSTRUCTOR = 1468491406; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class GetGroupCallInviteLink extends Function { + + public int groupCallId; + + public boolean canSelfUnmute; + + public GetGroupCallInviteLink() { + } + + public GetGroupCallInviteLink(int groupCallId, boolean canSelfUnmute) { + this.groupCallId = groupCallId; + this.canSelfUnmute = canSelfUnmute; + } + + public static final int CONSTRUCTOR = 719407396; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class GetGroupCallStreamSegment extends Function { + + public int groupCallId; + + public long timeOffset; + + public int scale; + + public int channelId; + + public GroupCallVideoQuality videoQuality; + + public GetGroupCallStreamSegment() { + } + + public GetGroupCallStreamSegment(int groupCallId, long timeOffset, int scale, int channelId, GroupCallVideoQuality videoQuality) { + this.groupCallId = groupCallId; + this.timeOffset = timeOffset; + this.scale = scale; + this.channelId = channelId; + this.videoQuality = videoQuality; + } + + public static final int CONSTRUCTOR = -2077959515; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class GetGroupCallStreams extends Function { + + public int groupCallId; + + public GetGroupCallStreams() { + } + + public GetGroupCallStreams(int groupCallId) { + this.groupCallId = groupCallId; + } + + public static final int CONSTRUCTOR = -1619226268; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class GetGroupsInCommon extends Function { + + public long userId; + + public long offsetChatId; + + public int limit; + + public GetGroupsInCommon() { + } + + public GetGroupsInCommon(long userId, long offsetChatId, int limit) { + this.userId = userId; + this.offsetChatId = offsetChatId; + this.limit = limit; + } + + public static final int CONSTRUCTOR = 381539178; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class GetImportedContactCount extends Function { + public GetImportedContactCount() { + } + + public static final int CONSTRUCTOR = -656336346; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class GetInactiveSupergroupChats extends Function { + public GetInactiveSupergroupChats() { + } + + public static final int CONSTRUCTOR = -657720907; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class GetInlineGameHighScores extends Function { + + public String inlineMessageId; + + public long userId; + + public GetInlineGameHighScores() { + } + + public GetInlineGameHighScores(String inlineMessageId, long userId) { + this.inlineMessageId = inlineMessageId; + this.userId = userId; + } + + public static final int CONSTRUCTOR = -533107798; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class GetInlineQueryResults extends Function { + + public long botUserId; + + public long chatId; + + public Location userLocation; + + public String query; + + public String offset; + + public GetInlineQueryResults() { + } + + public GetInlineQueryResults(long botUserId, long chatId, Location userLocation, String query, String offset) { + this.botUserId = botUserId; + this.chatId = chatId; + this.userLocation = userLocation; + this.query = query; + this.offset = offset; + } + + public static final int CONSTRUCTOR = 2044524652; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class GetInstalledBackgrounds extends Function { + + public boolean forDarkTheme; + + public GetInstalledBackgrounds() { + } + + public GetInstalledBackgrounds(boolean forDarkTheme) { + this.forDarkTheme = forDarkTheme; + } + + public static final int CONSTRUCTOR = -1051406241; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class GetInstalledStickerSets extends Function { + + public StickerType stickerType; + + public GetInstalledStickerSets() { + } + + public GetInstalledStickerSets(StickerType stickerType) { + this.stickerType = stickerType; + } + + public static final int CONSTRUCTOR = 1630467830; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class GetInternalLink extends Function { + + public InternalLinkType type; + + public boolean isHttp; + + public GetInternalLink() { + } + + public GetInternalLink(InternalLinkType type, boolean isHttp) { + this.type = type; + this.isHttp = isHttp; + } + + public static final int CONSTRUCTOR = 962654640; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class GetInternalLinkType extends Function { + + public String link; + + public GetInternalLinkType() { + } + + public GetInternalLinkType(String link) { + this.link = link; + } + + public static final int CONSTRUCTOR = -1948428535; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class GetJsonString extends Function { + + public JsonValue jsonValue; + + public GetJsonString() { + } + + public GetJsonString(JsonValue jsonValue) { + this.jsonValue = jsonValue; + } + + public static final int CONSTRUCTOR = 663458849; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class GetJsonValue extends Function { + + public String json; + + public GetJsonValue() { + } + + public GetJsonValue(String json) { + this.json = json; + } + + public static final int CONSTRUCTOR = -1829086715; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class GetKeywordEmojis extends Function { + + public String text; + + public String[] inputLanguageCodes; + + public GetKeywordEmojis() { + } + + public GetKeywordEmojis(String text, String[] inputLanguageCodes) { + this.text = text; + this.inputLanguageCodes = inputLanguageCodes; + } + + public static final int CONSTRUCTOR = -1969795990; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class GetLanguagePackInfo extends Function { + + public String languagePackId; + + public GetLanguagePackInfo() { + } + + public GetLanguagePackInfo(String languagePackId) { + this.languagePackId = languagePackId; + } + + public static final int CONSTRUCTOR = 2077809320; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class GetLanguagePackString extends Function { + + public String languagePackDatabasePath; + + public String localizationTarget; + + public String languagePackId; + + public String key; + + public GetLanguagePackString() { + } + + public GetLanguagePackString(String languagePackDatabasePath, String localizationTarget, String languagePackId, String key) { + this.languagePackDatabasePath = languagePackDatabasePath; + this.localizationTarget = localizationTarget; + this.languagePackId = languagePackId; + this.key = key; + } + + public static final int CONSTRUCTOR = 150789747; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class GetLanguagePackStrings extends Function { + + public String languagePackId; + + public String[] keys; + + public GetLanguagePackStrings() { + } + + public GetLanguagePackStrings(String languagePackId, String[] keys) { + this.languagePackId = languagePackId; + this.keys = keys; + } + + public static final int CONSTRUCTOR = 1246259088; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class GetLinkPreview extends Function { + + public FormattedText text; + + public LinkPreviewOptions linkPreviewOptions; + + public GetLinkPreview() { + } + + public GetLinkPreview(FormattedText text, LinkPreviewOptions linkPreviewOptions) { + this.text = text; + this.linkPreviewOptions = linkPreviewOptions; + } + + public static final int CONSTRUCTOR = -1039572191; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class GetLocalizationTargetInfo extends Function { + + public boolean onlyLocal; + + public GetLocalizationTargetInfo() { + } + + public GetLocalizationTargetInfo(boolean onlyLocal) { + this.onlyLocal = onlyLocal; + } + + public static final int CONSTRUCTOR = 1849499526; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class GetLogStream extends Function { + public GetLogStream() { + } + + public static final int CONSTRUCTOR = 1167608667; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class GetLogTagVerbosityLevel extends Function { + + public String tag; + + public GetLogTagVerbosityLevel() { + } + + public GetLogTagVerbosityLevel(String tag) { + this.tag = tag; + } + + public static final int CONSTRUCTOR = 951004547; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class GetLogTags extends Function { + public GetLogTags() { + } + + public static final int CONSTRUCTOR = -254449190; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class GetLogVerbosityLevel extends Function { + public GetLogVerbosityLevel() { + } + + public static final int CONSTRUCTOR = 594057956; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class GetLoginUrl extends Function { + + public long chatId; + + public long messageId; + + public long buttonId; + + public boolean allowWriteAccess; + + public GetLoginUrl() { + } + + public GetLoginUrl(long chatId, long messageId, long buttonId, boolean allowWriteAccess) { + this.chatId = chatId; + this.messageId = messageId; + this.buttonId = buttonId; + this.allowWriteAccess = allowWriteAccess; + } + + public static final int CONSTRUCTOR = 791844305; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class GetLoginUrlInfo extends Function { + + public long chatId; + + public long messageId; + + public long buttonId; + + public GetLoginUrlInfo() { + } + + public GetLoginUrlInfo(long chatId, long messageId, long buttonId) { + this.chatId = chatId; + this.messageId = messageId; + this.buttonId = buttonId; + } + + public static final int CONSTRUCTOR = -859202125; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class GetMainWebApp extends Function { + + public long chatId; + + public long botUserId; + + public String startParameter; + + public WebAppOpenParameters parameters; + + public GetMainWebApp() { + } + + public GetMainWebApp(long chatId, long botUserId, String startParameter, WebAppOpenParameters parameters) { + this.chatId = chatId; + this.botUserId = botUserId; + this.startParameter = startParameter; + this.parameters = parameters; + } + + public static final int CONSTRUCTOR = 594050214; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class GetMapThumbnailFile extends Function { + + public Location location; + + public int zoom; + + public int width; + + public int height; + + public int scale; + + public long chatId; + + public GetMapThumbnailFile() { + } + + public GetMapThumbnailFile(Location location, int zoom, int width, int height, int scale, long chatId) { + this.location = location; + this.zoom = zoom; + this.width = width; + this.height = height; + this.scale = scale; + this.chatId = chatId; + } + + public static final int CONSTRUCTOR = -152660070; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class GetMarkdownText extends Function { + + public FormattedText text; + + public GetMarkdownText() { + } + + public GetMarkdownText(FormattedText text) { + this.text = text; + } + + public static final int CONSTRUCTOR = 164524584; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class GetMe extends Function { + public GetMe() { + } + + public static final int CONSTRUCTOR = -191516033; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class GetMenuButton extends Function { + + public long userId; + + public GetMenuButton() { + } + + public GetMenuButton(long userId) { + this.userId = userId; + } + + public static final int CONSTRUCTOR = -437324736; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class GetMessage extends Function { + + public long chatId; + + public long messageId; + + public GetMessage() { + } + + public GetMessage(long chatId, long messageId) { + this.chatId = chatId; + this.messageId = messageId; + } + + public static final int CONSTRUCTOR = -1821196160; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class GetMessageAddedReactions extends Function { + + public long chatId; + + public long messageId; + + public ReactionType reactionType; + + public String offset; + + public int limit; + + public GetMessageAddedReactions() { + } + + public GetMessageAddedReactions(long chatId, long messageId, ReactionType reactionType, String offset, int limit) { + this.chatId = chatId; + this.messageId = messageId; + this.reactionType = reactionType; + this.offset = offset; + this.limit = limit; + } + + public static final int CONSTRUCTOR = 2110172754; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class GetMessageAvailableReactions extends Function { + + public long chatId; + + public long messageId; + + public int rowSize; + + public GetMessageAvailableReactions() { + } + + public GetMessageAvailableReactions(long chatId, long messageId, int rowSize) { + this.chatId = chatId; + this.messageId = messageId; + this.rowSize = rowSize; + } + + public static final int CONSTRUCTOR = 1994098354; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class GetMessageEffect extends Function { + + public long effectId; + + public GetMessageEffect() { + } + + public GetMessageEffect(long effectId) { + this.effectId = effectId; + } + + public static final int CONSTRUCTOR = -1638843116; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class GetMessageEmbeddingCode extends Function { + + public long chatId; + + public long messageId; + + public boolean forAlbum; + + public GetMessageEmbeddingCode() { + } + + public GetMessageEmbeddingCode(long chatId, long messageId, boolean forAlbum) { + this.chatId = chatId; + this.messageId = messageId; + this.forAlbum = forAlbum; + } + + public static final int CONSTRUCTOR = 1654967561; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class GetMessageFileType extends Function { + + public String messageFileHead; + + public GetMessageFileType() { + } + + public GetMessageFileType(String messageFileHead) { + this.messageFileHead = messageFileHead; + } + + public static final int CONSTRUCTOR = -490270764; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class GetMessageImportConfirmationText extends Function { + + public long chatId; + + public GetMessageImportConfirmationText() { + } + + public GetMessageImportConfirmationText(long chatId) { + this.chatId = chatId; + } + + public static final int CONSTRUCTOR = 390627752; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class GetMessageLink extends Function { + + public long chatId; + + public long messageId; + + public int mediaTimestamp; + + public boolean forAlbum; + + public boolean inMessageThread; + + public GetMessageLink() { + } + + public GetMessageLink(long chatId, long messageId, int mediaTimestamp, boolean forAlbum, boolean inMessageThread) { + this.chatId = chatId; + this.messageId = messageId; + this.mediaTimestamp = mediaTimestamp; + this.forAlbum = forAlbum; + this.inMessageThread = inMessageThread; + } + + public static final int CONSTRUCTOR = -984158342; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class GetMessageLinkInfo extends Function { + + public String url; + + public GetMessageLinkInfo() { + } + + public GetMessageLinkInfo(String url) { + this.url = url; + } + + public static final int CONSTRUCTOR = -700533672; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class GetMessageLocally extends Function { + + public long chatId; + + public long messageId; + + public GetMessageLocally() { + } + + public GetMessageLocally(long chatId, long messageId) { + this.chatId = chatId; + this.messageId = messageId; + } + + public static final int CONSTRUCTOR = -603575444; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class GetMessageProperties extends Function { + + public long chatId; + + public long messageId; + + public GetMessageProperties() { + } + + public GetMessageProperties(long chatId, long messageId) { + this.chatId = chatId; + this.messageId = messageId; + } + + public static final int CONSTRUCTOR = 773382571; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class GetMessagePublicForwards extends Function { + + public long chatId; + + public long messageId; + + public String offset; + + public int limit; + + public GetMessagePublicForwards() { + } + + public GetMessagePublicForwards(long chatId, long messageId, String offset, int limit) { + this.chatId = chatId; + this.messageId = messageId; + this.offset = offset; + this.limit = limit; + } + + public static final int CONSTRUCTOR = 1369285812; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class GetMessageReadDate extends Function { + + public long chatId; + + public long messageId; + + public GetMessageReadDate() { + } + + public GetMessageReadDate(long chatId, long messageId) { + this.chatId = chatId; + this.messageId = messageId; + } + + public static final int CONSTRUCTOR = -1484455101; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class GetMessageStatistics extends Function { + + public long chatId; + + public long messageId; + + public boolean isDark; + + public GetMessageStatistics() { + } + + public GetMessageStatistics(long chatId, long messageId, boolean isDark) { + this.chatId = chatId; + this.messageId = messageId; + this.isDark = isDark; + } + + public static final int CONSTRUCTOR = 1270194648; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class GetMessageThread extends Function { + + public long chatId; + + public long messageId; + + public GetMessageThread() { + } + + public GetMessageThread(long chatId, long messageId) { + this.chatId = chatId; + this.messageId = messageId; + } + + public static final int CONSTRUCTOR = 2062695998; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class GetMessageThreadHistory extends Function { + + public long chatId; + + public long messageId; + + public long fromMessageId; + + public int offset; + + public int limit; + + public GetMessageThreadHistory() { + } + + public GetMessageThreadHistory(long chatId, long messageId, long fromMessageId, int offset, int limit) { + this.chatId = chatId; + this.messageId = messageId; + this.fromMessageId = fromMessageId; + this.offset = offset; + this.limit = limit; + } + + public static final int CONSTRUCTOR = -1808411608; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class GetMessageViewers extends Function { + + public long chatId; + + public long messageId; + + public GetMessageViewers() { + } + + public GetMessageViewers(long chatId, long messageId) { + this.chatId = chatId; + this.messageId = messageId; + } + + public static final int CONSTRUCTOR = -1584457010; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class GetMessages extends Function { + + public long chatId; + + public long[] messageIds; + + public GetMessages() { + } + + public GetMessages(long chatId, long[] messageIds) { + this.chatId = chatId; + this.messageIds = messageIds; + } + + public static final int CONSTRUCTOR = 425299338; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class GetNetworkStatistics extends Function { + + public boolean onlyCurrent; + + public GetNetworkStatistics() { + } + + public GetNetworkStatistics(boolean onlyCurrent) { + this.onlyCurrent = onlyCurrent; + } + + public static final int CONSTRUCTOR = -986228706; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class GetNewChatPrivacySettings extends Function { + public GetNewChatPrivacySettings() { + } + + public static final int CONSTRUCTOR = -1295299657; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class GetOption extends Function { + + public String name; + + public GetOption() { + } + + public GetOption(String name) { + this.name = name; + } + + public static final int CONSTRUCTOR = -1572495746; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class GetOwnedBots extends Function { + public GetOwnedBots() { + } + + public static final int CONSTRUCTOR = -1954035715; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class GetOwnedStickerSets extends Function { + + public long offsetStickerSetId; + + public int limit; + + public GetOwnedStickerSets() { + } + + public GetOwnedStickerSets(long offsetStickerSetId, int limit) { + this.offsetStickerSetId = offsetStickerSetId; + this.limit = limit; + } + + public static final int CONSTRUCTOR = 1493074208; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class GetPassportAuthorizationForm extends Function { + + public long botUserId; + + public String scope; + + public String publicKey; + + public String nonce; + + public GetPassportAuthorizationForm() { + } + + public GetPassportAuthorizationForm(long botUserId, String scope, String publicKey, String nonce) { + this.botUserId = botUserId; + this.scope = scope; + this.publicKey = publicKey; + this.nonce = nonce; + } + + public static final int CONSTRUCTOR = 1636107398; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class GetPassportAuthorizationFormAvailableElements extends Function { + + public int authorizationFormId; + + public String password; + + public GetPassportAuthorizationFormAvailableElements() { + } + + public GetPassportAuthorizationFormAvailableElements(int authorizationFormId, String password) { + this.authorizationFormId = authorizationFormId; + this.password = password; + } + + public static final int CONSTRUCTOR = 1068700924; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class GetPassportElement extends Function { + + public PassportElementType type; + + public String password; + + public GetPassportElement() { + } + + public GetPassportElement(PassportElementType type, String password) { + this.type = type; + this.password = password; + } + + public static final int CONSTRUCTOR = -1882398342; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class GetPasswordState extends Function { + public GetPasswordState() { + } + + public static final int CONSTRUCTOR = -174752904; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class GetPaymentForm extends Function { + + public InputInvoice inputInvoice; + + public ThemeParameters theme; + + public GetPaymentForm() { + } + + public GetPaymentForm(InputInvoice inputInvoice, ThemeParameters theme) { + this.inputInvoice = inputInvoice; + this.theme = theme; + } + + public static final int CONSTRUCTOR = -1924172076; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class GetPaymentReceipt extends Function { + + public long chatId; + + public long messageId; + + public GetPaymentReceipt() { + } + + public GetPaymentReceipt(long chatId, long messageId) { + this.chatId = chatId; + this.messageId = messageId; + } + + public static final int CONSTRUCTOR = 1013758294; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class GetPhoneNumberInfo extends Function { + + public String phoneNumberPrefix; + + public GetPhoneNumberInfo() { + } + + public GetPhoneNumberInfo(String phoneNumberPrefix) { + this.phoneNumberPrefix = phoneNumberPrefix; + } + + public static final int CONSTRUCTOR = -1608344583; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class GetPhoneNumberInfoSync extends Function { + + public String languageCode; + + public String phoneNumberPrefix; + + public GetPhoneNumberInfoSync() { + } + + public GetPhoneNumberInfoSync(String languageCode, String phoneNumberPrefix) { + this.languageCode = languageCode; + this.phoneNumberPrefix = phoneNumberPrefix; + } + + public static final int CONSTRUCTOR = 547061048; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class GetPollVoters extends Function { + + public long chatId; + + public long messageId; + + public int optionId; + + public int offset; + + public int limit; + + public GetPollVoters() { + } + + public GetPollVoters(long chatId, long messageId, int optionId, int offset, int limit) { + this.chatId = chatId; + this.messageId = messageId; + this.optionId = optionId; + this.offset = offset; + this.limit = limit; + } + + public static final int CONSTRUCTOR = -1000625748; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class GetPreferredCountryLanguage extends Function { + + public String countryCode; + + public GetPreferredCountryLanguage() { + } + + public GetPreferredCountryLanguage(String countryCode) { + this.countryCode = countryCode; + } + + public static final int CONSTRUCTOR = -933049386; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class GetPremiumFeatures extends Function { + + public PremiumSource source; + + public GetPremiumFeatures() { + } + + public GetPremiumFeatures(PremiumSource source) { + this.source = source; + } + + public static final int CONSTRUCTOR = -1260640695; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class GetPremiumGiftCodePaymentOptions extends Function { + + public long boostedChatId; + + public GetPremiumGiftCodePaymentOptions() { + } + + public GetPremiumGiftCodePaymentOptions(long boostedChatId) { + this.boostedChatId = boostedChatId; + } + + public static final int CONSTRUCTOR = -1991099860; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class GetPremiumInfoSticker extends Function { + + public int monthCount; + + public GetPremiumInfoSticker() { + } + + public GetPremiumInfoSticker(int monthCount) { + this.monthCount = monthCount; + } + + public static final int CONSTRUCTOR = 2043562651; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class GetPremiumLimit extends Function { + + public PremiumLimitType limitType; + + public GetPremiumLimit() { + } + + public GetPremiumLimit(PremiumLimitType limitType) { + this.limitType = limitType; + } + + public static final int CONSTRUCTOR = 1075313898; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class GetPremiumState extends Function { + public GetPremiumState() { + } + + public static final int CONSTRUCTOR = 663632610; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class GetPremiumStickerExamples extends Function { + public GetPremiumStickerExamples() { + } + + public static final int CONSTRUCTOR = 1399442328; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class GetPremiumStickers extends Function { + + public int limit; + + public GetPremiumStickers() { + } + + public GetPremiumStickers(int limit) { + this.limit = limit; + } + + public static final int CONSTRUCTOR = -280950192; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class GetPreparedInlineMessage extends Function { + + public long botUserId; + + public String preparedMessageId; + + public GetPreparedInlineMessage() { + } + + public GetPreparedInlineMessage(long botUserId, String preparedMessageId) { + this.botUserId = botUserId; + this.preparedMessageId = preparedMessageId; + } + + public static final int CONSTRUCTOR = -83179701; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class GetProxies extends Function { + public GetProxies() { + } + + public static final int CONSTRUCTOR = -95026381; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class GetProxyLink extends Function { + + public int proxyId; + + public GetProxyLink() { + } + + public GetProxyLink(int proxyId) { + this.proxyId = proxyId; + } + + public static final int CONSTRUCTOR = -1054495112; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class GetPushReceiverId extends Function { + + public String payload; + + public GetPushReceiverId() { + } + + public GetPushReceiverId(String payload) { + this.payload = payload; + } + + public static final int CONSTRUCTOR = -286505294; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class GetReadDatePrivacySettings extends Function { + public GetReadDatePrivacySettings() { + } + + public static final int CONSTRUCTOR = 451435451; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class GetRecentEmojiStatuses extends Function { + public GetRecentEmojiStatuses() { + } + + public static final int CONSTRUCTOR = -1371914967; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class GetRecentInlineBots extends Function { + public GetRecentInlineBots() { + } + + public static final int CONSTRUCTOR = 1437823548; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class GetRecentStickers extends Function { + + public boolean isAttached; + + public GetRecentStickers() { + } + + public GetRecentStickers(boolean isAttached) { + this.isAttached = isAttached; + } + + public static final int CONSTRUCTOR = -579622241; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class GetRecentlyOpenedChats extends Function { + + public int limit; + + public GetRecentlyOpenedChats() { + } + + public GetRecentlyOpenedChats(int limit) { + this.limit = limit; + } + + public static final int CONSTRUCTOR = -1924156893; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class GetRecentlyVisitedTMeUrls extends Function { + + public String referrer; + + public GetRecentlyVisitedTMeUrls() { + } + + public GetRecentlyVisitedTMeUrls(String referrer) { + this.referrer = referrer; + } + + public static final int CONSTRUCTOR = 806754961; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class GetRecommendedChatFolders extends Function { + public GetRecommendedChatFolders() { + } + + public static final int CONSTRUCTOR = -145540217; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class GetRecommendedChats extends Function { + public GetRecommendedChats() { + } + + public static final int CONSTRUCTOR = -649884303; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class GetRecoveryEmailAddress extends Function { + + public String password; + + public GetRecoveryEmailAddress() { + } + + public GetRecoveryEmailAddress(String password) { + this.password = password; + } + + public static final int CONSTRUCTOR = -1594770947; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class GetRemoteFile extends Function { + + public String remoteFileId; + + public FileType fileType; + + public GetRemoteFile() { + } + + public GetRemoteFile(String remoteFileId, FileType fileType) { + this.remoteFileId = remoteFileId; + this.fileType = fileType; + } + + public static final int CONSTRUCTOR = 2137204530; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class GetRepliedMessage extends Function { + + public long chatId; + + public long messageId; + + public GetRepliedMessage() { + } + + public GetRepliedMessage(long chatId, long messageId) { + this.chatId = chatId; + this.messageId = messageId; + } + + public static final int CONSTRUCTOR = -641918531; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class GetSavedAnimations extends Function { + public GetSavedAnimations() { + } + + public static final int CONSTRUCTOR = 7051032; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class GetSavedMessagesTags extends Function { + + public long savedMessagesTopicId; + + public GetSavedMessagesTags() { + } + + public GetSavedMessagesTags(long savedMessagesTopicId) { + this.savedMessagesTopicId = savedMessagesTopicId; + } + + public static final int CONSTRUCTOR = -1932105815; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class GetSavedMessagesTopicHistory extends Function { + + public long savedMessagesTopicId; + + public long fromMessageId; + + public int offset; + + public int limit; + + public GetSavedMessagesTopicHistory() { + } + + public GetSavedMessagesTopicHistory(long savedMessagesTopicId, long fromMessageId, int offset, int limit) { + this.savedMessagesTopicId = savedMessagesTopicId; + this.fromMessageId = fromMessageId; + this.offset = offset; + this.limit = limit; + } + + public static final int CONSTRUCTOR = 2011552360; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class GetSavedMessagesTopicMessageByDate extends Function { + + public long savedMessagesTopicId; + + public int date; + + public GetSavedMessagesTopicMessageByDate() { + } + + public GetSavedMessagesTopicMessageByDate(long savedMessagesTopicId, int date) { + this.savedMessagesTopicId = savedMessagesTopicId; + this.date = date; + } + + public static final int CONSTRUCTOR = -1050786176; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class GetSavedNotificationSound extends Function { + + public long notificationSoundId; + + public GetSavedNotificationSound() { + } + + public GetSavedNotificationSound(long notificationSoundId) { + this.notificationSoundId = notificationSoundId; + } + + public static final int CONSTRUCTOR = 459569431; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class GetSavedNotificationSounds extends Function { + public GetSavedNotificationSounds() { + } + + public static final int CONSTRUCTOR = -1070305368; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class GetSavedOrderInfo extends Function { + public GetSavedOrderInfo() { + } + + public static final int CONSTRUCTOR = -1152016675; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class GetScopeNotificationSettings extends Function { + + public NotificationSettingsScope scope; + + public GetScopeNotificationSettings() { + } + + public GetScopeNotificationSettings(NotificationSettingsScope scope) { + this.scope = scope; + } + + public static final int CONSTRUCTOR = -995613361; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class GetSearchedForTags extends Function { + + public String tagPrefix; + + public int limit; + + public GetSearchedForTags() { + } + + public GetSearchedForTags(String tagPrefix, int limit) { + this.tagPrefix = tagPrefix; + this.limit = limit; + } + + public static final int CONSTRUCTOR = -1692716851; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class GetSecretChat extends Function { + + public int secretChatId; + + public GetSecretChat() { + } + + public GetSecretChat(int secretChatId) { + this.secretChatId = secretChatId; + } + + public static final int CONSTRUCTOR = 40599169; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class GetStarAdAccountUrl extends Function { + + public MessageSender ownerId; + + public GetStarAdAccountUrl() { + } + + public GetStarAdAccountUrl(MessageSender ownerId) { + this.ownerId = ownerId; + } + + public static final int CONSTRUCTOR = 1940473181; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class GetStarGiftPaymentOptions extends Function { + + public long userId; + + public GetStarGiftPaymentOptions() { + } + + public GetStarGiftPaymentOptions(long userId) { + this.userId = userId; + } + + public static final int CONSTRUCTOR = -500735773; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class GetStarGiveawayPaymentOptions extends Function { + public GetStarGiveawayPaymentOptions() { + } + + public static final int CONSTRUCTOR = -883172578; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class GetStarPaymentOptions extends Function { + public GetStarPaymentOptions() { + } + + public static final int CONSTRUCTOR = 1838351940; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class GetStarRevenueStatistics extends Function { + + public MessageSender ownerId; + + public boolean isDark; + + public GetStarRevenueStatistics() { + } + + public GetStarRevenueStatistics(MessageSender ownerId, boolean isDark) { + this.ownerId = ownerId; + this.isDark = isDark; + } + + public static final int CONSTRUCTOR = -260356841; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class GetStarSubscriptions extends Function { + + public boolean onlyExpiring; + + public String offset; + + public GetStarSubscriptions() { + } + + public GetStarSubscriptions(boolean onlyExpiring, String offset) { + this.onlyExpiring = onlyExpiring; + this.offset = offset; + } + + public static final int CONSTRUCTOR = -641223956; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class GetStarTransactions extends Function { + + public MessageSender ownerId; + + public String subscriptionId; + + public StarTransactionDirection direction; + + public String offset; + + public int limit; + + public GetStarTransactions() { + } + + public GetStarTransactions(MessageSender ownerId, String subscriptionId, StarTransactionDirection direction, String offset, int limit) { + this.ownerId = ownerId; + this.subscriptionId = subscriptionId; + this.direction = direction; + this.offset = offset; + this.limit = limit; + } + + public static final int CONSTRUCTOR = -258541327; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class GetStarWithdrawalUrl extends Function { + + public MessageSender ownerId; + + public long starCount; + + public String password; + + public GetStarWithdrawalUrl() { + } + + public GetStarWithdrawalUrl(MessageSender ownerId, long starCount, String password) { + this.ownerId = ownerId; + this.starCount = starCount; + this.password = password; + } + + public static final int CONSTRUCTOR = -1445841134; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class GetStatisticalGraph extends Function { + + public long chatId; + + public String token; + + public long x; + + public GetStatisticalGraph() { + } + + public GetStatisticalGraph(long chatId, String token, long x) { + this.chatId = chatId; + this.token = token; + this.x = x; + } + + public static final int CONSTRUCTOR = 1100975515; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class GetStickerEmojis extends Function { + + public InputFile sticker; + + public GetStickerEmojis() { + } + + public GetStickerEmojis(InputFile sticker) { + this.sticker = sticker; + } + + public static final int CONSTRUCTOR = -1895508665; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class GetStickerOutline extends Function { + + public int stickerFileId; + + public boolean forAnimatedEmoji; + + public boolean forClickedAnimatedEmojiMessage; + + public GetStickerOutline() { + } + + public GetStickerOutline(int stickerFileId, boolean forAnimatedEmoji, boolean forClickedAnimatedEmojiMessage) { + this.stickerFileId = stickerFileId; + this.forAnimatedEmoji = forAnimatedEmoji; + this.forClickedAnimatedEmojiMessage = forClickedAnimatedEmojiMessage; + } + + public static final int CONSTRUCTOR = -1550504539; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class GetStickerSet extends Function { + + public long setId; + + public GetStickerSet() { + } + + public GetStickerSet(long setId) { + this.setId = setId; + } + + public static final int CONSTRUCTOR = 1052318659; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class GetStickerSetName extends Function { + + public long setId; + + public GetStickerSetName() { + } + + public GetStickerSetName(long setId) { + this.setId = setId; + } + + public static final int CONSTRUCTOR = 1039849089; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class GetStickers extends Function { + + public StickerType stickerType; + + public String query; + + public int limit; + + public long chatId; + + public GetStickers() { + } + + public GetStickers(StickerType stickerType, String query, int limit, long chatId) { + this.stickerType = stickerType; + this.query = query; + this.limit = limit; + this.chatId = chatId; + } + + public static final int CONSTRUCTOR = 1158058819; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class GetStorageStatistics extends Function { + + public int chatLimit; + + public GetStorageStatistics() { + } + + public GetStorageStatistics(int chatLimit) { + this.chatLimit = chatLimit; + } + + public static final int CONSTRUCTOR = -853193929; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class GetStorageStatisticsFast extends Function { + public GetStorageStatisticsFast() { + } + + public static final int CONSTRUCTOR = 61368066; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class GetStory extends Function { + + public long storySenderChatId; + + public int storyId; + + public boolean onlyLocal; + + public GetStory() { + } + + public GetStory(long storySenderChatId, int storyId, boolean onlyLocal) { + this.storySenderChatId = storySenderChatId; + this.storyId = storyId; + this.onlyLocal = onlyLocal; + } + + public static final int CONSTRUCTOR = 1903893624; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class GetStoryAvailableReactions extends Function { + + public int rowSize; + + public GetStoryAvailableReactions() { + } + + public GetStoryAvailableReactions(int rowSize) { + this.rowSize = rowSize; + } + + public static final int CONSTRUCTOR = 595938619; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class GetStoryInteractions extends Function { + + public int storyId; + + public String query; + + public boolean onlyContacts; + + public boolean preferForwards; + + public boolean preferWithReaction; + + public String offset; + + public int limit; + + public GetStoryInteractions() { + } + + public GetStoryInteractions(int storyId, String query, boolean onlyContacts, boolean preferForwards, boolean preferWithReaction, String offset, int limit) { + this.storyId = storyId; + this.query = query; + this.onlyContacts = onlyContacts; + this.preferForwards = preferForwards; + this.preferWithReaction = preferWithReaction; + this.offset = offset; + this.limit = limit; + } + + public static final int CONSTRUCTOR = 483475469; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class GetStoryNotificationSettingsExceptions extends Function { + public GetStoryNotificationSettingsExceptions() { + } + + public static final int CONSTRUCTOR = 627715760; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class GetStoryPublicForwards extends Function { + + public long storySenderChatId; + + public int storyId; + + public String offset; + + public int limit; + + public GetStoryPublicForwards() { + } + + public GetStoryPublicForwards(long storySenderChatId, int storyId, String offset, int limit) { + this.storySenderChatId = storySenderChatId; + this.storyId = storyId; + this.offset = offset; + this.limit = limit; + } + + public static final int CONSTRUCTOR = 1761074363; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class GetStoryStatistics extends Function { + + public long chatId; + + public int storyId; + + public boolean isDark; + + public GetStoryStatistics() { + } + + public GetStoryStatistics(long chatId, int storyId, boolean isDark) { + this.chatId = chatId; + this.storyId = storyId; + this.isDark = isDark; + } + + public static final int CONSTRUCTOR = 982926146; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class GetSuggestedFileName extends Function { + + public int fileId; + + public String directory; + + public GetSuggestedFileName() { + } + + public GetSuggestedFileName(int fileId, String directory) { + this.fileId = fileId; + this.directory = directory; + } + + public static final int CONSTRUCTOR = -2049399674; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class GetSuggestedStickerSetName extends Function { + + public String title; + + public GetSuggestedStickerSetName() { + } + + public GetSuggestedStickerSetName(String title) { + this.title = title; + } + + public static final int CONSTRUCTOR = -1340995520; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class GetSuitableDiscussionChats extends Function { + public GetSuitableDiscussionChats() { + } + + public static final int CONSTRUCTOR = 49044982; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class GetSuitablePersonalChats extends Function { + public GetSuitablePersonalChats() { + } + + public static final int CONSTRUCTOR = -1870357515; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class GetSupergroup extends Function { + + public long supergroupId; + + public GetSupergroup() { + } + + public GetSupergroup(long supergroupId) { + this.supergroupId = supergroupId; + } + + public static final int CONSTRUCTOR = 989663458; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class GetSupergroupFullInfo extends Function { + + public long supergroupId; + + public GetSupergroupFullInfo() { + } + + public GetSupergroupFullInfo(long supergroupId) { + this.supergroupId = supergroupId; + } + + public static final int CONSTRUCTOR = 1099776056; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class GetSupergroupMembers extends Function { + + public long supergroupId; + + public SupergroupMembersFilter filter; + + public int offset; + + public int limit; + + public GetSupergroupMembers() { + } + + public GetSupergroupMembers(long supergroupId, SupergroupMembersFilter filter, int offset, int limit) { + this.supergroupId = supergroupId; + this.filter = filter; + this.offset = offset; + this.limit = limit; + } + + public static final int CONSTRUCTOR = -570940984; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class GetSupportName extends Function { + public GetSupportName() { + } + + public static final int CONSTRUCTOR = 1302205794; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class GetSupportUser extends Function { + public GetSupportUser() { + } + + public static final int CONSTRUCTOR = -1733497700; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class GetTemporaryPasswordState extends Function { + public GetTemporaryPasswordState() { + } + + public static final int CONSTRUCTOR = -12670830; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class GetTextEntities extends Function { + + public String text; + + public GetTextEntities() { + } + + public GetTextEntities(String text) { + this.text = text; + } + + public static final int CONSTRUCTOR = -341490693; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class GetThemeParametersJsonString extends Function { + + public ThemeParameters theme; + + public GetThemeParametersJsonString() { + } + + public GetThemeParametersJsonString(ThemeParameters theme) { + this.theme = theme; + } + + public static final int CONSTRUCTOR = -1850145288; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class GetThemedChatEmojiStatuses extends Function { + public GetThemedChatEmojiStatuses() { + } + + public static final int CONSTRUCTOR = -76325707; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class GetThemedEmojiStatuses extends Function { + public GetThemedEmojiStatuses() { + } + + public static final int CONSTRUCTOR = 1791346882; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class GetTimeZones extends Function { + public GetTimeZones() { + } + + public static final int CONSTRUCTOR = 1340268632; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class GetTopChats extends Function { + + public TopChatCategory category; + + public int limit; + + public GetTopChats() { + } + + public GetTopChats(TopChatCategory category, int limit) { + this.category = category; + this.limit = limit; + } + + public static final int CONSTRUCTOR = -388410847; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class GetTrendingStickerSets extends Function { + + public StickerType stickerType; + + public int offset; + + public int limit; + + public GetTrendingStickerSets() { + } + + public GetTrendingStickerSets(StickerType stickerType, int offset, int limit) { + this.stickerType = stickerType; + this.offset = offset; + this.limit = limit; + } + + public static final int CONSTRUCTOR = -531085986; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class GetUser extends Function { + + public long userId; + + public GetUser() { + } + + public GetUser(long userId) { + this.userId = userId; + } + + public static final int CONSTRUCTOR = 1117363211; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class GetUserChatBoosts extends Function { + + public long chatId; + + public long userId; + + public GetUserChatBoosts() { + } + + public GetUserChatBoosts(long chatId, long userId) { + this.chatId = chatId; + this.userId = userId; + } + + public static final int CONSTRUCTOR = -1190205543; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class GetUserFullInfo extends Function { + + public long userId; + + public GetUserFullInfo() { + } + + public GetUserFullInfo(long userId) { + this.userId = userId; + } + + public static final int CONSTRUCTOR = -776823720; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class GetUserGifts extends Function { + + public long userId; + + public String offset; + + public int limit; + + public GetUserGifts() { + } + + public GetUserGifts(long userId, String offset, int limit) { + this.userId = userId; + this.offset = offset; + this.limit = limit; + } + + public static final int CONSTRUCTOR = -1211253636; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class GetUserLink extends Function { + public GetUserLink() { + } + + public static final int CONSTRUCTOR = 1226839270; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class GetUserPrivacySettingRules extends Function { + + public UserPrivacySetting setting; + + public GetUserPrivacySettingRules() { + } + + public GetUserPrivacySettingRules(UserPrivacySetting setting) { + this.setting = setting; + } + + public static final int CONSTRUCTOR = -2077223311; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class GetUserProfilePhotos extends Function { + + public long userId; + + public int offset; + + public int limit; + + public GetUserProfilePhotos() { + } + + public GetUserProfilePhotos(long userId, int offset, int limit) { + this.userId = userId; + this.offset = offset; + this.limit = limit; + } + + public static final int CONSTRUCTOR = -908132798; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class GetUserSupportInfo extends Function { + + public long userId; + + public GetUserSupportInfo() { + } + + public GetUserSupportInfo(long userId) { + this.userId = userId; + } + + public static final int CONSTRUCTOR = 1957008133; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class GetVideoChatAvailableParticipants extends Function { + + public long chatId; + + public GetVideoChatAvailableParticipants() { + } + + public GetVideoChatAvailableParticipants(long chatId) { + this.chatId = chatId; + } + + public static final int CONSTRUCTOR = -1000496379; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class GetVideoChatRtmpUrl extends Function { + + public long chatId; + + public GetVideoChatRtmpUrl() { + } + + public GetVideoChatRtmpUrl(long chatId) { + this.chatId = chatId; + } + + public static final int CONSTRUCTOR = 1210784543; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class GetWebAppLinkUrl extends Function { + + public long chatId; + + public long botUserId; + + public String webAppShortName; + + public String startParameter; + + public boolean allowWriteAccess; + + public WebAppOpenParameters parameters; + + public GetWebAppLinkUrl() { + } + + public GetWebAppLinkUrl(long chatId, long botUserId, String webAppShortName, String startParameter, boolean allowWriteAccess, WebAppOpenParameters parameters) { + this.chatId = chatId; + this.botUserId = botUserId; + this.webAppShortName = webAppShortName; + this.startParameter = startParameter; + this.allowWriteAccess = allowWriteAccess; + this.parameters = parameters; + } + + public static final int CONSTRUCTOR = 1627284161; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class GetWebAppPlaceholder extends Function { + + public long botUserId; + + public GetWebAppPlaceholder() { + } + + public GetWebAppPlaceholder(long botUserId) { + this.botUserId = botUserId; + } + + public static final int CONSTRUCTOR = 583470479; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class GetWebAppUrl extends Function { + + public long botUserId; + + public String url; + + public WebAppOpenParameters parameters; + + public GetWebAppUrl() { + } + + public GetWebAppUrl(long botUserId, String url, WebAppOpenParameters parameters) { + this.botUserId = botUserId; + this.url = url; + this.parameters = parameters; + } + + public static final int CONSTRUCTOR = -1526784188; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class GetWebPageInstantView extends Function { + + public String url; + + public boolean forceFull; + + public GetWebPageInstantView() { + } + + public GetWebPageInstantView(String url, boolean forceFull) { + this.url = url; + this.forceFull = forceFull; + } + + public static final int CONSTRUCTOR = -1962649975; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class HideContactCloseBirthdays extends Function { + public HideContactCloseBirthdays() { + } + + public static final int CONSTRUCTOR = -1163065221; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class HideSuggestedAction extends Function { + + public SuggestedAction action; + + public HideSuggestedAction() { + } + + public HideSuggestedAction(SuggestedAction action) { + this.action = action; + } + + public static final int CONSTRUCTOR = -1561384065; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class ImportContacts extends Function { + + public Contact[] contacts; + + public ImportContacts() { + } + + public ImportContacts(Contact[] contacts) { + this.contacts = contacts; + } + + public static final int CONSTRUCTOR = -215132767; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class ImportMessages extends Function { + + public long chatId; + + public InputFile messageFile; + + public InputFile[] attachedFiles; + + public ImportMessages() { + } + + public ImportMessages(long chatId, InputFile messageFile, InputFile[] attachedFiles) { + this.chatId = chatId; + this.messageFile = messageFile; + this.attachedFiles = attachedFiles; + } + + public static final int CONSTRUCTOR = -1864116784; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class InviteGroupCallParticipants extends Function { + + public int groupCallId; + + public long[] userIds; + + public InviteGroupCallParticipants() { + } + + public InviteGroupCallParticipants(int groupCallId, long[] userIds) { + this.groupCallId = groupCallId; + this.userIds = userIds; + } + + public static final int CONSTRUCTOR = 1867097679; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class JoinChat extends Function { + + public long chatId; + + public JoinChat() { + } + + public JoinChat(long chatId) { + this.chatId = chatId; + } + + public static final int CONSTRUCTOR = 326769313; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class JoinChatByInviteLink extends Function { + + public String inviteLink; + + public JoinChatByInviteLink() { + } + + public JoinChatByInviteLink(String inviteLink) { + this.inviteLink = inviteLink; + } + + public static final int CONSTRUCTOR = -1049973882; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class JoinGroupCall extends Function { + + public int groupCallId; + + public MessageSender participantId; + + public int audioSourceId; + + public String payload; + + public boolean isMuted; + + public boolean isMyVideoEnabled; + + public String inviteHash; + + public JoinGroupCall() { + } + + public JoinGroupCall(int groupCallId, MessageSender participantId, int audioSourceId, String payload, boolean isMuted, boolean isMyVideoEnabled, String inviteHash) { + this.groupCallId = groupCallId; + this.participantId = participantId; + this.audioSourceId = audioSourceId; + this.payload = payload; + this.isMuted = isMuted; + this.isMyVideoEnabled = isMyVideoEnabled; + this.inviteHash = inviteHash; + } + + public static final int CONSTRUCTOR = -1043773467; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class LaunchPrepaidGiveaway extends Function { + + public long giveawayId; + + public GiveawayParameters parameters; + + public int winnerCount; + + public long starCount; + + public LaunchPrepaidGiveaway() { + } + + public LaunchPrepaidGiveaway(long giveawayId, GiveawayParameters parameters, int winnerCount, long starCount) { + this.giveawayId = giveawayId; + this.parameters = parameters; + this.winnerCount = winnerCount; + this.starCount = starCount; + } + + public static final int CONSTRUCTOR = 639465530; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class LeaveChat extends Function { + + public long chatId; + + public LeaveChat() { + } + + public LeaveChat(long chatId) { + this.chatId = chatId; + } + + public static final int CONSTRUCTOR = -1825080735; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class LeaveGroupCall extends Function { + + public int groupCallId; + + public LeaveGroupCall() { + } + + public LeaveGroupCall(int groupCallId) { + this.groupCallId = groupCallId; + } + + public static final int CONSTRUCTOR = 980152233; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class LoadActiveStories extends Function { + + public StoryList storyList; + + public LoadActiveStories() { + } + + public LoadActiveStories(StoryList storyList) { + this.storyList = storyList; + } + + public static final int CONSTRUCTOR = 2106390328; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class LoadChats extends Function { + + public ChatList chatList; + + public int limit; + + public LoadChats() { + } + + public LoadChats(ChatList chatList, int limit) { + this.chatList = chatList; + this.limit = limit; + } + + public static final int CONSTRUCTOR = -1885635205; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class LoadGroupCallParticipants extends Function { + + public int groupCallId; + + public int limit; + + public LoadGroupCallParticipants() { + } + + public LoadGroupCallParticipants(int groupCallId, int limit) { + this.groupCallId = groupCallId; + this.limit = limit; + } + + public static final int CONSTRUCTOR = 938720974; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class LoadQuickReplyShortcutMessages extends Function { + + public int shortcutId; + + public LoadQuickReplyShortcutMessages() { + } + + public LoadQuickReplyShortcutMessages(int shortcutId) { + this.shortcutId = shortcutId; + } + + public static final int CONSTRUCTOR = -46092588; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class LoadQuickReplyShortcuts extends Function { + public LoadQuickReplyShortcuts() { + } + + public static final int CONSTRUCTOR = -1016614243; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class LoadSavedMessagesTopics extends Function { + + public int limit; + + public LoadSavedMessagesTopics() { + } + + public LoadSavedMessagesTopics(int limit) { + this.limit = limit; + } + + public static final int CONSTRUCTOR = 289855160; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class LogOut extends Function { + public LogOut() { + } + + public static final int CONSTRUCTOR = -1581923301; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class OpenChat extends Function { + + public long chatId; + + public OpenChat() { + } + + public OpenChat(long chatId) { + this.chatId = chatId; + } + + public static final int CONSTRUCTOR = -323371509; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class OpenChatSimilarChat extends Function { + + public long chatId; + + public long openedChatId; + + public OpenChatSimilarChat() { + } + + public OpenChatSimilarChat(long chatId, long openedChatId) { + this.chatId = chatId; + this.openedChatId = openedChatId; + } + + public static final int CONSTRUCTOR = -1884883949; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class OpenMessageContent extends Function { + + public long chatId; + + public long messageId; + + public OpenMessageContent() { + } + + public OpenMessageContent(long chatId, long messageId) { + this.chatId = chatId; + this.messageId = messageId; + } + + public static final int CONSTRUCTOR = -739088005; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class OpenStory extends Function { + + public long storySenderChatId; + + public int storyId; + + public OpenStory() { + } + + public OpenStory(long storySenderChatId, int storyId) { + this.storySenderChatId = storySenderChatId; + this.storyId = storyId; + } + + public static final int CONSTRUCTOR = -824542083; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class OpenWebApp extends Function { + + public long chatId; + + public long botUserId; + + public String url; + + public long messageThreadId; + + public InputMessageReplyTo replyTo; + + public WebAppOpenParameters parameters; + + public OpenWebApp() { + } + + public OpenWebApp(long chatId, long botUserId, String url, long messageThreadId, InputMessageReplyTo replyTo, WebAppOpenParameters parameters) { + this.chatId = chatId; + this.botUserId = botUserId; + this.url = url; + this.messageThreadId = messageThreadId; + this.replyTo = replyTo; + this.parameters = parameters; + } + + public static final int CONSTRUCTOR = 662795170; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class OptimizeStorage extends Function { + + public long size; + + public int ttl; + + public int count; + + public int immunityDelay; + + public FileType[] fileTypes; + + public long[] chatIds; + + public long[] excludeChatIds; + + public boolean returnDeletedFileStatistics; + + public int chatLimit; + + public OptimizeStorage() { + } + + public OptimizeStorage(long size, int ttl, int count, int immunityDelay, FileType[] fileTypes, long[] chatIds, long[] excludeChatIds, boolean returnDeletedFileStatistics, int chatLimit) { + this.size = size; + this.ttl = ttl; + this.count = count; + this.immunityDelay = immunityDelay; + this.fileTypes = fileTypes; + this.chatIds = chatIds; + this.excludeChatIds = excludeChatIds; + this.returnDeletedFileStatistics = returnDeletedFileStatistics; + this.chatLimit = chatLimit; + } + + public static final int CONSTRUCTOR = 853186759; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class ParseMarkdown extends Function { + + public FormattedText text; + + public ParseMarkdown() { + } + + public ParseMarkdown(FormattedText text) { + this.text = text; + } + + public static final int CONSTRUCTOR = 756366063; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class ParseTextEntities extends Function { + + public String text; + + public TextParseMode parseMode; + + public ParseTextEntities() { + } + + public ParseTextEntities(String text, TextParseMode parseMode) { + this.text = text; + this.parseMode = parseMode; + } + + public static final int CONSTRUCTOR = -1709194593; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class PinChatMessage extends Function { + + public long chatId; + + public long messageId; + + public boolean disableNotification; + + public boolean onlyForSelf; + + public PinChatMessage() { + } + + public PinChatMessage(long chatId, long messageId, boolean disableNotification, boolean onlyForSelf) { + this.chatId = chatId; + this.messageId = messageId; + this.disableNotification = disableNotification; + this.onlyForSelf = onlyForSelf; + } + + public static final int CONSTRUCTOR = 2034719663; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class PingProxy extends Function { + + public int proxyId; + + public PingProxy() { + } + + public PingProxy(int proxyId) { + this.proxyId = proxyId; + } + + public static final int CONSTRUCTOR = -979681103; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class PreliminaryUploadFile extends Function { + + public InputFile file; + + public FileType fileType; + + public int priority; + + public PreliminaryUploadFile() { + } + + public PreliminaryUploadFile(InputFile file, FileType fileType, int priority) { + this.file = file; + this.fileType = fileType; + this.priority = priority; + } + + public static final int CONSTRUCTOR = 1894239129; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class ProcessChatFolderNewChats extends Function { + + public int chatFolderId; + + public long[] addedChatIds; + + public ProcessChatFolderNewChats() { + } + + public ProcessChatFolderNewChats(int chatFolderId, long[] addedChatIds) { + this.chatFolderId = chatFolderId; + this.addedChatIds = addedChatIds; + } + + public static final int CONSTRUCTOR = 1498280672; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class ProcessChatJoinRequest extends Function { + + public long chatId; + + public long userId; + + public boolean approve; + + public ProcessChatJoinRequest() { + } + + public ProcessChatJoinRequest(long chatId, long userId, boolean approve) { + this.chatId = chatId; + this.userId = userId; + this.approve = approve; + } + + public static final int CONSTRUCTOR = 1004876963; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class ProcessChatJoinRequests extends Function { + + public long chatId; + + public String inviteLink; + + public boolean approve; + + public ProcessChatJoinRequests() { + } + + public ProcessChatJoinRequests(long chatId, String inviteLink, boolean approve) { + this.chatId = chatId; + this.inviteLink = inviteLink; + this.approve = approve; + } + + public static final int CONSTRUCTOR = 1048722894; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class ProcessPushNotification extends Function { + + public String payload; + + public ProcessPushNotification() { + } + + public ProcessPushNotification(String payload) { + this.payload = payload; + } + + public static final int CONSTRUCTOR = 786679952; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class RateSpeechRecognition extends Function { + + public long chatId; + + public long messageId; + + public boolean isGood; + + public RateSpeechRecognition() { + } + + public RateSpeechRecognition(long chatId, long messageId, boolean isGood) { + this.chatId = chatId; + this.messageId = messageId; + this.isGood = isGood; + } + + public static final int CONSTRUCTOR = -287521867; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class ReadAllChatMentions extends Function { + + public long chatId; + + public ReadAllChatMentions() { + } + + public ReadAllChatMentions(long chatId) { + this.chatId = chatId; + } + + public static final int CONSTRUCTOR = 1357558453; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class ReadAllChatReactions extends Function { + + public long chatId; + + public ReadAllChatReactions() { + } + + public ReadAllChatReactions(long chatId) { + this.chatId = chatId; + } + + public static final int CONSTRUCTOR = 1421973357; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class ReadAllMessageThreadMentions extends Function { + + public long chatId; + + public long messageThreadId; + + public ReadAllMessageThreadMentions() { + } + + public ReadAllMessageThreadMentions(long chatId, long messageThreadId) { + this.chatId = chatId; + this.messageThreadId = messageThreadId; + } + + public static final int CONSTRUCTOR = 1323136341; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class ReadAllMessageThreadReactions extends Function { + + public long chatId; + + public long messageThreadId; + + public ReadAllMessageThreadReactions() { + } + + public ReadAllMessageThreadReactions(long chatId, long messageThreadId) { + this.chatId = chatId; + this.messageThreadId = messageThreadId; + } + + public static final int CONSTRUCTOR = -792975554; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class ReadChatList extends Function { + + public ChatList chatList; + + public ReadChatList() { + } + + public ReadChatList(ChatList chatList) { + this.chatList = chatList; + } + + public static final int CONSTRUCTOR = -1117480790; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class ReadFilePart extends Function { + + public int fileId; + + public long offset; + + public long count; + + public ReadFilePart() { + } + + public ReadFilePart(int fileId, long offset, long count) { + this.fileId = fileId; + this.offset = offset; + this.count = count; + } + + public static final int CONSTRUCTOR = 906798861; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class ReaddQuickReplyShortcutMessages extends Function { + + public String shortcutName; + + public long[] messageIds; + + public ReaddQuickReplyShortcutMessages() { + } + + public ReaddQuickReplyShortcutMessages(String shortcutName, long[] messageIds) { + this.shortcutName = shortcutName; + this.messageIds = messageIds; + } + + public static final int CONSTRUCTOR = 387399566; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class RecognizeSpeech extends Function { + + public long chatId; + + public long messageId; + + public RecognizeSpeech() { + } + + public RecognizeSpeech(long chatId, long messageId) { + this.chatId = chatId; + this.messageId = messageId; + } + + public static final int CONSTRUCTOR = 1741947577; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class RecoverAuthenticationPassword extends Function { + + public String recoveryCode; + + public String newPassword; + + public String newHint; + + public RecoverAuthenticationPassword() { + } + + public RecoverAuthenticationPassword(String recoveryCode, String newPassword, String newHint) { + this.recoveryCode = recoveryCode; + this.newPassword = newPassword; + this.newHint = newHint; + } + + public static final int CONSTRUCTOR = -131001053; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class RecoverPassword extends Function { + + public String recoveryCode; + + public String newPassword; + + public String newHint; + + public RecoverPassword() { + } + + public RecoverPassword(String recoveryCode, String newPassword, String newHint) { + this.recoveryCode = recoveryCode; + this.newPassword = newPassword; + this.newHint = newHint; + } + + public static final int CONSTRUCTOR = -1524262541; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class RefundStarPayment extends Function { + + public long userId; + + public String telegramPaymentChargeId; + + public RefundStarPayment() { + } + + public RefundStarPayment(long userId, String telegramPaymentChargeId) { + this.userId = userId; + this.telegramPaymentChargeId = telegramPaymentChargeId; + } + + public static final int CONSTRUCTOR = -1804165035; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class RegisterDevice extends Function { + + public DeviceToken deviceToken; + + public long[] otherUserIds; + + public RegisterDevice() { + } + + public RegisterDevice(DeviceToken deviceToken, long[] otherUserIds) { + this.deviceToken = deviceToken; + this.otherUserIds = otherUserIds; + } + + public static final int CONSTRUCTOR = 366088823; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class RegisterUser extends Function { + + public String firstName; + + public String lastName; + + public boolean disableNotification; + + public RegisterUser() { + } + + public RegisterUser(String firstName, String lastName, boolean disableNotification) { + this.firstName = firstName; + this.lastName = lastName; + this.disableNotification = disableNotification; + } + + public static final int CONSTRUCTOR = -1012247828; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class RemoveAllFilesFromDownloads extends Function { + + public boolean onlyActive; + + public boolean onlyCompleted; + + public boolean deleteFromCache; + + public RemoveAllFilesFromDownloads() { + } + + public RemoveAllFilesFromDownloads(boolean onlyActive, boolean onlyCompleted, boolean deleteFromCache) { + this.onlyActive = onlyActive; + this.onlyCompleted = onlyCompleted; + this.deleteFromCache = deleteFromCache; + } + + public static final int CONSTRUCTOR = -1186433402; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class RemoveBusinessConnectedBotFromChat extends Function { + + public long chatId; + + public RemoveBusinessConnectedBotFromChat() { + } + + public RemoveBusinessConnectedBotFromChat(long chatId) { + this.chatId = chatId; + } + + public static final int CONSTRUCTOR = 2020766707; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class RemoveChatActionBar extends Function { + + public long chatId; + + public RemoveChatActionBar() { + } + + public RemoveChatActionBar(long chatId) { + this.chatId = chatId; + } + + public static final int CONSTRUCTOR = -1650968070; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class RemoveContacts extends Function { + + public long[] userIds; + + public RemoveContacts() { + } + + public RemoveContacts(long[] userIds) { + this.userIds = userIds; + } + + public static final int CONSTRUCTOR = 1943858054; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class RemoveFavoriteSticker extends Function { + + public InputFile sticker; + + public RemoveFavoriteSticker() { + } + + public RemoveFavoriteSticker(InputFile sticker) { + this.sticker = sticker; + } + + public static final int CONSTRUCTOR = 1152945264; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class RemoveFileFromDownloads extends Function { + + public int fileId; + + public boolean deleteFromCache; + + public RemoveFileFromDownloads() { + } + + public RemoveFileFromDownloads(int fileId, boolean deleteFromCache) { + this.fileId = fileId; + this.deleteFromCache = deleteFromCache; + } + + public static final int CONSTRUCTOR = 1460060142; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class RemoveInstalledBackground extends Function { + + public long backgroundId; + + public RemoveInstalledBackground() { + } + + public RemoveInstalledBackground(long backgroundId) { + this.backgroundId = backgroundId; + } + + public static final int CONSTRUCTOR = 1346446652; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class RemoveMessageReaction extends Function { + + public long chatId; + + public long messageId; + + public ReactionType reactionType; + + public RemoveMessageReaction() { + } + + public RemoveMessageReaction(long chatId, long messageId, ReactionType reactionType) { + this.chatId = chatId; + this.messageId = messageId; + this.reactionType = reactionType; + } + + public static final int CONSTRUCTOR = -1756934789; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class RemoveNotification extends Function { + + public int notificationGroupId; + + public int notificationId; + + public RemoveNotification() { + } + + public RemoveNotification(int notificationGroupId, int notificationId) { + this.notificationGroupId = notificationGroupId; + this.notificationId = notificationId; + } + + public static final int CONSTRUCTOR = 862630734; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class RemoveNotificationGroup extends Function { + + public int notificationGroupId; + + public int maxNotificationId; + + public RemoveNotificationGroup() { + } + + public RemoveNotificationGroup(int notificationGroupId, int maxNotificationId) { + this.notificationGroupId = notificationGroupId; + this.maxNotificationId = maxNotificationId; + } + + public static final int CONSTRUCTOR = 1713005454; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class RemovePendingPaidMessageReactions extends Function { + + public long chatId; + + public long messageId; + + public RemovePendingPaidMessageReactions() { + } + + public RemovePendingPaidMessageReactions(long chatId, long messageId) { + this.chatId = chatId; + this.messageId = messageId; + } + + public static final int CONSTRUCTOR = 1100258555; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class RemoveProxy extends Function { + + public int proxyId; + + public RemoveProxy() { + } + + public RemoveProxy(int proxyId) { + this.proxyId = proxyId; + } + + public static final int CONSTRUCTOR = 1369219847; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class RemoveRecentHashtag extends Function { + + public String hashtag; + + public RemoveRecentHashtag() { + } + + public RemoveRecentHashtag(String hashtag) { + this.hashtag = hashtag; + } + + public static final int CONSTRUCTOR = -1013735260; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class RemoveRecentSticker extends Function { + + public boolean isAttached; + + public InputFile sticker; + + public RemoveRecentSticker() { + } + + public RemoveRecentSticker(boolean isAttached, InputFile sticker) { + this.isAttached = isAttached; + this.sticker = sticker; + } + + public static final int CONSTRUCTOR = 1246577677; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class RemoveRecentlyFoundChat extends Function { + + public long chatId; + + public RemoveRecentlyFoundChat() { + } + + public RemoveRecentlyFoundChat(long chatId) { + this.chatId = chatId; + } + + public static final int CONSTRUCTOR = 717340444; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class RemoveSavedAnimation extends Function { + + public InputFile animation; + + public RemoveSavedAnimation() { + } + + public RemoveSavedAnimation(InputFile animation) { + this.animation = animation; + } + + public static final int CONSTRUCTOR = -495605479; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class RemoveSavedNotificationSound extends Function { + + public long notificationSoundId; + + public RemoveSavedNotificationSound() { + } + + public RemoveSavedNotificationSound(long notificationSoundId) { + this.notificationSoundId = notificationSoundId; + } + + public static final int CONSTRUCTOR = -480032946; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class RemoveSearchedForTag extends Function { + + public String tag; + + public RemoveSearchedForTag() { + } + + public RemoveSearchedForTag(String tag) { + this.tag = tag; + } + + public static final int CONSTRUCTOR = 891382730; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class RemoveStickerFromSet extends Function { + + public InputFile sticker; + + public RemoveStickerFromSet() { + } + + public RemoveStickerFromSet(InputFile sticker) { + this.sticker = sticker; + } + + public static final int CONSTRUCTOR = 1642196644; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class RemoveTopChat extends Function { + + public TopChatCategory category; + + public long chatId; + + public RemoveTopChat() { + } + + public RemoveTopChat(TopChatCategory category, long chatId) { + this.category = category; + this.chatId = chatId; + } + + public static final int CONSTRUCTOR = -1907876267; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class ReorderActiveUsernames extends Function { + + public String[] usernames; + + public ReorderActiveUsernames() { + } + + public ReorderActiveUsernames(String[] usernames) { + this.usernames = usernames; + } + + public static final int CONSTRUCTOR = -455399375; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class ReorderBotActiveUsernames extends Function { + + public long botUserId; + + public String[] usernames; + + public ReorderBotActiveUsernames() { + } + + public ReorderBotActiveUsernames(long botUserId, String[] usernames) { + this.botUserId = botUserId; + this.usernames = usernames; + } + + public static final int CONSTRUCTOR = -1602301664; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class ReorderBotMediaPreviews extends Function { + + public long botUserId; + + public String languageCode; + + public int[] fileIds; + + public ReorderBotMediaPreviews() { + } + + public ReorderBotMediaPreviews(long botUserId, String languageCode, int[] fileIds) { + this.botUserId = botUserId; + this.languageCode = languageCode; + this.fileIds = fileIds; + } + + public static final int CONSTRUCTOR = 630851043; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class ReorderChatFolders extends Function { + + public int[] chatFolderIds; + + public int mainChatListPosition; + + public ReorderChatFolders() { + } + + public ReorderChatFolders(int[] chatFolderIds, int mainChatListPosition) { + this.chatFolderIds = chatFolderIds; + this.mainChatListPosition = mainChatListPosition; + } + + public static final int CONSTRUCTOR = 1665299546; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class ReorderInstalledStickerSets extends Function { + + public StickerType stickerType; + + public long[] stickerSetIds; + + public ReorderInstalledStickerSets() { + } + + public ReorderInstalledStickerSets(StickerType stickerType, long[] stickerSetIds) { + this.stickerType = stickerType; + this.stickerSetIds = stickerSetIds; + } + + public static final int CONSTRUCTOR = 1074928158; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class ReorderQuickReplyShortcuts extends Function { + + public int[] shortcutIds; + + public ReorderQuickReplyShortcuts() { + } + + public ReorderQuickReplyShortcuts(int[] shortcutIds) { + this.shortcutIds = shortcutIds; + } + + public static final int CONSTRUCTOR = -2052799232; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class ReorderSupergroupActiveUsernames extends Function { + + public long supergroupId; + + public String[] usernames; + + public ReorderSupergroupActiveUsernames() { + } + + public ReorderSupergroupActiveUsernames(long supergroupId, String[] usernames) { + this.supergroupId = supergroupId; + this.usernames = usernames; + } + + public static final int CONSTRUCTOR = -1962466095; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class ReplacePrimaryChatInviteLink extends Function { + + public long chatId; + + public ReplacePrimaryChatInviteLink() { + } + + public ReplacePrimaryChatInviteLink(long chatId) { + this.chatId = chatId; + } + + public static final int CONSTRUCTOR = 1067350941; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class ReplaceStickerInSet extends Function { + + public long userId; + + public String name; + + public InputFile oldSticker; + + public InputSticker newSticker; + + public ReplaceStickerInSet() { + } + + public ReplaceStickerInSet(long userId, String name, InputFile oldSticker, InputSticker newSticker) { + this.userId = userId; + this.name = name; + this.oldSticker = oldSticker; + this.newSticker = newSticker; + } + + public static final int CONSTRUCTOR = -406311399; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class ReplaceVideoChatRtmpUrl extends Function { + + public long chatId; + + public ReplaceVideoChatRtmpUrl() { + } + + public ReplaceVideoChatRtmpUrl(long chatId) { + this.chatId = chatId; + } + + public static final int CONSTRUCTOR = 558862304; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class ReportAuthenticationCodeMissing extends Function { + + public String mobileNetworkCode; + + public ReportAuthenticationCodeMissing() { + } + + public ReportAuthenticationCodeMissing(String mobileNetworkCode) { + this.mobileNetworkCode = mobileNetworkCode; + } + + public static final int CONSTRUCTOR = -1846555064; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class ReportChat extends Function { + + public long chatId; + + public byte[] optionId; + + public long[] messageIds; + + public String text; + + public ReportChat() { + } + + public ReportChat(long chatId, byte[] optionId, long[] messageIds, String text) { + this.chatId = chatId; + this.optionId = optionId; + this.messageIds = messageIds; + this.text = text; + } + + public static final int CONSTRUCTOR = 1058475058; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class ReportChatPhoto extends Function { + + public long chatId; + + public int fileId; + + public ReportReason reason; + + public String text; + + public ReportChatPhoto() { + } + + public ReportChatPhoto(long chatId, int fileId, ReportReason reason, String text) { + this.chatId = chatId; + this.fileId = fileId; + this.reason = reason; + this.text = text; + } + + public static final int CONSTRUCTOR = -646966648; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class ReportChatSponsoredMessage extends Function { + + public long chatId; + + public long messageId; + + public byte[] optionId; + + public ReportChatSponsoredMessage() { + } + + public ReportChatSponsoredMessage(long chatId, long messageId, byte[] optionId) { + this.chatId = chatId; + this.messageId = messageId; + this.optionId = optionId; + } + + public static final int CONSTRUCTOR = -868330562; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class ReportMessageReactions extends Function { + + public long chatId; + + public long messageId; + + public MessageSender senderId; + + public ReportMessageReactions() { + } + + public ReportMessageReactions(long chatId, long messageId, MessageSender senderId) { + this.chatId = chatId; + this.messageId = messageId; + this.senderId = senderId; + } + + public static final int CONSTRUCTOR = 919111719; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class ReportPhoneNumberCodeMissing extends Function { + + public String mobileNetworkCode; + + public ReportPhoneNumberCodeMissing() { + } + + public ReportPhoneNumberCodeMissing(String mobileNetworkCode) { + this.mobileNetworkCode = mobileNetworkCode; + } + + public static final int CONSTRUCTOR = -895175341; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class ReportStory extends Function { + + public long storySenderChatId; + + public int storyId; + + public byte[] optionId; + + public String text; + + public ReportStory() { + } + + public ReportStory(long storySenderChatId, int storyId, byte[] optionId, String text) { + this.storySenderChatId = storySenderChatId; + this.storyId = storyId; + this.optionId = optionId; + this.text = text; + } + + public static final int CONSTRUCTOR = 2027844368; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class ReportSupergroupAntiSpamFalsePositive extends Function { + + public long supergroupId; + + public long messageId; + + public ReportSupergroupAntiSpamFalsePositive() { + } + + public ReportSupergroupAntiSpamFalsePositive(long supergroupId, long messageId) { + this.supergroupId = supergroupId; + this.messageId = messageId; + } + + public static final int CONSTRUCTOR = -516050872; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class ReportSupergroupSpam extends Function { + + public long supergroupId; + + public long[] messageIds; + + public ReportSupergroupSpam() { + } + + public ReportSupergroupSpam(long supergroupId, long[] messageIds) { + this.supergroupId = supergroupId; + this.messageIds = messageIds; + } + + public static final int CONSTRUCTOR = -94825000; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class RequestAuthenticationPasswordRecovery extends Function { + public RequestAuthenticationPasswordRecovery() { + } + + public static final int CONSTRUCTOR = 1393896118; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class RequestPasswordRecovery extends Function { + public RequestPasswordRecovery() { + } + + public static final int CONSTRUCTOR = -13777582; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class RequestQrCodeAuthentication extends Function { + + public long[] otherUserIds; + + public RequestQrCodeAuthentication() { + } + + public RequestQrCodeAuthentication(long[] otherUserIds) { + this.otherUserIds = otherUserIds; + } + + public static final int CONSTRUCTOR = 1363496527; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class ResendAuthenticationCode extends Function { + + public ResendCodeReason reason; + + public ResendAuthenticationCode() { + } + + public ResendAuthenticationCode(ResendCodeReason reason) { + this.reason = reason; + } + + public static final int CONSTRUCTOR = -1506755656; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class ResendEmailAddressVerificationCode extends Function { + public ResendEmailAddressVerificationCode() { + } + + public static final int CONSTRUCTOR = -1872416732; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class ResendLoginEmailAddressCode extends Function { + public ResendLoginEmailAddressCode() { + } + + public static final int CONSTRUCTOR = 292966933; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class ResendMessages extends Function { + + public long chatId; + + public long[] messageIds; + + public InputTextQuote quote; + + public ResendMessages() { + } + + public ResendMessages(long chatId, long[] messageIds, InputTextQuote quote) { + this.chatId = chatId; + this.messageIds = messageIds; + this.quote = quote; + } + + public static final int CONSTRUCTOR = -2010327226; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class ResendPhoneNumberCode extends Function { + + public ResendCodeReason reason; + + public ResendPhoneNumberCode() { + } + + public ResendPhoneNumberCode(ResendCodeReason reason) { + this.reason = reason; + } + + public static final int CONSTRUCTOR = 1808704551; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class ResendRecoveryEmailAddressCode extends Function { + public ResendRecoveryEmailAddressCode() { + } + + public static final int CONSTRUCTOR = 433483548; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class ResetAllNotificationSettings extends Function { + public ResetAllNotificationSettings() { + } + + public static final int CONSTRUCTOR = -174020359; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class ResetAuthenticationEmailAddress extends Function { + public ResetAuthenticationEmailAddress() { + } + + public static final int CONSTRUCTOR = -415075796; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class ResetInstalledBackgrounds extends Function { + public ResetInstalledBackgrounds() { + } + + public static final int CONSTRUCTOR = 1884553559; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class ResetNetworkStatistics extends Function { + public ResetNetworkStatistics() { + } + + public static final int CONSTRUCTOR = 1646452102; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class ResetPassword extends Function { + public ResetPassword() { + } + + public static final int CONSTRUCTOR = -593589091; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class ReuseStarSubscription extends Function { + + public String subscriptionId; + + public ReuseStarSubscription() { + } + + public ReuseStarSubscription(String subscriptionId) { + this.subscriptionId = subscriptionId; + } + + public static final int CONSTRUCTOR = 778531905; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class RevokeChatInviteLink extends Function { + + public long chatId; + + public String inviteLink; + + public RevokeChatInviteLink() { + } + + public RevokeChatInviteLink(long chatId, String inviteLink) { + this.chatId = chatId; + this.inviteLink = inviteLink; + } + + public static final int CONSTRUCTOR = -776514135; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class RevokeGroupCallInviteLink extends Function { + + public int groupCallId; + + public RevokeGroupCallInviteLink() { + } + + public RevokeGroupCallInviteLink(int groupCallId) { + this.groupCallId = groupCallId; + } + + public static final int CONSTRUCTOR = 501589140; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class SaveApplicationLogEvent extends Function { + + public String type; + + public long chatId; + + public JsonValue data; + + public SaveApplicationLogEvent() { + } + + public SaveApplicationLogEvent(String type, long chatId, JsonValue data) { + this.type = type; + this.chatId = chatId; + this.data = data; + } + + public static final int CONSTRUCTOR = -811154930; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class SavePreparedInlineMessage extends Function { + + public long userId; + + public InputInlineQueryResult result; + + public TargetChatTypes chatTypes; + + public SavePreparedInlineMessage() { + } + + public SavePreparedInlineMessage(long userId, InputInlineQueryResult result, TargetChatTypes chatTypes) { + this.userId = userId; + this.result = result; + this.chatTypes = chatTypes; + } + + public static final int CONSTRUCTOR = -954963751; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class SearchAffiliatePrograms extends Function { + + public long chatId; + + public AffiliateProgramSortOrder sortOrder; + + public String offset; + + public int limit; + + public SearchAffiliatePrograms() { + } + + public SearchAffiliatePrograms(long chatId, AffiliateProgramSortOrder sortOrder, String offset, int limit) { + this.chatId = chatId; + this.sortOrder = sortOrder; + this.offset = offset; + this.limit = limit; + } + + public static final int CONSTRUCTOR = 1635555148; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class SearchBackground extends Function { + + public String name; + + public SearchBackground() { + } + + public SearchBackground(String name) { + this.name = name; + } + + public static final int CONSTRUCTOR = -2130996959; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class SearchCallMessages extends Function { + + public String offset; + + public int limit; + + public boolean onlyMissed; + + public SearchCallMessages() { + } + + public SearchCallMessages(String offset, int limit, boolean onlyMissed) { + this.offset = offset; + this.limit = limit; + this.onlyMissed = onlyMissed; + } + + public static final int CONSTRUCTOR = -1942229221; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class SearchChatAffiliateProgram extends Function { + + public String username; + + public String referrer; + + public SearchChatAffiliateProgram() { + } + + public SearchChatAffiliateProgram(String username, String referrer) { + this.username = username; + this.referrer = referrer; + } + + public static final int CONSTRUCTOR = -1339291206; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class SearchChatMembers extends Function { + + public long chatId; + + public String query; + + public int limit; + + public ChatMembersFilter filter; + + public SearchChatMembers() { + } + + public SearchChatMembers(long chatId, String query, int limit, ChatMembersFilter filter) { + this.chatId = chatId; + this.query = query; + this.limit = limit; + this.filter = filter; + } + + public static final int CONSTRUCTOR = -445823291; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class SearchChatMessages extends Function { + + public long chatId; + + public String query; + + public MessageSender senderId; + + public long fromMessageId; + + public int offset; + + public int limit; + + public SearchMessagesFilter filter; + + public long messageThreadId; + + public long savedMessagesTopicId; + + public SearchChatMessages() { + } + + public SearchChatMessages(long chatId, String query, MessageSender senderId, long fromMessageId, int offset, int limit, SearchMessagesFilter filter, long messageThreadId, long savedMessagesTopicId) { + this.chatId = chatId; + this.query = query; + this.senderId = senderId; + this.fromMessageId = fromMessageId; + this.offset = offset; + this.limit = limit; + this.filter = filter; + this.messageThreadId = messageThreadId; + this.savedMessagesTopicId = savedMessagesTopicId; + } + + public static final int CONSTRUCTOR = -539052602; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class SearchChatRecentLocationMessages extends Function { + + public long chatId; + + public int limit; + + public SearchChatRecentLocationMessages() { + } + + public SearchChatRecentLocationMessages(long chatId, int limit) { + this.chatId = chatId; + this.limit = limit; + } + + public static final int CONSTRUCTOR = 950238950; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class SearchChats extends Function { + + public String query; + + public int limit; + + public SearchChats() { + } + + public SearchChats(String query, int limit) { + this.query = query; + this.limit = limit; + } + + public static final int CONSTRUCTOR = -1879787060; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class SearchChatsOnServer extends Function { + + public String query; + + public int limit; + + public SearchChatsOnServer() { + } + + public SearchChatsOnServer(String query, int limit) { + this.query = query; + this.limit = limit; + } + + public static final int CONSTRUCTOR = -1158402188; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class SearchContacts extends Function { + + public String query; + + public int limit; + + public SearchContacts() { + } + + public SearchContacts(String query, int limit) { + this.query = query; + this.limit = limit; + } + + public static final int CONSTRUCTOR = -1794690715; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class SearchEmojis extends Function { + + public String text; + + public String[] inputLanguageCodes; + + public SearchEmojis() { + } + + public SearchEmojis(String text, String[] inputLanguageCodes) { + this.text = text; + this.inputLanguageCodes = inputLanguageCodes; + } + + public static final int CONSTRUCTOR = -1456187668; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class SearchFileDownloads extends Function { + + public String query; + + public boolean onlyActive; + + public boolean onlyCompleted; + + public String offset; + + public int limit; + + public SearchFileDownloads() { + } + + public SearchFileDownloads(String query, boolean onlyActive, boolean onlyCompleted, String offset, int limit) { + this.query = query; + this.onlyActive = onlyActive; + this.onlyCompleted = onlyCompleted; + this.offset = offset; + this.limit = limit; + } + + public static final int CONSTRUCTOR = 706611286; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class SearchHashtags extends Function { + + public String prefix; + + public int limit; + + public SearchHashtags() { + } + + public SearchHashtags(String prefix, int limit) { + this.prefix = prefix; + this.limit = limit; + } + + public static final int CONSTRUCTOR = 1043637617; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class SearchInstalledStickerSets extends Function { + + public StickerType stickerType; + + public String query; + + public int limit; + + public SearchInstalledStickerSets() { + } + + public SearchInstalledStickerSets(StickerType stickerType, String query, int limit) { + this.stickerType = stickerType; + this.query = query; + this.limit = limit; + } + + public static final int CONSTRUCTOR = 2120122276; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class SearchMessages extends Function { + + public ChatList chatList; + + public boolean onlyInChannels; + + public String query; + + public String offset; + + public int limit; + + public SearchMessagesFilter filter; + + public int minDate; + + public int maxDate; + + public SearchMessages() { + } + + public SearchMessages(ChatList chatList, boolean onlyInChannels, String query, String offset, int limit, SearchMessagesFilter filter, int minDate, int maxDate) { + this.chatList = chatList; + this.onlyInChannels = onlyInChannels; + this.query = query; + this.offset = offset; + this.limit = limit; + this.filter = filter; + this.minDate = minDate; + this.maxDate = maxDate; + } + + public static final int CONSTRUCTOR = 838452169; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class SearchOutgoingDocumentMessages extends Function { + + public String query; + + public int limit; + + public SearchOutgoingDocumentMessages() { + } + + public SearchOutgoingDocumentMessages(String query, int limit) { + this.query = query; + this.limit = limit; + } + + public static final int CONSTRUCTOR = -1071397762; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class SearchPublicChat extends Function { + + public String username; + + public SearchPublicChat() { + } + + public SearchPublicChat(String username) { + this.username = username; + } + + public static final int CONSTRUCTOR = 857135533; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class SearchPublicChats extends Function { + + public String query; + + public SearchPublicChats() { + } + + public SearchPublicChats(String query) { + this.query = query; + } + + public static final int CONSTRUCTOR = 970385337; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class SearchPublicMessagesByTag extends Function { + + public String tag; + + public String offset; + + public int limit; + + public SearchPublicMessagesByTag() { + } + + public SearchPublicMessagesByTag(String tag, String offset, int limit) { + this.tag = tag; + this.offset = offset; + this.limit = limit; + } + + public static final int CONSTRUCTOR = 630680746; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class SearchPublicStoriesByLocation extends Function { + + public LocationAddress address; + + public String offset; + + public int limit; + + public SearchPublicStoriesByLocation() { + } + + public SearchPublicStoriesByLocation(LocationAddress address, String offset, int limit) { + this.address = address; + this.offset = offset; + this.limit = limit; + } + + public static final int CONSTRUCTOR = 1596709256; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class SearchPublicStoriesByTag extends Function { + + public long storySenderChatId; + + public String tag; + + public String offset; + + public int limit; + + public SearchPublicStoriesByTag() { + } + + public SearchPublicStoriesByTag(long storySenderChatId, String tag, String offset, int limit) { + this.storySenderChatId = storySenderChatId; + this.tag = tag; + this.offset = offset; + this.limit = limit; + } + + public static final int CONSTRUCTOR = -1563792893; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class SearchPublicStoriesByVenue extends Function { + + public String venueProvider; + + public String venueId; + + public String offset; + + public int limit; + + public SearchPublicStoriesByVenue() { + } + + public SearchPublicStoriesByVenue(String venueProvider, String venueId, String offset, int limit) { + this.venueProvider = venueProvider; + this.venueId = venueId; + this.offset = offset; + this.limit = limit; + } + + public static final int CONSTRUCTOR = -686136790; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class SearchQuote extends Function { + + public FormattedText text; + + public FormattedText quote; + + public int quotePosition; + + public SearchQuote() { + } + + public SearchQuote(FormattedText text, FormattedText quote, int quotePosition) { + this.text = text; + this.quote = quote; + this.quotePosition = quotePosition; + } + + public static final int CONSTRUCTOR = 1751384351; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class SearchRecentlyFoundChats extends Function { + + public String query; + + public int limit; + + public SearchRecentlyFoundChats() { + } + + public SearchRecentlyFoundChats(String query, int limit) { + this.query = query; + this.limit = limit; + } + + public static final int CONSTRUCTOR = 1647445393; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class SearchSavedMessages extends Function { + + public long savedMessagesTopicId; + + public ReactionType tag; + + public String query; + + public long fromMessageId; + + public int offset; + + public int limit; + + public SearchSavedMessages() { + } + + public SearchSavedMessages(long savedMessagesTopicId, ReactionType tag, String query, long fromMessageId, int offset, int limit) { + this.savedMessagesTopicId = savedMessagesTopicId; + this.tag = tag; + this.query = query; + this.fromMessageId = fromMessageId; + this.offset = offset; + this.limit = limit; + } + + public static final int CONSTRUCTOR = -1969512554; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class SearchSecretMessages extends Function { + + public long chatId; + + public String query; + + public String offset; + + public int limit; + + public SearchMessagesFilter filter; + + public SearchSecretMessages() { + } + + public SearchSecretMessages(long chatId, String query, String offset, int limit, SearchMessagesFilter filter) { + this.chatId = chatId; + this.query = query; + this.offset = offset; + this.limit = limit; + this.filter = filter; + } + + public static final int CONSTRUCTOR = -852865892; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class SearchStickerSet extends Function { + + public String name; + + public boolean ignoreCache; + + public SearchStickerSet() { + } + + public SearchStickerSet(String name, boolean ignoreCache) { + this.name = name; + this.ignoreCache = ignoreCache; + } + + public static final int CONSTRUCTOR = 1676592898; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class SearchStickerSets extends Function { + + public StickerType stickerType; + + public String query; + + public SearchStickerSets() { + } + + public SearchStickerSets(StickerType stickerType, String query) { + this.stickerType = stickerType; + this.query = query; + } + + public static final int CONSTRUCTOR = 262801004; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class SearchStickers extends Function { + + public StickerType stickerType; + + public String emojis; + + public String query; + + public String[] inputLanguageCodes; + + public int offset; + + public int limit; + + public SearchStickers() { + } + + public SearchStickers(StickerType stickerType, String emojis, String query, String[] inputLanguageCodes, int offset, int limit) { + this.stickerType = stickerType; + this.emojis = emojis; + this.query = query; + this.inputLanguageCodes = inputLanguageCodes; + this.offset = offset; + this.limit = limit; + } + + public static final int CONSTRUCTOR = -1856294754; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class SearchStringsByPrefix extends Function { + + public String[] strings; + + public String query; + + public int limit; + + public boolean returnNoneForEmptyQuery; + + public SearchStringsByPrefix() { + } + + public SearchStringsByPrefix(String[] strings, String query, int limit, boolean returnNoneForEmptyQuery) { + this.strings = strings; + this.query = query; + this.limit = limit; + this.returnNoneForEmptyQuery = returnNoneForEmptyQuery; + } + + public static final int CONSTRUCTOR = -2023251463; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class SearchUserByPhoneNumber extends Function { + + public String phoneNumber; + + public boolean onlyLocal; + + public SearchUserByPhoneNumber() { + } + + public SearchUserByPhoneNumber(String phoneNumber, boolean onlyLocal) { + this.phoneNumber = phoneNumber; + this.onlyLocal = onlyLocal; + } + + public static final int CONSTRUCTOR = -343757368; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class SearchUserByToken extends Function { + + public String token; + + public SearchUserByToken() { + } + + public SearchUserByToken(String token) { + this.token = token; + } + + public static final int CONSTRUCTOR = -666766282; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class SearchWebApp extends Function { + + public long botUserId; + + public String webAppShortName; + + public SearchWebApp() { + } + + public SearchWebApp(long botUserId, String webAppShortName) { + this.botUserId = botUserId; + this.webAppShortName = webAppShortName; + } + + public static final int CONSTRUCTOR = -1241740747; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class SellGift extends Function { + + public long senderUserId; + + public long messageId; + + public SellGift() { + } + + public SellGift(long senderUserId, long messageId) { + this.senderUserId = senderUserId; + this.messageId = messageId; + } + + public static final int CONSTRUCTOR = 1729857716; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class SendAuthenticationFirebaseSms extends Function { + + public String token; + + public SendAuthenticationFirebaseSms() { + } + + public SendAuthenticationFirebaseSms(String token) { + this.token = token; + } + + public static final int CONSTRUCTOR = 364994111; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class SendBotStartMessage extends Function { + + public long botUserId; + + public long chatId; + + public String parameter; + + public SendBotStartMessage() { + } + + public SendBotStartMessage(long botUserId, long chatId, String parameter) { + this.botUserId = botUserId; + this.chatId = chatId; + this.parameter = parameter; + } + + public static final int CONSTRUCTOR = -1435877650; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class SendBusinessMessage extends Function { + + public String businessConnectionId; + + public long chatId; + + public InputMessageReplyTo replyTo; + + public boolean disableNotification; + + public boolean protectContent; + + public long effectId; + + public ReplyMarkup replyMarkup; + + public InputMessageContent inputMessageContent; + + public SendBusinessMessage() { + } + + public SendBusinessMessage(String businessConnectionId, long chatId, InputMessageReplyTo replyTo, boolean disableNotification, boolean protectContent, long effectId, ReplyMarkup replyMarkup, InputMessageContent inputMessageContent) { + this.businessConnectionId = businessConnectionId; + this.chatId = chatId; + this.replyTo = replyTo; + this.disableNotification = disableNotification; + this.protectContent = protectContent; + this.effectId = effectId; + this.replyMarkup = replyMarkup; + this.inputMessageContent = inputMessageContent; + } + + public static final int CONSTRUCTOR = 159888387; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class SendBusinessMessageAlbum extends Function { + + public String businessConnectionId; + + public long chatId; + + public InputMessageReplyTo replyTo; + + public boolean disableNotification; + + public boolean protectContent; + + public long effectId; + + public InputMessageContent[] inputMessageContents; + + public SendBusinessMessageAlbum() { + } + + public SendBusinessMessageAlbum(String businessConnectionId, long chatId, InputMessageReplyTo replyTo, boolean disableNotification, boolean protectContent, long effectId, InputMessageContent[] inputMessageContents) { + this.businessConnectionId = businessConnectionId; + this.chatId = chatId; + this.replyTo = replyTo; + this.disableNotification = disableNotification; + this.protectContent = protectContent; + this.effectId = effectId; + this.inputMessageContents = inputMessageContents; + } + + public static final int CONSTRUCTOR = 788608366; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class SendCallDebugInformation extends Function { + + public int callId; + + public String debugInformation; + + public SendCallDebugInformation() { + } + + public SendCallDebugInformation(int callId, String debugInformation) { + this.callId = callId; + this.debugInformation = debugInformation; + } + + public static final int CONSTRUCTOR = 2019243839; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class SendCallLog extends Function { + + public int callId; + + public InputFile logFile; + + public SendCallLog() { + } + + public SendCallLog(int callId, InputFile logFile) { + this.callId = callId; + this.logFile = logFile; + } + + public static final int CONSTRUCTOR = 1057638353; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class SendCallRating extends Function { + + public int callId; + + public int rating; + + public String comment; + + public CallProblem[] problems; + + public SendCallRating() { + } + + public SendCallRating(int callId, int rating, String comment, CallProblem[] problems) { + this.callId = callId; + this.rating = rating; + this.comment = comment; + this.problems = problems; + } + + public static final int CONSTRUCTOR = -1402719502; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class SendCallSignalingData extends Function { + + public int callId; + + public byte[] data; + + public SendCallSignalingData() { + } + + public SendCallSignalingData(int callId, byte[] data) { + this.callId = callId; + this.data = data; + } + + public static final int CONSTRUCTOR = 1412280732; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class SendChatAction extends Function { + + public long chatId; + + public long messageThreadId; + + public String businessConnectionId; + + public ChatAction action; + + public SendChatAction() { + } + + public SendChatAction(long chatId, long messageThreadId, String businessConnectionId, ChatAction action) { + this.chatId = chatId; + this.messageThreadId = messageThreadId; + this.businessConnectionId = businessConnectionId; + this.action = action; + } + + public static final int CONSTRUCTOR = -2010910050; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class SendCustomRequest extends Function { + + public String method; + + public String parameters; + + public SendCustomRequest() { + } + + public SendCustomRequest(String method, String parameters) { + this.method = method; + this.parameters = parameters; + } + + public static final int CONSTRUCTOR = 285045153; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class SendEmailAddressVerificationCode extends Function { + + public String emailAddress; + + public SendEmailAddressVerificationCode() { + } + + public SendEmailAddressVerificationCode(String emailAddress) { + this.emailAddress = emailAddress; + } + + public static final int CONSTRUCTOR = -221621379; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class SendGift extends Function { + + public long giftId; + + public long userId; + + public FormattedText text; + + public boolean isPrivate; + + public SendGift() { + } + + public SendGift(long giftId, long userId, FormattedText text, boolean isPrivate) { + this.giftId = giftId; + this.userId = userId; + this.text = text; + this.isPrivate = isPrivate; + } + + public static final int CONSTRUCTOR = 852064621; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class SendInlineQueryResultMessage extends Function { + + public long chatId; + + public long messageThreadId; + + public InputMessageReplyTo replyTo; + + public MessageSendOptions options; + + public long queryId; + + public String resultId; + + public boolean hideViaBot; + + public SendInlineQueryResultMessage() { + } + + public SendInlineQueryResultMessage(long chatId, long messageThreadId, InputMessageReplyTo replyTo, MessageSendOptions options, long queryId, String resultId, boolean hideViaBot) { + this.chatId = chatId; + this.messageThreadId = messageThreadId; + this.replyTo = replyTo; + this.options = options; + this.queryId = queryId; + this.resultId = resultId; + this.hideViaBot = hideViaBot; + } + + public static final int CONSTRUCTOR = 1182553208; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class SendMessage extends Function { + + public long chatId; + + public long messageThreadId; + + public InputMessageReplyTo replyTo; + + public MessageSendOptions options; + + public ReplyMarkup replyMarkup; + + public InputMessageContent inputMessageContent; + + public SendMessage() { + } + + public SendMessage(long chatId, long messageThreadId, InputMessageReplyTo replyTo, MessageSendOptions options, ReplyMarkup replyMarkup, InputMessageContent inputMessageContent) { + this.chatId = chatId; + this.messageThreadId = messageThreadId; + this.replyTo = replyTo; + this.options = options; + this.replyMarkup = replyMarkup; + this.inputMessageContent = inputMessageContent; + } + + public static final int CONSTRUCTOR = -533921303; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class SendMessageAlbum extends Function { + + public long chatId; + + public long messageThreadId; + + public InputMessageReplyTo replyTo; + + public MessageSendOptions options; + + public InputMessageContent[] inputMessageContents; + + public SendMessageAlbum() { + } + + public SendMessageAlbum(long chatId, long messageThreadId, InputMessageReplyTo replyTo, MessageSendOptions options, InputMessageContent[] inputMessageContents) { + this.chatId = chatId; + this.messageThreadId = messageThreadId; + this.replyTo = replyTo; + this.options = options; + this.inputMessageContents = inputMessageContents; + } + + public static final int CONSTRUCTOR = -1985013029; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class SendPassportAuthorizationForm extends Function { + + public int authorizationFormId; + + public PassportElementType[] types; + + public SendPassportAuthorizationForm() { + } + + public SendPassportAuthorizationForm(int authorizationFormId, PassportElementType[] types) { + this.authorizationFormId = authorizationFormId; + this.types = types; + } + + public static final int CONSTRUCTOR = 652160701; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class SendPaymentForm extends Function { + + public InputInvoice inputInvoice; + + public long paymentFormId; + + public String orderInfoId; + + public String shippingOptionId; + + public InputCredentials credentials; + + public long tipAmount; + + public SendPaymentForm() { + } + + public SendPaymentForm(InputInvoice inputInvoice, long paymentFormId, String orderInfoId, String shippingOptionId, InputCredentials credentials, long tipAmount) { + this.inputInvoice = inputInvoice; + this.paymentFormId = paymentFormId; + this.orderInfoId = orderInfoId; + this.shippingOptionId = shippingOptionId; + this.credentials = credentials; + this.tipAmount = tipAmount; + } + + public static final int CONSTRUCTOR = -965855094; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class SendPhoneNumberCode extends Function { + + public String phoneNumber; + + public PhoneNumberAuthenticationSettings settings; + + public PhoneNumberCodeType type; + + public SendPhoneNumberCode() { + } + + public SendPhoneNumberCode(String phoneNumber, PhoneNumberAuthenticationSettings settings, PhoneNumberCodeType type) { + this.phoneNumber = phoneNumber; + this.settings = settings; + this.type = type; + } + + public static final int CONSTRUCTOR = 1084112144; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class SendPhoneNumberFirebaseSms extends Function { + + public String token; + + public SendPhoneNumberFirebaseSms() { + } + + public SendPhoneNumberFirebaseSms(String token) { + this.token = token; + } + + public static final int CONSTRUCTOR = 261910660; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class SendQuickReplyShortcutMessages extends Function { + + public long chatId; + + public int shortcutId; + + public int sendingId; + + public SendQuickReplyShortcutMessages() { + } + + public SendQuickReplyShortcutMessages(long chatId, int shortcutId, int sendingId) { + this.chatId = chatId; + this.shortcutId = shortcutId; + this.sendingId = sendingId; + } + + public static final int CONSTRUCTOR = 232068765; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class SendStory extends Function { + + public long chatId; + + public InputStoryContent content; + + public InputStoryAreas areas; + + public FormattedText caption; + + public StoryPrivacySettings privacySettings; + + public int activePeriod; + + public StoryFullId fromStoryFullId; + + public boolean isPostedToChatPage; + + public boolean protectContent; + + public SendStory() { + } + + public SendStory(long chatId, InputStoryContent content, InputStoryAreas areas, FormattedText caption, StoryPrivacySettings privacySettings, int activePeriod, StoryFullId fromStoryFullId, boolean isPostedToChatPage, boolean protectContent) { + this.chatId = chatId; + this.content = content; + this.areas = areas; + this.caption = caption; + this.privacySettings = privacySettings; + this.activePeriod = activePeriod; + this.fromStoryFullId = fromStoryFullId; + this.isPostedToChatPage = isPostedToChatPage; + this.protectContent = protectContent; + } + + public static final int CONSTRUCTOR = -424987902; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class SendWebAppCustomRequest extends Function { + + public long botUserId; + + public String method; + + public String parameters; + + public SendWebAppCustomRequest() { + } + + public SendWebAppCustomRequest(long botUserId, String method, String parameters) { + this.botUserId = botUserId; + this.method = method; + this.parameters = parameters; + } + + public static final int CONSTRUCTOR = 922705352; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class SendWebAppData extends Function { + + public long botUserId; + + public String buttonText; + + public String data; + + public SendWebAppData() { + } + + public SendWebAppData(long botUserId, String buttonText, String data) { + this.botUserId = botUserId; + this.buttonText = buttonText; + this.data = data; + } + + public static final int CONSTRUCTOR = -1423978996; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class SetAccentColor extends Function { + + public int accentColorId; + + public long backgroundCustomEmojiId; + + public SetAccentColor() { + } + + public SetAccentColor(int accentColorId, long backgroundCustomEmojiId) { + this.accentColorId = accentColorId; + this.backgroundCustomEmojiId = backgroundCustomEmojiId; + } + + public static final int CONSTRUCTOR = 1669974841; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class SetAccountTtl extends Function { + + public AccountTtl ttl; + + public SetAccountTtl() { + } + + public SetAccountTtl(AccountTtl ttl) { + this.ttl = ttl; + } + + public static final int CONSTRUCTOR = 701389032; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class SetAlarm extends Function { + + public double seconds; + + public SetAlarm() { + } + + public SetAlarm(double seconds) { + this.seconds = seconds; + } + + public static final int CONSTRUCTOR = -873497067; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class SetApplicationVerificationToken extends Function { + + public long verificationId; + + public String token; + + public SetApplicationVerificationToken() { + } + + public SetApplicationVerificationToken(long verificationId, String token) { + this.verificationId = verificationId; + this.token = token; + } + + public static final int CONSTRUCTOR = 927248261; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class SetArchiveChatListSettings extends Function { + + public ArchiveChatListSettings settings; + + public SetArchiveChatListSettings() { + } + + public SetArchiveChatListSettings(ArchiveChatListSettings settings) { + this.settings = settings; + } + + public static final int CONSTRUCTOR = -884650998; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class SetAuthenticationEmailAddress extends Function { + + public String emailAddress; + + public SetAuthenticationEmailAddress() { + } + + public SetAuthenticationEmailAddress(String emailAddress) { + this.emailAddress = emailAddress; + } + + public static final int CONSTRUCTOR = 1773323522; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class SetAuthenticationPhoneNumber extends Function { + + public String phoneNumber; + + public PhoneNumberAuthenticationSettings settings; + + public SetAuthenticationPhoneNumber() { + } + + public SetAuthenticationPhoneNumber(String phoneNumber, PhoneNumberAuthenticationSettings settings) { + this.phoneNumber = phoneNumber; + this.settings = settings; + } + + public static final int CONSTRUCTOR = 868276259; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class SetAutoDownloadSettings extends Function { + + public AutoDownloadSettings settings; + + public NetworkType type; + + public SetAutoDownloadSettings() { + } + + public SetAutoDownloadSettings(AutoDownloadSettings settings, NetworkType type) { + this.settings = settings; + this.type = type; + } + + public static final int CONSTRUCTOR = -353671948; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class SetAutosaveSettings extends Function { + + public AutosaveSettingsScope scope; + + public ScopeAutosaveSettings settings; + + public SetAutosaveSettings() { + } + + public SetAutosaveSettings(AutosaveSettingsScope scope, ScopeAutosaveSettings settings) { + this.scope = scope; + this.settings = settings; + } + + public static final int CONSTRUCTOR = 6846656; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class SetBio extends Function { + + public String bio; + + public SetBio() { + } + + public SetBio(String bio) { + this.bio = bio; + } + + public static final int CONSTRUCTOR = -1619582124; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class SetBirthdate extends Function { + + public Birthdate birthdate; + + public SetBirthdate() { + } + + public SetBirthdate(Birthdate birthdate) { + this.birthdate = birthdate; + } + + public static final int CONSTRUCTOR = 1319755160; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class SetBotInfoDescription extends Function { + + public long botUserId; + + public String languageCode; + + public String description; + + public SetBotInfoDescription() { + } + + public SetBotInfoDescription(long botUserId, String languageCode, String description) { + this.botUserId = botUserId; + this.languageCode = languageCode; + this.description = description; + } + + public static final int CONSTRUCTOR = 693574984; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class SetBotInfoShortDescription extends Function { + + public long botUserId; + + public String languageCode; + + public String shortDescription; + + public SetBotInfoShortDescription() { + } + + public SetBotInfoShortDescription(long botUserId, String languageCode, String shortDescription) { + this.botUserId = botUserId; + this.languageCode = languageCode; + this.shortDescription = shortDescription; + } + + public static final int CONSTRUCTOR = 982956771; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class SetBotName extends Function { + + public long botUserId; + + public String languageCode; + + public String name; + + public SetBotName() { + } + + public SetBotName(long botUserId, String languageCode, String name) { + this.botUserId = botUserId; + this.languageCode = languageCode; + this.name = name; + } + + public static final int CONSTRUCTOR = -761922959; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class SetBotProfilePhoto extends Function { + + public long botUserId; + + public InputChatPhoto photo; + + public SetBotProfilePhoto() { + } + + public SetBotProfilePhoto(long botUserId, InputChatPhoto photo) { + this.botUserId = botUserId; + this.photo = photo; + } + + public static final int CONSTRUCTOR = -1115272346; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class SetBotUpdatesStatus extends Function { + + public int pendingUpdateCount; + + public String errorMessage; + + public SetBotUpdatesStatus() { + } + + public SetBotUpdatesStatus(int pendingUpdateCount, String errorMessage) { + this.pendingUpdateCount = pendingUpdateCount; + this.errorMessage = errorMessage; + } + + public static final int CONSTRUCTOR = -1154926191; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class SetBusinessAwayMessageSettings extends Function { + + public BusinessAwayMessageSettings awayMessageSettings; + + public SetBusinessAwayMessageSettings() { + } + + public SetBusinessAwayMessageSettings(BusinessAwayMessageSettings awayMessageSettings) { + this.awayMessageSettings = awayMessageSettings; + } + + public static final int CONSTRUCTOR = 1232357484; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class SetBusinessConnectedBot extends Function { + + public BusinessConnectedBot bot; + + public SetBusinessConnectedBot() { + } + + public SetBusinessConnectedBot(BusinessConnectedBot bot) { + this.bot = bot; + } + + public static final int CONSTRUCTOR = -1393459472; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class SetBusinessGreetingMessageSettings extends Function { + + public BusinessGreetingMessageSettings greetingMessageSettings; + + public SetBusinessGreetingMessageSettings() { + } + + public SetBusinessGreetingMessageSettings(BusinessGreetingMessageSettings greetingMessageSettings) { + this.greetingMessageSettings = greetingMessageSettings; + } + + public static final int CONSTRUCTOR = -873120707; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class SetBusinessLocation extends Function { + + public BusinessLocation location; + + public SetBusinessLocation() { + } + + public SetBusinessLocation(BusinessLocation location) { + this.location = location; + } + + public static final int CONSTRUCTOR = -344717547; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class SetBusinessMessageIsPinned extends Function { + + public String businessConnectionId; + + public long chatId; + + public long messageId; + + public boolean isPinned; + + public SetBusinessMessageIsPinned() { + } + + public SetBusinessMessageIsPinned(String businessConnectionId, long chatId, long messageId, boolean isPinned) { + this.businessConnectionId = businessConnectionId; + this.chatId = chatId; + this.messageId = messageId; + this.isPinned = isPinned; + } + + public static final int CONSTRUCTOR = -15403536; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class SetBusinessOpeningHours extends Function { + + public BusinessOpeningHours openingHours; + + public SetBusinessOpeningHours() { + } + + public SetBusinessOpeningHours(BusinessOpeningHours openingHours) { + this.openingHours = openingHours; + } + + public static final int CONSTRUCTOR = -462379918; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class SetBusinessStartPage extends Function { + + public InputBusinessStartPage startPage; + + public SetBusinessStartPage() { + } + + public SetBusinessStartPage(InputBusinessStartPage startPage) { + this.startPage = startPage; + } + + public static final int CONSTRUCTOR = -1628616290; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class SetChatAccentColor extends Function { + + public long chatId; + + public int accentColorId; + + public long backgroundCustomEmojiId; + + public SetChatAccentColor() { + } + + public SetChatAccentColor(long chatId, int accentColorId, long backgroundCustomEmojiId) { + this.chatId = chatId; + this.accentColorId = accentColorId; + this.backgroundCustomEmojiId = backgroundCustomEmojiId; + } + + public static final int CONSTRUCTOR = 882857930; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class SetChatActiveStoriesList extends Function { + + public long chatId; + + public StoryList storyList; + + public SetChatActiveStoriesList() { + } + + public SetChatActiveStoriesList(long chatId, StoryList storyList) { + this.chatId = chatId; + this.storyList = storyList; + } + + public static final int CONSTRUCTOR = -521970415; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class SetChatAffiliateProgram extends Function { + + public long chatId; + + public AffiliateProgramParameters parameters; + + public SetChatAffiliateProgram() { + } + + public SetChatAffiliateProgram(long chatId, AffiliateProgramParameters parameters) { + this.chatId = chatId; + this.parameters = parameters; + } + + public static final int CONSTRUCTOR = 14680631; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class SetChatAvailableReactions extends Function { + + public long chatId; + + public ChatAvailableReactions availableReactions; + + public SetChatAvailableReactions() { + } + + public SetChatAvailableReactions(long chatId, ChatAvailableReactions availableReactions) { + this.chatId = chatId; + this.availableReactions = availableReactions; + } + + public static final int CONSTRUCTOR = 267075078; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class SetChatBackground extends Function { + + public long chatId; + + public InputBackground background; + + public BackgroundType type; + + public int darkThemeDimming; + + public boolean onlyForSelf; + + public SetChatBackground() { + } + + public SetChatBackground(long chatId, InputBackground background, BackgroundType type, int darkThemeDimming, boolean onlyForSelf) { + this.chatId = chatId; + this.background = background; + this.type = type; + this.darkThemeDimming = darkThemeDimming; + this.onlyForSelf = onlyForSelf; + } + + public static final int CONSTRUCTOR = 246727678; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class SetChatClientData extends Function { + + public long chatId; + + public String clientData; + + public SetChatClientData() { + } + + public SetChatClientData(long chatId, String clientData) { + this.chatId = chatId; + this.clientData = clientData; + } + + public static final int CONSTRUCTOR = -827119811; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class SetChatDescription extends Function { + + public long chatId; + + public String description; + + public SetChatDescription() { + } + + public SetChatDescription(long chatId, String description) { + this.chatId = chatId; + this.description = description; + } + + public static final int CONSTRUCTOR = 1957213277; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class SetChatDiscussionGroup extends Function { + + public long chatId; + + public long discussionChatId; + + public SetChatDiscussionGroup() { + } + + public SetChatDiscussionGroup(long chatId, long discussionChatId) { + this.chatId = chatId; + this.discussionChatId = discussionChatId; + } + + public static final int CONSTRUCTOR = -918801736; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class SetChatDraftMessage extends Function { + + public long chatId; + + public long messageThreadId; + + public DraftMessage draftMessage; + + public SetChatDraftMessage() { + } + + public SetChatDraftMessage(long chatId, long messageThreadId, DraftMessage draftMessage) { + this.chatId = chatId; + this.messageThreadId = messageThreadId; + this.draftMessage = draftMessage; + } + + public static final int CONSTRUCTOR = 1683889946; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class SetChatEmojiStatus extends Function { + + public long chatId; + + public EmojiStatus emojiStatus; + + public SetChatEmojiStatus() { + } + + public SetChatEmojiStatus(long chatId, EmojiStatus emojiStatus) { + this.chatId = chatId; + this.emojiStatus = emojiStatus; + } + + public static final int CONSTRUCTOR = 1434982674; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class SetChatLocation extends Function { + + public long chatId; + + public ChatLocation location; + + public SetChatLocation() { + } + + public SetChatLocation(long chatId, ChatLocation location) { + this.chatId = chatId; + this.location = location; + } + + public static final int CONSTRUCTOR = -767091286; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class SetChatMemberStatus extends Function { + + public long chatId; + + public MessageSender memberId; + + public ChatMemberStatus status; + + public SetChatMemberStatus() { + } + + public SetChatMemberStatus(long chatId, MessageSender memberId, ChatMemberStatus status) { + this.chatId = chatId; + this.memberId = memberId; + this.status = status; + } + + public static final int CONSTRUCTOR = 81794847; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class SetChatMessageAutoDeleteTime extends Function { + + public long chatId; + + public int messageAutoDeleteTime; + + public SetChatMessageAutoDeleteTime() { + } + + public SetChatMessageAutoDeleteTime(long chatId, int messageAutoDeleteTime) { + this.chatId = chatId; + this.messageAutoDeleteTime = messageAutoDeleteTime; + } + + public static final int CONSTRUCTOR = -1505643265; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class SetChatMessageSender extends Function { + + public long chatId; + + public MessageSender messageSenderId; + + public SetChatMessageSender() { + } + + public SetChatMessageSender(long chatId, MessageSender messageSenderId) { + this.chatId = chatId; + this.messageSenderId = messageSenderId; + } + + public static final int CONSTRUCTOR = -1421513858; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class SetChatNotificationSettings extends Function { + + public long chatId; + + public ChatNotificationSettings notificationSettings; + + public SetChatNotificationSettings() { + } + + public SetChatNotificationSettings(long chatId, ChatNotificationSettings notificationSettings) { + this.chatId = chatId; + this.notificationSettings = notificationSettings; + } + + public static final int CONSTRUCTOR = 777199614; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class SetChatPermissions extends Function { + + public long chatId; + + public ChatPermissions permissions; + + public SetChatPermissions() { + } + + public SetChatPermissions(long chatId, ChatPermissions permissions) { + this.chatId = chatId; + this.permissions = permissions; + } + + public static final int CONSTRUCTOR = 2138507006; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class SetChatPhoto extends Function { + + public long chatId; + + public InputChatPhoto photo; + + public SetChatPhoto() { + } + + public SetChatPhoto(long chatId, InputChatPhoto photo) { + this.chatId = chatId; + this.photo = photo; + } + + public static final int CONSTRUCTOR = -377778941; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class SetChatPinnedStories extends Function { + + public long chatId; + + public int[] storyIds; + + public SetChatPinnedStories() { + } + + public SetChatPinnedStories(long chatId, int[] storyIds) { + this.chatId = chatId; + this.storyIds = storyIds; + } + + public static final int CONSTRUCTOR = -669062355; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class SetChatProfileAccentColor extends Function { + + public long chatId; + + public int profileAccentColorId; + + public long profileBackgroundCustomEmojiId; + + public SetChatProfileAccentColor() { + } + + public SetChatProfileAccentColor(long chatId, int profileAccentColorId, long profileBackgroundCustomEmojiId) { + this.chatId = chatId; + this.profileAccentColorId = profileAccentColorId; + this.profileBackgroundCustomEmojiId = profileBackgroundCustomEmojiId; + } + + public static final int CONSTRUCTOR = 1109896826; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class SetChatSlowModeDelay extends Function { + + public long chatId; + + public int slowModeDelay; + + public SetChatSlowModeDelay() { + } + + public SetChatSlowModeDelay(long chatId, int slowModeDelay) { + this.chatId = chatId; + this.slowModeDelay = slowModeDelay; + } + + public static final int CONSTRUCTOR = -540350914; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class SetChatTheme extends Function { + + public long chatId; + + public String themeName; + + public SetChatTheme() { + } + + public SetChatTheme(long chatId, String themeName) { + this.chatId = chatId; + this.themeName = themeName; + } + + public static final int CONSTRUCTOR = -1895234925; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class SetChatTitle extends Function { + + public long chatId; + + public String title; + + public SetChatTitle() { + } + + public SetChatTitle(long chatId, String title) { + this.chatId = chatId; + this.title = title; + } + + public static final int CONSTRUCTOR = 164282047; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class SetCloseFriends extends Function { + + public long[] userIds; + + public SetCloseFriends() { + } + + public SetCloseFriends(long[] userIds) { + this.userIds = userIds; + } + + public static final int CONSTRUCTOR = -1908013258; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class SetCommands extends Function { + + public BotCommandScope scope; + + public String languageCode; + + public BotCommand[] commands; + + public SetCommands() { + } + + public SetCommands(BotCommandScope scope, String languageCode, BotCommand[] commands) { + this.scope = scope; + this.languageCode = languageCode; + this.commands = commands; + } + + public static final int CONSTRUCTOR = -907165606; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class SetCustomEmojiStickerSetThumbnail extends Function { + + public String name; + + public long customEmojiId; + + public SetCustomEmojiStickerSetThumbnail() { + } + + public SetCustomEmojiStickerSetThumbnail(String name, long customEmojiId) { + this.name = name; + this.customEmojiId = customEmojiId; + } + + public static final int CONSTRUCTOR = -1122836246; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class SetCustomLanguagePack extends Function { + + public LanguagePackInfo info; + + public LanguagePackString[] strings; + + public SetCustomLanguagePack() { + } + + public SetCustomLanguagePack(LanguagePackInfo info, LanguagePackString[] strings) { + this.info = info; + this.strings = strings; + } + + public static final int CONSTRUCTOR = -296742819; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class SetCustomLanguagePackString extends Function { + + public String languagePackId; + + public LanguagePackString newString; + + public SetCustomLanguagePackString() { + } + + public SetCustomLanguagePackString(String languagePackId, LanguagePackString newString) { + this.languagePackId = languagePackId; + this.newString = newString; + } + + public static final int CONSTRUCTOR = 1316365592; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class SetDatabaseEncryptionKey extends Function { + + public byte[] newEncryptionKey; + + public SetDatabaseEncryptionKey() { + } + + public SetDatabaseEncryptionKey(byte[] newEncryptionKey) { + this.newEncryptionKey = newEncryptionKey; + } + + public static final int CONSTRUCTOR = -1204599371; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class SetDefaultBackground extends Function { + + public InputBackground background; + + public BackgroundType type; + + public boolean forDarkTheme; + + public SetDefaultBackground() { + } + + public SetDefaultBackground(InputBackground background, BackgroundType type, boolean forDarkTheme) { + this.background = background; + this.type = type; + this.forDarkTheme = forDarkTheme; + } + + public static final int CONSTRUCTOR = -1982748511; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class SetDefaultChannelAdministratorRights extends Function { + + public ChatAdministratorRights defaultChannelAdministratorRights; + + public SetDefaultChannelAdministratorRights() { + } + + public SetDefaultChannelAdministratorRights(ChatAdministratorRights defaultChannelAdministratorRights) { + this.defaultChannelAdministratorRights = defaultChannelAdministratorRights; + } + + public static final int CONSTRUCTOR = -234004967; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class SetDefaultGroupAdministratorRights extends Function { + + public ChatAdministratorRights defaultGroupAdministratorRights; + + public SetDefaultGroupAdministratorRights() { + } + + public SetDefaultGroupAdministratorRights(ChatAdministratorRights defaultGroupAdministratorRights) { + this.defaultGroupAdministratorRights = defaultGroupAdministratorRights; + } + + public static final int CONSTRUCTOR = 1700231016; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class SetDefaultMessageAutoDeleteTime extends Function { + + public MessageAutoDeleteTime messageAutoDeleteTime; + + public SetDefaultMessageAutoDeleteTime() { + } + + public SetDefaultMessageAutoDeleteTime(MessageAutoDeleteTime messageAutoDeleteTime) { + this.messageAutoDeleteTime = messageAutoDeleteTime; + } + + public static final int CONSTRUCTOR = -1772301460; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class SetDefaultReactionType extends Function { + + public ReactionType reactionType; + + public SetDefaultReactionType() { + } + + public SetDefaultReactionType(ReactionType reactionType) { + this.reactionType = reactionType; + } + + public static final int CONSTRUCTOR = 1694730813; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class SetEmojiStatus extends Function { + + public EmojiStatus emojiStatus; + + public SetEmojiStatus() { + } + + public SetEmojiStatus(EmojiStatus emojiStatus) { + this.emojiStatus = emojiStatus; + } + + public static final int CONSTRUCTOR = -1829224867; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class SetFileGenerationProgress extends Function { + + public long generationId; + + public long expectedSize; + + public long localPrefixSize; + + public SetFileGenerationProgress() { + } + + public SetFileGenerationProgress(long generationId, long expectedSize, long localPrefixSize) { + this.generationId = generationId; + this.expectedSize = expectedSize; + this.localPrefixSize = localPrefixSize; + } + + public static final int CONSTRUCTOR = 1836403518; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class SetForumTopicNotificationSettings extends Function { + + public long chatId; + + public long messageThreadId; + + public ChatNotificationSettings notificationSettings; + + public SetForumTopicNotificationSettings() { + } + + public SetForumTopicNotificationSettings(long chatId, long messageThreadId, ChatNotificationSettings notificationSettings) { + this.chatId = chatId; + this.messageThreadId = messageThreadId; + this.notificationSettings = notificationSettings; + } + + public static final int CONSTRUCTOR = 524498023; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class SetGameScore extends Function { + + public long chatId; + + public long messageId; + + public boolean editMessage; + + public long userId; + + public int score; + + public boolean force; + + public SetGameScore() { + } + + public SetGameScore(long chatId, long messageId, boolean editMessage, long userId, int score, boolean force) { + this.chatId = chatId; + this.messageId = messageId; + this.editMessage = editMessage; + this.userId = userId; + this.score = score; + this.force = force; + } + + public static final int CONSTRUCTOR = 2127359430; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class SetGroupCallParticipantIsSpeaking extends Function { + + public int groupCallId; + + public int audioSource; + + public boolean isSpeaking; + + public SetGroupCallParticipantIsSpeaking() { + } + + public SetGroupCallParticipantIsSpeaking(int groupCallId, int audioSource, boolean isSpeaking) { + this.groupCallId = groupCallId; + this.audioSource = audioSource; + this.isSpeaking = isSpeaking; + } + + public static final int CONSTRUCTOR = 927506917; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class SetGroupCallParticipantVolumeLevel extends Function { + + public int groupCallId; + + public MessageSender participantId; + + public int volumeLevel; + + public SetGroupCallParticipantVolumeLevel() { + } + + public SetGroupCallParticipantVolumeLevel(int groupCallId, MessageSender participantId, int volumeLevel) { + this.groupCallId = groupCallId; + this.participantId = participantId; + this.volumeLevel = volumeLevel; + } + + public static final int CONSTRUCTOR = -1753769944; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class SetGroupCallTitle extends Function { + + public int groupCallId; + + public String title; + + public SetGroupCallTitle() { + } + + public SetGroupCallTitle(int groupCallId, String title) { + this.groupCallId = groupCallId; + this.title = title; + } + + public static final int CONSTRUCTOR = -1228825139; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class SetInactiveSessionTtl extends Function { + + public int inactiveSessionTtlDays; + + public SetInactiveSessionTtl() { + } + + public SetInactiveSessionTtl(int inactiveSessionTtlDays) { + this.inactiveSessionTtlDays = inactiveSessionTtlDays; + } + + public static final int CONSTRUCTOR = 1570548048; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class SetInlineGameScore extends Function { + + public String inlineMessageId; + + public boolean editMessage; + + public long userId; + + public int score; + + public boolean force; + + public SetInlineGameScore() { + } + + public SetInlineGameScore(String inlineMessageId, boolean editMessage, long userId, int score, boolean force) { + this.inlineMessageId = inlineMessageId; + this.editMessage = editMessage; + this.userId = userId; + this.score = score; + this.force = force; + } + + public static final int CONSTRUCTOR = -948871797; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class SetLogStream extends Function { + + public LogStream logStream; + + public SetLogStream() { + } + + public SetLogStream(LogStream logStream) { + this.logStream = logStream; + } + + public static final int CONSTRUCTOR = -1364199535; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class SetLogTagVerbosityLevel extends Function { + + public String tag; + + public int newVerbosityLevel; + + public SetLogTagVerbosityLevel() { + } + + public SetLogTagVerbosityLevel(String tag, int newVerbosityLevel) { + this.tag = tag; + this.newVerbosityLevel = newVerbosityLevel; + } + + public static final int CONSTRUCTOR = -2095589738; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class SetLogVerbosityLevel extends Function { + + public int newVerbosityLevel; + + public SetLogVerbosityLevel() { + } + + public SetLogVerbosityLevel(int newVerbosityLevel) { + this.newVerbosityLevel = newVerbosityLevel; + } + + public static final int CONSTRUCTOR = -303429678; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class SetLoginEmailAddress extends Function { + + public String newLoginEmailAddress; + + public SetLoginEmailAddress() { + } + + public SetLoginEmailAddress(String newLoginEmailAddress) { + this.newLoginEmailAddress = newLoginEmailAddress; + } + + public static final int CONSTRUCTOR = 935019476; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class SetMenuButton extends Function { + + public long userId; + + public BotMenuButton menuButton; + + public SetMenuButton() { + } + + public SetMenuButton(long userId, BotMenuButton menuButton) { + this.userId = userId; + this.menuButton = menuButton; + } + + public static final int CONSTRUCTOR = -1269841599; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class SetMessageFactCheck extends Function { + + public long chatId; + + public long messageId; + + public FormattedText text; + + public SetMessageFactCheck() { + } + + public SetMessageFactCheck(long chatId, long messageId, FormattedText text) { + this.chatId = chatId; + this.messageId = messageId; + this.text = text; + } + + public static final int CONSTRUCTOR = -4309752; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class SetMessageReactions extends Function { + + public long chatId; + + public long messageId; + + public ReactionType[] reactionTypes; + + public boolean isBig; + + public SetMessageReactions() { + } + + public SetMessageReactions(long chatId, long messageId, ReactionType[] reactionTypes, boolean isBig) { + this.chatId = chatId; + this.messageId = messageId; + this.reactionTypes = reactionTypes; + this.isBig = isBig; + } + + public static final int CONSTRUCTOR = -372524900; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class SetMessageSenderBlockList extends Function { + + public MessageSender senderId; + + public BlockList blockList; + + public SetMessageSenderBlockList() { + } + + public SetMessageSenderBlockList(MessageSender senderId, BlockList blockList) { + this.senderId = senderId; + this.blockList = blockList; + } + + public static final int CONSTRUCTOR = -1987355503; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class SetName extends Function { + + public String firstName; + + public String lastName; + + public SetName() { + } + + public SetName(String firstName, String lastName) { + this.firstName = firstName; + this.lastName = lastName; + } + + public static final int CONSTRUCTOR = 1711693584; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class SetNetworkType extends Function { + + public NetworkType type; + + public SetNetworkType() { + } + + public SetNetworkType(NetworkType type) { + this.type = type; + } + + public static final int CONSTRUCTOR = -701635234; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class SetNewChatPrivacySettings extends Function { + + public NewChatPrivacySettings settings; + + public SetNewChatPrivacySettings() { + } + + public SetNewChatPrivacySettings(NewChatPrivacySettings settings) { + this.settings = settings; + } + + public static final int CONSTRUCTOR = 1774139215; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class SetOption extends Function { + + public String name; + + public OptionValue value; + + public SetOption() { + } + + public SetOption(String name, OptionValue value) { + this.name = name; + this.value = value; + } + + public static final int CONSTRUCTOR = 2114670322; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class SetPassportElement extends Function { + + public InputPassportElement element; + + public String password; + + public SetPassportElement() { + } + + public SetPassportElement(InputPassportElement element, String password) { + this.element = element; + this.password = password; + } + + public static final int CONSTRUCTOR = 2068173212; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class SetPassportElementErrors extends Function { + + public long userId; + + public InputPassportElementError[] errors; + + public SetPassportElementErrors() { + } + + public SetPassportElementErrors(long userId, InputPassportElementError[] errors) { + this.userId = userId; + this.errors = errors; + } + + public static final int CONSTRUCTOR = -2056754881; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class SetPassword extends Function { + + public String oldPassword; + + public String newPassword; + + public String newHint; + + public boolean setRecoveryEmailAddress; + + public String newRecoveryEmailAddress; + + public SetPassword() { + } + + public SetPassword(String oldPassword, String newPassword, String newHint, boolean setRecoveryEmailAddress, String newRecoveryEmailAddress) { + this.oldPassword = oldPassword; + this.newPassword = newPassword; + this.newHint = newHint; + this.setRecoveryEmailAddress = setRecoveryEmailAddress; + this.newRecoveryEmailAddress = newRecoveryEmailAddress; + } + + public static final int CONSTRUCTOR = -1193589027; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class SetPersonalChat extends Function { + + public long chatId; + + public SetPersonalChat() { + } + + public SetPersonalChat(long chatId) { + this.chatId = chatId; + } + + public static final int CONSTRUCTOR = -1068782668; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class SetPinnedChats extends Function { + + public ChatList chatList; + + public long[] chatIds; + + public SetPinnedChats() { + } + + public SetPinnedChats(ChatList chatList, long[] chatIds) { + this.chatList = chatList; + this.chatIds = chatIds; + } + + public static final int CONSTRUCTOR = -695640000; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class SetPinnedForumTopics extends Function { + + public long chatId; + + public long[] messageThreadIds; + + public SetPinnedForumTopics() { + } + + public SetPinnedForumTopics(long chatId, long[] messageThreadIds) { + this.chatId = chatId; + this.messageThreadIds = messageThreadIds; + } + + public static final int CONSTRUCTOR = -475084011; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class SetPinnedSavedMessagesTopics extends Function { + + public long[] savedMessagesTopicIds; + + public SetPinnedSavedMessagesTopics() { + } + + public SetPinnedSavedMessagesTopics(long[] savedMessagesTopicIds) { + this.savedMessagesTopicIds = savedMessagesTopicIds; + } + + public static final int CONSTRUCTOR = -194818924; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class SetPollAnswer extends Function { + + public long chatId; + + public long messageId; + + public int[] optionIds; + + public SetPollAnswer() { + } + + public SetPollAnswer(long chatId, long messageId, int[] optionIds) { + this.chatId = chatId; + this.messageId = messageId; + this.optionIds = optionIds; + } + + public static final int CONSTRUCTOR = -1399388792; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class SetProfileAccentColor extends Function { + + public int profileAccentColorId; + + public long profileBackgroundCustomEmojiId; + + public SetProfileAccentColor() { + } + + public SetProfileAccentColor(int profileAccentColorId, long profileBackgroundCustomEmojiId) { + this.profileAccentColorId = profileAccentColorId; + this.profileBackgroundCustomEmojiId = profileBackgroundCustomEmojiId; + } + + public static final int CONSTRUCTOR = -1986281112; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class SetProfilePhoto extends Function { + + public InputChatPhoto photo; + + public boolean isPublic; + + public SetProfilePhoto() { + } + + public SetProfilePhoto(InputChatPhoto photo, boolean isPublic) { + this.photo = photo; + this.isPublic = isPublic; + } + + public static final int CONSTRUCTOR = -2048260627; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class SetQuickReplyShortcutName extends Function { + + public int shortcutId; + + public String name; + + public SetQuickReplyShortcutName() { + } + + public SetQuickReplyShortcutName(int shortcutId, String name) { + this.shortcutId = shortcutId; + this.name = name; + } + + public static final int CONSTRUCTOR = 186709105; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class SetReactionNotificationSettings extends Function { + + public ReactionNotificationSettings notificationSettings; + + public SetReactionNotificationSettings() { + } + + public SetReactionNotificationSettings(ReactionNotificationSettings notificationSettings) { + this.notificationSettings = notificationSettings; + } + + public static final int CONSTRUCTOR = 1186124949; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class SetReadDatePrivacySettings extends Function { + + public ReadDatePrivacySettings settings; + + public SetReadDatePrivacySettings() { + } + + public SetReadDatePrivacySettings(ReadDatePrivacySettings settings) { + this.settings = settings; + } + + public static final int CONSTRUCTOR = 493913782; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class SetRecoveryEmailAddress extends Function { + + public String password; + + public String newRecoveryEmailAddress; + + public SetRecoveryEmailAddress() { + } + + public SetRecoveryEmailAddress(String password, String newRecoveryEmailAddress) { + this.password = password; + this.newRecoveryEmailAddress = newRecoveryEmailAddress; + } + + public static final int CONSTRUCTOR = -1981836385; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class SetSavedMessagesTagLabel extends Function { + + public ReactionType tag; + + public String label; + + public SetSavedMessagesTagLabel() { + } + + public SetSavedMessagesTagLabel(ReactionType tag, String label) { + this.tag = tag; + this.label = label; + } + + public static final int CONSTRUCTOR = -1338323696; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class SetScopeNotificationSettings extends Function { + + public NotificationSettingsScope scope; + + public ScopeNotificationSettings notificationSettings; + + public SetScopeNotificationSettings() { + } + + public SetScopeNotificationSettings(NotificationSettingsScope scope, ScopeNotificationSettings notificationSettings) { + this.scope = scope; + this.notificationSettings = notificationSettings; + } + + public static final int CONSTRUCTOR = -2049984966; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class SetStickerEmojis extends Function { + + public InputFile sticker; + + public String emojis; + + public SetStickerEmojis() { + } + + public SetStickerEmojis(InputFile sticker, String emojis) { + this.sticker = sticker; + this.emojis = emojis; + } + + public static final int CONSTRUCTOR = -638843855; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class SetStickerKeywords extends Function { + + public InputFile sticker; + + public String[] keywords; + + public SetStickerKeywords() { + } + + public SetStickerKeywords(InputFile sticker, String[] keywords) { + this.sticker = sticker; + this.keywords = keywords; + } + + public static final int CONSTRUCTOR = 137223565; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class SetStickerMaskPosition extends Function { + + public InputFile sticker; + + public MaskPosition maskPosition; + + public SetStickerMaskPosition() { + } + + public SetStickerMaskPosition(InputFile sticker, MaskPosition maskPosition) { + this.sticker = sticker; + this.maskPosition = maskPosition; + } + + public static final int CONSTRUCTOR = 1202280912; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class SetStickerPositionInSet extends Function { + + public InputFile sticker; + + public int position; + + public SetStickerPositionInSet() { + } + + public SetStickerPositionInSet(InputFile sticker, int position) { + this.sticker = sticker; + this.position = position; + } + + public static final int CONSTRUCTOR = 2075281185; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class SetStickerSetThumbnail extends Function { + + public long userId; + + public String name; + + public InputFile thumbnail; + + public StickerFormat format; + + public SetStickerSetThumbnail() { + } + + public SetStickerSetThumbnail(long userId, String name, InputFile thumbnail, StickerFormat format) { + this.userId = userId; + this.name = name; + this.thumbnail = thumbnail; + this.format = format; + } + + public static final int CONSTRUCTOR = 1677617458; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class SetStickerSetTitle extends Function { + + public String name; + + public String title; + + public SetStickerSetTitle() { + } + + public SetStickerSetTitle(String name, String title) { + this.name = name; + this.title = title; + } + + public static final int CONSTRUCTOR = 1693004706; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class SetStoryPrivacySettings extends Function { + + public int storyId; + + public StoryPrivacySettings privacySettings; + + public SetStoryPrivacySettings() { + } + + public SetStoryPrivacySettings(int storyId, StoryPrivacySettings privacySettings) { + this.storyId = storyId; + this.privacySettings = privacySettings; + } + + public static final int CONSTRUCTOR = -655801550; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class SetStoryReaction extends Function { + + public long storySenderChatId; + + public int storyId; + + public ReactionType reactionType; + + public boolean updateRecentReactions; + + public SetStoryReaction() { + } + + public SetStoryReaction(long storySenderChatId, int storyId, ReactionType reactionType, boolean updateRecentReactions) { + this.storySenderChatId = storySenderChatId; + this.storyId = storyId; + this.reactionType = reactionType; + this.updateRecentReactions = updateRecentReactions; + } + + public static final int CONSTRUCTOR = -1400156249; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class SetSupergroupCustomEmojiStickerSet extends Function { + + public long supergroupId; + + public long customEmojiStickerSetId; + + public SetSupergroupCustomEmojiStickerSet() { + } + + public SetSupergroupCustomEmojiStickerSet(long supergroupId, long customEmojiStickerSetId) { + this.supergroupId = supergroupId; + this.customEmojiStickerSetId = customEmojiStickerSetId; + } + + public static final int CONSTRUCTOR = 1328894639; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class SetSupergroupStickerSet extends Function { + + public long supergroupId; + + public long stickerSetId; + + public SetSupergroupStickerSet() { + } + + public SetSupergroupStickerSet(long supergroupId, long stickerSetId) { + this.supergroupId = supergroupId; + this.stickerSetId = stickerSetId; + } + + public static final int CONSTRUCTOR = -2056344215; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class SetSupergroupUnrestrictBoostCount extends Function { + + public long supergroupId; + + public int unrestrictBoostCount; + + public SetSupergroupUnrestrictBoostCount() { + } + + public SetSupergroupUnrestrictBoostCount(long supergroupId, int unrestrictBoostCount) { + this.supergroupId = supergroupId; + this.unrestrictBoostCount = unrestrictBoostCount; + } + + public static final int CONSTRUCTOR = 969814179; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class SetSupergroupUsername extends Function { + + public long supergroupId; + + public String username; + + public SetSupergroupUsername() { + } + + public SetSupergroupUsername(long supergroupId, String username) { + this.supergroupId = supergroupId; + this.username = username; + } + + public static final int CONSTRUCTOR = 1346325252; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class SetTdlibParameters extends Function { + + public boolean useTestDc; + + public String databaseDirectory; + + public String filesDirectory; + + public byte[] databaseEncryptionKey; + + public boolean useFileDatabase; + + public boolean useChatInfoDatabase; + + public boolean useMessageDatabase; + + public boolean useSecretChats; + + public int apiId; + + public String apiHash; + + public String systemLanguageCode; + + public String deviceModel; + + public String systemVersion; + + public String applicationVersion; + + public SetTdlibParameters() { + } + + public SetTdlibParameters(boolean useTestDc, String databaseDirectory, String filesDirectory, byte[] databaseEncryptionKey, boolean useFileDatabase, boolean useChatInfoDatabase, boolean useMessageDatabase, boolean useSecretChats, int apiId, String apiHash, String systemLanguageCode, String deviceModel, String systemVersion, String applicationVersion) { + this.useTestDc = useTestDc; + this.databaseDirectory = databaseDirectory; + this.filesDirectory = filesDirectory; + this.databaseEncryptionKey = databaseEncryptionKey; + this.useFileDatabase = useFileDatabase; + this.useChatInfoDatabase = useChatInfoDatabase; + this.useMessageDatabase = useMessageDatabase; + this.useSecretChats = useSecretChats; + this.apiId = apiId; + this.apiHash = apiHash; + this.systemLanguageCode = systemLanguageCode; + this.deviceModel = deviceModel; + this.systemVersion = systemVersion; + this.applicationVersion = applicationVersion; + } + + public static final int CONSTRUCTOR = -775883218; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class SetUserEmojiStatus extends Function { + + public long userId; + + public EmojiStatus emojiStatus; + + public SetUserEmojiStatus() { + } + + public SetUserEmojiStatus(long userId, EmojiStatus emojiStatus) { + this.userId = userId; + this.emojiStatus = emojiStatus; + } + + public static final int CONSTRUCTOR = -451519541; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class SetUserPersonalProfilePhoto extends Function { + + public long userId; + + public InputChatPhoto photo; + + public SetUserPersonalProfilePhoto() { + } + + public SetUserPersonalProfilePhoto(long userId, InputChatPhoto photo) { + this.userId = userId; + this.photo = photo; + } + + public static final int CONSTRUCTOR = 464136438; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class SetUserPrivacySettingRules extends Function { + + public UserPrivacySetting setting; + + public UserPrivacySettingRules rules; + + public SetUserPrivacySettingRules() { + } + + public SetUserPrivacySettingRules(UserPrivacySetting setting, UserPrivacySettingRules rules) { + this.setting = setting; + this.rules = rules; + } + + public static final int CONSTRUCTOR = -473812741; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class SetUserSupportInfo extends Function { + + public long userId; + + public FormattedText message; + + public SetUserSupportInfo() { + } + + public SetUserSupportInfo(long userId, FormattedText message) { + this.userId = userId; + this.message = message; + } + + public static final int CONSTRUCTOR = -2088986621; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class SetUsername extends Function { + + public String username; + + public SetUsername() { + } + + public SetUsername(String username) { + this.username = username; + } + + public static final int CONSTRUCTOR = 439901214; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class SetVideoChatDefaultParticipant extends Function { + + public long chatId; + + public MessageSender defaultParticipantId; + + public SetVideoChatDefaultParticipant() { + } + + public SetVideoChatDefaultParticipant(long chatId, MessageSender defaultParticipantId) { + this.chatId = chatId; + this.defaultParticipantId = defaultParticipantId; + } + + public static final int CONSTRUCTOR = -240749901; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class ShareChatWithBot extends Function { + + public long chatId; + + public long messageId; + + public int buttonId; + + public long sharedChatId; + + public boolean onlyCheck; + + public ShareChatWithBot() { + } + + public ShareChatWithBot(long chatId, long messageId, int buttonId, long sharedChatId, boolean onlyCheck) { + this.chatId = chatId; + this.messageId = messageId; + this.buttonId = buttonId; + this.sharedChatId = sharedChatId; + this.onlyCheck = onlyCheck; + } + + public static final int CONSTRUCTOR = -1504507166; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class SharePhoneNumber extends Function { + + public long userId; + + public SharePhoneNumber() { + } + + public SharePhoneNumber(long userId) { + this.userId = userId; + } + + public static final int CONSTRUCTOR = 1097130069; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class ShareUsersWithBot extends Function { + + public long chatId; + + public long messageId; + + public int buttonId; + + public long[] sharedUserIds; + + public boolean onlyCheck; + + public ShareUsersWithBot() { + } + + public ShareUsersWithBot(long chatId, long messageId, int buttonId, long[] sharedUserIds, boolean onlyCheck) { + this.chatId = chatId; + this.messageId = messageId; + this.buttonId = buttonId; + this.sharedUserIds = sharedUserIds; + this.onlyCheck = onlyCheck; + } + + public static final int CONSTRUCTOR = -1574608333; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class StartGroupCallRecording extends Function { + + public int groupCallId; + + public String title; + + public boolean recordVideo; + + public boolean usePortraitOrientation; + + public StartGroupCallRecording() { + } + + public StartGroupCallRecording(int groupCallId, String title, boolean recordVideo, boolean usePortraitOrientation) { + this.groupCallId = groupCallId; + this.title = title; + this.recordVideo = recordVideo; + this.usePortraitOrientation = usePortraitOrientation; + } + + public static final int CONSTRUCTOR = 1757774971; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class StartGroupCallScreenSharing extends Function { + + public int groupCallId; + + public int audioSourceId; + + public String payload; + + public StartGroupCallScreenSharing() { + } + + public StartGroupCallScreenSharing(int groupCallId, int audioSourceId, String payload) { + this.groupCallId = groupCallId; + this.audioSourceId = audioSourceId; + this.payload = payload; + } + + public static final int CONSTRUCTOR = -884068051; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class StartScheduledGroupCall extends Function { + + public int groupCallId; + + public StartScheduledGroupCall() { + } + + public StartScheduledGroupCall(int groupCallId) { + this.groupCallId = groupCallId; + } + + public static final int CONSTRUCTOR = 1519938838; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class StopBusinessPoll extends Function { + + public String businessConnectionId; + + public long chatId; + + public long messageId; + + public ReplyMarkup replyMarkup; + + public StopBusinessPoll() { + } + + public StopBusinessPoll(String businessConnectionId, long chatId, long messageId, ReplyMarkup replyMarkup) { + this.businessConnectionId = businessConnectionId; + this.chatId = chatId; + this.messageId = messageId; + this.replyMarkup = replyMarkup; + } + + public static final int CONSTRUCTOR = -1142218400; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class StopPoll extends Function { + + public long chatId; + + public long messageId; + + public ReplyMarkup replyMarkup; + + public StopPoll() { + } + + public StopPoll(long chatId, long messageId, ReplyMarkup replyMarkup) { + this.chatId = chatId; + this.messageId = messageId; + this.replyMarkup = replyMarkup; + } + + public static final int CONSTRUCTOR = 1659374253; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class SuggestUserProfilePhoto extends Function { + + public long userId; + + public InputChatPhoto photo; + + public SuggestUserProfilePhoto() { + } + + public SuggestUserProfilePhoto(long userId, InputChatPhoto photo) { + this.userId = userId; + this.photo = photo; + } + + public static final int CONSTRUCTOR = -1788742557; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class SynchronizeLanguagePack extends Function { + + public String languagePackId; + + public SynchronizeLanguagePack() { + } + + public SynchronizeLanguagePack(String languagePackId) { + this.languagePackId = languagePackId; + } + + public static final int CONSTRUCTOR = -2065307858; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class TerminateAllOtherSessions extends Function { + public TerminateAllOtherSessions() { + } + + public static final int CONSTRUCTOR = 1874485523; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class TerminateSession extends Function { + + public long sessionId; + + public TerminateSession() { + } + + public TerminateSession(long sessionId) { + this.sessionId = sessionId; + } + + public static final int CONSTRUCTOR = -407385812; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class TestCallBytes extends Function { + + public byte[] x; + + public TestCallBytes() { + } + + public TestCallBytes(byte[] x) { + this.x = x; + } + + public static final int CONSTRUCTOR = -736011607; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class TestCallEmpty extends Function { + public TestCallEmpty() { + } + + public static final int CONSTRUCTOR = -627291626; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class TestCallString extends Function { + + public String x; + + public TestCallString() { + } + + public TestCallString(String x) { + this.x = x; + } + + public static final int CONSTRUCTOR = -1732818385; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class TestCallVectorInt extends Function { + + public int[] x; + + public TestCallVectorInt() { + } + + public TestCallVectorInt(int[] x) { + this.x = x; + } + + public static final int CONSTRUCTOR = -2137277793; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class TestCallVectorIntObject extends Function { + + public TestInt[] x; + + public TestCallVectorIntObject() { + } + + public TestCallVectorIntObject(TestInt[] x) { + this.x = x; + } + + public static final int CONSTRUCTOR = 1825428218; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class TestCallVectorString extends Function { + + public String[] x; + + public TestCallVectorString() { + } + + public TestCallVectorString(String[] x) { + this.x = x; + } + + public static final int CONSTRUCTOR = -408600900; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class TestCallVectorStringObject extends Function { + + public TestString[] x; + + public TestCallVectorStringObject() { + } + + public TestCallVectorStringObject(TestString[] x) { + this.x = x; + } + + public static final int CONSTRUCTOR = 1527666429; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class TestGetDifference extends Function { + public TestGetDifference() { + } + + public static final int CONSTRUCTOR = 1747084069; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class TestNetwork extends Function { + public TestNetwork() { + } + + public static final int CONSTRUCTOR = -1343998901; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class TestProxy extends Function { + + public String server; + + public int port; + + public ProxyType type; + + public int dcId; + + public double timeout; + + public TestProxy() { + } + + public TestProxy(String server, int port, ProxyType type, int dcId, double timeout) { + this.server = server; + this.port = port; + this.type = type; + this.dcId = dcId; + this.timeout = timeout; + } + + public static final int CONSTRUCTOR = -1197366626; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class TestReturnError extends Function { + + public Error error; + + public TestReturnError() { + } + + public TestReturnError(Error error) { + this.error = error; + } + + public static final int CONSTRUCTOR = 455179506; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class TestSquareInt extends Function { + + public int x; + + public TestSquareInt() { + } + + public TestSquareInt(int x) { + this.x = x; + } + + public static final int CONSTRUCTOR = -60135024; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class TestUseUpdate extends Function { + public TestUseUpdate() { + } + + public static final int CONSTRUCTOR = 717094686; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class ToggleAllDownloadsArePaused extends Function { + + public boolean arePaused; + + public ToggleAllDownloadsArePaused() { + } + + public ToggleAllDownloadsArePaused(boolean arePaused) { + this.arePaused = arePaused; + } + + public static final int CONSTRUCTOR = 1251512322; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class ToggleBotCanManageEmojiStatus extends Function { + + public long botUserId; + + public boolean canManageEmojiStatus; + + public ToggleBotCanManageEmojiStatus() { + } + + public ToggleBotCanManageEmojiStatus(long botUserId, boolean canManageEmojiStatus) { + this.botUserId = botUserId; + this.canManageEmojiStatus = canManageEmojiStatus; + } + + public static final int CONSTRUCTOR = 622495770; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class ToggleBotIsAddedToAttachmentMenu extends Function { + + public long botUserId; + + public boolean isAdded; + + public boolean allowWriteAccess; + + public ToggleBotIsAddedToAttachmentMenu() { + } + + public ToggleBotIsAddedToAttachmentMenu(long botUserId, boolean isAdded, boolean allowWriteAccess) { + this.botUserId = botUserId; + this.isAdded = isAdded; + this.allowWriteAccess = allowWriteAccess; + } + + public static final int CONSTRUCTOR = -1906712934; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class ToggleBotUsernameIsActive extends Function { + + public long botUserId; + + public String username; + + public boolean isActive; + + public ToggleBotUsernameIsActive() { + } + + public ToggleBotUsernameIsActive(long botUserId, String username, boolean isActive) { + this.botUserId = botUserId; + this.username = username; + this.isActive = isActive; + } + + public static final int CONSTRUCTOR = 2036569097; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class ToggleBusinessConnectedBotChatIsPaused extends Function { + + public long chatId; + + public boolean isPaused; + + public ToggleBusinessConnectedBotChatIsPaused() { + } + + public ToggleBusinessConnectedBotChatIsPaused(long chatId, boolean isPaused) { + this.chatId = chatId; + this.isPaused = isPaused; + } + + public static final int CONSTRUCTOR = 1328957509; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class ToggleChatDefaultDisableNotification extends Function { + + public long chatId; + + public boolean defaultDisableNotification; + + public ToggleChatDefaultDisableNotification() { + } + + public ToggleChatDefaultDisableNotification(long chatId, boolean defaultDisableNotification) { + this.chatId = chatId; + this.defaultDisableNotification = defaultDisableNotification; + } + + public static final int CONSTRUCTOR = 314794002; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class ToggleChatFolderTags extends Function { + + public boolean areTagsEnabled; + + public ToggleChatFolderTags() { + } + + public ToggleChatFolderTags(boolean areTagsEnabled) { + this.areTagsEnabled = areTagsEnabled; + } + + public static final int CONSTRUCTOR = -2092209084; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class ToggleChatHasProtectedContent extends Function { + + public long chatId; + + public boolean hasProtectedContent; + + public ToggleChatHasProtectedContent() { + } + + public ToggleChatHasProtectedContent(long chatId, boolean hasProtectedContent) { + this.chatId = chatId; + this.hasProtectedContent = hasProtectedContent; + } + + public static final int CONSTRUCTOR = 975231309; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class ToggleChatIsMarkedAsUnread extends Function { + + public long chatId; + + public boolean isMarkedAsUnread; + + public ToggleChatIsMarkedAsUnread() { + } + + public ToggleChatIsMarkedAsUnread(long chatId, boolean isMarkedAsUnread) { + this.chatId = chatId; + this.isMarkedAsUnread = isMarkedAsUnread; + } + + public static final int CONSTRUCTOR = -986129697; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class ToggleChatIsPinned extends Function { + + public ChatList chatList; + + public long chatId; + + public boolean isPinned; + + public ToggleChatIsPinned() { + } + + public ToggleChatIsPinned(ChatList chatList, long chatId, boolean isPinned) { + this.chatList = chatList; + this.chatId = chatId; + this.isPinned = isPinned; + } + + public static final int CONSTRUCTOR = -1485429186; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class ToggleChatIsTranslatable extends Function { + + public long chatId; + + public boolean isTranslatable; + + public ToggleChatIsTranslatable() { + } + + public ToggleChatIsTranslatable(long chatId, boolean isTranslatable) { + this.chatId = chatId; + this.isTranslatable = isTranslatable; + } + + public static final int CONSTRUCTOR = -1812345889; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class ToggleChatViewAsTopics extends Function { + + public long chatId; + + public boolean viewAsTopics; + + public ToggleChatViewAsTopics() { + } + + public ToggleChatViewAsTopics(long chatId, boolean viewAsTopics) { + this.chatId = chatId; + this.viewAsTopics = viewAsTopics; + } + + public static final int CONSTRUCTOR = 724009948; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class ToggleDownloadIsPaused extends Function { + + public int fileId; + + public boolean isPaused; + + public ToggleDownloadIsPaused() { + } + + public ToggleDownloadIsPaused(int fileId, boolean isPaused) { + this.fileId = fileId; + this.isPaused = isPaused; + } + + public static final int CONSTRUCTOR = -947493099; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class ToggleForumTopicIsClosed extends Function { + + public long chatId; + + public long messageThreadId; + + public boolean isClosed; + + public ToggleForumTopicIsClosed() { + } + + public ToggleForumTopicIsClosed(long chatId, long messageThreadId, boolean isClosed) { + this.chatId = chatId; + this.messageThreadId = messageThreadId; + this.isClosed = isClosed; + } + + public static final int CONSTRUCTOR = -949712141; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class ToggleForumTopicIsPinned extends Function { + + public long chatId; + + public long messageThreadId; + + public boolean isPinned; + + public ToggleForumTopicIsPinned() { + } + + public ToggleForumTopicIsPinned(long chatId, long messageThreadId, boolean isPinned) { + this.chatId = chatId; + this.messageThreadId = messageThreadId; + this.isPinned = isPinned; + } + + public static final int CONSTRUCTOR = 1181543092; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class ToggleGeneralForumTopicIsHidden extends Function { + + public long chatId; + + public boolean isHidden; + + public ToggleGeneralForumTopicIsHidden() { + } + + public ToggleGeneralForumTopicIsHidden(long chatId, boolean isHidden) { + this.chatId = chatId; + this.isHidden = isHidden; + } + + public static final int CONSTRUCTOR = 1595741256; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class ToggleGiftIsSaved extends Function { + + public long senderUserId; + + public long messageId; + + public boolean isSaved; + + public ToggleGiftIsSaved() { + } + + public ToggleGiftIsSaved(long senderUserId, long messageId, boolean isSaved) { + this.senderUserId = senderUserId; + this.messageId = messageId; + this.isSaved = isSaved; + } + + public static final int CONSTRUCTOR = -1849495165; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class ToggleGroupCallEnabledStartNotification extends Function { + + public int groupCallId; + + public boolean enabledStartNotification; + + public ToggleGroupCallEnabledStartNotification() { + } + + public ToggleGroupCallEnabledStartNotification(int groupCallId, boolean enabledStartNotification) { + this.groupCallId = groupCallId; + this.enabledStartNotification = enabledStartNotification; + } + + public static final int CONSTRUCTOR = 707839826; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class ToggleGroupCallIsMyVideoEnabled extends Function { + + public int groupCallId; + + public boolean isMyVideoEnabled; + + public ToggleGroupCallIsMyVideoEnabled() { + } + + public ToggleGroupCallIsMyVideoEnabled(int groupCallId, boolean isMyVideoEnabled) { + this.groupCallId = groupCallId; + this.isMyVideoEnabled = isMyVideoEnabled; + } + + public static final int CONSTRUCTOR = -1624289030; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class ToggleGroupCallIsMyVideoPaused extends Function { + + public int groupCallId; + + public boolean isMyVideoPaused; + + public ToggleGroupCallIsMyVideoPaused() { + } + + public ToggleGroupCallIsMyVideoPaused(int groupCallId, boolean isMyVideoPaused) { + this.groupCallId = groupCallId; + this.isMyVideoPaused = isMyVideoPaused; + } + + public static final int CONSTRUCTOR = -478875239; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class ToggleGroupCallMuteNewParticipants extends Function { + + public int groupCallId; + + public boolean muteNewParticipants; + + public ToggleGroupCallMuteNewParticipants() { + } + + public ToggleGroupCallMuteNewParticipants(int groupCallId, boolean muteNewParticipants) { + this.groupCallId = groupCallId; + this.muteNewParticipants = muteNewParticipants; + } + + public static final int CONSTRUCTOR = 284082626; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class ToggleGroupCallParticipantIsHandRaised extends Function { + + public int groupCallId; + + public MessageSender participantId; + + public boolean isHandRaised; + + public ToggleGroupCallParticipantIsHandRaised() { + } + + public ToggleGroupCallParticipantIsHandRaised(int groupCallId, MessageSender participantId, boolean isHandRaised) { + this.groupCallId = groupCallId; + this.participantId = participantId; + this.isHandRaised = isHandRaised; + } + + public static final int CONSTRUCTOR = -1896127519; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class ToggleGroupCallParticipantIsMuted extends Function { + + public int groupCallId; + + public MessageSender participantId; + + public boolean isMuted; + + public ToggleGroupCallParticipantIsMuted() { + } + + public ToggleGroupCallParticipantIsMuted(int groupCallId, MessageSender participantId, boolean isMuted) { + this.groupCallId = groupCallId; + this.participantId = participantId; + this.isMuted = isMuted; + } + + public static final int CONSTRUCTOR = -1308093433; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class ToggleGroupCallScreenSharingIsPaused extends Function { + + public int groupCallId; + + public boolean isPaused; + + public ToggleGroupCallScreenSharingIsPaused() { + } + + public ToggleGroupCallScreenSharingIsPaused(int groupCallId, boolean isPaused) { + this.groupCallId = groupCallId; + this.isPaused = isPaused; + } + + public static final int CONSTRUCTOR = -1602530464; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class ToggleHasSponsoredMessagesEnabled extends Function { + + public boolean hasSponsoredMessagesEnabled; + + public ToggleHasSponsoredMessagesEnabled() { + } + + public ToggleHasSponsoredMessagesEnabled(boolean hasSponsoredMessagesEnabled) { + this.hasSponsoredMessagesEnabled = hasSponsoredMessagesEnabled; + } + + public static final int CONSTRUCTOR = 1963285740; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class TogglePaidMessageReactionIsAnonymous extends Function { + + public long chatId; + + public long messageId; + + public boolean isAnonymous; + + public TogglePaidMessageReactionIsAnonymous() { + } + + public TogglePaidMessageReactionIsAnonymous(long chatId, long messageId, boolean isAnonymous) { + this.chatId = chatId; + this.messageId = messageId; + this.isAnonymous = isAnonymous; + } + + public static final int CONSTRUCTOR = -1753949423; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class ToggleSavedMessagesTopicIsPinned extends Function { + + public long savedMessagesTopicId; + + public boolean isPinned; + + public ToggleSavedMessagesTopicIsPinned() { + } + + public ToggleSavedMessagesTopicIsPinned(long savedMessagesTopicId, boolean isPinned) { + this.savedMessagesTopicId = savedMessagesTopicId; + this.isPinned = isPinned; + } + + public static final int CONSTRUCTOR = -1588378164; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class ToggleSessionCanAcceptCalls extends Function { + + public long sessionId; + + public boolean canAcceptCalls; + + public ToggleSessionCanAcceptCalls() { + } + + public ToggleSessionCanAcceptCalls(long sessionId, boolean canAcceptCalls) { + this.sessionId = sessionId; + this.canAcceptCalls = canAcceptCalls; + } + + public static final int CONSTRUCTOR = 1819027208; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class ToggleSessionCanAcceptSecretChats extends Function { + + public long sessionId; + + public boolean canAcceptSecretChats; + + public ToggleSessionCanAcceptSecretChats() { + } + + public ToggleSessionCanAcceptSecretChats(long sessionId, boolean canAcceptSecretChats) { + this.sessionId = sessionId; + this.canAcceptSecretChats = canAcceptSecretChats; + } + + public static final int CONSTRUCTOR = 1000843390; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class ToggleStoryIsPostedToChatPage extends Function { + + public long storySenderChatId; + + public int storyId; + + public boolean isPostedToChatPage; + + public ToggleStoryIsPostedToChatPage() { + } + + public ToggleStoryIsPostedToChatPage(long storySenderChatId, int storyId, boolean isPostedToChatPage) { + this.storySenderChatId = storySenderChatId; + this.storyId = storyId; + this.isPostedToChatPage = isPostedToChatPage; + } + + public static final int CONSTRUCTOR = -300987649; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class ToggleSupergroupCanHaveSponsoredMessages extends Function { + + public long supergroupId; + + public boolean canHaveSponsoredMessages; + + public ToggleSupergroupCanHaveSponsoredMessages() { + } + + public ToggleSupergroupCanHaveSponsoredMessages(long supergroupId, boolean canHaveSponsoredMessages) { + this.supergroupId = supergroupId; + this.canHaveSponsoredMessages = canHaveSponsoredMessages; + } + + public static final int CONSTRUCTOR = -1098204302; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class ToggleSupergroupHasAggressiveAntiSpamEnabled extends Function { + + public long supergroupId; + + public boolean hasAggressiveAntiSpamEnabled; + + public ToggleSupergroupHasAggressiveAntiSpamEnabled() { + } + + public ToggleSupergroupHasAggressiveAntiSpamEnabled(long supergroupId, boolean hasAggressiveAntiSpamEnabled) { + this.supergroupId = supergroupId; + this.hasAggressiveAntiSpamEnabled = hasAggressiveAntiSpamEnabled; + } + + public static final int CONSTRUCTOR = 1748956943; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class ToggleSupergroupHasHiddenMembers extends Function { + + public long supergroupId; + + public boolean hasHiddenMembers; + + public ToggleSupergroupHasHiddenMembers() { + } + + public ToggleSupergroupHasHiddenMembers(long supergroupId, boolean hasHiddenMembers) { + this.supergroupId = supergroupId; + this.hasHiddenMembers = hasHiddenMembers; + } + + public static final int CONSTRUCTOR = -1537892918; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class ToggleSupergroupIsAllHistoryAvailable extends Function { + + public long supergroupId; + + public boolean isAllHistoryAvailable; + + public ToggleSupergroupIsAllHistoryAvailable() { + } + + public ToggleSupergroupIsAllHistoryAvailable(long supergroupId, boolean isAllHistoryAvailable) { + this.supergroupId = supergroupId; + this.isAllHistoryAvailable = isAllHistoryAvailable; + } + + public static final int CONSTRUCTOR = 1155110478; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class ToggleSupergroupIsBroadcastGroup extends Function { + + public long supergroupId; + + public ToggleSupergroupIsBroadcastGroup() { + } + + public ToggleSupergroupIsBroadcastGroup(long supergroupId) { + this.supergroupId = supergroupId; + } + + public static final int CONSTRUCTOR = 884089365; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class ToggleSupergroupIsForum extends Function { + + public long supergroupId; + + public boolean isForum; + + public ToggleSupergroupIsForum() { + } + + public ToggleSupergroupIsForum(long supergroupId, boolean isForum) { + this.supergroupId = supergroupId; + this.isForum = isForum; + } + + public static final int CONSTRUCTOR = -1771071990; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class ToggleSupergroupJoinByRequest extends Function { + + public long supergroupId; + + public boolean joinByRequest; + + public ToggleSupergroupJoinByRequest() { + } + + public ToggleSupergroupJoinByRequest(long supergroupId, boolean joinByRequest) { + this.supergroupId = supergroupId; + this.joinByRequest = joinByRequest; + } + + public static final int CONSTRUCTOR = 2111807454; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class ToggleSupergroupJoinToSendMessages extends Function { + + public long supergroupId; + + public boolean joinToSendMessages; + + public ToggleSupergroupJoinToSendMessages() { + } + + public ToggleSupergroupJoinToSendMessages(long supergroupId, boolean joinToSendMessages) { + this.supergroupId = supergroupId; + this.joinToSendMessages = joinToSendMessages; + } + + public static final int CONSTRUCTOR = -182022642; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class ToggleSupergroupSignMessages extends Function { + + public long supergroupId; + + public boolean signMessages; + + public boolean showMessageSender; + + public ToggleSupergroupSignMessages() { + } + + public ToggleSupergroupSignMessages(long supergroupId, boolean signMessages, boolean showMessageSender) { + this.supergroupId = supergroupId; + this.signMessages = signMessages; + this.showMessageSender = showMessageSender; + } + + public static final int CONSTRUCTOR = 572268491; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class ToggleSupergroupUsernameIsActive extends Function { + + public long supergroupId; + + public String username; + + public boolean isActive; + + public ToggleSupergroupUsernameIsActive() { + } + + public ToggleSupergroupUsernameIsActive(long supergroupId, String username, boolean isActive) { + this.supergroupId = supergroupId; + this.username = username; + this.isActive = isActive; + } + + public static final int CONSTRUCTOR = -1500811777; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class ToggleUsernameIsActive extends Function { + + public String username; + + public boolean isActive; + + public ToggleUsernameIsActive() { + } + + public ToggleUsernameIsActive(String username, boolean isActive) { + this.username = username; + this.isActive = isActive; + } + + public static final int CONSTRUCTOR = 1244098019; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class TransferChatOwnership extends Function { + + public long chatId; + + public long userId; + + public String password; + + public TransferChatOwnership() { + } + + public TransferChatOwnership(long chatId, long userId, String password) { + this.chatId = chatId; + this.userId = userId; + this.password = password; + } + + public static final int CONSTRUCTOR = 2006977043; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class TranslateMessageText extends Function { + + public long chatId; + + public long messageId; + + public String toLanguageCode; + + public TranslateMessageText() { + } + + public TranslateMessageText(long chatId, long messageId, String toLanguageCode) { + this.chatId = chatId; + this.messageId = messageId; + this.toLanguageCode = toLanguageCode; + } + + public static final int CONSTRUCTOR = 1405427410; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class TranslateText extends Function { + + public FormattedText text; + + public String toLanguageCode; + + public TranslateText() { + } + + public TranslateText(FormattedText text, String toLanguageCode) { + this.text = text; + this.toLanguageCode = toLanguageCode; + } + + public static final int CONSTRUCTOR = 623011058; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class UnpinAllChatMessages extends Function { + + public long chatId; + + public UnpinAllChatMessages() { + } + + public UnpinAllChatMessages(long chatId) { + this.chatId = chatId; + } + + public static final int CONSTRUCTOR = -1437805385; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class UnpinAllMessageThreadMessages extends Function { + + public long chatId; + + public long messageThreadId; + + public UnpinAllMessageThreadMessages() { + } + + public UnpinAllMessageThreadMessages(long chatId, long messageThreadId) { + this.chatId = chatId; + this.messageThreadId = messageThreadId; + } + + public static final int CONSTRUCTOR = -1211719936; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class UnpinChatMessage extends Function { + + public long chatId; + + public long messageId; + + public UnpinChatMessage() { + } + + public UnpinChatMessage(long chatId, long messageId) { + this.chatId = chatId; + this.messageId = messageId; + } + + public static final int CONSTRUCTOR = 2065448670; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class UpgradeBasicGroupChatToSupergroupChat extends Function { + + public long chatId; + + public UpgradeBasicGroupChatToSupergroupChat() { + } + + public UpgradeBasicGroupChatToSupergroupChat(long chatId) { + this.chatId = chatId; + } + + public static final int CONSTRUCTOR = 300488122; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class UploadStickerFile extends Function { + + public long userId; + + public StickerFormat stickerFormat; + + public InputFile sticker; + + public UploadStickerFile() { + } + + public UploadStickerFile(long userId, StickerFormat stickerFormat, InputFile sticker) { + this.userId = userId; + this.stickerFormat = stickerFormat; + this.sticker = sticker; + } + + public static final int CONSTRUCTOR = 647385283; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class ValidateOrderInfo extends Function { + + public InputInvoice inputInvoice; + + public OrderInfo orderInfo; + + public boolean allowSave; + + public ValidateOrderInfo() { + } + + public ValidateOrderInfo(InputInvoice inputInvoice, OrderInfo orderInfo, boolean allowSave) { + this.inputInvoice = inputInvoice; + this.orderInfo = orderInfo; + this.allowSave = allowSave; + } + + public static final int CONSTRUCTOR = -1248305201; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class ViewMessages extends Function { + + public long chatId; + + public long[] messageIds; + + public MessageSource source; + + public boolean forceRead; + + public ViewMessages() { + } + + public ViewMessages(long chatId, long[] messageIds, MessageSource source, boolean forceRead) { + this.chatId = chatId; + this.messageIds = messageIds; + this.source = source; + this.forceRead = forceRead; + } + + public static final int CONSTRUCTOR = 960236656; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class ViewPremiumFeature extends Function { + + public PremiumFeature feature; + + public ViewPremiumFeature() { + } + + public ViewPremiumFeature(PremiumFeature feature) { + this.feature = feature; + } + + public static final int CONSTRUCTOR = 192950706; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class ViewTrendingStickerSets extends Function { + + public long[] stickerSetIds; + + public ViewTrendingStickerSets() { + } + + public ViewTrendingStickerSets(long[] stickerSetIds) { + this.stickerSetIds = stickerSetIds; + } + + public static final int CONSTRUCTOR = -952416520; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + + public static class WriteGeneratedFilePart extends Function { + + public long generationId; + + public long offset; + + public byte[] data; + + public WriteGeneratedFilePart() { + } + + public WriteGeneratedFilePart(long generationId, long offset, byte[] data) { + this.generationId = generationId; + this.offset = offset; + this.data = data; + } + + public static final int CONSTRUCTOR = 214474389; + + @Override + public int getConstructor() { + return CONSTRUCTOR; + } + } + +} diff --git a/api/src/main/java/telegram/files/AutoDownloadVerticle.java b/api/src/main/java/telegram/files/AutoDownloadVerticle.java new file mode 100644 index 0000000..0b674f8 --- /dev/null +++ b/api/src/main/java/telegram/files/AutoDownloadVerticle.java @@ -0,0 +1,289 @@ +package telegram.files; + +import cn.hutool.core.collection.CollUtil; +import cn.hutool.core.convert.Convert; +import cn.hutool.core.util.StrUtil; +import cn.hutool.log.Log; +import cn.hutool.log.LogFactory; +import io.vertx.core.AbstractVerticle; +import io.vertx.core.Future; +import io.vertx.core.Promise; +import io.vertx.core.json.Json; +import io.vertx.core.json.JsonObject; +import org.drinkless.tdlib.TdApi; +import telegram.files.repository.SettingAutoRecords; +import telegram.files.repository.SettingKey; + +import java.util.*; +import java.util.concurrent.ConcurrentHashMap; +import java.util.stream.IntStream; +import java.util.stream.Stream; + +public class AutoDownloadVerticle extends AbstractVerticle { + + private static final Log log = LogFactory.get(); + + private static final int DEFAULT_LIMIT = 5; + + private static final int HISTORY_SCAN_INTERVAL = 2 * 60 * 1000; + + private static final int MAX_HISTORY_SCAN_TIME = 20 * 1000; + + private static final int MAX_WAITING_LENGTH = 30; + + private static final int DOWNLOAD_INTERVAL = 10 * 1000; + + private static final List FILE_TYPE_ORDER = List.of("photo", "video", "audio", "file"); + + // telegramId -> messages + private final Map> waitingDownloadMessages = new ConcurrentHashMap<>(); + + private final SettingAutoRecords autoRecords = new SettingAutoRecords(); + + private int limit = DEFAULT_LIMIT; + + @Override + public void start(Promise startPromise) { + initAutoDownload() + .compose(v -> this.initEventConsumer()) + .onSuccess(v -> { + vertx.setPeriodic(0, HISTORY_SCAN_INTERVAL, + id -> autoRecords.items.forEach(auto -> addHistoryMessage(auto, System.currentTimeMillis()))); + vertx.setPeriodic(0, DOWNLOAD_INTERVAL, + id -> waitingDownloadMessages.keySet().forEach(this::download)); + + log.info(""" + Auto download verticle started! + |History scan interval: %s ms + |Download interval: %s ms + |Download limit: %s per telegram account! + |Auto chats: %s + """.formatted(HISTORY_SCAN_INTERVAL, DOWNLOAD_INTERVAL, limit, autoRecords.items.size())); + + startPromise.complete(); + }) + .onFailure(startPromise::fail); + } + + @Override + public void stop(Promise stopPromise) { + saveAutoRecords().onComplete(stopPromise); + } + + private Future initAutoDownload() { + return Future.all( + DataVerticle.settingRepository.getByKey(SettingKey.autoDownloadLimit) + .onSuccess(limit -> { + if (limit != null) { + this.limit = limit; + } + }) + .onFailure(e -> log.error("Get Auto download limit failed!", e)), + DataVerticle.settingRepository.getByKey(SettingKey.autoDownload) + .onSuccess(settingAutoRecords -> { + if (settingAutoRecords == null) { + return; + } + settingAutoRecords.items.forEach(item -> HttpVerticle.getTelegramVerticle(item.telegramId) + .ifPresentOrElse(telegramVerticle -> { + if (telegramVerticle.authorized) { + autoRecords.add(item); + } else { + log.warn("Init auto download fail. Telegram verticle not authorized: %s".formatted(item.telegramId)); + } + }, () -> log.warn("Init auto download fail. Telegram verticle not found: %s".formatted(item.telegramId)))); + }) + .onFailure(e -> log.error("Init Auto download failed!", e)) + ).mapEmpty(); + } + + private Future initEventConsumer() { + vertx.eventBus().consumer(EventEnum.AUTO_DOWNLOAD_UPDATE.address(), message -> { + log.debug("Auto download update: %s".formatted(message.body())); + this.onAutoRecordsUpdate(Json.decodeValue(message.body().toString(), SettingAutoRecords.class)); + }); + vertx.eventBus().consumer(EventEnum.SETTING_UPDATE.address(SettingKey.autoDownloadLimit.name()), message -> { + log.debug("Auto download limit update: %s".formatted(message.body())); + this.limit = Convert.toInt(message.body()); + }); + vertx.eventBus().consumer(EventEnum.MESSAGE_RECEIVED.address(), message -> { + log.debug("Auto download message received: %s".formatted(message.body())); + this.onNewMessage((JsonObject) message.body()); + }); + return Future.succeededFuture(); + } + + private Future saveAutoRecords() { + return DataVerticle.settingRepository.getByKey(SettingKey.autoDownload) + .compose(settingAutoRecords -> { + if (settingAutoRecords == null) { + settingAutoRecords = new SettingAutoRecords(); + } + autoRecords.items.forEach(settingAutoRecords::add); + return DataVerticle.settingRepository.createOrUpdate(SettingKey.autoDownload.name(), Json.encode(settingAutoRecords)); + }) + .onSuccess(v -> log.info("Save auto records success!")) + .onFailure(e -> log.error("Save auto records failed!", e)) + .mapEmpty(); + } + + private void addHistoryMessage(SettingAutoRecords.Item auto, long currentTimeMillis) { + if (System.currentTimeMillis() - currentTimeMillis > MAX_HISTORY_SCAN_TIME || isExceedLimit(auto.telegramId)) { + return; + } + if (StrUtil.isBlank(auto.nextFileType)) { + auto.nextFileType = FILE_TYPE_ORDER.getFirst(); + } + TelegramVerticle telegramVerticle = this.getTelegramVerticle(auto.telegramId); + TdApi.SearchChatMessages searchChatMessages = new TdApi.SearchChatMessages(); + searchChatMessages.chatId = auto.chatId; + searchChatMessages.fromMessageId = auto.nextFromMessageId; + searchChatMessages.limit = Math.min(MAX_WAITING_LENGTH, 100); + searchChatMessages.filter = TdApiHelp.getSearchMessagesFilter(auto.nextFileType); + telegramVerticle.execute(searchChatMessages) + .onSuccess(foundChatMessages -> { + if (foundChatMessages.messages.length == 0) { + int nextTypeIndex = FILE_TYPE_ORDER.indexOf(auto.nextFileType) + 1; + if (nextTypeIndex < FILE_TYPE_ORDER.size()) { + String originalType = auto.nextFileType; + auto.nextFileType = FILE_TYPE_ORDER.get(nextTypeIndex); + auto.nextFromMessageId = 0; + log.debug("%s No more %s files found! Switch to %s".formatted(auto.uniqueKey(), originalType, auto.nextFileType)); + addHistoryMessage(auto, currentTimeMillis); + } else { + log.debug("%s No more history files found! TelegramId: %d ChatId: %d".formatted(auto.uniqueKey(), auto.telegramId, auto.chatId)); + } + } else { + DataVerticle.fileRepository.getFilesByUniqueId(TdApiHelp.getFileUniqueIds(Arrays.asList(foundChatMessages.messages))) + .onSuccess(existFiles -> { + List messages = Stream.of(foundChatMessages.messages) + .filter(message -> !existFiles.containsKey(TdApiHelp.getFileUniqueId(message))) + .toList(); + if (CollUtil.isEmpty(messages)) { + auto.nextFromMessageId = foundChatMessages.nextFromMessageId; + addHistoryMessage(auto, currentTimeMillis); + } else if (addWaitingDownloadMessages(auto.telegramId, messages, false)) { + auto.nextFromMessageId = foundChatMessages.nextFromMessageId; + } else { + addHistoryMessage(auto, currentTimeMillis); + } + }); + } + }); + } + + private boolean isExceedLimit(long telegramId) { + List waitingMessages = this.waitingDownloadMessages.get(telegramId); + return getSurplusSize(telegramId) == 0 || (waitingMessages != null && waitingMessages.size() > limit); + } + + private int getSurplusSize(long telegramId) { + TelegramVerticle telegramVerticle = this.getTelegramVerticle(telegramId); + Integer downloading = telegramVerticle.getDownloadStatistics() + .map(statistics -> statistics.getInteger("downloading")) + .result(); + return downloading == null ? limit : Math.min(0, limit - downloading); + } + + private boolean addWaitingDownloadMessages(long telegramId, List messages, boolean force) { + if (CollUtil.isEmpty(messages)) { + return false; + } + LinkedList waitingMessages = this.waitingDownloadMessages.get(telegramId); + if (waitingMessages == null) { + waitingMessages = new LinkedList<>(); + } + if (!force && waitingMessages.size() > MAX_WAITING_LENGTH) { + return false; + } else { + log.debug("Add waiting download messages: %d".formatted(messages.size())); + waitingMessages.addAll(TdApiHelp.filterUniqueMessages(messages)); + } + this.waitingDownloadMessages.put(telegramId, waitingMessages); + return true; + } + + private void download(long telegramId) { + if (CollUtil.isEmpty(waitingDownloadMessages)) { + return; + } + LinkedList messages = waitingDownloadMessages.get(telegramId); + if (CollUtil.isEmpty(messages)) { + return; + } + log.debug("Download start! TelegramId: %d size: %d".formatted(telegramId, messages.size())); + TelegramVerticle telegramVerticle = this.getTelegramVerticle(telegramId); + int surplusSize = getSurplusSize(telegramId); + if (surplusSize == 0) { + return; + } + + List downloadMessages = IntStream.range(0, Math.min(surplusSize, messages.size())) + .mapToObj(i -> messages.poll()) + .toList(); + downloadMessages.forEach(message -> { + Integer fileId = TdApiHelp.getFileId(message); + log.debug("Start process file: %s".formatted(fileId)); + telegramVerticle.startDownload(message.chatId, message.id, fileId) + .onSuccess(v -> log.info("Start download file success! ChatId: %d MessageId:%d FileId:%d" + .formatted(message.chatId, message.id, fileId)) + ) + .onFailure(e -> log.error("Download file failed! ChatId: %d MessageId:%d FileId:%d" + .formatted(message.chatId, message.id, fileId), e)); + }); + log.debug("Remaining download messages: %d".formatted(messages.size())); + } + + private TelegramVerticle getTelegramVerticle(long telegramId) { + return HttpVerticle.getTelegramVerticle(telegramId) + .orElseThrow(() -> new IllegalArgumentException("Telegram verticle not found: %s".formatted(telegramId))); + } + + private void onAutoRecordsUpdate(SettingAutoRecords records) { + for (SettingAutoRecords.Item item : records.items) { + if (!autoRecords.exists(item.telegramId, item.chatId)) { + // new enabled + HttpVerticle.getTelegramVerticle(item.telegramId) + .ifPresentOrElse(telegramVerticle -> { + if (telegramVerticle.authorized) { + autoRecords.add(item); + log.info("Add auto download success: %s".formatted(item.uniqueKey())); + } else { + log.warn("Add auto download fail. Telegram verticle not authorized: %s".formatted(item.telegramId)); + } + }, () -> log.warn("Add auto download fail. Telegram verticle not found: %s".formatted(item.telegramId))); + } + } + // remove disabled + List removedItems = new ArrayList<>(); + autoRecords.items.removeIf(item -> { + if (records.exists(item.telegramId, item.chatId)) { + return false; + } + removedItems.add(item); + log.info("Remove auto download success: %s".formatted(item.uniqueKey())); + return true; + }); + removedItems.forEach(item -> + waitingDownloadMessages.getOrDefault(item.telegramId, new LinkedList<>()) + .removeIf(message -> message.chatId == item.chatId) + ); + } + + private void onNewMessage(JsonObject jsonObject) { + long telegramId = jsonObject.getLong("telegramId"); + long chatId = jsonObject.getLong("chatId"); + long messageId = jsonObject.getLong("messageId"); + autoRecords.items.stream() + .filter(item -> item.telegramId == telegramId && item.chatId == chatId) + .findFirst() + .flatMap(item -> HttpVerticle.getTelegramVerticle(telegramId)) + .ifPresent(telegramVerticle -> { + if (telegramVerticle.authorized) { + telegramVerticle.execute(new TdApi.GetMessage(chatId, messageId)) + .onSuccess(message -> addWaitingDownloadMessages(telegramId, List.of(message), true)) + .onFailure(e -> log.error("Auto download fail. Get message failed: %s".formatted(e.getMessage()))); + } + }); + } +} diff --git a/api/src/main/java/telegram/files/Config.java b/api/src/main/java/telegram/files/Config.java new file mode 100644 index 0000000..f7b26d4 --- /dev/null +++ b/api/src/main/java/telegram/files/Config.java @@ -0,0 +1,45 @@ +package telegram.files; + +import cn.hutool.core.convert.Convert; +import cn.hutool.core.io.FileUtil; +import cn.hutool.core.util.StrUtil; + +import java.io.File; + +public class Config { + public static final String APP_ENV = StrUtil.blankToDefault(System.getenv("APP_ENV"), "prod"); + + public static final String APP_ROOT = System.getenv("APP_ROOT"); + + public static final String TELEGRAM_ROOT = APP_ROOT + File.separator + "account"; + + public static final int TELEGRAM_API_ID = Convert.toInt(System.getenv("TELEGRAM_API_ID"), 0); + + public static final String TELEGRAM_API_HASH = System.getenv("TELEGRAM_API_HASH"); + + static { + if (APP_ENV == null) { + throw new RuntimeException("APP_ENV is not set"); + } + if (APP_ROOT == null) { + throw new RuntimeException("APP_ROOT is not set"); + } + if (TELEGRAM_API_ID == 0) { + throw new RuntimeException("TELEGRAM_API_ID is not set"); + } + if (TELEGRAM_API_HASH == null) { + throw new RuntimeException("TELEGRAM_API_HASH is not set"); + } + + if (!FileUtil.exist(APP_ROOT)) { + FileUtil.mkdir(APP_ROOT); + } + if (!FileUtil.exist(TELEGRAM_ROOT)) { + FileUtil.mkdir(TELEGRAM_ROOT); + } + } + + public static boolean isProd() { + return "prod".equals(APP_ENV); + } +} diff --git a/api/src/main/java/telegram/files/DataVerticle.java b/api/src/main/java/telegram/files/DataVerticle.java new file mode 100644 index 0000000..d6bb2d7 --- /dev/null +++ b/api/src/main/java/telegram/files/DataVerticle.java @@ -0,0 +1,73 @@ +package telegram.files; + +import cn.hutool.core.util.StrUtil; +import cn.hutool.log.Log; +import cn.hutool.log.LogFactory; +import io.vertx.core.AbstractVerticle; +import io.vertx.core.Future; +import io.vertx.core.Promise; +import io.vertx.jdbcclient.JDBCConnectOptions; +import io.vertx.jdbcclient.JDBCPool; +import io.vertx.sqlclient.PoolOptions; +import telegram.files.repository.FileRepository; +import telegram.files.repository.SettingRepository; +import telegram.files.repository.TelegramRepository; +import telegram.files.repository.impl.FileRepositoryImpl; +import telegram.files.repository.impl.SettingRepositoryImpl; +import telegram.files.repository.impl.TelegramRepositoryImpl; + +import java.io.File; +import java.util.List; + +public class DataVerticle extends AbstractVerticle { + + private static final Log log = LogFactory.get(); + + public static JDBCPool pool; + + public static FileRepository fileRepository; + + public static TelegramRepository telegramRepository; + + public static SettingRepository settingRepository; + + public void start(Promise stopPromise) { + pool = JDBCPool.pool(vertx, + new JDBCConnectOptions() + .setJdbcUrl("jdbc:sqlite:%s".formatted(getDataPath())) + , + new PoolOptions().setMaxSize(16).setName("pool-tf") + ); + telegramRepository = new TelegramRepositoryImpl(pool); + fileRepository = new FileRepositoryImpl(pool); + settingRepository = new SettingRepositoryImpl(pool); + Future.all(List.of( + telegramRepository.init(), + fileRepository.init(), + settingRepository.init() + )) + .onSuccess(r -> { + log.info("Database initialized"); + stopPromise.complete(); + }) + .onFailure(err -> { + log.error("Failed to initialize database: %s".formatted(err.getMessage())); + stopPromise.fail(err); + }); + } + + @Override + public void stop() throws Exception { + if (pool != null) { + pool.close(); + log.debug("Database closed"); + } + } + + public static String getDataPath() { + String dataPath = System.getenv("DATA_PATH"); + dataPath = StrUtil.blankToDefault(dataPath, "data.db"); + dataPath = Config.APP_ROOT + File.separator + dataPath; + return dataPath; + } +} diff --git a/api/src/main/java/telegram/files/EventEnum.java b/api/src/main/java/telegram/files/EventEnum.java new file mode 100644 index 0000000..9031377 --- /dev/null +++ b/api/src/main/java/telegram/files/EventEnum.java @@ -0,0 +1,35 @@ +package telegram.files; + +public enum EventEnum { + + /** + * suffix = SettingRecord.key
+ * body = SettingRecord.value + * + * @see telegram.files.repository.SettingRecord + */ + SETTING_UPDATE, + + /** + * suffix = null
+ * body = SettingAutoRecords + * + * @see telegram.files.repository.SettingAutoRecords + */ + AUTO_DOWNLOAD_UPDATE, + + /** + * suffix = null
+ * body = JSONObject with "telegramId", "chatId", "messageId" + */ + MESSAGE_RECEIVED, + ; + + public String address() { + return name(); + } + + public String address(String suffix) { + return name() + "." + suffix; + } +} diff --git a/api/src/main/java/telegram/files/EventPayload.java b/api/src/main/java/telegram/files/EventPayload.java new file mode 100644 index 0000000..9893199 --- /dev/null +++ b/api/src/main/java/telegram/files/EventPayload.java @@ -0,0 +1,23 @@ +package telegram.files; + +public record EventPayload(int type, String code, Object data, long timestamp) { + public static final int TYPE_ERROR = -1; + + public static final int TYPE_AUTHORIZATION = 1; + + public static final int TYPE_METHOD_RESULT = 2; + + public static final int TYPE_FILE = 3; + + public static final int TYPE_FILE_DOWNLOAD = 4; + + public static final int TYPE_FILE_STATUS = 5; + + public static EventPayload build(int type, Object data) { + return new EventPayload(type, null, data, System.currentTimeMillis()); + } + + public static EventPayload build(int type, String code, Object data) { + return new EventPayload(type, code, data, System.currentTimeMillis()); + } +} diff --git a/api/src/main/java/telegram/files/HttpVerticle.java b/api/src/main/java/telegram/files/HttpVerticle.java new file mode 100644 index 0000000..935ec4c --- /dev/null +++ b/api/src/main/java/telegram/files/HttpVerticle.java @@ -0,0 +1,554 @@ +package telegram.files; + +import cn.hutool.core.collection.CollUtil; +import cn.hutool.core.convert.Convert; +import cn.hutool.core.io.FileUtil; +import cn.hutool.core.util.NumberUtil; +import cn.hutool.core.util.StrUtil; +import cn.hutool.log.Log; +import cn.hutool.log.LogFactory; +import io.vertx.core.*; +import io.vertx.core.buffer.Buffer; +import io.vertx.core.http.CookieSameSite; +import io.vertx.core.http.HttpMethod; +import io.vertx.core.http.HttpServerOptions; +import io.vertx.core.http.HttpServerResponse; +import io.vertx.core.json.JsonObject; +import io.vertx.ext.healthchecks.HealthCheckHandler; +import io.vertx.ext.healthchecks.HealthChecks; +import io.vertx.ext.web.Router; +import io.vertx.ext.web.RoutingContext; +import io.vertx.ext.web.handler.BodyHandler; +import io.vertx.ext.web.handler.CorsHandler; +import io.vertx.ext.web.handler.SessionHandler; +import io.vertx.ext.web.sstore.LocalSessionStore; +import io.vertx.ext.web.sstore.SessionStore; +import telegram.files.repository.SettingRecord; +import telegram.files.repository.TelegramRecord; + +import java.io.File; +import java.util.*; +import java.util.concurrent.ConcurrentHashMap; +import java.util.concurrent.TimeUnit; + +public class HttpVerticle extends AbstractVerticle { + + private static final Log log = LogFactory.get(); + + // session id -> ws handler id + private static final Map clients = new ConcurrentHashMap<>(); + + private static final List telegramVerticles = new ArrayList<>(); + + // session id -> telegram verticle + private final Map sessionTelegramVerticles = new ConcurrentHashMap<>(); + + private static final String SESSION_COOKIE_NAME = "tf"; + + @Override + public void start(Promise startPromise) { + initHttpServer() + .compose(r -> initTelegramVerticles()) + .compose(r -> initAutoDownloadVerticle()) + .onSuccess(startPromise::complete) + .onFailure(startPromise::fail); + } + + public Future initHttpServer() { + int port = config().getInteger("http.port", 8080); + HttpServerOptions options = new HttpServerOptions() + .setLogActivity(true) + .setRegisterWebSocketWriteHandlers(true) + .setMaxWebSocketMessageSize(1024 * 1024) + .setIdleTimeout(60) + .setIdleTimeoutUnit(TimeUnit.SECONDS) + .setPort(port); + + return vertx.createHttpServer(options) + .requestHandler(initRouter()) + .listen() + .onSuccess(server -> log.info("API server started on port " + port)) + .onFailure(err -> log.error("Failed to start API server: %s".formatted(err.getMessage()))) + .mapEmpty(); + } + + public Router initRouter() { + Router router = Router.router(vertx); + + SessionStore sessionStore = LocalSessionStore.create(vertx, SESSION_COOKIE_NAME); + SessionHandler sessionHandler = SessionHandler.create(sessionStore) + .setSessionCookieName(SESSION_COOKIE_NAME); + if (Config.isProd()) { + sessionHandler + .setCookieSameSite(CookieSameSite.STRICT); + } else { + sessionHandler + .setCookieSameSite(CookieSameSite.NONE) + .setCookieSecureFlag(true); + } + router.route() + .handler(sessionHandler) + .handler(BodyHandler.create()); + + if (!Config.isProd()) { + router.route() + .handler(CorsHandler.create() + .addRelativeOrigin("http://localhost:3000") + .allowedMethod(HttpMethod.GET) + .allowedMethod(HttpMethod.POST) + .allowedMethod(HttpMethod.PUT) + .allowedMethod(HttpMethod.DELETE) + .allowedMethod(HttpMethod.OPTIONS) + .allowCredentials(true) + .allowedHeader("Access-Control-Request-Method") + .allowedHeader("Access-Control-Allow-Credentials") + .allowedHeader("Access-Control-Allow-Origin") + .allowedHeader("Access-Control-Allow-Headers") + .allowedHeader("Content-Type") + ); + } + + HealthChecks hc = HealthChecks.create(vertx); + hc.register("http-server", Promise::complete); + + router.get("/health").handler(HealthCheckHandler.createWithHealthChecks(hc)); + router.get("/").handler(ctx -> ctx.response().end("Hello World!")); + router.route("/ws").handler(this::handleWebSocket); + + router.get("/settings").handler(this::handleSettings); + router.post("/settings/create").handler(this::handleSettingsCreate); + + router.post("/telegram/create").handler(this::handleTelegramCreate); + router.post("/telegram/:telegramId/delete").handler(this::handleTelegramDelete); + router.post("/telegram/api/:method").handler(this::handleTelegramApi); + router.get("/telegrams").handler(this::handleTelegrams); + router.get("/telegram/:telegramId/chats").handler(this::handleTelegramChats); + router.get("/telegram/:telegramId/chat/:chatId/files").handler(this::handleTelegramFiles); + router.get("/telegram/:telegramId/chat/:chatId/files/count").handler(this::handleTelegramFilesCount); + router.get("/telegram/:telegramId/download-statistics").handler(this::handleTelegramDownloadStatistics); + router.post("/telegrams/change").handler(this::handleTelegramChange); + + router.get("/file/preview").handler(this::handleFilePreview); + router.post("/file/start-download").handler(this::handleFileStartDownload); + router.post("/file/cancel-download").handler(this::handleFileCancelDownload); + router.post("/file/toggle-pause-download").handler(this::handleFileTogglePauseDownload); + router.post("/file/auto-download").handler(this::handleAutoDownload); + + router.route() + .failureHandler(ctx -> { + int statusCode = ctx.statusCode(); + if (statusCode < 500) { + if (ctx.response().ended()) { + return; + } + ctx.response().setStatusCode(statusCode).end(); + return; + } + Throwable throwable = ctx.failure(); + log.error("route: %s statusCode: %d Error: %s".formatted( + ctx.currentRoute().getName(), + statusCode, + throwable == null ? "" : throwable.getMessage())); + HttpServerResponse response = ctx.response(); + response.setStatusCode(statusCode) + .putHeader("Content-Type", "application/json") + .end(JsonObject.of("error", throwable == null ? "☹️Sorry! Not today." : throwable.getMessage()).encode()); + }); + return router; + } + + public Future initTelegramVerticles() { + return DataVerticle.telegramRepository.getAll() + .compose(telegramRecords -> { + List verifiedPath = telegramRecords.stream().map(TelegramRecord::rootPath).toList(); + File telegramRoot = FileUtil.file(Config.TELEGRAM_ROOT); + List uncertifiedPaths = FileUtil.loopFiles(telegramRoot, 1, null) + .stream() + .filter(f -> f.isDirectory() && !verifiedPath.contains(f.getAbsolutePath())) + .map(File::getAbsolutePath) + .toList(); + List> futures = new ArrayList<>(); + for (TelegramRecord telegramRecord : telegramRecords) { + TelegramVerticle telegramVerticle = new TelegramVerticle(telegramRecord); + if (!telegramVerticle.check()) { + continue; + } + telegramVerticles.add(telegramVerticle); + futures.add(vertx.deployVerticle(telegramVerticle)); + } + if (CollUtil.isNotEmpty(uncertifiedPaths)) { + for (String uncertifiedPath : uncertifiedPaths) { + TelegramVerticle telegramVerticle = new TelegramVerticle(uncertifiedPath); + if (!telegramVerticle.check()) { + continue; + } + telegramVerticles.add(telegramVerticle); + futures.add(vertx.deployVerticle(telegramVerticle)); + } + } + return Future.all(futures); + }) + .onSuccess(r -> log.info("Successfully deployed %d telegram verticles".formatted(r.size()))) + .onFailure(err -> log.error("Failed to deploy telegram verticles: %s".formatted(err.getMessage()))) + .mapEmpty(); + } + + public Future initAutoDownloadVerticle() { + return vertx.deployVerticle(new AutoDownloadVerticle(), new DeploymentOptions().setThreadingModel(ThreadingModel.WORKER)) + .mapEmpty(); + } + + private void handleWebSocket(RoutingContext ctx) { + String sessionId = ctx.session().id(); + ctx.request().toWebSocket() + .onSuccess(ws -> { + log.debug("Upgraded to WebSocket. SessionId: %s".formatted(sessionId)); + clients.put(sessionId, ws.textHandlerID()); + + long timerId = vertx.setPeriodic(30000, id -> { + if (!ws.isClosed()) { + ws.writePing(Buffer.buffer("👀")); + log.debug("Ping Client: %s".formatted(sessionId)); + } + }); + + ws.exceptionHandler(throwable -> log.error("WebSocket error: %s".formatted(throwable.getMessage()))); + ws.closeHandler(e -> { + clients.remove(sessionId); + vertx.cancelTimer(timerId); + log.debug("WebSocket closed. SessionId: %s".formatted(sessionId)); + }); + + ws.textMessageHandler(text -> { + log.debug("Received WebSocket message: " + text); + }); + }) + .onFailure(err -> log.warn("Failed to upgrade to WebSocket: %s".formatted(err.getMessage()))); + } + + private void handleSettingsCreate(RoutingContext ctx) { + JsonObject object = ctx.body().asJsonObject(); + if (CollUtil.isEmpty(object)) { + ctx.fail(400); + return; + } + + Future.all(object.stream() + .map(setting -> DataVerticle.settingRepository.createOrUpdate(setting.getKey(), + Convert.toStr(setting.getValue(), ""))) + .toList()) + .map(CompositeFuture::list) + .onSuccess(records -> { + records.forEach(record -> + vertx.eventBus().publish(EventEnum.SETTING_UPDATE.address(record.key()), record.value())); + ctx.end(); + }) + .onFailure(ctx::fail); + } + + private void handleSettings(RoutingContext ctx) { + String keys = ctx.request().getParam("keys"); + if (StrUtil.isBlank(keys)) { + ctx.fail(400); + return; + } + DataVerticle.settingRepository + .getByKeys(Arrays.asList(keys.split(","))) + .onSuccess(settings -> { + JsonObject object = new JsonObject(); + for (SettingRecord record : settings) { + object.put(record.key(), record.value()); + } + ctx.json(object); + }) + .onFailure(ctx::fail); + } + + private void handleTelegramCreate(RoutingContext ctx) { + String sessionId = ctx.session().id(); + TelegramVerticle telegramVerticle = sessionTelegramVerticles.get(sessionId); + if (telegramVerticle != null && !telegramVerticle.authorized) { + ctx.json(new JsonObject() + .put("id", telegramVerticle.getId()) + .put("lastState", telegramVerticle.lastAuthorizationState) + ); + return; + } + + TelegramVerticle newTelegramVerticle = new TelegramVerticle(DataVerticle.telegramRepository.getRootPath()); + newTelegramVerticle.bindHttpSession(sessionId); + sessionTelegramVerticles.put(sessionId, newTelegramVerticle); + telegramVerticles.add(newTelegramVerticle); + vertx.deployVerticle(newTelegramVerticle) + .onSuccess(id -> ctx.json(new JsonObject() + .put("id", newTelegramVerticle.getId()) + .put("lastState", newTelegramVerticle.lastAuthorizationState) + )) + .onFailure(ctx::fail); + } + + private void handleTelegramDelete(RoutingContext ctx) { + String telegramId = ctx.pathParam("telegramId"); + if (StrUtil.isBlank(telegramId)) { + ctx.fail(400); + return; + } + Optional telegramVerticleOptional = getTelegramVerticle(telegramId); + if (telegramVerticleOptional.isEmpty()) { + ctx.fail(404); + return; + } + TelegramVerticle telegramVerticle = telegramVerticleOptional.get(); + telegramVerticle.stop(); + telegramVerticles.remove(telegramVerticle); + sessionTelegramVerticles.entrySet().removeIf(e -> e.getValue().equals(telegramVerticle)); + ctx.end(); + } + + private void handleTelegrams(RoutingContext ctx) { + Boolean authorized = Convert.toBool(ctx.request().getParam("authorized")); + Future.all(telegramVerticles.stream() + .filter(c -> authorized == null || c.authorized == authorized) + .map(TelegramVerticle::getTelegramAccount) + .toList() + ) + .map(CompositeFuture::list) + .onSuccess(ctx::json) + .onFailure(ctx::fail); + } + + private void handleTelegramChats(RoutingContext ctx) { + String telegramId = ctx.pathParam("telegramId"); + if (StrUtil.isBlank(telegramId)) { + ctx.fail(400); + return; + } + String query = ctx.request().getParam("query"); + String chatId = ctx.request().getParam("chatId"); + getTelegramVerticle(telegramId) + .ifPresentOrElse(telegramVerticle -> { + telegramVerticle.getChats(Convert.toLong(chatId), query) + .onSuccess(ctx::json) + .onFailure(ctx::fail); + }, () -> ctx.fail(404)); + } + + private void handleTelegramFiles(RoutingContext ctx) { + String telegramId = ctx.pathParam("telegramId"); + if (StrUtil.isBlank(telegramId)) { + ctx.fail(400); + return; + } + String chatIdStr = ctx.pathParam("chatId"); + if (StrUtil.isBlank(chatIdStr)) { + ctx.fail(400); + return; + } + long chatId = Convert.toLong(chatIdStr); + getTelegramVerticle(telegramId) + .ifPresentOrElse(telegramVerticle -> + telegramVerticle.getChatFiles(chatId, ctx.request().params()) + .onSuccess(ctx::json) + .onFailure(ctx::fail), + () -> ctx.fail(404)); + } + + private void handleTelegramFilesCount(RoutingContext ctx) { + String telegramId = ctx.pathParam("telegramId"); + if (StrUtil.isBlank(telegramId)) { + ctx.fail(400); + return; + } + String chatIdStr = ctx.pathParam("chatId"); + if (StrUtil.isBlank(chatIdStr)) { + ctx.fail(400); + return; + } + long chatId = Convert.toLong(chatIdStr); + getTelegramVerticle(telegramId) + .ifPresentOrElse(telegramVerticle -> + telegramVerticle.getChatFilesCount(chatId) + .onSuccess(ctx::json) + .onFailure(ctx::fail), + () -> ctx.fail(404)); + } + + private void handleTelegramDownloadStatistics(RoutingContext ctx) { + String telegramId = ctx.pathParam("telegramId"); + if (StrUtil.isBlank(telegramId)) { + ctx.fail(400); + return; + } + getTelegramVerticle(telegramId) + .ifPresentOrElse(telegramVerticle -> + telegramVerticle.getDownloadStatistics() + .onSuccess(ctx::json) + .onFailure(ctx::fail), + () -> ctx.fail(404)); + } + + private void handleTelegramChange(RoutingContext ctx) { + String sessionId = ctx.session().id(); + String telegramId = ctx.request().getParam("telegramId"); + if (StrUtil.isBlank(telegramId)) { + sessionTelegramVerticles.remove(sessionId); + ctx.end(); + } + getTelegramVerticle(telegramId) + .ifPresentOrElse(telegramVerticle -> { + telegramVerticle.bindHttpSession(sessionId); + sessionTelegramVerticles.put(sessionId, telegramVerticle); + ctx.end(); + }, () -> ctx.fail(404)); + } + + private void handleTelegramApi(RoutingContext ctx) { + String method = ctx.pathParam("method"); + if (method == null) { + ctx.fail(400); + return; + } + String sessionId = ctx.session().id(); + TelegramVerticle telegramVerticle = getTelegramVerticle(ctx); + if (telegramVerticle == null) { + return; + } + JsonObject params = ctx.body().asJsonObject(); + telegramVerticle.bindHttpSession(sessionId); + telegramVerticle.execute(method, params == null ? null : params.getMap()) + .onSuccess(code -> ctx.json(JsonObject.of("code", code))) + .onFailure(ctx::fail); + } + + private void handleFilePreview(RoutingContext ctx) { + TelegramVerticle telegramVerticle = getTelegramVerticle(ctx); + if (telegramVerticle == null) { + return; + } + String chatId = ctx.request().getParam("chatId"); + String messageId = ctx.request().getParam("messageId"); + if (StrUtil.isBlank(chatId) || StrUtil.isBlank(messageId)) { + ctx.fail(400); + return; + } + + telegramVerticle.loadPreview(Convert.toLong(chatId), Convert.toLong(messageId)) + .onSuccess(fileIdOrPath -> { + if (fileIdOrPath == null) { + ctx.end(); + return; + } + if (fileIdOrPath instanceof Integer fileId) { + ctx.json(JsonObject.of("fileId", fileId)); + return; + } + String path = (String) fileIdOrPath; + + ctx.response() + .putHeader("Content-Type", FileUtil.getMimeType(path)) + .end(Buffer.buffer(FileUtil.readBytes(path))); + }) + .onFailure(ctx::fail); + } + + private void handleFileStartDownload(RoutingContext ctx) { + TelegramVerticle telegramVerticle = getTelegramVerticle(ctx); + if (telegramVerticle == null) { + return; + } + + JsonObject jsonObject = ctx.body().asJsonObject(); + Long chatId = jsonObject.getLong("chatId"); + Long messageId = jsonObject.getLong("messageId"); + Integer fileId = jsonObject.getInteger("fileId"); + if (chatId == null || messageId == null || fileId == null) { + ctx.fail(400); + return; + } + + telegramVerticle.startDownload(chatId, messageId, fileId) + .onSuccess(ctx::json) + .onFailure(ctx::fail); + } + + private void handleFileCancelDownload(RoutingContext ctx) { + TelegramVerticle telegramVerticle = getTelegramVerticle(ctx); + if (telegramVerticle == null) { + return; + } + + JsonObject jsonObject = ctx.body().asJsonObject(); + Integer fileId = jsonObject.getInteger("fileId"); + if (fileId == null) { + ctx.fail(400); + return; + } + + telegramVerticle.cancelDownload(fileId) + .onSuccess(r -> ctx.end()) + .onFailure(ctx::fail); + } + + private void handleFileTogglePauseDownload(RoutingContext ctx) { + TelegramVerticle telegramVerticle = getTelegramVerticle(ctx); + if (telegramVerticle == null) { + return; + } + + JsonObject jsonObject = ctx.body().asJsonObject(); + Integer fileId = jsonObject.getInteger("fileId"); + Boolean isPaused = jsonObject.getBoolean("isPaused"); + if (fileId == null || isPaused == null) { + ctx.fail(400); + return; + } + + telegramVerticle.togglePauseDownload(fileId, isPaused) + .onSuccess(r -> ctx.end()) + .onFailure(ctx::fail); + } + + private void handleAutoDownload(RoutingContext ctx) { + TelegramVerticle telegramVerticle = getTelegramVerticle(ctx); + if (telegramVerticle == null) { + return; + } + String chatId = ctx.request().getParam("chatId"); + if (StrUtil.isBlank(chatId)) { + ctx.fail(400); + return; + } + + telegramVerticle.toggleAutoDownload(Convert.toLong(chatId)) + .onSuccess(r -> ctx.end()) + .onFailure(ctx::fail); + } + + public static Optional getTelegramVerticle(String telegramId) { + Object id = NumberUtil.isNumber(telegramId) ? Convert.toLong(telegramId) : telegramId; + return telegramVerticles.stream() + .filter(t -> Objects.equals(t.getId(), id)) + .findFirst(); + } + + public static Optional getTelegramVerticle(long telegramId) { + return telegramVerticles.stream() + .filter(t -> t.telegramRecord != null && t.telegramRecord.id() == telegramId) + .findFirst(); + } + + public static String getWSHandlerId(String sessionId) { + return clients.get(sessionId); + } + + private TelegramVerticle getTelegramVerticle(RoutingContext ctx) { + String sessionId = ctx.session().id(); + TelegramVerticle telegramVerticle = sessionTelegramVerticles.get(sessionId); + if (telegramVerticle == null) { + ctx.response().setStatusCode(400) + .end(JsonObject.of("error", "Your session not link any telegram!").encode()); + return null; + } + return telegramVerticle; + } +} diff --git a/api/src/main/java/telegram/files/Start.java b/api/src/main/java/telegram/files/Start.java new file mode 100644 index 0000000..c775260 --- /dev/null +++ b/api/src/main/java/telegram/files/Start.java @@ -0,0 +1,31 @@ +package telegram.files; + +import cn.hutool.log.Log; +import cn.hutool.log.LogFactory; +import io.vertx.core.Future; +import io.vertx.core.Vertx; + +public class Start { + private static final Log log = LogFactory.get(); + + public static final String VERSION = "0.0.0"; + + public static void main(String[] args) { + Vertx vertx = Vertx.vertx(); + Runtime.getRuntime().addShutdownHook(new Thread(() -> { + vertx.close().onComplete(res -> { + if (res.succeeded()) { + log.info("👋 Shutdown success"); + } else { + log.error("😱 Shutdown failed", res.cause()); + } + }); + })); + + vertx.deployVerticle(new DataVerticle()) + .compose(id -> vertx.deployVerticle(new HttpVerticle())) + .onSuccess(id -> log.info("🚀Start success")) + .onFailure(err -> log.error("😱Start failed", err)); + } + +} diff --git a/api/src/main/java/telegram/files/TdApiHelp.java b/api/src/main/java/telegram/files/TdApiHelp.java new file mode 100644 index 0000000..af611b8 --- /dev/null +++ b/api/src/main/java/telegram/files/TdApiHelp.java @@ -0,0 +1,439 @@ +package telegram.files; + +import cn.hutool.core.bean.BeanUtil; +import cn.hutool.core.bean.copier.CopyOptions; +import cn.hutool.core.codec.Base64; +import cn.hutool.core.collection.CollUtil; +import cn.hutool.core.convert.Convert; +import cn.hutool.core.convert.TypeConverter; +import cn.hutool.core.util.ClassUtil; +import cn.hutool.core.util.ReflectUtil; +import io.vertx.core.Future; +import io.vertx.core.impl.NoStackTraceException; +import org.drinkless.tdlib.TdApi; +import org.jooq.lambda.tuple.Tuple; +import org.jooq.lambda.tuple.Tuple1; +import telegram.files.repository.FileRecord; +import telegram.files.repository.SettingKey; + +import java.util.*; + +@SuppressWarnings("unchecked") +public class TdApiHelp { + + // name -> class + private static final Map>> FUNCTIONS = new HashMap<>(); + + // CONSTRUCTOR -> class + private static final Map> CONSTRUCTORS = new HashMap<>(); + + public static final List FILE_CONTENT_CONSTRUCTORS = Arrays.asList( + TdApi.MessagePhoto.CONSTRUCTOR, + TdApi.MessageVideo.CONSTRUCTOR, + TdApi.MessageAudio.CONSTRUCTOR, + TdApi.MessageDocument.CONSTRUCTOR + ); + + private static final TypeConverter TD_API_TYPE_CONVERTER = (targetType, value) -> { + if (value == null) { + return null; + } + if (value instanceof Map) { + Map map = (Map) value; + if (!map.containsKey("@type")) { + return Convert.convertWithCheck(targetType, value, null, false); + } + Integer constructor = Convert.toInt(map.get("@type")); + Class objClazz = CONSTRUCTORS.get(constructor); + if (objClazz == null) { + return null; + } + return BeanUtil.toBean(map, objClazz); + } + return Convert.convertWithCheck(targetType, value, null, false); + }; + + private static final CopyOptions COPY_OPTIONS = new CopyOptions().setConverter(TD_API_TYPE_CONVERTER); + + static { + Arrays.stream(TdApi.class.getClasses()) + .filter(ClassUtil::isNormalClass) + .filter(TdApi.Object.class::isAssignableFrom) + .forEach(clazz -> { + if (TdApi.Function.class.isAssignableFrom(clazz)) { + FUNCTIONS.put(clazz.getSimpleName(), (Class>) clazz); + } + + Object constructor = ReflectUtil.getStaticFieldValue(ReflectUtil.getField(clazz, "CONSTRUCTOR")); + if (constructor != null) { + CONSTRUCTORS.put(Convert.toInt(constructor), (Class) clazz); + } + }); + } + + public static TdApi.Function getFunction(String method, Object params) { + Class> func = FUNCTIONS.get(method); + if (func == null) { + return null; + } + if (params == null) { + return ReflectUtil.newInstance(func); + } + return BeanUtil.toBean(params, func, COPY_OPTIONS); + } + + public static String getChatType(TdApi.ChatType type) { + return switch (type.getConstructor()) { + case TdApi.ChatTypePrivate.CONSTRUCTOR -> "private"; + case TdApi.ChatTypeBasicGroup.CONSTRUCTOR -> "group"; + case TdApi.ChatTypeSupergroup.CONSTRUCTOR -> + ((TdApi.ChatTypeSupergroup) type).isChannel ? "channel" : "group"; + case TdApi.ChatTypeSecret.CONSTRUCTOR -> "secret"; + default -> "unknown"; + }; + } + + public static TdApi.SearchMessagesFilter getSearchMessagesFilter(String fileType) { + return switch (fileType) { + case "media" -> new TdApi.SearchMessagesFilterPhotoAndVideo(); + case "photo" -> new TdApi.SearchMessagesFilterPhoto(); + case "video" -> new TdApi.SearchMessagesFilterVideo(); + case "audio" -> new TdApi.SearchMessagesFilterAudio(); + case "file" -> new TdApi.SearchMessagesFilterDocument(); + default -> null; + }; + } + + public static String getSearchMessagesFilterType(TdApi.SearchMessagesFilter filter) { + return switch (filter.getConstructor()) { + case TdApi.SearchMessagesFilterPhotoAndVideo.CONSTRUCTOR -> "media"; + case TdApi.SearchMessagesFilterPhoto.CONSTRUCTOR -> "photo"; + case TdApi.SearchMessagesFilterVideo.CONSTRUCTOR -> "video"; + case TdApi.SearchMessagesFilterAudio.CONSTRUCTOR -> "audio"; + case TdApi.SearchMessagesFilterDocument.CONSTRUCTOR -> "file"; + default -> "unknown"; + }; + } + + public static List getFileIds(List messages) { + if (CollUtil.isEmpty(messages)) { + return new ArrayList<>(); + } + return messages.stream() + .filter(message -> FILE_CONTENT_CONSTRUCTORS.contains(message.content.getConstructor())) + .map(TdApiHelp::getFileId) + .filter(Objects::nonNull) + .toList(); + } + + public static List getFileUniqueIds(List messages) { + if (CollUtil.isEmpty(messages)) { + return new ArrayList<>(); + } + return messages.stream() + .filter(message -> FILE_CONTENT_CONSTRUCTORS.contains(message.content.getConstructor())) + .map(TdApiHelp::getFileUniqueId) + .filter(Objects::nonNull) + .toList(); + } + + public static Integer getFileId(TdApi.Message message) { + return getFileHandler(message).map(FileHandler::getFileId).orElse(null); + } + + public static String getFileUniqueId(TdApi.Message message) { + return getFileHandler(message).map(FileHandler::getFileUniqueId).orElse(null); + } + + public static List filterUniqueMessages(List messages) { + if (CollUtil.isEmpty(messages)) return messages; + + Set fileIds = new HashSet<>(); + return messages.stream() + .filter(message -> { + Integer fileId = TdApiHelp.getFileId(message); + if (fileId == null) return false; + if (fileIds.contains(fileId)) { + return false; + } + fileIds.add(fileId); + return true; + }) + .toList(); + } + + public static FileRecord.DownloadStatus getDownloadStatus(TdApi.File file) { + if (file == null || file.local == null) { + return null; + } + if (file.local.isDownloadingActive) { + return FileRecord.DownloadStatus.downloading; + } else if (file.local.isDownloadingCompleted) { + return FileRecord.DownloadStatus.completed; + } else { + return FileRecord.DownloadStatus.paused; + } + } + + public static > Optional getFileHandler(TdApi.Message message) { + if (message == null) return Optional.empty(); + switch (message.content.getConstructor()) { + case TdApi.MessagePhoto.CONSTRUCTOR -> { + return Optional.of((T) new PhotoHandler(message)); + } + case TdApi.MessageVideo.CONSTRUCTOR -> { + return Optional.of((T) new VideoHandler(message)); + } + case TdApi.MessageAudio.CONSTRUCTOR -> { + return Optional.of((T) new AudioHandler(message)); + } + case TdApi.MessageDocument.CONSTRUCTOR -> { + return Optional.of((T) new DocumentHandler(message)); + } + default -> { + return Optional.empty(); + } + } + } + + public static abstract class FileHandler { + protected TdApi.Message message; + + protected T content; + + public FileHandler(TdApi.Message message) { + this.message = message; + this.content = (T) message.content; + } + + public abstract Integer getFileId(); + + public abstract String getFileUniqueId(); + + public TdApi.File getPreviewFileId(Tuple tuple) { + throw new UnsupportedOperationException("This message type does not support preview file"); + } + + public abstract FileRecord convertFileRecord(long telegramId); + + public T getContent() { + return content; + } + } + + public static class PhotoHandler extends FileHandler { + + public PhotoHandler(TdApi.Message message) { + super(message); + } + + @Override + public Integer getFileId() { + return content.photo.sizes[content.photo.sizes.length - 1].photo.id; + } + + @Override + public String getFileUniqueId() { + return content.photo.sizes[content.photo.sizes.length - 1].photo.remote.uniqueId; + } + + @Override + public TdApi.File getPreviewFileId(Tuple tuple) { + TdApi.MessagePhoto messagePhoto = this.content; + String size = ((Tuple1) tuple).v1; + + TdApi.PhotoSize photoSize = Arrays.stream(messagePhoto.photo.sizes) + .map(ComparablePhotoSize::new) + .filter(comparablePhotoSize -> comparablePhotoSize.compareTo(size) <= 0) + .max((o1, o2) -> o2.compareTo(o1.getPhotoSize())) + .map(ComparablePhotoSize::getPhotoSize) + .stream().findFirst() + .orElse(null); + + if (photoSize == null) { + throw new NoStackTraceException("The photo no size that less than or equal to " + size); + } + + return photoSize.photo; + } + + @Override + public FileRecord convertFileRecord(long telegramId) { + TdApi.PhotoSize photoSize = content.photo.sizes[content.photo.sizes.length - 1]; + return new FileRecord( + getFileId(), + photoSize.photo.remote.uniqueId, + telegramId, + message.chatId, + message.id, + message.date, + message.hasSensitiveContent, + photoSize.photo.size == 0 ? photoSize.photo.expectedSize : photoSize.photo.size, + photoSize.photo.local == null ? 0 : photoSize.photo.local.downloadedSize, + "photo", + null, + null, + Base64.encode((byte[]) BeanUtil.getProperty(content, "photo.minithumbnail.data")), + content.caption.text, + null, + "idle" + ); + } + } + + public static class VideoHandler extends FileHandler { + + public VideoHandler(TdApi.Message message) { + super(message); + } + + @Override + public Integer getFileId() { + return content.video.video.id; + } + + @Override + public String getFileUniqueId() { + return content.video.video.remote.uniqueId; + } + + @Override + public TdApi.File getPreviewFileId(Tuple tuple) { + TdApi.MessageVideo messageVideo = this.content; + TdApi.Thumbnail thumbnail = messageVideo.video.thumbnail; + + if (thumbnail == null) { + throw new NoStackTraceException("Video thumbnail not found"); + } + + return thumbnail.file; + } + + + @Override + public FileRecord convertFileRecord(long telegramId) { + TdApi.File file = content.video.video; + return new FileRecord( + file.id, + file.remote.uniqueId, + telegramId, + message.chatId, + message.id, + message.date, + message.hasSensitiveContent, + file.size == 0 ? file.expectedSize : file.size, + file.local == null ? 0 : file.local.downloadedSize, + "video", + content.video.mimeType, + content.video.fileName, + Base64.encode((byte[]) BeanUtil.getProperty(content, "video.minithumbnail.data")), + content.caption.text, + null, + "idle" + ); + } + } + + public static class AudioHandler extends FileHandler { + + public AudioHandler(TdApi.Message message) { + super(message); + } + + @Override + public Integer getFileId() { + return content.audio.audio.id; + } + + @Override + public String getFileUniqueId() { + return content.audio.audio.remote.uniqueId; + } + + @Override + public FileRecord convertFileRecord(long telegramId) { + TdApi.File file = content.audio.audio; + return new FileRecord( + file.id, + file.remote.uniqueId, + telegramId, + message.chatId, + message.id, + message.date, + message.hasSensitiveContent, + file.size == 0 ? file.expectedSize : file.size, + file.local == null ? 0 : file.local.downloadedSize, + "audio", + content.audio.mimeType, + content.audio.fileName, + Base64.encode((byte[]) BeanUtil.getProperty(content, "audio.albumCoverMinithumbnail.data")), + content.caption.text, + null, + "idle" + ); + } + } + + public static class DocumentHandler extends FileHandler { + + public DocumentHandler(TdApi.Message message) { + super(message); + } + + @Override + public Integer getFileId() { + return content.document.document.id; + } + + @Override + public String getFileUniqueId() { + return content.document.document.remote.uniqueId; + } + + @Override + public FileRecord convertFileRecord(long telegramId) { + TdApi.File file = content.document.document; + return new FileRecord( + file.id, + file.remote.uniqueId, + telegramId, + message.chatId, + message.id, + message.date, + message.hasSensitiveContent, + file.size == 0 ? file.expectedSize : file.size, + file.local == null ? 0 : file.local.downloadedSize, + "file", + content.document.mimeType, + content.document.fileName, + Base64.encode((byte[]) BeanUtil.getProperty(content, "document.minithumbnail.data")), + content.caption.text, + null, + "idle" + ); + } + } + + public static class ComparablePhotoSize implements Comparable { + private final TdApi.PhotoSize photoSize; + + private final String[] sizes = {"s", "m", "x", "y", "w", "a", "b", "c", "d"}; + + public ComparablePhotoSize(TdApi.PhotoSize photoSize) { + this.photoSize = photoSize; + } + + @Override + public int compareTo(TdApi.PhotoSize o) { + return Integer.compare(Arrays.binarySearch(sizes, photoSize.type), Arrays.binarySearch(sizes, o.type)); + } + + public int compareTo(String size) { + return Integer.compare(Arrays.binarySearch(sizes, photoSize.type), Arrays.binarySearch(sizes, size)); + } + + public TdApi.PhotoSize getPhotoSize() { + return photoSize; + } + } +} diff --git a/api/src/main/java/telegram/files/TelegramUpdateHandler.java b/api/src/main/java/telegram/files/TelegramUpdateHandler.java new file mode 100644 index 0000000..1d25146 --- /dev/null +++ b/api/src/main/java/telegram/files/TelegramUpdateHandler.java @@ -0,0 +1,63 @@ +package telegram.files; + +import cn.hutool.log.Log; +import cn.hutool.log.LogFactory; +import org.drinkless.tdlib.Client; +import org.drinkless.tdlib.TdApi; + +import java.util.function.Consumer; + +public class TelegramUpdateHandler implements Client.ResultHandler { + + private static final Log log = LogFactory.get(); + + private Consumer onAuthorizationStateUpdated; + + private Consumer onFileUpdated; + + private Consumer onFileDownloadsUpdated; + + private Consumer onMessageReceived; + + @Override + public void onResult(TdApi.Object object) { + switch (object.getConstructor()) { + case TdApi.UpdateAuthorizationState.CONSTRUCTOR: + if (onAuthorizationStateUpdated != null) + onAuthorizationStateUpdated.accept(((TdApi.UpdateAuthorizationState) object).authorizationState); + break; + case TdApi.UpdateFile.CONSTRUCTOR: + if (onFileUpdated != null) + onFileUpdated.accept((TdApi.UpdateFile) object); + case TdApi.UpdateFileDownload.CONSTRUCTOR: + log.debug("File download update: %s".formatted(object)); + break; + case TdApi.UpdateFileDownloads.CONSTRUCTOR: + if (onFileDownloadsUpdated != null) + onFileDownloadsUpdated.accept((TdApi.UpdateFileDownloads) object); + break; + case TdApi.UpdateNewMessage.CONSTRUCTOR: + if (onMessageReceived != null) { + onMessageReceived.accept(((TdApi.UpdateNewMessage) object).message); + } + default: + log.trace("Unsupported telegram update: %s".formatted(object)); + } + } + + public void setOnAuthorizationStateUpdated(Consumer onAuthorizationStateUpdated) { + this.onAuthorizationStateUpdated = onAuthorizationStateUpdated; + } + + public void setOnFileUpdated(Consumer onFileUpdated) { + this.onFileUpdated = onFileUpdated; + } + + public void setOnFileDownloadsUpdated(Consumer onFileDownloadsUpdated) { + this.onFileDownloadsUpdated = onFileDownloadsUpdated; + } + + public void setOnMessageReceived(Consumer onMessageReceived) { + this.onMessageReceived = onMessageReceived; + } +} diff --git a/api/src/main/java/telegram/files/TelegramVerticle.java b/api/src/main/java/telegram/files/TelegramVerticle.java new file mode 100644 index 0000000..bc6b8da --- /dev/null +++ b/api/src/main/java/telegram/files/TelegramVerticle.java @@ -0,0 +1,632 @@ +package telegram.files; + + +import cn.hutool.core.bean.BeanUtil; +import cn.hutool.core.codec.Base64; +import cn.hutool.core.convert.Convert; +import cn.hutool.core.date.DateUtil; +import cn.hutool.core.io.FileUtil; +import cn.hutool.core.util.ArrayUtil; +import cn.hutool.core.util.RandomUtil; +import cn.hutool.core.util.StrUtil; +import cn.hutool.core.util.TypeUtil; +import cn.hutool.log.Log; +import cn.hutool.log.LogFactory; +import io.vertx.core.AbstractVerticle; +import io.vertx.core.CompositeFuture; +import io.vertx.core.Future; +import io.vertx.core.MultiMap; +import io.vertx.core.impl.NoStackTraceException; +import io.vertx.core.json.Json; +import io.vertx.core.json.JsonArray; +import io.vertx.core.json.JsonObject; +import org.drinkless.tdlib.Client; +import org.drinkless.tdlib.TdApi; +import org.jooq.lambda.tuple.Tuple; +import org.jooq.lambda.tuple.Tuple2; +import telegram.files.repository.FileRecord; +import telegram.files.repository.SettingAutoRecords; +import telegram.files.repository.SettingKey; +import telegram.files.repository.TelegramRecord; + +import java.io.File; +import java.io.IOError; +import java.io.IOException; +import java.util.*; +import java.util.function.Consumer; +import java.util.stream.Stream; + +public class TelegramVerticle extends AbstractVerticle { + + private static final Log log = LogFactory.get(); + + private Client client; + + private volatile String httpSessionId; + + public boolean authorized = false; + + public TdApi.AuthorizationState lastAuthorizationState; + + public String rootPath; + + private String rootId; + + public TelegramRecord telegramRecord; + + static { + Client.setLogMessageHandler(0, new LogMessageHandler()); + + try { + Client.execute(new TdApi.SetLogVerbosityLevel(0)); + Client.execute(new TdApi.SetLogStream(new TdApi.LogStreamFile("tdlib.log", 1 << 27, false))); + } catch (Client.ExecutionException error) { + throw new IOError(new IOException("Write access to the current directory is required")); + } + } + + public TelegramVerticle(String rootPath) { + this.rootPath = rootPath; + } + + public TelegramVerticle(TelegramRecord telegramRecord) { + this.telegramRecord = telegramRecord; + this.rootPath = telegramRecord.rootPath(); + } + + public String getRootId() { + if (StrUtil.isNotBlank(this.rootId)) return rootId; + + this.rootId = StrUtil.subAfter(this.rootPath, '-', true); + return this.rootId; + } + + public Object getId() { + return telegramRecord == null ? this.getRootId() : telegramRecord.id(); + } + + @Override + public void start() { + TelegramUpdateHandler telegramUpdateHandler = new TelegramUpdateHandler(); + telegramUpdateHandler.setOnAuthorizationStateUpdated(this::onAuthorizationStateUpdated); + telegramUpdateHandler.setOnFileUpdated(this::onFileUpdated); + telegramUpdateHandler.setOnFileDownloadsUpdated(this::onFileDownloadsUpdated); + telegramUpdateHandler.setOnMessageReceived(this::onMessageReceived); + client = Client.create(telegramUpdateHandler, this::handleException, this::handleException); + } + + @Override + public void stop() { + if (!this.authorized || this.telegramRecord == null) { + File root = FileUtil.file(this.rootPath); + if (root.exists()) { + FileUtil.del(root); + } + } + } + + public boolean check() { + if (StrUtil.isBlank(this.rootPath) || !FileUtil.exist(this.rootPath)) { + log.error("[%s] Telegram account is invalid, root path: %s not exist.".formatted(this.getRootId(), this.rootPath)); + return false; + } + return true; + } + + public void bindHttpSession(String httpSessionId) { + this.httpSessionId = httpSessionId; + } + + public Future getTelegramAccount() { + return Future.future(promise -> { + if (!authorized) { + JsonObject jsonObject = new JsonObject() + .put("id", this.getRootId()) + .put("name", this.getRootId()) + .put("phoneNumber", "") + .put("avatar", "") + .put("status", "inactive") + .put("rootPath", this.rootPath) + .put("isPremium", false) + .put("lastAuthorizationState", lastAuthorizationState); + if (this.telegramRecord != null) { + jsonObject.put("id", Convert.toStr(this.telegramRecord.id())) + .put("name", this.telegramRecord.firstName()); + } + promise.complete(jsonObject); + return; + } + this.execute(new TdApi.GetMe()) + .onSuccess(user -> { + JsonObject result = new JsonObject() + .put("id", Convert.toStr(user.id)) + .put("name", StrUtil.join(user.firstName, " ", user.lastName)) + .put("phoneNumber", user.phoneNumber) + .put("avatar", Base64.encode((byte[]) BeanUtil.getProperty(user, "profilePhoto.minithumbnail.data"))) + .put("status", "active") + .put("rootPath", this.rootPath) + .put("isPremium", user.isPremium); + promise.complete(result); + }) + .onFailure(e -> { + log.error("[%s] Failed to get telegram account: %s".formatted(this.getRootId(), e.getMessage())); + promise.fail(e); + }); + }); + } + + public Future getChats(Long activatedChatId, String query) { + Consumer insertActivatedChatId = chats -> { + long[] chatIds = chats.chatIds; + if (activatedChatId != null && !ArrayUtil.contains(chatIds, activatedChatId)) { + chatIds = (long[]) ArrayUtil.insert(chatIds, 0, activatedChatId); + chats.chatIds = chatIds; + } + }; + + if (StrUtil.isBlank(query)) { + return this.execute(new TdApi.GetChats(new TdApi.ChatListMain(), 10)) + .map(chats -> { + insertActivatedChatId.accept(chats); + return chats; + }) + .compose(chats -> Future.all(Arrays.stream(chats.chatIds) + .mapToObj(chatId -> this.execute(new TdApi.GetChat(chatId))) + .toList()) + ) + .map(CompositeFuture::list) + .compose(this::convertChat); + } else { + return this.execute(new TdApi.SearchChatsOnServer(query, 10)) + .map(chats -> { + insertActivatedChatId.accept(chats); + return chats; + }) + .compose(chats -> Future.all(Arrays.stream(chats.chatIds) + .mapToObj(chatId -> this.execute(new TdApi.GetChat(chatId))) + .toList()) + ) + .map(CompositeFuture::list) + .compose(this::convertChat); + } + } + + public Future getChatFiles(long chatId, MultiMap filter) { + TdApi.SearchChatMessages searchChatMessages = new TdApi.SearchChatMessages(); + searchChatMessages.chatId = chatId; + searchChatMessages.query = filter.get("search"); + searchChatMessages.fromMessageId = Convert.toLong(filter.get("fromMessageId"), 0L); + searchChatMessages.offset = Convert.toInt(filter.get("offset"), 0); + searchChatMessages.limit = Convert.toInt(filter.get("limit"), 20); + searchChatMessages.filter = TdApiHelp.getSearchMessagesFilter(filter.get("type")); + + return this.execute(searchChatMessages) + .compose(foundChatMessages -> + DataVerticle.fileRepository.getFilesByUniqueId(TdApiHelp.getFileUniqueIds(Arrays.asList(foundChatMessages.messages))) + .map(fileRecords -> Tuple.tuple(foundChatMessages, fileRecords))) + .compose(this::convertFiles); + } + + public Future getChatFilesCount(long chatId) { + return Future.all( + Stream.of(new TdApi.SearchMessagesFilterPhotoAndVideo(), + new TdApi.SearchMessagesFilterPhoto(), + new TdApi.SearchMessagesFilterVideo(), + new TdApi.SearchMessagesFilterAudio(), + new TdApi.SearchMessagesFilterDocument()) + .map(filter -> this.execute( + new TdApi.GetChatMessageCount(chatId, + filter, + 0, + false) + ) + .map(count -> new JsonObject() + .put("type", TdApiHelp.getSearchMessagesFilterType(filter)) + .put("count", count.count) + ) + ) + .toList() + ).map(counts -> { + JsonObject result = new JsonObject(); + counts.list().forEach(count -> result.put(count.getString("type"), count.getInteger("count"))); + return result; + }); + } + + public Future loadPreview(long chatId, long messageId) { + return DataVerticle.settingRepository + .getByKey(SettingKey.needToLoadImages) + .compose(needToLoadImages -> { + if (!(boolean) needToLoadImages) { + return Future.failedFuture("Need to load images is disabled"); + } + return this.execute(new TdApi.GetMessage(chatId, messageId)); + }) + .compose(message -> { + TdApiHelp.FileHandler fileHandler = TdApiHelp.getFileHandler(message) + .orElseThrow(() -> new NoStackTraceException("not support message type")); + + return DataVerticle.settingRepository.getByKey(SettingKey.imageLoadSize) + .map(size -> Tuple.tuple(message, fileHandler.getPreviewFileId(Tuple.tuple(size)))); + }) + .compose(tuple -> { + TdApi.Message message = tuple.v1; + TdApi.File file = tuple.v2; + if (file.local != null + && file.local.isDownloadingCompleted + && FileUtil.exist(file.local.path)) { + return Future.succeededFuture(file.local.path); + } + + return savePreviewFile(message, file) + .compose(r -> { + TdApi.DownloadFile downloadFile = new TdApi.DownloadFile(); + downloadFile.fileId = file.id; + downloadFile.priority = 32; + downloadFile.synchronous = true; + + return this.execute(downloadFile) + .map(file.id); + }); + }); + } + + private Future savePreviewFile(TdApi.Message message, TdApi.File file) { + return Future.future(promise -> { + if (TdApiHelp.getFileId(message) != file.id) { + promise.complete(); + } else { + DataVerticle.fileRepository.getByUniqueId(file.remote.uniqueId) + .onSuccess(fileRecord -> { + if (fileRecord != null) { + promise.complete(); + } else { + DataVerticle.fileRepository.create(TdApiHelp.getFileHandler(message).get().convertFileRecord(telegramRecord.id())) + .onSuccess(r -> promise.complete()) + .onFailure(promise::fail); + } + }) + .onFailure(promise::fail); + } + }); + } + + public Future startDownload(Long chatId, Long messageId, Integer fileId) { + return Future.all( + this.execute(new TdApi.GetFile(fileId)), + this.execute(new TdApi.GetMessage(chatId, messageId)) + ) + .compose(results -> { + TdApi.File file = results.resultAt(0); + TdApi.Message message = results.resultAt(1); + if (file.local != null) { + if (file.local.isDownloadingCompleted) { + return Future.failedFuture("File already downloaded"); + } + if (file.local.isDownloadingActive) { + return Future.failedFuture("File is downloading"); + } +// return Future.failedFuture("Unknown file download status"); + } + + TdApiHelp.FileHandler fileHandler = TdApiHelp.getFileHandler(message) + .orElseThrow(() -> new NoStackTraceException("not support message type")); + FileRecord fileRecord = fileHandler.convertFileRecord(telegramRecord.id()); + return DataVerticle.fileRepository.create(fileRecord) + .compose(r -> + this.execute(new TdApi.AddFileToDownloads(fileId, chatId, messageId, 32)) + ) + .onSuccess(r -> + sendHttpEvent(EventPayload.build(EventPayload.TYPE_FILE_STATUS, new JsonObject() + .put("fileId", fileId) + .put("downloadStatus", FileRecord.DownloadStatus.downloading) + )) + ); + }); + } + + public Future cancelDownload(Integer fileId) { + return this.execute(new TdApi.GetFile(fileId)) + .compose(file -> { + if (file.local == null || !file.local.isDownloadingActive) { + return Future.failedFuture("File not started downloading"); + } + + return this.execute(new TdApi.CancelDownloadFile(fileId, false)); + }) + .onSuccess(r -> + sendHttpEvent(EventPayload.build(EventPayload.TYPE_FILE_STATUS, new JsonObject() + .put("fileId", fileId) + .put("downloadStatus", FileRecord.DownloadStatus.idle) + ))) + .mapEmpty(); + } + + public Future togglePauseDownload(Integer fileId, boolean isPaused) { + return this.execute(new TdApi.GetFile(fileId)) + .compose(file -> DataVerticle.fileRepository + .updateFileId(file.id, file.remote.uniqueId) + .map(file) + ) + .compose(file -> { + if (file.local == null) { + return Future.failedFuture("File not started downloading"); + } + if (isPaused && !file.local.isDownloadingActive) { + return Future.failedFuture("File is not downloading"); + } + if (!isPaused && file.local.isDownloadingActive) { + return Future.failedFuture("File is downloading"); + } + + return this.execute(new TdApi.ToggleDownloadIsPaused(fileId, isPaused)); + }) + .onSuccess(r -> + sendHttpEvent(EventPayload.build(EventPayload.TYPE_FILE_STATUS, new JsonObject() + .put("fileId", fileId) + .put("downloadStatus", isPaused ? FileRecord.DownloadStatus.paused : FileRecord.DownloadStatus.downloading) + ))) + .mapEmpty(); + } + + public Future toggleAutoDownload(Long chatId) { + return DataVerticle.settingRepository.getByKey(SettingKey.autoDownload) + .compose(settingAutoRecords -> { + if (settingAutoRecords == null) { + settingAutoRecords = new SettingAutoRecords(); + } + if (settingAutoRecords.exists(this.telegramRecord.id(), chatId)) { + settingAutoRecords.remove(this.telegramRecord.id(), chatId); + } else { + settingAutoRecords.add(this.telegramRecord.id(), chatId); + } + return DataVerticle.settingRepository.createOrUpdate(SettingKey.autoDownload.name(), Json.encode(settingAutoRecords)); + }) + .onSuccess(r -> vertx.eventBus().publish(EventEnum.AUTO_DOWNLOAD_UPDATE.name(), r.value())) + .mapEmpty(); + } + + public Future getDownloadStatistics() { + return DataVerticle.fileRepository.getDownloadStatistics(this.telegramRecord.id()); + } + + @SuppressWarnings("unchecked") + public Future execute(TdApi.Function method) { + log.trace("[%s] Execute method: %s".formatted(getRootId(), TypeUtil.getTypeArgument(method.getClass()))); + return Future.future(promise -> { + if (!authorized) { + promise.fail("Telegram account not found or not authorized"); + return; + } + client.send(method, object -> { + if (object.getConstructor() == TdApi.Error.CONSTRUCTOR) { + promise.fail("Execute method failed. " + object); + } else { + promise.complete((R) object); + } + }); + }); + } + + public Future execute(String method, Object params) { + String code = RandomUtil.randomString(10); + log.trace("[%s] Execute code: %s method: %s, params: %s".formatted(getRootId(), code, method, params)); + return Future.future(promise -> { + TdApi.Function func = TdApiHelp.getFunction(method, params); + if (func == null) { + promise.fail("Unsupported method: " + method); + return; + } + client.send(func, object -> { + log.debug("[%s] Execute: [%s] Receive result: %s".formatted(getRootId(), code, object)); + handleDefaultResult(object, code); + }); + promise.complete(code); + }); + } + + private void sendHttpEvent(EventPayload payload) { + if (this.httpSessionId == null) return; + + String address = HttpVerticle.getWSHandlerId(httpSessionId); + if (address == null) { + log.debug("[%s] Can not found websocket textHandlerID for session id:%s".formatted(getRootId(), httpSessionId)); + return; + } + vertx.eventBus().send(address, Json.encode(payload)); + } + + private void handleAuthorizationResult(TdApi.Object object) { + switch (object.getConstructor()) { + case TdApi.Error.CONSTRUCTOR: + sendHttpEvent(EventPayload.build(EventPayload.TYPE_ERROR, object)); + break; + case TdApi.Ok.CONSTRUCTOR: + break; + default: + log.warn("[%s] Receive UpdateAuthorizationState with invalid authorization state%s".formatted(getRootId(), object)); + } + } + + private void handleDefaultResult(TdApi.Object object, String code) { + if (object.getConstructor() == TdApi.Error.CONSTRUCTOR) { + sendHttpEvent(EventPayload.build(EventPayload.TYPE_ERROR, code, object)); + } else { + sendHttpEvent(EventPayload.build(EventPayload.TYPE_METHOD_RESULT, code, object)); + } + } + + private void handleException(Throwable e) { + log.error(e); + } + + private void onAuthorizationStateUpdated(TdApi.AuthorizationState authorizationState) { + log.debug("[%s] Receive authorization state update: %s".formatted(getRootId(), authorizationState)); + this.lastAuthorizationState = authorizationState; + switch (authorizationState.getConstructor()) { + case TdApi.AuthorizationStateWaitTdlibParameters.CONSTRUCTOR: + TdApi.SetTdlibParameters request = new TdApi.SetTdlibParameters(); + request.databaseDirectory = this.rootPath; + request.useMessageDatabase = true; + request.useFileDatabase = true; + request.useChatInfoDatabase = true; + request.useSecretChats = true; + request.apiId = Config.TELEGRAM_API_ID; + request.apiHash = Config.TELEGRAM_API_HASH; + request.systemLanguageCode = "en"; + request.deviceModel = "Telegram Files"; + request.applicationVersion = Start.VERSION; + log.debug("[%s] Send SetTdlibParameters: %s".formatted(getRootId(), request)); + + client.send(request, this::handleAuthorizationResult); + break; + case TdApi.AuthorizationStateWaitPhoneNumber.CONSTRUCTOR: + case TdApi.AuthorizationStateWaitOtherDeviceConfirmation.CONSTRUCTOR: + case TdApi.AuthorizationStateWaitEmailAddress.CONSTRUCTOR: + case TdApi.AuthorizationStateWaitEmailCode.CONSTRUCTOR: + case TdApi.AuthorizationStateWaitCode.CONSTRUCTOR: + case TdApi.AuthorizationStateWaitRegistration.CONSTRUCTOR: + case TdApi.AuthorizationStateWaitPassword.CONSTRUCTOR: + sendHttpEvent(EventPayload.build(EventPayload.TYPE_AUTHORIZATION, authorizationState)); + break; + case TdApi.AuthorizationStateReady.CONSTRUCTOR: + authorized = true; + if (telegramRecord == null) { + this.execute(new TdApi.GetMe()) + .compose(user -> + DataVerticle.telegramRepository.create(new TelegramRecord(user.id, user.firstName, this.rootPath)) + ) + .compose(record -> { + telegramRecord = record; + return this.execute(new TdApi.LoadChats(new TdApi.ChatListMain(), 10)); + }) + .onSuccess(o -> log.info("[%s] %s Authorization Ready".formatted(getRootId(), this.telegramRecord.firstName()))) + .onFailure(e -> log.error("[%s] Authorization Ready, but failed to create telegram record: %s".formatted(getRootId(), e.getMessage()))); + } else { + log.info("[%s] %s Authorization Ready".formatted(getRootId(), this.telegramRecord.firstName())); + } + sendHttpEvent(EventPayload.build(EventPayload.TYPE_AUTHORIZATION, authorizationState)); + break; + case TdApi.AuthorizationStateLoggingOut.CONSTRUCTOR: + break; + case TdApi.AuthorizationStateClosing.CONSTRUCTOR: + break; + case TdApi.AuthorizationStateClosed.CONSTRUCTOR: + break; + default: + log.warn("[%s] Unsupported authorization state received:%s".formatted(this.getRootId(), authorizationState)); + } + } + + private void onFileUpdated(TdApi.UpdateFile updateFile) { + log.debug("[%s] Receive file update: %s".formatted(getRootId(), updateFile)); + TdApi.File file = updateFile.file; + if (file != null) { + String localPath = null; + if (file.local != null && file.local.isDownloadingCompleted) { + localPath = file.local.path; + } + FileRecord.DownloadStatus downloadStatus = TdApiHelp.getDownloadStatus(file); + DataVerticle.fileRepository.updateStatus(file.id, + file.remote.uniqueId, + localPath, + downloadStatus) + .onSuccess(r -> { + if (r == null || r.isEmpty()) return; + sendHttpEvent(EventPayload.build(EventPayload.TYPE_FILE_STATUS, new JsonObject() + .put("fileId", file.id) + .put("downloadStatus", r.getString("downloadStatus")) + .put("localPath", r.getString("localPath")) + )); + }); + } + sendHttpEvent(EventPayload.build(EventPayload.TYPE_FILE, updateFile)); + } + + private void onFileDownloadsUpdated(TdApi.UpdateFileDownloads updateFileDownloads) { + log.debug("[%s] Receive file downloads update: %s".formatted(getRootId(), updateFileDownloads)); + sendHttpEvent(EventPayload.build(EventPayload.TYPE_FILE_DOWNLOAD, updateFileDownloads)); + } + + private void onMessageReceived(TdApi.Message message) { + log.debug("[%s] Receive message: %s".formatted(getRootId(), message)); + vertx.eventBus().publish(EventEnum.MESSAGE_RECEIVED.address(), JsonObject.of() + .put("telegramId", telegramRecord.id()) + .put("chatId", message.chatId) + .put("messageId", message.id) + ); + } + + private static class LogMessageHandler implements Client.LogMessageHandler { + + @Override + public void onLogMessage(int verbosityLevel, String message) { + log.debug("TDLib: %s".formatted(message)); + } + } + + //<-----------------------------convert----------------------------------> + + private Future convertChat(List chats) { + return DataVerticle.settingRepository.getByKey(SettingKey.autoDownload) + .map(settingAutoRecords -> settingAutoRecords == null ? Collections.emptySet() + : settingAutoRecords.getChatIds(this.telegramRecord.id())) + .map(enableAutoChatIds -> new JsonArray(chats.stream() + .map(chat -> new JsonObject() + .put("id", Convert.toStr(chat.id)) + .put("name", chat.id == this.telegramRecord.id() ? "Saved Messages" : chat.title) + .put("type", TdApiHelp.getChatType(chat.type)) + .put("avatar", Base64.encode((byte[]) BeanUtil.getProperty(chat, "photo.minithumbnail.data"))) + .put("unreadCount", chat.unreadCount) + .put("lastMessage", "") + .put("lastMessageTime", "") + .put("autoEnabled", enableAutoChatIds.contains(chat.id)) + ) + .toList() + )); + } + + private Future convertFiles(Tuple2> tuple) { + TdApi.FoundChatMessages foundChatMessages = tuple.v1; + Map fileRecords = tuple.v2; + + return DataVerticle.settingRepository.getByKey(SettingKey.uniqueOnly) + .map(uniqueOnly -> { + if (!uniqueOnly) { + return Arrays.asList(foundChatMessages.messages); + } + return TdApiHelp.filterUniqueMessages(Arrays.asList(foundChatMessages.messages)); + }) + .map(messages -> { + List fileObjects = messages.stream() + .filter(message -> TdApiHelp.FILE_CONTENT_CONSTRUCTORS.contains(message.content.getConstructor())) + .map(message -> { + FileRecord source = TdApiHelp.getFileHandler(message) + .map(fileHandler -> fileHandler.convertFileRecord(telegramRecord.id())) + .orElse(null); + if (source == null) { + return null; + } + FileRecord fileRecord = fileRecords.get(TdApiHelp.getFileUniqueId(message)); + if (fileRecord == null) { + fileRecord = source; + } else { + fileRecord = fileRecord.withSourceField(source.id(), source.downloadedSize()); + } + //TODO Processing of the same file under different accounts + + JsonObject fileObject = JsonObject.mapFrom(fileRecord); + fileObject.put("formatDate", DateUtil.date(fileObject.getLong("date") * 1000).toString()); + return fileObject; + }) + .filter(Objects::nonNull) + .toList(); + return new JsonObject() + .put("files", new JsonArray(fileObjects)) + .put("count", foundChatMessages.totalCount) + .put("size", fileObjects.size()) + .put("nextFromMessageId", foundChatMessages.nextFromMessageId); + }); + + } +} diff --git a/api/src/main/java/telegram/files/repository/FileRecord.java b/api/src/main/java/telegram/files/repository/FileRecord.java new file mode 100644 index 0000000..f8ef977 --- /dev/null +++ b/api/src/main/java/telegram/files/repository/FileRecord.java @@ -0,0 +1,99 @@ +package telegram.files.repository; + +import cn.hutool.core.convert.Convert; +import cn.hutool.core.map.MapUtil; +import io.vertx.sqlclient.templates.RowMapper; +import io.vertx.sqlclient.templates.TupleMapper; + +public record FileRecord(int id, //file id will change + String uniqueId, // unique id of the file, if empty, it means the file is cant be downloaded + long telegramId, + long chatId, + long messageId, + int date, // date when the file was uploaded + boolean hasSensitiveContent, + long size, // file size in bytes + long downloadedSize, // always 0 from db, should be got from telegram client + String type, // 'photo' | 'video' | 'audio' | 'file' + String mimeType, + String fileName, + String thumbnail, + String caption, + String localPath, + String downloadStatus // 'idle' | 'downloading' | 'paused' | 'completed' | 'error' +) { + + public enum DownloadStatus { + idle, downloading, paused, completed, error + } + + public static final String SCHEME = """ + CREATE TABLE IF NOT EXISTS file_record + ( + id INT, + unique_id VARCHAR(255), + telegram_id BIGINT, + chat_id BIGINT, + message_id BIGINT, + date INT, + has_sensitive_content BOOLEAN, + size BIGINT, + downloaded_size BIGINT, + type VARCHAR(255), + mime_type VARCHAR(255), + file_name VARCHAR(255), + thumbnail VARCHAR(255), + caption VARCHAR(255), + local_path VARCHAR(255), + download_status VARCHAR(255), + PRIMARY KEY (id, unique_id) + ) + """; + + public static RowMapper ROW_MAPPER = row -> + new FileRecord(row.getInteger("id"), + row.getString("unique_id"), + row.getLong("telegram_id"), + row.getLong("chat_id"), + row.getLong("message_id"), + row.getInteger("date"), + Convert.toBool(row.getInteger("has_sensitive_content")), + row.getLong("size"), + row.getLong("downloaded_size"), + row.getString("type"), + row.getString("mime_type"), + row.getString("file_name"), + row.getString("thumbnail"), + row.getString("caption"), + row.getString("local_path"), + row.getString("download_status") + ); + + public static TupleMapper PARAM_MAPPER = TupleMapper.mapper(r -> + MapUtil.ofEntries( + MapUtil.entry("id", r.id), + MapUtil.entry("unique_id", r.uniqueId()), + MapUtil.entry("telegram_id", r.telegramId()), + MapUtil.entry("chat_id", r.chatId()), + MapUtil.entry("message_id", r.messageId()), + MapUtil.entry("date", r.date()), + MapUtil.entry("has_sensitive_content", r.hasSensitiveContent()), + MapUtil.entry("size", r.size()), + MapUtil.entry("downloaded_size", r.downloadedSize()), + MapUtil.entry("type", r.type()), + MapUtil.entry("mime_type", r.mimeType()), + MapUtil.entry("file_name", r.fileName()), + MapUtil.entry("thumbnail", r.thumbnail()), + MapUtil.entry("caption", r.caption()), + MapUtil.entry("local_path", r.localPath()), + MapUtil.entry("download_status", r.downloadStatus()) + )); + + public FileRecord withSourceField(int id, long downloadedSize) { + if (this.downloadedSize == downloadedSize) { + return this; + } + return new FileRecord(id, uniqueId, telegramId, chatId, messageId, date, hasSensitiveContent, size, downloadedSize, type, mimeType, fileName, thumbnail, caption, localPath, downloadStatus); + } +} + diff --git a/api/src/main/java/telegram/files/repository/FileRepository.java b/api/src/main/java/telegram/files/repository/FileRepository.java new file mode 100644 index 0000000..954143e --- /dev/null +++ b/api/src/main/java/telegram/files/repository/FileRepository.java @@ -0,0 +1,31 @@ +package telegram.files.repository; + +import io.vertx.core.Future; +import io.vertx.core.json.JsonObject; + +import java.util.List; +import java.util.Map; + +public interface FileRepository { + Future init(); + + Future create(FileRecord fileRecord); + + Future> getFiles(long chatId, List fileIds); + + Future> getFilesByUniqueId(List uniqueIds); + + Future getByPrimaryKey(int fileId, String uniqueId); + + Future getByUniqueId(String uniqueId); + + Future getDownloadStatistics(long telegramId); + + Future updateStatus(int fileId, + String uniqueId, + String localPath, + FileRecord.DownloadStatus downloadStatus); + + Future updateFileId(int fileId, String uniqueId); + +} diff --git a/api/src/main/java/telegram/files/repository/SettingAutoRecords.java b/api/src/main/java/telegram/files/repository/SettingAutoRecords.java new file mode 100644 index 0000000..7e327f5 --- /dev/null +++ b/api/src/main/java/telegram/files/repository/SettingAutoRecords.java @@ -0,0 +1,66 @@ +package telegram.files.repository; + +import java.util.ArrayList; +import java.util.List; +import java.util.Set; +import java.util.stream.Collectors; + +public class SettingAutoRecords { + + public List items; + + public static class Item { + public long telegramId; + + public long chatId; + + public String nextFileType; + + public long nextFromMessageId; + + public Item() { + } + + public Item(long telegramId, long chatId) { + this.telegramId = telegramId; + this.chatId = chatId; + } + + public String uniqueKey() { + return telegramId + ":" + chatId; + } + } + + public SettingAutoRecords() { + this.items = new ArrayList<>(); + } + + public SettingAutoRecords(List items) { + this.items = items; + } + + public boolean exists(long telegramId, long chatId) { + return items.stream().anyMatch(item -> item.telegramId == telegramId && item.chatId == chatId); + } + + public void add(Item item) { + items.removeIf(i -> i.telegramId == item.telegramId && i.chatId == item.chatId); + items.add(item); + } + + public void add(long telegramId, long chatId) { + items.add(new Item(telegramId, chatId)); + } + + public void remove(long telegramId, long chatId) { + items.removeIf(item -> item.telegramId == telegramId && item.chatId == chatId); + } + + public Set getChatIds(long telegramId) { + return items.stream() + .filter(item -> item.telegramId == telegramId) + .map(item -> item.chatId) + .collect(Collectors.toSet()); + } + +} diff --git a/api/src/main/java/telegram/files/repository/SettingKey.java b/api/src/main/java/telegram/files/repository/SettingKey.java new file mode 100644 index 0000000..730e367 --- /dev/null +++ b/api/src/main/java/telegram/files/repository/SettingKey.java @@ -0,0 +1,29 @@ +package telegram.files.repository; + +import cn.hutool.core.convert.Convert; +import io.vertx.core.json.JsonObject; + +import java.util.function.Function; + +public enum SettingKey { + uniqueOnly(Convert::toBool), + needToLoadImages(Convert::toBool), + imageLoadSize, + showSensitiveContent(Convert::toBool), + autoDownload(value -> new JsonObject(value).mapTo(SettingAutoRecords.class)), + /** + * Auto download limit for each telegram account + */ + autoDownloadLimit(Convert::toInt), + ; + + public final Function converter; + + SettingKey() { + this.converter = Function.identity(); + } + + SettingKey(Function converter) { + this.converter = converter; + } +} diff --git a/api/src/main/java/telegram/files/repository/SettingRecord.java b/api/src/main/java/telegram/files/repository/SettingRecord.java new file mode 100644 index 0000000..345f3b1 --- /dev/null +++ b/api/src/main/java/telegram/files/repository/SettingRecord.java @@ -0,0 +1,27 @@ +package telegram.files.repository; + +import io.vertx.sqlclient.templates.RowMapper; +import io.vertx.sqlclient.templates.TupleMapper; + +import java.util.Map; + +public record SettingRecord(String key, String value) { + + public static final String SCHEME = """ + CREATE TABLE IF NOT EXISTS setting_record + ( + key VARCHAR(255) PRIMARY KEY, + value TEXT + ) + """; + + public static RowMapper ROW_MAPPER = row -> + new SettingRecord(row.getString("key"), + row.getString("value") + ); + + public static TupleMapper PARAM_MAPPER = TupleMapper.mapper(r -> + Map.ofEntries(Map.entry("key", r.key()), + Map.entry("value", r.value()) + )); +} diff --git a/api/src/main/java/telegram/files/repository/SettingRepository.java b/api/src/main/java/telegram/files/repository/SettingRepository.java new file mode 100644 index 0000000..64b96a9 --- /dev/null +++ b/api/src/main/java/telegram/files/repository/SettingRepository.java @@ -0,0 +1,16 @@ +package telegram.files.repository; + +import io.vertx.core.Future; + +import java.util.List; + +public interface SettingRepository { + + Future init(); + + Future createOrUpdate(String key, String value); + + Future> getByKeys(List keys); + + Future getByKey(SettingKey key); +} diff --git a/api/src/main/java/telegram/files/repository/TelegramRecord.java b/api/src/main/java/telegram/files/repository/TelegramRecord.java new file mode 100644 index 0000000..c02da5e --- /dev/null +++ b/api/src/main/java/telegram/files/repository/TelegramRecord.java @@ -0,0 +1,31 @@ +package telegram.files.repository; + +import cn.hutool.core.map.MapUtil; +import io.vertx.sqlclient.templates.RowMapper; +import io.vertx.sqlclient.templates.TupleMapper; + +import java.util.Map; + +public record TelegramRecord(long id, String firstName, String rootPath) { + + public static final String SCHEME = """ + CREATE TABLE IF NOT EXISTS telegram_record + ( + id BIGINT PRIMARY KEY, + first_name VARCHAR(255), + root_path VARCHAR(255) + ) + """; + + public static RowMapper ROW_MAPPER = row -> + new TelegramRecord(row.getLong("id"), + row.getString("first_name"), + row.getString("root_path") + ); + + public static TupleMapper PARAM_MAPPER = TupleMapper.mapper(r -> + Map.ofEntries(MapUtil.entry("id", r.id), + Map.entry("first_name", r.firstName()), + Map.entry("root_path", r.rootPath()) + )); +} diff --git a/api/src/main/java/telegram/files/repository/TelegramRepository.java b/api/src/main/java/telegram/files/repository/TelegramRepository.java new file mode 100644 index 0000000..978f482 --- /dev/null +++ b/api/src/main/java/telegram/files/repository/TelegramRepository.java @@ -0,0 +1,18 @@ +package telegram.files.repository; + +import io.vertx.core.Future; + +import java.util.List; + +public interface TelegramRepository { + + Future init(); + + String getRootPath(); + + Future create(TelegramRecord telegramRecord); + + Future getById(long id); + + Future> getAll(); +} diff --git a/api/src/main/java/telegram/files/repository/impl/FileRepositoryImpl.java b/api/src/main/java/telegram/files/repository/impl/FileRepositoryImpl.java new file mode 100644 index 0000000..fa1b3b7 --- /dev/null +++ b/api/src/main/java/telegram/files/repository/impl/FileRepositoryImpl.java @@ -0,0 +1,243 @@ +package telegram.files.repository.impl; + +import cn.hutool.core.collection.CollUtil; +import cn.hutool.core.map.MapUtil; +import cn.hutool.core.util.StrUtil; +import cn.hutool.log.Log; +import cn.hutool.log.LogFactory; +import io.vertx.core.Future; +import io.vertx.core.json.JsonObject; +import io.vertx.jdbcclient.JDBCPool; +import io.vertx.sqlclient.templates.SqlTemplate; +import telegram.files.repository.FileRecord; +import telegram.files.repository.FileRepository; + +import java.util.HashMap; +import java.util.List; +import java.util.Map; +import java.util.Objects; +import java.util.stream.Collectors; +import java.util.stream.IntStream; + +public class FileRepositoryImpl implements FileRepository { + + private static final Log log = LogFactory.get(); + + private final JDBCPool pool; + + public FileRepositoryImpl(JDBCPool pool) { + this.pool = pool; + } + + @Override + public Future init() { + return pool.getConnection() + .compose(conn -> conn + .query(FileRecord.SCHEME) + .execute() + .onComplete(r -> conn.close()) + .onFailure(err -> log.error("Failed to create table file_record: %s".formatted(err.getMessage()))) + .onSuccess(ps -> log.debug("Successfully created table: file_record")) + ) + .mapEmpty(); + } + + @Override + public Future create(FileRecord fileRecord) { + return SqlTemplate + .forUpdate(pool, """ + INSERT INTO file_record(id, unique_id, telegram_id, chat_id, message_id, date, has_sensitive_content, size, downloaded_size, + type, mime_type, + file_name, thumbnail, caption, local_path, + download_status) + values (#{id}, #{unique_id}, #{telegram_id}, #{chat_id}, #{message_id}, #{date}, #{has_sensitive_content}, #{size}, #{downloaded_size}, #{type}, + #{mime_type}, #{file_name}, #{thumbnail}, #{caption}, #{local_path}, #{download_status}) + """) + .mapFrom(FileRecord.PARAM_MAPPER) + .execute(fileRecord) + .map(r -> fileRecord) + .onSuccess(r -> log.debug("Successfully created file record: %s".formatted(fileRecord.id())) + ) + .onFailure( + err -> log.error("Failed to create file record: %s".formatted(err.getMessage())) + ); + } + + @Override + public Future> getFiles(long chatId, List fileIds) { + if (CollUtil.isEmpty(fileIds)) { + return Future.succeededFuture(new HashMap<>()); + } + return SqlTemplate + .forQuery(pool, """ + SELECT * FROM file_record WHERE chat_id = #{chatId} AND id IN (#{fileIds}) + """) + .mapTo(FileRecord.ROW_MAPPER) + .execute(Map.of("chatId", chatId, "fileIds", StrUtil.join(",", fileIds))) + .onFailure(err -> log.error("Failed to get file record: %s".formatted(err.getMessage()))) + .map(rs -> { + Map map = new HashMap<>(); + for (FileRecord record : rs) { + map.put(record.id(), record); + } + return map; + }); + } + + @Override + public Future> getFilesByUniqueId(List uniqueIds) { + uniqueIds = uniqueIds.stream() + .filter(StrUtil::isNotBlank) + .distinct().collect(Collectors.toList()); + if (CollUtil.isEmpty(uniqueIds)) { + return Future.succeededFuture(new HashMap<>()); + } + String uniqueIdPlaceholders = IntStream.range(0, uniqueIds.size()) + .mapToObj(i -> "#{uniqueId" + i + "}") + .collect(Collectors.joining(",")); + Map params = new HashMap<>(); + for (int i = 0; i < uniqueIds.size(); i++) { + params.put("uniqueId" + i, uniqueIds.get(i)); + } + return SqlTemplate + .forQuery(pool, """ + SELECT * FROM file_record WHERE unique_id IN (%s) + """.formatted(uniqueIdPlaceholders)) + .mapTo(FileRecord.ROW_MAPPER) + .execute(params) + .onFailure(err -> log.error("Failed to get file record: %s".formatted(err.getMessage()))) + .map(rs -> { + Map map = new HashMap<>(); + for (FileRecord record : rs) { + map.put(record.uniqueId(), record); + } + return map; + }); + } + + @Override + public Future getByPrimaryKey(int fileId, String uniqueId) { + return SqlTemplate + .forQuery(pool, """ + SELECT * FROM file_record WHERE id = #{fileId} AND unique_id = #{uniqueId} + """) + .mapTo(FileRecord.ROW_MAPPER) + .execute(Map.of("fileId", fileId, "uniqueId", uniqueId)) + .onFailure(err -> log.error("Failed to get file record: %s".formatted(err.getMessage())) + ) + .map(rs -> rs.size() > 0 ? rs.iterator().next() : null); + } + + @Override + public Future getByUniqueId(String uniqueId) { + return SqlTemplate + .forQuery(pool, """ + SELECT * FROM file_record WHERE unique_id = #{uniqueId} LIMIT 1 + """) + .mapTo(FileRecord.ROW_MAPPER) + .execute(Map.of("uniqueId", uniqueId)) + .onFailure(err -> log.error("Failed to get file record: %s".formatted(err.getMessage())) + ) + .map(rs -> rs.size() > 0 ? rs.iterator().next() : null); + } + + @Override + public Future getDownloadStatistics(long telegramId) { + return SqlTemplate + .forQuery(pool, """ + SELECT COUNT(*) AS total, + COUNT(CASE WHEN download_status = 'downloading' THEN 1 END) AS downloading, + COUNT(CASE WHEN download_status = 'paused' THEN 1 END) AS paused, + COUNT(CASE WHEN download_status = 'completed' THEN 1 END) AS completed, + COUNT(CASE WHEN download_status = 'error' THEN 1 END) AS error, + COUNT(CASE WHEN type = 'photo' THEN 1 END) AS photo, + COUNT(CASE WHEN type = 'video' THEN 1 END) AS video, + COUNT(CASE WHEN type = 'audio' THEN 1 END) AS audio, + COUNT(CASE WHEN type = 'file' THEN 1 END) AS file + FROM file_record + WHERE telegram_id = #{telegramId} + """) + .mapTo(row -> { + JsonObject result = JsonObject.of(); + result.put("total", row.getInteger("total")); + result.put("downloading", row.getInteger("downloading")); + result.put("paused", row.getInteger("paused")); + result.put("completed", row.getInteger("completed")); + result.put("error", row.getInteger("error")); + result.put("photo", row.getInteger("photo")); + result.put("video", row.getInteger("video")); + result.put("audio", row.getInteger("audio")); + result.put("file", row.getInteger("file")); + return result; + }) + .execute(Map.of("telegramId", telegramId)) + .map(rs -> rs.size() > 0 ? rs.iterator().next() : JsonObject.of()) + .onFailure(err -> log.error("Failed to get download statistics: %s".formatted(err.getMessage()))); + } + + @Override + public Future updateStatus(int fileId, String uniqueId, String localPath, FileRecord.DownloadStatus downloadStatus) { + if (StrUtil.isBlank(localPath) && downloadStatus == null) { + return Future.succeededFuture(null); + } + return getByUniqueId(uniqueId) + .compose(record -> { + if (record == null) { + return Future.succeededFuture(null); + } + boolean pathUpdated = !Objects.equals(record.localPath(), localPath); + boolean downloadStatusUpdated = !Objects.equals(record.downloadStatus(), downloadStatus.name()); + if (!pathUpdated && !downloadStatusUpdated) { + return Future.succeededFuture(null); + } + + return SqlTemplate + .forUpdate(pool, """ + UPDATE file_record SET local_path = #{localPath}, download_status = #{downloadStatus} + WHERE id = #{fileId} AND unique_id = #{uniqueId} + """) + .execute(MapUtil.ofEntries(MapUtil.entry("fileId", fileId), + MapUtil.entry("uniqueId", uniqueId), + MapUtil.entry("localPath", pathUpdated ? localPath : record.localPath()), + MapUtil.entry("downloadStatus", downloadStatusUpdated ? downloadStatus.name() : record.downloadStatus()) + )) + .onFailure(err -> + log.error("Failed to update file record: %s".formatted(err.getMessage())) + ) + .map(r -> { + JsonObject result = JsonObject.of(); + if (pathUpdated) { + result.put("localPath", localPath); + } + if (downloadStatusUpdated) { + result.put("downloadStatus", downloadStatus.name()); + } + log.debug("Successfully updated file record: %s, path: %s, status: %s, before: %s, %s" + .formatted(fileId, localPath, downloadStatus.name(), record.localPath(), record.downloadStatus())); + return result; + }); + }); + } + + @Override + public Future updateFileId(int fileId, String uniqueId) { + if (fileId <= 0 || StrUtil.isBlank(uniqueId)) { + return Future.succeededFuture(); + } + return this.getByUniqueId(uniqueId) + .compose(record -> { + if (record == null || record.id() == fileId) { + return Future.succeededFuture(); + } + return SqlTemplate + .forUpdate(pool, """ + UPDATE file_record SET id = #{fileId} WHERE unique_id = #{uniqueId} + """) + .execute(Map.of("fileId", fileId, "uniqueId", uniqueId)) + .onFailure(err -> + log.error("Failed to update file record: %s".formatted(err.getMessage())) + ) + .mapEmpty(); + }); + } +} diff --git a/api/src/main/java/telegram/files/repository/impl/SettingRepositoryImpl.java b/api/src/main/java/telegram/files/repository/impl/SettingRepositoryImpl.java new file mode 100644 index 0000000..febd613 --- /dev/null +++ b/api/src/main/java/telegram/files/repository/impl/SettingRepositoryImpl.java @@ -0,0 +1,103 @@ +package telegram.files.repository.impl; + +import cn.hutool.core.collection.CollUtil; +import cn.hutool.core.collection.IterUtil; +import cn.hutool.core.util.StrUtil; +import cn.hutool.log.Log; +import cn.hutool.log.LogFactory; +import io.vertx.core.Future; +import io.vertx.jdbcclient.JDBCPool; +import io.vertx.sqlclient.templates.SqlTemplate; +import telegram.files.repository.SettingKey; +import telegram.files.repository.SettingRecord; +import telegram.files.repository.SettingRepository; + +import java.util.Collections; +import java.util.List; +import java.util.Map; +import java.util.stream.Collectors; + +public class SettingRepositoryImpl implements SettingRepository { + + private static final Log log = LogFactory.get(); + + private final JDBCPool pool; + + public SettingRepositoryImpl(JDBCPool pool) { + this.pool = pool; + } + + @Override + public Future init() { + return pool.getConnection() + .compose(conn -> conn + .query(SettingRecord.SCHEME) + .execute() + .onComplete(r -> conn.close()) + .onFailure(err -> log.error("Failed to create table setting_record: %s".formatted(err.getMessage()))) + .onSuccess(ps -> log.debug("Successfully created table: setting_record")) + ) + .mapEmpty(); + } + + @Override + public Future createOrUpdate(String key, String value) { + return SqlTemplate + .forUpdate(pool, """ + INSERT INTO setting_record(key, value) VALUES (#{key}, #{value}) + ON CONFLICT (key) DO UPDATE SET value = #{value} + """) + .mapFrom(SettingRecord.PARAM_MAPPER) + .execute(new SettingRecord(key, value)) + .map(r -> new SettingRecord(key, value)) + .onSuccess(r -> log.debug("Successfully created or updated setting record: %s".formatted(key))) + .onFailure( + err -> log.error("Failed to create or update setting record: %s".formatted(err.getMessage())) + ); + } + + @Override + public Future> getByKeys(List keys) { + if (CollUtil.isEmpty(keys)) { + return Future.succeededFuture(List.of()); + } + String keyStr = keys.stream() + .filter(StrUtil::isNotBlank) + .distinct() + .map(key -> StrUtil.wrap(key, "'")) + .collect(Collectors.joining(",")); + + return SqlTemplate + .forQuery(pool, """ + SELECT * FROM setting_record WHERE key IN (%s) + """.formatted(keyStr)) + .mapTo(SettingRecord.ROW_MAPPER) + .execute(Collections.emptyMap()) + .map(IterUtil::toList) + .onSuccess(r -> log.debug("Successfully fetched setting record for keys: " + keyStr)) + .onFailure( + err -> log.error("Failed to fetch setting record: %s".formatted(err.getMessage())) + ); + } + + @Override + @SuppressWarnings("unchecked") + public Future getByKey(SettingKey key) { + return SqlTemplate + .forQuery(pool, """ + SELECT value FROM setting_record WHERE key = #{key} + """) + .mapTo(row -> row.getString("value")) + .execute(Map.of("key", key.name())) + .map(rs -> { + if (rs.size() == 1) { + return (T) key.converter.apply(rs.iterator().next()); + } + return null; + }) + .onSuccess(r -> log.debug("Successfully fetched setting record for key: " + key)) + .onFailure( + err -> log.error("Failed to fetch setting record: %s".formatted(err.getMessage())) + ); + } +} diff --git a/api/src/main/java/telegram/files/repository/impl/TelegramRepositoryImpl.java b/api/src/main/java/telegram/files/repository/impl/TelegramRepositoryImpl.java new file mode 100644 index 0000000..2cc1902 --- /dev/null +++ b/api/src/main/java/telegram/files/repository/impl/TelegramRepositoryImpl.java @@ -0,0 +1,77 @@ +package telegram.files.repository.impl; + +import cn.hutool.core.collection.CollUtil; +import cn.hutool.core.map.MapUtil; +import cn.hutool.log.Log; +import cn.hutool.log.LogFactory; +import io.vertx.core.Future; +import io.vertx.jdbcclient.JDBCPool; +import io.vertx.sqlclient.templates.SqlTemplate; +import telegram.files.Config; +import telegram.files.repository.TelegramRecord; +import telegram.files.repository.TelegramRepository; + +import java.io.File; +import java.util.Collections; +import java.util.List; +import java.util.UUID; + +public class TelegramRepositoryImpl implements TelegramRepository { + + private static final Log log = LogFactory.get(); + + private final JDBCPool pool; + + public TelegramRepositoryImpl(JDBCPool pool) { + this.pool = pool; + } + + @Override + public Future init() { + return pool.getConnection() + .compose(conn -> conn + .query(TelegramRecord.SCHEME) + .execute() + .onComplete(r -> conn.close()) + .onFailure(err -> log.error("Failed to create table telegram_record: %s".formatted(err.getMessage()))) + .onSuccess(ps -> log.debug("Successfully created table: telegram_record")) + ) + .mapEmpty(); + } + + @Override + public String getRootPath() { + return Config.TELEGRAM_ROOT + File.separator + UUID.randomUUID(); + } + + @Override + public Future create(TelegramRecord telegramRecord) { + return SqlTemplate + .forUpdate(pool, "INSERT INTO telegram_record(id, first_name, root_path) VALUES (#{id}, #{first_name}, #{root_path})") + .mapFrom(TelegramRecord.PARAM_MAPPER) + .execute(telegramRecord) + .map(r -> telegramRecord) + .onSuccess(r -> log.debug("Successfully created telegram record: %s".formatted(telegramRecord.id()))) + .onFailure( + err -> log.error("Failed to create telegram record: %s".formatted(err.getMessage())) + ); + } + + @Override + public Future getById(long id) { + return SqlTemplate + .forQuery(pool, "SELECT * FROM telegram_record WHERE id = #{id} limit 1") + .mapTo(TelegramRecord.ROW_MAPPER) + .execute(MapUtil.of("id", id)) + .map(rs -> rs.size() == 0 ? null : rs.iterator().next()); + } + + @Override + public Future> getAll() { + return SqlTemplate + .forQuery(pool, "SELECT * FROM telegram_record ORDER BY id") + .mapTo(TelegramRecord.ROW_MAPPER) + .execute(Collections.emptyMap()) + .map(CollUtil::newArrayList); + } +} diff --git a/api/src/main/resources/logging.properties b/api/src/main/resources/logging.properties new file mode 100644 index 0000000..6c7fc07 --- /dev/null +++ b/api/src/main/resources/logging.properties @@ -0,0 +1,27 @@ +# \u5168\u5C40\u65E5\u5FD7\u7EA7\u522B\uFF08\u9ED8\u8BA4\u7EA7\u522B\uFF09, ALL < FINEST < FINER < FINE < CONFIG < INFO < WARNING < SEVERE < OFF +.level = INFO + +# \u63A7\u5236\u53F0 Handler \u914D\u7F6E +handlers = java.util.logging.ConsoleHandler, java.util.logging.FileHandler + +# \u63A7\u5236\u53F0 Handler \u7684\u65E5\u5FD7\u7EA7\u522B +java.util.logging.ConsoleHandler.level = INFO + +# \u63A7\u5236\u53F0 Handler \u7684\u65E5\u5FD7\u683C\u5F0F\u5316\u5668 +java.util.logging.ConsoleHandler.formatter = java.util.logging.SimpleFormatter + +# \u6587\u4EF6 Handler \u7684\u65E5\u5FD7\u7EA7\u522B +java.util.logging.FileHandler.level = SEVERE + +## \u6587\u4EF6\u65E5\u5FD7\u8DEF\u5F84\u548C\u683C\u5F0F\uFF0C%u \u548C %g \u7528\u4E8E\u751F\u6210\u552F\u4E00\u7684\u65E5\u5FD7\u6587\u4EF6 +java.util.logging.FileHandler.pattern = api.log +java.util.logging.FileHandler.limit = 5000000 # \u6587\u4EF6\u5927\u5C0F\u9650\u5236\uFF08\u5B57\u8282\uFF09 +java.util.logging.FileHandler.count = 3 # \u65E5\u5FD7\u6587\u4EF6\u8F6E\u66FF\u4E2A\u6570 +java.util.logging.FileHandler.append = true # \u662F\u5426\u8FFD\u52A0\u5230\u6587\u4EF6 +java.util.logging.FileHandler.formatter = java.util.logging.SimpleFormatter + +# SimpleFormatter \u7684\u65E5\u5FD7\u683C\u5F0F +java.util.logging.SimpleFormatter.format = [%1$tF %1$tT] [%4$s] %5$s %n%6$s%n +# +## \u4E3A\u7279\u5B9A\u7684\u65E5\u5FD7\u5668\u8BBE\u7F6E\u65E5\u5FD7\u7EA7\u522B +io.netty.level = WARNING diff --git a/api/src/test/java/telegram/files/DataVerticleTest.java b/api/src/test/java/telegram/files/DataVerticleTest.java new file mode 100644 index 0000000..f76b2a4 --- /dev/null +++ b/api/src/test/java/telegram/files/DataVerticleTest.java @@ -0,0 +1,105 @@ +package telegram.files; + +import cn.hutool.core.io.FileUtil; +import cn.hutool.log.Log; +import cn.hutool.log.LogFactory; +import io.vertx.core.Vertx; +import io.vertx.junit5.VertxExtension; +import io.vertx.junit5.VertxTestContext; +import org.junit.jupiter.api.*; +import org.junit.jupiter.api.extension.ExtendWith; +import telegram.files.repository.FileRecord; +import telegram.files.repository.TelegramRecord; + +@ExtendWith(VertxExtension.class) +public class DataVerticleTest { + + private static final Log log = LogFactory.get(); + + @BeforeAll + static void setUp() { + log.debug("APP_ROOT: " + Config.APP_ROOT); + log.debug("DATA_PATH:" + DataVerticle.getDataPath()); + } + + @AfterAll + static void tearDown() { + String dataPath = DataVerticle.getDataPath(); + if (FileUtil.file(dataPath).exists()) { + FileUtil.del(dataPath); + } + } + + @BeforeEach + @DisplayName("Deploy data verticle") + void deployVerticle(Vertx vertx, VertxTestContext testContext) { + vertx.deployVerticle(new DataVerticle()) + .onComplete(testContext.succeedingThenComplete()); + } + + @Test + @DisplayName("Test Create telegram record") + void createTelegramRecordTest(Vertx vertx, VertxTestContext testContext) { + TelegramRecord telegramRecord = new TelegramRecord(1, "test", "test"); + DataVerticle.telegramRepository.create(telegramRecord) + .compose(r -> DataVerticle.telegramRepository.getById(r.id())) + .onComplete(testContext.succeeding(r -> testContext.verify(() -> { + Assertions.assertEquals(telegramRecord, r); + testContext.completeNow(); + }))); + } + + @Test + @DisplayName("Test Get all telegram record") + void getAllTelegramRecordTest(Vertx vertx, VertxTestContext testContext) { + TelegramRecord telegramRecord = new TelegramRecord(1, "test", "test"); + TelegramRecord telegramRecord2 = new TelegramRecord(2, "test2", "test2"); + DataVerticle.telegramRepository.create(telegramRecord) + .compose(r -> DataVerticle.telegramRepository.create(telegramRecord2)) + .compose(r -> DataVerticle.telegramRepository.getAll()) + .onComplete(testContext.succeeding(r -> testContext.verify(() -> { + Assertions.assertEquals(2, r.size()); + Assertions.assertEquals(telegramRecord, r.get(0)); + Assertions.assertEquals(telegramRecord2, r.get(1)); + testContext.completeNow(); + }))); + } + + @Test + @DisplayName("Test Get file record by primary key") + void getFileRecordByPrimaryKeyTest(Vertx vertx, VertxTestContext testContext) { + FileRecord fileRecord = new FileRecord( + 1, "unique_id", 1, 1, 1, 1, false, 1, 0, "type", "mime_type", "file_name", "thumbnail", "caption", "local_path", "download_status" + ); + DataVerticle.fileRepository.create(fileRecord) + .compose(r -> DataVerticle.fileRepository.getByPrimaryKey(r.id(), r.uniqueId())) + .onComplete(testContext.succeeding(r -> testContext.verify(() -> { + Assertions.assertEquals(fileRecord, r); + testContext.completeNow(); + }))); + } + + @Test + @DisplayName("Test update file status") + void updateFileStatusTest(Vertx vertx, VertxTestContext testContext) { + FileRecord fileRecord = new FileRecord( + 1, "unique_id", 1, 1, 1, 1, false, 1, 0, "type", "mime_type", "file_name", "thumbnail", "caption", null, "download_status" + ); + String updateLocalPath = "local_path"; + DataVerticle.fileRepository.create(fileRecord) + .compose(r -> DataVerticle.fileRepository.updateStatus(r.id(), r.uniqueId(), updateLocalPath, FileRecord.DownloadStatus.downloading)) + .compose(r -> { + testContext.verify(() -> { + Assertions.assertEquals(updateLocalPath, r.getString("localPath")); + Assertions.assertEquals(FileRecord.DownloadStatus.downloading.name(), r.getString("downloadStatus")); + }); + return DataVerticle.fileRepository.getByPrimaryKey(fileRecord.id(), fileRecord.uniqueId()); + }) + .onComplete(testContext.succeeding(r -> testContext.verify(() -> { + Assertions.assertEquals(FileRecord.DownloadStatus.downloading.name(), r.downloadStatus()); + Assertions.assertEquals(updateLocalPath, r.localPath()); + testContext.completeNow(); + }))); + } + +} diff --git a/api/src/test/java/telegram/files/TdApiHelpTest.java b/api/src/test/java/telegram/files/TdApiHelpTest.java new file mode 100644 index 0000000..48d159c --- /dev/null +++ b/api/src/test/java/telegram/files/TdApiHelpTest.java @@ -0,0 +1,40 @@ +package telegram.files; + +import org.drinkless.tdlib.TdApi; +import org.junit.jupiter.api.Assertions; +import org.junit.jupiter.api.Test; + +import java.util.Map; + +public class TdApiHelpTest { + + @Test + void getFunctionTest() { + TdApi.Function function = TdApiHelp.getFunction("GetMe", null); + Assertions.assertNotNull(function, "function is null"); + Assertions.assertTrue(function instanceof TdApi.GetMe, "function is not GetMe"); + + TdApi.SearchChatMessages searchChatMessages = new TdApi.SearchChatMessages(); + searchChatMessages.chatId = 0L; + searchChatMessages.query = ""; + searchChatMessages.fromMessageId = 0; + searchChatMessages.offset = 0; + searchChatMessages.limit = 10; + searchChatMessages.filter = new TdApi.SearchMessagesFilterEmpty(); + + function = TdApiHelp.getFunction("SearchChatMessages", + Map.of( + "chatId", searchChatMessages.chatId, + "query", searchChatMessages.query, + "fromMessageId", searchChatMessages.fromMessageId, + "offset", searchChatMessages.offset, + "limit", searchChatMessages.limit, + "filter", Map.of("@type", -869395657) + ) + ); + Assertions.assertNotNull(function, "function is null"); + Assertions.assertEquals(searchChatMessages.chatId, ((TdApi.SearchChatMessages) function).chatId, "function is not equals SearchChatMessages"); + Assertions.assertInstanceOf(TdApi.SearchMessagesFilterEmpty.class, ((TdApi.SearchChatMessages) function).filter, "function is not equals SearchChatMessages"); + } + +} diff --git a/api/src/test/java/telegram/files/TelegramVerticleTest.java b/api/src/test/java/telegram/files/TelegramVerticleTest.java new file mode 100644 index 0000000..c1fb01e --- /dev/null +++ b/api/src/test/java/telegram/files/TelegramVerticleTest.java @@ -0,0 +1,6 @@ +package telegram.files; + +public class TelegramVerticleTest { + + +} diff --git a/docker-compose.yaml b/docker-compose.yaml new file mode 100644 index 0000000..32b6ba7 --- /dev/null +++ b/docker-compose.yaml @@ -0,0 +1,16 @@ +services: + telegram-files: + container_name: telegram-files + image: telegram-files:latest + restart: always + healthcheck: + test: ["CMD", "curl", "-f", "http://localhost:80/"] + environment: + APP_ENV: ${APP_ENV:-prod} + APP_ROOT: ${APP_ROOT:-/app/data} + TELEGRAM_API_ID: ${TELEGRAM_API_ID} + TELEGRAM_API_HASH: ${TELEGRAM_API_HASH} + ports: + - "6543:80" + volumes: + - ./telegram-files:/app/data diff --git a/entrypoint.sh b/entrypoint.sh new file mode 100644 index 0000000..af3d7e3 --- /dev/null +++ b/entrypoint.sh @@ -0,0 +1,32 @@ +#!/bin/bash + +lib_path="/app/tdlib" +if [ ! -d "$lib_path" ]; then + echo "Downloading TDLib..." + mkdir -p $lib_path + wget -q -O libs.zip https://github.com/p-vorobyev/spring-boot-starter-telegram/releases/download/1.15.0/libs.zip + unzip -q libs.zip -d $lib_path + rm libs.zip +fi + +# libs has linux_arm64 linux_x64 +case $(uname -m) in + x86_64) + lib_path="$lib_path/libs/linux_x64" + ;; + aarch64) + lib_path="$lib_path/libs/linux_arm64" + ;; + *) + echo "Unsupported architecture: $(uname -m)" + exit 1 + ;; +esac + +echo "Using TDLib from $lib_path" + +# start services +java -jar -Djava.library.path=$lib_path /app/api.jar \ + & pm2 start /app/web/pm2.json --no-daemon \ + & nginx -g 'daemon off;' + diff --git a/http-client.env.json b/http-client.env.json new file mode 100644 index 0000000..51f13f7 --- /dev/null +++ b/http-client.env.json @@ -0,0 +1,10 @@ +{ + "example": { + "server": "localhost:8080", + "tf": "", + "telegramId": "your telegram id", + "telegram_phone": "your telegram phone", + "chatId": "your chat id", + "messageId": "your message id" + } +} diff --git a/misc/screenshot.png b/misc/screenshot.png new file mode 100644 index 0000000000000000000000000000000000000000..9675d5551e7759ee6161fa1bd3cfd91731ca17f4 GIT binary patch literal 939809 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 z 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⋘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Ν1fr#vDp3MbMK^$ylKvd7ww{ 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

EVEXcZK}*8hjUV-{yYs=_|l< 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

PRK#qOJ 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 z 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 1 else None + + if version is None: + print("请提供版本号,例如:python update_version.py 1.2.3") + sys.exit(1) + + # 输入变更内容 + change_message = input("请输入版本变更内容: ").strip() + + # 更新 VERSION 文件 + write_version(version) + + # 更新 build.gradle、java 和 package.json + update_build_gradle(version) + update_java_version(version) + update_package_json(version) + + print(f"版本号已更新为:{version}") + + if change_message: + # 提交到 Git 并创建标签 + git_commit_and_tag(version, change_message) + +if __name__ == "__main__": + main() diff --git a/nginx.conf b/nginx.conf new file mode 100644 index 0000000..68fb8c8 --- /dev/null +++ b/nginx.conf @@ -0,0 +1,42 @@ +worker_processes 1; + +events { + worker_connections 1024; +} +# 定义 HTTP 块 +http { + # 定义 server 块 + server { + listen 80; + + # 定义 WS 的代理规则 + location /ws { + proxy_pass http://localhost:8080; + proxy_http_version 1.1; + proxy_set_header Upgrade $http_upgrade; + proxy_set_header Connection "upgrade"; + proxy_set_header Host $host; + proxy_set_header X-Real-IP $remote_addr; + proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; + } + + # 定义 API 的代理规则 + location /api/ { + proxy_pass http://localhost:8080/; + proxy_set_header Host $host; + proxy_set_header X-Real-IP $remote_addr; + proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; + } + + location / { + proxy_pass http://localhost:3000/; + proxy_set_header Host $host; + proxy_set_header X-Real-IP $remote_addr; + proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; + } + + # 日志配置 + access_log /var/log/nginx/access.log; + error_log /var/log/nginx/error.log; + } +} diff --git a/request.http b/request.http new file mode 100644 index 0000000..8019926 --- /dev/null +++ b/request.http @@ -0,0 +1,158 @@ +### Get health +GET http://{{server}}/health + +### Basic GET request test +GET http://{{server}} +Cookie: {{tf}} + +> {% + client.test("Request executed successfully", function () { + client.assert(response.status === 200, "Response status is not 200"); + client.assert(response.body === "Hello World!", "Response body is not 'Hello World!'"); + }); + const cookie = response.headers.valueOf("set-cookie") + if (cookie) { + client.global.set("tf", cookie.split(";")[0]) + console.log("tf: " + cookie) + } +%} + +### Basic websocket test +WEBSOCKET ws://{{server}}/ws + +=== +Hello! +=== wait-for-server + +### Create settings test +POST http://{{server}}/settings/create +Content-Type: application/json +Cookie: {{tf}} + +{ + "test1": "test1", + "test2": "test2", + "test3": "test3" +} + +### Get settings +GET http://{{server}}/settings?keys=test1,test2,test3 +Cookie: {{tf}} + +### Get telegrams +GET http://{{server}}/telegrams +Cookie: {{tf}} + +### Change telegrams +POST http://{{server}}/telegrams/change?telegramId={{telegramId}} +Content-Type: application/json +Cookie: {{tf}} + +### Telegram Create test +POST http://{{server}}/telegram/create +Cookie: {{tf}} + +### Get chats +GET http://{{server}}/telegram/{{telegramId}}/chats +Cookie: {{tf}} + +### Get chat files +GET http://{{server}}/telegram/{{telegramId}}/chat/{{chatId}}/files?fromMessageId=0&type=media&status=all +Cookie: {{tf}} + +### Get chat files count +GET http://{{server}}/telegram/{{telegramId}}/chat/{{chatId}}/files/count +Cookie: {{tf}} + +### Load photo preview +GET http://{{server}}//file/preview?chatId={{chatId}}&messageId={{messageId}} +Cookie: {{tf}} + +### Get download statistics +GET http://{{server}}/telegram/{{telegramId}}/download-statistics +Cookie: {{tf}} + +### Telegram GetMe +POST http://{{server}}/telegram/api/GetMe +Content-Type: application/json +Cookie: {{tf}} + +{} + +### Telegram SetAuthenticationPhoneNumber +POST http://{{server}}/telegram/api/SetAuthenticationPhoneNumber +Content-Type: application/json +Cookie: {{tf}} + +{ + "phoneNumber": "{{telegram_phone}}", + "settings": null +} + +### Telegram CheckAuthenticationCode +POST http://{{server}}/telegram/api/CheckAuthenticationCode +Content-Type: application/json +Cookie: {{tf}} + +{ + "code": "52932" +} + +### Telegram GetChats +POST http://{{server}}/telegram/api/GetChats +Content-Type: application/json +Cookie: {{tf}} + +{ + "chatList": { + "@type": -400991316 + }, + "limit": 10 +} + +### Telegram GetChat +POST http://{{server}}/telegram/api/GetChat +Content-Type: application/json +Cookie: {{tf}} + +{ + "chatId": {{chatId}} +} + +### Telegram LoadChats +POST http://{{server}}/telegram/api/LoadChats +Content-Type: application/json +Cookie: {{tf}} + +{ + "chatList": { + "@type": -400991316 + }, + "limit": 10 +} + +### Telegram SearchChatsOnServer +POST http://{{server}}/telegram/api/SearchChatsOnServer +Content-Type: application/json +Cookie: {{tf}} + +{ + "query": "拾趣", + "limit": 10 +} + +### Telegram SearchChatMessages +POST http://{{server}}/telegram/api/SearchChatMessages +Content-Type: application/json +Cookie: {{tf}} + +{ + "chatId": 1, + "query": "", + "fromMessageId": 0, + "offset": 0, + "limit": 10, + "filter": { + "@type": 1352130963 + } +} diff --git a/web/.env.example b/web/.env.example new file mode 100644 index 0000000..455e5c0 --- /dev/null +++ b/web/.env.example @@ -0,0 +1,4 @@ +# API URL +NEXT_PUBLIC_API_URL="http://localhost:8080" +NEXT_PUBLIC_WS_URL="ws://localhost:8080/ws" +NEXT_PUBLIC_MOCK_DATA=false diff --git a/web/.eslintrc.cjs b/web/.eslintrc.cjs new file mode 100644 index 0000000..547d2aa --- /dev/null +++ b/web/.eslintrc.cjs @@ -0,0 +1,43 @@ +/** @type {import("eslint").Linter.Config} */ +const config = { + "parser": "@typescript-eslint/parser", + "parserOptions": { + "project": true + }, + "plugins": [ + "@typescript-eslint" + ], + "extends": [ + "next/core-web-vitals", + "plugin:@typescript-eslint/recommended-type-checked", + "plugin:@typescript-eslint/stylistic-type-checked" + ], + "rules": { + "@typescript-eslint/array-type": "off", + "@typescript-eslint/consistent-type-definitions": "off", + "@typescript-eslint/no-explicit-any": "off", + "@typescript-eslint/consistent-type-imports": [ + "warn", + { + "prefer": "type-imports", + "fixStyle": "inline-type-imports" + } + ], + "@typescript-eslint/no-unused-vars": [ + "warn", + { + "argsIgnorePattern": "^_" + } + ], + "@typescript-eslint/require-await": "off", + "@typescript-eslint/no-misused-promises": [ + "error", + { + "checksVoidReturn": { + "attributes": false + } + } + ] + } +} +module.exports = config; diff --git a/web/.gitignore b/web/.gitignore new file mode 100644 index 0000000..c24a835 --- /dev/null +++ b/web/.gitignore @@ -0,0 +1,46 @@ +# See https://help.github.com/articles/ignoring-files/ for more about ignoring files. + +# dependencies +/node_modules +/.pnp +.pnp.js + +# testing +/coverage + +# database +/prisma/db.sqlite +/prisma/db.sqlite-journal +db.sqlite + +# next.js +/.next/ +/out/ +next-env.d.ts + +# production +/build + +# misc +.DS_Store +*.pem + +# debug +npm-debug.log* +yarn-debug.log* +yarn-error.log* +.pnpm-debug.log* + +# local env files +# do not commit any .env files to git, except for the .env.example file. https://create.t3.gg/en/usage/env-variables#using-environment-variables +.env +.env*.local + +# vercel +.vercel + +# typescript +*.tsbuildinfo + +# idea files +.idea \ No newline at end of file diff --git a/web/README.md b/web/README.md new file mode 100644 index 0000000..67943c7 --- /dev/null +++ b/web/README.md @@ -0,0 +1,29 @@ +# Create T3 App + +This is a [T3 Stack](https://create.t3.gg/) project bootstrapped with `create-t3-app`. + +## What's next? How do I make an app with this? + +We try to keep this project as simple as possible, so you can start with just the scaffolding we set up for you, and add additional things later when they become necessary. + +If you are not familiar with the different technologies used in this project, please refer to the respective docs. If you still are in the wind, please join our [Discord](https://t3.gg/discord) and ask for help. + +- [Next.js](https://nextjs.org) +- [NextAuth.js](https://next-auth.js.org) +- [Prisma](https://prisma.io) +- [Drizzle](https://orm.drizzle.team) +- [Tailwind CSS](https://tailwindcss.com) +- [tRPC](https://trpc.io) + +## Learn More + +To learn more about the [T3 Stack](https://create.t3.gg/), take a look at the following resources: + +- [Documentation](https://create.t3.gg/) +- [Learn the T3 Stack](https://create.t3.gg/en/faq#what-learning-resources-are-currently-available) — Check out these awesome tutorials + +You can check out the [create-t3-app GitHub repository](https://github.com/t3-oss/create-t3-app) — your feedback and contributions are welcome! + +## How do I deploy this? + +Follow our deployment guides for [Vercel](https://create.t3.gg/en/deployment/vercel), [Netlify](https://create.t3.gg/en/deployment/netlify) and [Docker](https://create.t3.gg/en/deployment/docker) for more information. diff --git a/web/components.json b/web/components.json new file mode 100644 index 0000000..0eda219 --- /dev/null +++ b/web/components.json @@ -0,0 +1,21 @@ +{ + "$schema": "https://ui.shadcn.com/schema.json", + "style": "new-york", + "rsc": true, + "tsx": true, + "tailwind": { + "config": "tailwind.config.ts", + "css": "src/styles/globals.css", + "baseColor": "neutral", + "cssVariables": true, + "prefix": "" + }, + "aliases": { + "components": "@/components", + "utils": "@/lib/utils", + "ui": "@/components/ui", + "lib": "@/lib", + "hooks": "@/hooks" + }, + "iconLibrary": "lucide" +} diff --git a/web/next.config.js b/web/next.config.js new file mode 100644 index 0000000..1b34170 --- /dev/null +++ b/web/next.config.js @@ -0,0 +1,21 @@ +/** + * Run `build` or `dev` with `SKIP_ENV_VALIDATION` to skip env validation. This is especially useful + * for Docker builds. + */ +import "./src/env.js"; + +/** @type {import("next").NextConfig} */ +const config = { + async redirects() { + return [ + { + source: "/account", + destination: "/", + permanent: true, + }, + ]; + }, + output: "standalone", +}; + +export default config; diff --git a/web/package-lock.json b/web/package-lock.json new file mode 100644 index 0000000..32dc756 --- /dev/null +++ b/web/package-lock.json @@ -0,0 +1,11725 @@ +{ + "name": "telegram-files-web", + "version": "0.2.0", + "lockfileVersion": 2, + "requires": true, + "packages": { + "": { + "name": "telegram-files-web", + "version": "0.2.0", + "dependencies": { + "@dnd-kit/core": "^6.2.0", + "@dnd-kit/modifiers": "^8.0.0", + "@dnd-kit/sortable": "^9.0.0", + "@hookform/resolvers": "^3.9.1", + "@radix-ui/react-avatar": "^1.1.1", + "@radix-ui/react-checkbox": "^1.1.2", + "@radix-ui/react-dialog": "^1.1.2", + "@radix-ui/react-dropdown-menu": "^2.1.2", + "@radix-ui/react-label": "^2.1.0", + "@radix-ui/react-popover": "^1.1.2", + "@radix-ui/react-progress": "^1.1.0", + "@radix-ui/react-select": "^2.1.2", + "@radix-ui/react-slot": "^1.1.0", + "@radix-ui/react-tabs": "^1.1.1", + "@radix-ui/react-toast": "^1.2.2", + "@radix-ui/react-tooltip": "^1.1.4", + "@t3-oss/env-nextjs": "^0.10.1", + "class-variance-authority": "^0.7.1", + "clsx": "^2.1.1", + "cmdk": "^1.0.0", + "date-fns": "^4.1.0", + "framer-motion": "^11.15.0", + "geist": "^1.3.0", + "input-otp": "^1.4.1", + "lucide-react": "^0.462.0", + "next": "^15.0.1", + "pretty-bytes": "^6.1.1", + "react": "^18.3.1", + "react-dom": "^18.3.1", + "react-hook-form": "^7.53.2", + "react-use-websocket": "^4.11.1", + "spoiled": "^0.3.2", + "swr": "^2.2.5", + "tailwind-merge": "^2.5.5", + "tailwindcss-animate": "^1.0.7", + "use-debounce": "^10.0.4", + "zod": "^3.23.8" + }, + "devDependencies": { + "@types/eslint": "^8.56.10", + "@types/node": "^20.14.10", + "@types/react": "^18.3.3", + "@types/react-dom": "^18.3.0", + "@typescript-eslint/eslint-plugin": "^8.1.0", + "@typescript-eslint/parser": "^8.1.0", + "eslint": "^8.57.0", + "eslint-config-next": "^15.0.1", + "postcss": "^8.4.39", + "prettier": "^3.3.2", + "prettier-plugin-tailwindcss": "^0.6.5", + "tailwindcss": "^3.4.3", + "typescript": "^5.5.3" + } + }, + "node_modules/@alloc/quick-lru": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/@alloc/quick-lru/-/quick-lru-5.2.0.tgz", + "integrity": "sha512-UrcABB+4bUrFABwbluTIBErXwvbsU/V7TZWfmbgJfbkwiBuziS9gxdODUyuiecfdGQ85jglMW6juS3+z5TsKLw==", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@babel/runtime": { + "version": "7.26.0", + "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.26.0.tgz", + "integrity": "sha512-FDSOghenHTiToteC/QRlv2q3DhPZ/oOXTBoirfWNx1Cx3TMVcGWQtMMmQcSvb/JjpNeGzx8Pq/b4fKEJuWm1sw==", + "dependencies": { + "regenerator-runtime": "^0.14.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@dnd-kit/accessibility": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/@dnd-kit/accessibility/-/accessibility-3.1.1.tgz", + "integrity": "sha512-2P+YgaXF+gRsIihwwY1gCsQSYnu9Zyj2py8kY5fFvUM1qm2WA2u639R6YNVfU4GWr+ZM5mqEsfHZZLoRONbemw==", + "dependencies": { + "tslib": "^2.0.0" + }, + "peerDependencies": { + "react": ">=16.8.0" + } + }, + "node_modules/@dnd-kit/core": { + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/@dnd-kit/core/-/core-6.2.0.tgz", + "integrity": "sha512-KVK/CJmaYGTxTPU6P0+Oy4itgffTUa80B8317sXzfOr1qUzSL29jE7Th11llXiu2haB7B9Glpzo2CDElin+geQ==", + "dependencies": { + "@dnd-kit/accessibility": "^3.1.1", + "@dnd-kit/utilities": "^3.2.2", + "tslib": "^2.0.0" + }, + "peerDependencies": { + "react": ">=16.8.0", + "react-dom": ">=16.8.0" + } + }, + "node_modules/@dnd-kit/modifiers": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/@dnd-kit/modifiers/-/modifiers-8.0.0.tgz", + "integrity": "sha512-oPZ0JoKtVSK9hVHSBDKG1oCLgnZbpxuH/SMnyDtXkNhn9+SF1+98DlWILFYxIT8faOS/GgfhlNFREmym6oqrEg==", + "dependencies": { + "@dnd-kit/utilities": "^3.2.2", + "tslib": "^2.0.0" + }, + "peerDependencies": { + "@dnd-kit/core": "^6.2.0", + "react": ">=16.8.0" + } + }, + "node_modules/@dnd-kit/sortable": { + "version": "9.0.0", + "resolved": "https://registry.npmjs.org/@dnd-kit/sortable/-/sortable-9.0.0.tgz", + "integrity": "sha512-3/9r8Mmba0nKTbo8kPnVSFZKf/VSy94nXZ3aUwzPEh78j/LooQ/EFKRZENak4PHKBkN53mgTF/z+Sd8H+FcAnQ==", + "dependencies": { + "@dnd-kit/utilities": "^3.2.2", + "tslib": "^2.0.0" + }, + "peerDependencies": { + "@dnd-kit/core": "^6.2.0", + "react": ">=16.8.0" + } + }, + "node_modules/@dnd-kit/utilities": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/@dnd-kit/utilities/-/utilities-3.2.2.tgz", + "integrity": "sha512-+MKAJEOfaBe5SmV6t34p80MMKhjvUz0vRrvVJbPT0WElzaOJ/1xs+D+KDv+tD/NE5ujfrChEcshd4fLn0wpiqg==", + "dependencies": { + "tslib": "^2.0.0" + }, + "peerDependencies": { + "react": ">=16.8.0" + } + }, + "node_modules/@emnapi/runtime": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/@emnapi/runtime/-/runtime-1.3.1.tgz", + "integrity": "sha512-kEBmG8KyqtxJZv+ygbEim+KCGtIq1fC22Ms3S4ziXmYKm8uyoLX0MHONVKwp+9opg390VaKRNt4a7A9NwmpNhw==", + "optional": true, + "dependencies": { + "tslib": "^2.4.0" + } + }, + "node_modules/@eslint-community/regexpp": { + "version": "4.12.1", + "resolved": "https://registry.npmjs.org/@eslint-community/regexpp/-/regexpp-4.12.1.tgz", + "integrity": "sha512-CCZCDJuduB9OUkFkY2IgppNZMi2lBQgD2qzwXkEia16cge2pijY/aXi96CJMquDMn3nJdlPV1A5KrJEXwfLNzQ==", + "dev": true, + "engines": { + "node": "^12.0.0 || ^14.0.0 || >=16.0.0" + } + }, + "node_modules/@eslint/eslintrc": { + "version": "2.1.4", + "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-2.1.4.tgz", + "integrity": "sha512-269Z39MS6wVJtsoUl10L60WdkhJVdPG24Q4eZTH3nnF6lpvSShEK3wQjDX9JRWAUPvPh7COouPpU9IrqaZFvtQ==", + "dev": true, + "dependencies": { + "ajv": "^6.12.4", + "debug": "^4.3.2", + "espree": "^9.6.0", + "globals": "^13.19.0", + "ignore": "^5.2.0", + "import-fresh": "^3.2.1", + "js-yaml": "^4.1.0", + "minimatch": "^3.1.2", + "strip-json-comments": "^3.1.1" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/@eslint/eslintrc/node_modules/brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "dev": true, + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "node_modules/@eslint/eslintrc/node_modules/minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "dev": true, + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, + "node_modules/@eslint/js": { + "version": "8.57.1", + "resolved": "https://registry.npmjs.org/@eslint/js/-/js-8.57.1.tgz", + "integrity": "sha512-d9zaMRSTIKDLhctzH12MtXvJKSSUhaHcjV+2Z+GK+EEY7XKpP5yR4x+N3TAcHTcu963nIr+TMcCb4DBCYX1z6Q==", + "dev": true, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + } + }, + "node_modules/@floating-ui/core": { + "version": "1.6.8", + "resolved": "https://registry.npmjs.org/@floating-ui/core/-/core-1.6.8.tgz", + "integrity": "sha512-7XJ9cPU+yI2QeLS+FCSlqNFZJq8arvswefkZrYI1yQBbftw6FyrZOxYSh+9S7z7TpeWlRt9zJ5IhM1WIL334jA==", + "dependencies": { + "@floating-ui/utils": "^0.2.8" + } + }, + "node_modules/@floating-ui/dom": { + "version": "1.6.12", + "resolved": "https://registry.npmjs.org/@floating-ui/dom/-/dom-1.6.12.tgz", + "integrity": "sha512-NP83c0HjokcGVEMeoStg317VD9W7eDlGK7457dMBANbKA6GJZdc7rjujdgqzTaz93jkGgc5P/jeWbaCHnMNc+w==", + "dependencies": { + "@floating-ui/core": "^1.6.0", + "@floating-ui/utils": "^0.2.8" + } + }, + "node_modules/@floating-ui/react-dom": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/@floating-ui/react-dom/-/react-dom-2.1.2.tgz", + "integrity": "sha512-06okr5cgPzMNBy+Ycse2A6udMi4bqwW/zgBF/rwjcNqWkyr82Mcg8b0vjX8OJpZFy/FKjJmw6wV7t44kK6kW7A==", + "dependencies": { + "@floating-ui/dom": "^1.0.0" + }, + "peerDependencies": { + "react": ">=16.8.0", + "react-dom": ">=16.8.0" + } + }, + "node_modules/@floating-ui/utils": { + "version": "0.2.8", + "resolved": "https://registry.npmjs.org/@floating-ui/utils/-/utils-0.2.8.tgz", + "integrity": "sha512-kym7SodPp8/wloecOpcmSnWJsK7M0E5Wg8UcFA+uO4B9s5d0ywXOEro/8HM9x0rW+TljRzul/14UYz3TleT3ig==" + }, + "node_modules/@hookform/resolvers": { + "version": "3.9.1", + "resolved": "https://registry.npmjs.org/@hookform/resolvers/-/resolvers-3.9.1.tgz", + "integrity": "sha512-ud2HqmGBM0P0IABqoskKWI6PEf6ZDDBZkFqe2Vnl+mTHCEHzr3ISjjZyCwTjC/qpL25JC9aIDkloQejvMeq0ug==", + "peerDependencies": { + "react-hook-form": "^7.0.0" + } + }, + "node_modules/@humanwhocodes/config-array": { + "version": "0.13.0", + "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.13.0.tgz", + "integrity": "sha512-DZLEEqFWQFiyK6h5YIeynKx7JlvCYWL0cImfSRXZ9l4Sg2efkFGTuFf6vzXjK1cq6IYkU+Eg/JizXw+TD2vRNw==", + "deprecated": "Use @eslint/config-array instead", + "dev": true, + "dependencies": { + "@humanwhocodes/object-schema": "^2.0.3", + "debug": "^4.3.1", + "minimatch": "^3.0.5" + }, + "engines": { + "node": ">=10.10.0" + } + }, + "node_modules/@humanwhocodes/config-array/node_modules/brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "dev": true, + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "node_modules/@humanwhocodes/config-array/node_modules/minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "dev": true, + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, + "node_modules/@humanwhocodes/module-importer": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@humanwhocodes/module-importer/-/module-importer-1.0.1.tgz", + "integrity": "sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==", + "dev": true, + "engines": { + "node": ">=12.22" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/nzakas" + } + }, + "node_modules/@humanwhocodes/object-schema": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-2.0.3.tgz", + "integrity": "sha512-93zYdMES/c1D69yZiKDBj0V24vqNzB/koF26KPaagAfd3P/4gUlh3Dys5ogAK+Exi9QyzlD8x/08Zt7wIKcDcA==", + "deprecated": "Use @eslint/object-schema instead", + "dev": true + }, + "node_modules/@img/sharp-darwin-arm64": { + "version": "0.33.5", + "resolved": "https://registry.npmjs.org/@img/sharp-darwin-arm64/-/sharp-darwin-arm64-0.33.5.tgz", + "integrity": "sha512-UT4p+iz/2H4twwAoLCqfA9UH5pI6DggwKEGuaPy7nCVQ8ZsiY5PIcrRvD1DzuY3qYL07NtIQcWnBSY/heikIFQ==", + "cpu": [ + "arm64" + ], + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": "^18.17.0 || ^20.3.0 || >=21.0.0" + }, + "funding": { + "url": "https://opencollective.com/libvips" + }, + "optionalDependencies": { + "@img/sharp-libvips-darwin-arm64": "1.0.4" + } + }, + "node_modules/@img/sharp-darwin-x64": { + "version": "0.33.5", + "resolved": "https://registry.npmjs.org/@img/sharp-darwin-x64/-/sharp-darwin-x64-0.33.5.tgz", + "integrity": "sha512-fyHac4jIc1ANYGRDxtiqelIbdWkIuQaI84Mv45KvGRRxSAa7o7d1ZKAOBaYbnepLC1WqxfpimdeWfvqqSGwR2Q==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": "^18.17.0 || ^20.3.0 || >=21.0.0" + }, + "funding": { + "url": "https://opencollective.com/libvips" + }, + "optionalDependencies": { + "@img/sharp-libvips-darwin-x64": "1.0.4" + } + }, + "node_modules/@img/sharp-libvips-darwin-arm64": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/@img/sharp-libvips-darwin-arm64/-/sharp-libvips-darwin-arm64-1.0.4.tgz", + "integrity": "sha512-XblONe153h0O2zuFfTAbQYAX2JhYmDHeWikp1LM9Hul9gVPjFY427k6dFEcOL72O01QxQsWi761svJ/ev9xEDg==", + "cpu": [ + "arm64" + ], + "optional": true, + "os": [ + "darwin" + ], + "funding": { + "url": "https://opencollective.com/libvips" + } + }, + "node_modules/@img/sharp-libvips-darwin-x64": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/@img/sharp-libvips-darwin-x64/-/sharp-libvips-darwin-x64-1.0.4.tgz", + "integrity": "sha512-xnGR8YuZYfJGmWPvmlunFaWJsb9T/AO2ykoP3Fz/0X5XV2aoYBPkX6xqCQvUTKKiLddarLaxpzNe+b1hjeWHAQ==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "darwin" + ], + "funding": { + "url": "https://opencollective.com/libvips" + } + }, + "node_modules/@img/sharp-libvips-linux-arm": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linux-arm/-/sharp-libvips-linux-arm-1.0.5.tgz", + "integrity": "sha512-gvcC4ACAOPRNATg/ov8/MnbxFDJqf/pDePbBnuBDcjsI8PssmjoKMAz4LtLaVi+OnSb5FK/yIOamqDwGmXW32g==", + "cpu": [ + "arm" + ], + "optional": true, + "os": [ + "linux" + ], + "funding": { + "url": "https://opencollective.com/libvips" + } + }, + "node_modules/@img/sharp-libvips-linux-arm64": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linux-arm64/-/sharp-libvips-linux-arm64-1.0.4.tgz", + "integrity": "sha512-9B+taZ8DlyyqzZQnoeIvDVR/2F4EbMepXMc/NdVbkzsJbzkUjhXv/70GQJ7tdLA4YJgNP25zukcxpX2/SueNrA==", + "cpu": [ + "arm64" + ], + "optional": true, + "os": [ + "linux" + ], + "funding": { + "url": "https://opencollective.com/libvips" + } + }, + "node_modules/@img/sharp-libvips-linux-s390x": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linux-s390x/-/sharp-libvips-linux-s390x-1.0.4.tgz", + "integrity": "sha512-u7Wz6ntiSSgGSGcjZ55im6uvTrOxSIS8/dgoVMoiGE9I6JAfU50yH5BoDlYA1tcuGS7g/QNtetJnxA6QEsCVTA==", + "cpu": [ + "s390x" + ], + "optional": true, + "os": [ + "linux" + ], + "funding": { + "url": "https://opencollective.com/libvips" + } + }, + "node_modules/@img/sharp-libvips-linux-x64": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linux-x64/-/sharp-libvips-linux-x64-1.0.4.tgz", + "integrity": "sha512-MmWmQ3iPFZr0Iev+BAgVMb3ZyC4KeFc3jFxnNbEPas60e1cIfevbtuyf9nDGIzOaW9PdnDciJm+wFFaTlj5xYw==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "linux" + ], + "funding": { + "url": "https://opencollective.com/libvips" + } + }, + "node_modules/@img/sharp-libvips-linuxmusl-arm64": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linuxmusl-arm64/-/sharp-libvips-linuxmusl-arm64-1.0.4.tgz", + "integrity": "sha512-9Ti+BbTYDcsbp4wfYib8Ctm1ilkugkA/uscUn6UXK1ldpC1JjiXbLfFZtRlBhjPZ5o1NCLiDbg8fhUPKStHoTA==", + "cpu": [ + "arm64" + ], + "optional": true, + "os": [ + "linux" + ], + "funding": { + "url": "https://opencollective.com/libvips" + } + }, + "node_modules/@img/sharp-libvips-linuxmusl-x64": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linuxmusl-x64/-/sharp-libvips-linuxmusl-x64-1.0.4.tgz", + "integrity": "sha512-viYN1KX9m+/hGkJtvYYp+CCLgnJXwiQB39damAO7WMdKWlIhmYTfHjwSbQeUK/20vY154mwezd9HflVFM1wVSw==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "linux" + ], + "funding": { + "url": "https://opencollective.com/libvips" + } + }, + "node_modules/@img/sharp-linux-arm": { + "version": "0.33.5", + "resolved": "https://registry.npmjs.org/@img/sharp-linux-arm/-/sharp-linux-arm-0.33.5.tgz", + "integrity": "sha512-JTS1eldqZbJxjvKaAkxhZmBqPRGmxgu+qFKSInv8moZ2AmT5Yib3EQ1c6gp493HvrvV8QgdOXdyaIBrhvFhBMQ==", + "cpu": [ + "arm" + ], + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": "^18.17.0 || ^20.3.0 || >=21.0.0" + }, + "funding": { + "url": "https://opencollective.com/libvips" + }, + "optionalDependencies": { + "@img/sharp-libvips-linux-arm": "1.0.5" + } + }, + "node_modules/@img/sharp-linux-arm64": { + "version": "0.33.5", + "resolved": "https://registry.npmjs.org/@img/sharp-linux-arm64/-/sharp-linux-arm64-0.33.5.tgz", + "integrity": "sha512-JMVv+AMRyGOHtO1RFBiJy/MBsgz0x4AWrT6QoEVVTyh1E39TrCUpTRI7mx9VksGX4awWASxqCYLCV4wBZHAYxA==", + "cpu": [ + "arm64" + ], + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": "^18.17.0 || ^20.3.0 || >=21.0.0" + }, + "funding": { + "url": "https://opencollective.com/libvips" + }, + "optionalDependencies": { + "@img/sharp-libvips-linux-arm64": "1.0.4" + } + }, + "node_modules/@img/sharp-linux-s390x": { + "version": "0.33.5", + "resolved": "https://registry.npmjs.org/@img/sharp-linux-s390x/-/sharp-linux-s390x-0.33.5.tgz", + "integrity": "sha512-y/5PCd+mP4CA/sPDKl2961b+C9d+vPAveS33s6Z3zfASk2j5upL6fXVPZi7ztePZ5CuH+1kW8JtvxgbuXHRa4Q==", + "cpu": [ + "s390x" + ], + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": "^18.17.0 || ^20.3.0 || >=21.0.0" + }, + "funding": { + "url": "https://opencollective.com/libvips" + }, + "optionalDependencies": { + "@img/sharp-libvips-linux-s390x": "1.0.4" + } + }, + "node_modules/@img/sharp-linux-x64": { + "version": "0.33.5", + "resolved": "https://registry.npmjs.org/@img/sharp-linux-x64/-/sharp-linux-x64-0.33.5.tgz", + "integrity": "sha512-opC+Ok5pRNAzuvq1AG0ar+1owsu842/Ab+4qvU879ippJBHvyY5n2mxF1izXqkPYlGuP/M556uh53jRLJmzTWA==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": "^18.17.0 || ^20.3.0 || >=21.0.0" + }, + "funding": { + "url": "https://opencollective.com/libvips" + }, + "optionalDependencies": { + "@img/sharp-libvips-linux-x64": "1.0.4" + } + }, + "node_modules/@img/sharp-linuxmusl-arm64": { + "version": "0.33.5", + "resolved": "https://registry.npmjs.org/@img/sharp-linuxmusl-arm64/-/sharp-linuxmusl-arm64-0.33.5.tgz", + "integrity": "sha512-XrHMZwGQGvJg2V/oRSUfSAfjfPxO+4DkiRh6p2AFjLQztWUuY/o8Mq0eMQVIY7HJ1CDQUJlxGGZRw1a5bqmd1g==", + "cpu": [ + "arm64" + ], + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": "^18.17.0 || ^20.3.0 || >=21.0.0" + }, + "funding": { + "url": "https://opencollective.com/libvips" + }, + "optionalDependencies": { + "@img/sharp-libvips-linuxmusl-arm64": "1.0.4" + } + }, + "node_modules/@img/sharp-linuxmusl-x64": { + "version": "0.33.5", + "resolved": "https://registry.npmjs.org/@img/sharp-linuxmusl-x64/-/sharp-linuxmusl-x64-0.33.5.tgz", + "integrity": "sha512-WT+d/cgqKkkKySYmqoZ8y3pxx7lx9vVejxW/W4DOFMYVSkErR+w7mf2u8m/y4+xHe7yY9DAXQMWQhpnMuFfScw==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": "^18.17.0 || ^20.3.0 || >=21.0.0" + }, + "funding": { + "url": "https://opencollective.com/libvips" + }, + "optionalDependencies": { + "@img/sharp-libvips-linuxmusl-x64": "1.0.4" + } + }, + "node_modules/@img/sharp-wasm32": { + "version": "0.33.5", + "resolved": "https://registry.npmjs.org/@img/sharp-wasm32/-/sharp-wasm32-0.33.5.tgz", + "integrity": "sha512-ykUW4LVGaMcU9lu9thv85CbRMAwfeadCJHRsg2GmeRa/cJxsVY9Rbd57JcMxBkKHag5U/x7TSBpScF4U8ElVzg==", + "cpu": [ + "wasm32" + ], + "optional": true, + "dependencies": { + "@emnapi/runtime": "^1.2.0" + }, + "engines": { + "node": "^18.17.0 || ^20.3.0 || >=21.0.0" + }, + "funding": { + "url": "https://opencollective.com/libvips" + } + }, + "node_modules/@img/sharp-win32-ia32": { + "version": "0.33.5", + "resolved": "https://registry.npmjs.org/@img/sharp-win32-ia32/-/sharp-win32-ia32-0.33.5.tgz", + "integrity": "sha512-T36PblLaTwuVJ/zw/LaH0PdZkRz5rd3SmMHX8GSmR7vtNSP5Z6bQkExdSK7xGWyxLw4sUknBuugTelgw2faBbQ==", + "cpu": [ + "ia32" + ], + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": "^18.17.0 || ^20.3.0 || >=21.0.0" + }, + "funding": { + "url": "https://opencollective.com/libvips" + } + }, + "node_modules/@img/sharp-win32-x64": { + "version": "0.33.5", + "resolved": "https://registry.npmjs.org/@img/sharp-win32-x64/-/sharp-win32-x64-0.33.5.tgz", + "integrity": "sha512-MpY/o8/8kj+EcnxwvrP4aTJSWw/aZ7JIGR4aBeZkZw5B7/Jn+tY9/VNwtcoGmdT7GfggGIU4kygOMSbYnOrAbg==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": "^18.17.0 || ^20.3.0 || >=21.0.0" + }, + "funding": { + "url": "https://opencollective.com/libvips" + } + }, + "node_modules/@isaacs/cliui": { + "version": "8.0.2", + "resolved": "https://registry.npmjs.org/@isaacs/cliui/-/cliui-8.0.2.tgz", + "integrity": "sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==", + "dependencies": { + "string-width": "^5.1.2", + "string-width-cjs": "npm:string-width@^4.2.0", + "strip-ansi": "^7.0.1", + "strip-ansi-cjs": "npm:strip-ansi@^6.0.1", + "wrap-ansi": "^8.1.0", + "wrap-ansi-cjs": "npm:wrap-ansi@^7.0.0" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/@isaacs/cliui/node_modules/ansi-regex": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.1.0.tgz", + "integrity": "sha512-7HSX4QQb4CspciLpVFwyRe79O3xsIZDDLER21kERQ71oaPodF8jL725AgJMFAYbooIqolJoRLuM81SpeUkpkvA==", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-regex?sponsor=1" + } + }, + "node_modules/@isaacs/cliui/node_modules/strip-ansi": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.0.tgz", + "integrity": "sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==", + "dependencies": { + "ansi-regex": "^6.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/strip-ansi?sponsor=1" + } + }, + "node_modules/@jridgewell/gen-mapping": { + "version": "0.3.5", + "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.5.tgz", + "integrity": "sha512-IzL8ZoEDIBRWEzlCcRhOaCupYyN5gdIK+Q6fbFdPDg6HqX6jpkItn7DFIpW9LQzXG6Df9sA7+OKnq0qlz/GaQg==", + "dependencies": { + "@jridgewell/set-array": "^1.2.1", + "@jridgewell/sourcemap-codec": "^1.4.10", + "@jridgewell/trace-mapping": "^0.3.24" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/resolve-uri": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.2.tgz", + "integrity": "sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==", + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/set-array": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.2.1.tgz", + "integrity": "sha512-R8gLRTZeyp03ymzP/6Lil/28tGeGEzhx1q2k703KGWRAI1VdvPIXdG70VJc2pAMw3NA6JKL5hhFu1sJX0Mnn/A==", + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/sourcemap-codec": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.0.tgz", + "integrity": "sha512-gv3ZRaISU3fjPAgNsriBRqGWQL6quFx04YMPW/zD8XMLsU32mhCCbfbO6KZFLjvYpCZ8zyDEgqsgf+PwPaM7GQ==" + }, + "node_modules/@jridgewell/trace-mapping": { + "version": "0.3.25", + "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.25.tgz", + "integrity": "sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ==", + "dependencies": { + "@jridgewell/resolve-uri": "^3.1.0", + "@jridgewell/sourcemap-codec": "^1.4.14" + } + }, + "node_modules/@next/env": { + "version": "15.0.3", + "resolved": "https://registry.npmjs.org/@next/env/-/env-15.0.3.tgz", + "integrity": "sha512-t9Xy32pjNOvVn2AS+Utt6VmyrshbpfUMhIjFO60gI58deSo/KgLOp31XZ4O+kY/Is8WAGYwA5gR7kOb1eORDBA==" + }, + "node_modules/@next/eslint-plugin-next": { + "version": "15.0.3", + "resolved": "https://registry.npmjs.org/@next/eslint-plugin-next/-/eslint-plugin-next-15.0.3.tgz", + "integrity": "sha512-3Ln/nHq2V+v8uIaxCR6YfYo7ceRgZNXfTd3yW1ukTaFbO+/I8jNakrjYWODvG9BuR2v5kgVtH/C8r0i11quOgw==", + "dev": true, + "dependencies": { + "fast-glob": "3.3.1" + } + }, + "node_modules/@next/eslint-plugin-next/node_modules/fast-glob": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.1.tgz", + "integrity": "sha512-kNFPyjhh5cKjrUltxs+wFx+ZkbRaxxmZ+X0ZU31SOsxCEtP9VPgtq2teZw1DebupL5GmDaNQ6yKMMVcM41iqDg==", + "dev": true, + "dependencies": { + "@nodelib/fs.stat": "^2.0.2", + "@nodelib/fs.walk": "^1.2.3", + "glob-parent": "^5.1.2", + "merge2": "^1.3.0", + "micromatch": "^4.0.4" + }, + "engines": { + "node": ">=8.6.0" + } + }, + "node_modules/@next/eslint-plugin-next/node_modules/glob-parent": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "dev": true, + "dependencies": { + "is-glob": "^4.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/@next/swc-darwin-arm64": { + "version": "15.0.3", + "resolved": "https://registry.npmjs.org/@next/swc-darwin-arm64/-/swc-darwin-arm64-15.0.3.tgz", + "integrity": "sha512-s3Q/NOorCsLYdCKvQlWU+a+GeAd3C8Rb3L1YnetsgwXzhc3UTWrtQpB/3eCjFOdGUj5QmXfRak12uocd1ZiiQw==", + "cpu": [ + "arm64" + ], + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@next/swc-darwin-x64": { + "version": "15.0.3", + "resolved": "https://registry.npmjs.org/@next/swc-darwin-x64/-/swc-darwin-x64-15.0.3.tgz", + "integrity": "sha512-Zxl/TwyXVZPCFSf0u2BNj5sE0F2uR6iSKxWpq4Wlk/Sv9Ob6YCKByQTkV2y6BCic+fkabp9190hyrDdPA/dNrw==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@next/swc-linux-arm64-gnu": { + "version": "15.0.3", + "resolved": "https://registry.npmjs.org/@next/swc-linux-arm64-gnu/-/swc-linux-arm64-gnu-15.0.3.tgz", + "integrity": "sha512-T5+gg2EwpsY3OoaLxUIofmMb7ohAUlcNZW0fPQ6YAutaWJaxt1Z1h+8zdl4FRIOr5ABAAhXtBcpkZNwUcKI2fw==", + "cpu": [ + "arm64" + ], + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@next/swc-linux-arm64-musl": { + "version": "15.0.3", + "resolved": "https://registry.npmjs.org/@next/swc-linux-arm64-musl/-/swc-linux-arm64-musl-15.0.3.tgz", + "integrity": "sha512-WkAk6R60mwDjH4lG/JBpb2xHl2/0Vj0ZRu1TIzWuOYfQ9tt9NFsIinI1Epma77JVgy81F32X/AeD+B2cBu/YQA==", + "cpu": [ + "arm64" + ], + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@next/swc-linux-x64-gnu": { + "version": "15.0.3", + "resolved": "https://registry.npmjs.org/@next/swc-linux-x64-gnu/-/swc-linux-x64-gnu-15.0.3.tgz", + "integrity": "sha512-gWL/Cta1aPVqIGgDb6nxkqy06DkwJ9gAnKORdHWX1QBbSZZB+biFYPFti8aKIQL7otCE1pjyPaXpFzGeG2OS2w==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@next/swc-linux-x64-musl": { + "version": "15.0.3", + "resolved": "https://registry.npmjs.org/@next/swc-linux-x64-musl/-/swc-linux-x64-musl-15.0.3.tgz", + "integrity": "sha512-QQEMwFd8r7C0GxQS62Zcdy6GKx999I/rTO2ubdXEe+MlZk9ZiinsrjwoiBL5/57tfyjikgh6GOU2WRQVUej3UA==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@next/swc-win32-arm64-msvc": { + "version": "15.0.3", + "resolved": "https://registry.npmjs.org/@next/swc-win32-arm64-msvc/-/swc-win32-arm64-msvc-15.0.3.tgz", + "integrity": "sha512-9TEp47AAd/ms9fPNgtgnT7F3M1Hf7koIYYWCMQ9neOwjbVWJsHZxrFbI3iEDJ8rf1TDGpmHbKxXf2IFpAvheIQ==", + "cpu": [ + "arm64" + ], + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@next/swc-win32-x64-msvc": { + "version": "15.0.3", + "resolved": "https://registry.npmjs.org/@next/swc-win32-x64-msvc/-/swc-win32-x64-msvc-15.0.3.tgz", + "integrity": "sha512-VNAz+HN4OGgvZs6MOoVfnn41kBzT+M+tB+OK4cww6DNyWS6wKaDpaAm/qLeOUbnMh0oVx1+mg0uoYARF69dJyA==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@nodelib/fs.scandir": { + "version": "2.1.5", + "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", + "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==", + "dependencies": { + "@nodelib/fs.stat": "2.0.5", + "run-parallel": "^1.1.9" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/@nodelib/fs.stat": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz", + "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==", + "engines": { + "node": ">= 8" + } + }, + "node_modules/@nodelib/fs.walk": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz", + "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==", + "dependencies": { + "@nodelib/fs.scandir": "2.1.5", + "fastq": "^1.6.0" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/@nolyfill/is-core-module": { + "version": "1.0.39", + "resolved": "https://registry.npmjs.org/@nolyfill/is-core-module/-/is-core-module-1.0.39.tgz", + "integrity": "sha512-nn5ozdjYQpUCZlWGuxcJY/KpxkWQs4DcbMCmKojjyrYDEAGy4Ce19NN4v5MduafTwJlbKc99UA8YhSVqq9yPZA==", + "dev": true, + "engines": { + "node": ">=12.4.0" + } + }, + "node_modules/@pkgjs/parseargs": { + "version": "0.11.0", + "resolved": "https://registry.npmjs.org/@pkgjs/parseargs/-/parseargs-0.11.0.tgz", + "integrity": "sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==", + "optional": true, + "engines": { + "node": ">=14" + } + }, + "node_modules/@radix-ui/number": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@radix-ui/number/-/number-1.1.0.tgz", + "integrity": "sha512-V3gRzhVNU1ldS5XhAPTom1fOIo4ccrjjJgmE+LI2h/WaFpHmx0MQApT+KZHnx8abG6Avtfcz4WoEciMnpFT3HQ==" + }, + "node_modules/@radix-ui/primitive": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@radix-ui/primitive/-/primitive-1.1.0.tgz", + "integrity": "sha512-4Z8dn6Upk0qk4P74xBhZ6Hd/w0mPEzOOLxy4xiPXOXqjF7jZS0VAKk7/x/H6FyY2zCkYJqePf1G5KmkmNJ4RBA==" + }, + "node_modules/@radix-ui/react-arrow": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@radix-ui/react-arrow/-/react-arrow-1.1.0.tgz", + "integrity": "sha512-FmlW1rCg7hBpEBwFbjHwCW6AmWLQM6g/v0Sn8XbP9NvmSZ2San1FpQeyPtufzOMSIx7Y4dzjlHoifhp+7NkZhw==", + "dependencies": { + "@radix-ui/react-primitive": "2.0.0" + }, + "peerDependencies": { + "@types/react": "*", + "@types/react-dom": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", + "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-avatar": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@radix-ui/react-avatar/-/react-avatar-1.1.1.tgz", + "integrity": "sha512-eoOtThOmxeoizxpX6RiEsQZ2wj5r4+zoeqAwO0cBaFQGjJwIH3dIX0OCxNrCyrrdxG+vBweMETh3VziQG7c1kw==", + "dependencies": { + "@radix-ui/react-context": "1.1.1", + "@radix-ui/react-primitive": "2.0.0", + "@radix-ui/react-use-callback-ref": "1.1.0", + "@radix-ui/react-use-layout-effect": "1.1.0" + }, + "peerDependencies": { + "@types/react": "*", + "@types/react-dom": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", + "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-checkbox": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@radix-ui/react-checkbox/-/react-checkbox-1.1.2.tgz", + "integrity": "sha512-/i0fl686zaJbDQLNKrkCbMyDm6FQMt4jg323k7HuqitoANm9sE23Ql8yOK3Wusk34HSLKDChhMux05FnP6KUkw==", + "dependencies": { + "@radix-ui/primitive": "1.1.0", + "@radix-ui/react-compose-refs": "1.1.0", + "@radix-ui/react-context": "1.1.1", + "@radix-ui/react-presence": "1.1.1", + "@radix-ui/react-primitive": "2.0.0", + "@radix-ui/react-use-controllable-state": "1.1.0", + "@radix-ui/react-use-previous": "1.1.0", + "@radix-ui/react-use-size": "1.1.0" + }, + "peerDependencies": { + "@types/react": "*", + "@types/react-dom": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", + "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-collection": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@radix-ui/react-collection/-/react-collection-1.1.0.tgz", + "integrity": "sha512-GZsZslMJEyo1VKm5L1ZJY8tGDxZNPAoUeQUIbKeJfoi7Q4kmig5AsgLMYYuyYbfjd8fBmFORAIwYAkXMnXZgZw==", + "dependencies": { + "@radix-ui/react-compose-refs": "1.1.0", + "@radix-ui/react-context": "1.1.0", + "@radix-ui/react-primitive": "2.0.0", + "@radix-ui/react-slot": "1.1.0" + }, + "peerDependencies": { + "@types/react": "*", + "@types/react-dom": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", + "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-collection/node_modules/@radix-ui/react-context": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@radix-ui/react-context/-/react-context-1.1.0.tgz", + "integrity": "sha512-OKrckBy+sMEgYM/sMmqmErVn0kZqrHPJze+Ql3DzYsDDp0hl0L62nx/2122/Bvps1qz645jlcu2tD9lrRSdf8A==", + "peerDependencies": { + "@types/react": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-compose-refs": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@radix-ui/react-compose-refs/-/react-compose-refs-1.1.0.tgz", + "integrity": "sha512-b4inOtiaOnYf9KWyO3jAeeCG6FeyfY6ldiEPanbUjWd+xIk5wZeHa8yVwmrJ2vderhu/BQvzCrJI0lHd+wIiqw==", + "peerDependencies": { + "@types/react": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-context": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@radix-ui/react-context/-/react-context-1.1.1.tgz", + "integrity": "sha512-UASk9zi+crv9WteK/NU4PLvOoL3OuE6BWVKNF6hPRBtYBDXQ2u5iu3O59zUlJiTVvkyuycnqrztsHVJwcK9K+Q==", + "peerDependencies": { + "@types/react": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-dialog": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@radix-ui/react-dialog/-/react-dialog-1.1.2.tgz", + "integrity": "sha512-Yj4dZtqa2o+kG61fzB0H2qUvmwBA2oyQroGLyNtBj1beo1khoQ3q1a2AO8rrQYjd8256CO9+N8L9tvsS+bnIyA==", + "dependencies": { + "@radix-ui/primitive": "1.1.0", + "@radix-ui/react-compose-refs": "1.1.0", + "@radix-ui/react-context": "1.1.1", + "@radix-ui/react-dismissable-layer": "1.1.1", + "@radix-ui/react-focus-guards": "1.1.1", + "@radix-ui/react-focus-scope": "1.1.0", + "@radix-ui/react-id": "1.1.0", + "@radix-ui/react-portal": "1.1.2", + "@radix-ui/react-presence": "1.1.1", + "@radix-ui/react-primitive": "2.0.0", + "@radix-ui/react-slot": "1.1.0", + "@radix-ui/react-use-controllable-state": "1.1.0", + "aria-hidden": "^1.1.1", + "react-remove-scroll": "2.6.0" + }, + "peerDependencies": { + "@types/react": "*", + "@types/react-dom": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", + "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-direction": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@radix-ui/react-direction/-/react-direction-1.1.0.tgz", + "integrity": "sha512-BUuBvgThEiAXh2DWu93XsT+a3aWrGqolGlqqw5VU1kG7p/ZH2cuDlM1sRLNnY3QcBS69UIz2mcKhMxDsdewhjg==", + "peerDependencies": { + "@types/react": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-dismissable-layer": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@radix-ui/react-dismissable-layer/-/react-dismissable-layer-1.1.1.tgz", + "integrity": "sha512-QSxg29lfr/xcev6kSz7MAlmDnzbP1eI/Dwn3Tp1ip0KT5CUELsxkekFEMVBEoykI3oV39hKT4TKZzBNMbcTZYQ==", + "dependencies": { + "@radix-ui/primitive": "1.1.0", + "@radix-ui/react-compose-refs": "1.1.0", + "@radix-ui/react-primitive": "2.0.0", + "@radix-ui/react-use-callback-ref": "1.1.0", + "@radix-ui/react-use-escape-keydown": "1.1.0" + }, + "peerDependencies": { + "@types/react": "*", + "@types/react-dom": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", + "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-dropdown-menu": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/@radix-ui/react-dropdown-menu/-/react-dropdown-menu-2.1.2.tgz", + "integrity": "sha512-GVZMR+eqK8/Kes0a36Qrv+i20bAPXSn8rCBTHx30w+3ECnR5o3xixAlqcVaYvLeyKUsm0aqyhWfmUcqufM8nYA==", + "dependencies": { + "@radix-ui/primitive": "1.1.0", + "@radix-ui/react-compose-refs": "1.1.0", + "@radix-ui/react-context": "1.1.1", + "@radix-ui/react-id": "1.1.0", + "@radix-ui/react-menu": "2.1.2", + "@radix-ui/react-primitive": "2.0.0", + "@radix-ui/react-use-controllable-state": "1.1.0" + }, + "peerDependencies": { + "@types/react": "*", + "@types/react-dom": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", + "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-focus-guards": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@radix-ui/react-focus-guards/-/react-focus-guards-1.1.1.tgz", + "integrity": "sha512-pSIwfrT1a6sIoDASCSpFwOasEwKTZWDw/iBdtnqKO7v6FeOzYJ7U53cPzYFVR3geGGXgVHaH+CdngrrAzqUGxg==", + "peerDependencies": { + "@types/react": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-focus-scope": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@radix-ui/react-focus-scope/-/react-focus-scope-1.1.0.tgz", + "integrity": "sha512-200UD8zylvEyL8Bx+z76RJnASR2gRMuxlgFCPAe/Q/679a/r0eK3MBVYMb7vZODZcffZBdob1EGnky78xmVvcA==", + "dependencies": { + "@radix-ui/react-compose-refs": "1.1.0", + "@radix-ui/react-primitive": "2.0.0", + "@radix-ui/react-use-callback-ref": "1.1.0" + }, + "peerDependencies": { + "@types/react": "*", + "@types/react-dom": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", + "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-id": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@radix-ui/react-id/-/react-id-1.1.0.tgz", + "integrity": "sha512-EJUrI8yYh7WOjNOqpoJaf1jlFIH2LvtgAl+YcFqNCa+4hj64ZXmPkAKOFs/ukjz3byN6bdb/AVUqHkI8/uWWMA==", + "dependencies": { + "@radix-ui/react-use-layout-effect": "1.1.0" + }, + "peerDependencies": { + "@types/react": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-label": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/@radix-ui/react-label/-/react-label-2.1.0.tgz", + "integrity": "sha512-peLblDlFw/ngk3UWq0VnYaOLy6agTZZ+MUO/WhVfm14vJGML+xH4FAl2XQGLqdefjNb7ApRg6Yn7U42ZhmYXdw==", + "dependencies": { + "@radix-ui/react-primitive": "2.0.0" + }, + "peerDependencies": { + "@types/react": "*", + "@types/react-dom": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", + "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-menu": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/@radix-ui/react-menu/-/react-menu-2.1.2.tgz", + "integrity": "sha512-lZ0R4qR2Al6fZ4yCCZzu/ReTFrylHFxIqy7OezIpWF4bL0o9biKo0pFIvkaew3TyZ9Fy5gYVrR5zCGZBVbO1zg==", + "dependencies": { + "@radix-ui/primitive": "1.1.0", + "@radix-ui/react-collection": "1.1.0", + "@radix-ui/react-compose-refs": "1.1.0", + "@radix-ui/react-context": "1.1.1", + "@radix-ui/react-direction": "1.1.0", + "@radix-ui/react-dismissable-layer": "1.1.1", + "@radix-ui/react-focus-guards": "1.1.1", + "@radix-ui/react-focus-scope": "1.1.0", + "@radix-ui/react-id": "1.1.0", + "@radix-ui/react-popper": "1.2.0", + "@radix-ui/react-portal": "1.1.2", + "@radix-ui/react-presence": "1.1.1", + "@radix-ui/react-primitive": "2.0.0", + "@radix-ui/react-roving-focus": "1.1.0", + "@radix-ui/react-slot": "1.1.0", + "@radix-ui/react-use-callback-ref": "1.1.0", + "aria-hidden": "^1.1.1", + "react-remove-scroll": "2.6.0" + }, + "peerDependencies": { + "@types/react": "*", + "@types/react-dom": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", + "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-popover": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@radix-ui/react-popover/-/react-popover-1.1.2.tgz", + "integrity": "sha512-u2HRUyWW+lOiA2g0Le0tMmT55FGOEWHwPFt1EPfbLly7uXQExFo5duNKqG2DzmFXIdqOeNd+TpE8baHWJCyP9w==", + "dependencies": { + "@radix-ui/primitive": "1.1.0", + "@radix-ui/react-compose-refs": "1.1.0", + "@radix-ui/react-context": "1.1.1", + "@radix-ui/react-dismissable-layer": "1.1.1", + "@radix-ui/react-focus-guards": "1.1.1", + "@radix-ui/react-focus-scope": "1.1.0", + "@radix-ui/react-id": "1.1.0", + "@radix-ui/react-popper": "1.2.0", + "@radix-ui/react-portal": "1.1.2", + "@radix-ui/react-presence": "1.1.1", + "@radix-ui/react-primitive": "2.0.0", + "@radix-ui/react-slot": "1.1.0", + "@radix-ui/react-use-controllable-state": "1.1.0", + "aria-hidden": "^1.1.1", + "react-remove-scroll": "2.6.0" + }, + "peerDependencies": { + "@types/react": "*", + "@types/react-dom": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", + "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-popper": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/@radix-ui/react-popper/-/react-popper-1.2.0.tgz", + "integrity": "sha512-ZnRMshKF43aBxVWPWvbj21+7TQCvhuULWJ4gNIKYpRlQt5xGRhLx66tMp8pya2UkGHTSlhpXwmjqltDYHhw7Vg==", + "dependencies": { + "@floating-ui/react-dom": "^2.0.0", + "@radix-ui/react-arrow": "1.1.0", + "@radix-ui/react-compose-refs": "1.1.0", + "@radix-ui/react-context": "1.1.0", + "@radix-ui/react-primitive": "2.0.0", + "@radix-ui/react-use-callback-ref": "1.1.0", + "@radix-ui/react-use-layout-effect": "1.1.0", + "@radix-ui/react-use-rect": "1.1.0", + "@radix-ui/react-use-size": "1.1.0", + "@radix-ui/rect": "1.1.0" + }, + "peerDependencies": { + "@types/react": "*", + "@types/react-dom": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", + "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-popper/node_modules/@radix-ui/react-context": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@radix-ui/react-context/-/react-context-1.1.0.tgz", + "integrity": "sha512-OKrckBy+sMEgYM/sMmqmErVn0kZqrHPJze+Ql3DzYsDDp0hl0L62nx/2122/Bvps1qz645jlcu2tD9lrRSdf8A==", + "peerDependencies": { + "@types/react": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-portal": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@radix-ui/react-portal/-/react-portal-1.1.2.tgz", + "integrity": "sha512-WeDYLGPxJb/5EGBoedyJbT0MpoULmwnIPMJMSldkuiMsBAv7N1cRdsTWZWht9vpPOiN3qyiGAtbK2is47/uMFg==", + "dependencies": { + "@radix-ui/react-primitive": "2.0.0", + "@radix-ui/react-use-layout-effect": "1.1.0" + }, + "peerDependencies": { + "@types/react": "*", + "@types/react-dom": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", + "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-presence": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@radix-ui/react-presence/-/react-presence-1.1.1.tgz", + "integrity": "sha512-IeFXVi4YS1K0wVZzXNrbaaUvIJ3qdY+/Ih4eHFhWA9SwGR9UDX7Ck8abvL57C4cv3wwMvUE0OG69Qc3NCcTe/A==", + "dependencies": { + "@radix-ui/react-compose-refs": "1.1.0", + "@radix-ui/react-use-layout-effect": "1.1.0" + }, + "peerDependencies": { + "@types/react": "*", + "@types/react-dom": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", + "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-primitive": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/@radix-ui/react-primitive/-/react-primitive-2.0.0.tgz", + "integrity": "sha512-ZSpFm0/uHa8zTvKBDjLFWLo8dkr4MBsiDLz0g3gMUwqgLHz9rTaRRGYDgvZPtBJgYCBKXkS9fzmoySgr8CO6Cw==", + "dependencies": { + "@radix-ui/react-slot": "1.1.0" + }, + "peerDependencies": { + "@types/react": "*", + "@types/react-dom": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", + "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-progress": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@radix-ui/react-progress/-/react-progress-1.1.0.tgz", + "integrity": "sha512-aSzvnYpP725CROcxAOEBVZZSIQVQdHgBr2QQFKySsaD14u8dNT0batuXI+AAGDdAHfXH8rbnHmjYFqVJ21KkRg==", + "dependencies": { + "@radix-ui/react-context": "1.1.0", + "@radix-ui/react-primitive": "2.0.0" + }, + "peerDependencies": { + "@types/react": "*", + "@types/react-dom": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", + "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-progress/node_modules/@radix-ui/react-context": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@radix-ui/react-context/-/react-context-1.1.0.tgz", + "integrity": "sha512-OKrckBy+sMEgYM/sMmqmErVn0kZqrHPJze+Ql3DzYsDDp0hl0L62nx/2122/Bvps1qz645jlcu2tD9lrRSdf8A==", + "peerDependencies": { + "@types/react": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-roving-focus": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@radix-ui/react-roving-focus/-/react-roving-focus-1.1.0.tgz", + "integrity": "sha512-EA6AMGeq9AEeQDeSH0aZgG198qkfHSbvWTf1HvoDmOB5bBG/qTxjYMWUKMnYiV6J/iP/J8MEFSuB2zRU2n7ODA==", + "dependencies": { + "@radix-ui/primitive": "1.1.0", + "@radix-ui/react-collection": "1.1.0", + "@radix-ui/react-compose-refs": "1.1.0", + "@radix-ui/react-context": "1.1.0", + "@radix-ui/react-direction": "1.1.0", + "@radix-ui/react-id": "1.1.0", + "@radix-ui/react-primitive": "2.0.0", + "@radix-ui/react-use-callback-ref": "1.1.0", + "@radix-ui/react-use-controllable-state": "1.1.0" + }, + "peerDependencies": { + "@types/react": "*", + "@types/react-dom": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", + "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-roving-focus/node_modules/@radix-ui/react-context": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@radix-ui/react-context/-/react-context-1.1.0.tgz", + "integrity": "sha512-OKrckBy+sMEgYM/sMmqmErVn0kZqrHPJze+Ql3DzYsDDp0hl0L62nx/2122/Bvps1qz645jlcu2tD9lrRSdf8A==", + "peerDependencies": { + "@types/react": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-select": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/@radix-ui/react-select/-/react-select-2.1.2.tgz", + "integrity": "sha512-rZJtWmorC7dFRi0owDmoijm6nSJH1tVw64QGiNIZ9PNLyBDtG+iAq+XGsya052At4BfarzY/Dhv9wrrUr6IMZA==", + "dependencies": { + "@radix-ui/number": "1.1.0", + "@radix-ui/primitive": "1.1.0", + "@radix-ui/react-collection": "1.1.0", + "@radix-ui/react-compose-refs": "1.1.0", + "@radix-ui/react-context": "1.1.1", + "@radix-ui/react-direction": "1.1.0", + "@radix-ui/react-dismissable-layer": "1.1.1", + "@radix-ui/react-focus-guards": "1.1.1", + "@radix-ui/react-focus-scope": "1.1.0", + "@radix-ui/react-id": "1.1.0", + "@radix-ui/react-popper": "1.2.0", + "@radix-ui/react-portal": "1.1.2", + "@radix-ui/react-primitive": "2.0.0", + "@radix-ui/react-slot": "1.1.0", + "@radix-ui/react-use-callback-ref": "1.1.0", + "@radix-ui/react-use-controllable-state": "1.1.0", + "@radix-ui/react-use-layout-effect": "1.1.0", + "@radix-ui/react-use-previous": "1.1.0", + "@radix-ui/react-visually-hidden": "1.1.0", + "aria-hidden": "^1.1.1", + "react-remove-scroll": "2.6.0" + }, + "peerDependencies": { + "@types/react": "*", + "@types/react-dom": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", + "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-slot": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@radix-ui/react-slot/-/react-slot-1.1.0.tgz", + "integrity": "sha512-FUCf5XMfmW4dtYl69pdS4DbxKy8nj4M7SafBgPllysxmdachynNflAdp/gCsnYWNDnge6tI9onzMp5ARYc1KNw==", + "dependencies": { + "@radix-ui/react-compose-refs": "1.1.0" + }, + "peerDependencies": { + "@types/react": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-tabs": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@radix-ui/react-tabs/-/react-tabs-1.1.1.tgz", + "integrity": "sha512-3GBUDmP2DvzmtYLMsHmpA1GtR46ZDZ+OreXM/N+kkQJOPIgytFWWTfDQmBQKBvaFS0Vno0FktdbVzN28KGrMdw==", + "dependencies": { + "@radix-ui/primitive": "1.1.0", + "@radix-ui/react-context": "1.1.1", + "@radix-ui/react-direction": "1.1.0", + "@radix-ui/react-id": "1.1.0", + "@radix-ui/react-presence": "1.1.1", + "@radix-ui/react-primitive": "2.0.0", + "@radix-ui/react-roving-focus": "1.1.0", + "@radix-ui/react-use-controllable-state": "1.1.0" + }, + "peerDependencies": { + "@types/react": "*", + "@types/react-dom": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", + "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-toast": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/@radix-ui/react-toast/-/react-toast-1.2.2.tgz", + "integrity": "sha512-Z6pqSzmAP/bFJoqMAston4eSNa+ud44NSZTiZUmUen+IOZ5nBY8kzuU5WDBVyFXPtcW6yUalOHsxM/BP6Sv8ww==", + "dependencies": { + "@radix-ui/primitive": "1.1.0", + "@radix-ui/react-collection": "1.1.0", + "@radix-ui/react-compose-refs": "1.1.0", + "@radix-ui/react-context": "1.1.1", + "@radix-ui/react-dismissable-layer": "1.1.1", + "@radix-ui/react-portal": "1.1.2", + "@radix-ui/react-presence": "1.1.1", + "@radix-ui/react-primitive": "2.0.0", + "@radix-ui/react-use-callback-ref": "1.1.0", + "@radix-ui/react-use-controllable-state": "1.1.0", + "@radix-ui/react-use-layout-effect": "1.1.0", + "@radix-ui/react-visually-hidden": "1.1.0" + }, + "peerDependencies": { + "@types/react": "*", + "@types/react-dom": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", + "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-tooltip": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/@radix-ui/react-tooltip/-/react-tooltip-1.1.4.tgz", + "integrity": "sha512-QpObUH/ZlpaO4YgHSaYzrLO2VuO+ZBFFgGzjMUPwtiYnAzzNNDPJeEGRrT7qNOrWm/Jr08M1vlp+vTHtnSQ0Uw==", + "dependencies": { + "@radix-ui/primitive": "1.1.0", + "@radix-ui/react-compose-refs": "1.1.0", + "@radix-ui/react-context": "1.1.1", + "@radix-ui/react-dismissable-layer": "1.1.1", + "@radix-ui/react-id": "1.1.0", + "@radix-ui/react-popper": "1.2.0", + "@radix-ui/react-portal": "1.1.2", + "@radix-ui/react-presence": "1.1.1", + "@radix-ui/react-primitive": "2.0.0", + "@radix-ui/react-slot": "1.1.0", + "@radix-ui/react-use-controllable-state": "1.1.0", + "@radix-ui/react-visually-hidden": "1.1.0" + }, + "peerDependencies": { + "@types/react": "*", + "@types/react-dom": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", + "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-use-callback-ref": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@radix-ui/react-use-callback-ref/-/react-use-callback-ref-1.1.0.tgz", + "integrity": "sha512-CasTfvsy+frcFkbXtSJ2Zu9JHpN8TYKxkgJGWbjiZhFivxaeW7rMeZt7QELGVLaYVfFMsKHjb7Ak0nMEe+2Vfw==", + "peerDependencies": { + "@types/react": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-use-controllable-state": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@radix-ui/react-use-controllable-state/-/react-use-controllable-state-1.1.0.tgz", + "integrity": "sha512-MtfMVJiSr2NjzS0Aa90NPTnvTSg6C/JLCV7ma0W6+OMV78vd8OyRpID+Ng9LxzsPbLeuBnWBA1Nq30AtBIDChw==", + "dependencies": { + "@radix-ui/react-use-callback-ref": "1.1.0" + }, + "peerDependencies": { + "@types/react": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-use-escape-keydown": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@radix-ui/react-use-escape-keydown/-/react-use-escape-keydown-1.1.0.tgz", + "integrity": "sha512-L7vwWlR1kTTQ3oh7g1O0CBF3YCyyTj8NmhLR+phShpyA50HCfBFKVJTpshm9PzLiKmehsrQzTYTpX9HvmC9rhw==", + "dependencies": { + "@radix-ui/react-use-callback-ref": "1.1.0" + }, + "peerDependencies": { + "@types/react": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-use-layout-effect": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@radix-ui/react-use-layout-effect/-/react-use-layout-effect-1.1.0.tgz", + "integrity": "sha512-+FPE0rOdziWSrH9athwI1R0HDVbWlEhd+FR+aSDk4uWGmSJ9Z54sdZVDQPZAinJhJXwfT+qnj969mCsT2gfm5w==", + "peerDependencies": { + "@types/react": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-use-previous": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@radix-ui/react-use-previous/-/react-use-previous-1.1.0.tgz", + "integrity": "sha512-Z/e78qg2YFnnXcW88A4JmTtm4ADckLno6F7OXotmkQfeuCVaKuYzqAATPhVzl3delXE7CxIV8shofPn3jPc5Og==", + "peerDependencies": { + "@types/react": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-use-rect": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@radix-ui/react-use-rect/-/react-use-rect-1.1.0.tgz", + "integrity": "sha512-0Fmkebhr6PiseyZlYAOtLS+nb7jLmpqTrJyv61Pe68MKYW6OWdRE2kI70TaYY27u7H0lajqM3hSMMLFq18Z7nQ==", + "dependencies": { + "@radix-ui/rect": "1.1.0" + }, + "peerDependencies": { + "@types/react": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-use-size": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@radix-ui/react-use-size/-/react-use-size-1.1.0.tgz", + "integrity": "sha512-XW3/vWuIXHa+2Uwcc2ABSfcCledmXhhQPlGbfcRXbiUQI5Icjcg19BGCZVKKInYbvUCut/ufbbLLPFC5cbb1hw==", + "dependencies": { + "@radix-ui/react-use-layout-effect": "1.1.0" + }, + "peerDependencies": { + "@types/react": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-visually-hidden": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@radix-ui/react-visually-hidden/-/react-visually-hidden-1.1.0.tgz", + "integrity": "sha512-N8MDZqtgCgG5S3aV60INAB475osJousYpZ4cTJ2cFbMpdHS5Y6loLTH8LPtkj2QN0x93J30HT/M3qJXM0+lyeQ==", + "dependencies": { + "@radix-ui/react-primitive": "2.0.0" + }, + "peerDependencies": { + "@types/react": "*", + "@types/react-dom": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", + "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } + } + }, + "node_modules/@radix-ui/rect": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@radix-ui/rect/-/rect-1.1.0.tgz", + "integrity": "sha512-A9+lCBZoaMJlVKcRBz2YByCG+Cp2t6nAnMnNba+XiWxnj6r4JUFqfsgwocMBZU9LPtdxC6wB56ySYpc7LQIoJg==" + }, + "node_modules/@rtsao/scc": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@rtsao/scc/-/scc-1.1.0.tgz", + "integrity": "sha512-zt6OdqaDoOnJ1ZYsCYGt9YmWzDXl4vQdKTyJev62gFhRGKdx7mcT54V9KIjg+d2wi9EXsPvAPKe7i7WjfVWB8g==", + "dev": true + }, + "node_modules/@rushstack/eslint-patch": { + "version": "1.10.4", + "resolved": "https://registry.npmjs.org/@rushstack/eslint-patch/-/eslint-patch-1.10.4.tgz", + "integrity": "sha512-WJgX9nzTqknM393q1QJDJmoW28kUfEnybeTfVNcNAPnIx210RXm2DiXiHzfNPJNIUUb1tJnz/l4QGtJ30PgWmA==", + "dev": true + }, + "node_modules/@swc/counter": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/@swc/counter/-/counter-0.1.3.tgz", + "integrity": "sha512-e2BR4lsJkkRlKZ/qCHPw9ZaSxc0MVUd7gtbtaB7aMvHeJVYe8sOB8DBZkP2DtISHGSku9sCK6T6cnY0CtXrOCQ==" + }, + "node_modules/@swc/helpers": { + "version": "0.5.13", + "resolved": "https://registry.npmjs.org/@swc/helpers/-/helpers-0.5.13.tgz", + "integrity": "sha512-UoKGxQ3r5kYI9dALKJapMmuK+1zWM/H17Z1+iwnNmzcJRnfFuevZs375TA5rW31pu4BS4NoSy1fRsexDXfWn5w==", + "dependencies": { + "tslib": "^2.4.0" + } + }, + "node_modules/@t3-oss/env-core": { + "version": "0.10.1", + "resolved": "https://registry.npmjs.org/@t3-oss/env-core/-/env-core-0.10.1.tgz", + "integrity": "sha512-GcKZiCfWks5CTxhezn9k5zWX3sMDIYf6Kaxy2Gx9YEQftFcz8hDRN56hcbylyAO3t4jQnQ5ifLawINsNgCDpOg==", + "peerDependencies": { + "typescript": ">=5.0.0", + "zod": "^3.0.0" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/@t3-oss/env-nextjs": { + "version": "0.10.1", + "resolved": "https://registry.npmjs.org/@t3-oss/env-nextjs/-/env-nextjs-0.10.1.tgz", + "integrity": "sha512-iy2qqJLnFh1RjEWno2ZeyTu0ufomkXruUsOZludzDIroUabVvHsrSjtkHqwHp1/pgPUzN3yBRHMILW162X7x2Q==", + "dependencies": { + "@t3-oss/env-core": "0.10.1" + }, + "peerDependencies": { + "typescript": ">=5.0.0", + "zod": "^3.0.0" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/@types/eslint": { + "version": "8.56.12", + "resolved": "https://registry.npmjs.org/@types/eslint/-/eslint-8.56.12.tgz", + "integrity": "sha512-03ruubjWyOHlmljCVoxSuNDdmfZDzsrrz0P2LeJsOXr+ZwFQ+0yQIwNCwt/GYhV7Z31fgtXJTAEs+FYlEL851g==", + "dev": true, + "dependencies": { + "@types/estree": "*", + "@types/json-schema": "*" + } + }, + "node_modules/@types/estree": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.6.tgz", + "integrity": "sha512-AYnb1nQyY49te+VRAVgmzfcgjYS91mY5P0TKUDCLEM+gNnA+3T6rWITXRLYCpahpqSQbN5cE+gHpnPyXjHWxcw==", + "dev": true + }, + "node_modules/@types/json-schema": { + "version": "7.0.15", + "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.15.tgz", + "integrity": "sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==", + "dev": true + }, + "node_modules/@types/json5": { + "version": "0.0.29", + "resolved": "https://registry.npmjs.org/@types/json5/-/json5-0.0.29.tgz", + "integrity": "sha512-dRLjCWHYg4oaA77cxO64oO+7JwCwnIzkZPdrrC71jQmQtlhM556pwKo5bUzqvZndkVbeFLIIi+9TC40JNF5hNQ==", + "dev": true + }, + "node_modules/@types/node": { + "version": "20.17.9", + "resolved": "https://registry.npmjs.org/@types/node/-/node-20.17.9.tgz", + "integrity": "sha512-0JOXkRyLanfGPE2QRCwgxhzlBAvaRdCNMcvbd7jFfpmD4eEXll7LRwy5ymJmyeZqk7Nh7eD2LeUyQ68BbndmXw==", + "dev": true, + "dependencies": { + "undici-types": "~6.19.2" + } + }, + "node_modules/@types/prop-types": { + "version": "15.7.13", + "resolved": "https://registry.npmjs.org/@types/prop-types/-/prop-types-15.7.13.tgz", + "integrity": "sha512-hCZTSvwbzWGvhqxp/RqVqwU999pBf2vp7hzIjiYOsl8wqOmUxkQ6ddw1cV3l8811+kdUFus/q4d1Y3E3SyEifA==", + "devOptional": true + }, + "node_modules/@types/react": { + "version": "18.3.12", + "resolved": "https://registry.npmjs.org/@types/react/-/react-18.3.12.tgz", + "integrity": "sha512-D2wOSq/d6Agt28q7rSI3jhU7G6aiuzljDGZ2hTZHIkrTLUI+AF3WMeKkEZ9nN2fkBAlcktT6vcZjDFiIhMYEQw==", + "devOptional": true, + "dependencies": { + "@types/prop-types": "*", + "csstype": "^3.0.2" + } + }, + "node_modules/@types/react-dom": { + "version": "18.3.1", + "resolved": "https://registry.npmjs.org/@types/react-dom/-/react-dom-18.3.1.tgz", + "integrity": "sha512-qW1Mfv8taImTthu4KoXgDfLuk4bydU6Q/TkADnDWWHwi4NX4BR+LWfTp2sVmTqRrsHvyDDTelgelxJ+SsejKKQ==", + "devOptional": true, + "dependencies": { + "@types/react": "*" + } + }, + "node_modules/@typescript-eslint/eslint-plugin": { + "version": "8.16.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-8.16.0.tgz", + "integrity": "sha512-5YTHKV8MYlyMI6BaEG7crQ9BhSc8RxzshOReKwZwRWN0+XvvTOm+L/UYLCYxFpfwYuAAqhxiq4yae0CMFwbL7Q==", + "dev": true, + "dependencies": { + "@eslint-community/regexpp": "^4.10.0", + "@typescript-eslint/scope-manager": "8.16.0", + "@typescript-eslint/type-utils": "8.16.0", + "@typescript-eslint/utils": "8.16.0", + "@typescript-eslint/visitor-keys": "8.16.0", + "graphemer": "^1.4.0", + "ignore": "^5.3.1", + "natural-compare": "^1.4.0", + "ts-api-utils": "^1.3.0" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "@typescript-eslint/parser": "^8.0.0 || ^8.0.0-alpha.0", + "eslint": "^8.57.0 || ^9.0.0" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/@typescript-eslint/eslint-plugin/node_modules/@typescript-eslint/type-utils": { + "version": "8.16.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-8.16.0.tgz", + "integrity": "sha512-IqZHGG+g1XCWX9NyqnI/0CX5LL8/18awQqmkZSl2ynn8F76j579dByc0jhfVSnSnhf7zv76mKBQv9HQFKvDCgg==", + "dev": true, + "dependencies": { + "@typescript-eslint/typescript-estree": "8.16.0", + "@typescript-eslint/utils": "8.16.0", + "debug": "^4.3.4", + "ts-api-utils": "^1.3.0" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "eslint": "^8.57.0 || ^9.0.0" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/@typescript-eslint/eslint-plugin/node_modules/@typescript-eslint/utils": { + "version": "8.16.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-8.16.0.tgz", + "integrity": "sha512-C1zRy/mOL8Pj157GiX4kaw7iyRLKfJXBR3L82hk5kS/GyHcOFmy4YUq/zfZti72I9wnuQtA/+xzft4wCC8PJdA==", + "dev": true, + "dependencies": { + "@eslint-community/eslint-utils": "^4.4.0", + "@typescript-eslint/scope-manager": "8.16.0", + "@typescript-eslint/types": "8.16.0", + "@typescript-eslint/typescript-estree": "8.16.0" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "eslint": "^8.57.0 || ^9.0.0" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/@typescript-eslint/eslint-plugin/node_modules/@typescript-eslint/utils/node_modules/@eslint-community/eslint-utils": { + "version": "4.4.1", + "resolved": "https://registry.npmjs.org/@eslint-community/eslint-utils/-/eslint-utils-4.4.1.tgz", + "integrity": "sha512-s3O3waFUrMV8P/XaF/+ZTp1X9XBZW1a4B97ZnjQF2KYWaFD2A8KyFBsrsfSjEmjn3RGWAIuvlneuZm3CUK3jbA==", + "dev": true, + "dependencies": { + "eslint-visitor-keys": "^3.4.3" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + }, + "peerDependencies": { + "eslint": "^6.0.0 || ^7.0.0 || >=8.0.0" + } + }, + "node_modules/@typescript-eslint/eslint-plugin/node_modules/eslint-visitor-keys": { + "version": "3.4.3", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.3.tgz", + "integrity": "sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==", + "dev": true, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/@typescript-eslint/parser": { + "version": "8.16.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-8.16.0.tgz", + "integrity": "sha512-D7DbgGFtsqIPIFMPJwCad9Gfi/hC0PWErRRHFnaCWoEDYi5tQUDiJCTmGUbBiLzjqAck4KcXt9Ayj0CNlIrF+w==", + "dev": true, + "dependencies": { + "@typescript-eslint/scope-manager": "8.16.0", + "@typescript-eslint/types": "8.16.0", + "@typescript-eslint/typescript-estree": "8.16.0", + "@typescript-eslint/visitor-keys": "8.16.0", + "debug": "^4.3.4" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "eslint": "^8.57.0 || ^9.0.0" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/@typescript-eslint/scope-manager": { + "version": "8.16.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-8.16.0.tgz", + "integrity": "sha512-mwsZWubQvBki2t5565uxF0EYvG+FwdFb8bMtDuGQLdCCnGPrDEDvm1gtfynuKlnpzeBRqdFCkMf9jg1fnAK8sg==", + "dev": true, + "dependencies": { + "@typescript-eslint/types": "8.16.0", + "@typescript-eslint/visitor-keys": "8.16.0" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, + "node_modules/@typescript-eslint/types": { + "version": "8.16.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-8.16.0.tgz", + "integrity": "sha512-NzrHj6thBAOSE4d9bsuRNMvk+BvaQvmY4dDglgkgGC0EW/tB3Kelnp3tAKH87GEwzoxgeQn9fNGRyFJM/xd+GQ==", + "dev": true, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, + "node_modules/@typescript-eslint/typescript-estree": { + "version": "8.16.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-8.16.0.tgz", + "integrity": "sha512-E2+9IzzXMc1iaBy9zmo+UYvluE3TW7bCGWSF41hVWUE01o8nzr1rvOQYSxelxr6StUvRcTMe633eY8mXASMaNw==", + "dev": true, + "dependencies": { + "@typescript-eslint/types": "8.16.0", + "@typescript-eslint/visitor-keys": "8.16.0", + "debug": "^4.3.4", + "fast-glob": "^3.3.2", + "is-glob": "^4.0.3", + "minimatch": "^9.0.4", + "semver": "^7.6.0", + "ts-api-utils": "^1.3.0" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/@typescript-eslint/visitor-keys": { + "version": "8.16.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-8.16.0.tgz", + "integrity": "sha512-pq19gbaMOmFE3CbL0ZB8J8BFCo2ckfHBfaIsaOZgBIF4EoISJIdLX5xRhd0FGB0LlHReNRuzoJoMGpTjq8F2CQ==", + "dev": true, + "dependencies": { + "@typescript-eslint/types": "8.16.0", + "eslint-visitor-keys": "^4.2.0" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, + "node_modules/@ungap/structured-clone": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/@ungap/structured-clone/-/structured-clone-1.2.0.tgz", + "integrity": "sha512-zuVdFrMJiuCDQUMCzQaD6KL28MjnqqN8XnAqiEq9PNm/hCPTSGfrXCOfwj1ow4LFb/tNymJPwsNbVePc1xFqrQ==", + "dev": true + }, + "node_modules/acorn": { + "version": "8.14.0", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.14.0.tgz", + "integrity": "sha512-cl669nCJTZBsL97OF4kUQm5g5hC2uihk0NxY3WENAC0TYdILVkAyHymAntgxGkl7K+t0cXIrH5siy5S4XkFycA==", + "dev": true, + "bin": { + "acorn": "bin/acorn" + }, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/acorn-jsx": { + "version": "5.3.2", + "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz", + "integrity": "sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==", + "dev": true, + "peerDependencies": { + "acorn": "^6.0.0 || ^7.0.0 || ^8.0.0" + } + }, + "node_modules/ajv": { + "version": "6.12.6", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", + "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", + "dev": true, + "dependencies": { + "fast-deep-equal": "^3.1.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, + "node_modules/ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "engines": { + "node": ">=8" + } + }, + "node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/any-promise": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/any-promise/-/any-promise-1.3.0.tgz", + "integrity": "sha512-7UvmKalWRt1wgjL1RrGxoSJW/0QZFIegpeGvZG9kjp8vrRu55XTHbwnqq2GpXm9uLbcuhxm3IqX9OB4MZR1b2A==" + }, + "node_modules/anymatch": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.3.tgz", + "integrity": "sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==", + "dependencies": { + "normalize-path": "^3.0.0", + "picomatch": "^2.0.4" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/arg": { + "version": "5.0.2", + "resolved": "https://registry.npmjs.org/arg/-/arg-5.0.2.tgz", + "integrity": "sha512-PYjyFOLKQ9y57JvQ6QLo8dAgNqswh8M1RMJYdQduT6xbWSgK36P/Z/v+p888pM69jMMfS8Xd8F6I1kQ/I9HUGg==" + }, + "node_modules/argparse": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", + "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", + "dev": true + }, + "node_modules/aria-hidden": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/aria-hidden/-/aria-hidden-1.2.4.tgz", + "integrity": "sha512-y+CcFFwelSXpLZk/7fMB2mUbGtX9lKycf1MWJ7CaTIERyitVlyQx6C+sxcROU2BAJ24OiZyK+8wj2i8AlBoS3A==", + "dependencies": { + "tslib": "^2.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/aria-query": { + "version": "5.3.2", + "resolved": "https://registry.npmjs.org/aria-query/-/aria-query-5.3.2.tgz", + "integrity": "sha512-COROpnaoap1E2F000S62r6A60uHZnmlvomhfyT2DlTcrY1OrBKn2UhH7qn5wTC9zMvD0AY7csdPSNwKP+7WiQw==", + "dev": true, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/array-buffer-byte-length": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/array-buffer-byte-length/-/array-buffer-byte-length-1.0.1.tgz", + "integrity": "sha512-ahC5W1xgou+KTXix4sAO8Ki12Q+jf4i0+tmk3sC+zgcynshkHxzpXdImBehiUYKKKDwvfFiJl1tZt6ewscS1Mg==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.5", + "is-array-buffer": "^3.0.4" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/array-includes": { + "version": "3.1.8", + "resolved": "https://registry.npmjs.org/array-includes/-/array-includes-3.1.8.tgz", + "integrity": "sha512-itaWrbYbqpGXkGhZPGUulwnhVf5Hpy1xiCFsGqyIGglbBxmG5vSjxQen3/WGOjPpNEv1RtBLKxbmVXm8HpJStQ==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.2", + "es-object-atoms": "^1.0.0", + "get-intrinsic": "^1.2.4", + "is-string": "^1.0.7" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/array.prototype.findlast": { + "version": "1.2.5", + "resolved": "https://registry.npmjs.org/array.prototype.findlast/-/array.prototype.findlast-1.2.5.tgz", + "integrity": "sha512-CVvd6FHg1Z3POpBLxO6E6zr+rSKEQ9L6rZHAaY7lLfhKsWYUBBOuMs0e9o24oopj6H+geRCX0YJ+TJLBK2eHyQ==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.2", + "es-errors": "^1.3.0", + "es-object-atoms": "^1.0.0", + "es-shim-unscopables": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/array.prototype.findlastindex": { + "version": "1.2.5", + "resolved": "https://registry.npmjs.org/array.prototype.findlastindex/-/array.prototype.findlastindex-1.2.5.tgz", + "integrity": "sha512-zfETvRFA8o7EiNn++N5f/kaCw221hrpGsDmcpndVupkPzEc1Wuf3VgC0qby1BbHs7f5DVYjgtEU2LLh5bqeGfQ==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.2", + "es-errors": "^1.3.0", + "es-object-atoms": "^1.0.0", + "es-shim-unscopables": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/array.prototype.flat": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/array.prototype.flat/-/array.prototype.flat-1.3.2.tgz", + "integrity": "sha512-djYB+Zx2vLewY8RWlNCUdHjDXs2XOgm602S9E7P/UpHgfeHL00cRiIF+IN/G/aUJ7kGPb6yO/ErDI5V2s8iycA==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.2.0", + "es-abstract": "^1.22.1", + "es-shim-unscopables": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/array.prototype.flatmap": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/array.prototype.flatmap/-/array.prototype.flatmap-1.3.2.tgz", + "integrity": "sha512-Ewyx0c9PmpcsByhSW4r+9zDU7sGjFc86qf/kKtuSCRdhfbk0SNLLkaT5qvcHnRGgc5NP/ly/y+qkXkqONX54CQ==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.2.0", + "es-abstract": "^1.22.1", + "es-shim-unscopables": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/array.prototype.tosorted": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/array.prototype.tosorted/-/array.prototype.tosorted-1.1.4.tgz", + "integrity": "sha512-p6Fx8B7b7ZhL/gmUsAy0D15WhvDccw3mnGNbZpi3pmeJdxtWsj2jEaI4Y6oo3XiHfzuSgPwKc04MYt6KgvC/wA==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.3", + "es-errors": "^1.3.0", + "es-shim-unscopables": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/arraybuffer.prototype.slice": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/arraybuffer.prototype.slice/-/arraybuffer.prototype.slice-1.0.3.tgz", + "integrity": "sha512-bMxMKAjg13EBSVscxTaYA4mRc5t1UAXa2kXiGTNfZ079HIWXEkKmkgFrh/nJqamaLSrXO5H4WFFkPEaLJWbs3A==", + "dev": true, + "dependencies": { + "array-buffer-byte-length": "^1.0.1", + "call-bind": "^1.0.5", + "define-properties": "^1.2.1", + "es-abstract": "^1.22.3", + "es-errors": "^1.2.1", + "get-intrinsic": "^1.2.3", + "is-array-buffer": "^3.0.4", + "is-shared-array-buffer": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/ast-types-flow": { + "version": "0.0.8", + "resolved": "https://registry.npmjs.org/ast-types-flow/-/ast-types-flow-0.0.8.tgz", + "integrity": "sha512-OH/2E5Fg20h2aPrbe+QL8JZQFko0YZaF+j4mnQ7BGhfavO7OpSLa8a0y9sBwomHdSbkhTS8TQNayBfnW5DwbvQ==", + "dev": true + }, + "node_modules/available-typed-arrays": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/available-typed-arrays/-/available-typed-arrays-1.0.7.tgz", + "integrity": "sha512-wvUjBtSGN7+7SjNpq/9M2Tg350UZD3q62IFZLbRAR1bSMlCo1ZaeW+BJ+D090e4hIIZLBcTDWe4Mh4jvUDajzQ==", + "dev": true, + "dependencies": { + "possible-typed-array-names": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/axe-core": { + "version": "4.10.2", + "resolved": "https://registry.npmjs.org/axe-core/-/axe-core-4.10.2.tgz", + "integrity": "sha512-RE3mdQ7P3FRSe7eqCWoeQ/Z9QXrtniSjp1wUjt5nRC3WIpz5rSCve6o3fsZ2aCpJtrZjSZgjwXAoTO5k4tEI0w==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/axobject-query": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/axobject-query/-/axobject-query-4.1.0.tgz", + "integrity": "sha512-qIj0G9wZbMGNLjLmg1PT6v2mE9AH2zlnADJD/2tC6E00hgmhUOfEB6greHPAfLRSufHqROIUTkw6E+M3lH0PTQ==", + "dev": true, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/balanced-match": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", + "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==" + }, + "node_modules/binary-extensions": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.3.0.tgz", + "integrity": "sha512-Ceh+7ox5qe7LJuLHoY0feh3pHuUDHAcRUeyL2VYghZwfpkNIy/+8Ocg0a3UuSoYzavmylwuLWQOf3hl0jjMMIw==", + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/brace-expansion": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", + "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", + "dependencies": { + "balanced-match": "^1.0.0" + } + }, + "node_modules/braces": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.3.tgz", + "integrity": "sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==", + "dependencies": { + "fill-range": "^7.1.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/busboy": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/busboy/-/busboy-1.6.0.tgz", + "integrity": "sha512-8SFQbg/0hQ9xy3UNTB0YEnsNBbWfhf7RtnzpL7TkBiTBRfrQ9Fxcnz7VJsleJpyp6rVLvXiuORqjlHi5q+PYuA==", + "dependencies": { + "streamsearch": "^1.1.0" + }, + "engines": { + "node": ">=10.16.0" + } + }, + "node_modules/call-bind": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.7.tgz", + "integrity": "sha512-GHTSNSYICQ7scH7sZ+M2rFopRoLh8t2bLSW6BbgrtLsahOIB5iyAVJf9GjWK3cYTDaMj4XdBpM1cA6pIS0Kv2w==", + "dev": true, + "dependencies": { + "es-define-property": "^1.0.0", + "es-errors": "^1.3.0", + "function-bind": "^1.1.2", + "get-intrinsic": "^1.2.4", + "set-function-length": "^1.2.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/callsites": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", + "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/camelcase-css": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/camelcase-css/-/camelcase-css-2.0.1.tgz", + "integrity": "sha512-QOSvevhslijgYwRx6Rv7zKdMF8lbRmx+uQGx2+vDc+KI/eBnsy9kit5aj23AgGu3pa4t9AgwbnXWqS+iOY+2aA==", + "engines": { + "node": ">= 6" + } + }, + "node_modules/caniuse-lite": { + "version": "1.0.30001684", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001684.tgz", + "integrity": "sha512-G1LRwLIQjBQoyq0ZJGqGIJUXzJ8irpbjHLpVRXDvBEScFJ9b17sgK6vlx0GAJFE21okD7zXl08rRRUfq6HdoEQ==", + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/caniuse-lite" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ] + }, + "node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/chokidar": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.6.0.tgz", + "integrity": "sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==", + "dependencies": { + "anymatch": "~3.1.2", + "braces": "~3.0.2", + "glob-parent": "~5.1.2", + "is-binary-path": "~2.1.0", + "is-glob": "~4.0.1", + "normalize-path": "~3.0.0", + "readdirp": "~3.6.0" + }, + "engines": { + "node": ">= 8.10.0" + }, + "funding": { + "url": "https://paulmillr.com/funding/" + }, + "optionalDependencies": { + "fsevents": "~2.3.2" + } + }, + "node_modules/chokidar/node_modules/glob-parent": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "dependencies": { + "is-glob": "^4.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/class-variance-authority": { + "version": "0.7.1", + "resolved": "https://registry.npmjs.org/class-variance-authority/-/class-variance-authority-0.7.1.tgz", + "integrity": "sha512-Ka+9Trutv7G8M6WT6SeiRWz792K5qEqIGEGzXKhAE6xOWAY6pPH8U+9IY3oCMv6kqTmLsv7Xh/2w2RigkePMsg==", + "dependencies": { + "clsx": "^2.1.1" + }, + "funding": { + "url": "https://polar.sh/cva" + } + }, + "node_modules/client-only": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/client-only/-/client-only-0.0.1.tgz", + "integrity": "sha512-IV3Ou0jSMzZrd3pZ48nLkT9DA7Ag1pnPzaiQhpW7c3RbcqqzvzzVu+L8gfqMp/8IM2MQtSiqaCxrrcfu8I8rMA==" + }, + "node_modules/clsx": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/clsx/-/clsx-2.1.1.tgz", + "integrity": "sha512-eYm0QWBtUrBWZWG0d386OGAw16Z995PiOVo2B7bjWSbHedGl5e0ZWaq65kOGgUSNesEIDkB9ISbTg/JK9dhCZA==", + "engines": { + "node": ">=6" + } + }, + "node_modules/cmdk": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/cmdk/-/cmdk-1.0.0.tgz", + "integrity": "sha512-gDzVf0a09TvoJ5jnuPvygTB77+XdOSwEmJ88L6XPFPlv7T3RxbP9jgenfylrAMD0+Le1aO0nVjQUzl2g+vjz5Q==", + "dependencies": { + "@radix-ui/react-dialog": "1.0.5", + "@radix-ui/react-primitive": "1.0.3" + }, + "peerDependencies": { + "react": "^18.0.0", + "react-dom": "^18.0.0" + } + }, + "node_modules/cmdk/node_modules/@radix-ui/primitive": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@radix-ui/primitive/-/primitive-1.0.1.tgz", + "integrity": "sha512-yQ8oGX2GVsEYMWGxcovu1uGWPCxV5BFfeeYxqPmuAzUyLT9qmaMXSAhXpb0WrspIeqYzdJpkh2vHModJPgRIaw==", + "dependencies": { + "@babel/runtime": "^7.13.10" + } + }, + "node_modules/cmdk/node_modules/@radix-ui/react-compose-refs": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@radix-ui/react-compose-refs/-/react-compose-refs-1.0.1.tgz", + "integrity": "sha512-fDSBgd44FKHa1FRMU59qBMPFcl2PZE+2nmqunj+BWFyYYjnhIDWL2ItDs3rrbJDQOtzt5nIebLCQc4QRfz6LJw==", + "dependencies": { + "@babel/runtime": "^7.13.10" + }, + "peerDependencies": { + "@types/react": "*", + "react": "^16.8 || ^17.0 || ^18.0" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/cmdk/node_modules/@radix-ui/react-context": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@radix-ui/react-context/-/react-context-1.0.1.tgz", + "integrity": "sha512-ebbrdFoYTcuZ0v4wG5tedGnp9tzcV8awzsxYph7gXUyvnNLuTIcCk1q17JEbnVhXAKG9oX3KtchwiMIAYp9NLg==", + "dependencies": { + "@babel/runtime": "^7.13.10" + }, + "peerDependencies": { + "@types/react": "*", + "react": "^16.8 || ^17.0 || ^18.0" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/cmdk/node_modules/@radix-ui/react-dialog": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/@radix-ui/react-dialog/-/react-dialog-1.0.5.tgz", + "integrity": "sha512-GjWJX/AUpB703eEBanuBnIWdIXg6NvJFCXcNlSZk4xdszCdhrJgBoUd1cGk67vFO+WdA2pfI/plOpqz/5GUP6Q==", + "dependencies": { + "@babel/runtime": "^7.13.10", + "@radix-ui/primitive": "1.0.1", + "@radix-ui/react-compose-refs": "1.0.1", + "@radix-ui/react-context": "1.0.1", + "@radix-ui/react-dismissable-layer": "1.0.5", + "@radix-ui/react-focus-guards": "1.0.1", + "@radix-ui/react-focus-scope": "1.0.4", + "@radix-ui/react-id": "1.0.1", + "@radix-ui/react-portal": "1.0.4", + "@radix-ui/react-presence": "1.0.1", + "@radix-ui/react-primitive": "1.0.3", + "@radix-ui/react-slot": "1.0.2", + "@radix-ui/react-use-controllable-state": "1.0.1", + "aria-hidden": "^1.1.1", + "react-remove-scroll": "2.5.5" + }, + "peerDependencies": { + "@types/react": "*", + "@types/react-dom": "*", + "react": "^16.8 || ^17.0 || ^18.0", + "react-dom": "^16.8 || ^17.0 || ^18.0" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } + } + }, + "node_modules/cmdk/node_modules/@radix-ui/react-dismissable-layer": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/@radix-ui/react-dismissable-layer/-/react-dismissable-layer-1.0.5.tgz", + "integrity": "sha512-aJeDjQhywg9LBu2t/At58hCvr7pEm0o2Ke1x33B+MhjNmmZ17sy4KImo0KPLgsnc/zN7GPdce8Cnn0SWvwZO7g==", + "dependencies": { + "@babel/runtime": "^7.13.10", + "@radix-ui/primitive": "1.0.1", + "@radix-ui/react-compose-refs": "1.0.1", + "@radix-ui/react-primitive": "1.0.3", + "@radix-ui/react-use-callback-ref": "1.0.1", + "@radix-ui/react-use-escape-keydown": "1.0.3" + }, + "peerDependencies": { + "@types/react": "*", + "@types/react-dom": "*", + "react": "^16.8 || ^17.0 || ^18.0", + "react-dom": "^16.8 || ^17.0 || ^18.0" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } + } + }, + "node_modules/cmdk/node_modules/@radix-ui/react-focus-guards": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@radix-ui/react-focus-guards/-/react-focus-guards-1.0.1.tgz", + "integrity": "sha512-Rect2dWbQ8waGzhMavsIbmSVCgYxkXLxxR3ZvCX79JOglzdEy4JXMb98lq4hPxUbLr77nP0UOGf4rcMU+s1pUA==", + "dependencies": { + "@babel/runtime": "^7.13.10" + }, + "peerDependencies": { + "@types/react": "*", + "react": "^16.8 || ^17.0 || ^18.0" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/cmdk/node_modules/@radix-ui/react-focus-scope": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/@radix-ui/react-focus-scope/-/react-focus-scope-1.0.4.tgz", + "integrity": "sha512-sL04Mgvf+FmyvZeYfNu1EPAaaxD+aw7cYeIB9L9Fvq8+urhltTRaEo5ysKOpHuKPclsZcSUMKlN05x4u+CINpA==", + "dependencies": { + "@babel/runtime": "^7.13.10", + "@radix-ui/react-compose-refs": "1.0.1", + "@radix-ui/react-primitive": "1.0.3", + "@radix-ui/react-use-callback-ref": "1.0.1" + }, + "peerDependencies": { + "@types/react": "*", + "@types/react-dom": "*", + "react": "^16.8 || ^17.0 || ^18.0", + "react-dom": "^16.8 || ^17.0 || ^18.0" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } + } + }, + "node_modules/cmdk/node_modules/@radix-ui/react-id": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@radix-ui/react-id/-/react-id-1.0.1.tgz", + "integrity": "sha512-tI7sT/kqYp8p96yGWY1OAnLHrqDgzHefRBKQ2YAkBS5ja7QLcZ9Z/uY7bEjPUatf8RomoXM8/1sMj1IJaE5UzQ==", + "dependencies": { + "@babel/runtime": "^7.13.10", + "@radix-ui/react-use-layout-effect": "1.0.1" + }, + "peerDependencies": { + "@types/react": "*", + "react": "^16.8 || ^17.0 || ^18.0" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/cmdk/node_modules/@radix-ui/react-portal": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/@radix-ui/react-portal/-/react-portal-1.0.4.tgz", + "integrity": "sha512-Qki+C/EuGUVCQTOTD5vzJzJuMUlewbzuKyUy+/iHM2uwGiru9gZeBJtHAPKAEkB5KWGi9mP/CHKcY0wt1aW45Q==", + "dependencies": { + "@babel/runtime": "^7.13.10", + "@radix-ui/react-primitive": "1.0.3" + }, + "peerDependencies": { + "@types/react": "*", + "@types/react-dom": "*", + "react": "^16.8 || ^17.0 || ^18.0", + "react-dom": "^16.8 || ^17.0 || ^18.0" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } + } + }, + "node_modules/cmdk/node_modules/@radix-ui/react-presence": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@radix-ui/react-presence/-/react-presence-1.0.1.tgz", + "integrity": "sha512-UXLW4UAbIY5ZjcvzjfRFo5gxva8QirC9hF7wRE4U5gz+TP0DbRk+//qyuAQ1McDxBt1xNMBTaciFGvEmJvAZCg==", + "dependencies": { + "@babel/runtime": "^7.13.10", + "@radix-ui/react-compose-refs": "1.0.1", + "@radix-ui/react-use-layout-effect": "1.0.1" + }, + "peerDependencies": { + "@types/react": "*", + "@types/react-dom": "*", + "react": "^16.8 || ^17.0 || ^18.0", + "react-dom": "^16.8 || ^17.0 || ^18.0" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } + } + }, + "node_modules/cmdk/node_modules/@radix-ui/react-primitive": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/@radix-ui/react-primitive/-/react-primitive-1.0.3.tgz", + "integrity": "sha512-yi58uVyoAcK/Nq1inRY56ZSjKypBNKTa/1mcL8qdl6oJeEaDbOldlzrGn7P6Q3Id5d+SYNGc5AJgc4vGhjs5+g==", + "dependencies": { + "@babel/runtime": "^7.13.10", + "@radix-ui/react-slot": "1.0.2" + }, + "peerDependencies": { + "@types/react": "*", + "@types/react-dom": "*", + "react": "^16.8 || ^17.0 || ^18.0", + "react-dom": "^16.8 || ^17.0 || ^18.0" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } + } + }, + "node_modules/cmdk/node_modules/@radix-ui/react-slot": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/@radix-ui/react-slot/-/react-slot-1.0.2.tgz", + "integrity": "sha512-YeTpuq4deV+6DusvVUW4ivBgnkHwECUu0BiN43L5UCDFgdhsRUWAghhTF5MbvNTPzmiFOx90asDSUjWuCNapwg==", + "dependencies": { + "@babel/runtime": "^7.13.10", + "@radix-ui/react-compose-refs": "1.0.1" + }, + "peerDependencies": { + "@types/react": "*", + "react": "^16.8 || ^17.0 || ^18.0" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/cmdk/node_modules/@radix-ui/react-use-callback-ref": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@radix-ui/react-use-callback-ref/-/react-use-callback-ref-1.0.1.tgz", + "integrity": "sha512-D94LjX4Sp0xJFVaoQOd3OO9k7tpBYNOXdVhkltUbGv2Qb9OXdrg/CpsjlZv7ia14Sylv398LswWBVVu5nqKzAQ==", + "dependencies": { + "@babel/runtime": "^7.13.10" + }, + "peerDependencies": { + "@types/react": "*", + "react": "^16.8 || ^17.0 || ^18.0" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/cmdk/node_modules/@radix-ui/react-use-controllable-state": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@radix-ui/react-use-controllable-state/-/react-use-controllable-state-1.0.1.tgz", + "integrity": "sha512-Svl5GY5FQeN758fWKrjM6Qb7asvXeiZltlT4U2gVfl8Gx5UAv2sMR0LWo8yhsIZh2oQ0eFdZ59aoOOMV7b47VA==", + "dependencies": { + "@babel/runtime": "^7.13.10", + "@radix-ui/react-use-callback-ref": "1.0.1" + }, + "peerDependencies": { + "@types/react": "*", + "react": "^16.8 || ^17.0 || ^18.0" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/cmdk/node_modules/@radix-ui/react-use-escape-keydown": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/@radix-ui/react-use-escape-keydown/-/react-use-escape-keydown-1.0.3.tgz", + "integrity": "sha512-vyL82j40hcFicA+M4Ex7hVkB9vHgSse1ZWomAqV2Je3RleKGO5iM8KMOEtfoSB0PnIelMd2lATjTGMYqN5ylTg==", + "dependencies": { + "@babel/runtime": "^7.13.10", + "@radix-ui/react-use-callback-ref": "1.0.1" + }, + "peerDependencies": { + "@types/react": "*", + "react": "^16.8 || ^17.0 || ^18.0" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/cmdk/node_modules/@radix-ui/react-use-layout-effect": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@radix-ui/react-use-layout-effect/-/react-use-layout-effect-1.0.1.tgz", + "integrity": "sha512-v/5RegiJWYdoCvMnITBkNNx6bCj20fiaJnWtRkU18yITptraXjffz5Qbn05uOiQnOvi+dbkznkoaMltz1GnszQ==", + "dependencies": { + "@babel/runtime": "^7.13.10" + }, + "peerDependencies": { + "@types/react": "*", + "react": "^16.8 || ^17.0 || ^18.0" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/cmdk/node_modules/react-remove-scroll": { + "version": "2.5.5", + "resolved": "https://registry.npmjs.org/react-remove-scroll/-/react-remove-scroll-2.5.5.tgz", + "integrity": "sha512-ImKhrzJJsyXJfBZ4bzu8Bwpka14c/fQt0k+cyFp/PBhTfyDnU5hjOtM4AG/0AMyy8oKzOTR0lDgJIM7pYXI0kw==", + "dependencies": { + "react-remove-scroll-bar": "^2.3.3", + "react-style-singleton": "^2.2.1", + "tslib": "^2.1.0", + "use-callback-ref": "^1.3.0", + "use-sidecar": "^1.1.2" + }, + "engines": { + "node": ">=10" + }, + "peerDependencies": { + "@types/react": "^16.8.0 || ^17.0.0 || ^18.0.0", + "react": "^16.8.0 || ^17.0.0 || ^18.0.0" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/color": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/color/-/color-4.2.3.tgz", + "integrity": "sha512-1rXeuUUiGGrykh+CeBdu5Ie7OJwinCgQY0bc7GCRxy5xVHy+moaqkpL/jqQq0MtQOeYcrqEz4abc5f0KtU7W4A==", + "optional": true, + "dependencies": { + "color-convert": "^2.0.1", + "color-string": "^1.9.0" + }, + "engines": { + "node": ">=12.5.0" + } + }, + "node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" + }, + "node_modules/color-string": { + "version": "1.9.1", + "resolved": "https://registry.npmjs.org/color-string/-/color-string-1.9.1.tgz", + "integrity": "sha512-shrVawQFojnZv6xM40anx4CkoDP+fZsw/ZerEMsW/pyzsRbElpsL/DBVW7q3ExxwusdNXI3lXpuhEZkzs8p5Eg==", + "optional": true, + "dependencies": { + "color-name": "^1.0.0", + "simple-swizzle": "^0.2.2" + } + }, + "node_modules/colord": { + "version": "2.9.3", + "resolved": "https://registry.npmjs.org/colord/-/colord-2.9.3.tgz", + "integrity": "sha512-jeC1axXpnb0/2nn/Y1LPuLdgXBLH7aDcHu4KEKfqw3CUhX7ZpfBSlPKyqXE6btIgEzfWtrX3/tyBCaCvXvMkOw==" + }, + "node_modules/commander": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/commander/-/commander-4.1.1.tgz", + "integrity": "sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA==", + "engines": { + "node": ">= 6" + } + }, + "node_modules/concat-map": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", + "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==", + "dev": true + }, + "node_modules/cross-spawn": { + "version": "7.0.6", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.6.tgz", + "integrity": "sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA==", + "dependencies": { + "path-key": "^3.1.0", + "shebang-command": "^2.0.0", + "which": "^2.0.1" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/cssesc": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/cssesc/-/cssesc-3.0.0.tgz", + "integrity": "sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==", + "bin": { + "cssesc": "bin/cssesc" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/csstype": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.1.3.tgz", + "integrity": "sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw==", + "devOptional": true + }, + "node_modules/damerau-levenshtein": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/damerau-levenshtein/-/damerau-levenshtein-1.0.8.tgz", + "integrity": "sha512-sdQSFB7+llfUcQHUQO3+B8ERRj0Oa4w9POWMI/puGtuf7gFywGmkaLCElnudfTiKZV+NvHqL0ifzdrI8Ro7ESA==", + "dev": true + }, + "node_modules/data-view-buffer": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/data-view-buffer/-/data-view-buffer-1.0.1.tgz", + "integrity": "sha512-0lht7OugA5x3iJLOWFhWK/5ehONdprk0ISXqVFn/NFrDu+cuc8iADFrGQz5BnRK7LLU3JmkbXSxaqX+/mXYtUA==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.6", + "es-errors": "^1.3.0", + "is-data-view": "^1.0.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/data-view-byte-length": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/data-view-byte-length/-/data-view-byte-length-1.0.1.tgz", + "integrity": "sha512-4J7wRJD3ABAzr8wP+OcIcqq2dlUKp4DVflx++hs5h5ZKydWMI6/D/fAot+yh6g2tHh8fLFTvNOaVN357NvSrOQ==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.7", + "es-errors": "^1.3.0", + "is-data-view": "^1.0.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/data-view-byte-offset": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/data-view-byte-offset/-/data-view-byte-offset-1.0.0.tgz", + "integrity": "sha512-t/Ygsytq+R995EJ5PZlD4Cu56sWa8InXySaViRzw9apusqsOO2bQP+SbYzAhR0pFKoB+43lYy8rWban9JSuXnA==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.6", + "es-errors": "^1.3.0", + "is-data-view": "^1.0.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/date-fns": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/date-fns/-/date-fns-4.1.0.tgz", + "integrity": "sha512-Ukq0owbQXxa/U3EGtsdVBkR1w7KOQ5gIBqdH2hkvknzZPYvBxb/aa6E8L7tmjFtkwZBu3UXBbjIgPo/Ez4xaNg==", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/kossnocorp" + } + }, + "node_modules/debug": { + "version": "4.3.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.7.tgz", + "integrity": "sha512-Er2nc/H7RrMXZBFCEim6TCmMk02Z8vLC2Rbi1KEBggpo0fS6l0S1nnapwmIi3yW/+GOJap1Krg4w0Hg80oCqgQ==", + "dev": true, + "dependencies": { + "ms": "^2.1.3" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/deep-is": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz", + "integrity": "sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==", + "dev": true + }, + "node_modules/define-data-property": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/define-data-property/-/define-data-property-1.1.4.tgz", + "integrity": "sha512-rBMvIzlpA8v6E+SJZoo++HAYqsLrkg7MSfIinMPFhmkorw7X+dOXVJQs+QT69zGkzMyfDnIMN2Wid1+NbL3T+A==", + "dev": true, + "dependencies": { + "es-define-property": "^1.0.0", + "es-errors": "^1.3.0", + "gopd": "^1.0.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/define-properties": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.2.1.tgz", + "integrity": "sha512-8QmQKqEASLd5nx0U1B1okLElbUuuttJ/AnYmRXbbbGDWh6uS208EjD4Xqq/I9wK7u0v6O08XhTWnt5XtEbR6Dg==", + "dev": true, + "dependencies": { + "define-data-property": "^1.0.1", + "has-property-descriptors": "^1.0.0", + "object-keys": "^1.1.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/detect-libc": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-2.0.3.tgz", + "integrity": "sha512-bwy0MGW55bG41VqxxypOsdSdGqLwXPI/focwgTYCFMbdUiBAxLg9CFzG08sz2aqzknwiX7Hkl0bQENjg8iLByw==", + "optional": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/detect-node-es": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/detect-node-es/-/detect-node-es-1.1.0.tgz", + "integrity": "sha512-ypdmJU/TbBby2Dxibuv7ZLW3Bs1QEmM7nHjEANfohJLvE0XVujisn1qPJcZxg+qDucsr+bP6fLD1rPS3AhJ7EQ==" + }, + "node_modules/didyoumean": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/didyoumean/-/didyoumean-1.2.2.tgz", + "integrity": "sha512-gxtyfqMg7GKyhQmb056K7M3xszy/myH8w+B4RT+QXBQsvAOdc3XymqDDPHx1BgPgsdAA5SIifona89YtRATDzw==" + }, + "node_modules/dlv": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/dlv/-/dlv-1.1.3.tgz", + "integrity": "sha512-+HlytyjlPKnIG8XuRG8WvmBP8xs8P71y+SKKS6ZXWoEgLuePxtDoUEiH7WkdePWrQ5JBpE6aoVqfZfJUQkjXwA==" + }, + "node_modules/doctrine": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-3.0.0.tgz", + "integrity": "sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==", + "dev": true, + "dependencies": { + "esutils": "^2.0.2" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/eastasianwidth": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/eastasianwidth/-/eastasianwidth-0.2.0.tgz", + "integrity": "sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==" + }, + "node_modules/emoji-regex": { + "version": "9.2.2", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-9.2.2.tgz", + "integrity": "sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==" + }, + "node_modules/enhanced-resolve": { + "version": "5.17.1", + "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.17.1.tgz", + "integrity": "sha512-LMHl3dXhTcfv8gM4kEzIUeTQ+7fpdA0l2tUf34BddXPkz2A5xJ5L/Pchd5BL6rdccM9QGvu0sWZzK1Z1t4wwyg==", + "dev": true, + "dependencies": { + "graceful-fs": "^4.2.4", + "tapable": "^2.2.0" + }, + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/es-abstract": { + "version": "1.23.5", + "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.23.5.tgz", + "integrity": "sha512-vlmniQ0WNPwXqA0BnmwV3Ng7HxiGlh6r5U6JcTMNx8OilcAGqVJBHJcPjqOMaczU9fRuRK5Px2BdVyPRnKMMVQ==", + "dev": true, + "dependencies": { + "array-buffer-byte-length": "^1.0.1", + "arraybuffer.prototype.slice": "^1.0.3", + "available-typed-arrays": "^1.0.7", + "call-bind": "^1.0.7", + "data-view-buffer": "^1.0.1", + "data-view-byte-length": "^1.0.1", + "data-view-byte-offset": "^1.0.0", + "es-define-property": "^1.0.0", + "es-errors": "^1.3.0", + "es-object-atoms": "^1.0.0", + "es-set-tostringtag": "^2.0.3", + "es-to-primitive": "^1.2.1", + "function.prototype.name": "^1.1.6", + "get-intrinsic": "^1.2.4", + "get-symbol-description": "^1.0.2", + "globalthis": "^1.0.4", + "gopd": "^1.0.1", + "has-property-descriptors": "^1.0.2", + "has-proto": "^1.0.3", + "has-symbols": "^1.0.3", + "hasown": "^2.0.2", + "internal-slot": "^1.0.7", + "is-array-buffer": "^3.0.4", + "is-callable": "^1.2.7", + "is-data-view": "^1.0.1", + "is-negative-zero": "^2.0.3", + "is-regex": "^1.1.4", + "is-shared-array-buffer": "^1.0.3", + "is-string": "^1.0.7", + "is-typed-array": "^1.1.13", + "is-weakref": "^1.0.2", + "object-inspect": "^1.13.3", + "object-keys": "^1.1.1", + "object.assign": "^4.1.5", + "regexp.prototype.flags": "^1.5.3", + "safe-array-concat": "^1.1.2", + "safe-regex-test": "^1.0.3", + "string.prototype.trim": "^1.2.9", + "string.prototype.trimend": "^1.0.8", + "string.prototype.trimstart": "^1.0.8", + "typed-array-buffer": "^1.0.2", + "typed-array-byte-length": "^1.0.1", + "typed-array-byte-offset": "^1.0.2", + "typed-array-length": "^1.0.6", + "unbox-primitive": "^1.0.2", + "which-typed-array": "^1.1.15" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/es-define-property": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/es-define-property/-/es-define-property-1.0.0.tgz", + "integrity": "sha512-jxayLKShrEqqzJ0eumQbVhTYQM27CfT1T35+gCgDFoL82JLsXqTJ76zv6A0YLOgEnLUMvLzsDsGIrl8NFpT2gQ==", + "dev": true, + "dependencies": { + "get-intrinsic": "^1.2.4" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es-errors": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/es-errors/-/es-errors-1.3.0.tgz", + "integrity": "sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==", + "dev": true, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es-iterator-helpers": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/es-iterator-helpers/-/es-iterator-helpers-1.2.0.tgz", + "integrity": "sha512-tpxqxncxnpw3c93u8n3VOzACmRFoVmWJqbWXvX/JfKbkhBw1oslgPrUfeSt2psuqyEJFD6N/9lg5i7bsKpoq+Q==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.3", + "es-errors": "^1.3.0", + "es-set-tostringtag": "^2.0.3", + "function-bind": "^1.1.2", + "get-intrinsic": "^1.2.4", + "globalthis": "^1.0.4", + "gopd": "^1.0.1", + "has-property-descriptors": "^1.0.2", + "has-proto": "^1.0.3", + "has-symbols": "^1.0.3", + "internal-slot": "^1.0.7", + "iterator.prototype": "^1.1.3", + "safe-array-concat": "^1.1.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es-object-atoms": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/es-object-atoms/-/es-object-atoms-1.0.0.tgz", + "integrity": "sha512-MZ4iQ6JwHOBQjahnjwaC1ZtIBH+2ohjamzAO3oaHcXYup7qxjF2fixyH+Q71voWHeOkI2q/TnJao/KfXYIZWbw==", + "dev": true, + "dependencies": { + "es-errors": "^1.3.0" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es-set-tostringtag": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/es-set-tostringtag/-/es-set-tostringtag-2.0.3.tgz", + "integrity": "sha512-3T8uNMC3OQTHkFUsFq8r/BwAXLHvU/9O9mE0fBc/MY5iq/8H7ncvO947LmYA6ldWw9Uh8Yhf25zu6n7nML5QWQ==", + "dev": true, + "dependencies": { + "get-intrinsic": "^1.2.4", + "has-tostringtag": "^1.0.2", + "hasown": "^2.0.1" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es-shim-unscopables": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/es-shim-unscopables/-/es-shim-unscopables-1.0.2.tgz", + "integrity": "sha512-J3yBRXCzDu4ULnQwxyToo/OjdMx6akgVC7K6few0a7F/0wLtmKKN7I73AH5T2836UuXRqN7Qg+IIUw/+YJksRw==", + "dev": true, + "dependencies": { + "hasown": "^2.0.0" + } + }, + "node_modules/es-to-primitive": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.3.0.tgz", + "integrity": "sha512-w+5mJ3GuFL+NjVtJlvydShqE1eN3h3PbI7/5LAsYJP/2qtuMXjfL2LpHSRqo4b4eSF5K/DH1JXKUAHSB2UW50g==", + "dev": true, + "dependencies": { + "is-callable": "^1.2.7", + "is-date-object": "^1.0.5", + "is-symbol": "^1.0.4" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/escape-string-regexp": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", + "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/eslint": { + "version": "8.57.1", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.57.1.tgz", + "integrity": "sha512-ypowyDxpVSYpkXr9WPv2PAZCtNip1Mv5KTW0SCurXv/9iOpcrH9PaqUElksqEB6pChqHGDRCFTyrZlGhnLNGiA==", + "deprecated": "This version is no longer supported. Please see https://eslint.org/version-support for other options.", + "dev": true, + "dependencies": { + "@eslint-community/eslint-utils": "^4.2.0", + "@eslint-community/regexpp": "^4.6.1", + "@eslint/eslintrc": "^2.1.4", + "@eslint/js": "8.57.1", + "@humanwhocodes/config-array": "^0.13.0", + "@humanwhocodes/module-importer": "^1.0.1", + "@nodelib/fs.walk": "^1.2.8", + "@ungap/structured-clone": "^1.2.0", + "ajv": "^6.12.4", + "chalk": "^4.0.0", + "cross-spawn": "^7.0.2", + "debug": "^4.3.2", + "doctrine": "^3.0.0", + "escape-string-regexp": "^4.0.0", + "eslint-scope": "^7.2.2", + "eslint-visitor-keys": "^3.4.3", + "espree": "^9.6.1", + "esquery": "^1.4.2", + "esutils": "^2.0.2", + "fast-deep-equal": "^3.1.3", + "file-entry-cache": "^6.0.1", + "find-up": "^5.0.0", + "glob-parent": "^6.0.2", + "globals": "^13.19.0", + "graphemer": "^1.4.0", + "ignore": "^5.2.0", + "imurmurhash": "^0.1.4", + "is-glob": "^4.0.0", + "is-path-inside": "^3.0.3", + "js-yaml": "^4.1.0", + "json-stable-stringify-without-jsonify": "^1.0.1", + "levn": "^0.4.1", + "lodash.merge": "^4.6.2", + "minimatch": "^3.1.2", + "natural-compare": "^1.4.0", + "optionator": "^0.9.3", + "strip-ansi": "^6.0.1", + "text-table": "^0.2.0" + }, + "bin": { + "eslint": "bin/eslint.js" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/eslint-config-next": { + "version": "15.0.3", + "resolved": "https://registry.npmjs.org/eslint-config-next/-/eslint-config-next-15.0.3.tgz", + "integrity": "sha512-IGP2DdQQrgjcr4mwFPve4DrCqo7CVVez1WoYY47XwKSrYO4hC0Dlb+iJA60i0YfICOzgNADIb8r28BpQ5Zs0wg==", + "dev": true, + "dependencies": { + "@next/eslint-plugin-next": "15.0.3", + "@rushstack/eslint-patch": "^1.10.3", + "@typescript-eslint/eslint-plugin": "^5.4.2 || ^6.0.0 || ^7.0.0 || ^8.0.0", + "@typescript-eslint/parser": "^5.4.2 || ^6.0.0 || ^7.0.0 || ^8.0.0", + "eslint-import-resolver-node": "^0.3.6", + "eslint-import-resolver-typescript": "^3.5.2", + "eslint-plugin-import": "^2.31.0", + "eslint-plugin-jsx-a11y": "^6.10.0", + "eslint-plugin-react": "^7.35.0", + "eslint-plugin-react-hooks": "^5.0.0" + }, + "peerDependencies": { + "eslint": "^7.23.0 || ^8.0.0 || ^9.0.0", + "typescript": ">=3.3.1" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/eslint-config-next/node_modules/brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "dev": true, + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "node_modules/eslint-config-next/node_modules/doctrine": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-2.1.0.tgz", + "integrity": "sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==", + "dev": true, + "dependencies": { + "esutils": "^2.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/eslint-config-next/node_modules/eslint-import-resolver-typescript": { + "version": "3.6.3", + "resolved": "https://registry.npmjs.org/eslint-import-resolver-typescript/-/eslint-import-resolver-typescript-3.6.3.tgz", + "integrity": "sha512-ud9aw4szY9cCT1EWWdGv1L1XR6hh2PaRWif0j2QjQ0pgTY/69iw+W0Z4qZv5wHahOl8isEr+k/JnyAqNQkLkIA==", + "dev": true, + "dependencies": { + "@nolyfill/is-core-module": "1.0.39", + "debug": "^4.3.5", + "enhanced-resolve": "^5.15.0", + "eslint-module-utils": "^2.8.1", + "fast-glob": "^3.3.2", + "get-tsconfig": "^4.7.5", + "is-bun-module": "^1.0.2", + "is-glob": "^4.0.3" + }, + "engines": { + "node": "^14.18.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/unts/projects/eslint-import-resolver-ts" + }, + "peerDependencies": { + "eslint": "*", + "eslint-plugin-import": "*", + "eslint-plugin-import-x": "*" + }, + "peerDependenciesMeta": { + "eslint-plugin-import": { + "optional": true + }, + "eslint-plugin-import-x": { + "optional": true + } + } + }, + "node_modules/eslint-config-next/node_modules/eslint-plugin-import": { + "version": "2.31.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-import/-/eslint-plugin-import-2.31.0.tgz", + "integrity": "sha512-ixmkI62Rbc2/w8Vfxyh1jQRTdRTF52VxwRVHl/ykPAmqG+Nb7/kNn+byLP0LxPgI7zWA16Jt82SybJInmMia3A==", + "dev": true, + "dependencies": { + "@rtsao/scc": "^1.1.0", + "array-includes": "^3.1.8", + "array.prototype.findlastindex": "^1.2.5", + "array.prototype.flat": "^1.3.2", + "array.prototype.flatmap": "^1.3.2", + "debug": "^3.2.7", + "doctrine": "^2.1.0", + "eslint-import-resolver-node": "^0.3.9", + "eslint-module-utils": "^2.12.0", + "hasown": "^2.0.2", + "is-core-module": "^2.15.1", + "is-glob": "^4.0.3", + "minimatch": "^3.1.2", + "object.fromentries": "^2.0.8", + "object.groupby": "^1.0.3", + "object.values": "^1.2.0", + "semver": "^6.3.1", + "string.prototype.trimend": "^1.0.8", + "tsconfig-paths": "^3.15.0" + }, + "engines": { + "node": ">=4" + }, + "peerDependencies": { + "eslint": "^2 || ^3 || ^4 || ^5 || ^6 || ^7.2.0 || ^8 || ^9" + } + }, + "node_modules/eslint-config-next/node_modules/eslint-plugin-import/node_modules/debug": { + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", + "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", + "dev": true, + "dependencies": { + "ms": "^2.1.1" + } + }, + "node_modules/eslint-config-next/node_modules/eslint-plugin-jsx-a11y": { + "version": "6.10.2", + "resolved": "https://registry.npmjs.org/eslint-plugin-jsx-a11y/-/eslint-plugin-jsx-a11y-6.10.2.tgz", + "integrity": "sha512-scB3nz4WmG75pV8+3eRUQOHZlNSUhFNq37xnpgRkCCELU3XMvXAxLk1eqWWyE22Ki4Q01Fnsw9BA3cJHDPgn2Q==", + "dev": true, + "dependencies": { + "aria-query": "^5.3.2", + "array-includes": "^3.1.8", + "array.prototype.flatmap": "^1.3.2", + "ast-types-flow": "^0.0.8", + "axe-core": "^4.10.0", + "axobject-query": "^4.1.0", + "damerau-levenshtein": "^1.0.8", + "emoji-regex": "^9.2.2", + "hasown": "^2.0.2", + "jsx-ast-utils": "^3.3.5", + "language-tags": "^1.0.9", + "minimatch": "^3.1.2", + "object.fromentries": "^2.0.8", + "safe-regex-test": "^1.0.3", + "string.prototype.includes": "^2.0.1" + }, + "engines": { + "node": ">=4.0" + }, + "peerDependencies": { + "eslint": "^3 || ^4 || ^5 || ^6 || ^7 || ^8 || ^9" + } + }, + "node_modules/eslint-config-next/node_modules/eslint-plugin-react": { + "version": "7.37.2", + "resolved": "https://registry.npmjs.org/eslint-plugin-react/-/eslint-plugin-react-7.37.2.tgz", + "integrity": "sha512-EsTAnj9fLVr/GZleBLFbj/sSuXeWmp1eXIN60ceYnZveqEaUCyW4X+Vh4WTdUhCkW4xutXYqTXCUSyqD4rB75w==", + "dev": true, + "dependencies": { + "array-includes": "^3.1.8", + "array.prototype.findlast": "^1.2.5", + "array.prototype.flatmap": "^1.3.2", + "array.prototype.tosorted": "^1.1.4", + "doctrine": "^2.1.0", + "es-iterator-helpers": "^1.1.0", + "estraverse": "^5.3.0", + "hasown": "^2.0.2", + "jsx-ast-utils": "^2.4.1 || ^3.0.0", + "minimatch": "^3.1.2", + "object.entries": "^1.1.8", + "object.fromentries": "^2.0.8", + "object.values": "^1.2.0", + "prop-types": "^15.8.1", + "resolve": "^2.0.0-next.5", + "semver": "^6.3.1", + "string.prototype.matchall": "^4.0.11", + "string.prototype.repeat": "^1.0.0" + }, + "engines": { + "node": ">=4" + }, + "peerDependencies": { + "eslint": "^3 || ^4 || ^5 || ^6 || ^7 || ^8 || ^9.7" + } + }, + "node_modules/eslint-config-next/node_modules/eslint-plugin-react-hooks": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-react-hooks/-/eslint-plugin-react-hooks-5.0.0.tgz", + "integrity": "sha512-hIOwI+5hYGpJEc4uPRmz2ulCjAGD/N13Lukkh8cLV0i2IRk/bdZDYjgLVHj+U9Z704kLIdIO6iueGvxNur0sgw==", + "dev": true, + "engines": { + "node": ">=10" + }, + "peerDependencies": { + "eslint": "^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0-0 || ^9.0.0" + } + }, + "node_modules/eslint-config-next/node_modules/minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "dev": true, + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, + "node_modules/eslint-config-next/node_modules/resolve": { + "version": "2.0.0-next.5", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-2.0.0-next.5.tgz", + "integrity": "sha512-U7WjGVG9sH8tvjW5SmGbQuui75FiyjAX72HX15DwBBwF9dNiQZRQAg9nnPhYy+TUnE0+VcrttuvNI8oSxZcocA==", + "dev": true, + "dependencies": { + "is-core-module": "^2.13.0", + "path-parse": "^1.0.7", + "supports-preserve-symlinks-flag": "^1.0.0" + }, + "bin": { + "resolve": "bin/resolve" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/eslint-config-next/node_modules/semver": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "dev": true, + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/eslint-import-resolver-node": { + "version": "0.3.9", + "resolved": "https://registry.npmjs.org/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.9.tgz", + "integrity": "sha512-WFj2isz22JahUv+B788TlO3N6zL3nNJGU8CcZbPZvVEkBPaJdCV4vy5wyghty5ROFbCRnm132v8BScu5/1BQ8g==", + "dev": true, + "dependencies": { + "debug": "^3.2.7", + "is-core-module": "^2.13.0", + "resolve": "^1.22.4" + } + }, + "node_modules/eslint-import-resolver-node/node_modules/debug": { + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", + "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", + "dev": true, + "dependencies": { + "ms": "^2.1.1" + } + }, + "node_modules/eslint-module-utils": { + "version": "2.12.0", + "resolved": "https://registry.npmjs.org/eslint-module-utils/-/eslint-module-utils-2.12.0.tgz", + "integrity": "sha512-wALZ0HFoytlyh/1+4wuZ9FJCD/leWHQzzrxJ8+rebyReSLk7LApMyd3WJaLVoN+D5+WIdJyDK1c6JnE65V4Zyg==", + "dev": true, + "dependencies": { + "debug": "^3.2.7" + }, + "engines": { + "node": ">=4" + }, + "peerDependenciesMeta": { + "eslint": { + "optional": true + } + } + }, + "node_modules/eslint-module-utils/node_modules/debug": { + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", + "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", + "dev": true, + "dependencies": { + "ms": "^2.1.1" + } + }, + "node_modules/eslint-scope": { + "version": "7.2.2", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-7.2.2.tgz", + "integrity": "sha512-dOt21O7lTMhDM+X9mB4GX+DZrZtCUJPL/wlcTqxyrx5IvO0IYtILdtrQGQp+8n5S0gwSVmOf9NQrjMOgfQZlIg==", + "dev": true, + "dependencies": { + "esrecurse": "^4.3.0", + "estraverse": "^5.2.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/eslint-visitor-keys": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-4.2.0.tgz", + "integrity": "sha512-UyLnSehNt62FFhSwjZlHmeokpRK59rcz29j+F1/aDgbkbRTk7wIc9XzdoasMUbRNKDM0qQt/+BJ4BrpFeABemw==", + "dev": true, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/eslint/node_modules/@eslint-community/eslint-utils": { + "version": "4.4.1", + "resolved": "https://registry.npmjs.org/@eslint-community/eslint-utils/-/eslint-utils-4.4.1.tgz", + "integrity": "sha512-s3O3waFUrMV8P/XaF/+ZTp1X9XBZW1a4B97ZnjQF2KYWaFD2A8KyFBsrsfSjEmjn3RGWAIuvlneuZm3CUK3jbA==", + "dev": true, + "dependencies": { + "eslint-visitor-keys": "^3.4.3" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + }, + "peerDependencies": { + "eslint": "^6.0.0 || ^7.0.0 || >=8.0.0" + } + }, + "node_modules/eslint/node_modules/brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "dev": true, + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "node_modules/eslint/node_modules/eslint-visitor-keys": { + "version": "3.4.3", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.3.tgz", + "integrity": "sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==", + "dev": true, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/eslint/node_modules/minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "dev": true, + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, + "node_modules/espree": { + "version": "9.6.1", + "resolved": "https://registry.npmjs.org/espree/-/espree-9.6.1.tgz", + "integrity": "sha512-oruZaFkjorTpF32kDSI5/75ViwGeZginGGy2NoOSg3Q9bnwlnmDm4HLnkl0RE3n+njDXR037aY1+x58Z/zFdwQ==", + "dev": true, + "dependencies": { + "acorn": "^8.9.0", + "acorn-jsx": "^5.3.2", + "eslint-visitor-keys": "^3.4.1" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/espree/node_modules/eslint-visitor-keys": { + "version": "3.4.3", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.3.tgz", + "integrity": "sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==", + "dev": true, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/esquery": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.6.0.tgz", + "integrity": "sha512-ca9pw9fomFcKPvFLXhBKUK90ZvGibiGOvRJNbjljY7s7uq/5YO4BOzcYtJqExdx99rF6aAcnRxHmcUHcz6sQsg==", + "dev": true, + "dependencies": { + "estraverse": "^5.1.0" + }, + "engines": { + "node": ">=0.10" + } + }, + "node_modules/esrecurse": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz", + "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==", + "dev": true, + "dependencies": { + "estraverse": "^5.2.0" + }, + "engines": { + "node": ">=4.0" + } + }, + "node_modules/estraverse": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", + "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", + "dev": true, + "engines": { + "node": ">=4.0" + } + }, + "node_modules/esutils": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", + "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/fast-deep-equal": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", + "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", + "dev": true + }, + "node_modules/fast-glob": { + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.2.tgz", + "integrity": "sha512-oX2ruAFQwf/Orj8m737Y5adxDQO0LAB7/S5MnxCdTNDd4p6BsyIVsv9JQsATbTSq8KHRpLwIHbVlUNatxd+1Ow==", + "dependencies": { + "@nodelib/fs.stat": "^2.0.2", + "@nodelib/fs.walk": "^1.2.3", + "glob-parent": "^5.1.2", + "merge2": "^1.3.0", + "micromatch": "^4.0.4" + }, + "engines": { + "node": ">=8.6.0" + } + }, + "node_modules/fast-glob/node_modules/glob-parent": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "dependencies": { + "is-glob": "^4.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/fast-json-stable-stringify": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", + "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==", + "dev": true + }, + "node_modules/fast-levenshtein": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", + "integrity": "sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==", + "dev": true + }, + "node_modules/fastq": { + "version": "1.17.1", + "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.17.1.tgz", + "integrity": "sha512-sRVD3lWVIXWg6By68ZN7vho9a1pQcN/WBFaAAsDDFzlJjvoGx0P8z7V1t72grFJfJhu3YPZBuu25f7Kaw2jN1w==", + "dependencies": { + "reusify": "^1.0.4" + } + }, + "node_modules/file-entry-cache": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-6.0.1.tgz", + "integrity": "sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==", + "dev": true, + "dependencies": { + "flat-cache": "^3.0.4" + }, + "engines": { + "node": "^10.12.0 || >=12.0.0" + } + }, + "node_modules/fill-range": { + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.1.1.tgz", + "integrity": "sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==", + "dependencies": { + "to-regex-range": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/find-up": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz", + "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==", + "dev": true, + "dependencies": { + "locate-path": "^6.0.0", + "path-exists": "^4.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/flat-cache": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-3.2.0.tgz", + "integrity": "sha512-CYcENa+FtcUKLmhhqyctpclsq7QF38pKjZHsGNiSQF5r4FtoKDWabFDl3hzaEQMvT1LHEysw5twgLvpYYb4vbw==", + "dev": true, + "dependencies": { + "flatted": "^3.2.9", + "keyv": "^4.5.3", + "rimraf": "^3.0.2" + }, + "engines": { + "node": "^10.12.0 || >=12.0.0" + } + }, + "node_modules/flatted": { + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.3.2.tgz", + "integrity": "sha512-AiwGJM8YcNOaobumgtng+6NHuOqC3A7MixFeDafM3X9cIUM+xUXoS5Vfgf+OihAYe20fxqNM9yPBXJzRtZ/4eA==", + "dev": true + }, + "node_modules/for-each": { + "version": "0.3.3", + "resolved": "https://registry.npmjs.org/for-each/-/for-each-0.3.3.tgz", + "integrity": "sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw==", + "dev": true, + "dependencies": { + "is-callable": "^1.1.3" + } + }, + "node_modules/foreground-child": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/foreground-child/-/foreground-child-3.3.0.tgz", + "integrity": "sha512-Ld2g8rrAyMYFXBhEqMz8ZAHBi4J4uS1i/CxGMDnjyFWddMXLVcDp051DZfu+t7+ab7Wv6SMqpWmyFIj5UbfFvg==", + "dependencies": { + "cross-spawn": "^7.0.0", + "signal-exit": "^4.0.1" + }, + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/framer-motion": { + "version": "11.15.0", + "resolved": "https://registry.npmjs.org/framer-motion/-/framer-motion-11.15.0.tgz", + "integrity": "sha512-MLk8IvZntxOMg7lDBLw2qgTHHv664bYoYmnFTmE0Gm/FW67aOJk0WM3ctMcG+Xhcv+vh5uyyXwxvxhSeJzSe+w==", + "dependencies": { + "motion-dom": "^11.14.3", + "motion-utils": "^11.14.3", + "tslib": "^2.4.0" + }, + "peerDependencies": { + "@emotion/is-prop-valid": "*", + "react": "^18.0.0 || ^19.0.0", + "react-dom": "^18.0.0 || ^19.0.0" + }, + "peerDependenciesMeta": { + "@emotion/is-prop-valid": { + "optional": true + }, + "react": { + "optional": true + }, + "react-dom": { + "optional": true + } + } + }, + "node_modules/fs.realpath": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", + "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==", + "dev": true + }, + "node_modules/fsevents": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz", + "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==", + "hasInstallScript": true, + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": "^8.16.0 || ^10.6.0 || >=11.0.0" + } + }, + "node_modules/function-bind": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz", + "integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/function.prototype.name": { + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/function.prototype.name/-/function.prototype.name-1.1.6.tgz", + "integrity": "sha512-Z5kx79swU5P27WEayXM1tBi5Ze/lbIyiNgU3qyXUOf9b2rgXYyF9Dy9Cx+IQv/Lc8WCG6L82zwUPpSS9hGehIg==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.2.0", + "es-abstract": "^1.22.1", + "functions-have-names": "^1.2.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/functions-have-names": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/functions-have-names/-/functions-have-names-1.2.3.tgz", + "integrity": "sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ==", + "dev": true, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/geist": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/geist/-/geist-1.3.1.tgz", + "integrity": "sha512-Q4gC1pBVPN+D579pBaz0TRRnGA4p9UK6elDY/xizXdFk/g4EKR5g0I+4p/Kj6gM0SajDBZ/0FvDV9ey9ud7BWw==", + "peerDependencies": { + "next": ">=13.2.0" + } + }, + "node_modules/get-intrinsic": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.4.tgz", + "integrity": "sha512-5uYhsJH8VJBTv7oslg4BznJYhDoRI6waYCxMmCdnTrcCrHA/fCFKoTFz2JKKE0HdDFUF7/oQuhzumXJK7paBRQ==", + "dev": true, + "dependencies": { + "es-errors": "^1.3.0", + "function-bind": "^1.1.2", + "has-proto": "^1.0.1", + "has-symbols": "^1.0.3", + "hasown": "^2.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/get-nonce": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/get-nonce/-/get-nonce-1.0.1.tgz", + "integrity": "sha512-FJhYRoDaiatfEkUK8HKlicmu/3SGFD51q3itKDGoSTysQJBnfOcxU5GxnhE1E6soB76MbT0MBtnKJuXyAx+96Q==", + "engines": { + "node": ">=6" + } + }, + "node_modules/get-symbol-description": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/get-symbol-description/-/get-symbol-description-1.0.2.tgz", + "integrity": "sha512-g0QYk1dZBxGwk+Ngc+ltRH2IBp2f7zBkBMBJZCDerh6EhlhSR6+9irMCuT/09zD6qkarHUSn529sK/yL4S27mg==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.5", + "es-errors": "^1.3.0", + "get-intrinsic": "^1.2.4" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/get-tsconfig": { + "version": "4.8.1", + "resolved": "https://registry.npmjs.org/get-tsconfig/-/get-tsconfig-4.8.1.tgz", + "integrity": "sha512-k9PN+cFBmaLWtVz29SkUoqU5O0slLuHJXt/2P+tMVFT+phsSGXGkp9t3rQIqdz0e+06EHNGs3oM6ZX1s2zHxRg==", + "dev": true, + "dependencies": { + "resolve-pkg-maps": "^1.0.0" + }, + "funding": { + "url": "https://github.com/privatenumber/get-tsconfig?sponsor=1" + } + }, + "node_modules/glob": { + "version": "7.2.3", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", + "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", + "deprecated": "Glob versions prior to v9 are no longer supported", + "dev": true, + "dependencies": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.1.1", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + }, + "engines": { + "node": "*" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/glob-parent": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz", + "integrity": "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==", + "dependencies": { + "is-glob": "^4.0.3" + }, + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/glob/node_modules/brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "dev": true, + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "node_modules/glob/node_modules/minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "dev": true, + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, + "node_modules/globals": { + "version": "13.24.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-13.24.0.tgz", + "integrity": "sha512-AhO5QUcj8llrbG09iWhPU2B204J1xnPeL8kQmVorSsy+Sjj1sk8gIyh6cUocGmH4L0UuhAJy+hJMRA4mgA4mFQ==", + "dev": true, + "dependencies": { + "type-fest": "^0.20.2" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/globalthis": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/globalthis/-/globalthis-1.0.4.tgz", + "integrity": "sha512-DpLKbNU4WylpxJykQujfCcwYWiV/Jhm50Goo0wrVILAv5jOr9d+H+UR3PhSCD2rCCEIg0uc+G+muBTwD54JhDQ==", + "dev": true, + "dependencies": { + "define-properties": "^1.2.1", + "gopd": "^1.0.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/gopd": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/gopd/-/gopd-1.0.1.tgz", + "integrity": "sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA==", + "dev": true, + "dependencies": { + "get-intrinsic": "^1.1.3" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/graceful-fs": { + "version": "4.2.11", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.11.tgz", + "integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==", + "dev": true + }, + "node_modules/graphemer": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/graphemer/-/graphemer-1.4.0.tgz", + "integrity": "sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==", + "dev": true + }, + "node_modules/has-bigints": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/has-bigints/-/has-bigints-1.0.2.tgz", + "integrity": "sha512-tSvCKtBr9lkF0Ex0aQiP9N+OpV4zi2r/Nee5VkRDbaqv35RLYMzbwQfFSZZH0kR+Rd6302UJZ2p/bJCEoR3VoQ==", + "dev": true, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/has-property-descriptors": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.2.tgz", + "integrity": "sha512-55JNKuIW+vq4Ke1BjOTjM2YctQIvCT7GFzHwmfZPGo5wnrgkid0YQtnAleFSqumZm4az3n2BS+erby5ipJdgrg==", + "dev": true, + "dependencies": { + "es-define-property": "^1.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-proto": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/has-proto/-/has-proto-1.0.3.tgz", + "integrity": "sha512-SJ1amZAJUiZS+PhsVLf5tGydlaVB8EdFpaSO4gmiUKUOxk8qzn5AIy4ZeJUmh22znIdk/uMAUT2pl3FxzVUH+Q==", + "dev": true, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-symbols": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.3.tgz", + "integrity": "sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==", + "dev": true, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-tostringtag": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.2.tgz", + "integrity": "sha512-NqADB8VjPFLM2V0VvHUewwwsw0ZWBaIdgo+ieHtK3hasLz4qeCRjYcqfB6AQrBggRKppKF8L52/VqdVsO47Dlw==", + "dev": true, + "dependencies": { + "has-symbols": "^1.0.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/hasown": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.2.tgz", + "integrity": "sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==", + "dependencies": { + "function-bind": "^1.1.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/ignore": { + "version": "5.3.2", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.3.2.tgz", + "integrity": "sha512-hsBTNUqQTDwkWtcdYI2i06Y/nUBEsNEDJKjWdigLvegy8kDuJAS8uRlpkkcQpyEXL0Z/pjDy5HBmMjRCJ2gq+g==", + "dev": true, + "engines": { + "node": ">= 4" + } + }, + "node_modules/import-fresh": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz", + "integrity": "sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==", + "dev": true, + "dependencies": { + "parent-module": "^1.0.0", + "resolve-from": "^4.0.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/imurmurhash": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", + "integrity": "sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==", + "dev": true, + "engines": { + "node": ">=0.8.19" + } + }, + "node_modules/inflight": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", + "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==", + "deprecated": "This module is not supported, and leaks memory. Do not use it. Check out lru-cache if you want a good and tested way to coalesce async requests by a key value, which is much more comprehensive and powerful.", + "dev": true, + "dependencies": { + "once": "^1.3.0", + "wrappy": "1" + } + }, + "node_modules/inherits": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", + "dev": true + }, + "node_modules/input-otp": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/input-otp/-/input-otp-1.4.1.tgz", + "integrity": "sha512-+yvpmKYKHi9jIGngxagY9oWiiblPB7+nEO75F2l2o4vs+6vpPZZmUl4tBNYuTCvQjhvEIbdNeJu70bhfYP2nbw==", + "peerDependencies": { + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0.0 || ^19.0.0-rc", + "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0.0 || ^19.0.0-rc" + } + }, + "node_modules/internal-slot": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/internal-slot/-/internal-slot-1.0.7.tgz", + "integrity": "sha512-NGnrKwXzSms2qUUih/ILZ5JBqNTSa1+ZmP6flaIp6KmSElgE9qdndzS3cqjrDovwFdmwsGsLdeFgB6suw+1e9g==", + "dev": true, + "dependencies": { + "es-errors": "^1.3.0", + "hasown": "^2.0.0", + "side-channel": "^1.0.4" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/invariant": { + "version": "2.2.4", + "resolved": "https://registry.npmjs.org/invariant/-/invariant-2.2.4.tgz", + "integrity": "sha512-phJfQVBuaJM5raOpJjSfkiD6BpbCE4Ns//LaXl6wGYtUBY83nWS6Rf9tXm2e8VaK60JEjYldbPif/A2B1C2gNA==", + "dependencies": { + "loose-envify": "^1.0.0" + } + }, + "node_modules/is-array-buffer": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/is-array-buffer/-/is-array-buffer-3.0.4.tgz", + "integrity": "sha512-wcjaerHw0ydZwfhiKbXJWLDY8A7yV7KhjQOpb83hGgGfId/aQa4TOvwyzn2PuswW2gPCYEL/nEAiSVpdOj1lXw==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "get-intrinsic": "^1.2.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-arrayish": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.3.2.tgz", + "integrity": "sha512-eVRqCvVlZbuw3GrM63ovNSNAeA1K16kaR/LRY/92w0zxQ5/1YzwblUX652i4Xs9RwAGjW9d9y6X88t8OaAJfWQ==", + "optional": true + }, + "node_modules/is-async-function": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-async-function/-/is-async-function-2.0.0.tgz", + "integrity": "sha512-Y1JXKrfykRJGdlDwdKlLpLyMIiWqWvuSd17TvZk68PLAOGOoF4Xyav1z0Xhoi+gCYjZVeC5SI+hYFOfvXmGRCA==", + "dev": true, + "dependencies": { + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-bigint": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/is-bigint/-/is-bigint-1.0.4.tgz", + "integrity": "sha512-zB9CruMamjym81i2JZ3UMn54PKGsQzsJeo6xvN3HJJ4CAsQNB6iRutp2To77OfCNuoxspsIhzaPoO1zyCEhFOg==", + "dev": true, + "dependencies": { + "has-bigints": "^1.0.1" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-binary-path": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", + "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", + "dependencies": { + "binary-extensions": "^2.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/is-boolean-object": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/is-boolean-object/-/is-boolean-object-1.1.2.tgz", + "integrity": "sha512-gDYaKHJmnj4aWxyj6YHyXVpdQawtVLHU5cb+eztPGczf6cjuTdwve5ZIEfgXqH4e57An1D1AKf8CZ3kYrQRqYA==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-bun-module": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/is-bun-module/-/is-bun-module-1.3.0.tgz", + "integrity": "sha512-DgXeu5UWI0IsMQundYb5UAOzm6G2eVnarJ0byP6Tm55iZNKceD59LNPA2L4VvsScTtHcw0yEkVwSf7PC+QoLSA==", + "dev": true, + "dependencies": { + "semver": "^7.6.3" + } + }, + "node_modules/is-callable": { + "version": "1.2.7", + "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.7.tgz", + "integrity": "sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==", + "dev": true, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-core-module": { + "version": "2.15.1", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.15.1.tgz", + "integrity": "sha512-z0vtXSwucUJtANQWldhbtbt7BnL0vxiFjIdDLAatwhDYty2bad6s+rijD6Ri4YuYJubLzIJLUidCh09e1djEVQ==", + "dependencies": { + "hasown": "^2.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-data-view": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-data-view/-/is-data-view-1.0.1.tgz", + "integrity": "sha512-AHkaJrsUVW6wq6JS8y3JnM/GJF/9cf+k20+iDzlSaJrinEo5+7vRiteOSwBhHRiAyQATN1AmY4hwzxJKPmYf+w==", + "dev": true, + "dependencies": { + "is-typed-array": "^1.1.13" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-date-object": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.5.tgz", + "integrity": "sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ==", + "dev": true, + "dependencies": { + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-extglob": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", + "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-finalizationregistry": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-finalizationregistry/-/is-finalizationregistry-1.1.0.tgz", + "integrity": "sha512-qfMdqbAQEwBw78ZyReKnlA8ezmPdb9BemzIIip/JkjaZUhitfXDkkr+3QTboW0JrSXT1QWyYShpvnNHGZ4c4yA==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.7" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", + "engines": { + "node": ">=8" + } + }, + "node_modules/is-generator-function": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/is-generator-function/-/is-generator-function-1.0.10.tgz", + "integrity": "sha512-jsEjy9l3yiXEQ+PsXdmBwEPcOxaXWLspKdplFUVI9vq1iZgIekeC0L167qeu86czQaxed3q/Uzuw0swL0irL8A==", + "dev": true, + "dependencies": { + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-glob": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", + "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", + "dependencies": { + "is-extglob": "^2.1.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-map": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/is-map/-/is-map-2.0.3.tgz", + "integrity": "sha512-1Qed0/Hr2m+YqxnM09CjA2d/i6YZNfF6R2oRAOj36eUdS6qIV/huPJNSEpKbupewFs+ZsJlxsjjPbc0/afW6Lw==", + "dev": true, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-negative-zero": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/is-negative-zero/-/is-negative-zero-2.0.3.tgz", + "integrity": "sha512-5KoIu2Ngpyek75jXodFvnafB6DJgr3u8uuK0LEZJjrU19DrMD3EVERaR8sjz8CCGgpZvxPl9SuE1GMVPFHx1mw==", + "dev": true, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-number": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", + "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", + "engines": { + "node": ">=0.12.0" + } + }, + "node_modules/is-number-object": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/is-number-object/-/is-number-object-1.0.7.tgz", + "integrity": "sha512-k1U0IRzLMo7ZlYIfzRu23Oh6MiIFasgpb9X76eqfFZAqwH44UI4KTBvBYIZ1dSL9ZzChTB9ShHfLkR4pdW5krQ==", + "dev": true, + "dependencies": { + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-path-inside": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-3.0.3.tgz", + "integrity": "sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/is-regex": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.1.4.tgz", + "integrity": "sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-set": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/is-set/-/is-set-2.0.3.tgz", + "integrity": "sha512-iPAjerrse27/ygGLxw+EBR9agv9Y6uLeYVJMu+QNCoouJ1/1ri0mGrcWpfCqFZuzzx3WjtwxG098X+n4OuRkPg==", + "dev": true, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-shared-array-buffer": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/is-shared-array-buffer/-/is-shared-array-buffer-1.0.3.tgz", + "integrity": "sha512-nA2hv5XIhLR3uVzDDfCIknerhx8XUKnstuOERPNNIinXG7v9u+ohXF67vxm4TPTEPU6lm61ZkwP3c9PCB97rhg==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.7" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-string": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/is-string/-/is-string-1.0.7.tgz", + "integrity": "sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg==", + "dev": true, + "dependencies": { + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-symbol": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.4.tgz", + "integrity": "sha512-C/CPBqKWnvdcxqIARxyOh4v1UUEOCHpgDa0WYgpKDFMszcrPcffg5uhwSgPCLD2WWxmq6isisz87tzT01tuGhg==", + "dev": true, + "dependencies": { + "has-symbols": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-typed-array": { + "version": "1.1.13", + "resolved": "https://registry.npmjs.org/is-typed-array/-/is-typed-array-1.1.13.tgz", + "integrity": "sha512-uZ25/bUAlUY5fR4OKT4rZQEBrzQWYV9ZJYGGsUmEJ6thodVJ1HX64ePQ6Z0qPWP+m+Uq6e9UugrE38jeYsDSMw==", + "dev": true, + "dependencies": { + "which-typed-array": "^1.1.14" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-weakmap": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/is-weakmap/-/is-weakmap-2.0.2.tgz", + "integrity": "sha512-K5pXYOm9wqY1RgjpL3YTkF39tni1XajUIkawTLUo9EZEVUFga5gSQJF8nNS7ZwJQ02y+1YCNYcMh+HIf1ZqE+w==", + "dev": true, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-weakref": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-weakref/-/is-weakref-1.0.2.tgz", + "integrity": "sha512-qctsuLZmIQ0+vSSMfoVvyFe2+GSEvnmZ2ezTup1SBse9+twCCeial6EEi3Nc2KFcf6+qz2FBPnjXsk8xhKSaPQ==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-weakset": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/is-weakset/-/is-weakset-2.0.3.tgz", + "integrity": "sha512-LvIm3/KWzS9oRFHugab7d+M/GcBXuXX5xZkzPmN+NxihdQlZUQ4dWuSV1xR/sq6upL1TJEDrfBgRepHFdBtSNQ==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.7", + "get-intrinsic": "^1.2.4" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/isarray": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-2.0.5.tgz", + "integrity": "sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==", + "dev": true + }, + "node_modules/isexe": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", + "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==" + }, + "node_modules/iterator.prototype": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/iterator.prototype/-/iterator.prototype-1.1.3.tgz", + "integrity": "sha512-FW5iMbeQ6rBGm/oKgzq2aW4KvAGpxPzYES8N4g4xNXUKpL1mclMvOe+76AcLDTvD+Ze+sOpVhgdAQEKF4L9iGQ==", + "dev": true, + "dependencies": { + "define-properties": "^1.2.1", + "get-intrinsic": "^1.2.1", + "has-symbols": "^1.0.3", + "reflect.getprototypeof": "^1.0.4", + "set-function-name": "^2.0.1" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/jackspeak": { + "version": "3.4.3", + "resolved": "https://registry.npmjs.org/jackspeak/-/jackspeak-3.4.3.tgz", + "integrity": "sha512-OGlZQpz2yfahA/Rd1Y8Cd9SIEsqvXkLVoSw/cgwhnhFMDbsQFeZYoJJ7bIZBS9BcamUW96asq/npPWugM+RQBw==", + "dependencies": { + "@isaacs/cliui": "^8.0.2" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + }, + "optionalDependencies": { + "@pkgjs/parseargs": "^0.11.0" + } + }, + "node_modules/jiti": { + "version": "1.21.6", + "resolved": "https://registry.npmjs.org/jiti/-/jiti-1.21.6.tgz", + "integrity": "sha512-2yTgeWTWzMWkHu6Jp9NKgePDaYHbntiwvYuuJLbbN9vl7DC9DvXKOB2BC3ZZ92D3cvV/aflH0osDfwpHepQ53w==", + "bin": { + "jiti": "bin/jiti.js" + } + }, + "node_modules/js-tokens": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", + "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==" + }, + "node_modules/js-yaml": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", + "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", + "dev": true, + "dependencies": { + "argparse": "^2.0.1" + }, + "bin": { + "js-yaml": "bin/js-yaml.js" + } + }, + "node_modules/json-buffer": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.1.tgz", + "integrity": "sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==", + "dev": true + }, + "node_modules/json-schema-traverse": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", + "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", + "dev": true + }, + "node_modules/json-stable-stringify-without-jsonify": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz", + "integrity": "sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==", + "dev": true + }, + "node_modules/json5": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.2.tgz", + "integrity": "sha512-g1MWMLBiz8FKi1e4w0UyVL3w+iJceWAFBAaBnnGKOpNa5f8TLktkbre1+s6oICydWAm+HRUGTmI+//xv2hvXYA==", + "dev": true, + "dependencies": { + "minimist": "^1.2.0" + }, + "bin": { + "json5": "lib/cli.js" + } + }, + "node_modules/jsx-ast-utils": { + "version": "3.3.5", + "resolved": "https://registry.npmjs.org/jsx-ast-utils/-/jsx-ast-utils-3.3.5.tgz", + "integrity": "sha512-ZZow9HBI5O6EPgSJLUb8n2NKgmVWTwCvHGwFuJlMjvLFqlGG6pjirPhtdsseaLZjSibD8eegzmYpUZwoIlj2cQ==", + "dev": true, + "dependencies": { + "array-includes": "^3.1.6", + "array.prototype.flat": "^1.3.1", + "object.assign": "^4.1.4", + "object.values": "^1.1.6" + }, + "engines": { + "node": ">=4.0" + } + }, + "node_modules/keyv": { + "version": "4.5.4", + "resolved": "https://registry.npmjs.org/keyv/-/keyv-4.5.4.tgz", + "integrity": "sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==", + "dev": true, + "dependencies": { + "json-buffer": "3.0.1" + } + }, + "node_modules/language-subtag-registry": { + "version": "0.3.23", + "resolved": "https://registry.npmjs.org/language-subtag-registry/-/language-subtag-registry-0.3.23.tgz", + "integrity": "sha512-0K65Lea881pHotoGEa5gDlMxt3pctLi2RplBb7Ezh4rRdLEOtgi7n4EwK9lamnUCkKBqaeKRVebTq6BAxSkpXQ==", + "dev": true + }, + "node_modules/language-tags": { + "version": "1.0.9", + "resolved": "https://registry.npmjs.org/language-tags/-/language-tags-1.0.9.tgz", + "integrity": "sha512-MbjN408fEndfiQXbFQ1vnd+1NoLDsnQW41410oQBXiyXDMYH5z505juWa4KUE1LqxRC7DgOgZDbKLxHIwm27hA==", + "dev": true, + "dependencies": { + "language-subtag-registry": "^0.3.20" + }, + "engines": { + "node": ">=0.10" + } + }, + "node_modules/levn": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/levn/-/levn-0.4.1.tgz", + "integrity": "sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==", + "dev": true, + "dependencies": { + "prelude-ls": "^1.2.1", + "type-check": "~0.4.0" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/lilconfig": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/lilconfig/-/lilconfig-2.1.0.tgz", + "integrity": "sha512-utWOt/GHzuUxnLKxB6dk81RoOeoNeHgbrXiuGk4yyF5qlRz+iIVWu56E2fqGHFrXz0QNUhLB/8nKqvRH66JKGQ==", + "engines": { + "node": ">=10" + } + }, + "node_modules/lines-and-columns": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.2.4.tgz", + "integrity": "sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==" + }, + "node_modules/locate-path": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz", + "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==", + "dev": true, + "dependencies": { + "p-locate": "^5.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/lodash.merge": { + "version": "4.6.2", + "resolved": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz", + "integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==", + "dev": true + }, + "node_modules/loose-envify": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz", + "integrity": "sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==", + "dependencies": { + "js-tokens": "^3.0.0 || ^4.0.0" + }, + "bin": { + "loose-envify": "cli.js" + } + }, + "node_modules/lru-cache": { + "version": "10.4.3", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.4.3.tgz", + "integrity": "sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ==" + }, + "node_modules/lucide-react": { + "version": "0.462.0", + "resolved": "https://registry.npmjs.org/lucide-react/-/lucide-react-0.462.0.tgz", + "integrity": "sha512-NTL7EbAao9IFtuSivSZgrAh4fZd09Lr+6MTkqIxuHaH2nnYiYIzXPo06cOxHg9wKLdj6LL8TByG4qpePqwgx/g==", + "peerDependencies": { + "react": "^16.5.1 || ^17.0.0 || ^18.0.0 || ^19.0.0-rc" + } + }, + "node_modules/merge2": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", + "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==", + "engines": { + "node": ">= 8" + } + }, + "node_modules/micromatch": { + "version": "4.0.8", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.8.tgz", + "integrity": "sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA==", + "dependencies": { + "braces": "^3.0.3", + "picomatch": "^2.3.1" + }, + "engines": { + "node": ">=8.6" + } + }, + "node_modules/minimatch": { + "version": "9.0.5", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.5.tgz", + "integrity": "sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==", + "dependencies": { + "brace-expansion": "^2.0.1" + }, + "engines": { + "node": ">=16 || 14 >=14.17" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/minimist": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.8.tgz", + "integrity": "sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==", + "dev": true, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/minipass": { + "version": "7.1.2", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-7.1.2.tgz", + "integrity": "sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw==", + "engines": { + "node": ">=16 || 14 >=14.17" + } + }, + "node_modules/motion-dom": { + "version": "11.14.3", + "resolved": "https://registry.npmjs.org/motion-dom/-/motion-dom-11.14.3.tgz", + "integrity": "sha512-lW+D2wBy5vxLJi6aCP0xyxTxlTfiu+b+zcpVbGVFUxotwThqhdpPRSmX8xztAgtZMPMeU0WGVn/k1w4I+TbPqA==" + }, + "node_modules/motion-utils": { + "version": "11.14.3", + "resolved": "https://registry.npmjs.org/motion-utils/-/motion-utils-11.14.3.tgz", + "integrity": "sha512-Xg+8xnqIJTpr0L/cidfTTBFkvRw26ZtGGuIhA94J9PQ2p4mEa06Xx7QVYZH0BP+EpMSaDlu+q0I0mmvwADPsaQ==" + }, + "node_modules/ms": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", + "dev": true + }, + "node_modules/mz": { + "version": "2.7.0", + "resolved": "https://registry.npmjs.org/mz/-/mz-2.7.0.tgz", + "integrity": "sha512-z81GNO7nnYMEhrGh9LeymoE4+Yr0Wn5McHIZMK5cfQCl+NDX08sCZgUc9/6MHni9IWuFLm1Z3HTCXu2z9fN62Q==", + "dependencies": { + "any-promise": "^1.0.0", + "object-assign": "^4.0.1", + "thenify-all": "^1.0.0" + } + }, + "node_modules/nanoid": { + "version": "3.3.8", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.8.tgz", + "integrity": "sha512-WNLf5Sd8oZxOm+TzppcYk8gVOgP+l58xNy58D0nbUnOxOWRWvlcCV4kUF7ltmI6PsrLl/BgKEyS4mqsGChFN0w==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "bin": { + "nanoid": "bin/nanoid.cjs" + }, + "engines": { + "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1" + } + }, + "node_modules/natural-compare": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", + "integrity": "sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==", + "dev": true + }, + "node_modules/next": { + "version": "15.0.3", + "resolved": "https://registry.npmjs.org/next/-/next-15.0.3.tgz", + "integrity": "sha512-ontCbCRKJUIoivAdGB34yCaOcPgYXr9AAkV/IwqFfWWTXEPUgLYkSkqBhIk9KK7gGmgjc64B+RdoeIDM13Irnw==", + "dependencies": { + "@next/env": "15.0.3", + "@swc/counter": "0.1.3", + "@swc/helpers": "0.5.13", + "busboy": "1.6.0", + "caniuse-lite": "^1.0.30001579", + "postcss": "8.4.31", + "styled-jsx": "5.1.6" + }, + "bin": { + "next": "dist/bin/next" + }, + "engines": { + "node": "^18.18.0 || ^19.8.0 || >= 20.0.0" + }, + "optionalDependencies": { + "@next/swc-darwin-arm64": "15.0.3", + "@next/swc-darwin-x64": "15.0.3", + "@next/swc-linux-arm64-gnu": "15.0.3", + "@next/swc-linux-arm64-musl": "15.0.3", + "@next/swc-linux-x64-gnu": "15.0.3", + "@next/swc-linux-x64-musl": "15.0.3", + "@next/swc-win32-arm64-msvc": "15.0.3", + "@next/swc-win32-x64-msvc": "15.0.3", + "sharp": "^0.33.5" + }, + "peerDependencies": { + "@opentelemetry/api": "^1.1.0", + "@playwright/test": "^1.41.2", + "babel-plugin-react-compiler": "*", + "react": "^18.2.0 || 19.0.0-rc-66855b96-20241106", + "react-dom": "^18.2.0 || 19.0.0-rc-66855b96-20241106", + "sass": "^1.3.0" + }, + "peerDependenciesMeta": { + "@opentelemetry/api": { + "optional": true + }, + "@playwright/test": { + "optional": true + }, + "babel-plugin-react-compiler": { + "optional": true + }, + "sass": { + "optional": true + } + } + }, + "node_modules/next/node_modules/postcss": { + "version": "8.4.31", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.31.tgz", + "integrity": "sha512-PS08Iboia9mts/2ygV3eLpY5ghnUcfLV/EXTOW1E2qYxJKGGBUtNjN76FYHnMs36RmARn41bC0AZmn+rR0OVpQ==", + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/postcss" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "dependencies": { + "nanoid": "^3.3.6", + "picocolors": "^1.0.0", + "source-map-js": "^1.0.2" + }, + "engines": { + "node": "^10 || ^12 || >=14" + } + }, + "node_modules/normalize-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", + "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/object-assign": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", + "integrity": "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/object-hash": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/object-hash/-/object-hash-3.0.0.tgz", + "integrity": "sha512-RSn9F68PjH9HqtltsSnqYC1XXoWe9Bju5+213R98cNGttag9q9yAOTzdbsqvIa7aNm5WffBZFpWYr2aWrklWAw==", + "engines": { + "node": ">= 6" + } + }, + "node_modules/object-inspect": { + "version": "1.13.3", + "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.13.3.tgz", + "integrity": "sha512-kDCGIbxkDSXE3euJZZXzc6to7fCrKHNI/hSRQnRuQ+BWjFNzZwiFF8fj/6o2t2G9/jTj8PSIYTfCLelLZEeRpA==", + "dev": true, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/object-keys": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz", + "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==", + "dev": true, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/object.assign": { + "version": "4.1.5", + "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.5.tgz", + "integrity": "sha512-byy+U7gp+FVwmyzKPYhW2h5l3crpmGsxl7X2s8y43IgxvG4g3QZ6CffDtsNQy1WsmZpQbO+ybo0AlW7TY6DcBQ==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.5", + "define-properties": "^1.2.1", + "has-symbols": "^1.0.3", + "object-keys": "^1.1.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/object.entries": { + "version": "1.1.8", + "resolved": "https://registry.npmjs.org/object.entries/-/object.entries-1.1.8.tgz", + "integrity": "sha512-cmopxi8VwRIAw/fkijJohSfpef5PdN0pMQJN6VC/ZKvn0LIknWD8KtgY6KlQdEc4tIjcQ3HxSMmnvtzIscdaYQ==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-object-atoms": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/object.fromentries": { + "version": "2.0.8", + "resolved": "https://registry.npmjs.org/object.fromentries/-/object.fromentries-2.0.8.tgz", + "integrity": "sha512-k6E21FzySsSK5a21KRADBd/NGneRegFO5pLHfdQLpRDETUNJueLXs3WCzyQ3tFRDYgbq3KHGXfTbi2bs8WQ6rQ==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.2", + "es-object-atoms": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/object.groupby": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/object.groupby/-/object.groupby-1.0.3.tgz", + "integrity": "sha512-+Lhy3TQTuzXI5hevh8sBGqbmurHbbIjAi0Z4S63nthVLmLxfbj4T54a4CfZrXIrt9iP4mVAPYMo/v99taj3wjQ==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/object.values": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/object.values/-/object.values-1.2.0.tgz", + "integrity": "sha512-yBYjY9QX2hnRmZHAjG/f13MzmBzxzYgQhFrke06TTyKY5zSTEqkOeukBzIdVA3j3ulu8Qa3MbVFShV7T2RmGtQ==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-object-atoms": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/once": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", + "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", + "dev": true, + "dependencies": { + "wrappy": "1" + } + }, + "node_modules/optionator": { + "version": "0.9.4", + "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.4.tgz", + "integrity": "sha512-6IpQ7mKUxRcZNLIObR0hz7lxsapSSIYNZJwXPGeF0mTVqGKFIXj1DQcMoT22S3ROcLyY/rz0PWaWZ9ayWmad9g==", + "dev": true, + "dependencies": { + "deep-is": "^0.1.3", + "fast-levenshtein": "^2.0.6", + "levn": "^0.4.1", + "prelude-ls": "^1.2.1", + "type-check": "^0.4.0", + "word-wrap": "^1.2.5" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/p-limit": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", + "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", + "dev": true, + "dependencies": { + "yocto-queue": "^0.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/p-locate": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz", + "integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==", + "dev": true, + "dependencies": { + "p-limit": "^3.0.2" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/package-json-from-dist": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/package-json-from-dist/-/package-json-from-dist-1.0.1.tgz", + "integrity": "sha512-UEZIS3/by4OC8vL3P2dTXRETpebLI2NiI5vIrjaD/5UtrkFX/tNbwjTSRAGC/+7CAo2pIcBaRgWmcBBHcsaCIw==" + }, + "node_modules/parent-module": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz", + "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==", + "dev": true, + "dependencies": { + "callsites": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/path-exists": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", + "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/path-is-absolute": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", + "integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/path-key": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", + "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", + "engines": { + "node": ">=8" + } + }, + "node_modules/path-parse": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", + "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==" + }, + "node_modules/path-scurry": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/path-scurry/-/path-scurry-1.11.1.tgz", + "integrity": "sha512-Xa4Nw17FS9ApQFJ9umLiJS4orGjm7ZzwUrwamcGQuHSzDyth9boKDaycYdDcZDuqYATXw4HFXgaqWTctW/v1HA==", + "dependencies": { + "lru-cache": "^10.2.0", + "minipass": "^5.0.0 || ^6.0.2 || ^7.0.0" + }, + "engines": { + "node": ">=16 || 14 >=14.18" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/picocolors": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.1.1.tgz", + "integrity": "sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==" + }, + "node_modules/picomatch": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", + "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", + "engines": { + "node": ">=8.6" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, + "node_modules/pify": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", + "integrity": "sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/pirates": { + "version": "4.0.6", + "resolved": "https://registry.npmjs.org/pirates/-/pirates-4.0.6.tgz", + "integrity": "sha512-saLsH7WeYYPiD25LDuLRRY/i+6HaPYr6G1OUlN39otzkSTxKnubR9RTxS3/Kk50s1g2JTgFwWQDQyplC5/SHZg==", + "engines": { + "node": ">= 6" + } + }, + "node_modules/possible-typed-array-names": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/possible-typed-array-names/-/possible-typed-array-names-1.0.0.tgz", + "integrity": "sha512-d7Uw+eZoloe0EHDIYoe+bQ5WXnGMOpmiZFTuMWCwpjzzkL2nTjcKiAk4hh8TjnGye2TwWOk3UXucZ+3rbmBa8Q==", + "dev": true, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/postcss": { + "version": "8.4.49", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.49.tgz", + "integrity": "sha512-OCVPnIObs4N29kxTjzLfUryOkvZEq+pf8jTF0lg8E7uETuWHA+v7j3c/xJmiqpX450191LlmZfUKkXxkTry7nA==", + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/postcss" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "dependencies": { + "nanoid": "^3.3.7", + "picocolors": "^1.1.1", + "source-map-js": "^1.2.1" + }, + "engines": { + "node": "^10 || ^12 || >=14" + } + }, + "node_modules/postcss-import": { + "version": "15.1.0", + "resolved": "https://registry.npmjs.org/postcss-import/-/postcss-import-15.1.0.tgz", + "integrity": "sha512-hpr+J05B2FVYUAXHeK1YyI267J/dDDhMU6B6civm8hSY1jYJnBXxzKDKDswzJmtLHryrjhnDjqqp/49t8FALew==", + "dependencies": { + "postcss-value-parser": "^4.0.0", + "read-cache": "^1.0.0", + "resolve": "^1.1.7" + }, + "engines": { + "node": ">=14.0.0" + }, + "peerDependencies": { + "postcss": "^8.0.0" + } + }, + "node_modules/postcss-js": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/postcss-js/-/postcss-js-4.0.1.tgz", + "integrity": "sha512-dDLF8pEO191hJMtlHFPRa8xsizHaM82MLfNkUHdUtVEV3tgTp5oj+8qbEqYM57SLfc74KSbw//4SeJma2LRVIw==", + "dependencies": { + "camelcase-css": "^2.0.1" + }, + "engines": { + "node": "^12 || ^14 || >= 16" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + "peerDependencies": { + "postcss": "^8.4.21" + } + }, + "node_modules/postcss-nested": { + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/postcss-nested/-/postcss-nested-6.2.0.tgz", + "integrity": "sha512-HQbt28KulC5AJzG+cZtj9kvKB93CFCdLvog1WFLf1D+xmMvPGlBstkpTEZfK5+AN9hfJocyBFCNiqyS48bpgzQ==", + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "dependencies": { + "postcss-selector-parser": "^6.1.1" + }, + "engines": { + "node": ">=12.0" + }, + "peerDependencies": { + "postcss": "^8.2.14" + } + }, + "node_modules/postcss-selector-parser": { + "version": "6.1.2", + "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.1.2.tgz", + "integrity": "sha512-Q8qQfPiZ+THO/3ZrOrO0cJJKfpYCagtMUkXbnEfmgUjwXg6z/WBeOyS9APBBPCTSiDV+s4SwQGu8yFsiMRIudg==", + "dependencies": { + "cssesc": "^3.0.0", + "util-deprecate": "^1.0.2" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/postcss-value-parser": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-4.2.0.tgz", + "integrity": "sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==" + }, + "node_modules/prelude-ls": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz", + "integrity": "sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==", + "dev": true, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/prettier": { + "version": "3.4.1", + "resolved": "https://registry.npmjs.org/prettier/-/prettier-3.4.1.tgz", + "integrity": "sha512-G+YdqtITVZmOJje6QkXQWzl3fSfMxFwm1tjTyo9exhkmWSqC4Yhd1+lug++IlR2mvRVAxEDDWYkQdeSztajqgg==", + "dev": true, + "bin": { + "prettier": "bin/prettier.cjs" + }, + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/prettier/prettier?sponsor=1" + } + }, + "node_modules/prettier-plugin-tailwindcss": { + "version": "0.6.9", + "resolved": "https://registry.npmjs.org/prettier-plugin-tailwindcss/-/prettier-plugin-tailwindcss-0.6.9.tgz", + "integrity": "sha512-r0i3uhaZAXYP0At5xGfJH876W3HHGHDp+LCRUJrs57PBeQ6mYHMwr25KH8NPX44F2yGTvdnH7OqCshlQx183Eg==", + "dev": true, + "engines": { + "node": ">=14.21.3" + }, + "peerDependencies": { + "@ianvs/prettier-plugin-sort-imports": "*", + "@prettier/plugin-pug": "*", + "@shopify/prettier-plugin-liquid": "*", + "@trivago/prettier-plugin-sort-imports": "*", + "@zackad/prettier-plugin-twig-melody": "*", + "prettier": "^3.0", + "prettier-plugin-astro": "*", + "prettier-plugin-css-order": "*", + "prettier-plugin-import-sort": "*", + "prettier-plugin-jsdoc": "*", + "prettier-plugin-marko": "*", + "prettier-plugin-multiline-arrays": "*", + "prettier-plugin-organize-attributes": "*", + "prettier-plugin-organize-imports": "*", + "prettier-plugin-sort-imports": "*", + "prettier-plugin-style-order": "*", + "prettier-plugin-svelte": "*" + }, + "peerDependenciesMeta": { + "@ianvs/prettier-plugin-sort-imports": { + "optional": true + }, + "@prettier/plugin-pug": { + "optional": true + }, + "@shopify/prettier-plugin-liquid": { + "optional": true + }, + "@trivago/prettier-plugin-sort-imports": { + "optional": true + }, + "@zackad/prettier-plugin-twig-melody": { + "optional": true + }, + "prettier-plugin-astro": { + "optional": true + }, + "prettier-plugin-css-order": { + "optional": true + }, + "prettier-plugin-import-sort": { + "optional": true + }, + "prettier-plugin-jsdoc": { + "optional": true + }, + "prettier-plugin-marko": { + "optional": true + }, + "prettier-plugin-multiline-arrays": { + "optional": true + }, + "prettier-plugin-organize-attributes": { + "optional": true + }, + "prettier-plugin-organize-imports": { + "optional": true + }, + "prettier-plugin-sort-imports": { + "optional": true + }, + "prettier-plugin-style-order": { + "optional": true + }, + "prettier-plugin-svelte": { + "optional": true + } + } + }, + "node_modules/pretty-bytes": { + "version": "6.1.1", + "resolved": "https://registry.npmjs.org/pretty-bytes/-/pretty-bytes-6.1.1.tgz", + "integrity": "sha512-mQUvGU6aUFQ+rNvTIAcZuWGRT9a6f6Yrg9bHs4ImKF+HZCEK+plBvnAZYSIQztknZF2qnzNtr6F8s0+IuptdlQ==", + "engines": { + "node": "^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/prop-types": { + "version": "15.8.1", + "resolved": "https://registry.npmjs.org/prop-types/-/prop-types-15.8.1.tgz", + "integrity": "sha512-oj87CgZICdulUohogVAR7AjlC0327U4el4L6eAvOqCeudMDVU0NThNaV+b9Df4dXgSP1gXMTnPdhfe/2qDH5cg==", + "dev": true, + "dependencies": { + "loose-envify": "^1.4.0", + "object-assign": "^4.1.1", + "react-is": "^16.13.1" + } + }, + "node_modules/punycode": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.1.tgz", + "integrity": "sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/queue-microtask": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", + "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ] + }, + "node_modules/react": { + "version": "18.3.1", + "resolved": "https://registry.npmjs.org/react/-/react-18.3.1.tgz", + "integrity": "sha512-wS+hAgJShR0KhEvPJArfuPVN1+Hz1t0Y6n5jLrGQbkb4urgPE/0Rve+1kMB1v/oWgHgm4WIcV+i7F2pTVj+2iQ==", + "dependencies": { + "loose-envify": "^1.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/react-dom": { + "version": "18.3.1", + "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-18.3.1.tgz", + "integrity": "sha512-5m4nQKp+rZRb09LNH59GM4BxTh9251/ylbKIbpe7TpGxfJ+9kv6BLkLBXIjjspbgbnIBNqlI23tRnTWT0snUIw==", + "dependencies": { + "loose-envify": "^1.1.0", + "scheduler": "^0.23.2" + }, + "peerDependencies": { + "react": "^18.3.1" + } + }, + "node_modules/react-hook-form": { + "version": "7.53.2", + "resolved": "https://registry.npmjs.org/react-hook-form/-/react-hook-form-7.53.2.tgz", + "integrity": "sha512-YVel6fW5sOeedd1524pltpHX+jgU2u3DSDtXEaBORNdqiNrsX/nUI/iGXONegttg0mJVnfrIkiV0cmTU6Oo2xw==", + "engines": { + "node": ">=18.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/react-hook-form" + }, + "peerDependencies": { + "react": "^16.8.0 || ^17 || ^18 || ^19" + } + }, + "node_modules/react-is": { + "version": "16.13.1", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-16.13.1.tgz", + "integrity": "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==", + "dev": true + }, + "node_modules/react-remove-scroll": { + "version": "2.6.0", + "resolved": "https://registry.npmjs.org/react-remove-scroll/-/react-remove-scroll-2.6.0.tgz", + "integrity": "sha512-I2U4JVEsQenxDAKaVa3VZ/JeJZe0/2DxPWL8Tj8yLKctQJQiZM52pn/GWFpSp8dftjM3pSAHVJZscAnC/y+ySQ==", + "dependencies": { + "react-remove-scroll-bar": "^2.3.6", + "react-style-singleton": "^2.2.1", + "tslib": "^2.1.0", + "use-callback-ref": "^1.3.0", + "use-sidecar": "^1.1.2" + }, + "engines": { + "node": ">=10" + }, + "peerDependencies": { + "@types/react": "^16.8.0 || ^17.0.0 || ^18.0.0", + "react": "^16.8.0 || ^17.0.0 || ^18.0.0" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/react-remove-scroll-bar": { + "version": "2.3.6", + "resolved": "https://registry.npmjs.org/react-remove-scroll-bar/-/react-remove-scroll-bar-2.3.6.tgz", + "integrity": "sha512-DtSYaao4mBmX+HDo5YWYdBWQwYIQQshUV/dVxFxK+KM26Wjwp1gZ6rv6OC3oujI6Bfu6Xyg3TwK533AQutsn/g==", + "dependencies": { + "react-style-singleton": "^2.2.1", + "tslib": "^2.0.0" + }, + "engines": { + "node": ">=10" + }, + "peerDependencies": { + "@types/react": "^16.8.0 || ^17.0.0 || ^18.0.0", + "react": "^16.8.0 || ^17.0.0 || ^18.0.0" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/react-style-singleton": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/react-style-singleton/-/react-style-singleton-2.2.1.tgz", + "integrity": "sha512-ZWj0fHEMyWkHzKYUr2Bs/4zU6XLmq9HsgBURm7g5pAVfyn49DgUiNgY2d4lXRlYSiCif9YBGpQleewkcqddc7g==", + "dependencies": { + "get-nonce": "^1.0.0", + "invariant": "^2.2.4", + "tslib": "^2.0.0" + }, + "engines": { + "node": ">=10" + }, + "peerDependencies": { + "@types/react": "^16.8.0 || ^17.0.0 || ^18.0.0", + "react": "^16.8.0 || ^17.0.0 || ^18.0.0" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/react-use-websocket": { + "version": "4.11.1", + "resolved": "https://registry.npmjs.org/react-use-websocket/-/react-use-websocket-4.11.1.tgz", + "integrity": "sha512-39e8mK2a2A1h8uY3ePF45b2q0vwMOmaEy7J5qEhQg4n7vYa5oDLmqutG36kZQgAQ/3KCZS0brlGRbbZJ0+zfKQ==" + }, + "node_modules/read-cache": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/read-cache/-/read-cache-1.0.0.tgz", + "integrity": "sha512-Owdv/Ft7IjOgm/i0xvNDZ1LrRANRfew4b2prF3OWMQLxLfu3bS8FVhCsrSCMK4lR56Y9ya+AThoTpDCTxCmpRA==", + "dependencies": { + "pify": "^2.3.0" + } + }, + "node_modules/readdirp": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", + "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", + "dependencies": { + "picomatch": "^2.2.1" + }, + "engines": { + "node": ">=8.10.0" + } + }, + "node_modules/reflect.getprototypeof": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/reflect.getprototypeof/-/reflect.getprototypeof-1.0.7.tgz", + "integrity": "sha512-bMvFGIUKlc/eSfXNX+aZ+EL95/EgZzuwA0OBPTbZZDEJw/0AkentjMuM1oiRfwHrshqk4RzdgiTg5CcDalXN5g==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.5", + "es-errors": "^1.3.0", + "get-intrinsic": "^1.2.4", + "gopd": "^1.0.1", + "which-builtin-type": "^1.1.4" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/regenerator-runtime": { + "version": "0.14.1", + "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.14.1.tgz", + "integrity": "sha512-dYnhHh0nJoMfnkZs6GmmhFknAGRrLznOu5nc9ML+EJxGvrx6H7teuevqVqCuPcPK//3eDrrjQhehXVx9cnkGdw==" + }, + "node_modules/regexp.prototype.flags": { + "version": "1.5.3", + "resolved": "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.5.3.tgz", + "integrity": "sha512-vqlC04+RQoFalODCbCumG2xIOvapzVMHwsyIGM/SIE8fRhFFsXeH8/QQ+s0T0kDAhKc4k30s73/0ydkHQz6HlQ==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-errors": "^1.3.0", + "set-function-name": "^2.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/resolve": { + "version": "1.22.8", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.8.tgz", + "integrity": "sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw==", + "dependencies": { + "is-core-module": "^2.13.0", + "path-parse": "^1.0.7", + "supports-preserve-symlinks-flag": "^1.0.0" + }, + "bin": { + "resolve": "bin/resolve" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/resolve-from": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", + "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/resolve-pkg-maps": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/resolve-pkg-maps/-/resolve-pkg-maps-1.0.0.tgz", + "integrity": "sha512-seS2Tj26TBVOC2NIc2rOe2y2ZO7efxITtLZcGSOnHHNOQ7CkiUBfw0Iw2ck6xkIhPwLhKNLS8BO+hEpngQlqzw==", + "dev": true, + "funding": { + "url": "https://github.com/privatenumber/resolve-pkg-maps?sponsor=1" + } + }, + "node_modules/reusify": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz", + "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==", + "engines": { + "iojs": ">=1.0.0", + "node": ">=0.10.0" + } + }, + "node_modules/rimraf": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", + "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", + "deprecated": "Rimraf versions prior to v4 are no longer supported", + "dev": true, + "dependencies": { + "glob": "^7.1.3" + }, + "bin": { + "rimraf": "bin.js" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/run-parallel": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz", + "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "dependencies": { + "queue-microtask": "^1.2.2" + } + }, + "node_modules/safe-array-concat": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/safe-array-concat/-/safe-array-concat-1.1.2.tgz", + "integrity": "sha512-vj6RsCsWBCf19jIeHEfkRMw8DPiBb+DMXklQ/1SGDHOMlHdPUkZXFQ2YdplS23zESTijAcurb1aSgJA3AgMu1Q==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.7", + "get-intrinsic": "^1.2.4", + "has-symbols": "^1.0.3", + "isarray": "^2.0.5" + }, + "engines": { + "node": ">=0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/safe-regex-test": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/safe-regex-test/-/safe-regex-test-1.0.3.tgz", + "integrity": "sha512-CdASjNJPvRa7roO6Ra/gLYBTzYzzPyyBXxIMdGW3USQLyjWEls2RgW5UBTXaQVp+OrpeCK3bLem8smtmheoRuw==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.6", + "es-errors": "^1.3.0", + "is-regex": "^1.1.4" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/scheduler": { + "version": "0.23.2", + "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.23.2.tgz", + "integrity": "sha512-UOShsPwz7NrMUqhR6t0hWjFduvOzbtv7toDH1/hIrfRNIDBnnBWd0CwJTGvTpngVlmwGCdP9/Zl/tVrDqcuYzQ==", + "dependencies": { + "loose-envify": "^1.1.0" + } + }, + "node_modules/semver": { + "version": "7.6.3", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.3.tgz", + "integrity": "sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==", + "devOptional": true, + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/set-function-length": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/set-function-length/-/set-function-length-1.2.2.tgz", + "integrity": "sha512-pgRc4hJ4/sNjWCSS9AmnS40x3bNMDTknHgL5UaMBTMyJnU90EgWh1Rz+MC9eFu4BuN/UwZjKQuY/1v3rM7HMfg==", + "dev": true, + "dependencies": { + "define-data-property": "^1.1.4", + "es-errors": "^1.3.0", + "function-bind": "^1.1.2", + "get-intrinsic": "^1.2.4", + "gopd": "^1.0.1", + "has-property-descriptors": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/set-function-name": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/set-function-name/-/set-function-name-2.0.2.tgz", + "integrity": "sha512-7PGFlmtwsEADb0WYyvCMa1t+yke6daIG4Wirafur5kcf+MhUnPms1UeR0CKQdTZD81yESwMHbtn+TR+dMviakQ==", + "dev": true, + "dependencies": { + "define-data-property": "^1.1.4", + "es-errors": "^1.3.0", + "functions-have-names": "^1.2.3", + "has-property-descriptors": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/sharp": { + "version": "0.33.5", + "resolved": "https://registry.npmjs.org/sharp/-/sharp-0.33.5.tgz", + "integrity": "sha512-haPVm1EkS9pgvHrQ/F3Xy+hgcuMV0Wm9vfIBSiwZ05k+xgb0PkBQpGsAA/oWdDobNaZTH5ppvHtzCFbnSEwHVw==", + "hasInstallScript": true, + "optional": true, + "dependencies": { + "color": "^4.2.3", + "detect-libc": "^2.0.3", + "semver": "^7.6.3" + }, + "engines": { + "node": "^18.17.0 || ^20.3.0 || >=21.0.0" + }, + "funding": { + "url": "https://opencollective.com/libvips" + }, + "optionalDependencies": { + "@img/sharp-darwin-arm64": "0.33.5", + "@img/sharp-darwin-x64": "0.33.5", + "@img/sharp-libvips-darwin-arm64": "1.0.4", + "@img/sharp-libvips-darwin-x64": "1.0.4", + "@img/sharp-libvips-linux-arm": "1.0.5", + "@img/sharp-libvips-linux-arm64": "1.0.4", + "@img/sharp-libvips-linux-s390x": "1.0.4", + "@img/sharp-libvips-linux-x64": "1.0.4", + "@img/sharp-libvips-linuxmusl-arm64": "1.0.4", + "@img/sharp-libvips-linuxmusl-x64": "1.0.4", + "@img/sharp-linux-arm": "0.33.5", + "@img/sharp-linux-arm64": "0.33.5", + "@img/sharp-linux-s390x": "0.33.5", + "@img/sharp-linux-x64": "0.33.5", + "@img/sharp-linuxmusl-arm64": "0.33.5", + "@img/sharp-linuxmusl-x64": "0.33.5", + "@img/sharp-wasm32": "0.33.5", + "@img/sharp-win32-ia32": "0.33.5", + "@img/sharp-win32-x64": "0.33.5" + } + }, + "node_modules/shebang-command": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", + "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", + "dependencies": { + "shebang-regex": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/shebang-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", + "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", + "engines": { + "node": ">=8" + } + }, + "node_modules/side-channel": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.6.tgz", + "integrity": "sha512-fDW/EZ6Q9RiO8eFG8Hj+7u/oW+XrPTIChwCOM2+th2A6OblDtYYIpve9m+KvI9Z4C9qSEXlaGR6bTEYHReuglA==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.7", + "es-errors": "^1.3.0", + "get-intrinsic": "^1.2.4", + "object-inspect": "^1.13.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/signal-exit": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-4.1.0.tgz", + "integrity": "sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==", + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/simple-swizzle": { + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/simple-swizzle/-/simple-swizzle-0.2.2.tgz", + "integrity": "sha512-JA//kQgZtbuY83m+xT+tXJkmJncGMTFT+C+g2h2R9uxkYIrE2yy9sgmcLhCnw57/WSD+Eh3J97FPEDFnbXnDUg==", + "optional": true, + "dependencies": { + "is-arrayish": "^0.3.1" + } + }, + "node_modules/source-map-js": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.2.1.tgz", + "integrity": "sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/spoiled": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/spoiled/-/spoiled-0.3.2.tgz", + "integrity": "sha512-FJ2NraJAXtp8bN1Le7abBP6X6UXxdi3SyUrSMVsXAdVsDPttDOKH9jaSkXSIvcXjlv+ybg7SwiBoAD8tqs94aA==", + "dependencies": { + "colord": "^2.9.3" + }, + "peerDependencies": { + "react": "^18.0.0", + "react-dom": "^18.0.0" + } + }, + "node_modules/streamsearch": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/streamsearch/-/streamsearch-1.1.0.tgz", + "integrity": "sha512-Mcc5wHehp9aXz1ax6bZUyY5afg9u2rv5cqQI3mRrYkGC8rW2hM02jWuwjtL++LS5qinSyhj2QfLyNsuc+VsExg==", + "engines": { + "node": ">=10.0.0" + } + }, + "node_modules/string-width": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-5.1.2.tgz", + "integrity": "sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==", + "dependencies": { + "eastasianwidth": "^0.2.0", + "emoji-regex": "^9.2.2", + "strip-ansi": "^7.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/string-width-cjs": { + "name": "string-width", + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/string-width-cjs/node_modules/emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==" + }, + "node_modules/string-width/node_modules/ansi-regex": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.1.0.tgz", + "integrity": "sha512-7HSX4QQb4CspciLpVFwyRe79O3xsIZDDLER21kERQ71oaPodF8jL725AgJMFAYbooIqolJoRLuM81SpeUkpkvA==", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-regex?sponsor=1" + } + }, + "node_modules/string-width/node_modules/strip-ansi": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.0.tgz", + "integrity": "sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==", + "dependencies": { + "ansi-regex": "^6.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/strip-ansi?sponsor=1" + } + }, + "node_modules/string.prototype.includes": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/string.prototype.includes/-/string.prototype.includes-2.0.1.tgz", + "integrity": "sha512-o7+c9bW6zpAdJHTtujeePODAhkuicdAryFsfVKwA+wGw89wJ4GTY484WTucM9hLtDEOpOvI+aHnzqnC5lHp4Rg==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.3" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/string.prototype.matchall": { + "version": "4.0.11", + "resolved": "https://registry.npmjs.org/string.prototype.matchall/-/string.prototype.matchall-4.0.11.tgz", + "integrity": "sha512-NUdh0aDavY2og7IbBPenWqR9exH+E26Sv8e0/eTe1tltDGZL+GtBkDAnnyBtmekfK6/Dq3MkcGtzXFEd1LQrtg==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.2", + "es-errors": "^1.3.0", + "es-object-atoms": "^1.0.0", + "get-intrinsic": "^1.2.4", + "gopd": "^1.0.1", + "has-symbols": "^1.0.3", + "internal-slot": "^1.0.7", + "regexp.prototype.flags": "^1.5.2", + "set-function-name": "^2.0.2", + "side-channel": "^1.0.6" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/string.prototype.repeat": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/string.prototype.repeat/-/string.prototype.repeat-1.0.0.tgz", + "integrity": "sha512-0u/TldDbKD8bFCQ/4f5+mNRrXwZ8hg2w7ZR8wa16e8z9XpePWl3eGEcUD0OXpEH/VJH/2G3gjUtR3ZOiBe2S/w==", + "dev": true, + "dependencies": { + "define-properties": "^1.1.3", + "es-abstract": "^1.17.5" + } + }, + "node_modules/string.prototype.trim": { + "version": "1.2.9", + "resolved": "https://registry.npmjs.org/string.prototype.trim/-/string.prototype.trim-1.2.9.tgz", + "integrity": "sha512-klHuCNxiMZ8MlsOihJhJEBJAiMVqU3Z2nEXWfWnIqjN0gEFS9J9+IxKozWWtQGcgoa1WUZzLjKPTr4ZHNFTFxw==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.0", + "es-object-atoms": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/string.prototype.trimend": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.8.tgz", + "integrity": "sha512-p73uL5VCHCO2BZZ6krwwQE3kCzM7NKmis8S//xEC6fQonchbum4eP6kR4DLEjQFO3Wnj3Fuo8NM0kOSjVdHjZQ==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-object-atoms": "^1.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/string.prototype.trimstart": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.8.tgz", + "integrity": "sha512-UXSH262CSZY1tfu3G3Secr6uGLCFVPMhIqHjlgCUtCCcgihYc/xKs9djMTMUOb2j1mVSeU8EU6NWc/iQKU6Gfg==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-object-atoms": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/strip-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/strip-ansi-cjs": { + "name": "strip-ansi", + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/strip-bom": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz", + "integrity": "sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/strip-json-comments": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz", + "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==", + "dev": true, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/styled-jsx": { + "version": "5.1.6", + "resolved": "https://registry.npmjs.org/styled-jsx/-/styled-jsx-5.1.6.tgz", + "integrity": "sha512-qSVyDTeMotdvQYoHWLNGwRFJHC+i+ZvdBRYosOFgC+Wg1vx4frN2/RG/NA7SYqqvKNLf39P2LSRA2pu6n0XYZA==", + "dependencies": { + "client-only": "0.0.1" + }, + "engines": { + "node": ">= 12.0.0" + }, + "peerDependencies": { + "react": ">= 16.8.0 || 17.x.x || ^18.0.0-0 || ^19.0.0-0" + }, + "peerDependenciesMeta": { + "@babel/core": { + "optional": true + }, + "babel-plugin-macros": { + "optional": true + } + } + }, + "node_modules/sucrase": { + "version": "3.35.0", + "resolved": "https://registry.npmjs.org/sucrase/-/sucrase-3.35.0.tgz", + "integrity": "sha512-8EbVDiu9iN/nESwxeSxDKe0dunta1GOlHufmSSXxMD2z2/tMZpDMpvXQGsc+ajGo8y2uYUmixaSRUc/QPoQ0GA==", + "dependencies": { + "@jridgewell/gen-mapping": "^0.3.2", + "commander": "^4.0.0", + "glob": "^10.3.10", + "lines-and-columns": "^1.1.6", + "mz": "^2.7.0", + "pirates": "^4.0.1", + "ts-interface-checker": "^0.1.9" + }, + "bin": { + "sucrase": "bin/sucrase", + "sucrase-node": "bin/sucrase-node" + }, + "engines": { + "node": ">=16 || 14 >=14.17" + } + }, + "node_modules/sucrase/node_modules/glob": { + "version": "10.4.5", + "resolved": "https://registry.npmjs.org/glob/-/glob-10.4.5.tgz", + "integrity": "sha512-7Bv8RF0k6xjo7d4A/PxYLbUCfb6c+Vpd2/mB2yRDlew7Jb5hEXiCD9ibfO7wpk8i4sevK6DFny9h7EYbM3/sHg==", + "dependencies": { + "foreground-child": "^3.1.0", + "jackspeak": "^3.1.2", + "minimatch": "^9.0.4", + "minipass": "^7.1.2", + "package-json-from-dist": "^1.0.0", + "path-scurry": "^1.11.1" + }, + "bin": { + "glob": "dist/esm/bin.mjs" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/supports-preserve-symlinks-flag": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", + "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/swr": { + "version": "2.2.5", + "resolved": "https://registry.npmjs.org/swr/-/swr-2.2.5.tgz", + "integrity": "sha512-QtxqyclFeAsxEUeZIYmsaQ0UjimSq1RZ9Un7I68/0ClKK/U3LoyQunwkQfJZr2fc22DfIXLNDc2wFyTEikCUpg==", + "dependencies": { + "client-only": "^0.0.1", + "use-sync-external-store": "^1.2.0" + }, + "peerDependencies": { + "react": "^16.11.0 || ^17.0.0 || ^18.0.0" + } + }, + "node_modules/tailwind-merge": { + "version": "2.5.5", + "resolved": "https://registry.npmjs.org/tailwind-merge/-/tailwind-merge-2.5.5.tgz", + "integrity": "sha512-0LXunzzAZzo0tEPxV3I297ffKZPlKDrjj7NXphC8V5ak9yHC5zRmxnOe2m/Rd/7ivsOMJe3JZ2JVocoDdQTRBA==", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/dcastil" + } + }, + "node_modules/tailwindcss": { + "version": "3.4.15", + "resolved": "https://registry.npmjs.org/tailwindcss/-/tailwindcss-3.4.15.tgz", + "integrity": "sha512-r4MeXnfBmSOuKUWmXe6h2CcyfzJCEk4F0pptO5jlnYSIViUkVmsawj80N5h2lO3gwcmSb4n3PuN+e+GC1Guylw==", + "dependencies": { + "@alloc/quick-lru": "^5.2.0", + "arg": "^5.0.2", + "chokidar": "^3.6.0", + "didyoumean": "^1.2.2", + "dlv": "^1.1.3", + "fast-glob": "^3.3.2", + "glob-parent": "^6.0.2", + "is-glob": "^4.0.3", + "jiti": "^1.21.6", + "lilconfig": "^2.1.0", + "micromatch": "^4.0.8", + "normalize-path": "^3.0.0", + "object-hash": "^3.0.0", + "picocolors": "^1.1.1", + "postcss": "^8.4.47", + "postcss-import": "^15.1.0", + "postcss-js": "^4.0.1", + "postcss-load-config": "^4.0.2", + "postcss-nested": "^6.2.0", + "postcss-selector-parser": "^6.1.2", + "resolve": "^1.22.8", + "sucrase": "^3.35.0" + }, + "bin": { + "tailwind": "lib/cli.js", + "tailwindcss": "lib/cli.js" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/tailwindcss-animate": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/tailwindcss-animate/-/tailwindcss-animate-1.0.7.tgz", + "integrity": "sha512-bl6mpH3T7I3UFxuvDEXLxy/VuFxBk5bbzplh7tXI68mwMokNYd1t9qPBHlnyTwfa4JGC4zP516I1hYYtQ/vspA==", + "peerDependencies": { + "tailwindcss": ">=3.0.0 || insiders" + } + }, + "node_modules/tailwindcss/node_modules/postcss-load-config": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/postcss-load-config/-/postcss-load-config-4.0.2.tgz", + "integrity": "sha512-bSVhyJGL00wMVoPUzAVAnbEoWyqRxkjv64tUl427SKnPrENtq6hJwUojroMz2VB+Q1edmi4IfrAPpami5VVgMQ==", + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "dependencies": { + "lilconfig": "^3.0.0", + "yaml": "^2.3.4" + }, + "engines": { + "node": ">= 14" + }, + "peerDependencies": { + "postcss": ">=8.0.9", + "ts-node": ">=9.0.0" + }, + "peerDependenciesMeta": { + "postcss": { + "optional": true + }, + "ts-node": { + "optional": true + } + } + }, + "node_modules/tailwindcss/node_modules/postcss-load-config/node_modules/lilconfig": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/lilconfig/-/lilconfig-3.1.2.tgz", + "integrity": "sha512-eop+wDAvpItUys0FWkHIKeC9ybYrTGbU41U5K7+bttZZeohvnY7M9dZ5kB21GNWiFT2q1OoPTvncPCgSOVO5ow==", + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/antonk52" + } + }, + "node_modules/tapable": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/tapable/-/tapable-2.2.1.tgz", + "integrity": "sha512-GNzQvQTOIP6RyTfE2Qxb8ZVlNmw0n88vp1szwWRimP02mnTsx3Wtn5qRdqY9w2XduFNUgvOwhNnQsjwCp+kqaQ==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/text-table": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz", + "integrity": "sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==", + "dev": true + }, + "node_modules/thenify": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/thenify/-/thenify-3.3.1.tgz", + "integrity": "sha512-RVZSIV5IG10Hk3enotrhvz0T9em6cyHBLkH/YAZuKqd8hRkKhSfCGIcP2KUY0EPxndzANBmNllzWPwak+bheSw==", + "dependencies": { + "any-promise": "^1.0.0" + } + }, + "node_modules/thenify-all": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/thenify-all/-/thenify-all-1.6.0.tgz", + "integrity": "sha512-RNxQH/qI8/t3thXJDwcstUO4zeqo64+Uy/+sNVRBx4Xn2OX+OZ9oP+iJnNFqplFra2ZUVeKCSa2oVWi3T4uVmA==", + "dependencies": { + "thenify": ">= 3.1.0 < 4" + }, + "engines": { + "node": ">=0.8" + } + }, + "node_modules/to-regex-range": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", + "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", + "dependencies": { + "is-number": "^7.0.0" + }, + "engines": { + "node": ">=8.0" + } + }, + "node_modules/ts-api-utils": { + "version": "1.4.2", + "resolved": "https://registry.npmjs.org/ts-api-utils/-/ts-api-utils-1.4.2.tgz", + "integrity": "sha512-ZF5gQIQa/UmzfvxbHZI3JXN0/Jt+vnAfAviNRAMc491laiK6YCLpCW9ft8oaCRFOTxCZtUTE6XB0ZQAe3olntw==", + "dev": true, + "engines": { + "node": ">=16" + }, + "peerDependencies": { + "typescript": ">=4.2.0" + } + }, + "node_modules/ts-interface-checker": { + "version": "0.1.13", + "resolved": "https://registry.npmjs.org/ts-interface-checker/-/ts-interface-checker-0.1.13.tgz", + "integrity": "sha512-Y/arvbn+rrz3JCKl9C4kVNfTfSm2/mEp5FSz5EsZSANGPSlQrpRI5M4PKF+mJnE52jOO90PnPSc3Ur3bTQw0gA==" + }, + "node_modules/tsconfig-paths": { + "version": "3.15.0", + "resolved": "https://registry.npmjs.org/tsconfig-paths/-/tsconfig-paths-3.15.0.tgz", + "integrity": "sha512-2Ac2RgzDe/cn48GvOe3M+o82pEFewD3UPbyoUHHdKasHwJKjds4fLXWf/Ux5kATBKN20oaFGu+jbElp1pos0mg==", + "dev": true, + "dependencies": { + "@types/json5": "^0.0.29", + "json5": "^1.0.2", + "minimist": "^1.2.6", + "strip-bom": "^3.0.0" + } + }, + "node_modules/tslib": { + "version": "2.8.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.8.1.tgz", + "integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==" + }, + "node_modules/type-check": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz", + "integrity": "sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==", + "dev": true, + "dependencies": { + "prelude-ls": "^1.2.1" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/type-fest": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz", + "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/typed-array-buffer": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/typed-array-buffer/-/typed-array-buffer-1.0.2.tgz", + "integrity": "sha512-gEymJYKZtKXzzBzM4jqa9w6Q1Jjm7x2d+sh19AdsD4wqnMPDYyvwpsIc2Q/835kHuo3BEQ7CjelGhfTsoBb2MQ==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.7", + "es-errors": "^1.3.0", + "is-typed-array": "^1.1.13" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/typed-array-byte-length": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/typed-array-byte-length/-/typed-array-byte-length-1.0.1.tgz", + "integrity": "sha512-3iMJ9q0ao7WE9tWcaYKIptkNBuOIcZCCT0d4MRvuuH88fEoEH62IuQe0OtraD3ebQEoTRk8XCBoknUNc1Y67pw==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.7", + "for-each": "^0.3.3", + "gopd": "^1.0.1", + "has-proto": "^1.0.3", + "is-typed-array": "^1.1.13" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/typed-array-byte-offset": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/typed-array-byte-offset/-/typed-array-byte-offset-1.0.3.tgz", + "integrity": "sha512-GsvTyUHTriq6o/bHcTd0vM7OQ9JEdlvluu9YISaA7+KzDzPaIzEeDFNkTfhdE3MYcNhNi0vq/LlegYgIs5yPAw==", + "dev": true, + "dependencies": { + "available-typed-arrays": "^1.0.7", + "call-bind": "^1.0.7", + "for-each": "^0.3.3", + "gopd": "^1.0.1", + "has-proto": "^1.0.3", + "is-typed-array": "^1.1.13", + "reflect.getprototypeof": "^1.0.6" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/typed-array-length": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/typed-array-length/-/typed-array-length-1.0.7.tgz", + "integrity": "sha512-3KS2b+kL7fsuk/eJZ7EQdnEmQoaho/r6KUef7hxvltNA5DR8NAUM+8wJMbJyZ4G9/7i3v5zPBIMN5aybAh2/Jg==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.7", + "for-each": "^0.3.3", + "gopd": "^1.0.1", + "is-typed-array": "^1.1.13", + "possible-typed-array-names": "^1.0.0", + "reflect.getprototypeof": "^1.0.6" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/typescript": { + "version": "5.7.2", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.7.2.tgz", + "integrity": "sha512-i5t66RHxDvVN40HfDd1PsEThGNnlMCMT3jMUuoh9/0TaqWevNontacunWyN02LA9/fIbEWlcHZcgTKb9QoaLfg==", + "devOptional": true, + "bin": { + "tsc": "bin/tsc", + "tsserver": "bin/tsserver" + }, + "engines": { + "node": ">=14.17" + } + }, + "node_modules/unbox-primitive": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/unbox-primitive/-/unbox-primitive-1.0.2.tgz", + "integrity": "sha512-61pPlCD9h51VoreyJ0BReideM3MDKMKnh6+V9L08331ipq6Q8OFXZYiqP6n/tbHx4s5I9uRhcye6BrbkizkBDw==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "has-bigints": "^1.0.2", + "has-symbols": "^1.0.3", + "which-boxed-primitive": "^1.0.2" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/undici-types": { + "version": "6.19.8", + "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-6.19.8.tgz", + "integrity": "sha512-ve2KP6f/JnbPBFyobGHuerC9g1FYGn/F8n1LWTwNxCEzd6IfqTwUQcNXgEtmmQ6DlRrC1hrSrBnCZPokRrDHjw==", + "dev": true + }, + "node_modules/uri-js": { + "version": "4.4.1", + "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", + "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==", + "dev": true, + "dependencies": { + "punycode": "^2.1.0" + } + }, + "node_modules/use-callback-ref": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/use-callback-ref/-/use-callback-ref-1.3.2.tgz", + "integrity": "sha512-elOQwe6Q8gqZgDA8mrh44qRTQqpIHDcZ3hXTLjBe1i4ph8XpNJnO+aQf3NaG+lriLopI4HMx9VjQLfPQ6vhnoA==", + "dependencies": { + "tslib": "^2.0.0" + }, + "engines": { + "node": ">=10" + }, + "peerDependencies": { + "@types/react": "^16.8.0 || ^17.0.0 || ^18.0.0", + "react": "^16.8.0 || ^17.0.0 || ^18.0.0" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/use-debounce": { + "version": "10.0.4", + "resolved": "https://registry.npmjs.org/use-debounce/-/use-debounce-10.0.4.tgz", + "integrity": "sha512-6Cf7Yr7Wk7Kdv77nnJMf6de4HuDE4dTxKij+RqE9rufDsI6zsbjyAxcH5y2ueJCQAnfgKbzXbZHYlkFwmBlWkw==", + "engines": { + "node": ">= 16.0.0" + }, + "peerDependencies": { + "react": "*" + } + }, + "node_modules/use-sidecar": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/use-sidecar/-/use-sidecar-1.1.2.tgz", + "integrity": "sha512-epTbsLuzZ7lPClpz2TyryBfztm7m+28DlEv2ZCQ3MDr5ssiwyOwGH/e5F9CkfWjJ1t4clvI58yF822/GUkjjhw==", + "dependencies": { + "detect-node-es": "^1.1.0", + "tslib": "^2.0.0" + }, + "engines": { + "node": ">=10" + }, + "peerDependencies": { + "@types/react": "^16.9.0 || ^17.0.0 || ^18.0.0", + "react": "^16.8.0 || ^17.0.0 || ^18.0.0" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/use-sync-external-store": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/use-sync-external-store/-/use-sync-external-store-1.2.2.tgz", + "integrity": "sha512-PElTlVMwpblvbNqQ82d2n6RjStvdSoNe9FG28kNfz3WiXilJm4DdNkEzRhCZuIDwY8U08WVihhGR5iRqAwfDiw==", + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0 || ^18.0.0" + } + }, + "node_modules/util-deprecate": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", + "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==" + }, + "node_modules/which": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", + "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", + "dependencies": { + "isexe": "^2.0.0" + }, + "bin": { + "node-which": "bin/node-which" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/which-boxed-primitive": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/which-boxed-primitive/-/which-boxed-primitive-1.0.2.tgz", + "integrity": "sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg==", + "dev": true, + "dependencies": { + "is-bigint": "^1.0.1", + "is-boolean-object": "^1.1.0", + "is-number-object": "^1.0.4", + "is-string": "^1.0.5", + "is-symbol": "^1.0.3" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/which-builtin-type": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/which-builtin-type/-/which-builtin-type-1.2.0.tgz", + "integrity": "sha512-I+qLGQ/vucCby4tf5HsLmGueEla4ZhwTBSqaooS+Y0BuxN4Cp+okmGuV+8mXZ84KDI9BA+oklo+RzKg0ONdSUA==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.7", + "function.prototype.name": "^1.1.6", + "has-tostringtag": "^1.0.2", + "is-async-function": "^2.0.0", + "is-date-object": "^1.0.5", + "is-finalizationregistry": "^1.1.0", + "is-generator-function": "^1.0.10", + "is-regex": "^1.1.4", + "is-weakref": "^1.0.2", + "isarray": "^2.0.5", + "which-boxed-primitive": "^1.0.2", + "which-collection": "^1.0.2", + "which-typed-array": "^1.1.15" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/which-collection": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/which-collection/-/which-collection-1.0.2.tgz", + "integrity": "sha512-K4jVyjnBdgvc86Y6BkaLZEN933SwYOuBFkdmBu9ZfkcAbdVbpITnDmjvZ/aQjRXQrv5EPkTnD1s39GiiqbngCw==", + "dev": true, + "dependencies": { + "is-map": "^2.0.3", + "is-set": "^2.0.3", + "is-weakmap": "^2.0.2", + "is-weakset": "^2.0.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/which-typed-array": { + "version": "1.1.16", + "resolved": "https://registry.npmjs.org/which-typed-array/-/which-typed-array-1.1.16.tgz", + "integrity": "sha512-g+N+GAWiRj66DngFwHvISJd+ITsyphZvD1vChfVg6cEdnzy53GzB3oy0fUNlvhz7H7+MiqhYr26qxQShCpKTTQ==", + "dev": true, + "dependencies": { + "available-typed-arrays": "^1.0.7", + "call-bind": "^1.0.7", + "for-each": "^0.3.3", + "gopd": "^1.0.1", + "has-tostringtag": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/word-wrap": { + "version": "1.2.5", + "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.5.tgz", + "integrity": "sha512-BN22B5eaMMI9UMtjrGd5g5eCYPpCPDUy0FJXbYsaT5zYxjFOckS53SQDE3pWkVoWpHXVb3BrYcEN4Twa55B5cA==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/wrap-ansi": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-8.1.0.tgz", + "integrity": "sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==", + "dependencies": { + "ansi-styles": "^6.1.0", + "string-width": "^5.0.1", + "strip-ansi": "^7.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/wrap-ansi?sponsor=1" + } + }, + "node_modules/wrap-ansi-cjs": { + "name": "wrap-ansi", + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", + "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", + "dependencies": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/wrap-ansi?sponsor=1" + } + }, + "node_modules/wrap-ansi-cjs/node_modules/emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==" + }, + "node_modules/wrap-ansi-cjs/node_modules/string-width": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/wrap-ansi/node_modules/ansi-regex": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.1.0.tgz", + "integrity": "sha512-7HSX4QQb4CspciLpVFwyRe79O3xsIZDDLER21kERQ71oaPodF8jL725AgJMFAYbooIqolJoRLuM81SpeUkpkvA==", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-regex?sponsor=1" + } + }, + "node_modules/wrap-ansi/node_modules/ansi-styles": { + "version": "6.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.2.1.tgz", + "integrity": "sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/wrap-ansi/node_modules/strip-ansi": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.0.tgz", + "integrity": "sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==", + "dependencies": { + "ansi-regex": "^6.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/strip-ansi?sponsor=1" + } + }, + "node_modules/wrappy": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", + "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==", + "dev": true + }, + "node_modules/yaml": { + "version": "2.6.1", + "resolved": "https://registry.npmjs.org/yaml/-/yaml-2.6.1.tgz", + "integrity": "sha512-7r0XPzioN/Q9kXBro/XPnA6kznR73DHq+GXh5ON7ZozRO6aMjbmiBuKste2wslTFkC5d1dw0GooOCepZXJ2SAg==", + "bin": { + "yaml": "bin.mjs" + }, + "engines": { + "node": ">= 14" + } + }, + "node_modules/yocto-queue": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz", + "integrity": "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/zod": { + "version": "3.23.8", + "resolved": "https://registry.npmjs.org/zod/-/zod-3.23.8.tgz", + "integrity": "sha512-XBx9AXhXktjUqnepgTiE5flcKIYWi/rme0Eaj+5Y0lftuGBq+jyRu/md4WnuxqgP1ubdpNCsYEYPxrzVHD8d6g==", + "funding": { + "url": "https://github.com/sponsors/colinhacks" + } + } + }, + "dependencies": { + "@alloc/quick-lru": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/@alloc/quick-lru/-/quick-lru-5.2.0.tgz", + "integrity": "sha512-UrcABB+4bUrFABwbluTIBErXwvbsU/V7TZWfmbgJfbkwiBuziS9gxdODUyuiecfdGQ85jglMW6juS3+z5TsKLw==" + }, + "@babel/runtime": { + "version": "7.26.0", + "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.26.0.tgz", + "integrity": "sha512-FDSOghenHTiToteC/QRlv2q3DhPZ/oOXTBoirfWNx1Cx3TMVcGWQtMMmQcSvb/JjpNeGzx8Pq/b4fKEJuWm1sw==", + "requires": { + "regenerator-runtime": "^0.14.0" + } + }, + "@dnd-kit/accessibility": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/@dnd-kit/accessibility/-/accessibility-3.1.1.tgz", + "integrity": "sha512-2P+YgaXF+gRsIihwwY1gCsQSYnu9Zyj2py8kY5fFvUM1qm2WA2u639R6YNVfU4GWr+ZM5mqEsfHZZLoRONbemw==", + "requires": { + "tslib": "^2.0.0" + } + }, + "@dnd-kit/core": { + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/@dnd-kit/core/-/core-6.2.0.tgz", + "integrity": "sha512-KVK/CJmaYGTxTPU6P0+Oy4itgffTUa80B8317sXzfOr1qUzSL29jE7Th11llXiu2haB7B9Glpzo2CDElin+geQ==", + "requires": { + "@dnd-kit/accessibility": "^3.1.1", + "@dnd-kit/utilities": "^3.2.2", + "tslib": "^2.0.0" + } + }, + "@dnd-kit/modifiers": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/@dnd-kit/modifiers/-/modifiers-8.0.0.tgz", + "integrity": "sha512-oPZ0JoKtVSK9hVHSBDKG1oCLgnZbpxuH/SMnyDtXkNhn9+SF1+98DlWILFYxIT8faOS/GgfhlNFREmym6oqrEg==", + "requires": { + "@dnd-kit/utilities": "^3.2.2", + "tslib": "^2.0.0" + } + }, + "@dnd-kit/sortable": { + "version": "9.0.0", + "resolved": "https://registry.npmjs.org/@dnd-kit/sortable/-/sortable-9.0.0.tgz", + "integrity": "sha512-3/9r8Mmba0nKTbo8kPnVSFZKf/VSy94nXZ3aUwzPEh78j/LooQ/EFKRZENak4PHKBkN53mgTF/z+Sd8H+FcAnQ==", + "requires": { + "@dnd-kit/utilities": "^3.2.2", + "tslib": "^2.0.0" + } + }, + "@dnd-kit/utilities": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/@dnd-kit/utilities/-/utilities-3.2.2.tgz", + "integrity": "sha512-+MKAJEOfaBe5SmV6t34p80MMKhjvUz0vRrvVJbPT0WElzaOJ/1xs+D+KDv+tD/NE5ujfrChEcshd4fLn0wpiqg==", + "requires": { + "tslib": "^2.0.0" + } + }, + "@emnapi/runtime": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/@emnapi/runtime/-/runtime-1.3.1.tgz", + "integrity": "sha512-kEBmG8KyqtxJZv+ygbEim+KCGtIq1fC22Ms3S4ziXmYKm8uyoLX0MHONVKwp+9opg390VaKRNt4a7A9NwmpNhw==", + "optional": true, + "requires": { + "tslib": "^2.4.0" + } + }, + "@eslint-community/regexpp": { + "version": "4.12.1", + "resolved": "https://registry.npmjs.org/@eslint-community/regexpp/-/regexpp-4.12.1.tgz", + "integrity": "sha512-CCZCDJuduB9OUkFkY2IgppNZMi2lBQgD2qzwXkEia16cge2pijY/aXi96CJMquDMn3nJdlPV1A5KrJEXwfLNzQ==", + "dev": true + }, + "@eslint/eslintrc": { + "version": "2.1.4", + "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-2.1.4.tgz", + "integrity": "sha512-269Z39MS6wVJtsoUl10L60WdkhJVdPG24Q4eZTH3nnF6lpvSShEK3wQjDX9JRWAUPvPh7COouPpU9IrqaZFvtQ==", + "dev": true, + "requires": { + "ajv": "^6.12.4", + "debug": "^4.3.2", + "espree": "^9.6.0", + "globals": "^13.19.0", + "ignore": "^5.2.0", + "import-fresh": "^3.2.1", + "js-yaml": "^4.1.0", + "minimatch": "^3.1.2", + "strip-json-comments": "^3.1.1" + }, + "dependencies": { + "brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "dev": true, + "requires": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "dev": true, + "requires": { + "brace-expansion": "^1.1.7" + } + } + } + }, + "@eslint/js": { + "version": "8.57.1", + "resolved": "https://registry.npmjs.org/@eslint/js/-/js-8.57.1.tgz", + "integrity": "sha512-d9zaMRSTIKDLhctzH12MtXvJKSSUhaHcjV+2Z+GK+EEY7XKpP5yR4x+N3TAcHTcu963nIr+TMcCb4DBCYX1z6Q==", + "dev": true + }, + "@floating-ui/core": { + "version": "1.6.8", + "resolved": "https://registry.npmjs.org/@floating-ui/core/-/core-1.6.8.tgz", + "integrity": "sha512-7XJ9cPU+yI2QeLS+FCSlqNFZJq8arvswefkZrYI1yQBbftw6FyrZOxYSh+9S7z7TpeWlRt9zJ5IhM1WIL334jA==", + "requires": { + "@floating-ui/utils": "^0.2.8" + } + }, + "@floating-ui/dom": { + "version": "1.6.12", + "resolved": "https://registry.npmjs.org/@floating-ui/dom/-/dom-1.6.12.tgz", + "integrity": "sha512-NP83c0HjokcGVEMeoStg317VD9W7eDlGK7457dMBANbKA6GJZdc7rjujdgqzTaz93jkGgc5P/jeWbaCHnMNc+w==", + "requires": { + "@floating-ui/core": "^1.6.0", + "@floating-ui/utils": "^0.2.8" + } + }, + "@floating-ui/react-dom": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/@floating-ui/react-dom/-/react-dom-2.1.2.tgz", + "integrity": "sha512-06okr5cgPzMNBy+Ycse2A6udMi4bqwW/zgBF/rwjcNqWkyr82Mcg8b0vjX8OJpZFy/FKjJmw6wV7t44kK6kW7A==", + "requires": { + "@floating-ui/dom": "^1.0.0" + } + }, + "@floating-ui/utils": { + "version": "0.2.8", + "resolved": "https://registry.npmjs.org/@floating-ui/utils/-/utils-0.2.8.tgz", + "integrity": "sha512-kym7SodPp8/wloecOpcmSnWJsK7M0E5Wg8UcFA+uO4B9s5d0ywXOEro/8HM9x0rW+TljRzul/14UYz3TleT3ig==" + }, + "@hookform/resolvers": { + "version": "3.9.1", + "resolved": "https://registry.npmjs.org/@hookform/resolvers/-/resolvers-3.9.1.tgz", + "integrity": "sha512-ud2HqmGBM0P0IABqoskKWI6PEf6ZDDBZkFqe2Vnl+mTHCEHzr3ISjjZyCwTjC/qpL25JC9aIDkloQejvMeq0ug==", + "requires": {} + }, + "@humanwhocodes/config-array": { + "version": "0.13.0", + "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.13.0.tgz", + "integrity": "sha512-DZLEEqFWQFiyK6h5YIeynKx7JlvCYWL0cImfSRXZ9l4Sg2efkFGTuFf6vzXjK1cq6IYkU+Eg/JizXw+TD2vRNw==", + "dev": true, + "requires": { + "@humanwhocodes/object-schema": "^2.0.3", + "debug": "^4.3.1", + "minimatch": "^3.0.5" + }, + "dependencies": { + "brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "dev": true, + "requires": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "dev": true, + "requires": { + "brace-expansion": "^1.1.7" + } + } + } + }, + "@humanwhocodes/module-importer": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@humanwhocodes/module-importer/-/module-importer-1.0.1.tgz", + "integrity": "sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==", + "dev": true + }, + "@humanwhocodes/object-schema": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-2.0.3.tgz", + "integrity": "sha512-93zYdMES/c1D69yZiKDBj0V24vqNzB/koF26KPaagAfd3P/4gUlh3Dys5ogAK+Exi9QyzlD8x/08Zt7wIKcDcA==", + "dev": true + }, + "@img/sharp-darwin-arm64": { + "version": "0.33.5", + "resolved": "https://registry.npmjs.org/@img/sharp-darwin-arm64/-/sharp-darwin-arm64-0.33.5.tgz", + "integrity": "sha512-UT4p+iz/2H4twwAoLCqfA9UH5pI6DggwKEGuaPy7nCVQ8ZsiY5PIcrRvD1DzuY3qYL07NtIQcWnBSY/heikIFQ==", + "optional": true, + "requires": { + "@img/sharp-libvips-darwin-arm64": "1.0.4" + } + }, + "@img/sharp-darwin-x64": { + "version": "0.33.5", + "resolved": "https://registry.npmjs.org/@img/sharp-darwin-x64/-/sharp-darwin-x64-0.33.5.tgz", + "integrity": "sha512-fyHac4jIc1ANYGRDxtiqelIbdWkIuQaI84Mv45KvGRRxSAa7o7d1ZKAOBaYbnepLC1WqxfpimdeWfvqqSGwR2Q==", + "optional": true, + "requires": { + "@img/sharp-libvips-darwin-x64": "1.0.4" + } + }, + "@img/sharp-libvips-darwin-arm64": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/@img/sharp-libvips-darwin-arm64/-/sharp-libvips-darwin-arm64-1.0.4.tgz", + "integrity": "sha512-XblONe153h0O2zuFfTAbQYAX2JhYmDHeWikp1LM9Hul9gVPjFY427k6dFEcOL72O01QxQsWi761svJ/ev9xEDg==", + "optional": true + }, + "@img/sharp-libvips-darwin-x64": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/@img/sharp-libvips-darwin-x64/-/sharp-libvips-darwin-x64-1.0.4.tgz", + "integrity": "sha512-xnGR8YuZYfJGmWPvmlunFaWJsb9T/AO2ykoP3Fz/0X5XV2aoYBPkX6xqCQvUTKKiLddarLaxpzNe+b1hjeWHAQ==", + "optional": true + }, + "@img/sharp-libvips-linux-arm": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linux-arm/-/sharp-libvips-linux-arm-1.0.5.tgz", + "integrity": "sha512-gvcC4ACAOPRNATg/ov8/MnbxFDJqf/pDePbBnuBDcjsI8PssmjoKMAz4LtLaVi+OnSb5FK/yIOamqDwGmXW32g==", + "optional": true + }, + "@img/sharp-libvips-linux-arm64": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linux-arm64/-/sharp-libvips-linux-arm64-1.0.4.tgz", + "integrity": "sha512-9B+taZ8DlyyqzZQnoeIvDVR/2F4EbMepXMc/NdVbkzsJbzkUjhXv/70GQJ7tdLA4YJgNP25zukcxpX2/SueNrA==", + "optional": true + }, + "@img/sharp-libvips-linux-s390x": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linux-s390x/-/sharp-libvips-linux-s390x-1.0.4.tgz", + "integrity": "sha512-u7Wz6ntiSSgGSGcjZ55im6uvTrOxSIS8/dgoVMoiGE9I6JAfU50yH5BoDlYA1tcuGS7g/QNtetJnxA6QEsCVTA==", + "optional": true + }, + "@img/sharp-libvips-linux-x64": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linux-x64/-/sharp-libvips-linux-x64-1.0.4.tgz", + "integrity": "sha512-MmWmQ3iPFZr0Iev+BAgVMb3ZyC4KeFc3jFxnNbEPas60e1cIfevbtuyf9nDGIzOaW9PdnDciJm+wFFaTlj5xYw==", + "optional": true + }, + "@img/sharp-libvips-linuxmusl-arm64": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linuxmusl-arm64/-/sharp-libvips-linuxmusl-arm64-1.0.4.tgz", + "integrity": "sha512-9Ti+BbTYDcsbp4wfYib8Ctm1ilkugkA/uscUn6UXK1ldpC1JjiXbLfFZtRlBhjPZ5o1NCLiDbg8fhUPKStHoTA==", + "optional": true + }, + "@img/sharp-libvips-linuxmusl-x64": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linuxmusl-x64/-/sharp-libvips-linuxmusl-x64-1.0.4.tgz", + "integrity": "sha512-viYN1KX9m+/hGkJtvYYp+CCLgnJXwiQB39damAO7WMdKWlIhmYTfHjwSbQeUK/20vY154mwezd9HflVFM1wVSw==", + "optional": true + }, + "@img/sharp-linux-arm": { + "version": "0.33.5", + "resolved": "https://registry.npmjs.org/@img/sharp-linux-arm/-/sharp-linux-arm-0.33.5.tgz", + "integrity": "sha512-JTS1eldqZbJxjvKaAkxhZmBqPRGmxgu+qFKSInv8moZ2AmT5Yib3EQ1c6gp493HvrvV8QgdOXdyaIBrhvFhBMQ==", + "optional": true, + "requires": { + "@img/sharp-libvips-linux-arm": "1.0.5" + } + }, + "@img/sharp-linux-arm64": { + "version": "0.33.5", + "resolved": "https://registry.npmjs.org/@img/sharp-linux-arm64/-/sharp-linux-arm64-0.33.5.tgz", + "integrity": "sha512-JMVv+AMRyGOHtO1RFBiJy/MBsgz0x4AWrT6QoEVVTyh1E39TrCUpTRI7mx9VksGX4awWASxqCYLCV4wBZHAYxA==", + "optional": true, + "requires": { + "@img/sharp-libvips-linux-arm64": "1.0.4" + } + }, + "@img/sharp-linux-s390x": { + "version": "0.33.5", + "resolved": "https://registry.npmjs.org/@img/sharp-linux-s390x/-/sharp-linux-s390x-0.33.5.tgz", + "integrity": "sha512-y/5PCd+mP4CA/sPDKl2961b+C9d+vPAveS33s6Z3zfASk2j5upL6fXVPZi7ztePZ5CuH+1kW8JtvxgbuXHRa4Q==", + "optional": true, + "requires": { + "@img/sharp-libvips-linux-s390x": "1.0.4" + } + }, + "@img/sharp-linux-x64": { + "version": "0.33.5", + "resolved": "https://registry.npmjs.org/@img/sharp-linux-x64/-/sharp-linux-x64-0.33.5.tgz", + "integrity": "sha512-opC+Ok5pRNAzuvq1AG0ar+1owsu842/Ab+4qvU879ippJBHvyY5n2mxF1izXqkPYlGuP/M556uh53jRLJmzTWA==", + "optional": true, + "requires": { + "@img/sharp-libvips-linux-x64": "1.0.4" + } + }, + "@img/sharp-linuxmusl-arm64": { + "version": "0.33.5", + "resolved": "https://registry.npmjs.org/@img/sharp-linuxmusl-arm64/-/sharp-linuxmusl-arm64-0.33.5.tgz", + "integrity": "sha512-XrHMZwGQGvJg2V/oRSUfSAfjfPxO+4DkiRh6p2AFjLQztWUuY/o8Mq0eMQVIY7HJ1CDQUJlxGGZRw1a5bqmd1g==", + "optional": true, + "requires": { + "@img/sharp-libvips-linuxmusl-arm64": "1.0.4" + } + }, + "@img/sharp-linuxmusl-x64": { + "version": "0.33.5", + "resolved": "https://registry.npmjs.org/@img/sharp-linuxmusl-x64/-/sharp-linuxmusl-x64-0.33.5.tgz", + "integrity": "sha512-WT+d/cgqKkkKySYmqoZ8y3pxx7lx9vVejxW/W4DOFMYVSkErR+w7mf2u8m/y4+xHe7yY9DAXQMWQhpnMuFfScw==", + "optional": true, + "requires": { + "@img/sharp-libvips-linuxmusl-x64": "1.0.4" + } + }, + "@img/sharp-wasm32": { + "version": "0.33.5", + "resolved": "https://registry.npmjs.org/@img/sharp-wasm32/-/sharp-wasm32-0.33.5.tgz", + "integrity": "sha512-ykUW4LVGaMcU9lu9thv85CbRMAwfeadCJHRsg2GmeRa/cJxsVY9Rbd57JcMxBkKHag5U/x7TSBpScF4U8ElVzg==", + "optional": true, + "requires": { + "@emnapi/runtime": "^1.2.0" + } + }, + "@img/sharp-win32-ia32": { + "version": "0.33.5", + "resolved": "https://registry.npmjs.org/@img/sharp-win32-ia32/-/sharp-win32-ia32-0.33.5.tgz", + "integrity": "sha512-T36PblLaTwuVJ/zw/LaH0PdZkRz5rd3SmMHX8GSmR7vtNSP5Z6bQkExdSK7xGWyxLw4sUknBuugTelgw2faBbQ==", + "optional": true + }, + "@img/sharp-win32-x64": { + "version": "0.33.5", + "resolved": "https://registry.npmjs.org/@img/sharp-win32-x64/-/sharp-win32-x64-0.33.5.tgz", + "integrity": "sha512-MpY/o8/8kj+EcnxwvrP4aTJSWw/aZ7JIGR4aBeZkZw5B7/Jn+tY9/VNwtcoGmdT7GfggGIU4kygOMSbYnOrAbg==", + "optional": true + }, + "@isaacs/cliui": { + "version": "8.0.2", + "resolved": "https://registry.npmjs.org/@isaacs/cliui/-/cliui-8.0.2.tgz", + "integrity": "sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==", + "requires": { + "string-width": "^5.1.2", + "string-width-cjs": "npm:string-width@^4.2.0", + "strip-ansi": "^7.0.1", + "strip-ansi-cjs": "npm:strip-ansi@^6.0.1", + "wrap-ansi": "^8.1.0", + "wrap-ansi-cjs": "npm:wrap-ansi@^7.0.0" + }, + "dependencies": { + "ansi-regex": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.1.0.tgz", + "integrity": "sha512-7HSX4QQb4CspciLpVFwyRe79O3xsIZDDLER21kERQ71oaPodF8jL725AgJMFAYbooIqolJoRLuM81SpeUkpkvA==" + }, + "strip-ansi": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.0.tgz", + "integrity": "sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==", + "requires": { + "ansi-regex": "^6.0.1" + } + } + } + }, + "@jridgewell/gen-mapping": { + "version": "0.3.5", + "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.5.tgz", + "integrity": "sha512-IzL8ZoEDIBRWEzlCcRhOaCupYyN5gdIK+Q6fbFdPDg6HqX6jpkItn7DFIpW9LQzXG6Df9sA7+OKnq0qlz/GaQg==", + "requires": { + "@jridgewell/set-array": "^1.2.1", + "@jridgewell/sourcemap-codec": "^1.4.10", + "@jridgewell/trace-mapping": "^0.3.24" + } + }, + "@jridgewell/resolve-uri": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.2.tgz", + "integrity": "sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==" + }, + "@jridgewell/set-array": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.2.1.tgz", + "integrity": "sha512-R8gLRTZeyp03ymzP/6Lil/28tGeGEzhx1q2k703KGWRAI1VdvPIXdG70VJc2pAMw3NA6JKL5hhFu1sJX0Mnn/A==" + }, + "@jridgewell/sourcemap-codec": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.0.tgz", + "integrity": "sha512-gv3ZRaISU3fjPAgNsriBRqGWQL6quFx04YMPW/zD8XMLsU32mhCCbfbO6KZFLjvYpCZ8zyDEgqsgf+PwPaM7GQ==" + }, + "@jridgewell/trace-mapping": { + "version": "0.3.25", + "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.25.tgz", + "integrity": "sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ==", + "requires": { + "@jridgewell/resolve-uri": "^3.1.0", + "@jridgewell/sourcemap-codec": "^1.4.14" + } + }, + "@next/env": { + "version": "15.0.3", + "resolved": "https://registry.npmjs.org/@next/env/-/env-15.0.3.tgz", + "integrity": "sha512-t9Xy32pjNOvVn2AS+Utt6VmyrshbpfUMhIjFO60gI58deSo/KgLOp31XZ4O+kY/Is8WAGYwA5gR7kOb1eORDBA==" + }, + "@next/eslint-plugin-next": { + "version": "15.0.3", + "resolved": "https://registry.npmjs.org/@next/eslint-plugin-next/-/eslint-plugin-next-15.0.3.tgz", + "integrity": "sha512-3Ln/nHq2V+v8uIaxCR6YfYo7ceRgZNXfTd3yW1ukTaFbO+/I8jNakrjYWODvG9BuR2v5kgVtH/C8r0i11quOgw==", + "dev": true, + "requires": { + "fast-glob": "3.3.1" + }, + "dependencies": { + "fast-glob": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.1.tgz", + "integrity": "sha512-kNFPyjhh5cKjrUltxs+wFx+ZkbRaxxmZ+X0ZU31SOsxCEtP9VPgtq2teZw1DebupL5GmDaNQ6yKMMVcM41iqDg==", + "dev": true, + "requires": { + "@nodelib/fs.stat": "^2.0.2", + "@nodelib/fs.walk": "^1.2.3", + "glob-parent": "^5.1.2", + "merge2": "^1.3.0", + "micromatch": "^4.0.4" + } + }, + "glob-parent": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "dev": true, + "requires": { + "is-glob": "^4.0.1" + } + } + } + }, + "@next/swc-darwin-arm64": { + "version": "15.0.3", + "resolved": "https://registry.npmjs.org/@next/swc-darwin-arm64/-/swc-darwin-arm64-15.0.3.tgz", + "integrity": "sha512-s3Q/NOorCsLYdCKvQlWU+a+GeAd3C8Rb3L1YnetsgwXzhc3UTWrtQpB/3eCjFOdGUj5QmXfRak12uocd1ZiiQw==", + "optional": true + }, + "@next/swc-darwin-x64": { + "version": "15.0.3", + "resolved": "https://registry.npmjs.org/@next/swc-darwin-x64/-/swc-darwin-x64-15.0.3.tgz", + "integrity": "sha512-Zxl/TwyXVZPCFSf0u2BNj5sE0F2uR6iSKxWpq4Wlk/Sv9Ob6YCKByQTkV2y6BCic+fkabp9190hyrDdPA/dNrw==", + "optional": true + }, + "@next/swc-linux-arm64-gnu": { + "version": "15.0.3", + "resolved": "https://registry.npmjs.org/@next/swc-linux-arm64-gnu/-/swc-linux-arm64-gnu-15.0.3.tgz", + "integrity": "sha512-T5+gg2EwpsY3OoaLxUIofmMb7ohAUlcNZW0fPQ6YAutaWJaxt1Z1h+8zdl4FRIOr5ABAAhXtBcpkZNwUcKI2fw==", + "optional": true + }, + "@next/swc-linux-arm64-musl": { + "version": "15.0.3", + "resolved": "https://registry.npmjs.org/@next/swc-linux-arm64-musl/-/swc-linux-arm64-musl-15.0.3.tgz", + "integrity": "sha512-WkAk6R60mwDjH4lG/JBpb2xHl2/0Vj0ZRu1TIzWuOYfQ9tt9NFsIinI1Epma77JVgy81F32X/AeD+B2cBu/YQA==", + "optional": true + }, + "@next/swc-linux-x64-gnu": { + "version": "15.0.3", + "resolved": "https://registry.npmjs.org/@next/swc-linux-x64-gnu/-/swc-linux-x64-gnu-15.0.3.tgz", + "integrity": "sha512-gWL/Cta1aPVqIGgDb6nxkqy06DkwJ9gAnKORdHWX1QBbSZZB+biFYPFti8aKIQL7otCE1pjyPaXpFzGeG2OS2w==", + "optional": true + }, + "@next/swc-linux-x64-musl": { + "version": "15.0.3", + "resolved": "https://registry.npmjs.org/@next/swc-linux-x64-musl/-/swc-linux-x64-musl-15.0.3.tgz", + "integrity": "sha512-QQEMwFd8r7C0GxQS62Zcdy6GKx999I/rTO2ubdXEe+MlZk9ZiinsrjwoiBL5/57tfyjikgh6GOU2WRQVUej3UA==", + "optional": true + }, + "@next/swc-win32-arm64-msvc": { + "version": "15.0.3", + "resolved": "https://registry.npmjs.org/@next/swc-win32-arm64-msvc/-/swc-win32-arm64-msvc-15.0.3.tgz", + "integrity": "sha512-9TEp47AAd/ms9fPNgtgnT7F3M1Hf7koIYYWCMQ9neOwjbVWJsHZxrFbI3iEDJ8rf1TDGpmHbKxXf2IFpAvheIQ==", + "optional": true + }, + "@next/swc-win32-x64-msvc": { + "version": "15.0.3", + "resolved": "https://registry.npmjs.org/@next/swc-win32-x64-msvc/-/swc-win32-x64-msvc-15.0.3.tgz", + "integrity": "sha512-VNAz+HN4OGgvZs6MOoVfnn41kBzT+M+tB+OK4cww6DNyWS6wKaDpaAm/qLeOUbnMh0oVx1+mg0uoYARF69dJyA==", + "optional": true + }, + "@nodelib/fs.scandir": { + "version": "2.1.5", + "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", + "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==", + "requires": { + "@nodelib/fs.stat": "2.0.5", + "run-parallel": "^1.1.9" + } + }, + "@nodelib/fs.stat": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz", + "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==" + }, + "@nodelib/fs.walk": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz", + "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==", + "requires": { + "@nodelib/fs.scandir": "2.1.5", + "fastq": "^1.6.0" + } + }, + "@nolyfill/is-core-module": { + "version": "1.0.39", + "resolved": "https://registry.npmjs.org/@nolyfill/is-core-module/-/is-core-module-1.0.39.tgz", + "integrity": "sha512-nn5ozdjYQpUCZlWGuxcJY/KpxkWQs4DcbMCmKojjyrYDEAGy4Ce19NN4v5MduafTwJlbKc99UA8YhSVqq9yPZA==", + "dev": true + }, + "@pkgjs/parseargs": { + "version": "0.11.0", + "resolved": "https://registry.npmjs.org/@pkgjs/parseargs/-/parseargs-0.11.0.tgz", + "integrity": "sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==", + "optional": true + }, + "@radix-ui/number": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@radix-ui/number/-/number-1.1.0.tgz", + "integrity": "sha512-V3gRzhVNU1ldS5XhAPTom1fOIo4ccrjjJgmE+LI2h/WaFpHmx0MQApT+KZHnx8abG6Avtfcz4WoEciMnpFT3HQ==" + }, + "@radix-ui/primitive": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@radix-ui/primitive/-/primitive-1.1.0.tgz", + "integrity": "sha512-4Z8dn6Upk0qk4P74xBhZ6Hd/w0mPEzOOLxy4xiPXOXqjF7jZS0VAKk7/x/H6FyY2zCkYJqePf1G5KmkmNJ4RBA==" + }, + "@radix-ui/react-arrow": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@radix-ui/react-arrow/-/react-arrow-1.1.0.tgz", + "integrity": "sha512-FmlW1rCg7hBpEBwFbjHwCW6AmWLQM6g/v0Sn8XbP9NvmSZ2San1FpQeyPtufzOMSIx7Y4dzjlHoifhp+7NkZhw==", + "requires": { + "@radix-ui/react-primitive": "2.0.0" + } + }, + "@radix-ui/react-avatar": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@radix-ui/react-avatar/-/react-avatar-1.1.1.tgz", + "integrity": "sha512-eoOtThOmxeoizxpX6RiEsQZ2wj5r4+zoeqAwO0cBaFQGjJwIH3dIX0OCxNrCyrrdxG+vBweMETh3VziQG7c1kw==", + "requires": { + "@radix-ui/react-context": "1.1.1", + "@radix-ui/react-primitive": "2.0.0", + "@radix-ui/react-use-callback-ref": "1.1.0", + "@radix-ui/react-use-layout-effect": "1.1.0" + } + }, + "@radix-ui/react-checkbox": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@radix-ui/react-checkbox/-/react-checkbox-1.1.2.tgz", + "integrity": "sha512-/i0fl686zaJbDQLNKrkCbMyDm6FQMt4jg323k7HuqitoANm9sE23Ql8yOK3Wusk34HSLKDChhMux05FnP6KUkw==", + "requires": { + "@radix-ui/primitive": "1.1.0", + "@radix-ui/react-compose-refs": "1.1.0", + "@radix-ui/react-context": "1.1.1", + "@radix-ui/react-presence": "1.1.1", + "@radix-ui/react-primitive": "2.0.0", + "@radix-ui/react-use-controllable-state": "1.1.0", + "@radix-ui/react-use-previous": "1.1.0", + "@radix-ui/react-use-size": "1.1.0" + } + }, + "@radix-ui/react-collection": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@radix-ui/react-collection/-/react-collection-1.1.0.tgz", + "integrity": "sha512-GZsZslMJEyo1VKm5L1ZJY8tGDxZNPAoUeQUIbKeJfoi7Q4kmig5AsgLMYYuyYbfjd8fBmFORAIwYAkXMnXZgZw==", + "requires": { + "@radix-ui/react-compose-refs": "1.1.0", + "@radix-ui/react-context": "1.1.0", + "@radix-ui/react-primitive": "2.0.0", + "@radix-ui/react-slot": "1.1.0" + }, + "dependencies": { + "@radix-ui/react-context": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@radix-ui/react-context/-/react-context-1.1.0.tgz", + "integrity": "sha512-OKrckBy+sMEgYM/sMmqmErVn0kZqrHPJze+Ql3DzYsDDp0hl0L62nx/2122/Bvps1qz645jlcu2tD9lrRSdf8A==", + "requires": {} + } + } + }, + "@radix-ui/react-compose-refs": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@radix-ui/react-compose-refs/-/react-compose-refs-1.1.0.tgz", + "integrity": "sha512-b4inOtiaOnYf9KWyO3jAeeCG6FeyfY6ldiEPanbUjWd+xIk5wZeHa8yVwmrJ2vderhu/BQvzCrJI0lHd+wIiqw==", + "requires": {} + }, + "@radix-ui/react-context": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@radix-ui/react-context/-/react-context-1.1.1.tgz", + "integrity": "sha512-UASk9zi+crv9WteK/NU4PLvOoL3OuE6BWVKNF6hPRBtYBDXQ2u5iu3O59zUlJiTVvkyuycnqrztsHVJwcK9K+Q==", + "requires": {} + }, + "@radix-ui/react-dialog": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@radix-ui/react-dialog/-/react-dialog-1.1.2.tgz", + "integrity": "sha512-Yj4dZtqa2o+kG61fzB0H2qUvmwBA2oyQroGLyNtBj1beo1khoQ3q1a2AO8rrQYjd8256CO9+N8L9tvsS+bnIyA==", + "requires": { + "@radix-ui/primitive": "1.1.0", + "@radix-ui/react-compose-refs": "1.1.0", + "@radix-ui/react-context": "1.1.1", + "@radix-ui/react-dismissable-layer": "1.1.1", + "@radix-ui/react-focus-guards": "1.1.1", + "@radix-ui/react-focus-scope": "1.1.0", + "@radix-ui/react-id": "1.1.0", + "@radix-ui/react-portal": "1.1.2", + "@radix-ui/react-presence": "1.1.1", + "@radix-ui/react-primitive": "2.0.0", + "@radix-ui/react-slot": "1.1.0", + "@radix-ui/react-use-controllable-state": "1.1.0", + "aria-hidden": "^1.1.1", + "react-remove-scroll": "2.6.0" + } + }, + "@radix-ui/react-direction": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@radix-ui/react-direction/-/react-direction-1.1.0.tgz", + "integrity": "sha512-BUuBvgThEiAXh2DWu93XsT+a3aWrGqolGlqqw5VU1kG7p/ZH2cuDlM1sRLNnY3QcBS69UIz2mcKhMxDsdewhjg==", + "requires": {} + }, + "@radix-ui/react-dismissable-layer": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@radix-ui/react-dismissable-layer/-/react-dismissable-layer-1.1.1.tgz", + "integrity": "sha512-QSxg29lfr/xcev6kSz7MAlmDnzbP1eI/Dwn3Tp1ip0KT5CUELsxkekFEMVBEoykI3oV39hKT4TKZzBNMbcTZYQ==", + "requires": { + "@radix-ui/primitive": "1.1.0", + "@radix-ui/react-compose-refs": "1.1.0", + "@radix-ui/react-primitive": "2.0.0", + "@radix-ui/react-use-callback-ref": "1.1.0", + "@radix-ui/react-use-escape-keydown": "1.1.0" + } + }, + "@radix-ui/react-dropdown-menu": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/@radix-ui/react-dropdown-menu/-/react-dropdown-menu-2.1.2.tgz", + "integrity": "sha512-GVZMR+eqK8/Kes0a36Qrv+i20bAPXSn8rCBTHx30w+3ECnR5o3xixAlqcVaYvLeyKUsm0aqyhWfmUcqufM8nYA==", + "requires": { + "@radix-ui/primitive": "1.1.0", + "@radix-ui/react-compose-refs": "1.1.0", + "@radix-ui/react-context": "1.1.1", + "@radix-ui/react-id": "1.1.0", + "@radix-ui/react-menu": "2.1.2", + "@radix-ui/react-primitive": "2.0.0", + "@radix-ui/react-use-controllable-state": "1.1.0" + } + }, + "@radix-ui/react-focus-guards": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@radix-ui/react-focus-guards/-/react-focus-guards-1.1.1.tgz", + "integrity": "sha512-pSIwfrT1a6sIoDASCSpFwOasEwKTZWDw/iBdtnqKO7v6FeOzYJ7U53cPzYFVR3geGGXgVHaH+CdngrrAzqUGxg==", + "requires": {} + }, + "@radix-ui/react-focus-scope": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@radix-ui/react-focus-scope/-/react-focus-scope-1.1.0.tgz", + "integrity": "sha512-200UD8zylvEyL8Bx+z76RJnASR2gRMuxlgFCPAe/Q/679a/r0eK3MBVYMb7vZODZcffZBdob1EGnky78xmVvcA==", + "requires": { + "@radix-ui/react-compose-refs": "1.1.0", + "@radix-ui/react-primitive": "2.0.0", + "@radix-ui/react-use-callback-ref": "1.1.0" + } + }, + "@radix-ui/react-id": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@radix-ui/react-id/-/react-id-1.1.0.tgz", + "integrity": "sha512-EJUrI8yYh7WOjNOqpoJaf1jlFIH2LvtgAl+YcFqNCa+4hj64ZXmPkAKOFs/ukjz3byN6bdb/AVUqHkI8/uWWMA==", + "requires": { + "@radix-ui/react-use-layout-effect": "1.1.0" + } + }, + "@radix-ui/react-label": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/@radix-ui/react-label/-/react-label-2.1.0.tgz", + "integrity": "sha512-peLblDlFw/ngk3UWq0VnYaOLy6agTZZ+MUO/WhVfm14vJGML+xH4FAl2XQGLqdefjNb7ApRg6Yn7U42ZhmYXdw==", + "requires": { + "@radix-ui/react-primitive": "2.0.0" + } + }, + "@radix-ui/react-menu": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/@radix-ui/react-menu/-/react-menu-2.1.2.tgz", + "integrity": "sha512-lZ0R4qR2Al6fZ4yCCZzu/ReTFrylHFxIqy7OezIpWF4bL0o9biKo0pFIvkaew3TyZ9Fy5gYVrR5zCGZBVbO1zg==", + "requires": { + "@radix-ui/primitive": "1.1.0", + "@radix-ui/react-collection": "1.1.0", + "@radix-ui/react-compose-refs": "1.1.0", + "@radix-ui/react-context": "1.1.1", + "@radix-ui/react-direction": "1.1.0", + "@radix-ui/react-dismissable-layer": "1.1.1", + "@radix-ui/react-focus-guards": "1.1.1", + "@radix-ui/react-focus-scope": "1.1.0", + "@radix-ui/react-id": "1.1.0", + "@radix-ui/react-popper": "1.2.0", + "@radix-ui/react-portal": "1.1.2", + "@radix-ui/react-presence": "1.1.1", + "@radix-ui/react-primitive": "2.0.0", + "@radix-ui/react-roving-focus": "1.1.0", + "@radix-ui/react-slot": "1.1.0", + "@radix-ui/react-use-callback-ref": "1.1.0", + "aria-hidden": "^1.1.1", + "react-remove-scroll": "2.6.0" + } + }, + "@radix-ui/react-popover": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@radix-ui/react-popover/-/react-popover-1.1.2.tgz", + "integrity": "sha512-u2HRUyWW+lOiA2g0Le0tMmT55FGOEWHwPFt1EPfbLly7uXQExFo5duNKqG2DzmFXIdqOeNd+TpE8baHWJCyP9w==", + "requires": { + "@radix-ui/primitive": "1.1.0", + "@radix-ui/react-compose-refs": "1.1.0", + "@radix-ui/react-context": "1.1.1", + "@radix-ui/react-dismissable-layer": "1.1.1", + "@radix-ui/react-focus-guards": "1.1.1", + "@radix-ui/react-focus-scope": "1.1.0", + "@radix-ui/react-id": "1.1.0", + "@radix-ui/react-popper": "1.2.0", + "@radix-ui/react-portal": "1.1.2", + "@radix-ui/react-presence": "1.1.1", + "@radix-ui/react-primitive": "2.0.0", + "@radix-ui/react-slot": "1.1.0", + "@radix-ui/react-use-controllable-state": "1.1.0", + "aria-hidden": "^1.1.1", + "react-remove-scroll": "2.6.0" + } + }, + "@radix-ui/react-popper": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/@radix-ui/react-popper/-/react-popper-1.2.0.tgz", + "integrity": "sha512-ZnRMshKF43aBxVWPWvbj21+7TQCvhuULWJ4gNIKYpRlQt5xGRhLx66tMp8pya2UkGHTSlhpXwmjqltDYHhw7Vg==", + "requires": { + "@floating-ui/react-dom": "^2.0.0", + "@radix-ui/react-arrow": "1.1.0", + "@radix-ui/react-compose-refs": "1.1.0", + "@radix-ui/react-context": "1.1.0", + "@radix-ui/react-primitive": "2.0.0", + "@radix-ui/react-use-callback-ref": "1.1.0", + "@radix-ui/react-use-layout-effect": "1.1.0", + "@radix-ui/react-use-rect": "1.1.0", + "@radix-ui/react-use-size": "1.1.0", + "@radix-ui/rect": "1.1.0" + }, + "dependencies": { + "@radix-ui/react-context": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@radix-ui/react-context/-/react-context-1.1.0.tgz", + "integrity": "sha512-OKrckBy+sMEgYM/sMmqmErVn0kZqrHPJze+Ql3DzYsDDp0hl0L62nx/2122/Bvps1qz645jlcu2tD9lrRSdf8A==", + "requires": {} + } + } + }, + "@radix-ui/react-portal": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@radix-ui/react-portal/-/react-portal-1.1.2.tgz", + "integrity": "sha512-WeDYLGPxJb/5EGBoedyJbT0MpoULmwnIPMJMSldkuiMsBAv7N1cRdsTWZWht9vpPOiN3qyiGAtbK2is47/uMFg==", + "requires": { + "@radix-ui/react-primitive": "2.0.0", + "@radix-ui/react-use-layout-effect": "1.1.0" + } + }, + "@radix-ui/react-presence": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@radix-ui/react-presence/-/react-presence-1.1.1.tgz", + "integrity": "sha512-IeFXVi4YS1K0wVZzXNrbaaUvIJ3qdY+/Ih4eHFhWA9SwGR9UDX7Ck8abvL57C4cv3wwMvUE0OG69Qc3NCcTe/A==", + "requires": { + "@radix-ui/react-compose-refs": "1.1.0", + "@radix-ui/react-use-layout-effect": "1.1.0" + } + }, + "@radix-ui/react-primitive": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/@radix-ui/react-primitive/-/react-primitive-2.0.0.tgz", + "integrity": "sha512-ZSpFm0/uHa8zTvKBDjLFWLo8dkr4MBsiDLz0g3gMUwqgLHz9rTaRRGYDgvZPtBJgYCBKXkS9fzmoySgr8CO6Cw==", + "requires": { + "@radix-ui/react-slot": "1.1.0" + } + }, + "@radix-ui/react-progress": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@radix-ui/react-progress/-/react-progress-1.1.0.tgz", + "integrity": "sha512-aSzvnYpP725CROcxAOEBVZZSIQVQdHgBr2QQFKySsaD14u8dNT0batuXI+AAGDdAHfXH8rbnHmjYFqVJ21KkRg==", + "requires": { + "@radix-ui/react-context": "1.1.0", + "@radix-ui/react-primitive": "2.0.0" + }, + "dependencies": { + "@radix-ui/react-context": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@radix-ui/react-context/-/react-context-1.1.0.tgz", + "integrity": "sha512-OKrckBy+sMEgYM/sMmqmErVn0kZqrHPJze+Ql3DzYsDDp0hl0L62nx/2122/Bvps1qz645jlcu2tD9lrRSdf8A==", + "requires": {} + } + } + }, + "@radix-ui/react-roving-focus": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@radix-ui/react-roving-focus/-/react-roving-focus-1.1.0.tgz", + "integrity": "sha512-EA6AMGeq9AEeQDeSH0aZgG198qkfHSbvWTf1HvoDmOB5bBG/qTxjYMWUKMnYiV6J/iP/J8MEFSuB2zRU2n7ODA==", + "requires": { + "@radix-ui/primitive": "1.1.0", + "@radix-ui/react-collection": "1.1.0", + "@radix-ui/react-compose-refs": "1.1.0", + "@radix-ui/react-context": "1.1.0", + "@radix-ui/react-direction": "1.1.0", + "@radix-ui/react-id": "1.1.0", + "@radix-ui/react-primitive": "2.0.0", + "@radix-ui/react-use-callback-ref": "1.1.0", + "@radix-ui/react-use-controllable-state": "1.1.0" + }, + "dependencies": { + "@radix-ui/react-context": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@radix-ui/react-context/-/react-context-1.1.0.tgz", + "integrity": "sha512-OKrckBy+sMEgYM/sMmqmErVn0kZqrHPJze+Ql3DzYsDDp0hl0L62nx/2122/Bvps1qz645jlcu2tD9lrRSdf8A==", + "requires": {} + } + } + }, + "@radix-ui/react-select": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/@radix-ui/react-select/-/react-select-2.1.2.tgz", + "integrity": "sha512-rZJtWmorC7dFRi0owDmoijm6nSJH1tVw64QGiNIZ9PNLyBDtG+iAq+XGsya052At4BfarzY/Dhv9wrrUr6IMZA==", + "requires": { + "@radix-ui/number": "1.1.0", + "@radix-ui/primitive": "1.1.0", + "@radix-ui/react-collection": "1.1.0", + "@radix-ui/react-compose-refs": "1.1.0", + "@radix-ui/react-context": "1.1.1", + "@radix-ui/react-direction": "1.1.0", + "@radix-ui/react-dismissable-layer": "1.1.1", + "@radix-ui/react-focus-guards": "1.1.1", + "@radix-ui/react-focus-scope": "1.1.0", + "@radix-ui/react-id": "1.1.0", + "@radix-ui/react-popper": "1.2.0", + "@radix-ui/react-portal": "1.1.2", + "@radix-ui/react-primitive": "2.0.0", + "@radix-ui/react-slot": "1.1.0", + "@radix-ui/react-use-callback-ref": "1.1.0", + "@radix-ui/react-use-controllable-state": "1.1.0", + "@radix-ui/react-use-layout-effect": "1.1.0", + "@radix-ui/react-use-previous": "1.1.0", + "@radix-ui/react-visually-hidden": "1.1.0", + "aria-hidden": "^1.1.1", + "react-remove-scroll": "2.6.0" + } + }, + "@radix-ui/react-slot": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@radix-ui/react-slot/-/react-slot-1.1.0.tgz", + "integrity": "sha512-FUCf5XMfmW4dtYl69pdS4DbxKy8nj4M7SafBgPllysxmdachynNflAdp/gCsnYWNDnge6tI9onzMp5ARYc1KNw==", + "requires": { + "@radix-ui/react-compose-refs": "1.1.0" + } + }, + "@radix-ui/react-tabs": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@radix-ui/react-tabs/-/react-tabs-1.1.1.tgz", + "integrity": "sha512-3GBUDmP2DvzmtYLMsHmpA1GtR46ZDZ+OreXM/N+kkQJOPIgytFWWTfDQmBQKBvaFS0Vno0FktdbVzN28KGrMdw==", + "requires": { + "@radix-ui/primitive": "1.1.0", + "@radix-ui/react-context": "1.1.1", + "@radix-ui/react-direction": "1.1.0", + "@radix-ui/react-id": "1.1.0", + "@radix-ui/react-presence": "1.1.1", + "@radix-ui/react-primitive": "2.0.0", + "@radix-ui/react-roving-focus": "1.1.0", + "@radix-ui/react-use-controllable-state": "1.1.0" + } + }, + "@radix-ui/react-toast": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/@radix-ui/react-toast/-/react-toast-1.2.2.tgz", + "integrity": "sha512-Z6pqSzmAP/bFJoqMAston4eSNa+ud44NSZTiZUmUen+IOZ5nBY8kzuU5WDBVyFXPtcW6yUalOHsxM/BP6Sv8ww==", + "requires": { + "@radix-ui/primitive": "1.1.0", + "@radix-ui/react-collection": "1.1.0", + "@radix-ui/react-compose-refs": "1.1.0", + "@radix-ui/react-context": "1.1.1", + "@radix-ui/react-dismissable-layer": "1.1.1", + "@radix-ui/react-portal": "1.1.2", + "@radix-ui/react-presence": "1.1.1", + "@radix-ui/react-primitive": "2.0.0", + "@radix-ui/react-use-callback-ref": "1.1.0", + "@radix-ui/react-use-controllable-state": "1.1.0", + "@radix-ui/react-use-layout-effect": "1.1.0", + "@radix-ui/react-visually-hidden": "1.1.0" + } + }, + "@radix-ui/react-tooltip": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/@radix-ui/react-tooltip/-/react-tooltip-1.1.4.tgz", + "integrity": "sha512-QpObUH/ZlpaO4YgHSaYzrLO2VuO+ZBFFgGzjMUPwtiYnAzzNNDPJeEGRrT7qNOrWm/Jr08M1vlp+vTHtnSQ0Uw==", + "requires": { + "@radix-ui/primitive": "1.1.0", + "@radix-ui/react-compose-refs": "1.1.0", + "@radix-ui/react-context": "1.1.1", + "@radix-ui/react-dismissable-layer": "1.1.1", + "@radix-ui/react-id": "1.1.0", + "@radix-ui/react-popper": "1.2.0", + "@radix-ui/react-portal": "1.1.2", + "@radix-ui/react-presence": "1.1.1", + "@radix-ui/react-primitive": "2.0.0", + "@radix-ui/react-slot": "1.1.0", + "@radix-ui/react-use-controllable-state": "1.1.0", + "@radix-ui/react-visually-hidden": "1.1.0" + } + }, + "@radix-ui/react-use-callback-ref": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@radix-ui/react-use-callback-ref/-/react-use-callback-ref-1.1.0.tgz", + "integrity": "sha512-CasTfvsy+frcFkbXtSJ2Zu9JHpN8TYKxkgJGWbjiZhFivxaeW7rMeZt7QELGVLaYVfFMsKHjb7Ak0nMEe+2Vfw==", + "requires": {} + }, + "@radix-ui/react-use-controllable-state": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@radix-ui/react-use-controllable-state/-/react-use-controllable-state-1.1.0.tgz", + "integrity": "sha512-MtfMVJiSr2NjzS0Aa90NPTnvTSg6C/JLCV7ma0W6+OMV78vd8OyRpID+Ng9LxzsPbLeuBnWBA1Nq30AtBIDChw==", + "requires": { + "@radix-ui/react-use-callback-ref": "1.1.0" + } + }, + "@radix-ui/react-use-escape-keydown": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@radix-ui/react-use-escape-keydown/-/react-use-escape-keydown-1.1.0.tgz", + "integrity": "sha512-L7vwWlR1kTTQ3oh7g1O0CBF3YCyyTj8NmhLR+phShpyA50HCfBFKVJTpshm9PzLiKmehsrQzTYTpX9HvmC9rhw==", + "requires": { + "@radix-ui/react-use-callback-ref": "1.1.0" + } + }, + "@radix-ui/react-use-layout-effect": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@radix-ui/react-use-layout-effect/-/react-use-layout-effect-1.1.0.tgz", + "integrity": "sha512-+FPE0rOdziWSrH9athwI1R0HDVbWlEhd+FR+aSDk4uWGmSJ9Z54sdZVDQPZAinJhJXwfT+qnj969mCsT2gfm5w==", + "requires": {} + }, + "@radix-ui/react-use-previous": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@radix-ui/react-use-previous/-/react-use-previous-1.1.0.tgz", + "integrity": "sha512-Z/e78qg2YFnnXcW88A4JmTtm4ADckLno6F7OXotmkQfeuCVaKuYzqAATPhVzl3delXE7CxIV8shofPn3jPc5Og==", + "requires": {} + }, + "@radix-ui/react-use-rect": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@radix-ui/react-use-rect/-/react-use-rect-1.1.0.tgz", + "integrity": "sha512-0Fmkebhr6PiseyZlYAOtLS+nb7jLmpqTrJyv61Pe68MKYW6OWdRE2kI70TaYY27u7H0lajqM3hSMMLFq18Z7nQ==", + "requires": { + "@radix-ui/rect": "1.1.0" + } + }, + "@radix-ui/react-use-size": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@radix-ui/react-use-size/-/react-use-size-1.1.0.tgz", + "integrity": "sha512-XW3/vWuIXHa+2Uwcc2ABSfcCledmXhhQPlGbfcRXbiUQI5Icjcg19BGCZVKKInYbvUCut/ufbbLLPFC5cbb1hw==", + "requires": { + "@radix-ui/react-use-layout-effect": "1.1.0" + } + }, + "@radix-ui/react-visually-hidden": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@radix-ui/react-visually-hidden/-/react-visually-hidden-1.1.0.tgz", + "integrity": "sha512-N8MDZqtgCgG5S3aV60INAB475osJousYpZ4cTJ2cFbMpdHS5Y6loLTH8LPtkj2QN0x93J30HT/M3qJXM0+lyeQ==", + "requires": { + "@radix-ui/react-primitive": "2.0.0" + } + }, + "@radix-ui/rect": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@radix-ui/rect/-/rect-1.1.0.tgz", + "integrity": "sha512-A9+lCBZoaMJlVKcRBz2YByCG+Cp2t6nAnMnNba+XiWxnj6r4JUFqfsgwocMBZU9LPtdxC6wB56ySYpc7LQIoJg==" + }, + "@rtsao/scc": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@rtsao/scc/-/scc-1.1.0.tgz", + "integrity": "sha512-zt6OdqaDoOnJ1ZYsCYGt9YmWzDXl4vQdKTyJev62gFhRGKdx7mcT54V9KIjg+d2wi9EXsPvAPKe7i7WjfVWB8g==", + "dev": true + }, + "@rushstack/eslint-patch": { + "version": "1.10.4", + "resolved": "https://registry.npmjs.org/@rushstack/eslint-patch/-/eslint-patch-1.10.4.tgz", + "integrity": "sha512-WJgX9nzTqknM393q1QJDJmoW28kUfEnybeTfVNcNAPnIx210RXm2DiXiHzfNPJNIUUb1tJnz/l4QGtJ30PgWmA==", + "dev": true + }, + "@swc/counter": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/@swc/counter/-/counter-0.1.3.tgz", + "integrity": "sha512-e2BR4lsJkkRlKZ/qCHPw9ZaSxc0MVUd7gtbtaB7aMvHeJVYe8sOB8DBZkP2DtISHGSku9sCK6T6cnY0CtXrOCQ==" + }, + "@swc/helpers": { + "version": "0.5.13", + "resolved": "https://registry.npmjs.org/@swc/helpers/-/helpers-0.5.13.tgz", + "integrity": "sha512-UoKGxQ3r5kYI9dALKJapMmuK+1zWM/H17Z1+iwnNmzcJRnfFuevZs375TA5rW31pu4BS4NoSy1fRsexDXfWn5w==", + "requires": { + "tslib": "^2.4.0" + } + }, + "@t3-oss/env-core": { + "version": "0.10.1", + "resolved": "https://registry.npmjs.org/@t3-oss/env-core/-/env-core-0.10.1.tgz", + "integrity": "sha512-GcKZiCfWks5CTxhezn9k5zWX3sMDIYf6Kaxy2Gx9YEQftFcz8hDRN56hcbylyAO3t4jQnQ5ifLawINsNgCDpOg==", + "requires": {} + }, + "@t3-oss/env-nextjs": { + "version": "0.10.1", + "resolved": "https://registry.npmjs.org/@t3-oss/env-nextjs/-/env-nextjs-0.10.1.tgz", + "integrity": "sha512-iy2qqJLnFh1RjEWno2ZeyTu0ufomkXruUsOZludzDIroUabVvHsrSjtkHqwHp1/pgPUzN3yBRHMILW162X7x2Q==", + "requires": { + "@t3-oss/env-core": "0.10.1" + } + }, + "@types/eslint": { + "version": "8.56.12", + "resolved": "https://registry.npmjs.org/@types/eslint/-/eslint-8.56.12.tgz", + "integrity": "sha512-03ruubjWyOHlmljCVoxSuNDdmfZDzsrrz0P2LeJsOXr+ZwFQ+0yQIwNCwt/GYhV7Z31fgtXJTAEs+FYlEL851g==", + "dev": true, + "requires": { + "@types/estree": "*", + "@types/json-schema": "*" + } + }, + "@types/estree": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.6.tgz", + "integrity": "sha512-AYnb1nQyY49te+VRAVgmzfcgjYS91mY5P0TKUDCLEM+gNnA+3T6rWITXRLYCpahpqSQbN5cE+gHpnPyXjHWxcw==", + "dev": true + }, + "@types/json-schema": { + "version": "7.0.15", + "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.15.tgz", + "integrity": "sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==", + "dev": true + }, + "@types/json5": { + "version": "0.0.29", + "resolved": "https://registry.npmjs.org/@types/json5/-/json5-0.0.29.tgz", + "integrity": "sha512-dRLjCWHYg4oaA77cxO64oO+7JwCwnIzkZPdrrC71jQmQtlhM556pwKo5bUzqvZndkVbeFLIIi+9TC40JNF5hNQ==", + "dev": true + }, + "@types/node": { + "version": "20.17.9", + "resolved": "https://registry.npmjs.org/@types/node/-/node-20.17.9.tgz", + "integrity": "sha512-0JOXkRyLanfGPE2QRCwgxhzlBAvaRdCNMcvbd7jFfpmD4eEXll7LRwy5ymJmyeZqk7Nh7eD2LeUyQ68BbndmXw==", + "dev": true, + "requires": { + "undici-types": "~6.19.2" + } + }, + "@types/prop-types": { + "version": "15.7.13", + "resolved": "https://registry.npmjs.org/@types/prop-types/-/prop-types-15.7.13.tgz", + "integrity": "sha512-hCZTSvwbzWGvhqxp/RqVqwU999pBf2vp7hzIjiYOsl8wqOmUxkQ6ddw1cV3l8811+kdUFus/q4d1Y3E3SyEifA==", + "devOptional": true + }, + "@types/react": { + "version": "18.3.12", + "resolved": "https://registry.npmjs.org/@types/react/-/react-18.3.12.tgz", + "integrity": "sha512-D2wOSq/d6Agt28q7rSI3jhU7G6aiuzljDGZ2hTZHIkrTLUI+AF3WMeKkEZ9nN2fkBAlcktT6vcZjDFiIhMYEQw==", + "devOptional": true, + "requires": { + "@types/prop-types": "*", + "csstype": "^3.0.2" + } + }, + "@types/react-dom": { + "version": "18.3.1", + "resolved": "https://registry.npmjs.org/@types/react-dom/-/react-dom-18.3.1.tgz", + "integrity": "sha512-qW1Mfv8taImTthu4KoXgDfLuk4bydU6Q/TkADnDWWHwi4NX4BR+LWfTp2sVmTqRrsHvyDDTelgelxJ+SsejKKQ==", + "devOptional": true, + "requires": { + "@types/react": "*" + } + }, + "@typescript-eslint/eslint-plugin": { + "version": "8.16.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-8.16.0.tgz", + "integrity": "sha512-5YTHKV8MYlyMI6BaEG7crQ9BhSc8RxzshOReKwZwRWN0+XvvTOm+L/UYLCYxFpfwYuAAqhxiq4yae0CMFwbL7Q==", + "dev": true, + "requires": { + "@eslint-community/regexpp": "^4.10.0", + "@typescript-eslint/scope-manager": "8.16.0", + "@typescript-eslint/type-utils": "8.16.0", + "@typescript-eslint/utils": "8.16.0", + "@typescript-eslint/visitor-keys": "8.16.0", + "graphemer": "^1.4.0", + "ignore": "^5.3.1", + "natural-compare": "^1.4.0", + "ts-api-utils": "^1.3.0" + }, + "dependencies": { + "@typescript-eslint/type-utils": { + "version": "8.16.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-8.16.0.tgz", + "integrity": "sha512-IqZHGG+g1XCWX9NyqnI/0CX5LL8/18awQqmkZSl2ynn8F76j579dByc0jhfVSnSnhf7zv76mKBQv9HQFKvDCgg==", + "dev": true, + "requires": { + "@typescript-eslint/typescript-estree": "8.16.0", + "@typescript-eslint/utils": "8.16.0", + "debug": "^4.3.4", + "ts-api-utils": "^1.3.0" + } + }, + "@typescript-eslint/utils": { + "version": "8.16.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-8.16.0.tgz", + "integrity": "sha512-C1zRy/mOL8Pj157GiX4kaw7iyRLKfJXBR3L82hk5kS/GyHcOFmy4YUq/zfZti72I9wnuQtA/+xzft4wCC8PJdA==", + "dev": true, + "requires": { + "@eslint-community/eslint-utils": "^4.4.0", + "@typescript-eslint/scope-manager": "8.16.0", + "@typescript-eslint/types": "8.16.0", + "@typescript-eslint/typescript-estree": "8.16.0" + }, + "dependencies": { + "@eslint-community/eslint-utils": { + "version": "4.4.1", + "resolved": "https://registry.npmjs.org/@eslint-community/eslint-utils/-/eslint-utils-4.4.1.tgz", + "integrity": "sha512-s3O3waFUrMV8P/XaF/+ZTp1X9XBZW1a4B97ZnjQF2KYWaFD2A8KyFBsrsfSjEmjn3RGWAIuvlneuZm3CUK3jbA==", + "dev": true, + "requires": { + "eslint-visitor-keys": "^3.4.3" + } + } + } + }, + "eslint-visitor-keys": { + "version": "3.4.3", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.3.tgz", + "integrity": "sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==", + "dev": true + } + } + }, + "@typescript-eslint/parser": { + "version": "8.16.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-8.16.0.tgz", + "integrity": "sha512-D7DbgGFtsqIPIFMPJwCad9Gfi/hC0PWErRRHFnaCWoEDYi5tQUDiJCTmGUbBiLzjqAck4KcXt9Ayj0CNlIrF+w==", + "dev": true, + "requires": { + "@typescript-eslint/scope-manager": "8.16.0", + "@typescript-eslint/types": "8.16.0", + "@typescript-eslint/typescript-estree": "8.16.0", + "@typescript-eslint/visitor-keys": "8.16.0", + "debug": "^4.3.4" + } + }, + "@typescript-eslint/scope-manager": { + "version": "8.16.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-8.16.0.tgz", + "integrity": "sha512-mwsZWubQvBki2t5565uxF0EYvG+FwdFb8bMtDuGQLdCCnGPrDEDvm1gtfynuKlnpzeBRqdFCkMf9jg1fnAK8sg==", + "dev": true, + "requires": { + "@typescript-eslint/types": "8.16.0", + "@typescript-eslint/visitor-keys": "8.16.0" + } + }, + "@typescript-eslint/types": { + "version": "8.16.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-8.16.0.tgz", + "integrity": "sha512-NzrHj6thBAOSE4d9bsuRNMvk+BvaQvmY4dDglgkgGC0EW/tB3Kelnp3tAKH87GEwzoxgeQn9fNGRyFJM/xd+GQ==", + "dev": true + }, + "@typescript-eslint/typescript-estree": { + "version": "8.16.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-8.16.0.tgz", + "integrity": "sha512-E2+9IzzXMc1iaBy9zmo+UYvluE3TW7bCGWSF41hVWUE01o8nzr1rvOQYSxelxr6StUvRcTMe633eY8mXASMaNw==", + "dev": true, + "requires": { + "@typescript-eslint/types": "8.16.0", + "@typescript-eslint/visitor-keys": "8.16.0", + "debug": "^4.3.4", + "fast-glob": "^3.3.2", + "is-glob": "^4.0.3", + "minimatch": "^9.0.4", + "semver": "^7.6.0", + "ts-api-utils": "^1.3.0" + } + }, + "@typescript-eslint/visitor-keys": { + "version": "8.16.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-8.16.0.tgz", + "integrity": "sha512-pq19gbaMOmFE3CbL0ZB8J8BFCo2ckfHBfaIsaOZgBIF4EoISJIdLX5xRhd0FGB0LlHReNRuzoJoMGpTjq8F2CQ==", + "dev": true, + "requires": { + "@typescript-eslint/types": "8.16.0", + "eslint-visitor-keys": "^4.2.0" + } + }, + "@ungap/structured-clone": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/@ungap/structured-clone/-/structured-clone-1.2.0.tgz", + "integrity": "sha512-zuVdFrMJiuCDQUMCzQaD6KL28MjnqqN8XnAqiEq9PNm/hCPTSGfrXCOfwj1ow4LFb/tNymJPwsNbVePc1xFqrQ==", + "dev": true + }, + "acorn": { + "version": "8.14.0", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.14.0.tgz", + "integrity": "sha512-cl669nCJTZBsL97OF4kUQm5g5hC2uihk0NxY3WENAC0TYdILVkAyHymAntgxGkl7K+t0cXIrH5siy5S4XkFycA==", + "dev": true + }, + "acorn-jsx": { + "version": "5.3.2", + "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz", + "integrity": "sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==", + "dev": true, + "requires": {} + }, + "ajv": { + "version": "6.12.6", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", + "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", + "dev": true, + "requires": { + "fast-deep-equal": "^3.1.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" + } + }, + "ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==" + }, + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "requires": { + "color-convert": "^2.0.1" + } + }, + "any-promise": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/any-promise/-/any-promise-1.3.0.tgz", + "integrity": "sha512-7UvmKalWRt1wgjL1RrGxoSJW/0QZFIegpeGvZG9kjp8vrRu55XTHbwnqq2GpXm9uLbcuhxm3IqX9OB4MZR1b2A==" + }, + "anymatch": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.3.tgz", + "integrity": "sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==", + "requires": { + "normalize-path": "^3.0.0", + "picomatch": "^2.0.4" + } + }, + "arg": { + "version": "5.0.2", + "resolved": "https://registry.npmjs.org/arg/-/arg-5.0.2.tgz", + "integrity": "sha512-PYjyFOLKQ9y57JvQ6QLo8dAgNqswh8M1RMJYdQduT6xbWSgK36P/Z/v+p888pM69jMMfS8Xd8F6I1kQ/I9HUGg==" + }, + "argparse": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", + "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", + "dev": true + }, + "aria-hidden": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/aria-hidden/-/aria-hidden-1.2.4.tgz", + "integrity": "sha512-y+CcFFwelSXpLZk/7fMB2mUbGtX9lKycf1MWJ7CaTIERyitVlyQx6C+sxcROU2BAJ24OiZyK+8wj2i8AlBoS3A==", + "requires": { + "tslib": "^2.0.0" + } + }, + "aria-query": { + "version": "5.3.2", + "resolved": "https://registry.npmjs.org/aria-query/-/aria-query-5.3.2.tgz", + "integrity": "sha512-COROpnaoap1E2F000S62r6A60uHZnmlvomhfyT2DlTcrY1OrBKn2UhH7qn5wTC9zMvD0AY7csdPSNwKP+7WiQw==", + "dev": true + }, + "array-buffer-byte-length": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/array-buffer-byte-length/-/array-buffer-byte-length-1.0.1.tgz", + "integrity": "sha512-ahC5W1xgou+KTXix4sAO8Ki12Q+jf4i0+tmk3sC+zgcynshkHxzpXdImBehiUYKKKDwvfFiJl1tZt6ewscS1Mg==", + "dev": true, + "requires": { + "call-bind": "^1.0.5", + "is-array-buffer": "^3.0.4" + } + }, + "array-includes": { + "version": "3.1.8", + "resolved": "https://registry.npmjs.org/array-includes/-/array-includes-3.1.8.tgz", + "integrity": "sha512-itaWrbYbqpGXkGhZPGUulwnhVf5Hpy1xiCFsGqyIGglbBxmG5vSjxQen3/WGOjPpNEv1RtBLKxbmVXm8HpJStQ==", + "dev": true, + "requires": { + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.2", + "es-object-atoms": "^1.0.0", + "get-intrinsic": "^1.2.4", + "is-string": "^1.0.7" + } + }, + "array.prototype.findlast": { + "version": "1.2.5", + "resolved": "https://registry.npmjs.org/array.prototype.findlast/-/array.prototype.findlast-1.2.5.tgz", + "integrity": "sha512-CVvd6FHg1Z3POpBLxO6E6zr+rSKEQ9L6rZHAaY7lLfhKsWYUBBOuMs0e9o24oopj6H+geRCX0YJ+TJLBK2eHyQ==", + "dev": true, + "requires": { + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.2", + "es-errors": "^1.3.0", + "es-object-atoms": "^1.0.0", + "es-shim-unscopables": "^1.0.2" + } + }, + "array.prototype.findlastindex": { + "version": "1.2.5", + "resolved": "https://registry.npmjs.org/array.prototype.findlastindex/-/array.prototype.findlastindex-1.2.5.tgz", + "integrity": "sha512-zfETvRFA8o7EiNn++N5f/kaCw221hrpGsDmcpndVupkPzEc1Wuf3VgC0qby1BbHs7f5DVYjgtEU2LLh5bqeGfQ==", + "dev": true, + "requires": { + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.2", + "es-errors": "^1.3.0", + "es-object-atoms": "^1.0.0", + "es-shim-unscopables": "^1.0.2" + } + }, + "array.prototype.flat": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/array.prototype.flat/-/array.prototype.flat-1.3.2.tgz", + "integrity": "sha512-djYB+Zx2vLewY8RWlNCUdHjDXs2XOgm602S9E7P/UpHgfeHL00cRiIF+IN/G/aUJ7kGPb6yO/ErDI5V2s8iycA==", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "define-properties": "^1.2.0", + "es-abstract": "^1.22.1", + "es-shim-unscopables": "^1.0.0" + } + }, + "array.prototype.flatmap": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/array.prototype.flatmap/-/array.prototype.flatmap-1.3.2.tgz", + "integrity": "sha512-Ewyx0c9PmpcsByhSW4r+9zDU7sGjFc86qf/kKtuSCRdhfbk0SNLLkaT5qvcHnRGgc5NP/ly/y+qkXkqONX54CQ==", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "define-properties": "^1.2.0", + "es-abstract": "^1.22.1", + "es-shim-unscopables": "^1.0.0" + } + }, + "array.prototype.tosorted": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/array.prototype.tosorted/-/array.prototype.tosorted-1.1.4.tgz", + "integrity": "sha512-p6Fx8B7b7ZhL/gmUsAy0D15WhvDccw3mnGNbZpi3pmeJdxtWsj2jEaI4Y6oo3XiHfzuSgPwKc04MYt6KgvC/wA==", + "dev": true, + "requires": { + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.3", + "es-errors": "^1.3.0", + "es-shim-unscopables": "^1.0.2" + } + }, + "arraybuffer.prototype.slice": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/arraybuffer.prototype.slice/-/arraybuffer.prototype.slice-1.0.3.tgz", + "integrity": "sha512-bMxMKAjg13EBSVscxTaYA4mRc5t1UAXa2kXiGTNfZ079HIWXEkKmkgFrh/nJqamaLSrXO5H4WFFkPEaLJWbs3A==", + "dev": true, + "requires": { + "array-buffer-byte-length": "^1.0.1", + "call-bind": "^1.0.5", + "define-properties": "^1.2.1", + "es-abstract": "^1.22.3", + "es-errors": "^1.2.1", + "get-intrinsic": "^1.2.3", + "is-array-buffer": "^3.0.4", + "is-shared-array-buffer": "^1.0.2" + } + }, + "ast-types-flow": { + "version": "0.0.8", + "resolved": "https://registry.npmjs.org/ast-types-flow/-/ast-types-flow-0.0.8.tgz", + "integrity": "sha512-OH/2E5Fg20h2aPrbe+QL8JZQFko0YZaF+j4mnQ7BGhfavO7OpSLa8a0y9sBwomHdSbkhTS8TQNayBfnW5DwbvQ==", + "dev": true + }, + "available-typed-arrays": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/available-typed-arrays/-/available-typed-arrays-1.0.7.tgz", + "integrity": "sha512-wvUjBtSGN7+7SjNpq/9M2Tg350UZD3q62IFZLbRAR1bSMlCo1ZaeW+BJ+D090e4hIIZLBcTDWe4Mh4jvUDajzQ==", + "dev": true, + "requires": { + "possible-typed-array-names": "^1.0.0" + } + }, + "axe-core": { + "version": "4.10.2", + "resolved": "https://registry.npmjs.org/axe-core/-/axe-core-4.10.2.tgz", + "integrity": "sha512-RE3mdQ7P3FRSe7eqCWoeQ/Z9QXrtniSjp1wUjt5nRC3WIpz5rSCve6o3fsZ2aCpJtrZjSZgjwXAoTO5k4tEI0w==", + "dev": true + }, + "axobject-query": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/axobject-query/-/axobject-query-4.1.0.tgz", + "integrity": "sha512-qIj0G9wZbMGNLjLmg1PT6v2mE9AH2zlnADJD/2tC6E00hgmhUOfEB6greHPAfLRSufHqROIUTkw6E+M3lH0PTQ==", + "dev": true + }, + "balanced-match": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", + "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==" + }, + "binary-extensions": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.3.0.tgz", + "integrity": "sha512-Ceh+7ox5qe7LJuLHoY0feh3pHuUDHAcRUeyL2VYghZwfpkNIy/+8Ocg0a3UuSoYzavmylwuLWQOf3hl0jjMMIw==" + }, + "brace-expansion": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", + "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", + "requires": { + "balanced-match": "^1.0.0" + } + }, + "braces": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.3.tgz", + "integrity": "sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==", + "requires": { + "fill-range": "^7.1.1" + } + }, + "busboy": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/busboy/-/busboy-1.6.0.tgz", + "integrity": "sha512-8SFQbg/0hQ9xy3UNTB0YEnsNBbWfhf7RtnzpL7TkBiTBRfrQ9Fxcnz7VJsleJpyp6rVLvXiuORqjlHi5q+PYuA==", + "requires": { + "streamsearch": "^1.1.0" + } + }, + "call-bind": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.7.tgz", + "integrity": "sha512-GHTSNSYICQ7scH7sZ+M2rFopRoLh8t2bLSW6BbgrtLsahOIB5iyAVJf9GjWK3cYTDaMj4XdBpM1cA6pIS0Kv2w==", + "dev": true, + "requires": { + "es-define-property": "^1.0.0", + "es-errors": "^1.3.0", + "function-bind": "^1.1.2", + "get-intrinsic": "^1.2.4", + "set-function-length": "^1.2.1" + } + }, + "callsites": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", + "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", + "dev": true + }, + "camelcase-css": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/camelcase-css/-/camelcase-css-2.0.1.tgz", + "integrity": "sha512-QOSvevhslijgYwRx6Rv7zKdMF8lbRmx+uQGx2+vDc+KI/eBnsy9kit5aj23AgGu3pa4t9AgwbnXWqS+iOY+2aA==" + }, + "caniuse-lite": { + "version": "1.0.30001684", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001684.tgz", + "integrity": "sha512-G1LRwLIQjBQoyq0ZJGqGIJUXzJ8irpbjHLpVRXDvBEScFJ9b17sgK6vlx0GAJFE21okD7zXl08rRRUfq6HdoEQ==" + }, + "chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "chokidar": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.6.0.tgz", + "integrity": "sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==", + "requires": { + "anymatch": "~3.1.2", + "braces": "~3.0.2", + "fsevents": "~2.3.2", + "glob-parent": "~5.1.2", + "is-binary-path": "~2.1.0", + "is-glob": "~4.0.1", + "normalize-path": "~3.0.0", + "readdirp": "~3.6.0" + }, + "dependencies": { + "glob-parent": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "requires": { + "is-glob": "^4.0.1" + } + } + } + }, + "class-variance-authority": { + "version": "0.7.1", + "resolved": "https://registry.npmjs.org/class-variance-authority/-/class-variance-authority-0.7.1.tgz", + "integrity": "sha512-Ka+9Trutv7G8M6WT6SeiRWz792K5qEqIGEGzXKhAE6xOWAY6pPH8U+9IY3oCMv6kqTmLsv7Xh/2w2RigkePMsg==", + "requires": { + "clsx": "^2.1.1" + } + }, + "client-only": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/client-only/-/client-only-0.0.1.tgz", + "integrity": "sha512-IV3Ou0jSMzZrd3pZ48nLkT9DA7Ag1pnPzaiQhpW7c3RbcqqzvzzVu+L8gfqMp/8IM2MQtSiqaCxrrcfu8I8rMA==" + }, + "clsx": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/clsx/-/clsx-2.1.1.tgz", + "integrity": "sha512-eYm0QWBtUrBWZWG0d386OGAw16Z995PiOVo2B7bjWSbHedGl5e0ZWaq65kOGgUSNesEIDkB9ISbTg/JK9dhCZA==" + }, + "cmdk": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/cmdk/-/cmdk-1.0.0.tgz", + "integrity": "sha512-gDzVf0a09TvoJ5jnuPvygTB77+XdOSwEmJ88L6XPFPlv7T3RxbP9jgenfylrAMD0+Le1aO0nVjQUzl2g+vjz5Q==", + "requires": { + "@radix-ui/react-dialog": "1.0.5", + "@radix-ui/react-primitive": "1.0.3" + }, + "dependencies": { + "@radix-ui/primitive": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@radix-ui/primitive/-/primitive-1.0.1.tgz", + "integrity": "sha512-yQ8oGX2GVsEYMWGxcovu1uGWPCxV5BFfeeYxqPmuAzUyLT9qmaMXSAhXpb0WrspIeqYzdJpkh2vHModJPgRIaw==", + "requires": { + "@babel/runtime": "^7.13.10" + } + }, + "@radix-ui/react-compose-refs": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@radix-ui/react-compose-refs/-/react-compose-refs-1.0.1.tgz", + "integrity": "sha512-fDSBgd44FKHa1FRMU59qBMPFcl2PZE+2nmqunj+BWFyYYjnhIDWL2ItDs3rrbJDQOtzt5nIebLCQc4QRfz6LJw==", + "requires": { + "@babel/runtime": "^7.13.10" + } + }, + "@radix-ui/react-context": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@radix-ui/react-context/-/react-context-1.0.1.tgz", + "integrity": "sha512-ebbrdFoYTcuZ0v4wG5tedGnp9tzcV8awzsxYph7gXUyvnNLuTIcCk1q17JEbnVhXAKG9oX3KtchwiMIAYp9NLg==", + "requires": { + "@babel/runtime": "^7.13.10" + } + }, + "@radix-ui/react-dialog": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/@radix-ui/react-dialog/-/react-dialog-1.0.5.tgz", + "integrity": "sha512-GjWJX/AUpB703eEBanuBnIWdIXg6NvJFCXcNlSZk4xdszCdhrJgBoUd1cGk67vFO+WdA2pfI/plOpqz/5GUP6Q==", + "requires": { + "@babel/runtime": "^7.13.10", + "@radix-ui/primitive": "1.0.1", + "@radix-ui/react-compose-refs": "1.0.1", + "@radix-ui/react-context": "1.0.1", + "@radix-ui/react-dismissable-layer": "1.0.5", + "@radix-ui/react-focus-guards": "1.0.1", + "@radix-ui/react-focus-scope": "1.0.4", + "@radix-ui/react-id": "1.0.1", + "@radix-ui/react-portal": "1.0.4", + "@radix-ui/react-presence": "1.0.1", + "@radix-ui/react-primitive": "1.0.3", + "@radix-ui/react-slot": "1.0.2", + "@radix-ui/react-use-controllable-state": "1.0.1", + "aria-hidden": "^1.1.1", + "react-remove-scroll": "2.5.5" + } + }, + "@radix-ui/react-dismissable-layer": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/@radix-ui/react-dismissable-layer/-/react-dismissable-layer-1.0.5.tgz", + "integrity": "sha512-aJeDjQhywg9LBu2t/At58hCvr7pEm0o2Ke1x33B+MhjNmmZ17sy4KImo0KPLgsnc/zN7GPdce8Cnn0SWvwZO7g==", + "requires": { + "@babel/runtime": "^7.13.10", + "@radix-ui/primitive": "1.0.1", + "@radix-ui/react-compose-refs": "1.0.1", + "@radix-ui/react-primitive": "1.0.3", + "@radix-ui/react-use-callback-ref": "1.0.1", + "@radix-ui/react-use-escape-keydown": "1.0.3" + } + }, + "@radix-ui/react-focus-guards": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@radix-ui/react-focus-guards/-/react-focus-guards-1.0.1.tgz", + "integrity": "sha512-Rect2dWbQ8waGzhMavsIbmSVCgYxkXLxxR3ZvCX79JOglzdEy4JXMb98lq4hPxUbLr77nP0UOGf4rcMU+s1pUA==", + "requires": { + "@babel/runtime": "^7.13.10" + } + }, + "@radix-ui/react-focus-scope": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/@radix-ui/react-focus-scope/-/react-focus-scope-1.0.4.tgz", + "integrity": "sha512-sL04Mgvf+FmyvZeYfNu1EPAaaxD+aw7cYeIB9L9Fvq8+urhltTRaEo5ysKOpHuKPclsZcSUMKlN05x4u+CINpA==", + "requires": { + "@babel/runtime": "^7.13.10", + "@radix-ui/react-compose-refs": "1.0.1", + "@radix-ui/react-primitive": "1.0.3", + "@radix-ui/react-use-callback-ref": "1.0.1" + } + }, + "@radix-ui/react-id": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@radix-ui/react-id/-/react-id-1.0.1.tgz", + "integrity": "sha512-tI7sT/kqYp8p96yGWY1OAnLHrqDgzHefRBKQ2YAkBS5ja7QLcZ9Z/uY7bEjPUatf8RomoXM8/1sMj1IJaE5UzQ==", + "requires": { + "@babel/runtime": "^7.13.10", + "@radix-ui/react-use-layout-effect": "1.0.1" + } + }, + "@radix-ui/react-portal": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/@radix-ui/react-portal/-/react-portal-1.0.4.tgz", + "integrity": "sha512-Qki+C/EuGUVCQTOTD5vzJzJuMUlewbzuKyUy+/iHM2uwGiru9gZeBJtHAPKAEkB5KWGi9mP/CHKcY0wt1aW45Q==", + "requires": { + "@babel/runtime": "^7.13.10", + "@radix-ui/react-primitive": "1.0.3" + } + }, + "@radix-ui/react-presence": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@radix-ui/react-presence/-/react-presence-1.0.1.tgz", + "integrity": "sha512-UXLW4UAbIY5ZjcvzjfRFo5gxva8QirC9hF7wRE4U5gz+TP0DbRk+//qyuAQ1McDxBt1xNMBTaciFGvEmJvAZCg==", + "requires": { + "@babel/runtime": "^7.13.10", + "@radix-ui/react-compose-refs": "1.0.1", + "@radix-ui/react-use-layout-effect": "1.0.1" + } + }, + "@radix-ui/react-primitive": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/@radix-ui/react-primitive/-/react-primitive-1.0.3.tgz", + "integrity": "sha512-yi58uVyoAcK/Nq1inRY56ZSjKypBNKTa/1mcL8qdl6oJeEaDbOldlzrGn7P6Q3Id5d+SYNGc5AJgc4vGhjs5+g==", + "requires": { + "@babel/runtime": "^7.13.10", + "@radix-ui/react-slot": "1.0.2" + } + }, + "@radix-ui/react-slot": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/@radix-ui/react-slot/-/react-slot-1.0.2.tgz", + "integrity": "sha512-YeTpuq4deV+6DusvVUW4ivBgnkHwECUu0BiN43L5UCDFgdhsRUWAghhTF5MbvNTPzmiFOx90asDSUjWuCNapwg==", + "requires": { + "@babel/runtime": "^7.13.10", + "@radix-ui/react-compose-refs": "1.0.1" + } + }, + "@radix-ui/react-use-callback-ref": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@radix-ui/react-use-callback-ref/-/react-use-callback-ref-1.0.1.tgz", + "integrity": "sha512-D94LjX4Sp0xJFVaoQOd3OO9k7tpBYNOXdVhkltUbGv2Qb9OXdrg/CpsjlZv7ia14Sylv398LswWBVVu5nqKzAQ==", + "requires": { + "@babel/runtime": "^7.13.10" + } + }, + "@radix-ui/react-use-controllable-state": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@radix-ui/react-use-controllable-state/-/react-use-controllable-state-1.0.1.tgz", + "integrity": "sha512-Svl5GY5FQeN758fWKrjM6Qb7asvXeiZltlT4U2gVfl8Gx5UAv2sMR0LWo8yhsIZh2oQ0eFdZ59aoOOMV7b47VA==", + "requires": { + "@babel/runtime": "^7.13.10", + "@radix-ui/react-use-callback-ref": "1.0.1" + } + }, + "@radix-ui/react-use-escape-keydown": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/@radix-ui/react-use-escape-keydown/-/react-use-escape-keydown-1.0.3.tgz", + "integrity": "sha512-vyL82j40hcFicA+M4Ex7hVkB9vHgSse1ZWomAqV2Je3RleKGO5iM8KMOEtfoSB0PnIelMd2lATjTGMYqN5ylTg==", + "requires": { + "@babel/runtime": "^7.13.10", + "@radix-ui/react-use-callback-ref": "1.0.1" + } + }, + "@radix-ui/react-use-layout-effect": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@radix-ui/react-use-layout-effect/-/react-use-layout-effect-1.0.1.tgz", + "integrity": "sha512-v/5RegiJWYdoCvMnITBkNNx6bCj20fiaJnWtRkU18yITptraXjffz5Qbn05uOiQnOvi+dbkznkoaMltz1GnszQ==", + "requires": { + "@babel/runtime": "^7.13.10" + } + }, + "react-remove-scroll": { + "version": "2.5.5", + "resolved": "https://registry.npmjs.org/react-remove-scroll/-/react-remove-scroll-2.5.5.tgz", + "integrity": "sha512-ImKhrzJJsyXJfBZ4bzu8Bwpka14c/fQt0k+cyFp/PBhTfyDnU5hjOtM4AG/0AMyy8oKzOTR0lDgJIM7pYXI0kw==", + "requires": { + "react-remove-scroll-bar": "^2.3.3", + "react-style-singleton": "^2.2.1", + "tslib": "^2.1.0", + "use-callback-ref": "^1.3.0", + "use-sidecar": "^1.1.2" + } + } + } + }, + "color": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/color/-/color-4.2.3.tgz", + "integrity": "sha512-1rXeuUUiGGrykh+CeBdu5Ie7OJwinCgQY0bc7GCRxy5xVHy+moaqkpL/jqQq0MtQOeYcrqEz4abc5f0KtU7W4A==", + "optional": true, + "requires": { + "color-convert": "^2.0.1", + "color-string": "^1.9.0" + } + }, + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" + }, + "color-string": { + "version": "1.9.1", + "resolved": "https://registry.npmjs.org/color-string/-/color-string-1.9.1.tgz", + "integrity": "sha512-shrVawQFojnZv6xM40anx4CkoDP+fZsw/ZerEMsW/pyzsRbElpsL/DBVW7q3ExxwusdNXI3lXpuhEZkzs8p5Eg==", + "optional": true, + "requires": { + "color-name": "^1.0.0", + "simple-swizzle": "^0.2.2" + } + }, + "colord": { + "version": "2.9.3", + "resolved": "https://registry.npmjs.org/colord/-/colord-2.9.3.tgz", + "integrity": "sha512-jeC1axXpnb0/2nn/Y1LPuLdgXBLH7aDcHu4KEKfqw3CUhX7ZpfBSlPKyqXE6btIgEzfWtrX3/tyBCaCvXvMkOw==" + }, + "commander": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/commander/-/commander-4.1.1.tgz", + "integrity": "sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA==" + }, + "concat-map": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", + "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==", + "dev": true + }, + "cross-spawn": { + "version": "7.0.6", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.6.tgz", + "integrity": "sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA==", + "requires": { + "path-key": "^3.1.0", + "shebang-command": "^2.0.0", + "which": "^2.0.1" + } + }, + "cssesc": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/cssesc/-/cssesc-3.0.0.tgz", + "integrity": "sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==" + }, + "csstype": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.1.3.tgz", + "integrity": "sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw==", + "devOptional": true + }, + "damerau-levenshtein": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/damerau-levenshtein/-/damerau-levenshtein-1.0.8.tgz", + "integrity": "sha512-sdQSFB7+llfUcQHUQO3+B8ERRj0Oa4w9POWMI/puGtuf7gFywGmkaLCElnudfTiKZV+NvHqL0ifzdrI8Ro7ESA==", + "dev": true + }, + "data-view-buffer": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/data-view-buffer/-/data-view-buffer-1.0.1.tgz", + "integrity": "sha512-0lht7OugA5x3iJLOWFhWK/5ehONdprk0ISXqVFn/NFrDu+cuc8iADFrGQz5BnRK7LLU3JmkbXSxaqX+/mXYtUA==", + "dev": true, + "requires": { + "call-bind": "^1.0.6", + "es-errors": "^1.3.0", + "is-data-view": "^1.0.1" + } + }, + "data-view-byte-length": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/data-view-byte-length/-/data-view-byte-length-1.0.1.tgz", + "integrity": "sha512-4J7wRJD3ABAzr8wP+OcIcqq2dlUKp4DVflx++hs5h5ZKydWMI6/D/fAot+yh6g2tHh8fLFTvNOaVN357NvSrOQ==", + "dev": true, + "requires": { + "call-bind": "^1.0.7", + "es-errors": "^1.3.0", + "is-data-view": "^1.0.1" + } + }, + "data-view-byte-offset": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/data-view-byte-offset/-/data-view-byte-offset-1.0.0.tgz", + "integrity": "sha512-t/Ygsytq+R995EJ5PZlD4Cu56sWa8InXySaViRzw9apusqsOO2bQP+SbYzAhR0pFKoB+43lYy8rWban9JSuXnA==", + "dev": true, + "requires": { + "call-bind": "^1.0.6", + "es-errors": "^1.3.0", + "is-data-view": "^1.0.1" + } + }, + "date-fns": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/date-fns/-/date-fns-4.1.0.tgz", + "integrity": "sha512-Ukq0owbQXxa/U3EGtsdVBkR1w7KOQ5gIBqdH2hkvknzZPYvBxb/aa6E8L7tmjFtkwZBu3UXBbjIgPo/Ez4xaNg==" + }, + "debug": { + "version": "4.3.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.7.tgz", + "integrity": "sha512-Er2nc/H7RrMXZBFCEim6TCmMk02Z8vLC2Rbi1KEBggpo0fS6l0S1nnapwmIi3yW/+GOJap1Krg4w0Hg80oCqgQ==", + "dev": true, + "requires": { + "ms": "^2.1.3" + } + }, + "deep-is": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz", + "integrity": "sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==", + "dev": true + }, + "define-data-property": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/define-data-property/-/define-data-property-1.1.4.tgz", + "integrity": "sha512-rBMvIzlpA8v6E+SJZoo++HAYqsLrkg7MSfIinMPFhmkorw7X+dOXVJQs+QT69zGkzMyfDnIMN2Wid1+NbL3T+A==", + "dev": true, + "requires": { + "es-define-property": "^1.0.0", + "es-errors": "^1.3.0", + "gopd": "^1.0.1" + } + }, + "define-properties": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.2.1.tgz", + "integrity": "sha512-8QmQKqEASLd5nx0U1B1okLElbUuuttJ/AnYmRXbbbGDWh6uS208EjD4Xqq/I9wK7u0v6O08XhTWnt5XtEbR6Dg==", + "dev": true, + "requires": { + "define-data-property": "^1.0.1", + "has-property-descriptors": "^1.0.0", + "object-keys": "^1.1.1" + } + }, + "detect-libc": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-2.0.3.tgz", + "integrity": "sha512-bwy0MGW55bG41VqxxypOsdSdGqLwXPI/focwgTYCFMbdUiBAxLg9CFzG08sz2aqzknwiX7Hkl0bQENjg8iLByw==", + "optional": true + }, + "detect-node-es": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/detect-node-es/-/detect-node-es-1.1.0.tgz", + "integrity": "sha512-ypdmJU/TbBby2Dxibuv7ZLW3Bs1QEmM7nHjEANfohJLvE0XVujisn1qPJcZxg+qDucsr+bP6fLD1rPS3AhJ7EQ==" + }, + "didyoumean": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/didyoumean/-/didyoumean-1.2.2.tgz", + "integrity": "sha512-gxtyfqMg7GKyhQmb056K7M3xszy/myH8w+B4RT+QXBQsvAOdc3XymqDDPHx1BgPgsdAA5SIifona89YtRATDzw==" + }, + "dlv": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/dlv/-/dlv-1.1.3.tgz", + "integrity": "sha512-+HlytyjlPKnIG8XuRG8WvmBP8xs8P71y+SKKS6ZXWoEgLuePxtDoUEiH7WkdePWrQ5JBpE6aoVqfZfJUQkjXwA==" + }, + "doctrine": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-3.0.0.tgz", + "integrity": "sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==", + "dev": true, + "requires": { + "esutils": "^2.0.2" + } + }, + "eastasianwidth": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/eastasianwidth/-/eastasianwidth-0.2.0.tgz", + "integrity": "sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==" + }, + "emoji-regex": { + "version": "9.2.2", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-9.2.2.tgz", + "integrity": "sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==" + }, + "enhanced-resolve": { + "version": "5.17.1", + "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.17.1.tgz", + "integrity": "sha512-LMHl3dXhTcfv8gM4kEzIUeTQ+7fpdA0l2tUf34BddXPkz2A5xJ5L/Pchd5BL6rdccM9QGvu0sWZzK1Z1t4wwyg==", + "dev": true, + "requires": { + "graceful-fs": "^4.2.4", + "tapable": "^2.2.0" + } + }, + "es-abstract": { + "version": "1.23.5", + "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.23.5.tgz", + "integrity": "sha512-vlmniQ0WNPwXqA0BnmwV3Ng7HxiGlh6r5U6JcTMNx8OilcAGqVJBHJcPjqOMaczU9fRuRK5Px2BdVyPRnKMMVQ==", + "dev": true, + "requires": { + "array-buffer-byte-length": "^1.0.1", + "arraybuffer.prototype.slice": "^1.0.3", + "available-typed-arrays": "^1.0.7", + "call-bind": "^1.0.7", + "data-view-buffer": "^1.0.1", + "data-view-byte-length": "^1.0.1", + "data-view-byte-offset": "^1.0.0", + "es-define-property": "^1.0.0", + "es-errors": "^1.3.0", + "es-object-atoms": "^1.0.0", + "es-set-tostringtag": "^2.0.3", + "es-to-primitive": "^1.2.1", + "function.prototype.name": "^1.1.6", + "get-intrinsic": "^1.2.4", + "get-symbol-description": "^1.0.2", + "globalthis": "^1.0.4", + "gopd": "^1.0.1", + "has-property-descriptors": "^1.0.2", + "has-proto": "^1.0.3", + "has-symbols": "^1.0.3", + "hasown": "^2.0.2", + "internal-slot": "^1.0.7", + "is-array-buffer": "^3.0.4", + "is-callable": "^1.2.7", + "is-data-view": "^1.0.1", + "is-negative-zero": "^2.0.3", + "is-regex": "^1.1.4", + "is-shared-array-buffer": "^1.0.3", + "is-string": "^1.0.7", + "is-typed-array": "^1.1.13", + "is-weakref": "^1.0.2", + "object-inspect": "^1.13.3", + "object-keys": "^1.1.1", + "object.assign": "^4.1.5", + "regexp.prototype.flags": "^1.5.3", + "safe-array-concat": "^1.1.2", + "safe-regex-test": "^1.0.3", + "string.prototype.trim": "^1.2.9", + "string.prototype.trimend": "^1.0.8", + "string.prototype.trimstart": "^1.0.8", + "typed-array-buffer": "^1.0.2", + "typed-array-byte-length": "^1.0.1", + "typed-array-byte-offset": "^1.0.2", + "typed-array-length": "^1.0.6", + "unbox-primitive": "^1.0.2", + "which-typed-array": "^1.1.15" + } + }, + "es-define-property": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/es-define-property/-/es-define-property-1.0.0.tgz", + "integrity": "sha512-jxayLKShrEqqzJ0eumQbVhTYQM27CfT1T35+gCgDFoL82JLsXqTJ76zv6A0YLOgEnLUMvLzsDsGIrl8NFpT2gQ==", + "dev": true, + "requires": { + "get-intrinsic": "^1.2.4" + } + }, + "es-errors": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/es-errors/-/es-errors-1.3.0.tgz", + "integrity": "sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==", + "dev": true + }, + "es-iterator-helpers": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/es-iterator-helpers/-/es-iterator-helpers-1.2.0.tgz", + "integrity": "sha512-tpxqxncxnpw3c93u8n3VOzACmRFoVmWJqbWXvX/JfKbkhBw1oslgPrUfeSt2psuqyEJFD6N/9lg5i7bsKpoq+Q==", + "dev": true, + "requires": { + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.3", + "es-errors": "^1.3.0", + "es-set-tostringtag": "^2.0.3", + "function-bind": "^1.1.2", + "get-intrinsic": "^1.2.4", + "globalthis": "^1.0.4", + "gopd": "^1.0.1", + "has-property-descriptors": "^1.0.2", + "has-proto": "^1.0.3", + "has-symbols": "^1.0.3", + "internal-slot": "^1.0.7", + "iterator.prototype": "^1.1.3", + "safe-array-concat": "^1.1.2" + } + }, + "es-object-atoms": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/es-object-atoms/-/es-object-atoms-1.0.0.tgz", + "integrity": "sha512-MZ4iQ6JwHOBQjahnjwaC1ZtIBH+2ohjamzAO3oaHcXYup7qxjF2fixyH+Q71voWHeOkI2q/TnJao/KfXYIZWbw==", + "dev": true, + "requires": { + "es-errors": "^1.3.0" + } + }, + "es-set-tostringtag": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/es-set-tostringtag/-/es-set-tostringtag-2.0.3.tgz", + "integrity": "sha512-3T8uNMC3OQTHkFUsFq8r/BwAXLHvU/9O9mE0fBc/MY5iq/8H7ncvO947LmYA6ldWw9Uh8Yhf25zu6n7nML5QWQ==", + "dev": true, + "requires": { + "get-intrinsic": "^1.2.4", + "has-tostringtag": "^1.0.2", + "hasown": "^2.0.1" + } + }, + "es-shim-unscopables": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/es-shim-unscopables/-/es-shim-unscopables-1.0.2.tgz", + "integrity": "sha512-J3yBRXCzDu4ULnQwxyToo/OjdMx6akgVC7K6few0a7F/0wLtmKKN7I73AH5T2836UuXRqN7Qg+IIUw/+YJksRw==", + "dev": true, + "requires": { + "hasown": "^2.0.0" + } + }, + "es-to-primitive": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.3.0.tgz", + "integrity": "sha512-w+5mJ3GuFL+NjVtJlvydShqE1eN3h3PbI7/5LAsYJP/2qtuMXjfL2LpHSRqo4b4eSF5K/DH1JXKUAHSB2UW50g==", + "dev": true, + "requires": { + "is-callable": "^1.2.7", + "is-date-object": "^1.0.5", + "is-symbol": "^1.0.4" + } + }, + "escape-string-regexp": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", + "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", + "dev": true + }, + "eslint": { + "version": "8.57.1", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.57.1.tgz", + "integrity": "sha512-ypowyDxpVSYpkXr9WPv2PAZCtNip1Mv5KTW0SCurXv/9iOpcrH9PaqUElksqEB6pChqHGDRCFTyrZlGhnLNGiA==", + "dev": true, + "requires": { + "@eslint-community/eslint-utils": "^4.2.0", + "@eslint-community/regexpp": "^4.6.1", + "@eslint/eslintrc": "^2.1.4", + "@eslint/js": "8.57.1", + "@humanwhocodes/config-array": "^0.13.0", + "@humanwhocodes/module-importer": "^1.0.1", + "@nodelib/fs.walk": "^1.2.8", + "@ungap/structured-clone": "^1.2.0", + "ajv": "^6.12.4", + "chalk": "^4.0.0", + "cross-spawn": "^7.0.2", + "debug": "^4.3.2", + "doctrine": "^3.0.0", + "escape-string-regexp": "^4.0.0", + "eslint-scope": "^7.2.2", + "eslint-visitor-keys": "^3.4.3", + "espree": "^9.6.1", + "esquery": "^1.4.2", + "esutils": "^2.0.2", + "fast-deep-equal": "^3.1.3", + "file-entry-cache": "^6.0.1", + "find-up": "^5.0.0", + "glob-parent": "^6.0.2", + "globals": "^13.19.0", + "graphemer": "^1.4.0", + "ignore": "^5.2.0", + "imurmurhash": "^0.1.4", + "is-glob": "^4.0.0", + "is-path-inside": "^3.0.3", + "js-yaml": "^4.1.0", + "json-stable-stringify-without-jsonify": "^1.0.1", + "levn": "^0.4.1", + "lodash.merge": "^4.6.2", + "minimatch": "^3.1.2", + "natural-compare": "^1.4.0", + "optionator": "^0.9.3", + "strip-ansi": "^6.0.1", + "text-table": "^0.2.0" + }, + "dependencies": { + "@eslint-community/eslint-utils": { + "version": "4.4.1", + "resolved": "https://registry.npmjs.org/@eslint-community/eslint-utils/-/eslint-utils-4.4.1.tgz", + "integrity": "sha512-s3O3waFUrMV8P/XaF/+ZTp1X9XBZW1a4B97ZnjQF2KYWaFD2A8KyFBsrsfSjEmjn3RGWAIuvlneuZm3CUK3jbA==", + "dev": true, + "requires": { + "eslint-visitor-keys": "^3.4.3" + } + }, + "brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "dev": true, + "requires": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "eslint-visitor-keys": { + "version": "3.4.3", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.3.tgz", + "integrity": "sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==", + "dev": true + }, + "minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "dev": true, + "requires": { + "brace-expansion": "^1.1.7" + } + } + } + }, + "eslint-config-next": { + "version": "15.0.3", + "resolved": "https://registry.npmjs.org/eslint-config-next/-/eslint-config-next-15.0.3.tgz", + "integrity": "sha512-IGP2DdQQrgjcr4mwFPve4DrCqo7CVVez1WoYY47XwKSrYO4hC0Dlb+iJA60i0YfICOzgNADIb8r28BpQ5Zs0wg==", + "dev": true, + "requires": { + "@next/eslint-plugin-next": "15.0.3", + "@rushstack/eslint-patch": "^1.10.3", + "@typescript-eslint/eslint-plugin": "^5.4.2 || ^6.0.0 || ^7.0.0 || ^8.0.0", + "@typescript-eslint/parser": "^5.4.2 || ^6.0.0 || ^7.0.0 || ^8.0.0", + "eslint-import-resolver-node": "^0.3.6", + "eslint-import-resolver-typescript": "^3.5.2", + "eslint-plugin-import": "^2.31.0", + "eslint-plugin-jsx-a11y": "^6.10.0", + "eslint-plugin-react": "^7.35.0", + "eslint-plugin-react-hooks": "^5.0.0" + }, + "dependencies": { + "brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "dev": true, + "requires": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "doctrine": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-2.1.0.tgz", + "integrity": "sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==", + "dev": true, + "requires": { + "esutils": "^2.0.2" + } + }, + "eslint-import-resolver-typescript": { + "version": "3.6.3", + "resolved": "https://registry.npmjs.org/eslint-import-resolver-typescript/-/eslint-import-resolver-typescript-3.6.3.tgz", + "integrity": "sha512-ud9aw4szY9cCT1EWWdGv1L1XR6hh2PaRWif0j2QjQ0pgTY/69iw+W0Z4qZv5wHahOl8isEr+k/JnyAqNQkLkIA==", + "dev": true, + "requires": { + "@nolyfill/is-core-module": "1.0.39", + "debug": "^4.3.5", + "enhanced-resolve": "^5.15.0", + "eslint-module-utils": "^2.8.1", + "fast-glob": "^3.3.2", + "get-tsconfig": "^4.7.5", + "is-bun-module": "^1.0.2", + "is-glob": "^4.0.3" + } + }, + "eslint-plugin-import": { + "version": "2.31.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-import/-/eslint-plugin-import-2.31.0.tgz", + "integrity": "sha512-ixmkI62Rbc2/w8Vfxyh1jQRTdRTF52VxwRVHl/ykPAmqG+Nb7/kNn+byLP0LxPgI7zWA16Jt82SybJInmMia3A==", + "dev": true, + "requires": { + "@rtsao/scc": "^1.1.0", + "array-includes": "^3.1.8", + "array.prototype.findlastindex": "^1.2.5", + "array.prototype.flat": "^1.3.2", + "array.prototype.flatmap": "^1.3.2", + "debug": "^3.2.7", + "doctrine": "^2.1.0", + "eslint-import-resolver-node": "^0.3.9", + "eslint-module-utils": "^2.12.0", + "hasown": "^2.0.2", + "is-core-module": "^2.15.1", + "is-glob": "^4.0.3", + "minimatch": "^3.1.2", + "object.fromentries": "^2.0.8", + "object.groupby": "^1.0.3", + "object.values": "^1.2.0", + "semver": "^6.3.1", + "string.prototype.trimend": "^1.0.8", + "tsconfig-paths": "^3.15.0" + }, + "dependencies": { + "debug": { + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", + "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", + "dev": true, + "requires": { + "ms": "^2.1.1" + } + } + } + }, + "eslint-plugin-jsx-a11y": { + "version": "6.10.2", + "resolved": "https://registry.npmjs.org/eslint-plugin-jsx-a11y/-/eslint-plugin-jsx-a11y-6.10.2.tgz", + "integrity": "sha512-scB3nz4WmG75pV8+3eRUQOHZlNSUhFNq37xnpgRkCCELU3XMvXAxLk1eqWWyE22Ki4Q01Fnsw9BA3cJHDPgn2Q==", + "dev": true, + "requires": { + "aria-query": "^5.3.2", + "array-includes": "^3.1.8", + "array.prototype.flatmap": "^1.3.2", + "ast-types-flow": "^0.0.8", + "axe-core": "^4.10.0", + "axobject-query": "^4.1.0", + "damerau-levenshtein": "^1.0.8", + "emoji-regex": "^9.2.2", + "hasown": "^2.0.2", + "jsx-ast-utils": "^3.3.5", + "language-tags": "^1.0.9", + "minimatch": "^3.1.2", + "object.fromentries": "^2.0.8", + "safe-regex-test": "^1.0.3", + "string.prototype.includes": "^2.0.1" + } + }, + "eslint-plugin-react": { + "version": "7.37.2", + "resolved": "https://registry.npmjs.org/eslint-plugin-react/-/eslint-plugin-react-7.37.2.tgz", + "integrity": "sha512-EsTAnj9fLVr/GZleBLFbj/sSuXeWmp1eXIN60ceYnZveqEaUCyW4X+Vh4WTdUhCkW4xutXYqTXCUSyqD4rB75w==", + "dev": true, + "requires": { + "array-includes": "^3.1.8", + "array.prototype.findlast": "^1.2.5", + "array.prototype.flatmap": "^1.3.2", + "array.prototype.tosorted": "^1.1.4", + "doctrine": "^2.1.0", + "es-iterator-helpers": "^1.1.0", + "estraverse": "^5.3.0", + "hasown": "^2.0.2", + "jsx-ast-utils": "^2.4.1 || ^3.0.0", + "minimatch": "^3.1.2", + "object.entries": "^1.1.8", + "object.fromentries": "^2.0.8", + "object.values": "^1.2.0", + "prop-types": "^15.8.1", + "resolve": "^2.0.0-next.5", + "semver": "^6.3.1", + "string.prototype.matchall": "^4.0.11", + "string.prototype.repeat": "^1.0.0" + } + }, + "eslint-plugin-react-hooks": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-react-hooks/-/eslint-plugin-react-hooks-5.0.0.tgz", + "integrity": "sha512-hIOwI+5hYGpJEc4uPRmz2ulCjAGD/N13Lukkh8cLV0i2IRk/bdZDYjgLVHj+U9Z704kLIdIO6iueGvxNur0sgw==", + "dev": true, + "requires": {} + }, + "minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "dev": true, + "requires": { + "brace-expansion": "^1.1.7" + } + }, + "resolve": { + "version": "2.0.0-next.5", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-2.0.0-next.5.tgz", + "integrity": "sha512-U7WjGVG9sH8tvjW5SmGbQuui75FiyjAX72HX15DwBBwF9dNiQZRQAg9nnPhYy+TUnE0+VcrttuvNI8oSxZcocA==", + "dev": true, + "requires": { + "is-core-module": "^2.13.0", + "path-parse": "^1.0.7", + "supports-preserve-symlinks-flag": "^1.0.0" + } + }, + "semver": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "dev": true + } + } + }, + "eslint-import-resolver-node": { + "version": "0.3.9", + "resolved": "https://registry.npmjs.org/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.9.tgz", + "integrity": "sha512-WFj2isz22JahUv+B788TlO3N6zL3nNJGU8CcZbPZvVEkBPaJdCV4vy5wyghty5ROFbCRnm132v8BScu5/1BQ8g==", + "dev": true, + "requires": { + "debug": "^3.2.7", + "is-core-module": "^2.13.0", + "resolve": "^1.22.4" + }, + "dependencies": { + "debug": { + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", + "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", + "dev": true, + "requires": { + "ms": "^2.1.1" + } + } + } + }, + "eslint-module-utils": { + "version": "2.12.0", + "resolved": "https://registry.npmjs.org/eslint-module-utils/-/eslint-module-utils-2.12.0.tgz", + "integrity": "sha512-wALZ0HFoytlyh/1+4wuZ9FJCD/leWHQzzrxJ8+rebyReSLk7LApMyd3WJaLVoN+D5+WIdJyDK1c6JnE65V4Zyg==", + "dev": true, + "requires": { + "debug": "^3.2.7" + }, + "dependencies": { + "debug": { + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", + "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", + "dev": true, + "requires": { + "ms": "^2.1.1" + } + } + } + }, + "eslint-scope": { + "version": "7.2.2", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-7.2.2.tgz", + "integrity": "sha512-dOt21O7lTMhDM+X9mB4GX+DZrZtCUJPL/wlcTqxyrx5IvO0IYtILdtrQGQp+8n5S0gwSVmOf9NQrjMOgfQZlIg==", + "dev": true, + "requires": { + "esrecurse": "^4.3.0", + "estraverse": "^5.2.0" + } + }, + "eslint-visitor-keys": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-4.2.0.tgz", + "integrity": "sha512-UyLnSehNt62FFhSwjZlHmeokpRK59rcz29j+F1/aDgbkbRTk7wIc9XzdoasMUbRNKDM0qQt/+BJ4BrpFeABemw==", + "dev": true + }, + "espree": { + "version": "9.6.1", + "resolved": "https://registry.npmjs.org/espree/-/espree-9.6.1.tgz", + "integrity": "sha512-oruZaFkjorTpF32kDSI5/75ViwGeZginGGy2NoOSg3Q9bnwlnmDm4HLnkl0RE3n+njDXR037aY1+x58Z/zFdwQ==", + "dev": true, + "requires": { + "acorn": "^8.9.0", + "acorn-jsx": "^5.3.2", + "eslint-visitor-keys": "^3.4.1" + }, + "dependencies": { + "eslint-visitor-keys": { + "version": "3.4.3", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.3.tgz", + "integrity": "sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==", + "dev": true + } + } + }, + "esquery": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.6.0.tgz", + "integrity": "sha512-ca9pw9fomFcKPvFLXhBKUK90ZvGibiGOvRJNbjljY7s7uq/5YO4BOzcYtJqExdx99rF6aAcnRxHmcUHcz6sQsg==", + "dev": true, + "requires": { + "estraverse": "^5.1.0" + } + }, + "esrecurse": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz", + "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==", + "dev": true, + "requires": { + "estraverse": "^5.2.0" + } + }, + "estraverse": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", + "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", + "dev": true + }, + "esutils": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", + "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", + "dev": true + }, + "fast-deep-equal": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", + "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", + "dev": true + }, + "fast-glob": { + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.2.tgz", + "integrity": "sha512-oX2ruAFQwf/Orj8m737Y5adxDQO0LAB7/S5MnxCdTNDd4p6BsyIVsv9JQsATbTSq8KHRpLwIHbVlUNatxd+1Ow==", + "requires": { + "@nodelib/fs.stat": "^2.0.2", + "@nodelib/fs.walk": "^1.2.3", + "glob-parent": "^5.1.2", + "merge2": "^1.3.0", + "micromatch": "^4.0.4" + }, + "dependencies": { + "glob-parent": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "requires": { + "is-glob": "^4.0.1" + } + } + } + }, + "fast-json-stable-stringify": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", + "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==", + "dev": true + }, + "fast-levenshtein": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", + "integrity": "sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==", + "dev": true + }, + "fastq": { + "version": "1.17.1", + "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.17.1.tgz", + "integrity": "sha512-sRVD3lWVIXWg6By68ZN7vho9a1pQcN/WBFaAAsDDFzlJjvoGx0P8z7V1t72grFJfJhu3YPZBuu25f7Kaw2jN1w==", + "requires": { + "reusify": "^1.0.4" + } + }, + "file-entry-cache": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-6.0.1.tgz", + "integrity": "sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==", + "dev": true, + "requires": { + "flat-cache": "^3.0.4" + } + }, + "fill-range": { + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.1.1.tgz", + "integrity": "sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==", + "requires": { + "to-regex-range": "^5.0.1" + } + }, + "find-up": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz", + "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==", + "dev": true, + "requires": { + "locate-path": "^6.0.0", + "path-exists": "^4.0.0" + } + }, + "flat-cache": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-3.2.0.tgz", + "integrity": "sha512-CYcENa+FtcUKLmhhqyctpclsq7QF38pKjZHsGNiSQF5r4FtoKDWabFDl3hzaEQMvT1LHEysw5twgLvpYYb4vbw==", + "dev": true, + "requires": { + "flatted": "^3.2.9", + "keyv": "^4.5.3", + "rimraf": "^3.0.2" + } + }, + "flatted": { + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.3.2.tgz", + "integrity": "sha512-AiwGJM8YcNOaobumgtng+6NHuOqC3A7MixFeDafM3X9cIUM+xUXoS5Vfgf+OihAYe20fxqNM9yPBXJzRtZ/4eA==", + "dev": true + }, + "for-each": { + "version": "0.3.3", + "resolved": "https://registry.npmjs.org/for-each/-/for-each-0.3.3.tgz", + "integrity": "sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw==", + "dev": true, + "requires": { + "is-callable": "^1.1.3" + } + }, + "foreground-child": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/foreground-child/-/foreground-child-3.3.0.tgz", + "integrity": "sha512-Ld2g8rrAyMYFXBhEqMz8ZAHBi4J4uS1i/CxGMDnjyFWddMXLVcDp051DZfu+t7+ab7Wv6SMqpWmyFIj5UbfFvg==", + "requires": { + "cross-spawn": "^7.0.0", + "signal-exit": "^4.0.1" + } + }, + "framer-motion": { + "version": "11.15.0", + "resolved": "https://registry.npmjs.org/framer-motion/-/framer-motion-11.15.0.tgz", + "integrity": "sha512-MLk8IvZntxOMg7lDBLw2qgTHHv664bYoYmnFTmE0Gm/FW67aOJk0WM3ctMcG+Xhcv+vh5uyyXwxvxhSeJzSe+w==", + "requires": { + "motion-dom": "^11.14.3", + "motion-utils": "^11.14.3", + "tslib": "^2.4.0" + } + }, + "fs.realpath": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", + "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==", + "dev": true + }, + "fsevents": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz", + "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==", + "optional": true + }, + "function-bind": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz", + "integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==" + }, + "function.prototype.name": { + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/function.prototype.name/-/function.prototype.name-1.1.6.tgz", + "integrity": "sha512-Z5kx79swU5P27WEayXM1tBi5Ze/lbIyiNgU3qyXUOf9b2rgXYyF9Dy9Cx+IQv/Lc8WCG6L82zwUPpSS9hGehIg==", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "define-properties": "^1.2.0", + "es-abstract": "^1.22.1", + "functions-have-names": "^1.2.3" + } + }, + "functions-have-names": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/functions-have-names/-/functions-have-names-1.2.3.tgz", + "integrity": "sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ==", + "dev": true + }, + "geist": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/geist/-/geist-1.3.1.tgz", + "integrity": "sha512-Q4gC1pBVPN+D579pBaz0TRRnGA4p9UK6elDY/xizXdFk/g4EKR5g0I+4p/Kj6gM0SajDBZ/0FvDV9ey9ud7BWw==", + "requires": {} + }, + "get-intrinsic": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.4.tgz", + "integrity": "sha512-5uYhsJH8VJBTv7oslg4BznJYhDoRI6waYCxMmCdnTrcCrHA/fCFKoTFz2JKKE0HdDFUF7/oQuhzumXJK7paBRQ==", + "dev": true, + "requires": { + "es-errors": "^1.3.0", + "function-bind": "^1.1.2", + "has-proto": "^1.0.1", + "has-symbols": "^1.0.3", + "hasown": "^2.0.0" + } + }, + "get-nonce": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/get-nonce/-/get-nonce-1.0.1.tgz", + "integrity": "sha512-FJhYRoDaiatfEkUK8HKlicmu/3SGFD51q3itKDGoSTysQJBnfOcxU5GxnhE1E6soB76MbT0MBtnKJuXyAx+96Q==" + }, + "get-symbol-description": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/get-symbol-description/-/get-symbol-description-1.0.2.tgz", + "integrity": "sha512-g0QYk1dZBxGwk+Ngc+ltRH2IBp2f7zBkBMBJZCDerh6EhlhSR6+9irMCuT/09zD6qkarHUSn529sK/yL4S27mg==", + "dev": true, + "requires": { + "call-bind": "^1.0.5", + "es-errors": "^1.3.0", + "get-intrinsic": "^1.2.4" + } + }, + "get-tsconfig": { + "version": "4.8.1", + "resolved": "https://registry.npmjs.org/get-tsconfig/-/get-tsconfig-4.8.1.tgz", + "integrity": "sha512-k9PN+cFBmaLWtVz29SkUoqU5O0slLuHJXt/2P+tMVFT+phsSGXGkp9t3rQIqdz0e+06EHNGs3oM6ZX1s2zHxRg==", + "dev": true, + "requires": { + "resolve-pkg-maps": "^1.0.0" + } + }, + "glob": { + "version": "7.2.3", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", + "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", + "dev": true, + "requires": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.1.1", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + }, + "dependencies": { + "brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "dev": true, + "requires": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "dev": true, + "requires": { + "brace-expansion": "^1.1.7" + } + } + } + }, + "glob-parent": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz", + "integrity": "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==", + "requires": { + "is-glob": "^4.0.3" + } + }, + "globals": { + "version": "13.24.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-13.24.0.tgz", + "integrity": "sha512-AhO5QUcj8llrbG09iWhPU2B204J1xnPeL8kQmVorSsy+Sjj1sk8gIyh6cUocGmH4L0UuhAJy+hJMRA4mgA4mFQ==", + "dev": true, + "requires": { + "type-fest": "^0.20.2" + } + }, + "globalthis": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/globalthis/-/globalthis-1.0.4.tgz", + "integrity": "sha512-DpLKbNU4WylpxJykQujfCcwYWiV/Jhm50Goo0wrVILAv5jOr9d+H+UR3PhSCD2rCCEIg0uc+G+muBTwD54JhDQ==", + "dev": true, + "requires": { + "define-properties": "^1.2.1", + "gopd": "^1.0.1" + } + }, + "gopd": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/gopd/-/gopd-1.0.1.tgz", + "integrity": "sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA==", + "dev": true, + "requires": { + "get-intrinsic": "^1.1.3" + } + }, + "graceful-fs": { + "version": "4.2.11", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.11.tgz", + "integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==", + "dev": true + }, + "graphemer": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/graphemer/-/graphemer-1.4.0.tgz", + "integrity": "sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==", + "dev": true + }, + "has-bigints": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/has-bigints/-/has-bigints-1.0.2.tgz", + "integrity": "sha512-tSvCKtBr9lkF0Ex0aQiP9N+OpV4zi2r/Nee5VkRDbaqv35RLYMzbwQfFSZZH0kR+Rd6302UJZ2p/bJCEoR3VoQ==", + "dev": true + }, + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true + }, + "has-property-descriptors": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.2.tgz", + "integrity": "sha512-55JNKuIW+vq4Ke1BjOTjM2YctQIvCT7GFzHwmfZPGo5wnrgkid0YQtnAleFSqumZm4az3n2BS+erby5ipJdgrg==", + "dev": true, + "requires": { + "es-define-property": "^1.0.0" + } + }, + "has-proto": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/has-proto/-/has-proto-1.0.3.tgz", + "integrity": "sha512-SJ1amZAJUiZS+PhsVLf5tGydlaVB8EdFpaSO4gmiUKUOxk8qzn5AIy4ZeJUmh22znIdk/uMAUT2pl3FxzVUH+Q==", + "dev": true + }, + "has-symbols": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.3.tgz", + "integrity": "sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==", + "dev": true + }, + "has-tostringtag": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.2.tgz", + "integrity": "sha512-NqADB8VjPFLM2V0VvHUewwwsw0ZWBaIdgo+ieHtK3hasLz4qeCRjYcqfB6AQrBggRKppKF8L52/VqdVsO47Dlw==", + "dev": true, + "requires": { + "has-symbols": "^1.0.3" + } + }, + "hasown": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.2.tgz", + "integrity": "sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==", + "requires": { + "function-bind": "^1.1.2" + } + }, + "ignore": { + "version": "5.3.2", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.3.2.tgz", + "integrity": "sha512-hsBTNUqQTDwkWtcdYI2i06Y/nUBEsNEDJKjWdigLvegy8kDuJAS8uRlpkkcQpyEXL0Z/pjDy5HBmMjRCJ2gq+g==", + "dev": true + }, + "import-fresh": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz", + "integrity": "sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==", + "dev": true, + "requires": { + "parent-module": "^1.0.0", + "resolve-from": "^4.0.0" + } + }, + "imurmurhash": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", + "integrity": "sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==", + "dev": true + }, + "inflight": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", + "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==", + "dev": true, + "requires": { + "once": "^1.3.0", + "wrappy": "1" + } + }, + "inherits": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", + "dev": true + }, + "input-otp": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/input-otp/-/input-otp-1.4.1.tgz", + "integrity": "sha512-+yvpmKYKHi9jIGngxagY9oWiiblPB7+nEO75F2l2o4vs+6vpPZZmUl4tBNYuTCvQjhvEIbdNeJu70bhfYP2nbw==", + "requires": {} + }, + "internal-slot": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/internal-slot/-/internal-slot-1.0.7.tgz", + "integrity": "sha512-NGnrKwXzSms2qUUih/ILZ5JBqNTSa1+ZmP6flaIp6KmSElgE9qdndzS3cqjrDovwFdmwsGsLdeFgB6suw+1e9g==", + "dev": true, + "requires": { + "es-errors": "^1.3.0", + "hasown": "^2.0.0", + "side-channel": "^1.0.4" + } + }, + "invariant": { + "version": "2.2.4", + "resolved": "https://registry.npmjs.org/invariant/-/invariant-2.2.4.tgz", + "integrity": "sha512-phJfQVBuaJM5raOpJjSfkiD6BpbCE4Ns//LaXl6wGYtUBY83nWS6Rf9tXm2e8VaK60JEjYldbPif/A2B1C2gNA==", + "requires": { + "loose-envify": "^1.0.0" + } + }, + "is-array-buffer": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/is-array-buffer/-/is-array-buffer-3.0.4.tgz", + "integrity": "sha512-wcjaerHw0ydZwfhiKbXJWLDY8A7yV7KhjQOpb83hGgGfId/aQa4TOvwyzn2PuswW2gPCYEL/nEAiSVpdOj1lXw==", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "get-intrinsic": "^1.2.1" + } + }, + "is-arrayish": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.3.2.tgz", + "integrity": "sha512-eVRqCvVlZbuw3GrM63ovNSNAeA1K16kaR/LRY/92w0zxQ5/1YzwblUX652i4Xs9RwAGjW9d9y6X88t8OaAJfWQ==", + "optional": true + }, + "is-async-function": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-async-function/-/is-async-function-2.0.0.tgz", + "integrity": "sha512-Y1JXKrfykRJGdlDwdKlLpLyMIiWqWvuSd17TvZk68PLAOGOoF4Xyav1z0Xhoi+gCYjZVeC5SI+hYFOfvXmGRCA==", + "dev": true, + "requires": { + "has-tostringtag": "^1.0.0" + } + }, + "is-bigint": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/is-bigint/-/is-bigint-1.0.4.tgz", + "integrity": "sha512-zB9CruMamjym81i2JZ3UMn54PKGsQzsJeo6xvN3HJJ4CAsQNB6iRutp2To77OfCNuoxspsIhzaPoO1zyCEhFOg==", + "dev": true, + "requires": { + "has-bigints": "^1.0.1" + } + }, + "is-binary-path": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", + "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", + "requires": { + "binary-extensions": "^2.0.0" + } + }, + "is-boolean-object": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/is-boolean-object/-/is-boolean-object-1.1.2.tgz", + "integrity": "sha512-gDYaKHJmnj4aWxyj6YHyXVpdQawtVLHU5cb+eztPGczf6cjuTdwve5ZIEfgXqH4e57An1D1AKf8CZ3kYrQRqYA==", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "has-tostringtag": "^1.0.0" + } + }, + "is-bun-module": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/is-bun-module/-/is-bun-module-1.3.0.tgz", + "integrity": "sha512-DgXeu5UWI0IsMQundYb5UAOzm6G2eVnarJ0byP6Tm55iZNKceD59LNPA2L4VvsScTtHcw0yEkVwSf7PC+QoLSA==", + "dev": true, + "requires": { + "semver": "^7.6.3" + } + }, + "is-callable": { + "version": "1.2.7", + "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.7.tgz", + "integrity": "sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==", + "dev": true + }, + "is-core-module": { + "version": "2.15.1", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.15.1.tgz", + "integrity": "sha512-z0vtXSwucUJtANQWldhbtbt7BnL0vxiFjIdDLAatwhDYty2bad6s+rijD6Ri4YuYJubLzIJLUidCh09e1djEVQ==", + "requires": { + "hasown": "^2.0.2" + } + }, + "is-data-view": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-data-view/-/is-data-view-1.0.1.tgz", + "integrity": "sha512-AHkaJrsUVW6wq6JS8y3JnM/GJF/9cf+k20+iDzlSaJrinEo5+7vRiteOSwBhHRiAyQATN1AmY4hwzxJKPmYf+w==", + "dev": true, + "requires": { + "is-typed-array": "^1.1.13" + } + }, + "is-date-object": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.5.tgz", + "integrity": "sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ==", + "dev": true, + "requires": { + "has-tostringtag": "^1.0.0" + } + }, + "is-extglob": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", + "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==" + }, + "is-finalizationregistry": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-finalizationregistry/-/is-finalizationregistry-1.1.0.tgz", + "integrity": "sha512-qfMdqbAQEwBw78ZyReKnlA8ezmPdb9BemzIIip/JkjaZUhitfXDkkr+3QTboW0JrSXT1QWyYShpvnNHGZ4c4yA==", + "dev": true, + "requires": { + "call-bind": "^1.0.7" + } + }, + "is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==" + }, + "is-generator-function": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/is-generator-function/-/is-generator-function-1.0.10.tgz", + "integrity": "sha512-jsEjy9l3yiXEQ+PsXdmBwEPcOxaXWLspKdplFUVI9vq1iZgIekeC0L167qeu86czQaxed3q/Uzuw0swL0irL8A==", + "dev": true, + "requires": { + "has-tostringtag": "^1.0.0" + } + }, + "is-glob": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", + "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", + "requires": { + "is-extglob": "^2.1.1" + } + }, + "is-map": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/is-map/-/is-map-2.0.3.tgz", + "integrity": "sha512-1Qed0/Hr2m+YqxnM09CjA2d/i6YZNfF6R2oRAOj36eUdS6qIV/huPJNSEpKbupewFs+ZsJlxsjjPbc0/afW6Lw==", + "dev": true + }, + "is-negative-zero": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/is-negative-zero/-/is-negative-zero-2.0.3.tgz", + "integrity": "sha512-5KoIu2Ngpyek75jXodFvnafB6DJgr3u8uuK0LEZJjrU19DrMD3EVERaR8sjz8CCGgpZvxPl9SuE1GMVPFHx1mw==", + "dev": true + }, + "is-number": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", + "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==" + }, + "is-number-object": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/is-number-object/-/is-number-object-1.0.7.tgz", + "integrity": "sha512-k1U0IRzLMo7ZlYIfzRu23Oh6MiIFasgpb9X76eqfFZAqwH44UI4KTBvBYIZ1dSL9ZzChTB9ShHfLkR4pdW5krQ==", + "dev": true, + "requires": { + "has-tostringtag": "^1.0.0" + } + }, + "is-path-inside": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-3.0.3.tgz", + "integrity": "sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==", + "dev": true + }, + "is-regex": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.1.4.tgz", + "integrity": "sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg==", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "has-tostringtag": "^1.0.0" + } + }, + "is-set": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/is-set/-/is-set-2.0.3.tgz", + "integrity": "sha512-iPAjerrse27/ygGLxw+EBR9agv9Y6uLeYVJMu+QNCoouJ1/1ri0mGrcWpfCqFZuzzx3WjtwxG098X+n4OuRkPg==", + "dev": true + }, + "is-shared-array-buffer": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/is-shared-array-buffer/-/is-shared-array-buffer-1.0.3.tgz", + "integrity": "sha512-nA2hv5XIhLR3uVzDDfCIknerhx8XUKnstuOERPNNIinXG7v9u+ohXF67vxm4TPTEPU6lm61ZkwP3c9PCB97rhg==", + "dev": true, + "requires": { + "call-bind": "^1.0.7" + } + }, + "is-string": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/is-string/-/is-string-1.0.7.tgz", + "integrity": "sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg==", + "dev": true, + "requires": { + "has-tostringtag": "^1.0.0" + } + }, + "is-symbol": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.4.tgz", + "integrity": "sha512-C/CPBqKWnvdcxqIARxyOh4v1UUEOCHpgDa0WYgpKDFMszcrPcffg5uhwSgPCLD2WWxmq6isisz87tzT01tuGhg==", + "dev": true, + "requires": { + "has-symbols": "^1.0.2" + } + }, + "is-typed-array": { + "version": "1.1.13", + "resolved": "https://registry.npmjs.org/is-typed-array/-/is-typed-array-1.1.13.tgz", + "integrity": "sha512-uZ25/bUAlUY5fR4OKT4rZQEBrzQWYV9ZJYGGsUmEJ6thodVJ1HX64ePQ6Z0qPWP+m+Uq6e9UugrE38jeYsDSMw==", + "dev": true, + "requires": { + "which-typed-array": "^1.1.14" + } + }, + "is-weakmap": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/is-weakmap/-/is-weakmap-2.0.2.tgz", + "integrity": "sha512-K5pXYOm9wqY1RgjpL3YTkF39tni1XajUIkawTLUo9EZEVUFga5gSQJF8nNS7ZwJQ02y+1YCNYcMh+HIf1ZqE+w==", + "dev": true + }, + "is-weakref": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-weakref/-/is-weakref-1.0.2.tgz", + "integrity": "sha512-qctsuLZmIQ0+vSSMfoVvyFe2+GSEvnmZ2ezTup1SBse9+twCCeial6EEi3Nc2KFcf6+qz2FBPnjXsk8xhKSaPQ==", + "dev": true, + "requires": { + "call-bind": "^1.0.2" + } + }, + "is-weakset": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/is-weakset/-/is-weakset-2.0.3.tgz", + "integrity": "sha512-LvIm3/KWzS9oRFHugab7d+M/GcBXuXX5xZkzPmN+NxihdQlZUQ4dWuSV1xR/sq6upL1TJEDrfBgRepHFdBtSNQ==", + "dev": true, + "requires": { + "call-bind": "^1.0.7", + "get-intrinsic": "^1.2.4" + } + }, + "isarray": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-2.0.5.tgz", + "integrity": "sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==", + "dev": true + }, + "isexe": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", + "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==" + }, + "iterator.prototype": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/iterator.prototype/-/iterator.prototype-1.1.3.tgz", + "integrity": "sha512-FW5iMbeQ6rBGm/oKgzq2aW4KvAGpxPzYES8N4g4xNXUKpL1mclMvOe+76AcLDTvD+Ze+sOpVhgdAQEKF4L9iGQ==", + "dev": true, + "requires": { + "define-properties": "^1.2.1", + "get-intrinsic": "^1.2.1", + "has-symbols": "^1.0.3", + "reflect.getprototypeof": "^1.0.4", + "set-function-name": "^2.0.1" + } + }, + "jackspeak": { + "version": "3.4.3", + "resolved": "https://registry.npmjs.org/jackspeak/-/jackspeak-3.4.3.tgz", + "integrity": "sha512-OGlZQpz2yfahA/Rd1Y8Cd9SIEsqvXkLVoSw/cgwhnhFMDbsQFeZYoJJ7bIZBS9BcamUW96asq/npPWugM+RQBw==", + "requires": { + "@isaacs/cliui": "^8.0.2", + "@pkgjs/parseargs": "^0.11.0" + } + }, + "jiti": { + "version": "1.21.6", + "resolved": "https://registry.npmjs.org/jiti/-/jiti-1.21.6.tgz", + "integrity": "sha512-2yTgeWTWzMWkHu6Jp9NKgePDaYHbntiwvYuuJLbbN9vl7DC9DvXKOB2BC3ZZ92D3cvV/aflH0osDfwpHepQ53w==" + }, + "js-tokens": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", + "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==" + }, + "js-yaml": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", + "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", + "dev": true, + "requires": { + "argparse": "^2.0.1" + } + }, + "json-buffer": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.1.tgz", + "integrity": "sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==", + "dev": true + }, + "json-schema-traverse": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", + "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", + "dev": true + }, + "json-stable-stringify-without-jsonify": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz", + "integrity": "sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==", + "dev": true + }, + "json5": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.2.tgz", + "integrity": "sha512-g1MWMLBiz8FKi1e4w0UyVL3w+iJceWAFBAaBnnGKOpNa5f8TLktkbre1+s6oICydWAm+HRUGTmI+//xv2hvXYA==", + "dev": true, + "requires": { + "minimist": "^1.2.0" + } + }, + "jsx-ast-utils": { + "version": "3.3.5", + "resolved": "https://registry.npmjs.org/jsx-ast-utils/-/jsx-ast-utils-3.3.5.tgz", + "integrity": "sha512-ZZow9HBI5O6EPgSJLUb8n2NKgmVWTwCvHGwFuJlMjvLFqlGG6pjirPhtdsseaLZjSibD8eegzmYpUZwoIlj2cQ==", + "dev": true, + "requires": { + "array-includes": "^3.1.6", + "array.prototype.flat": "^1.3.1", + "object.assign": "^4.1.4", + "object.values": "^1.1.6" + } + }, + "keyv": { + "version": "4.5.4", + "resolved": "https://registry.npmjs.org/keyv/-/keyv-4.5.4.tgz", + "integrity": "sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==", + "dev": true, + "requires": { + "json-buffer": "3.0.1" + } + }, + "language-subtag-registry": { + "version": "0.3.23", + "resolved": "https://registry.npmjs.org/language-subtag-registry/-/language-subtag-registry-0.3.23.tgz", + "integrity": "sha512-0K65Lea881pHotoGEa5gDlMxt3pctLi2RplBb7Ezh4rRdLEOtgi7n4EwK9lamnUCkKBqaeKRVebTq6BAxSkpXQ==", + "dev": true + }, + "language-tags": { + "version": "1.0.9", + "resolved": "https://registry.npmjs.org/language-tags/-/language-tags-1.0.9.tgz", + "integrity": "sha512-MbjN408fEndfiQXbFQ1vnd+1NoLDsnQW41410oQBXiyXDMYH5z505juWa4KUE1LqxRC7DgOgZDbKLxHIwm27hA==", + "dev": true, + "requires": { + "language-subtag-registry": "^0.3.20" + } + }, + "levn": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/levn/-/levn-0.4.1.tgz", + "integrity": "sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==", + "dev": true, + "requires": { + "prelude-ls": "^1.2.1", + "type-check": "~0.4.0" + } + }, + "lilconfig": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/lilconfig/-/lilconfig-2.1.0.tgz", + "integrity": "sha512-utWOt/GHzuUxnLKxB6dk81RoOeoNeHgbrXiuGk4yyF5qlRz+iIVWu56E2fqGHFrXz0QNUhLB/8nKqvRH66JKGQ==" + }, + "lines-and-columns": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.2.4.tgz", + "integrity": "sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==" + }, + "locate-path": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz", + "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==", + "dev": true, + "requires": { + "p-locate": "^5.0.0" + } + }, + "lodash.merge": { + "version": "4.6.2", + "resolved": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz", + "integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==", + "dev": true + }, + "loose-envify": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz", + "integrity": "sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==", + "requires": { + "js-tokens": "^3.0.0 || ^4.0.0" + } + }, + "lru-cache": { + "version": "10.4.3", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.4.3.tgz", + "integrity": "sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ==" + }, + "lucide-react": { + "version": "0.462.0", + "resolved": "https://registry.npmjs.org/lucide-react/-/lucide-react-0.462.0.tgz", + "integrity": "sha512-NTL7EbAao9IFtuSivSZgrAh4fZd09Lr+6MTkqIxuHaH2nnYiYIzXPo06cOxHg9wKLdj6LL8TByG4qpePqwgx/g==", + "requires": {} + }, + "merge2": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", + "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==" + }, + "micromatch": { + "version": "4.0.8", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.8.tgz", + "integrity": "sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA==", + "requires": { + "braces": "^3.0.3", + "picomatch": "^2.3.1" + } + }, + "minimatch": { + "version": "9.0.5", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.5.tgz", + "integrity": "sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==", + "requires": { + "brace-expansion": "^2.0.1" + } + }, + "minimist": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.8.tgz", + "integrity": "sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==", + "dev": true + }, + "minipass": { + "version": "7.1.2", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-7.1.2.tgz", + "integrity": "sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw==" + }, + "motion-dom": { + "version": "11.14.3", + "resolved": "https://registry.npmjs.org/motion-dom/-/motion-dom-11.14.3.tgz", + "integrity": "sha512-lW+D2wBy5vxLJi6aCP0xyxTxlTfiu+b+zcpVbGVFUxotwThqhdpPRSmX8xztAgtZMPMeU0WGVn/k1w4I+TbPqA==" + }, + "motion-utils": { + "version": "11.14.3", + "resolved": "https://registry.npmjs.org/motion-utils/-/motion-utils-11.14.3.tgz", + "integrity": "sha512-Xg+8xnqIJTpr0L/cidfTTBFkvRw26ZtGGuIhA94J9PQ2p4mEa06Xx7QVYZH0BP+EpMSaDlu+q0I0mmvwADPsaQ==" + }, + "ms": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", + "dev": true + }, + "mz": { + "version": "2.7.0", + "resolved": "https://registry.npmjs.org/mz/-/mz-2.7.0.tgz", + "integrity": "sha512-z81GNO7nnYMEhrGh9LeymoE4+Yr0Wn5McHIZMK5cfQCl+NDX08sCZgUc9/6MHni9IWuFLm1Z3HTCXu2z9fN62Q==", + "requires": { + "any-promise": "^1.0.0", + "object-assign": "^4.0.1", + "thenify-all": "^1.0.0" + } + }, + "nanoid": { + "version": "3.3.8", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.8.tgz", + "integrity": "sha512-WNLf5Sd8oZxOm+TzppcYk8gVOgP+l58xNy58D0nbUnOxOWRWvlcCV4kUF7ltmI6PsrLl/BgKEyS4mqsGChFN0w==" + }, + "natural-compare": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", + "integrity": "sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==", + "dev": true + }, + "next": { + "version": "15.0.3", + "resolved": "https://registry.npmjs.org/next/-/next-15.0.3.tgz", + "integrity": "sha512-ontCbCRKJUIoivAdGB34yCaOcPgYXr9AAkV/IwqFfWWTXEPUgLYkSkqBhIk9KK7gGmgjc64B+RdoeIDM13Irnw==", + "requires": { + "@next/env": "15.0.3", + "@next/swc-darwin-arm64": "15.0.3", + "@next/swc-darwin-x64": "15.0.3", + "@next/swc-linux-arm64-gnu": "15.0.3", + "@next/swc-linux-arm64-musl": "15.0.3", + "@next/swc-linux-x64-gnu": "15.0.3", + "@next/swc-linux-x64-musl": "15.0.3", + "@next/swc-win32-arm64-msvc": "15.0.3", + "@next/swc-win32-x64-msvc": "15.0.3", + "@swc/counter": "0.1.3", + "@swc/helpers": "0.5.13", + "busboy": "1.6.0", + "caniuse-lite": "^1.0.30001579", + "postcss": "8.4.31", + "sharp": "^0.33.5", + "styled-jsx": "5.1.6" + }, + "dependencies": { + "postcss": { + "version": "8.4.31", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.31.tgz", + "integrity": "sha512-PS08Iboia9mts/2ygV3eLpY5ghnUcfLV/EXTOW1E2qYxJKGGBUtNjN76FYHnMs36RmARn41bC0AZmn+rR0OVpQ==", + "requires": { + "nanoid": "^3.3.6", + "picocolors": "^1.0.0", + "source-map-js": "^1.0.2" + } + } + } + }, + "normalize-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", + "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==" + }, + "object-assign": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", + "integrity": "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==" + }, + "object-hash": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/object-hash/-/object-hash-3.0.0.tgz", + "integrity": "sha512-RSn9F68PjH9HqtltsSnqYC1XXoWe9Bju5+213R98cNGttag9q9yAOTzdbsqvIa7aNm5WffBZFpWYr2aWrklWAw==" + }, + "object-inspect": { + "version": "1.13.3", + "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.13.3.tgz", + "integrity": "sha512-kDCGIbxkDSXE3euJZZXzc6to7fCrKHNI/hSRQnRuQ+BWjFNzZwiFF8fj/6o2t2G9/jTj8PSIYTfCLelLZEeRpA==", + "dev": true + }, + "object-keys": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz", + "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==", + "dev": true + }, + "object.assign": { + "version": "4.1.5", + "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.5.tgz", + "integrity": "sha512-byy+U7gp+FVwmyzKPYhW2h5l3crpmGsxl7X2s8y43IgxvG4g3QZ6CffDtsNQy1WsmZpQbO+ybo0AlW7TY6DcBQ==", + "dev": true, + "requires": { + "call-bind": "^1.0.5", + "define-properties": "^1.2.1", + "has-symbols": "^1.0.3", + "object-keys": "^1.1.1" + } + }, + "object.entries": { + "version": "1.1.8", + "resolved": "https://registry.npmjs.org/object.entries/-/object.entries-1.1.8.tgz", + "integrity": "sha512-cmopxi8VwRIAw/fkijJohSfpef5PdN0pMQJN6VC/ZKvn0LIknWD8KtgY6KlQdEc4tIjcQ3HxSMmnvtzIscdaYQ==", + "dev": true, + "requires": { + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-object-atoms": "^1.0.0" + } + }, + "object.fromentries": { + "version": "2.0.8", + "resolved": "https://registry.npmjs.org/object.fromentries/-/object.fromentries-2.0.8.tgz", + "integrity": "sha512-k6E21FzySsSK5a21KRADBd/NGneRegFO5pLHfdQLpRDETUNJueLXs3WCzyQ3tFRDYgbq3KHGXfTbi2bs8WQ6rQ==", + "dev": true, + "requires": { + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.2", + "es-object-atoms": "^1.0.0" + } + }, + "object.groupby": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/object.groupby/-/object.groupby-1.0.3.tgz", + "integrity": "sha512-+Lhy3TQTuzXI5hevh8sBGqbmurHbbIjAi0Z4S63nthVLmLxfbj4T54a4CfZrXIrt9iP4mVAPYMo/v99taj3wjQ==", + "dev": true, + "requires": { + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.2" + } + }, + "object.values": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/object.values/-/object.values-1.2.0.tgz", + "integrity": "sha512-yBYjY9QX2hnRmZHAjG/f13MzmBzxzYgQhFrke06TTyKY5zSTEqkOeukBzIdVA3j3ulu8Qa3MbVFShV7T2RmGtQ==", + "dev": true, + "requires": { + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-object-atoms": "^1.0.0" + } + }, + "once": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", + "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", + "dev": true, + "requires": { + "wrappy": "1" + } + }, + "optionator": { + "version": "0.9.4", + "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.4.tgz", + "integrity": "sha512-6IpQ7mKUxRcZNLIObR0hz7lxsapSSIYNZJwXPGeF0mTVqGKFIXj1DQcMoT22S3ROcLyY/rz0PWaWZ9ayWmad9g==", + "dev": true, + "requires": { + "deep-is": "^0.1.3", + "fast-levenshtein": "^2.0.6", + "levn": "^0.4.1", + "prelude-ls": "^1.2.1", + "type-check": "^0.4.0", + "word-wrap": "^1.2.5" + } + }, + "p-limit": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", + "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", + "dev": true, + "requires": { + "yocto-queue": "^0.1.0" + } + }, + "p-locate": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz", + "integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==", + "dev": true, + "requires": { + "p-limit": "^3.0.2" + } + }, + "package-json-from-dist": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/package-json-from-dist/-/package-json-from-dist-1.0.1.tgz", + "integrity": "sha512-UEZIS3/by4OC8vL3P2dTXRETpebLI2NiI5vIrjaD/5UtrkFX/tNbwjTSRAGC/+7CAo2pIcBaRgWmcBBHcsaCIw==" + }, + "parent-module": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz", + "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==", + "dev": true, + "requires": { + "callsites": "^3.0.0" + } + }, + "path-exists": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", + "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", + "dev": true + }, + "path-is-absolute": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", + "integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==", + "dev": true + }, + "path-key": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", + "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==" + }, + "path-parse": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", + "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==" + }, + "path-scurry": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/path-scurry/-/path-scurry-1.11.1.tgz", + "integrity": "sha512-Xa4Nw17FS9ApQFJ9umLiJS4orGjm7ZzwUrwamcGQuHSzDyth9boKDaycYdDcZDuqYATXw4HFXgaqWTctW/v1HA==", + "requires": { + "lru-cache": "^10.2.0", + "minipass": "^5.0.0 || ^6.0.2 || ^7.0.0" + } + }, + "picocolors": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.1.1.tgz", + "integrity": "sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==" + }, + "picomatch": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", + "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==" + }, + "pify": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", + "integrity": "sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog==" + }, + "pirates": { + "version": "4.0.6", + "resolved": "https://registry.npmjs.org/pirates/-/pirates-4.0.6.tgz", + "integrity": "sha512-saLsH7WeYYPiD25LDuLRRY/i+6HaPYr6G1OUlN39otzkSTxKnubR9RTxS3/Kk50s1g2JTgFwWQDQyplC5/SHZg==" + }, + "possible-typed-array-names": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/possible-typed-array-names/-/possible-typed-array-names-1.0.0.tgz", + "integrity": "sha512-d7Uw+eZoloe0EHDIYoe+bQ5WXnGMOpmiZFTuMWCwpjzzkL2nTjcKiAk4hh8TjnGye2TwWOk3UXucZ+3rbmBa8Q==", + "dev": true + }, + "postcss": { + "version": "8.4.49", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.49.tgz", + "integrity": "sha512-OCVPnIObs4N29kxTjzLfUryOkvZEq+pf8jTF0lg8E7uETuWHA+v7j3c/xJmiqpX450191LlmZfUKkXxkTry7nA==", + "requires": { + "nanoid": "^3.3.7", + "picocolors": "^1.1.1", + "source-map-js": "^1.2.1" + } + }, + "postcss-import": { + "version": "15.1.0", + "resolved": "https://registry.npmjs.org/postcss-import/-/postcss-import-15.1.0.tgz", + "integrity": "sha512-hpr+J05B2FVYUAXHeK1YyI267J/dDDhMU6B6civm8hSY1jYJnBXxzKDKDswzJmtLHryrjhnDjqqp/49t8FALew==", + "requires": { + "postcss-value-parser": "^4.0.0", + "read-cache": "^1.0.0", + "resolve": "^1.1.7" + } + }, + "postcss-js": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/postcss-js/-/postcss-js-4.0.1.tgz", + "integrity": "sha512-dDLF8pEO191hJMtlHFPRa8xsizHaM82MLfNkUHdUtVEV3tgTp5oj+8qbEqYM57SLfc74KSbw//4SeJma2LRVIw==", + "requires": { + "camelcase-css": "^2.0.1" + } + }, + "postcss-nested": { + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/postcss-nested/-/postcss-nested-6.2.0.tgz", + "integrity": "sha512-HQbt28KulC5AJzG+cZtj9kvKB93CFCdLvog1WFLf1D+xmMvPGlBstkpTEZfK5+AN9hfJocyBFCNiqyS48bpgzQ==", + "requires": { + "postcss-selector-parser": "^6.1.1" + } + }, + "postcss-selector-parser": { + "version": "6.1.2", + "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.1.2.tgz", + "integrity": "sha512-Q8qQfPiZ+THO/3ZrOrO0cJJKfpYCagtMUkXbnEfmgUjwXg6z/WBeOyS9APBBPCTSiDV+s4SwQGu8yFsiMRIudg==", + "requires": { + "cssesc": "^3.0.0", + "util-deprecate": "^1.0.2" + } + }, + "postcss-value-parser": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-4.2.0.tgz", + "integrity": "sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==" + }, + "prelude-ls": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz", + "integrity": "sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==", + "dev": true + }, + "prettier": { + "version": "3.4.1", + "resolved": "https://registry.npmjs.org/prettier/-/prettier-3.4.1.tgz", + "integrity": "sha512-G+YdqtITVZmOJje6QkXQWzl3fSfMxFwm1tjTyo9exhkmWSqC4Yhd1+lug++IlR2mvRVAxEDDWYkQdeSztajqgg==", + "dev": true + }, + "prettier-plugin-tailwindcss": { + "version": "0.6.9", + "resolved": "https://registry.npmjs.org/prettier-plugin-tailwindcss/-/prettier-plugin-tailwindcss-0.6.9.tgz", + "integrity": "sha512-r0i3uhaZAXYP0At5xGfJH876W3HHGHDp+LCRUJrs57PBeQ6mYHMwr25KH8NPX44F2yGTvdnH7OqCshlQx183Eg==", + "dev": true, + "requires": {} + }, + "pretty-bytes": { + "version": "6.1.1", + "resolved": "https://registry.npmjs.org/pretty-bytes/-/pretty-bytes-6.1.1.tgz", + "integrity": "sha512-mQUvGU6aUFQ+rNvTIAcZuWGRT9a6f6Yrg9bHs4ImKF+HZCEK+plBvnAZYSIQztknZF2qnzNtr6F8s0+IuptdlQ==" + }, + "prop-types": { + "version": "15.8.1", + "resolved": "https://registry.npmjs.org/prop-types/-/prop-types-15.8.1.tgz", + "integrity": "sha512-oj87CgZICdulUohogVAR7AjlC0327U4el4L6eAvOqCeudMDVU0NThNaV+b9Df4dXgSP1gXMTnPdhfe/2qDH5cg==", + "dev": true, + "requires": { + "loose-envify": "^1.4.0", + "object-assign": "^4.1.1", + "react-is": "^16.13.1" + } + }, + "punycode": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.1.tgz", + "integrity": "sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==", + "dev": true + }, + "queue-microtask": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", + "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==" + }, + "react": { + "version": "18.3.1", + "resolved": "https://registry.npmjs.org/react/-/react-18.3.1.tgz", + "integrity": "sha512-wS+hAgJShR0KhEvPJArfuPVN1+Hz1t0Y6n5jLrGQbkb4urgPE/0Rve+1kMB1v/oWgHgm4WIcV+i7F2pTVj+2iQ==", + "requires": { + "loose-envify": "^1.1.0" + } + }, + "react-dom": { + "version": "18.3.1", + "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-18.3.1.tgz", + "integrity": "sha512-5m4nQKp+rZRb09LNH59GM4BxTh9251/ylbKIbpe7TpGxfJ+9kv6BLkLBXIjjspbgbnIBNqlI23tRnTWT0snUIw==", + "requires": { + "loose-envify": "^1.1.0", + "scheduler": "^0.23.2" + } + }, + "react-hook-form": { + "version": "7.53.2", + "resolved": "https://registry.npmjs.org/react-hook-form/-/react-hook-form-7.53.2.tgz", + "integrity": "sha512-YVel6fW5sOeedd1524pltpHX+jgU2u3DSDtXEaBORNdqiNrsX/nUI/iGXONegttg0mJVnfrIkiV0cmTU6Oo2xw==", + "requires": {} + }, + "react-is": { + "version": "16.13.1", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-16.13.1.tgz", + "integrity": "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==", + "dev": true + }, + "react-remove-scroll": { + "version": "2.6.0", + "resolved": "https://registry.npmjs.org/react-remove-scroll/-/react-remove-scroll-2.6.0.tgz", + "integrity": "sha512-I2U4JVEsQenxDAKaVa3VZ/JeJZe0/2DxPWL8Tj8yLKctQJQiZM52pn/GWFpSp8dftjM3pSAHVJZscAnC/y+ySQ==", + "requires": { + "react-remove-scroll-bar": "^2.3.6", + "react-style-singleton": "^2.2.1", + "tslib": "^2.1.0", + "use-callback-ref": "^1.3.0", + "use-sidecar": "^1.1.2" + } + }, + "react-remove-scroll-bar": { + "version": "2.3.6", + "resolved": "https://registry.npmjs.org/react-remove-scroll-bar/-/react-remove-scroll-bar-2.3.6.tgz", + "integrity": "sha512-DtSYaao4mBmX+HDo5YWYdBWQwYIQQshUV/dVxFxK+KM26Wjwp1gZ6rv6OC3oujI6Bfu6Xyg3TwK533AQutsn/g==", + "requires": { + "react-style-singleton": "^2.2.1", + "tslib": "^2.0.0" + } + }, + "react-style-singleton": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/react-style-singleton/-/react-style-singleton-2.2.1.tgz", + "integrity": "sha512-ZWj0fHEMyWkHzKYUr2Bs/4zU6XLmq9HsgBURm7g5pAVfyn49DgUiNgY2d4lXRlYSiCif9YBGpQleewkcqddc7g==", + "requires": { + "get-nonce": "^1.0.0", + "invariant": "^2.2.4", + "tslib": "^2.0.0" + } + }, + "react-use-websocket": { + "version": "4.11.1", + "resolved": "https://registry.npmjs.org/react-use-websocket/-/react-use-websocket-4.11.1.tgz", + "integrity": "sha512-39e8mK2a2A1h8uY3ePF45b2q0vwMOmaEy7J5qEhQg4n7vYa5oDLmqutG36kZQgAQ/3KCZS0brlGRbbZJ0+zfKQ==" + }, + "read-cache": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/read-cache/-/read-cache-1.0.0.tgz", + "integrity": "sha512-Owdv/Ft7IjOgm/i0xvNDZ1LrRANRfew4b2prF3OWMQLxLfu3bS8FVhCsrSCMK4lR56Y9ya+AThoTpDCTxCmpRA==", + "requires": { + "pify": "^2.3.0" + } + }, + "readdirp": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", + "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", + "requires": { + "picomatch": "^2.2.1" + } + }, + "reflect.getprototypeof": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/reflect.getprototypeof/-/reflect.getprototypeof-1.0.7.tgz", + "integrity": "sha512-bMvFGIUKlc/eSfXNX+aZ+EL95/EgZzuwA0OBPTbZZDEJw/0AkentjMuM1oiRfwHrshqk4RzdgiTg5CcDalXN5g==", + "dev": true, + "requires": { + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.5", + "es-errors": "^1.3.0", + "get-intrinsic": "^1.2.4", + "gopd": "^1.0.1", + "which-builtin-type": "^1.1.4" + } + }, + "regenerator-runtime": { + "version": "0.14.1", + "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.14.1.tgz", + "integrity": "sha512-dYnhHh0nJoMfnkZs6GmmhFknAGRrLznOu5nc9ML+EJxGvrx6H7teuevqVqCuPcPK//3eDrrjQhehXVx9cnkGdw==" + }, + "regexp.prototype.flags": { + "version": "1.5.3", + "resolved": "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.5.3.tgz", + "integrity": "sha512-vqlC04+RQoFalODCbCumG2xIOvapzVMHwsyIGM/SIE8fRhFFsXeH8/QQ+s0T0kDAhKc4k30s73/0ydkHQz6HlQ==", + "dev": true, + "requires": { + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-errors": "^1.3.0", + "set-function-name": "^2.0.2" + } + }, + "resolve": { + "version": "1.22.8", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.8.tgz", + "integrity": "sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw==", + "requires": { + "is-core-module": "^2.13.0", + "path-parse": "^1.0.7", + "supports-preserve-symlinks-flag": "^1.0.0" + } + }, + "resolve-from": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", + "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==", + "dev": true + }, + "resolve-pkg-maps": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/resolve-pkg-maps/-/resolve-pkg-maps-1.0.0.tgz", + "integrity": "sha512-seS2Tj26TBVOC2NIc2rOe2y2ZO7efxITtLZcGSOnHHNOQ7CkiUBfw0Iw2ck6xkIhPwLhKNLS8BO+hEpngQlqzw==", + "dev": true + }, + "reusify": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz", + "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==" + }, + "rimraf": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", + "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", + "dev": true, + "requires": { + "glob": "^7.1.3" + } + }, + "run-parallel": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz", + "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==", + "requires": { + "queue-microtask": "^1.2.2" + } + }, + "safe-array-concat": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/safe-array-concat/-/safe-array-concat-1.1.2.tgz", + "integrity": "sha512-vj6RsCsWBCf19jIeHEfkRMw8DPiBb+DMXklQ/1SGDHOMlHdPUkZXFQ2YdplS23zESTijAcurb1aSgJA3AgMu1Q==", + "dev": true, + "requires": { + "call-bind": "^1.0.7", + "get-intrinsic": "^1.2.4", + "has-symbols": "^1.0.3", + "isarray": "^2.0.5" + } + }, + "safe-regex-test": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/safe-regex-test/-/safe-regex-test-1.0.3.tgz", + "integrity": "sha512-CdASjNJPvRa7roO6Ra/gLYBTzYzzPyyBXxIMdGW3USQLyjWEls2RgW5UBTXaQVp+OrpeCK3bLem8smtmheoRuw==", + "dev": true, + "requires": { + "call-bind": "^1.0.6", + "es-errors": "^1.3.0", + "is-regex": "^1.1.4" + } + }, + "scheduler": { + "version": "0.23.2", + "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.23.2.tgz", + "integrity": "sha512-UOShsPwz7NrMUqhR6t0hWjFduvOzbtv7toDH1/hIrfRNIDBnnBWd0CwJTGvTpngVlmwGCdP9/Zl/tVrDqcuYzQ==", + "requires": { + "loose-envify": "^1.1.0" + } + }, + "semver": { + "version": "7.6.3", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.3.tgz", + "integrity": "sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==", + "devOptional": true + }, + "set-function-length": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/set-function-length/-/set-function-length-1.2.2.tgz", + "integrity": "sha512-pgRc4hJ4/sNjWCSS9AmnS40x3bNMDTknHgL5UaMBTMyJnU90EgWh1Rz+MC9eFu4BuN/UwZjKQuY/1v3rM7HMfg==", + "dev": true, + "requires": { + "define-data-property": "^1.1.4", + "es-errors": "^1.3.0", + "function-bind": "^1.1.2", + "get-intrinsic": "^1.2.4", + "gopd": "^1.0.1", + "has-property-descriptors": "^1.0.2" + } + }, + "set-function-name": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/set-function-name/-/set-function-name-2.0.2.tgz", + "integrity": "sha512-7PGFlmtwsEADb0WYyvCMa1t+yke6daIG4Wirafur5kcf+MhUnPms1UeR0CKQdTZD81yESwMHbtn+TR+dMviakQ==", + "dev": true, + "requires": { + "define-data-property": "^1.1.4", + "es-errors": "^1.3.0", + "functions-have-names": "^1.2.3", + "has-property-descriptors": "^1.0.2" + } + }, + "sharp": { + "version": "0.33.5", + "resolved": "https://registry.npmjs.org/sharp/-/sharp-0.33.5.tgz", + "integrity": "sha512-haPVm1EkS9pgvHrQ/F3Xy+hgcuMV0Wm9vfIBSiwZ05k+xgb0PkBQpGsAA/oWdDobNaZTH5ppvHtzCFbnSEwHVw==", + "optional": true, + "requires": { + "@img/sharp-darwin-arm64": "0.33.5", + "@img/sharp-darwin-x64": "0.33.5", + "@img/sharp-libvips-darwin-arm64": "1.0.4", + "@img/sharp-libvips-darwin-x64": "1.0.4", + "@img/sharp-libvips-linux-arm": "1.0.5", + "@img/sharp-libvips-linux-arm64": "1.0.4", + "@img/sharp-libvips-linux-s390x": "1.0.4", + "@img/sharp-libvips-linux-x64": "1.0.4", + "@img/sharp-libvips-linuxmusl-arm64": "1.0.4", + "@img/sharp-libvips-linuxmusl-x64": "1.0.4", + "@img/sharp-linux-arm": "0.33.5", + "@img/sharp-linux-arm64": "0.33.5", + "@img/sharp-linux-s390x": "0.33.5", + "@img/sharp-linux-x64": "0.33.5", + "@img/sharp-linuxmusl-arm64": "0.33.5", + "@img/sharp-linuxmusl-x64": "0.33.5", + "@img/sharp-wasm32": "0.33.5", + "@img/sharp-win32-ia32": "0.33.5", + "@img/sharp-win32-x64": "0.33.5", + "color": "^4.2.3", + "detect-libc": "^2.0.3", + "semver": "^7.6.3" + } + }, + "shebang-command": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", + "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", + "requires": { + "shebang-regex": "^3.0.0" + } + }, + "shebang-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", + "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==" + }, + "side-channel": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.6.tgz", + "integrity": "sha512-fDW/EZ6Q9RiO8eFG8Hj+7u/oW+XrPTIChwCOM2+th2A6OblDtYYIpve9m+KvI9Z4C9qSEXlaGR6bTEYHReuglA==", + "dev": true, + "requires": { + "call-bind": "^1.0.7", + "es-errors": "^1.3.0", + "get-intrinsic": "^1.2.4", + "object-inspect": "^1.13.1" + } + }, + "signal-exit": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-4.1.0.tgz", + "integrity": "sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==" + }, + "simple-swizzle": { + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/simple-swizzle/-/simple-swizzle-0.2.2.tgz", + "integrity": "sha512-JA//kQgZtbuY83m+xT+tXJkmJncGMTFT+C+g2h2R9uxkYIrE2yy9sgmcLhCnw57/WSD+Eh3J97FPEDFnbXnDUg==", + "optional": true, + "requires": { + "is-arrayish": "^0.3.1" + } + }, + "source-map-js": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.2.1.tgz", + "integrity": "sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==" + }, + "spoiled": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/spoiled/-/spoiled-0.3.2.tgz", + "integrity": "sha512-FJ2NraJAXtp8bN1Le7abBP6X6UXxdi3SyUrSMVsXAdVsDPttDOKH9jaSkXSIvcXjlv+ybg7SwiBoAD8tqs94aA==", + "requires": { + "colord": "^2.9.3" + } + }, + "streamsearch": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/streamsearch/-/streamsearch-1.1.0.tgz", + "integrity": "sha512-Mcc5wHehp9aXz1ax6bZUyY5afg9u2rv5cqQI3mRrYkGC8rW2hM02jWuwjtL++LS5qinSyhj2QfLyNsuc+VsExg==" + }, + "string-width": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-5.1.2.tgz", + "integrity": "sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==", + "requires": { + "eastasianwidth": "^0.2.0", + "emoji-regex": "^9.2.2", + "strip-ansi": "^7.0.1" + }, + "dependencies": { + "ansi-regex": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.1.0.tgz", + "integrity": "sha512-7HSX4QQb4CspciLpVFwyRe79O3xsIZDDLER21kERQ71oaPodF8jL725AgJMFAYbooIqolJoRLuM81SpeUkpkvA==" + }, + "strip-ansi": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.0.tgz", + "integrity": "sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==", + "requires": { + "ansi-regex": "^6.0.1" + } + } + } + }, + "string-width-cjs": { + "version": "npm:string-width@4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "requires": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, + "dependencies": { + "emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==" + } + } + }, + "string.prototype.includes": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/string.prototype.includes/-/string.prototype.includes-2.0.1.tgz", + "integrity": "sha512-o7+c9bW6zpAdJHTtujeePODAhkuicdAryFsfVKwA+wGw89wJ4GTY484WTucM9hLtDEOpOvI+aHnzqnC5lHp4Rg==", + "dev": true, + "requires": { + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.3" + } + }, + "string.prototype.matchall": { + "version": "4.0.11", + "resolved": "https://registry.npmjs.org/string.prototype.matchall/-/string.prototype.matchall-4.0.11.tgz", + "integrity": "sha512-NUdh0aDavY2og7IbBPenWqR9exH+E26Sv8e0/eTe1tltDGZL+GtBkDAnnyBtmekfK6/Dq3MkcGtzXFEd1LQrtg==", + "dev": true, + "requires": { + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.2", + "es-errors": "^1.3.0", + "es-object-atoms": "^1.0.0", + "get-intrinsic": "^1.2.4", + "gopd": "^1.0.1", + "has-symbols": "^1.0.3", + "internal-slot": "^1.0.7", + "regexp.prototype.flags": "^1.5.2", + "set-function-name": "^2.0.2", + "side-channel": "^1.0.6" + } + }, + "string.prototype.repeat": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/string.prototype.repeat/-/string.prototype.repeat-1.0.0.tgz", + "integrity": "sha512-0u/TldDbKD8bFCQ/4f5+mNRrXwZ8hg2w7ZR8wa16e8z9XpePWl3eGEcUD0OXpEH/VJH/2G3gjUtR3ZOiBe2S/w==", + "dev": true, + "requires": { + "define-properties": "^1.1.3", + "es-abstract": "^1.17.5" + } + }, + "string.prototype.trim": { + "version": "1.2.9", + "resolved": "https://registry.npmjs.org/string.prototype.trim/-/string.prototype.trim-1.2.9.tgz", + "integrity": "sha512-klHuCNxiMZ8MlsOihJhJEBJAiMVqU3Z2nEXWfWnIqjN0gEFS9J9+IxKozWWtQGcgoa1WUZzLjKPTr4ZHNFTFxw==", + "dev": true, + "requires": { + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.0", + "es-object-atoms": "^1.0.0" + } + }, + "string.prototype.trimend": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.8.tgz", + "integrity": "sha512-p73uL5VCHCO2BZZ6krwwQE3kCzM7NKmis8S//xEC6fQonchbum4eP6kR4DLEjQFO3Wnj3Fuo8NM0kOSjVdHjZQ==", + "dev": true, + "requires": { + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-object-atoms": "^1.0.0" + } + }, + "string.prototype.trimstart": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.8.tgz", + "integrity": "sha512-UXSH262CSZY1tfu3G3Secr6uGLCFVPMhIqHjlgCUtCCcgihYc/xKs9djMTMUOb2j1mVSeU8EU6NWc/iQKU6Gfg==", + "dev": true, + "requires": { + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-object-atoms": "^1.0.0" + } + }, + "strip-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "requires": { + "ansi-regex": "^5.0.1" + } + }, + "strip-ansi-cjs": { + "version": "npm:strip-ansi@6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "requires": { + "ansi-regex": "^5.0.1" + } + }, + "strip-bom": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz", + "integrity": "sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA==", + "dev": true + }, + "strip-json-comments": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz", + "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==", + "dev": true + }, + "styled-jsx": { + "version": "5.1.6", + "resolved": "https://registry.npmjs.org/styled-jsx/-/styled-jsx-5.1.6.tgz", + "integrity": "sha512-qSVyDTeMotdvQYoHWLNGwRFJHC+i+ZvdBRYosOFgC+Wg1vx4frN2/RG/NA7SYqqvKNLf39P2LSRA2pu6n0XYZA==", + "requires": { + "client-only": "0.0.1" + } + }, + "sucrase": { + "version": "3.35.0", + "resolved": "https://registry.npmjs.org/sucrase/-/sucrase-3.35.0.tgz", + "integrity": "sha512-8EbVDiu9iN/nESwxeSxDKe0dunta1GOlHufmSSXxMD2z2/tMZpDMpvXQGsc+ajGo8y2uYUmixaSRUc/QPoQ0GA==", + "requires": { + "@jridgewell/gen-mapping": "^0.3.2", + "commander": "^4.0.0", + "glob": "^10.3.10", + "lines-and-columns": "^1.1.6", + "mz": "^2.7.0", + "pirates": "^4.0.1", + "ts-interface-checker": "^0.1.9" + }, + "dependencies": { + "glob": { + "version": "10.4.5", + "resolved": "https://registry.npmjs.org/glob/-/glob-10.4.5.tgz", + "integrity": "sha512-7Bv8RF0k6xjo7d4A/PxYLbUCfb6c+Vpd2/mB2yRDlew7Jb5hEXiCD9ibfO7wpk8i4sevK6DFny9h7EYbM3/sHg==", + "requires": { + "foreground-child": "^3.1.0", + "jackspeak": "^3.1.2", + "minimatch": "^9.0.4", + "minipass": "^7.1.2", + "package-json-from-dist": "^1.0.0", + "path-scurry": "^1.11.1" + } + } + } + }, + "supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "requires": { + "has-flag": "^4.0.0" + } + }, + "supports-preserve-symlinks-flag": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", + "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==" + }, + "swr": { + "version": "2.2.5", + "resolved": "https://registry.npmjs.org/swr/-/swr-2.2.5.tgz", + "integrity": "sha512-QtxqyclFeAsxEUeZIYmsaQ0UjimSq1RZ9Un7I68/0ClKK/U3LoyQunwkQfJZr2fc22DfIXLNDc2wFyTEikCUpg==", + "requires": { + "client-only": "^0.0.1", + "use-sync-external-store": "^1.2.0" + } + }, + "tailwind-merge": { + "version": "2.5.5", + "resolved": "https://registry.npmjs.org/tailwind-merge/-/tailwind-merge-2.5.5.tgz", + "integrity": "sha512-0LXunzzAZzo0tEPxV3I297ffKZPlKDrjj7NXphC8V5ak9yHC5zRmxnOe2m/Rd/7ivsOMJe3JZ2JVocoDdQTRBA==" + }, + "tailwindcss": { + "version": "3.4.15", + "resolved": "https://registry.npmjs.org/tailwindcss/-/tailwindcss-3.4.15.tgz", + "integrity": "sha512-r4MeXnfBmSOuKUWmXe6h2CcyfzJCEk4F0pptO5jlnYSIViUkVmsawj80N5h2lO3gwcmSb4n3PuN+e+GC1Guylw==", + "requires": { + "@alloc/quick-lru": "^5.2.0", + "arg": "^5.0.2", + "chokidar": "^3.6.0", + "didyoumean": "^1.2.2", + "dlv": "^1.1.3", + "fast-glob": "^3.3.2", + "glob-parent": "^6.0.2", + "is-glob": "^4.0.3", + "jiti": "^1.21.6", + "lilconfig": "^2.1.0", + "micromatch": "^4.0.8", + "normalize-path": "^3.0.0", + "object-hash": "^3.0.0", + "picocolors": "^1.1.1", + "postcss": "^8.4.47", + "postcss-import": "^15.1.0", + "postcss-js": "^4.0.1", + "postcss-load-config": "^4.0.2", + "postcss-nested": "^6.2.0", + "postcss-selector-parser": "^6.1.2", + "resolve": "^1.22.8", + "sucrase": "^3.35.0" + }, + "dependencies": { + "postcss-load-config": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/postcss-load-config/-/postcss-load-config-4.0.2.tgz", + "integrity": "sha512-bSVhyJGL00wMVoPUzAVAnbEoWyqRxkjv64tUl427SKnPrENtq6hJwUojroMz2VB+Q1edmi4IfrAPpami5VVgMQ==", + "requires": { + "lilconfig": "^3.0.0", + "yaml": "^2.3.4" + }, + "dependencies": { + "lilconfig": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/lilconfig/-/lilconfig-3.1.2.tgz", + "integrity": "sha512-eop+wDAvpItUys0FWkHIKeC9ybYrTGbU41U5K7+bttZZeohvnY7M9dZ5kB21GNWiFT2q1OoPTvncPCgSOVO5ow==" + } + } + } + } + }, + "tailwindcss-animate": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/tailwindcss-animate/-/tailwindcss-animate-1.0.7.tgz", + "integrity": "sha512-bl6mpH3T7I3UFxuvDEXLxy/VuFxBk5bbzplh7tXI68mwMokNYd1t9qPBHlnyTwfa4JGC4zP516I1hYYtQ/vspA==", + "requires": {} + }, + "tapable": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/tapable/-/tapable-2.2.1.tgz", + "integrity": "sha512-GNzQvQTOIP6RyTfE2Qxb8ZVlNmw0n88vp1szwWRimP02mnTsx3Wtn5qRdqY9w2XduFNUgvOwhNnQsjwCp+kqaQ==", + "dev": true + }, + "text-table": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz", + "integrity": "sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==", + "dev": true + }, + "thenify": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/thenify/-/thenify-3.3.1.tgz", + "integrity": "sha512-RVZSIV5IG10Hk3enotrhvz0T9em6cyHBLkH/YAZuKqd8hRkKhSfCGIcP2KUY0EPxndzANBmNllzWPwak+bheSw==", + "requires": { + "any-promise": "^1.0.0" + } + }, + "thenify-all": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/thenify-all/-/thenify-all-1.6.0.tgz", + "integrity": "sha512-RNxQH/qI8/t3thXJDwcstUO4zeqo64+Uy/+sNVRBx4Xn2OX+OZ9oP+iJnNFqplFra2ZUVeKCSa2oVWi3T4uVmA==", + "requires": { + "thenify": ">= 3.1.0 < 4" + } + }, + "to-regex-range": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", + "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", + "requires": { + "is-number": "^7.0.0" + } + }, + "ts-api-utils": { + "version": "1.4.2", + "resolved": "https://registry.npmjs.org/ts-api-utils/-/ts-api-utils-1.4.2.tgz", + "integrity": "sha512-ZF5gQIQa/UmzfvxbHZI3JXN0/Jt+vnAfAviNRAMc491laiK6YCLpCW9ft8oaCRFOTxCZtUTE6XB0ZQAe3olntw==", + "dev": true, + "requires": {} + }, + "ts-interface-checker": { + "version": "0.1.13", + "resolved": "https://registry.npmjs.org/ts-interface-checker/-/ts-interface-checker-0.1.13.tgz", + "integrity": "sha512-Y/arvbn+rrz3JCKl9C4kVNfTfSm2/mEp5FSz5EsZSANGPSlQrpRI5M4PKF+mJnE52jOO90PnPSc3Ur3bTQw0gA==" + }, + "tsconfig-paths": { + "version": "3.15.0", + "resolved": "https://registry.npmjs.org/tsconfig-paths/-/tsconfig-paths-3.15.0.tgz", + "integrity": "sha512-2Ac2RgzDe/cn48GvOe3M+o82pEFewD3UPbyoUHHdKasHwJKjds4fLXWf/Ux5kATBKN20oaFGu+jbElp1pos0mg==", + "dev": true, + "requires": { + "@types/json5": "^0.0.29", + "json5": "^1.0.2", + "minimist": "^1.2.6", + "strip-bom": "^3.0.0" + } + }, + "tslib": { + "version": "2.8.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.8.1.tgz", + "integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==" + }, + "type-check": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz", + "integrity": "sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==", + "dev": true, + "requires": { + "prelude-ls": "^1.2.1" + } + }, + "type-fest": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz", + "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==", + "dev": true + }, + "typed-array-buffer": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/typed-array-buffer/-/typed-array-buffer-1.0.2.tgz", + "integrity": "sha512-gEymJYKZtKXzzBzM4jqa9w6Q1Jjm7x2d+sh19AdsD4wqnMPDYyvwpsIc2Q/835kHuo3BEQ7CjelGhfTsoBb2MQ==", + "dev": true, + "requires": { + "call-bind": "^1.0.7", + "es-errors": "^1.3.0", + "is-typed-array": "^1.1.13" + } + }, + "typed-array-byte-length": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/typed-array-byte-length/-/typed-array-byte-length-1.0.1.tgz", + "integrity": "sha512-3iMJ9q0ao7WE9tWcaYKIptkNBuOIcZCCT0d4MRvuuH88fEoEH62IuQe0OtraD3ebQEoTRk8XCBoknUNc1Y67pw==", + "dev": true, + "requires": { + "call-bind": "^1.0.7", + "for-each": "^0.3.3", + "gopd": "^1.0.1", + "has-proto": "^1.0.3", + "is-typed-array": "^1.1.13" + } + }, + "typed-array-byte-offset": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/typed-array-byte-offset/-/typed-array-byte-offset-1.0.3.tgz", + "integrity": "sha512-GsvTyUHTriq6o/bHcTd0vM7OQ9JEdlvluu9YISaA7+KzDzPaIzEeDFNkTfhdE3MYcNhNi0vq/LlegYgIs5yPAw==", + "dev": true, + "requires": { + "available-typed-arrays": "^1.0.7", + "call-bind": "^1.0.7", + "for-each": "^0.3.3", + "gopd": "^1.0.1", + "has-proto": "^1.0.3", + "is-typed-array": "^1.1.13", + "reflect.getprototypeof": "^1.0.6" + } + }, + "typed-array-length": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/typed-array-length/-/typed-array-length-1.0.7.tgz", + "integrity": "sha512-3KS2b+kL7fsuk/eJZ7EQdnEmQoaho/r6KUef7hxvltNA5DR8NAUM+8wJMbJyZ4G9/7i3v5zPBIMN5aybAh2/Jg==", + "dev": true, + "requires": { + "call-bind": "^1.0.7", + "for-each": "^0.3.3", + "gopd": "^1.0.1", + "is-typed-array": "^1.1.13", + "possible-typed-array-names": "^1.0.0", + "reflect.getprototypeof": "^1.0.6" + } + }, + "typescript": { + "version": "5.7.2", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.7.2.tgz", + "integrity": "sha512-i5t66RHxDvVN40HfDd1PsEThGNnlMCMT3jMUuoh9/0TaqWevNontacunWyN02LA9/fIbEWlcHZcgTKb9QoaLfg==", + "devOptional": true + }, + "unbox-primitive": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/unbox-primitive/-/unbox-primitive-1.0.2.tgz", + "integrity": "sha512-61pPlCD9h51VoreyJ0BReideM3MDKMKnh6+V9L08331ipq6Q8OFXZYiqP6n/tbHx4s5I9uRhcye6BrbkizkBDw==", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "has-bigints": "^1.0.2", + "has-symbols": "^1.0.3", + "which-boxed-primitive": "^1.0.2" + } + }, + "undici-types": { + "version": "6.19.8", + "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-6.19.8.tgz", + "integrity": "sha512-ve2KP6f/JnbPBFyobGHuerC9g1FYGn/F8n1LWTwNxCEzd6IfqTwUQcNXgEtmmQ6DlRrC1hrSrBnCZPokRrDHjw==", + "dev": true + }, + "uri-js": { + "version": "4.4.1", + "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", + "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==", + "dev": true, + "requires": { + "punycode": "^2.1.0" + } + }, + "use-callback-ref": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/use-callback-ref/-/use-callback-ref-1.3.2.tgz", + "integrity": "sha512-elOQwe6Q8gqZgDA8mrh44qRTQqpIHDcZ3hXTLjBe1i4ph8XpNJnO+aQf3NaG+lriLopI4HMx9VjQLfPQ6vhnoA==", + "requires": { + "tslib": "^2.0.0" + } + }, + "use-debounce": { + "version": "10.0.4", + "resolved": "https://registry.npmjs.org/use-debounce/-/use-debounce-10.0.4.tgz", + "integrity": "sha512-6Cf7Yr7Wk7Kdv77nnJMf6de4HuDE4dTxKij+RqE9rufDsI6zsbjyAxcH5y2ueJCQAnfgKbzXbZHYlkFwmBlWkw==", + "requires": {} + }, + "use-sidecar": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/use-sidecar/-/use-sidecar-1.1.2.tgz", + "integrity": "sha512-epTbsLuzZ7lPClpz2TyryBfztm7m+28DlEv2ZCQ3MDr5ssiwyOwGH/e5F9CkfWjJ1t4clvI58yF822/GUkjjhw==", + "requires": { + "detect-node-es": "^1.1.0", + "tslib": "^2.0.0" + } + }, + "use-sync-external-store": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/use-sync-external-store/-/use-sync-external-store-1.2.2.tgz", + "integrity": "sha512-PElTlVMwpblvbNqQ82d2n6RjStvdSoNe9FG28kNfz3WiXilJm4DdNkEzRhCZuIDwY8U08WVihhGR5iRqAwfDiw==", + "requires": {} + }, + "util-deprecate": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", + "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==" + }, + "which": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", + "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", + "requires": { + "isexe": "^2.0.0" + } + }, + "which-boxed-primitive": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/which-boxed-primitive/-/which-boxed-primitive-1.0.2.tgz", + "integrity": "sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg==", + "dev": true, + "requires": { + "is-bigint": "^1.0.1", + "is-boolean-object": "^1.1.0", + "is-number-object": "^1.0.4", + "is-string": "^1.0.5", + "is-symbol": "^1.0.3" + } + }, + "which-builtin-type": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/which-builtin-type/-/which-builtin-type-1.2.0.tgz", + "integrity": "sha512-I+qLGQ/vucCby4tf5HsLmGueEla4ZhwTBSqaooS+Y0BuxN4Cp+okmGuV+8mXZ84KDI9BA+oklo+RzKg0ONdSUA==", + "dev": true, + "requires": { + "call-bind": "^1.0.7", + "function.prototype.name": "^1.1.6", + "has-tostringtag": "^1.0.2", + "is-async-function": "^2.0.0", + "is-date-object": "^1.0.5", + "is-finalizationregistry": "^1.1.0", + "is-generator-function": "^1.0.10", + "is-regex": "^1.1.4", + "is-weakref": "^1.0.2", + "isarray": "^2.0.5", + "which-boxed-primitive": "^1.0.2", + "which-collection": "^1.0.2", + "which-typed-array": "^1.1.15" + } + }, + "which-collection": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/which-collection/-/which-collection-1.0.2.tgz", + "integrity": "sha512-K4jVyjnBdgvc86Y6BkaLZEN933SwYOuBFkdmBu9ZfkcAbdVbpITnDmjvZ/aQjRXQrv5EPkTnD1s39GiiqbngCw==", + "dev": true, + "requires": { + "is-map": "^2.0.3", + "is-set": "^2.0.3", + "is-weakmap": "^2.0.2", + "is-weakset": "^2.0.3" + } + }, + "which-typed-array": { + "version": "1.1.16", + "resolved": "https://registry.npmjs.org/which-typed-array/-/which-typed-array-1.1.16.tgz", + "integrity": "sha512-g+N+GAWiRj66DngFwHvISJd+ITsyphZvD1vChfVg6cEdnzy53GzB3oy0fUNlvhz7H7+MiqhYr26qxQShCpKTTQ==", + "dev": true, + "requires": { + "available-typed-arrays": "^1.0.7", + "call-bind": "^1.0.7", + "for-each": "^0.3.3", + "gopd": "^1.0.1", + "has-tostringtag": "^1.0.2" + } + }, + "word-wrap": { + "version": "1.2.5", + "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.5.tgz", + "integrity": "sha512-BN22B5eaMMI9UMtjrGd5g5eCYPpCPDUy0FJXbYsaT5zYxjFOckS53SQDE3pWkVoWpHXVb3BrYcEN4Twa55B5cA==", + "dev": true + }, + "wrap-ansi": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-8.1.0.tgz", + "integrity": "sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==", + "requires": { + "ansi-styles": "^6.1.0", + "string-width": "^5.0.1", + "strip-ansi": "^7.0.1" + }, + "dependencies": { + "ansi-regex": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.1.0.tgz", + "integrity": "sha512-7HSX4QQb4CspciLpVFwyRe79O3xsIZDDLER21kERQ71oaPodF8jL725AgJMFAYbooIqolJoRLuM81SpeUkpkvA==" + }, + "ansi-styles": { + "version": "6.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.2.1.tgz", + "integrity": "sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==" + }, + "strip-ansi": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.0.tgz", + "integrity": "sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==", + "requires": { + "ansi-regex": "^6.0.1" + } + } + } + }, + "wrap-ansi-cjs": { + "version": "npm:wrap-ansi@7.0.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", + "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", + "requires": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + }, + "dependencies": { + "emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==" + }, + "string-width": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "requires": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + } + } + } + }, + "wrappy": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", + "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==", + "dev": true + }, + "yaml": { + "version": "2.6.1", + "resolved": "https://registry.npmjs.org/yaml/-/yaml-2.6.1.tgz", + "integrity": "sha512-7r0XPzioN/Q9kXBro/XPnA6kznR73DHq+GXh5ON7ZozRO6aMjbmiBuKste2wslTFkC5d1dw0GooOCepZXJ2SAg==" + }, + "yocto-queue": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz", + "integrity": "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==", + "dev": true + }, + "zod": { + "version": "3.23.8", + "resolved": "https://registry.npmjs.org/zod/-/zod-3.23.8.tgz", + "integrity": "sha512-XBx9AXhXktjUqnepgTiE5flcKIYWi/rme0Eaj+5Y0lftuGBq+jyRu/md4WnuxqgP1ubdpNCsYEYPxrzVHD8d6g==" + } + } +} diff --git a/web/package.json b/web/package.json new file mode 100644 index 0000000..f21cd01 --- /dev/null +++ b/web/package.json @@ -0,0 +1,76 @@ +{ + "name": "telegram-files-web", + "version": "0.0.0", + "private": true, + "type": "module", + "scripts": { + "build": "next build", + "check": "next lint && tsc --noEmit", + "dev": "next dev --turbo", + "lint": "next lint", + "lint:fix": "next lint --fix", + "preview": "next build && next start", + "start": "next start", + "typecheck": "tsc --noEmit", + "format:write": "prettier --write \"**/*.{ts,tsx,js,jsx,mdx}\" --cache", + "format:check": "prettier --check \"**/*.{ts,tsx,js,jsx,mdx}\" --cache" + }, + "dependencies": { + "@dnd-kit/core": "^6.2.0", + "@dnd-kit/modifiers": "^8.0.0", + "@dnd-kit/sortable": "^9.0.0", + "@hookform/resolvers": "^3.9.1", + "@radix-ui/react-avatar": "^1.1.1", + "@radix-ui/react-checkbox": "^1.1.2", + "@radix-ui/react-dialog": "^1.1.2", + "@radix-ui/react-dropdown-menu": "^2.1.2", + "@radix-ui/react-label": "^2.1.0", + "@radix-ui/react-popover": "^1.1.2", + "@radix-ui/react-progress": "^1.1.0", + "@radix-ui/react-select": "^2.1.2", + "@radix-ui/react-slot": "^1.1.0", + "@radix-ui/react-tabs": "^1.1.1", + "@radix-ui/react-toast": "^1.2.2", + "@radix-ui/react-tooltip": "^1.1.4", + "@t3-oss/env-nextjs": "^0.10.1", + "class-variance-authority": "^0.7.1", + "clsx": "^2.1.1", + "cmdk": "^1.0.0", + "date-fns": "^4.1.0", + "framer-motion": "^11.15.0", + "geist": "^1.3.0", + "input-otp": "^1.4.1", + "lucide-react": "^0.462.0", + "next": "^15.0.1", + "pretty-bytes": "^6.1.1", + "react": "^18.3.1", + "react-dom": "^18.3.1", + "react-hook-form": "^7.53.2", + "react-use-websocket": "^4.11.1", + "spoiled": "^0.3.2", + "swr": "^2.2.5", + "tailwind-merge": "^2.5.5", + "tailwindcss-animate": "^1.0.7", + "use-debounce": "^10.0.4", + "zod": "^3.23.8" + }, + "devDependencies": { + "@types/eslint": "^8.56.10", + "@types/node": "^20.14.10", + "@types/react": "^18.3.3", + "@types/react-dom": "^18.3.0", + "@typescript-eslint/eslint-plugin": "^8.1.0", + "@typescript-eslint/parser": "^8.1.0", + "eslint": "^8.57.0", + "eslint-config-next": "^15.0.1", + "postcss": "^8.4.39", + "prettier": "^3.3.2", + "prettier-plugin-tailwindcss": "^0.6.5", + "tailwindcss": "^3.4.3", + "typescript": "^5.5.3" + }, + "ct3aMetadata": { + "initVersion": "7.38.1" + }, + "packageManager": "npm@8.1.0" +} diff --git a/web/pm2.json b/web/pm2.json new file mode 100644 index 0000000..d6a77ed --- /dev/null +++ b/web/pm2.json @@ -0,0 +1,16 @@ +{ + "apps": [ + { + "name": "telegram-files-web", + "script": "/app/web/server.js", + "cwd": "/app/web", + "exec_mode": "cluster", + "instances": 1, + "env": { + "NODE_ENV": "production", + "HOSTNAME": "0.0.0.0", + "PORT": 3000 + } + } + ] +} diff --git a/web/postcss.config.js b/web/postcss.config.js new file mode 100644 index 0000000..01bf743 --- /dev/null +++ b/web/postcss.config.js @@ -0,0 +1,5 @@ +export default { + plugins: { + tailwindcss: {}, + }, +}; diff --git a/web/prettier.config.js b/web/prettier.config.js new file mode 100644 index 0000000..da332bd --- /dev/null +++ b/web/prettier.config.js @@ -0,0 +1,4 @@ +/** @type {import('prettier').Config & import('prettier-plugin-tailwindcss').PluginOptions} */ +export default { + plugins: ["prettier-plugin-tailwindcss"], +}; diff --git a/web/public/apple-touch-icon.png b/web/public/apple-touch-icon.png new file mode 100644 index 0000000000000000000000000000000000000000..ac95228bb10ab89c5d334e1d7e91014b5517e891 GIT binary patch literal 2523 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 bT~~T`F4bEhk)$X1)&RDa4i;4N8!7(<_lLI- literal 0 HcmV?d00001 diff --git a/web/public/favicon-96x96.png b/web/public/favicon-96x96.png new file mode 100644 index 0000000000000000000000000000000000000000..45d3774b8c7598f3028f0ee20c3b6eb057249e0d GIT binary patch literal 1377 zcmV-n1)lneP)Px)8%ab#RCr$PooRa1Fbsz2$qFZfo(y_2Kp_f>$BSf3@)FOVK4cQx`Ce_dli}^l z*q^WG@Zj$|87dwRNB`?Q@JYUaV|aYHyL}sML?G;UBD&`A00M&fq1kXtTO$BK(Nk94 za(}sNKh7_^!srE{m*^=V-C%eF7)|&Ph&u=`0HX^Z^9+Dt9-gcL%qTpCVeS!@0Dk^0 z|GX2cWx_V`1`7ZnI*7mGM?EZQ0{|<*I(|g}a8Ifbv;fQ=>!rp5le%xxi(=<%09ZNX zlr#niP0Jju0G=#9!f6UgEdZVn?@J!g451dl7XKAZl_%5y*y5-CLYxz%0CvnT2PF{% zDS+SQ{`VPYiOQ;uBmh=gTClbf_B??LV8?wqGFDRN0NCQo#m6g(`G5mp$NhQ$aAj8G z5`b;}ZQ{e#*?f=#u*Gi|zZi-(06md&EhW7m1z=mhKA31iP6617S06ys3t|Aa_3MkD z%mpz3d&X-A;Kd6<08g}j5CvwfbnV7chg&XqDu9^iq1{{M!J8L^0IWK-b83Fe9MNfO zmZA94odU3QJHAZ%XG(>~5m*Aa!qBP!YDM?*fGZ4904sza4dD@jwH}A|2w?W`gH;S` z7m69>tN|QhXl4MK)*dqP*!w=h5CX7FI81|MpJpjM4#FcM+yGd+8(ZDPiTHw@$s^*C zK0N>&DF8gc!`*5DXjnVkpENgk0XRaCS7#CkTEfGl@&JIfK~4tf6_SSopjFLKqhdcI zLI8M$g8@>2+|ZD+73f$t@xffu?qlg;bU*-)QTSi zDal>Za}NL>?xrnzu3m2u-y6WO6k!R#O8C?}X|3Wf1Hel7oIo1lL;J2dQQHG7h0nc- zDXsH!vDz{sy!5LHKvRTppt;GScE8gCC_V`+EfLOHEY4wj_Hb zABkYv%Y&4#PJ9Jt_bx0Lx0K zhXLLmO&mQBSbKwa{J*@JRu?_2pvDWXNesl$mIlbRLjag13{lOs_8+_xaP$R@*}@P7 z(VCz=6Yy=U;RI*4Fr?)T!vL7s3u<$NXZ(Nh)Yue%W-mYplH4#HfEBzz;tihR=f&Vt zi(D&s0S7`?>xTj6RvEoZGo_L~*-RLJJ&i0`rR4y44$xZs-tAWbSSc6u1dyGha5g$T zlT=TktoqJs%mJ`NQ9YXC44nf2y7#OW>Th?fD~sZns-W<8R;!9Eaj~~ixgG$6-Jyt& zjIAsC#Ix@Wp$tK^e=P;DJs}T(758ZqH2`)}jzbWOFHOQ>x4Sa>uSk{ntpK(s`~x70 z`Jolph9KI`lM{23_!=HSK|E=mAldNArfm%mpdCCRFI30-7zu3vtLKI0kYkYpQZBZV zH?Wr$%Ja1Q85SN8h9vm+tpCTbTC7iju?B$s&gKo~!lN)=04Ru&J;F`+UI0b~;Vyh{ z03+myZlcqh_YOg&A^{&ae?RvhO6Niufbd4~C2l+pVBiDCV;}kg j_$PTGoE|q5v!>xcl&M4Iv`6;;00000NkvXXu0mjf{2FJ5 literal 0 HcmV?d00001 diff --git a/web/public/favicon.ico b/web/public/favicon.ico new file mode 100644 index 0000000000000000000000000000000000000000..8c996a45f2273dd9cf5bbac5c54b38f52fdf6a14 GIT binary patch literal 15086 zcmd5?F^(if5X@oFEe6u=3)pdxFwa65h{>m%$rCUTmpJG01x$X?RyRcS zbc&*=s;;W;p1qLrvMMtoGP_r|Mr%cOvX{4S1^FO@p*aGxkvRjLmv(|#bsAcw=T+UtsgLut-dc3$p4-BH7d0S|>OA8d_E%sRA$(?Gk zWX_h_n*9fmw%lQfH+L&R(Olwx3#}C%fX}z}4xG;*4AC=>+8BmHk5`L^Gh(#poolfP z?%vxXr{?(z?DfoaJ+mTuJZdxs?-C5n8lRX$onycu?k~NYo6lrLzh{;OzCHSqCiD)* zWRE4UQjdm;C~;bQ15F#zI>Y&fISjwAk?Gfp0fL^{23?Pq8fqCSJ?kwnkbCy$?9}{} z7iTb1P!wYyOA#|Qa#J(sYMdF*O=%Ro8W>2Sp7$CkNTIIwJXGooyjm!Tp|4d6Yj^JD zai`i{xH7pui|08ww>5LG9*xc|gg!a$Z#b9Wyp~<4>CyQNYPGb~)H7sim~${R+_yG! zKBJbOUjQTA>iM&NFBjt-2b1&vVrHh8)H2L|9w< zJiuQ$qynw8-O_Mq)%Nh`o~6Z;UJk>dMZ1*C*@}qK;;WIkMY|@K&tg-w_(tn*_W!tL zr&=zbH-%dLYx0KF;#19#Uvsyb**fi-OMJc>pV#1Uw;H_0ZZ$J&b|*&>HGa3`aHkd+ z$hX|DG>g0Rz#uC5-lE4HmOvrC#h$4doV^wX7^P-xQRA#FpfKI~Ic$r?BTvp)`@Pfi z)=&&w^7An08J`0bOBjOBtnbYtO zXdsHbFds!ghv47*#QVL-nfY$aUof9o-H-XmY;@T%?=IK8zZmYEie8XW=k@;gYd)T* z{Pg}b)?bce-hFx;v%LS~njinZ<~<*Q;3IMF@jT9zyD9IOPv}kijrq*`b^kH@bH&f= z@4?>-UeWlTICOk(XFd^15RUKF-}Cg|`FC0egd$e_J1yD`L2xaG*9>RI+AtXUtlCV? zQWy+s=jC|x=)nL{&a<^nuUaUGYt9aLrS}{{{@Q0gR|)K|Ju~*p?O->U?YnSR4Da=3 zK9^3WJkR+|)G=8FzvM@K2*stuXU`ChIc}~$z(Cz3$gJfwVVx4I^ zL!^48+5pWQ$SHZSM@}zKp)H};mwPd&S40d$!8sZ?gS+AEyj`lN zfpD1#a#Ao9=d|7@H-zEhz1mETqof%?(kWsd>xPKyerGR)*F77W1H$iNW<5sO=b4_mn048@om-^rPSfiNIk%QI_=_z#{Q@y(atd-;tQ-&Kv>Gk#|v XzDB%xCnA3$4hZ%U + Telegram + + \ No newline at end of file diff --git a/web/public/site.webmanifest b/web/public/site.webmanifest new file mode 100644 index 0000000..e39f8f9 --- /dev/null +++ b/web/public/site.webmanifest @@ -0,0 +1,21 @@ +{ + "name": "TelegramFiles", + "short_name": "TeleFiles", + "icons": [ + { + "src": "/web-app-manifest-192x192.png", + "sizes": "192x192", + "type": "image/png", + "purpose": "maskable" + }, + { + "src": "/web-app-manifest-512x512.png", + "sizes": "512x512", + "type": "image/png", + "purpose": "maskable" + } + ], + "theme_color": "#77bb73", + "background_color": "#ffffff", + "display": "standalone" +} \ No newline at end of file diff --git a/web/public/web-app-manifest-192x192.png b/web/public/web-app-manifest-192x192.png new file mode 100644 index 0000000000000000000000000000000000000000..8653012e6df4491aca6779c2486f031ad8bd8f77 GIT binary patch literal 2773 zcmdT`XIB#l7JW&8Ktw@|ih~0|aE-JeDwahOY=HqKQl-OCLJ^r21q37kX8=bKbSWxf zK&6K^hyjL@sN;aNphG|f5{ihS7YQXHZ1ykgxBc+myXV|@?z`u_FZT}RB6%z3I}8A9 zwX!^GC!3uAmZE~J+YMep%LXFcj(i#_yY~tKFlkn2EgYgeXL2u8et%T;7cDVl!5G-H z=zoIgcHKU@T#h12mz5r*=vyQA;1*qye2$&dvhr!jzyDx=1*z11gI1^$^0bcy+whhWd%UN zHsZh0V3zKR0L$;={-FX4N(^%R_$)R3?%PG0GWM<ct@3~>vLjGIUSYm z$I$_7v28y}nllp?@e8)P{-)AhiPNeD2J!6;8_eBRZXFZYnVN)j4E@0}O+2!KO*B9G z_6n{5k*`i{KOw!eFlrWCKO=-36Ln&ILNENg}$#OeS`?4BbjOx~)4V<}Y{icpc z^BpL)4C_FU-X89Dkx$_9y=t-Wkj7XG;W90%m7!NW*2Nxe@m2!kO|zvc1&b&dh+V3Z zvj_xZcHWwEJk9_f3Iq~;lBybXR{2W57M~e`;SzhU@R8=R#H>U@b<0FSKnV-e1|(7TqOj*BK35UJ>7j@t zJ!uv-((a$uHbxg0CDBoZjwA&zWk*zFZ)XaSjms~wb6lsAa-N*mrhnJP?&}ag zE7W7s<-l)q3~K$vAI~Q{Z(BvP6t4-ULtOMMY7i(Gj*a5^tHCi}o)oYr%mJd^ z!=F}ASpp4~-I}mLxWTUQTQSSdcRETO$A%i}K4W5tmvBt6eAH0<U(Fr)c2jlNf?QzHLf!bqttEvP*yTEg zmx`Q`KK+xzbe6Y&kWpT7=vszj+I&oCm484;IB+&6QJi}_sQ%*6hUeMK9fFE3uXTqD zBu(-Ys783R7UpsFWse5b9xr>Anv_2>FC|gZsA60Egn3_KAITid(*xmf@G^^K}vfe|!!O zG1KV~`Q0KcWs61dsi-oPc?6>5e(cTp6g@HO__#~&6c>j8YVTA%izEAhx$B3V<>reg zST*=OxS3IYE=Q>HsyA!YQ{9!jOt|^2Q{rzxrq8q;EY9i1JFX}Qk))}$)gVWe>y-Es zcBx|{-na7nlM|!AXe9x?2e)c{U6Wc?TS&@1vUz z9G_ZDoH`ZazMR?Trr``u0`!%S^UAf0+e?a#DvL?Hz3nf9EN6!<1fUt~n-R(G&U9ri zO7uBTDc%GQ->6TF|0g_Z&+ou>8q-YxLw++0ejf6A%FnbZMu$$N5t&lx@pzNg;Eh!* zgOtZ%Vb^t`&0QhY?4Vtrqqf+ZfpkRSiRHpBJ?em)Kbf~K2#%xP$U>4%xVb0}4J7?y z1;Z_qYWr20oMloj!s2%+@o=6vVm3@$9+;dsNPBqRu|p?ZSa(Cb(+>QIYRx-Y{HjQ2 zLz;sr+paZ#fWr)^6fsO#{vis5lAyb{2QeJIo?Z2BIQ(xVFA@e!V;Y?vKsBZoT_2Zr zso`mC_PYu#e#jiJrO;KV2_`W zl;<%H-O@#<*8VNjc|cs6LzDym^o-N2zZkrnYeF5i(wC1MgPeN}wm(m61<2!3;|_r- zm&o6~dn0)Q-bCY9WujZrG_LJjimukr9yxNwr<+G|1?H!R*pBR>ICswla{6chem^*;pAsCzKSQ>hD!*R^sPi$pvGi%UzO=3K;0o zk28v39Bma1ic_(^WZwbtHGOC;U@5qi@&)z*LGWQWuu_|l3I_7z`3ti z@;)XRW_uy4?|4}H_)g7H>D`(0PQsW*5tso`PS6z}N(p^XNTUdp(>>jDCjcOCjGqzvF; pyA|~v7U+T7eVd9f@PA87wtVgoXbhv_ku0Zz)wzpjD^GhT{0BM27eN33 literal 0 HcmV?d00001 diff --git a/web/public/web-app-manifest-512x512.png b/web/public/web-app-manifest-512x512.png new file mode 100644 index 0000000000000000000000000000000000000000..6bc21959f4ad13a3d4e949ca37b3f52bc42e4f90 GIT binary patch literal 11554 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 P;J; +}) { + const { accountId, chatId } = await params; + + return ( +

+ ); +} diff --git a/web/src/app/account/[accountId]/page.tsx b/web/src/app/account/[accountId]/page.tsx new file mode 100644 index 0000000..1af2510 --- /dev/null +++ b/web/src/app/account/[accountId]/page.tsx @@ -0,0 +1,11 @@ +import { Header } from "@/components/header"; +import { EmptyState } from "@/components/empty-state"; + +export default function AccountPage() { + return ( +
+
+ +
+ ); +} diff --git a/web/src/app/layout.tsx b/web/src/app/layout.tsx new file mode 100644 index 0000000..38c46a7 --- /dev/null +++ b/web/src/app/layout.tsx @@ -0,0 +1,61 @@ +import "@/styles/globals.css"; +import type { Metadata } from "next"; +import { Inter } from "next/font/google"; +import React from "react"; +import { Toaster } from "@/components/ui/toaster"; +import { SWRProvider } from "@/components/swr-provider"; +import { SettingsProvider } from "@/hooks/use-settings"; +import { WebSocketProvider } from "@/hooks/use-websocket"; +import { env } from "@/env"; +import { TelegramAccountProvider } from "@/hooks/use-telegram-account"; + +const inter = Inter({ subsets: ["latin"] }); + +export const metadata: Metadata = { + title: "Telegram Files", + description: "Manage your files on Telegram", +}; + +export default async function RootLayout({ + children, +}: { + children: React.ReactNode; +}) { + return ( + + + + + + + + + {env.NEXT_PUBLIC_SCAN && ( +