master ae28fd91931f cached
309 files
1.6 MB
582.8k tokens
12 symbols
1 requests
Download .txt
Showing preview only (1,694K chars total). Download the full file or copy to clipboard to get everything.
Repository: shadowsocks/shadowsocks-android
Branch: master
Commit: ae28fd91931f
Files: 309
Total size: 1.6 MB

Directory structure:
gitextract_e5trxlyi/

├── .circleci/
│   └── config.yml
├── .github/
│   ├── FUNDING.yml
│   ├── ISSUE_TEMPLATE/
│   │   ├── bug_report.md
│   │   ├── feature_request.md
│   │   └── questions-support-requests-other.md
│   ├── doc-json.md
│   ├── faq.md
│   ├── faq.ru.md
│   └── workflows/
│       └── e2e-test.yml
├── .gitignore
├── .gitmodules
├── .travis.yml
├── AUTHORS
├── CONTRIBUTING.md
├── LICENSE
├── README.md
├── build.gradle.kts
├── buildSrc/
│   ├── build.gradle.kts
│   ├── settings.gradle.kts
│   └── src/
│       └── main/
│           └── kotlin/
│               └── Helpers.kt
├── core/
│   ├── .gitignore
│   ├── build.gradle.kts
│   ├── gfwlist/
│   │   ├── gen.pl
│   │   ├── gen.py
│   │   └── parse.py
│   ├── proguard-rules.pro
│   ├── schemas/
│   │   ├── com.github.shadowsocks.database.PrivateDatabase/
│   │   │   ├── 26.json
│   │   │   ├── 27.json
│   │   │   ├── 28.json
│   │   │   └── 29.json
│   │   └── com.github.shadowsocks.database.PublicDatabase/
│   │       └── 3.json
│   └── src/
│       ├── androidTest/
│       │   └── java/
│       │       └── com/
│       │           └── github/
│       │               └── shadowsocks/
│       │                   ├── acl/
│       │                   │   └── AclTest.kt
│       │                   ├── database/
│       │                   │   ├── MigrationTest.kt
│       │                   │   └── ProfileTest.kt
│       │                   └── net/
│       │                       └── SubnetTest.kt
│       ├── main/
│       │   ├── AndroidManifest.xml
│       │   ├── aidl/
│       │   │   └── com/
│       │   │       └── github/
│       │   │           └── shadowsocks/
│       │   │               └── aidl/
│       │   │                   ├── IShadowsocksService.aidl
│       │   │                   ├── IShadowsocksServiceCallback.aidl
│       │   │                   └── TrafficStats.aidl
│       │   ├── assets/
│       │   │   └── acl/
│       │   │       ├── bypass-china.acl
│       │   │       ├── bypass-lan-china.acl
│       │   │       ├── bypass-lan.acl
│       │   │       ├── china-list.acl
│       │   │       └── gfwlist.acl
│       │   ├── java/
│       │   │   └── com/
│       │   │       └── github/
│       │   │           └── shadowsocks/
│       │   │               ├── BootReceiver.kt
│       │   │               ├── Core.kt
│       │   │               ├── UrlImportActivity.kt
│       │   │               ├── VpnRequestActivity.kt
│       │   │               ├── acl/
│       │   │               │   ├── Acl.kt
│       │   │               │   └── AclSyncer.kt
│       │   │               ├── aidl/
│       │   │               │   ├── ShadowsocksConnection.kt
│       │   │               │   └── TrafficStats.kt
│       │   │               ├── bg/
│       │   │               │   ├── BaseService.kt
│       │   │               │   ├── Executable.kt
│       │   │               │   ├── GuardedProcessPool.kt
│       │   │               │   ├── LocalDnsWorker.kt
│       │   │               │   ├── ProxyInstance.kt
│       │   │               │   ├── ProxyService.kt
│       │   │               │   ├── ServiceNotification.kt
│       │   │               │   ├── TrafficMonitor.kt
│       │   │               │   ├── TransproxyService.kt
│       │   │               │   └── VpnService.kt
│       │   │               ├── database/
│       │   │               │   ├── KeyValuePair.kt
│       │   │               │   ├── PrivateDatabase.kt
│       │   │               │   ├── Profile.kt
│       │   │               │   ├── ProfileManager.kt
│       │   │               │   ├── PublicDatabase.kt
│       │   │               │   └── migration/
│       │   │               │       └── RecreateSchemaMigration.kt
│       │   │               ├── net/
│       │   │               │   ├── ConcurrentLocalSocketListener.kt
│       │   │               │   ├── DefaultNetworkListener.kt
│       │   │               │   ├── DnsResolverCompat.kt
│       │   │               │   ├── HttpsTest.kt
│       │   │               │   ├── LocalSocketListener.kt
│       │   │               │   └── Subnet.kt
│       │   │               ├── plugin/
│       │   │               │   ├── NativePlugin.kt
│       │   │               │   ├── NoPlugin.kt
│       │   │               │   ├── Plugin.kt
│       │   │               │   ├── PluginConfiguration.kt
│       │   │               │   ├── PluginList.kt
│       │   │               │   ├── PluginManager.kt
│       │   │               │   └── ResolvedPlugin.kt
│       │   │               ├── preference/
│       │   │               │   ├── DataStore.kt
│       │   │               │   ├── EditTextPreferenceModifiers.kt
│       │   │               │   ├── OnPreferenceDataStoreChangeListener.kt
│       │   │               │   └── RoomPreferenceDataStore.kt
│       │   │               ├── subscription/
│       │   │               │   ├── Subscription.kt
│       │   │               │   └── SubscriptionService.kt
│       │   │               ├── utils/
│       │   │               │   ├── ActivityResultContracts.kt
│       │   │               │   ├── ArrayIterator.kt
│       │   │               │   ├── Commandline.kt
│       │   │               │   ├── Constants.kt
│       │   │               │   ├── DeviceStorageApp.kt
│       │   │               │   ├── DirectBoot.kt
│       │   │               │   ├── Sorters.kt
│       │   │               │   └── Utils.kt
│       │   │               └── widget/
│       │   │                   └── AutoCollapseTextView.kt
│       │   ├── jni/
│       │   │   ├── Android.mk
│       │   │   ├── Application.mk
│       │   │   └── build-shared-executable.mk
│       │   ├── res/
│       │   │   ├── color-v24/
│       │   │   │   └── ic_launcher_foreground_shadow.xml
│       │   │   ├── drawable/
│       │   │   │   ├── ic_file_cloud_download.xml
│       │   │   │   ├── ic_launcher_monochrome.xml
│       │   │   │   └── ic_service_active.xml
│       │   │   ├── drawable-anydpi-v24/
│       │   │   │   └── ic_launcher_foreground.xml
│       │   │   ├── mipmap-anydpi-v24/
│       │   │   │   └── banner.xml
│       │   │   ├── mipmap-anydpi-v26/
│       │   │   │   └── ic_launcher.xml
│       │   │   ├── values/
│       │   │   │   ├── arrays.xml
│       │   │   │   ├── colors.xml
│       │   │   │   └── strings.xml
│       │   │   ├── values-ar/
│       │   │   │   └── strings.xml
│       │   │   ├── values-de/
│       │   │   │   └── strings.xml
│       │   │   ├── values-es/
│       │   │   │   └── strings.xml
│       │   │   ├── values-fa/
│       │   │   │   └── strings.xml
│       │   │   ├── values-fr/
│       │   │   │   └── strings.xml
│       │   │   ├── values-ja/
│       │   │   │   └── strings.xml
│       │   │   ├── values-ko/
│       │   │   │   └── strings.xml
│       │   │   ├── values-ru/
│       │   │   │   └── strings.xml
│       │   │   ├── values-tr/
│       │   │   │   └── strings.xml
│       │   │   ├── values-uk/
│       │   │   │   └── strings.xml
│       │   │   ├── values-zh-rCN/
│       │   │   │   └── strings.xml
│       │   │   ├── values-zh-rTW/
│       │   │   │   └── strings.xml
│       │   │   └── xml/
│       │   │       ├── backup_descriptor.xml
│       │   │       ├── default_configs.xml
│       │   │       ├── locales_config.xml
│       │   │       └── network_security_config.xml
│       │   └── rust/
│       │       └── linker-wrapper.py
│       └── test/
│           └── java/
│               └── com/
│                   └── github/
│                       └── shadowsocks/
│                           └── database/
│                               └── KeyValuePairTest.kt
├── detekt.yml
├── gradle/
│   ├── gradle-daemon-jvm.properties
│   ├── libs.versions.toml
│   └── wrapper/
│       ├── gradle-wrapper.jar
│       └── gradle-wrapper.properties
├── gradle.properties
├── gradlew
├── gradlew.bat
├── mobile/
│   ├── .gitignore
│   ├── build.gradle.kts
│   ├── google-services.json
│   └── src/
│       └── main/
│           ├── AndroidManifest.xml
│           ├── java/
│           │   └── com/
│           │       └── github/
│           │           └── shadowsocks/
│           │               ├── AboutFragment.kt
│           │               ├── App.kt
│           │               ├── AppManager.kt
│           │               ├── GlobalSettingsFragment.kt
│           │               ├── GlobalSettingsPreferenceFragment.kt
│           │               ├── MainActivity.kt
│           │               ├── ProfileConfigActivity.kt
│           │               ├── ProfileConfigFragment.kt
│           │               ├── ProfilesFragment.kt
│           │               ├── QuickToggleShortcut.kt
│           │               ├── ScannerActivity.kt
│           │               ├── ToolbarFragment.kt
│           │               ├── UdpFallbackProfileActivity.kt
│           │               ├── acl/
│           │               │   └── CustomRulesFragment.kt
│           │               ├── bg/
│           │               │   └── TileService.kt
│           │               ├── preference/
│           │               │   ├── PluginConfigurationDialogFragment.kt
│           │               │   ├── PluginPreference.kt
│           │               │   └── PluginPreferenceDialogFragment.kt
│           │               ├── subscription/
│           │               │   └── SubscriptionFragment.kt
│           │               ├── tasker/
│           │               │   ├── ActionListener.kt
│           │               │   ├── ConfigActivity.kt
│           │               │   └── Settings.kt
│           │               └── widget/
│           │                   ├── FabProgressBehavior.kt
│           │                   ├── ServiceButton.kt
│           │                   ├── StatsBar.kt
│           │                   ├── UndoSnackbarManager.kt
│           │                   └── WindowInsetsListeners.kt
│           └── res/
│               ├── color/
│               │   ├── background_service.xml
│               │   └── nav_item_tint.xml
│               ├── drawable/
│               │   ├── background_profile.xml
│               │   ├── background_selectable.xml
│               │   ├── ic_action_assignment.xml
│               │   ├── ic_action_copyright.xml
│               │   ├── ic_action_delete.xml
│               │   ├── ic_action_description.xml
│               │   ├── ic_action_dns.xml
│               │   ├── ic_action_done.xml
│               │   ├── ic_action_help_outline.xml
│               │   ├── ic_action_lock.xml
│               │   ├── ic_action_lock_open.xml
│               │   ├── ic_action_note_add.xml
│               │   ├── ic_action_settings.xml
│               │   ├── ic_app_shortcut_background.xml
│               │   ├── ic_av_playlist_add.xml
│               │   ├── ic_communication_phonelink_ring.xml
│               │   ├── ic_device_data_usage.xml
│               │   ├── ic_device_developer_mode.xml
│               │   ├── ic_file_cloud_queue.xml
│               │   ├── ic_file_file_upload.xml
│               │   ├── ic_hardware_router.xml
│               │   ├── ic_image_camera_alt.xml
│               │   ├── ic_image_edit.xml
│               │   ├── ic_image_looks_6.xml
│               │   ├── ic_image_photo.xml
│               │   ├── ic_maps_360.xml
│               │   ├── ic_maps_directions.xml
│               │   ├── ic_maps_directions_boat.xml
│               │   ├── ic_navigation_apps.xml
│               │   ├── ic_navigation_menu.xml
│               │   ├── ic_notification_enhanced_encryption.xml
│               │   ├── ic_qu_camera_launcher.xml
│               │   ├── ic_qu_shadowsocks_foreground.xml
│               │   ├── ic_qu_shadowsocks_launcher.xml
│               │   ├── ic_service_busy.xml
│               │   ├── ic_service_connected.xml
│               │   ├── ic_service_connecting.xml
│               │   ├── ic_service_idle.xml
│               │   ├── ic_service_stopped.xml
│               │   ├── ic_service_stopping.xml
│               │   ├── ic_settings_password.xml
│               │   ├── ic_social_emoji_symbols.xml
│               │   └── ic_social_share.xml
│               ├── drawable-v26/
│               │   ├── ic_qu_camera_launcher.xml
│               │   └── ic_qu_shadowsocks_launcher.xml
│               ├── layout/
│               │   ├── dialog_acl_rule.xml
│               │   ├── dialog_subscription.xml
│               │   ├── icon_list_item_2.xml
│               │   ├── layout_about.xml
│               │   ├── layout_apps.xml
│               │   ├── layout_apps_item.xml
│               │   ├── layout_custom_rules.xml
│               │   ├── layout_global_settings.xml
│               │   ├── layout_list.xml
│               │   ├── layout_main.xml
│               │   ├── layout_profile.xml
│               │   ├── layout_profile_config.xml
│               │   ├── layout_scanner.xml
│               │   ├── layout_subscriptions.xml
│               │   ├── layout_tasker.xml
│               │   ├── layout_udp_fallback.xml
│               │   ├── navigation_header.xml
│               │   └── preference_dialog_password.xml
│               ├── menu/
│               │   ├── app_manager_menu.xml
│               │   ├── custom_rules_menu.xml
│               │   ├── custom_rules_selection.xml
│               │   ├── navigation_main.xml
│               │   ├── profile_config_menu.xml
│               │   ├── profile_manager_menu.xml
│               │   ├── profile_share_popup.xml
│               │   ├── scanner_menu.xml
│               │   └── subscription_menu.xml
│               ├── raw/
│               │   └── about.html
│               ├── values/
│               │   ├── arrays.xml
│               │   ├── colors.xml
│               │   ├── dimen.xml
│               │   └── styles.xml
│               ├── values-night/
│               │   └── colors.xml
│               └── xml/
│                   ├── pref_global.xml
│                   ├── pref_profile.xml
│                   └── shortcuts.xml
├── plugin/
│   ├── .gitignore
│   ├── CHANGES.md
│   ├── README.md
│   ├── build.gradle.kts
│   ├── doc.md
│   ├── gradle.properties
│   └── src/
│       ├── main/
│       │   ├── AndroidManifest.xml
│       │   ├── java/
│       │   │   └── com/
│       │   │       └── github/
│       │   │           └── shadowsocks/
│       │   │               └── plugin/
│       │   │                   ├── AlertDialogFragment.kt
│       │   │                   ├── ConfigurationActivity.kt
│       │   │                   ├── HelpActivity.kt
│       │   │                   ├── HelpCallback.kt
│       │   │                   ├── NativePluginProvider.kt
│       │   │                   ├── OptionsCapableActivity.kt
│       │   │                   ├── PathProvider.kt
│       │   │                   ├── PluginContract.kt
│       │   │                   ├── PluginOptions.kt
│       │   │                   ├── Utils.kt
│       │   │                   └── fragment/
│       │   │                       ├── AlertDialogFragment.kt
│       │   │                       └── Utils.kt
│       │   └── res/
│       │       ├── color/
│       │       │   └── mtrl_text_btn_text_color_selector.xml
│       │       ├── drawable/
│       │       │   └── ic_navigation_close.xml
│       │       ├── layout/
│       │       │   └── toolbar_light_dark.xml
│       │       ├── values/
│       │       │   ├── colors.xml
│       │       │   ├── strings.xml
│       │       │   └── styles.xml
│       │       ├── values-de/
│       │       │   └── strings.xml
│       │       ├── values-es/
│       │       │   └── strings.xml
│       │       ├── values-fa/
│       │       │   └── strings.xml
│       │       ├── values-fr/
│       │       │   └── strings.xml
│       │       ├── values-ja/
│       │       │   └── strings.xml
│       │       ├── values-ko/
│       │       │   └── strings.xml
│       │       ├── values-night/
│       │       │   └── colors.xml
│       │       ├── values-ru/
│       │       │   └── strings.xml
│       │       ├── values-tr/
│       │       │   └── strings.xml
│       │       ├── values-uk/
│       │       │   └── strings.xml
│       │       ├── values-v29/
│       │       │   └── styles.xml
│       │       ├── values-zh-rCN/
│       │       │   └── strings.xml
│       │       └── values-zh-rTW/
│       │           └── strings.xml
│       └── test/
│           └── java/
│               └── com/
│                   └── github/
│                       └── shadowsocks/
│                           └── plugin/
│                               └── PluginOptionsTest.kt
├── privacy_policy.md
├── release.sh
├── repositories.gradle.kts
├── settings.gradle.kts
├── test-e2e.sh
├── translate.py
└── tv/
    ├── .gitignore
    ├── build.gradle.kts
    ├── google-services.json
    └── src/
        ├── freedom/
        │   └── res/
        │       └── values/
        │           └── styles.xml
        └── main/
            ├── AndroidManifest.xml
            ├── java/
            │   └── com/
            │       └── github/
            │           └── shadowsocks/
            │               └── tv/
            │                   ├── App.kt
            │                   ├── MainActivity.kt
            │                   ├── MainFragment.kt
            │                   ├── MainPreferenceFragment.kt
            │                   ├── ProfilesDialogFragment.kt
            │                   └── preference/
            │                       └── LeanbackSingleListPreferenceDialogFragment.kt
            └── res/
                ├── layout/
                │   ├── activity_main.xml
                │   └── leanback_list_preference_item_single_2.xml
                ├── values/
                │   └── styles.xml
                └── xml/
                    └── pref_main.xml

================================================
FILE CONTENTS
================================================

================================================
FILE: .circleci/config.yml
================================================
version: 2.1

orbs:
  android: circleci/android@2.3.0

jobs:
  build:
    executor:
      name: android/android-docker
      tag: 2025.04.1-ndk
      resource-class: large
    environment:
      GRADLE_OPTS: -Dorg.gradle.workers.max=1 -Dorg.gradle.daemon=false -Dkotlin.compiler.execution.strategy="in-process"
      RUST_VERSION: 1.86.0
    steps:
      - checkout
      - run: git submodule update --init --recursive
      - run: curl https://sh.rustup.rs -sSf | sh -s -- --default-toolchain $RUST_VERSION -y
      - run:
          name: Update environment variables
          command: |
            echo 'export PATH="$HOME"/.cargo/bin:"$PATH"' >> "$BASH_ENV"
      - run: rustup target add armv7-linux-androideabi aarch64-linux-android i686-linux-android x86_64-linux-android
      - android/restore-gradle-cache
      - run:
          name: Run Build and Tests
          command: ./gradlew assembleDebug check -PCARGO_PROFILE=debug
      - android/save-gradle-cache
      - store_artifacts:
          path: mobile/build/outputs/apk
          destination: apk/mobile
      - store_artifacts:
          path: tv/build/outputs/apk
          destination: apk/tv
      - store_artifacts:
          path: core/build/reports
          destination: reports/core
      - store_artifacts:
          path: mobile/build/reports
          destination: reports/mobile
      - store_artifacts:
          path: plugin/build/reports
          destination: reports/plugin
      - store_artifacts:
          path: tv/build/reports
          destination: reports/tv

workflows:
  test:
    jobs:
      - build


================================================
FILE: .github/FUNDING.yml
================================================
github: [Mygod]


================================================
FILE: .github/ISSUE_TEMPLATE/bug_report.md
================================================
---
name: Bug report
about: Create a report to help us improve
title: ''
labels: bug
assignees: ''

---

Please read contributing guidelines. Thanks.

**Describe the bug**
A clear and concise description of what the bug is.

**To Reproduce**
Steps to reproduce the behavior:
1. Go to '...'
2. Click on '....'
3. Scroll down to '....'
4. See error

**Expected behavior**
A clear and concise description of what you expected to happen.

**Screenshots**
If applicable, add screenshots to help explain your problem.

**Smartphone (please complete the following information):**
 - Android/Chrome OS version: [e.g. "7.0.0_r14" or "71.0.3578.94 (32-bit)", more detailed description is preferred]
 - Device: [e.g. Google Pixel XL]
 - Version: [e.g. version code "v3.0.0" or commit ID "a073f85"]
 - Last version that did not exhibit the issue: [not applicable]

**Configuration**
Put an `x` inside the [ ] that applies.

* [ ] IPv4 server address
* [ ] IPv6 server address
* [ ] Client IPv4 availability
* [ ] Client IPv6 availability
* Encrypt method:
* Route
  * [ ] All
  * [ ] Bypass LAN
  * [ ] Bypass China
  * [ ] Bypass LAN & China
  * [ ] GFW List
  * [ ] China List
  * [ ] Custom rules
* [ ] IPv6 route
* [ ] Apps VPN mode
  * [ ] Bypass mode
* Remote DNS: 8.8.8.8
* [ ] DNS over UDP
* Plugin configuration (if applicable):
* [ ] Auto Connect
* [ ] TCP Fast Open
* If you're not using VPN mode, please supply more details here:

**Additional context**
Add any other context about the problem here.


================================================
FILE: .github/ISSUE_TEMPLATE/feature_request.md
================================================
---
name: Feature request
about: Suggest an idea for this project
title: ''
labels: enhancement
assignees: ''

---

Please read contributing guidelines. Thanks.

**Is your feature request related to a problem? Please describe.**
A clear and concise description of what the problem is. Ex. I'm always frustrated when [...]

**Describe the solution you'd like**
A clear and concise description of what you want to happen.

**Describe alternatives you've considered**
A clear and concise description of any alternative solutions or features you've considered.

**Additional context**
Add any other context or screenshots about the feature request here.


================================================
FILE: .github/ISSUE_TEMPLATE/questions-support-requests-other.md
================================================
---
name: Questions/Support requests/Other
about: You should probably use the forum
title: ''
labels: question
assignees: ''

---

Please use the forum at https://discourse.shadowsocks.org/c/implementations/shadowsocks-android instead. Your issue will probably be closed.


================================================
FILE: .github/doc-json.md
================================================
# Documentation for JSON format

shadowsocks-android accepts processing Shadowsocks configs through JSON files.
This documentation is targeted towards Shadowsocks server maintainers, who might need to distribute server configs through subscription JSON files, which is supported since [v5.0.0](https://github.com/shadowsocks/shadowsocks-android/releases/tag/v5.0.0).

## `Profile` JSON object

In general, shadowsocks-android respects [the specification at shadowsocks.org](https://shadowsocks.org/en/config/quick-guide.html).
A JSON object is recognized as a `Profile` (i.e. a valid server config), if all of the following required fields are present and valid:

* `server`
* `server_port`
* `password`
* `method`

These fields have the same meaning as specified by shadowsocks.org.
The specification at shadowsocks.org additionally specifies two additional fields, which is not used by shadowsocks-android:

* `local_port`: This field is configured globally through "SOCKS5 proxy port".
* `timeout`: This field is hardcoded to 600 in shadowsocks-android (however, it is only used as a write timeout, so long idle connections like GMS heartbeat are allowed).

Additionally, shadowsocks-android accepts the following optional fields:

* `plugin`: shadowsocks-android plugin ID or [alias](https://github.com/shadowsocks/shadowsocks-android/pull/2431).
* `plugin_opts`: Plugin options [as specified in shadowsocks.org](https://shadowsocks.org/en/spec/Plugin.html).
* `remarks`: "Profile Name". (also used by [shadowsocks-windows](https://github.com/shadowsocks/shadowsocks-windows))
* `udp_fallback`: "UDP Fallback", should be a `Profile` JSON object or null.

The following optional fields are "Feature Settings" in shadowsocks-android, if omitted, their values will be copied from currently selected profile:

* `route`: "Route", should be one of `all`, `bypass-lan`, `bypass-china`, `bypass-lan-china`, `gfwlist`, `china-list`, `custom-rules`.
* `ipv6`: "IPv6 Route", Boolean.
* `proxy_apps`: "Apps VPN mode", is a JSON object with the following fields:
  - `enabled`: Boolean.
  - `bypass`: Boolean, whether the app specified should be bypassed or proxied.
  - `android_list`: An array of strings, specifying a list of Android app [package names](https://developer.android.com/studio/build/application-id).
* `udpdns`: "Send DNS over UDP", Boolean.

`Profile` objects can have additional fields, which will be ignored by shadowsocks-android.


## Parsing/Importing JSON

shadowsocks-android imports JSON using the following logic, which should support all reasonable formats of JSON files containing `Profile`s, including `gui-config.json` used by shadowsocks-windows.

1. On input a JSON file, try to recognize it as a `Profile`.
2. If input is an object and all the required fields of a `Profile` is present, return the parsed `Profile`.
3. Otherwise if input is an object, recursively search for `Profile`s in each field and return all found `Profile`s.
4. Otherwise if input is an array, recursively search for `Profile`s for each element and return all found `Profile`s.
5. Conclude that there is no `Profile` in input.

In general, subscription JSON file can be in any structure, as long as they contain the `Profile` JSON objects recognized by the above procedure.


## Exporting JSON

The easiest way to write JSON files is to configure them in shadowsocks-android and export the JSON file using the app.
The output will be a JSON file consisting of a JSON array with all the `Profile`s.


## Subscription update behavior

In shadowsocks-android, `Profile` is indexed by the triple `(server, server_port, remarks)`.
If two `Profile`s share the exact same triple, they will be treated as the exact same `Profile`, despite possibly having different plugins, passwords, or even encryption methods.

When doing subscription updates,

* If an old `Profile` shares the same triple as a new `Profile`, the following field in the old `Profile` will be updated: `password`, `method`, `plugin`, `plugin_opts`, `udp_fallback`.
  This ensures that user configured feature settings and traffic stats are preserved.
* If two `Profile` across all the subscriptions share the exact same triple, the behavior is undefined.
  Please avoid this if possible.


## Appendix: Sample exported JSON file

```json
[
  {
    "server": "198.199.101.152",
    "server_port": 8388,
    "password": "u1rRWTssNv0p",
    "method": "aes-256-cfb",
    "remarks": "Example 1"
  },
  {
    "server": "198.199.101.12",
    "server_port": 8388,
    "password": "u1rRWTssNv0p",
    "method": "aes-256-cfb",
    "plugin": "v2ray",
    "plugin_opts": "host=www.example.com",
    "remarks": "Example 2",
    "route": "bypass-lan-china",
    "remote_dns": "dns.google",
    "ipv6": true,
    "metered": false,
    "proxy_apps": {
      "enabled": true,
      "bypass": true,
      "android_list": [
        "com.eg.android.AlipayGphone",
        "com.wudaokou.hippo",
        "com.zhihu.android"
      ]
    },
    "udpdns": false
  }
]
```


================================================
FILE: .github/faq.md
================================================
### Troubleshooting

Cannot connect to server:

1. Stop battery saver if it's active;
2. Check your config;
3. Wipe app data.

Crash: [Submit an issue](https://github.com/shadowsocks/shadowsocks-android/issues/new) with logcat attached, or submit a crash report to Google Play. Then, try wiping app data.

### How to create a widget and/or switch profile based on network connectivity?

Use [Tasker](http://tasker.dinglisch.net/) integration.

### Why is NAT mode deprecated?

1. Requiring ROOT permission;
2. No IPv6 support;
3. No UDP relay support.

### How to remove the exclamation mark when using VPN mode?

The exclamation mark in the Wi-Fi/cellular icon appears because the system fails to connect to portal server (defaults to `clients3.google.com`) without VPN connection. To remove it, follow the instructions in [this article](https://www.noisyfox.cn/45.html). (in Simplified Chinese)

### Why is my ROM not supported?

1. Some ROM has broken VPNService implementation, especially for IPv6;
2. Some ROM has aggressive (or called broken) background service killing policy;
3. Some ROM like [Flyme](https://github.com/shadowsocks/shadowsocks-android/issues/1821) is basically broken **in every way possible**;
4. If you have Xposed framework and/or battery saver apps, it's likely that this app wouldn't work well with these either.

* Fixes for MIUI: [#772](https://github.com/shadowsocks/shadowsocks-android/issues/772)
* Fixes for EMUI: [#888](https://github.com/shadowsocks/shadowsocks-android/issues/888)
* Fixes for Huawei: [#1091 (comment)](https://github.com/shadowsocks/shadowsocks-android/issues/1091#issuecomment-276949836)
* Related to Xposed: [#1414](https://github.com/shadowsocks/shadowsocks-android/issues/1414)
* Samsung and/or Brevent: [#1410](https://github.com/shadowsocks/shadowsocks-android/issues/1410)
* Another Samsung: [#1712](https://github.com/shadowsocks/shadowsocks-android/issues/1712)
* Samsung with GMS: [#2138](https://github.com/shadowsocks/shadowsocks-android/issues/2138)
* Don't install this app on SD card because of permission issues: [#1124 (comment)](https://github.com/shadowsocks/shadowsocks-android/issues/1124#issuecomment-307556453)
* `INTERACT_ACROSS_USERS` permission missing: [#1184](https://github.com/shadowsocks/shadowsocks-android/issues/1184)

### How to pause Shadowsocks service?

* For Android 7.0+: Use quick switch tile in Quick Settings;
* Use Tasker integration;
* Add a profile with per-app proxy enabled for Shadowsocks only, bypass mode off.

### Why does Shadowsocks consume so much battery on Android 5.0+?

As Shadowsocks takes over the whole device network, any battery used by network activities from other apps are also counted as those from Shadowsocks. So, the battery usage of Shadowsocks equals to the sum of all the network activities of your device. Shadowsocks itself is a totally I/O bound application on modern Android devices, which is expected not to consume any notable battery.

So if you notice a significant increase in battery usage after you use Shadowsocks, it's most likely caused by other apps. For example, Google Play services can consume more battery after being able to connecting to Google, etc.

More details: https://kb.adguard.com/en/android/solving-problems/battery

### It works fine under Wi-Fi but can't connect through cellular data?

Allow this app to consume background data in app settings.

### How to use Transproxy mode?

1. Install [AFWall+](https://github.com/ukanth/afwall);
2. Set custom script:
```sh
IP6TABLES=/system/bin/ip6tables
IPTABLES=/system/bin/iptables
ULIMIT=/system/bin/ulimit
SHADOWSOCKS_UID=`dumpsys package com.github.shadowsocks | grep userId | cut -d= -f2 - | cut -d' ' -f1 -`
PORT_DNS=5450
PORT_TRANSPROXY=8200
$ULIMIT -n 4096
$IP6TABLES -F
$IP6TABLES -A INPUT -j DROP
$IP6TABLES -A OUTPUT -j DROP
$IPTABLES -t nat -F OUTPUT
$IPTABLES -t nat -A OUTPUT -o lo -j RETURN
$IPTABLES -t nat -A OUTPUT -d 127.0.0.1 -j RETURN
$IPTABLES -t nat -A OUTPUT -m owner --uid-owner $SHADOWSOCKS_UID -j RETURN
$IPTABLES -t nat -A OUTPUT -p tcp --dport 53 -j DNAT --to-destination 127.0.0.1:$PORT_DNS
$IPTABLES -t nat -A OUTPUT -p udp --dport 53 -j DNAT --to-destination 127.0.0.1:$PORT_DNS
$IPTABLES -t nat -A OUTPUT -p tcp -j DNAT --to-destination 127.0.0.1:$PORT_TRANSPROXY
$IPTABLES -t nat -A OUTPUT -p udp -j DNAT --to-destination 127.0.0.1:$PORT_TRANSPROXY
```
3. Set custom shutdown script:
```sh
IP6TABLES=/system/bin/ip6tables
IPTABLES=/system/bin/iptables
$IPTABLES -t nat -F OUTPUT
$IP6TABLES -F
```
4. Make sure to allow traffic for Shadowsocks;
5. Start Shadowsocks transproxy service and enable firewall.


================================================
FILE: .github/faq.ru.md
================================================
### Решение проблем

Не получается подключиться к серверу:

1. Выключите режим энергосбережения, если он активен;
2. Проверьте настройки;
3. Сотрите данные приложения.

Не работает: [Добавьте отчет](https://github.com/shadowsocks/shadowsocks-android/issues/new) прикрепив лог (logcat), или отправьте отзыв в Google Play. Затем попробуйте стереть данные приложения.

### Как добавить виджет и/или переключать профиль на основании состояния сети?

Использйте интеграцию с [Tasker](http://tasker.dinglisch.net/).

### Почему режим NAT более не поддерживается?

1. Требуются ROOT права;
2. Нет поддержки IPv6;
3. Нет поддержки UDP relay.

### Как убрать восклицательный знак когда используется режим VPN?

Восклицательный знак на значке Wi-Fi/Сотовой связи появляется, потому что система не может подключиться к portal-серверу (по-умолчанию к `clients3.google.com`) без VPN подключения. Чтобы убрать его, следуйте инструкциям в [этом топике](https://www.noisyfox.cn/45.html). (на упрощенном китайском)

### Почему мой ROM не поддерживается?

1. Некоторые ROM используют неправильную реализацию службы VPN, особенно IPv6;
2. Некоторые ROM используют агрессивную (или так называемую испорченную) неправильную политику остановки фоновых служб;
3. Некоторые ROM, такие как [Flyme](https://github.com/shadowsocks/shadowsocks-android/issues/1821) просто не работают **в любом случае**;
4. Если вы используете фреймворк Xposed и/или приложения для энергосбережения, вероятно наше приложение не будет нормально работать с ними.

* Исправления для MIUI: [#772](https://github.com/shadowsocks/shadowsocks-android/issues/772)
* Исправления для EMUI: [#888](https://github.com/shadowsocks/shadowsocks-android/issues/888)
* Иправления для Huawei: [#1091 (комментарий)](https://github.com/shadowsocks/shadowsocks-android/issues/1091#issuecomment-276949836)
* Связанные с Xposed: [#1414](https://github.com/shadowsocks/shadowsocks-android/issues/1414)
* Samsung и/или Brevent: [#1410](https://github.com/shadowsocks/shadowsocks-android/issues/1410)
* Ещё Samsung: [#1712](https://github.com/shadowsocks/shadowsocks-android/issues/1712)
* Не устанавливайте это приложение на SD карту, из-за проблем с разрешениями: [#1124 (комментарий)](https://github.com/shadowsocks/shadowsocks-android/issues/1124#issuecomment-307556453)
* Отсутствует разрешение `INTERACT_ACROSS_USERS`: [#1184](https://github.com/shadowsocks/shadowsocks-android/issues/1184)

### Как приостановить службу Shadowsocks?

* Для Android 7.0+: Используйте переключатель в быстрых настройках;
* Используйте интеграцию с Tasker;
* Добавьте профиль c выбранными приложениями, которые будут работать через Shadowsocks прокси, выключив обходной режим.

### Почему Shadowsocks потребляет так много энергии на Android 5.0+?

Так как Shadowsocks работает со всем траффиком устройства, заряд батареи используемый другими приложениями также считается за тот, что использует Shadowsocks. Таким образом использование батареи Shadowsocks'ом равен сумме всей активности устройства в сети. Shadowsocks сам по себе в общем-то является приложением связанного процесса ввода/вывода на современных Android устройствах, которое, ожидаемо, не потребляет значительного количества энергии.

Так что если вы заметите значительное увеличение потребляемой энергии после того, как вы использовали Shadowsocks, это скорее всего вызванно другими приложениями. Например, сервисы Google Play могут потреблять больше энергии после того, как смогут подключиться к Google, и т.д.

Больше информации: https://kb.adguard.com/en/android/solving-problems/battery

### Оно прекрасно работает при Wi-Fi но не может подключиться через сотовую связь?

Разрешите этому приложению передачу данных в фоновом режиме в настройках приложения.

Если у вас оперератор Yota, то увы, но они запрещают P2P-траффик, коим является (или просто определяется фильтрами оператора как P2P-траффик) Shadowsocks. Оператор не будет предпринимать никаких действий для решения данной проблемы.

### Как использовать режим Transproxy (прозрачный прокси)?

1. Установите [AFWall+](https://github.com/ukanth/afwall);
2. Настройте пользовательский скрипт:
```sh
IP6TABLES=/system/bin/ip6tables
IPTABLES=/system/bin/iptables
ULIMIT=/system/bin/ulimit
SHADOWSOCKS_UID=`dumpsys package com.github.shadowsocks | grep userId | cut -d= -f2 - | cut -d' ' -f1 -`
PORT_DNS=5450
PORT_TRANSPROXY=8200
$ULIMIT -n 4096
$IP6TABLES -F
$IP6TABLES -A INPUT -j DROP
$IP6TABLES -A OUTPUT -j DROP
$IPTABLES -t nat -F OUTPUT
$IPTABLES -t nat -A OUTPUT -o lo -j RETURN
$IPTABLES -t nat -A OUTPUT -d 127.0.0.1 -j RETURN
$IPTABLES -t nat -A OUTPUT -m owner --uid-owner $SHADOWSOCKS_UID -j RETURN
$IPTABLES -t nat -A OUTPUT -p tcp --dport 53 -j DNAT --to-destination 127.0.0.1:$PORT_DNS
$IPTABLES -t nat -A OUTPUT -p udp --dport 53 -j DNAT --to-destination 127.0.0.1:$PORT_DNS
$IPTABLES -t nat -A OUTPUT -p tcp -j DNAT --to-destination 127.0.0.1:$PORT_TRANSPROXY
$IPTABLES -t nat -A OUTPUT -p udp -j DNAT --to-destination 127.0.0.1:$PORT_TRANSPROXY
```
3. Настройте пользовательский скрипт отключения:
```sh
IP6TABLES=/system/bin/ip6tables
IPTABLES=/system/bin/iptables
$IPTABLES -t nat -F OUTPUT
$IP6TABLES -F
```
4. Убедитесь, что траффик для Shadowsocks разрешен;
5. Запустите службу прозрачного прокси (transproxy) в Shadowsocks и включите брандмауэр.


================================================
FILE: .github/workflows/e2e-test.yml
================================================
name: E2E Test
on:
  push:
    branches: [master]
  pull_request:
  workflow_dispatch:

jobs:
  e2e-test:
    runs-on: ubuntu-latest
    timeout-minutes: 45
    steps:
      - uses: actions/checkout@v4
        with:
          submodules: recursive

      - uses: actions/setup-java@v4
        with:
          distribution: jetbrains
          java-version: 21

      - uses: dtolnay/rust-toolchain@stable
        with:
          targets: x86_64-linux-android

      - name: Enable KVM
        run: |
          echo 'KERNEL=="kvm", GROUP="kvm", MODE="0666", OPTIONS+="static_node=kvm"' \
            | sudo tee /etc/udev/rules.d/99-kvm4all.rules
          sudo udevadm control --reload-rules
          sudo udevadm trigger --name-match=kvm

      - name: Gradle cache
        uses: actions/cache@v4
        with:
          path: |
            ~/.gradle/caches
            ~/.gradle/wrapper
          key: gradle-${{ hashFiles('**/*.gradle*', 'gradle/wrapper/gradle-wrapper.properties') }}

      - name: Cargo cache
        uses: actions/cache@v4
        with:
          path: |
            ~/.cargo/registry
            ~/.cargo/git
            core/src/main/rust/shadowsocks-rust/target
          key: cargo-${{ hashFiles('core/src/main/rust/shadowsocks-rust/Cargo.lock') }}

      - name: Build debug APK (x86_64)
        run: ./gradlew assembleDebug -PCARGO_PROFILE=debug -PTARGET_ABI=x86_64

      - name: Build ssserver
        run: |
          cd core/src/main/rust/shadowsocks-rust
          cargo build --release --bin ssserver --features "server,aead-cipher,logging"

      - name: E2E Test
        uses: ReactiveCircus/android-emulator-runner@v2
        with:
          api-level: 34
          target: google_apis
          arch: x86_64
          force-avd-creation: true
          emulator-options: >-
            -no-snapshot-save -no-window -gpu swiftshader_indirect
            -noaudio -no-boot-anim
          disable-animations: true
          script: bash test-e2e.sh
        env:
          SKIP_EMULATOR_BOOT: "true"
          ADB: adb
          APK: ${{ github.workspace }}/mobile/build/outputs/apk/debug/mobile-x86_64-debug.apk
          SSSERVER: ${{ github.workspace }}/core/src/main/rust/shadowsocks-rust/target/release/ssserver

      - name: Upload screenshots
        uses: actions/upload-artifact@v4
        if: always()
        with:
          name: e2e-screenshots
          path: screen_*.png


================================================
FILE: .gitignore
================================================
# Gradle & Android Studio
local.properties
.gradle/
.externalNativeBuild/
build/
captures/
release/

.idea/
*.iml

# release apks
*.apk
.DS_Store


================================================
FILE: .gitmodules
================================================
[submodule "core/src/main/jni/badvpn"]
	path = core/src/main/jni/badvpn
	url = https://github.com/shadowsocks/badvpn.git
	branch = shadowsocks-android
[submodule "core/src/main/jni/libancillary"]
	path = core/src/main/jni/libancillary
	url = https://github.com/shadowsocks/libancillary.git
	branch = shadowsocks-android
[submodule "core/src/main/jni/libevent"]
	path = core/src/main/jni/libevent
	url = https://github.com/shadowsocks/libevent.git
	branch = shadowsocks-android
[submodule "core/src/main/jni/redsocks"]
	path = core/src/main/jni/redsocks
	url = https://github.com/shadowsocks/redsocks.git
	branch = shadowsocks-android
[submodule "core/src/main/rust/shadowsocks-rust"]
	path = core/src/main/rust/shadowsocks-rust
	url = https://github.com/shadowsocks/shadowsocks-rust.git


================================================
FILE: .travis.yml
================================================
sudo: required

addons:
    artifacts: true

services:
    - docker

before_install:
    - docker pull circleci/android:api-28-ndk
    - chmod -R a+wrx .

script:
    - docker run --rm -v ${PWD}:/build circleci/android:api-28-ndk bash -c "cd /build; ./gradlew assembleDebug check"


================================================
FILE: AUTHORS
================================================
Shadowsocks-android was originally created in late 2013, by
Max Lv <max.c.lv@gmail.com>.

Here is an inevitably incomplete list of MUCH-APPRECIATED CONTRIBUTORS --
people who have submitted patches, fixed bugs, added translations, and
generally made shadowsocks-android that much better:

https://github.com/shadowsocks/shadowsocks-android/graphs/contributors


================================================
FILE: CONTRIBUTING.md
================================================
# Submitting Issues

* Issues can be submitted in two different places:
    1) [The GitHub issue log](https://github.com/shadowsocks/shadowsocks-android/issues)
    2) [The Shadowsocks.org Discourse Forum](https://discourse.shadowsocks.org/c/implementations/shadowsocks-android)
* Please search for your issues in both places before submitting new issues.
* If you have any questions, please check the [FAQ](https://github.com/shadowsocks/shadowsocks-android/blob/master/.github/faq.md) and the questions submitted at the [Discourse Forum](https://discourse.shadowsocks.org/c/implementations/shadowsocks-android).
* General discussions should go to the [Discourse Forum](https://discourse.shadowsocks.org/c/implementations/shadowsocks-android).
* Always provide information asked in the template unless you know what you're doing.
* Utilizing Logcat would also be helpful.


================================================
FILE: LICENSE
================================================

Copyright (C) 2017 by Max Lv <max.c.lv@gmail.com>
Copyright (C) 2017 by Mygod Studio <contact-shadowsocks-android@mygod.be>

This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.

This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
GNU General Public License for more details.

You should have received a copy of the GNU General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>.



================================================
FILE: README.md
================================================
## [Shadowsocks](https://shadowsocks.org) for Android

[![CircleCI](https://circleci.com/gh/shadowsocks/shadowsocks-android.svg?style=shield)](https://circleci.com/gh/shadowsocks/shadowsocks-android)
[![API](https://img.shields.io/badge/API-23%2B-brightgreen.svg?style=flat)](https://android-arsenal.com/api?level=23)
[![Releases](https://img.shields.io/github/downloads/shadowsocks/shadowsocks-android/total.svg)](https://github.com/shadowsocks/shadowsocks-android/releases)
[![Language: Kotlin](https://img.shields.io/github/languages/top/shadowsocks/shadowsocks-android.svg)](https://github.com/shadowsocks/shadowsocks-android/search?l=kotlin)
[![Codacy Badge](https://app.codacy.com/project/badge/Grade/22ca240f272445548e332a42d5a20d95)](https://www.codacy.com/gh/shadowsocks/shadowsocks-android/dashboard?utm_source=github.com&amp;utm_medium=referral&amp;utm_content=shadowsocks/shadowsocks-android&amp;utm_campaign=Badge_Grade)
[![License: GPL-3.0](https://img.shields.io/badge/license-GPL--3.0-orange.svg)](https://www.gnu.org/licenses/gpl-3.0)

<a href="https://play.google.com/store/apps/details?id=com.github.shadowsocks"><img src="https://play.google.com/intl/en_us/badges/images/generic/en-play-badge.png" height="48"></a>
for Android & Chrome OS ([beta](https://play.google.com/apps/testing/com.github.shadowsocks))  
<a href="https://play.google.com/store/apps/details?id=com.github.shadowsocks.tv"><img src="https://play.google.com/intl/en_us/badges/images/generic/en-play-badge.png" height="48"></a>
for Android TV ([beta](https://play.google.com/apps/testing/com.github.shadowsocks.tv))


### PREREQUISITES

* JDK 11+
* Android SDK
  - Android NDK
* Rust with Android targets installed using `rustup target add armv7-linux-androideabi aarch64-linux-android i686-linux-android x86_64-linux-android`

### BUILD

You can check whether the latest commit builds under UNIX environment by checking Travis status.

* Install prerequisites
* Clone the repo using `git clone --recurse-submodules <repo>` or update submodules using `git submodule update --init --recursive`
* Build it using Android Studio or gradle script

### CONTRIBUTING

If you are interested in contributing or getting involved with this project, please read the CONTRIBUTING page for more information.  The page can be found [here](https://github.com/shadowsocks/shadowsocks-android/blob/master/CONTRIBUTING.md).


### [TRANSLATE](https://discourse.shadowsocks.org/t/poeditor-translation-main-thread/30)

## OPEN SOURCE LICENSES

<ul>
    <li>redsocks: <a href="https://github.com/shadowsocks/redsocks/blob/shadowsocks-android/README">APL 2.0</a></li>
    <li>libevent: <a href="https://github.com/shadowsocks/libevent/blob/master/LICENSE">BSD</a></li>
    <li>tun2socks: <a href="https://github.com/shadowsocks/badvpn/blob/shadowsocks-android/COPYING">BSD</a></li>
    <li>shadowsocks-rust: <a href="https://github.com/shadowsocks/shadowsocks-rust/blob/master/LICENSE">MIT</a></li>
    <li>libsodium: <a href="https://github.com/jedisct1/libsodium/blob/master/LICENSE">ISC</a></li>
    <li>OpenSSL: <a href="https://www.openssl.org/source/license-openssl-ssleay.txt">OpenSSL License</a></li>
</ul>


### LICENSE

Copyright (C) 2017 by Max Lv <<max.c.lv@gmail.com>>  
Copyright (C) 2017 by Mygod Studio <<contact-shadowsocks-android@mygod.be>>

This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.

This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
GNU General Public License for more details.

You should have received a copy of the GNU General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>.


================================================
FILE: build.gradle.kts
================================================
// Top-level build file where you can add configuration options common to all sub-projects/modules.

plugins {
    alias(libs.plugins.versions)
    alias(libs.plugins.ksp) apply false
}

buildscript {
    apply(from = "repositories.gradle.kts")

    repositories {
        google()
        mavenCentral()
        gradlePluginPortal()
    }

    dependencies {
        classpath(libs.android.gradle)
        classpath(libs.dokka)
        classpath(libs.firebase.crashlytics.gradle)
        classpath(libs.google.oss.licenses)
        classpath(libs.google.services)
        classpath(libs.gradle.maven.publish)
        classpath(libs.kotlin.gradle)
        classpath(libs.rust.android)
    }
}

allprojects {
    apply(from = "${rootProject.projectDir}/repositories.gradle.kts")
}

// skip uploading the mapping to Crashlytics
subprojects {
    tasks.whenTaskAdded {
        if (name.contains("uploadCrashlyticsMappingFile")) enabled = false
    }
}


================================================
FILE: buildSrc/build.gradle.kts
================================================
plugins {
    `kotlin-dsl`
}

apply(from = "../repositories.gradle.kts")

dependencies {
    implementation(libs.android.gradle)
    implementation(libs.kotlin.gradle)
}


================================================
FILE: buildSrc/settings.gradle.kts
================================================
dependencyResolutionManagement {
    versionCatalogs {
        create("libs") {
            from(files("../gradle/libs.versions.toml"))
        }
    }
}


================================================
FILE: buildSrc/src/main/kotlin/Helpers.kt
================================================
import com.android.build.api.dsl.CommonExtension
import com.android.build.gradle.BaseExtension
import org.gradle.api.JavaVersion
import org.gradle.api.Project
import org.gradle.kotlin.dsl.dependencies
import org.gradle.kotlin.dsl.getByName
import org.jetbrains.kotlin.gradle.dsl.JvmTarget
import org.jetbrains.kotlin.gradle.dsl.KotlinAndroidProjectExtension

private val Project.android get() = extensions.getByName<BaseExtension>("android")
private val BaseExtension.lint get() = (this as CommonExtension<*, *, *, *, *, *>).lint

val Project.currentFlavor get() = gradle.startParameter.taskNames.let { tasks ->
    when {
        tasks.any { it.contains("Release", ignoreCase = true) } -> "release"
        tasks.any { it.contains("Debug", ignoreCase = true) } -> "debug"
        else -> "debug".also {
            println("Warning: No match found for $tasks")
        }
    }
}

fun Project.setupCommon() {
    val javaVersion = JavaVersion.VERSION_11
    android.apply {
        compileSdkVersion(36)
        defaultConfig {
            minSdk = 23
            targetSdk = 36
            testInstrumentationRunner = "androidx.test.runner.AndroidJUnitRunner"
        }
        compileOptions {
            sourceCompatibility = javaVersion
            targetCompatibility = javaVersion
        }
        lint.apply {
            warning += "ExtraTranslation"
            warning += "ImpliedQuantity"
            informational += "MissingQuantity"
            informational += "MissingTranslation"
        }
    }
    extensions.getByName<KotlinAndroidProjectExtension>("kotlin").compilerOptions.jvmTarget
        .set(JvmTarget.fromTarget(javaVersion.toString()))
}

fun Project.setupCore() {
    setupCommon()
    android.apply {
        defaultConfig {
            versionCode = 5030550
            versionName = "5.3.5-nightly"
        }
        compileOptions.isCoreLibraryDesugaringEnabled = true
        lint.apply {
            disable += "BadConfigurationProvider"
            warning += "RestrictedApi"
            disable += "UseAppTint"
        }
        buildFeatures.buildConfig = true
    }
}

fun Project.setupApp() {
    setupCore()

    android.apply {
        defaultConfig.resourceConfigurations.addAll(listOf(
            "ar",
            "de",
            "es",
            "fa",
            "fr",
            "ja",
            "ko",
            "ru",
            "tr",
            "uk",
            "zh-rCN",
            "zh-rTW",
        ))
        buildTypes {
            getByName("debug") {
                isPseudoLocalesEnabled = true
                packagingOptions.doNotStrip("**/libsslocal.so")
            }
            getByName("release") {
                isShrinkResources = true
                isMinifyEnabled = true
                proguardFile(getDefaultProguardFile("proguard-android.txt"))
            }
        }
        lint.disable += "RemoveWorkManagerInitializer"
        packagingOptions.jniLibs.useLegacyPackaging = true
        splits.abi {
            isEnable = true
            isUniversalApk = true
        }
    }

    dependencies.add("implementation", project(":core"))
}


================================================
FILE: core/.gitignore
================================================
/build
/.cxx/


================================================
FILE: core/build.gradle.kts
================================================
import com.android.build.gradle.internal.tasks.factory.dependsOn

plugins {
    id("com.android.library")
    id("com.google.devtools.ksp")
    id("org.mozilla.rust-android-gradle.rust-android")
    kotlin("android")
    id("kotlin-parcelize")
}

setupCore()

val allAbis = mapOf("arm" to "armeabi-v7a", "arm64" to "arm64-v8a", "x86" to "x86", "x86_64" to "x86_64")
val targetAbi = findProperty("TARGET_ABI")?.toString()

android {
    namespace = "com.github.shadowsocks.core"

    defaultConfig {
        consumerProguardFiles("proguard-rules.pro")

        externalNativeBuild.ndkBuild {
            val abis = if (targetAbi != null) listOf(allAbis.getValue(targetAbi)) else allAbis.values.toList()
            abiFilters(*abis.toTypedArray())
            arguments("-j${Runtime.getRuntime().availableProcessors()}")
        }

        ksp {
            arg("room.incremental", "true")
            arg("room.schemaLocation", "$projectDir/schemas")
        }
    }

    externalNativeBuild.ndkBuild.path("src/main/jni/Android.mk")

    sourceSets.getByName("androidTest") {
        assets.setSrcDirs(assets.srcDirs + files("$projectDir/schemas"))
    }

    buildFeatures.aidl = true
}

cargo {
    module = "src/main/rust/shadowsocks-rust"
    libname = "sslocal"
    targets = if (targetAbi != null) listOf(targetAbi) else listOf("arm", "arm64", "x86", "x86_64")
    profile = findProperty("CARGO_PROFILE")?.toString() ?: currentFlavor
    extraCargoBuildArguments = listOf("--bin", libname!!)
    featureSpec.noDefaultBut(arrayOf(
        "stream-cipher",
        "aead-cipher-extra",
        "logging",
        "local-flow-stat",
        "local-dns",
        "aead-cipher-2022",
    ))
    exec = { spec, toolchain ->
        run {
            try {
                Runtime.getRuntime().exec(arrayOf("python3", "-V"))
                spec.environment("RUST_ANDROID_GRADLE_PYTHON_COMMAND", "python3")
                project.logger.lifecycle("Python 3 detected.")
            } catch (e: java.io.IOException) {
                project.logger.lifecycle("No python 3 detected.")
                try {
                    Runtime.getRuntime().exec(arrayOf("python", "-V"))
                    spec.environment("RUST_ANDROID_GRADLE_PYTHON_COMMAND", "python")
                    project.logger.lifecycle("Python detected.")
                } catch (e: java.io.IOException) {
                    throw GradleException("No any python version detected. You should install the python first to compile project.")
                }
            }
            // https://developer.android.com/guide/practices/page-sizes#other-build-systems
            spec.environment("RUST_ANDROID_GRADLE_CC_LINK_ARG", "-Wl,-z,max-page-size=16384,-soname,lib$libname.so")
            spec.environment("RUST_ANDROID_GRADLE_LINKER_WRAPPER_PY", "$projectDir/$module/../linker-wrapper.py")
            spec.environment("RUST_ANDROID_GRADLE_TARGET", "target/${toolchain.target}/$profile/lib$libname.so")
        }
    }
}

tasks.whenTaskAdded {
    when (name) {
        "mergeDebugJniLibFolders", "mergeReleaseJniLibFolders" -> {
            dependsOn("cargoBuild")
            inputs.dir(layout.buildDirectory.dir("rustJniLibs/android"))
        }
    }
}

tasks.register<Exec>("cargoClean") {
    executable("cargo")     // cargo.cargoCommand
    args("clean")
    workingDir("$projectDir/${cargo.module}")
}
tasks.clean.dependsOn("cargoClean")

dependencies {
    api(project(":plugin"))
    api(libs.androidx.core.ktx)
    api(libs.androidx.lifecycle.livedata.core.ktx)
    api(libs.androidx.preference)
    api(libs.androidx.room.runtime)
    api(libs.androidx.work.multiprocess)
    api(libs.androidx.work.runtime.ktx)
    api(libs.dnsjava)
    api(libs.firebase.analytics)
    api(libs.firebase.crashlytics)
    api(libs.kotlinx.coroutines.android)
    api(libs.kotlinx.coroutines.play.services)
    api(libs.material)
    api(libs.play.services.oss.licenses)
    api(libs.timber)
    coreLibraryDesugaring(libs.desugar)
    ksp(libs.androidx.room.compiler)
    testImplementation(libs.junit)
    androidTestImplementation(libs.androidx.espresso.core)
    androidTestImplementation(libs.androidx.junit.ktx)
    androidTestImplementation(libs.androidx.room.testing)
    androidTestImplementation(libs.androidx.test.runner)
}


================================================
FILE: core/gfwlist/gen.pl
================================================
#!/usr/bin/env perl
## ArchLinux install package via pacman: perl-net-cidr-lite
use strict;
use warnings;
use Net::CIDR::Lite;
my $cidr = Net::CIDR::Lite->new;
while (my $line=<>) {
    $cidr->add($line);
}
foreach my $line( @{$cidr->list} ) {
    print "<item>$line</item>\n";
}


================================================
FILE: core/gfwlist/gen.py
================================================
#!/usr/bin/python
# -*- encoding: utf8 -*-

import sys

import IPy


def main():
    china_list_set = IPy.IPSet()
    for line in sys.stdin:
        china_list_set.add(IPy.IP(line))

    # 输出结果
    for ip in china_list_set:
        print '<item>' + str(ip) + '</item>'


if __name__ == "__main__":
    main()


================================================
FILE: core/gfwlist/parse.py
================================================
#!/usr/bin/python
# -*- coding: utf-8 -*-

import pkgutil
import urlparse
import socket
import logging
from argparse import ArgumentParser
from datetime import date

__all__ = ['main']


def parse_args():
    parser = ArgumentParser()
    parser.add_argument('-i', '--input', dest='input', required=True,
                      help='path to gfwlist', metavar='GFWLIST')
    parser.add_argument('-f', '--file', dest='output', required=True,
                      help='path to output acl', metavar='ACL')
    return parser.parse_args()


def decode_gfwlist(content):
    # decode base64 if have to
    try:
        return content.decode('base64')
    except:
        return content


def get_hostname(something):
    try:
        # quite enough for GFW
        if not something.startswith('http:'):
            something = 'http://' + something
        r = urlparse.urlparse(something)
        return r.hostname
    except Exception as e:
        logging.error(e) 
        return None


def add_domain_to_set(s, something):
    hostname = get_hostname(something)
    if hostname is not None:
        if hostname.startswith('.'):
            hostname = hostname.lstrip('.')
        if hostname.endswith('/'):
            hostname = hostname.rstrip('/')
        if hostname:
            s.add(hostname)


def parse_gfwlist(content):
    gfwlist = content.splitlines(False)
    domains = set()
    for line in gfwlist:
        if line.find('.*') >= 0:
            continue
        elif line.find('*') >= 0:
            line = line.replace('*', '/')
        if line.startswith('!'):
            continue
        elif line.startswith('['):
            continue
        elif line.startswith('@'):
            # ignore white list
            continue
        elif line.startswith('||'):
            add_domain_to_set(domains, line.lstrip('||'))
        elif line.startswith('|'):
            add_domain_to_set(domains, line.lstrip('|'))
        elif line.startswith('.'):
            add_domain_to_set(domains, line.lstrip('.'))
        else:
            add_domain_to_set(domains, line)
    # TODO: reduce ['www.google.com', 'google.com'] to ['google.com']
    return domains


def generate_acl(domains):
    header ="""#
# GFW list from https://github.com/gfwlist/gfwlist/blob/master/gfwlist.txt
# updated on DATE
#

[bypass_all]

[proxy_list]

"""
    header = header.replace('DATE', str(date.today()))
    proxy_content = ""
    ip_content = ""

    for domain in sorted(domains):
        try:
            socket.inet_aton(domain)
            ip_content += (domain + "\n")
        except socket.error:
            domain = domain.replace('.', '\.')
            proxy_content += ('(?:^|\.)' + domain + '$\n')

    proxy_content = header + ip_content + proxy_content

    return proxy_content


def main():
    args = parse_args()
    with open(args.input, 'rb') as f:
        content = f.read()
    content = decode_gfwlist(content)
    domains = parse_gfwlist(content)
    acl_content = generate_acl(domains)
    with open(args.output, 'wb') as f:
        f.write(acl_content)

if __name__ == '__main__':
    main()



================================================
FILE: core/proguard-rules.pro
================================================
# Add project specific ProGuard rules here.
# You can control the set of applied configuration files using the
# proguardFiles setting in build.gradle.
#
# For more details, see
#   http://developer.android.com/guide/developing/tools/proguard.html

# If your project uses WebView with JS, uncomment the following
# and specify the fully qualified class name to the JavaScript interface
# class:
#-keepclassmembers class fqcn.of.javascript.interface.for.webview {
#   public *;
#}

# Uncomment this to preserve the line number information for
# debugging stack traces.
-keepattributes SourceFile,LineNumberTable
-dontobfuscate

-dontwarn lombok.Generated
-dontwarn org.slf4j.impl.StaticLoggerBinder
-dontwarn org.xbill.DNS.spi.DnsjavaInetAddressResolverProvider
-dontwarn sun.net.spi.nameservice.NameServiceDescriptor

# If you keep the line number information, uncomment this to
# hide the original source file name.
#-renamesourcefileattribute SourceFile


================================================
FILE: core/schemas/com.github.shadowsocks.database.PrivateDatabase/26.json
================================================
{
  "formatVersion": 1,
  "database": {
    "version": 26,
    "identityHash": "a69accf94393d71abdb60873d4ea74a2",
    "entities": [
      {
        "tableName": "Profile",
        "createSql": "CREATE TABLE IF NOT EXISTS `${TABLE_NAME}` (`id` INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, `name` TEXT, `host` TEXT NOT NULL, `remotePort` INTEGER NOT NULL, `password` TEXT NOT NULL, `method` TEXT NOT NULL, `route` TEXT NOT NULL, `remoteDns` TEXT NOT NULL, `proxyApps` INTEGER NOT NULL, `bypass` INTEGER NOT NULL, `udpdns` INTEGER NOT NULL, `ipv6` INTEGER NOT NULL, `individual` TEXT NOT NULL, `tx` INTEGER NOT NULL, `rx` INTEGER NOT NULL, `userOrder` INTEGER NOT NULL, `plugin` TEXT)",
        "fields": [
          {
            "fieldPath": "id",
            "columnName": "id",
            "affinity": "INTEGER",
            "notNull": true
          },
          {
            "fieldPath": "name",
            "columnName": "name",
            "affinity": "TEXT",
            "notNull": false
          },
          {
            "fieldPath": "host",
            "columnName": "host",
            "affinity": "TEXT",
            "notNull": true
          },
          {
            "fieldPath": "remotePort",
            "columnName": "remotePort",
            "affinity": "INTEGER",
            "notNull": true
          },
          {
            "fieldPath": "password",
            "columnName": "password",
            "affinity": "TEXT",
            "notNull": true
          },
          {
            "fieldPath": "method",
            "columnName": "method",
            "affinity": "TEXT",
            "notNull": true
          },
          {
            "fieldPath": "route",
            "columnName": "route",
            "affinity": "TEXT",
            "notNull": true
          },
          {
            "fieldPath": "remoteDns",
            "columnName": "remoteDns",
            "affinity": "TEXT",
            "notNull": true
          },
          {
            "fieldPath": "proxyApps",
            "columnName": "proxyApps",
            "affinity": "INTEGER",
            "notNull": true
          },
          {
            "fieldPath": "bypass",
            "columnName": "bypass",
            "affinity": "INTEGER",
            "notNull": true
          },
          {
            "fieldPath": "udpdns",
            "columnName": "udpdns",
            "affinity": "INTEGER",
            "notNull": true
          },
          {
            "fieldPath": "ipv6",
            "columnName": "ipv6",
            "affinity": "INTEGER",
            "notNull": true
          },
          {
            "fieldPath": "individual",
            "columnName": "individual",
            "affinity": "TEXT",
            "notNull": true
          },
          {
            "fieldPath": "tx",
            "columnName": "tx",
            "affinity": "INTEGER",
            "notNull": true
          },
          {
            "fieldPath": "rx",
            "columnName": "rx",
            "affinity": "INTEGER",
            "notNull": true
          },
          {
            "fieldPath": "userOrder",
            "columnName": "userOrder",
            "affinity": "INTEGER",
            "notNull": true
          },
          {
            "fieldPath": "plugin",
            "columnName": "plugin",
            "affinity": "TEXT",
            "notNull": false
          }
        ],
        "primaryKey": {
          "columnNames": [
            "id"
          ],
          "autoGenerate": true
        },
        "indices": [],
        "foreignKeys": []
      },
      {
        "tableName": "KeyValuePair",
        "createSql": "CREATE TABLE IF NOT EXISTS `${TABLE_NAME}` (`key` TEXT NOT NULL, `valueType` INTEGER NOT NULL, `value` BLOB NOT NULL, PRIMARY KEY(`key`))",
        "fields": [
          {
            "fieldPath": "key",
            "columnName": "key",
            "affinity": "TEXT",
            "notNull": true
          },
          {
            "fieldPath": "valueType",
            "columnName": "valueType",
            "affinity": "INTEGER",
            "notNull": true
          },
          {
            "fieldPath": "value",
            "columnName": "value",
            "affinity": "BLOB",
            "notNull": true
          }
        ],
        "primaryKey": {
          "columnNames": [
            "key"
          ],
          "autoGenerate": false
        },
        "indices": [],
        "foreignKeys": []
      }
    ],
    "setupQueries": [
      "CREATE TABLE IF NOT EXISTS room_master_table (id INTEGER PRIMARY KEY,identity_hash TEXT)",
      "INSERT OR REPLACE INTO room_master_table (id,identity_hash) VALUES(42, \"a69accf94393d71abdb60873d4ea74a2\")"
    ]
  }
}

================================================
FILE: core/schemas/com.github.shadowsocks.database.PrivateDatabase/27.json
================================================
{
  "formatVersion": 1,
  "database": {
    "version": 27,
    "identityHash": "8743c2e56bdbdabca7fcb89dff5434ba",
    "entities": [
      {
        "tableName": "Profile",
        "createSql": "CREATE TABLE IF NOT EXISTS `${TABLE_NAME}` (`id` INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, `name` TEXT, `host` TEXT NOT NULL, `remotePort` INTEGER NOT NULL, `password` TEXT NOT NULL, `method` TEXT NOT NULL, `route` TEXT NOT NULL, `remoteDns` TEXT NOT NULL, `proxyApps` INTEGER NOT NULL, `bypass` INTEGER NOT NULL, `udpdns` INTEGER NOT NULL, `ipv6` INTEGER NOT NULL, `individual` TEXT NOT NULL, `tx` INTEGER NOT NULL, `rx` INTEGER NOT NULL, `userOrder` INTEGER NOT NULL, `plugin` TEXT, `udpFallback` INTEGER)",
        "fields": [
          {
            "fieldPath": "id",
            "columnName": "id",
            "affinity": "INTEGER",
            "notNull": true
          },
          {
            "fieldPath": "name",
            "columnName": "name",
            "affinity": "TEXT",
            "notNull": false
          },
          {
            "fieldPath": "host",
            "columnName": "host",
            "affinity": "TEXT",
            "notNull": true
          },
          {
            "fieldPath": "remotePort",
            "columnName": "remotePort",
            "affinity": "INTEGER",
            "notNull": true
          },
          {
            "fieldPath": "password",
            "columnName": "password",
            "affinity": "TEXT",
            "notNull": true
          },
          {
            "fieldPath": "method",
            "columnName": "method",
            "affinity": "TEXT",
            "notNull": true
          },
          {
            "fieldPath": "route",
            "columnName": "route",
            "affinity": "TEXT",
            "notNull": true
          },
          {
            "fieldPath": "remoteDns",
            "columnName": "remoteDns",
            "affinity": "TEXT",
            "notNull": true
          },
          {
            "fieldPath": "proxyApps",
            "columnName": "proxyApps",
            "affinity": "INTEGER",
            "notNull": true
          },
          {
            "fieldPath": "bypass",
            "columnName": "bypass",
            "affinity": "INTEGER",
            "notNull": true
          },
          {
            "fieldPath": "udpdns",
            "columnName": "udpdns",
            "affinity": "INTEGER",
            "notNull": true
          },
          {
            "fieldPath": "ipv6",
            "columnName": "ipv6",
            "affinity": "INTEGER",
            "notNull": true
          },
          {
            "fieldPath": "individual",
            "columnName": "individual",
            "affinity": "TEXT",
            "notNull": true
          },
          {
            "fieldPath": "tx",
            "columnName": "tx",
            "affinity": "INTEGER",
            "notNull": true
          },
          {
            "fieldPath": "rx",
            "columnName": "rx",
            "affinity": "INTEGER",
            "notNull": true
          },
          {
            "fieldPath": "userOrder",
            "columnName": "userOrder",
            "affinity": "INTEGER",
            "notNull": true
          },
          {
            "fieldPath": "plugin",
            "columnName": "plugin",
            "affinity": "TEXT",
            "notNull": false
          },
          {
            "fieldPath": "udpFallback",
            "columnName": "udpFallback",
            "affinity": "INTEGER",
            "notNull": false
          }
        ],
        "primaryKey": {
          "columnNames": [
            "id"
          ],
          "autoGenerate": true
        },
        "indices": [],
        "foreignKeys": []
      },
      {
        "tableName": "KeyValuePair",
        "createSql": "CREATE TABLE IF NOT EXISTS `${TABLE_NAME}` (`key` TEXT NOT NULL, `valueType` INTEGER NOT NULL, `value` BLOB NOT NULL, PRIMARY KEY(`key`))",
        "fields": [
          {
            "fieldPath": "key",
            "columnName": "key",
            "affinity": "TEXT",
            "notNull": true
          },
          {
            "fieldPath": "valueType",
            "columnName": "valueType",
            "affinity": "INTEGER",
            "notNull": true
          },
          {
            "fieldPath": "value",
            "columnName": "value",
            "affinity": "BLOB",
            "notNull": true
          }
        ],
        "primaryKey": {
          "columnNames": [
            "key"
          ],
          "autoGenerate": false
        },
        "indices": [],
        "foreignKeys": []
      }
    ],
    "setupQueries": [
      "CREATE TABLE IF NOT EXISTS room_master_table (id INTEGER PRIMARY KEY,identity_hash TEXT)",
      "INSERT OR REPLACE INTO room_master_table (id,identity_hash) VALUES(42, \"8743c2e56bdbdabca7fcb89dff5434ba\")"
    ]
  }
}

================================================
FILE: core/schemas/com.github.shadowsocks.database.PrivateDatabase/28.json
================================================
{
  "formatVersion": 1,
  "database": {
    "version": 28,
    "identityHash": "b60ecca4d684ffe73173478bffd50a17",
    "entities": [
      {
        "tableName": "Profile",
        "createSql": "CREATE TABLE IF NOT EXISTS `${TABLE_NAME}` (`id` INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, `name` TEXT, `host` TEXT NOT NULL, `remotePort` INTEGER NOT NULL, `password` TEXT NOT NULL, `method` TEXT NOT NULL, `route` TEXT NOT NULL, `remoteDns` TEXT NOT NULL, `proxyApps` INTEGER NOT NULL, `bypass` INTEGER NOT NULL, `udpdns` INTEGER NOT NULL, `ipv6` INTEGER NOT NULL, `metered` INTEGER NOT NULL, `individual` TEXT NOT NULL, `tx` INTEGER NOT NULL, `rx` INTEGER NOT NULL, `userOrder` INTEGER NOT NULL, `plugin` TEXT, `udpFallback` INTEGER)",
        "fields": [
          {
            "fieldPath": "id",
            "columnName": "id",
            "affinity": "INTEGER",
            "notNull": true
          },
          {
            "fieldPath": "name",
            "columnName": "name",
            "affinity": "TEXT",
            "notNull": false
          },
          {
            "fieldPath": "host",
            "columnName": "host",
            "affinity": "TEXT",
            "notNull": true
          },
          {
            "fieldPath": "remotePort",
            "columnName": "remotePort",
            "affinity": "INTEGER",
            "notNull": true
          },
          {
            "fieldPath": "password",
            "columnName": "password",
            "affinity": "TEXT",
            "notNull": true
          },
          {
            "fieldPath": "method",
            "columnName": "method",
            "affinity": "TEXT",
            "notNull": true
          },
          {
            "fieldPath": "route",
            "columnName": "route",
            "affinity": "TEXT",
            "notNull": true
          },
          {
            "fieldPath": "remoteDns",
            "columnName": "remoteDns",
            "affinity": "TEXT",
            "notNull": true
          },
          {
            "fieldPath": "proxyApps",
            "columnName": "proxyApps",
            "affinity": "INTEGER",
            "notNull": true
          },
          {
            "fieldPath": "bypass",
            "columnName": "bypass",
            "affinity": "INTEGER",
            "notNull": true
          },
          {
            "fieldPath": "udpdns",
            "columnName": "udpdns",
            "affinity": "INTEGER",
            "notNull": true
          },
          {
            "fieldPath": "ipv6",
            "columnName": "ipv6",
            "affinity": "INTEGER",
            "notNull": true
          },
          {
            "fieldPath": "metered",
            "columnName": "metered",
            "affinity": "INTEGER",
            "notNull": true
          },
          {
            "fieldPath": "individual",
            "columnName": "individual",
            "affinity": "TEXT",
            "notNull": true
          },
          {
            "fieldPath": "tx",
            "columnName": "tx",
            "affinity": "INTEGER",
            "notNull": true
          },
          {
            "fieldPath": "rx",
            "columnName": "rx",
            "affinity": "INTEGER",
            "notNull": true
          },
          {
            "fieldPath": "userOrder",
            "columnName": "userOrder",
            "affinity": "INTEGER",
            "notNull": true
          },
          {
            "fieldPath": "plugin",
            "columnName": "plugin",
            "affinity": "TEXT",
            "notNull": false
          },
          {
            "fieldPath": "udpFallback",
            "columnName": "udpFallback",
            "affinity": "INTEGER",
            "notNull": false
          }
        ],
        "primaryKey": {
          "columnNames": [
            "id"
          ],
          "autoGenerate": true
        },
        "indices": [],
        "foreignKeys": []
      },
      {
        "tableName": "KeyValuePair",
        "createSql": "CREATE TABLE IF NOT EXISTS `${TABLE_NAME}` (`key` TEXT NOT NULL, `valueType` INTEGER NOT NULL, `value` BLOB NOT NULL, PRIMARY KEY(`key`))",
        "fields": [
          {
            "fieldPath": "key",
            "columnName": "key",
            "affinity": "TEXT",
            "notNull": true
          },
          {
            "fieldPath": "valueType",
            "columnName": "valueType",
            "affinity": "INTEGER",
            "notNull": true
          },
          {
            "fieldPath": "value",
            "columnName": "value",
            "affinity": "BLOB",
            "notNull": true
          }
        ],
        "primaryKey": {
          "columnNames": [
            "key"
          ],
          "autoGenerate": false
        },
        "indices": [],
        "foreignKeys": []
      }
    ],
    "setupQueries": [
      "CREATE TABLE IF NOT EXISTS room_master_table (id INTEGER PRIMARY KEY,identity_hash TEXT)",
      "INSERT OR REPLACE INTO room_master_table (id,identity_hash) VALUES(42, \"b60ecca4d684ffe73173478bffd50a17\")"
    ]
  }
}

================================================
FILE: core/schemas/com.github.shadowsocks.database.PrivateDatabase/29.json
================================================
{
  "formatVersion": 1,
  "database": {
    "version": 29,
    "identityHash": "5b5c55a1277c63e14416316f9198ed43",
    "entities": [
      {
        "tableName": "Profile",
        "createSql": "CREATE TABLE IF NOT EXISTS `${TABLE_NAME}` (`id` INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, `name` TEXT, `host` TEXT NOT NULL, `remotePort` INTEGER NOT NULL, `password` TEXT NOT NULL, `method` TEXT NOT NULL, `route` TEXT NOT NULL, `remoteDns` TEXT NOT NULL, `proxyApps` INTEGER NOT NULL, `bypass` INTEGER NOT NULL, `udpdns` INTEGER NOT NULL, `ipv6` INTEGER NOT NULL, `metered` INTEGER NOT NULL, `individual` TEXT NOT NULL, `plugin` TEXT, `udpFallback` INTEGER, `subscription` INTEGER NOT NULL, `tx` INTEGER NOT NULL, `rx` INTEGER NOT NULL, `userOrder` INTEGER NOT NULL)",
        "fields": [
          {
            "fieldPath": "id",
            "columnName": "id",
            "affinity": "INTEGER",
            "notNull": true
          },
          {
            "fieldPath": "name",
            "columnName": "name",
            "affinity": "TEXT",
            "notNull": false
          },
          {
            "fieldPath": "host",
            "columnName": "host",
            "affinity": "TEXT",
            "notNull": true
          },
          {
            "fieldPath": "remotePort",
            "columnName": "remotePort",
            "affinity": "INTEGER",
            "notNull": true
          },
          {
            "fieldPath": "password",
            "columnName": "password",
            "affinity": "TEXT",
            "notNull": true
          },
          {
            "fieldPath": "method",
            "columnName": "method",
            "affinity": "TEXT",
            "notNull": true
          },
          {
            "fieldPath": "route",
            "columnName": "route",
            "affinity": "TEXT",
            "notNull": true
          },
          {
            "fieldPath": "remoteDns",
            "columnName": "remoteDns",
            "affinity": "TEXT",
            "notNull": true
          },
          {
            "fieldPath": "proxyApps",
            "columnName": "proxyApps",
            "affinity": "INTEGER",
            "notNull": true
          },
          {
            "fieldPath": "bypass",
            "columnName": "bypass",
            "affinity": "INTEGER",
            "notNull": true
          },
          {
            "fieldPath": "udpdns",
            "columnName": "udpdns",
            "affinity": "INTEGER",
            "notNull": true
          },
          {
            "fieldPath": "ipv6",
            "columnName": "ipv6",
            "affinity": "INTEGER",
            "notNull": true
          },
          {
            "fieldPath": "metered",
            "columnName": "metered",
            "affinity": "INTEGER",
            "notNull": true
          },
          {
            "fieldPath": "individual",
            "columnName": "individual",
            "affinity": "TEXT",
            "notNull": true
          },
          {
            "fieldPath": "plugin",
            "columnName": "plugin",
            "affinity": "TEXT",
            "notNull": false
          },
          {
            "fieldPath": "udpFallback",
            "columnName": "udpFallback",
            "affinity": "INTEGER",
            "notNull": false
          },
          {
            "fieldPath": "subscription",
            "columnName": "subscription",
            "affinity": "INTEGER",
            "notNull": true
          },
          {
            "fieldPath": "tx",
            "columnName": "tx",
            "affinity": "INTEGER",
            "notNull": true
          },
          {
            "fieldPath": "rx",
            "columnName": "rx",
            "affinity": "INTEGER",
            "notNull": true
          },
          {
            "fieldPath": "userOrder",
            "columnName": "userOrder",
            "affinity": "INTEGER",
            "notNull": true
          }
        ],
        "primaryKey": {
          "columnNames": [
            "id"
          ],
          "autoGenerate": true
        },
        "indices": [],
        "foreignKeys": []
      },
      {
        "tableName": "KeyValuePair",
        "createSql": "CREATE TABLE IF NOT EXISTS `${TABLE_NAME}` (`key` TEXT NOT NULL, `valueType` INTEGER NOT NULL, `value` BLOB NOT NULL, PRIMARY KEY(`key`))",
        "fields": [
          {
            "fieldPath": "key",
            "columnName": "key",
            "affinity": "TEXT",
            "notNull": true
          },
          {
            "fieldPath": "valueType",
            "columnName": "valueType",
            "affinity": "INTEGER",
            "notNull": true
          },
          {
            "fieldPath": "value",
            "columnName": "value",
            "affinity": "BLOB",
            "notNull": true
          }
        ],
        "primaryKey": {
          "columnNames": [
            "key"
          ],
          "autoGenerate": false
        },
        "indices": [],
        "foreignKeys": []
      }
    ],
    "views": [],
    "setupQueries": [
      "CREATE TABLE IF NOT EXISTS room_master_table (id INTEGER PRIMARY KEY,identity_hash TEXT)",
      "INSERT OR REPLACE INTO room_master_table (id,identity_hash) VALUES(42, '5b5c55a1277c63e14416316f9198ed43')"
    ]
  }
}

================================================
FILE: core/schemas/com.github.shadowsocks.database.PublicDatabase/3.json
================================================
{
  "formatVersion": 1,
  "database": {
    "version": 3,
    "identityHash": "f1aab1fb633378621635c344dbc8ac7b",
    "entities": [
      {
        "tableName": "KeyValuePair",
        "createSql": "CREATE TABLE IF NOT EXISTS `${TABLE_NAME}` (`key` TEXT NOT NULL, `valueType` INTEGER NOT NULL, `value` BLOB NOT NULL, PRIMARY KEY(`key`))",
        "fields": [
          {
            "fieldPath": "key",
            "columnName": "key",
            "affinity": "TEXT",
            "notNull": true
          },
          {
            "fieldPath": "valueType",
            "columnName": "valueType",
            "affinity": "INTEGER",
            "notNull": true
          },
          {
            "fieldPath": "value",
            "columnName": "value",
            "affinity": "BLOB",
            "notNull": true
          }
        ],
        "primaryKey": {
          "columnNames": [
            "key"
          ],
          "autoGenerate": false
        },
        "indices": [],
        "foreignKeys": []
      }
    ],
    "setupQueries": [
      "CREATE TABLE IF NOT EXISTS room_master_table (id INTEGER PRIMARY KEY,identity_hash TEXT)",
      "INSERT OR REPLACE INTO room_master_table (id,identity_hash) VALUES(42, \"f1aab1fb633378621635c344dbc8ac7b\")"
    ]
  }
}

================================================
FILE: core/src/androidTest/java/com/github/shadowsocks/acl/AclTest.kt
================================================
/*******************************************************************************
 *                                                                             *
 *  Copyright (C) 2017 by Max Lv <max.c.lv@gmail.com>                          *
 *  Copyright (C) 2017 by Mygod Studio <contact-shadowsocks-android@mygod.be>  *
 *                                                                             *
 *  This program is free software: you can redistribute it and/or modify       *
 *  it under the terms of the GNU General Public License as published by       *
 *  the Free Software Foundation, either version 3 of the License, or          *
 *  (at your option) any later version.                                        *
 *                                                                             *
 *  This program is distributed in the hope that it will be useful,            *
 *  but WITHOUT ANY WARRANTY; without even the implied warranty of             *
 *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the              *
 *  GNU General Public License for more details.                               *
 *                                                                             *
 *  You should have received a copy of the GNU General Public License          *
 *  along with this program. If not, see <http://www.gnu.org/licenses/>.       *
 *                                                                             *
 *******************************************************************************/

package com.github.shadowsocks.acl

import org.junit.Assert
import org.junit.Test

class AclTest {
    companion object {
        const val BYPASS_BASE = """[bypass_all]
[proxy_list]"""
        const val INPUT1 = """$BYPASS_BASE
1.0.1.0/24
2000::/8
(?:^|\.)4tern\.com$
"""
        const val INPUT2 = """[proxy_all]
[bypass_list]
10.3.0.0/16
10.0.0.0/8
(?:^|\.)chrome\.com$

[proxy_list]
# ignored
0.0.0.0/0
(?:^|\.)about\.google$
"""
    }

    @Test
    fun parse() {
        Assert.assertEquals(INPUT1, Acl().fromReader(INPUT1.reader()).toString())
        Assert.assertEquals(INPUT2, Acl().fromReader(INPUT2.reader()).toString())
    }
}


================================================
FILE: core/src/androidTest/java/com/github/shadowsocks/database/MigrationTest.kt
================================================
/*******************************************************************************
 *                                                                             *
 *  Copyright (C) 2019 by Max Lv <max.c.lv@gmail.com>                          *
 *  Copyright (C) 2019 by Mygod Studio <contact-shadowsocks-android@mygod.be>  *
 *                                                                             *
 *  This program is free software: you can redistribute it and/or modify       *
 *  it under the terms of the GNU General Public License as published by       *
 *  the Free Software Foundation, either version 3 of the License, or          *
 *  (at your option) any later version.                                        *
 *                                                                             *
 *  This program is distributed in the hope that it will be useful,            *
 *  but WITHOUT ANY WARRANTY; without even the implied warranty of             *
 *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the              *
 *  GNU General Public License for more details.                               *
 *                                                                             *
 *  You should have received a copy of the GNU General Public License          *
 *  along with this program. If not, see <http://www.gnu.org/licenses/>.       *
 *                                                                             *
 *******************************************************************************/

package com.github.shadowsocks.database

import androidx.room.testing.MigrationTestHelper
import androidx.sqlite.db.framework.FrameworkSQLiteOpenHelperFactory
import androidx.test.ext.junit.runners.AndroidJUnit4
import androidx.test.platform.app.InstrumentationRegistry
import org.junit.Rule
import org.junit.Test
import org.junit.runner.RunWith
import java.io.IOException

@RunWith(AndroidJUnit4::class)
class MigrationTest {
    companion object {
        private const val TEST_DB = "migration-test"
    }

    @get:Rule
    val privateDatabase = MigrationTestHelper(InstrumentationRegistry.getInstrumentation(),
            PrivateDatabase::class.java.canonicalName, FrameworkSQLiteOpenHelperFactory())

    @Test
    @Throws(IOException::class)
    fun migrate27() {
        val db = privateDatabase.createDatabase(TEST_DB, 26)
        db.close()
        privateDatabase.runMigrationsAndValidate(TEST_DB, 27, true, PrivateDatabase.Migration27)
    }
    @Test
    @Throws(IOException::class)
    fun migrate28() {
        val db = privateDatabase.createDatabase(TEST_DB, 27)
        db.close()
        privateDatabase.runMigrationsAndValidate(TEST_DB, 28, true, PrivateDatabase.Migration28)
    }
}


================================================
FILE: core/src/androidTest/java/com/github/shadowsocks/database/ProfileTest.kt
================================================
/*******************************************************************************
 *                                                                             *
 *  Copyright (C) 2017 by Max Lv <max.c.lv@gmail.com>                          *
 *  Copyright (C) 2017 by Mygod Studio <contact-shadowsocks-android@mygod.be>  *
 *                                                                             *
 *  This program is free software: you can redistribute it and/or modify       *
 *  it under the terms of the GNU General Public License as published by       *
 *  the Free Software Foundation, either version 3 of the License, or          *
 *  (at your option) any later version.                                        *
 *                                                                             *
 *  This program is distributed in the hope that it will be useful,            *
 *  but WITHOUT ANY WARRANTY; without even the implied warranty of             *
 *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the              *
 *  GNU General Public License for more details.                               *
 *                                                                             *
 *  You should have received a copy of the GNU General Public License          *
 *  along with this program. If not, see <http://www.gnu.org/licenses/>.       *
 *                                                                             *
 *******************************************************************************/

package com.github.shadowsocks.database

import androidx.core.net.toUri
import org.junit.Assert
import org.junit.Test

class ProfileTest {
    @Test
    fun parsing() {
        val results = Profile.findAllUrls("garble ss://YmYtY2ZiOnRlc3RAMTkyLjE2OC4xMDAuMTo4ODg4#example-server garble")
                .toList()
        Assert.assertEquals(1, results.size)
        Assert.assertEquals("ss://YmYtY2ZiOnRlc3Q@192.168.100.1:8888#example-server".toUri(),
                results.single().toUri())
    }
}


================================================
FILE: core/src/androidTest/java/com/github/shadowsocks/net/SubnetTest.kt
================================================
package com.github.shadowsocks.net

import android.net.InetAddresses.parseNumericAddress
import org.junit.Assert
import org.junit.Test
import java.net.InetAddress

class SubnetTest {
    @Test
    fun parsingAndEquals() {
        Assert.assertEquals(Subnet(InetAddress.getByName("1.10.11.12"), 25), Subnet.fromString("1.10.11.12/25"))
        Assert.assertEquals(Subnet(InetAddress.getByName("12.118.130.86"), 32), Subnet.fromString("12.118.130.86"))
        Assert.assertEquals(Subnet(InetAddress.getByName("caec:cec6:c4ef:bb7b:1a78:d055:216d:3a78"), 96),
                Subnet.fromString("caec:cec6:c4ef:bb7b:1a78:d055:216d:3a78/96"))
        Assert.assertEquals(Subnet(InetAddress.getByName("be37:44bd:8630:7a0:2a3d:ff95:dd33:42f0"), 128),
                Subnet.fromString("be37:44bd:8630:7a0:2a3d:ff95:dd33:42f0"))
        Assert.assertNotEquals(Subnet.fromString("1.2.3.4/12"), Subnet.fromString("1.2.3.5/12"))
    }

    @Test
    fun invalidParsings() {
        Assert.assertEquals(null, Subnet.fromString("1.2.3.456"))
        Assert.assertEquals(null, Subnet.fromString("ffff::f0000"))
        Assert.assertEquals(null, Subnet.fromString("caec:cec6:c4ef:bb7b:1a78:d055:216d:3a78/129"))
        Assert.assertEquals(null, Subnet.fromString("caec:cec6:c4ef:bb7b:1a78:d055:216d:3a78/129"))
        Assert.assertEquals(null, Subnet.fromString("caec:cec6:c4ef:bb7b:1a78:d055:216d:3a78/-99"))
        Assert.assertEquals(null, Subnet.fromString("caec:cec6:c4ef:bb7b:1a78:d055:216d:3a78/1/0"))
    }

    @Test
    fun matching1() {
        val matcher = Subnet.fromString("1.10.11.12/25")!!.toImmutable()
        Assert.assertFalse(matcher.matches(parseNumericAddress("1.10.10.12").address))
        Assert.assertTrue(matcher.matches(parseNumericAddress("1.10.11.13").address))
        Assert.assertFalse(matcher.matches(parseNumericAddress("1.10.11.212").address))
    }

    @Test
    fun matching2() {
        val matcher = Subnet.fromString("14.208.0.0/12")!!.toImmutable()
        Assert.assertTrue(matcher.matches(parseNumericAddress("14.215.178.36").address))
        Assert.assertTrue(matcher.matches(parseNumericAddress("14.215.178.37").address))
        Assert.assertFalse(matcher.matches(parseNumericAddress("1.10.11.212").address))
    }
}


================================================
FILE: core/src/main/AndroidManifest.xml
================================================
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
          xmlns:tools="http://schemas.android.com/tools"
          android:installLocation="internalOnly">

    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>
    <uses-permission android:name="android.permission.CHANGE_NETWORK_STATE"/>
    <uses-permission android:name="android.permission.FOREGROUND_SERVICE"/>
    <uses-permission android:name="android.permission.FOREGROUND_SERVICE_SPECIAL_USE"/>
    <uses-permission android:name="android.permission.FOREGROUND_SERVICE_SYSTEM_EXEMPTED"/>
    <uses-permission android:name="android.permission.INTERNET"/>
    <uses-permission android:name="android.permission.POST_NOTIFICATIONS"/>
    <uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED"/>
    <uses-permission android:name="android.permission.WAKE_LOCK"/>
    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"
                     android:maxSdkVersion="28"/>

    <queries>
        <intent>
            <action android:name="com.github.shadowsocks.plugin.ACTION_NATIVE_PLUGIN" />
        </intent>
    </queries>

    <application
        android:icon="@mipmap/ic_launcher"
        android:allowBackup="true"
        android:enableOnBackInvokedCallback="true"
        android:extractNativeLibs="true"
        android:fullBackupContent="@xml/backup_descriptor"
        android:fullBackupOnly="true"
        android:hasFragileUserData="true"
        android:label="@string/app_name"
        android:supportsRtl="true"
        android:networkSecurityConfig="@xml/network_security_config"
        android:banner="@mipmap/banner">

        <meta-data android:name="android.webkit.WebView.EnableSafeBrowsing"
                   android:value="true" />
        <meta-data android:name="com.google.android.backup.api_key"
                   android:value="AEdPqrEAAAAI_zVxZthz2HDuz9toTvkYvL0L5GA-OjeUIfBeXg"/>

        <service
            android:name="com.github.shadowsocks.bg.VpnService"
            android:process=":bg"
            android:directBootAware="true"
            android:label="@string/app_name"
            android:permission="android.permission.BIND_VPN_SERVICE"
            android:foregroundServiceType="systemExempted"
            android:exported="false"
            tools:ignore="ForegroundServicePermission">
            <intent-filter>
                <action android:name="android.net.VpnService"/>
            </intent-filter>
        </service>

        <service
            android:name="com.github.shadowsocks.bg.TransproxyService"
            android:process=":bg"
            android:directBootAware="true"
            android:foregroundServiceType="specialUse"
            android:exported="false">
            <property
                android:name="android.app.PROPERTY_SPECIAL_USE_FGS_SUBTYPE"
                android:value="Proxy service that handles incoming SOCKS5 and Transproxy traffic" />
        </service>

        <service
            android:name="com.github.shadowsocks.bg.ProxyService"
            android:process=":bg"
            android:directBootAware="true"
            android:foregroundServiceType="specialUse"
            android:exported="false">
            <property
                android:name="android.app.PROPERTY_SPECIAL_USE_FGS_SUBTYPE"
                android:value="Proxy service that handles incoming SOCKS5 traffic" />
        </service>

        <service
            android:name="com.github.shadowsocks.subscription.SubscriptionService"
            android:exported="false">
        </service>

        <activity
            android:name="com.github.shadowsocks.UrlImportActivity"
            android:theme="@style/Theme.Shadowsocks.Translucent"
            android:exported="true"
            android:excludeFromRecents="true">
            <intent-filter>
                <action android:name="android.intent.action.VIEW"/>
                <category android:name="android.intent.category.DEFAULT"/>
                <category android:name="android.intent.category.BROWSABLE"/>
                <data android:scheme="ss"/>
            </intent-filter>
        </activity>

        <activity
            android:name="com.github.shadowsocks.VpnRequestActivity"
            android:theme="@style/Theme.Shadowsocks.Translucent"
            android:exported="false"
            android:excludeFromRecents="true"
            android:taskAffinity=""/>

        <receiver android:name="com.github.shadowsocks.BootReceiver"
                  android:process=":bg"
                  android:directBootAware="true"
                  android:exported="true"
                  android:enabled="false">
            <intent-filter>
                <action android:name="android.intent.action.BOOT_COMPLETED"/>
                <action android:name="android.intent.action.LOCKED_BOOT_COMPLETED" />
                <action android:name="android.intent.action.MY_PACKAGE_REPLACED" />
            </intent-filter>
        </receiver>

        <activity android:name="com.google.android.gms.oss.licenses.OssLicensesActivity"
                  android:theme="@style/Theme.Shadowsocks.ActionBar"/>
        <activity android:name="com.google.android.gms.oss.licenses.OssLicensesMenuActivity"
                  android:theme="@style/Theme.Shadowsocks.ActionBar"/>
        <service android:name="com.google.firebase.components.ComponentDiscoveryService"
                 android:directBootAware="true"/>
        <provider android:name="com.google.firebase.provider.FirebaseInitProvider"
                  tools:node="remove"/>
        <service android:name="androidx.room.MultiInstanceInvalidationService"
                 android:process=":bg"/>
    </application>
</manifest>


================================================
FILE: core/src/main/aidl/com/github/shadowsocks/aidl/IShadowsocksService.aidl
================================================
package com.github.shadowsocks.aidl;

import com.github.shadowsocks.aidl.IShadowsocksServiceCallback;

interface IShadowsocksService {
  int getState();
  String getProfileName();

  void registerCallback(in IShadowsocksServiceCallback cb);
  void startListeningForBandwidth(in IShadowsocksServiceCallback cb, long timeout);
  oneway void stopListeningForBandwidth(in IShadowsocksServiceCallback cb);
  oneway void unregisterCallback(in IShadowsocksServiceCallback cb);
}


================================================
FILE: core/src/main/aidl/com/github/shadowsocks/aidl/IShadowsocksServiceCallback.aidl
================================================
package com.github.shadowsocks.aidl;

import com.github.shadowsocks.aidl.TrafficStats;

oneway interface IShadowsocksServiceCallback {
  void stateChanged(int state, String profileName, String msg);
  void trafficUpdated(long profileId, in TrafficStats stats);
  // Traffic data has persisted to database, listener should refetch their data from database
  void trafficPersisted(long profileId);
}


================================================
FILE: core/src/main/aidl/com/github/shadowsocks/aidl/TrafficStats.aidl
================================================
package com.github.shadowsocks.aidl;

parcelable TrafficStats;


================================================
FILE: core/src/main/assets/acl/bypass-china.acl
================================================
[proxy_all]

[bypass_list]
1.0.1.0/24
1.0.2.0/23
1.0.8.0/21
1.0.32.0/19
1.1.0.0/24
1.1.2.0/23
1.1.4.0/22
1.1.8.0/21
1.1.16.0/20
1.1.32.0/19
1.2.0.0/23
1.2.2.0/24
1.2.4.0/22
1.2.8.0/21
1.2.16.0/20
1.2.32.0/19
1.2.64.0/18
1.3.0.0/16
1.4.1.0/24
1.4.2.0/23
1.4.4.0/22
1.4.8.0/21
1.4.16.0/20
1.4.32.0/19
1.4.64.0/18
1.8.0.0/16
1.10.0.0/21
1.10.8.0/23
1.10.11.0/24
1.10.12.0/22
1.10.16.0/20
1.10.32.0/19
1.10.64.0/18
1.12.0.0/14
1.24.0.0/13
1.45.0.0/16
1.48.0.0/14
1.56.0.0/13
1.68.0.0/14
1.80.0.0/12
1.116.0.0/14
1.180.0.0/14
1.184.0.0/15
1.188.0.0/14
1.192.0.0/13
1.202.0.0/15
1.204.0.0/14
14.0.0.0/21
14.0.12.0/22
14.1.0.0/22
14.1.24.0/22
14.1.96.0/22
14.1.108.0/22
14.16.0.0/12
14.102.128.0/22
14.102.156.0/22
14.102.180.0/22
14.103.0.0/16
14.104.0.0/13
14.112.0.0/12
14.130.0.0/15
14.134.0.0/15
14.144.0.0/12
14.192.60.0/22
14.192.76.0/22
14.196.0.0/15
14.204.0.0/15
14.208.0.0/12
27.0.128.0/21
27.0.160.0/21
27.0.188.0/22
27.0.204.0/22
27.0.208.0/21
27.8.0.0/13
27.16.0.0/12
27.34.232.0/21
27.36.0.0/14
27.40.0.0/13
27.50.40.0/21
27.50.128.0/17
27.54.72.0/21
27.54.152.0/21
27.54.192.0/18
27.98.208.0/20
27.98.224.0/19
27.99.128.0/17
27.103.0.0/16
27.106.128.0/18
27.106.204.0/22
27.109.32.0/19
27.109.124.0/22
27.112.0.0/18
27.112.80.0/20
27.112.112.0/21
27.113.128.0/18
27.115.0.0/17
27.116.44.0/22
27.121.72.0/21
27.121.120.0/21
27.128.0.0/15
27.131.220.0/22
27.144.0.0/16
27.148.0.0/14
27.152.0.0/13
27.184.0.0/13
27.192.0.0/11
27.224.0.0/14
36.0.0.0/22
36.0.8.0/21
36.0.16.0/20
36.0.32.0/19
36.0.64.0/18
36.0.128.0/17
36.1.0.0/16
36.4.0.0/14
36.16.0.0/12
36.32.0.0/14
36.36.0.0/16
36.37.0.0/19
36.37.36.0/23
36.37.39.0/24
36.37.40.0/21
36.37.48.0/20
36.40.0.0/13
36.48.0.0/15
36.51.0.0/16
36.56.0.0/13
36.96.0.0/11
36.128.0.0/10
36.192.0.0/11
36.248.0.0/14
36.254.0.0/16
36.255.116.0/22
36.255.128.0/22
36.255.164.0/22
36.255.172.0/22
36.255.176.0/22
39.0.0.0/24
39.0.2.0/23
39.0.4.0/22
39.0.8.0/21
39.0.16.0/20
39.0.32.0/19
39.0.64.0/18
39.0.128.0/17
39.64.0.0/11
39.96.0.0/13
39.104.0.0/14
39.108.0.0/16
39.128.0.0/10
40.72.0.0/15
40.125.128.0/17
40.126.64.0/18
42.0.0.0/22
42.0.8.0/21
42.0.16.0/21
42.0.24.0/22
42.0.32.0/19
42.0.128.0/17
42.1.0.0/19
42.1.32.0/20
42.1.48.0/21
42.1.56.0/22
42.1.128.0/17
42.4.0.0/14
42.48.0.0/13
42.56.0.0/14
42.62.0.0/17
42.62.128.0/19
42.62.160.0/20
42.62.180.0/22
42.62.184.0/21
42.63.0.0/16
42.80.0.0/15
42.83.64.0/20
42.83.80.0/22
42.83.88.0/21
42.83.96.0/19
42.83.128.0/17
42.84.0.0/14
42.88.0.0/13
42.96.64.0/19
42.96.96.0/21
42.96.108.0/22
42.96.112.0/20
42.96.128.0/17
42.97.0.0/16
42.99.0.0/18
42.99.64.0/19
42.99.96.0/20
42.99.112.0/22
42.99.120.0/21
42.100.0.0/14
42.120.0.0/15
42.122.0.0/16
42.123.0.0/19
42.123.36.0/22
42.123.40.0/21
42.123.48.0/20
42.123.64.0/18
42.123.128.0/17
42.128.0.0/12
42.156.0.0/19
42.156.36.0/22
42.156.40.0/21
42.156.48.0/20
42.156.64.0/18
42.156.128.0/17
42.157.0.0/16
42.158.0.0/15
42.160.0.0/12
42.176.0.0/13
42.184.0.0/15
42.186.0.0/16
42.187.0.0/18
42.187.64.0/19
42.187.96.0/20
42.187.112.0/21
42.187.120.0/22
42.187.128.0/17
42.192.0.0/13
42.201.0.0/17
42.202.0.0/15
42.204.0.0/14
42.208.0.0/12
42.224.0.0/12
42.240.0.0/16
42.242.0.0/15
42.244.0.0/14
42.248.0.0/13
43.224.12.0/22
43.224.24.0/22
43.224.44.0/22
43.224.52.0/22
43.224.56.0/22
43.224.64.0/21
43.224.72.0/22
43.224.80.0/22
43.224.100.0/22
43.224.144.0/22
43.224.160.0/22
43.224.176.0/22
43.224.184.0/22
43.224.200.0/21
43.224.208.0/21
43.224.216.0/22
43.224.240.0/22
43.225.76.0/22
43.225.84.0/22
43.225.120.0/21
43.225.140.0/22
43.225.172.0/22
43.225.180.0/22
43.225.208.0/22
43.225.216.0/21
43.225.224.0/20
43.225.240.0/21
43.225.252.0/22
43.226.32.0/19
43.226.64.0/19
43.226.96.0/20
43.226.112.0/21
43.226.120.0/22
43.226.128.0/18
43.226.192.0/20
43.226.208.0/21
43.226.236.0/22
43.226.240.0/20
43.227.0.0/21
43.227.8.0/22
43.227.32.0/19
43.227.64.0/19
43.227.96.0/21
43.227.104.0/22
43.227.136.0/21
43.227.144.0/22
43.227.152.0/21
43.227.160.0/20
43.227.176.0/21
43.227.188.0/22
43.227.192.0/19
43.227.232.0/22
43.227.248.0/21
43.228.0.0/18
43.228.64.0/21
43.228.76.0/22
43.228.100.0/22
43.228.116.0/22
43.228.120.0/22
43.228.132.0/22
43.228.136.0/22
43.228.148.0/22
43.228.152.0/22
43.228.188.0/22
43.229.40.0/22
43.229.48.0/22
43.229.56.0/22
43.229.96.0/22
43.229.120.0/22
43.229.136.0/21
43.229.144.0/22
43.229.168.0/21
43.229.176.0/20
43.229.192.0/21
43.229.216.0/21
43.229.232.0/21
43.230.20.0/22
43.230.32.0/22
43.230.68.0/22
43.230.72.0/22
43.230.84.0/22
43.230.124.0/22
43.230.136.0/22
43.230.168.0/22
43.230.220.0/22
43.230.224.0/19
43.231.32.0/20
43.231.80.0/20
43.231.96.0/20
43.231.136.0/21
43.231.144.0/20
43.231.160.0/20
43.231.176.0/21
43.236.0.0/15
43.238.0.0/16
43.239.0.0/19
43.239.32.0/20
43.239.48.0/22
43.239.116.0/22
43.239.120.0/22
43.239.172.0/22
43.239.176.0/22
43.240.0.0/22
43.240.56.0/21
43.240.68.0/22
43.240.72.0/21
43.240.84.0/22
43.240.124.0/22
43.240.128.0/21
43.240.136.0/22
43.240.144.0/22
43.240.156.0/22
43.240.160.0/19
43.240.192.0/19
43.240.236.0/22
43.240.240.0/20
43.241.0.0/20
43.241.16.0/21
43.241.48.0/22
43.241.76.0/22
43.241.80.0/20
43.241.112.0/22
43.241.168.0/21
43.241.176.0/21
43.241.184.0/22
43.241.196.0/22
43.241.208.0/20
43.241.224.0/20
43.241.240.0/22
43.241.248.0/21
43.242.8.0/21
43.242.16.0/20
43.242.44.0/22
43.242.48.0/20
43.242.64.0/22
43.242.72.0/21
43.242.80.0/20
43.242.96.0/22
43.242.144.0/20
43.242.160.0/21
43.242.168.0/22
43.242.180.0/22
43.242.188.0/22
43.242.192.0/21
43.242.204.0/22
43.242.216.0/21
43.242.252.0/22
43.243.4.0/22
43.243.8.0/21
43.243.16.0/22
43.243.24.0/22
43.243.88.0/22
43.243.128.0/22
43.243.136.0/22
43.243.144.0/21
43.243.156.0/22
43.243.168.0/22
43.243.180.0/22
43.243.188.0/22
43.243.228.0/22
43.243.232.0/22
43.243.244.0/22
43.246.0.0/18
43.246.64.0/19
43.246.96.0/22
43.246.112.0/22
43.246.212.0/22
43.246.228.0/22
43.247.4.0/22
43.247.8.0/22
43.247.44.0/22
43.247.48.0/22
43.247.68.0/22
43.247.76.0/22
43.247.84.0/22
43.247.88.0/21
43.247.96.0/21
43.247.108.0/22
43.247.112.0/22
43.247.148.0/22
43.247.152.0/22
43.247.176.0/20
43.247.196.0/22
43.247.200.0/21
43.247.208.0/20
43.247.224.0/19
43.248.0.0/21
43.248.20.0/22
43.248.28.0/22
43.248.48.0/22
43.248.76.0/22
43.248.80.0/20
43.248.96.0/19
43.248.128.0/20
43.248.144.0/21
43.248.176.0/20
43.248.192.0/20
43.248.208.0/22
43.248.228.0/22
43.248.232.0/22
43.248.244.0/22
43.249.4.0/22
43.249.8.0/22
43.249.120.0/22
43.249.132.0/22
43.249.136.0/22
43.249.144.0/20
43.249.160.0/21
43.249.168.0/22
43.249.192.0/22
43.249.236.0/22
43.250.4.0/22
43.250.12.0/22
43.250.16.0/21
43.250.28.0/22
43.250.32.0/21
43.250.72.0/22
43.250.96.0/20
43.250.112.0/21
43.250.128.0/22
43.250.144.0/21
43.250.160.0/22
43.250.168.0/21
43.250.176.0/22
43.250.200.0/22
43.250.212.0/22
43.250.216.0/21
43.250.236.0/22
43.250.244.0/22
43.251.4.0/22
43.251.8.0/21
43.251.36.0/22
43.251.100.0/22
43.251.116.0/22
43.251.192.0/22
43.251.232.0/21
43.251.244.0/22
43.252.40.0/22
43.252.48.0/22
43.252.56.0/22
43.252.224.0/22
43.254.0.0/21
43.254.8.0/22
43.254.24.0/22
43.254.36.0/22
43.254.44.0/22
43.254.52.0/22
43.254.64.0/22
43.254.72.0/22
43.254.84.0/22
43.254.88.0/21
43.254.100.0/22
43.254.104.0/22
43.254.112.0/21
43.254.128.0/22
43.254.136.0/21
43.254.144.0/20
43.254.168.0/21
43.254.180.0/22
43.254.184.0/21
43.254.192.0/21
43.254.200.0/22
43.254.208.0/22
43.254.220.0/22
43.254.224.0/20
43.254.240.0/22
43.254.248.0/21
43.255.0.0/21
43.255.8.0/22
43.255.16.0/22
43.255.48.0/22
43.255.64.0/20
43.255.84.0/22
43.255.96.0/22
43.255.108.0/22
43.255.144.0/22
43.255.168.0/22
43.255.176.0/22
43.255.184.0/22
43.255.192.0/22
43.255.200.0/21
43.255.208.0/21
43.255.224.0/21
43.255.232.0/22
43.255.244.0/22
45.40.192.0/18
45.65.16.0/20
45.112.132.0/22
45.112.188.0/22
45.112.208.0/20
45.112.228.0/22
45.112.232.0/21
45.113.12.0/22
45.113.16.0/20
45.113.40.0/22
45.113.52.0/22
45.113.56.0/22
45.113.72.0/22
45.113.144.0/21
45.113.168.0/22
45.113.176.0/22
45.113.184.0/22
45.113.200.0/21
45.113.208.0/20
45.113.240.0/22
45.113.252.0/22
45.114.0.0/22
45.114.12.0/22
45.114.32.0/22
45.114.40.0/22
45.114.52.0/22
45.114.96.0/22
45.114.104.0/21
45.114.124.0/22
45.114.136.0/22
45.114.196.0/22
45.114.200.0/22
45.114.228.0/22
45.114.252.0/22
45.115.44.0/22
45.115.100.0/22
45.115.120.0/22
45.115.132.0/22
45.115.144.0/22
45.115.156.0/22
45.115.164.0/22
45.115.200.0/22
45.115.212.0/22
45.115.228.0/22
45.115.236.0/22
45.115.244.0/22
45.115.248.0/22
45.116.12.0/22
45.116.16.0/22
45.116.24.0/22
45.116.32.0/21
45.116.52.0/22
45.116.96.0/21
45.116.140.0/22
45.116.152.0/22
45.116.208.0/22
45.117.8.0/22
45.117.20.0/22
45.117.68.0/22
45.117.124.0/22
45.117.252.0/22
45.119.52.0/22
45.119.60.0/22
45.119.64.0/21
45.119.72.0/22
45.119.104.0/22
45.119.116.0/22
45.119.232.0/22
45.120.100.0/22
45.120.140.0/22
45.120.164.0/22
45.120.220.0/22
45.120.240.0/22
45.121.20.0/22
45.121.52.0/22
45.121.64.0/21
45.121.72.0/22
45.121.92.0/22
45.121.96.0/22
45.121.172.0/22
45.121.176.0/22
45.121.212.0/22
45.121.240.0/20
45.122.0.0/19
45.122.32.0/21
45.122.40.0/22
45.122.60.0/22
45.122.64.0/19
45.122.96.0/20
45.122.112.0/21
45.122.160.0/19
45.122.192.0/20
45.122.208.0/21
45.122.216.0/22
45.123.28.0/22
45.123.32.0/21
45.123.44.0/22
45.123.48.0/20
45.123.64.0/20
45.123.80.0/21
45.123.88.0/22
45.123.120.0/22
45.123.128.0/21
45.123.136.0/22
45.123.148.0/22
45.123.152.0/21
45.123.164.0/22
45.123.168.0/21
45.123.176.0/21
45.123.184.0/22
45.123.204.0/22
45.123.212.0/22
45.123.224.0/19
45.124.0.0/22
45.124.20.0/22
45.124.28.0/22
45.124.32.0/21
45.124.44.0/22
45.124.68.0/22
45.124.76.0/22
45.124.80.0/22
45.124.100.0/22
45.124.124.0/22
45.124.172.0/22
45.124.176.0/22
45.124.208.0/22
45.124.248.0/22
45.125.12.0/22
45.125.16.0/22
45.125.24.0/21
45.125.32.0/22
45.125.44.0/22
45.125.52.0/22
45.125.56.0/22
45.125.76.0/22
45.125.80.0/20
45.125.96.0/21
45.125.104.0/22
45.125.136.0/22
45.126.48.0/21
45.126.100.0/22
45.126.108.0/22
45.126.112.0/21
45.126.120.0/22
45.126.212.0/22
45.126.220.0/22
45.127.8.0/21
45.127.96.0/22
45.127.116.0/22
45.127.124.0/22
45.127.128.0/22
45.127.144.0/21
45.127.156.0/22
45.127.216.0/22
45.248.8.0/22
45.248.80.0/21
45.248.88.0/22
45.248.96.0/20
45.248.128.0/21
45.248.204.0/22
45.248.208.0/20
45.248.224.0/19
45.249.0.0/21
45.249.12.0/22
45.249.16.0/20
45.249.32.0/21
45.249.92.0/22
45.249.112.0/22
45.249.180.0/22
45.249.188.0/22
45.249.192.0/20
45.249.208.0/21
45.250.12.0/22
45.250.16.0/22
45.250.28.0/22
45.250.32.0/21
45.250.40.0/22
45.250.76.0/22
45.250.80.0/20
45.250.96.0/22
45.250.104.0/21
45.250.112.0/20
45.250.128.0/20
45.250.144.0/21
45.250.152.0/22
45.250.164.0/22
45.250.180.0/22
45.250.184.0/21
45.250.192.0/22
45.251.0.0/22
45.251.8.0/22
45.251.16.0/21
45.251.52.0/22
45.251.84.0/22
45.251.88.0/21
45.251.96.0/21
45.251.120.0/21
45.251.136.0/21
45.251.144.0/20
45.251.160.0/19
45.251.192.0/19
45.251.224.0/22
45.251.240.0/22
45.252.0.0/19
45.252.32.0/20
45.252.48.0/22
45.252.60.0/22
45.252.84.0/22
45.252.88.0/21
45.252.96.0/19
45.252.128.0/19
45.252.160.0/20
45.252.176.0/22
45.252.192.0/19
45.252.224.0/21
45.252.232.0/22
45.253.0.0/18
45.253.64.0/20
45.253.80.0/21
45.253.92.0/22
45.253.96.0/20
45.253.112.0/21
45.253.120.0/22
45.253.132.0/22
45.253.136.0/21
45.253.144.0/20
45.253.160.0/19
45.253.192.0/19
45.253.224.0/20
45.253.240.0/22
45.254.0.0/19
45.254.40.0/22
45.254.48.0/20
45.254.64.0/18
45.254.128.0/18
45.254.192.0/19
45.254.224.0/21
45.254.236.0/22
45.254.240.0/22
45.254.248.0/22
45.255.0.0/17
45.255.132.0/22
45.255.136.0/21
45.255.144.0/20
45.255.160.0/19
45.255.192.0/19
45.255.224.0/20
45.255.240.0/21
45.255.248.0/22
47.92.0.0/14
47.96.0.0/11
49.4.0.0/14
49.51.0.0/16
49.52.0.0/14
49.64.0.0/11
49.112.0.0/13
49.120.0.0/14
49.128.0.0/24
49.128.2.0/23
49.128.4.0/22
49.140.0.0/15
49.152.0.0/14
49.208.0.0/14
49.220.0.0/14
49.232.0.0/14
49.239.0.0/18
49.239.192.0/18
49.246.224.0/19
52.80.0.0/14
52.130.0.0/15
54.222.0.0/15
58.14.0.0/15
58.16.0.0/13
58.24.0.0/15
58.30.0.0/15
58.32.0.0/11
58.65.232.0/21
58.66.0.0/15
58.68.128.0/17
58.82.0.0/17
58.83.0.0/16
58.87.64.0/18
58.99.128.0/17
58.100.0.0/15
58.116.0.0/14
58.128.0.0/13
58.144.0.0/16
58.154.0.0/15
58.192.0.0/11
58.240.0.0/12
59.32.0.0/11
59.64.0.0/12
59.80.0.0/14
59.107.0.0/16
59.108.0.0/14
59.151.0.0/17
59.152.16.0/20
59.152.32.0/21
59.152.64.0/20
59.152.112.0/21
59.153.4.0/22
59.153.32.0/22
59.153.60.0/22
59.153.64.0/21
59.153.72.0/22
59.153.92.0/22
59.153.116.0/22
59.153.136.0/22
59.153.152.0/21
59.153.164.0/22
59.153.168.0/21
59.153.176.0/20
59.153.192.0/22
59.155.0.0/16
59.172.0.0/14
59.191.0.0/17
59.191.240.0/20
59.192.0.0/10
60.0.0.0/11
60.55.0.0/16
60.63.0.0/16
60.160.0.0/11
60.194.0.0/15
60.200.0.0/13
60.208.0.0/12
60.232.0.0/15
60.235.0.0/16
60.245.128.0/17
60.247.0.0/16
60.252.0.0/16
60.253.128.0/17
60.255.0.0/16
61.4.80.0/20
61.4.176.0/20
61.8.160.0/20
61.14.212.0/22
61.14.216.0/21
61.14.240.0/21
61.28.0.0/17
61.29.128.0/18
61.29.192.0/19
61.29.224.0/20
61.45.128.0/18
61.45.224.0/20
61.47.128.0/18
61.48.0.0/13
61.87.192.0/18
61.128.0.0/10
61.232.0.0/14
61.236.0.0/15
61.240.0.0/14
62.234.0.0/16
68.79.0.0/18
69.230.192.0/18
69.231.128.0/18
69.234.192.0/18
69.235.128.0/18
71.131.192.0/18
71.132.0.0/18
71.136.64.0/18
71.137.0.0/18
81.68.0.0/14
82.156.0.0/15
91.234.36.0/24
94.191.0.0/17
101.0.0.0/22
101.1.0.0/22
101.2.172.0/22
101.4.0.0/14
101.16.0.0/12
101.33.128.0/17
101.34.0.0/15
101.36.0.0/14
101.40.0.0/13
101.48.0.0/15
101.50.8.0/21
101.50.56.0/22
101.52.0.0/16
101.53.100.0/22
101.54.0.0/16
101.55.224.0/21
101.64.0.0/13
101.72.0.0/14
101.76.0.0/15
101.78.0.0/22
101.78.32.0/19
101.80.0.0/12
101.96.0.0/21
101.96.8.0/22
101.96.16.0/20
101.96.128.0/17
101.99.96.0/19
101.101.64.0/19
101.101.100.0/24
101.101.102.0/23
101.101.104.0/21
101.101.112.0/20
101.102.64.0/19
101.102.100.0/23
101.102.102.0/24
101.102.104.0/21
101.102.112.0/20
101.104.0.0/14
101.110.64.0/19
101.110.96.0/20
101.110.116.0/22
101.110.120.0/21
101.120.0.0/14
101.124.0.0/15
101.126.0.0/16
101.128.0.0/22
101.128.8.0/21
101.128.16.0/20
101.128.32.0/19
101.129.0.0/16
101.130.0.0/15
101.132.0.0/14
101.144.0.0/12
101.192.0.0/13
101.200.0.0/15
101.203.128.0/19
101.203.160.0/21
101.203.172.0/22
101.203.176.0/20
101.204.0.0/14
101.224.0.0/13
101.232.0.0/15
101.234.64.0/21
101.234.76.0/22
101.234.80.0/20
101.234.96.0/19
101.236.0.0/14
101.240.0.0/13
101.248.0.0/15
101.251.0.0/22
101.251.8.0/21
101.251.16.0/20
101.251.32.0/19
101.251.64.0/18
101.251.128.0/17
101.252.0.0/15
101.254.0.0/16
103.1.8.0/22
103.1.20.0/22
103.1.24.0/22
103.1.72.0/22
103.1.88.0/22
103.1.168.0/22
103.2.108.0/22
103.2.156.0/22
103.2.164.0/22
103.2.200.0/21
103.2.208.0/21
103.3.84.0/22
103.3.88.0/21
103.3.96.0/19
103.3.128.0/20
103.3.148.0/22
103.3.152.0/21
103.4.56.0/22
103.4.168.0/22
103.4.184.0/22
103.4.224.0/22
103.5.36.0/22
103.5.52.0/22
103.5.56.0/22
103.5.152.0/22
103.5.168.0/22
103.5.192.0/22
103.5.252.0/22
103.6.76.0/22
103.6.108.0/22
103.6.220.0/22
103.6.228.0/22
103.7.4.0/22
103.7.28.0/22
103.7.140.0/22
103.7.212.0/22
103.7.216.0/21
103.8.0.0/21
103.8.8.0/22
103.8.32.0/22
103.8.52.0/22
103.8.68.0/22
103.8.108.0/22
103.8.156.0/22
103.8.200.0/21
103.8.220.0/22
103.9.8.0/22
103.9.24.0/22
103.9.108.0/22
103.9.152.0/22
103.9.192.0/22
103.9.248.0/21
103.10.0.0/22
103.10.16.0/22
103.10.84.0/22
103.10.140.0/22
103.11.16.0/22
103.11.168.0/22
103.11.180.0/22
103.12.32.0/22
103.12.68.0/22
103.12.92.0/22
103.12.136.0/22
103.12.184.0/22
103.12.232.0/22
103.13.12.0/22
103.13.124.0/22
103.13.144.0/22
103.13.196.0/22
103.13.220.0/22
103.13.244.0/22
103.14.32.0/22
103.14.84.0/22
103.14.100.0/22
103.14.132.0/22
103.14.136.0/22
103.14.156.0/22
103.14.240.0/22
103.15.4.0/22
103.15.8.0/22
103.15.16.0/22
103.15.96.0/22
103.15.200.0/22
103.16.52.0/22
103.16.80.0/21
103.16.88.0/22
103.16.108.0/22
103.16.124.0/22
103.17.40.0/22
103.17.64.0/22
103.17.120.0/22
103.17.136.0/22
103.17.160.0/22
103.17.204.0/22
103.17.228.0/22
103.18.192.0/22
103.18.208.0/21
103.18.224.0/22
103.19.0.0/22
103.19.12.0/22
103.19.40.0/21
103.19.64.0/21
103.19.72.0/22
103.19.232.0/22
103.20.12.0/22
103.20.32.0/22
103.20.44.0/22
103.20.68.0/22
103.20.112.0/22
103.20.128.0/22
103.20.160.0/22
103.20.248.0/22
103.21.112.0/21
103.21.136.0/21
103.21.176.0/22
103.21.208.0/22
103.21.240.0/22
103.22.0.0/18
103.22.64.0/19
103.22.100.0/22
103.22.104.0/21
103.22.112.0/20
103.22.188.0/22
103.22.228.0/22
103.22.252.0/22
103.23.8.0/22
103.23.56.0/22
103.23.160.0/21
103.23.176.0/22
103.23.228.0/22
103.24.24.0/22
103.24.116.0/22
103.24.128.0/22
103.24.144.0/22
103.24.176.0/22
103.24.184.0/22
103.24.220.0/22
103.24.228.0/22
103.24.248.0/21
103.25.8.0/23
103.25.20.0/22
103.25.24.0/21
103.25.32.0/21
103.25.40.0/22
103.25.48.0/22
103.25.64.0/21
103.25.148.0/22
103.25.156.0/22
103.25.216.0/22
103.26.0.0/22
103.26.64.0/22
103.26.76.0/22
103.26.132.0/22
103.26.156.0/22
103.26.160.0/22
103.26.228.0/22
103.26.240.0/22
103.27.4.0/22
103.27.12.0/22
103.27.24.0/22
103.27.56.0/22
103.27.96.0/22
103.27.184.0/22
103.27.208.0/21
103.27.240.0/22
103.28.4.0/22
103.28.8.0/22
103.28.184.0/22
103.28.204.0/22
103.28.212.0/22
103.29.16.0/22
103.29.128.0/21
103.29.136.0/22
103.30.20.0/22
103.30.96.0/22
103.30.148.0/22
103.30.200.0/22
103.30.228.0/22
103.30.236.0/22
103.31.0.0/22
103.31.48.0/20
103.31.64.0/21
103.31.148.0/22
103.31.160.0/22
103.31.168.0/22
103.31.200.0/22
103.31.236.0/22
103.32.0.0/15
103.34.0.0/16
103.35.0.0/19
103.35.32.0/20
103.35.48.0/22
103.35.104.0/22
103.35.116.0/22
103.35.180.0/22
103.35.200.0/22
103.35.220.0/22
103.36.28.0/22
103.36.36.0/22
103.36.56.0/21
103.36.64.0/22
103.36.72.0/22
103.36.96.0/22
103.36.132.0/22
103.36.136.0/22
103.36.160.0/19
103.36.192.0/19
103.36.224.0/20
103.36.240.0/21
103.37.0.0/22
103.37.12.0/22
103.37.16.0/22
103.37.24.0/22
103.37.44.0/22
103.37.52.0/22
103.37.56.0/22
103.37.72.0/22
103.37.100.0/22
103.37.104.0/22
103.37.124.0/22
103.37.136.0/21
103.37.144.0/20
103.37.160.0/21
103.37.172.0/22
103.37.176.0/22
103.37.188.0/22
103.37.208.0/20
103.37.248.0/21
103.38.0.0/22
103.38.32.0/22
103.38.40.0/21
103.38.56.0/22
103.38.76.0/22
103.38.84.0/22
103.38.92.0/22
103.38.96.0/22
103.38.116.0/22
103.38.132.0/22
103.38.140.0/22
103.38.224.0/21
103.38.232.0/22
103.38.252.0/22
103.39.16.0/22
103.39.64.0/22
103.39.88.0/22
103.39.100.0/22
103.39.104.0/21
103.39.160.0/19
103.39.200.0/21
103.39.208.0/20
103.39.224.0/21
103.39.232.0/22
103.40.12.0/22
103.40.16.0/20
103.40.32.0/20
103.40.88.0/22
103.40.100.0/22
103.40.192.0/22
103.40.212.0/22
103.40.220.0/22
103.40.228.0/22
103.40.232.0/21
103.40.240.0/20
103.41.0.0/22
103.41.16.0/22
103.41.52.0/22
103.41.140.0/22
103.41.148.0/22
103.41.152.0/22
103.41.160.0/21
103.41.220.0/22
103.41.224.0/21
103.41.232.0/22
103.42.8.0/22
103.42.24.0/21
103.42.32.0/22
103.42.64.0/21
103.42.76.0/22
103.42.104.0/22
103.42.180.0/22
103.42.232.0/22
103.43.16.0/22
103.43.84.0/22
103.43.96.0/21
103.43.104.0/22
103.43.124.0/22
103.43.184.0/22
103.43.192.0/21
103.43.208.0/22
103.43.220.0/22
103.43.224.0/22
103.43.232.0/22
103.43.240.0/22
103.44.56.0/22
103.44.80.0/22
103.44.88.0/22
103.44.120.0/21
103.44.132.0/22
103.44.144.0/22
103.44.168.0/22
103.44.176.0/20
103.44.192.0/20
103.44.224.0/22
103.44.236.0/22
103.44.240.0/20
103.45.0.0/18
103.45.72.0/21
103.45.80.0/20
103.45.96.0/19
103.45.128.0/18
103.45.192.0/19
103.45.224.0/22
103.45.248.0/22
103.46.0.0/22
103.46.12.0/22
103.46.16.0/20
103.46.32.0/19
103.46.64.0/18
103.46.128.0/21
103.46.136.0/22
103.46.152.0/21
103.46.160.0/20
103.46.176.0/21
103.46.244.0/22
103.46.248.0/22
103.47.4.0/22
103.47.20.0/22
103.47.36.0/22
103.47.40.0/22
103.47.48.0/22
103.47.80.0/22
103.47.96.0/22
103.47.108.0/22
103.47.116.0/22
103.47.120.0/22
103.47.136.0/21
103.47.212.0/22
103.48.52.0/22
103.48.92.0/22
103.48.144.0/20
103.48.202.0/23
103.48.216.0/21
103.48.224.0/20
103.48.240.0/21
103.49.12.0/22
103.49.20.0/22
103.49.72.0/21
103.49.92.0/22
103.49.96.0/22
103.49.108.0/22
103.49.128.0/22
103.49.176.0/21
103.49.196.0/22
103.49.248.0/22
103.50.36.0/22
103.50.44.0/22
103.50.48.0/20
103.50.64.0/21
103.50.72.0/22
103.50.108.0/22
103.50.112.0/20
103.50.132.0/22
103.50.136.0/21
103.50.172.0/22
103.50.176.0/20
103.50.192.0/21
103.50.200.0/22
103.50.220.0/22
103.50.224.0/20
103.50.240.0/21
103.50.248.0/22
103.52.40.0/22
103.52.72.0/21
103.52.80.0/21
103.52.96.0/21
103.52.104.0/22
103.52.160.0/21
103.52.172.0/22
103.52.176.0/22
103.52.184.0/22
103.52.196.0/22
103.53.4.0/22
103.53.64.0/21
103.53.92.0/22
103.53.100.0/22
103.53.124.0/22
103.53.128.0/20
103.53.144.0/22
103.53.180.0/22
103.53.204.0/22
103.53.208.0/21
103.53.216.0/22
103.53.236.0/22
103.53.248.0/22
103.54.8.0/22
103.54.48.0/22
103.54.60.0/22
103.54.160.0/21
103.54.212.0/22
103.54.240.0/22
103.55.24.0/22
103.55.80.0/22
103.55.120.0/22
103.55.152.0/22
103.55.172.0/22
103.55.204.0/22
103.55.208.0/22
103.55.228.0/22
103.55.236.0/22
103.56.8.0/22
103.56.16.0/21
103.56.32.0/22
103.56.52.0/22
103.56.56.0/21
103.56.72.0/21
103.56.140.0/22
103.56.152.0/22
103.56.184.0/22
103.56.200.0/22
103.57.12.0/22
103.57.52.0/22
103.57.56.0/22
103.57.76.0/22
103.57.136.0/22
103.57.196.0/22
103.58.24.0/22
103.59.76.0/22
103.59.100.0/22
103.59.112.0/20
103.59.128.0/22
103.59.148.0/22
103.59.164.0/22
103.60.32.0/22
103.60.44.0/22
103.60.164.0/22
103.60.228.0/22
103.60.236.0/22
103.61.60.0/22
103.61.104.0/22
103.61.140.0/22
103.61.152.0/21
103.61.160.0/22
103.61.172.0/22
103.61.176.0/22
103.61.184.0/21
103.62.24.0/22
103.62.52.0/22
103.62.72.0/21
103.62.80.0/21
103.62.88.0/22
103.62.96.0/19
103.62.128.0/21
103.62.156.0/22
103.62.160.0/19
103.62.192.0/22
103.62.204.0/22
103.62.208.0/20
103.62.224.0/22
103.63.32.0/19
103.63.64.0/20
103.63.80.0/21
103.63.88.0/22
103.63.140.0/22
103.63.144.0/22
103.63.152.0/22
103.63.160.0/20
103.63.176.0/21
103.63.184.0/22
103.63.192.0/20
103.63.208.0/22
103.63.240.0/20
103.64.0.0/21
103.64.24.0/21
103.64.32.0/19
103.64.64.0/18
103.64.140.0/22
103.64.144.0/22
103.64.152.0/21
103.64.160.0/19
103.64.192.0/18
103.65.0.0/20
103.65.16.0/22
103.65.36.0/22
103.65.40.0/22
103.65.48.0/20
103.65.64.0/19
103.65.100.0/22
103.65.104.0/21
103.65.112.0/22
103.65.144.0/20
103.65.160.0/20
103.66.32.0/22
103.66.40.0/22
103.66.92.0/22
103.66.108.0/22
103.66.200.0/22
103.66.216.0/22
103.66.240.0/20
103.67.0.0/21
103.67.8.0/22
103.67.100.0/22
103.67.104.0/21
103.67.112.0/20
103.67.128.0/20
103.67.144.0/21
103.67.172.0/22
103.67.192.0/22
103.67.212.0/22
103.67.252.0/22
103.68.64.0/22
103.68.88.0/22
103.68.100.0/22
103.68.128.0/22
103.68.192.0/22
103.69.16.0/22
103.69.116.0/22
103.69.132.0/22
103.69.152.0/22
103.69.212.0/22
103.70.8.0/22
103.70.148.0/22
103.70.184.0/22
103.70.220.0/22
103.70.224.0/22
103.70.236.0/22
103.70.252.0/22
103.71.0.0/22
103.71.32.0/22
103.71.48.0/22
103.71.68.0/22
103.71.72.0/22
103.71.80.0/21
103.71.88.0/22
103.71.120.0/21
103.71.128.0/22
103.71.144.0/22
103.71.196.0/22
103.71.200.0/22
103.71.232.0/22
103.72.12.0/22
103.72.16.0/20
103.72.32.0/20
103.72.48.0/21
103.72.112.0/20
103.72.128.0/21
103.72.144.0/21
103.72.172.0/22
103.72.180.0/22
103.72.224.0/19
103.73.0.0/19
103.73.48.0/22
103.73.88.0/22
103.73.96.0/22
103.73.116.0/22
103.73.120.0/22
103.73.128.0/20
103.73.144.0/22
103.73.168.0/22
103.73.176.0/22
103.73.204.0/22
103.73.208.0/22
103.73.240.0/21
103.73.248.0/22
103.74.24.0/21
103.74.32.0/20
103.74.48.0/22
103.74.56.0/21
103.74.80.0/22
103.74.124.0/22
103.74.148.0/22
103.74.152.0/21
103.74.204.0/22
103.74.232.0/22
103.75.16.0/22
103.75.88.0/21
103.75.104.0/21
103.75.112.0/22
103.75.120.0/22
103.75.128.0/22
103.75.144.0/22
103.75.152.0/22
103.75.236.0/24
103.76.60.0/22
103.76.64.0/21
103.76.72.0/22
103.76.84.0/22
103.76.92.0/22
103.76.216.0/21
103.76.224.0/22
103.77.28.0/22
103.77.52.0/22
103.77.56.0/22
103.77.72.0/22
103.77.88.0/21
103.77.132.0/22
103.77.148.0/22
103.77.220.0/22
103.78.56.0/21
103.78.64.0/21
103.78.124.0/22
103.78.172.0/22
103.78.176.0/22
103.78.196.0/22
103.78.228.0/22
103.79.24.0/21
103.79.36.0/22
103.79.40.0/21
103.79.52.0/22
103.79.56.0/21
103.79.64.0/21
103.79.80.0/21
103.79.120.0/22
103.79.136.0/22
103.79.188.0/22
103.79.192.0/20
103.79.208.0/21
103.79.240.0/22
103.80.24.0/21
103.80.44.0/22
103.80.72.0/22
103.80.176.0/21
103.80.184.0/22
103.80.192.0/22
103.80.200.0/22
103.80.232.0/22
103.81.4.0/22
103.81.8.0/22
103.81.16.0/21
103.81.44.0/22
103.81.48.0/22
103.81.96.0/22
103.81.120.0/22
103.81.148.0/22
103.81.164.0/22
103.81.168.0/22
103.81.183.0/24
103.81.184.0/22
103.81.200.0/22
103.81.232.0/22
103.82.52.0/22
103.82.60.0/22
103.82.68.0/22
103.82.84.0/22
103.82.104.0/22
103.82.224.0/22
103.82.236.0/22
103.83.44.0/22
103.83.52.0/22
103.83.60.0/22
103.83.64.0/22
103.83.72.0/22
103.83.112.0/22
103.83.120.0/22
103.83.180.0/22
103.84.0.0/22
103.84.12.0/22
103.84.16.0/20
103.84.48.0/22
103.84.64.0/22
103.84.72.0/22
103.84.92.0/22
103.84.108.0/22
103.84.136.0/22
103.85.20.0/22
103.85.24.0/22
103.85.44.0/22
103.85.48.0/22
103.85.84.0/22
103.85.136.0/22
103.85.144.0/22
103.85.164.0/22
103.85.168.0/21
103.85.176.0/22
103.85.224.0/22
103.86.28.0/22
103.86.32.0/22
103.86.44.0/22
103.86.60.0/22
103.86.68.0/22
103.86.80.0/21
103.86.88.0/22
103.86.204.0/22
103.86.208.0/20
103.86.224.0/19
103.87.0.0/21
103.87.20.0/22
103.87.32.0/22
103.87.72.0/22
103.87.96.0/22
103.87.132.0/22
103.87.180.0/22
103.87.224.0/22
103.88.4.0/22
103.88.8.0/21
103.88.16.0/21
103.88.32.0/21
103.88.60.0/22
103.88.64.0/22
103.88.72.0/22
103.88.96.0/21
103.88.164.0/22
103.88.176.0/22
103.88.184.0/21
103.88.212.0/22
103.89.28.0/22
103.89.96.0/20
103.89.112.0/21
103.89.148.0/22
103.89.172.0/22
103.89.184.0/21
103.89.192.0/19
103.89.224.0/21
103.90.52.0/22
103.90.92.0/22
103.90.100.0/22
103.90.104.0/21
103.90.112.0/20
103.90.128.0/21
103.90.152.0/22
103.90.168.0/22
103.90.173.0/24
103.90.176.0/22
103.90.188.0/22
103.90.192.0/22
103.91.36.0/22
103.91.40.0/22
103.91.108.0/22
103.91.152.0/22
103.91.176.0/22
103.91.200.0/22
103.91.208.0/21
103.91.219.0/24
103.91.236.0/22
103.91.252.0/22
103.92.0.0/20
103.92.48.0/20
103.92.64.0/20
103.92.80.0/22
103.92.86.0/24
103.92.88.0/22
103.92.108.0/22
103.92.124.0/22
103.92.128.0/24
103.92.132.0/22
103.92.156.0/22
103.92.164.0/22
103.92.168.0/21
103.92.176.0/20
103.92.192.0/22
103.92.236.0/22
103.92.240.0/20
103.93.0.0/21
103.93.28.0/22
103.93.76.0/22
103.93.84.0/22
103.93.121.0/24
103.93.152.0/22
103.93.180.0/22
103.93.204.0/22
103.94.12.0/22
103.94.20.0/22
103.94.28.0/22
103.94.32.0/20
103.94.72.0/22
103.94.88.0/22
103.94.116.0/22
103.94.160.0/22
103.94.180.0/22
103.94.200.0/22
103.95.28.0/22
103.95.52.0/22
103.95.64.0/21
103.95.88.0/21
103.95.116.0/22
103.95.128.0/22
103.95.136.0/21
103.95.144.0/22
103.95.152.0/22
103.95.207.0/24
103.95.216.0/21
103.95.224.0/22
103.95.236.0/22
103.95.240.0/20
103.96.0.0/22
103.96.8.0/22
103.96.80.0/22
103.96.124.0/22
103.96.136.0/22
103.96.140.0/24
103.96.148.0/22
103.96.152.0/21
103.96.160.0/19
103.96.192.0/20
103.96.208.0/21
103.96.216.0/22
103.97.8.0/21
103.97.16.0/20
103.97.32.0/21
103.97.40.0/22
103.97.56.0/21
103.97.64.0/21
103.97.72.0/22
103.97.80.0/22
103.97.112.0/21
103.97.128.0/22
103.97.144.0/21
103.97.188.0/22
103.97.192.0/22
103.97.224.0/22
103.97.228.0/23
103.98.28.0/23
103.98.40.0/21
103.98.48.0/22
103.98.56.0/22
103.98.80.0/22
103.98.88.0/21
103.98.96.0/21
103.98.124.0/22
103.98.136.0/21
103.98.144.0/22
103.98.164.0/22
103.98.168.0/22
103.98.180.0/22
103.98.196.0/22
103.98.216.0/21
103.98.224.0/21
103.98.232.0/22
103.98.240.0/20
103.99.40.0/23
103.99.52.0/22
103.99.56.0/21
103.99.76.0/22
103.99.104.0/22
103.99.116.0/22
103.99.120.0/22
103.99.152.0/22
103.99.220.0/22
103.99.232.0/21
103.100.0.0/22
103.100.32.0/22
103.100.40.0/22
103.100.48.0/20
103.100.64.0/21
103.100.88.0/22
103.100.116.0/22
103.100.140.0/22
103.100.144.0/22
103.100.236.0/22
103.100.240.0/22
103.100.248.0/21
103.101.4.0/22
103.101.8.0/21
103.101.28.0/22
103.101.60.0/22
103.101.120.0/21
103.101.144.0/21
103.101.153.0/24
103.101.180.0/22
103.101.184.0/22
103.102.76.0/22
103.102.80.0/22
103.102.168.0/21
103.102.180.0/22
103.102.184.0/21
103.102.192.0/21
103.102.200.0/22
103.102.208.0/21
103.103.12.0/22
103.103.16.0/22
103.103.36.0/22
103.103.68.0/22
103.103.72.0/22
103.103.176.0/22
103.103.188.0/22
103.103.200.0/21
103.103.220.0/22
103.103.224.0/21
103.103.232.0/22
103.103.248.0/21
103.104.0.0/21
103.104.36.0/22
103.104.40.0/22
103.104.64.0/22
103.104.104.0/22
103.104.152.0/22
103.104.168.0/21
103.104.188.0/22
103.104.198.0/23
103.104.252.0/22
103.105.0.0/21
103.105.12.0/22
103.105.16.0/22
103.105.23.0/24
103.105.56.0/21
103.105.116.0/22
103.105.132.0/22
103.105.180.0/22
103.105.184.0/22
103.105.200.0/21
103.105.220.0/22
103.106.36.0/22
103.106.40.0/21
103.106.60.0/22
103.106.68.0/22
103.106.96.0/22
103.106.120.0/22
103.106.128.0/21
103.106.160.0/22
103.106.188.0/22
103.106.196.0/22
103.106.202.0/23
103.106.212.0/22
103.106.244.0/22
103.106.252.0/22
103.107.0.0/22
103.107.8.0/24
103.107.28.0/22
103.107.32.0/22
103.107.44.0/22
103.107.72.0/22
103.107.108.0/22
103.107.164.0/22
103.107.168.0/22
103.107.188.0/22
103.107.192.0/22
103.107.208.0/20
103.108.52.0/22
103.108.64.0/22
103.108.160.0/21
103.108.184.0/23
103.108.188.0/23
103.108.192.0/21
103.108.208.0/21
103.108.224.0/22
103.108.244.0/22
103.108.251.0/24
103.109.20.0/22
103.109.48.0/22
103.109.88.0/22
103.109.106.0/23
103.109.248.0/22
103.110.32.0/22
103.110.80.0/23
103.110.92.0/22
103.110.100.0/22
103.110.116.0/22
103.110.127.0/24
103.110.128.0/23
103.110.131.0/24
103.110.132.0/22
103.110.136.0/22
103.110.152.0/21
103.110.188.0/22
103.110.204.0/22
103.111.38.0/23
103.111.64.0/22
103.111.172.0/22
103.111.252.0/22
103.112.28.0/22
103.112.68.0/22
103.112.72.0/22
103.112.88.0/21
103.112.96.0/22
103.112.108.0/22
103.112.112.0/21
103.112.140.0/22
103.112.172.0/22
103.112.184.0/22
103.112.208.0/22
103.113.4.0/22
103.113.92.0/22
103.113.144.0/22
103.113.220.0/22
103.113.232.0/21
103.114.4.0/22
103.114.28.0/22
103.114.68.0/22
103.114.72.0/22
103.114.100.0/22
103.114.132.0/22
103.114.148.0/22
103.114.156.0/22
103.114.176.0/22
103.114.212.0/22
103.114.236.0/22
103.114.240.0/22
103.115.16.0/22
103.115.40.0/21
103.115.48.0/20
103.115.64.0/21
103.115.92.0/22
103.115.120.0/22
103.115.148.0/22
103.115.204.0/23
103.115.248.0/22
103.116.20.0/22
103.116.40.0/22
103.116.64.0/22
103.116.72.0/21
103.116.92.0/22
103.116.120.0/22
103.116.128.0/22
103.116.132.0/23
103.116.148.0/22
103.116.184.0/22
103.116.206.0/23
103.116.220.0/22
103.116.224.0/21
103.117.16.0/22
103.117.72.0/22
103.117.88.0/22
103.117.132.0/22
103.117.136.0/22
103.117.188.0/22
103.117.220.0/22
103.118.19.0/24
103.118.36.0/22
103.118.52.0/22
103.118.56.0/21
103.118.64.0/21
103.118.72.0/22
103.118.88.0/22
103.118.173.0/24
103.118.192.0/19
103.118.240.0/20
103.119.0.0/22
103.119.12.0/22
103.119.16.0/22
103.119.28.0/22
103.119.44.0/22
103.119.104.0/22
103.119.115.0/24
103.119.156.0/22
103.119.180.0/22
103.119.200.0/22
103.119.224.0/22
103.120.52.0/22
103.120.72.0/22
103.120.76.0/24
103.120.88.0/22
103.120.96.0/21
103.120.140.0/22
103.120.196.0/22
103.120.224.0/22
103.121.52.0/22
103.121.92.0/22
103.121.160.0/21
103.121.250.0/24
103.121.252.0/22
103.122.48.0/22
103.122.176.0/22
103.122.192.0/22
103.122.240.0/22
103.123.4.0/22
103.123.56.0/22
103.123.88.0/21
103.123.116.0/22
103.123.160.0/22
103.123.176.0/22
103.123.200.0/21
103.123.208.0/21
103.124.24.0/22
103.124.48.0/22
103.124.64.0/22
103.124.212.0/22
103.124.216.0/22
103.125.20.0/22
103.125.44.0/22
103.125.132.0/22
103.125.164.0/22
103.125.196.0/22
103.125.236.0/22
103.125.248.0/22
103.126.0.0/22
103.126.16.0/22
103.126.44.0/22
103.126.100.0/22
103.126.124.0/22
103.126.128.0/21
103.126.208.0/22
103.126.241.0/24
103.129.52.0/22
103.130.132.0/22
103.130.152.0/24
103.130.160.0/22
103.130.228.0/22
103.131.20.0/22
103.131.36.0/22
103.131.152.0/22
103.131.168.0/22
103.131.176.0/22
103.131.224.0/21
103.131.240.0/22
103.132.60.0/22
103.132.64.0/20
103.132.80.0/22
103.132.104.0/21
103.132.112.0/21
103.132.120.0/22
103.132.160.0/21
103.132.188.0/22
103.132.208.0/21
103.132.234.0/23
103.133.12.0/22
103.133.40.0/22
103.133.128.0/22
103.133.136.0/22
103.133.176.0/22
103.133.232.0/22
103.134.12.0/24
103.134.196.0/22
103.135.80.0/22
103.135.124.0/22
103.135.148.0/22
103.135.156.0/22
103.135.160.0/21
103.135.176.0/22
103.135.184.0/22
103.135.192.0/21
103.135.236.0/22
103.136.128.0/22
103.136.232.0/22
103.137.58.0/23
103.137.60.0/24
103.137.76.0/22
103.137.136.0/23
103.137.149.0/24
103.137.180.0/22
103.137.236.0/22
103.138.2.0/23
103.138.12.0/23
103.138.80.0/22
103.138.134.0/23
103.138.156.0/23
103.138.208.0/23
103.138.220.0/23
103.138.246.0/23
103.138.248.0/23
103.139.0.0/22
103.139.22.0/23
103.139.113.0/24
103.139.134.0/23
103.139.136.0/23
103.139.172.0/23
103.139.200.0/23
103.139.204.0/23
103.139.212.0/23
103.140.8.0/23
103.140.14.0/23
103.140.46.0/23
103.140.70.0/23
103.140.126.0/23
103.140.140.0/23
103.140.144.0/23
103.140.152.0/23
103.140.192.0/22
103.140.228.0/23
103.141.10.0/23
103.141.36.0/23
103.141.58.0/23
103.141.128.0/23
103.141.186.0/23
103.141.190.0/23
103.141.242.0/23
103.142.0.0/23
103.142.28.0/23
103.142.58.0/23
103.142.82.0/23
103.142.96.0/23
103.142.102.0/23
103.142.122.0/23
103.142.126.0/24
103.142.128.0/23
103.142.140.0/23
103.142.154.0/23
103.142.156.0/23
103.142.172.0/23
103.142.180.0/23
103.142.186.0/23
103.142.190.0/23
103.142.220.0/23
103.142.230.0/24
103.142.234.0/23
103.142.238.0/23
103.142.248.0/23
103.143.16.0/22
103.143.31.0/24
103.143.74.0/23
103.143.120.0/23
103.143.124.0/23
103.143.132.0/22
103.143.174.0/23
103.143.228.0/23
103.144.40.0/23
103.144.52.0/23
103.144.66.0/23
103.144.70.0/23
103.144.72.0/23
103.144.88.0/24
103.144.108.0/23
103.144.136.0/23
103.144.148.0/23
103.144.158.0/23
103.144.240.0/23
103.145.38.0/23
103.145.40.0/22
103.145.60.0/23
103.145.72.0/23
103.145.80.0/23
103.145.86.0/23
103.145.92.0/22
103.145.98.0/23
103.145.106.0/23
103.145.122.0/23
103.145.188.0/22
103.146.6.0/23
103.146.72.0/23
103.146.88.0/22
103.146.124.0/23
103.192.0.0/19
103.192.48.0/21
103.192.56.0/22
103.192.84.0/22
103.192.88.0/21
103.192.96.0/20
103.192.112.0/22
103.192.128.0/20
103.192.144.0/22
103.192.164.0/22
103.192.188.0/22
103.192.208.0/21
103.192.216.0/22
103.192.252.0/22
103.193.40.0/21
103.193.120.0/21
103.193.140.0/22
103.193.144.0/21
103.193.160.0/22
103.193.188.0/22
103.193.192.0/22
103.193.212.0/22
103.193.216.0/21
103.193.224.0/20
103.193.240.0/22
103.194.16.0/22
103.195.104.0/22
103.195.112.0/22
103.195.136.0/22
103.195.148.0/22
103.195.152.0/22
103.195.160.0/22
103.195.192.0/22
103.196.60.0/22
103.196.64.0/22
103.196.72.0/22
103.196.88.0/21
103.196.96.0/22
103.196.168.0/22
103.196.204.0/22
103.197.180.0/22
103.197.228.0/22
103.198.20.0/22
103.198.60.0/22
103.198.64.0/22
103.198.72.0/22
103.198.124.0/22
103.198.156.0/22
103.198.180.0/22
103.198.196.0/22
103.198.200.0/22
103.198.216.0/21
103.198.224.0/20
103.198.240.0/21
103.199.164.0/22
103.199.196.0/22
103.199.228.0/22
103.199.248.0/21
103.200.28.0/22
103.200.32.0/22
103.200.52.0/22
103.200.64.0/21
103.200.136.0/21
103.200.144.0/20
103.200.160.0/19
103.200.192.0/22
103.200.220.0/22
103.200.224.0/19
103.201.0.0/20
103.201.16.0/21
103.201.28.0/22
103.201.32.0/19
103.201.64.0/22
103.201.76.0/22
103.201.80.0/20
103.201.96.0/20
103.201.112.0/21
103.201.120.0/22
103.201.152.0/21
103.201.160.0/19
103.201.192.0/18
103.202.0.0/19
103.202.32.0/20
103.202.56.0/21
103.202.64.0/18
103.202.128.0/20
103.202.144.0/22
103.202.152.0/21
103.202.160.0/19
103.202.192.0/20
103.202.212.0/22
103.202.228.0/22
103.202.236.0/22
103.202.240.0/20
103.203.0.0/19
103.203.32.0/22
103.203.52.0/22
103.203.56.0/22
103.203.96.0/19
103.203.128.0/22
103.203.140.0/22
103.203.164.0/22
103.203.168.0/22
103.203.192.0/22
103.203.200.0/22
103.203.212.0/22
103.203.216.0/22
103.204.24.0/22
103.204.72.0/22
103.204.88.0/22
103.204.112.0/22
103.204.136.0/21
103.204.144.0/21
103.204.152.0/22
103.204.196.0/22
103.204.232.0/21
103.205.4.0/22
103.205.8.0/22
103.205.40.0/21
103.205.52.0/22
103.205.108.0/22
103.205.116.0/22
103.205.120.0/22
103.205.136.0/22
103.205.162.0/24
103.205.188.0/22
103.205.192.0/21
103.205.200.0/22
103.205.236.0/22
103.205.248.0/21
103.206.0.0/22
103.206.44.0/22
103.206.108.0/22
103.206.148.0/22
103.207.48.0/22
103.207.104.0/22
103.207.164.0/22
103.207.184.0/21
103.207.192.0/20
103.207.208.0/21
103.207.220.0/22
103.207.228.0/22
103.207.232.0/22
103.208.12.0/22
103.208.16.0/22
103.208.28.0/22
103.208.40.0/21
103.208.48.0/22
103.208.148.0/22
103.209.112.0/22
103.209.136.0/22
103.209.200.0/22
103.209.208.0/22
103.209.216.0/22
103.210.0.0/22
103.210.20.0/22
103.210.96.0/22
103.210.156.0/22
103.210.160.0/19
103.210.216.0/22
103.211.44.0/22
103.211.96.0/21
103.211.156.0/22
103.211.164.0/22
103.211.192.0/22
103.211.220.0/22
103.211.224.0/22
103.211.248.0/22
103.212.0.0/20
103.212.32.0/22
103.212.44.0/22
103.212.48.0/22
103.212.84.0/22
103.212.100.0/22
103.212.104.0/21
103.212.148.0/22
103.212.164.0/22
103.212.196.0/22
103.212.200.0/22
103.212.228.0/22
103.212.252.0/22
103.213.40.0/21
103.213.48.0/20
103.213.64.0/19
103.213.96.0/22
103.213.132.0/22
103.213.136.0/21
103.213.144.0/20
103.213.160.0/19
103.213.248.0/22
103.214.32.0/22
103.214.48.0/22
103.214.84.0/22
103.214.168.0/22
103.214.212.0/22
103.214.240.0/21
103.215.28.0/22
103.215.32.0/21
103.215.44.0/22
103.215.48.0/22
103.215.100.0/22
103.215.104.0/21
103.215.116.0/22
103.215.120.0/22
103.215.140.0/22
103.215.184.0/22
103.215.228.0/22
103.216.4.0/22
103.216.8.0/21
103.216.16.0/20
103.216.32.0/20
103.216.64.0/22
103.216.108.0/22
103.216.136.0/22
103.216.152.0/22
103.216.224.0/21
103.216.240.0/20
103.217.0.0/18
103.217.168.0/22
103.217.180.0/22
103.217.184.0/21
103.217.192.0/20
103.218.0.0/22
103.218.8.0/21
103.218.16.0/21
103.218.28.0/22
103.218.32.0/19
103.218.64.0/19
103.218.184.0/22
103.218.192.0/20
103.218.208.0/21
103.218.216.0/22
103.219.24.0/21
103.219.32.0/21
103.219.64.0/22
103.219.84.0/22
103.219.88.0/21
103.219.96.0/21
103.219.176.0/22
103.219.184.0/22
103.220.48.0/20
103.220.64.0/22
103.220.92.0/22
103.220.96.0/20
103.220.116.0/22
103.220.120.0/21
103.220.128.0/20
103.220.144.0/21
103.220.152.0/22
103.220.160.0/19
103.220.192.0/21
103.220.200.0/22
103.220.240.0/20
103.221.0.0/19
103.221.32.0/20
103.221.48.0/22
103.221.88.0/21
103.221.96.0/19
103.221.128.0/18
103.221.192.0/20
103.222.0.0/20
103.222.16.0/22
103.222.24.0/21
103.222.32.0/19
103.222.64.0/18
103.222.128.0/18
103.222.192.0/19
103.222.224.0/21
103.222.232.0/22
103.222.240.0/21
103.223.16.0/20
103.223.32.0/19
103.223.64.0/18
103.223.128.0/21
103.223.140.0/22
103.223.144.0/20
103.223.160.0/20
103.223.176.0/21
103.223.188.0/22
103.223.192.0/18
103.224.0.0/22
103.224.40.0/21
103.224.60.0/22
103.224.80.0/22
103.224.220.0/22
103.224.224.0/21
103.224.232.0/22
103.225.84.0/22
103.226.16.0/22
103.226.40.0/22
103.226.56.0/21
103.226.80.0/22
103.226.132.0/22
103.226.156.0/22
103.226.180.0/22
103.226.196.0/22
103.227.48.0/22
103.227.72.0/21
103.227.80.0/22
103.227.100.0/22
103.227.120.0/22
103.227.132.0/22
103.227.136.0/22
103.227.196.0/22
103.227.204.0/22
103.227.212.0/22
103.227.228.0/22
103.228.12.0/22
103.228.28.0/22
103.228.68.0/22
103.228.88.0/22
103.228.128.0/22
103.228.136.0/22
103.228.160.0/22
103.228.176.0/22
103.228.204.0/22
103.228.208.0/22
103.228.228.0/22
103.228.232.0/22
103.229.20.0/22
103.229.60.0/22
103.229.136.0/22
103.229.148.0/22
103.229.172.0/22
103.229.212.0/22
103.229.216.0/21
103.229.228.0/22
103.229.236.0/22
103.229.240.0/22
103.230.0.0/22
103.230.28.0/22
103.230.44.0/22
103.230.96.0/22
103.230.196.0/22
103.230.200.0/21
103.230.212.0/22
103.230.236.0/22
103.231.16.0/21
103.231.64.0/21
103.231.144.0/22
103.231.180.0/22
103.231.184.0/22
103.231.244.0/22
103.232.4.0/22
103.232.144.0/22
103.232.188.0/22
103.232.212.0/22
103.233.4.0/22
103.233.44.0/22
103.233.52.0/22
103.233.104.0/22
103.233.128.0/22
103.233.136.0/22
103.233.228.0/22
103.234.0.0/22
103.234.20.0/22
103.234.56.0/22
103.234.128.0/22
103.234.172.0/22
103.234.180.0/22
103.234.244.0/22
103.235.16.0/22
103.235.48.0/22
103.235.56.0/21
103.235.80.0/21
103.235.128.0/20
103.235.144.0/21
103.235.184.0/22
103.235.192.0/22
103.235.200.0/22
103.235.220.0/22
103.235.224.0/19
103.236.0.0/18
103.236.64.0/19
103.236.96.0/22
103.236.120.0/22
103.236.184.0/22
103.236.220.0/22
103.236.232.0/22
103.236.240.0/20
103.237.0.0/20
103.237.24.0/21
103.237.68.0/22
103.237.88.0/22
103.237.152.0/22
103.237.176.0/20
103.237.192.0/18
103.238.0.0/21
103.238.16.0/20
103.238.32.0/20
103.238.48.0/21
103.238.56.0/22
103.238.88.0/21
103.238.96.0/22
103.238.132.0/22
103.238.140.0/22
103.238.144.0/22
103.238.160.0/19
103.238.196.0/22
103.238.204.0/22
103.238.252.0/22
103.239.0.0/22
103.239.44.0/22
103.239.68.0/22
103.239.96.0/22
103.239.152.0/21
103.239.176.0/21
103.239.184.0/22
103.239.192.0/21
103.239.204.0/22
103.239.208.0/22
103.239.224.0/22
103.239.244.0/22
103.240.16.0/22
103.240.36.0/22
103.240.72.0/22
103.240.84.0/22
103.240.124.0/22
103.240.156.0/22
103.240.172.0/22
103.240.188.0/22
103.240.244.0/22
103.241.12.0/22
103.241.72.0/22
103.241.92.0/22
103.241.96.0/22
103.241.160.0/22
103.241.184.0/21
103.241.220.0/22
103.242.64.0/22
103.242.128.0/21
103.242.160.0/22
103.242.168.0/21
103.242.176.0/22
103.242.200.0/22
103.242.212.0/22
103.242.220.0/22
103.242.240.0/22
103.243.136.0/22
103.243.252.0/22
103.244.16.0/22
103.244.58.0/23
103.244.60.0/22
103.244.64.0/20
103.244.80.0/21
103.244.116.0/22
103.244.164.0/22
103.244.232.0/22
103.244.252.0/22
103.245.23.0/24
103.245.52.0/22
103.245.60.0/22
103.245.80.0/22
103.245.124.0/22
103.245.128.0/22
103.246.8.0/21
103.246.120.0/21
103.246.132.0/22
103.246.152.0/21
103.247.168.0/21
103.247.176.0/22
103.247.200.0/22
103.247.212.0/22
103.248.0.0/23
103.248.64.0/22
103.248.100.0/22
103.248.124.0/22
103.248.152.0/22
103.248.168.0/22
103.248.192.0/22
103.248.212.0/22
103.248.220.0/22
103.248.224.0/22
103.249.8.0/21
103.249.52.0/22
103.249.104.0/22
103.249.128.0/22
103.249.136.0/22
103.249.144.0/22
103.249.164.0/22
103.249.168.0/21
103.249.176.0/22
103.249.188.0/22
103.249.192.0/22
103.249.244.0/22
103.249.252.0/22
103.250.32.0/22
103.250.104.0/22
103.250.124.0/22
103.250.180.0/22
103.250.192.0/22
103.250.216.0/22
103.250.224.0/22
103.250.236.0/22
103.250.248.0/21
103.251.32.0/21
103.251.84.0/22
103.251.96.0/22
103.251.124.0/22
103.251.128.0/22
103.251.160.0/22
103.251.192.0/22
103.251.204.0/22
103.251.236.0/22
103.251.240.0/22
103.252.28.0/22
103.252.36.0/22
103.252.64.0/22
103.252.96.0/22
103.252.104.0/22
103.252.172.0/22
103.252.204.0/22
103.252.208.0/22
103.252.232.0/22
103.252.248.0/22
103.253.4.0/22
103.253.60.0/22
103.253.204.0/22
103.253.220.0/22
103.253.224.0/22
103.253.232.0/22
103.254.8.0/22
103.254.20.0/22
103.254.64.0/20
103.254.112.0/22
103.254.176.0/22
103.254.188.0/22
103.254.196.0/24
103.254.220.0/22
103.255.56.0/22
103.255.68.0/22
103.255.88.0/21
103.255.136.0/21
103.255.184.0/22
103.255.200.0/22
103.255.212.0/22
103.255.228.0/22
106.0.0.0/24
106.0.2.0/23
106.0.4.0/22
106.0.8.0/21
106.0.16.0/20
106.0.44.0/22
106.0.64.0/18
106.2.0.0/15
106.4.0.0/14
106.8.0.0/15
106.11.0.0/16
106.12.0.0/14
106.16.0.0/12
106.32.0.0/12
106.48.0.0/15
106.50.0.0/16
106.52.0.0/14
106.56.0.0/13
106.74.0.0/15
106.80.0.0/12
106.108.0.0/14
106.112.0.0/12
106.224.0.0/12
109.244.0.0/16
110.6.0.0/15
110.16.0.0/14
110.34.40.0/21
110.40.0.0/14
110.44.12.0/22
110.44.144.0/20
110.48.0.0/16
110.51.0.0/16
110.52.0.0/15
110.56.0.0/13
110.64.0.0/15
110.72.0.0/15
110.75.0.0/16
110.76.0.0/18
110.76.132.0/22
110.76.156.0/22
110.76.184.0/22
110.76.192.0/18
110.77.0.0/17
110.80.0.0/13
110.88.0.0/14
110.92.68.0/22
110.93.32.0/19
110.94.0.0/15
110.96.0.0/11
110.152.0.0/14
110.156.0.0/15
110.165.32.0/19
110.166.0.0/15
110.172.192.0/18
110.173.0.0/19
110.173.32.0/20
110.173.64.0/18
110.173.192.0/19
110.176.0.0/12
110.192.0.0/11
110.228.0.0/14
110.232.32.0/19
110.236.0.0/15
110.240.0.0/12
111.0.0.0/10
111.66.0.0/16
111.67.192.0/20
111.68.64.0/19
111.72.0.0/13
111.85.0.0/16
111.91.192.0/19
111.92.248.0/21
111.112.0.0/14
111.116.0.0/15
111.118.200.0/21
111.119.64.0/18
111.119.128.0/19
111.120.0.0/14
111.124.0.0/16
111.126.0.0/15
111.128.0.0/11
111.160.0.0/13
111.170.0.0/16
111.172.0.0/14
111.176.0.0/13
111.186.0.0/15
111.192.0.0/12
111.208.0.0/13
111.221.28.0/24
111.221.128.0/17
111.222.0.0/16
111.223.4.0/22
111.223.8.0/21
111.223.16.0/22
111.223.240.0/22
111.223.248.0/22
111.224.0.0/13
111.235.96.0/19
111.235.156.0/22
111.235.160.0/19
112.0.0.0/10
112.64.0.0/14
112.73.0.0/16
112.74.0.0/15
112.80.0.0/12
112.96.0.0/13
112.109.128.0/17
112.111.0.0/16
112.112.0.0/14
112.116.0.0/15
112.122.0.0/15
112.124.0.0/14
112.128.0.0/14
112.132.0.0/16
112.137.48.0/21
112.192.0.0/14
112.224.0.0/11
113.0.0.0/13
113.8.0.0/15
113.11.192.0/19
113.12.0.0/14
113.16.0.0/15
113.18.0.0/16
113.21.232.0/21
113.24.0.0/14
113.31.0.0/16
113.44.0.0/14
113.48.0.0/14
113.52.160.0/19
113.52.228.0/22
113.54.0.0/15
113.56.0.0/15
113.58.0.0/16
113.59.0.0/17
113.59.224.0/22
113.62.0.0/15
113.64.0.0/10
113.128.0.0/15
113.130.96.0/20
113.130.112.0/21
113.132.0.0/14
113.136.0.0/13
113.194.0.0/15
113.197.100.0/22
113.200.0.0/15
113.202.0.0/16
113.204.0.0/14
113.208.96.0/19
113.208.128.0/17
113.209.0.0/16
113.212.0.0/18
113.212.64.0/22
113.212.88.0/22
113.212.100.0/22
113.212.184.0/21
113.213.0.0/17
113.214.0.0/15
113.218.0.0/15
113.220.0.0/14
113.224.0.0/12
113.240.0.0/13
113.248.0.0/14
114.28.0.0/16
114.31.64.0/21
114.54.0.0/15
114.60.0.0/14
114.64.0.0/14
114.68.0.0/16
114.79.64.0/18
114.80.0.0/12
114.96.0.0/13
114.104.0.0/14
114.110.0.0/20
114.110.64.0/18
114.111.0.0/19
114.111.160.0/19
114.112.0.0/14
114.116.0.0/15
114.118.0.0/16
114.119.0.0/17
114.119.192.0/18
114.132.0.0/16
114.135.0.0/16
114.138.0.0/15
114.141.64.0/21
114.141.80.0/21
114.141.128.0/18
114.196.0.0/15
114.198.248.0/21
114.208.0.0/12
114.224.0.0/11
115.24.0.0/14
115.28.0.0/15
115.31.64.0/20
115.32.0.0/14
115.42.56.0/22
115.44.0.0/14
115.48.0.0/12
115.69.64.0/20
115.84.0.0/18
115.84.192.0/19
115.85.192.0/18
115.100.0.0/14
115.104.0.0/14
115.120.0.0/14
115.124.16.0/20
115.148.0.0/14
115.152.0.0/13
115.166.64.0/19
115.168.0.0/13
115.180.0.0/14
115.187.0.0/20
115.190.0.0/15
115.192.0.0/11
115.224.0.0/12
116.0.8.0/21
116.0.24.0/21
116.1.0.0/16
116.2.0.0/15
116.4.0.0/14
116.8.0.0/14
116.13.0.0/16
116.16.0.0/12
116.50.0.0/20
116.52.0.0/14
116.56.0.0/15
116.58.128.0/20
116.58.208.0/20
116.60.0.0/14
116.66.0.0/17
116.66.176.0/22
116.68.136.0/21
116.68.176.0/21
116.69.0.0/16
116.70.0.0/17
116.76.0.0/14
116.85.0.0/16
116.89.144.0/20
116.89.240.0/22
116.90.80.0/20
116.90.184.0/21
116.95.0.0/16
116.112.0.0/14
116.116.0.0/15
116.128.0.0/10
116.192.0.0/16
116.193.16.0/20
116.193.32.0/19
116.193.152.0/22
116.193.164.0/22
116.193.176.0/21
116.194.0.0/15
116.196.0.0/16
116.197.160.0/21
116.198.0.0/16
116.199.0.0/17
116.199.128.0/19
116.204.0.0/17
116.204.132.0/22
116.204.168.0/22
116.204.216.0/22
116.204.232.0/21
116.204.244.0/22
116.205.0.0/16
116.206.92.0/22
116.206.176.0/22
116.207.0.0/16
116.208.0.0/14
116.212.160.0/20
116.213.44.0/22
116.213.64.0/18
116.213.128.0/17
116.214.32.0/19
116.214.64.0/20
116.214.128.0/17
116.215.0.0/16
116.216.0.0/14
116.224.0.0/12
116.242.0.0/15
116.244.0.0/14
116.248.0.0/15
116.251.64.0/18
116.252.0.0/15
116.254.104.0/21
116.254.128.0/17
116.255.128.0/17
117.8.0.0/13
117.21.0.0/16
117.22.0.0/15
117.24.0.0/13
117.32.0.0/13
117.40.0.0/14
117.44.0.0/15
117.48.0.0/14
117.53.48.0/20
117.53.176.0/20
117.57.0.0/16
117.58.0.0/17
117.59.0.0/16
117.60.0.0/14
117.64.0.0/13
117.72.0.0/15
117.74.64.0/19
117.74.128.0/17
117.75.0.0/16
117.76.0.0/14
117.80.0.0/12
117.100.0.0/15
117.103.16.0/20
117.103.40.0/21
117.103.72.0/21
117.103.128.0/20
117.104.168.0/21
117.106.0.0/15
117.112.0.0/13
117.120.64.0/18
117.120.128.0/17
117.121.0.0/17
117.121.128.0/18
117.121.192.0/21
117.122.128.0/17
117.124.0.0/14
117.128.0.0/10
118.24.0.0/15
118.26.0.0/16
118.28.0.0/14
118.64.0.0/15
118.66.0.0/16
118.67.112.0/20
118.72.0.0/13
118.80.0.0/15
118.84.0.0/15
118.88.32.0/19
118.88.64.0/18
118.88.128.0/17
118.89.0.0/16
118.91.240.0/20
118.102.16.0/20
118.102.32.0/21
118.103.164.0/22
118.103.168.0/21
118.103.176.0/22
118.107.180.0/22
118.112.0.0/13
118.120.0.0/14
118.124.0.0/15
118.126.0.0/16
118.127.128.0/19
118.132.0.0/14
118.144.0.0/14
118.178.0.0/16
118.180.0.0/14
118.184.0.0/16
118.186.0.0/15
118.188.0.0/16
118.190.0.0/15
118.192.0.0/16
118.193.0.0/20
118.193.32.0/19
118.193.64.0/20
118.193.96.0/19
118.193.128.0/17
118.194.0.0/15
118.196.0.0/14
118.202.0.0/15
118.204.0.0/14
118.212.0.0/15
118.215.192.0/18
118.224.0.0/14
118.228.0.0/15
118.230.0.0/16
118.239.0.0/16
118.242.0.0/16
118.244.0.0/14
118.248.0.0/13
119.0.0.0/15
119.2.0.0/19
119.2.128.0/17
119.3.0.0/16
119.4.0.0/14
119.10.0.0/17
119.15.136.0/21
119.16.0.0/16
119.18.192.0/20
119.18.208.0/21
119.18.224.0/19
119.19.0.0/16
119.20.0.0/14
119.27.64.0/18
119.27.128.0/17
119.28.0.0/15
119.30.48.0/20
119.31.192.0/19
119.32.0.0/13
119.40.0.0/18
119.40.64.0/20
119.40.128.0/17
119.41.0.0/16
119.42.0.0/19
119.42.52.0/22
119.42.128.0/20
119.42.224.0/19
119.44.0.0/15
119.48.0.0/13
119.57.0.0/16
119.58.0.0/16
119.59.128.0/17
119.60.0.0/15
119.62.0.0/16
119.63.32.0/19
119.75.208.0/20
119.78.0.0/15
119.80.0.0/16
119.82.208.0/20
119.84.0.0/14
119.88.0.0/14
119.96.0.0/13
119.108.0.0/15
119.112.0.0/12
119.128.0.0/12
119.144.0.0/14
119.148.160.0/19
119.151.192.0/18
119.160.200.0/21
119.161.120.0/21
119.161.128.0/17
119.162.0.0/15
119.164.0.0/14
119.176.0.0/12
119.232.0.0/15
119.235.128.0/18
119.248.0.0/14
119.252.96.0/21
119.252.240.0/20
119.253.0.0/16
119.254.0.0/15
120.0.0.0/12
120.24.0.0/14
120.30.0.0/15
120.32.0.0/12
120.48.0.0/15
120.52.0.0/14
120.64.0.0/13
120.72.32.0/19
120.72.128.0/17
120.76.0.0/14
120.80.0.0/13
120.88.8.0/21
120.90.0.0/15
120.92.0.0/16
120.94.0.0/15
120.128.0.0/13
120.136.16.0/21
120.136.128.0/18
120.137.0.0/17
120.143.128.0/19
120.192.0.0/10
121.0.8.0/21
121.0.16.0/20
121.4.0.0/15
121.8.0.0/13
121.16.0.0/12
121.32.0.0/13
121.40.0.0/14
121.46.0.0/18
121.46.76.0/22
121.46.128.0/17
121.47.0.0/16
121.48.0.0/15
121.50.8.0/21
121.51.0.0/16
121.52.160.0/19
121.52.208.0/20
121.52.224.0/19
121.54.176.0/21
121.54.188.0/22
121.55.0.0/18
121.56.0.0/15
121.58.0.0/17
121.58.136.0/21
121.58.144.0/20
121.58.160.0/21
121.59.0.0/16
121.60.0.0/14
121.68.0.0/14
121.76.0.0/15
121.79.128.0/18
121.89.0.0/16
121.100.128.0/17
121.101.0.0/18
121.101.208.0/20
121.192.0.0/13
121.200.192.0/21
121.201.0.0/16
121.204.0.0/14
121.224.0.0/12
121.248.0.0/14
121.255.0.0/16
122.0.64.0/18
122.0.128.0/17
122.4.0.0/14
122.8.0.0/15
122.10.128.0/22
122.10.132.0/23
122.10.136.0/23
122.10.164.0/22
122.10.168.0/21
122.10.176.0/20
122.10.192.0/22
122.10.200.0/21
122.10.208.0/21
122.10.216.0/22
122.10.228.0/22
122.10.232.0/21
122.10.240.0/22
122.11.0.0/17
122.12.0.0/15
122.14.0.0/16
122.48.0.0/16
122.49.0.0/18
122.51.0.0/16
122.64.0.0/11
122.96.0.0/15
122.102.0.0/20
122.102.64.0/19
122.112.0.0/14
122.119.0.0/16
122.128.100.0/22
122.128.120.0/21
122.136.0.0/13
122.144.128.0/17
122.152.192.0/18
122.156.0.0/14
122.188.0.0/14
122.192.0.0/14
122.198.0.0/16
122.200.40.0/21
122.200.64.0/18
122.201.48.0/20
122.204.0.0/14
122.224.0.0/12
122.240.0.0/13
122.248.24.0/21
122.248.48.0/20
122.255.64.0/21
123.0.128.0/18
123.4.0.0/14
123.8.0.0/13
123.49.128.0/17
123.50.160.0/19
123.52.0.0/14
123.56.0.0/14
123.60.0.0/15
123.62.0.0/16
123.64.0.0/11
123.96.0.0/15
123.98.0.0/17
123.99.128.0/17
123.100.0.0/19
123.101.0.0/16
123.103.0.0/17
123.108.128.0/20
123.108.208.0/20
123.112.0.0/12
123.128.0.0/13
123.136.80.0/20
123.137.0.0/16
123.138.0.0/15
123.144.0.0/12
123.160.0.0/12
123.176.60.0/22
123.176.80.0/20
123.177.0.0/16
123.178.0.0/15
123.180.0.0/14
123.184.0.0/13
123.196.0.0/15
123.199.128.0/17
123.206.0.0/15
123.232.0.0/14
123.242.0.0/17
123.242.192.0/21
123.244.0.0/14
123.249.0.0/16
123.253.108.0/22
123.253.240.0/22
123.254.96.0/21
124.6.64.0/18
124.14.0.0/15
124.16.0.0/15
124.20.0.0/14
124.28.192.0/18
124.29.0.0/17
124.31.0.0/16
124.40.112.0/20
124.40.128.0/18
124.40.192.0/19
124.40.240.0/22
124.42.0.0/16
124.47.0.0/18
124.64.0.0/15
124.66.0.0/17
124.67.0.0/16
124.68.0.0/14
124.72.0.0/13
124.88.0.0/13
124.108.8.0/21
124.108.40.0/21
124.109.96.0/21
124.112.0.0/13
124.126.0.0/15
124.128.0.0/13
124.147.128.0/17
124.150.137.0/24
124.151.0.0/16
124.152.0.0/16
124.160.0.0/13
124.172.0.0/14
124.192.0.0/15
124.196.0.0/16
124.200.0.0/13
124.220.0.0/14
124.224.0.0/12
124.240.0.0/17
124.240.128.0/18
124.242.0.0/16
124.243.192.0/18
124.248.0.0/17
124.249.0.0/16
124.250.0.0/15
124.254.0.0/18
125.31.192.0/18
125.32.0.0/12
125.58.128.0/17
125.61.128.0/17
125.62.0.0/18
125.64.0.0/11
125.96.0.0/15
125.98.0.0/16
125.104.0.0/13
125.112.0.0/12
125.169.0.0/16
125.171.0.0/16
125.208.0.0/18
125.210.0.0/15
125.213.0.0/17
125.214.96.0/19
125.215.0.0/18
125.216.0.0/13
125.254.128.0/17
128.108.0.0/16
129.28.0.0/16
129.204.0.0/16
129.211.0.0/16
132.232.0.0/16
134.175.0.0/16
137.59.59.0/24
137.59.88.0/22
139.5.56.0/21
139.5.80.0/22
139.5.92.0/22
139.5.108.0/22
139.5.128.0/22
139.5.160.0/22
139.5.192.0/22
139.5.204.0/22
139.5.208.0/21
139.5.244.0/22
139.9.0.0/16
139.129.0.0/16
139.148.0.0/16
139.155.0.0/16
139.159.0.0/16
139.170.0.0/16
139.176.0.0/16
139.183.0.0/16
139.186.0.0/16
139.189.0.0/16
139.196.0.0/14
139.200.0.0/13
139.208.0.0/13
139.217.0.0/16
139.219.0.0/16
139.220.0.0/15
139.224.0.0/16
139.226.0.0/15
140.75.0.0/16
140.143.0.0/16
140.179.0.0/16
140.205.0.0/16
140.206.0.0/15
140.210.0.0/16
140.224.0.0/16
140.237.0.0/16
140.240.0.0/16
140.243.0.0/16
140.246.0.0/16
140.249.0.0/16
140.250.0.0/16
140.255.0.0/16
144.0.0.0/16
144.7.0.0/16
144.12.0.0/16
144.48.8.0/22
144.48.64.0/22
144.48.88.0/22
144.48.156.0/22
144.48.180.0/22
144.48.184.0/22
144.48.204.0/22
144.48.208.0/21
144.48.220.0/22
144.48.252.0/22
144.52.0.0/16
144.123.0.0/16
144.255.0.0/16
146.56.192.0/18
146.196.56.0/22
146.196.68.0/22
146.196.72.0/22
146.196.92.0/22
146.196.112.0/21
146.196.124.0/22
148.70.0.0/16
150.0.0.0/16
150.115.0.0/16
150.121.0.0/16
150.122.0.0/16
150.129.136.0/22
150.129.192.0/22
150.129.216.0/22
150.129.252.0/22
150.138.0.0/15
150.158.0.0/16
150.223.0.0/16
150.242.0.0/21
150.242.8.0/22
150.242.28.0/22
150.242.44.0/22
150.242.48.0/21
150.242.56.0/22
150.242.76.0/22
150.242.80.0/22
150.242.92.0/22
150.242.96.0/22
150.242.112.0/21
150.242.120.0/22
150.242.152.0/21
150.242.160.0/21
150.242.168.0/22
150.242.184.0/21
150.242.192.0/22
150.242.212.0/22
150.242.224.0/20
150.242.240.0/21
150.242.248.0/22
150.255.0.0/16
152.104.128.0/17
152.136.0.0/16
153.0.0.0/16
153.3.0.0/16
153.34.0.0/15
153.36.0.0/15
153.99.0.0/16
153.101.0.0/16
153.118.0.0/15
154.8.128.0/17
157.0.0.0/16
157.18.0.0/16
157.61.0.0/16
157.119.0.0/22
157.119.8.0/21
157.119.16.0/22
157.119.28.0/22
157.119.68.0/22
157.119.112.0/22
157.119.132.0/22
157.119.136.0/21
157.119.144.0/20
157.119.160.0/21
157.119.172.0/22
157.119.192.0/21
157.119.240.0/22
157.119.252.0/22
157.122.0.0/16
157.148.0.0/16
157.156.0.0/16
157.255.0.0/16
159.75.0.0/16
159.226.0.0/16
160.19.208.0/21
160.19.216.0/22
160.20.48.0/22
160.202.60.0/22
160.202.148.0/22
160.202.152.0/22
160.202.168.0/22
160.202.212.0/22
160.202.216.0/21
160.202.224.0/19
160.238.64.0/22
161.189.0.0/16
161.207.0.0/16
162.14.0.0/16
162.105.0.0/16
163.0.0.0/16
163.47.4.0/22
163.53.0.0/20
163.53.36.0/22
163.53.40.0/21
163.53.48.0/20
163.53.64.0/22
163.53.88.0/21
163.53.96.0/19
163.53.128.0/21
163.53.136.0/22
163.53.160.0/20
163.53.188.0/22
163.53.220.0/22
163.53.240.0/22
163.125.0.0/16
163.142.0.0/16
163.177.0.0/16
163.179.0.0/16
163.204.0.0/16
164.52.0.0/17
166.111.0.0/16
167.139.0.0/16
167.189.0.0/16
167.220.244.0/22
168.160.0.0/16
170.179.0.0/16
171.8.0.0/13
171.34.0.0/15
171.36.0.0/14
171.40.0.0/13
171.80.0.0/12
171.104.0.0/13
171.112.0.0/12
171.208.0.0/12
172.81.192.0/18
175.0.0.0/12
175.16.0.0/13
175.24.0.0/14
175.30.0.0/15
175.42.0.0/15
175.44.0.0/16
175.46.0.0/15
175.48.0.0/12
175.64.0.0/11
175.102.0.0/16
175.106.128.0/17
175.111.144.0/20
175.111.160.0/20
175.111.184.0/22
175.146.0.0/15
175.148.0.0/14
175.152.0.0/14
175.158.96.0/22
175.160.0.0/12
175.176.156.0/22
175.176.176.0/22
175.176.188.0/22
175.176.192.0/22
175.178.0.0/16
175.184.128.0/18
175.185.0.0/16
175.186.0.0/15
175.188.0.0/14
180.76.0.0/14
180.84.0.0/15
180.86.0.0/16
180.88.0.0/14
180.94.56.0/21
180.94.96.0/20
180.94.120.0/21
180.95.128.0/17
180.96.0.0/11
180.129.128.0/17
180.130.0.0/16
180.136.0.0/13
180.148.16.0/21
180.148.152.0/21
180.148.216.0/21
180.148.224.0/19
180.149.128.0/19
180.149.236.0/22
180.150.160.0/19
180.152.0.0/13
180.160.0.0/12
180.178.112.0/21
180.178.192.0/18
180.184.0.0/14
180.188.0.0/17
180.189.148.0/22
180.200.252.0/22
180.201.0.0/16
180.202.0.0/15
180.208.0.0/15
180.210.212.0/22
180.210.224.0/19
180.212.0.0/15
180.222.224.0/19
180.223.0.0/16
180.233.0.0/18
180.233.64.0/19
180.233.144.0/22
180.235.64.0/19
180.235.112.0/22
180.235.136.0/22
182.16.144.0/21
182.16.192.0/19
182.18.0.0/17
182.23.184.0/21
182.23.200.0/21
182.32.0.0/12
182.48.96.0/19
182.49.0.0/16
182.50.0.0/20
182.50.112.0/20
182.51.0.0/16
182.54.0.0/17
182.54.244.0/22
182.61.0.0/16
182.80.0.0/13
182.88.0.0/14
182.92.0.0/16
182.96.0.0/11
182.128.0.0/12
182.144.0.0/13
182.157.0.0/16
182.160.64.0/19
182.174.0.0/15
182.200.0.0/13
182.236.128.0/17
182.237.24.0/21
182.238.0.0/16
182.239.0.0/19
182.240.0.0/13
182.254.0.0/16
182.255.32.0/21
182.255.60.0/22
183.0.0.0/10
183.64.0.0/13
183.78.160.0/21
183.78.180.0/22
183.81.172.0/22
183.81.180.0/22
183.84.0.0/15
183.91.128.0/22
183.91.136.0/21
183.91.144.0/20
183.92.0.0/14
183.128.0.0/11
183.160.0.0/13
183.168.0.0/15
183.170.0.0/16
183.172.0.0/14
183.182.0.0/19
183.184.0.0/13
183.192.0.0/10
185.203.36.0/22
188.131.128.0/17
192.51.188.0/24
192.55.46.0/24
192.55.68.0/22
192.102.204.0/23
192.124.154.0/24
192.140.128.0/21
192.140.136.0/22
192.140.156.0/22
192.140.160.0/19
192.140.192.0/20
192.140.208.0/21
192.144.128.0/17
192.197.113.0/24
193.112.0.0/16
198.175.100.0/22
199.212.57.0/24
202.0.100.0/23
202.0.122.0/23
202.0.176.0/22
202.3.128.0/23
202.3.134.0/24
202.4.128.0/19
202.4.252.0/22
202.5.208.0/21
202.5.216.0/22
202.6.6.0/23
202.6.66.0/23
202.6.72.0/23
202.6.87.0/24
202.6.88.0/23
202.6.92.0/23
202.6.103.0/24
202.6.108.0/24
202.6.110.0/23
202.6.114.0/24
202.6.176.0/20
202.8.0.0/24
202.8.2.0/23
202.8.4.0/23
202.8.12.0/24
202.8.24.0/24
202.8.77.0/24
202.8.120.0/22
202.8.128.0/19
202.8.192.0/20
202.9.32.0/24
202.9.34.0/23
202.9.48.0/23
202.9.51.0/24
202.9.52.0/23
202.9.54.0/24
202.9.57.0/24
202.9.58.0/23
202.10.64.0/20
202.10.112.0/20
202.12.1.0/24
202.12.2.0/24
202.12.17.0/24
202.12.18.0/23
202.12.72.0/24
202.12.84.0/23
202.12.96.0/24
202.12.98.0/23
202.12.106.0/24
202.12.111.0/24
202.12.116.0/24
202.14.64.0/23
202.14.69.0/24
202.14.73.0/24
202.14.74.0/23
202.14.76.0/24
202.14.78.0/23
202.14.88.0/24
202.14.97.0/24
202.14.104.0/23
202.14.108.0/23
202.14.111.0/24
202.14.114.0/23
202.14.118.0/23
202.14.124.0/23
202.14.127.0/24
202.14.129.0/24
202.14.135.0/24
202.14.136.0/24
202.14.149.0/24
202.14.151.0/24
202.14.157.0/24
202.14.158.0/23
202.14.169.0/24
202.14.170.0/23
202.14.172.0/22
202.14.176.0/24
202.14.184.0/23
202.14.208.0/23
202.14.213.0/24
202.14.219.0/24
202.14.220.0/24
202.14.222.0/23
202.14.225.0/24
202.14.226.0/23
202.14.231.0/24
202.14.235.0/24
202.14.236.0/22
202.14.246.0/24
202.14.251.0/24
202.20.66.0/24
202.20.79.0/24
202.20.87.0/24
202.20.88.0/23
202.20.90.0/24
202.20.94.0/23
202.20.114.0/24
202.20.117.0/24
202.20.120.0/24
202.20.125.0/24
202.20.126.0/23
202.21.48.0/20
202.21.131.0/24
202.21.132.0/24
202.21.141.0/24
202.21.142.0/24
202.21.147.0/24
202.21.148.0/24
202.21.150.0/23
202.21.152.0/23
202.21.154.0/24
202.21.156.0/24
202.22.248.0/21
202.27.12.0/24
202.27.14.0/24
202.27.136.0/23
202.36.226.0/24
202.38.0.0/22
202.38.8.0/21
202.38.48.0/20
202.38.64.0/18
202.38.128.0/21
202.38.136.0/23
202.38.138.0/24
202.38.140.0/22
202.38.146.0/23
202.38.149.0/24
202.38.150.0/23
202.38.152.0/22
202.38.156.0/24
202.38.158.0/23
202.38.160.0/23
202.38.164.0/22
202.38.168.0/22
202.38.176.0/23
202.38.184.0/21
202.38.192.0/18
202.40.4.0/23
202.40.7.0/24
202.40.15.0/24
202.40.135.0/24
202.40.136.0/24
202.40.140.0/24
202.40.143.0/24
202.40.144.0/23
202.40.150.0/24
202.40.155.0/24
202.40.156.0/24
202.40.158.0/23
202.40.162.0/24
202.41.8.0/23
202.41.11.0/24
202.41.12.0/23
202.41.128.0/24
202.41.130.0/23
202.41.152.0/21
202.41.192.0/24
202.41.196.0/22
202.41.200.0/22
202.41.240.0/20
202.43.76.0/22
202.43.144.0/20
202.44.16.0/20
202.44.48.0/22
202.44.67.0/24
202.44.74.0/24
202.44.97.0/24
202.44.129.0/24
202.44.132.0/23
202.44.146.0/23
202.45.0.0/23
202.45.2.0/24
202.45.15.0/24
202.45.16.0/20
202.46.16.0/23
202.46.18.0/24
202.46.20.0/23
202.46.32.0/19
202.46.128.0/24
202.46.224.0/20
202.47.82.0/23
202.47.96.0/20
202.47.126.0/24
202.47.128.0/24
202.47.130.0/23
202.52.33.0/24
202.52.34.0/24
202.52.47.0/24
202.52.143.0/24
202.52.144.0/24
202.53.140.0/24
202.53.143.0/24
202.57.192.0/20
202.57.212.0/22
202.57.216.0/22
202.57.240.0/20
202.58.0.0/24
202.58.101.0/24
202.58.104.0/22
202.58.112.0/22
202.59.0.0/23
202.59.212.0/22
202.59.236.0/24
202.59.240.0/24
202.60.48.0/21
202.60.96.0/21
202.60.112.0/20
202.60.132.0/22
202.60.136.0/21
202.60.144.0/20
202.61.68.0/22
202.61.76.0/22
202.61.88.0/22
202.61.123.0/24
202.61.127.0/24
202.62.112.0/22
202.62.248.0/22
202.62.252.0/24
202.62.255.0/24
202.63.80.0/20
202.63.160.0/19
202.63.248.0/22
202.63.253.0/24
202.65.0.0/21
202.65.8.0/23
202.65.96.0/20
202.66.168.0/22
202.67.0.0/22
202.69.4.0/22
202.69.16.0/20
202.70.0.0/19
202.70.96.0/20
202.70.192.0/20
202.71.32.0/20
202.72.40.0/21
202.72.80.0/20
202.72.112.0/20
202.73.128.0/22
202.73.240.0/20
202.74.8.0/21
202.74.36.0/24
202.74.42.0/24
202.74.52.0/24
202.74.80.0/20
202.74.232.0/22
202.74.254.0/23
202.75.208.0/20
202.75.252.0/22
202.76.252.0/22
202.77.80.0/21
202.77.92.0/22
202.78.8.0/21
202.79.224.0/21
202.79.248.0/22
202.80.192.0/20
202.81.0.0/22
202.81.176.0/20
202.83.252.0/22
202.84.0.0/20
202.84.16.0/23
202.84.22.0/24
202.84.24.0/21
202.85.208.0/20
202.86.249.0/24
202.86.252.0/22
202.87.80.0/20
202.88.32.0/22
202.89.8.0/21
202.89.96.0/22
202.89.108.0/22
202.89.119.0/24
202.89.232.0/21
202.90.0.0/22
202.90.16.0/20
202.90.37.0/24
202.90.96.0/19
202.90.193.0/24
202.90.196.0/24
202.90.205.0/24
202.90.224.0/20
202.91.0.0/22
202.91.36.0/22
202.91.96.0/20
202.91.128.0/22
202.91.176.0/20
202.91.224.0/19
202.92.0.0/22
202.92.8.0/21
202.92.48.0/20
202.92.252.0/22
202.93.0.0/22
202.93.252.0/22
202.94.68.0/24
202.94.74.0/24
202.94.81.0/24
202.94.92.0/22
202.95.240.0/21
202.95.252.0/22
202.96.0.0/12
202.112.0.0/13
202.120.0.0/15
202.122.0.0/21
202.122.32.0/21
202.122.64.0/19
202.122.112.0/20
202.122.128.0/24
202.122.132.0/24
202.123.96.0/20
202.123.116.0/22
202.123.120.0/22
202.124.16.0/21
202.124.24.0/22
202.125.107.0/24
202.125.109.0/24
202.125.112.0/20
202.125.176.0/20
202.127.0.0/21
202.127.12.0/22
202.127.16.0/20
202.127.40.0/21
202.127.48.0/20
202.127.112.0/20
202.127.128.0/19
202.127.160.0/21
202.127.192.0/20
202.127.208.0/23
202.127.212.0/22
202.127.216.0/21
202.127.224.0/19
202.129.208.0/24
202.130.0.0/19
202.130.39.0/24
202.130.224.0/19
202.131.16.0/21
202.131.48.0/20
202.131.208.0/20
202.133.32.0/20
202.134.58.0/24
202.134.128.0/20
202.134.208.0/20
202.136.48.0/20
202.136.208.0/20
202.136.224.0/20
202.136.248.0/22
202.137.231.0/24
202.140.140.0/22
202.140.144.0/20
202.141.160.0/19
202.142.16.0/20
202.143.4.0/22
202.143.16.0/20
202.143.32.0/20
202.143.56.0/21
202.143.100.0/22
202.143.104.0/22
202.144.196.0/22
202.146.160.0/20
202.146.186.0/24
202.146.188.0/22
202.146.196.0/22
202.146.200.0/21
202.147.144.0/20
202.148.32.0/20
202.148.64.0/18
202.149.32.0/19
202.149.160.0/19
202.149.224.0/19
202.150.16.0/20
202.150.32.0/20
202.150.56.0/22
202.150.192.0/20
202.150.224.0/19
202.151.0.0/22
202.151.33.0/24
202.151.128.0/19
202.152.176.0/20
202.153.0.0/22
202.153.7.0/24
202.153.48.0/20
202.157.192.0/19
202.158.160.0/19
202.158.242.0/24
202.160.140.0/22
202.160.156.0/22
202.160.176.0/20
202.162.67.0/24
202.162.75.0/24
202.164.0.0/20
202.164.96.0/19
202.165.176.0/20
202.165.208.0/20
202.165.239.0/24
202.165.240.0/23
202.165.243.0/24
202.165.245.0/24
202.165.251.0/24
202.165.252.0/22
202.166.224.0/19
202.168.80.0/22
202.168.128.0/20
202.168.160.0/19
202.170.128.0/19
202.170.216.0/21
202.170.224.0/19
202.171.216.0/21
202.171.232.0/24
202.171.235.0/24
202.172.0.0/22
202.172.7.0/24
202.173.0.0/22
202.173.6.0/24
202.173.8.0/21
202.173.112.0/22
202.173.224.0/19
202.174.64.0/20
202.174.124.0/22
202.176.224.0/19
202.179.160.0/20
202.179.240.0/20
202.180.128.0/19
202.180.208.0/21
202.181.8.0/22
202.181.28.0/22
202.181.112.0/20
202.182.32.0/20
202.182.192.0/19
202.189.0.0/18
202.189.80.0/20
202.189.184.0/21
202.191.0.0/24
202.191.68.0/22
202.191.72.0/21
202.191.80.0/20
202.192.0.0/12
203.0.4.0/22
203.0.10.0/23
203.0.18.0/24
203.0.24.0/24
203.0.42.0/23
203.0.45.0/24
203.0.46.0/23
203.0.81.0/24
203.0.82.0/23
203.0.90.0/23
203.0.96.0/23
203.0.104.0/21
203.0.114.0/23
203.0.122.0/24
203.0.128.0/24
203.0.130.0/23
203.0.132.0/22
203.0.137.0/24
203.0.142.0/24
203.0.144.0/24
203.0.146.0/24
203.0.148.0/24
203.0.150.0/23
203.0.152.0/24
203.0.177.0/24
203.0.224.0/24
203.1.4.0/22
203.1.18.0/24
203.1.26.0/23
203.1.65.0/24
203.1.66.0/23
203.1.70.0/23
203.1.76.0/23
203.1.90.0/24
203.1.97.0/24
203.1.98.0/23
203.1.100.0/22
203.1.108.0/24
203.1.253.0/24
203.1.254.0/24
203.2.64.0/21
203.2.73.0/24
203.2.112.0/21
203.2.126.0/23
203.2.140.0/24
203.2.150.0/24
203.2.152.0/22
203.2.156.0/23
203.2.160.0/21
203.2.180.0/23
203.2.196.0/23
203.2.209.0/24
203.2.214.0/23
203.2.226.0/23
203.2.229.0/24
203.2.236.0/23
203.3.68.0/24
203.3.72.0/23
203.3.75.0/24
203.3.80.0/21
203.3.96.0/22
203.3.105.0/24
203.3.112.0/21
203.3.120.0/24
203.3.123.0/24
203.3.135.0/24
203.3.139.0/24
203.3.143.0/24
203.4.132.0/23
203.4.134.0/24
203.4.151.0/24
203.4.152.0/22
203.4.174.0/23
203.4.180.0/24
203.4.186.0/24
203.4.205.0/24
203.4.208.0/22
203.4.227.0/24
203.4.230.0/23
203.5.4.0/23
203.5.7.0/24
203.5.8.0/23
203.5.11.0/24
203.5.21.0/24
203.5.22.0/24
203.5.44.0/24
203.5.46.0/23
203.5.52.0/22
203.5.56.0/23
203.5.60.0/23
203.5.114.0/23
203.5.118.0/24
203.5.120.0/24
203.5.172.0/24
203.5.180.0/23
203.5.182.0/24
203.5.185.0/24
203.5.186.0/24
203.5.188.0/23
203.5.190.0/24
203.5.195.0/24
203.5.214.0/23
203.5.218.0/23
203.6.131.0/24
203.6.136.0/24
203.6.138.0/23
203.6.142.0/24
203.6.150.0/23
203.6.157.0/24
203.6.159.0/24
203.6.224.0/20
203.6.248.0/23
203.7.129.0/24
203.7.138.0/23
203.7.147.0/24
203.7.150.0/23
203.7.158.0/24
203.7.192.0/23
203.7.200.0/24
203.8.0.0/24
203.8.8.0/24
203.8.23.0/24
203.8.70.0/24
203.8.82.0/24
203.8.86.0/23
203.8.91.0/24
203.8.110.0/23
203.8.115.0/24
203.8.166.0/23
203.8.169.0/24
203.8.173.0/24
203.8.184.0/24
203.8.186.0/23
203.8.190.0/23
203.8.192.0/24
203.8.197.0/24
203.8.198.0/23
203.8.203.0/24
203.8.209.0/24
203.8.210.0/23
203.8.212.0/22
203.8.217.0/24
203.8.220.0/24
203.9.32.0/24
203.9.36.0/23
203.9.57.0/24
203.9.63.0/24
203.9.65.0/24
203.9.70.0/23
203.9.72.0/24
203.9.75.0/24
203.9.76.0/23
203.9.96.0/22
203.9.100.0/23
203.9.108.0/24
203.9.158.0/24
203.10.34.0/24
203.10.56.0/24
203.10.74.0/23
203.10.84.0/22
203.10.88.0/24
203.10.95.0/24
203.10.125.0/24
203.11.70.0/24
203.11.76.0/22
203.11.82.0/24
203.11.84.0/22
203.11.100.0/22
203.11.109.0/24
203.11.117.0/24
203.11.122.0/24
203.11.126.0/24
203.11.136.0/22
203.11.141.0/24
203.11.142.0/23
203.11.180.0/22
203.11.208.0/22
203.12.16.0/24
203.12.19.0/24
203.12.24.0/24
203.12.57.0/24
203.12.65.0/24
203.12.66.0/24
203.12.70.0/23
203.12.87.0/24
203.12.100.0/23
203.12.103.0/24
203.12.114.0/24
203.12.118.0/24
203.12.130.0/24
203.12.137.0/24
203.12.196.0/22
203.12.211.0/24
203.12.219.0/24
203.12.226.0/24
203.12.240.0/22
203.13.18.0/24
203.13.24.0/24
203.13.44.0/23
203.13.88.0/23
203.13.92.0/22
203.13.173.0/24
203.13.224.0/23
203.13.227.0/24
203.13.233.0/24
203.14.24.0/22
203.14.33.0/24
203.14.56.0/24
203.14.61.0/24
203.14.62.0/24
203.14.104.0/24
203.14.114.0/23
203.14.118.0/24
203.14.162.0/24
203.14.192.0/24
203.14.194.0/23
203.14.214.0/24
203.14.231.0/24
203.14.246.0/24
203.15.0.0/20
203.15.20.0/23
203.15.22.0/24
203.15.87.0/24
203.15.88.0/23
203.15.105.0/24
203.15.112.0/21
203.15.130.0/23
203.15.149.0/24
203.15.151.0/24
203.15.156.0/22
203.15.174.0/24
203.15.227.0/24
203.15.232.0/21
203.15.240.0/23
203.15.246.0/24
203.16.10.0/24
203.16.12.0/23
203.16.16.0/21
203.16.27.0/24
203.16.38.0/24
203.16.49.0/24
203.16.50.0/23
203.16.58.0/24
203.16.63.0/24
203.16.133.0/24
203.16.161.0/24
203.16.162.0/24
203.16.186.0/23
203.16.228.0/24
203.16.238.0/24
203.16.240.0/24
203.16.245.0/24
203.17.2.0/24
203.17.18.0/24
203.17.28.0/24
203.17.39.0/24
203.17.56.0/24
203.17.74.0/23
203.17.88.0/23
203.17.136.0/24
203.17.164.0/24
203.17.187.0/24
203.17.190.0/23
203.17.231.0/24
203.17.233.0/24
203.17.248.0/23
203.17.255.0/24
203.18.2.0/23
203.18.4.0/24
203.18.7.0/24
203.18.31.0/24
203.18.37.0/24
203.18.48.0/23
203.18.52.0/24
203.18.72.0/22
203.18.80.0/23
203.18.87.0/24
203.18.100.0/23
203.18.105.0/24
203.18.107.0/24
203.18.110.0/24
203.18.129.0/24
203.18.131.0/24
203.18.132.0/23
203.18.144.0/24
203.18.153.0/24
203.18.199.0/24
203.18.208.0/24
203.18.211.0/24
203.18.215.0/24
203.19.1.0/24
203.19.18.0/24
203.19.24.0/24
203.19.30.0/24
203.19.32.0/21
203.19.41.0/24
203.19.44.0/23
203.19.46.0/24
203.19.58.0/24
203.19.60.0/23
203.19.64.0/24
203.19.68.0/24
203.19.72.0/24
203.19.101.0/24
203.19.111.0/24
203.19.131.0/24
203.19.133.0/24
203.19.144.0/24
203.19.147.0/24
203.19.149.0/24
203.19.156.0/24
203.19.176.0/24
203.19.178.0/23
203.19.208.0/24
203.19.228.0/22
203.19.233.0/24
203.19.242.0/24
203.19.248.0/23
203.19.255.0/24
203.20.17.0/24
203.20.40.0/23
203.20.44.0/24
203.20.48.0/24
203.20.61.0/24
203.20.65.0/24
203.20.84.0/23
203.20.89.0/24
203.20.106.0/23
203.20.115.0/24
203.20.117.0/24
203.20.118.0/23
203.20.122.0/24
203.20.126.0/23
203.20.135.0/24
203.20.136.0/21
203.20.150.0/24
203.20.230.0/24
203.20.232.0/24
203.20.236.0/24
203.21.0.0/23
203.21.2.0/24
203.21.8.0/24
203.21.10.0/24
203.21.18.0/24
203.21.33.0/24
203.21.34.0/24
203.21.41.0/24
203.21.44.0/24
203.21.68.0/24
203.21.82.0/24
203.21.96.0/22
203.21.124.0/24
203.21.136.0/23
203.21.145.0/24
203.21.206.0/24
203.22.24.0/24
203.22.28.0/23
203.22.31.0/24
203.22.68.0/24
203.22.76.0/24
203.22.78.0/24
203.22.84.0/24
203.22.87.0/24
203.22.92.0/22
203.22.99.0/24
203.22.106.0/24
203.22.122.0/23
203.22.131.0/24
203.22.163.0/24
203.22.166.0/24
203.22.170.0/24
203.22.176.0/21
203.22.194.0/24
203.22.242.0/23
203.22.245.0/24
203.22.246.0/24
203.22.252.0/23
203.23.0.0/24
203.23.47.0/24
203.23.61.0/24
203.23.62.0/23
203.23.73.0/24
203.23.85.0/24
203.23.92.0/22
203.23.98.0/24
203.23.107.0/24
203.23.112.0/24
203.23.130.0/24
203.23.140.0/23
203.23.172.0/24
203.23.182.0/24
203.23.186.0/23
203.23.192.0/24
203.23.197.0/24
203.23.198.0/24
203.23.204.0/22
203.23.224.0/24
203.23.226.0/23
203.23.228.0/22
203.23.249.0/24
203.23.251.0/24
203.24.13.0/24
203.24.18.0/24
203.24.27.0/24
203.24.43.0/24
203.24.56.0/24
203.24.58.0/24
203.24.67.0/24
203.24.74.0/24
203.24.79.0/24
203.24.80.0/23
203.24.84.0/23
203.24.86.0/24
203.24.90.0/24
203.24.111.0/24
203.24.112.0/24
203.24.116.0/24
203.24.122.0/23
203.24.145.0/24
203.24.152.0/23
203.24.157.0/24
203.24.161.0/24
203.24.167.0/24
203.24.186.0/23
203.24.199.0/24
203.24.202.0/24
203.24.212.0/23
203.24.217.0/24
203.24.219.0/24
203.24.244.0/24
203.25.19.0/24
203.25.20.0/23
203.25.46.0/24
203.25.48.0/21
203.25.64.0/23
203.25.91.0/24
203.25.99.0/24
203.25.100.0/24
203.25.106.0/24
203.25.131.0/24
203.25.135.0/24
203.25.138.0/24
203.25.147.0/24
203.25.153.0/24
203.25.154.0/23
203.25.164.0/24
203.25.166.0/24
203.25.174.0/23
203.25.180.0/24
203.25.182.0/24
203.25.191.0/24
203.25.199.0/24
203.25.200.0/24
203.25.202.0/23
203.25.208.0/20
203.25.229.0/24
203.25.235.0/24
203.25.236.0/24
203.25.242.0/24
203.26.12.0/24
203.26.34.0/24
203.26.49.0/24
203.26.50.0/24
203.26.55.0/24
203.26.56.0/23
203.26.60.0/24
203.26.65.0/24
203.26.68.0/24
203.26.76.0/24
203.26.80.0/24
203.26.84.0/24
203.26.97.0/24
203.26.102.0/23
203.26.115.0/24
203.26.116.0/24
203.26.129.0/24
203.26.143.0/24
203.26.144.0/24
203.26.148.0/23
203.26.154.0/24
203.26.158.0/23
203.26.170.0/24
203.26.173.0/24
203.26.176.0/24
203.26.185.0/24
203.26.202.0/23
203.26.210.0/24
203.26.214.0/24
203.26.222.0/24
203.26.224.0/24
203.26.228.0/24
203.26.232.0/24
203.27.0.0/24
203.27.10.0/24
203.27.15.0/24
203.27.16.0/24
203.27.20.0/24
203.27.22.0/23
203.27.40.0/24
203.27.45.0/24
203.27.53.0/24
203.27.65.0/24
203.27.66.0/24
203.27.81.0/24
203.27.88.0/24
203.27.102.0/24
203.27.109.0/24
203.27.117.0/24
203.27.121.0/24
203.27.122.0/23
203.27.125.0/24
203.27.200.0/24
203.27.202.0/24
203.27.233.0/24
203.27.241.0/24
203.27.250.0/24
203.28.10.0/24
203.28.12.0/24
203.28.33.0/24
203.28.34.0/23
203.28.43.0/24
203.28.44.0/24
203.28.54.0/24
203.28.56.0/24
203.28.73.0/24
203.28.74.0/24
203.28.76.0/24
203.28.86.0/24
203.28.88.0/24
203.28.112.0/24
203.28.131.0/24
203.28.136.0/24
203.28.140.0/24
203.28.145.0/24
203.28.165.0/24
203.28.169.0/24
203.28.170.0/24
203.28.178.0/23
203.28.185.0/24
203.28.187.0/24
203.28.196.0/24
203.28.226.0/23
203.28.239.0/24
203.29.2.0/24
203.29.8.0/23
203.29.13.0/24
203.29.14.0/24
203.29.28.0/24
203.29.46.0/24
203.29.57.0/24
203.29.61.0/24
203.29.63.0/24
203.29.69.0/24
203.29.73.0/24
203.29.81.0/24
203.29.90.0/24
203.29.95.0/24
203.29.100.0/24
203.29.103.0/24
203.29.112.0/24
203.29.120.0/22
203.29.182.0/23
203.29.187.0/24
203.29.189.0/24
203.29.190.0/24
203.29.205.0/24
203.29.210.0/24
203.29.217.0/24
203.29.227.0/24
203.29.231.0/24
203.29.233.0/24
203.29.234.0/24
203.29.248.0/24
203.29.254.0/23
203.30.16.0/23
203.30.25.0/24
203.30.27.0/24
203.30.29.0/24
203.30.66.0/24
203.30.81.0/24
203.30.87.0/24
203.30.111.0/24
203.30.121.0/24
203.30.123.0/24
203.30.152.0/24
203.30.156.0/24
203.30.162.0/24
203.30.173.0/24
203.30.175.0/24
203.30.187.0/24
203.30.194.0/24
203.30.217.0/24
203.30.220.0/24
203.30.222.0/24
203.30.232.0/23
203.30.235.0/24
203.30.240.0/23
203.30.246.0/24
203.30.250.0/23
203.31.45.0/24
203.31.46.0/24
203.31.49.0/24
203.31.51.0/24
203.31.54.0/23
203.31.69.0/24
203.31.72.0/24
203.31.80.0/24
203.31.85.0/24
203.31.97.0/24
203.31.105.0/24
203.31.106.0/24
203.31.108.0/23
203.31.124.0/24
203.31.162.0/24
203.31.174.0/24
203.31.177.0/24
203.31.181.0/24
203.31.187.0/24
203.31.189.0/24
203.31.204.0/24
203.31.220.0/24
203.31.222.0/23
203.31.225.0/24
203.31.229.0/24
203.31.248.0/23
203.31.253.0/24
203.32.20.0/24
203.32.48.0/23
203.32.56.0/24
203.32.60.0/24
203.32.62.0/24
203.32.68.0/23
203.32.76.0/24
203.32.81.0/24
203.32.84.0/23
203.32.95.0/24
203.32.102.0/24
203.32.105.0/24
203.32.130.0/24
203.32.133.0/24
203.32.140.0/24
203.32.152.0/24
203.32.186.0/23
203.32.192.0/24
203.32.196.0/24
203.32.203.0/24
203.32.204.0/23
203.32.212.0/24
203.33.4.0/24
203.33.7.0/24
203.33.8.0/21
203.33.21.0/24
203.33.26.0/24
203.33.32.0/24
203.33.63.0/24
203.33.64.0/24
203.33.67.0/24
203.33.68.0/24
203.33.73.0/24
203.33.79.0/24
203.33.100.0/24
203.33.122.0/24
203.33.129.0/24
203.33.131.0/24
203.33.145.0/24
203.33.156.0/24
203.33.158.0/23
203.33.174.0/24
203.33.185.0/24
203.33.200.0/24
203.33.202.0/23
203.33.204.0/24
203.33.206.0/23
203.33.214.0/23
203.33.224.0/23
203.33.226.0/24
203.33.233.0/24
203.33.243.0/24
203.33.250.0/24
203.34.4.0/24
203.34.21.0/24
203.34.27.0/24
203.34.39.0/24
203.34.48.0/23
203.34.54.0/24
203.34.56.0/23
203.34.67.0/24
203.34.69.0/24
203.34.76.0/24
203.34.92.0/24
203.34.106.0/24
203.34.113.0/24
203.34.147.0/24
203.34.150.0/24
203.34.152.0/23
203.34.161.0/24
203.34.162.0/24
203.34.187.0/24
203.34.192.0/21
203.34.204.0/22
203.34.232.0/24
203.34.240.0/24
203.34.242.0/24
203.34.245.0/24
203.34.251.0/24
203.55.2.0/23
203.55.4.0/24
203.55.10.0/24
203.55.13.0/24
203.55.22.0/24
203.55.30.0/24
203.55.93.0/24
203.55.101.0/24
203.55.109.0/24
203.55.110.0/24
203.55.116.0/23
203.55.119.0/24
203.55.128.0/23
203.55.146.0/23
203.55.192.0/24
203.55.196.0/24
203.55.218.0/23
203.55.221.0/24
203.55.224.0/24
203.56.1.0/24
203.56.4.0/24
203.56.12.0/24
203.56.24.0/24
203.56.38.0/24
203.56.40.0/24
203.56.46.0/24
203.56.48.0/21
203.56.68.0/23
203.56.82.0/23
203.56.84.0/23
203.56.95.0/24
203.56.110.0/24
203.56.121.0/24
203.56.161.0/24
203.56.169.0/24
203.56.172.0/23
203.56.175.0/24
203.56.183.0/24
203.56.185.0/24
203.56.187.0/24
203.56.192.0/24
203.56.198.0/24
203.56.201.0/24
203.56.208.0/23
203.56.210.0/24
203.56.214.0/24
203.56.216.0/24
203.56.227.0/24
203.56.228.0/24
203.56.231.0/24
203.56.232.0/24
203.56.240.0/24
203.56.252.0/24
203.56.254.0/24
203.57.5.0/24
203.57.6.0/24
203.57.12.0/23
203.57.28.0/24
203.57.39.0/24
203.57.46.0/24
203.57.58.0/24
203.57.61.0/24
203.57.66.0/24
203.57.69.0/24
203.57.70.0/23
203.57.73.0/24
203.57.90.0/24
203.57.101.0/24
203.57.109.0/24
203.57.123.0/24
203.57.157.0/24
203.57.200.0/24
203.57.202.0/24
203.57.206.0/24
203.57.222.0/24
203.57.224.0/20
203.57.246.0/23
203.57.249.0/24
203.57.253.0/24
203.57.254.0/23
203.62.2.0/24
203.62.131.0/24
203.62.139.0/24
203.62.161.0/24
203.62.197.0/24
203.62.228.0/22
203.62.234.0/24
203.62.246.0/24
203.76.160.0/22
203.76.168.0/22
203.76.208.0/21
203.76.216.0/22
203.76.240.0/21
203.77.180.0/22
203.78.48.0/20
203.78.156.0/22
203.79.0.0/20
203.79.32.0/20
203.80.4.0/23
203.80.32.0/20
203.80.57.0/24
203.80.129.0/24
203.80.132.0/22
203.80.136.0/21
203.80.144.0/20
203.81.0.0/21
203.81.16.0/20
203.81.244.0/22
203.82.0.0/23
203.82.16.0/21
203.82.112.0/20
203.82.224.0/20
203.83.0.0/22
203.83.8.0/21
203.83.56.0/21
203.83.224.0/20
203.86.0.0/17
203.86.250.0/24
203.86.254.0/23
203.88.32.0/19
203.88.100.0/22
203.88.192.0/19
203.89.0.0/22
203.89.8.0/21
203.89.100.0/22
203.89.133.0/24
203.89.136.0/22
203.89.144.0/24
203.90.0.0/22
203.90.8.0/21
203.90.128.0/18
203.90.192.0/19
203.91.32.0/19
203.91.96.0/20
203.91.120.0/21
203.92.0.0/22
203.92.6.0/24
203.92.160.0/19
203.93.0.0/16
203.94.0.0/19
203.95.0.0/21
203.95.96.0/19
203.95.128.0/18
203.95.200.0/21
203.95.208.0/22
203.95.224.0/19
203.99.8.0/21
203.99.16.0/20
203.99.80.0/20
203.100.32.0/20
203.100.48.0/21
203.100.58.0/24
203.100.60.0/24
203.100.63.0/24
203.100.80.0/20
203.100.96.0/19
203.100.192.0/20
203.104.32.0/20
203.105.96.0/19
203.105.128.0/19
203.107.0.0/17
203.110.160.0/19
203.110.208.0/20
203.110.232.0/23
203.110.234.0/24
203.114.80.0/20
203.114.244.0/22
203.118.192.0/19
203.118.241.0/24
203.118.248.0/22
203.119.24.0/21
203.119.32.0/22
203.119.80.0/22
203.119.85.0/24
203.119.113.0/24
203.119.114.0/23
203.119.116.0/22
203.119.120.0/21
203.119.128.0/17
203.123.58.0/24
203.128.32.0/19
203.128.96.0/19
203.128.224.0/21
203.129.8.0/21
203.130.32.0/19
203.132.32.0/19
203.134.240.0/21
203.135.96.0/19
203.135.160.0/20
203.142.219.0/24
203.142.224.0/19
203.144.96.0/19
203.145.0.0/19
203.148.0.0/18
203.148.64.0/20
203.148.80.0/22
203.148.86.0/23
203.149.92.0/22
203.152.64.0/19
203.152.128.0/19
203.153.0.0/22
203.156.192.0/18
203.158.16.0/21
203.160.52.0/22
203.160.104.0/21
203.160.129.0/24
203.160.192.0/19
203.161.0.0/22
203.161.180.0/24
203.161.183.0/24
203.161.192.0/19
203.166.160.0/19
203.167.28.0/22
203.168.0.0/19
203.170.58.0/23
203.171.0.0/22
203.171.208.0/24
203.171.224.0/20
203.174.4.0/24
203.174.6.0/23
203.174.96.0/19
203.175.128.0/19
203.175.192.0/18
203.176.0.0/18
203.176.64.0/19
203.176.168.0/21
203.184.80.0/20
203.185.189.0/24
203.187.160.0/19
203.189.0.0/23
203.189.6.0/23
203.189.112.0/22
203.189.192.0/19
203.189.232.0/22
203.189.240.0/22
203.190.96.0/20
203.190.249.0/24
203.191.0.0/23
203.191.2.0/24
203.191.5.0/24
203.191.7.0/24
203.191.16.0/20
203.191.64.0/18
203.191.133.0/24
203.191.144.0/20
203.192.0.0/19
203.193.224.0/19
203.194.120.0/21
203.195.64.0/19
203.195.112.0/21
203.195.128.0/17
203.196.0.0/20
203.196.28.0/22
203.201.181.0/24
203.201.182.0/24
203.202.236.0/22
203.205.64.0/19
203.205.128.0/17
203.207.64.0/18
203.207.128.0/17
203.208.0.0/20
203.208.16.0/22
203.208.32.0/19
203.209.224.0/19
203.212.0.0/20
203.212.80.0/20
203.215.232.0/21
203.217.164.0/22
203.223.0.0/20
203.223.16.0/21
204.52.191.0/24
210.2.0.0/19
210.5.0.0/19
210.5.56.0/21
210.5.128.0/19
210.7.56.0/21
210.12.0.0/15
210.14.64.0/19
210.14.112.0/20
210.14.128.0/17
210.15.0.0/17
210.15.128.0/18
210.16.104.0/22
210.16.128.0/18
210.21.0.0/16
210.22.0.0/16
210.23.32.0/19
210.25.0.0/16
210.26.0.0/15
210.28.0.0/14
210.32.0.0/12
210.51.0.0/16
210.52.0.0/15
210.56.192.0/19
210.72.0.0/14
210.76.0.0/15
210.78.0.0/16
210.79.64.0/18
210.79.224.0/19
210.82.0.0/15
210.87.128.0/18
210.185.192.0/18
210.192.96.0/19
211.64.0.0/13
211.80.0.0/12
211.96.0.0/13
211.136.0.0/13
211.144.0.0/12
211.160.0.0/13
212.64.0.0/17
212.129.128.0/17
218.0.0.0/11
218.56.0.0/13
218.64.0.0/11
218.96.0.0/14
218.100.88.0/21
218.100.96.0/19
218.100.128.0/17
218.104.0.0/14
218.108.0.0/15
218.185.192.0/19
218.185.240.0/21
218.192.0.0/12
218.240.0.0/13
218.249.0.0/16
219.72.0.0/16
219.82.0.0/16
219.83.128.0/17
219.90.68.0/22
219.90.72.0/21
219.128.0.0/11
219.216.0.0/13
219.224.0.0/12
219.242.0.0/15
219.244.0.0/14
220.101.192.0/18
220.112.0.0/14
220.152.128.0/17
220.154.0.0/15
220.158.240.0/22
220.160.0.0/11
220.192.0.0/12
220.231.0.0/18
220.231.128.0/17
220.232.64.0/18
220.234.0.0/16
220.242.0.0/15
220.247.136.0/21
220.248.0.0/14
220.252.0.0/16
221.0.0.0/13
221.8.0.0/14
221.12.0.0/17
221.12.128.0/18
221.13.0.0/16
221.14.0.0/15
221.122.0.0/15
221.128.128.0/17
221.129.0.0/16
221.130.0.0/15
221.133.224.0/19
221.136.0.0/15
221.172.0.0/14
221.176.0.0/13
221.192.0.0/14
221.196.0.0/15
221.198.0.0/16
221.199.0.0/17
221.199.128.0/18
221.199.192.0/20
221.199.224.0/19
221.200.0.0/13
221.208.0.0/12
221.224.0.0/12
222.16.0.0/12
222.32.0.0/11
222.64.0.0/11
222.125.0.0/16
222.126.128.0/17
222.128.0.0/12
222.160.0.0/14
222.168.0.0/13
222.176.0.0/12
222.192.0.0/11
222.240.0.0/13
222.248.0.0/15
223.0.0.0/12
223.20.0.0/15
223.27.184.0/22
223.29.208.0/22
223.29.252.0/22
223.64.0.0/11
223.96.0.0/12
223.112.0.0/14
223.116.0.0/15
223.120.128.0/17
223.121.128.0/17
223.122.0.0/15
223.124.0.0/14
223.128.0.0/15
223.144.0.0/12
223.160.0.0/14
223.166.0.0/15
223.192.0.0/15
223.198.0.0/15
223.201.0.0/16
223.202.0.0/15
223.208.0.0/13
223.220.0.0/15
223.223.176.0/20
223.223.192.0/20
223.240.0.0/13
223.248.0.0/14
223.252.128.0/17
223.254.0.0/16
223.255.0.0/17
223.255.236.0/22
223.255.252.0/23
2001:250::/31
2001:252::/32
2001:254::/32
2001:256::/32
2001:7fa:5::/48
2001:7fa:10::/48
2001:c68::/32
2001:cc0::/32
2001:da8::/31
2001:daa::/32
2001:dc7::/32
2001:dd8:1::/48
2001:dd8:5::/48
2001:dd8:1a::/48
2001:dd9::/48
2001:df0:27e::/48
2001:df0:423::/48
2001:df0:2180::/48
2001:df0:2d80::/48
2001:df0:2e00::/48
2001:df0:2e80::/48
2001:df0:4500::/48
2001:df0:4580::/48
2001:df0:5d00::/47
2001:df0:5d80::/48
2001:df0:9a00::/48
2001:df0:b180::/48
2001:df0:bf80::/48
2001:df0:d180::/48
2001:df0:d880::/48
2001:df1:680::/48
2001:df1:c80::/48
2001:df1:2080::/48
2001:df1:3d00::/48
2001:df1:4180::/48
2001:df1:4580::/48
2001:df1:5280::/48
2001:df1:5b80::/48
2001:df1:6180::/48
2001:df1:6b80::/48
2001:df1:8b00::/48
2001:df1:a100::/48
2001:df1:b980::/48
2001:df1:bd80::/48
2001:df1:c900::/48
2001:df1:d100::/48
2001:df1:d180::/48
2001:df1:da00::/48
2001:df1:e600::/48
2001:df1:f480::/48
2001:df1:f580::/48
2001:df1:fd80::/48
2001:df2:80::/48
2001:df2:180::/47
2001:df2:5200::/48
2001:df2:5780::/48
2001:df2:5a80::/48
2001:df3:b100::/48
2001:df4:1500::/48
2001:df4:2f00::/48
2001:df4:5900::/48
2001:df4:cf00::/48
2001:df5:7800::/48
2001:df6:100::/48
2001:df6:f00::/48
2001:df6:1c00::/48
2001:df6:3d00::/48
2001:df6:5d00::/48
2001:df6:6800::/48
2001:df6:df00::/48
2001:df6:f400::/48
2001:df7:5900::/48
2001:df7:6600::/48
2001:df7:ab00::/48
2001:e08::/32
2001:e18::/32
2001:e80::/32
2001:e88::/32
2001:f38::/32
2001:f88::/32
2001:4438::/32
2001:4510::/29
2400:1040::/32
2400:12c0::/32
2400:1340::/32
2400:1380::/32
2400:15c0::/32
2400:1640::/32
2400:16c0::/32
2400:1740::/32
2400:17c0::/32
2400:1840::/32
2400:18c0::/32
2400:1940::/32
2400:19c0::/32
2400:1a40::/32
2400:1ac0::/32
2400:1b40::/32
2400:1cc0::/32
2400:1d40::/32
2400:1dc0::/32
2400:1e40::/32
2400:1ec0::/32
2400:1f40::/32
2400:1fc0::/32
2400:3040::/32
2400:3140::/32
2400:31c0::/32
2400:3200::/32
2400:3280::/32
2400:32c0::/32
2400:3340::/32
2400:33c0::/32
2400:3440::/32
2400:34c0::/32
2400:3540::/32
2400:35c0::/32
2400:3600::/32
2400:3640::/32
2400:36c0::/32
2400:38c0::/32
2400:39c0::/32
2400:3a00::/32
2400:3a40::/32
2400:3b40::/32
2400:3bc0::/32
2400:3c40::/32
2400:3cc0::/32
2400:3e00::/32
2400:3f40::/32
2400:3fc0::/32
2400:4440::/32
2400:44c0::/32
2400:4540::/32
2400:4600::/32
2400:4640::/32
2400:46c0::/32
2400:4740::/32
2400:4bc0::/32
2400:4e00::/32
2400:4e40::/32
2400:5080::/32
2400:5280::/32
2400:5400::/32
2400:5580::/32
2400:55c0::/32
2400:5600::/32
2400:5640::/32
2400:56c0::/32
2400:57c0::/32
2400:5840::/32
2400:5a00::/32
2400:5a40::/32
2400:5ac0::/32
2400:5b40::/32
2400:5bc0::/32
2400:5c40::/32
2400:5c80::/32
2400:5cc0::/32
2400:5e80::/32
2400:5fc0::/32
2400:6000::/32
2400:6040::/32
2400:60c0::/32
2400:61c0::/32
2400:6200::/32
2400:6600::/32
2400:6640::/32
2400:66c0::/32
2400:6740::/32
2400:67c0::/32
2400:6840::/32
2400:68c0::/32
2400:6940::/32
2400:69c0::/32
2400:6a00::/32
2400:6a40::/32
2400:6ac0::/32
2400:6b40::/32
2400:6bc0::/32
2400:6c40::/32
2400:6cc0::/32
2400:6d40::/32
2400:6dc0::/32
2400:6e00::/32
2400:6e40::/32
2400:6ec0::/32
2400:6f40::/32
2400:6f80::/32
2400:6fc0::/32
2400:7040::/32
2400:7100::/32
2400:7140::/32
2400:71c0::/32
2400:7200::/32
2400:7240::/32
2400:72c0::/32
2400:7340::/32
2400:73c0::/32
2400:7440::/32
2400:74c0::/32
2400:7540::/32
2400:75c0::/32
2400:7640::/32
2400:7680::/32
2400:76c0::/32
2400:7740::/32
2400:77c0::/32
2400:79c0::/32
2400:7ac0::/32
2400:7bc0::/32
2400:7f80::/32
2400:7fc0::/32
2400:8080::/32
2400:8200::/32
2400:82c0::/32
2400:8580::/32
2400:8600::/32
2400:8780::/32
2400:87c0::/32
2400:8840::/32
2400:8980::/32
2400:89c0::/32
2400:8e00::/32
2400:8f00::/32
2400:8fc0::/32
2400:9040::/32
2400:9340::/32
2400:9580::/32
2400:95c0::/32
2400:9600::/32
2400:98c0::/32
2400:9a00::/32
2400:9dc0::/32
2400:9e00::/32
2400:a040::/32
2400:a380::/32
2400:a480::/32
2400:a6c0::/32
2400:a780::/32
2400:a8c0::/32
2400:a900::/32
2400:a980::/29
2400:abc0::/32
2400:ae00::/32
2400:b200::/32
2400:b2c0::/32
2400:b500::/32
2400:b600::/32
2400:b6c0::/32
2400:b700::/32
2400:b7c0::/32
2400:b8c0::/32
2400:b9c0::/32
2400:ba00::/32
2400:ba40::/31
2400:bac0::/32
2400:bc40::/32
2400:be00::/32
2400:bf00::/32
2400:c200::/32
2400:c380::/32
2400:c840::/32
2400:c8c0::/32
2400:c940::/32
2400:c9c0::/32
2400:ca40::/32
2400:cac0::/32
2400:cb40::/32
2400:cb80::/32
2400:cbc0::/32
2400:cc40::/32
2400:cc80::/32
2400:ccc0::/32
2400:cd40::/32
2400:cdc0::/32
2400:ce00::/32
2400:ce40::/32
2400:cf40::/32
2400:cf80::/32
2400:cfc0::/32
2400:d0c0::/32
2400:d100::/32
2400:d1c0::/32
2400:d200::/32
2400:d300::/32
2400:d380::/32
2400:d440::/32
2400:d600::/32
2400:d6c0::/32
2400:d780::/32
2400:da00::/32
2400:dd00::/28
2400:dd40::/32
2400:de00::/32
2400:de80::/32
2400:e0c0::/32
2400:e140::/32
2400:e5c0::/32
2400:e680::/32
2400:e880::/32
2400:ebc0::/32
2400:edc0::/32
2400:ee00::/32
2400:eec0::/32
2400:ef40::/32
2400:f480::/32
2400:f540::/32
2400:f5c0::/32
2400:f7c0::/32
2400:f840::/32
2400:f980::/32
2400:fac0::/32
2400:fb40::/32
2400:fbc0::/32
2400:fc40::/32
2400:fcc0::/32
2400:fe00::/32
2401:80::/32
2401:140::/32
2401:1c0::/32
2401:540::/32
2401:780::/32
2401:7c0::/32
2401:9c0::/32
2401:a00::/32
2401:a40::/32
2401:ac0::/32
2401:b40::/32
2401:bc0::/32
2401:c40::/32
2401:cc0::/32
2401:d40::/32
2401:e00::/32
2401:1000::/32
2401:11c0::/32
2401:1200::/32
2401:12c0::/32
2401:15c0::/32
2401:1740::/32
2401:18c0::/32
2401:1940::/32
2401:19c0::/32
2401:1a40::/32
2401:1ac0::/32
2401:1d40::/32
2401:1dc0::/32
2401:1e00::/32
2401:1ec0::/32
2401:1f40::/32
2401:2040::/32
2401:2080::/32
2401:23c0::/32
2401:2600::/32
2401:2780::/32
2401:2980::/32
2401:2a00::/32
2401:2b40::/32
2401:2e00::/32
2401:3100::/32
2401:3380::/32
2401:33c0::/32
2401:3440::/32
2401:3480::/32
2401:34c0::/32
2401:3640::/32
2401:3780::/32
2401:3800::/32
2401:3880::/32
2401:3980::/32
2401:3a00::/32
2401:3a80::/32
2401:3b80::/32
2401:3c80::/32
2401:3d80::/32
2401:3e80::/32
2401:3f80::/32
2401:4080::/32
2401:4180::/32
2401:4280::/32
2401:4380::/32
2401:4480::/32
2401:4580::/32
2401:4680::/32
2401:4780::/32
2401:4880::/32
2401:4a80::/32
2401:4b00::/32
2401:4f80::/32
2401:5180::/32
2401:5680::/32
2401:56c0::/32
2401:59c0::/32
2401:5b40::/32
2401:5c80::/32
2401:7180::/32
2401:71c0::/32
2401:7240::/32
2401:7340::/32
2401:7580::/32
2401:7680::/32
2401:7700::/32
2401:7780::/32
2401:7880::/32
2401:7980::/32
2401:7a00::/32
2401:7a80::/32
2401:7b80::/32
2401:7bc0::/32
2401:7c80::/32
2401:7cc0::/32
2401:7d40::/32
2401:7d80::/32
2401:7e00::/32
2401:7f80::/32
2401:8200::/32
2401:82c0::/32
2401:8380::/32
2401:8540::/32
2401:8600::/32
2401:8680::/32
2401:8840::/32
2401:8d00::/32
2401:8e40::/32
2401:8f40::/32
2401:8fc0::/32
2401:9340::/32
2401:9380::/32
2401:9600::/32
2401:96c0::/32
2401:9740::/32
2401:98c0::/32
2401:9a00::/32
2401:9ac0::/32
2401:9b40::/32
2401:9bc0::/32
2401:9dc0::/32
2401:9e40::/32
2401:9f80::/32
2401:a140::/32
2401:a180::/32
2401:a340::/32
2401:a3c0::/32
2401:a4c0::/32
2401:a540::/32
2401:a5c0::/32
2401:a640::/32
2401:a940::/32
2401:a980::/32
2401:aa00::/32
2401:aa40::/32
2401:acc0::/32
2401:ad40::/32
2401:adc0::/32
2401:b040::/32
2401:b180::/32
2401:b340::/32
2401:b400::/32
2401:b480::/32
2401:b4c0::/32
2401:b540::/32
2401:b580::/32
2401:b600::/32
2401:b680::/32
2401:b6c0::/32
2401:b7c0::/32
2401:b940::/32
2401:ba00::/32
2401:ba40::/32
2401:bb80::/32
2401:be00::/32
2401:c200::/32
2401:c540::/32
2401:c600::/32
2401:c640::/32
2401:c6c0::/32
2401:c840::/32
2401:c8c0::/32
2401:ca00::/32
2401:ca80::/32
2401:cb80::/32
2401:cc00::/32
2401:ce00::/32
2401:cf40::/32
2401:cfc0::/32
2401:d0c0::/32
2401:d140::/32
2401:d180::/32
2401:d2c0::/32
2401:d340::/32
2401:d780::/32
2401:da00::/32
2401:de00::/32
2401:e080::/32
2401:e0c0::/32
2401:e140::/32
2401:e240::/32
2401:e2c0::/32
2401:e340::/32
2401:e6c0::/32
2401:e840::/32
2401:e8c0::/32
2401:e940::/32
2401:e9c0::/32
2401:ec00::/32
2401:ec40::/32
2401:f300::/32
2401:f7c0::/32
2401:fa80::/32
2401:fac0::/32
2401:fb80::/32
2401:fc80::/32
2401:fe80::/32
2401:ffc0::/32
2402:440::/32
2402:5c0::/32
2402:840::/32
2402:880::/32
2402:ac0::/32
2402:e00::/32
2402:fc0::/32
2402:1000::/32
2402:1440::/32
2402:14c0::/32
2402:1540::/32
2402:1600::/32
2402:1740::/32
2402:19c0::/32
2402:1ec0::/32
2402:1f40::/32
2402:1f80::/32
2402:2000::/32
2402:2280::/32
2402:22c0::/32
2402:2440::/32
2402:24c0::/32
2402:2540::/32
2402:2640::/32
2402:2780::/32
2402:27c0::/32
2402:2a00::/32
2402:2b80::/32
2402:2bc0::/32
2402:2d00::/32
2402:2d80::/32
2402:2e80::/32
2402:2f40::/32
2402:3040::/32
2402:3080::/32
2402:3140::/32
2402:3180::/32
2402:31c0::/32
2402:3240::/32
2402:33c0::/32
2402:39c0::/32
2402:3a40::/32
2402:3ac0::/32
2402:3c00::/32
2402:3e00::/32
2402:3ec0::/32
2402:3f40::/32
2402:3f80::/32
2402:4140::/32
2402:42c0::/32
2402:4340::/32
2402:43c0::/32
2402:4440::/32
2402:4500::/32
2402:4540::/32
2402:4a00::/32
2402:4a40::/32
2402:4a80::/32
2402:4ac0::/32
2402:4b80::/32
2402:4bc0::/32
2402:4c40::/32
2402:4d80::/32
2402:4e00::/32
2402:4ec0::/32
2402:4f80::/32
2402:50c0::/32
2402:5140::/32
2402:5180::/32
2402:51c0::/32
2402:5240::/32
2402:52c0::/32
2402:5340::/32
2402:5880::/32
2402:5940::/32
2402:59c0::/32
2402:5a40::/32
2402:5b40::/32
2402:5bc0::/32
2402:5d00::/32
2402:5e00::/32
2402:5e40::/32
2402:5ec0::/32
2402:5f40::/32
2402:6280::/32
2402:62c0::/32
2402:64c0::/32
2402:65c0::/32
2402:66c0::/32
2402:6740::/32
2402:67c0::/32
2402:6a00::/32
2402:6b40::/32
2402:6bc0::/32
2402:6dc0::/32
2402:6e00::/32
2402:6e80::/32
2402:6ec0::/32
2402:6f40::/32
2402:6fc0::/32
2402:7040::/32
2402:7080::/32
2402:70c0::/32
2402:7140::/32
2402:71c0::/32
2402:7240::/32
2402:72c0::/32
2402:7540::/32
2402:75c0::/32
2402:7740::/32
2402:7d00::/32
2402:7d80::/32
2402:8180::/32
2402:8280::/32
2402:8300::/32
2402:8380::/32
2402:85c0::/32
2402:87c0::/32
2402:8800::/32
2402:8840::/32
2402:8900::/32
2402:8940::/32
2402:89c0::/32
2402:8b40::/32
2402:8bc0::/32
2402:8cc0::/32
2402:8d40::/32
2402:8f40::/32
2402:8f80::/32
2402:9240::/32
2402:92c0::/32
2402:93c0::/32
2402:9440::/32
2402:9480::/32
2402:94c0::/32
2402:9580::/32
2402:95c0::/32
2402:9680::/32
2402:96c0::/32
2402:9840::/32
2402:98c0::/32
2402:9940::/32
2402:9a80::/32
2402:9b80::/32
2402:9f80::/32
2402:9fc0::/32
2402:a080::/32
2402:a180::/32
2402:a200::/32
2402:a240::/32
2402:a280::/32
2402:a380::/32
2402:a3c0::/32
2402:a640::/32
2402:a680::/32
2402:a6c0::/32
2402:a840::/32
2402:a880::/32
2402:a9c0::/32
2402:aa80::/32
2402:ab80::/32
2402:ae00::/32
2402:ae40::/32
2402:aec0::/32
2402:af80::/32
2402:afc0::/32
2402:b080::/32
2402:b200::/32
2402:b380::/32
2402:b3c0::/32
2402:b440::/32
2402:b6c0::/32
2402:b880::/32
2402:b8c0::/32
2402:b940::/32
2402:b980::/32
2402:ba80::/32
2402:bac0::/32
2402:bbc0::/32
2402:bec0::/32
2402:bf80::/32
2402:c280::/32
2402:c3c0::/32
2402:c5c0::/32
2402:c9c0::/32
2402:cbc0::/32
2402:cc40::/32
2402:cc80::/32
2402:cf00::/32
2402:cf40::/32
2402:d040::/32
2402:d140::/32
2402:d2c0::/32
2402:d300::/32
2402:d340::/32
2402:d380::/32
2402:d5c0::/32
2402:d6c0::/32
2402:d740::/32
2402:d780::/32
2402:d880::/32
2402:d980::/32
2402:da40::/32
2402:db40::/32
2402:dcc0::/32
2402:de40::/32
2402:dec0::/32
2402:df40::/32
2402:dfc0::/32
2402:e040::/32
2402:e0c0::/32
2402:e140::/32
2402:e2c0::/32
2402:e3c0::/32
2402:e480::/32
2402:e540::/32
2402:e680::/32
2402:e740::/32
2402:e780::/32
2402:e7c0::/32
2402:e880::/32
2402:e980::/32
2402:eb80::/32
2402:ec80::/32
2402:ed80::/32
2402:ef40::/32
2402:ef80::/32
2402:f000::/32
2402:f140::/32
2402:f340::/32
2402:f3c0::/32
2402:f480::/32
2402:f540::/32
2402:f580::/32
2402:f740::/32
2402:f780::/32
2402:f8c0::/32
2402:f980::/32
2402:f9c0::/32
2402:fac0::/32
2402:fcc0::/32
2402:ff40::/32
2402:ffc0::/32
2403:600::/32
2403:700::/32
2403:7c0::/32
2403:800::/31
2403:980::/32
2403:a80::/32
2403:b80::/32
2403:c80::/32
2403:d40::/32
2403:d80::/32
2403:e80::/32
2403:f00::/32
2403:f40::/32
2403:f80::/32
2403:fc0::/32
2403:1180::/32
2403:1340::/32
2403:1440::/32
2403:1580::/32
2403:16c0::/32
2403:17c0::/32
2403:1980::/32
2403:1a40::/32
2403:1b80::/32
2403:1c80::/32
2403:1d80::/32
2403:1dc0::/32
2403:1e80::/32
2403:1ec0::/32
2403:1f80::/32
2403:2040::/32
2403:2080::/32
2403:2180::/32
2403:2240::/32
2403:2280::/32
2403:2380::/32
2403:2440::/32
2403:24c0::/32
2403:2580::/32
2403:25c0::/32
2403:2680::/32
2403:26c0::/32
2403:2740::/32
2403:2780::/32
2403:28c0::/32
2403:2940::/32
2403:2a00::/32
2403:2a40::/32
2403:2ac0::/32
2403:2b40::/32
2403:2bc0::/32
2403:2cc0::/32
2403:2d80::/32
2403:2f40::/32
2403:2fc0::/32
2403:3040::/32
2403:30c0::/32
2403:3140::/32
2403:3280::/32
2403:32c0::/32
2403:3380::/32
2403:3480::/32
2403:3580::/32
2403:3640::/32
2403:3680::/32
2403:36c0::/32
2403:3740::/32
2403:3780::/32
2403:37c0::/32
2403:3840::/32
2403:3880::/32
2403:38c0::/32
2403:3940::/32
2403:3980::/32
2403:39c0::/32
2403:3a40::/32
2403:3b40::/32
2403:3b80::/32
2403:3bc0::/32
2403:3c40::/32
2403:3c80::/32
2403:3cc0::/32
2403:3d40::/32
2403:3d80::/32
2403:3dc0::/32
2403:3e80::/32
2403:3ec0::/32
2403:3f40::/32
2403:3f80::/32
2403:4080::/32
2403:4180::/32
2403:4240::/32
2403:4280::/32
2403:4300::/32
2403:4380::/32
2403:4580::/32
2403:4680::/32
2403:4840::/32
2403:4880::/32
2403:4980::/32
2403:4a40::/32
2403:4a80::/32
2403:4b40::/32
2403:4b80::/32
2403:4c80::/32
2403:4cc0::/32
2403:4d40::/32
2403:4d80::/32
2403:4ec0::/32
2403:5040::/32
2403:5080::/32
2403:50c0::/32
2403:5280::/32
2403:5380::/32
2403:54c0::/32
2403:5540::/32
2403:5580::/32
2403:5640::/32
2403:5780::/32
2403:58c0::/32
2403:5980::/32
2403:5a80::/32
2403:5b40::/32
2403:5b80::/32
2403:5c80::/32
2403:5d80::/32
2403:5e40::/32
2403:5e80::/32
2403:5ec0::/32
2403:5f80::/32
2403:5fc0::/32
2403:6080::/32
2403:6180::/32
2403:6280::/32
2403:62c0::/32
2403:6380::/32
2403:6580::/32
2403:6680::/32
2403:6740::/32
2403:6780::/32
2403:6880::/32
2403:6980::/32
2403:6a00::/32
2403:6c80::/32
2403:6d40::/32
2403:6d80::/32
2403:6e80::/32
2403:6f40::/32
2403:6fc0::/32
2403:7040::/32
2403:7080::/32
2403:7180::/32
2403:7280::/32
2403:7380::/32
2403:7480::/32
2403:7540::/32
2403:7580::/32
2403:76c0::/32
2403:7700::/32
2403:7840::/32
2403:78c0::/32
2403:7a80::/32
2403:7b00::/32
2403:7d80::/32
2403:7e80::/32
2403:7f80::/32
2403:8080::/32
2403:8180::/32
2403:8280::/32
2403:8380::/32
2403:83c0::/32
2403:8480::/32
2403:8580::/32
2403:8880::/32
2403:8900::/32
2403:8980::/32
2403:8a40::/32
2403:8a80::/32
2403:8b00::/32
2403:8b80::/32
2403:8c00::/32
2403:8c80::/32
2403:8d00::/32
2403:8d80::/32
2403:8f80::/32
2403:9080::/32
2403:9180::/32
2403:9280::/32
2403:9380::/32
2403:9480::/32
2403:9580::/32
2403:9680::/32
2403:9780::/32
2403:9880::/32
2403:9a80::/32
2403:9ac0::/32
2403:9b00::/32
2403:9b40::/32
2403:9b80::/32
2403:9c80::/32
2403:9d00::/32
2403:9d80::/32
2403:9e40::/32
2403:9e80::/32
2403:9ec0::/32
2403:9f80::/32
2403:a100::/32
2403:a140::/32
2403:a200::/32
2403:a300::/32
2403:a480::/32
2403:a580::/32
2403:a680::/32
2403:a6c0::/32
2403:a780::/32
2403:a880::/32
2403:a940::/32
2403:a980::/32
2403:a9c0::/32
2403:aa40::/32
2403:aa80::/32
2403:ab80::/32
2403:ac00::/32
2403:af80::/32
2403:b080::/32
2403:b180::/32
2403:b280::/32
2403:b380::/32
2403:b400::/32
2403:b480::/32
2403:b580::/32
2403:b680::/32
2403:b780::/32
2403:b880::/32
2403:b980::/32
2403:ba40::/32
2403:c040::/32
2403:c080::/32
2403:c100::/32
2403:c140::/32
2403:c180::/32
2403:c3c0::/32
2403:c440::/32
2403:c480::/32
2403:c4c0::/32
2403:c980::/32
2403:cdc0::/32
2403:cec0::/32
2403:cf80::/32
2403:d080::/32
2403:d180::/32
2403:d280::/32
2403:d2c0::/32
2403:d380::/32
2403:d400::/32
2403:d440::/32
2403:d480::/32
2403:d580::/32
2403:d680::/32
2403:d780::/32
2403:d7c0::/32
2403:d880::/32
2403:d980::/32
2403:d9c0::/32
2403:da80::/32
2403:dac0::/32
2403:db00::/32
2403:db80::/32
2403:dc80::/32
2403:dd80::/32
2403:de80::/32
2403:df80::/32
2403:e080::/32
2403:e180::/32
2403:e280::/32
2403:e300::/32
2403:e480::/32
2403:e500::/32
2403:e580::/32
2403:e640::/32
2403:e680::/32
2403:e700::/32
2403:e780::/32
2403:e7c0::/32
2403:e880::/32
2403:e980::/32
2403:ea80::/32
2403:eac0::/32
2403:eb80::/32
2403:ec80::/32
2403:ed00::/32
2403:ed40::/32
2403:ed80::/32
2403:ee80::/32
2403:ef80::/32
2403:f080::/32
2403:f100::/32
2403:f180::/32
2403:f240::/32
2403:f280::/32
2403:f300::/32
2403:f380::/32
2403:f4c0::/32
2403:f580::/32
2403:f740::/32
2403:f8c0::/32
2403:f980::/32
2403:fb00::/32
2403:fb80::/32
2403:fc40::/32
2403:fe40::/32
2403:fe80::/32
2403:fec0::/32
2403:ff80::/32
2403:ffc0::/32
2404:100::/32
2404:158::/32
2404:240::/32
2404:280::/32
2404:440::/32
2404:480::/32
2404:680::/32
2404:a80::/32
2404:b80::/32
2404:bc0::/32
2404:c40::/32
2404:d80::/32
2404:f00::/32
2404:f80::/32
2404:1080::/32
2404:10c0::/32
2404:1180::/32
2404:14c0::/32
2404:1880::/32
2404:1c80::/32
2404:1cc0::/32
2404:1d80::/32
2404:1e80::/32
2404:1f40::/32
2404:21c0::/32
2404:30c0::/32
2404:3140::/32
2404:31c0::/32
2404:3240::/32
2404:32c0::/32
2404:3300::/32
2404:3340::/32
2404:3480::/32
2404:35c0::/32
2404:3640::/32
2404:36c0::/32
2404:3700::/32
2404:3740::/32
2404:37c0::/32
2404:3840::/32
2404:3940::/32
2404:3b00::/32
2404:3bc0::/32
2404:3c40::/32
2404:3f40::/32
2404:4080::/32
2404:41c0::/32
2404:4540::/32
2404:4740::/32
2404:4bc0::/32
2404:4d00::/32
2404:4dc0::/32
2404:51c0::/32
2404:5640::/32
2404:5a80::/32
2404:5b00::/32
2404:5d00::/32
2404:5e80::/32
2404:6000::/32
2404:6100::/32
2404:6380::/32
2404:6500::/32
2404:65c0::/32
2404:6a40::/32
2404:6f80::/32
2404:7100::/32
2404:7180::/32
2404:71c0::/32
2404:7240::/32
2404:74c0::/32
2404:7600::/32
2404:7740::/32
2404:7940::/32
2404:7d00::/32
2404:8040::/32
2404:80c0::/32
2404:8140::/32
2404:81c0::/32
2404:8480::/32
2404:8580::/32
2404:8700::/32
2404:8880::/32
2404:8a80::/32
2404:8b00::/32
2404:8dc0::/32
2404:9340::/32
2404:9880::/32
2404:9b80::/32
2404:9c80::/32
2404:a000::/32
2404:a080::/32
2404:a0c0::/32
2404:a180::/32
2404:a240::/32
2404:a740::/32
2404:b100::/32
2404:b340::/32
2404:b3c0::/32
2404:b440::/32
2404:b4c0::/32
2404:b900::/32
2404:bbc0::/32
2404:bc40::/32
2404:c1c0::/32
2404:c240::/32
2404:c2c0::/32
2404:c300::/32
2404:c3c0::/32
2404:c440::/32
2404:c4c0::/32
2404:c540::/32
2404:c5c0::/32
2404:c640::/32
2404:c940::/32
2404:c9c0::/32
2404:cd00::/32
2404:d040::/32
2404:d080::/32
2404:d140::/32
2404:d280::/32
2404:d3c0::/32
2404:d480::/32
2404:d640::/32
2404:d6c0::/32
2404:d780::/32
2404:d7c0::/32
2404:d840::/32
2404:dd80::/32
2404:df00::/32
2404:e180::/32
2404:e280::/32
2404:e540::/32
2404:e5c0::/32
2404:e780::/32
2404:e880::/32
2404:e8c0::/32
2404:eb40::/32
2404:eb80::/32
2404:ec40::/32
2404:ecc0::/32
2404:edc0::/32
2404:f040::/32
2404:f4c0::/32
2404:f7c0::/32
2405:80::/32
2405:480::/32
2405:580::/32
2405:680::/32
2405:6c0::/32
2405:780::/32
2405:880::/32
2405:940::/32
2405:980::/32
2405:9c0::/32
2405:a80::/32
2405:b80::/32
2405:c80::/32
2405:d80::/32
2405:e80::/32
2405:f40::/32
2405:f80::/32
2405:1080::/32
2405:1180::/32
2405:1280::/32
2405:1380::/32
2405:1480::/32
2405:1580::/32
2405:1680::/32
2405:18c0::/32
2405:1c80::/32
2405:1d80::/32
2405:1e80::/32
2405:1f80::/32
2405:1fc0::/32
2405:2080::/32
2405:2180::/32
2405:2280::/32
2405:2340::/32
2405:2380::/32
2405:2480::/32
2405:24c0::/32
2405:2580::/32
2405:2680::/32
2405:2780::/32
2405:2880::/32
2405:2980::/32
2405:2a80::/32
2405:2b80::/32
2405:2bc0::/32
2405:2c80::/32
2405:2d80::/32
2405:2e80::/32
2405:2ec0::/32
2405:2f40::/32
2405:2f80::/32
2405:3140::/32
2405:31c0::/32
2405:37c0::/32
2405:3880::/32
2405:3980::/32
2405:39c0::/32
2405:3a80::/32
2405:3ac0::/32
2405:3b00::/32
2405:3b80::/32
2405:3bc0::/32
2405:3c40::/32
2405:3c80::/32
2405:3d80::/32
2405:3e80::/32
2405:3f40::/32
2405:3f80::/32
2405:4080::/32
2405:4140::/32
2405:4180::/32
2405:41c0::/32
2405:4280::/32
2405:4380::/32
2405:4480::/32
2405:44c0::/32
2405:4540::/32
2405:4580::/32
2405:4680::/32
2405:4780::/32
2405:4880::/32
2405:4980::/32
2405:4a80::/32
2405:4b80::/32
2405:4d40::/32
2405:4e80::/32
2405:4f80::/32
2405:5080::/32
2405:5180::/32
2405:5240::/32
2405:5280::/32
2405:52c0::/32
2405:5380::/32
2405:5480::/32
2405:5580::/32
2405:5680::/32
2405:5780::/32
2405:57c0::/32
2405:5880::/32
2405:5980::/32
2405:5a80::/32
2405:5b00::/32
2405:5b80::/32
2405:5c80::/32
2405:5cc0::/32
2405:5d40::/32
2405:5d80::/32
2405:5dc0::/32
2405:5e80::/32
2405:5f80::/32
2405:6080::/32
2405:6180::/32
2405:6200::/32
2405:66c0::/32
2405:6880::/32
2405:68c0::/32
2405:6940::/32
2405:69c0::/32
2405:6a80::/32
2405:6b80::/32
2405:6c80::/32
2405:6d80::/32
2405:6e80::/32
2405:6f00::/32
2405:6f80::/32
2405:7040::/32
2405:7080::/32
2405:7180::/32
2405:7240::/32
2405:7280::/32
2405:7380::/32
2405:7480::/32
2405:7580::/32
2405:7680::/32
2405:7780::/32
2405:7880::/32
2405:78c0::/32
2405:7980::/32
2405:79c0::/32
2405:7a80::/32
2405:7b80::/32
2405:7c80::/32
2405:7d40::/32
2405:7f40::/32
2405:7fc0::/32
2405:8280::/32
2405:83c0::/32
2405:8480::/32
2405:84c0::/32
2405:8580::/32
2405:8680::/32
2405:8780::/32
2405:8880::/32
2405:8980::/32
2405:8a40::/32
2405:8a80::/32
2405:8ac0::/32
2405:8b40::/32
2405:8b80::/32
2405:8c80::/32
2405:8d80::/32
2405:8e80::/32
2405:8f40::/32
2405:8f80::/32
2405:9080::/32
2405:9180::/32
2405:9280::/32
2405:9300::/32
2405:9340::/32
2405:9380::/32
2405:93c0::/32
2405:9480::/32
2405:94c0::/32
2405:9580::/32
2405:9680::/32
2405:9700::/32
2405:9780::/32
2405:9880::/32
2405:9900::/32
2405:9980::/32
2405:9a80::/32
2405:9b00::/32
2405:9b80::/32
2405:9e00::/32
2405:a500::/32
2405:a680::/32
2405:a900::/32
2405:a980::/32
2405:aa80::/32
2405:ab00::/32
2405:ad00::/32
2405:af00::/32
2405:b100::/32
2405:b300::/32
2405:b880::/32
2405:b980::/32
2405:bb00::/32
2405:bd00::/32
2405:bd80::/32
2405:be80::/32
2405:bf00::/32
2405:c280::/32
2405:c380::/32
2405:c480::/32
2405:c500::/32
2405:c580::/32
2405:c680::/32
2405:c780::/32
2405:c880::/32
2405:c980::/32
2405:ca80::/32
2405:cb80::/32
2405:cc80::/32
2405:cd80::/32
2405:ce80::/32
2405:d280::/32
2405:d700::/32
2405:d900::/32
2405:e000::/32
2405:e600::/32
2405:ee80::/32
2405:f380::/32
2405:f580::/32
2405:fe80::/32
2405:ff80::/32
2406:80::/32
2406:280::/32
2406:880::/32
2406:d80::/32
2406:e80::/32
2406:f80::/32
2406:1080::/32
2406:1100::/32
2406:1180::/32
2406:1280::/32
2406:1380::/32
2406:1480::/32
2406:1580::/32
2406:1680::/32
2406:1780::/32
2406:1880::/32
2406:1980::/32
2406:1a80::/32
2406:1b80::/32
2406:1c80::/32
2406:1d80::/32
2406:1e80::/32
2406:1f80::/32
2406:2080::/32
2406:2580::/32
2406:2700::/32
2406:2780::/32
2406:2880::/32
2406:2980::/32
2406:2a80::/32
2406:2b80::/32
2406:2c80::/32
2406:2d80::/32
2406:2e80::/32
2406:2f80::/32
2406:3080::/32
2406:3180::/32
2406:3280::/32
2406:3300::/32
2406:3380::/32
2406:3480::/32
2406:3580::/32
2406:3680::/32
2406:3700::/32
2406:3780::/32
2406:3880::/32
2406:3980::/32
2406:3d80::/32
2406:3e80::/32
2406:3f80::/32
2406:4080::/32
2406:4180::/32
2406:4280::/32
2406:4380::/32
2406:4480::/32
2406:4500::/32
2406:4680::/32
2406:4980::/32
2406:4b80::/32
2406:4c80::/32
2406:4d00::/32
2406:4d80::/32
2406:4e80::/32
2406:4f00::/32
2406:4f80::/32
2406:5080::/32
2406:5180::/32
2406:5280::/32
2406:5380::/32
2406:5480::/32
2406:5580::/32
2406:5680::/32
2406:5780::/32
2406:5880::/32
2406:5980::/32
2406:5d80::/32
2406:5e80::/32
2406:5f80::/32
2406:6080::/32
2406:6100::/32
2406:6180::/32
2406:6280::/32
2406:6300::/32
2406:6380::/32
2406:6480::/32
2406:6500::/32
2406:6580::/32
2406:6680::/32
2406:6780::/32
2406:6880::/32
2406:6980::/32
2406:6a80::/32
2406:6b80::/32
2406:6c80::/32
2406:6d80::/32
2406:6e80::/32
2406:6f80::/32
2406:7080::/32
2406:7280::/32
2406:7380::/32
2406:7480::/32
2406:7580::/32
2406:7680::/32
2406:7780::/32
2406:7880::/32
2406:7980::/32
2406:7a80::/32
2406:7b80::/32
2406:7c80::/32
2406:7d00::/32
2406:7d80::/32
2406:7e80::/32
2406:7f80::/32
2406:8080::/32
2406:8180::/32
2406:8280::/32
2406:8380::/32
2406:8480::/32
2406:8500::/32
2406:8580::/32
2406:8780::/32
2406:8880::/32
2406:8980::/32
2406:8a80::/32
2406:8b80::/32
2406:8c80::/32
2406:8d80::/32
2406:8e80::/32
2406:8f80::/32
2406:9180::/32
2406:9200::/32
2406:9280::/32
2406:9380::/32
2406:9480::/32
2406:9780::/32
2406:9d80::/32
2406:9e80::/32
2406:9f80::/32
2406:a080::/32
2406:a180::/32
2406:a280::/32
2406:a380::/32
2406:a480::/32
2406:a580::/32
2406:a680::/32
2406:a780::/32
2406:a880::/32
2406:a980::/32
2406:aa80::/32
2406:ab80::/32
2406:ac80::/32
2406:ad80::/32
2406:ae80::/32
2406:af80::/32
2406:b080::/32
2406:b880::/32
2406:b980::/32
2406:ba80::/32
2406:bb80::/32
2406:bc80::/32
2406:bd80::/32
2406:be80::/32
2406:bf80::/32
2406:c080::/32
2406:c180::/32
2406:c280::/32
2406:c480::/32
2406:c580::/32
2406:c680::/32
2406:c780::/32
2406:c880::/32
2406:c900::/32
2406:c980::/32
2406:ca80::/32
2406:cb80::/32
2406:cc80::/32
2406:cd80::/32
2406:ce80::/32
2406:cf00::/30
2406:cf80::/32
2406:d080::/32
2406:d180::/32
2406:d280::/32
2406:d380::/32
2406:d480::/32
2406:d580::/32
2406:d680::/32
2406:d780::/32
2406:d880::/32
2406:d980::/32
2406:db80::/32
2406:dc80::/32
2406:dd00::/32
2406:dd80::/32
2406:de80::/32
2406:df80::/32
2406:e080::/32
2406:e180::/32
2406:e280::/32
2406:e380::/32
2406:e500::/32
2406:e580::/32
2406:e680::/32
2406:e780::/32
2406:f280::/32
2406:f300::/32
2406:f980::/32
2406:fc80::/32
2406:fd80::/32
2406:fe80::/32
2406:ff00::/32
2407:480::/32
2407:580::/32
2407:1180::/32
2407:1900::/32
2407:1d00::/32
2407:1e80::/32
2407:2280::/32
2407:2380::/32
2407:2780::/32
2407:3700::/32
2407:3900::/32
2407:4580::/32
2407:4680::/32
2407:4880::/32
2407:4980::/32
2407:4a80::/32
2407:4c80::/32
2407:4d80::/32
2407:4e80::/32
2407:4f00::/32
2407:5380::/32
2407:5500::/32
2407:5780::/32
2407:6580::/32
2407:6a80::/32
2407:7680::/32
2407:7780::/32
2407:7880::/32
2407:7980::/32
2407:7c80::/32
2407:7d00::/32
2407:7d80::/32
2407:7e80::/32
2407:8880::/32
2407:8b80::/32
2407:9080::/32
2407:9180::/32
2407:9680::/32
2407:9980::/32
2407:9f00::/32
2407:9f80::/32
2407:a480::/32
2407:a880::/32
2407:ad80::/32
2407:ae80::/32
2407:af80::/32
2407:b080::/32
2407:b180::/32
2407:b280::/32
2407:b380::/32
2407:b580::/32
2407:b680::/32
2407:b780::/32
2407:b880::/32
2407:b980::/32
2407:ba00::/32
2407:ba80::/32
2407:bb80::/32
2407:bc00::/32
2407:bc80::/32
2407:bd80::/32
2407:be80::/32
2407:bf80::/32
2407:c080::/32
2407:c380::/32
2407:c400::/32
2407:c480::/32
2407:c580::/32
2407:c680::/32
2407:c780::/32
2407:c880::/32
2407:c900::/32
2407:c980::/32
2407:cb80::/32
2407:cc80::/32
2407:cd80::/32
2407:ce80::/32
2407:cf00::/32
2407:cf80::/32
2407:d480::/32
2407:d580::/32
2407:d680::/32
2407:d780::/32
2407:d880::/32
2407:d980::/32
2407:da80::/32
2407:db80::/32
2407:dc80::/32
2407:dd80::/32
2407:de80::/32
2407:df80::/32
2407:e080::/32
2407:e180::/32
2407:e280::/32
2407:e380::/32
2407:e480::/32
2407:e580::/32
2407:e680::/32
2407:e780::/32
2407:e800::/32
2407:ea80::/32
2407:eb80::/32
2407:ec80::/32
2407:ed80::/32
2407:ee80::/32
2407:ef80::/32
2407:f080::/32
2407:f180::/32
2407:f280::/32
2407:f380::/32
2407:f480::/32
2407:f580::/32
2407:f680::/32
2407:f780::/32
2407:f880::/32
2407:f980::/32
2407:fa80::/32
2407:fb80::/32
2407:fc80::/32
2407:fd80::/32
2408:4000::/22
2408:8000::/20
2409:8000::/20
240a:4000::/21
240a:8000::/21
240a:c000::/20
240b:8000::/21
240c::/28
240c:4000::/22
240c:8000::/21
240c:c000::/20
240d:4000::/21
240d:8000::/24
240e::/18
240f:4000::/24
240f:8000::/24
240f:c000::/24

[proxy_list]
# Telegram IPs$
91.108.4.0/22
91.108.8.0/21
91.108.16.0/21
91.108.36.0/22
91.108.56.0/22
109.239.140.0/24
149.154.160.0/20
14.102.250.18
14.102.250.19
174.142.105.153
50.7.31.230
67.220.91.15
67.220.91.18
67.220.91.23
69.65.19.160
72.52.81.22
85.17.73.31
(?:^|\.)030buy\.com$
(?:^|\.)0rz\.tw$
(?:^|\.)1-apple\.com\.tw$
(?:^|\.)10\.tt$
(?:^|\.)1000giri\.net$
(?:^|\.)100ke\.org$
(?:^|\.)10conditionsoflove\.com$
(?:^|\.)10musume\.com$
(?:^|\.)123rf\.com$
(?:^|\.)12bet\.com$
(?:^|\.)12vpn\.com$
(?:^|\.)12vpn\.net$
(?:^|\.)138\.com$
(?:^|\.)141hongkong\.com$
(?:^|\.)141jj\.com$
(?:^|\.)141tube\.com$
(?:^|\.)1688\.com\.au$
(?:^|\.)173ng\.com$
(?:^|\.)177pic\.info$
(?:^|\.)17t17p\.com$
(?:^|\.)18board\.com$
(?:^|\.)18board\.info$
(?:^|\.)18onlygirls\.com$
(?:^|\.)18p2p\.com$
(?:^|\.)18virginsex\.com$
(?:^|\.)1949er\.org$
(?:^|\.)1984bbs\.com$
(?:^|\.)1984bbs\.org$
(?:^|\.)1989report\.hkja\.org\.hk$
(?:^|\.)1991way\.com$
(?:^|\.)1998cdp\.org$
(?:^|\.)1bao\.org$
(?:^|\.)1dumb\.com$
(?:^|\.)1e100\.net$
(?:^|\.)1eew\.com$
(?:^|\.)1mobile\.com$
(?:^|\.)1pondo\.tv$
(?:^|\.)2-hand\.info$
(?:^|\.)2000fun\.com$
(?:^|\.)2008xianzhang\.info$
(?:^|\.)2017\.hk$
(?:^|\.)21andy\.com$
(?:^|\.)21pron\.com$
(?:^|\.)21sextury\.com$
(?:^|\.)228\.net\.tw$
(?:^|\.)233abc\.com$
(?:^|\.)24hrs\.ca$
(?:^|\.)24smile\.org$
(?:^|\.)25u\.com$
(?:^|\.)2lipstube\.com$
(?:^|\.)2shared\.com$
(?:^|\.)2waky\.com$
(?:^|\.)3-a\.net$
(?:^|\.)30boxes\.com$
(?:^|\.)315lz\.com$
(?:^|\.)32red\.com$
(?:^|\.)36rain\.com$
(?:^|\.)3a5a\.com$
(?:^|\.)3arabtv\.com$
(?:^|\.)3boys2girls\.com$
(?:^|\.)3d-game\.com$
(?:^|\.)3proxy\.ru$
(?:^|\.)3ren\.ca$
(?:^|\.)3tui\.net$
(?:^|\.)43110\.cf$
(?:^|\.)466453\.com$
(?:^|\.)4bluestones\.biz$
(?:^|\.)4chan\.com$
(?:^|\.)4dq\.com$
(?:^|\.)4everproxy\.com$
(?:^|\.)4irc\.com$
(?:^|\.)4mydomain\.com$
(?:^|\.)4pu\.com$
(?:^|\.)4rbtv\.com$
(?:^|\.)4shared\.com$
(?:^|\.)51\.ca$
(?:^|\.)51jav\.org$
(?:^|\.)51luoben\.com$
(?:^|\.)5278\.cc$
(?:^|\.)5299\.tv$
(?:^|\.)56cun04\.jigsy\.com$
(?:^|\.)5aimiku\.com$
(?:^|\.)5i01\.com$
(?:^|\.)5isotoi5\.org$
(?:^|\.)5maodang\.com$
(?:^|\.)63i\.com$
(?:^|\.)64memo$
(?:^|\.)64museum\.org$
(?:^|\.)64tianwang\.com$
(?:^|\.)64wiki\.com$
(?:^|\.)66\.ca$
(?:^|\.)666kb\.com$
(?:^|\.)6park\.com$
(?:^|\.)6parker\.com$
(?:^|\.)7capture\.com$
(?:^|\.)7cow\.com$
(?:^|\.)8-d\.com$
(?:^|\.)85cc\.net$
(?:^|\.)85cc\.us$
(?:^|\.)85st\.com$
(?:^|\.)881903\.com$
(?:^|\.)888\.com$
(?:^|\.)888poker\.com$
(?:^|\.)89-64\.org$
(?:^|\.)89\.64\.charter\.constitutionalism\.solutions$
(?:^|\.)8news\.com\.tw$
(?:^|\.)8z1\.net$
(?:^|\.)9001700\.com$
(?:^|\.)908taiwan\.org$
(?:^|\.)91porn\.com$
(?:^|\.)91vps\.club$
(?:^|\.)92ccav\.com$
(?:^|\.)991\.com$
(?:^|\.)99btgc01\.com$
(?:^|\.)99cn\.info$
(?:^|\.)9bis\.com$
(?:^|\.)9bis\.net$
(?:^|\.)9gag\.com$
(?:^|\.)a-normal-day\.com$
(?:^|\.)a248\.e\.akamai\.net$
(?:^|\.)a5\.com\.ru$
(?:^|\.)aamacau\.com$
(?:^|\.)abc\.com$
(?:^|\.)abc\.net\.au$
(?:^|\.)abc\.pp\.ru$
(?:^|\.)abc\.xyz$
(?:^|\.)abchinese\.com$
(?:^|\.)abclite\.net$
(?:^|\.)abebooks\.com$
(?:^|\.)abematv\.akamaized\.net$
(?:^|\.)abitno\.linpie\.com$
(?:^|\.)ablwang\.com$
(?:^|\.)aboluowang\.com$
(?:^|\.)about\.google$
(?:^|\.)aboutgfw\.com$
(?:^|\.)abs\.edu$
(?:^|\.)ac\.jiruan\.net$
(?:^|\.)accim\.org$
(?:^|\.)aceros-de-hispania\.com$
(?:^|\.)acevpn\.com$
(?:^|\.)acg18\.me$
(?:^|\.)acgkj\.com$
(?:^|\.)acmedia365\.com$
(?:^|\.)acmetoy\.com$
(?:^|\.)acnw\.com\.au$
(?:^|\.)actfortibet\.org$
(?:^|\.)actimes\.com\.au$
(?:^|\.)activpn\.com$
(?:^|\.)aculo\.us$
(?:^|\.)adcex\.com$
(?:^|\.)addictedtocoffee\.de$
(?:^|\.)adelaidebbs\.com$
(?:^|\.)admin\.recaptcha\.net$
(?:^|\.)admob\.com$
(?:^|\.)adpl\.org\.hk$
(?:^|\.)ads-twitter\.com$
(?:^|\.)adsense\.com$
(?:^|\.)adult-sex-games\.com$
(?:^|\.)adult\.friendfinder\.com$
(?:^|\.)adultfriendfinder\.com$
(?:^|\.)adultkeep\.net$
(?:^|\.)advanscene\.com$
(?:^|\.)advertfan\.com$
(?:^|\.)ae\.hao123\.com$
(?:^|\.)ae\.org$
(?:^|\.)aenhancers\.com$
(?:^|\.)aex\.com$
(?:^|\.)af\.mil$
(?:^|\.)afantibbs\.com$
(?:^|\.)agnesb\.fr$
(?:^|\.)agoogleaday\.com$
(?:^|\.)agro\.hk$
(?:^|\.)ahr0chm6ly95zwnslm5lda$
(?:^|\.)ai-kan\.net$
(?:^|\.)ai-wen\.net$
(?:^|\.)ai\.binwang\.me$
(?:^|\.)ai\.google$
(?:^|\.)aiph\.net$
(?:^|\.)airasia\.com$
(?:^|\.)airconsole\.com$
(?:^|\.)airvpn\.org$
(?:^|\.)aisex\.com$
(?:^|\.)ait\.org\.tw$
(?:^|\.)aiweiwei\.com$
(?:^|\.)aiweiweiblog\.com$
(?:^|\.)akademiye\.org$
(?:^|\.)akiba-online\.com$
(?:^|\.)akiba-web\.com$
(?:^|\.)akow\.org$
(?:^|\.)al-islam\.com$
(?:^|\.)al-qimmah\.net$
(?:^|\.)alabout\.com$
(?:^|\.)alanhou\.com$
(?:^|\.)alarab\.qa$
(?:^|\.)alasbarricadas\.org$
(?:^|\.)alexlur\.org$
(?:^|\.)alforattv\.net$
(?:^|\.)alhayat\.com$
(?:^|\.)alicejapan\.co\.jp$
(?:^|\.)aliengu\.com$
(?:^|\.)alkasir\.com$
(?:^|\.)allcoin\.com$
(?:^|\.)allconnected\.co$
(?:^|\.)alldrawnsex\.com$
(?:^|\.)allervpn\.com$
(?:^|\.)allfinegirls\.com$
(?:^|\.)allgirlmassage\.com$
(?:^|\.)allgirlsallowed\.org$
(?:^|\.)allgravure\.com$
(?:^|\.)alliance\.org\.hk$
(?:^|\.)allinfa\.com$
(?:^|\.)alljackpotscasino\.com$
(?:^|\.)allmovie\.com$
(?:^|\.)allowed\.org$
(?:^|\.)almasdarnews\.com$
(?:^|\.)almostmy\.com$
(?:^|\.)alphaporno\.com$
(?:^|\.)alternate-tools\.com$
(?:^|\.)alternativeto\.net$
(?:^|\.)altrec\.com$
(?:^|\.)alvinalexander\.com$
(?:^|\.)alwaysdata\.com$
(?:^|\.)alwaysdata\.net$
(?:^|\.)alwaysvpn\.com$
(?:^|\.)am730\.com\.hk$
(?:^|\.)amazon\.co\.jp$
(?:^|\.)amazon\.com$
(?:^|\.)ameblo\.jp$
(?:^|\.)americangreencard\.com$
(?:^|\.)americanunfinished\.com$
(?:^|\.)amiblockedornot\.com$
(?:^|\.)amigobbs\.net$
(?:^|\.)amitabhafoundation\.us$
(?:^|\.)amnesty\.org$
(?:^|\.)amnesty\.org\.hk$
(?:^|\.)amnesty\.tw$
(?:^|\.)amnestyusa\.org$
(?:^|\.)amnyemachen\.org$
(?:^|\.)amoiist\.com$
(?:^|\.)ampproject\.org$
(?:^|\.)amtb-taipei\.org$
(?:^|\.)anchorfree\.com$
(?:^|\.)ancsconf\.org$
(?:^|\.)andfaraway\.net$
(?:^|\.)android-x86\.org$
(?:^|\.)android\.com$
(?:^|\.)androidify\.com$
(?:^|\.)androidplus\.co$
(?:^|\.)androidtv\.com$
(?:^|\.)andygod\.com$
(?:^|\.)angela-merkel\.de$
(?:^|\.)angelfire\.com$
(?:^|\.)angola\.org$
(?:^|\.)angularjs\.org$
(?:^|\.)animecrazy\.net$
(?:^|\.)animeshippuuden\.com$
(?:^|\.)aniscartujo\.com$
(?:^|\.)annatam\.com$
(?:^|\.)anobii\.com$
(?:^|\.)anontext\.com$
(?:^|\.)anonymise\.us$
(?:^|\.)anonymitynetwork\.com$
(?:^|\.)anonymizer\.com$
(?:^|\.)anonymouse\.org$
(?:^|\.)anpopo\.com$
(?:^|\.)answering-islam\.org$
(?:^|\.)anthonycalzadilla\.com$
(?:^|\.)anti1984\.com$
(?:^|\.)antichristendom\.com$
(?:^|\.)antiwave\.net$
(?:^|\.)anyporn\.com$
(?:^|\.)anysex\.com$
(?:^|\.)aobo\.com\.au$
(?:^|\.)aofriend\.com$
(?:^|\.)aofriend\.com\.au$
(?:^|\.)aojiao\.org$
(?:^|\.)aolchannels\.aol\.com$
(?:^|\.)aomiwang\.com$
(?:^|\.)apartmentratings\.com$
(?:^|\.)apartments\.co
Download .txt
gitextract_e5trxlyi/

├── .circleci/
│   └── config.yml
├── .github/
│   ├── FUNDING.yml
│   ├── ISSUE_TEMPLATE/
│   │   ├── bug_report.md
│   │   ├── feature_request.md
│   │   └── questions-support-requests-other.md
│   ├── doc-json.md
│   ├── faq.md
│   ├── faq.ru.md
│   └── workflows/
│       └── e2e-test.yml
├── .gitignore
├── .gitmodules
├── .travis.yml
├── AUTHORS
├── CONTRIBUTING.md
├── LICENSE
├── README.md
├── build.gradle.kts
├── buildSrc/
│   ├── build.gradle.kts
│   ├── settings.gradle.kts
│   └── src/
│       └── main/
│           └── kotlin/
│               └── Helpers.kt
├── core/
│   ├── .gitignore
│   ├── build.gradle.kts
│   ├── gfwlist/
│   │   ├── gen.pl
│   │   ├── gen.py
│   │   └── parse.py
│   ├── proguard-rules.pro
│   ├── schemas/
│   │   ├── com.github.shadowsocks.database.PrivateDatabase/
│   │   │   ├── 26.json
│   │   │   ├── 27.json
│   │   │   ├── 28.json
│   │   │   └── 29.json
│   │   └── com.github.shadowsocks.database.PublicDatabase/
│   │       └── 3.json
│   └── src/
│       ├── androidTest/
│       │   └── java/
│       │       └── com/
│       │           └── github/
│       │               └── shadowsocks/
│       │                   ├── acl/
│       │                   │   └── AclTest.kt
│       │                   ├── database/
│       │                   │   ├── MigrationTest.kt
│       │                   │   └── ProfileTest.kt
│       │                   └── net/
│       │                       └── SubnetTest.kt
│       ├── main/
│       │   ├── AndroidManifest.xml
│       │   ├── aidl/
│       │   │   └── com/
│       │   │       └── github/
│       │   │           └── shadowsocks/
│       │   │               └── aidl/
│       │   │                   ├── IShadowsocksService.aidl
│       │   │                   ├── IShadowsocksServiceCallback.aidl
│       │   │                   └── TrafficStats.aidl
│       │   ├── assets/
│       │   │   └── acl/
│       │   │       ├── bypass-china.acl
│       │   │       ├── bypass-lan-china.acl
│       │   │       ├── bypass-lan.acl
│       │   │       ├── china-list.acl
│       │   │       └── gfwlist.acl
│       │   ├── java/
│       │   │   └── com/
│       │   │       └── github/
│       │   │           └── shadowsocks/
│       │   │               ├── BootReceiver.kt
│       │   │               ├── Core.kt
│       │   │               ├── UrlImportActivity.kt
│       │   │               ├── VpnRequestActivity.kt
│       │   │               ├── acl/
│       │   │               │   ├── Acl.kt
│       │   │               │   └── AclSyncer.kt
│       │   │               ├── aidl/
│       │   │               │   ├── ShadowsocksConnection.kt
│       │   │               │   └── TrafficStats.kt
│       │   │               ├── bg/
│       │   │               │   ├── BaseService.kt
│       │   │               │   ├── Executable.kt
│       │   │               │   ├── GuardedProcessPool.kt
│       │   │               │   ├── LocalDnsWorker.kt
│       │   │               │   ├── ProxyInstance.kt
│       │   │               │   ├── ProxyService.kt
│       │   │               │   ├── ServiceNotification.kt
│       │   │               │   ├── TrafficMonitor.kt
│       │   │               │   ├── TransproxyService.kt
│       │   │               │   └── VpnService.kt
│       │   │               ├── database/
│       │   │               │   ├── KeyValuePair.kt
│       │   │               │   ├── PrivateDatabase.kt
│       │   │               │   ├── Profile.kt
│       │   │               │   ├── ProfileManager.kt
│       │   │               │   ├── PublicDatabase.kt
│       │   │               │   └── migration/
│       │   │               │       └── RecreateSchemaMigration.kt
│       │   │               ├── net/
│       │   │               │   ├── ConcurrentLocalSocketListener.kt
│       │   │               │   ├── DefaultNetworkListener.kt
│       │   │               │   ├── DnsResolverCompat.kt
│       │   │               │   ├── HttpsTest.kt
│       │   │               │   ├── LocalSocketListener.kt
│       │   │               │   └── Subnet.kt
│       │   │               ├── plugin/
│       │   │               │   ├── NativePlugin.kt
│       │   │               │   ├── NoPlugin.kt
│       │   │               │   ├── Plugin.kt
│       │   │               │   ├── PluginConfiguration.kt
│       │   │               │   ├── PluginList.kt
│       │   │               │   ├── PluginManager.kt
│       │   │               │   └── ResolvedPlugin.kt
│       │   │               ├── preference/
│       │   │               │   ├── DataStore.kt
│       │   │               │   ├── EditTextPreferenceModifiers.kt
│       │   │               │   ├── OnPreferenceDataStoreChangeListener.kt
│       │   │               │   └── RoomPreferenceDataStore.kt
│       │   │               ├── subscription/
│       │   │               │   ├── Subscription.kt
│       │   │               │   └── SubscriptionService.kt
│       │   │               ├── utils/
│       │   │               │   ├── ActivityResultContracts.kt
│       │   │               │   ├── ArrayIterator.kt
│       │   │               │   ├── Commandline.kt
│       │   │               │   ├── Constants.kt
│       │   │               │   ├── DeviceStorageApp.kt
│       │   │               │   ├── DirectBoot.kt
│       │   │               │   ├── Sorters.kt
│       │   │               │   └── Utils.kt
│       │   │               └── widget/
│       │   │                   └── AutoCollapseTextView.kt
│       │   ├── jni/
│       │   │   ├── Android.mk
│       │   │   ├── Application.mk
│       │   │   └── build-shared-executable.mk
│       │   ├── res/
│       │   │   ├── color-v24/
│       │   │   │   └── ic_launcher_foreground_shadow.xml
│       │   │   ├── drawable/
│       │   │   │   ├── ic_file_cloud_download.xml
│       │   │   │   ├── ic_launcher_monochrome.xml
│       │   │   │   └── ic_service_active.xml
│       │   │   ├── drawable-anydpi-v24/
│       │   │   │   └── ic_launcher_foreground.xml
│       │   │   ├── mipmap-anydpi-v24/
│       │   │   │   └── banner.xml
│       │   │   ├── mipmap-anydpi-v26/
│       │   │   │   └── ic_launcher.xml
│       │   │   ├── values/
│       │   │   │   ├── arrays.xml
│       │   │   │   ├── colors.xml
│       │   │   │   └── strings.xml
│       │   │   ├── values-ar/
│       │   │   │   └── strings.xml
│       │   │   ├── values-de/
│       │   │   │   └── strings.xml
│       │   │   ├── values-es/
│       │   │   │   └── strings.xml
│       │   │   ├── values-fa/
│       │   │   │   └── strings.xml
│       │   │   ├── values-fr/
│       │   │   │   └── strings.xml
│       │   │   ├── values-ja/
│       │   │   │   └── strings.xml
│       │   │   ├── values-ko/
│       │   │   │   └── strings.xml
│       │   │   ├── values-ru/
│       │   │   │   └── strings.xml
│       │   │   ├── values-tr/
│       │   │   │   └── strings.xml
│       │   │   ├── values-uk/
│       │   │   │   └── strings.xml
│       │   │   ├── values-zh-rCN/
│       │   │   │   └── strings.xml
│       │   │   ├── values-zh-rTW/
│       │   │   │   └── strings.xml
│       │   │   └── xml/
│       │   │       ├── backup_descriptor.xml
│       │   │       ├── default_configs.xml
│       │   │       ├── locales_config.xml
│       │   │       └── network_security_config.xml
│       │   └── rust/
│       │       └── linker-wrapper.py
│       └── test/
│           └── java/
│               └── com/
│                   └── github/
│                       └── shadowsocks/
│                           └── database/
│                               └── KeyValuePairTest.kt
├── detekt.yml
├── gradle/
│   ├── gradle-daemon-jvm.properties
│   ├── libs.versions.toml
│   └── wrapper/
│       ├── gradle-wrapper.jar
│       └── gradle-wrapper.properties
├── gradle.properties
├── gradlew
├── gradlew.bat
├── mobile/
│   ├── .gitignore
│   ├── build.gradle.kts
│   ├── google-services.json
│   └── src/
│       └── main/
│           ├── AndroidManifest.xml
│           ├── java/
│           │   └── com/
│           │       └── github/
│           │           └── shadowsocks/
│           │               ├── AboutFragment.kt
│           │               ├── App.kt
│           │               ├── AppManager.kt
│           │               ├── GlobalSettingsFragment.kt
│           │               ├── GlobalSettingsPreferenceFragment.kt
│           │               ├── MainActivity.kt
│           │               ├── ProfileConfigActivity.kt
│           │               ├── ProfileConfigFragment.kt
│           │               ├── ProfilesFragment.kt
│           │               ├── QuickToggleShortcut.kt
│           │               ├── ScannerActivity.kt
│           │               ├── ToolbarFragment.kt
│           │               ├── UdpFallbackProfileActivity.kt
│           │               ├── acl/
│           │               │   └── CustomRulesFragment.kt
│           │               ├── bg/
│           │               │   └── TileService.kt
│           │               ├── preference/
│           │               │   ├── PluginConfigurationDialogFragment.kt
│           │               │   ├── PluginPreference.kt
│           │               │   └── PluginPreferenceDialogFragment.kt
│           │               ├── subscription/
│           │               │   └── SubscriptionFragment.kt
│           │               ├── tasker/
│           │               │   ├── ActionListener.kt
│           │               │   ├── ConfigActivity.kt
│           │               │   └── Settings.kt
│           │               └── widget/
│           │                   ├── FabProgressBehavior.kt
│           │                   ├── ServiceButton.kt
│           │                   ├── StatsBar.kt
│           │                   ├── UndoSnackbarManager.kt
│           │                   └── WindowInsetsListeners.kt
│           └── res/
│               ├── color/
│               │   ├── background_service.xml
│               │   └── nav_item_tint.xml
│               ├── drawable/
│               │   ├── background_profile.xml
│               │   ├── background_selectable.xml
│               │   ├── ic_action_assignment.xml
│               │   ├── ic_action_copyright.xml
│               │   ├── ic_action_delete.xml
│               │   ├── ic_action_description.xml
│               │   ├── ic_action_dns.xml
│               │   ├── ic_action_done.xml
│               │   ├── ic_action_help_outline.xml
│               │   ├── ic_action_lock.xml
│               │   ├── ic_action_lock_open.xml
│               │   ├── ic_action_note_add.xml
│               │   ├── ic_action_settings.xml
│               │   ├── ic_app_shortcut_background.xml
│               │   ├── ic_av_playlist_add.xml
│               │   ├── ic_communication_phonelink_ring.xml
│               │   ├── ic_device_data_usage.xml
│               │   ├── ic_device_developer_mode.xml
│               │   ├── ic_file_cloud_queue.xml
│               │   ├── ic_file_file_upload.xml
│               │   ├── ic_hardware_router.xml
│               │   ├── ic_image_camera_alt.xml
│               │   ├── ic_image_edit.xml
│               │   ├── ic_image_looks_6.xml
│               │   ├── ic_image_photo.xml
│               │   ├── ic_maps_360.xml
│               │   ├── ic_maps_directions.xml
│               │   ├── ic_maps_directions_boat.xml
│               │   ├── ic_navigation_apps.xml
│               │   ├── ic_navigation_menu.xml
│               │   ├── ic_notification_enhanced_encryption.xml
│               │   ├── ic_qu_camera_launcher.xml
│               │   ├── ic_qu_shadowsocks_foreground.xml
│               │   ├── ic_qu_shadowsocks_launcher.xml
│               │   ├── ic_service_busy.xml
│               │   ├── ic_service_connected.xml
│               │   ├── ic_service_connecting.xml
│               │   ├── ic_service_idle.xml
│               │   ├── ic_service_stopped.xml
│               │   ├── ic_service_stopping.xml
│               │   ├── ic_settings_password.xml
│               │   ├── ic_social_emoji_symbols.xml
│               │   └── ic_social_share.xml
│               ├── drawable-v26/
│               │   ├── ic_qu_camera_launcher.xml
│               │   └── ic_qu_shadowsocks_launcher.xml
│               ├── layout/
│               │   ├── dialog_acl_rule.xml
│               │   ├── dialog_subscription.xml
│               │   ├── icon_list_item_2.xml
│               │   ├── layout_about.xml
│               │   ├── layout_apps.xml
│               │   ├── layout_apps_item.xml
│               │   ├── layout_custom_rules.xml
│               │   ├── layout_global_settings.xml
│               │   ├── layout_list.xml
│               │   ├── layout_main.xml
│               │   ├── layout_profile.xml
│               │   ├── layout_profile_config.xml
│               │   ├── layout_scanner.xml
│               │   ├── layout_subscriptions.xml
│               │   ├── layout_tasker.xml
│               │   ├── layout_udp_fallback.xml
│               │   ├── navigation_header.xml
│               │   └── preference_dialog_password.xml
│               ├── menu/
│               │   ├── app_manager_menu.xml
│               │   ├── custom_rules_menu.xml
│               │   ├── custom_rules_selection.xml
│               │   ├── navigation_main.xml
│               │   ├── profile_config_menu.xml
│               │   ├── profile_manager_menu.xml
│               │   ├── profile_share_popup.xml
│               │   ├── scanner_menu.xml
│               │   └── subscription_menu.xml
│               ├── raw/
│               │   └── about.html
│               ├── values/
│               │   ├── arrays.xml
│               │   ├── colors.xml
│               │   ├── dimen.xml
│               │   └── styles.xml
│               ├── values-night/
│               │   └── colors.xml
│               └── xml/
│                   ├── pref_global.xml
│                   ├── pref_profile.xml
│                   └── shortcuts.xml
├── plugin/
│   ├── .gitignore
│   ├── CHANGES.md
│   ├── README.md
│   ├── build.gradle.kts
│   ├── doc.md
│   ├── gradle.properties
│   └── src/
│       ├── main/
│       │   ├── AndroidManifest.xml
│       │   ├── java/
│       │   │   └── com/
│       │   │       └── github/
│       │   │           └── shadowsocks/
│       │   │               └── plugin/
│       │   │                   ├── AlertDialogFragment.kt
│       │   │                   ├── ConfigurationActivity.kt
│       │   │                   ├── HelpActivity.kt
│       │   │                   ├── HelpCallback.kt
│       │   │                   ├── NativePluginProvider.kt
│       │   │                   ├── OptionsCapableActivity.kt
│       │   │                   ├── PathProvider.kt
│       │   │                   ├── PluginContract.kt
│       │   │                   ├── PluginOptions.kt
│       │   │                   ├── Utils.kt
│       │   │                   └── fragment/
│       │   │                       ├── AlertDialogFragment.kt
│       │   │                       └── Utils.kt
│       │   └── res/
│       │       ├── color/
│       │       │   └── mtrl_text_btn_text_color_selector.xml
│       │       ├── drawable/
│       │       │   └── ic_navigation_close.xml
│       │       ├── layout/
│       │       │   └── toolbar_light_dark.xml
│       │       ├── values/
│       │       │   ├── colors.xml
│       │       │   ├── strings.xml
│       │       │   └── styles.xml
│       │       ├── values-de/
│       │       │   └── strings.xml
│       │       ├── values-es/
│       │       │   └── strings.xml
│       │       ├── values-fa/
│       │       │   └── strings.xml
│       │       ├── values-fr/
│       │       │   └── strings.xml
│       │       ├── values-ja/
│       │       │   └── strings.xml
│       │       ├── values-ko/
│       │       │   └── strings.xml
│       │       ├── values-night/
│       │       │   └── colors.xml
│       │       ├── values-ru/
│       │       │   └── strings.xml
│       │       ├── values-tr/
│       │       │   └── strings.xml
│       │       ├── values-uk/
│       │       │   └── strings.xml
│       │       ├── values-v29/
│       │       │   └── styles.xml
│       │       ├── values-zh-rCN/
│       │       │   └── strings.xml
│       │       └── values-zh-rTW/
│       │           └── strings.xml
│       └── test/
│           └── java/
│               └── com/
│                   └── github/
│                       └── shadowsocks/
│                           └── plugin/
│                               └── PluginOptionsTest.kt
├── privacy_policy.md
├── release.sh
├── repositories.gradle.kts
├── settings.gradle.kts
├── test-e2e.sh
├── translate.py
└── tv/
    ├── .gitignore
    ├── build.gradle.kts
    ├── google-services.json
    └── src/
        ├── freedom/
        │   └── res/
        │       └── values/
        │           └── styles.xml
        └── main/
            ├── AndroidManifest.xml
            ├── java/
            │   └── com/
            │       └── github/
            │           └── shadowsocks/
            │               └── tv/
            │                   ├── App.kt
            │                   ├── MainActivity.kt
            │                   ├── MainFragment.kt
            │                   ├── MainPreferenceFragment.kt
            │                   ├── ProfilesDialogFragment.kt
            │                   └── preference/
            │                       └── LeanbackSingleListPreferenceDialogFragment.kt
            └── res/
                ├── layout/
                │   ├── activity_main.xml
                │   └── leanback_list_preference_item_single_2.xml
                ├── values/
                │   └── styles.xml
                └── xml/
                    └── pref_main.xml
Download .txt
SYMBOL INDEX (12 symbols across 4 files)

FILE: core/gfwlist/gen.py
  function main (line 9) | def main():

FILE: core/gfwlist/parse.py
  function parse_args (line 14) | def parse_args():
  function decode_gfwlist (line 23) | def decode_gfwlist(content):
  function get_hostname (line 31) | def get_hostname(something):
  function add_domain_to_set (line 43) | def add_domain_to_set(s, something):
  function parse_gfwlist (line 54) | def parse_gfwlist(content):
  function generate_acl (line 81) | def generate_acl(domains):
  function main (line 109) | def main():

FILE: core/src/main/rust/linker-wrapper.py
  function win2posix (line 17) | def win2posix(path):
  function update_in_place (line 28) | def update_in_place(arglist):
  function posix2win (line 53) | def posix2win(path):

FILE: translate.py
  function main (line 33) | def main(api_token, project_id, languages, tags, file_path, header_comme...
Condensed preview — 309 files, each showing path, character count, and a content snippet. Download the .json file or copy for the full structured content (1,758K chars).
[
  {
    "path": ".circleci/config.yml",
    "chars": 1595,
    "preview": "version: 2.1\n\norbs:\n  android: circleci/android@2.3.0\n\njobs:\n  build:\n    executor:\n      name: android/android-docker\n "
  },
  {
    "path": ".github/FUNDING.yml",
    "chars": 16,
    "preview": "github: [Mygod]\n"
  },
  {
    "path": ".github/ISSUE_TEMPLATE/bug_report.md",
    "chars": 1500,
    "preview": "---\nname: Bug report\nabout: Create a report to help us improve\ntitle: ''\nlabels: bug\nassignees: ''\n\n---\n\nPlease read con"
  },
  {
    "path": ".github/ISSUE_TEMPLATE/feature_request.md",
    "chars": 650,
    "preview": "---\nname: Feature request\nabout: Suggest an idea for this project\ntitle: ''\nlabels: enhancement\nassignees: ''\n\n---\n\nPlea"
  },
  {
    "path": ".github/ISSUE_TEMPLATE/questions-support-requests-other.md",
    "chars": 272,
    "preview": "---\nname: Questions/Support requests/Other\nabout: You should probably use the forum\ntitle: ''\nlabels: question\nassignees"
  },
  {
    "path": ".github/doc-json.md",
    "chars": 5008,
    "preview": "# Documentation for JSON format\n\nshadowsocks-android accepts processing Shadowsocks configs through JSON files.\nThis doc"
  },
  {
    "path": ".github/faq.md",
    "chars": 4644,
    "preview": "### Troubleshooting\n\nCannot connect to server:\n\n1. Stop battery saver if it's active;\n2. Check your config;\n3. Wipe app "
  },
  {
    "path": ".github/faq.ru.md",
    "chars": 5308,
    "preview": "### Решение проблем\n\nНе получается подключиться к серверу:\n\n1. Выключите режим энергосбережения, если он активен;\n2. Про"
  },
  {
    "path": ".github/workflows/e2e-test.yml",
    "chars": 2423,
    "preview": "name: E2E Test\non:\n  push:\n    branches: [master]\n  pull_request:\n  workflow_dispatch:\n\njobs:\n  e2e-test:\n    runs-on: u"
  },
  {
    "path": ".gitignore",
    "chars": 146,
    "preview": "# Gradle & Android Studio\nlocal.properties\n.gradle/\n.externalNativeBuild/\nbuild/\ncaptures/\nrelease/\n\n.idea/\n*.iml\n\n# rel"
  },
  {
    "path": ".gitmodules",
    "chars": 787,
    "preview": "[submodule \"core/src/main/jni/badvpn\"]\n\tpath = core/src/main/jni/badvpn\n\turl = https://github.com/shadowsocks/badvpn.git"
  },
  {
    "path": ".travis.yml",
    "chars": 281,
    "preview": "sudo: required\n\naddons:\n    artifacts: true\n\nservices:\n    - docker\n\nbefore_install:\n    - docker pull circleci/android:"
  },
  {
    "path": "AUTHORS",
    "chars": 360,
    "preview": "Shadowsocks-android was originally created in late 2013, by\nMax Lv <max.c.lv@gmail.com>.\n\nHere is an inevitably incomple"
  },
  {
    "path": "CONTRIBUTING.md",
    "chars": 873,
    "preview": "# Submitting Issues\n\n* Issues can be submitted in two different places:\n    1) [The GitHub issue log](https://github.com"
  },
  {
    "path": "LICENSE",
    "chars": 738,
    "preview": "\nCopyright (C) 2017 by Max Lv <max.c.lv@gmail.com>\nCopyright (C) 2017 by Mygod Studio <contact-shadowsocks-android@mygod"
  },
  {
    "path": "README.md",
    "chars": 3936,
    "preview": "## [Shadowsocks](https://shadowsocks.org) for Android\n\n[![CircleCI](https://circleci.com/gh/shadowsocks/shadowsocks-andr"
  },
  {
    "path": "build.gradle.kts",
    "chars": 949,
    "preview": "// Top-level build file where you can add configuration options common to all sub-projects/modules.\n\nplugins {\n    alias"
  },
  {
    "path": "buildSrc/build.gradle.kts",
    "chars": 170,
    "preview": "plugins {\n    `kotlin-dsl`\n}\n\napply(from = \"../repositories.gradle.kts\")\n\ndependencies {\n    implementation(libs.android"
  },
  {
    "path": "buildSrc/settings.gradle.kts",
    "chars": 154,
    "preview": "dependencyResolutionManagement {\n    versionCatalogs {\n        create(\"libs\") {\n            from(files(\"../gradle/libs.v"
  },
  {
    "path": "buildSrc/src/main/kotlin/Helpers.kt",
    "chars": 3134,
    "preview": "import com.android.build.api.dsl.CommonExtension\nimport com.android.build.gradle.BaseExtension\nimport org.gradle.api.Jav"
  },
  {
    "path": "core/.gitignore",
    "chars": 14,
    "preview": "/build\n/.cxx/\n"
  },
  {
    "path": "core/build.gradle.kts",
    "chars": 4305,
    "preview": "import com.android.build.gradle.internal.tasks.factory.dependsOn\n\nplugins {\n    id(\"com.android.library\")\n    id(\"com.go"
  },
  {
    "path": "core/gfwlist/gen.pl",
    "chars": 280,
    "preview": "#!/usr/bin/env perl\n## ArchLinux install package via pacman: perl-net-cidr-lite\nuse strict;\nuse warnings;\nuse Net::CIDR:"
  },
  {
    "path": "core/gfwlist/gen.py",
    "chars": 309,
    "preview": "#!/usr/bin/python\n# -*- encoding: utf8 -*-\n\nimport sys\n\nimport IPy\n\n\ndef main():\n    china_list_set = IPy.IPSet()\n    fo"
  },
  {
    "path": "core/gfwlist/parse.py",
    "chars": 3113,
    "preview": "#!/usr/bin/python\n# -*- coding: utf-8 -*-\n\nimport pkgutil\nimport urlparse\nimport socket\nimport logging\nfrom argparse imp"
  },
  {
    "path": "core/proguard-rules.pro",
    "chars": 956,
    "preview": "# Add project specific ProGuard rules here.\n# You can control the set of applied configuration files using the\n# proguar"
  },
  {
    "path": "core/schemas/com.github.shadowsocks.database.PrivateDatabase/26.json",
    "chars": 4719,
    "preview": "{\n  \"formatVersion\": 1,\n  \"database\": {\n    \"version\": 26,\n    \"identityHash\": \"a69accf94393d71abdb60873d4ea74a2\",\n    \""
  },
  {
    "path": "core/schemas/com.github.shadowsocks.database.PrivateDatabase/27.json",
    "chars": 4912,
    "preview": "{\n  \"formatVersion\": 1,\n  \"database\": {\n    \"version\": 27,\n    \"identityHash\": \"8743c2e56bdbdabca7fcb89dff5434ba\",\n    \""
  },
  {
    "path": "core/schemas/com.github.shadowsocks.database.PrivateDatabase/28.json",
    "chars": 5101,
    "preview": "{\n  \"formatVersion\": 1,\n  \"database\": {\n    \"version\": 28,\n    \"identityHash\": \"b60ecca4d684ffe73173478bffd50a17\",\n    \""
  },
  {
    "path": "core/schemas/com.github.shadowsocks.database.PrivateDatabase/29.json",
    "chars": 5320,
    "preview": "{\n  \"formatVersion\": 1,\n  \"database\": {\n    \"version\": 29,\n    \"identityHash\": \"5b5c55a1277c63e14416316f9198ed43\",\n    \""
  },
  {
    "path": "core/schemas/com.github.shadowsocks.database.PublicDatabase/3.json",
    "chars": 1275,
    "preview": "{\n  \"formatVersion\": 1,\n  \"database\": {\n    \"version\": 3,\n    \"identityHash\": \"f1aab1fb633378621635c344dbc8ac7b\",\n    \"e"
  },
  {
    "path": "core/src/androidTest/java/com/github/shadowsocks/acl/AclTest.kt",
    "chars": 2182,
    "preview": "/*******************************************************************************\n *                                     "
  },
  {
    "path": "core/src/androidTest/java/com/github/shadowsocks/database/MigrationTest.kt",
    "chars": 2745,
    "preview": "/*******************************************************************************\n *                                     "
  },
  {
    "path": "core/src/androidTest/java/com/github/shadowsocks/database/ProfileTest.kt",
    "chars": 2045,
    "preview": "/*******************************************************************************\n *                                     "
  },
  {
    "path": "core/src/androidTest/java/com/github/shadowsocks/net/SubnetTest.kt",
    "chars": 2256,
    "preview": "package com.github.shadowsocks.net\n\nimport android.net.InetAddresses.parseNumericAddress\nimport org.junit.Assert\nimport "
  },
  {
    "path": "core/src/main/AndroidManifest.xml",
    "chars": 5763,
    "preview": "<manifest xmlns:android=\"http://schemas.android.com/apk/res/android\"\n          xmlns:tools=\"http://schemas.android.com/t"
  },
  {
    "path": "core/src/main/aidl/com/github/shadowsocks/aidl/IShadowsocksService.aidl",
    "chars": 472,
    "preview": "package com.github.shadowsocks.aidl;\n\nimport com.github.shadowsocks.aidl.IShadowsocksServiceCallback;\n\ninterface IShadow"
  },
  {
    "path": "core/src/main/aidl/com/github/shadowsocks/aidl/IShadowsocksServiceCallback.aidl",
    "chars": 398,
    "preview": "package com.github.shadowsocks.aidl;\n\nimport com.github.shadowsocks.aidl.TrafficStats;\n\noneway interface IShadowsocksSer"
  },
  {
    "path": "core/src/main/aidl/com/github/shadowsocks/aidl/TrafficStats.aidl",
    "chars": 63,
    "preview": "package com.github.shadowsocks.aidl;\n\nparcelable TrafficStats;\n"
  },
  {
    "path": "core/src/main/assets/acl/bypass-china.acl",
    "chars": 238930,
    "preview": "[proxy_all]\n\n[bypass_list]\n1.0.1.0/24\n1.0.2.0/23\n1.0.8.0/21\n1.0.32.0/19\n1.1.0.0/24\n1.1.2.0/23\n1.1.4.0/22\n1.1.8.0/21\n1.1."
  },
  {
    "path": "core/src/main/assets/acl/bypass-lan-china.acl",
    "chars": 239167,
    "preview": "[proxy_all]\n\n[bypass_list]\n0.0.0.0/8\n10.0.0.0/8\n100.64.0.0/10\n127.0.0.0/8\n169.254.0.0/16\n172.16.0.0/12\n192.0.0.0/24\n192."
  },
  {
    "path": "core/src/main/assets/acl/bypass-lan.acl",
    "chars": 264,
    "preview": "[proxy_all]\n\n[bypass_list]\n0.0.0.0/8\n10.0.0.0/8\n100.64.0.0/10\n127.0.0.0/8\n169.254.0.0/16\n172.16.0.0/12\n192.0.0.0/24\n192."
  },
  {
    "path": "core/src/main/assets/acl/china-list.acl",
    "chars": 83483,
    "preview": "[bypass_all]\n\n[proxy_list]\n1.0.1.0/24\n1.0.2.0/23\n1.0.8.0/21\n1.0.32.0/19\n1.1.0.0/24\n1.1.2.0/23\n1.1.4.0/22\n1.1.8.0/21\n1.1."
  },
  {
    "path": "core/src/main/assets/acl/gfwlist.acl",
    "chars": 130660,
    "preview": "#\n# GFW list from https://github.com/gfwlist/gfwlist/blob/master/gfwlist.txt\n#\n\n[bypass_all]\n\n[proxy_list]\n# Telegram IP"
  },
  {
    "path": "core/src/main/java/com/github/shadowsocks/BootReceiver.kt",
    "chars": 3021,
    "preview": "/*******************************************************************************\n *                                     "
  },
  {
    "path": "core/src/main/java/com/github/shadowsocks/Core.kt",
    "chars": 9322,
    "preview": "/*******************************************************************************\n *                                     "
  },
  {
    "path": "core/src/main/java/com/github/shadowsocks/UrlImportActivity.kt",
    "chars": 3789,
    "preview": "/*******************************************************************************\n *                                     "
  },
  {
    "path": "core/src/main/java/com/github/shadowsocks/VpnRequestActivity.kt",
    "chars": 2979,
    "preview": "/*******************************************************************************\n *                                     "
  },
  {
    "path": "core/src/main/java/com/github/shadowsocks/acl/Acl.kt",
    "chars": 9351,
    "preview": "/*******************************************************************************\n *                                     "
  },
  {
    "path": "core/src/main/java/com/github/shadowsocks/acl/AclSyncer.kt",
    "chars": 4157,
    "preview": "/*******************************************************************************\n *                                     "
  },
  {
    "path": "core/src/main/java/com/github/shadowsocks/aidl/ShadowsocksConnection.kt",
    "chars": 6733,
    "preview": "/*******************************************************************************\n *                                     "
  },
  {
    "path": "core/src/main/java/com/github/shadowsocks/aidl/TrafficStats.kt",
    "chars": 2072,
    "preview": "/*******************************************************************************\n *                                     "
  },
  {
    "path": "core/src/main/java/com/github/shadowsocks/bg/BaseService.kt",
    "chars": 16880,
    "preview": "/*******************************************************************************\n *                                     "
  },
  {
    "path": "core/src/main/java/com/github/shadowsocks/bg/Executable.kt",
    "chars": 2739,
    "preview": "/*******************************************************************************\n *                                     "
  },
  {
    "path": "core/src/main/java/com/github/shadowsocks/bg/GuardedProcessPool.kt",
    "chars": 6327,
    "preview": "/*******************************************************************************\n *                                     "
  },
  {
    "path": "core/src/main/java/com/github/shadowsocks/bg/LocalDnsWorker.kt",
    "chars": 2612,
    "preview": "package com.github.shadowsocks.bg\n\nimport android.net.LocalSocket\nimport com.github.shadowsocks.Core\nimport com.github.s"
  },
  {
    "path": "core/src/main/java/com/github/shadowsocks/bg/ProxyInstance.kt",
    "chars": 6366,
    "preview": "/*******************************************************************************\n *                                     "
  },
  {
    "path": "core/src/main/java/com/github/shadowsocks/bg/ProxyService.kt",
    "chars": 2320,
    "preview": "/*******************************************************************************\n *                                     "
  },
  {
    "path": "core/src/main/java/com/github/shadowsocks/bg/ServiceNotification.kt",
    "chars": 6289,
    "preview": "/*******************************************************************************\n *                                     "
  },
  {
    "path": "core/src/main/java/com/github/shadowsocks/bg/TrafficMonitor.kt",
    "chars": 4851,
    "preview": "/*******************************************************************************\n *                                     "
  },
  {
    "path": "core/src/main/java/com/github/shadowsocks/bg/TransproxyService.kt",
    "chars": 3051,
    "preview": "/*******************************************************************************\n *                                     "
  },
  {
    "path": "core/src/main/java/com/github/shadowsocks/bg/VpnService.kt",
    "chars": 10758,
    "preview": "/*******************************************************************************\n *                                     "
  },
  {
    "path": "core/src/main/java/com/github/shadowsocks/database/KeyValuePair.kt",
    "chars": 5052,
    "preview": "/*******************************************************************************\n *                                     "
  },
  {
    "path": "core/src/main/java/com/github/shadowsocks/database/PrivateDatabase.kt",
    "chars": 4622,
    "preview": "/*******************************************************************************\n *                                     "
  },
  {
    "path": "core/src/main/java/com/github/shadowsocks/database/Profile.kt",
    "chars": 16494,
    "preview": "/*******************************************************************************\n *                                     "
  },
  {
    "path": "core/src/main/java/com/github/shadowsocks/database/ProfileManager.kt",
    "chars": 6292,
    "preview": "/*******************************************************************************\n *                                     "
  },
  {
    "path": "core/src/main/java/com/github/shadowsocks/database/PublicDatabase.kt",
    "chars": 2841,
    "preview": "/*******************************************************************************\n *                                     "
  },
  {
    "path": "core/src/main/java/com/github/shadowsocks/database/migration/RecreateSchemaMigration.kt",
    "chars": 2230,
    "preview": "/*******************************************************************************\n *                                     "
  },
  {
    "path": "core/src/main/java/com/github/shadowsocks/net/ConcurrentLocalSocketListener.kt",
    "chars": 2247,
    "preview": "/*******************************************************************************\n *                                     "
  },
  {
    "path": "core/src/main/java/com/github/shadowsocks/net/DefaultNetworkListener.kt",
    "chars": 7672,
    "preview": "/*******************************************************************************\n *                                     "
  },
  {
    "path": "core/src/main/java/com/github/shadowsocks/net/DnsResolverCompat.kt",
    "chars": 9930,
    "preview": "/*******************************************************************************\n *                                     "
  },
  {
    "path": "core/src/main/java/com/github/shadowsocks/net/HttpsTest.kt",
    "chars": 5281,
    "preview": "/*******************************************************************************\n *                                     "
  },
  {
    "path": "core/src/main/java/com/github/shadowsocks/net/LocalSocketListener.kt",
    "chars": 3888,
    "preview": "/*******************************************************************************\n *                                     "
  },
  {
    "path": "core/src/main/java/com/github/shadowsocks/net/Subnet.kt",
    "chars": 4759,
    "preview": "/*******************************************************************************\n *                                     "
  },
  {
    "path": "core/src/main/java/com/github/shadowsocks/plugin/NativePlugin.kt",
    "chars": 1830,
    "preview": "/*******************************************************************************\n *                                     "
  },
  {
    "path": "core/src/main/java/com/github/shadowsocks/plugin/NoPlugin.kt",
    "chars": 260,
    "preview": "package com.github.shadowsocks.plugin\n\nimport com.github.shadowsocks.Core.app\n\nobject NoPlugin : Plugin() {\n    override"
  },
  {
    "path": "core/src/main/java/com/github/shadowsocks/plugin/Plugin.kt",
    "chars": 2232,
    "preview": "/*******************************************************************************\n *                                     "
  },
  {
    "path": "core/src/main/java/com/github/shadowsocks/plugin/PluginConfiguration.kt",
    "chars": 3431,
    "preview": "/*******************************************************************************\n *                                     "
  },
  {
    "path": "core/src/main/java/com/github/shadowsocks/plugin/PluginList.kt",
    "chars": 2707,
    "preview": "/*******************************************************************************\n *                                     "
  },
  {
    "path": "core/src/main/java/com/github/shadowsocks/plugin/PluginManager.kt",
    "chars": 12436,
    "preview": "/*******************************************************************************\n *                                     "
  },
  {
    "path": "core/src/main/java/com/github/shadowsocks/plugin/ResolvedPlugin.kt",
    "chars": 3361,
    "preview": "/*******************************************************************************\n *                                     "
  },
  {
    "path": "core/src/main/java/com/github/shadowsocks/preference/DataStore.kt",
    "chars": 5720,
    "preview": "/*******************************************************************************\n *                                     "
  },
  {
    "path": "core/src/main/java/com/github/shadowsocks/preference/EditTextPreferenceModifiers.kt",
    "chars": 2418,
    "preview": "/*******************************************************************************\n *                                     "
  },
  {
    "path": "core/src/main/java/com/github/shadowsocks/preference/OnPreferenceDataStoreChangeListener.kt",
    "chars": 1760,
    "preview": "/*******************************************************************************\n *                                     "
  },
  {
    "path": "core/src/main/java/com/github/shadowsocks/preference/RoomPreferenceDataStore.kt",
    "chars": 4639,
    "preview": "/*******************************************************************************\n *                                     "
  },
  {
    "path": "core/src/main/java/com/github/shadowsocks/subscription/Subscription.kt",
    "chars": 2764,
    "preview": "/*******************************************************************************\n *                                     "
  },
  {
    "path": "core/src/main/java/com/github/shadowsocks/subscription/SubscriptionService.kt",
    "chars": 10823,
    "preview": "/*******************************************************************************\n *                                     "
  },
  {
    "path": "core/src/main/java/com/github/shadowsocks/utils/ActivityResultContracts.kt",
    "chars": 3258,
    "preview": "/*******************************************************************************\n *                                     "
  },
  {
    "path": "core/src/main/java/com/github/shadowsocks/utils/ArrayIterator.kt",
    "chars": 2184,
    "preview": "/*******************************************************************************\n *                                     "
  },
  {
    "path": "core/src/main/java/com/github/shadowsocks/utils/Commandline.kt",
    "chars": 6847,
    "preview": "/*******************************************************************************\n *                                     "
  },
  {
    "path": "core/src/main/java/com/github/shadowsocks/utils/Constants.kt",
    "chars": 3437,
    "preview": "/*******************************************************************************\n *                                     "
  },
  {
    "path": "core/src/main/java/com/github/shadowsocks/utils/DeviceStorageApp.kt",
    "chars": 3420,
    "preview": "/*******************************************************************************\n *                                     "
  },
  {
    "path": "core/src/main/java/com/github/shadowsocks/utils/DirectBoot.kt",
    "chars": 2109,
    "preview": "package com.github.shadowsocks.utils\n\nimport android.annotation.TargetApi\nimport android.content.BroadcastReceiver\nimpor"
  },
  {
    "path": "core/src/main/java/com/github/shadowsocks/utils/Sorters.kt",
    "chars": 2546,
    "preview": "/*******************************************************************************\n *                                     "
  },
  {
    "path": "core/src/main/java/com/github/shadowsocks/utils/Utils.kt",
    "chars": 5803,
    "preview": "/*******************************************************************************\n *                                     "
  },
  {
    "path": "core/src/main/java/com/github/shadowsocks/widget/AutoCollapseTextView.kt",
    "chars": 2708,
    "preview": "/*******************************************************************************\n *                                     "
  },
  {
    "path": "core/src/main/jni/Android.mk",
    "chars": 5358,
    "preview": "# Copyright (C) 2009 The Android Open Source Project\n#\n# Licensed under the Apache License, Version 2.0 (the \"License\");"
  },
  {
    "path": "core/src/main/jni/Application.mk",
    "chars": 62,
    "preview": "APP_STL := c++_static\nAPP_SUPPORT_FLEXIBLE_PAGE_SIZES := true\n"
  },
  {
    "path": "core/src/main/jni/build-shared-executable.mk",
    "chars": 1343,
    "preview": "# Copyright (C) 2009 The Android Open Source Project\n#\n# Licensed under the Apache License, Version 2.0 (the \"License\");"
  },
  {
    "path": "core/src/main/res/color-v24/ic_launcher_foreground_shadow.xml",
    "chars": 349,
    "preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<gradient xmlns:android=\"http://schemas.android.com/apk/res/android\"\n          an"
  },
  {
    "path": "core/src/main/res/drawable/ic_file_cloud_download.xml",
    "chars": 525,
    "preview": "<vector xmlns:android=\"http://schemas.android.com/apk/res/android\"\n        android:width=\"24dp\"\n        android:height=\""
  },
  {
    "path": "core/src/main/res/drawable/ic_launcher_monochrome.xml",
    "chars": 808,
    "preview": "<vector android:height=\"108dp\" android:viewportHeight=\"108.0\"\n    android:viewportWidth=\"108.0\" android:width=\"108dp\" xm"
  },
  {
    "path": "core/src/main/res/drawable/ic_service_active.xml",
    "chars": 435,
    "preview": "<vector xmlns:android=\"http://schemas.android.com/apk/res/android\"\n    android:width=\"24dp\"\n    android:height=\"24dp\"\n  "
  },
  {
    "path": "core/src/main/res/drawable-anydpi-v24/ic_launcher_foreground.xml",
    "chars": 986,
    "preview": "<vector android:height=\"108dp\" android:viewportHeight=\"108.0\"\n        android:viewportWidth=\"108.0\" android:width=\"108dp"
  },
  {
    "path": "core/src/main/res/mipmap-anydpi-v24/banner.xml",
    "chars": 4254,
    "preview": "<vector xmlns:android=\"http://schemas.android.com/apk/res/android\"\n    xmlns:aapt=\"http://schemas.android.com/aapt\"\n    "
  },
  {
    "path": "core/src/main/res/mipmap-anydpi-v26/ic_launcher.xml",
    "chars": 338,
    "preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<adaptive-icon xmlns:android=\"http://schemas.android.com/apk/res/android\">\n    <b"
  },
  {
    "path": "core/src/main/res/values/arrays.xml",
    "chars": 7711,
    "preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<resources>\n    <string-array name=\"enc_method_entry\" translatable=\"false\">\n     "
  },
  {
    "path": "core/src/main/res/values/colors.xml",
    "chars": 121,
    "preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<resources>\n    <color name=\"ic_launcher_background\">#7488A1</color>\n</resources>"
  },
  {
    "path": "core/src/main/res/values/strings.xml",
    "chars": 8284,
    "preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<resources>\n\n  <string name=\"app_name\">Shadowsocks</string>\n  <string name=\"quick"
  },
  {
    "path": "core/src/main/res/values-ar/strings.xml",
    "chars": 1757,
    "preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<!--\n    Copyright (C) 2019 by Max Lv <max.c.lv@gmail.com>\n    Copyright (C) 2019"
  },
  {
    "path": "core/src/main/res/values-de/strings.xml",
    "chars": 10600,
    "preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<!--\n    Copyright (C) 2019 by Max Lv <max.c.lv@gmail.com>\n    Copyright (C) 2019"
  },
  {
    "path": "core/src/main/res/values-es/strings.xml",
    "chars": 8484,
    "preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<!--\n    Copyright (C) 2019 by Max Lv <max.c.lv@gmail.com>\n    Copyright (C) 2019"
  },
  {
    "path": "core/src/main/res/values-fa/strings.xml",
    "chars": 10608,
    "preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<!--\n    Copyright (C) 2019 by Max Lv <max.c.lv@gmail.com>\n    Copyright (C) 2019"
  },
  {
    "path": "core/src/main/res/values-fr/strings.xml",
    "chars": 9342,
    "preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<!--\n    Copyright (C) 2019 by Max Lv <max.c.lv@gmail.com>\n    Copyright (C) 2019"
  },
  {
    "path": "core/src/main/res/values-ja/strings.xml",
    "chars": 9496,
    "preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<!--\n    Copyright (C) 2019 by Max Lv <max.c.lv@gmail.com>\n    Copyright (C) 2019"
  },
  {
    "path": "core/src/main/res/values-ko/strings.xml",
    "chars": 6043,
    "preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<!--\n    Copyright (C) 2019 by Max Lv <max.c.lv@gmail.com>\n    Copyright (C) 2019"
  },
  {
    "path": "core/src/main/res/values-ru/strings.xml",
    "chars": 11305,
    "preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<!--\n    Copyright (C) 2019 by Max Lv <max.c.lv@gmail.com>\n    Copyright (C) 2019"
  },
  {
    "path": "core/src/main/res/values-tr/strings.xml",
    "chars": 8634,
    "preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<!--\n    Copyright (C) 2019 by Max Lv <max.c.lv@gmail.com>\n    Copyright (C) 2019"
  },
  {
    "path": "core/src/main/res/values-uk/strings.xml",
    "chars": 7199,
    "preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<!--\n    Copyright (C) 2019 by Max Lv <max.c.lv@gmail.com>\n    Copyright (C) 2019"
  },
  {
    "path": "core/src/main/res/values-zh-rCN/strings.xml",
    "chars": 8787,
    "preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<!--\n    Copyright (C) 2019 by Max Lv <max.c.lv@gmail.com>\n    Copyright (C) 2019"
  },
  {
    "path": "core/src/main/res/values-zh-rTW/strings.xml",
    "chars": 9015,
    "preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<!--\n    Copyright (C) 2019 by Max Lv <max.c.lv@gmail.com>\n    Copyright (C) 2019"
  },
  {
    "path": "core/src/main/res/xml/backup_descriptor.xml",
    "chars": 393,
    "preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<full-backup-content xmlns:tools=\"http://schemas.android.com/tools\"\n             "
  },
  {
    "path": "core/src/main/res/xml/default_configs.xml",
    "chars": 184,
    "preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<defaultsMap>\n    <entry>\n        <key>proxy_url</key>\n        <value>https://soc"
  },
  {
    "path": "core/src/main/res/xml/locales_config.xml",
    "chars": 553,
    "preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<locale-config xmlns:android=\"http://schemas.android.com/apk/res/android\">\n    <l"
  },
  {
    "path": "core/src/main/res/xml/network_security_config.xml",
    "chars": 145,
    "preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<network-security-config>\n    <base-config cleartextTrafficPermitted=\"false\"/>\n</"
  },
  {
    "path": "core/src/main/rust/linker-wrapper.py",
    "chars": 3111,
    "preview": "from __future__ import absolute_import, print_function, unicode_literals\n\nimport os\nimport shlex\nimport shutil\nimport su"
  },
  {
    "path": "core/src/test/java/com/github/shadowsocks/database/KeyValuePairTest.kt",
    "chars": 2182,
    "preview": "/*******************************************************************************\n *                                     "
  },
  {
    "path": "detekt.yml",
    "chars": 391,
    "preview": "comments:\n  active: false\n\ncomplexity:\n  LabeledExpression:\n    active: false\n  TooManyFunctions:\n    ignoreDeprecated: "
  },
  {
    "path": "gradle/gradle-daemon-jvm.properties",
    "chars": 1164,
    "preview": "#This file is generated by updateDaemonJvm\ntoolchainUrl.FREE_BSD.AARCH64=https\\://api.foojay.io/disco/v3.0/ids/ff1d4fc92"
  },
  {
    "path": "gradle/libs.versions.toml",
    "chars": 3401,
    "preview": "[versions]\ncamera = \"1.5.2\"\ncoroutines = \"1.10.2\"\nlifecycle = \"2.10.0\"\nroom = \"2.8.4\"\nwork = \"2.11.0\"\n\n[libraries]\nandro"
  },
  {
    "path": "gradle/wrapper/gradle-wrapper.properties",
    "chars": 253,
    "preview": "distributionBase=GRADLE_USER_HOME\ndistributionPath=wrapper/dists\ndistributionUrl=https\\://services.gradle.org/distributi"
  },
  {
    "path": "gradle.properties",
    "chars": 980,
    "preview": "# Project-wide Gradle settings.\n\n# IDE (e.g. Android Studio) users:\n# Gradle settings configured through the IDE *will o"
  },
  {
    "path": "gradlew",
    "chars": 8710,
    "preview": "#!/bin/sh\n\n#\n# Copyright © 2015-2021 the original authors.\n#\n# Licensed under the Apache License, Version 2.0 (the \"Lice"
  },
  {
    "path": "gradlew.bat",
    "chars": 2937,
    "preview": "@rem\r\n@rem Copyright 2015 the original author or authors.\r\n@rem\r\n@rem Licensed under the Apache License, Version 2.0 (th"
  },
  {
    "path": "mobile/.gitignore",
    "chars": 7,
    "preview": "/build\n"
  },
  {
    "path": "mobile/build.gradle.kts",
    "chars": 1110,
    "preview": "plugins {\n    id(\"com.android.application\")\n    id(\"com.google.android.gms.oss-licenses-plugin\")\n    id(\"com.google.gms."
  },
  {
    "path": "mobile/google-services.json",
    "chars": 2572,
    "preview": "{\n  \"project_info\": {\n    \"project_number\": \"261400168171\",\n    \"firebase_url\": \"https://admob-app-id-3330146721.firebas"
  },
  {
    "path": "mobile/src/main/AndroidManifest.xml",
    "chars": 5295,
    "preview": "<manifest xmlns:android=\"http://schemas.android.com/apk/res/android\"\n          xmlns:tools=\"http://schemas.android.com/t"
  },
  {
    "path": "mobile/src/main/java/com/github/shadowsocks/AboutFragment.kt",
    "chars": 4183,
    "preview": "/*******************************************************************************\n *                                     "
  },
  {
    "path": "mobile/src/main/java/com/github/shadowsocks/App.kt",
    "chars": 2063,
    "preview": "/*******************************************************************************\n *                                     "
  },
  {
    "path": "mobile/src/main/java/com/github/shadowsocks/AppManager.kt",
    "chars": 15137,
    "preview": "/*******************************************************************************\n *                                     "
  },
  {
    "path": "mobile/src/main/java/com/github/shadowsocks/GlobalSettingsFragment.kt",
    "chars": 2287,
    "preview": "/*******************************************************************************\n *                                     "
  },
  {
    "path": "mobile/src/main/java/com/github/shadowsocks/GlobalSettingsPreferenceFragment.kt",
    "chars": 4739,
    "preview": "/*******************************************************************************\n *                                     "
  },
  {
    "path": "mobile/src/main/java/com/github/shadowsocks/MainActivity.kt",
    "chars": 11356,
    "preview": "/*******************************************************************************\n *                                     "
  },
  {
    "path": "mobile/src/main/java/com/github/shadowsocks/ProfileConfigActivity.kt",
    "chars": 4011,
    "preview": "/*******************************************************************************\n *                                     "
  },
  {
    "path": "mobile/src/main/java/com/github/shadowsocks/ProfileConfigFragment.kt",
    "chars": 14047,
    "preview": "/*******************************************************************************\n *                                     "
  },
  {
    "path": "mobile/src/main/java/com/github/shadowsocks/ProfilesFragment.kt",
    "chars": 22065,
    "preview": "/*******************************************************************************\n *                                     "
  },
  {
    "path": "mobile/src/main/java/com/github/shadowsocks/QuickToggleShortcut.kt",
    "chars": 3692,
    "preview": "/*******************************************************************************\n *                                     "
  },
  {
    "path": "mobile/src/main/java/com/github/shadowsocks/ScannerActivity.kt",
    "chars": 9155,
    "preview": "/*******************************************************************************\n *                                     "
  },
  {
    "path": "mobile/src/main/java/com/github/shadowsocks/ToolbarFragment.kt",
    "chars": 2186,
    "preview": "/*******************************************************************************\n *                                     "
  },
  {
    "path": "mobile/src/main/java/com/github/shadowsocks/UdpFallbackProfileActivity.kt",
    "chars": 5322,
    "preview": "/*******************************************************************************\n *                                     "
  },
  {
    "path": "mobile/src/main/java/com/github/shadowsocks/acl/CustomRulesFragment.kt",
    "chars": 23325,
    "preview": "/*******************************************************************************\n *                                     "
  },
  {
    "path": "mobile/src/main/java/com/github/shadowsocks/bg/TileService.kt",
    "chars": 4747,
    "preview": "/*******************************************************************************\n *                                     "
  },
  {
    "path": "mobile/src/main/java/com/github/shadowsocks/preference/PluginConfigurationDialogFragment.kt",
    "chars": 3166,
    "preview": "/*******************************************************************************\n *                                     "
  },
  {
    "path": "mobile/src/main/java/com/github/shadowsocks/preference/PluginPreference.kt",
    "chars": 3418,
    "preview": "/*******************************************************************************\n *                                     "
  },
  {
    "path": "mobile/src/main/java/com/github/shadowsocks/preference/PluginPreferenceDialogFragment.kt",
    "chars": 6641,
    "preview": "/*******************************************************************************\n *                                     "
  },
  {
    "path": "mobile/src/main/java/com/github/shadowsocks/subscription/SubscriptionFragment.kt",
    "chars": 11243,
    "preview": "/*******************************************************************************\n *                                     "
  },
  {
    "path": "mobile/src/main/java/com/github/shadowsocks/tasker/ActionListener.kt",
    "chars": 2269,
    "preview": "/*******************************************************************************\n *                                     "
  },
  {
    "path": "mobile/src/main/java/com/github/shadowsocks/tasker/ConfigActivity.kt",
    "chars": 5601,
    "preview": "/*******************************************************************************\n *                                     "
  },
  {
    "path": "mobile/src/main/java/com/github/shadowsocks/tasker/Settings.kt",
    "chars": 3026,
    "preview": "/*******************************************************************************\n *                                     "
  },
  {
    "path": "mobile/src/main/java/com/github/shadowsocks/widget/FabProgressBehavior.kt",
    "chars": 2543,
    "preview": "/*******************************************************************************\n *                                     "
  },
  {
    "path": "mobile/src/main/java/com/github/shadowsocks/widget/ServiceButton.kt",
    "chars": 7437,
    "preview": "/*******************************************************************************\n *                                     "
  },
  {
    "path": "mobile/src/main/java/com/github/shadowsocks/widget/StatsBar.kt",
    "chars": 5153,
    "preview": "/*******************************************************************************\n *                                     "
  },
  {
    "path": "mobile/src/main/java/com/github/shadowsocks/widget/UndoSnackbarManager.kt",
    "chars": 3135,
    "preview": "/*******************************************************************************\n *                                     "
  },
  {
    "path": "mobile/src/main/java/com/github/shadowsocks/widget/WindowInsetsListeners.kt",
    "chars": 3128,
    "preview": "/*******************************************************************************\n *                                     "
  },
  {
    "path": "mobile/src/main/res/color/background_service.xml",
    "chars": 260,
    "preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<selector xmlns:android=\"http://schemas.android.com/apk/res/android\">\n    <item a"
  },
  {
    "path": "mobile/src/main/res/color/nav_item_tint.xml",
    "chars": 263,
    "preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<selector xmlns:android=\"http://schemas.android.com/apk/res/android\">\n    <item a"
  },
  {
    "path": "mobile/src/main/res/drawable/background_profile.xml",
    "chars": 985,
    "preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<layer-list xmlns:android=\"http://schemas.android.com/apk/res/android\">\n    <item"
  },
  {
    "path": "mobile/src/main/res/drawable/background_selectable.xml",
    "chars": 545,
    "preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<layer-list xmlns:android=\"http://schemas.android.com/apk/res/android\">\n    <item"
  },
  {
    "path": "mobile/src/main/res/drawable/ic_action_assignment.xml",
    "chars": 597,
    "preview": "<vector xmlns:android=\"http://schemas.android.com/apk/res/android\"\n        android:width=\"24dp\"\n        android:height=\""
  },
  {
    "path": "mobile/src/main/res/drawable/ic_action_copyright.xml",
    "chars": 1269,
    "preview": "<vector xmlns:android=\"http://schemas.android.com/apk/res/android\"\n        android:width=\"24dp\"\n        android:height=\""
  },
  {
    "path": "mobile/src/main/res/drawable/ic_action_delete.xml",
    "chars": 429,
    "preview": "<vector xmlns:android=\"http://schemas.android.com/apk/res/android\"\n        android:width=\"24dp\"\n        android:height=\""
  },
  {
    "path": "mobile/src/main/res/drawable/ic_action_description.xml",
    "chars": 484,
    "preview": "<vector xmlns:android=\"http://schemas.android.com/apk/res/android\"\n        android:width=\"24dp\"\n        android:height=\""
  },
  {
    "path": "mobile/src/main/res/drawable/ic_action_dns.xml",
    "chars": 655,
    "preview": "<vector xmlns:android=\"http://schemas.android.com/apk/res/android\"\n        android:width=\"24dp\"\n        android:height=\""
  },
  {
    "path": "mobile/src/main/res/drawable/ic_action_done.xml",
    "chars": 397,
    "preview": "<vector xmlns:android=\"http://schemas.android.com/apk/res/android\"\n        android:width=\"24dp\"\n        android:height=\""
  },
  {
    "path": "mobile/src/main/res/drawable/ic_action_help_outline.xml",
    "chars": 562,
    "preview": "<vector xmlns:android=\"http://schemas.android.com/apk/res/android\"\n        android:width=\"24dp\"\n        android:height=\""
  },
  {
    "path": "mobile/src/main/res/drawable/ic_action_lock.xml",
    "chars": 613,
    "preview": "<vector xmlns:android=\"http://schemas.android.com/apk/res/android\"\n        android:width=\"24dp\"\n        android:height=\""
  },
  {
    "path": "mobile/src/main/res/drawable/ic_action_lock_open.xml",
    "chars": 612,
    "preview": "<vector android:autoMirrored=\"true\" android:height=\"24dp\"\n    android:tint=\"?attr/colorControlNormal\"\n    android:viewpo"
  },
  {
    "path": "mobile/src/main/res/drawable/ic_action_note_add.xml",
    "chars": 533,
    "preview": "<vector xmlns:android=\"http://schemas.android.com/apk/res/android\"\n        android:width=\"24dp\"\n        android:height=\""
  },
  {
    "path": "mobile/src/main/res/drawable/ic_action_settings.xml",
    "chars": 1209,
    "preview": "<vector xmlns:android=\"http://schemas.android.com/apk/res/android\"\n        android:width=\"24dp\"\n        android:height=\""
  },
  {
    "path": "mobile/src/main/res/drawable/ic_app_shortcut_background.xml",
    "chars": 830,
    "preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<!--\n  Copyright 2017 Google Inc.\n\n  Licensed under the Apache License, Version 2"
  },
  {
    "path": "mobile/src/main/res/drawable/ic_av_playlist_add.xml",
    "chars": 469,
    "preview": "<vector xmlns:android=\"http://schemas.android.com/apk/res/android\"\n        android:width=\"24dp\"\n        android:height=\""
  },
  {
    "path": "mobile/src/main/res/drawable/ic_communication_phonelink_ring.xml",
    "chars": 567,
    "preview": "<vector android:autoMirrored=\"true\" android:height=\"24dp\"\n    android:viewportHeight=\"24.0\" android:viewportWidth=\"24.0\""
  },
  {
    "path": "mobile/src/main/res/drawable/ic_device_data_usage.xml",
    "chars": 637,
    "preview": "<vector android:autoMirrored=\"true\" android:height=\"24dp\"\n    android:viewportHeight=\"24.0\" android:viewportWidth=\"24.0\""
  },
  {
    "path": "mobile/src/main/res/drawable/ic_device_developer_mode.xml",
    "chars": 607,
    "preview": "<vector xmlns:android=\"http://schemas.android.com/apk/res/android\"\n        android:width=\"24dp\"\n        android:height=\""
  },
  {
    "path": "mobile/src/main/res/drawable/ic_file_cloud_queue.xml",
    "chars": 612,
    "preview": "<vector xmlns:android=\"http://schemas.android.com/apk/res/android\"\n    android:width=\"24dp\"\n    android:height=\"24dp\"\n  "
  },
  {
    "path": "mobile/src/main/res/drawable/ic_file_file_upload.xml",
    "chars": 380,
    "preview": "<vector xmlns:android=\"http://schemas.android.com/apk/res/android\"\n        android:width=\"24dp\"\n        android:height=\""
  },
  {
    "path": "mobile/src/main/res/drawable/ic_hardware_router.xml",
    "chars": 702,
    "preview": "<vector android:autoMirrored=\"true\" android:height=\"24dp\"\n    android:viewportHeight=\"24.0\" android:viewportWidth=\"24.0\""
  },
  {
    "path": "mobile/src/main/res/drawable/ic_image_camera_alt.xml",
    "chars": 641,
    "preview": "<vector xmlns:android=\"http://schemas.android.com/apk/res/android\"\n        android:width=\"24dp\"\n        android:height=\""
  },
  {
    "path": "mobile/src/main/res/drawable/ic_image_edit.xml",
    "chars": 504,
    "preview": "<vector xmlns:android=\"http://schemas.android.com/apk/res/android\"\n        android:width=\"24dp\"\n        android:height=\""
  },
  {
    "path": "mobile/src/main/res/drawable/ic_image_looks_6.xml",
    "chars": 554,
    "preview": "<vector xmlns:android=\"http://schemas.android.com/apk/res/android\"\n        android:width=\"24dp\"\n        android:height=\""
  },
  {
    "path": "mobile/src/main/res/drawable/ic_image_photo.xml",
    "chars": 473,
    "preview": "<vector xmlns:android=\"http://schemas.android.com/apk/res/android\"\n        android:width=\"24dp\"\n        android:height=\""
  },
  {
    "path": "mobile/src/main/res/drawable/ic_maps_360.xml",
    "chars": 561,
    "preview": "<vector xmlns:android=\"http://schemas.android.com/apk/res/android\"\n    android:width=\"24dp\"\n    android:height=\"24dp\"\n  "
  },
  {
    "path": "mobile/src/main/res/drawable/ic_maps_directions.xml",
    "chars": 539,
    "preview": "<vector android:autoMirrored=\"true\" android:height=\"24dp\"\n    android:viewportHeight=\"24.0\" android:viewportWidth=\"24.0\""
  },
  {
    "path": "mobile/src/main/res/drawable/ic_maps_directions_boat.xml",
    "chars": 843,
    "preview": "<vector xmlns:android=\"http://schemas.android.com/apk/res/android\"\n        android:width=\"24dp\"\n        android:height=\""
  },
  {
    "path": "mobile/src/main/res/drawable/ic_navigation_apps.xml",
    "chars": 465,
    "preview": "<vector xmlns:android=\"http://schemas.android.com/apk/res/android\"\n    android:width=\"24dp\"\n    android:height=\"24dp\"\n  "
  },
  {
    "path": "mobile/src/main/res/drawable/ic_navigation_menu.xml",
    "chars": 395,
    "preview": "<vector xmlns:android=\"http://schemas.android.com/apk/res/android\"\n        android:width=\"24dp\"\n        android:height=\""
  },
  {
    "path": "mobile/src/main/res/drawable/ic_notification_enhanced_encryption.xml",
    "chars": 565,
    "preview": "<vector xmlns:android=\"http://schemas.android.com/apk/res/android\"\n        android:width=\"24dp\"\n        android:height=\""
  },
  {
    "path": "mobile/src/main/res/drawable/ic_qu_camera_launcher.xml",
    "chars": 498,
    "preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<layer-list xmlns:android=\"http://schemas.android.com/apk/res/android\">\n\n    <ite"
  },
  {
    "path": "mobile/src/main/res/drawable/ic_qu_shadowsocks_foreground.xml",
    "chars": 475,
    "preview": "<vector xmlns:android=\"http://schemas.android.com/apk/res/android\"\n        android:width=\"24dp\"\n        android:height=\""
  }
]

// ... and 109 more files (download for full content)

About this extraction

This page contains the full source code of the shadowsocks/shadowsocks-android GitHub repository, extracted and formatted as plain text for AI agents and large language models (LLMs). The extraction includes 309 files (1.6 MB), approximately 582.8k tokens, and a symbol index with 12 extracted functions, classes, methods, constants, and types. Use this with OpenClaw, Claude, ChatGPT, Cursor, Windsurf, or any other AI tool that accepts text input. You can copy the full output to your clipboard or download it as a .txt file.

Extracted by GitExtract — free GitHub repo to text converter for AI. Built by Nikandr Surkov.

Copied to clipboard!