Full Code of microsoft/BitNet for AI

main 01eb415772c3 cached
60 files
2.9 MB
770.2k tokens
580 symbols
1 requests
Download .txt
Showing preview only (3,080K chars total). Download the full file or copy to clipboard to get everything.
Repository: microsoft/BitNet
Branch: main
Commit: 01eb415772c3
Files: 60
Total size: 2.9 MB

Directory structure:
gitextract_uxq8hg2y/

├── .gitignore
├── .gitmodules
├── CMakeLists.txt
├── CODE_OF_CONDUCT.md
├── LICENSE
├── README.md
├── SECURITY.md
├── docs/
│   └── codegen.md
├── gpu/
│   ├── README.md
│   ├── bitnet_kernels/
│   │   ├── bitnet_kernels.cu
│   │   ├── bitnet_kernels.h
│   │   ├── compile.sh
│   │   └── setup.py
│   ├── convert_checkpoint.py
│   ├── convert_safetensors.py
│   ├── generate.py
│   ├── model.py
│   ├── pack_weight.py
│   ├── requirements.txt
│   ├── sample_utils.py
│   ├── stats.py
│   ├── test.py
│   ├── tokenizer.model
│   └── tokenizer.py
├── include/
│   ├── gemm-config.h
│   └── ggml-bitnet.h
├── preset_kernels/
│   ├── Llama3-8B-1.58-100B-tokens/
│   │   ├── bitnet-lut-kernels-tl1.h
│   │   ├── bitnet-lut-kernels-tl2.h
│   │   ├── kernel_config_tl1.ini
│   │   └── kernel_config_tl2.ini
│   ├── bitnet_b1_58-3B/
│   │   ├── bitnet-lut-kernels-tl1.h
│   │   ├── bitnet-lut-kernels-tl2.h
│   │   ├── kernel_config_tl1.ini
│   │   └── kernel_config_tl2.ini
│   └── bitnet_b1_58-large/
│       ├── bitnet-lut-kernels-tl1.h
│       ├── bitnet-lut-kernels-tl2.h
│       ├── kernel_config_tl1.ini
│       └── kernel_config_tl2.ini
├── requirements.txt
├── run_inference.py
├── run_inference_server.py
├── setup_env.py
├── src/
│   ├── CMakeLists.txt
│   ├── README.md
│   ├── ggml-bitnet-lut.cpp
│   └── ggml-bitnet-mad.cpp
└── utils/
    ├── codegen_tl1.py
    ├── codegen_tl2.py
    ├── convert-helper-bitnet.py
    ├── convert-hf-to-gguf-bitnet.py
    ├── convert-ms-to-gguf-bitnet.py
    ├── convert.py
    ├── e2e_benchmark.py
    ├── generate-dummy-bitnet-model.py
    ├── preprocess-huggingface-bitnet.py
    ├── quantize_embeddings.py
    ├── test_gemm_kernel.sh
    ├── test_perplexity.py
    ├── test_power.sh
    └── tune_gemm_config.py

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

================================================
FILE: .gitignore
================================================
# Extensions

*.a
*.bat
*.bin
*.dll
*.dot
*.etag
*.exe
*.gcda
*.gcno
*.gcov
*.gguf
*.gguf.json
*.lastModified
*.log
*.metallib
*.o
*.so
*.tmp

# IDE / OS

.cache/
.ccls-cache/
.direnv/
.DS_Store
.envrc
.idea/
.swiftpm
.vs/
.vscode/
nppBackup

# Models
models/*
gpu/checkpoints/*

# Python

/.venv
__pycache__/
*/poetry.lock
poetry.toml

build/
logs/

================================================
FILE: .gitmodules
================================================
[submodule "3rdparty/llama.cpp"]
	path = 3rdparty/llama.cpp
	url = https://github.com/Eddie-Wang1120/llama.cpp.git
	branch = merge-dev


================================================
FILE: CMakeLists.txt
================================================
cmake_minimum_required(VERSION 3.14)  # for add_link_options and implicit target directories.
project("bitnet.cpp" C CXX)
include(CheckIncludeFileCXX)

set(CMAKE_EXPORT_COMPILE_COMMANDS ON)

if (NOT XCODE AND NOT MSVC AND NOT CMAKE_BUILD_TYPE)
    set(CMAKE_BUILD_TYPE Release CACHE STRING "Build type" FORCE)
    set_property(CACHE CMAKE_BUILD_TYPE PROPERTY STRINGS "Debug" "Release" "MinSizeRel" "RelWithDebInfo")
endif()

set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/bin)

# option list
option(BITNET_ARM_TL1    "bitnet.cpp: use tl1 on arm platform"    OFF)
option(BITNET_X86_TL2    "bitnet.cpp: use tl2 on x86 platform"    OFF)


set(CMAKE_CXX_STANDARD_REQUIRED true)
set(CMAKE_C_STANDARD 11)
set(CMAKE_C_STANDARD_REQUIRED true)
set(THREADS_PREFER_PTHREAD_FLAG ON)

# override ggml options
set(GGML_BITNET_ARM_TL1    ${BITNET_ARM_TL1})
set(GGML_BITNET_X86_TL2    ${BITNET_X86_TL2})

if (GGML_BITNET_ARM_TL1)
    add_compile_definitions(GGML_BITNET_ARM_TL1)
endif()
if (GGML_BITNET_X86_TL2)
    add_compile_definitions(GGML_BITNET_X86_TL2)
endif()

if (CMAKE_C_COMPILER_ID STREQUAL "GNU" OR CMAKE_CXX_COMPILER_ID STREQUAL "GNU")
    add_compile_options(-fpermissive)
endif()

find_package(Threads REQUIRED)

add_subdirectory(src)
set(LLAMA_BUILD_SERVER ON CACHE BOOL "Build llama.cpp server" FORCE)
add_subdirectory(3rdparty/llama.cpp)

# install

include(GNUInstallDirs)
include(CMakePackageConfigHelpers)

set(LLAMA_INCLUDE_INSTALL_DIR ${CMAKE_INSTALL_INCLUDEDIR}
    CACHE PATH "Location of header files")
set(LLAMA_LIB_INSTALL_DIR ${CMAKE_INSTALL_LIBDIR}
    CACHE PATH "Location of library files")
set(LLAMA_BIN_INSTALL_DIR ${CMAKE_INSTALL_BINDIR}
    CACHE PATH "Location of binary files")
set(LLAMA_BUILD_NUMBER ${BUILD_NUMBER})
set(LLAMA_BUILD_COMMIT ${BUILD_COMMIT})
set(LLAMA_INSTALL_VERSION 0.0.${BUILD_NUMBER})

get_target_property(GGML_DIRECTORY ggml SOURCE_DIR)
get_directory_property(GGML_DIR_DEFINES DIRECTORY ${GGML_DIRECTORY} COMPILE_DEFINITIONS)
get_target_property(GGML_TARGET_DEFINES ggml COMPILE_DEFINITIONS)
set(GGML_TRANSIENT_DEFINES ${GGML_TARGET_DEFINES} ${GGML_DIR_DEFINES})
get_target_property(GGML_LINK_LIBRARIES ggml LINK_LIBRARIES)

get_directory_property(LLAMA_TRANSIENT_DEFINES COMPILE_DEFINITIONS)

write_basic_package_version_file(
        ${CMAKE_CURRENT_BINARY_DIR}/LlamaConfigVersion.cmake
    VERSION ${LLAMA_INSTALL_VERSION}
    COMPATIBILITY SameMajorVersion)

install(FILES ${CMAKE_CURRENT_BINARY_DIR}/LlamaConfig.cmake
              ${CMAKE_CURRENT_BINARY_DIR}/LlamaConfigVersion.cmake
        DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake/Llama)

set_target_properties(llama PROPERTIES PUBLIC_HEADER ${CMAKE_CURRENT_SOURCE_DIR}/llama.h)
install(TARGETS llama LIBRARY PUBLIC_HEADER)


================================================
FILE: CODE_OF_CONDUCT.md
================================================
# Microsoft Open Source Code of Conduct

This project has adopted the [Microsoft Open Source Code of Conduct](https://opensource.microsoft.com/codeofconduct/).

Resources:

- [Microsoft Open Source Code of Conduct](https://opensource.microsoft.com/codeofconduct/)
- [Microsoft Code of Conduct FAQ](https://opensource.microsoft.com/codeofconduct/faq/)
- Contact [opencode@microsoft.com](mailto:opencode@microsoft.com) with questions or concerns


================================================
FILE: LICENSE
================================================
    MIT License

    Copyright (c) Microsoft Corporation.

    Permission is hereby granted, free of charge, to any person obtaining a copy
    of this software and associated documentation files (the "Software"), to deal
    in the Software without restriction, including without limitation the rights
    to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
    copies of the Software, and to permit persons to whom the Software is
    furnished to do so, subject to the following conditions:

    The above copyright notice and this permission notice shall be included in all
    copies or substantial portions of the Software.

    THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
    IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
    FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
    AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
    LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
    OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
    SOFTWARE


================================================
FILE: README.md
================================================
# bitnet.cpp
[![License: MIT](https://img.shields.io/badge/license-MIT-blue.svg)](https://opensource.org/licenses/MIT)
![version](https://img.shields.io/badge/version-1.0-blue)

[<img src="./assets/header_model_release.png" alt="BitNet Model on Hugging Face" width="800"/>](https://huggingface.co/microsoft/BitNet-b1.58-2B-4T)

Try it out via this [demo](https://demo-bitnet-h0h8hcfqeqhrf5gf.canadacentral-01.azurewebsites.net/), or build and run it on your own [CPU](https://github.com/microsoft/BitNet?tab=readme-ov-file#build-from-source) or [GPU](https://github.com/microsoft/BitNet/blob/main/gpu/README.md).

bitnet.cpp is the official inference framework for 1-bit LLMs (e.g., BitNet b1.58). It offers a suite of optimized kernels, that support **fast** and **lossless** inference of 1.58-bit models on CPU and GPU (NPU support will coming next).

The first release of bitnet.cpp is to support inference on CPUs. bitnet.cpp achieves speedups of **1.37x** to **5.07x** on ARM CPUs, with larger models experiencing greater performance gains. Additionally, it reduces energy consumption by **55.4%** to **70.0%**, further boosting overall efficiency. On x86 CPUs, speedups range from **2.37x** to **6.17x** with energy reductions between **71.9%** to **82.2%**. Furthermore, bitnet.cpp can run a 100B BitNet b1.58 model on a single CPU, achieving speeds comparable to human reading (5-7 tokens per second), significantly enhancing the potential for running LLMs on local devices. Please refer to the [technical report](https://arxiv.org/abs/2410.16144) for more details.

**Latest optimization** introduces parallel kernel implementations with configurable tiling and embedding quantization support, achieving **1.15x to 2.1x** additional speedup over the original implementation across different hardware platforms and workloads. For detailed technical information, see the [optimization guide](src/README.md).

<img src="./assets/performance.png" alt="performance_comparison" width="800"/>


## Demo

A demo of bitnet.cpp running a BitNet b1.58 3B model on Apple M2:

https://github.com/user-attachments/assets/7f46b736-edec-4828-b809-4be780a3e5b1

## What's New:
- 01/15/2026 [BitNet CPU Inference Optimization](https://github.com/microsoft/BitNet/blob/main/src/README.md) ![NEW](https://img.shields.io/badge/NEW-red)
- 05/20/2025 [BitNet Official GPU inference kernel](https://github.com/microsoft/BitNet/blob/main/gpu/README.md)
- 04/14/2025 [BitNet Official 2B Parameter Model on Hugging Face](https://huggingface.co/microsoft/BitNet-b1.58-2B-4T)
- 02/18/2025 [Bitnet.cpp: Efficient Edge Inference for Ternary LLMs](https://arxiv.org/abs/2502.11880)
- 11/08/2024 [BitNet a4.8: 4-bit Activations for 1-bit LLMs](https://arxiv.org/abs/2411.04965)
- 10/21/2024 [1-bit AI Infra: Part 1.1, Fast and Lossless BitNet b1.58 Inference on CPUs](https://arxiv.org/abs/2410.16144)
- 10/17/2024 bitnet.cpp 1.0 released.
- 03/21/2024 [The-Era-of-1-bit-LLMs__Training_Tips_Code_FAQ](https://github.com/microsoft/unilm/blob/master/bitnet/The-Era-of-1-bit-LLMs__Training_Tips_Code_FAQ.pdf)
- 02/27/2024 [The Era of 1-bit LLMs: All Large Language Models are in 1.58 Bits](https://arxiv.org/abs/2402.17764)
- 10/17/2023 [BitNet: Scaling 1-bit Transformers for Large Language Models](https://arxiv.org/abs/2310.11453)

## Acknowledgements

This project is based on the [llama.cpp](https://github.com/ggerganov/llama.cpp) framework. We would like to thank all the authors for their contributions to the open-source community. Also, bitnet.cpp's kernels are built on top of the Lookup Table methodologies pioneered in [T-MAC](https://github.com/microsoft/T-MAC/). For inference of general low-bit LLMs beyond ternary models, we recommend using T-MAC.
## Official Models
<table>
    </tr>
    <tr>
        <th rowspan="2">Model</th>
        <th rowspan="2">Parameters</th>
        <th rowspan="2">CPU</th>
        <th colspan="3">Kernel</th>
    </tr>
    <tr>
        <th>I2_S</th>
        <th>TL1</th>
        <th>TL2</th>
    </tr>
    <tr>
        <td rowspan="2"><a href="https://huggingface.co/microsoft/BitNet-b1.58-2B-4T">BitNet-b1.58-2B-4T</a></td>
        <td rowspan="2">2.4B</td>
        <td>x86</td>
        <td>&#9989;</td>
        <td>&#10060;</td>
        <td>&#9989;</td>
    </tr>
    <tr>
        <td>ARM</td>
        <td>&#9989;</td>
        <td>&#9989;</td>
        <td>&#10060;</td>
    </tr>
</table>

## Supported Models
❗️**We use existing 1-bit LLMs available on [Hugging Face](https://huggingface.co/) to demonstrate the inference capabilities of bitnet.cpp. We hope the release of bitnet.cpp will inspire the development of 1-bit LLMs in large-scale settings in terms of model size and training tokens.**

<table>
    </tr>
    <tr>
        <th rowspan="2">Model</th>
        <th rowspan="2">Parameters</th>
        <th rowspan="2">CPU</th>
        <th colspan="3">Kernel</th>
    </tr>
    <tr>
        <th>I2_S</th>
        <th>TL1</th>
        <th>TL2</th>
    </tr>
    <tr>
        <td rowspan="2"><a href="https://huggingface.co/1bitLLM/bitnet_b1_58-large">bitnet_b1_58-large</a></td>
        <td rowspan="2">0.7B</td>
        <td>x86</td>
        <td>&#9989;</td>
        <td>&#10060;</td>
        <td>&#9989;</td>
    </tr>
    <tr>
        <td>ARM</td>
        <td>&#9989;</td>
        <td>&#9989;</td>
        <td>&#10060;</td>
    </tr>
    <tr>
        <td rowspan="2"><a href="https://huggingface.co/1bitLLM/bitnet_b1_58-3B">bitnet_b1_58-3B</a></td>
        <td rowspan="2">3.3B</td>
        <td>x86</td>
        <td>&#10060;</td>
        <td>&#10060;</td>
        <td>&#9989;</td>
    </tr>
    <tr>
        <td>ARM</td>
        <td>&#10060;</td>
        <td>&#9989;</td>
        <td>&#10060;</td>
    </tr>
    <tr>
        <td rowspan="2"><a href="https://huggingface.co/HF1BitLLM/Llama3-8B-1.58-100B-tokens">Llama3-8B-1.58-100B-tokens</a></td>
        <td rowspan="2">8.0B</td>
        <td>x86</td>
        <td>&#9989;</td>
        <td>&#10060;</td>
        <td>&#9989;</td>
    </tr>
    <tr>
        <td>ARM</td>
        <td>&#9989;</td>
        <td>&#9989;</td>
        <td>&#10060;</td>
    </tr>
    <tr>
        <td rowspan="2"><a href="https://huggingface.co/collections/tiiuae/falcon3-67605ae03578be86e4e87026">Falcon3 Family</a></td>
        <td rowspan="2">1B-10B</td>
        <td>x86</td>
        <td>&#9989;</td>
        <td>&#10060;</td>
        <td>&#9989;</td>
    </tr>
    <tr>
        <td>ARM</td>
        <td>&#9989;</td>
        <td>&#9989;</td>
        <td>&#10060;</td>
    </tr>
    <tr>
        <td rowspan="2"><a href="https://huggingface.co/collections/tiiuae/falcon-edge-series-6804fd13344d6d8a8fa71130">Falcon-E Family</a></td>
        <td rowspan="2">1B-3B</td>
        <td>x86</td>
        <td>&#9989;</td>
        <td>&#10060;</td>
        <td>&#9989;</td>
    </tr>
    <tr>
        <td>ARM</td>
        <td>&#9989;</td>
        <td>&#9989;</td>
        <td>&#10060;</td>
    </tr>
</table>



## Installation

### Requirements
- python>=3.9
- cmake>=3.22
- clang>=18
    - For Windows users, install [Visual Studio 2022](https://visualstudio.microsoft.com/downloads/). In the installer, toggle on at least the following options(this also automatically installs the required additional tools like CMake):
        -  Desktop-development with C++
        -  C++-CMake Tools for Windows
        -  Git for Windows
        -  C++-Clang Compiler for Windows
        -  MS-Build Support for LLVM-Toolset (clang)
    - For Debian/Ubuntu users, you can download with [Automatic installation script](https://apt.llvm.org/)

        `bash -c "$(wget -O - https://apt.llvm.org/llvm.sh)"`
- conda (highly recommend)

### Build from source

> [!IMPORTANT]
> If you are using Windows, please remember to always use a Developer Command Prompt / PowerShell for VS2022 for the following commands. Please refer to the FAQs below if you see any issues.

1. Clone the repo
```bash
git clone --recursive https://github.com/microsoft/BitNet.git
cd BitNet
```
2. Install the dependencies
```bash
# (Recommended) Create a new conda environment
conda create -n bitnet-cpp python=3.9
conda activate bitnet-cpp

pip install -r requirements.txt
```
3. Build the project
```bash
# Manually download the model and run with local path
huggingface-cli download microsoft/BitNet-b1.58-2B-4T-gguf --local-dir models/BitNet-b1.58-2B-4T
python setup_env.py -md models/BitNet-b1.58-2B-4T -q i2_s

```
<pre>
usage: setup_env.py [-h] [--hf-repo {1bitLLM/bitnet_b1_58-large,1bitLLM/bitnet_b1_58-3B,HF1BitLLM/Llama3-8B-1.58-100B-tokens,tiiuae/Falcon3-1B-Instruct-1.58bit,tiiuae/Falcon3-3B-Instruct-1.58bit,tiiuae/Falcon3-7B-Instruct-1.58bit,tiiuae/Falcon3-10B-Instruct-1.58bit}] [--model-dir MODEL_DIR] [--log-dir LOG_DIR] [--quant-type {i2_s,tl1}] [--quant-embd]
                    [--use-pretuned]

Setup the environment for running inference

optional arguments:
  -h, --help            show this help message and exit
  --hf-repo {1bitLLM/bitnet_b1_58-large,1bitLLM/bitnet_b1_58-3B,HF1BitLLM/Llama3-8B-1.58-100B-tokens,tiiuae/Falcon3-1B-Instruct-1.58bit,tiiuae/Falcon3-3B-Instruct-1.58bit,tiiuae/Falcon3-7B-Instruct-1.58bit,tiiuae/Falcon3-10B-Instruct-1.58bit}, -hr {1bitLLM/bitnet_b1_58-large,1bitLLM/bitnet_b1_58-3B,HF1BitLLM/Llama3-8B-1.58-100B-tokens,tiiuae/Falcon3-1B-Instruct-1.58bit,tiiuae/Falcon3-3B-Instruct-1.58bit,tiiuae/Falcon3-7B-Instruct-1.58bit,tiiuae/Falcon3-10B-Instruct-1.58bit}
                        Model used for inference
  --model-dir MODEL_DIR, -md MODEL_DIR
                        Directory to save/load the model
  --log-dir LOG_DIR, -ld LOG_DIR
                        Directory to save the logging info
  --quant-type {i2_s,tl1}, -q {i2_s,tl1}
                        Quantization type
  --quant-embd          Quantize the embeddings to f16
  --use-pretuned, -p    Use the pretuned kernel parameters
</pre>
## Usage
### Basic usage
```bash
# Run inference with the quantized model
python run_inference.py -m models/BitNet-b1.58-2B-4T/ggml-model-i2_s.gguf -p "You are a helpful assistant" -cnv
```
<pre>
usage: run_inference.py [-h] [-m MODEL] [-n N_PREDICT] -p PROMPT [-t THREADS] [-c CTX_SIZE] [-temp TEMPERATURE] [-cnv]

Run inference

optional arguments:
  -h, --help            show this help message and exit
  -m MODEL, --model MODEL
                        Path to model file
  -n N_PREDICT, --n-predict N_PREDICT
                        Number of tokens to predict when generating text
  -p PROMPT, --prompt PROMPT
                        Prompt to generate text from
  -t THREADS, --threads THREADS
                        Number of threads to use
  -c CTX_SIZE, --ctx-size CTX_SIZE
                        Size of the prompt context
  -temp TEMPERATURE, --temperature TEMPERATURE
                        Temperature, a hyperparameter that controls the randomness of the generated text
  -cnv, --conversation  Whether to enable chat mode or not (for instruct models.)
                        (When this option is turned on, the prompt specified by -p will be used as the system prompt.)
</pre>

### Benchmark
We provide scripts to run the inference benchmark providing a model.

```  
usage: e2e_benchmark.py -m MODEL [-n N_TOKEN] [-p N_PROMPT] [-t THREADS]  
   
Setup the environment for running the inference  
   
required arguments:  
  -m MODEL, --model MODEL  
                        Path to the model file. 
   
optional arguments:  
  -h, --help  
                        Show this help message and exit. 
  -n N_TOKEN, --n-token N_TOKEN  
                        Number of generated tokens. 
  -p N_PROMPT, --n-prompt N_PROMPT  
                        Prompt to generate text from. 
  -t THREADS, --threads THREADS  
                        Number of threads to use. 
```  
   
Here's a brief explanation of each argument:  
   
- `-m`, `--model`: The path to the model file. This is a required argument that must be provided when running the script.  
- `-n`, `--n-token`: The number of tokens to generate during the inference. It is an optional argument with a default value of 128.  
- `-p`, `--n-prompt`: The number of prompt tokens to use for generating text. This is an optional argument with a default value of 512.  
- `-t`, `--threads`: The number of threads to use for running the inference. It is an optional argument with a default value of 2.  
- `-h`, `--help`: Show the help message and exit. Use this argument to display usage information.  
   
For example:  
   
```sh  
python utils/e2e_benchmark.py -m /path/to/model -n 200 -p 256 -t 4  
```  
   
This command would run the inference benchmark using the model located at `/path/to/model`, generating 200 tokens from a 256 token prompt, utilizing 4 threads.  

For the model layout that do not supported by any public model, we provide scripts to generate a dummy model with the given model layout, and run the benchmark on your machine:

```bash
python utils/generate-dummy-bitnet-model.py models/bitnet_b1_58-large --outfile models/dummy-bitnet-125m.tl1.gguf --outtype tl1 --model-size 125M

# Run benchmark with the generated model, use -m to specify the model path, -p to specify the prompt processed, -n to specify the number of token to generate
python utils/e2e_benchmark.py -m models/dummy-bitnet-125m.tl1.gguf -p 512 -n 128
```

### Convert from `.safetensors` Checkpoints

```sh
# Prepare the .safetensors model file
huggingface-cli download microsoft/bitnet-b1.58-2B-4T-bf16 --local-dir ./models/bitnet-b1.58-2B-4T-bf16

# Convert to gguf model
python ./utils/convert-helper-bitnet.py ./models/bitnet-b1.58-2B-4T-bf16
```

### FAQ (Frequently Asked Questions)📌 

#### Q1: The build dies with errors building llama.cpp due to issues with std::chrono in log.cpp?

**A:**
This is an issue introduced in recent version of llama.cpp. Please refer to this [commit](https://github.com/tinglou/llama.cpp/commit/4e3db1e3d78cc1bcd22bcb3af54bd2a4628dd323) in the [discussion](https://github.com/abetlen/llama-cpp-python/issues/1942) to fix this issue.

#### Q2: How to build with clang in conda environment on windows?

**A:** 
Before building the project, verify your clang installation and access to Visual Studio tools by running:
```
clang -v
```

This command checks that you are using the correct version of clang and that the Visual Studio tools are available. If you see an error message such as:
```
'clang' is not recognized as an internal or external command, operable program or batch file.
```

It indicates that your command line window is not properly initialized for Visual Studio tools.

• If you are using Command Prompt, run:
```
"C:\Program Files\Microsoft Visual Studio\2022\Professional\Common7\Tools\VsDevCmd.bat" -startdir=none -arch=x64 -host_arch=x64
```

• If you are using Windows PowerShell, run the following commands:
```
Import-Module "C:\Program Files\Microsoft Visual Studio\2022\Professional\Common7\Tools\Microsoft.VisualStudio.DevShell.dll" Enter-VsDevShell 3f0e31ad -SkipAutomaticLocation -DevCmdArguments "-arch=x64 -host_arch=x64"
```

These steps will initialize your environment and allow you to use the correct Visual Studio tools.


================================================
FILE: SECURITY.md
================================================
<!-- BEGIN MICROSOFT SECURITY.MD V0.0.9 BLOCK -->

## Security

Microsoft takes the security of our software products and services seriously, which includes all source code repositories managed through our GitHub organizations, which include [Microsoft](https://github.com/Microsoft), [Azure](https://github.com/Azure), [DotNet](https://github.com/dotnet), [AspNet](https://github.com/aspnet) and [Xamarin](https://github.com/xamarin).

If you believe you have found a security vulnerability in any Microsoft-owned repository that meets [Microsoft's definition of a security vulnerability](https://aka.ms/security.md/definition), please report it to us as described below.

## Reporting Security Issues

**Please do not report security vulnerabilities through public GitHub issues.**

Instead, please report them to the Microsoft Security Response Center (MSRC) at [https://msrc.microsoft.com/create-report](https://aka.ms/security.md/msrc/create-report).

If you prefer to submit without logging in, send email to [secure@microsoft.com](mailto:secure@microsoft.com).  If possible, encrypt your message with our PGP key; please download it from the [Microsoft Security Response Center PGP Key page](https://aka.ms/security.md/msrc/pgp).

You should receive a response within 24 hours. If for some reason you do not, please follow up via email to ensure we received your original message. Additional information can be found at [microsoft.com/msrc](https://www.microsoft.com/msrc). 

Please include the requested information listed below (as much as you can provide) to help us better understand the nature and scope of the possible issue:

  * Type of issue (e.g. buffer overflow, SQL injection, cross-site scripting, etc.)
  * Full paths of source file(s) related to the manifestation of the issue
  * The location of the affected source code (tag/branch/commit or direct URL)
  * Any special configuration required to reproduce the issue
  * Step-by-step instructions to reproduce the issue
  * Proof-of-concept or exploit code (if possible)
  * Impact of the issue, including how an attacker might exploit the issue

This information will help us triage your report more quickly.

If you are reporting for a bug bounty, more complete reports can contribute to a higher bounty award. Please visit our [Microsoft Bug Bounty Program](https://aka.ms/security.md/msrc/bounty) page for more details about our active programs.

## Preferred Languages

We prefer all communications to be in English.

## Policy

Microsoft follows the principle of [Coordinated Vulnerability Disclosure](https://aka.ms/security.md/cvd).

<!-- END MICROSOFT SECURITY.MD BLOCK -->


================================================
FILE: docs/codegen.md
================================================
Codegen for TL1 and TL2
------------------------

codegen_tl1.py and codegen_tl2.py are using params to generate kernel codes in different devices to achieve fastest performance for TL1 and TL2.

We cutting weight into multiple compute blocks to best utilize hardware capabilities.

### Example
bitnet_b1_58-large:

- Make sure Matmul kernels shapes \
For example, bitnet_b1_58-large Matmul kernel shapes are:\
[1536, 4096]\
[1536, 1536]\
[4096, 1536]

- Make sure each BM, BK, bm for each kernel to meet the requirements below
- Generate codes\
For example, for bitnet_b1_58-large, we can gencode like:

```bash
# For TL1
python utils/codegen_tl1.py --model bitnet_b1_58-large --BM 256,128,256 --BK 128,64,128 --bm 32,64,32

# For TL2
python utils/codegen_tl2.py --model bitnet_b1_58-large --BM 256,128,256 --BK 96,192,96 --bm 32,32,32
```

### TL1:
![TL1](../assets/tl1.png)

For TL1, we cut weight into M / BM weights, each weight shape is (BM, K). Then we cut weight into K / BK weights, each weight shape is (BM, BK). As for (BM, BK) weight, we cut it the same way into (bm, compute_num / bm) compute blocks, and finish computing in it.

Thus, we need to make sure 
- M % BM == 0
- K % BK == 0
- BM % bm == 0
- bm choose in [32, 64]

### TL2:
![TL2](../assets/tl2.png)

For TL2, things got a little more complicated. Due to TL2 needs BK % 6 == 0, we need to split K into threeK and twoK, in which compute in TL2 for (M, threeK), compute in TL1 for (M, two_K).

Thus, we needs to make sure
- M % BM == 0
- K % BK % 32 == 0
- BM % bm == 0
- bm choose in \[32\]

================================================
FILE: gpu/README.md
================================================
# BitNet Inference Kernel

This repository provides a highly efficient GEMV kernel implementation for the BitNet model, optimized for W2A8 inference — 2-bit weights and 8-bit activations. It is tailored for use with the [BitNet-b1.58-2B-4T](https://arxiv.org/abs/2504.12285) model.

## Features

- Support for W2A8 (2-bit weight × 8-bit activation) GEMV computation  
- Custom CUDA kernels with low-latency execution  
- Optimizations for memory access, decoding, and compute throughput  

## Usage

Installation and kernel performance tests:

```bash
# (Recommended) Create a new conda environment
conda create --name bitnet-gpu "python<3.13"
conda activate bitnet-gpu

# Install dependencies
pip install -r requirements.txt

# Build the kernel
cd bitnet_kernels
bash compile.sh
cd ..

# Run performance tests
python test.py
```

End-to-end inference:

```bash
# Download and convert the BitNet-b1.58-2B model
mkdir checkpoints
huggingface-cli download microsoft/bitnet-b1.58-2B-4T-bf16 --local-dir ./checkpoints/bitnet-b1.58-2B-4T-bf16
python ./convert_safetensors.py --safetensors_file ./checkpoints/bitnet-b1.58-2B-4T-bf16/model.safetensors --output checkpoints/model_state.pt --model_name 2B
python ./convert_checkpoint.py --input ./checkpoints/model_state.pt
rm ./checkpoints/model_state.pt

# Inference
python3 ./generate.py ./checkpoints/ --interactive --chat_format
```

## Optimizations

### Weight Permutation

The weight matrix is divided into 16×32 blocks to optimize memory access patterns.  

Within each block, values are stored contiguously in memory and permuted to facilitate efficient access and processing.  

See `convert_checkpoint.py` for details.

### Fast Decoding

Every 16 two-bit values are packed into a single 32-bit integer using the following interleaving pattern:  
```
[0, 4, 8, 12, 1, 5, 9, 13, 2, 6, 10, 14, 3, 7, 11, 15]
```

This layout is designed to accelerate decoding by enabling efficient extraction of 4 values at a time into `int8`.

### `dp4a` Instruction

We use the `dp4a` instruction to accelerate low-precision dot product operations.  

This instruction performs a dot product between two 4-element vectors (each stored in a 32-bit word as 8-bit integers) and accumulates the result into a 32-bit integer.  

It significantly improves GEMV throughput when processing quantized weights and activations.


## Performance

### Kernel Benchmarks

Tested on NVIDIA A100 40GB GPU, our custom W2A8 kernel shows significant speedups over standard BF16 implementations:

| Shape (N×K)         | W2A8 Latency (us) | BF16 Latency (us) | Speedup Ratio        |
|---------------------|-------------------|-------------------|----------------------|
| 2560 × 2560         | 13.32             | 18.32             |   1.38               |
| 3840 × 2560         | 14.90             | 18.87             |   1.27               |
| 13824 × 2560        | 18.75             | 59.51             |   3.17               |
| 2560 × 6912         | 14.49             | 37.78             |   2.61               |
| 3200 × 3200         | 14.61             | 19.08             |   1.31               |
| 4800 × 3200         | 13.09             | 21.84             |   1.67               |
| 3200 × 10240        | 19.64             | 60.79             |   3.10               |
| 20480 × 3200        | 30.99             | 112.39            |   3.63               |

### End-to-End Generation Latency

Compared to a similarly-sized BF16 model (Gemma-2-2B using vLLM), BitNet-b1.58-2B with our kernel achieves consistent speedups across workloads:

| Input Length | Output Length | BF16 Latency (ms) | W2A8 Latency (ms) | Speedup Ratio |
| --- | --- | --- | --- | --- |
| 64 | 16 | 187.64 | 57.40 | 3.27 |
| 64 | 32 | 353.50 | 112.22 | 3.15 |
| 64 | 64 | 683.23 | 221.08 | 3.09 |
| 256 | 16 | 183.14 | 61.24 | 2.99 |
| 256 | 32 | 353.14 | 115.47 | 3.06 |
| 256 | 64 | 684.24 | 224.16 | 3.05 |
| 512 | 16 | 208.99 | 68.06 | 3.07 |
| 512 | 32 | 354.33 | 122.72 | 2.89 |
| 512 | 64 | 709.65 | 231.82 | 3.06 |

*Note: Comparison uses equivalent-sized models (2B parameters) on NVIDIA A100 40GB GPU.*

================================================
FILE: gpu/bitnet_kernels/bitnet_kernels.cu
================================================
#include "bitnet_kernels.h"

extern "C" void bitlinear_int8xint2(int8_t* input0, int8_t* input1, __nv_bfloat16* output0, __nv_bfloat16* s, __nv_bfloat16* ws, int M, int N, int K, cudaStream_t stream){
    if (M == 1 && N == 3840 && K == 2560){
        ladder_int8xint2_kernel<1, 3840, 2560, 3, 8, 16><<<dim3(240, 1, 1), dim3(8, 16, 1), 0, stream>>>(input0, input1, output0, s, ws);
    }
    else if (M == 1 && N == 2560 && K == 2560){
        ladder_int8xint2_kernel<1, 2560, 2560, 1, 8, 16><<<dim3(160, 1, 1), dim3(8, 16, 1), 0, stream>>>(input0, input1, output0, s, ws);
    }
    else if (M == 1 && N == 13824 && K == 2560){
        ladder_int8xint2_kernel<1, 13824, 2560, 2, 8, 16><<<dim3(864, 1, 1), dim3(8, 16, 1), 0, stream>>>(input0, input1, output0, s, ws);
    }
    else if (M == 1 && N == 2560 && K == 6912){
        ladder_int8xint2_kernel<1, 2560, 6912, 1, 8, 16><<<dim3(160, 1, 1), dim3(8, 16, 1), 0, stream>>>(input0, input1, output0, s, ws);
    }
    else if(M == 1 && N == 4800 && K == 3200){
        ladder_int8xint2_kernel<1, 4800, 3200, 6, 8, 16><<<dim3(300, 1, 1), dim3(8, 16, 1), 0, stream>>>(input0, input1, output0, s, ws);
    }
    else if(M == 1 && N == 3200 && K == 3200){
        ladder_int8xint2_kernel<1, 3200, 3200, 1, 8, 16><<<dim3(200, 1, 1), dim3(8, 16, 1), 0, stream>>>(input0, input1, output0, s, ws);
    }
    else if(M == 1 && N == 20480 && K == 3200){
        ladder_int8xint2_kernel<1, 20480, 3200, 2, 8, 16><<<dim3(1280, 1, 1), dim3(8, 16, 1), 0, stream>>>(input0, input1, output0, s, ws);
    }
    else if(M == 1 && N == 3200 && K == 10240){
        ladder_int8xint2_kernel<1, 3200, 10240, 1, 8, 16><<<dim3(200, 1, 1), dim3(8, 16, 1), 0, stream>>>(input0, input1, output0, s, ws);
    }    
    else if(M == 1 && N == 5120 && K == 27648){
        ladder_int8xint2_kernel<1, 5120, 27648, 1, 8, 16><<<dim3(320, 1, 1), dim3(8, 16, 1), 0, stream>>>(input0, input1, output0, s, ws);
    }
    else if(M == 1 && N == 55296 && K == 5120){
        ladder_int8xint2_kernel<1, 55296, 5120, 1, 8, 16><<<dim3(3456, 1, 1), dim3(8, 16, 1), 0, stream>>>(input0, input1, output0, s, ws);
    }
    else{
        std::cout << "required ladder gemm kernel: M " << M << ", N " << N << ", K " << K << std::endl;
    }
}

================================================
FILE: gpu/bitnet_kernels/bitnet_kernels.h
================================================
#include <cuda_runtime.h>
#include <math_constants.h>
#include <math.h>
#include <mma.h>
#include <iostream>
#include <cuda.h>
#include <cuda_fp16.h>
#include <cuda_bf16.h>


#if (((__CUDACC_VER_MAJOR__ == 11) && (__CUDACC_VER_MINOR__ >= 4)) || (__CUDACC_VER_MAJOR__ > 11))
#define TVM_ENABLE_L2_PREFETCH 1
#else
#define TVM_ENABLE_L2_PREFETCH 0
#endif

#if defined(__CUDA_ARCH__) && __CUDA_ARCH__ == 800
#define TVM_ENBALE_EFFICIENT_SMEM_PTR_CAST 1
#else
#define TVM_ENBALE_EFFICIENT_SMEM_PTR_CAST 0
#endif

template <typename T1, typename T2>
__device__ void decode_i2s_to_i8s(T1 *_i2s, T2 *_i8s, const int N = 16)
{
  // convert 8 int2b_t to 8 int8b_t -> 2 int32
  uint *i8s = reinterpret_cast<uint *>(_i8s);

  // i2s = {e0, e4, e8, e12, e1, e5, e9, e13, e2, e6, e10, e14, e3, e7, e11, e15}
  uint const i2s = *_i2s;

  static constexpr uint immLut = (0xf0 & 0xcc) | 0xaa;     // 0b11101010
  static constexpr uint BOTTOM_MASK = 0x03030303;          // 0xf -> 0b11 select 0,3
  static constexpr uint I4s_TO_I8s_MAGIC_NUM = 0x00000000; 

#pragma unroll
  for (int i = 0; i < (N / 4); i++)
  {
    asm volatile("lop3.b32 %0, %1, %2, %3, %4;\n"
                 : "=r"(i8s[i])
                 : "r"(i2s >> (2 * i)), "n"(BOTTOM_MASK), "n"(I4s_TO_I8s_MAGIC_NUM), "n"(immLut));
    i8s[i] = __vsubss4(i8s[i], 0x02020202);
  }
}

template <int M, int N, int K, int ws_num, int K_block_size, int N_block_size>
__global__ void __launch_bounds__(128) ladder_int8xint2_kernel(int8_t* __restrict__ A, int8_t* __restrict__ B, __nv_bfloat16* __restrict__ dtype_transform, __nv_bfloat16* __restrict__ s, __nv_bfloat16* __restrict__ ws) {
  constexpr int K_per_loop = 16;
  constexpr int wmma_K = 32;
  constexpr int wmma_N = 16;
  int in_thread_C_local[1];
  signed char A_local[K_per_loop];
  int B_reshape_local[1];
  signed char B_decode_local[K_per_loop];
  int red_buf0[1];
  in_thread_C_local[0] = 0;
  #pragma unroll
  for (int k_0 = 0; k_0 < K/(K_per_loop * K_block_size); ++k_0) {
    *(int4*)(A_local + 0) = *(int4*)(A + ((k_0 * K_per_loop * K_block_size) + (((int)threadIdx.x) * K_per_loop)));
    B_reshape_local[0] = *(int*)(B + 
      (((int)blockIdx.x) * N_block_size * K / 4) + 
      (k_0 * K_block_size * K_per_loop * wmma_N / 4) +
      ((((int)threadIdx.x) >> 1) * wmma_K * wmma_N / 4) +
      ((((int)threadIdx.y) >> 3) * (wmma_K * wmma_N / 2) / 4) + 
      ((((int)threadIdx.x) & 1) * (wmma_K * wmma_N / 4) / 4) + 
      ((((int)threadIdx.y) & 7) * (wmma_K / 2) / 4)
      );
    decode_i2s_to_i8s(B_reshape_local, B_decode_local, 16);
    #pragma unroll
    for (int k_2_0 = 0; k_2_0 < 4; ++k_2_0) {
      in_thread_C_local[0] = __dp4a(*(int *)&A_local[((k_2_0 * 4))],*(int *)&B_decode_local[((k_2_0 * 4))], in_thread_C_local[0]);
    }
  }
  red_buf0[0] = in_thread_C_local[0];
  #pragma unroll
  for (int offset = K_block_size/2; offset > 0; offset /= 2) {
    red_buf0[0] += __shfl_down_sync(__activemask(), red_buf0[0], offset, K_block_size);
  }
  int out_idx = ((((int)blockIdx.x) * N_block_size) + ((int)threadIdx.y));
  int ws_idx = out_idx / (N / ws_num);
  if (threadIdx.x == 0)
    dtype_transform[out_idx] = (__nv_bfloat16)(((float)red_buf0[0])/(float)s[0]*(float)ws[ws_idx]);
}

================================================
FILE: gpu/bitnet_kernels/compile.sh
================================================
nvcc -std=c++17 -Xcudafe --diag_suppress=177 --compiler-options -fPIC -lineinfo --shared bitnet_kernels.cu -lcuda -gencode=arch=compute_80,code=compute_80 -o libbitnet.so




================================================
FILE: gpu/bitnet_kernels/setup.py
================================================
from setuptools import setup
from torch.utils.cpp_extension import BuildExtension, CUDAExtension

setup(
    name='bitlinear_cpp',
    ext_modules=[
        CUDAExtension('bitlinear_cuda', [
            'bitnet_kernels.cu',
        ])
    ],
    cmdclass={
        'build_ext': BuildExtension
    })

================================================
FILE: gpu/convert_checkpoint.py
================================================
import json
import os
import re
import sys
from pathlib import Path
from typing import Optional
from dataclasses import dataclass
import torch
from einops import rearrange
from safetensors.torch import save_file
import model
from pack_weight import convert_weight_int8_to_int2

@torch.inference_mode()
def convert_ts_checkpoint(
    *,
    input_path: str = "",
) -> None:

    config = model.ModelArgs()
    print(f"Model config {config.__dict__}")

    def quant_weight_int8(weight):
        s = 1.0 / weight.abs().mean().clamp_(min=1e-5)
        new_weight = (weight * s).round().clamp(-1, 1).to(torch.int8)
        new_scale = (1.0 / s).to(torch.bfloat16)
        return new_weight, new_scale.reshape(1)

    def quant_weight_fp16(weight):
        s = 1.0 / weight.abs().mean().clamp_(min=1e-5)
        new_weight = (weight * s).round().clamp(-1, 1) / s
        return new_weight

    def convert_int8_to_int2(weight):
        return convert_weight_int8_to_int2(weight)

    merged_result = torch.load(input_path, map_location="cpu", mmap=True, weights_only=True)
    int2_result = {}
    fp16_result = {}
    zero = torch.zeros(1).to(torch.bfloat16)
    for key, value in merged_result.items():
        if 'wqkv' in key:
            wq = value[:config.dim]
            wk = value[config.dim:config.dim // config.n_heads * config.n_kv_heads + config.dim]
            wv = value[config.dim // config.n_heads * config.n_kv_heads + config.dim:]
            wq_weight, wa_scale = quant_weight_int8(wq)
            wk_weight, wb_scale = quant_weight_int8(wk)
            wv_weight, wc_scale = quant_weight_int8(wv)
            wqkv_weight = torch.cat([wq_weight, wk_weight, wv_weight], dim=0)
            wqkv_scale = torch.cat([wa_scale, wb_scale, wc_scale, zero], dim=0)
            int2_result[key] = convert_int8_to_int2(wqkv_weight)
            int2_result[key.replace('weight', 'weight_scale')] = wqkv_scale

            wq_weight = quant_weight_fp16(wq)
            wk_weight = quant_weight_fp16(wk)
            wv_weight = quant_weight_fp16(wv)
            wqkv_weight = torch.cat([wq_weight, wk_weight, wv_weight], dim=0)
            fp16_result[key] = wqkv_weight
        elif 'w13' in key:
            w1 = value[:config.ffn_dim]
            w3 = value[config.ffn_dim:]
            w1_weight, w1_scale = quant_weight_int8(w1)
            w3_weight, w3_scale = quant_weight_int8(w3)
            w13_weight = torch.cat([w1_weight, w3_weight], dim=0)
            w13_scale = torch.cat([w1_scale, w3_scale, zero, zero], dim=0)
            int2_result[key] = convert_int8_to_int2(w13_weight)
            int2_result[key.replace('weight', 'weight_scale')] = w13_scale

            w1_weight = quant_weight_fp16(w1)
            w3_weight = quant_weight_fp16(w3)
            w13_weight = torch.cat([w1_weight, w3_weight], dim=0)
            fp16_result[key] = w13_weight
        elif 'w2' in key or 'wo' in key:
            weight, scale = quant_weight_int8(value)
            scale = torch.cat([scale, zero, zero, zero], dim=0)
            int2_result[key] = convert_int8_to_int2(weight)
            int2_result[key.replace('weight', 'weight_scale')] = scale

            weight = quant_weight_fp16(value)
            fp16_result[key] = weight
        else:
            int2_result[key] = value.clone()
            fp16_result[key] = value.clone()

    output_dir = os.path.dirname(input_path)
    print(f"Saving checkpoint to {output_dir}/model_state_int2.pt")
    torch.save(int2_result, f"{output_dir}/model_state_int2.pt")

    print(f"Saving checkpoint to {output_dir}/model_state_fp16.pt")
    torch.save(fp16_result, f"{output_dir}/model_state_fp16.pt")

if __name__ == '__main__':
    import argparse
    parser = argparse.ArgumentParser(description='Convert TorchScale checkpoint.')
    parser.add_argument('--input', type=str)

    args = parser.parse_args()
    convert_ts_checkpoint(
        input_path=args.input,
    )


================================================
FILE: gpu/convert_safetensors.py
================================================
import re
import torch
from pathlib import Path
from safetensors.torch import load_file
from einops import rearrange
from dataclasses import dataclass
from typing import Optional

transformer_configs = {
    "2B": dict(n_layer=30, n_head=20, dim=2560, vocab_size=128256, n_local_heads=5, intermediate_size=6912),
}

@dataclass
class ModelArgs:
    block_size: int = 4096
    vocab_size: int = 32000
    n_layer: int = 32
    n_head: int = 32
    dim: int = 4096
    intermediate_size: int = None
    n_local_heads: int = -1
    head_dim: int = 64
    rope_base: float = 10000
    norm_eps: float = 1e-5

    def __post_init__(self):
        if self.n_local_heads == -1:
            self.n_local_heads = self.n_head
        if self.intermediate_size is None:
            hidden_dim = 4 * self.dim
            n_hidden = int(2 * hidden_dim / 3)
            self.intermediate_size = n_hidden + (256 - n_hidden % 256) if n_hidden % 256 else n_hidden
        self.head_dim = self.dim // self.n_head

    @classmethod
    def from_name(cls, name: str):
        if name in transformer_configs:
            return cls(**transformer_configs[name])
        config = [k for k in transformer_configs if k in name.upper() or k in name]
        assert len(config) == 1, f"Unknown model name: {name}"
        return cls(**transformer_configs[config[0]])

def invert_convert_q(w: torch.Tensor, config: ModelArgs) -> torch.Tensor:
    return rearrange(w, '(h l d) i -> (h d l) i', h=config.n_head, l=2)

def invert_convert_k(w: torch.Tensor, config: ModelArgs) -> torch.Tensor:
    return rearrange(w, '(h l d) i -> (h d l) i', h=config.n_local_heads, l=2)

def convert_back(
    safetensors_path: str,
    output_file: str,
    model_name: Optional[str] = None,
):
    st_dict = load_file(safetensors_path)

    cfg = ModelArgs.from_name(model_name)
    print(f"Using model configurations: {cfg}")

    recovered: dict = {}

    for layer in range(cfg.n_layer):
        base = f"model.layers.{layer}."

        wq = st_dict[f"{base}self_attn.q_proj.weight"]
        wk = st_dict[f"{base}self_attn.k_proj.weight"]
        wv = st_dict[f"{base}self_attn.v_proj.weight"]

        wq = invert_convert_q(wq, cfg)
        wk = invert_convert_k(wk, cfg)

        wqkv = torch.cat([wq, wk, wv], dim=0)
        recovered[f"layers.{layer}.attention.wqkv.weight"] = wqkv

        recovered[f"layers.{layer}.attention.wo.weight"] = st_dict[f"{base}self_attn.o_proj.weight"]

        recovered[f"layers.{layer}.attention_norm.weight"] = st_dict[f"{base}input_layernorm.weight"]
        recovered[f"layers.{layer}.ffn_norm.weight"] = st_dict[f"{base}post_attention_layernorm.weight"]
        recovered[f"layers.{layer}.attention.attn_sub_norm.weight"] = st_dict[f"{base}self_attn.attn_sub_norm.weight"]
        recovered[f"layers.{layer}.feed_forward.ffn_sub_norm.weight"] = st_dict[f"{base}mlp.ffn_sub_norm.weight"]

        gate = st_dict[f"{base}mlp.gate_proj.weight"]
        up   = st_dict[f"{base}mlp.up_proj.weight"]
        w13  = torch.cat([gate, up], dim=0)
        recovered[f"layers.{layer}.feed_forward.w13.weight"] = w13

        recovered[f"layers.{layer}.feed_forward.w2.weight"] = st_dict[f"{base}mlp.down_proj.weight"]

    recovered["tok_embeddings.weight"] = st_dict["model.embed_tokens.weight"]
    recovered["output.weight"]         = st_dict["model.embed_tokens.weight"]
    recovered["norm.weight"]           = st_dict["model.norm.weight"]

    print(f"Saving to {output_file}")
    torch.save(recovered, output_file)

if __name__ == "__main__":
    import argparse
    parser = argparse.ArgumentParser(description="Convert Safetensors back to Torch .pth checkpoint")
    parser.add_argument(
        "--safetensors_file", type=str, required=True,
        help="Path to input .safetensors file"
    )
    parser.add_argument(
        "--output", type=str, default="./checkpoints/model_state.pt",
        help="Path to output .pt file"
    )
    parser.add_argument(
        "--model_name", type=str, default="2B",
        help="Model configuration name to use (e.g. 2B)"
    )
    args = parser.parse_args()

    convert_back(
        safetensors_path=args.safetensors_file,
        output_file=args.output,
        model_name=args.model_name,
    )

================================================
FILE: gpu/generate.py
================================================
# Copyright (c) Facebook, Inc. and its affiliates. All rights reserved.
#
# This source code is licensed under the BSD license found in the
# LICENSE file in the root directory of this source tree.

import json
import os
import readline  # type: ignore # noqa
import sys
import time
from dataclasses import dataclass
from pathlib import Path
from typing import Iterable, Optional, Tuple, Union

import fire
import model as fast
import torch
from stats import Stats
from tokenizer import Tokenizer, ChatFormat
import sample_utils
from xformers.ops.fmha.attn_bias import (
    BlockDiagonalCausalWithOffsetPaddedKeysMask as AttnBias,
)


@dataclass
class GenArgs:
    gen_length: int = 32
    gen_bsz: int = 1
    prompt_length: int = 64

    use_sampling: bool = False
    temperature: float = 0.8
    top_p: float = 0.9


class FastGen:
    GRAPH_WARMUPS: int = 1
    tokenizer: Tokenizer

    @staticmethod
    def build(
        ckpt_dir: str,
        gen_args: GenArgs,
        device: Union[torch.device, str],
        tokenizer_path: Optional[str] = None,
        num_layers: int = 13,
        use_full_vocab: bool = False,
    ) -> "FastGen":
        """
        Load a Llama or Code Llama checkpoint and return a new
        generator for this model.
        """
        start_time = time.time()

        model_args_prefill = fast.ModelArgs(use_kernel=False)
        model_args_decode = fast.ModelArgs(use_kernel=True)
        tokenizer = Tokenizer("./tokenizer.model")

        torch.set_default_device(device)
        torch.set_default_dtype(torch.bfloat16)

        prefill_model = fast.Transformer(model_args_prefill)
        decode_model = fast.Transformer(model_args_decode)

        fp16_ckpt_path = str(Path(ckpt_dir) / "model_state_fp16.pt")
        fp16_checkpoint = torch.load(fp16_ckpt_path, map_location="cpu", weights_only=True)
        int2_ckpt_path = str(Path(ckpt_dir) / "model_state_int2.pt")
        int2_checkpoint = torch.load(int2_ckpt_path, map_location="cpu", weights_only=True)
        prefill_model.load_state_dict(fp16_checkpoint, strict=True)
        decode_model.load_state_dict(int2_checkpoint, strict=True)

        torch.cuda.synchronize()
        print(f"loaded model in {time.time() - start_time:.2f} seconds")
        start_time = time.time()

        return FastGen(gen_args, model_args_prefill, prefill_model, decode_model, tokenizer)

    def __init__(
        self,
        args: GenArgs,
        model_args: fast.ModelArgs,
        prefill_model: fast.Transformer,
        decode_model: fast.Transformer,
        tokenizer: Tokenizer,
    ):
        self.gen_args = args
        self.max_seq_length = args.prompt_length + args.gen_length
        self.model_args = model_args
        # self.model = model
        self.prefill_model = prefill_model
        self.decode_model = decode_model
        self.tokenizer = tokenizer
        self._prefill_cuda_graph, self._prefill_compile_model, self._prefill_inputs, self._prefill_logits = None, None, None, None
        self._generate_cuda_graph, self._generate_compile_model, self._generate_inputs, self._generate_logits = None, None, None, None
        self._cache = None
        start_time = time.time()
        self._prefill_compile_model = self.compile_prefill()
        self._generate_compile_model = self.compile_generate()
        print(f"compiled model in {time.time() - start_time:.2f} seconds")

    def compile_prefill(self):

        if self._cache is None:
            self._cache = fast.make_cache(
                args=self.model_args,
                length=self.gen_args.gen_bsz * self.max_seq_length,
            )

        seq_lens = [self.gen_args.prompt_length for _ in range(self.gen_args.gen_bsz)]

        bias = AttnBias.from_seqlens(
            q_seqlen=seq_lens,
            kv_seqlen=seq_lens,
            kv_padding=self.max_seq_length,
        )
        bias.q_seqinfo.to("cuda")
        bias.k_seqinfo.to("cuda")

        tokens = torch.IntTensor([1] * self.gen_args.gen_bsz * self.gen_args.prompt_length).cuda()
        self._prefill_inputs = (tokens, bias)

        s = torch.cuda.Stream()
        s.wait_stream(torch.cuda.current_stream())
        
        with torch.cuda.stream(s):
            _ = self.prefill_model.forward_with_attn_bias(
                token_values=self._prefill_inputs[0],
                attn_bias=self._prefill_inputs[1],
                cache=self._cache,
            )
        torch.cuda.current_stream().wait_stream(s)

        self._prefill_cuda_graph = torch.cuda.CUDAGraph()
        recording_kwargs = {}
        if "capture_error_mode" in torch.cuda.graph.__init__.__annotations__:
            # In PyTorch 2.1+ and nightlies from late Aug 2023,
            # we can do this to maybe avoid watchdog-related crashes
            recording_kwargs["capture_error_mode"] = "thread_local"
        with torch.cuda.graph(self._prefill_cuda_graph, **recording_kwargs):
            self._prefill_logits = self.prefill_model.forward_with_attn_bias(
                token_values=self._prefill_inputs[0],
                attn_bias=self._prefill_inputs[1],
                cache=self._cache,
            )

        def replay(tokens, seq_lens=None):
            self._prefill_inputs[0].copy_(tokens)
            if seq_lens is not None:
                self._prefill_inputs[1].k_seqinfo.seqlen.copy_(seq_lens)

            self._prefill_cuda_graph.replay()
            torch.cuda.synchronize()

            return self._prefill_logits

        return replay

    def compile_generate(self):

        if self._cache is None:
            self._cache = fast.make_cache(
                args=self.model_args,
                length=self.gen_args.gen_bsz * self.max_seq_length,
            )

        seq_lens = [1 for _ in range(self.gen_args.gen_bsz)]
        kv_seq_lens = [self.gen_args.prompt_length for _ in range(self.gen_args.gen_bsz)]

        bias = AttnBias.from_seqlens(
            q_seqlen=seq_lens,
            kv_seqlen=kv_seq_lens,
            kv_padding=self.max_seq_length,
        )
        bias.q_seqinfo.to("cuda")
        bias.k_seqinfo.to("cuda")

        tokens = torch.IntTensor([1] * self.gen_args.gen_bsz).cuda()
        self._generate_inputs = (tokens, bias)

        s = torch.cuda.Stream()
        s.wait_stream(torch.cuda.current_stream())
        
        with torch.cuda.stream(s):
            _ = self.decode_model.forward_with_attn_bias(
                token_values=self._generate_inputs[0],
                attn_bias=self._generate_inputs[1],
                cache=self._cache,
            )
        torch.cuda.current_stream().wait_stream(s)

        self._generate_cuda_graph = torch.cuda.CUDAGraph()
        recording_kwargs = {}
        if "capture_error_mode" in torch.cuda.graph.__init__.__annotations__:
            # In PyTorch 2.1+ and nightlies from late Aug 2023,
            # we can do this to maybe avoid watchdog-related crashes
            recording_kwargs["capture_error_mode"] = "thread_local"
        with torch.cuda.graph(self._generate_cuda_graph, **recording_kwargs):
            self._generate_logits = self.decode_model.forward_with_attn_bias(
                token_values=self._generate_inputs[0],
                attn_bias=self._generate_inputs[1],
                cache=self._cache,
            )

        def replay(tokens, seq_lens):
            self._generate_inputs[0].copy_(tokens)
            self._generate_inputs[1].k_seqinfo.seqlen.copy_(seq_lens)

            self._generate_cuda_graph.replay()

            return self._generate_logits

        return replay


    @torch.inference_mode()
    def generate_all(
        self, prompts: list[list[int]], use_cuda_graphs: bool, use_sampling: bool
    ) -> Tuple[Stats, list[list[int]]]:
        bs = len(prompts)
        prompt_lens = [len(p) for p in prompts]
        padded_prompt_lens = [self.gen_args.prompt_length] * bs
        max_prompt_length = max(prompt_lens)
        gen_length = self.gen_args.gen_length
        max_seq_length = max_prompt_length + gen_length
        print(max_prompt_length, gen_length)

        bias = AttnBias.from_seqlens(
            q_seqlen=padded_prompt_lens,
            kv_seqlen=prompt_lens,
            kv_padding=max_seq_length,
        )
        bias.q_seqinfo.to("cuda")
        bias.k_seqinfo.to("cuda")

        # Input tensors to the cuda graph
        kv_seqlen = bias.k_seqinfo.seqlen
        prompts = [prompt + [1] * (self.gen_args.prompt_length - len(prompt)) for prompt in prompts]
        tokens = torch.IntTensor(sum(prompts, [])).cuda()
        out_tokens = torch.zeros((max_seq_length, bs), dtype=torch.int)

        stats = Stats()
        torch.cuda.synchronize()
        stats.phase("prefill" if use_cuda_graphs else "total")
        # stats.phase("total")

        output = self._prefill_compile_model(tokens, None)

        logits = output[kv_seqlen - 1, :]
        logits = logits.view(bs, self.model_args.vocab_size)

        if use_sampling:
            temp = 0.7
            top_p = 0.95
            probs = torch.softmax(logits / temp, dim=-1)
            next_token = sample_utils.top_p(probs, top_p)
        else:
            next_token = torch.argmax(logits, dim=-1)        

        next_token = next_token.reshape(bs)
        out_tokens[0, :] = next_token

        torch.cuda.synchronize()
        stats.phase("decode" if use_cuda_graphs else "total")

        eos_id = self.tokenizer.eot_id
        for niter in range(1, gen_length):
            kv_seqlen.add_(kv_seqlen < max_seq_length)
            output = self._generate_compile_model(next_token, kv_seqlen)

            logits = output.view(bs, self.model_args.vocab_size)

            if use_sampling:
                temp = 0.7
                top_p = 0.95
                probs = torch.softmax(logits / temp, dim=-1)
                next_token = sample_utils.top_p(probs, top_p)
            else:
                next_token = torch.argmax(logits, dim=-1)

            next_token = next_token.reshape(bs)
            out_tokens[niter, :] = next_token

            if next_token.eq(eos_id).any():
                break

        torch.cuda.synchronize()
        stats.end_phase(tokens=niter * bs)

        def trim_answer(prompt_len, tokens):
            # print(prompt, tokens)
            """Trim the answer to end it on an eos token."""
            tokens = tokens[: max_seq_length - prompt_len]
            eos_id = self.tokenizer.eot_id
            if eos_id in tokens:
                return tokens[: tokens.index(eos_id) + 1]
            else:
                return tokens

        answers = [
            trim_answer(prompt_len, answer)
            for prompt_len, answer in zip(prompt_lens, out_tokens.t().tolist())
        ]
        return stats, answers


def get_prompts(interactive: bool) -> Iterable[list[str]]:
    if interactive:
        while True:
            try:
                prompts = input("enter prompt: ").split("\n")
            except EOFError:
                print("exiting")
                sys.exit(0)
            yield prompts
    else:
        yield [
            "Hello, my name is",
        ]


def main(ckpt_dir: str, interactive: bool = False, chat_format: bool = False, sampling: bool = False):

    local_rank = 0
    device = f"cuda:{local_rank}"
    torch.cuda.set_device(local_rank)

    g = FastGen.build(ckpt_dir, GenArgs(), device)

    if chat_format:
        g.tokenizer = ChatFormat(g.tokenizer)

    for prompts in get_prompts(interactive):
        # prompts = [f"{prompt}\n" for prompt in prompts]
        if chat_format:
            # prompts = [f'<|begin_of_text|>User: {prompt}<|eot_id|>Assistant: ' for prompt in prompts]
            tokens = [g.tokenizer.encode_dialog_prompt(dialog=[{"role": "user", "content": prompt}], completion=True) for prompt in prompts]
        else:
            tokens = [g.tokenizer.encode(x, bos=False, eos=False) for x in prompts]

        print(tokens)
        stats, out_tokens = g.generate_all(
            tokens, use_cuda_graphs="NO_CUDA_GRAPHS" not in os.environ, use_sampling=sampling,
        )

        for i, prompt in enumerate(prompts):
            print(f"> {prompt}")
            answer = g.tokenizer.decode(out_tokens[i])
            print(answer)
            print("---------------")

        for phase_stats in stats.phases:
            print(phase_stats.show())

        print(f"Memory used: {torch.cuda.max_memory_reserved() / 1e9:.02f} GB")


if __name__ == "__main__":
    fire.Fire(main)

================================================
FILE: gpu/model.py
================================================
# Copyright (c) Facebook, Inc. and its affiliates. All rights reserved.
#
# This source code is licensed under the BSD license found in the
# LICENSE file in the root directory of this source tree.

from dataclasses import dataclass
from typing import Optional, Tuple, Union

import torch
from torch import nn
from torch.nn import functional as F

from xformers.ops import RMSNorm, fmha, rope_padded
from xformers.ops.fmha.attn_bias import (
    BlockDiagonalCausalWithOffsetPaddedKeysMask as AttnBias,
)

import ctypes
bitnet_lib = ctypes.CDLL('bitnet_kernels/libbitnet.so')

def bitnet_int8xint2_linear(input0, input1, s, ws):
    out_shape = list(input0.shape)
    out_shape[-1] = input1.shape[0]

    stream = torch.cuda.current_stream()

    M = input0.shape[0]
    if len(out_shape) == 3: 
        M *= input0.shape[1]
    N = input1.shape[0]
    K = input1.shape[1] * 4

    ret = torch.zeros(*out_shape, dtype=torch.bfloat16, device=input0.device)

    bitnet_lib.bitlinear_int8xint2(*[ctypes.c_void_p(input0.data_ptr()), ctypes.c_void_p(input1.data_ptr()), ctypes.c_void_p(ret.data_ptr()), ctypes.c_void_p(s.data_ptr()), ctypes.c_void_p(ws.data_ptr()), ctypes.c_int(M), ctypes.c_int(N), ctypes.c_int(K), ctypes.c_void_p(stream.cuda_stream)])

    return ret

@dataclass
class ModelArgs:
    dim: int = 2560
    n_layers: int = 30
    n_heads: int = 20
    n_kv_heads: int = 5
    vocab_size: int = 128256
    ffn_dim: int = 6912
    norm_eps: float = 1e-5
    rope_theta: float = 500000.0
    use_kernel: bool = False


LayerCache = Tuple[torch.Tensor, torch.Tensor]

class BitLinearKernel(nn.Module):
    in_features: int
    out_features: int
    weight: torch.Tensor
    weight_scale: torch.Tensor

    def __init__(self, in_features: int, out_features: int, bias: bool = False):
        super().__init__()
        self.in_features = in_features
        self.out_features = out_features

        self.weight = torch.nn.Parameter(torch.zeros(out_features, in_features//4, dtype=torch.int8), requires_grad=False)
        self.weight_scale = torch.nn.Parameter(torch.zeros(4, dtype=torch.bfloat16), requires_grad=False)

    @torch.compile
    def quant_input(self, input):
        s = 127 / input.abs().max(dim=-1, keepdim=True).values.clamp_(min=1e-5)
        return (input * s).round().clamp(-128, 127).to(torch.int8), s

    def forward(self, input):
        input, s = self.quant_input(input)
        return bitnet_int8xint2_linear(input, self.weight, s, self.weight_scale)

class BitLinear(nn.Linear):
    @torch.compile
    def quant_input(self, input):
        s = 127 / input.abs().max(dim=-1, keepdim=True).values.clamp_(min=1e-5)
        return (input * s).round().clamp(-128, 127) / s

    def forward(self, input):
        input = self.quant_input(input)
        return F.linear(input, self.weight)

class Attention(nn.Module):
    def __init__(
        self,
        dim: int,
        head_dim: int,
        n_heads: int,
        n_kv_heads: int,
        rope_theta: float,
        norm_eps: float,
        use_kernel: bool,
    ):
        super().__init__()

        self.head_dim = head_dim
        self.rope_theta = rope_theta

        self.n_local_heads = n_heads
        self.n_local_kv_heads = n_kv_heads

        Linear = BitLinearKernel if use_kernel else BitLinear

        self.wqkv = Linear(
            dim,
            (self.n_local_heads + 2 * self.n_local_kv_heads) * head_dim,
            bias=False,
        )
        self.wo = Linear(
            self.n_local_heads * head_dim,
            dim,
            bias=False,
        )

        self.attn_sub_norm = RMSNorm(dim, norm_eps)

    def forward(
        self,
        x: torch.Tensor,
        cache: LayerCache,
        attn_bias: AttnBias,
    ) -> torch.Tensor:

        xqkv = self.wqkv(x)
        xq = xqkv[:, : (self.n_local_heads * self.head_dim)]
        xkv = xqkv[:, (self.n_local_heads * self.head_dim) :]
        xk, xv = xkv.chunk(2, 1)

        output_shape = xq.shape
        heads_per_group = self.n_local_heads // self.n_local_kv_heads
        xq = xq.view(
            1, xq.shape[0], self.n_local_kv_heads, heads_per_group, self.head_dim
        )
        xk = xk.view(1, xk.shape[0], self.n_local_kv_heads, 1, self.head_dim)
        # xq = rearrange(xq, 'b (g h l d) -> 1 b h g (d l)', g=heads_per_group, h=self.n_local_kv_heads, d=self.head_dim // 2, l=2)
        # xk = rearrange(xk, 'b (g l d) -> 1 b g 1 (d l)', g=self.n_local_kv_heads, d=self.head_dim // 2)
        xv = xv.view(1, xv.shape[0], self.n_local_kv_heads, 1, self.head_dim)
        cache_k, cache_v = cache

        xq = rope_padded(
            xq=xq,
            xk=xk,
            xv=xv,
            cache_k=cache_k,
            cache_v=cache_v,
            attn_bias=attn_bias,
            theta=self.rope_theta,
        )

        output = fmha.memory_efficient_attention_forward(
            xq, cache_k, cache_v, attn_bias, op = fmha.flash.FwOp
        )

        output = output.reshape(output_shape)
        output = self.attn_sub_norm(output)
        output = self.wo(output)

        return output

@torch.compile
def squared_relu(x: torch.Tensor) -> torch.Tensor:
    return F.relu(x) ** 2

class FeedForward(nn.Module):
    def __init__(
        self,
        dim: int,
        hidden_dim: int,
        norm_eps: float,
        use_kernel: bool,
    ):
        super().__init__()

        Linear = BitLinearKernel if use_kernel else BitLinear

        self.w13 = Linear(
            dim,
            2 * hidden_dim,
            bias=False,
        )
        self.w2 = Linear(
            hidden_dim,
            dim,
            bias=False,
        )
        self.ffn_sub_norm = RMSNorm(hidden_dim, norm_eps)

    def forward(self, x: torch.Tensor) -> torch.Tensor:
        x13 = self.w13(x)
        x1, x3 = x13.chunk(2, -1)
        inner = self.ffn_sub_norm(squared_relu(x1) * x3)
        output = self.w2(inner)
        return output


class TransformerBlock(nn.Module):
    def __init__(self, args: ModelArgs):
        super().__init__()

        assert args.dim % args.n_heads == 0
        head_dim = args.dim // args.n_heads
        if args.n_kv_heads is not None:
            n_kv_heads = args.n_kv_heads
        else:
            n_kv_heads = args.n_heads

        assert args.n_heads % n_kv_heads == 0

        self.attention = Attention(
            dim=args.dim,
            head_dim=head_dim,
            n_heads=args.n_heads,
            n_kv_heads=n_kv_heads,
            rope_theta=args.rope_theta,
            norm_eps=args.norm_eps,
            use_kernel=args.use_kernel,
        )
        self.feed_forward = FeedForward(
            dim=args.dim,
            hidden_dim=args.ffn_dim,
            norm_eps=args.norm_eps,
            use_kernel=args.use_kernel,
        )
        self.attention_norm = RMSNorm(args.dim, eps=args.norm_eps)
        self.ffn_norm = RMSNorm(args.dim, eps=args.norm_eps)

    def forward(
        self,
        x: torch.Tensor,
        cache: LayerCache,
        attn_bias: AttnBias,
    ) -> torch.Tensor:
        h = x + self.attention.forward(
            self.attention_norm(x),
            cache,
            attn_bias,
        )
        out = h + self.feed_forward(self.ffn_norm(h))
        return out


class Transformer(nn.Module):
    def __init__(self, args: ModelArgs):
        super().__init__()
        assert args.vocab_size > 0

        self.tok_embeddings = nn.Embedding(
            num_embeddings=args.vocab_size,
            embedding_dim=args.dim,
        )

        self.layers = nn.ModuleList()
        for _ in range(args.n_layers):
            self.layers.append(TransformerBlock(args))

        self.norm = RMSNorm(args.dim, eps=args.norm_eps)

        self.output = nn.Linear(
            args.dim,
            args.vocab_size,
            bias=False,
        )

    @torch.no_grad()
    def forward_with_attn_bias(
        self,
        token_values: torch.Tensor,
        attn_bias: AttnBias,
        cache: list[LayerCache],
    ) -> torch.Tensor:
        h = self.tok_embeddings(token_values)

        for i, layer in enumerate(self.layers):
            h = layer(h, cache[i], attn_bias)

        logits = self.output(self.norm(h))
        return logits.float()

    def forward(
        self,
        token_values: torch.Tensor,
        token_lengths: torch.Tensor,
        start_pos: torch.Tensor,
        cache: list[LayerCache],
        kv_padding: int,
    ) -> torch.Tensor:
        attn_bias = AttnBias.from_seqlens(
            q_seqlen=token_lengths.tolist(),
            kv_seqlen=(start_pos + token_lengths).tolist(),
            kv_padding=kv_padding,
        )
        return self.forward_with_attn_bias(token_values, attn_bias, cache)


def make_cache(
    args: ModelArgs,
    length: int,
    device: Optional[Union[str, torch.device]] = None,
    n_layers: Optional[int] = None,
    dtype: Optional[torch.dtype] = None,
) -> list[LayerCache]:
    """
    Allocate a cache to be used with the Transformer module.

    Args:
        args (ModelArgs): the model configuration.
        length (int): per layer cache size.
            It is usually budgeted as ``max_batch * max_seq``
        device (torch.device, optional): the device on which
            the cache should be allocated.
        n_layers (int, optional): the number of layers to
            allocate a cache for (defaults to the model
            settings).
        dtype (torch.dtype, optional): the dtype to use for
            cache entries (defaults to the default dtype).

    Returns:
        The cache object to pass to ``Tranformer.forward``.
    """

    head_dim = args.dim // args.n_heads
    n_kv_heads = args.n_kv_heads
    if n_kv_heads is None:
        n_kv_heads = args.n_heads
    n_local_kv_heads = n_kv_heads

    if n_layers is None:
        n_layers = args.n_layers

    shape = (1, length, n_local_kv_heads, 1, head_dim)
    heads_per_group = args.n_heads // n_kv_heads
    expansion = (-1, -1, -1, heads_per_group, -1)
    return [
        (
            torch.zeros(shape, device=device, dtype=dtype).expand(expansion),
            torch.zeros(shape, device=device, dtype=dtype).expand(expansion),
        )
        for _ in range(n_layers)
    ]


def cache_prefix(cache: list[LayerCache], length: int) -> list[LayerCache]:
    """
    Take a prefix view of a larger cache.

    The original cache object remains of identical size and valid
    after the shrinked alias has been used. This function is useful
    when a cache was allocated for a larger batch size than what is
    necessary.

    Args:
        cache: the cache to take a view in.
        length (int): the desired length

    Returns:
        A view in the input cache object.
    """

    if len(cache) > 0:
        assert cache[0][0].shape[1] >= length

    return [(ck[:, :length], cv[:, :length]) for ck, cv in cache]

================================================
FILE: gpu/pack_weight.py
================================================
import torch
import numpy as np


def B_global_16x32_to_shared_load_16x32_layout(i, j):
    """
         stride * 8 * (tx // HALF_WARP_expr)
                + (tx % 8) * stride
                + 16 * ((tx % HALF_WARP_expr) // 8)
    """
    thread_id = i * 2 + j // 16
    row = (thread_id // 16) * 8 + (thread_id % 8)
    col = (j % 16) + 16 * ((thread_id % 16) // 8)
    return row, col


def permutate_weight_fastest(weight):
    wmma_n = 16
    wmma_k = 32
    N = weight.shape[0]
    K = weight.shape[1]
    
    # Create a lookup table for the permutation
    mapping = np.zeros((wmma_n, wmma_k, 2), dtype=int)
    for ii in range(wmma_n):
        for jj in range(wmma_k):
            mapping[ii, jj] = B_global_16x32_to_shared_load_16x32_layout(ii, jj)
    
    # Reshape weight for the final format
    permutated_weight = np.zeros((N // wmma_n, K // wmma_k, wmma_n, wmma_k), dtype="int8")
    
    # Use advanced indexing for the entire operation
    i_indices = np.arange(N // wmma_n)[:, np.newaxis, np.newaxis, np.newaxis]
    j_indices = np.arange(K // wmma_k)[np.newaxis, :, np.newaxis, np.newaxis]
    
    # Create the source indices
    src_i = i_indices * wmma_n + mapping[:, :, 0]
    src_j = j_indices * wmma_k + mapping[:, :, 1]
    
    # Extract and reshape in one go
    permutated_weight = weight[src_i, src_j]
    
    return permutated_weight


def compress_int2_to_int8(int2_weight):
    int8_weight = np.zeros(
        (*int2_weight.shape[:-1], int2_weight.shape[-1] // 4), dtype=np.int8
    )
    for j in range(int2_weight.shape[-1] // 4):
        for k in range(4):
            int8_weight[:, :, :, j] |= int2_weight[:, :, :, j * 4 + k] << (k * 2)
    return int8_weight


def interleave_weight_int8(qweight, nbits=2):\
    # reinterpret the data type of qweight to int32
    # shift = [ 0,  8, 16, 24,  2, 10, 18, 26,  4, 12, 20, 28,  6, 14, 22, 30]
    # index: [ 0,  4,  8, 12,  1,  5,  9, 13,  2,  6, 10, 14,  3,  7, 11, 15]
    qweight = qweight.view(np.int32)
    new_qweight = np.zeros_like(qweight)
    bits_stride = 8
    mask = (1 << nbits) - 1  # for 4bit the val is 0x0000000f
    num_groups = 32 // bits_stride # 4
    elems_per_group = bits_stride // nbits  # 4
    for i in range(num_groups):
        for j in range(elems_per_group):
            offset = i * elems_per_group + j
            shift = (offset % num_groups) * bits_stride + (offset // num_groups) * nbits

            new_qweight |= ((qweight >> (nbits * offset)) & mask) << shift
    return new_qweight.view(np.int8)



def convert_weight_int8_to_int2(weight):
    N = weight.shape[0]
    K = weight.shape[1]

    weight = weight+2
    
    weight = weight.cpu().numpy()

    # print(weight)
    # print(torch.max(weight), torch.min(weight))

    # permutated_weight_slow = permutate_weight(weight)
    permutated_weight = permutate_weight_fastest(weight)
    # assert np.all(permutated_weight_slow == permutated_weight)
    # print("Permutation is correct")
    compressed_weight = compress_int2_to_int8(permutated_weight)
    interleaved_weight = interleave_weight_int8(compressed_weight, 2)

    ret = torch.from_numpy(interleaved_weight)

    ret = torch.reshape(ret, (N, K // 4))

    return ret


================================================
FILE: gpu/requirements.txt
================================================
fire
sentencepiece
torch>=2.2.0
xformers>=0.0.22
tiktoken
blobfile
flask
einops
transformers

================================================
FILE: gpu/sample_utils.py
================================================
# Copyright (c) Facebook, Inc. and its affiliates. All rights reserved.
#
# This source code is licensed under the BSD license found in the
# LICENSE file in the root directory of this source tree.

import torch

@torch.compile
def top_p(probs: torch.Tensor, p: float) -> torch.Tensor:
    """
    Perform top-p (nucleus) sampling on a probability distribution.

    Args:
        probs (torch.Tensor): probability distribution tensor.
        p (float): probability threshold for top-p sampling.

    Returns:
        torch.Tensor: sampled token indices.

    Note:
        Top-p sampling selects the smallest set of tokens whose cumulative
        probability mass exceeds the threshold p. The distribution is
        renormalized based on the selected tokens.
    """
    probs_sort, probs_idx = torch.sort(probs, dim=-1, descending=True)
    probs_sum = torch.cumsum(probs_sort, dim=-1)
    mask = probs_sum - probs_sort > p
    probs_sort[mask] = 0.0
    next_token = torch.multinomial(probs_sort, num_samples=1)
    next_token = torch.gather(probs_idx, -1, next_token)
    return next_token

================================================
FILE: gpu/stats.py
================================================
# Copyright (c) Facebook, Inc. and its affiliates. All rights reserved.
#
# This source code is licensed under the BSD license found in the
# LICENSE file in the root directory of this source tree.

import time
from dataclasses import dataclass
from typing import Optional


@dataclass
class PhaseStats:
    name: str
    tokens: int
    time: float

    def show(self) -> str:
        tps = self.tokens / self.time
        return (
            f"[{self.name}] "
            f"generated tokens: {self.tokens}"
            f" - total time: {self.time:.3f}s"
            f" - {tps:.1f} tokens per second"
        )


class Stats:
    """
    Generation stats, split by phases.
    """

    def __init__(self):
        self.phases = []
        self.current = None

    def end_phase(self, tokens: int, now: Optional[float] = None):
        """Terminate the current phase."""
        if self.current is None:
            return
        if now is None:
            now = time.time()
        cname, ctokens, ctime = self.current
        stats = PhaseStats(
            name=cname,
            tokens=tokens - ctokens,
            time=now - ctime,
        )
        self.phases.append(stats)

    def phase(self, name: str, tokens: int = 0):
        """
        Start a new phase, and terminate the current one,
        if one is ongoing.
        """
        now = time.time()
        self.end_phase(tokens, now)
        self.current = (name, tokens, now)

================================================
FILE: gpu/test.py
================================================
import torch
from torch.utils import benchmark
from torch import nn

from pack_weight import convert_weight_int8_to_int2
from torch.profiler import profile, record_function, ProfilerActivity
import ctypes
import numpy as np
# set all seed
torch.manual_seed(42)
np.random.seed(42)

bitnet_lib = ctypes.CDLL('bitnet_kernels/libbitnet.so')

def bitnet_int8xint2_linear(input0, input1, s, ws, ret):
    out_shape = list(input0.shape)
    out_shape[-1] = input1.shape[0]

    stream = torch.cuda.current_stream()

    M = input0.shape[0]
    if len(out_shape) == 3: 
        M *= input0.shape[1]
    N = input1.shape[0]
    K = input1.shape[1] * 4

    bitnet_lib.bitlinear_int8xint2(*[ctypes.c_void_p(input0.data_ptr()), ctypes.c_void_p(input1.data_ptr()), ctypes.c_void_p(ret.data_ptr()), ctypes.c_void_p(s.data_ptr()), ctypes.c_void_p(ws.data_ptr()), ctypes.c_int(M), ctypes.c_int(N), ctypes.c_int(K), ctypes.c_void_p(stream.cuda_stream)])

    return ret

if __name__ == '__main__':
    test_list = [
        (2560,  2560), 
        (3840,  2560), 
        (13824, 2560),
        (2560,  6912) ,
        (3200, 3200), 
        (4800, 3200), 
        (3200, 10240),
        (20480, 3200),
    ]
    for N,K in test_list:
        weight = torch.randint(-1, 2, (N, K), dtype=torch.int8, device='cuda')
        weight_scale = torch.ones(1, dtype=torch.bfloat16, device='cuda')
        weight_compressed = convert_weight_int8_to_int2(weight).to('cuda')

        for i in range(1):
            input0 = torch.randint(-128,127,(1, K),dtype=torch.int8, device='cuda')
            input0_bf16 = input0.to(torch.bfloat16)
            input_np = input0.cpu().to(torch.int32).numpy()
            weight_np = weight.cpu().to(torch.int32).T.numpy()
            out_np = np.matmul(input_np,weight_np)
            out_np = torch.tensor(out_np).cuda().to(torch.bfloat16)

            s = torch.ones(1, dtype=torch.bfloat16, device='cuda')
            ws = torch.ones(6, dtype=torch.bfloat16, device='cuda')

            ret = torch.empty((1,N), dtype=torch.bfloat16, device=input0.device)
            out = bitnet_int8xint2_linear(input0, weight_compressed, s, ws, ret)

            print(f'custom == np {torch.all(out==out_np)}')

        input0 = torch.randint(-128,127,(1, K),dtype=torch.int8, device='cuda')
        input0_fp16 = input0.to(torch.float16)
        input0_bf16 = input0.to(torch.bfloat16)
        weight_fp16 = weight.to(torch.float16).T
        weight_bf16 = weight.to(torch.bfloat16).T
        ret = torch.empty((1,N), dtype=torch.bfloat16, device=input0.device)
        s = torch.ones(1, dtype=torch.bfloat16, device='cuda')
        ws = torch.ones(6, dtype=torch.bfloat16, device='cuda')
        t0 = benchmark.Timer(
            stmt="bitnet_int8xint2_linear(input0, weight_compressed, s, ws, ret)",
            setup="from __main__ import input0, weight_compressed, s, ws, ret, bitnet_int8xint2_linear",
            num_threads=1,
        )

        t1 = benchmark.Timer(
            stmt="torch.matmul(input0_bf16,weight_bf16)",
            setup="from __main__ import input0_bf16, weight_bf16",
            num_threads=1,
        )

        time0 = t0.timeit(50)
        time1 = t1.timeit(50)

        print(f'Shape{N,K}, W2A8: {time0.mean * 1e6:.2f}us, torch BF16: {time1.mean * 1e6:.2f}us')
        # activities = [ ProfilerActivity.CUDA, 
        #             #   ProfilerActivity.CPU
        #               ]
        # sort_by_keyword = 'cuda' + "_time_total"
        # with profile(activities=activities, record_shapes=True) as prof:
        #     with record_function("model_inference1"):
        #         for _ in range(10):
        #             bitnet_int8xint2_linear(input0, weight_compressed, s, ws, ret)
        #             torch.matmul(input0_fp16,weight_fp16)
        #             torch.matmul(input0_bf16,weight_bf16)

        # print(prof.key_averages().table(sort_by=sort_by_keyword, row_limit=15))
        


================================================
FILE: gpu/tokenizer.model
================================================
IQ== 0
Ig== 1
Iw== 2
JA== 3
JQ== 4
Jg== 5
Jw== 6
KA== 7
KQ== 8
Kg== 9
Kw== 10
LA== 11
LQ== 12
Lg== 13
Lw== 14
MA== 15
MQ== 16
Mg== 17
Mw== 18
NA== 19
NQ== 20
Ng== 21
Nw== 22
OA== 23
OQ== 24
Og== 25
Ow== 26
PA== 27
PQ== 28
Pg== 29
Pw== 30
QA== 31
QQ== 32
Qg== 33
Qw== 34
RA== 35
RQ== 36
Rg== 37
Rw== 38
SA== 39
SQ== 40
Sg== 41
Sw== 42
TA== 43
TQ== 44
Tg== 45
Tw== 46
UA== 47
UQ== 48
Ug== 49
Uw== 50
VA== 51
VQ== 52
Vg== 53
Vw== 54
WA== 55
WQ== 56
Wg== 57
Ww== 58
XA== 59
XQ== 60
Xg== 61
Xw== 62
YA== 63
YQ== 64
Yg== 65
Yw== 66
ZA== 67
ZQ== 68
Zg== 69
Zw== 70
aA== 71
aQ== 72
ag== 73
aw== 74
bA== 75
bQ== 76
bg== 77
bw== 78
cA== 79
cQ== 80
cg== 81
cw== 82
dA== 83
dQ== 84
dg== 85
dw== 86
eA== 87
eQ== 88
eg== 89
ew== 90
fA== 91
fQ== 92
fg== 93
oQ== 94
og== 95
ow== 96
pA== 97
pQ== 98
pg== 99
pw== 100
qA== 101
qQ== 102
qg== 103
qw== 104
rA== 105
rg== 106
rw== 107
sA== 108
sQ== 109
sg== 110
sw== 111
tA== 112
tQ== 113
tg== 114
tw== 115
uA== 116
uQ== 117
ug== 118
uw== 119
vA== 120
vQ== 121
vg== 122
vw== 123
wA== 124
wQ== 125
wg== 126
ww== 127
xA== 128
xQ== 129
xg== 130
xw== 131
yA== 132
yQ== 133
yg== 134
yw== 135
zA== 136
zQ== 137
zg== 138
zw== 139
0A== 140
0Q== 141
0g== 142
0w== 143
1A== 144
1Q== 145
1g== 146
1w== 147
2A== 148
2Q== 149
2g== 150
2w== 151
3A== 152
3Q== 153
3g== 154
3w== 155
4A== 156
4Q== 157
4g== 158
4w== 159
5A== 160
5Q== 161
5g== 162
5w== 163
6A== 164
6Q== 165
6g== 166
6w== 167
7A== 168
7Q== 169
7g== 170
7w== 171
8A== 172
8Q== 173
8g== 174
8w== 175
9A== 176
9Q== 177
9g== 178
9w== 179
+A== 180
+Q== 181
+g== 182
+w== 183
/A== 184
/Q== 185
/g== 186
/w== 187
AA== 188
AQ== 189
Ag== 190
Aw== 191
BA== 192
BQ== 193
Bg== 194
Bw== 195
CA== 196
CQ== 197
Cg== 198
Cw== 199
DA== 200
DQ== 201
Dg== 202
Dw== 203
EA== 204
EQ== 205
Eg== 206
Ew== 207
FA== 208
FQ== 209
Fg== 210
Fw== 211
GA== 212
GQ== 213
Gg== 214
Gw== 215
HA== 216
HQ== 217
Hg== 218
Hw== 219
IA== 220
fw== 221
gA== 222
gQ== 223
gg== 224
gw== 225
hA== 226
hQ== 227
hg== 228
hw== 229
iA== 230
iQ== 231
ig== 232
iw== 233
jA== 234
jQ== 235
jg== 236
jw== 237
kA== 238
kQ== 239
kg== 240
kw== 241
lA== 242
lQ== 243
lg== 244
lw== 245
mA== 246
mQ== 247
mg== 248
mw== 249
nA== 250
nQ== 251
ng== 252
nw== 253
oA== 254
rQ== 255
ICA= 256
ICAgIA== 257
aW4= 258
IHQ= 259
ICAgICAgICA= 260
ZXI= 261
ICAg 262
b24= 263
IGE= 264
cmU= 265
YXQ= 266
c3Q= 267
ZW4= 268
b3I= 269
IHRo 270
Cgo= 271
IGM= 272
bGU= 273
IHM= 274
aXQ= 275
YW4= 276
YXI= 277
YWw= 278
IHRoZQ== 279
Owo= 280
IHA= 281
IGY= 282
b3U= 283
ID0= 284
aXM= 285
ICAgICAgIA== 286
aW5n 287
ZXM= 288
IHc= 289
aW9u 290
ZWQ= 291
aWM= 292
IGI= 293
IGQ= 294
ZXQ= 295
IG0= 296
IG8= 297
CQk= 298
cm8= 299
YXM= 300
ZWw= 301
Y3Q= 302
bmQ= 303
IGlu 304
IGg= 305
ZW50 306
aWQ= 307
IG4= 308
YW0= 309
ICAgICAgICAgICA= 310
IHRv 311
IHJl 312
LS0= 313
IHs= 314
IG9m 315
b20= 316
KTsK 317
aW0= 318
DQo= 319
ICg= 320
aWw= 321
Ly8= 322
IGFuZA== 323
dXI= 324
c2U= 325
IGw= 326
ZXg= 327
IFM= 328
YWQ= 329
ICI= 330
Y2g= 331
dXQ= 332
aWY= 333
Kio= 334
IH0= 335
ZW0= 336
b2w= 337
ICAgICAgICAgICAgICAgIA== 338
dGg= 339
KQo= 340
IHsK 341
IGc= 342
aWc= 343
aXY= 344
LAo= 345
Y2U= 346
b2Q= 347
IHY= 348
YXRl 349
IFQ= 350
YWc= 351
YXk= 352
ICo= 353
b3Q= 354
dXM= 355
IEM= 356
IHN0 357
IEk= 358
dW4= 359
dWw= 360
dWU= 361
IEE= 362
b3c= 363
ICc= 364
ZXc= 365
IDw= 366
YXRpb24= 367
KCk= 368
IGZvcg== 369
YWI= 370
b3J0 371
dW0= 372
YW1l 373
IGlz 374
cGU= 375
dHI= 376
Y2s= 377
4oA= 378
IHk= 379
aXN0 380
LS0tLQ== 381
LgoK 382
aGU= 383
IGU= 384
bG8= 385
IE0= 386
IGJl 387
ZXJz 388
IG9u 389
IGNvbg== 390
YXA= 391
dWI= 392
IFA= 393
ICAgICAgICAgICAgICAg 394
YXNz 395
aW50 396
Pgo= 397
bHk= 398
dXJu 399
ICQ= 400
OwoK 401
YXY= 402
cG9ydA== 403
aXI= 404
LT4= 405
bnQ= 406
Y3Rpb24= 407
ZW5k 408
IGRl 409
MDA= 410
aXRo 411
b3V0 412
dHVybg== 413
b3Vy 414
ICAgICA= 415
bGlj 416
cmVz 417
cHQ= 418
PT0= 419
IHRoaXM= 420
IHdo 421
IGlm 422
IEQ= 423
dmVy 424
YWdl 425
IEI= 426
aHQ= 427
ZXh0 428
PSI= 429
IHRoYXQ= 430
KioqKg== 431
IFI= 432
IGl0 433
ZXNz 434
IEY= 435
IHI= 436
b3M= 437
YW5k 438
IGFz 439
ZWN0 440
a2U= 441
cm9t 442
IC8v 443
Y29u 444
IEw= 445
KCI= 446
cXU= 447
bGFzcw== 448
IHdpdGg= 449
aXo= 450
ZGU= 451
IE4= 452
IGFs 453
b3A= 454
dXA= 455
Z2V0 456
IH0K 457
aWxl 458
IGFu 459
YXRh 460
b3Jl 461
cmk= 462
IHBybw== 463
Ow0K 464
CQkJCQ== 465
dGVy 466
YWlu 467
IFc= 468
IEU= 469
IGNvbQ== 470
IHJldHVybg== 471
YXJ0 472
IEg= 473
YWNr 474
aW1wb3J0 475
dWJsaWM= 476
IG9y 477
ZXN0 478
bWVudA== 479
IEc= 480
YWJsZQ== 481
IC0= 482
aW5l 483
aWxs 484
aW5k 485
ZXJl 486
Ojo= 487
aXR5 488
ICs= 489
IHRy 490
ZWxm 491
aWdodA== 492
KCc= 493
b3Jt 494
dWx0 495
c3Ry 496
Li4= 497
Iiw= 498
IHlvdQ== 499
eXBl 500
cGw= 501
IG5ldw== 502
IGo= 503
ICAgICAgICAgICAgICAgICAgIA== 504
IGZyb20= 505
IGV4 506
IE8= 507
MjA= 508
bGQ= 509
IFs= 510
b2M= 511
Ogo= 512
IHNl 513
IGxl 514
LS0tLS0tLS0= 515
LnM= 516
ewo= 517
Jyw= 518
YW50 519
IGF0 520
YXNl 521
LmM= 522
IGNo 523
PC8= 524
YXZl 525
YW5n 526
IGFyZQ== 527
IGludA== 528
4oCZ 529
X3Q= 530
ZXJ0 531
aWFs 532
YWN0 533
fQo= 534
aXZl 535
b2Rl 536
b3N0 537
IGNsYXNz 538
IG5vdA== 539
b2c= 540
b3Jk 541
YWx1ZQ== 542
YWxs 543
ZmY= 544
KCk7Cg== 545
b250 546
aW1l 547
YXJl 548
IFU= 549
IHBy 550
IDo= 551
aWVz 552
aXpl 553
dXJl 554
IGJ5 555
aXJl 556
IH0KCg== 557
LnA= 558
IHNo 559
aWNl 560
YXN0 561
cHRpb24= 562
dHJpbmc= 563
b2s= 564
X18= 565
Y2w= 566
IyM= 567
IGhl 568
YXJk 569
KS4= 570
IEA= 571
aWV3 572
CQkJ 573
IHdhcw== 574
aXA= 575
dGhpcw== 576
IHU= 577
IFRoZQ== 578
aWRl 579
YWNl 580
aWI= 581
YWM= 582
cm91 583
IHdl 584
amVjdA== 585
IHB1YmxpYw== 586
YWs= 587
dmU= 588
YXRo 589
b2lk 590
ID0+ 591
dXN0 592
cXVl 593
IHJlcw== 594
KSk= 595
J3M= 596
IGs= 597
YW5z 598
eXN0 599
dW5jdGlvbg== 600
KioqKioqKio= 601
IGk= 602
IHVz 603
cHA= 604
MTA= 605
b25l 606
YWls 607
PT09PQ== 608
bmFtZQ== 609
IHN0cg== 610
IC8= 611
ICY= 612
YWNo 613
ZGl2 614
eXN0ZW0= 615
ZWxs 616
IGhhdmU= 617
ZXJy 618
b3VsZA== 619
dWxs 620
cG9u 621
IEo= 622
X3A= 623
ID09 624
aWdu 625
U3Q= 626
Lgo= 627
IHBs 628
KTsKCg== 629
Zm9ybQ== 630
cHV0 631
b3VudA== 632
fQoK 633
ZGQ= 634
aXRl 635
IGdldA== 636
cnI= 637
b21l 638
IOKA 639
YXJhbQ== 640
Y2M= 641
ICov 642
RVI= 643
SW4= 644
bGVz 645
X3M= 646
b25n 647
aWU= 648
IGNhbg== 649
IFY= 650
ZXJ2 651
cHI= 652
IHVu 653
cm93 654
YmVy 655
IGRv 656
bGw= 657
IGVs 658
IHNlbGY= 659
YXRlZA== 660
YXJ5 661
IC4= 662
J10= 663
dWQ= 664
IGVu 665
IFRo 666
ICAgICAgICAgICAgICAgICAgICAgICA= 667
dGU= 668
X2M= 669
dWN0 670
IGFi 671
b3Jr 672
LmdldA== 673
ICM= 674
YXc= 675
cmVzcw== 676
b2I= 677
TmFtZQ== 678
MjAx 679
YXBw 680
Wyc= 681
IGFsbA== 682
b3J5 683
aXRpb24= 684
YW5jZQ== 685
ZWFy 686
IGNvbnQ= 687
dmVudA== 688
aWE= 689
IHdpbGw= 690
SU4= 691
ICAgICAgICAg 692
cmV0dXJu 693
IDwv 694
ZGF0YQ== 695
KQoK 696
UmU= 697
cGxl 698
aWxk 699
dGhlcg== 700
IHlvdXI= 701
Igo= 702
KCQ= 703
IG91dA== 704
KSw= 705
IGhhcw== 706
U3RyaW5n 707
c28= 708
IHVw 709
YXg= 710
IGRlZg== 711
IGJv 712
Z2U= 713
YWxzZQ== 714
T04= 715
cGVy 716
MTI= 717
aWNo 718
IGJ1dA== 719
IAo= 720
IF8= 721
X20= 722
YWRk 723
cXVlc3Q= 724
b2RlbA== 725
c2VsZg== 726
ZXJ5 727
ZnQ= 728
ZW5z 729
Ly8vLw== 730
YWtl 731
LkM= 732
IGdv 733
IGZ1bmN0aW9u 734
IEs= 735
aXZhdGU= 736
IGlt 737
IGNvbnN0 738
LnQ= 739
ICovCg== 740
KTsNCg== 741
IHZvaWQ= 742
IHNldA== 743
IFN5c3RlbQ== 744
Y3Jp 745
KCkK 746
bGk= 747
CWlm 748
Lm0= 749
YWxseQ== 750
c2V0 751
ZXA= 752
4oCZcw== 753
Ym8= 754
ZGVm 755
JywK 756
IG1l 757
ICE= 758
YXRjaA== 759
Ij4= 760
IiwK 761
ZWM= 762
IElu 763
cGg= 764
IHw= 765
X2Y= 766
IHZhcg== 767
ZW5jZQ== 768
SWQ= 769
cmVl 770
aW5r 771
bGVjdA== 772
dWc= 773
ZXRo 774
IGVsc2U= 775
LS0tLS0tLS0tLS0tLS0tLQ== 776
MTk= 777
Y29udA== 778
IHNv 779
YXRpYw== 780
IGxv 781
cHJv 782
dG9u 783
c3M= 784
b3du 785
YWJlbA== 786
b2ludA== 787
b3Vz 788
ZWxk 789
U1Q= 790
VGhl 791
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA= 792
UkU= 793
Ijo= 794
b2xvcg== 795
dHA= 796
ZWc= 797
a2V5 798
dWRl 799
IFN0 800
b3VuZA== 801
IGFy 802
Iik7Cg== 803
ZW5lcg== 804
c2Vy 805
MTE= 806
YmplY3Q= 807
ZXNzYWdl 808
ZmVy 809
IG1vcmU= 810
YXRpb25z 811
ZW50cw== 812
IGhpcw== 813
IHRoZXk= 814
LlM= 815
IFk= 816
dXNl 817
bmU= 818
aXNo 819
b2xk 820
X2Q= 821
aW8= 822
aWVsZA== 823
IHBlcg== 824
Q29udA== 825
aW5ncw== 826
IyMjIw== 827
IGRhdGE= 828
IHNh 829
ZWY= 830
Zm8= 831
IG9uZQ== 832
ZW5n 833
IGRpcw== 834
QVQ= 835
IG5hbWU= 836
IHRydWU= 837
dmFs 838
bGVk 839
LmY= 840
IG5l 841
IGVuZA== 842
MzI= 843
LlQ= 844
MTY= 845
Y3Jl 846
YXJr 847
bG9n 848
RXg= 849
ZXJyb3I= 850
X2lk 851
dXJyZQ== 852
YW5nZQ== 853
IG51bGw= 854
cnJheQ== 855
IG15 856
cGFu 857
aWN0 858
YXRvcg== 859
Vmlldw== 860
TGlzdA== 861
CXJldHVybg== 862
4oCd 863
IHByZQ== 864
IHg= 865
Y2x1ZGU= 866
YXJn 867
MTU= 868
b3Y= 869
Lmg= 870
ID4= 871
IHRoZWly 872
Jyk= 873
aXJzdA== 874
aWNr 875
Z2g= 876
TEU= 877
T1I= 878
IHByaXZhdGU= 879
dGVt 880
DQoNCg== 881
dXNlcg== 882
ICk= 883
Y29t 884
LkE= 885
IjsK 886
IGlk 887
cmVhZA== 888
IHdobw== 889
X2I= 890
Ij4K 891
IHRpbWU= 892
IG1hbg== 893
cnk= 894
PT09PT09PT0= 895
cm91cA== 896
cm9w 897
cHVibGlj 898
dmVs 899
dW1iZXI= 900
Ymxl 901
IHdoaWNo 902
KioqKioqKioqKioqKioqKg== 903
IGFueQ== 904
IGZhbHNl 905
d2U= 906
IHZhbHVl 907
IGxp 908
Iik= 909
bmRlcg== 910
Z3I= 911
IG5v 912
cGFyYW0= 913
MjU= 914
Zmln 915
LmNvbQ== 916
IGFwcA== 917
X2w= 918
aW9ucw== 919
LkQ= 920
IENo 921
IGFib3V0 922
IGFkZA== 923
IHN1 924
IHN0cmluZw== 925
SUQ= 926
IG92ZXI= 927
c3RyaW5n 928
Lmw= 929
b3VyY2U= 930
MDAw 931
X0M= 932
XQo= 933
IHF1 934
IFN0cmluZw== 935
Y2E= 936
U0U= 937
IHJv 938
c2g= 939
dWFs 940
VHlwZQ== 941
c29u 942
bmV3 943
ZXJu 944
IGFn 945
QVI= 946
XTsK 947
XS4= 948
ID8= 949
aWNhbA== 950
IGRlcw== 951
dXRo 952
aXg= 953
YXlz 954
IHR5cGU= 955
J3Q= 956
YXVsdA== 957
IGludGVy 958
dmFy 959
LmI= 960
IHBhcnQ= 961
LmQ= 962
dXJyZW50 963
SVQ= 964
RU4= 965
MzA= 966
ZW5j 967
KGY= 968
cmE= 969
dmFsdWU= 970
Y2hv 971
MTg= 972
dXR0b24= 973
b3Nl 974
MTQ= 975
ICE9 976
YXRlcg== 977
w6k= 978
cmVhdGU= 979
b2xs 980
cG9z 981
eWxl 982
bmc= 983
QUw= 984
dXNpbmc= 985
YW1lcw== 986
IHsNCg== 987
YXRlcw== 988
ZWx5 989
IHdvcms= 990
IGVt 991
aW5hbA== 992
IHNw 993
IHdoZW4= 994
LnNldA== 995
ICAgICAg 996
KToK 997
dG8= 998
cXVpcmU= 999
aW5kb3c= 1000
bGVtZW50 1001
cGVjdA== 1002
YXNo 1003
W2k= 1004
IHVzZQ== 1005
LkY= 1006
cGVj 1007
IGFk 1008
b3Zl 1009
Y2VwdGlvbg== 1010
ZW5ndGg= 1011
aW5jbHVkZQ== 1012
YWRlcg== 1013
ICAgICAgICAgICAgICAgICAgICAgICAgICAg 1014
YXR1cw== 1015
VGg= 1016
aXRsZQ== 1017
cml0 1018
dm9pZA== 1019
KCku 1020
KAo= 1021
IG9mZg== 1022
IG90aGVy 1023
ICYm 1024
JzsK 1025
bXM= 1026
IGJlZW4= 1027
IHRl 1028
bWw= 1029
Y28= 1030
bmM= 1031
MTM= 1032
ZXJ2aWNl 1033
ICU= 1034
KioK 1035
YW5u 1036
YWRl 1037
CgoKCg== 1038
bG9jaw== 1039
Y29uc3Q= 1040
MTAw 1041
cG9uc2U= 1042
IHN1cA== 1043
Kys= 1044
ZGF0ZQ== 1045
IGFjYw== 1046
IGhhZA== 1047
IGJ1 1048
MjAw 1049
IFJl 1050
IHdlcmU= 1051
IGZpbGU= 1052
IHdvdWxk 1053
IOKAnA== 1054
dmVu 1055
aXNz 1056
IG91cg== 1057
Y2xhc3M= 1058
cmF3 1059
IHllYXI= 1060
RGF0YQ== 1061
IHZhbA== 1062
IHNvbWU= 1063
ZnRlcg== 1064
eXM= 1065
IC8vLw== 1066
cm91bmQ= 1067
dmlldw== 1068
IHBl 1069
IHRoZXJl 1070
IHNhaWQ= 1071
ZHU= 1072
b2Y= 1073
bGluZQ== 1074
Lyo= 1075
ZHVjdA== 1076
IGhlcg== 1077
ICAgICAgICAgICAgIA== 1078
UmVz 1079
IGNv 1080
IGNvbW0= 1081
aXNl 1082
bWlu 1083
ICAgIAo= 1084
I2luY2x1ZGU= 1085
ZXRob2Q= 1086
LlA= 1087
dXRl 1088
IGFzcw== 1089
SW50 1090
YXNr 1091
bG9j 1092
IGxpa2U= 1093
b2R5 1094
IGxldA== 1095
bG9hZA== 1096
IGFt 1097
cm9s 1098
IGdy 1099
eXA= 1100
IGFsc28= 1101
IEl0 1102
dXJs 1103
aWZpYw== 1104
b3Jz 1105
X1A= 1106
X24= 1107
aWdo 1108
IHRoYW4= 1109
Q29t 1110
QU4= 1111
VUw= 1112
YXRpbmc= 1113
MTc= 1114
IFRoaXM= 1115
cmVm 1116
X1M= 1117
IHN0YXRpYw== 1118
cm9sbA== 1119
IGp1c3Q= 1120
IHJlc3VsdA== 1121
aWFu 1122
aWR0aA== 1123
IHRoZW0= 1124
KSk7Cg== 1125
ZGVy 1126
cmVhaw== 1127
Q29u 1128
Oi8v 1129
dWxl 1130
Li4u 1131
YXJjaA== 1132
ZW1lbnQ= 1133
IDw8 1134
NTA= 1135
dXNo 1136
ZW5zZQ== 1137
YXJy 1138
IGludG8= 1139
Y2Vzcw== 1140
YW1w 1141
aWVk 1142
dW1lbnQ= 1143
IFw= 1144
XSw= 1145
d28= 1146
YWxz 1147
IHdoYXQ= 1148
YW5j 1149
VmFsdWU= 1150
PSc= 1151
b2x1bQ== 1152
IHBvcw== 1153
YWdlcw== 1154
YXllcg== 1155
IHNj 1156
dWVz 1157
IikK 1158
X1Q= 1159
IGxpc3Q= 1160
KHM= 1161
IGNhc2U= 1162
Q2g= 1163
CQkJCQk= 1164
Ly8vLy8vLy8= 1165
cG9uZW50 1166
IHo= 1167
IGtu 1168
bGV0 1169
REU= 1170
cmVk 1171
IGZl 1172
IH0sCg== 1173
ICw= 1174
KHQ= 1175
IGZpcnN0 1176
Jyk7Cg== 1177
d29yZA== 1178
IGltcG9ydA== 1179
IGFjdA== 1180
IGNoYXI= 1181
Q1Q= 1182
IFRy 1183
b3BsZQ== 1184
PXs= 1185
CWY= 1186
MjQ= 1187
aWVudA== 1188
Y2VudA== 1189
Lmo= 1190
bGVjdGlvbg== 1191
KSkK 1192
IG9ubHk= 1193
IHByaW50 1194
bWVy 1195
Llc= 1196
b2Nr 1197
IC0t 1198
VGV4dA== 1199
IG9w 1200
YW5r 1201
IGl0cw== 1202
IGJhY2s= 1203
WyI= 1204
IG5lZWQ= 1205
IGNs 1206
IHN1Yg== 1207
IGxh 1208
KCg= 1209
LiI= 1210
T2JqZWN0 1211
IHN0YXJ0 1212
ZmlsZQ== 1213
KHNlbGY= 1214
bmVy 1215
ZXk= 1216
IHVzZXI= 1217
IGVudA== 1218
IENvbQ== 1219
aXRz 1220
IENvbg== 1221
b3VibGU= 1222
b3dlcg== 1223
aXRlbQ== 1224
dmVyeQ== 1225
IFdl 1226
NjQ= 1227
bGljaw== 1228
IFE= 1229
cGhw 1230
dHRw 1231
Jzo= 1232
aWNz 1233
IHVuZGVy 1234
ICoK 1235
Lkw= 1236
KTs= 1237
aWNlcw== 1238
IHJlZw== 1239
KQ0K 1240
CXB1YmxpYw== 1241
U1M= 1242
IHRoZW4= 1243
cmVhdA== 1244
aW91cw== 1245
Lkc= 1246
ZWs= 1247
aXJlY3Q= 1248
aGVjaw== 1249
Y3JpcHQ= 1250
bmluZw== 1251
IFVu 1252
IG1heQ== 1253
IFdo 1254
Qm8= 1255
SXRlbQ== 1256
c3RydWN0 1257
LnN0 1258
cmVhbQ== 1259
aWJsZQ== 1260
bG9hdA== 1261
IG9yZw== 1262
dW5k 1263
c3Vt 1264
X2lu 1265
Li4v 1266
X00= 1267
IGhvdw== 1268
cml0ZQ== 1269
Jwo= 1270
VG8= 1271
NDA= 1272
d3c= 1273
IHBlb3BsZQ== 1274
aW5kZXg= 1275
Lm4= 1276
aHR0cA== 1277
KG0= 1278
ZWN0b3I= 1279
IGluZA== 1280
IGphdg== 1281
XSwK 1282
IEhl 1283
X3N0 1284
ZnVs 1285
b2xl 1286
KXsK 1287
IHNob3VsZA== 1288
b3B5 1289
ZWxw 1290
aWVy 1291
X25hbWU= 1292
ZXJzb24= 1293
SU9O 1294
b3Rl 1295
IHRlc3Q= 1296
IGJldA== 1297
cnJvcg== 1298
dWxhcg== 1299
44A= 1300
INA= 1301
YnM= 1302
dGluZw== 1303
IG1ha2U= 1304
VHI= 1305
IGFmdGVy 1306
YXJnZXQ= 1307
Uk8= 1308
b2x1bW4= 1309
cmM= 1310
X3Jl 1311
ZGVmaW5l 1312
MjI= 1313
IHJpZ2h0 1314
cmlnaHQ= 1315
ZGF5 1316
IGxvbmc= 1317
W10= 1318
KHA= 1319
dGQ= 1320
Y29uZA== 1321
IFBybw== 1322
IHJlbQ== 1323
cHRpb25z 1324
dmlk 1325
Lmc= 1326
IGV4dA== 1327
IF9f 1328
JykK 1329
cGFjZQ== 1330
bXA= 1331
IG1pbg== 1332
c3RhbmNl 1333
YWly 1334
YWN0aW9u 1335
d2g= 1336
dHlwZQ== 1337
dXRpbA== 1338
YWl0 1339
PD8= 1340
SUM= 1341
dGV4dA== 1342
IHBo 1343
IGZs 1344
Lk0= 1345
Y2Nlc3M= 1346
YnI= 1347
Zm9yZQ== 1348
ZXJzaW9u 1349
KSwK 1350
LnJl 1351
YXRlZw== 1352
IGxvYw== 1353
aW5z 1354
LXM= 1355
dHJpYg== 1356
IEludA== 1357
IGFycmF5 1358
LCI= 1359
UHJv 1360
KGM= 1361
ZXNzaW9u 1362
PgoK 1363
IHNoZQ== 1364
Il0= 1365
YXBo 1366
IGV4cA== 1367
ZXJ0eQ== 1368
IFNl 1369
IHBhcg== 1370
dW5j 1371
RVQ= 1372
IHJlYWQ= 1373
cHJpbnQ= 1374
IHJlbA== 1375
IGZvcm0= 1376
IGRy 1377
RXhjZXB0aW9u 1378
aW5wdXQ= 1379
IHRyYW5z 1380
IyMjIyMjIyM= 1381
b3JkZXI= 1382
Qnk= 1383
IGF3 1384
aXRpZXM= 1385
dWZm 1386
cGxheQ== 1387
LmFkZA== 1388
IOKAkw== 1389
IHdhbnQ= 1390
IGNvbXA= 1391
bWVudHM= 1392
IHx8 1393
YXo= 1394
YmU= 1395
IG51bWJlcg== 1396
IHJlcXVpcmU= 1397
IEV4 1398
NjA= 1399
IGNvbA== 1400
IGtleQ== 1401
ZW1iZXI= 1402
IHR3bw== 1403
IHNpemU= 1404
IHdoZXJl 1405
VVQ= 1406
cmVzdWx0 1407
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIA== 1408
b3VnaA== 1409
b3JsZA== 1410
b29k 1411
dWNo 1412
YXRpdmU= 1413
Z2Vy 1414
YXJlbnQ= 1415
IC8q 1416
IGFyZw== 1417
IHdoaWxl 1418
MjM= 1419
KHRoaXM= 1420
IHJlYw== 1421
IGRpZg== 1422
U3RhdGU= 1423
IHNwZWM= 1424
cmlkZQ== 1425
X0Y= 1426
IGxvb2s= 1427
QU0= 1428
aWxpdHk= 1429
ZXRlcg== 1430
4oCZdA== 1431
CgoK 1432
YXlvdXQ= 1433
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0= 1434
YWdlcg== 1435
IGNvdWxk 1436
IGJy 1437
ZW5kcw== 1438
dXJlcw== 1439
IGtub3c= 1440
ZXRz 1441
IElm 1442
IFNo 1443
Lnc= 1444
YmFjaw== 1445
IHNlcg== 1446
ICs9 1447
IGZy 1448
KCkpOwo= 1449
IGhhbmQ= 1450
SW5k 1451
VUxM 1452
SW0= 1453
KCk7Cgo= 1454
IG1vc3Q= 1455
IHRyeQ== 1456
IG5vdw== 1457
cm91Z2g= 1458
Pg0K 1459
YWNrYWdl 1460
IGhpbQ== 1461
Ll8= 1462
aWZ5 1463
IGJyZWFr 1464
ICk7Cg== 1465
cmVu 1466
I2RlZmluZQ== 1467
aXR0 1468
IGFw 1469
CWM= 1470
KG4= 1471
IFlvdQ== 1472
OgoK 1473
LW0= 1474
IGV2ZXJ5 1475
dXN0b20= 1476
bGllbnQ= 1477
b2N1bWVudA== 1478
Y3JpcHRpb24= 1479
RXJyb3I= 1480
LWI= 1481
0L4= 1482
XVs= 1483
OTk= 1484
dHJhbnM= 1485
IHBvaW50 1486
IHN0ZA== 1487
IGZpbA== 1488
VGltZQ== 1489
ODA= 1490
IG1vZA== 1491
IC0+ 1492
IGVycm9y 1493
YWg= 1494
IHRleHQ= 1495
cm9sbGVy 1496
bG9zZQ== 1497
cWw= 1498
IHBvbA== 1499
Pjwv 1500
IHNob3c= 1501
VXNlcg== 1502
YXNlZA== 1503
IHsKCg== 1504
IGZpbmQ= 1505
0LA= 1506
RUQ= 1507
c3Bhbg== 1508
ZW51 1509
IGN1cnJlbnQ= 1510
IHVzZWQ= 1511
Y2VwdA== 1512
Y2x1ZA== 1513
IHBsYXk= 1514
IGxvZw== 1515
dXRpb24= 1516
Zmw= 1517
IHNlZQ== 1518
aW5kb3dz 1519
IGhlbHA= 1520
IHRoZXNl 1521
IHBhc3M= 1522
IGRvd24= 1523
IGV2ZW4= 1524
YXNvbg== 1525
dWlsZA== 1526
ZnJvbQ== 1527
KGQ= 1528
IGJs 1529
bGFiZWw= 1530
ZWxzZQ== 1531
0LU= 1532
ICgh 1533
aXplZA== 1534
KCks 1535
IG9i 1536
IGl0ZW0= 1537
dW1w 1538
VVI= 1539
b3Ju 1540
IGRvbg== 1541
U2U= 1542
bWFu 1543
Mjc= 1544
YW1wbGU= 1545
dG4= 1546
PT09PT09PT09PT09PT09PQ== 1547
SGU= 1548
Z3JhbQ== 1549
IGRpZA== 1550
d24= 1551
X2g= 1552
aXZlcg== 1553
IHNt 1554
IHRocm91Z2g= 1555
IEFu 1556
Y2hl 1557
IGludg== 1558
b3VzZQ== 1559
IGVz 1560
IE5ldw== 1561
ZXhwb3J0 1562
bWFyeQ== 1563
dXRv 1564
bGVy 1565
IGxhc3Q= 1566
IGV2ZW50 1567
dHJ5 1568
77w= 1569
aWx5 1570
aWduZWQ= 1571
aW5lcw== 1572
b2xsb3c= 1573
aWNlbnNl 1574
c29sZQ== 1575
bGVhcg== 1576
KGludA== 1577
IGFnYWlu 1578
IGhpZ2g= 1579
aHRtbA== 1580
SW5kZXg= 1581
dXRob3I= 1582
IC8qKgo= 1583
IGxpbmU= 1584
RXZlbnQ= 1585
X0Q= 1586
IGRvZXM= 1587
aXRpYWw= 1588
IGNy 1589
YXJz 1590
Mjg= 1591
IHRlbQ== 1592
Y2F1c2U= 1593
ZmFjZQ== 1594
IGA= 1595
X0E= 1596
QnV0dG9u 1597
YXR1cmU= 1598
ZWN0ZWQ= 1599
RVM= 1600
aXN0ZXI= 1601
CQo= 1602
IGJlZm9yZQ== 1603
YWxl 1604
b3RoZXI= 1605
IGJlY2F1c2U= 1606
cm9pZA== 1607
IGVk 1608
aWs= 1609
cmVn 1610
IERl 1611
IGRpc3Q= 1612
fSwK 1613
IHN0YXRl 1614
IGNvbnM= 1615
cmludA== 1616
YXR0 1617
IGhlcmU= 1618
aW5lZA== 1619
IGZpbmFs 1620
ICIi 1621
S2V5 1622
TE8= 1623
IGRlbA== 1624
cHR5 1625
dGhpbmc= 1626
MjY= 1627
IEFuZA== 1628
IHJ1bg== 1629
IFg= 1630
eW0= 1631
LmFwcA== 1632
IHZlcnk= 1633
Y2Vz 1634
X04= 1635
YXJlZA== 1636
d2FyZA== 1637
bGlzdA== 1638
aXRlZA== 1639
b2xvZw== 1640
aXRjaA== 1641
Qm94 1642
aWZl 1643
MzM= 1644
IGFj 1645
IG1vZGVs 1646
IG1vbg== 1647
IHdheQ== 1648
bGV0ZQ== 1649
IGNhbGw= 1650
IGF0dA== 1651
IGNhbA== 1652
dmVydA== 1653
IGRlYw== 1654
bGVhc2U= 1655
b3Vu 1656
IH0pOwo= 1657
ZnI= 1658
Zm9ybWF0aW9u 1659
ZXRhaWw= 1660
IG51bQ== 1661
YWo= 1662
cXVlcnk= 1663
IHdlbGw= 1664
IG9iamVjdA== 1665
IEFz 1666
IHllYXJz 1667
Q29sb3I= 1668
SVM= 1669
IGRlZmF1bHQ= 1670
V2g= 1671
IGlucw== 1672
YWludA== 1673
IGphdmE= 1674
IHNpbQ== 1675
IEFy 1676
bW9u 1677
dGls 1678
KCk7DQo= 1679
KTo= 1680
U2V0 1681
Mjk= 1682
YXR0ZXI= 1683
IHZpZXc= 1684
IHByZXM= 1685
YXJyYXk= 1686
V2U= 1687
QXQ= 1688
IGJlbA== 1689
IG1hbnk= 1690
MjE= 1691
TWFu 1692
ZW5kZXI= 1693
IGJlaW5n 1694
IGdvb2Q= 1695
CQkJCQkJ 1696
YXRpb25hbA== 1697
d2FyZQ== 1698
LmxvZw== 1699
ew0K 1700
IHVzaW5n 1701
X0I= 1702
IDo9 1703
X3c= 1704
aXN0cw== 1705
bGlzaA== 1706
IHN0dWQ= 1707
IEFs 1708
IGd1 1709
Y29uZmln 1710
dXJpbmc= 1711
dGltZQ== 1712
b2tlbg== 1713
YW1lc3BhY2U= 1714
IHJlcXVlc3Q= 1715
IGNoaWxk 1716
IMM= 1717
bG9i 1718
IHBhcmFt 1719
IH0NCg== 1720
MDE= 1721
IGVjaG8= 1722
ZnVuY3Rpb24= 1723
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKio= 1724
cHM= 1725
RWxlbWVudA== 1726
YWxr 1727
bGljYXRpb24= 1728
Ynk= 1729
U2l6ZQ== 1730
cmF3aW5n 1731
IHBlcnNvbg== 1732
ICAgICAgICAgICAgICAgICA= 1733
XG4= 1734
b2JqZWN0 1735
aW5jZQ== 1736
RW4= 1737
RmlsZQ== 1738
dWY= 1739
ZmZlY3Q= 1740
QUM= 1741
IHN0eWxl 1742
c3VtbWFyeQ== 1743
IHF1ZQ== 1744
X3I= 1745
ICgk 1746
TW9kZWw= 1747
aWRlbnQ= 1748
IG1ldGhvZA== 1749
SUw= 1750
b3R0 1751
bGVzcw== 1752
SU5H 1753
ICgp 1754
IGV4cGVjdA== 1755
eW5j 1756
cGFja2FnZQ== 1757
MzU= 1758
dXJz 1759
IHByb3Q= 1760
Li8= 1761
cHJl 1762
ICkK 1763
bWE= 1764
IHN1cg== 1765
IGZvdW5k 1766
SW5mbw== 1767
cGFy 1768
aW1lcw== 1769
LmU= 1770
YWlucw== 1771
IHBvc3Q= 1772
LWQ= 1773
NDU= 1774
b2xlYW4= 1775
IHNs 1776
UEU= 1777
IHN1Y2g= 1778
c2VsZWN0 1779
YWluZXI= 1780
IHRoaW5r 1781
IGRpZmZlcg== 1782
LnI= 1783
LyoqCg== 1784
RkY= 1785
b29s 1786
cGxhdGU= 1787
cXVhbA== 1788
IEZvcg== 1789
IG11Y2g= 1790
dWM= 1791
KG5ldw== 1792
b2R1bGU= 1793
IHNvbQ== 1794
IGh0dHA= 1795
IExpc3Q= 1796
IGNvdW50 1797
IGluc3Q= 1798
Y2hhcg== 1799
bWl0 1800
Lmlk 1801
YWtpbmc= 1802
IGdlbmVy 1803
cHg= 1804
dmljZQ== 1805
Mzc= 1806
X2RhdGE= 1807
IE5VTEw= 1808
fQ0K 1809
aWRk 1810
44CC 1811
IG1lZA== 1812
b3Jn 1813
aWRlcg== 1814
YWNoZQ== 1815
d29yaw== 1816
IGNoZWNr 1817
d2Vlbg== 1818
ICgo 1819
dGhl 1820
YW50cw== 1821
Pjw= 1822
LkI= 1823
LWM= 1824
IG9wZW4= 1825
IGVzdA== 1826
ICAgICAgICAK 1827
IG5leHQ= 1828
SU0= 1829
0YI= 1830
T1Q= 1831
w7M= 1832
IGZvbGxvdw== 1833
Y29udGVudA== 1834
ICAgICAgICAgICAg 1835
IGluY2x1ZA== 1836
SEU= 1837
IFJlcw== 1838
IGhyZWY= 1839
0Lg= 1840
IGNhcg== 1841
eXBlcw== 1842
aW1hZ2U= 1843
VW4= 1844
IGJvb2w= 1845
QUQ= 1846
IGdhbWU= 1847
LkZvcm0= 1848
cm93cw== 1849
Ki8= 1850
dmVsb3A= 1851
LkRyYXdpbmc= 1852
IHBhdGg= 1853
aXNpb24= 1854
IGVhY2g= 1855
IFBs 1856
X3R5cGU= 1857
UGF0aA== 1858
bmVjdGlvbg== 1859
IGF2 1860
Jyku 1861
IHN1cHBvcnQ= 1862
RU5U 1863
cmVt 1864
Iiku 1865
IG93bg== 1866
IGNvcg== 1867
Y291bnQ= 1868
bWlzcw== 1869
dWFsbHk= 1870
IG1lbQ== 1871
c3Rk 1872
aWVuY2U= 1873
c2VhcmNo 1874
IgoK 1875
Rm9ybQ== 1876
IHNleA== 1877
ZW5hbWU= 1878
IHNpZ24= 1879
IGV0 1880
ICAgICAgICAgIA== 1881
Jywn 1882
IEFwcA== 1883
IHRob3Nl 1884
b2Zm 1885
IGVycg== 1886
IHN5c3RlbQ== 1887
IGJlc3Q= 1888
Y29kZQ== 1889
IHNhbWU= 1890
IGRp 1891
dXNz 1892
IGNyZWF0ZQ== 1893
YXRoZXI= 1894
QXJyYXk= 1895
Lmlu 1896
ZmU= 1897
U2VydmljZQ== 1898
VU4= 1899
YXRz 1900
IFo= 1901
YWx0aA== 1902
IG1hZGU= 1903
dHJ1ZQ== 1904
QUI= 1905
IG1hcms= 1906
cmlk 1907
aWZpZWQ= 1908
LA0K 1909
eW4= 1910
cHJlc3M= 1911
IGdyb3Vw 1912
IGZpbg== 1913
IExpY2Vuc2U= 1914
RmllbGQ= 1915
ZWdlcg== 1916
IHdvcmxk 1917
aW5lc3M= 1918
dHk= 1919
IHByb2Nlc3M= 1920
KGI= 1921
IGNyZQ== 1922
YXJu 1923
aXZlcw== 1924
IG1haW4= 1925
aWRlbw== 1926
MzY= 1927
X2c= 1928
QUc= 1929
dmFsaWQ= 1930
aW1n 1931
UEk= 1932
IGNvbG9y 1933
IHJlcG9ydA== 1934
IHRha2U= 1935
cmli 1936
T00= 1937
IGRheQ== 1938
UmVxdWVzdA== 1939
IHNr 1940
YmVycw== 1941
CXM= 1942
LkFkZA== 1943
b290 1944
SW1hZ2U= 1945
IGNvbXBsZQ== 1946
b2xsZWN0aW9u 1947
IHRvcA== 1948
IGZyZWU= 1949
QVM= 1950
RGU= 1951
IE9u 1952
SUc= 1953
OTA= 1954
ZXRh 1955
RGF0ZQ== 1956
IGFjdGlvbg== 1957
MzQ= 1958
T3Zlcg== 1959
aXRvcg== 1960
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA= 1961
bm90 1962
IGluZGV4 1963
aGVy 1964
aWNvbg== 1965
T24= 1966
Ow0KDQo= 1967
aXZpdHk= 1968
bWFuZA== 1969
LldpbmRvd3M= 1970
T0w= 1971
IHJlYWw= 1972
IG1heA== 1973
bGFuZA== 1974
Li4uLg== 1975
cmFwaA== 1976
IGJ1aWxk 1977
bGVn 1978
YXNzd29yZA== 1979
PwoK 1980
4oCm 1981
b29r 1982
dWNr 1983
IG1lc3NhZ2U= 1984
dGVzdA== 1985
aXZlcnM= 1986
Mzg= 1987
IGlucHV0 1988
IGFydA== 1989
IGJldHdlZW4= 1990
R2V0 1991
ZW50ZXI= 1992
Z3JvdW5k 1993
ZW5l 1994
w6E= 1995
Lmxlbmd0aA== 1996
Tm9kZQ== 1997
KGk= 1998
Q2xhc3M= 1999
Zm9y 2000
IOKAlA== 2001
dGVu 2002
b2lu 2003
IGtl 2004
dWk= 2005
IElO 2006
IHRhYmxl 2007
c3Vi 2008
IExl 2009
IGhlYWQ= 2010
IG11c3Q= 2011
Ly8vLy8vLy8vLy8vLy8vLw== 2012
LnV0aWw= 2013
Q29udGV4dA== 2014
IG9yZGVy 2015
IG1vdg== 2016
b3Zlcg== 2017
IGNvbnRpbg== 2018
IHNheQ== 2019
c3RhdGlj 2020
LlRleHQ= 2021
IGNsYXNzTmFtZQ== 2022
cGFueQ== 2023
IHRlcg== 2024
aGVhZA== 2025
cmc= 2026
IHByb2R1Y3Q= 2027
VGhpcw== 2028
LuKAnQ== 2029
IEJ1dA== 2030
NzA= 2031
bG95 2032
IGRvdWJsZQ== 2033
c2c= 2034
IHBsYWNl 2035
Lng= 2036
bWVzc2FnZQ== 2037
IGluZm9ybWF0aW9u 2038
cHJpdmF0ZQ== 2039
IG9wZXI= 2040
Y2Vk 2041
ZGI= 2042
Ij48Lw== 2043
UGFyYW0= 2044
aWNsZQ== 2045
IHdlZWs= 2046
IHByb3A= 2047
dGFibGU= 2048
aWRnZXQ= 2049
cGxhY2U= 2050
UHJvcA== 2051
IEFsbA== 2052
ZWxz 2053
Ym94 2054
LgoKCgo= 2055
LlI= 2056
IFRv 2057
aXRlcg== 2058
U2g= 2059
dXJhdGlvbg== 2060
b2xkZXI= 2061
X2xpc3Q= 2062
Y29tZQ== 2063
IHN3 2064
aXphdGlvbg== 2065
CWZvcg== 2066
Ymw= 2067
IHByb2dyYW0= 2068
KGU= 2069
YXBl 2070
Y2hlY2s= 2071
LkZvcm1z 2072
IHVuZA== 2073
YXRlZ29yeQ== 2074
NzU= 2075
YWdz 2076
IHJlc3BvbnNl 2077
VVM= 2078
cmVxdWVzdA== 2079
IHN0cnVjdA== 2080
ZXNjcmlwdGlvbg== 2081
IGNvZGU= 2082
X0g= 2083
dWZmZXI= 2084
IHdpdGhvdXQ= 2085
bG9iYWw= 2086
TWFuYWdlcg== 2087
aWx0ZXI= 2088
UE8= 2089
CXRoaXM= 2090
b3B0aW9u 2091
IHNvbA== 2092
ID09PQ== 2093
YWtlcw== 2094
Q29udHJvbGxlcg== 2095
NDQ= 2096
TWVzc2FnZQ== 2097
IHJlZg== 2098
ZXZlcg== 2099
IFNv 2100
YWluaW5n 2101
LmFwcGVuZA== 2102
IHN0aWxs 2103
IHByb3ZpZA== 2104
IGFzc2VydA== 2105
bWVk 2106
IGNhcA== 2107
dXNpbmVzcw== 2108
IHJlcA== 2109
dGluZ3M= 2110
dmVk 2111
Lk4= 2112
YXBp 2113
T0Q= 2114
IGZpZWxk 2115
aXZlbg== 2116
b3Rv 2117
4oCc 2118
Y29s 2119
KHg= 2120
Z2h0 2121
UmVzdWx0 2122
Q29kZQ== 2123
Lmlz 2124
bGluaw== 2125
IGNvdXI= 2126
QW4= 2127
IHRlYW0= 2128
CWludA== 2129
aWZ0 2130
NTU= 2131
IHNlY29uZA== 2132
IGdvaW5n 2133
IHJhbmdl 2134
X0U= 2135
bmVzcw== 2136
Mzk= 2137
IGZhbQ== 2138
IG5pbA== 2139
IENvbnQ= 2140
YWlsYWJsZQ== 2141
dXRlcw== 2142
YXRhYg== 2143
IGZhY3Q= 2144
IHZpcw== 2145
KCY= 2146
IEFO 2147
MzE= 2148
QWw= 2149
dGl0bGU= 2150
IGFuZHJvaWQ= 2151
Q0U= 2152
XCI= 2153
aXJ0 2154
IHdyaXQ= 2155
0L0= 2156
CW0= 2157
ZnR3YXJl 2158
b25k 2159
IHJldA== 2160
b3NpdGlvbg== 2161
IGhvbWU= 2162
IGxlZnQ= 2163
YXJncw== 2164
bWVyaWM= 2165
NDg= 2166
IGRpcmVjdA== 2167
b2Np 2168
UGw= 2169
QXM= 2170
cmV0 2171
YWRv 2172
T2Y= 2173
Y2hu 2174
IEdldA== 2175
ZWU= 2176
cm9zcw== 2177
KCk7 2178
X19fXw== 2179
LnBo 2180
SXQ= 2181
b3V0ZQ== 2182
IGV4cGVy 2183
Y2hvb2w= 2184
d3d3 2185
fSw= 2186
IGFsbG93 2187
IMI= 2188
KCkp 2189
c2l6ZQ== 2190
aXNt 2191
YWk= 2192
dHJhY3Q= 2193
YW5l 2194
Li4uCgo= 2195
Y29udGV4dA== 2196
IGJlZw== 2197
Q0g= 2198
IHBhZ2U= 2199
aGlw 2200
bm8= 2201
Y29yZQ== 2202
c3A= 2203
IGRpZmZlcmVudA== 2204
aWFibGU= 2205
IE1l 2206
X0lO 2207
YnV0dG9u 2208
IElz 2209
ZXJ2aWNlcw== 2210
IGNh 2211
IGFyb3VuZA== 2212
QXBw 2213
cmF0aW9u 2214
IHJlY2U= 2215
IHJlYWxseQ== 2216
IGltYWdl 2217
IHRhcmdldA== 2218
IGRlcA== 2219
b3B5cmlnaHQ= 2220
dHJh 2221
aW5nbGU= 2222
aXRhbA== 2223
TGF5b3V0 2224
IGJvdGg= 2225
T3ZlcnJpZGU= 2226
YXJt 2227
PT4= 2228
YXRlcmlhbA== 2229
aWxlZA== 2230
IHB1dA== 2231
UXU= 2232
0YA= 2233
dW5n 2234
bWFw 2235
CQkJCQkJCQk= 2236
IGxldmVs 2237
Q29tcG9uZW50 2238
Ym9vaw== 2239
Y3JlZW4= 2240
X1JF 2241
IGNvbmZpZw== 2242
44E= 2243
T3I= 2244
LmRhdGE= 2245
IGRvY3VtZW50 2246
Iiwi 2247
dHJpYnV0ZQ== 2248
dXg= 2249
TG9n 2250
ZmVyZW5jZQ== 2251
cG9zdA== 2252
X2U= 2253
IGxvY2Fs 2254
YW5kb20= 2255
YXNzZXJ0 2256
VmFs 2257
bGVjdGVk 2258
aW5h 2259
YXRhYmFzZQ== 2260
QWRk 2261
IGNvbnRlbnQ= 2262
LnByaW50 2263
c2lnbmVk 2264
cmlj 2265
LiIKCg== 2266
IGZh 2267
IQoK 2268
LWY= 2269
aXZlZA== 2270
IHF1ZXN0 2271
LmV4 2272
IGZsb2F0 2273
IGRldmVsb3A= 2274
0L7Q 2275
TWFw 2276
YWRpbmc= 2277
IHBvc3M= 2278
VUU= 2279
bmFtZXNwYWNl 2280
X08= 2281
CWI= 2282
LkdldA== 2283
Pig= 2284
anNvbg== 2285
ZXRhaWxz 2286
NjY= 2287
IHRvbw== 2288
IGV4dGVuZHM= 2289
IE5vbmU= 2290
IGZvcmU= 2291
KFN0cmluZw== 2292
Zm9ybWF0 2293
IGdyZWF0 2294
aW50ZXI= 2295
Y2FsZQ== 2296
0YE= 2297
cm9u 2298
aXZpbmc= 2299
RW50 2300
ZW5jeQ== 2301
eHQ= 2302
b3k= 2303
MDU= 2304
IG1vbnRo 2305
IGhhcHA= 2306
IHN1cGVy 2307
YmFy 2308
ZGVmYXVsdA== 2309
X2Rl 2310
b3Jkcw== 2311
bG4= 2312
KHsK 2313
IEluZA== 2314
YXNlcw== 2315
IHRpdGxl 2316
IGNvbnRleHQ= 2317
MDg= 2318
b2g= 2319
LXA= 2320
RW0= 2321
IG1ldA== 2322
VGVzdA== 2323
IGxpZmU= 2324
X3Y= 2325
IFVT 2326
VUk= 2327
b2NhdGlvbg== 2328
bWQ= 2329
IFsK 2330
IF0= 2331
c3c= 2332
IGluY3Jl 2333
c2NyaXB0 2334
ZW50aWFs 2335
d2F5cw== 2336
LmRl 2337
IHNyYw== 2338
IGNhdGNo 2339
IEFtZXJpYw== 2340
Ly8K 2341
ICAgICAgICAgICAgICA= 2342
IHBheQ== 2343
cGxpdA== 2344
4oCU 2345
IGNvdW4= 2346
b2Jq 2347
LnBocA== 2348
IGNoYW5nZQ== 2349
ZXRoaW5n 2350
J3Jl 2351
YXN0ZXI= 2352
bG9z 2353
bGF0aW9u 2354
ICAK 2355
TGU= 2356
w6Q= 2357
KHs= 2358
cmVhZHk= 2359
IE5v 2360
IHBvc2l0aW9u 2361
IG9sZA== 2362
IGJvb2s= 2363
YWJsZWQ= 2364
YnVn 2365
MjAy 2366
SGFuZA== 2367
fTsKCg== 2368
aXNwbGF5 2369
YXZpbmc= 2370
MDQ= 2371
IGdvdmVy 2372
IHZlcnNpb24= 2373
U3lzdGVt 2374
bmVjdA== 2375
cmVzcG9uc2U= 2376
U3R5bGU= 2377
VXA= 2378
YW5ndQ== 2379
IHRocmVl 2380
aW5pdA== 2381
ZXJv 2382
IGxhdw== 2383
ZW5kaWY= 2384
IGJhc2U= 2385
ZW1haWw= 2386
KGw= 2387
X1Y= 2388
IGNvbmY= 2389
QVRF 2390
IGR1cmluZw== 2391
dGVz 2392
IGNvbnNvbGU= 2393
IFBy 2394
IHNwZQ== 2395
dmVz 2396
NjU= 2397
cGF0aA== 2398
aWFsb2c= 2399
ZGl0aW9u 2400
X3Rv 2401
YXJkcw== 2402
IGFnYWluc3Q= 2403
ZXR3b3Jr 2404
IFBo 2405
X0w= 2406
Y3Vy 2407
aW1pdA== 2408
V2l0aA== 2409
IHBvd2Vy 2410
aXVt 2411
JzsKCg== 2412
IHdvbQ== 2413
bGVmdA== 2414
b3VyY2Vz 2415
YXRyaQ== 2416
IElt 2417
IE1hbg== 2418
b3J0aA== 2419
JHs= 2420
ODg= 2421
cXVhbHM= 2422
ZXNl 2423
X3NpemU= 2424
IGlzcw== 2425
b3RhbA== 2426
LWc= 2427
aXF1ZQ== 2428
cmFtZQ== 2429
IHdpZHRo 2430
ZXJn 2431
KSg= 2432
aXR0bGU= 2433
VFI= 2434
IFRoZXk= 2435
ZW5jZXM= 2436
MDI= 2437
cmw= 2438
b25z 2439
IGxhYmVs 2440
Lnk= 2441
LXQ= 2442
dXBkYXRl 2443
YW5lbA== 2444
c2M= 2445
LnRv 2446
IHByb2plY3Q= 2447
w7w= 2448
IGVsZW1lbnQ= 2449
IHN1Y2Nlc3M= 2450
CQkK 2451
LnNo 2452
cmFt 2453
Y2hlZA== 2454
KCkpCg== 2455
ICgK 2456
IGRhdGU= 2457
IHRvdA== 2458
X1NU 2459
QWxs 2460
aWZpY2F0aW9u 2461
CXZhcg== 2462
IHRyaQ== 2463
Y2hlbQ== 2464
bXk= 2465
IGJpZw== 2466
IEFk 2467
IEF0 2468
b3Rz 2469
bnVt 2470
QWN0 2471
IG1hcA== 2472
ZXJh 2473
Y29wZQ== 2474
LiQ= 2475
LOKAnQ== 2476
IHBvcA== 2477
IGZldw== 2478
IGxlbg== 2479
dWlk 2480
ZXRlcnM= 2481
dWxlcw== 2482
w60= 2483
c291cmNl 2484
aHR0cHM= 2485
IGRlbQ== 2486
IGVhcg== 2487
IyMjIyMjIyMjIyMjIyMjIw== 2488
IG1hdGNo 2489
b3JpZXM= 2490
NDk= 2491
YWNlcw== 2492
IENs 2493
IG5vZGU= 2494
Nzg= 2495
aXJj 2496
bG9jYWw= 2497
dW5pdHk= 2498
fTsK 2499
IGFub3RoZXI= 2500
PDw= 2501
b2dsZQ== 2502
IHNpdA== 2503
ZXdvcms= 2504
VEU= 2505
Lkk= 2506
TlM= 2507
b2xvZ3k= 2508
b3VnaHQ= 2509
LkNvbnQ= 2510
Pj4= 2511
IGNhcmU= 2512
c3RhdGU= 2513
CXByaXZhdGU= 2514
IGVmZmVjdA== 2515
Kysp 2516
X2ZpbGU= 2517
ZW5kaW5n 2518
TGluZQ== 2519
Rm9y 2520
aW9y 2521
IFNj 2522
IGZ1bg== 2523
LlNpemU= 2524
CWVsc2U= 2525
XSk= 2526
c3RhcnQ= 2527
dmlvdXM= 2528
IH0s 2529
b3Vycw== 2530
IGxlZw== 2531
IHNlcnZpY2U= 2532
IHNpbmNl 2533
aXJvbg== 2534
TGFiZWw= 2535
IG5vbg== 2536
IGxvcw== 2537
aWN0aW9u 2538
IGZ1bGw= 2539
YWN0ZXI= 2540
Ym9hcmQ= 2541
Z3Jlc3M= 2542
IHR1cm4= 2543
aXRoZXI= 2544
MDk= 2545
LnNpemU= 2546
IGJvZHk= 2547
cmVzaA== 2548
ZXR1cm4= 2549
MTk5 2550
KF8= 2551
eWxlcw== 2552
b3JtYWw= 2553
cGk= 2554
IHNvbWV0aGluZw== 2555
IS0t 2556
dWludA== 2557
IHByb2R1 2558
IHN0YW5k 2559
IHByb2JsZQ== 2560
IGF2YWlsYWJsZQ== 2561
bXQ= 2562
IEJs 2563
IC4uLg== 2564
IGJsb2Nr 2565
SW5wdXQ= 2566
IGtlZXA= 2567
Q291bnQ= 2568
b3Blbg== 2569
IFsn 2570
IHRocm93 2571
dWlsZGVy 2572
QWN0aW9u 2573
IHRoaW5ncw== 2574
VHJ1ZQ== 2575
IHVybA== 2576
IEJv 2577
cHJpbnRm 2578
IHJlZA== 2579
anM= 2580
LmNyZWF0ZQ== 2581
IE9y 2582
U3RhdHVz 2583
SW5zdGFuY2U= 2584
IGNvbnRyb2w= 2585
IGNvbWU= 2586
IGN1c3RvbQ== 2587
bG9jYXRpb24= 2588
MDc= 2589
bW9kZWw= 2590
IA0K 2591
IHNvdXJjZQ== 2592
IGVhcw== 2593
Lm91dA== 2594
XQoK 2595
b25leQ== 2596
IGF3YWl0 2597
IHBhcnRpYw== 2598
QVA= 2599
dWJsaXNo 2600
b2Rlcw== 2601
X3Bybw== 2602
cGx5 2603
cml0ZXI= 2604
IHByb3Y= 2605
IG1pbGw= 2606
SFQ= 2607
XSkK 2608
IGNoYW5n 2609
IGFzaw== 2610
ICAgICAgICAgICAgICAgICAgICAg 2611
IG91dHB1dA== 2612
IGVtYWls 2613
Njg= 2614
LnB1c2g= 2615
IH0NCg0K 2616
aW5hdGlvbg== 2617
NDc= 2618
YXRyaXg= 2619
VGFibGU= 2620
dWNjZXNz 2621
XSk7Cg== 2622
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg 2623
IGRpc2M= 2624
KFs= 2625
IGJ1c2luZXNz 2626
aGVpZ2h0 2627
Lmh0bWw= 2628
dGE= 2629
ZmllbGQ= 2630
IHJlcXVpcmVk 2631
X1I= 2632
IGdvdmVybg== 2633
fQ0KDQo= 2634
bGV4 2635
NTAw 2636
Liw= 2637
IFNldA== 2638
dXJjaA== 2639
Ly8v 2640
dHM= 2641
YWY= 2642
IG1pZ2h0 2643
aXN0b3J5 2644
U3Ry 2645
IG5ldmVy 2646
UmVzcG9uc2U= 2647
YXJzZQ== 2648
YWRh 2649
IEhvdw== 2650
ICop 2651
IDs= 2652
IGhhcmQ= 2653
QWQ= 2654
IGludGVybg== 2655
dXNlZA== 2656
KGRhdGE= 2657
bW9k 2658
YW5uZWw= 2659
IG5w 2660
dWdn 2661
IC8+Cg== 2662
IGNhbGxlZA== 2663
Ym9keQ== 2664
IGNobw== 2665
KHI= 2666
X3NldA== 2667
aXJk 2668
ID49 2669
IH07Cg== 2670
IG9wdGlvbnM= 2671
IEdlbmVy 2672
IGhlaWdodA== 2673
UG9pbnQ= 2674
WW91 2675
ZXR5 2676
Q2xpY2s= 2677
IHNtYWxs 2678
IGlkZQ== 2679
IGFjY2Vzcw== 2680
YW5ndWFnZQ== 2681
IHByb3RlY3RlZA== 2682
IGpvYg== 2683
IFRoZXJl 2684
RGVm 2685
IGFkZHJlc3M= 2686
IHVpbnQ= 2687
Tm90 2688
b28= 2689
YXBz 2690
PGRpdg== 2691
YWluZWQ= 2692
YXR1cg== 2693
IHN1bQ== 2694
LXc= 2695
IERhdGU= 2696
IGxpdHRsZQ== 2697
IGZyaQ== 2698
WVBF 2699
IHBvcnQ= 2700
ZWg= 2701
cHJpbmc= 2702
X3BhdGg= 2703
IHN0YXR1cw== 2704
MDY= 2705
YWlt 2706
Ym9vbA== 2707
IGFwcGU= 2708
IG9z 2709
Lm5hbWU= 2710
ZW5zaW9u 2711
X0c= 2712
IHVwZGF0ZQ== 2713
Q29uZmln 2714
YWZm 2715
RVJS 2716
IDw9 2717
YXRlbHk= 2718
I2lm 2719
dWN0aW9u 2720
OTU= 2721
IFRl 2722
IGxpbms= 2723
IFVzZXI= 2724
LmZpbmQ= 2725
Lm9yZw== 2726
bWU= 2727
IGdpdmVu 2728
T3V0 2729
I2VuZGlm 2730
IGJldHRlcg== 2731
UGFnZQ== 2732
IGZlZWw= 2733
ZW5u 2734
TUw= 2735
IGFscmVhZHk= 2736
IGluY2x1ZGluZw== 2737
b29nbGU= 2738
cnU= 2739
aWNhbGx5 2740
cHJvcA== 2741
bGVhbg== 2742
b3V0ZXI= 2743
IGFsd2F5cw== 2744
b3JkaW5n 2745
SWY= 2746
b3JhZ2U= 2747
IHBhcmVudA== 2748
dmlz 2749
CQkJCQkJCQ== 2750
IGdvdA== 2751
c3RhbmQ= 2752
IGxlc3M= 2753
L3M= 2754
IEFzcw== 2755
YXB0 2756
aXJlZA== 2757
IEFkZA== 2758
IGFjY291bnQ= 2759
cGxveQ== 2760
IGRlcg== 2761
cmVzZW50 2762
IGxvdA== 2763
IHZhbGlk 2764
CWQ= 2765
IGJpdA== 2766
cG9uZW50cw== 2767
IGZvbGxvd2luZw== 2768
X2V4 2769
U09O 2770
IHN1cmU= 2771
b2NpYWw= 2772
IHByb20= 2773
ZXJ0aWVz 2774
aGVhZGVy 2775
LnBybw== 2776
IGJvb2xlYW4= 2777
IHNlYXJjaA== 2778
a2Vu 2779
IG9yaWc= 2780
IGVy 2781
RWQ= 2782
RU0= 2783
YXV0 2784
bGluZw== 2785
YWxpdHk= 2786
QnlJZA== 2787
YmVk 2788
CWNhc2U= 2789
NDY= 2790
ZXRoZXI= 2791
cG9zaXQ= 2792
IGludmVzdA== 2793
IE9S 2794
IHNheXM= 2795
bWlzc2lvbg== 2796
QU1F 2797
IHRlbXA= 2798
b2Fk 2799
IHJlc3Q= 2800
aW5mbw== 2801
IGludGVyZXN0 2802
QXJn 2803
IHBlcmZvcm0= 2804
cG9ucw== 2805
IFZpZXc= 2806
IHZlcg== 2807
bGli 2808
KGNvbnN0 2809
VXRpbA== 2810
TGlzdGVuZXI= 2811
YXJnZQ== 2812
Nzc= 2813
IG11bHQ= 2814
IGRpZQ== 2815
IHNpdGU= 2816
Li4vLi4v 2817
RUw= 2818
IHZhbHVlcw== 2819
IH0pCg== 2820
cGVu 2821
Tm8= 2822
aWNybw== 2823
IGJlaA== 2824
ICcuLw== 2825
YWN5 2826
cmVj 2827
KCktPg== 2828
CSAgIA== 2829
Iikp 2830
Q29udGVudA== 2831
X1c= 2832
cGxlbWVudA== 2833
IHdvbg== 2834
IHZpZGVv 2835
YWRp 2836
cG9pbnQ= 2837
JSU= 2838
MDM= 2839
IGds 2840
ZXJ2ZWQ= 2841
dmlyb24= 2842
SUY= 2843
dXRlZA== 2844
44M= 2845
J20= 2846
IGNlcnQ= 2847
IHByb2Y= 2848
IGNlbGw= 2849
YXJp 2850
IHBsYXllcg== 2851
YWlz 2852
IGNvc3Q= 2853
IGh1bQ== 2854
KFI= 2855
IG9mZmlj 2856
a3M= 2857
LnRleHQ= 2858
YXR1cmVz 2859
IHRvdGFs 2860
ICovCgo= 2861
b3Bl 2862
IHN0YXQ= 2863
VU0= 2864
IGxvYWQ= 2865
aWdodHM= 2866
IGNsZWFy 2867
dXJv 2868
IHRlY2hu 2869
dXBwb3J0 2870
SVI= 2871
IHJvdw== 2872
IHNlZW0= 2873
IHE= 2874
IHNob3J0 2875
IE5vdA== 2876
aXBw 2877
R3JvdXA= 2878
c2VjdGlvbg== 2879
bWF4 2880
aXJs 2881
IG92ZXJyaWRl 2882
IGNvbXBhbnk= 2883
IGRvbmU= 2884
Iik7DQo= 2885
IGdyZQ== 2886
LlJl 2887
IGJlbGll 2888
cmlzdA== 2889
IGhlYWx0aA== 2890
QU5U 2891
KCkKCg== 2892
IEJl 2893
LnZhbHVl 2894
IEdy 2895
b3R0b20= 2896
IGFyZ3M= 2897
UFQ= 2898
c3RhdHVz 2899
ZnVuYw== 2900
dW1lbnRz 2901
LWg= 2902
TnVtYmVy 2903
Og0K 2904
IExvZw== 2905
ZXJ2ZXI= 2906
ICksCg== 2907
YW1lbnQ= 2908
IG9iag== 2909
aW5j 2910
IGNoaWxkcmVu 2911
aWN5 2912
SVo= 2913
YW5kcw== 2914
YWJseQ== 2915
IGRpc3RyaWI= 2916
IGN1cg== 2917
ZXJpYWw= 2918
IGRheXM= 2919
cmVhdGVk 2920
cmVjdA== 2921
LWw= 2922
aXJt 2923
aWRkZW4= 2924
b21i 2925
IGluaXRpYWw= 2926
Lmpz 2927
IOI= 2928
UXVlcnk= 2929
IG9ubGluZQ== 2930
aW1hbA== 2931
LmNvbg== 2932
YXU= 2933
VXJs 2934
Y29udHJvbA== 2935
aXJlY3Rpb24= 2936
IGluc3RhbmNl 2937
T1JU 2938
IEZy 2939
d2hlcmU= 2940
IGphdmF4 2941
IG9yZ2Fu 2942
YXB0ZXI= 2943
IHJlYXNvbg== 2944
b3B0aW9ucw== 2945
NTk= 2946
IE1hcg== 2947
KGE= 2948
IHdpdGhpbg== 2949
LuKAnQoK 2950
T0RF 2951
X0RF 2952
YWRtaW4= 2953
ZW5kZWQ= 2954
IGRlc2lnbg== 2955
IERhdGE= 2956
dW5l 2957
IEZpbGU= 2958
cm9vdA== 2959
IGNlbnQ= 2960
IGFycg== 2961
X2FkZA== 2962
bGVu 2963
cGFnZQ== 2964
LCc= 2965
X3N0cg== 2966
IGJybw== 2967
YWJpbGl0eQ== 2968
b3V0aA== 2969
NTg= 2970
L2M= 2971
cG9zZQ== 2972
aXJ0dWFs 2973
ZWFyY2g= 2974
X3VybA== 2975
YXJnaW4= 2976
SHR0cA== 2977
IHNjaG9vbA== 2978
YXZh 2979
IGNvbnNpZGVy 2980
LmxhYmVs 2981
IEFycmF5 2982
NDI= 2983
d2Vi 2984
b3B0 2985
LnByaW50bG4= 2986
dWxhdGlvbg== 2987
IGZ1bmM= 2988
UEw= 2989
ICJc 2990
IFRleHQ= 2991
YWN0b3J5 2992
KGZ1bmN0aW9u 2993
bnVsbA== 2994
IGVuZw== 2995
ZG93bg== 2996
IGluY2x1ZGU= 2997
IEVu 2998
IERy 2999
IGRi 3000
ISE= 3001
c2lkZQ== 3002
IGluaXQ= 3003
cXVpcmVk 3004
IFNoZQ== 3005
Q29sdW1u 3006
cmVhY3Q= 3007
IGFubg== 3008
IHN0b3A= 3009
IGxhdGVy 3010
IFRoYXQ= 3011
ZW50aW9u 3012
ZGY= 3013
VUc= 3014
SUxF 3015
IGNsaWVudA== 3016
cmFmdA== 3017
ZmZlcg== 3018
UE9TVA== 3019
ZWxwZXI= 3020
IGxvdmU= 3021
cXVvdGU= 3022
b3Vk 3023
IGpzb24= 3024
IGFibGU= 3025
IG1lbg== 3026
QVg= 3027
IENvcHlyaWdodA== 3028
w7Y= 3029
YXZpZw== 3030
cmVx 3031
Q2xpZW50 3032
fSk7Cg== 3033
LkNvbQ== 3034
ZXJj 3035
aWx0 3036
cGVjaWFs 3037
X2NvbQ== 3038
cm9vbQ== 3039
Lk5hbWU= 3040
IGdpdmU= 3041
YW1i 3042
aWtl 3043
IGNvbmRpdGlvbg== 3044
Y2xpZW50 3045
YXRvcnM= 3046
OiI= 3047
IGNvcHk= 3048
dXR1cmU= 3049
aXZlcnNpdHk= 3050
ZXJuYWw= 3051
e3s= 3052
IENhbg== 3053
b3VuYw== 3054
ZG8= 3055
IG9jYw== 3056
IGFwcHJv 3057
dGhlcnM= 3058
emU= 3059
IGVpdGhlcg== 3060
IEZs 3061
IGltcG9ydGFudA== 3062
IGxlYWQ= 3063
YXR0cg== 3064
QVJU 3065
RXF1YWw= 3066
IGRh 3067
ZXRjaA== 3068
ZW50aXR5 3069
IGZhbWlseQ== 3070
YWRkaW5n 3071
IG9wdGlvbg== 3072
IGV4aXN0 3073
aWNh 3074
IE9iamVjdA== 3075
Njk= 3076
J3Zl 3077
dmVycw== 3078
aXRpb25hbA== 3079
Njc= 3080
b3V0cHV0 3081
IFRydWU= 3082
IE9G 3083
X3RpbWU= 3084
IG9mZmVy 3085
IH0pOwoK 3086
SEVS 3087
ZWdpbg== 3088
IiI= 3089
IHdhdGVy 3090
IGNoZQ== 3091
IE15 3092
b3JlZA== 3093
IHN0ZXA= 3094
YW5jZXM= 3095
Q0s= 3096
QVk= 3097
4Lg= 3098
c3RydWN0aW9u 3099
KEM= 3100
MzAw 3101
b3VjaA== 3102
U3RyZWFt 3103
YWN0aXZl 3104
YW1h 3105
RW50aXR5 3106
cHJvZHVjdA== 3107
KCl7Cg== 3108
IGdvdmVybm1lbnQ= 3109
IElE 3110
YWpvcg== 3111
QW5k 3112
IGRpc3BsYXk= 3113
0Ls= 3114
IHRpbWVz 3115
IGZvdXI= 3116
IGZhcg== 3117
IHByZXNlbnQ= 3118
IE5T 3119
IFwK 3120
dWVzdA== 3121
IGJhcw== 3122
ZWNobw== 3123
Y2hpbGQ= 3124
aWZpZXI= 3125
SGFuZGxlcg== 3126
IGxpYg== 3127
UHJvcGVydHk= 3128
dHJhbnNsYXRpb24= 3129
IHJvb20= 3130
IG9uY2U= 3131
IFtd 3132
Y2VudGVy 3133
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0= 3134
IHJlc3VsdHM= 3135
IGNvbnRpbnVl 3136
IHRhbGs= 3137
X2dldA== 3138
IGdyb3c= 3139
LnN3 3140
ZWI= 3141
IFB1YmxpYw== 3142
T1A= 3143
ZWN1dGU= 3144
b2xz 3145
ICoq 3146
Iik7Cgo= 3147
IG1hc3M= 3148
dXJlZA== 3149
LmNsYXNz 3150
b21pYw== 3151
IG1lYW4= 3152
aXBz 3153
IGF1dA== 3154
KTsNCg0K 3155
IHVudGls 3156
IG1hcmtldA== 3157
IGFyZWE= 3158
dWl0 3159
IGxlbmd0aA== 3160
IFdpdGg= 3161
c3RydWN0b3I= 3162
ZXZlbnQ= 3163
Ij48 3164
IFNw 3165
SVY= 3166
IG11cw== 3167
aWZm 3168
IGtpbmQ= 3169
YXV0aG9y 3170
b3VuZHM= 3171
bWI= 3172
X2tleQ== 3173
NDE= 3174
d2lkdGg= 3175
cG9zaXRvcnk= 3176
IGxpZ2h0 3177
dWs= 3178
Um93 3179
b2hu 3180
YWxm 3181
dmlyb25tZW50 3182
YXBwZXI= 3183
b2xsZWN0aW9ucw== 3184
IHNpZGU= 3185
X2luZm8= 3186
IGV4YW1wbGU= 3187
aW1hcnk= 3188
IHdy 3189
IGNhbXA= 3190
Y3JpYmU= 3191
MjU1 3192
Ii8= 3193
IG1pc3M= 3194
d2F5 3195
IGJhc2Vk 3196
IHBsYW4= 3197
Vmlz 3198
b21haW4= 3199
dW5r 3200
IGF3YXk= 3201
VVA= 3202
PFQ= 3203
T1M= 3204
aW9k 3205
IE1vbg== 3206
4oCZcmU= 3207
IGxpaw== 3208
w6c= 3209
aXZlbHk= 3210
LnY= 3211
aW1lcg== 3212
aXplcg== 3213
U3Vi 3214
IGJ1dHRvbg== 3215
IFVw 3216
IGV4cGVyaWVuY2U= 3217
Q0w= 3218
IHJlbmRlcg== 3219
X3ZhbHVl 3220
IG5lYXI= 3221
VVJM 3222
YWx0 3223
IGNvdW50cnk= 3224
aWJpbGl0eQ== 3225
NTc= 3226
KCksCg== 3227
ZWFk 3228
IGF1dGhvcg== 3229
IHNwZWNpZmlj 3230
YmFzZQ== 3231
KG5hbWU= 3232
b25lcw== 3233
IERv 3234
IGFsb25n 3235
eWVhcg== 3236
IGV4cHJlc3M= 3237
Lic= 3238
ZW52 3239
IGJlZ2lu 3240
IHNvZnR3YXJl 3241
IGltcA== 3242
IHdpbg== 3243
w7Nu 3244
IHRoaW5n 3245
VHJhbnM= 3246
IFRIRQ== 3247
IDw/ 3248
IHdoeQ== 3249
IGRvZXNu 3250
aWo= 3251
Z2luZw== 3252
CWc= 3253
IHNpbmdsZQ== 3254
b2Zmc2V0 3255
YXJuaW5n 3256
b2dyYXBo 3257
bGV5 3258
X2NvdW50 3259
IGFuYWw= 3260
Y3JlYXRl 3261
L20= 3262
IFJlZw== 3263
OTg= 3264
dW5jaA== 3265
PSQ= 3266
aXNr 3267
IHJpZ2h0cw== 3268
KE0= 3269
ICIiIgo= 3270
YXBlcg== 3271
Lm1vZGVs 3272
IHBv 3273
ZW1wdHk= 3274
YXJ0bWVudA== 3275
IGFudA== 3276
IFdoZW4= 3277
IHdvbWVu 3278
IEVk 3279
IHNlYXNvbg== 3280
IGRlc3Q= 3281
w6M= 3282
KGg= 3283
IHBvc3NpYmxl 3284
IHNldmVy 3285
IGJ0bg== 3286
IGRpZG4= 3287
IHNlbnQ= 3288
IGVuYw== 3289
IGNvbW1hbmQ= 3290
IF0sCg== 3291
X3g= 3292
IHJlY2VudA== 3293
b2x1dGlvbg== 3294
dmVjdG9y 3295
IEJ5 3296
IE1heQ== 3297
IEFjdA== 3298
u78= 3299
IG1vbmV5 3300
SU5U 3301
YnNpdGU= 3302
CXA= 3303
Lg0K 3304
77u/ 3305
c2w= 3306
YXR0ZXJu 3307
IENsYXNz 3308
IHRvbGQ= 3309
dWRpbw== 3310
Y3VycmVudA== 3311
IGVxdQ== 3312
IGF1dG8= 3313
IFN0YXRl 3314
ZGE= 3315
bXNn 3316
KSk7Cgo= 3317
IHdvcmtpbmc= 3318
IHF1ZXJ5 3319
IEJy 3320
IHdpbmRvdw== 3321
YXV0aA== 3322
b25seQ== 3323
CXQ= 3324
IGxlYXN0 3325
YWdu 3326
IGV4cGw= 3327
aXR0ZXI= 3328
YXJpbmc= 3329
IGNvbHVtbg== 3330
IEdlbmVyYWw= 3331
Ijoi 3332
ZXJhbA== 3333
cmlvcg== 3334
IHJlY29yZA== 3335
SUI= 3336
RVg= 3337
IGRhdA== 3338
IG1ha2luZw== 3339
dWVk 3340
IENhcg== 3341
ZW1w 3342
Ii4= 3343
IE1lZA== 3344
IGNsb3Nl 3345
IHBlcmNlbnQ= 3346
IHBhc3Q= 3347
KGc= 3348
Oig= 3349
IHdyaXRl 3350
IG1vdmU= 3351
IHBhdA== 3352
Q29udHJvbA== 3353
LlRv 3354
IHZp 3355
Ki8K 3356
aW5hdGU= 3357
J2xs 3358
YWdlZA== 3359
TnVsbA== 3360
IHNwZWNpYWw= 3361
SVpF 3362
IGNpdHk= 3363
LyoK 3364
IEVuZw== 3365
aXhlZA== 3366
aW5hcnk= 3367
cHk= 3368
IGVmZg== 3369
YXJpbw== 3370
IHRlbGw= 3371
YXZvcg== 3372
IHNlbGVjdA== 3373
bGV2ZWw= 3374
aW11bQ== 3375
b3Blcg== 3376
QnVpbGRlcg== 3377
SVA= 3378
JyksCg== 3379
ZXNj 3380
IGZvbnQ= 3381
IjsKCg== 3382
IEFt 3383
aXNoZWQ= 3384
aWxscw== 3385
SW50ZXI= 3386
T1c= 3387
IGNvdXJzZQ== 3388
IGxhdGU= 3389
aWRkbGU= 3390
NDM= 3391
IGFtb3VudA== 3392
IGFzeW5j 3393
aW5v 3394
Y3Vs 3395
IOw= 3396
YW5kbGU= 3397
X3VzZXI= 3398
IGJlbg== 3399
IENhbA== 3400
ICRf 3401
IFJlcA== 3402
IGVub3VnaA== 3403
VG9rZW4= 3404
LnVzZXI= 3405
KGo= 3406
U2M= 3407
V2lkdGg= 3408
bm93 3409
YXRmb3Jt 3410
IGxvb2tpbmc= 3411
IGhvbGQ= 3412
TW9kdWxl 3413
SVRZ 3414
dm8= 3415
aXNvbg== 3416
LkRhdGE= 3417
eWM= 3418
IHBvdA== 3419
IFRydW1w 3420
aWR1YWw= 3421
aWRlcw== 3422
cnQ= 3423
IHByb3BlcnR5 3424
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIA== 3425
YW1ld29yaw== 3426
Z28= 3427
IGxvdw== 3428
IHBhcmE= 3429
IHByaWNl 3430
dXJ5 3431
IHRvZGF5 3432
cm95 3433
ICcv 3434
IHBvbGl0 3435
ICcn 3436
eW1i 3437
UGg= 3438
IGFkdg== 3439
IGF0dGFjaw== 3440
IFN0ZQ== 3441
Uk9N 3442
NDAw 3443
YW5h 3444
IG1lYW5z 3445
IHN0b3J5 3446
aWRz 3447
YWtlbg== 3448
IG1lZXQ= 3449
IG1vbQ== 3450
IOKAmA== 3451
ID8+ 3452
IGRlbg== 3453
b2JpbGU= 3454
Y2hhbmdl 3455
ICAgICAgICAgICAgCg== 3456
aWNp 3457
bmE= 3458
IEZvcm0= 3459
IHNvcnQ= 3460
U2VsZWN0 3461
cGFyZQ== 3462
IHRob3VnaHQ= 3463
X2Nvbg== 3464
IHRhc2s= 3465
b2N1cw== 3466
IERF 3467
IE1pbg== 3468
IG9wdA== 3469
CWJyZWFr 3470
dW1lcg== 3471
S0U= 3472
dGhlbg== 3473
IGRldA== 3474
IFRlc3Q= 3475
cG9ydHM= 3476
IHJldmlldw== 3477
KCcv 3478
bW92ZQ== 3479
IHN3aXRjaA== 3480
RVJU 3481
cGF0Y2g= 3482
YW5ub3Q= 3483
44I= 3484
IGFib3Zl 3485
aXRpdmU= 3486
NTY= 3487
IHF1ZXN0aW9u 3488
IFF1 3489
44CCCgo= 3490
Z2xl 3491
IHdvcmQ= 3492
IHByb3ZpZGU= 3493
IFJldHVybg== 3494
IHJlc2VhcmNo 3495
w6Nv 3496
dXN0cg== 3497
IHB1Ymxpc2g= 3498
Y2hlbWE= 3499
fX0= 3500
IENPTg== 3501
LWlu 3502
YWxsYmFjaw== 3503
IGNvdmVy 3504
XFw= 3505
Y29sb3I= 3506
IElT 3507
IHdoZXRoZXI= 3508
aW1hdGU= 3509
aXNj 3510
QmFy 3511
IGRpdg== 3512
QmU= 3513
b3Vybg== 3514
IGhhdmluZw== 3515
bGVt 3516
cGxheWVy 3517
YWJz 3518
YW1lcmE= 3519
bmV5 3520
IGV4Yw== 3521
Z2V0aGVy 3522
cGxpZWQ= 3523
YW8= 3524
WyQ= 3525
ICsr 3526
aXBl 3527
c2hvdw== 3528
L2Q= 3529
Wzo= 3530
YWdlbWVudA== 3531
bGV2 3532
X0lE 3533
OTc= 3534
cmFyeQ== 3535
YWRlcw== 3536
X3Nl 3537
YXVzZQ== 3538
IGVtcGxveQ== 3539
ICovDQo= 3540
IGZyZQ== 3541
ICdA 3542
IGNvbXBsZXQ= 3543
IGxhcmdl 3544
cmFs 3545
XHg= 3546
IGZhYw== 3547
PFN0cmluZw== 3548
IGNyZWF0ZWQ= 3549
dXBlcg== 3550
LnN0YXRl 3551
IGhvc3Q= 3552
ZW5lcmlj 3553
L2I= 3554
KCE= 3555
d2hpbGU= 3556
aWFz 3557
QlVH 3558
ICk7Cgo= 3559
IHJvbGU= 3560
UmVn 3561
IENvbG9y 3562
U3RhcnQ= 3563
IHBvcm4= 3564
dG9w 3565
IHdlYg== 3566
IGRldg== 3567
IGRlYWw= 3568
KyspCg== 3569
SW50ZWdlcg== 3570
cG9zaXRpb24= 3571
Lm9u 3572
ICgi 3573
5Lg= 3574
IHByb2JsZW0= 3575
c3Y= 3576
IHByZXNz 3577
QUJMRQ== 3578
QVRJT04= 3579
IFNlZQ== 3580
YW5jaA== 3581
IHRob3VnaA== 3582
bGVlcA== 3583
IDwhLS0= 3584
IHBvaW50cw== 3585
ICAgICAgICAgICAgICAgICAgICAgICAgIA== 3586
Lko= 3587
IDo6 3588
cHRy 3589
REI= 3590
Kys7Cg== 3591
LnBuZw== 3592
bm9kZQ== 3593
c29mdA== 3594
cG9uZA== 3595
IGV2ZXI= 3596
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ== 3597
TWVudQ== 3598
KCcj 3599
IHNlcnZpY2Vz 3600
cGc= 3601
fSkK 3602
cGFyYW1z 3603
IGFjdHVhbGx5 3604
ICIv 3605
RW1wdHk= 3606
TWV0aG9k 3607
IGlkZW50 3608
dW5pYw== 3609
IG1pbGxpb24= 3610
IGFmZg== 3611
c3R5bGU= 3612
IGNvbmM= 3613
aW9z 3614
aWdubWVudA== 3615
VUxU 3616
UHI= 3617
IjsNCg== 3618
IHVuZGVyc3RhbmQ= 3619
dWFyeQ== 3620
IGhhcHBlbg== 3621
IHNlcnZlcg== 3622
IENv 3623
U0M= 3624
IGxlcw== 3625
IGZpbGVz 3626
R3JpZA== 3627
c3Fs 3628
IG9mdGVu 3629
IGluZm8= 3630
X3Ry 3631
c3Jj 3632
b255 3633
IHNwYWNl 3634
dW1i 3635
IHBhc3N3b3Jk 3636
IHN0b3Jl 3637
LAoK 3638
IFdoYXQ= 3639
Z2Vk 3640
IEZhbHNl 3641
VXM= 3642
c3dlcg== 3643
X2luZGV4 3644
IGZvcm1hdA== 3645
bW9zdA== 3646
c20= 3647
TmV3 3648
IGRldGFpbHM= 3649
IHByb2I= 3650
IEFORA== 3651
KCkNCg== 3652
aWxhcg== 3653
ICR7 3654
cnlwdA== 3655
LkNvbGxlY3Rpb25z 3656
JHRoaXM= 3657
IEZyZWU= 3658
X29m 3659
KGZhbHNl 3660
ZGF0ZWQ= 3661
ID4+ 3662
IGZhY2U= 3663
Q1RJT04= 3664
IHNhdmU= 3665
IHR5cA== 3666
ZGV2 3667
KCIj 3668
QUdF 3669
Y29udGFpbmVy 3670
ZWRpdA== 3671
UUw= 3672
IGl0ZW1z 3673
IHNvY2lhbA== 3674
aWVu 3675
IFJlYWN0 3676
KS4KCg== 3677
IG1hcg== 3678
IHJlZHU= 3679
IFJF 3680
LnB1dA== 3681
IG1ham9y 3682
Q2VsbA== 3683
bmV4dA== 3684
IGV4cGVjdGVk 3685
IHlldA== 3686
IGluZGl2 3687
dHJpYnV0ZXM= 3688
YXRpcw== 3689
YW1lZA== 3690
IGZvb2Q= 3691
U291cmNl 3692
KHN0cmluZw== 3693
ICsK 3694
aXRlcw== 3695
ZHI= 3696
IG1lbWJlcnM= 3697
IGNvbWI= 3698
aXRlbXM= 3699
IFBlcg== 3700
VEg= 3701
PVRydWU= 3702
IGJhcg== 3703
X1NF 3704
Y29tbQ== 3705
KHc= 3706
KQoKCg== 3707
IHNlbmQ= 3708
IGluYw== 3709
dW5zaWduZWQ= 3710
RkE= 3711
IHBhcmFtcw== 3712
YXBwaW5n 3713
cm9z 3714
dWdpbg== 3715
ZmE= 3716
IGNvbm5lY3Rpb24= 3717
IH07Cgo= 3718
IGJlY29tZQ== 3719
TW9kZQ== 3720
IGV2 3721
IGRpZmY= 3722
IFVuaXRlZA== 3723
SGVpZ2h0 3724
ZnVsbHk= 3725
aW1hZ2Vz 3726
IG1ha2Vz 3727
IGdsb2JhbA== 3728
IGNvbnRhY3Q= 3729
JzoK 3730
IGFicw== 3731
0LDQ 3732
ZmxvYXQ= 3733
IGV4Y2VwdA== 3734
IFBvbA== 3735
Q2hpbGQ= 3736
dHlw 3737
IGNlcnRhaW4= 3738
acOzbg== 3739
T1VU 3740
IGltcHJv 3741
aWxlcw== 3742
IC0tPgo= 3743
IFBhcnQ= 3744
dmFsdWVz 3745
b3Nz 3746
Lyoq 3747
aWxpdA== 3748
IEV2ZW50 3749
Y3VyaXR5 3750
c3Rlcg== 3751
IGNoYXJhY3Rlcg== 3752
MTk4 3753
IG5ld3M= 3754
ICIs 3755
IGRldmljZQ== 3756
Y2Vs 3757
bG9naW4= 3758
aGVldA== 3759
RGVmYXVsdA== 3760
QCI= 3761
CSA= 3762
Y2xpY2s= 3763
KHZhbHVl 3764
IEFi 3765
IHByZXZpb3Vz 3766
RVJST1I= 3767
b2NhbA== 3768
IG1hdGVyaWFs 3769
IGJlbG93 3770
IENocmlzdA== 3771
IG1lZGlh 3772
Y292ZXI= 3773
IFVJ 3774
IGZhaWw= 3775
IGJsYWNr 3776
IGNvbXBvbmVudA== 3777
IEFtZXJpY2Fu 3778
IGFkZGVk 3779
IGJ1eQ== 3780
c3RpdA== 3781
IGNhbWU= 3782
IGRlbGV0ZQ== 3783
cHJvcGVydHk= 3784
b2Rpbmc= 3785
IGNhcmQ= 3786
cm9wcw== 3787
IGh0dHBz 3788
IHJvb3Q= 3789
IGhhbmRsZQ== 3790
Q0M= 3791
QmFjaw== 3792
ZW1wbGF0ZQ== 3793
IGdldHRpbmc= 3794
X2J5 3795
bWFpbA== 3796
X3No 3797
LmFzc2VydA== 3798
IERlYw== 3799
KHRydWU= 3800
IGNvbXB1dA== 3801
IGNsYWlt 3802
Jz0+ 3803
IFN1Yg== 3804
IGFpcg== 3805
b3Bz 3806
bmF2 3807
ZW1lbnRz 3808
KGlk 3809
IGVudGVy 3810
YW5nZWQ= 3811
RW5k 3812
IGxvY2F0aW9u 3813
IG5pZ2h0 3814
IGRvaW5n 3815
IFJlZA== 3816
bGlu 3817
fQoKCg== 3818
dmlkZXI= 3819
IHBpY2s= 3820
IHdhdGNo 3821
ZXNzYWdlcw== 3822
IGh1bWFu 3823
IGRhbQ== 3824
cGVuZA== 3825
ZGly 3826
IHRheA== 3827
IGdpcmw= 3828
cmVldA== 3829
IGJveA== 3830
IHN0cm9uZw== 3831
KHY= 3832
cmVs 3833
IGludGVyZmFjZQ== 3834
IG1zZw== 3835
ZmVjdA== 3836
X2F0 3837
IGhvdXNl 3838
IHRyYWNr 3839
Jyk7Cgo= 3840
amU= 3841
IEpvaG4= 3842
aXN0cg== 3843
KFM= 3844
dWJl 3845
IGNl 3846
aXR0ZWQ= 3847
VkVS 3848
Kik= 3849
cGFyZW50 3850
IGFwcGxpY2F0aW9u 3851
YW55 3852
LnN3aW5n 3853
IHBhY2s= 3854
XHU= 3855
IHByYWN0 3856
IHNlY3Rpb24= 3857
Y3R4 3858
IHVuc2lnbmVk 3859
LlBvaW50 3860
IE9uZQ== 3861
xLE= 3862
aXBsZQ== 3863
YWlk 3864
0YM= 3865
VmVjdG9y 3866
Ynl0ZQ== 3867
IHdhaXQ= 3868
IMOg 3869
w6U= 3870
IHRvZ2V0aGVy 3871
IHRocm93cw== 3872
Rk8= 3873
Jykp 3874
aG9zdA== 3875
aXNpbmc= 3876
LnZpZXc= 3877
IHRlcm1z 3878
ZnJhbWV3b3Jr 3879
LXI= 3880
IGFwcGx5 3881
IHNlc3Npb24= 3882
T3B0aW9ucw== 3883
dWdnZXN0 3884
IG90aGVycw== 3885
d2l0dGVy 3886
IGZ1bmQ= 3887
SW5pdA== 3888
X18o 3889
ZW5zb3I= 3890
R0VU 3891
IHNldmVyYWw= 3892
aWk= 3893
W2o= 3894
SU8= 3895
IHRlbXBsYXRl 3896
UG9zaXRpb24= 3897
IGVjb24= 3898
YWNoaW5l 3899
IGls 3900
LnNwcmluZw== 3901
bWFpbg== 3902
ZWx0 3903
aW1lbnQ= 3904
UmVj 3905
bW0= 3906
IFVuaXZlcnNpdHk= 3907
dXJzb3I= 3908
ICAgICAgICAgICAgICAgICAgICA= 3909
R0w= 3910
aWN0dXJl 3911
aXRodWI= 3912
Y2Vy 3913
Y2FzdA== 3914
RnJvbQ== 3915
YWxlcw== 3916
IHN1YmplY3Q= 3917
cGFzc3dvcmQ= 3918
bnk= 3919
IGVzYw== 3920
LndyaXRl 3921
77yM 3922
V2hhdA== 3923
Lkg= 3924
IGhpc3Rvcnk= 3925
IEZl 3926
IGluZGl2aWR1YWw= 3927
dW5pdA== 3928
IC0tPg== 3929
IGR1 3930
SVNU 3931
IHVzZXJz 3932
ZnM= 3933
ZmFsc2U= 3934
dW50 3935
VGl0bGU= 3936
IG1vdA== 3937
IGZ1dHVyZQ== 3938
YWNoZWQ= 3939
IHN0YXJ0ZWQ= 3940
IG1vZGU= 3941
ICc8 3942
X2FycmF5 3943
IGF4 3944
J107Cg== 3945
aXJlcw== 3946
VGhlcmU= 3947
dWdodA== 3948
dG1s 3949
cG9zZWQ= 3950
aWN1bHQ= 3951
IHRvb2s= 3952
IGdhbWVz 3953
IH19 3954
ID8+Cg== 3955
IHByb2R1Y3Rz 3956
SXM= 3957
IGJhZA== 3958
IERlcw== 3959
LnBhdGg= 3960
JwoK 3961
IFBvc3Q= 3962
YXZlbA== 3963
KDo= 3964
MTUw 3965
IG5lZWRz 3966
IGtub3du 3967
Rmw= 3968
IGV4ZWM= 3969
IHNlZW4= 3970
NTE= 3971
dW1l 3972
IGJvcmRlcg== 3973
IGxpdmU= 3974
dGVtcA== 3975
UGVy 3976
IHZhcmlhYmxl 3977
aWV0 3978
IERlZg== 3979
IGdl 3980
ZW1l 3981
X2JhY2s= 3982
Zmlyc3Q= 3983
IHByb3ZpZGVk 3984
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8= 3985
IGZpbGVuYW1l 3986
IGhvcGU= 3987
dWx5 3988
YXV0bw== 3989
ZmluZA== 3990
X3N0cmluZw== 3991
YnRu 3992
aXR1ZGU= 3993
QXR0cmlidXRl 3994
IHlvdW5n 3995
LnR4dA== 3996
IHdlYnNpdGU= 3997
IFByb3A= 3998
IGV5 3999
PigpOwo= 4000
aW9uYWw= 4001
QVJS 4002
aWN0aW9uYXJ5 4003
dXJ0aGVy 4004
Ljwv 4005
QUxM 4006
IHN0dWR5 4007
aWxp 4008
IG5ldHdvcms= 4009
eWw= 4010
aXN0YW5jZQ== 4011
T0s= 4012
TlU= 4013
cmVzdA== 4014
IFNU 4015
aWNyb3NvZnQ= 4016
IGxpbWl0 4017
IGN1dA== 4018
KCk6Cg== 4019
IGNvdQ== 4020
b2du 4021
IHNpemVvZg== 4022
aXZhbA== 4023
IHdlbnQ= 4024
Lno= 4025
TGluaw== 4026
IGZpcmU= 4027
IGFjcm9zcw== 4028
IGNvbW11bml0eQ== 4029
cmVnaW9u 4030
TkU= 4031
UmVm 4032
IG9mZmljaWFs 4033
IHZpc2l0 4034
b2x2ZQ== 4035
IHJlY2VpdmVk 4036
IHRva2Vu 4037
IG1vbnRocw== 4038
IGFuaW0= 4039
IHBhcnRpY3VsYXI= 4040
c3R5bGVz 4041
aWNv 4042
IGVzcw== 4043
ODc= 4044
LkNvbnRyb2w= 4045
IMOp 4046
YmFsbA== 4047
IGxlYXJu 4048
aW5kaW5n 4049
VmFy 4050
IGRlY2w= 4051
KGVycg== 4052
TEVDVA== 4053
T25l 4054
cGhh 4055
IH4= 4056
Zm9ydA== 4057
YXN1cmU= 4058
IG1pbmQ= 4059
IEVuZA== 4060
Q2hlY2s= 4061
IHF1aWNr 4062
Iiks 4063
QU5E 4064
dXRpb25z 4065
QmFzZQ== 4066
X19fX19fX18= 4067
IGNvbW1lbnQ= 4068
SU5F 4069
4oCZdmU= 4070
QnV0 4071
IEVs 4072
IFVz 4073
IGFkbWlu 4074
bWFyaw== 4075
IE5hbWU= 4076
YAo= 4077
IFR5cGU= 4078
YW1pYw== 4079
cGM= 4080
bG9vcg== 4081
RlQ= 4082
IG9wcA== 4083
Y2tldA== 4084
KS0+ 4085
dHg= 4086
IHB1cg== 4087
dWVs 4088
eW1ib2w= 4089
dWF0aW9u 4090
YW5nZXI= 4091
IGJhY2tncm91bmQ= 4092
ZWNlc3M= 4093
ZWZpbmVk 4094
Li4uLi4uLi4= 4095
IGRlc2NyaXB0aW9u 4096
IHJlcHJlc2VudA== 4097
IikpOwo= 4098
cHJlc3Npb24= 4099
cm93c2Vy 4100
IHNlcmllcw== 4101
d2FyZHM= 4102
NTI= 4103
KCRf 4104
YWlzZQ== 4105
IGhvdA== 4106
YWNpdHk= 4107
cmllcw== 4108
YWN0aW9ucw== 4109
Q3JlYXRl 4110
YWRpbw== 4111
YW1wbGVz 4112
IG9yaWdpbmFs 4113
ZW5zaXZl 4114
Zm9udA== 4115
c3RyZWFt 4116
77u/dXNpbmc= 4117
LnNwcmluZ2ZyYW1ld29yaw== 4118
MDAx 4119
c2VydmVy 4120
IGJpbGw= 4121
QUNL 4122
aWxlbmFtZQ== 4123
IGZyYW1l 4124
ID0K 4125
RWRpdA== 4126
YWRpdXM= 4127
IGRyYXc= 4128
YW5rcw== 4129
IGRldGVy 4130
IGNvbWVz 4131
X2ludA== 4132
IGZvcmVhY2g= 4133
YW5nbGU= 4134
IGVsZWN0 4135
cGVjdGVk 4136
SGVhZGVy 4137
aXN0cmF0aW9u 4138
RmFsc2U= 4139
IEdhbWU= 4140
IGZpbHRlcg== 4141
QWN0aXZpdHk= 4142
IGxhcmc= 4143
aW5pdGlvbg== 4144
ICI8 4145
MjU2 4146
aXNlZA== 4147
IHJlbW92ZQ== 4148
IFRyYW5z 4149
bWV0 4150
c2Vl 4151
Rm9ybWF0 4152
Q29tbWFuZA== 4153
IEVY 4154
Tm9uZQ== 4155
IGZyb250 4156
QVNF 4157
IFJlYw== 4158
b3VuZGF0aW9u 4159
IHZv 4160
OTY= 4161
PVwi 4162
KCo= 4163
Q2hhbmdl 4164
LldyaXRl 4165
Z3JvdXA= 4166
aWVudHM= 4167
dXk= 4168
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKg== 4169
IGRpZw== 4170
aHI= 4171
KC0= 4172
IGdlbg== 4173
bnVtYmVy 4174
dmVj 4175
dXJvcGU= 4176
ZW50cnk= 4177
TEw= 4178
IHN0ZQ== 4179
VmFsaWQ= 4180
J10s 4181
X3BhcmFt 4182
IHNlbGVjdGVk 4183
IGFjY29yZGluZw== 4184
IERpcw== 4185
IHV0aWw= 4186
QnVmZmVy 4187
X2Vycm9y 4188
IGFzc29jaQ== 4189
X1NJWkU= 4190
IHdvcg== 4191
IHByaW50Zg== 4192
cmFn 4193
wqA= 4194
REQ= 4195
IFZhbA== 4196
IGFjdGl2 4197
RW5n 4198
ZXRpbWU= 4199
IHZpcnR1YWw= 4200
YWlnbg== 4201
YXVy 4202
IFByZXM= 4203
IEV4Y2VwdGlvbg== 4204
IGFueXRoaW5n 4205
IE9mZg== 4206
IGhvdXJz 4207
IHdhcg== 4208
QXJncw== 4209
YWdpbmc= 4210
IG1vZGVscw== 4211
IFRpbWU= 4212
T2I= 4213
YW1z 4214
am95 4215
IGVhcmx5 4216
LnJlYWQ= 4217
ODY= 4218
IGNlbnRlcg== 4219
IEluaXRpYWw= 4220
IGxhbmd1YWdl 4221
bGVuZ3Ro 4222
eHk= 4223
IHNu 4224
IGluZg== 4225
UG9zdA== 4226
IGFnbw== 4227
IGVhc3k= 4228
X2NvZGU= 4229
IEFOWQ== 4230
X2No 4231
IGRvd25sb2Fk 4232
KFQ= 4233
YXZlZA== 4234
4oCT 4235
IHN0dWRlbnRz 4236
IGZpZw== 4237
bGlnaHQ= 4238
eHg= 4239
IGJ1ZmZlcg== 4240
IERlcA== 4241
IE1hdGg= 4242
SVRI 4243
IHZhcmk= 4244
IGR1ZQ== 4245
RmFjdG9yeQ== 4246
IHBvcg== 4247
IGVw 4248
b3R5cGU= 4249
IGNhbm5vdA== 4250
IHdoaXRl 4251
PGludA== 4252
dGVybg== 4253
IHJlZ2lzdGVy 4254
IHByZWQ= 4255
Y2x1cw== 4256
X2RhdGU= 4257
IC8qKg== 4258
IGF1dGg= 4259
IFtdCg== 4260
IHBlcmlvZA== 4261
bm93bg== 4262
IHZvdA== 4263
IHNjcmVlbg== 4264
J2Q= 4265
VHlwZXM= 4266
IHRtcA== 4267
0LXQ 4268
dXJhbA== 4269
IGJlbmVm 4270
X3k= 4271
IG5ldA== 4272
IFN0YXRlcw== 4273
J11bJw== 4274
IE5l 4275
IE5PVA== 4276
IG5lZw== 4277
MTAy 4278
IGNvbW1vbg== 4279
c2NvcGU= 4280
IGNyZWQ= 4281
Z2Vz 4282
X1RZUEU= 4283
IHN1Z2dlc3Q= 4284
b29t 4285
LgoKCg== 4286
IGFjY2VwdA== 4287
IHJhbmRvbQ== 4288
ZXJt 4289
IFZlY3Rvcg== 4290
d2l0aA== 4291
VEVS 4292
KHN0cg== 4293
IHJlc3BvbnM= 4294
IGhpdA== 4295
LlNldA== 4296
Z3JpZA== 4297
cmlh 4298
IGNsaWNr 4299
dW5kbGU= 4300
Q2FzZQ== 4301
aW5zZXJ0 4302
VXRpbHM= 4303
ICIiIg== 4304
IGltcGxlbWVudA== 4305
YXRhbA== 4306
dGVtcHQ= 4307
dGVtcGxhdGU= 4308
b2Ny 4309
cmV0dXJucw== 4310
IHBsYXllcnM= 4311
dXNlcnM= 4312
ZWRlZg== 4313
IFRoZXNl 4314
IGFtb25n 4315
IGRlYg== 4316
aGE= 4317
LmdldEVsZW1lbnQ= 4318
IGNpcmM= 4319
IGFuc3dlcg== 4320
IHdhbGs= 4321
IHRyZWF0 4322
IEdl 4323
IENyZWF0ZQ== 4324
IGFnZQ== 4325
IHJlcQ== 4326
T1NU 4327
YW5ndWxhcg== 4328
0Y8= 4329
IGZpdmU= 4330
NTM= 4331
IGRpc3RyaWJ1dGVk 4332
IGZyaWVuZA== 4333
VFA= 4334
IGNsZWFu 4335
b3dz 4336
LkNvbnRyb2xz 4337
ZGlz 4338
IHdvcmRz 4339
Lmlv 4340
enk= 4341
IGhlYWRlcg== 4342
IENoZWNr 4343
4oCZbQ== 4344
anVzdA== 4345
aG9sZGVy 4346
PSI8Pw== 4347
IEdOVQ== 4348
IENvbA== 4349
aW1lc3Q= 4350
ZW50aWM= 4351
ewoK 4352
IHRyZQ== 4353
bGFzdA== 4354
bGE= 4355
IFlvcms= 4356
TG8= 4357
IGRpc2N1c3M= 4358
IEdvZA== 4359
IGlzc3Vl 4360
cmV3 4361
V2luZG93 4362
IGxhbmQ= 4363
MTIw 4364
IHN0cmVhbQ== 4365
IFBhcg== 4366
IHF1YWxpdHk= 4367
UGFy 4368
X251bQ== 4369
NTQ= 4370
IHNhbA== 4371
ZWx2ZXM= 4372
T1JE 4373
KHVzZXI= 4374
IHdvcmtz 4375
IGhhbGY= 4376
ZW5zZXM= 4377
dmFz 4378
IHBvbGljZQ== 4379
KCIv 4380
dWE= 4381
IHNpbXBsZQ== 4382
QWRkcmVzcw== 4383
IGVtcHR5 4384
ZXNo 4385
MTI4 4386
VXBkYXRl 4387
IENyZWF0ZWQ= 4388
KCcu 4389
KS4K 4390
ICAgICAgICAgICAgICAgICAg 4391
IGFncmU= 4392
IEZST00= 4393
IGNvb2s= 4394
IGV2ZXJ5dGhpbmc= 4395
aWxpdGllcw== 4396
LnN0YXR1cw== 4397
IHJlbGF0aW9ucw== 4398
ZXh0ZXJu 4399
IG5vdGhpbmc= 4400
IHJ1bm5pbmc= 4401
CXZvaWQ= 4402
Ukk= 4403
X2E= 4404
X0NPTg== 4405
cG9y 4406
LnN1Yg== 4407
cmVxdWlyZQ== 4408
IENpdHk= 4409
IFdlc3Q= 4410
IG1vcg== 4411
c3RvcmU= 4412
RXF1YWxz 4413
b2Rlcg== 4414
IG5h 4415
IFtb 4416
ICgn 4417
IERvbg== 4418
RVJT 4419
L3A= 4420
Lmpzb24= 4421
YWJvcg== 4422
IHNvbWVvbmU= 4423
X3RleHQ= 4424
LmNzcw== 4425
LlRhYg== 4426
IFNvbWU= 4427
YXRv 4428
ZG91Ymxl 4429
IHNoYXJl 4430
KHZvaWQ= 4431
X2Rpcg== 4432
IHVy 4433
U3RhY2s= 4434
IFdvcmxk 4435
Llg= 4436
c3RyYWN0 4437
SG93 4438
LkdlbmVyaWM= 4439
aWNsZXM= 4440
IGVudHJ5 4441
IGNoYW5nZXM= 4442
IHBlcnNvbmFs 4443
KEE= 4444
IG9mZnNldA== 4445
X3B0cg== 4446
IHBpZQ== 4447
IEphbg== 4448
LWdyb3Vw 4449
bW9kdWxl 4450
SXRlbXM= 4451
IEhvd2V2ZXI= 4452
dmVyYWdl 4453
LkZvbnQ= 4454
IGV2ZW50cw== 4455
Lm1pbg== 4456
IGludm9s 4457
emE= 4458
IHdob2xl 4459
IG5lZWRlZA== 4460
IGxpa2VseQ== 4461
cmllZg== 4462
T1JN 4463
dmVyc2lvbg== 4464
IGZpZ2h0 4465
IGVpbg== 4466
RnJhbWU= 4467
MTk3 4468
Z2Vu 4469
IE91dA== 4470
YXZpZ2F0aW9u 4471
TGVuZ3Ro 4472
aWxsZWQ= 4473
cXVlbmNl 4474
ICE9PQ== 4475
IFNvZnR3YXJl 4476
IHdyaXRpbmc= 4477
IHJhdGU= 4478
J10sCg== 4479
UGFuZWw= 4480
aW5uZXI= 4481
IFsi 4482
IHR3 4483
Y2Q= 4484
IDsK 4485
X3N0YXRl 4486
IFNt 4487
IE1hcms= 4488
KSkKCg== 4489
cHJvdA== 4490
IE1y 4491
bWV0aG9k 4492
dXN0b21lcg== 4493
SWNvbg== 4494
IGNvcnJlY3Q= 4495
KG9iamVjdA== 4496
IE1vcmU= 4497
IGZhbGw= 4498
IHZvbA== 4499
IGRldmVsb3BtZW50 4500
ZW50bHk= 4501
IHNp 4502
bWVkaQ== 4503
dmluZw== 4504
UFA= 4505
YWtlcg== 4506
IGluZHU= 4507
IGVsaWY= 4508
IHByZXQ= 4509
IGJlbGlldmU= 4510
bnM= 4511
b21ldA== 4512
MTIz 4513
IEludGVybg== 4514
UmVjdA== 4515
U28= 4516
LmVycm9y 4517
UmVhZA== 4518
IGZlYXR1cmVz 4519
IG1pbnV0ZXM= 4520
LS0t 4521
YXNpbmc= 4522
Y3JldA== 4523
Ij4NCg== 4524
LmFubm90 4525
IGNvbGxlY3Rpb24= 4526
Jy4= 4527
IHNpbWlsYXI= 4528
IHRha2Vu 4529
KCIl 4530
T3JkZXI= 4531
J10K 4532
LW1k 4533
IFRI 4534
YWNlZA== 4535
IGlzbg== 4536
L2o= 4537
IHNvbg== 4538
Z3JhcGg= 4539
IEludGVnZXI= 4540
IG5lY2Vzcw== 4541
cmVlbg== 4542
IHVt 4543
IFw8 4544
IG1vbWVudA== 4545
IGJyaW5n 4546
IGluZGlj 4547
eXNpcw== 4548
TGV2ZWw= 4549
dmVyc2U= 4550
dXJyZW5j 4551
X3Rlc3Q= 4552
IGVudGlyZQ== 4553
RG93bg== 4554
IH0KCgo= 4555
KHJlc3VsdA== 4556
IFJlYWQ= 4557
w6g= 4558
TW9k 4559
IHRyeWluZw== 4560
IiksCg== 4561
IG1lbWJlcg== 4562
IENvcg== 4563
T0RP 4564
LWNvbnRyb2w= 4565
dW50aW1l 4566
IFNpbQ== 4567
RGlhbG9n 4568
cGxvdA== 4569
X29u 4570
IHBoeXM= 4571
fS8= 4572
IG5hbWVzcGFjZQ== 4573
CQ0K 4574
YWNj 4575
UGxheWVy 4576
QVJF 4577
ODk= 4578
IGZvb3Q= 4579
IGJvYXJk 4580
cGFydA== 4581
IHN1cw== 4582
d2lzZQ== 4583
IE1j 4584
IHB1c2g= 4585
QVRB 4586
IHBsZWFzZQ== 4587
cmllZA== 4588
d2VldA== 4589
Yml0 4590
aWRlZA== 4591
VkU= 4592
IFN3 4593
VUI= 4594
IHR5cGVz 4595
ZWRpYQ== 4596
IGNsb3M= 4597
YWNlYm9vaw== 4598
V2hlbg== 4599
IGVkaXQ= 4600
aWdnZXI= 4601
IGVuZXJn 4602
Q29udGFpbmVy 4603
IHBob3Q= 4604
IENvdW50 4605
IEV1cm9wZQ== 4606
Lklz 4607
IFJ1c3M= 4608
cGVlZA== 4609
IFN0cg== 4610
IHB5 4611
IGN1bHQ= 4612
IGRlZmluZWQ= 4613
Y2NvdW50 4614
IG9idA== 4615
LkxvY2F0aW9u 4616
IHRocmVhZA== 4617
aWxsZQ== 4618
IGluc3RlYWQ= 4619
c3Ryb25n 4620
IFNlYw== 4621
VVJF 4622
IGlkZWE= 4623
LnNl 4624
ZW15 4625
c2VsZWN0ZWQ= 4626
Q29ubmVjdGlvbg== 4627
YWNpbmc= 4628
dGhyZWFk 4629
Lm5leHQ= 4630
IGNvbGw= 4631
IGZpbG0= 4632
aXN0aWM= 4633
IGNvbXBldA== 4634
IGNvbm4= 4635
dGhvdWdo 4636
IGNvbXBhbg== 4637
b2NrZXQ= 4638
IHRlYWNo 4639
PSg= 4640
IHBob25l 4641
IGFjdGl2ZQ== 4642
Nzk= 4643
ZGVsZXRl 4644
MTAx 4645
dHJpZXM= 4646
IG1v 4647
IGRlYXRo 4648
fSk7Cgo= 4649
b2NvbA== 4650
V2lkZ2V0 4651
IGFydGljbGU= 4652
cm9kdQ== 4653
YW5kaWQ= 4654
0Ys= 4655
IENy 4656
a2E= 4657
KCk6 4658
bG9vZA== 4659
CQkJCg== 4660
IGFsbW9zdA== 4661
IHNlbGw= 4662
ZXJ2bGV0 4663
cmlw 4664
VW5pdA== 4665
IGFwcGxpYw== 4666
IGNvbm5lY3Q= 4667
IGZlYXR1cmU= 4668
IHZpYQ== 4669
Jyks 4670
IGxpbQ== 4671
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA= 4672
IEd1 4673
RW5naW5l 4674
IGVucw== 4675
IGVudmlyb25tZW50 4676
YmxvY2s= 4677
SEVSRQ== 4678
TlVMTA== 4679
Z3k= 4680
dGFn 4681
KSku 4682
ZXhw 4683
IGNvbXBs 4684
IGluc3RhbGw= 4685
IGNvbXBsZXRl 4686
cXVldWU= 4687
YXR1cmFs 4688
IGdlbmVyYWw= 4689
dGhvbg== 4690
IGFza2Vk 4691
b3Jlcw== 4692
KHJlcw== 4693
IHJlc2VydmVk 4694
U1A= 4695
IOKApg== 4696
xYI= 4697
IHNpZ25pZmlj 4698
T2Zm 4699
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICA= 4700
IEFn 4701
IEp1c3Q= 4702
IEVycm9y 4703
IGluZmw= 4704
YWRhdGE= 4705
IGljb24= 4706
YXNrcw== 4707
Jyc= 4708
X0xP 4709
Py4= 4710
YWNjb3VudA== 4711
ICgq 4712
JykKCg== 4713
cmFw 4714
X3Zhcg== 4715
IEZPUg== 4716
IHBhcnR5 4717
IFlvdXI= 4718
Y2F0 4719
c3RyeQ== 4720
Lm5ldw== 4721
Ym9vdA== 4722
IE5vdg== 4723
IHZlY3Rvcg== 4724
IG5vcm1hbA== 4725
IGZ1cnRoZXI= 4726
UmVwb3NpdG9yeQ== 4727
ODAw 4728
IGRhdGFiYXNl 4729
YXR0bGU= 4730
IG11c2lj 4731
IHNwZWVk 4732
IGRvYw== 4733
cHJvY2Vzcw== 4734
SUdIVA== 4735
LnBhcnNl 4736
IHRha2luZw== 4737
IHZpb2w= 4738
Y2VlZA== 4739
IEFmdGVy 4740
IGZvcndhcmQ= 4741
IGNyaXQ= 4742
Ii8+Cg== 4743
cm90 4744
IGZhaWxlZA== 4745
ZWZvcmU= 4746
IGNvbmNlcm4= 4747
b2U= 4748
YmE= 4749
IHNlbmRlcg== 4750
IHRlcm0= 4751
aGFz 4752
PSIj 4753
IHBvdGVudGlhbA== 4754
TnVt 4755
IHB1Ymxpc2hlZA== 4756
LmNsb3Nl 4757
IEltYWdl 4758
c3RyYWludA== 4759
VUQ= 4760
IE9i 4761
IHByb2JhYmx5 4762
bGlt 4763
IjoK 4764
b2x1bWU= 4765
IGNvbnN1bQ== 4766
NzY= 4767
YWd1ZQ== 4768
ZW5zaW9ucw== 4769
IGludmVzdGln 4770
LXllYXI= 4771
Jyk7 4772
LXNt 4773
IGVuam95 4774
b3JpZw== 4775
ZXJpbmc= 4776
Y3A= 4777
bGVhc2Vk 4778
cGxlbWVudHM= 4779
IHJldHVybnM= 4780
cGF0 4781
Qk8= 4782
IEhvdXNl 4783
LkxhYmVs 4784
IHdlaWdodA== 4785
aWdoYg== 4786
IGNvbmRpdGlvbnM= 4787
IGV4Y2VwdGlvbg== 4788
ZGVzY3JpcHRpb24= 4789
IHRyYWQ= 4790
LXRv 4791
IHt9 4792
IG1vZHVsZQ== 4793
RU5E 4794
LmFw 4795
LnByb3Bz 4796
IGNvbnN0cnVjdG9y 4797
YXZlcw== 4798
IGZhdm9y 4799
IE5vdw== 4800
O2k= 4801
IE1haW4= 4802
X2s= 4803
ZXJpZXM= 4804
4oCZbGw= 4805
dHJhbnNmb3Jt 4806
aW1lc3RhbXA= 4807
UHJl 4808
IG1lcg== 4809
LnJlcw== 4810
c3RhbnQ= 4811
TG9jYXRpb24= 4812
X05BTUU= 4813
IGxvc3M= 4814
IAoK 4815
bmV0 4816
IGVuZ2luZQ== 4817
QmxvY2s= 4818
IGlzc3Vlcw== 4819
IHBhcnNl 4820
IEJhcg== 4821
IHN0YXk= 4822
IEpTT04= 4823
IGRvbQ== 4824
YWlycw== 4825
d25lcg== 4826
IGxvd2Vy 4827
IiwNCg== 4828
IERlbQ== 4829
dWZhY3Q= 4830
IHBz 4831
IHBlcmZlY3Q= 4832
Ukw= 4833
IGVkdWM= 4834
bHM= 4835
ZW1vcnk= 4836
QVJSQU5U 4837
dWdl 4838
IGV4YWN0 4839
LmtleQ== 4840
YWxsZWQ= 4841
ZWNo 4842
aWVm 4843
XC8= 4844
b2tl 4845
IGZvcm1lcg== 4846
YWxsb2M= 4847
IHNpeA== 4848
aWRh 4849
IG1hcmdpbg== 4850
IGhlYXJ0 4851
YWxk 4852
cGFjaw== 4853
LmdldEVsZW1lbnRCeUlk 4854
IFdBUlJBTlQ= 4855
IHJhdGhlcg== 4856
IGJ1aWxkaW5n 4857
ZXJtYW4= 4858
bGljZQ== 4859
IHF1ZXN0aW9ucw== 4860
aXplcw== 4861
bGVnZQ== 4862
aXJlY3Rvcnk= 4863
IGpl 4864
IGNhcw== 4865
cHJvcHM= 4866
dXRm 4867
IHNlY3VyaXR5 4868
IGhvd2V2ZXI= 4869
d2VpZ2h0 4870
IGluc2lkZQ== 4871
IHByZXNpZGVudA== 4872
Q2hhcg== 4873
IFdJVEg= 4874
Lm1hcA== 4875
IGdyYXBo 4876
IHRhZw== 4877
X3N0YXR1cw== 4878
IGF0dGVtcHQ= 4879
b3Bw 4880
dXNlcw== 4881
CWNvbnN0 4882
IHJvdW5k 4883
LCQ= 4884
IGZyaWVuZHM= 4885
RW1haWw= 4886
Pz4= 4887
UmVzb3VyY2U= 4888
S0VZ 4889
b3Nw 4890
LnF1ZXJ5 4891
IE5vcnRo 4892
YWJsZXM= 4893
aXN0cmli 4894
X2NsYXNz 4895
ZWxsbw== 4896
VGhhdA== 4897
0Lo= 4898
cGVjaWFsbHk= 4899
IFByZXNpZGVudA== 4900
IGNhbXBhaWdu 4901
IGFsdA== 4902
YXJlYQ== 4903
IGNoYWxs 4904
IG9wcG9ydA== 4905
LkNvbg== 4906
IGVuZXJneQ== 4907
bGlrZQ== 4908
LnN0cmluZw== 4909
aW5ndG9u 4910
KSo= 4911
eXk= 4912
IHByb2Zlc3Npb24= 4913
aXJ0aA== 4914
IHNlZw== 4915
5pw= 4916
IGhvcg== 4917
aWVycw== 4918
Y2Fu 4919
IGJlaGluZA== 4920
UHJvZHVjdA== 4921
Zmc= 4922
IFNr 4923
LmpwZw== 4924
Pzo= 4925
XTsKCg== 4926
IGNhbGxiYWNr 4927
IEh0dHA= 4928
0Yw= 4929
bG9uZw== 4930
TVM= 4931
QVRI 4932
IHJhaXNl 4933
IHdhbnRlZA== 4934
cm93bg== 4935
dXRvcg== 4936
bHQ= 4937
XT0= 4938
ZWxpbmU= 4939
TUE= 4940
IHNlcGFy 4941
Y3M= 4942
c2VtYg== 4943
RGlz 4944
YnNlcnY= 4945
IFdpbGw= 4946
IHBvbGljeQ== 4947
IHRoaXJk 4948
cGhvbmU= 4949
IGJlZA== 4950
L2c= 4951
Ll9f 4952
IEluYw== 4953
aXppbmc= 4954
LnJlbW92ZQ== 4955
aW5zdGFuY2U= 4956
LnR5cGU= 4957
IHNlcnY= 4958
RWFjaA== 4959
IGhhcg== 4960
IE1lc3NhZ2U= 4961
KGtleQ== 4962
U0VMRUNU 4963
UG9z 4964
KSk7DQo= 4965
IHJlY29tbQ== 4966
IHRyYWluaW5n 4967
IEVudA== 4968
IENoYXI= 4969
aWNodA== 4970
KGZpbGU= 4971
IHByaW9y 4972
R2FtZQ== 4973
IGV4aXQ= 4974
UGFyYW1z 4975
LmNvcmU= 4976
UEM= 4977
bmVz 4978
YW5jZWQ= 4979
KHJlcXVlc3Q= 4980
UGFzc3dvcmQ= 4981
fT4K 4982
IG1hZw== 4983
IHJlbGVhc2U= 4984
IHNoYWxs 4985
dWRlbnQ= 4986
IFNvdXRo 4987
YW5kbw== 4988
Oic= 4989
LlRhYkluZGV4 4990
c2s= 4991
YW5uZXI= 4992
aXNzZXQ= 4993
IG91dHNpZGU= 4994
bGVkZ2U= 4995
IOU= 4996
IFJvYg== 4997
IGltbQ== 4998
IQo= 4999
IFdlYg== 5000
RGVz 5001
QkM= 5002
YW5jaWFs 5003
Um91dGU= 5004
RGVj 5005
ZmVyZW5jZXM= 5006
IHB1cmNo 5007
IE1vZGVs 5008
Y3Rvcg== 5009
Z24= 5010
X3N0YXJ0 5011
X3Vu 5012
Lio= 5013
aXNlcw== 5014
IGdyb3VuZA== 5015
IHVuaXF1ZQ== 5016
IGJlYXV0 5017
eyI= 5018
IHBvdXI= 5019
IE9jdA== 5020
IHRyZWU= 5021
c2V0cw== 5022
X3Jlcw== 5023
JyktPg== 5024
X3JlZw== 5025
KCJc 5026
IGJ5dGU= 5027
Qmw= 5028
IGRhdGluZw== 5029
IG1hdHRlcg== 5030
IFJlbQ== 5031
ICcuLi8= 5032
IEF1Zw== 5033
IExh 5034
ICQo 5035
b3VybmFs 5036
MTEx 5037
aWFt 5038
IHNob3dz 5039
d3JpdGU= 5040
IGJhbGw= 5041
IHNpbXBseQ== 5042
IGZhc3Q= 5043
IG1lbW9yeQ== 5044
QVNT 5045
IE9m 5046
b3ZlZA== 5047
YW50ZQ== 5048
YXVs 5049
aXN0cnk= 5050
KSkpOwo= 5051
IGZpdA== 5052
PHN0cmluZw== 5053
IHBvbGl0aWNhbA== 5054
YW5jZWw= 5055
Xy4= 5056
Y2FyZA== 5057
LmN1cnJlbnQ= 5058
b2No 5059
X2ltYWdl 5060
XHQ= 5061
Iwo= 5062
KEw= 5063
IGluZHVzdHJ5 5064
Y29taW5n 5065
IGV4dHJh 5066
NjAw 5067
IHJlcG9ydGVk 5068
LnN0YXJ0 5069
IHJlc291cmNlcw== 5070
IGltZw== 5071
Zmxvdw== 5072
X0VY 5073
KG51bGw= 5074
IFByZQ== 5075
IHdyb25n 5076
aW50ZXJmYWNl 5077
UGFyYW1ldGVy 5078
bmVycw== 5079
4bs= 5080
dHVyZQ== 5081
ZXJzaXN0 5082
b3VudHJ5 5083
IHNlZW1z 5084
YWxhbmNl 5085
ZGVzdA== 5086
CVN0cmluZw== 5087
IG1haW50 5088
IHVuaXQ= 5089
YWN0ZXJz 5090
IFRS 5091
aWZ1bA== 5092
ZXhwb3J0cw== 5093
cHJvamVjdA== 5094
QXBwbGljYXRpb24= 5095
bGVnYXRl 5096
IHRha2Vz 5097
dGVybQ== 5098
IGV0Yw== 5099
dXN0ZXI= 5100
IGFwcGVhcg== 5101
YWRkcmVzcw== 5102
IGZlbQ== 5103
aHM= 5104
IGhvbQ== 5105
LC0= 5106
IGRpZmZpY3VsdA== 5107
IGNvbWluZw== 5108
T3Blbg== 5109
IHNldHRpbmdz 5110
IFdhcg== 5111
IFRoZW4= 5112
IGF1dG9t 5113
IEZvdW5kYXRpb24= 5114
IHF1aXRl 5115
RGVzY3JpcHRpb24= 5116
IGJsb2c= 5117
aXF1 5118
UFM= 5119
MTEw 5120
X2ZpZWxk 5121
SnNvbg== 5122
U1NJT04= 5123
IFNjaA== 5124
IExP 5125
IGRlc2NyaQ== 5126
IGV2ZXJ5b25l 5127
IHByZXR0eQ== 5128
IGxvbmdlcg== 5129
IG1lbnU= 5130
IGN1cnJlbnRseQ== 5131
c2Vj 5132
IHJlbGF0aW9uc2hpcA== 5133
IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyM= 5134
IE1hcA== 5135
YXNldA== 5136
IHBhcmFtZXRlcnM= 5137
IGNydXNo 5138
Ig0K 5139
SUxJVFk= 5140
aWdyYXRpb24= 5141
IGNvdXQ= 5142
dG90YWw= 5143
IG5hbWVz 5144
bmRlZg== 5145
Iik7 5146
cmllbmQ= 5147
eW5hbWlj 5148
IGVmZm9ydA== 5149
IGFjdHVhbA== 5150
IGZpZWxkcw== 5151
T1VO 5152
dGVycw== 5153
MjUw 5154
IGZpeA== 5155
X21vZGVs 5156
IGNhc2Vz 5157
Q0E= 5158
TXk= 5159
SW50ZXJmYWNl 5160
IFNF 5161
MTk2 5162
XV0= 5163
YWxsZQ== 5164
IE5hdGlvbmFs 5165
IEFycmF5TGlzdA== 5166
aW5saW5l 5167
LlY= 5168
YXJh 5169
cmVmaXg= 5170
YXNj 5171
UmVhZGVy 5172
INC/ 5173
YXN0aWM= 5174
KCgp 5175
Q2w= 5176
LmFubm90YXRpb24= 5177
IHBlcmZvcm1hbmNl 5178
YWlseQ== 5179
LnRvU3RyaW5n 5180
Lm5ldA== 5181
dmlld3M= 5182
LmVuZA== 5183
YXllcnM= 5184
bGF0ZQ== 5185
IEFwcg== 5186
ZWRlcmFs 5187
J10p 5188
LmJvZHk= 5189
IGhpZ2hlcg== 5190
X2Zs 5191
Y3I= 5192
YWxlcnQ= 5193
X25vZGU= 5194
IEdvb2dsZQ== 5195
IGl0c2VsZg== 5196
QXV0aA== 5197
dXJyZW5jeQ== 5198
IHNpZ25pZmljYW50 5199
YXBwZW5k 5200
IHJlc3BlY3Q= 5201
c3RyYXA= 5202
IHVuYQ== 5203
cml0ZXJpYQ== 5204
UE9SVA== 5205
LmFwYWNoZQ== 5206
T3V0cHV0 5207
IHByb2dyZXNz 5208
IG1pZA== 5209
IE1pY3Jvc29mdA== 5210
IHJlc291cmNl 5211
YWJsaXNo 5212
IGRpbQ== 5213
LmxvYWQ= 5214
LkFwcA== 5215
IGRpcmVjdGlvbg== 5216
IGFkZGl0aW9uYWw= 5217
ICAgICAgICAgICAgICAgICAgICAgICAg 5218
IG51bWJlcnM= 5219
IGNvbXBhbmllcw== 5220
LlRo 5221
IHNvdW5k 5222
dXNlcm5hbWU= 5223
IHN0YXRlbWVudA== 5224
IGFsZXJ0 5225
IGNvbnRyYWN0 5226
aG9tZQ== 5227
X2xlbmd0aA== 5228
LkNvbXBvbmVudA== 5229
ZXY= 5230
LkV4 5231
77ya 5232
Ijs= 5233
IEhpZ2g= 5234
ICkKCg== 5235
IFBvaW50 5236
b3Bo 5237
IGxpbmVz 5238
LT5f 5239
IikKCg== 5240
b3g= 5241
YXBwbGljYXRpb24= 5242
IF0K 5243
CgoKCgoK 5244
MTgw 5245
IHNvb24= 5246
Y3Rpb25z 5247
aW5nZXI= 5248
IGpvaW4= 5249
IFBl 5250
IOs= 5251
IGxhcw== 5252
LkU= 5253
Y3Nz 5254
L29y 5255
IFN0YXJ0 5256
IFRP 5257
IHN1YnM= 5258
Y29ubg== 5259
Y29tcG9uZW50cw== 5260
REVCVUc= 5261
cXVhcmU= 5262
RnVuY3Rpb24= 5263
ZW5kYXI= 5264
LmluZGV4 5265
IGZpbGw= 5266
xJk= 5267
IGNob29zZQ== 5268
aG93 5269
IEFtZXJpY2E= 5270
YXNzZXRz 5271
LS0tLS0tLS0tLS0t 5272
IFZhbHVl 5273
IG9mZmljZQ== 5274
IHZlaA== 5275
IHRyYW5zZm9ybQ== 5276
IEFydA== 5277
IGluZGU= 5278
IGZu 5279
IGltcGxlbWVudHM= 5280
YW5nbw== 5281
cGxldGU= 5282
KyI= 5283
dG1w 5284
YW1pbHk= 5285
IGhhc2g= 5286
bWlzc2lvbnM= 5287
RVNU 5288
Z3Q= 5289
UHJvdmlkZXI= 5290
ICAgICAgICAgICAgICAgICAgICAgIA== 5291
IGZsYWc= 5292
IHBhcnRpY2lw 5293
ZGVu 5294
IFJldHVybnM= 5295
IG5vdGU= 5296
w7xy 5297
cG0= 5298
aWRlb3M= 5299
IHNwZWNpZmllZA== 5300
IEVO 5301
ZXN0ZXI= 5302
b2xpZA== 5303
IHVwb24= 5304
KHN0ZA== 5305
CXY= 5306
ICdc 5307
dXo= 5308
IHZlcnQ= 5309
IHZpY3Q= 5310
CXNlbGY= 5311
ICIk 5312
ODU= 5313
Lms= 5314
IGdyb3Vwcw== 5315
Z2l0aHVi 5316
bGFuZw== 5317
IG11dA== 5318
VE8= 5319
IHZl 5320
IFBsZWFzZQ== 5321
OwoKCg== 5322
YWNjZXNz 5323
IHsi 5324
cmVh 5325
IHJpc2s= 5326
aWNrZXI= 5327
b2dnbGU= 5328
CXdoaWxl 5329
QU5H 5330
LnNlbmQ= 5331
NzI= 5332
IHdvbWFu 5333
IGdldHM= 5334
IGlnbg== 5335
IElk 5336
X2xvZw== 5337
T05F 5338
IGV2aWQ= 5339
IEhhcg== 5340
X3N1Yg== 5341
IGVuZGw= 5342
IGluY2x1ZGVk 5343
KCkpOwoK 5344
IEFw 5345
aWdy 5346
IHNlbQ== 5347
IEJsYWNr 5348
ZG9j 5349
X3RhYmxl 5350
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIA== 5351
LXVw 5352
IGNhdXNl 5353
IC4u 5354
IHZhbg== 5355
X2RpY3Q= 5356
IGZvY3Vz 5357
SU5E 5358
Q0VTUw== 5359
LkxvZw== 5360
IG11bHRpcGxl 5361
aWRv 5362
IHJlZ2FyZA== 5363
LU0= 5364
YW5kbGVy 5365
b3Vyc2U= 5366
IGRlZw== 5367
LlU= 5368
IGFkZGl0aW9u 5369
IHZhcmlvdXM= 5370
IHJlY2VpdmU= 5371
0LXQvQ== 5372
IEhU 5373
T2Jq 5374
REY= 5375
IGluY3JlYXNl 5376
IE9wZW4= 5377
XTs= 5378
IGNvbW1pdA== 5379
Pwo= 5380
YXRlZ29yaWVz 5381
YXRvcnk= 5382
c2hpcA== 5383
IE1pY2g= 5384
IGh0bWw= 5385
cm9taXNl 5386
IGxlYXZl 5387
IHN0cmF0ZWc= 5388
YXZlbg== 5389
IENvbnNvbGU= 5390
a25vd24= 5391
LW4= 5392
X0xF 5393
LmNvbXBvbmVudA== 5394
IGJyZQ== 5395
U2Vzc2lvbg== 5396
aWFuY2U= 5397
IGFsaWdu 5398
dHlwZWRlZg== 5399
X3Jlc3VsdA== 5400
IFdIRVJF 5401
LnNwbGl0 5402
IHJlYWRpbmc= 5403
RkFVTFQ= 5404
IGNsbw== 5405
IG5vdGljZQ== 5406
X3By 5407
YXJ0ZXI= 5408
IGxvY2s= 5409
IHN0YW5kYXJk 5410
ZXRpYw== 5411
ZWxsb3c= 5412
IHBhZGRpbmc= 5413
IEhpcw== 5414
IHN0YXRlcw== 5415
X2Nhc3Q= 5416
KFA= 5417
YWE= 5418
IGludGVybmFs 5419
ZWFu 5420
IFBSTw== 5421
IEtleQ== 5422
IGVzcGVjaWFsbHk= 5423
bWluZw== 5424
IGNyb3Nz 5425
IG5hdGlvbmFs 5426
X29iamVjdA== 5427
ZmlsdGVy 5428
IHNjcmlwdA== 5429
LnVwZGF0ZQ== 5430
X2k= 5431
IEFzc2VydA== 5432
L2NvcmU= 5433
JSUlJQ== 5434
IHByb2JsZW1z 5435
aXN0b3I= 5436
IC49 5437
IGFyY2g= 5438
IHdyaXR0ZW4= 5439
IG1pbGl0 5440
TUVOVA== 5441
LmNo 5442
Y2FwZQ== 5443
IE11cw== 5444
X2NvbmZpZw== 5445
IEFQSQ== 5446
Zm9vdA== 5447
IGltYWdlcw== 5448
ZW5kbA== 5449
Lklu 5450
Rmlyc3Q= 5451
IHBsYXRmb3Jt 5452
LnByb3Q= 5453
T3B0aW9u 5454
c3Rl 5455
IFRPRE8= 5456
IGZvcmNl 5457
LmNvbnQ= 5458
CWVjaG8= 5459
IERhdg== 5460
UHRy 5461
KEI= 5462
UlQ= 5463
IEJhc2U= 5464
XVsn 5465
IGFubm91bmM= 5466
Y29uc29sZQ== 5467
IFB5 5468
ZHM= 5469
LmFz 5470
IHByZXZlbnQ= 5471
YXBhbg== 5472
IHsn 5473
fTwv 5474
IFNlcnZpY2U= 5475
IFNlbg== 5476
YWRvcg== 5477
cHJvZmlsZQ== 5478
VG9w 5479
IGl0ZXI= 5480
cG8= 5481
SUVT 5482
SlNPTg== 5483
SUU= 5484
aWFudA== 5485
44CB 5486
X2o= 5487
IFNlcHQ= 5488
X21hcA== 5489
YnVt 5490
KGNvbnRleHQ= 5491
IEhvbWU= 5492
aWFucw== 5493
R0I= 5494
NjM= 5495
IGxpdmluZw== 5496
IHBhdHRlcm4= 5497
KGlucHV0 5498
aWNpZW50 5499
OTk5 5500
Q29yZQ== 5501
IGVudGl0eQ== 5502
IGludGVn 5503
Q2hhbmdlZA== 5504
IHVzZWZ1bA== 5505
LmluZm8= 5506
IHRvb2w= 5507
KGl0ZW0= 5508
IG9r 5509
IGZlZWQ= 5510
SVg= 5511
w6lz 5512
IE5ld3M= 5513
cmVtb3Zl 5514
ZXJyeQ== 5515
CQkJCQkJCQkJ 5516
aXBtZW50 5517
YXJlcw== 5518
RG8= 5519
Q3VycmVudA== 5520
LmNvbnRlbnQ= 5521
Lkdyb3Vw 5522
dXN0cmFs 5523
INGB 5524
fSk= 5525
IHBvcHVsYXI= 5526
IHN0cmU= 5527
IG1ldGhvZHM= 5528
X0VSUk9S 5529
TGVmdA== 5530
Y2Fs 5531
YnNw 5532
LlRvU3RyaW5n 5533
IGRpcg== 5534
IGFsbG93ZWQ= 5535
IGltcGFjdA== 5536
IildCg== 5537
NjI= 5538
LmNvbmZpZw== 5539
IGVsZW1lbnRz 5540
IHByb3Rl 5541
IHRyYWlu 5542
LnRy 5543
cnM= 5544
IFJlcHVibGlj 5545
IFRhc2s= 5546
NjE= 5547
YXJpZXM= 5548
KEQ= 5549
KGdldA== 5550
4oCmCgo= 5551
IHJlbGF0ZWQ= 5552
IHZlcnM= 5553
IHNpbA== 5554
ICIiOwo= 5555
IGNtZA== 5556
IHRlY2hub2xvZ3k= 5557
LndpZHRo 5558
RmxvYXQ= 5559
IFVzZQ== 5560
Qm9keQ== 5561
c2hvdWxk 5562
LmpvaW4= 5563
Rm9udA== 5564
bGx1bQ== 5565
eWNsZQ== 5566
IEJyaXQ= 5567
IG1pdA== 5568
IHNjYWxl 5569
IChf 5570
ZXJuZWw= 5571
IikpCg== 5572
IHNjb3Jl 5573
L3Y= 5574
IHN0dWRlbnQ= 5575
VUM= 5576
LnNob3c= 5577
IGF2ZXJhZ2U= 5578
RW5hYmxlZA== 5579
KGV4 5580
Y29tbW9u 5581
aW1hdGlvbg== 5582
OkAi 5583
Y2hpZQ== 5584
IC4uLgoK 5585
cml2ZXI= 5586
IE1hcmNo 5587
Y2F0ZWdvcnk= 5588
Zmlu 5589
IGNvdXJ0 5590
0LI= 5591
U2VydmVy 5592
IGNvbnRhaW5lcg== 5593
LXN0 5594
X2Zvcg== 5595
IHBhcnRz 5596
IGRlY2lzaW9u 5597
b2Jz 5598
b3Vi 5599
bWl0dGVk 5600
ICQoJyM= 5601
IHNhdw== 5602
IGFwcHJvYWNo 5603
SUNF 5604
IHNheWluZw== 5605
IGFueW9uZQ== 5606
bWV0YQ== 5607
U0Q= 5608
IHNvbmc= 5609
ZGlzcGxheQ== 5610
T3Blcg== 5611
b3V0ZXM= 5612
IGNoYW5uZWw= 5613
IGNoYW5nZWQ= 5614
w6o= 5615
IGZpbmFsbHk= 5616
X251bWJlcg== 5617
UGxlYXNl 5618
4KQ= 5619
b3Jpbmc= 5620
LXJl 5621
IGtpbGw= 5622
IGRydWc= 5623
d2luZG93 5624
IGNvbnZlcnQ= 5625
b21icmU= 5626
IHdheXM= 5627
SGVscGVy 5628
IEZpcnN0 5629
KF9f 5630
dXJpdHk= 5631
IFdpbmRvd3M= 5632
ZWVz 5633
IG1hdA== 5634
cmFwcGVy 5635
IHBsdXM= 5636
YW5nZXM= 5637
Il0u 5638
YXpvbg== 5639
L3Q= 5640
bGF0 5641
YXN0ZQ== 5642
IHByb2ZpbGU= 5643
IHJlYWR5 5644
I2lmbmRlZg== 5645
cm90ZQ== 5646
IHNlbnNl 5647
R2VuZXI= 5648
IENvbmZpZw== 5649
b215 5650
IEp1bmU= 5651
IGxhdGVzdA== 5652
IHNhZg== 5653
IHJlZ2lvbg== 5654
IGRlZXA= 5655
d2l0Y2g= 5656
IFBhcms= 5657
fWA= 5658
IEZyb20= 5659
SUk= 5660
IGN2 5661
IHJlYWNo 5662
IGNvdW50ZXI= 5663
IFdvcms= 5664
IFVSTA== 5665
IFVwZGF0ZQ== 5666
JywNCg== 5667
IGltbWVkaQ== 5668
Y2xvc2U= 5669
YWRvcw== 5670
ZmVycmVk 5671
IHdlZWtz 5672
dXJn 5673
IGRhbWFnZQ== 5674
IGxvc3Q= 5675
YW5p 5676
X2xv 5677
IGhpbXNlbGY= 5678
IGRvZw== 5679
KV0K 5680
778= 5681
cGly 5682
dHQ= 5683
IHBhcGVy 5684
IHRoZW1z 5685
c2Vjb25k 5686
IHN0YWZm 5687
IElucHV0 5688
Iis= 5689
IEZhY2Vib29r 5690
IGFsbG9j 5691
IHNjaGVk 5692
QUNF 5693
IHRoZW1zZWx2ZXM= 5694
IENvbXBvbmVudA== 5695
IGRyaXZlcg== 5696
amE= 5697
KHBhdGg= 5698
IGNhdGVnb3J5 5699
YWxscw== 5700
cHU= 5701
bGx1bWluYXRl 5702
IEFjdGlvbg== 5703
LmJ1dHRvbg== 5704
IEdM 5705
aXN0aWNz 5706
IG9pbA== 5707
IHN0b2Nr 5708
Pic= 5709
IGRlYWQ= 5710
VkFM 5711
UVVF 5712
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq 5713
IGNoYXJn 5714
UmV0dXJu 5715
IGZ1bA== 5716
ZG9t 5717
IHJ1bGVz 5718
IG1vZGlmeQ== 5719
IGV2YWw= 5720
aGFt 5721
YXRlbWVudA== 5722
XDw= 5723
dWxh 5724
PUZhbHNl 5725
UkE= 5726
IGNvbnRhaW5z 5727
NzQ= 5728
IHN0YWNr 5729
bWFy 5730
IHt9Cg== 5731
IHVuZGVmaW5lZA== 5732
QXNz 5733
IENoaW5h 5734
dmV5 5735
Kgo= 5736
IHBsYXlpbmc= 5737
KS8= 5738
YWN0b3I= 5739
IGJvdHRvbQ== 5740
bGllcg== 5741
IE51bWJlcg== 5742
IGNvdXBsZQ== 5743
REM= 5744
IFNP 5745
Z29y 5746
LnNldFRleHQ= 5747
c3VjY2Vzcw== 5748
Y29tbWFuZA== 5749
RmlsdGVy 5750
IE91cg== 5751
X2l0ZW0= 5752
IGN0eA== 5753
IHJvYWQ= 5754
VmVyc2lvbg== 5755
Y2FzZQ== 5756
dXJ0 5757
YXZpb3I= 5758
eWNo 5759
c2VtYmx5 5760
IFByb2R1Y3Q= 5761
IGhlbGQ= 5762
YWZl 5763
IGluY2x1ZGVz 5764
PHF1b3Rl 5765
IGF2b2lk 5766
IEZpbg== 5767
IE1vZA== 5768
IHRhYg== 5769
YW5v 5770
w7E= 5771
aXBwaW5n 5772
LWU= 5773
IGluc2VydA== 5774
dGFyZ2V0 5775
Y2hhbg== 5776
Lk1vZGVs 5777
SU1F 5778
XAo= 5779
IG1hY2hpbmU= 5780
YXZ5 5781
IE5P 5782
IEludGVy 5783
IG9wZXJhdGlvbg== 5784
bW9kYWw= 5785
VGFn 5786
XTo= 5787
IHByb2R1Y3Rpb24= 5788
IGFyZWFz 5789
IHJlbg== 5790
X2Zyb20= 5791
bmJzcA== 5792
IG9wZXJhdG9y 5793
bWVu 5794
YXBwZWQ= 5795
X3Blcg== 5796
emVu 5797
KCIu 5798
LnNhdmU= 5799
PSJ7ew== 5800
IHRvcg== 5801
KHJlc3BvbnNl 5802
IGNhbmRpZA== 5803
IGNvbnY= 5804
YWlsZWQ= 5805
IExpYg== 5806
Y29tcA== 5807
dXJh 5808
77+9 5809
IEhlcmU= 5810
IGFyZ3VtZW50 5811
aG9vZA== 5812
IGVzdGFibGlzaA== 5813
b2dyYXBoeQ== 5814
IG9uQ2xpY2s= 5815
YW1iZGE= 5816
IHNjaA== 5817
IG1vdmll 5818
IHNlYw== 5819
IGFjdGl2aXR5 5820
2Kc= 5821
IHNxbA== 5822
X2FsbA== 5823
aW5jaXA= 5824
IHByb3ZpZGVz 5825
IHN5cw== 5826
YWNrZXQ= 5827
IHdhc24= 5828
IHVzZXM= 5829
IEZ1bmN0aW9u 5830
Lmdvb2dsZQ== 5831
IFJlc3VsdA== 5832
ODQ= 5833
VmlzaWJsZQ== 5834
YWdtYQ== 5835
ZWxjb21l 5836
IFN5 5837
IENlbnQ= 5838
QUxTRQ== 5839
YWNpw7Nu 5840
RVhU 5841
IGxpY2Vuc2U= 5842
IExvbmc= 5843
IGFjY29t 5844
IGFiaWxpdHk= 5845
LmhlaWdodA== 5846
QWN0aXZl 5847
b2xvZ2ljYWw= 5848
b2x5 5849
KSks 5850
LlNl 5851
IHBhcmFtZXRlcg== 5852
cHJpdGU= 5853
QUJJTElUWQ== 5854
LnNlcnZpY2U= 5855
IEdyb3Vw 5856
X3F1ZXJ5 5857
IEl0ZW0= 5858
aW5pbmc= 5859
IGp1ZA== 5860
aW1z 5861
Zml4 5862
aW5kZXI= 5863
YWdyYW0= 5864
IGZ1bmN0aW9ucw== 5865
IGV4cGVyaQ== 5866
IEVt 5867
IHJvdA== 5868
IHBlbg== 5869
LmJ0bg== 5870
IEFT 5871
I2lmZGVm 5872
IGNob2ljZQ== 5873
IFBhZ2U= 5874
X1BSTw== 5875
UVU= 5876
5Y8= 5877
YW50aXR5 5878
wq0= 5879
d29yZHM= 5880
IHJlYWRvbmx5 5881
IGZsZXg= 5882
cHJvdGVjdGVk 5883
IEFueQ== 5884
IGNoYXJhY3RlcnM= 5885
ZW5jZWQ= 5886
IEp1bHk= 5887
aWxlcg== 5888
Q2FyZA== 5889
dXJhbmNl 5890
IHJldg== 5891
LmV2ZW50 5892
YWx5 5893
MTMw 5894
IHdvbmRlcg== 5895
IFBvcnQ= 5896
IGxlZ2Fs 5897
cm9sZQ== 5898
IHRlbg== 5899
IGdvZXM= 5900
TVA= 5901
d2hpdGU= 5902
KToNCg== 5903
KSkNCg== 5904
IHJlZmVyZW5jZQ== 5905
IG1pcw== 5906
IFByb2plY3Q= 5907
aWNrcw== 5908
PiY= 5909
Q09O 5910
IHJlcGw= 5911
IHJlZ3VsYXI= 5912
U3RvcmFnZQ== 5913
cmFtZXdvcms= 5914
IGdvYWw= 5915
IHRvdWNo 5916
LndpZGdldA== 5917
IGJ1aWx0 5918
ZGVz 5919
UGFydA== 5920
KHJl 5921
IHdvcnRo 5922
aGli 5923
Z2FtZQ== 5924
OTE= 5925
MTky 5926
INCy 5927
YWNpb24= 5928
IFdoaXRl 5929
KHR5cGU= 5930
KGA= 5931
ODE= 5932
IG5hdHVyYWw= 5933
IGluag== 5934
IGNhbGN1bA== 5935
IEFwcmls 5936
Lkxpc3Q= 5937
IGFzc29jaWF0ZWQ= 5938
CVN5c3RlbQ== 5939
fn4= 5940
PVs= 5941
IHN0b3JhZ2U= 5942
IGJ5dGVz 5943
IHRyYXZlbA== 5944
IHNvdQ== 5945
IHBhc3NlZA== 5946
IT0= 5947
YXNjcmlwdA== 5948
Lm9wZW4= 5949
IGdyaWQ= 5950
IGJ1cw== 5951
IHJlY29nbg== 5952
QWI= 5953
IGhvbg== 5954
IENlbnRlcg== 5955
IHByZWM= 5956
YnVpbGQ= 5957
NzM= 5958
SFRNTA== 5959
IFNhbg== 5960
IGNvdW50cmllcw== 5961
YWxlZA== 5962
dG9rZW4= 5963
a3Q= 5964
IHF1YWw= 5965
TGFzdA== 5966
YWRvdw== 5967
IG1hbnVmYWN0 5968
aWRhZA== 5969
amFuZ28= 5970
TmV4dA== 5971
eGY= 5972
LmE= 5973
IHBvcm5v 5974
IFBN 5975
ZXJ2ZQ== 5976
aXRpbmc= 5977
X3Ro 5978
Y2k= 5979
PU5vbmU= 5980
Z3M= 5981
IGxvZ2lu 5982
YXRpdmVz 5983
J10pOwo= 5984
xIU= 5985
IGlsbA== 5986
SUE= 5987
Y2hpbGRyZW4= 5988
RE8= 5989
IGxldmVscw== 5990
IHt7 5991
IGxvb2tz 5992
ICIj 5993
VG9TdHJpbmc= 5994
IG5lY2Vzc2FyeQ== 5995
ICAgCg== 5996
Y2VsbA== 5997
RW50cnk= 5998
ICcj 5999
IGV4dHJlbQ== 6000
U2VsZWN0b3I= 6001
IHBsYWNlaG9sZGVy 6002
TG9hZA== 6003
IHJlbGVhc2Vk 6004
T1JF 6005
RW51bWVy 6006
IFRW 6007
U0VU 6008
aW5x 6009
UHJlc3M= 6010
IERlcGFydG1lbnQ= 6011
IHByb3BlcnRpZXM= 6012
IHJlc3BvbmQ= 6013
U2VhcmNo 6014
YWVs 6015
IHJlcXU= 6016
IEJvb2s= 6017
Lwo= 6018
KHN0 6019
IGZpbmFuY2lhbA== 6020
aWNrZXQ= 6021
X2lucHV0 6022
IHRocmVhdA== 6023
KGlu 6024
U3RyaXA= 6025
7J0= 6026
w6fDo28= 6027
NzE= 6028
IGV2aWRlbmNl 6029
KSk7 6030
IEJybw== 6031
IFtdOwo= 6032
IG91 6033
YnVm 6034
U2NyaXB0 6035
ZGF0 6036
IHJ1bGU= 6037
I2ltcG9ydA== 6038
PSIv 6039
U2VyaWFs 6040
IHN0YXJ0aW5n 6041
W2luZGV4 6042
YWU= 6043
IGNvbnRyaWI= 6044
c2Vzc2lvbg== 6045
X25ldw== 6046
dXRhYmxl 6047
b2Jlcg== 6048
ICIuLw== 6049
IGxvZ2dlcg== 6050
IHJlY2VudGx5 6051
IHJldHVybmVk 6052
DQ0K 6053
KSkpCg== 6054
aXRpb25z 6055
IHNlZWs= 6056
IGNvbW11bmlj 6057
ICIu 6058
IHVzZXJuYW1l 6059
RUNU 6060
RFM= 6061
IG90aGVyd2lzZQ== 6062
IEdlcm1hbg== 6063
LmF3 6064
QWRhcHRlcg== 6065
aXhlbA== 6066
IHN5c3RlbXM= 6067
IGRyb3A= 6068
ODM= 6069
IHN0cnVjdHVyZQ== 6070
ICQoIiM= 6071
ZW5jaWVz 6072
YW5uaW5n 6073
IExpbms= 6074
IFJlc3BvbnNl 6075
IHN0cmk= 6076
xbw= 6077
IERC 6078
5pc= 6079
YW5kcm9pZA== 6080
c3VibWl0 6081
b3Rpb24= 6082
OTI= 6083
KEA= 6084
LnRlc3Q= 6085
ODI= 6086
CgoKCgoKCgo= 6087
XTsNCg== 6088
IGRpcmVjdGx5 6089
ICIl 6090
cmlz 6091
ZWx0YQ== 6092
QUlM 6093
KXsNCg== 6094
bWluZQ== 6095
ICAgICAgICAgICAgICAgICAgICAgICAgICA= 6096
KGs= 6097
Ym9u 6098
YXNpYw== 6099
cGl0ZQ== 6100
X19f 6101
TWF4 6102
IGVycm9ycw== 6103
IFdoaWxl 6104
IGFyZ3VtZW50cw== 6105
IGVuc3VyZQ== 6106
UmlnaHQ= 6107
LWJhc2Vk 6108
V2Vi 6109
IC09 6110
IGludHJvZHU= 6111
IEluc3Q= 6112
IFdhc2g= 6113
b3JkaW4= 6114
am9pbg== 6115
RGF0YWJhc2U= 6116
IGdyYWQ= 6117
IHVzdWFsbHk= 6118
SVRF 6119
UHJvcHM= 6120
Pz4K 6121
IEdv 6122
QE92ZXJyaWRl 6123
UkVG 6124
IGlw 6125
IEF1c3RyYWw= 6126
IGlzdA== 6127
Vmlld0J5SWQ= 6128
IHNlcmlvdXM= 6129
IGN1c3RvbWVy 6130
LnByb3RvdHlwZQ== 6131
b2Rv 6132
Y29y 6133
IGRvb3I= 6134
IFdJVEhPVVQ= 6135
IHBsYW50 6136
IGJlZ2Fu 6137
IGRpc3RhbmNl 6138
KCkpLg== 6139
IGNoYW5jZQ== 6140
IG9yZA== 6141
Y2FtZQ== 6142
cHJhZ21h 6143
IHByb3RlY3Q= 6144
cmFnbWVudA== 6145
IE5vZGU= 6146
ZW5pbmc= 6147
0Yc= 6148
IHJvdXRl 6149
IFNjaG9vbA== 6150
aGk= 6151
IG5laWdoYg== 6152
QWZ0ZXI= 6153
bGljaXQ= 6154
IGNvbnRy 6155
IHByaW1hcnk= 6156
QUE= 6157
LldyaXRlTGluZQ== 6158
dXRpbHM= 6159
IGJp 6160
UmVk 6161
LkxpbnE= 6162
Lm9iamVjdA== 6163
IGxlYWRlcnM= 6164
dW5pdGllcw== 6165
IGd1bg== 6166
b250aA== 6167
IERldg== 6168
RklMRQ== 6169
IGNvbW1lbnRz 6170
X2xlbg== 6171
YXJyb3c= 6172
YW1vdW50 6173
UmFuZ2U= 6174
c2VydA== 6175
R3JpZFZpZXc= 6176
IHVwZGF0ZWQ= 6177
IE1v 6178
IGluZm9ybQ== 6179
b2NpZXR5 6180
YWxh 6181
QWNjZXNz 6182
IGhhYg== 6183
IGNyZWF0 6184
X2FyZw== 6185
IEphbnVhcnk= 6186
IERheQ== 6187
IikNCg== 6188
dXBsZQ== 6189
ZG9jdW1lbnQ= 6190
Z29yaXRo 6191
bWVudQ== 6192
IE92ZXI= 6193
YmI= 6194
LnRpdGxl 6195
X291dA== 6196
IGxlZA== 6197
dXJp 6198
ID8+PC8= 6199
Z2w= 6200
IGJhbms= 6201
YXltZW50 6202
CXByaW50Zg== 6203
TUQ= 6204
IHNhbXBsZQ== 6205
IGhhbmRz 6206
IFZlcnNpb24= 6207
dWFyaW8= 6208
IG9mZmVycw== 6209
aXR5RW5naW5l 6210
IHNoYXBl 6211
IHNsZWVw 6212
X3BvaW50 6213
U2V0dGluZ3M= 6214
IGFjaGll 6215
IHNvbGQ= 6216
b3Rh 6217
LmJpbmQ= 6218
QW0= 6219
IHNhZmU= 6220
U3RvcmU= 6221
IHNoYXJlZA== 6222
IHByaXY= 6223
X1ZBTA== 6224
IHNlbnM= 6225
KXs= 6226
IHJlbWVtYmVy 6227
c2hhcmVk 6228
ZWxlbWVudA== 6229
IHNob290 6230
VmVydA== 6231
Y291dA== 6232
IGVudg== 6233
X2xhYmVs 6234
ID4K 6235
cnVu 6236
IHNjZW5l 6237
KGFycmF5 6238
ZGV2aWNl 6239
X3RpdGxl 6240
YWdvbg== 6241
XQ0K 6242
YWJ5 6243
IGJlY2FtZQ== 6244
Ym9vbGVhbg== 6245
IHBhcms= 6246
IENvZGU= 6247
dXBsb2Fk 6248
cmlkYXk= 6249
IFNlcHRlbWJlcg== 6250
RmU= 6251
IHNlbg== 6252
Y2luZw== 6253
Rkw= 6254
Q29s 6255
dXRz 6256
X3BhZ2U= 6257
aW5u 6258
IGltcGxpZWQ= 6259
YWxpbmc= 6260
IHlvdXJzZWxm 6261
LkNvdW50 6262
Y29uZg== 6263
IGF1ZA== 6264
X2luaXQ= 6265
Lik= 6266
IHdyb3Rl 6267
MDAz 6268
Tkc= 6269
LkVycm9y 6270
5Ls= 6271
LmZvcg== 6272
IGVxdWFs 6273
IFJlcXVlc3Q= 6274
IHNlcmlhbA== 6275
IGFsbG93cw== 6276
WFg= 6277
IG1pZGRsZQ== 6278
Y2hvcg== 6279
MTk1 6280
OTQ= 6281
w7g= 6282
ZXJ2YWw= 6283
LkNvbHVtbg== 6284
cmVhZGluZw== 6285
IGVzY29ydA== 6286
IEF1Z3VzdA== 6287
IHF1aWNrbHk= 6288
IHdlYXA= 6289
IENH 6290
cm9wcmk= 6291
aG8= 6292
IGNvcA== 6293
KHN0cnVjdA== 6294
IEJpZw== 6295
IHZz 6296
IGZyZXF1 6297
LlZhbHVl 6298
IGFjdGlvbnM= 6299
IHByb3Blcg== 6300
IGlubg== 6301
IG9iamVjdHM= 6302
IG1hdHJpeA== 6303
YXZhc2NyaXB0 6304
IG9uZXM= 6305
Lmdyb3Vw 6306
IGdyZWVu 6307
IHBhaW50 6308
b29scw== 6309
eWNs 6310
ZW5jb2Rl 6311
b2x0 6312
Y29tbWVudA== 6313
LmFwaQ== 6314
RGly 6315
IHVuZQ== 6316
aXpvbnQ= 6317
LnBvc2l0aW9u 6318
IGRlc2lnbmVk 6319
X3ZhbA== 6320
YXZp 6321
aXJpbmc= 6322
dGFi 6323
IGxheWVy 6324
IHZpZXdz 6325
IHJldmU= 6326
cmFlbA== 6327
IE9O 6328
cmljcw== 6329
MTYw 6330
bnA= 6331
IGNvcmU= 6332
KCkpOw0K 6333
TWFpbg== 6334
IGV4cGVydA== 6335
CQkNCg== 6336
X2Vu 6337
IC8+ 6338
dXR0ZXI= 6339
SUFM 6340
YWlscw== 6341
IEtpbmc= 6342
Ki8KCg== 6343
IE1ldA== 6344
X2VuZA== 6345
YWRkcg== 6346
b3Jh 6347
IGly 6348
TWlu 6349
IHN1cnBy 6350
IHJlcGU= 6351
IGRpcmVjdG9yeQ== 6352
UFVU 6353
LVM= 6354
IGVsZWN0aW9u 6355
aGFwcw== 6356
LnByZQ== 6357
Y20= 6358
VmFsdWVz 6359
ICIK 6360
Y29sdW1u 6361
aXZpbA== 6362
TG9naW4= 6363
aW51ZQ== 6364
OTM= 6365
IGJlYXV0aWZ1bA== 6366
IHNlY3JldA== 6367
KGV2ZW50 6368
IGNoYXQ= 6369
dW1z 6370
IG9yaWdpbg== 6371
IGVmZmVjdHM= 6372
IG1hbmFnZW1lbnQ= 6373
aWxsYQ== 6374
dGs= 6375
IHNldHRpbmc= 6376
IENvdXI= 6377
IG1hc3NhZ2U= 6378
CWVuZA== 6379
IGhhcHB5 6380
IGZpbmlzaA== 6381
IGNhbWVyYQ== 6382
IFZlcg== 6383
IERlbW9jcg== 6384
IEhlcg== 6385
KFE= 6386
Y29ucw== 6387
aXRh 6388
ICcu 6389
e30= 6390
CUM= 6391
IHN0dWZm 6392
MTk0 6393
IDoK 6394
IEFS 6395
VGFzaw== 6396
aGlkZGVu 6397
ZXJvcw== 6398
SUdO 6399
YXRpbw== 6400
IEhlYWx0aA== 6401
b2x1dGU= 6402
RW50ZXI= 6403
Jz4= 6404
IFR3aXR0ZXI= 6405
IENvdW50eQ== 6406
c2NyaWJl 6407
ID0+Cg== 6408
IGh5 6409
Zml0 6410
IG1pbGl0YXJ5 6411
IHNhbGU= 6412
cmVxdWlyZWQ= 6413
bm9u 6414
Ym9vdHN0cmFw 6415
aG9sZA== 6416
cmlt 6417
LW9sZA== 6418
IERvd24= 6419
IG1lbnRpb24= 6420
Y29udGFjdA== 6421
X2dyb3Vw 6422
b2RheQ== 6423
IHRvd24= 6424
IHNvbHV0aW9u 6425
dWF0ZQ== 6426
ZWxsaW5n 6427
XS0+ 6428
b3Rlcw== 6429
ZW50YWw= 6430
b21lbg== 6431
b3NwaXRhbA== 6432
IFN1cA== 6433
X0VO 6434
IHNsb3c= 6435
U0VTU0lPTg== 6436
IGJsdWU= 6437
YWdv 6438
IGxpdmVz 6439
IF4= 6440
LnVu 6441
aW5zdA== 6442
ZW5nZQ== 6443
IGN1c3RvbWVycw== 6444
IGNhc3Q= 6445
dWRnZXQ= 6446
77yB 6447
aWNlbnM= 6448
IGRldGVybWlu 6449
U2VsZWN0ZWQ= 6450
X3Bs 6451
dWV1ZQ== 6452
IGRhcms= 6453
Ly8KCg== 6454
c2k= 6455
dGhlcm4= 6456
IEphcGFu 6457
L3c= 6458
UFU= 6459
IEVhc3Q= 6460
b3ZpZQ== 6461
IHBhY2thZ2U= 6462
IG5vcg== 6463
IGFwaQ== 6464
Ym90 6465
Il07Cg== 6466
X3Bvc3Q= 6467
dWxhdGU= 6468
IGNsdWI= 6469
JykpOwo= 6470
IGxvb3A= 6471
UElP 6472
aW9uZQ== 6473
c2hvdA== 6474
SW5pdGlhbA== 6475
IHBsYXllZA== 6476
cmVnaXN0ZXI= 6477
cm91Z2h0 6478
X21heA== 6479
YWNlbWVudA== 6480
bWF0Y2g= 6481
cmFwaGljcw== 6482
QVNU 6483
IGV4aXN0aW5n 6484
IGNvbXBsZXg= 6485
REE= 6486
LkNo 6487
LmNvbW1vbg== 6488
bW8= 6489
ICcuLi8uLi8= 6490
aXRv 6491
IGFuYWx5c2lz 6492
IGRlbGl2ZXI= 6493
ICAgICAgICAgICAgICAgIAo= 6494
aWR4 6495
w6A= 6496
b25nbw== 6497
IEVuZ2xpc2g= 6498
PCEtLQ== 6499
IGNvbXB1dGVy 6500
RU5TRQ== 6501
IHBhcw== 6502
IHJhaXM= 6503
SGFzaA== 6504
IG1vYmlsZQ== 6505
IG93bmVy 6506
RklH 6507
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg 6508
dGhlcw== 6509
IGF0dHI= 6510
d2Q= 6511
LnRpbWU= 6512
YXdu 6513
IHRyZWF0bWVudA== 6514
IEFj 6515
LlZpZXc= 6516
aW1wbA== 6517
bW9yZQ== 6518
cGFzcw== 6519
IGhh 6520
LmZyb20= 6521
IGxlYWRpbmc= 6522
RkZGRg== 6523
KGVycm9y 6524
LnVp 6525
YXRhcg== 6526
YWRlcnM= 6527
ZGF0ZXM= 6528
IHp1 6529
IGZsb3c= 6530
VGFyZ2V0 6531
IGludm9sdmVk 6532
IGlv 6533
cGFyc2U= 6534
JF8= 6535
aGVzdA== 6536
LmludA== 6537
LWl0ZW0= 6538
YXN5 6539
U3A= 6540
IHNoaWZ0 6541
TlQ= 6542
IHRm 6543
X1RS 6544
LndlYg== 6545
Q1M= 6546
IH0p 6547
IGV5ZXM= 6548
MTI1 6549
MTA1 6550
X3o= 6551
Jyk7DQo= 6552
aWZvcm4= 6553
IHtA 6554
IG5pY2U= 6555
Lmxpc3Q= 6556
ICAgIA0K 6557
IGZsb29y 6558
IHJlZGlyZWN0 6559
IFVL 6560
KFsn 6561
IHdpc2g= 6562
IGNhcHQ= 6563
bGVnYWw= 6564
IElP 6565
IHN0YWdl 6566
LlN0cmluZw== 6567
IEFmcg== 6568
aWdlbg== 6569
IFNI 6570
RGVsZXRl 6571
ZWxscw== 6572
IHNvbGlk 6573
IG1lZXRpbmc= 6574
IHdvcmtlZA== 6575
IGVkaXRvcg== 6576
aW55 6577
0Lw= 6578
X3JlYWQ= 6579
Lklk 6580
ZWZm 6581
T2Zmc2V0 6582
Y2hh 6583
VVNFUg== 6584
CQkgICA= 6585
aXBwZWQ= 6586
IGRpY3Q= 6587
IFJ1bg== 6588
LmhwcA== 6589
IGFuZw== 6590
eG1s 6591
aW1wbGU= 6592
IG1lZGljYWw= 6593
X3Rva2Vu 6594
Y29ubmVjdA== 6595
IGhvdXI= 6596
IGNvbnRyb2xsZXI= 6597
X21lc3NhZ2U= 6598
VUlE 6599
R3I= 6600
YW5kZWQ= 6601
X0NI 6602
IGJvb2tz 6603
IHNwZWFr 6604
YW1pbmc= 6605
IG1vdW50 6606
UmVjb3Jk 6607
CXN0cnVjdA== 6608
LldlYg== 6609
b25kb24= 6610
IC8vCg== 6611
IGZlbHQ= 6612
LkF1dG8= 6613
aWRnZQ== 6614
X3Bvcw== 6615
UFI= 6616
IG1vZGVybg== 6617
Q29sbGVjdGlvbg== 6618
X21zZw== 6619
Q0Q= 6620
IExv 6621
IHNlY29uZHM= 6622
aWJseQ== 6623
LmVxdWFscw== 6624
IGludGVybmF0aW9uYWw= 6625
I3ByYWdtYQ== 6626
b290aA== 6627
V3JpdGVy 6628
aWF0ZQ== 6629
IGNlbGU= 6630
IEJpdA== 6631
aXZv 6632
aXZlcnk= 6633
cmQ= 6634
SEVDSw== 6635
IGNhY2hl 6636
LmNvdW50 6637
IHJvbGw= 6638
LlJlYWQ= 6639
MTA4 6640
UkVE 6641
IHNldHVw 6642
aXpvbnRhbA== 6643
bW9kZWxz 6644
YXJndg== 6645
IGNvbnNpZGVyZWQ= 6646
PSIuLi8= 6647
c2V0dGluZ3M= 6648
IFJlbA== 6649
IGdyb3d0aA== 6650
IG1peA== 6651
IFdhc2hpbmd0b24= 6652
IHBsdA== 6653
IElN 6654
4bo= 6655
IHR1cm5lZA== 6656
IERhdGVUaW1l 6657
IFdlZA== 6658
KHVybA== 6659
ICIt 6660
IGxldHRlcg== 6661
QXN5bmM= 6662
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIA== 6663
IE9jdG9iZXI= 6664
X2xpbmU= 6665
IGF0dGVudGlvbg== 6666
IGNvbGxlY3Q= 6667
IEhhc2g= 6668
IGltYWc= 6669
VHJlZQ== 6670
IHNpdHVhdGlvbg== 6671
ZXR0ZQ== 6672
X25v 6673
SVZF 6674
IHZvbg== 6675
LnRhcmdldA== 6676
IGtub3dsZWRnZQ== 6677
IGRyaXZl 6678
LnBvc3Q= 6679
IGJsb29k 6680
IGNpdA== 6681
cHJpbWFyeQ== 6682
IGNvbmZpZ3VyYXRpb24= 6683
dGVl 6684
IHBob3Rv 6685
aXNvZGU= 6686
VHJhY2U= 6687
IGdhdmU= 6688
IHNob3Q= 6689
IEFpcg== 6690
IG1vdGhlcg== 6691
cHJpY2U= 6692
IG1vcm5pbmc= 6693
KSl7Cg== 6694
LXg= 6695
IHRyYWRl 6696
IGRlc2M= 6697
ICYmCg== 6698
IHBhcmVudHM= 6699
QXBp 6700
5Yg= 6701
dGVk 6702
d2Vy 6703
IOY= 6704
IHN5 6705
IEtl 6706
UGFyc2Vy 6707
5YU= 6708
YW5jeQ== 6709
IHBpZWNl 6710
aWZvcm5pYQ== 6711
dG9TdHJpbmc= 6712
cmFu 6713
aWRpbmc= 6714
UFRJT04= 6715
Y29tZXM= 6716
L2xpYw== 6717
LmNsaWVudA== 6718
RWw= 6719
TG9uZw== 6720
IHByb2Zlc3Npb25hbA== 6721
cnVwdA== 6722
dmE= 6723
IGNvbXBsZXRlbHk= 6724
IHByYWN0aWNl 6725
MDAy 6726
IHNlbGVjdGlvbg== 6727
UmVt 6728
aW5p 6729
IGNhbQ== 6730
UkVF 6731
IHNpdGVz 6732
cGE= 6733
QVRVUw== 6734
0YHRgg== 6735
YXJyYW50 6736
Kig= 6737
X0tFWQ== 6738
IEJ1dHRvbg== 6739
IEZyaWRheQ== 6740
c2VxdQ== 6741
IHJlYWRlcg== 6742
IG1lc3NhZ2Vz 6743
6K8= 6744
IGJ1Zg== 6745
S2U= 6746
IG5vdg== 6747
SFA= 6748
TXNn 6749
YWxpZ24= 6750
YXJpbHk= 6751
ICcs 6752
X3dpdGg= 6753
IGRhcw== 6754
IGhlYXJk 6755
YXRvbWlj 6756
cmlhbA== 6757
KVs= 6758
IGRpc2U= 6759
QGVuZA== 6760
IGdvbGQ= 6761
IGZhaXI= 6762
IHNhbGVz 6763
LkJ1dHRvbg== 6764
c3RyaWN0 6765
c2F2ZQ== 6766
IG1lYXN1cmU= 6767
ICIr 6768
ZWNhdXNl 6769
Vmlld0NvbnRyb2xsZXI= 6770
IFRhYmxl 6771
LnBhcmFt 6772
IGRlY2lkZWQ= 6773
KCgo 6774
SU5GTw== 6775
IG9wcG9ydHVuaXR5 6776
VGU= 6777
SUNFTlNF 6778
Y2NvcmRpbmc= 6779
a2k= 6780
IFVO 6781
IGNvbnRhaW4= 6782
IG1hbmFnZXI= 6783
IHBhaW4= 6784
IEZpcmU= 6785
cm9tZQ== 6786
IHBsYW5z 6787
Rm91bmQ= 6788
bGF5 6789
IERlY2VtYmVy 6790
IGluZmx1 6791
w7o= 6792
cmVuY2g= 6793
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg 6794
YXppbmc= 6795
YnJpZWY= 6796
Y2FsbA== 6797
d29vZA== 6798
IGxvYWRlZA== 6799
IGdyYW5k 6800
L2Y= 6801
aW1w 6802
X1U= 6803
MTI3 6804
U1RS 6805
4oCi 6806
IGNyZWRpdA== 6807
LkNvbG9y 6808
b3JnZQ== 6809
UVVFU1Q= 6810
IGRpZmZlcmVuY2U= 6811
IFBD 6812
d2FyZ3M= 6813
IHB1Yg== 6814
dW5kYXk= 6815
IGZyYQ== 6816
Lm1heA== 6817
IHRyaWVk 6818
YW5uZWxz 6819
c2VuZA== 6820
IHJlcG9ydHM= 6821
IGFkdWx0 6822
5Lo= 6823
IGNvbnNpc3Q= 6824
IFN0cmVldA== 6825
IFByb2dyYW0= 6826
U1FM 6827
TWF0cml4 6828
b3VuY2ls 6829
LUE= 6830
CXc= 6831
IHdob3Nl 6832
IHJlbGln 6833
IFNleA== 6834
IGdpdmVz 6835
bm9uZQ== 6836
Lm1lc3NhZ2U= 6837
KEc= 6838
LmF3dA== 6839
LXJpZ2h0 6840
IE5vdmVtYmVy 6841
ZWxsaWc= 6842
MzYw 6843
dXRpdmU= 6844
xIM= 6845
b3Zlcm4= 6846
IGVhc2lseQ== 6847
IGlkZWFz 6848
MTA0 6849
INC9 6850
L2Nzcw== 6851
bHlpbmc= 6852
ZWxsZQ== 6853
Q2Fu 6854
X2NvbG9y 6855
0L7Qsg== 6856
IHBhaXI= 6857
bmd0aA== 6858
IHNwbGl0 6859
MTQw 6860
ZHJvcA== 6861
YXJ0eQ== 6862
b25h 6863
IGNhcGl0YWw= 6864
IGhlYXI= 6865
IGV4aXN0cw== 6866
CWxvZw== 6867
ZW1v 6868
UnVu 6869
b2k= 6870
IHBhcnNlcg== 6871
IE1ldGhvZA== 6872
IGVkdWNhdGlvbg== 6873
W2s= 6874
IGxpYnJhcnk= 6875
PiI7Cg== 6876
X1VO 6877
CXN0ZA== 6878
b2RlZA== 6879
IGNhbGxz 6880
aGVyZQ== 6881
UmVs 6882
IGJyYW5k 6883
YmFja2dyb3VuZA== 6884
Z2E= 6885
X2FkZHJlc3M= 6886
X3BhcmFtcw== 6887
Q2F0ZWdvcnk= 6888
MTAz 6889
IEluZGlh 6890
X2V2ZW50 6891
IGluZw== 6892
UmVuZGVy 6893
LmNs 6894
dW1weQ== 6895
IHBldA== 6896
RkM= 6897
IEFudA== 6898
RXh0 6899
IGNoYXJnZQ== 6900
ZW5lZA== 6901
Z3JhZA== 6902
RU8= 6903
IGRlcGVuZA== 6904
IC4KCg== 6905
ZnJhbWU= 6906
IGRm 6907
IGh1Z2U= 6908
IFBBUlQ= 6909
ZWRz 6910
Ozs= 6911
IEFN 6912
IGJhc2lj 6913
IExldA== 6914
bGljaA== 6915
IGFybQ== 6916
IHN0YXI= 6917
IGZlZGVyYWw= 6918
V29yaw== 6919
IGNhcnJ5 6920
IElzcmFlbA== 6921
KG9iag== 6922
PXt7 6923
IHNhdmVk 6924
IHN5bg== 6925
IGNvbnN0YW50 6926
VkVOVA== 6927
IHBvc2l0aXZl 6928
IGNvbmR1Y3Q= 6929
IHNraW4= 6930
IGVhcmxpZXI= 6931
IGxheW91dA== 6932
IElQ 6933
T1VS 6934
IHRpbQ== 6935
c3R5bGVzaGVldA== 6936
X2Ns 6937
IENhcmQ= 6938
Kyspewo= 6939
IHRlbXBlcg== 6940
IERhdmlk 6941
CXRyeQ== 6942
LmRhcnQ= 6943
IHdhbnRz 6944
IHBpY3R1cmU= 6945
IHZpZGVvcw== 6946
IENvbW0= 6947
aXNpb25z 6948
X01BWA== 6949
TWFwcGluZw== 6950
LWNvbnRlbnQ= 6951
IEVhcg== 6952
LWRl 6953
IHByZW0= 6954
YnJ1YXJ5 6955
IGNvbXBvbmVudHM= 6956
IHRocm91Z2hvdXQ= 6957
IHB1bGw= 6958
IHBhZ2Vz 6959
ZW50ZQ== 6960
cmVzcG9uZA== 6961
IGdhcw== 6962
Y3JpcHRvcg== 6963
IGVkZ2U= 6964
IGJvdW5k 6965
QUNU 6966
KioqKioq 6967
IGNyZWF0aW5n 6968
IENI 6969
IG51bGxwdHI= 6970
QnI= 6971
Kyc= 6972
LmNv 6973
Pjo6 6974
IGxlYXJuaW5n 6975
Lkxlbmd0aA== 6976
X1NI 6977
IHBhdGllbnRz 6978
QUlO 6979
IGtpZHM= 6980
IGNvbWZvcnQ= 6981
IHNob3du 6982
dWdpbnM= 6983
IEJhY2s= 6984
ZWxsYQ== 6985
X0NM 6986
IGxhdA== 6987
IGRpc3BhdGNo 6988
IGNsYXNzZXM= 6989
LmF0 6990
LmJlZ2lu 6991
IHN1Y2Nlc3NmdWw= 6992
YmFu 6993
IG9idGFpbg== 6994
IFNs 6995
IGxhY2s= 6996
aXRlcmF0b3I= 6997
VGhyZWFk 6998
KHNpemU= 6999
IG5vbmU= 7000
Lmhhcw== 7001
X1g= 7002
c29ydA== 7003
bmFw 7004
cGV0 7005
Ymlu 7006
NzAw 7007
IENhbmFkYQ== 7008
VGhleQ== 7009
IGRhbnM= 7010
IE1hdA== 7011
PHRk 7012
IGhhaXI= 7013
ICcnLAo= 7014
IGN1 7015
IGxhd3M= 7016
bGV0ZWQ= 7017
cGVk 7018
IHBvdw== 7019
IGtuZXc= 7020
X0NPTQ== 7021
Xyw= 7022
IE1hZw== 7023
aWRlbnRz 7024
KHJlcQ== 7025
ICks 7026
LWNlbnRlcg== 7027
MTkw 7028
IHdpZGU= 7029
IEF1dGhvcg== 7030
c3RhbnRz 7031
IGpvYnM= 7032
IG1hdGg= 7033
ZXRpbWVz 7034
Qm9vbGVhbg== 7035
IHNjb3Bl 7036
X2lz 7037
IG1lYXM= 7038
IGtleXM= 7039
ZWxheQ== 7040
IGV4YWN0bHk= 7041
Jz0+Jw== 7042
IFBhdWw= 7043
bWFz 7044
CXByaW50 7045
KGxlbg== 7046
ZmQ= 7047
ICk7 7048
LkV2ZW50 7049
cWxp 7050
aXJpdA== 7051
aWVsZHM= 7052
b21hbg== 7053
IFRvcA== 7054
IHZvdGU= 7055
IG1hc2s= 7056
IHRoZW1l 7057
LQo= 7058
IHByb3Bz 7059
IGZpbmU= 7060
IHdyaXRlcg== 7061
X29mZnNldA== 7062
Y2Fy 7063
IGFsdGVybg== 7064
IGNvcHlyaWdodA== 7065
IGRlc3Ryb3k= 7066
cHBlcg== 7067
IGdlbmVyYXRl 7068
cHBlZA== 7069
4oCZZA== 7070
ICAgICAgCg== 7071
bWFrZQ== 7072
IFNob3c= 7073
IGJyb3dzZXI= 7074
IGZhdm9yaXRl 7075
IGNhcmVlcg== 7076
IGhhcHBlbmVk 7077
KGNoYXI= 7078
IHJlY29tbWVuZA== 7079
IGxpdGVy 7080
LmZpbHRlcg== 7081
Z3JhZGU= 7082
IMKj 7083
UGhvbmU= 7084
b21z 7085
IG5hbWVk 7086
LWxhYmVs 7087
aXBv 7088
IE90aGVy 7089
IHBhbmVs 7090
IHJvY2s= 7091
U2NhbGU= 7092
CWFzc2VydA== 7093
0LQ= 7094
IHRydXN0 7095
ZnJvbnQ= 7096
IGRlbW9u 7097
QXI= 7098
TmV0 7099
IGVjb25vbWlj 7100
Zm9vdGVy 7101
IHJhY2U= 7102
KG5vZGU= 7103
IE9wdGlvbg== 7104
c3BsaXQ= 7105
IHBoeXNpY2Fs 7106
aWZlc3Q= 7107
IHJlbW92ZWQ= 7108
Lmh0dHA= 7109
KSksCg== 7110
IGxvb2tlZA== 7111
Jzs= 7112
ZGluZw== 7113
Z2VzdA== 7114
YXR1cmRheQ== 7115
L2xpY2Vuc2Vz 7116
UHJpY2U= 7117
IGRybw== 7118
IHRvd2FyZHM= 7119
IHVucw== 7120
IENM 7121
CXN0YXRpYw== 7122
IHJvd3M= 7123
IGRlZmluZQ== 7124
LnJlcGxhY2U= 7125
IGZhdGhlcg== 7126
IERlc2lnbg== 7127
YXNzaWdu 7128
bXV0 7129
RGV2aWNl 7130
RGlk 7131
JykpCg== 7132
b21ldHJ5 7133
YXlsb2Fk 7134
IGhpc3Rvcg== 7135
IFBhcmFt 7136
IEJvb2xlYW4= 7137
IG5hdHVyZQ== 7138
IGpz 7139
IG5hdGlvbg== 7140
aWg= 7141
IGRpc2NvdmVy 7142
c2Vt 7143
SGFuZGxl 7144
CXI= 7145
IFRlY2hu 7146
IHdhbGw= 7147
eyQ= 7148
QHByb3BlcnR5 7149
ICIuLi8= 7150
IGV4YW0= 7151
LmRyYXc= 7152
b3BwaW5n 7153
IG5lYXJseQ== 7154
IGNvb2w= 7155
IGluZGVwZW5k 7156
UkVT 7157
IGhhbmRsZXI= 7158
IE1vbmRheQ== 7159
IHN1bg== 7160
U3R5bGVz 7161
b3VzbHk= 7162
IAk= 7163
dmVzdA== 7164
RGlzcGxheQ== 7165
KHk= 7166
YXRpY2FsbHk= 7167
IHByZWRpY3Q= 7168
eWluZw== 7169
IHNvbWV0aW1lcw== 7170
Il0K 7171
IGRyaW5r 7172
IGJ1bA== 7173
aWZpY2F0aW9ucw== 7174
Lmluc2VydA== 7175
LnJlZw== 7176
IHRlc3Rz 7177
QWxpZ25tZW50 7178
IGFsbGVn 7179
IGF0dHJpYnV0ZQ== 7180
IE5vdGU= 7181
IG15c2VsZg== 7182
YXJ0cw== 7183
Tm93 7184
IGludGVyZXN0aW5n 7185
bGllbnRz 7186
IHBvcHVsYXRpb24= 7187
IENhbGlmb3JuaWE= 7188
Ikk= 7189
5bk= 7190
IGdyZWF0ZXI= 7191
dWVzZGF5 7192
IHRob3Vz 7193
IGNvc3Rz 7194
IGxhdW5jaA== 7195
XEh0dHA= 7196
a2Vy 7197
YmFuZA== 7198
IFBsYXk= 7199
IGJhbmQ= 7200
LnNoYXBl 7201
ZXNvbWU= 7202
YXJ0aWNsZQ== 7203
LnJm 7204
IHdlcg== 7205
w6Fz 7206
ZW1iZXJz 7207
dXNy 7208
QkE= 7209
aWNhbg== 7210
ZXR0 7211
dmFsaWRhdGU= 7212
dWx0aQ== 7213
IGltbWVkaWF0ZWx5 7214
emVy 7215
IGZpZ3VyZQ== 7216
b2Vz 7217
ZWxsZXI= 7218
aXJjbGU= 7219
IFNpZ24= 7220
LmRi 7221
IHJhbms= 7222
Qnl0ZXM= 7223
IHByb2plY3Rz 7224
X3JlYw== 7225
VUxBUg== 7226
QVBJ 7227
IExpbmU= 7228
UG9ydA== 7229
IHBvbGw= 7230
IGdpdmluZw== 7231
aWRlbmNl 7232
LS0K 7233
IHBsb3Q= 7234
aWNpYWw= 7235
IHdhcnJhbnQ= 7236
SVRJT04= 7237
IERvdWJsZQ== 7238
IGJpbGxpb24= 7239
Z29yaXRobQ== 7240
IGVxdWlwbWVudA== 7241
REFURQ== 7242
IEAi 7243
RUU= 7244
IHBsZQ== 7245
aWF0aW9u 7246
IGhlYWRlcnM= 7247
IHByb2NlZA== 7248
LkNvbXBvbmVudE1vZGVs 7249
IE9iYW1h 7250
IHBh 7251
IEJlc3Q= 7252
aW1hdGVseQ== 7253
LmdldFN0cmluZw== 7254
Llw= 7255
bXBsb3k= 7256
IHJhdw== 7257
X2Jsb2Nr 7258
dW5kcmVk 7259
In0sCg== 7260
MTEy 7261
Lkdyb3VwTGF5b3V0 7262
IGJyb3VnaHQ= 7263
TlNTdHJpbmc= 7264
dGhyb3c= 7265
Y3JlYXRlZA== 7266
Lk5ldw== 7267
X3ZpZXc= 7268
Q1A= 7269
ZXBz 7270
T3A= 7271
IGdyYXRpcw== 7272
ICci 7273
IGludGVydmlldw== 7274
IiIiCg== 7275
IHBhcnRpYWw= 7276
IGFyaWE= 7277
YmluZw== 7278
QXV0aG9y 7279
Qm9vaw== 7280
IFBhdA== 7281
dW1hbg== 7282
VXNlcnM= 7283
cGx1cw== 7284
MTkz 7285
IERpcmVjdA== 7286
dmVudWU= 7287
YWxwaGE= 7288
VUNDRVNT 7289
IENhbGw= 7290
ICk7DQo= 7291
aW1hdGVk 7292
IHJlbWFpbg== 7293
IGFudGk= 7294
IExvbmRvbg== 7295
IHNhZmV0eQ== 7296
UE9TRQ== 7297
b2xlcw== 7298
Y29udHJvbGxlcg== 7299
Qnl0ZQ== 7300
IENvdXJ0 7301
IFBoaWw= 7302
IEFzc29jaQ== 7303
ZW5h 7304
5ZA= 7305
X1NUUg== 7306
Y29pbg== 7307
cmVzaG9sZA== 7308
IGJhdGNo 7309
X0NsaWNr 7310
ZW50aWNhdGlvbg== 7311
Pic7Cg== 7312
ZW50eQ== 7313
IGJlZ2lubmluZw== 7314
IHplcm8= 7315
IENvbnZlcnQ= 7316
IHRlcnI= 7317
IHBhaWQ= 7318
IGluY3JlYXNlZA== 7319
Y2F0Y2g= 7320
LXNpemU= 7321
MTE1 7322
YWN0aXZpdHk= 7323
ZXF1YWxz 7324
IHF1ZXVl 7325
ICIn 7326
IEludGVybmF0aW9uYWw= 7327
IGbDvHI= 7328
dXJzZGF5 7329
IHNjaWVudA== 7330
YWxsb3c= 7331
YXhpcw== 7332
IGFwcHJvcHJp 7333
ZWRnZQ== 7334
IGlkeA== 7335
U3VjY2Vzcw== 7336
ZW50aWZpZXI= 7337
Olw= 7338
eGlz 7339
IG1heGltdW0= 7340
YXJrcw== 7341
IGJpcnRo 7342
KGluZGV4 7343
IG1heWJl 7344
LnB5 7345
ZmlsZXM= 7346
IGxpbWl0ZWQ= 7347
X2NoZWNr 7348
bG9vaw== 7349
cGxpZXM= 7350
IG1vdmVtZW50 7351
J10u 7352
IGJyb2Fk 7353
IEJF 7354
IFVuaXR5RW5naW5l 7355
LmNwcA== 7356
IEV2ZXJ5 7357
QWRtaW4= 7358
IGZhbnM= 7359
cGFyZWQ= 7360
CiAgICAK 7361
IGZvcmVpZ24= 7362
IHBhbg== 7363
IHRvdXI= 7364
IE9yZGVy 7365
IG1vdmluZw== 7366
IGF1Zg== 7367
Q2FsbA== 7368
Y2I= 7369
xZ8= 7370
dmVudG9yeQ== 7371
IFNxbA== 7372
IGZ1bGx5 7373
Q2xpY2tMaXN0ZW5lcg== 7374
V09SRA== 7375
IGFubm91bmNlZA== 7376
KQ0KDQo= 7377
IGFncmVlZA== 7378
cmll 7379
IGVhcm4= 7380
X2xpbms= 7381
LmFycmF5 7382
KHRleHQ= 7383
IG1hdGVyaWFscw== 7384
LHA= 7385
ZmZmZg== 7386
dmc= 7387
IMKp 7388
IHVubGVzcw== 7389
YWpheA== 7390
TE9H 7391
IHNleHVhbA== 7392
IFwi 7393
LXRpbWU= 7394
IGNvYWNo 7395
IHN1cHBvcnRlZA== 7396
IHBob3Rvcw== 7397
aWZvcm0= 7398
LkNyZWF0ZQ== 7399
KV0= 7400
cmllcg== 7401
IGRpYWxvZw== 7402
YXZlcg== 7403
aWdl 7404
KSs= 7405
X2lkeA== 7406
Ols= 7407
X21pbg== 7408
IENvbmc= 7409
IHByZXNzdXJl 7410
IHRlYW1z 7411
U2lnbg== 7412
YmVnaW4= 7413
cmlhbg== 7414
TkVTUw== 7415
TFM= 7416
IGltcHJvdmU= 7417
IFN1bmRheQ== 7418
IGRlZmluaXRpb24= 7419
aWdlcg== 7420
cm9sbGVycw== 7421
IHRoaW5raW5n 7422
VGVtcGxhdGU= 7423
LUY= 7424
IGVtZXJn 7425
cGxhdGVz 7426
IFVTQQ== 7427
LnNldFN0YXRl 7428
IEFsc28= 7429
cmV2 7430
IGVuYWJsZQ== 7431
IENP 7432
UEVDVA== 7433
IGNvbmNlcHQ= 7434
KS0= 7435
IOKAog== 7436
IHNldHM= 7437
IG1lYW5pbmc= 7438
ZW1vbg== 7439
IENvbnM= 7440
Y21w 7441
ZWRlcg== 7442
YW5uZWQ= 7443
aWNlbnNlZA== 7444
IFN1cGVy 7445
IGRhaWx5 7446
IG11bHRp 7447
X3U= 7448
IGNoYWxsZW5n 7449
X21vZGU= 7450
IFByb21pc2U= 7451
IHN0cmljdA== 7452
am8= 7453
aW50b24= 7454
KGxpc3Q= 7455
T25seQ== 7456
Pns= 7457
IHZlaGljbGU= 7458
7ZU= 7459
IFBsYXllcg== 7460
MTA2 7461
IERlbA== 7462
IHBvb2w= 7463
LnVybA== 7464
bmVzZGF5 7465
KCk7DQoNCg== 7466
OTAw 7467
ICIpOwo= 7468
TG9jYWw= 7469
LiIpOwo= 7470
IG9yZ2FuaXphdGlvbg== 7471
cmVuZGVy 7472
IEFwcGxpY2F0aW9u 7473
IHN1bW1lcg== 7474
ZXhwZWN0ZWQ= 7475
TkE= 7476
IHJhcA== 7477
X29iag== 7478
IHN1cmZhY2U= 7479
IFBVUg== 7480
IH0sCgo= 7481
IHZhcmlhYmxlcw== 7482
KG1lc3NhZ2U= 7483
IG9waW4= 7484
LmJhY2s= 7485
0LDQvQ== 7486
IHdvcmtlcnM= 7487
dm0= 7488
Q28= 7489
dWdodGVy 7490
IG1hc3Rlcg== 7491
ICIiLA== 7492
IHN0b3JpZXM= 7493
LlVzZXI= 7494
IGNlbGVicg== 7495
aW5lc2U= 7496
QlM= 7497
IENvbW1hbmQ= 7498
YXNoYm9hcmQ= 7499
IG9n 7500
a2c= 7501
LmltYWdl 7502
LnN0eWxl 7503
IHN0ZXBz 7504
IEJlbg== 7505
KGFyZ3M= 7506
NDA0 7507
IFBlcnNvbg== 7508
LHk= 7509
IG9mZmljaWFscw== 7510
fAo= 7511
IHNraWxscw== 7512
dmM= 7513
IGJ1aWxkZXI= 7514
IGdhcg== 7515
QWNjb3VudA== 7516
IEF1dGg= 7517
55Q= 7518
J10pCg== 7519
IEFU 7520
bm4= 7521
LkludA== 7522
U1NFUlQ= 7523
IGVmZmVjdGl2ZQ== 7524
TEVURQ== 7525
IHRvb2xz 7526
QVJE 7527
IGRpZ2l0YWw= 7528
MTkx 7529
RG91Ymxl 7530
IEZpbmQ= 7531
UkM= 7532
IGlubGluZQ== 7533
L3I= 7534
QVJBTQ== 7535
QVNL 7536
IGludGVudA== 7537
YWlnaHQ= 7538
X2FkZHI= 7539
IHJlcXVlc3Rz 7540
LmZpcnN0 7541
IGRlYnVn 7542
IHNwZW50 7543
KCkpKTsK 7544
xZs= 7545
IHByaW5jaXA= 7546
TG9nZ2Vy 7547
Y2x1ZGVz 7548
LnVzZQ== 7549
IHN1cnY= 7550
bWVkaWE= 7551
IEZlYnJ1YXJ5 7552
IE1hYw== 7553
IG1pc3Npbmc= 7554
IHdpZmU= 7555
IHRhbGtpbmc= 7556
IE1ha2U= 7557
IGNhcnQ= 7558
IGxvY2F0ZWQ= 7559
RW5j 7560
LWE= 7561
Y2hyb24= 7562
IGNhcmRz 7563
IGd1eQ== 7564
IHBlcnM= 7565
IFllcw== 7566
YXRldmVy 7567
IEFuZw== 7568
b2xhcg== 7569
IEV2ZW4= 7570
IGFjY3Vy 7571
IFBvd2Vy 7572
IEdvbGQ= 7573
Y2xlYXI= 7574
UHJvY2Vzcw== 7575
IHJlY29yZHM= 7576
IGtpbGxlZA== 7577
LmNsZWFy 7578
IFdBUlJBTlRJRVM= 7579
IHB1cnBvc2U= 7580
cGFuZWw= 7581
SkVDVA== 7582
w61h 7583
IGV4ZXJj 7584
V1M= 7585
L0w= 7586
LmV4cG9ydHM= 7587
IF9fXw== 7588
IHNpbg== 7589
U2VydmxldA== 7590
IGTDqQ== 7591
LmRlbGV0ZQ== 7592
cm9rZQ== 7593
U2w= 7594
dWdo 7595
ZWFycw== 7596
IHBvaW50ZXI= 7597
IGhvcA== 7598
YWxsZXJ5 7599
IG9icw== 7600
Y292ZXJ5 7601
CWNoYXI= 7602
CQkJCQkJCQkJCQ== 7603
CWRlZg== 7604
b2NpdHk= 7605
aXRjaGVu 7606
dWxhdGlvbnM= 7607
IEZJVA== 7608
ICku 7609
c3RyYWludHM= 7610
dmVudGlvbg== 7611
IHJlcXVpcmVz 7612
IE9wZXI= 7613
TUU= 7614
T1VOVA== 7615
YWxsZXQ= 7616
IG5vcm0= 7617
SVJF 7618
ZXhhcw== 7619
IHByb2dyYW1z 7620
IHdlYWs= 7621
Jy4k 7622
dWluZw== 7623
CSAgICAgICA= 7624
IG1pbA== 7625
IGZpcm0= 7626
aW5pdGVseQ== 7627
X1ZBTFVF 7628
YXBzZQ== 7629
YXRpc2Y= 7630
IGRlbWFuZA== 7631
X21vZA== 7632
IGRlc2NyaWJlZA== 7633
IHBsYWNlcw== 7634
VklE 7635
IGFsb25l 7636
IGV4cG9ydA== 7637
IHZlYw== 7638
IE1heA== 7639
IGFjdGl2aXRpZXM= 7640
aWN0dXJlcw== 7641
Z2VuZXI= 7642
IG1h 7643
gqw= 7644
IGV4cHJlc3Npb24= 7645
Q2FsbGJhY2s= 7646
X2NvbnRlbnQ= 7647
IE1vc3Q= 7648
IHRlc3Rpbmc= 7649
RUM= 7650
Q0hBTlQ= 7651
IGFkanVzdA== 7652
LlRocmVhZGluZw== 7653
KGN0eA== 7654
IGFncmVl 7655
aWdoZXN0 7656
IHVp 7657
IExhdw== 7658
Llk= 7659
Pjw/ 7660
IHBvZA== 7661
LWxn 7662
4oCdCgo= 7663
IGRlc2NyaWJl 7664
IEV1cm9wZWFu 7665
LXNo 7666
IFBVUlBPU0U= 7667
T1JZ 7668
IGNvbnZlcnM= 7669
IElsbHVtaW5hdGU= 7670
IEF2 7671
KGNo 7672
PyI= 7673
Y2hlbg== 7674
aW1h 7675
RG9jdW1lbnQ= 7676
IG9wZXJhdGlvbnM= 7677
d2lu 7678
CWZ1bmN0aW9u 7679
LkltYWdl 7680
IHNjZW4= 7681
L2g= 7682
IFND 7683
IGV4cGxv 7684
OiU= 7685
LyoqDQo= 7686
TkFNRQ== 7687
5og= 7688
KHZhcg== 7689
IGRpcmVjdG9y 7690
T05H 7691
IHlpZWxk 7692
IGZlZXQ= 7693
IFNlYXJjaA== 7694
IEls 7695
IHJlc3RhdXI= 7696
ZHVj 7697
IGludGVnZXI= 7698
MTA3 7699
ICcnOwo= 7700
IGhpZ2hseQ== 7701
Y2hlY2tlZA== 7702
IFBBUlRJQw== 7703
RVJDSEFOVA== 7704
77yJ 7705
IG9wdGlt 7706
UXVldWU= 7707
IExJ 7708
aXRhdGlvbg== 7709
IHRyYW5zcG9ydA== 7710
aXNzaW9u 7711
ZmlsbA== 7712
dXNpb24= 7713
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg 7714
CWJvb2w= 7715
LXRo 7716
dXB0 7717
IGVzc2VudGlhbA== 7718
YW50ZWQ= 7719
IGJlbmVmaXRz 7720
CVM= 7721
JzsNCg== 7722
aWtp 7723
IGdpcmxz 7724
aWNlZA== 7725
YnVmZmVy 7726
XSs= 7727
IHNvY2tldA== 7728
IHByaWNlcw== 7729
IEZyZQ== 7730
IHNhdA== 7731
IHdvb2Q= 7732
TWVudUl0ZW0= 7733
QVJH 7734
IEFkbWlu 7735
T1dO 7736
ZGs= 7737
IHJlc2V0 7738
IGZvcm1z 7739
INC4 7740
5pY= 7741
IFR1ZXNkYXk= 7742
MTA5 7743
IEluaXRpYWxpemVk 7744
X3RyYWlu 7745
b3Jhcnk= 7746
YXRlZ29y 7747
IGR0 7748
VG90YWw= 7749
Y29uc3RydWN0 7750
aWxpZXM= 7751
IGd1eXM= 7752
0LXRgA== 7753
IGluc3RydWN0aW9u 7754
MDEw 7755
eWxlZA== 7756
IGludGVybmV0 7757
ZXRhZGF0YQ== 7758
YWR5 7759
ZmFjZXM= 7760
amVjdGlvbg== 7761
IEphY2s= 7762
IHJlY3Q= 7763
Wy0= 7764
IExlZw== 7765
IGRldmljZXM= 7766
T0M= 7767
ICoNCg== 7768
b3JhdGlvbg== 7769
ZXJ0YWlu 7770
IGd1YXJk 7771
b3N0cmVhbQ== 7772
IGVudW0= 7773
LmxheW91dA== 7774
ICI7Cg== 7775
dm9rZQ== 7776
IE9r 7777
SG9tZQ== 7778
KHRy 7779
RVRI 7780
IGRlbGF5 7781
IHB1cmNoYXNl 7782
ZGM= 7783
IGFyZW4= 7784
X29uY2U= 7785
CQkJCQo= 7786
cm9y 7787
ZHJhdw== 7788
LnJ1bg== 7789
KG1vZGVs 7790
VGltZW91dA== 7791
bGlr 7792
IEFyZw== 7793
LmVu 7794
IGZpc2g= 7795
Y3B5 7796
X2Zl 7797
RVJDSEFOVEFCSUxJVFk= 7798
KFg= 7799
X291dHB1dA== 7800
Pz8= 7801
IGpv 7802
YW5kYXJk 7803
IGRvbGw= 7804
ZXJyb3Jz 7805
X2Jhc2U= 7806
IFBBUlRJQ1VMQVI= 7807
IGxlYWRlcg== 7808
IGNvbXBhcg== 7809
IGRvdWI= 7810
IFZpcw== 7811
U3RhY2tUcmFjZQ== 7812
LUM= 7813
IFN0dWQ= 7814
c3RpdHV0ZQ== 7815
TW9yZQ== 7816
IERlc2NyaXB0aW9u 7817
V0FSRQ== 7818
YWRz 7819
INC6 7820
YmluZA== 7821
PXNlbGY= 7822
ZW1wbG95 7823
W24= 7824
LmFsbA== 7825
LUI= 7826
JiY= 7827
YWxt 7828
IGN1bHR1cmU= 7829
aG91c2U= 7830
IHN1ZmZlcg== 7831
ICcl 7832
IHN0cmFpZ2h0 7833
IFN0YXI= 7834
dWRv 7835
IGRlZA== 7836
IENPTQ== 7837
IGNvbmZpcm0= 7838
IEdvb2Q= 7839
LnNj 7840
X19fX19fX19fX19fX19fXw== 7841
RFI= 7842
Q29uZmlndXJhdGlvbg== 7843
RGF0ZVRpbWU= 7844
IGFkdmVydA== 7845
IGNvdWxkbg== 7846
YXN5bmM= 7847
c3RhY2s= 7848
JykNCg== 7849
S2l0 7850
IGhvdXM= 7851
IG1lY2hhbg== 7852
cmF0ZQ== 7853
MjA0 7854
IGF1ZGlv 7855
CWNvdXQ= 7856
Y29yZXM= 7857
IHNwb3Q= 7858
IGluY3JlYXNpbmc= 7859
ICMj 7860
KSkp 7861
cG9pbnRz 7862
IGNvbXBhcmVk 7863
bGln 7864
IGJlaGF2aW9y 7865
IEJZ 7866
IEF0dA== 7867
Y3JhZnQ= 7868
aGVhZGVycw== 7869
ZXRl 7870
ZW5kcmVnaW9u 7871
IGRldGFpbA== 7872
VUxF 7873
IENvbW1vbg== 7874
CXByb3RlY3RlZA== 7875
c3Rvbg== 7876
IEZJVE5FU1M= 7877
IGZyZXNo 7878
Ij4KCg== 7879
LmV4YW1wbGU= 7880
YmVyZw== 7881
IG1vdmVk 7882
CWU= 7883
IFNhdHVyZGF5 7884
IHBheWxvYWQ= 7885
xIc= 7886
KToKCg== 7887
IGJleQ== 7888
dXJlcg== 7889
PHNjcmlwdA== 7890
IHN5bWJvbA== 7891
IGFzc3Vt 7892
IHB1bA== 7893
RWZmZWN0 7894
IGh1bmRyZWQ= 7895
VG9vbA== 7896
YWtlZA== 7897
Y29ubmVjdGlvbg== 7898
IHZvaWNl 7899
IHBk 7900
IHRyYW5zYWN0aW9u 7901
IGxpbmtz 7902
RXJy 7903
IEluZGlhbg== 7904
VEM= 7905
YXRhbG9n 7906
bmk= 7907
c2lnbg== 7908
PDwi 7909
amk= 7910
eWE= 7911
IGRlbW9uc3Ry 7912
dWxhdGVk 7913
LlN0 7914
IGluc3RpdA== 7915
IGJvb3N0 7916
IGNlbGxz 7917
b2xpYw== 7918
LlBybw== 7919
Ojwv 7920
RXZlbnRMaXN0ZW5lcg== 7921
aWZ5aW5n 7922
IERp 7923
b3Jyb3c= 7924
LmV4ZWN1dGU= 7925
IGNvbGxlZ2U= 7926
WW91cg== 7927
IGxhcmdlc3Q= 7928
LmRpcw== 7929
IHF1aQ== 7930
IGluZGl2aWR1YWxz 7931
X2J1ZmZlcg== 7932
IG5n 7933
U0E= 7934
IENvbnRyb2w= 7935
IHNpbmc= 7936
IHN1aXQ= 7937
ICAgIAk= 7938
U0c= 7939
IGp1bXA= 7940
IHNtYXJ0 7941
b21h 7942
IEV4cA== 7943
ICct 7944
IGFzc2lzdA== 7945
IHN1Y2Nlc3NmdWxseQ== 7946
c3lz 7947
IENyZQ== 7948
X3JlZg== 7949
IFRodXJzZGF5 7950
IGJ1cg== 7951
INC0 7952
IGJleW9uZA== 7953
IG5vZGVz 7954
RGV0YWlscw== 7955
aW5jdA== 7956
IEphbWVz 7957
IGFmZmVjdA== 7958
ZXhjZXB0aW9u 7959
IHR5cGVvZg== 7960
KA0K 7961
LXNl 7962
IGZldGNo 7963
YCw= 7964
IGNydXNoZXI= 7965
fS4= 7966
IEJP 7967
U2hvdw== 7968
IHJhdGVz 7969
IGJvbg== 7970
LWljb24= 7971
IE1lZGlh 7972
UkVTUw== 7973
IFZhbGlk 7974
0L7Quw== 7975
IGZ1Y2s= 7976
YWNrcw== 7977
IHN0dWRpZXM= 7978
TWU= 7979
IG93bmVycw== 7980
fWVsc2U= 7981
IGdyb3dpbmc= 7982
VmFyaWFibGU= 7983
IEJlbA== 7984
LnJhbmRvbQ== 7985
dmVtZW50 7986
b255bQ== 7987
KEY= 7988
IEZBTFNF 7989
IHRvcmNo 7990
KHJvdw== 7991
aWdv 7992
c3RydWN0dXJl 7993
MTIx 7994
IGNlcnRhaW5seQ== 7995
RGVw 7996
IEdyZWVu 7997
cXVlc3Rpb24= 7998
IGFkZGluZw== 7999
IERldmVsb3A= 8000
X2RlZg== 8001
IG1hY2g= 8002
PSU= 8003
CQkg 8004
Y29uZHM= 8005
UHJvamVjdA== 8006
IHJlamVjdA== 8007
IM4= 8008
IHBvb3I= 8009
IGF3YXJl 8010
MTE0 8011
IEJ1aWxk 8012
IEJyaXRpc2g= 8013
IE5F 8014
IG51bWVy 8015
cmVlcw== 8016
Y2xhaW0= 8017
IG1vY2s= 8018
IG9t 8019
IHNjcmU= 8020
T0xE 8021
LnBs 8022
ZWxlcg== 8023
IGNvcnJlc3BvbmQ= 8024
X0hF 8025
IGJpbmFyeQ== 8026
MTE2 8027
X29yZGVy 8028
IFNRTA== 8029
IGFkdmFudA== 8030
IHByZXY= 8031
Lls= 8032
LmFzc2VydEVxdWFs 8033
cGxpZXI= 8034
YXJw 8035
IGNsb3NlZA== 8036
IGVuY291cg== 8037
IFFTdHJpbmc= 8038
YXVk 8039
IGRldmVsb3BlZA== 8040
IHBlcm1pc3Npb24= 8041
LmRlYnVn 8042
b3BlcmF0b3I= 8043
ICcK 8044
IHN5bQ== 8045
YXRpdmVseQ== 8046
w6ll 8047
LWNvbG9y 8048
IEdFVA== 8049
a3k= 8050
IGFsdGhvdWdo 8051
X3JlcXVlc3Q= 8052
X2VsZW1lbnQ= 8053
Li4uLi4uLi4uLi4uLi4uLg== 8054
X0RBVEE= 8055
IGFtYXppbmc= 8056
IHNi 8057
IERlZmF1bHQ= 8058
RXZlbnRz 8059
IGZhaWx1cmU= 8060
YWNsZQ== 8061
UHJvcGVydGllcw== 8062
IGRyZWFt 8063
IGRpc3Ry 8064
IGF1 8065
IGdlbmVyYXRlZA== 8066
5pU= 8067
IFRlYW0= 8068
VVNF 8069
IGluY29tZQ== 8070
IGV5ZQ== 8071
X25vdA== 8072
Il0s 8073
X2Zvcm0= 8074
U3VwcG9ydA== 8075
b3JkZXJz 8076
LlByaW50 8077
dmlsbGU= 8078
IFdlZG5lc2RheQ== 8079
b2x2ZXI= 8080
IG9wcG9z 8081
aXNhdGlvbg== 8082
b2xh 8083
Q2xvc2U= 8084
PHA= 8085
X3dpZHRo 8086
SW52YWxpZA== 8087
eGI= 8088
IHN0cnVnZw== 8089
X2FjdGlvbg== 8090
IHR4dA== 8091
IFBhdGg= 8092
YWxhcg== 8093
IE1FUkNIQU5UQUJJTElUWQ== 8094
c2VydmljZQ== 8095
IE1pY2hhZWw= 8096
YWJsZVZpZXc= 8097
RGVidWc= 8098
b2tlcw== 8099
U2hl 8100
IGd1ZXNz 8101
IEphdmE= 8102
X1BBVEg= 8103
IHBhcnRpY3VsYXJseQ== 8104
IElJ 8105
IGRvbWFpbg== 8106
5bm0 8107
IHJlZHVjZQ== 8108
LWxlZnQ= 8109
cmVhbA== 8110
IGFwcGVhcnM= 8111
IGNvbW8= 8112
IFVuaXQ= 8113
IEdvdmVybg== 8114
YWxp 8115
YWxsZWw= 8116
IEpldw== 8117
X0k= 8118
IGNvcw== 8119
LmNvbG9y 8120
IEdsb2JhbA== 8121
IHRlbGU= 8122
YmVu 8123
X3RyYW5z 8124
IHJlYXNvbnM= 8125
IGVtYg== 8126
ZW5zaXR5 8127
bGluZXM= 8128
b21pbg== 8129
U2NyZWVu 8130
0LDRgg== 8131
cGVjdHM= 8132
Y2xpcA== 8133
Zm9v 8134
cmVudA== 8135
IGFm 8136
IGRhbmdlcg== 8137
aWxpbmc= 8138
TmFtZXM= 8139
T3Vy 8140
IGRpc3RyaWJ1dGlvbg== 8141
V2hpbGU= 8142
U0w= 8143
V3JpdGU= 8144
IGdvdG8= 8145
IGNvbG9ycw== 8146
IHBvd2VyZnVs 8147
a2lu 8148
IGRlcHRo 8149
ZXJjaWFs 8150
IENvbmdyZXNz 8151
IE1hcmtldA== 8152
RGI= 8153
dW5kZXI= 8154
IExhc3Q= 8155
w58= 8156
Z3JlZw== 8157
IHBvc3Rz 8158
X1VSTA== 8159
b3Rvcw== 8160
RG9u 8161
IG1pY3Jv 8162
IGFycmVzdA== 8163
0L8= 8164
IChA 8165
IEhvdA== 8166
IEluZGV4 8167
OyY= 8168
IyE= 8169
IE5vcg== 8170
IENhcA== 8171
LSg= 8172
IGludGVyZXN0ZWQ= 8173
cGVhcg== 8174
IHJlbnQ= 8175
IGFsYnVt 8176
b2xpY3k= 8177
Lmxhbmc= 8178
LnRyYW5z 8179
LmZvcm1hdA== 8180
IHsNCg0K 8181
cGhlcmU= 8182
IGF4aXM= 8183
IEJ1c2luZXNz 8184
ZXJzaXN0ZW5jZQ== 8185
dXJy 8186
IG1pbmltdW0= 8187
ZW5kb3I= 8188
IFNE 8189
MTEz 8190
IEludGVybmV0 8191
5aQ= 8192
RXhw 8193
aXZlcnNl 8194
TU0= 8195
IG9idmlvdXM= 8196
IGJhc2lz 8197
IHNjaWVuY2U= 8198
IGJ1ZGdldA== 8199
aXphdGlvbnM= 8200
UEE= 8201
IGZsYWdz 8202
cHJldA== 8203
TE9DSw== 8204
IHZhcmlldHk= 8205
IHRydXRo 8206
ZHQ= 8207
IGdvbmU= 8208
IGJhdHRsZQ== 8209
PHN0ZA== 8210
IFNpbA== 8211
cmY= 8212
dWRh 8213
IGVyb3Q= 8214
IENhbQ== 8215
IHN0YXRpb24= 8216
ICc8Lw== 8217
Y2hlbWU= 8218
IFN1bg== 8219
IGZpbmlzaGVk 8220
IHNob3A= 8221
IEtvcmU= 8222
IGVpZ2h0 8223
X1JFRw== 8224
TkQ= 8225
Piw= 8226
Ij48Pw== 8227
KG51bQ== 8228
CWlubGluZQ== 8229
VHJhbnNhY3Rpb24= 8230
Lk9u 8231
IG1haWw= 8232
cmV5 8233
cmVzdWx0cw== 8234
IG5hdg== 8235
SU1JVA== 8236
X2lkcw== 8237
TWFrZQ== 8238
5Yo= 8239
TW9kYWw= 8240
IExPRw== 8241
IFN1cg== 8242
IGluc3RhbmNlb2Y= 8243
IG92ZXJhbGw= 8244
IEluZm9ybWF0aW9u 8245
IGNvbnN0cnVjdGlvbg== 8246
X0ZJTEU= 8247
YnV0 8248
IG1lZGlj 8249
IGR1cmF0aW9u 8250
aXRuZXNz 8251
YWdlbnQ= 8252
QVY= 8253
IHNldmVu 8254
b2xm 8255
IH19Cg== 8256
Il0sCg== 8257
MTcw 8258
MTIy 8259
IGNhbGxpbmc= 8260
IGFucw== 8261
dGhyb3dz 8262
b3Jpem9udGFs 8263
IHVzZVN0YXRl 8264
LmZs 8265
IFN0YXR1cw== 8266
IE9ubGluZQ== 8267
UlI= 8268
IFJpY2g= 8269
IEhpbGw= 8270
IGJyYWlu 8271
IGZvbGxvd2Vk 8272
MjQw 8273
ZW1pYw== 8274
IHNsaWdodA== 8275
IGluc3VyYW5jZQ== 8276
LkFycmF5 8277
IGFic3RyYWN0 8278
IFN1bQ== 8279
cmVkaXJlY3Q= 8280
b3duZXI= 8281
KG1zZw== 8282
IENsaW50b24= 8283
Tm9u 8284
CWV4 8285
IHZvbHVtZQ== 8286
IEV2ZW50QXJncw== 8287
LUw= 8288
IERpbQ== 8289
IE1hcnQ= 8290
IGN1cnNvcg== 8291
IGltcGxlbWVudGF0aW9u 8292
dXJyZWQ= 8293
IGxhcmdlcg== 8294
KTsKCgo= 8295
Jys= 8296
LnRyYW5zZm9ybQ== 8297
IHVwbG9hZA== 8298
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIA== 8299
RHJhdw== 8300
bmVs 8301
CWZsb2F0 8302
cXJ0 8303
IE5ldHdvcms= 8304
IHRpdA== 8305
QXhpcw== 8306
LmFuZHJvaWQ= 8307
IGNvbXBsZXRlZA== 8308
IG11cg== 8309
IGNvbHVtbnM= 8310
eGM= 8311
IHN1cHBseQ== 8312
aW1pbmFs 8313
IHNwcg== 8314
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQ== 8315
IHVuaXRz 8316
KHU= 8317
bWk= 8318
cmVwbGFjZQ== 8319
W2tleQ== 8320
4Lk= 8321
YW50aWM= 8322
IHBheW1lbnQ= 8323
LEI= 8324
IEFwcGxl 8325
Z2lu 8326
UmVxdWlyZWQ= 8327
Iys= 8328
bGFuZHM= 8329
IHNxdQ== 8330
IGZhY3Rvcg== 8331
ZGVj 8332
IHN0cmVuZ3Ro 8333
IGJveQ== 8334
IGJhbGFuY2U= 8335
IHNvdXJjZXM= 8336
c2NyZWVu 8337
LXRvcA== 8338
IEFtYXpvbg== 8339
IGhpZGRlbg== 8340
0LXRgg== 8341
X2NsaWVudA== 8342
IGVhdA== 8343
LmRpc3BsYXk= 8344
IMK7 8345
IHRyaWdnZXI= 8346
YW5hZ2Vy 8347
IHRybw== 8348
IGNsYWltcw== 8349
Zm9yZA== 8350
IENvbXBhbnk= 8351
IGdpZnQ= 8352
LDo= 8353
X2FwcA== 8354
aGFuZGxl 8355
IHByb2R1Y2U= 8356
L2xpYg== 8357
NTEy 8358
IC0q 8359
CXNldA== 8360
J107 8361
YXJj 8362
YW5kZXI= 8363
IEVuZ2luZQ== 8364
IGF0dHJpYnV0ZXM= 8365
dGFzaw== 8366
PD0= 8367
KE4= 8368
IHdhcm0= 8369
d2hpY2g= 8370
IEZvcmU= 8371
YWdub3N0 8372
bXlz 8373
IHRhbA== 8374
IFNhbA== 8375
Z2k= 8376
IFByaW50 8377
IFRSVUU= 8378
INC+ 8379
LlVJ 8380
IGZsYXNo 8381
cm9wZXJ0eQ== 8382
LmxvY2F0aW9u 8383
IE1pbGw= 8384
Ymk= 8385
Y29udHI= 8386
LnJlcXVlc3Q= 8387
IFNhbQ== 8388
IG5lZ2F0aXZl 8389
a2l0 8390
IHNldHQ= 8391
LnByaW50U3RhY2tUcmFjZQ== 8392
YWJl 8393
CWk= 8394
IGJ1cm4= 8395
IHNvY2lldHk= 8396
Q2FjaGU= 8397
IFNlY3VyaXR5 8398
Lm1vZGVscw== 8399
IFdBUlJBTlRZ 8400
X3Vw 8401
Y2VpdmU= 8402
IGNsaWVudHM= 8403
LlRy 8404
IHByb3ZpZGluZw== 8405
IHJvdXQ= 8406
bWF0ZXJpYWw= 8407
IHx8Cg== 8408
IFNlcg== 8409
IE9mZmljZQ== 8410
RlRXQVJF 8411
ICck 8412
IGZvYw== 8413
IGV4Y2VsbA== 8414
IGNhdA== 8415
bm9ybWFs 8416
IGRldGVybWluZQ== 8417
CXVpbnQ= 8418
UGFuZQ== 8419
IGVtcGxveWVlcw== 8420
IFRleGFz 8421
IHRyYWZm 8422
IFJlcG9ydA== 8423
YW50YQ== 8424
IEJveA== 8425
IGRqYW5nbw== 8426
IHBhcnRuZXI= 8427
RUI= 8428
TElORQ== 8429
IGZlZWxpbmc= 8430
IGNpdmls 8431
KGZsb2F0 8432
U3Fs 8433
IHdvdWxkbg== 8434
LmluaXQ= 8435
LmxlZnQ= 8436
LXY= 8437
X2xldmVs 8438
J30= 8439
QUY= 8440
IGxvYWRpbmc= 8441
IE9ubHk= 8442
IGNvb2tpZXM= 8443
IEds 8444
Q08= 8445
IHN0cmF0ZWd5 8446
KCcuLw== 8447
IHNoaXA= 8448
cG9zZXM= 8449
IHNpZ25hbA== 8450
IGFscGhh 8451
LnBvcA== 8452
UmFkaXVz 8453
IHJlcGxhY2U= 8454
X0RJUg== 8455
Y291bnRlcg== 8456
YnNlcnZhYmxl 8457
ZWxh 8458
V2VpZ2h0 8459
aGFzaA== 8460
Ym9zZQ== 8461
Zng= 8462
IEVtYWls 8463
IHJlZmVy 8464
bG9jYWxob3N0 8465
X1JP 8466
aXF1ZXM= 8467
U3RlcA== 8468
IGFoZWFk 8469
KFZpZXc= 8470
IFNlcnZpY2Vz 8471
IEpzb24= 8472
ZXNzb3I= 8473
IHB1bg== 8474
IGFwcHJvcHJpYXRl 8475
YWtlcnM= 8476
b3Nlbg== 8477
cG9zaW5n 8478
IGFnZW50 8479
ZmM= 8480
IHRyYW5zZmVy 8481
IGludmFsaWQ= 8482
IFJlc2VhcmNo 8483
VmVydGV4 8484
IGdheQ== 8485
IGpvdXJuYWw= 8486
W3g= 8487
ICIiLAo= 8488
IFdlbGw= 8489
LlRhc2tz 8490
U3BlYw== 8491
IG9s 8492
IHNwZW5k 8493
IEF1c3RyYWxpYQ== 8494
TWF0Y2g= 8495
Lmp1bml0 8496
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIA== 8497
IE1BWA== 8498
aXphYmxl 8499
Y2x1c2l2ZQ== 8500
X3ZhbGlk 8501
IHF1YXJ0ZXI= 8502
eWFu 8503
MDA1 8504
IEVkaXQ= 8505
YXJkZW4= 8506
PW5ldw== 8507
IGZyYWc= 8508
Qml0 8509
emk= 8510
YWluZQ== 8511
dWRk 8512
Lk9iamVjdA== 8513
ZGVidWc= 8514
IGNhc2g= 8515
X0lN 8516
IGVlbg== 8517
IGNvbW1lcmNpYWw= 8518
IFZpZGVv 8519
bG9hZGVy 8520
IGZpeGVk 8521
IGFwcGxpY2F0aW9ucw== 8522
IF8s 8523
IFJ1c3NpYQ== 8524
aXRlY3Q= 8525
Xyg= 8526
IEJsb2Nr 8527
IHNhbg== 8528
IFRvbQ== 8529
IHBlcmhhcHM= 8530
IHNpZw== 8531
bGV2YW50 8532
IGNvcnBvcg== 8533
YXRhc2V0 8534
cm9uaWM= 8535
eGU= 8536
IGV0aA== 8537
U29tZQ== 8538
cG9w 8539
X09L 8540
IHRlbmQ= 8541
LlJlcw== 8542
X2FuZA== 8543
IHJldmlld3M= 8544
IHdpbGQ= 8545
MTE3 8546
IGRlZ3JlZQ== 8547
Lk8= 8548
Lm9iamVjdHM= 8549
X2FyZ3M= 8550
bmls 8551
IGRpc2FibGVk 8552
UGFyZW50 8553
IG5vdGVz 8554
ICIiCg== 8555
KHN0YXRl 8556
aXN0cmljdA== 8557
IGxvZ2dpbmc= 8558
LklP 8559
IE1hbA== 8560
RE0= 8561
IHhtbA== 8562
IFJvYmVydA== 8563
ZWxlbg== 8564
bGF5b3V0 8565
Zm9s 8566
J10pKQ== 8567
LGI= 8568
IEplcg== 8569
ZmlsZW5hbWU= 8570
IGZhbg== 8571
IEN1c3RvbQ== 8572
PSIi 8573
IERpZQ== 8574
QnVuZGxl 8575
LnV0aWxz 8576
IHRyaXA= 8577
TUI= 8578
IHNvZnQ= 8579
X01PREU= 8580
IGFwcGxpY2FibGU= 8581
IHVwcGVy 8582
RVJWRVI= 8583
X2Fs 8584
X0xPRw== 8585
SGVyZQ== 8586
d3A= 8587
IFNlcnZlcg== 8588
IENsaWVudA== 8589
IGNoZW0= 8590
U2Nyb2xs 8591
IGhpZ2hlc3Q= 8592
IFNlbGVjdA== 8593
ICJA 8594
IFdoeQ== 8595
U2Vj 8596
aGVlbA== 8597
T3BlcmF0aW9u 8598
IGNvbm5lY3RlZA== 8599
aXJtZWQ= 8600
IGNpdGl6 8601
IENoZQ== 8602
IGZvcmNlcw== 8603
IHd3dw== 8604
Um9vdA== 8605
QU5DRQ== 8606
TWFueQ== 8607
aWNpcA== 8608
cmdhbg== 8609
MjIw 8610
IFRvcg== 8611
IFByZXNz 8612
IE1vcg== 8613
LWxpbmU= 8614
dWxlZA== 8615
Plw= 8616
IHRodXM= 8617
IFJlZ2lzdGVy 8618
aG9s 8619
IENoaW5lc2U= 8620
IHBvc3RlZA== 8621
IG1hZ24= 8622
YWJpbGl0aWVz 8623
IGRpc2Vhc2U= 8624
IHJlbWFpbnM= 8625
IFByb2Y= 8626
LWZvcm0= 8627
IGNpbg== 8628
b3JnYW4= 8629
aWNhdGU= 8630
IHN0cmVzcw== 8631
XSo= 8632
IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0= 8633
X2NvbnRleHQ= 8634
b3JyeQ== 8635
IGRpZWQ= 8636
bWF0 8637
IHN0YXJ0cw== 8638
Lk1lc3NhZ2U= 8639
IHJ1bnM= 8640
IGd1aWRl 8641
IHdhcnJhbnR5 8642
ZW50aWFscw== 8643
ZGljdA== 8644
IFNpemU= 8645
dWxlcg== 8646
IHJlc3BvbnNpYmxl 8647
X1NFVA== 8648
IGNvbnRhaW5pbmc= 8649
IFByaWNl 8650
fHw= 8651
MzUw 8652
RlM= 8653
IGVtcA== 8654
X2J1dHRvbg== 8655
KHVpbnQ= 8656
IHN1ZmY= 8657
cHRo 8658
IGRlZmluaXRlbHk= 8659
cHV0ZQ== 8660
IG1hcmtldGluZw== 8661
IFdI 8662
IFNpZQ== 8663
Kz0= 8664
T0xPUg== 8665
IGNvbnN1bHQ= 8666
IHNpZ25lZA== 8667
IHNlcXVlbmNl 8668
bGVl 8669
IHJlcXVpcmVtZW50cw== 8670
aHk= 8671
RXhwcmVzcw== 8672
TVQ= 8673
c2V5 8674
IHVsdA== 8675
5a4= 8676
ZWxsaWdlbmNl 8677
IGFuYWx5 8678
IGRyZXNz 8679
ZW5naW5l 8680
IEdyZWF0 8681
IEFuZHJvaWQ= 8682
IEFsZXg= 8683
bW9kZQ== 8684
RGljdGlvbmFyeQ== 8685
LkRhdGU= 8686
5L0= 8687
VklDRQ== 8688
IGZhbWlsaWVz 8689
IFJ1c3NpYW4= 8690
IFRpbWVz 8691
LmNhbGw= 8692
JCg= 8693
UHJvZmlsZQ== 8694
IGZvbGRlcg== 8695
Y2hlcw== 8696
IGxlZ2lz 8697
X3Jvdw== 8698
dW5lcw== 8699
2YQ= 8700
IH0pLg== 8701
QXNzZXJ0 8702
YWdlbg== 8703
IEhhbmQ= 8704
SXRlcg== 8705
IGJpZ2dlc3Q= 8706
b3JlYWNo 8707
IHBvbGlj 8708
IHBlcm1pc3Npb25z 8709
IHNob3dlZA== 8710
IEVsZW1lbnQ= 8711
IHRvcGlj 8712
4oCU4oCU 8713
cm9hZA== 8714
IEJhbms= 8715
cmVjb3Jk 8716
IHBhcnRuZXJz 8717
IFJlZg== 8718
ZXNzaW9ucw== 8719
IGFzc2Vzcw== 8720
VVNU 8721
IFBhcnR5 8722
cHJvZHU= 8723
TEM= 8724
IHVs 8725
LmZvcm0= 8726
aGlkZQ== 8727
Y29weQ== 8728
VVRG 8729
IFNPRlRXQVJF 8730
DQoNCg0K 8731
IExpbg== 8732
dW5h 8733
dWdhcg== 8734
IGFkbWluaXN0cmF0aW9u 8735
IG9wZW5pbmc= 8736
IHNjYW4= 8737
IGNvbnRpbnVlZA== 8738
Y29tcG9uZW50 8739
LnNw 8740
IGhhcHBlbnM= 8741
dW1teQ== 8742
IFBS 8743
LkZpbGU= 8744
IERvd25sb2Fk 8745
TG9hZGluZw== 8746
ZGk= 8747
IHdhaXRpbmc= 8748
X0FERA== 8749
VGFi 8750
LnF1ZXJ5U2VsZWN0b3I= 8751
IGVjb25vbXk= 8752
IEZyZW5jaA== 8753
dHh0 8754
IGZhbnQ= 8755
XzsK 8756
SG9sZGVy 8757
U0g= 8758
MDA0 8759
IG51bXB5 8760
IHN0cmVldA== 8761
IG1hbGU= 8762
XE1vZGVs 8763
YW5naW5n 8764
MzMz 8765
IEJpbGw= 8766
IHByZXZpb3VzbHk= 8767
Qkk= 8768
IFNlY3JldA== 8769
IG1pc3Q= 8770
IEZpZWxk 8771
dXBz 8772
IFByb2Nlc3M= 8773
IGtlcHQ= 8774
IE9U 8775
IHRyYWRpdGlvbmFs 8776
Lmk= 8777
YW1pbg== 8778
IGhlbHBz 8779
QW55 8780
b3JpZ2lu 8781
aWx0ZXJz 8782
anU= 8783
ZGVzYw== 8784
IEFjY291bnQ= 8785
ICkNCg== 8786
a3RvcA== 8787
b2xseQ== 8788
IGZz 8789
IOo= 8790
IHV0 8791
IGNlbnRyYWw= 8792
KHRlc3Q= 8793
LkFu 8794
IHNhdGlzZg== 8795
R1I= 8796
IEZ1bGw= 8797
IGhlYXQ= 8798
aWJlcg== 8799
IG9udG8= 8800
bW9z 8801
U2NoZW1h 8802
IGZhY3Rvcnk= 8803
Ii4k 8804
YXdz 8805
U3RhdGVtZW50 8806
KHRhcmdldA== 8807
CW5ldw== 8808
LmJl 8809
IGd1ZXN0 8810
IG1hbA== 8811
QVJZ 8812
IHJlYWNoZWQ= 8813
IG1vdXNl 8814
IGNoYWxsZW5nZQ== 8815
CWRvdWJsZQ== 8816
IFRlbQ== 8817
IHRlcnJvcg== 8818
IGV4dHJhY3Q= 8819
X1RP 8820
IHNlcGFyYXRl 8821
IG1pcg== 8822
aGVscA== 8823
IGNhcGFjaXR5 8824
IFByb3BlcnR5 8825
a2Fu 8826
X2NyZWF0ZQ== 8827
IExpZ2h0 8828
LnBhcmVudA== 8829
IHVuZGVyc3RhbmRpbmc= 8830
IGVhc2llcg== 8831
IHw9 8832
IGVuaA== 8833
IGZhdA== 8834
IHByb3Rlc3Q= 8835
YW1t 8836
X0FU 8837
LW9m 8838
aWxz 8839
IE9o 8840
IHBzeWNo 8841
ICQu 8842
aW5kcw== 8843
IHJlbGF0aXZl 8844
c2hvcA== 8845
c2hvcnQ= 8846
IFNhbmQ= 8847
MjEw 8848
dWVzdGlvbg== 8849
IGZlYXI= 8850
LwoK 8851
LmNvbnRleHQ= 8852
IHNjaG9vbHM= 8853
IHNlcnZl 8854
em9uZQ== 8855
X2Ri 8856
IG1ham9yaXR5 8857
ZXhhbXBsZQ== 8858
IGxhbmc= 8859
CSAg 8860
UmVnaXN0ZXI= 8861
ZW5kbw== 8862
IHByb2Nlc3Npbmc= 8863
X3RlbXBsYXRl 8864
LXVzZXI= 8865
IGVn 8866
Q09N 8867
IEJsdWU= 8868
aXJv 8869
IHJlbW90ZQ== 8870
IElU 8871
IyEv 8872
IHJlZGlzdHJpYg== 8873
MTI0 8874
cmF6 8875
IFNpbmNl 8876
IFR1cg== 8877
MTM1 8878
QmFja2dyb3VuZA== 8879
PT09 8880
IHJlZmxlY3Q= 8881
IHByb3M= 8882
Y21k 8883
IHdob20= 8884
Q29tcGF0 8885
IEFyZQ== 8886
SWRlbnRpZmllcg== 8887
IFRob20= 8888
X3BvcnQ= 8889
Z3U= 8890
IG1vbml0b3I= 8891
cm0= 8892
IHBhdGllbnQ= 8893
dmVydGVy 8894
IGdhaW4= 8895
LXVp 8896
SW5zdA== 8897
IGRpZXM= 8898
MTE4 8899
QXJlYQ== 8900
X2ZpbHRlcg== 8901
IGdyYXQ= 8902
IHJlYWxpdHk= 8903
b3JkaW5hdGU= 8904
b2x2ZWQ= 8905
Q29udGFjdA== 8906
IGNvbXBsaWFuY2U= 8907
X29y 8908
IFZhcg== 8909
ZGw= 8910
IGFwcGVuZA== 8911
R0VS 8912
KG1heA== 8913
LnJlbmRlcg== 8914
IGR5bmFtaWM= 8915
b3JkaW5hdGVz 8916
X29wdGlvbnM= 8917
X2NvbHVtbg== 8918
IGJhdHRlcg== 8919
c3BhY2U= 8920
TGE= 8921
IFNvdXJjZQ== 8922
L2Jpbg== 8923
IGRvcw== 8924
IEJvYXJk 8925
IFRocmVhZA== 8
Download .txt
gitextract_uxq8hg2y/

├── .gitignore
├── .gitmodules
├── CMakeLists.txt
├── CODE_OF_CONDUCT.md
├── LICENSE
├── README.md
├── SECURITY.md
├── docs/
│   └── codegen.md
├── gpu/
│   ├── README.md
│   ├── bitnet_kernels/
│   │   ├── bitnet_kernels.cu
│   │   ├── bitnet_kernels.h
│   │   ├── compile.sh
│   │   └── setup.py
│   ├── convert_checkpoint.py
│   ├── convert_safetensors.py
│   ├── generate.py
│   ├── model.py
│   ├── pack_weight.py
│   ├── requirements.txt
│   ├── sample_utils.py
│   ├── stats.py
│   ├── test.py
│   ├── tokenizer.model
│   └── tokenizer.py
├── include/
│   ├── gemm-config.h
│   └── ggml-bitnet.h
├── preset_kernels/
│   ├── Llama3-8B-1.58-100B-tokens/
│   │   ├── bitnet-lut-kernels-tl1.h
│   │   ├── bitnet-lut-kernels-tl2.h
│   │   ├── kernel_config_tl1.ini
│   │   └── kernel_config_tl2.ini
│   ├── bitnet_b1_58-3B/
│   │   ├── bitnet-lut-kernels-tl1.h
│   │   ├── bitnet-lut-kernels-tl2.h
│   │   ├── kernel_config_tl1.ini
│   │   └── kernel_config_tl2.ini
│   └── bitnet_b1_58-large/
│       ├── bitnet-lut-kernels-tl1.h
│       ├── bitnet-lut-kernels-tl2.h
│       ├── kernel_config_tl1.ini
│       └── kernel_config_tl2.ini
├── requirements.txt
├── run_inference.py
├── run_inference_server.py
├── setup_env.py
├── src/
│   ├── CMakeLists.txt
│   ├── README.md
│   ├── ggml-bitnet-lut.cpp
│   └── ggml-bitnet-mad.cpp
└── utils/
    ├── codegen_tl1.py
    ├── codegen_tl2.py
    ├── convert-helper-bitnet.py
    ├── convert-hf-to-gguf-bitnet.py
    ├── convert-ms-to-gguf-bitnet.py
    ├── convert.py
    ├── e2e_benchmark.py
    ├── generate-dummy-bitnet-model.py
    ├── preprocess-huggingface-bitnet.py
    ├── quantize_embeddings.py
    ├── test_gemm_kernel.sh
    ├── test_perplexity.py
    ├── test_power.sh
    └── tune_gemm_config.py
Download .txt
SYMBOL INDEX (580 symbols across 33 files)

FILE: gpu/convert_checkpoint.py
  function convert_ts_checkpoint (line 15) | def convert_ts_checkpoint(

FILE: gpu/convert_safetensors.py
  class ModelArgs (line 14) | class ModelArgs:
    method __post_init__ (line 26) | def __post_init__(self):
    method from_name (line 36) | def from_name(cls, name: str):
  function invert_convert_q (line 43) | def invert_convert_q(w: torch.Tensor, config: ModelArgs) -> torch.Tensor:
  function invert_convert_k (line 46) | def invert_convert_k(w: torch.Tensor, config: ModelArgs) -> torch.Tensor:
  function convert_back (line 49) | def convert_back(

FILE: gpu/generate.py
  class GenArgs (line 27) | class GenArgs:
  class FastGen (line 37) | class FastGen:
    method build (line 42) | def build(
    method __init__ (line 79) | def __init__(
    method compile_prefill (line 102) | def compile_prefill(self):
    method compile_generate (line 159) | def compile_generate(self):
    method generate_all (line 217) | def generate_all(
  function get_prompts (line 307) | def get_prompts(interactive: bool) -> Iterable[list[str]]:
  function main (line 322) | def main(ckpt_dir: str, interactive: bool = False, chat_format: bool = F...

FILE: gpu/model.py
  function bitnet_int8xint2_linear (line 21) | def bitnet_int8xint2_linear(input0, input1, s, ws):
  class ModelArgs (line 40) | class ModelArgs:
  class BitLinearKernel (line 54) | class BitLinearKernel(nn.Module):
    method __init__ (line 60) | def __init__(self, in_features: int, out_features: int, bias: bool = F...
    method quant_input (line 69) | def quant_input(self, input):
    method forward (line 73) | def forward(self, input):
  class BitLinear (line 77) | class BitLinear(nn.Linear):
    method quant_input (line 79) | def quant_input(self, input):
    method forward (line 83) | def forward(self, input):
  class Attention (line 87) | class Attention(nn.Module):
    method __init__ (line 88) | def __init__(
    method forward (line 121) | def forward(
  function squared_relu (line 165) | def squared_relu(x: torch.Tensor) -> torch.Tensor:
  class FeedForward (line 168) | class FeedForward(nn.Module):
    method __init__ (line 169) | def __init__(
    method forward (line 192) | def forward(self, x: torch.Tensor) -> torch.Tensor:
  class TransformerBlock (line 200) | class TransformerBlock(nn.Module):
    method __init__ (line 201) | def __init__(self, args: ModelArgs):
    method forward (line 231) | def forward(
  class Transformer (line 246) | class Transformer(nn.Module):
    method __init__ (line 247) | def __init__(self, args: ModelArgs):
    method forward_with_attn_bias (line 269) | def forward_with_attn_bias(
    method forward (line 283) | def forward(
  function make_cache (line 299) | def make_cache(
  function cache_prefix (line 346) | def cache_prefix(cache: list[LayerCache], length: int) -> list[LayerCache]:

FILE: gpu/pack_weight.py
  function B_global_16x32_to_shared_load_16x32_layout (line 5) | def B_global_16x32_to_shared_load_16x32_layout(i, j):
  function permutate_weight_fastest (line 17) | def permutate_weight_fastest(weight):
  function compress_int2_to_int8 (line 46) | def compress_int2_to_int8(int2_weight):
  function interleave_weight_int8 (line 56) | def interleave_weight_int8(qweight, nbits=2):\
  function convert_weight_int8_to_int2 (line 76) | def convert_weight_int8_to_int2(weight):

FILE: gpu/sample_utils.py
  function top_p (line 9) | def top_p(probs: torch.Tensor, p: float) -> torch.Tensor:

FILE: gpu/stats.py
  class PhaseStats (line 12) | class PhaseStats:
    method show (line 17) | def show(self) -> str:
  class Stats (line 27) | class Stats:
    method __init__ (line 32) | def __init__(self):
    method end_phase (line 36) | def end_phase(self, tokens: int, now: Optional[float] = None):
    method phase (line 50) | def phase(self, name: str, tokens: int = 0):

FILE: gpu/test.py
  function bitnet_int8xint2_linear (line 15) | def bitnet_int8xint2_linear(input0, input1, s, ws, ret):

FILE: gpu/tokenizer.py
  class Message (line 26) | class Message(TypedDict):
  class Tokenizer (line 34) | class Tokenizer:
    method __init__ (line 45) | def __init__(self, model_path: str):
    method encode (line 95) | def encode(
    method decode (line 158) | def decode(self, t: Sequence[int]) -> str:
    method _split_whitespaces_or_nonwhitespaces (line 172) | def _split_whitespaces_or_nonwhitespaces(
  class ChatFormat (line 197) | class ChatFormat:
    method __init__ (line 198) | def __init__(self, tokenizer: Tokenizer):
    method decode (line 202) | def decode(self, tokens: List[int]) -> str:
    method encode_header (line 209) | def encode_header(self, message: Message) -> List[int]:
    method encode_message (line 225) | def encode_message(self, message: Message, return_target=False) -> Lis...
    method encode_dialog_prompt (line 242) | def encode_dialog_prompt(self, dialog: Dialog, completion=False, retur...

FILE: include/ggml-bitnet.h
  type float32_t (line 8) | typedef float32_t bitnet_float_type;
  type bitnet_float_type (line 10) | typedef float bitnet_float_type;
  type bitnet_tensor_extra (line 17) | struct bitnet_tensor_extra {
  type ggml_tensor (line 31) | struct ggml_tensor
  type ggml_tensor (line 31) | struct ggml_tensor
  type ggml_tensor (line 31) | struct ggml_tensor
  type ggml_tensor (line 32) | struct ggml_tensor
  type ggml_tensor (line 32) | struct ggml_tensor
  type ggml_tensor (line 32) | struct ggml_tensor
  type ggml_tensor (line 35) | struct ggml_tensor
  type ggml_type (line 36) | enum ggml_type

FILE: preset_kernels/Llama3-8B-1.58-100B-tokens/bitnet-lut-kernels-tl1.h
  function aligned_free (line 16) | static void aligned_free(void * ptr) {{
  function per_tensor_quant (line 24) | void per_tensor_quant(int k, void* lut_scales_, void* b_) {{
  function partial_max_reset (line 53) | void partial_max_reset(void* lut_scales_) {{
  function Transpose_8_8 (line 59) | inline void Transpose_8_8(
  function lut_ctor (line 96) | void lut_ctor(int8_t* qlut, bitnet_float_type* b, bitnet_float_type* lut...
  function is_type_supported (line 174) | static bool is_type_supported(enum ggml_type type) {{
  function tbl_impl_14336_4096 (line 186) | inline void tbl_impl_14336_4096(int32_t* c, int8_t* lut, uint8_t* a) {
  function qgemm_lut_14336_4096 (line 303) | int32_t qgemm_lut_14336_4096(void* A, void* LUT, void* Scales, void* LUT...
  function tbl_impl_4096_14336 (line 320) | inline void tbl_impl_4096_14336(int32_t* c, int8_t* lut, uint8_t* a) {
  function qgemm_lut_4096_14336 (line 421) | int32_t qgemm_lut_4096_14336(void* A, void* LUT, void* Scales, void* LUT...
  function tbl_impl_1024_4096 (line 438) | inline void tbl_impl_1024_4096(int32_t* c, int8_t* lut, uint8_t* a) {
  function qgemm_lut_1024_4096 (line 555) | int32_t qgemm_lut_1024_4096(void* A, void* LUT, void* Scales, void* LUT_...
  function tbl_impl_4096_4096 (line 572) | inline void tbl_impl_4096_4096(int32_t* c, int8_t* lut, uint8_t* a) {
  function qgemm_lut_4096_4096 (line 673) | int32_t qgemm_lut_4096_4096(void* A, void* LUT, void* Scales, void* LUT_...
  function ggml_preprocessor (line 694) | void ggml_preprocessor(int m, int k, void* B, void* LUT_Scales, void* QL...
  function ggml_qgemm_lut (line 708) | void ggml_qgemm_lut(int m, int k, void* A, void* LUT, void* Scales, void...
  function ggml_bitnet_transform_tensor (line 723) | void ggml_bitnet_transform_tensor(struct ggml_tensor * tensor) {

FILE: preset_kernels/Llama3-8B-1.58-100B-tokens/bitnet-lut-kernels-tl2.h
  function aligned_free (line 17) | static void aligned_free(void * ptr) {
  function _mm256_merge_epi32 (line 26) | inline void _mm256_merge_epi32(const __m256i v0, const __m256i v1, __m25...
  function _mm256_merge_epi64 (line 33) | inline void _mm256_merge_epi64(const __m256i v0, const __m256i v1, __m25...
  function _mm256_merge_si128 (line 40) | inline void _mm256_merge_si128(const __m256i v0, const __m256i v1, __m25...
  function Transpose_8_8 (line 45) | inline void Transpose_8_8(
  function per_tensor_quant (line 71) | inline int32_t per_tensor_quant(int k, void* lut_scales_, void* b_) {
  function partial_max_reset (line 90) | inline int32_t partial_max_reset(int32_t bs, void* lut_scales_) {
  function three_lut_ctor (line 99) | int32_t three_lut_ctor(int8_t* qlut, bitnet_float_type* b, bitnet_float_...
  function two_lut_ctor (line 185) | int32_t two_lut_ctor(int8_t* qlut, bitnet_float_type* b, bitnet_float_ty...
  function is_type_supported (line 261) | static bool is_type_supported(enum ggml_type type) {
  function three_tbl_impl_14336_4096 (line 274) | void three_tbl_impl_14336_4096(int32_t* c, int8_t* lut, uint8_t* a, uint...
  function two_tbl_impl14336_4096 (line 411) | int32_t two_tbl_impl14336_4096(int32_t* c, int8_t* lut, uint8_t* a) {
  function three_tbl_impl_4096_14336 (line 518) | void three_tbl_impl_4096_14336(int32_t* c, int8_t* lut, uint8_t* a, uint...
  function two_tbl_impl4096_14336 (line 655) | int32_t two_tbl_impl4096_14336(int32_t* c, int8_t* lut, uint8_t* a) {
  function three_tbl_impl_1024_4096 (line 762) | void three_tbl_impl_1024_4096(int32_t* c, int8_t* lut, uint8_t* a, uint8...
  function two_tbl_impl1024_4096 (line 899) | int32_t two_tbl_impl1024_4096(int32_t* c, int8_t* lut, uint8_t* a) {
  function three_tbl_impl_4096_4096 (line 1006) | void three_tbl_impl_4096_4096(int32_t* c, int8_t* lut, uint8_t* a, uint8...
  function two_tbl_impl4096_4096 (line 1143) | int32_t two_tbl_impl4096_4096(int32_t* c, int8_t* lut, uint8_t* a) {
  function ggml_preprocessor (line 1245) | void ggml_preprocessor(int bs, int m, int three_k, int two_k, void* B, v...
  function ggml_qgemm_lut (line 1276) | void ggml_qgemm_lut(int bs, int m, int k, int BK, void* A, void* sign, v...
  function ggml_bitnet_transform_tensor (line 1407) | void ggml_bitnet_transform_tensor(struct ggml_tensor * tensor) {

FILE: preset_kernels/bitnet_b1_58-3B/bitnet-lut-kernels-tl1.h
  function aligned_free (line 16) | static void aligned_free(void * ptr) {{
  function per_tensor_quant (line 24) | void per_tensor_quant(int k, void* lut_scales_, void* b_) {{
  function partial_max_reset (line 53) | void partial_max_reset(void* lut_scales_) {{
  function Transpose_8_8 (line 59) | inline void Transpose_8_8(
  function lut_ctor (line 96) | void lut_ctor(int8_t* qlut, bitnet_float_type* b, bitnet_float_type* lut...
  function is_type_supported (line 174) | static bool is_type_supported(enum ggml_type type) {{
  function tbl_impl_3200_8640 (line 186) | inline void tbl_impl_3200_8640(int32_t* c, int8_t* lut, uint8_t* a) {
  function qgemm_lut_3200_8640 (line 287) | int32_t qgemm_lut_3200_8640(void* A, void* LUT, void* Scales, void* LUT_...
  function tbl_impl_3200_3200 (line 304) | inline void tbl_impl_3200_3200(int32_t* c, int8_t* lut, uint8_t* a) {
  function qgemm_lut_3200_3200 (line 421) | int32_t qgemm_lut_3200_3200(void* A, void* LUT, void* Scales, void* LUT_...
  function tbl_impl_8640_3200 (line 438) | inline void tbl_impl_8640_3200(int32_t* c, int8_t* lut, uint8_t* a) {
  function qgemm_lut_8640_3200 (line 539) | int32_t qgemm_lut_8640_3200(void* A, void* LUT, void* Scales, void* LUT_...
  function ggml_preprocessor (line 560) | void ggml_preprocessor(int m, int k, void* B, void* LUT_Scales, void* QL...
  function ggml_qgemm_lut (line 571) | void ggml_qgemm_lut(int m, int k, void* A, void* LUT, void* Scales, void...
  function ggml_bitnet_transform_tensor (line 583) | void ggml_bitnet_transform_tensor(struct ggml_tensor * tensor) {

FILE: preset_kernels/bitnet_b1_58-3B/bitnet-lut-kernels-tl2.h
  function aligned_free (line 17) | static void aligned_free(void * ptr) {
  function _mm256_merge_epi32 (line 26) | inline void _mm256_merge_epi32(const __m256i v0, const __m256i v1, __m25...
  function _mm256_merge_epi64 (line 33) | inline void _mm256_merge_epi64(const __m256i v0, const __m256i v1, __m25...
  function _mm256_merge_si128 (line 40) | inline void _mm256_merge_si128(const __m256i v0, const __m256i v1, __m25...
  function Transpose_8_8 (line 45) | inline void Transpose_8_8(
  function per_tensor_quant (line 71) | inline int32_t per_tensor_quant(int k, void* lut_scales_, void* b_) {
  function partial_max_reset (line 90) | inline int32_t partial_max_reset(int32_t bs, void* lut_scales_) {
  function three_lut_ctor (line 99) | int32_t three_lut_ctor(int8_t* qlut, bitnet_float_type* b, bitnet_float_...
  function two_lut_ctor (line 185) | int32_t two_lut_ctor(int8_t* qlut, bitnet_float_type* b, bitnet_float_ty...
  function is_type_supported (line 261) | static bool is_type_supported(enum ggml_type type) {
  function three_tbl_impl_3200_8640 (line 274) | void three_tbl_impl_3200_8640(int32_t* c, int8_t* lut, uint8_t* a, uint8...
  function two_tbl_impl3200_8640 (line 411) | int32_t two_tbl_impl3200_8640(int32_t* c, int8_t* lut, uint8_t* a) {
  function three_tbl_impl_3200_3200 (line 518) | void three_tbl_impl_3200_3200(int32_t* c, int8_t* lut, uint8_t* a, uint8...
  function two_tbl_impl3200_3200 (line 655) | int32_t two_tbl_impl3200_3200(int32_t* c, int8_t* lut, uint8_t* a) {
  function three_tbl_impl_8640_3200 (line 762) | void three_tbl_impl_8640_3200(int32_t* c, int8_t* lut, uint8_t* a, uint8...
  function two_tbl_impl8640_3200 (line 899) | int32_t two_tbl_impl8640_3200(int32_t* c, int8_t* lut, uint8_t* a) {
  function ggml_preprocessor (line 1001) | void ggml_preprocessor(int bs, int m, int three_k, int two_k, void* B, v...
  function ggml_qgemm_lut (line 1025) | void ggml_qgemm_lut(int bs, int m, int k, int BK, void* A, void* sign, v...
  function ggml_bitnet_transform_tensor (line 1124) | void ggml_bitnet_transform_tensor(struct ggml_tensor * tensor) {

FILE: preset_kernels/bitnet_b1_58-large/bitnet-lut-kernels-tl1.h
  function aligned_free (line 16) | static void aligned_free(void * ptr) {{
  function per_tensor_quant (line 24) | void per_tensor_quant(int k, void* lut_scales_, void* b_) {{
  function partial_max_reset (line 53) | void partial_max_reset(void* lut_scales_) {{
  function Transpose_8_8 (line 59) | inline void Transpose_8_8(
  function lut_ctor (line 96) | void lut_ctor(int8_t* qlut, bitnet_float_type* b, bitnet_float_type* lut...
  function is_type_supported (line 174) | static bool is_type_supported(enum ggml_type type) {{
  function tbl_impl_1536_4096 (line 186) | inline void tbl_impl_1536_4096(int32_t* c, int8_t* lut, uint8_t* a) {
  function qgemm_lut_1536_4096 (line 287) | int32_t qgemm_lut_1536_4096(void* A, void* LUT, void* Scales, void* LUT_...
  function tbl_impl_1536_1536 (line 304) | inline void tbl_impl_1536_1536(int32_t* c, int8_t* lut, uint8_t* a) {
  function qgemm_lut_1536_1536 (line 421) | int32_t qgemm_lut_1536_1536(void* A, void* LUT, void* Scales, void* LUT_...
  function tbl_impl_4096_1536 (line 438) | inline void tbl_impl_4096_1536(int32_t* c, int8_t* lut, uint8_t* a) {
  function qgemm_lut_4096_1536 (line 539) | int32_t qgemm_lut_4096_1536(void* A, void* LUT, void* Scales, void* LUT_...
  function ggml_preprocessor (line 560) | void ggml_preprocessor(int m, int k, void* B, void* LUT_Scales, void* QL...
  function ggml_qgemm_lut (line 571) | void ggml_qgemm_lut(int m, int k, void* A, void* LUT, void* Scales, void...
  function ggml_bitnet_transform_tensor (line 583) | void ggml_bitnet_transform_tensor(struct ggml_tensor * tensor) {

FILE: preset_kernels/bitnet_b1_58-large/bitnet-lut-kernels-tl2.h
  function aligned_free (line 17) | static void aligned_free(void * ptr) {
  function _mm256_merge_epi32 (line 26) | inline void _mm256_merge_epi32(const __m256i v0, const __m256i v1, __m25...
  function _mm256_merge_epi64 (line 33) | inline void _mm256_merge_epi64(const __m256i v0, const __m256i v1, __m25...
  function _mm256_merge_si128 (line 40) | inline void _mm256_merge_si128(const __m256i v0, const __m256i v1, __m25...
  function Transpose_8_8 (line 45) | inline void Transpose_8_8(
  function per_tensor_quant (line 71) | inline int32_t per_tensor_quant(int k, void* lut_scales_, void* b_) {
  function partial_max_reset (line 90) | inline int32_t partial_max_reset(int32_t bs, void* lut_scales_) {
  function three_lut_ctor (line 99) | int32_t three_lut_ctor(int8_t* qlut, bitnet_float_type* b, bitnet_float_...
  function two_lut_ctor (line 185) | int32_t two_lut_ctor(int8_t* qlut, bitnet_float_type* b, bitnet_float_ty...
  function is_type_supported (line 261) | static bool is_type_supported(enum ggml_type type) {
  function three_tbl_impl_1536_4096 (line 274) | void three_tbl_impl_1536_4096(int32_t* c, int8_t* lut, uint8_t* a, uint8...
  function two_tbl_impl1536_4096 (line 411) | int32_t two_tbl_impl1536_4096(int32_t* c, int8_t* lut, uint8_t* a) {
  function three_tbl_impl_1536_1536 (line 518) | void three_tbl_impl_1536_1536(int32_t* c, int8_t* lut, uint8_t* a, uint8...
  function two_tbl_impl1536_1536 (line 655) | int32_t two_tbl_impl1536_1536(int32_t* c, int8_t* lut, uint8_t* a) {
  function three_tbl_impl_4096_1536 (line 762) | void three_tbl_impl_4096_1536(int32_t* c, int8_t* lut, uint8_t* a, uint8...
  function two_tbl_impl4096_1536 (line 899) | int32_t two_tbl_impl4096_1536(int32_t* c, int8_t* lut, uint8_t* a) {
  function ggml_preprocessor (line 1001) | void ggml_preprocessor(int bs, int m, int three_k, int two_k, void* B, v...
  function ggml_qgemm_lut (line 1025) | void ggml_qgemm_lut(int bs, int m, int k, int BK, void* A, void* sign, v...
  function ggml_bitnet_transform_tensor (line 1124) | void ggml_bitnet_transform_tensor(struct ggml_tensor * tensor) {

FILE: run_inference.py
  function run_command (line 8) | def run_command(command, shell=False):
  function run_inference (line 16) | def run_inference():
  function signal_handler (line 39) | def signal_handler(sig, frame):

FILE: run_inference_server.py
  function run_command (line 8) | def run_command(command, shell=False):
  function run_server (line 16) | def run_server():
  function signal_handler (line 46) | def signal_handler(sig, frame):

FILE: setup_env.py
  function system_info (line 84) | def system_info():
  function get_model_name (line 87) | def get_model_name():
  function run_command (line 92) | def run_command(command, shell=False, log_step=None):
  function prepare_model (line 109) | def prepare_model():
  function setup_gguf (line 152) | def setup_gguf():
  function gen_code (line 156) | def gen_code():
  function compile (line 203) | def compile():
  function main (line 218) | def main():
  function parse_args (line 224) | def parse_args():
  function signal_handler (line 235) | def signal_handler(sig, frame):

FILE: src/ggml-bitnet-lut.cpp
  function ggml_bitnet_init (line 14) | void ggml_bitnet_init(void) {
  function ggml_bitnet_free (line 31) | void ggml_bitnet_free(void) {
  function do_permutate (line 49) | static bool do_permutate(enum ggml_type type) {
  function ggml_bitnet_can_mul_mat (line 58) | bool ggml_bitnet_can_mul_mat(const struct ggml_tensor * src0, const stru...
  function ggml_bitnet_mul_mat_get_wsize (line 70) | size_t ggml_bitnet_mul_mat_get_wsize(const struct ggml_tensor * src0, co...
  function ggml_bitnet_get_type_bits (line 85) | int ggml_bitnet_get_type_bits(enum ggml_type type) {
  function ggml_bitnet_init (line 98) | void ggml_bitnet_init(void) {
  function ggml_bitnet_free (line 115) | void ggml_bitnet_free(void) {
  function ggml_bitnet_can_mul_mat (line 133) | bool ggml_bitnet_can_mul_mat(const struct ggml_tensor * src0, const stru...
  function ggml_bitnet_mul_mat_get_wsize (line 143) | size_t ggml_bitnet_mul_mat_get_wsize(const struct ggml_tensor * src0, co...
  function ggml_bitnet_get_type_bits (line 157) | int ggml_bitnet_get_type_bits(enum ggml_type type) {

FILE: src/ggml-bitnet-mad.cpp
  function hsum_i32_8 (line 20) | static inline int hsum_i32_8(const __m256i a) {
  function hsum_i32_8 (line 29) | static inline int hsum_i32_8(const __m256i a) {
  function quantize_i2_s (line 51) | size_t quantize_i2_s(const float * src, void * dst, int64_t nrow, int64_...
  function ggml_vec_dot_i2_i8_s_1x1 (line 198) | void ggml_vec_dot_i2_i8_s_1x1(int n, float * s, size_t bs, const void * ...
  function ggml_vec_dot_i2_i8_s_1x4_32W (line 414) | void ggml_vec_dot_i2_i8_s_1x4_32W(int n, float * s, size_t bs, const voi...
  function ggml_vec_dot_i2_i8_s_1xN (line 512) | void ggml_vec_dot_i2_i8_s_1xN(int n, float * s, size_t bs, const void * ...
  function ggml_vec_dot_i2_i8_s_Nx1 (line 791) | void ggml_vec_dot_i2_i8_s_Nx1(int n, float * s, size_t bs, const void * ...
  function ggml_vec_dot_i2_i8_s (line 1043) | void ggml_vec_dot_i2_i8_s(int n, float * s, size_t bs, const void * vx, ...

FILE: utils/codegen_tl1.py
  function gen_ctor_code (line 5) | def gen_ctor_code():
  function gen_body_core_code (line 190) | def gen_body_core_code(bm, by):
  function gen_tbl_impl (line 224) | def gen_tbl_impl(pre, BM, BK, bm, k):
  function gen_top_api (line 285) | def gen_top_api(kernel_shapes):
  function gen_preprocess_code (line 310) | def gen_preprocess_code():
  function gen_transform_code (line 321) | def gen_transform_code(kernel_shape):

FILE: utils/codegen_tl2.py
  function gen_ctor_code (line 5) | def gen_ctor_code():
  function gen_tbl_impl (line 279) | def gen_tbl_impl(pre, BM, BK, bm, k_list):
  function gen_top_api (line 532) | def gen_top_api(kernel_shapes, k_list):
  function gen_transform_code (line 626) | def gen_transform_code(kernel_shapes):
  function get_three_k_two_k (line 676) | def get_three_k_two_k(K, bk):

FILE: utils/convert-helper-bitnet.py
  function run_command (line 9) | def run_command(command_list, cwd=None, check=True):
  function main (line 19) | def main():

FILE: utils/convert-hf-to-gguf-bitnet.py
  class SentencePieceTokenTypes (line 36) | class SentencePieceTokenTypes(IntEnum):
  class Model (line 48) | class Model(ABC):
    method __init__ (line 51) | def __init__(self, dir_model: Path, ftype: int, fname_out: Path, is_bi...
    method model_arch (line 68) | def model_arch(self) -> gguf.MODEL_ARCH:
    method find_hparam (line 71) | def find_hparam(self, keys: Sequence[str], optional: bool = False) -> ...
    method set_vocab (line 79) | def set_vocab(self):
    method get_tensors (line 82) | def get_tensors(self) -> Iterator[tuple[str, Tensor]]:
    method match_model_tensor_name (line 97) | def match_model_tensor_name(self, name: str, key: gguf.MODEL_TENSOR, b...
    method map_tensor_name (line 110) | def map_tensor_name(self, name: str, try_suffixes: Sequence[str] = ("....
    method set_gguf_parameters (line 116) | def set_gguf_parameters(self):
    method write_tensors (line 159) | def write_tensors(self):
    method write (line 199) | def write(self):
    method write_vocab (line 206) | def write_vocab(self):
    method count_model_parts (line 212) | def count_model_parts(dir_model: Path, prefix: str) -> int:
    method load_hparams (line 221) | def load_hparams(dir_model):
    method register (line 226) | def register(cls, *names: str) -> Callable[[AnyModel], AnyModel]:
    method from_model_architecture (line 236) | def from_model_architecture(cls, arch):
    method _is_model_safetensors (line 242) | def _is_model_safetensors(self) -> bool:
    method _get_part_names (line 245) | def _get_part_names(self):
    method get_vocab_base (line 256) | def get_vocab_base(self) -> tuple[list[str], list[int], str]:
    method get_vocab_base_pre (line 291) | def get_vocab_base_pre(self, tokenizer) -> str:
    method _set_vocab_gpt2 (line 366) | def _set_vocab_gpt2(self) -> None:
    method _set_vocab_sentencepiece (line 376) | def _set_vocab_sentencepiece(self):
    method _set_vocab_llama_hf (line 441) | def _set_vocab_llama_hf(self):
  function process_tl1 (line 465) | def process_tl1(weight, BM, BY, bm, by, M, K):
  function preprocess_weights_tl1 (line 479) | def preprocess_weights_tl1(
  function preprocess_two_weights_tl2 (line 523) | def preprocess_two_weights_tl2(M, K, weight_num, BM, BY, bm, by, weight,...
  function preprocess_three_weights_tl2 (line 549) | def preprocess_three_weights_tl2(M, K, weight_num, BM, BY, bm, by, weigh...
  function preprocess_weights_tl2 (line 597) | def preprocess_weights_tl2(
  function transform_to_tl1 (line 662) | def transform_to_tl1(x: np.ndarray):
  function transform_to_tl2 (line 668) | def transform_to_tl2(x: np.ndarray):
  function read_model_config (line 675) | def read_model_config(model_dir: str) -> dict[str, Any]:
  class LlamaModel (line 683) | class LlamaModel(Model):
    method set_vocab (line 686) | def set_vocab(self):
    method write_tensors (line 708) | def write_tensors(self):
    method set_gguf_parameters (line 834) | def set_gguf_parameters(self):
    method permute (line 862) | def permute(weights: Tensor, n_head: int, n_head_kv: int | None):
    method modify_tensors (line 871) | def modify_tensors(self, data_torch: Tensor, name: str, bid: int | Non...
    method generate_extra_tensors (line 916) | def generate_extra_tensors(self) -> Iterable[tuple[str, Tensor]]:
    method prepare_tensors (line 945) | def prepare_tensors(self):
  class BitnetModel (line 956) | class BitnetModel(Model):
    method set_vocab (line 959) | def set_vocab(self):
    method set_gguf_parameters (line 962) | def set_gguf_parameters(self):
    method weight_quant (line 970) | def weight_quant(self, weight):
    method modify_tensors (line 977) | def modify_tensors(self, data_torch: Tensor, name: str, bid: int | Non...
    method write_tensors (line 986) | def write_tensors(self):
  function parse_args (line 1095) | def parse_args() -> argparse.Namespace:
  function main (line 1126) | def main() -> None:

FILE: utils/convert-ms-to-gguf-bitnet.py
  class DataType (line 58) | class DataType:
    method elements_to_bytes (line 63) | def elements_to_bytes(self, n_elements: int) -> int:
  class UnquantizedDataType (line 68) | class UnquantizedDataType(DataType):
  class QuantizedDataType (line 79) | class QuantizedDataType(DataType):
    method quantize (line 84) | def quantize(self, arr: NDArray) -> NDArray:
    method elements_to_bytes (line 87) | def elements_to_bytes(self, n_elements: int) -> int:
  class Q8_0QuantizedDataType (line 93) | class Q8_0QuantizedDataType(QuantizedDataType):
    method quantize (line 95) | def quantize(self, arr: NDArray) -> NDArray:
  class GGMLFileType (line 177) | class GGMLFileType(enum.IntEnum):
    method type_for_tensor (line 183) | def type_for_tensor(self, name: str, tensor: LazyTensor) -> DataType:
  class Params (line 208) | class Params:
    method guessed (line 232) | def guessed(model: LazyModel) -> Params:
    method loadHFTransformerJson (line 269) | def loadHFTransformerJson(model: LazyModel, config_path: Path) -> Params:
    method loadOriginalParamsJson (line 326) | def loadOriginalParamsJson(model: LazyModel, config_path: Path) -> Par...
    method load (line 372) | def load(model_plus: ModelPlus) -> Params:
  class BaseVocab (line 395) | class BaseVocab(Protocol):
  class NoVocab (line 400) | class NoVocab(BaseVocab):
    method __repr__ (line 404) | def __repr__(self) -> str:
  class Vocab (line 409) | class Vocab(BaseVocab, Protocol):
    method __init__ (line 415) | def __init__(self, base_path: Path): ...
    method all_tokens (line 416) | def all_tokens(self) -> Iterable[tuple[bytes, float, gguf.TokenType]]:...
  class BpeVocab (line 419) | class BpeVocab(Vocab):
    method __init__ (line 423) | def __init__(self, base_path: Path):
    method bpe_tokens (line 475) | def bpe_tokens(self) -> Iterable[tuple[bytes, float, gguf.TokenType]]:
    method added_tokens (line 481) | def added_tokens(self) -> Iterable[tuple[bytes, float, gguf.TokenType]]:
    method all_tokens (line 486) | def all_tokens(self) -> Iterable[tuple[bytes, float, gguf.TokenType]]:
    method __repr__ (line 490) | def __repr__(self) -> str:
  class SentencePieceVocab (line 494) | class SentencePieceVocab(Vocab):
    method __init__ (line 498) | def __init__(self, base_path: Path):
    method sentencepiece_tokens (line 528) | def sentencepiece_tokens(self) -> Iterable[tuple[bytes, float, gguf.To...
    method added_tokens (line 552) | def added_tokens(self) -> Iterable[tuple[bytes, float, gguf.TokenType]]:
    method all_tokens (line 557) | def all_tokens(self) -> Iterable[tuple[bytes, float, gguf.TokenType]]:
    method __repr__ (line 561) | def __repr__(self) -> str:
  class LlamaHfVocab (line 565) | class LlamaHfVocab(Vocab):
    method __init__ (line 569) | def __init__(self, base_path: Path):
    method hf_tokens (line 635) | def hf_tokens(self) -> Iterable[tuple[bytes, float, gguf.TokenType]]:
    method get_token_type (line 653) | def get_token_type(self, token_id: int, token_text: bytes, special_ids...
    method get_token_score (line 661) | def get_token_score(self, token_id: int) -> float:
    method added_tokens (line 666) | def added_tokens(self) -> Iterable[tuple[bytes, float, gguf.TokenType]]:
    method has_newline_token (line 677) | def has_newline_token(self):
    method all_tokens (line 680) | def all_tokens(self) -> Iterable[tuple[bytes, float, gguf.TokenType]]:
    method __repr__ (line 684) | def __repr__(self) -> str:
  function permute (line 694) | def permute(weights: NDArray, n_head: int, n_head_kv: int) -> NDArray:
  class Tensor (line 702) | class Tensor(ABC):
    method astype (line 707) | def astype(self, data_type: DataType) -> Self: ...
    method permute (line 709) | def permute(self, n_head: int, n_head_kv: int) -> Self: ...
    method permute_part (line 711) | def permute_part(self, n_part: int, n_head: int, n_head_kv: int) -> Se...
    method part (line 713) | def part(self, n_part: int) -> Self: ...
    method to_ggml (line 715) | def to_ggml(self) -> GGMLCompatibleTensor: ...
  function bf16_to_fp32 (line 718) | def bf16_to_fp32(bf16_arr: np.ndarray[Any, np.dtype[np.uint16]]) -> NDAr...
  function preprocess_weights (line 723) | def preprocess_weights(
  function transform_to_i2 (line 768) | def transform_to_i2(x : NDArray):
  class UnquantizedTensor (line 781) | class UnquantizedTensor(Tensor):
    method __init__ (line 782) | def __init__(self, ndarray: NDArray, i2_scale: NDArray = None):
    method astype (line 788) | def astype(self, data_type: DataType) -> UnquantizedTensor:
    method to_ggml (line 796) | def to_ggml(self) -> Self:
    method permute_part (line 799) | def permute_part(self, n_part: int, n_head: int, n_head_kv: int) -> Un...
    method part (line 803) | def part(self, n_part: int) -> UnquantizedTensor:
    method permute (line 807) | def permute(self, n_head: int, n_head_kv: int) -> UnquantizedTensor:
  function load_unquantized (line 811) | def load_unquantized(lazy_tensor: LazyTensor, expected_dtype: Any = None...
  class LazyTensor (line 831) | class LazyTensor:
    method load (line 837) | def load(self) -> Tensor:
    method astype (line 844) | def astype(self, data_type: DataType) -> LazyTensor:
    method validate_conversion_to (line 851) | def validate_conversion_to(self, data_type: DataType) -> None:
  class ModelPlus (line 860) | class ModelPlus:
  function merge_sharded (line 867) | def merge_sharded(models: list[LazyModel]) -> LazyModel:
  function merge_multifile_models (line 901) | def merge_multifile_models(models_plus: list[ModelPlus]) -> ModelPlus:
  function permute_lazy (line 924) | def permute_lazy(lazy_tensor: LazyTensor, n_head: int, n_head_kv: int) -...
  function permute_part_lazy (line 930) | def permute_part_lazy(lazy_tensor: LazyTensor, n_part: int, n_head: int,...
  function part_lazy (line 937) | def part_lazy(lazy_tensor: LazyTensor, n_part: int) -> LazyTensor:
  function forward_t (line 946) | def forward_t(x):
  function weight_quant (line 953) | def weight_quant(weight):
  function part_lazy_q (line 960) | def part_lazy_q(lazy_tensor: LazyTensor, n_part: int) -> LazyTensor:
  function part_lazy_k (line 968) | def part_lazy_k(lazy_tensor: LazyTensor, n_part: int) -> LazyTensor:
  function part_lazy_v (line 976) | def part_lazy_v(lazy_tensor: LazyTensor, n_part: int) -> LazyTensor:
  function part_lazy_w1 (line 986) | def part_lazy_w1(lazy_tensor: LazyTensor, n_part: int) -> LazyTensor:
  function part_lazy_w3 (line 995) | def part_lazy_w3(lazy_tensor: LazyTensor, n_part: int) -> LazyTensor:
  function part_lazy_rope (line 1004) | def part_lazy_rope(lazy_tensor: LazyTensor) -> LazyTensor:
  function part_lazy_weight_quant (line 1011) | def part_lazy_weight_quant(lazy_tensor: LazyTensor, name) -> LazyTensor:
  function pack_experts_lazy (line 1020) | def pack_experts_lazy(lazy_tensors: list[LazyTensor]) -> LazyTensor:
  function lazy_load_safetensors_file (line 1029) | def lazy_load_safetensors_file(fp: IO[bytes], path: Path) -> ModelPlus:
  function must_read (line 1053) | def must_read(fp: IO[bytes], length: int) -> bytes:
  function lazy_load_file (line 1061) | def lazy_load_file(path: Path) -> ModelPlus:
  function bounded_parallel_map (line 1076) | def bounded_parallel_map(func: Callable[[In], Out], iterable: Iterable[I...
  function check_vocab_size (line 1111) | def check_vocab_size(params: Params, vocab: BaseVocab, pad_vocab: bool =...
  class OutputFile (line 1146) | class OutputFile:
    method __init__ (line 1147) | def __init__(self, fname_out: Path, endianess:gguf.GGUFEndian = gguf.G...
    method add_meta_arch (line 1150) | def add_meta_arch(self, params: Params) -> None:
    method extract_vocabulary_from_model (line 1193) | def extract_vocabulary_from_model(self, vocab: Vocab) -> tuple[list[by...
    method add_meta_vocab (line 1208) | def add_meta_vocab(self, vocab: Vocab) -> None:
    method add_meta_special_vocab (line 1219) | def add_meta_special_vocab(self, svocab: gguf.SpecialVocab) -> None:
    method add_tensor_info (line 1222) | def add_tensor_info(self, name: str, tensor: LazyTensor) -> None:
    method write_meta (line 1240) | def write_meta(self) -> None:
    method write_tensor_info (line 1244) | def write_tensor_info(self) -> None:
    method write_tensor_data (line 1247) | def write_tensor_data(self, ftype: GGMLFileType, model: LazyModel, con...
    method close (line 1279) | def close(self) -> None:
    method write_vocab_only (line 1283) | def write_vocab_only(
    method do_item (line 1301) | def do_item(item: tuple[str, LazyTensor]) -> tuple[DataType, NDArray]:
    method maybe_do_quantize (line 1307) | def maybe_do_quantize(item: tuple[DataType, NDArray]) -> NDArray:
    method write_all (line 1314) | def write_all(
  function pick_output_type (line 1347) | def pick_output_type(model: LazyModel, output_type_str: str | None) -> G...
  function convert_to_output_type (line 1364) | def convert_to_output_type(model: LazyModel, output_type: GGMLFileType) ...
  function convert_model_names (line 1374) | def convert_model_names(model: LazyModel, params: Params, skip_unknown: ...
  function nth_multifile_path (line 1508) | def nth_multifile_path(path: Path, n: int) -> Path | None:
  function find_multifile_paths (line 1529) | def find_multifile_paths(path: Path) -> list[Path]:
  function load_some_model (line 1547) | def load_some_model(path: Path) -> ModelPlus:
  class VocabFactory (line 1570) | class VocabFactory:
    method __init__ (line 1573) | def __init__(self, path: Path):
    method _create_special_vocab (line 1576) | def _create_special_vocab(self, vocab: BaseVocab, model_parent_path: P...
    method _create_vocab_by_path (line 1586) | def _create_vocab_by_path(self, vocab_types: list[str]) -> Vocab:
    method load_vocab (line 1607) | def load_vocab(self, vocab_types: list[str] | None, model_parent_path:...
  function default_outfile (line 1621) | def default_outfile(model_paths: list[Path], file_type: GGMLFileType) ->...
  function do_dump_model (line 1637) | def do_dump_model(model_plus: ModelPlus) -> None:
  function main (line 1645) | def main(args_in: list[str] | None = None) -> None:

FILE: utils/convert.py
  class DataType (line 58) | class DataType:
    method elements_to_bytes (line 63) | def elements_to_bytes(self, n_elements: int) -> int:
  class UnquantizedDataType (line 68) | class UnquantizedDataType(DataType):
  class QuantizedDataType (line 79) | class QuantizedDataType(DataType):
    method quantize (line 84) | def quantize(self, arr: NDArray) -> NDArray:
    method elements_to_bytes (line 87) | def elements_to_bytes(self, n_elements: int) -> int:
  class Q8_0QuantizedDataType (line 93) | class Q8_0QuantizedDataType(QuantizedDataType):
    method quantize (line 95) | def quantize(self, arr: NDArray) -> NDArray:
  class GGMLFileType (line 177) | class GGMLFileType(enum.IntEnum):
    method type_for_tensor (line 183) | def type_for_tensor(self, name: str, tensor: LazyTensor) -> DataType:
  class Params (line 208) | class Params:
    method guessed (line 232) | def guessed(model: LazyModel) -> Params:
    method loadHFTransformerJson (line 269) | def loadHFTransformerJson(model: LazyModel, config_path: Path) -> Params:
    method loadOriginalParamsJson (line 326) | def loadOriginalParamsJson(model: LazyModel, config_path: Path) -> Par...
    method load (line 372) | def load(model_plus: ModelPlus) -> Params:
  class BaseVocab (line 395) | class BaseVocab(Protocol):
  class NoVocab (line 400) | class NoVocab(BaseVocab):
    method __repr__ (line 404) | def __repr__(self) -> str:
  class Vocab (line 409) | class Vocab(BaseVocab, Protocol):
    method __init__ (line 415) | def __init__(self, base_path: Path): ...
    method all_tokens (line 416) | def all_tokens(self) -> Iterable[tuple[bytes, float, gguf.TokenType]]:...
  class BpeVocab (line 419) | class BpeVocab(Vocab):
    method __init__ (line 423) | def __init__(self, base_path: Path):
    method bpe_tokens (line 475) | def bpe_tokens(self) -> Iterable[tuple[bytes, float, gguf.TokenType]]:
    method added_tokens (line 481) | def added_tokens(self) -> Iterable[tuple[bytes, float, gguf.TokenType]]:
    method all_tokens (line 486) | def all_tokens(self) -> Iterable[tuple[bytes, float, gguf.TokenType]]:
    method __repr__ (line 490) | def __repr__(self) -> str:
  class SentencePieceVocab (line 494) | class SentencePieceVocab(Vocab):
    method __init__ (line 498) | def __init__(self, base_path: Path):
    method sentencepiece_tokens (line 528) | def sentencepiece_tokens(self) -> Iterable[tuple[bytes, float, gguf.To...
    method added_tokens (line 552) | def added_tokens(self) -> Iterable[tuple[bytes, float, gguf.TokenType]]:
    method all_tokens (line 557) | def all_tokens(self) -> Iterable[tuple[bytes, float, gguf.TokenType]]:
    method __repr__ (line 561) | def __repr__(self) -> str:
  class LlamaHfVocab (line 565) | class LlamaHfVocab(Vocab):
    method __init__ (line 569) | def __init__(self, base_path: Path):
    method hf_tokens (line 635) | def hf_tokens(self) -> Iterable[tuple[bytes, float, gguf.TokenType]]:
    method get_token_type (line 653) | def get_token_type(self, token_id: int, token_text: bytes, special_ids...
    method get_token_score (line 661) | def get_token_score(self, token_id: int) -> float:
    method added_tokens (line 666) | def added_tokens(self) -> Iterable[tuple[bytes, float, gguf.TokenType]]:
    method has_newline_token (line 677) | def has_newline_token(self):
    method all_tokens (line 680) | def all_tokens(self) -> Iterable[tuple[bytes, float, gguf.TokenType]]:
    method __repr__ (line 684) | def __repr__(self) -> str:
  function permute (line 694) | def permute(weights: NDArray, n_head: int, n_head_kv: int) -> NDArray:
  class Tensor (line 702) | class Tensor(ABC):
    method astype (line 707) | def astype(self, data_type: DataType) -> Self: ...
    method permute (line 709) | def permute(self, n_head: int, n_head_kv: int) -> Self: ...
    method permute_part (line 711) | def permute_part(self, n_part: int, n_head: int, n_head_kv: int) -> Se...
    method part (line 713) | def part(self, n_part: int) -> Self: ...
    method to_ggml (line 715) | def to_ggml(self) -> GGMLCompatibleTensor: ...
  function bf16_to_fp32 (line 718) | def bf16_to_fp32(bf16_arr: np.ndarray[Any, np.dtype[np.uint16]]) -> NDAr...
  function preprocess_weights (line 723) | def preprocess_weights(
  function transform_to_i2 (line 768) | def transform_to_i2(x : NDArray):
  class UnquantizedTensor (line 781) | class UnquantizedTensor(Tensor):
    method __init__ (line 782) | def __init__(self, ndarray: NDArray, i2_scale: NDArray = None):
    method astype (line 788) | def astype(self, data_type: DataType) -> UnquantizedTensor:
    method to_ggml (line 796) | def to_ggml(self) -> Self:
    method permute_part (line 799) | def permute_part(self, n_part: int, n_head: int, n_head_kv: int) -> Un...
    method part (line 803) | def part(self, n_part: int) -> UnquantizedTensor:
    method permute (line 807) | def permute(self, n_head: int, n_head_kv: int) -> UnquantizedTensor:
  function load_unquantized (line 811) | def load_unquantized(lazy_tensor: LazyTensor, expected_dtype: Any = None...
  class LazyTensor (line 831) | class LazyTensor:
    method load (line 837) | def load(self) -> Tensor:
    method astype (line 844) | def astype(self, data_type: DataType) -> LazyTensor:
    method validate_conversion_to (line 851) | def validate_conversion_to(self, data_type: DataType) -> None:
  class ModelPlus (line 860) | class ModelPlus:
  function merge_sharded (line 867) | def merge_sharded(models: list[LazyModel]) -> LazyModel:
  function merge_multifile_models (line 901) | def merge_multifile_models(models_plus: list[ModelPlus]) -> ModelPlus:
  function permute_lazy (line 924) | def permute_lazy(lazy_tensor: LazyTensor, n_head: int, n_head_kv: int) -...
  function permute_part_lazy (line 930) | def permute_part_lazy(lazy_tensor: LazyTensor, n_part: int, n_head: int,...
  function part_lazy (line 938) | def part_lazy(lazy_tensor: LazyTensor, n_part: int) -> LazyTensor:
  function pack_experts_lazy (line 946) | def pack_experts_lazy(lazy_tensors: list[LazyTensor]) -> LazyTensor:
  function lazy_load_safetensors_file (line 955) | def lazy_load_safetensors_file(fp: IO[bytes], path: Path) -> ModelPlus:
  function must_read (line 979) | def must_read(fp: IO[bytes], length: int) -> bytes:
  function lazy_load_file (line 987) | def lazy_load_file(path: Path) -> ModelPlus:
  function bounded_parallel_map (line 1002) | def bounded_parallel_map(func: Callable[[In], Out], iterable: Iterable[I...
  function check_vocab_size (line 1037) | def check_vocab_size(params: Params, vocab: BaseVocab, pad_vocab: bool =...
  class OutputFile (line 1072) | class OutputFile:
    method __init__ (line 1073) | def __init__(self, fname_out: Path, endianess:gguf.GGUFEndian = gguf.G...
    method add_meta_arch (line 1076) | def add_meta_arch(self, params: Params) -> None:
    method extract_vocabulary_from_model (line 1123) | def extract_vocabulary_from_model(self, vocab: Vocab) -> tuple[list[by...
    method add_meta_vocab (line 1138) | def add_meta_vocab(self, vocab: Vocab) -> None:
    method add_meta_special_vocab (line 1150) | def add_meta_special_vocab(self, svocab: gguf.SpecialVocab) -> None:
    method add_tensor_info (line 1153) | def add_tensor_info(self, name: str, tensor: LazyTensor) -> None:
    method write_meta (line 1171) | def write_meta(self) -> None:
    method write_tensor_info (line 1175) | def write_tensor_info(self) -> None:
    method write_tensor_data (line 1178) | def write_tensor_data(self, ftype: GGMLFileType, model: LazyModel, con...
    method close (line 1210) | def close(self) -> None:
    method write_vocab_only (line 1214) | def write_vocab_only(
    method do_item (line 1232) | def do_item(item: tuple[str, LazyTensor]) -> tuple[DataType, NDArray]:
    method maybe_do_quantize (line 1238) | def maybe_do_quantize(item: tuple[DataType, NDArray]) -> NDArray:
    method write_all (line 1245) | def write_all(
  function pick_output_type (line 1275) | def pick_output_type(model: LazyModel, output_type_str: str | None) -> G...
  function convert_to_output_type (line 1292) | def convert_to_output_type(model: LazyModel, output_type: GGMLFileType) ...
  function convert_model_names (line 1302) | def convert_model_names(model: LazyModel, params: Params, skip_unknown: ...
  function nth_multifile_path (line 1363) | def nth_multifile_path(path: Path, n: int) -> Path | None:
  function find_multifile_paths (line 1384) | def find_multifile_paths(path: Path) -> list[Path]:
  function load_some_model (line 1402) | def load_some_model(path: Path) -> ModelPlus:
  class VocabFactory (line 1425) | class VocabFactory:
    method __init__ (line 1428) | def __init__(self, path: Path):
    method _create_special_vocab (line 1431) | def _create_special_vocab(self, vocab: BaseVocab, model_parent_path: P...
    method _create_vocab_by_path (line 1441) | def _create_vocab_by_path(self, vocab_types: list[str]) -> Vocab:
    method load_vocab (line 1462) | def load_vocab(self, vocab_types: list[str] | None, model_parent_path:...
  function default_outfile (line 1476) | def default_outfile(model_paths: list[Path], file_type: GGMLFileType) ->...
  function do_dump_model (line 1492) | def do_dump_model(model_plus: ModelPlus) -> None:
  function main (line 1500) | def main(args_in: list[str] | None = None) -> None:

FILE: utils/e2e_benchmark.py
  function run_command (line 8) | def run_command(command, shell=False, log_step=None):
  function run_benchmark (line 25) | def run_benchmark():
  function parse_args (line 48) | def parse_args():

FILE: utils/generate-dummy-bitnet-model.py
  class SentencePieceTokenTypes (line 108) | class SentencePieceTokenTypes(IntEnum):
  class Model (line 120) | class Model(ABC):
    method __init__ (line 123) | def __init__(self, dir_model: Path, ftype: int, fname_out: Path, is_bi...
    method model_arch (line 140) | def model_arch(self) -> gguf.MODEL_ARCH:
    method find_hparam (line 143) | def find_hparam(self, keys: Sequence[str], optional: bool = False) -> ...
    method set_vocab (line 151) | def set_vocab(self):
    method get_tensors (line 154) | def get_tensors(self) -> Iterator[tuple[str, Tensor]]:
    method match_model_tensor_name (line 169) | def match_model_tensor_name(self, name: str, key: gguf.MODEL_TENSOR, b...
    method map_tensor_name (line 182) | def map_tensor_name(self, name: str, try_suffixes: Sequence[str] = ("....
    method set_gguf_parameters (line 188) | def set_gguf_parameters(self):
    method write_tensors (line 231) | def write_tensors(self):
    method write (line 271) | def write(self):
    method write_vocab (line 278) | def write_vocab(self):
    method count_model_parts (line 284) | def count_model_parts(dir_model: Path, prefix: str) -> int:
    method load_hparams (line 293) | def load_hparams(dir_model):
    method register (line 298) | def register(cls, *names: str) -> Callable[[AnyModel], AnyModel]:
    method from_model_architecture (line 308) | def from_model_architecture(cls, arch):
    method _is_model_safetensors (line 314) | def _is_model_safetensors(self) -> bool:
    method _get_part_names (line 317) | def _get_part_names(self):
    method get_vocab_base (line 328) | def get_vocab_base(self) -> tuple[list[str], list[int], str]:
    method get_vocab_base_pre (line 361) | def get_vocab_base_pre(self, tokenizer) -> str:
    method _set_vocab_sentencepiece (line 431) | def _set_vocab_sentencepiece(self):
  function process_tl1 (line 498) | def process_tl1(weight, BM, BY, bm, by, M, K):
  function preprocess_weights_tl1 (line 528) | def preprocess_weights_tl1(
  function preprocess_two_weights_tl2 (line 577) | def preprocess_two_weights_tl2(M, K, weight_num, BM, BY, bm, by, weight,...
  function preprocess_three_weights_tl2 (line 620) | def preprocess_three_weights_tl2(M, K, weight_num, BM, BY, bm, by, weigh...
  function preprocess_weights_tl2 (line 699) | def preprocess_weights_tl2(
  class BitnetModel (line 777) | class BitnetModel(Model):
    method set_params (line 781) | def set_params(self, params: str):
    method set_vocab (line 793) | def set_vocab(self):
    method set_gguf_parameters (line 796) | def set_gguf_parameters(self):
    method weight_quant (line 804) | def weight_quant(self, weight):
    method transform_to_tl1 (line 811) | def transform_to_tl1(self, x: np.ndarray):
    method transform_to_tl2 (line 817) | def transform_to_tl2(self, x: np.ndarray):
    method generate_tensors (line 824) | def generate_tensors(self) -> Iterator[tuple[str, np.ndarray]]:
    method modify_tensors (line 852) | def modify_tensors(self, data_torch: Tensor, name: str, bid: int | Non...
    method write_tensors (line 861) | def write_tensors(self):
  function main (line 963) | def main() -> None:
  function read_gguf_file (line 990) | def read_gguf_file(gguf_file_path):
  function parse_args (line 1019) | def parse_args() -> argparse.Namespace:

FILE: utils/preprocess-huggingface-bitnet.py
  function quant_weight_fp16 (line 5) | def quant_weight_fp16(weight):
  function quant_model (line 11) | def quant_model(input, output):

FILE: utils/quantize_embeddings.py
  class EmbeddingQuantizer (line 17) | class EmbeddingQuantizer:
    method __init__ (line 18) | def __init__(self, input_model, output_dir, quantize_bin="../build/bin...
    method quantize (line 46) | def quantize(self, embedding_type, output_suffix):
    method benchmark_model (line 127) | def benchmark_model(self, output_suffix):
    method parse_benchmark_output (line 187) | def parse_benchmark_output(self, output, output_suffix):
    method cleanup_model (line 256) | def cleanup_model(self, output_suffix):
    method run_all_quantizations (line 275) | def run_all_quantizations(self, types_to_quantize):
    method save_results_to_csv (line 329) | def save_results_to_csv(self):
    method print_summary (line 370) | def print_summary(self, total_duration):
  function main (line 394) | def main():

FILE: utils/test_perplexity.py
  class PerplexityTester (line 20) | class PerplexityTester:
    method __init__ (line 21) | def __init__(self, model_path, llama_perplexity_bin="../build/bin/llam...
    method find_datasets (line 63) | def find_datasets(self):
    method create_quick_dataset (line 91) | def create_quick_dataset(self, dataset_path, num_chars=4096):
    method cleanup_temp_files (line 107) | def cleanup_temp_files(self):
    method run_perplexity_test (line 116) | def run_perplexity_test(self, dataset_name, dataset_path, threads=16, ...
    method parse_perplexity (line 207) | def parse_perplexity(self, output):
    method quantize_embedding (line 241) | def quantize_embedding(self, embedding_type, output_suffix):
    method cleanup_model (line 314) | def cleanup_model(self, model_path):
    method run_all_tests (line 326) | def run_all_tests(self, threads=16, ctx_size=512):
    method save_results (line 441) | def save_results(self):
    method print_summary (line 490) | def print_summary(self, total_time):
  function main (line 539) | def main():

FILE: utils/tune_gemm_config.py
  class GemmTuner (line 18) | class GemmTuner:
    method __init__ (line 19) | def __init__(self, config_path, model_path, threads=16):
    method backup_config (line 27) | def backup_config(self):
    method restore_config (line 32) | def restore_config(self):
    method generate_config (line 37) | def generate_config(self, act_parallel, row_block_size, col_block_size...
    method rebuild_project (line 52) | def rebuild_project(self):
    method run_benchmark (line 66) | def run_benchmark(self):
    method parse_throughput (line 93) | def parse_throughput(self, output):
    method test_configuration (line 110) | def test_configuration(self, act_parallel, row_block_size, col_block_s...
    method save_results (line 153) | def save_results(self, csv_path):
    method find_best_config (line 166) | def find_best_config(self):
    method run_tuning (line 175) | def run_tuning(self, configurations, output_csv=None):
  function generate_configurations (line 262) | def generate_configurations():
  function main (line 296) | def main():
Condensed preview — 60 files, each showing path, character count, and a content snippet. Download the .json file or copy for the full structured content (3,229K chars).
[
  {
    "path": ".gitignore",
    "chars": 349,
    "preview": "# Extensions\n\n*.a\n*.bat\n*.bin\n*.dll\n*.dot\n*.etag\n*.exe\n*.gcda\n*.gcno\n*.gcov\n*.gguf\n*.gguf.json\n*.lastModified\n*.log\n*.me"
  },
  {
    "path": ".gitmodules",
    "chars": 135,
    "preview": "[submodule \"3rdparty/llama.cpp\"]\n\tpath = 3rdparty/llama.cpp\n\turl = https://github.com/Eddie-Wang1120/llama.cpp.git\n\tbran"
  },
  {
    "path": "CMakeLists.txt",
    "chars": 2735,
    "preview": "cmake_minimum_required(VERSION 3.14)  # for add_link_options and implicit target directories.\nproject(\"bitnet.cpp\" C CXX"
  },
  {
    "path": "CODE_OF_CONDUCT.md",
    "chars": 444,
    "preview": "# Microsoft Open Source Code of Conduct\n\nThis project has adopted the [Microsoft Open Source Code of Conduct](https://op"
  },
  {
    "path": "LICENSE",
    "chars": 1141,
    "preview": "    MIT License\n\n    Copyright (c) Microsoft Corporation.\n\n    Permission is hereby granted, free of charge, to any pers"
  },
  {
    "path": "README.md",
    "chars": 15124,
    "preview": "# bitnet.cpp\n[![License: MIT](https://img.shields.io/badge/license-MIT-blue.svg)](https://opensource.org/licenses/MIT)\n!"
  },
  {
    "path": "SECURITY.md",
    "chars": 2656,
    "preview": "<!-- BEGIN MICROSOFT SECURITY.MD V0.0.9 BLOCK -->\n\n## Security\n\nMicrosoft takes the security of our software products an"
  },
  {
    "path": "docs/codegen.md",
    "chars": 1563,
    "preview": "Codegen for TL1 and TL2\n------------------------\n\ncodegen_tl1.py and codegen_tl2.py are using params to generate kernel "
  },
  {
    "path": "gpu/README.md",
    "chars": 4112,
    "preview": "# BitNet Inference Kernel\n\nThis repository provides a highly efficient GEMV kernel implementation for the BitNet model, "
  },
  {
    "path": "gpu/bitnet_kernels/bitnet_kernels.cu",
    "chars": 2247,
    "preview": "#include \"bitnet_kernels.h\"\n\nextern \"C\" void bitlinear_int8xint2(int8_t* input0, int8_t* input1, __nv_bfloat16* output0,"
  },
  {
    "path": "gpu/bitnet_kernels/bitnet_kernels.h",
    "chars": 3203,
    "preview": "#include <cuda_runtime.h>\n#include <math_constants.h>\n#include <math.h>\n#include <mma.h>\n#include <iostream>\n#include <c"
  },
  {
    "path": "gpu/bitnet_kernels/compile.sh",
    "chars": 173,
    "preview": "nvcc -std=c++17 -Xcudafe --diag_suppress=177 --compiler-options -fPIC -lineinfo --shared bitnet_kernels.cu -lcuda -genco"
  },
  {
    "path": "gpu/bitnet_kernels/setup.py",
    "chars": 299,
    "preview": "from setuptools import setup\nfrom torch.utils.cpp_extension import BuildExtension, CUDAExtension\n\nsetup(\n    name='bitli"
  },
  {
    "path": "gpu/convert_checkpoint.py",
    "chars": 4036,
    "preview": "import json\r\nimport os\r\nimport re\r\nimport sys\r\nfrom pathlib import Path\r\nfrom typing import Optional\r\nfrom dataclasses i"
  },
  {
    "path": "gpu/convert_safetensors.py",
    "chars": 4243,
    "preview": "import re\nimport torch\nfrom pathlib import Path\nfrom safetensors.torch import load_file\nfrom einops import rearrange\nfro"
  },
  {
    "path": "gpu/generate.py",
    "chars": 12845,
    "preview": "# Copyright (c) Facebook, Inc. and its affiliates. All rights reserved.\r\n#\r\n# This source code is licensed under the BSD"
  },
  {
    "path": "gpu/model.py",
    "chars": 11228,
    "preview": "# Copyright (c) Facebook, Inc. and its affiliates. All rights reserved.\r\n#\r\n# This source code is licensed under the BSD"
  },
  {
    "path": "gpu/pack_weight.py",
    "chars": 3309,
    "preview": "import torch\r\nimport numpy as np\r\n\r\n\r\ndef B_global_16x32_to_shared_load_16x32_layout(i, j):\r\n    \"\"\"\r\n         stride * "
  },
  {
    "path": "gpu/requirements.txt",
    "chars": 100,
    "preview": "fire\r\nsentencepiece\r\ntorch>=2.2.0\r\nxformers>=0.0.22\r\ntiktoken\r\nblobfile\r\nflask\r\neinops\r\ntransformers"
  },
  {
    "path": "gpu/sample_utils.py",
    "chars": 1126,
    "preview": "# Copyright (c) Facebook, Inc. and its affiliates. All rights reserved.\r\n#\r\n# This source code is licensed under the BSD"
  },
  {
    "path": "gpu/stats.py",
    "chars": 1505,
    "preview": "# Copyright (c) Facebook, Inc. and its affiliates. All rights reserved.\r\n#\r\n# This source code is licensed under the BSD"
  },
  {
    "path": "gpu/test.py",
    "chars": 3940,
    "preview": "import torch\nfrom torch.utils import benchmark\nfrom torch import nn\n\nfrom pack_weight import convert_weight_int8_to_int2"
  },
  {
    "path": "gpu/tokenizer.model",
    "chars": 2183982,
    "preview": "IQ== 0\nIg== 1\nIw== 2\nJA== 3\nJQ== 4\nJg== 5\nJw== 6\nKA== 7\nKQ== 8\nKg== 9\nKw== 10\nLA== 11\nLQ== 12\nLg== 13\nLw== 14\nMA== 15\nMQ"
  },
  {
    "path": "gpu/tokenizer.py",
    "chars": 9213,
    "preview": "import os\r\nfrom logging import getLogger\r\nfrom pathlib import Path\r\nfrom typing import (\r\n    AbstractSet,\r\n    cast,\r\n "
  },
  {
    "path": "include/gemm-config.h",
    "chars": 922,
    "preview": "#define ACT_PARALLEL\n#if defined(__AVX__) || defined(__AVX2__) || defined(__AVX512F__) || defined(__SSSE3__)\n#if defined"
  },
  {
    "path": "include/ggml-bitnet.h",
    "chars": 2056,
    "preview": "#pragma once\n\n#include \"ggml.h\"\n#include \"ggml-backend.h\"\n\n#ifdef __ARM_NEON\n#include <arm_neon.h>\ntypedef float32_t bit"
  },
  {
    "path": "preset_kernels/Llama3-8B-1.58-100B-tokens/bitnet-lut-kernels-tl1.h",
    "chars": 36959,
    "preview": "#if defined(GGML_BITNET_ARM_TL1)\n#include \"ggml-bitnet.h\"\n#define GGML_BITNET_MAX_NODES 8192\nstatic bool initialized = f"
  },
  {
    "path": "preset_kernels/Llama3-8B-1.58-100B-tokens/bitnet-lut-kernels-tl2.h",
    "chars": 95735,
    "preview": "#if defined(GGML_BITNET_X86_TL2)\n#include \"ggml-bitnet.h\"\n#define GGML_BITNET_MAX_NODES 8192\nstatic bool initialized = f"
  },
  {
    "path": "preset_kernels/Llama3-8B-1.58-100B-tokens/kernel_config_tl1.ini",
    "chars": 232,
    "preview": "[Kernels_0]\nm = 14336\nk = 4096\nbm = 256\nbk = 128\nbmm = 64\n\n[Kernels_1]\nm = 4096\nk = 14336\nbm = 256\nbk = 128\nbmm = 32\n\n[K"
  },
  {
    "path": "preset_kernels/Llama3-8B-1.58-100B-tokens/kernel_config_tl2.ini",
    "chars": 230,
    "preview": "[Kernels_0]\nm = 14336\nk = 4096\nbm = 256\nbk = 96\nbmm = 32\n\n[Kernels_1]\nm = 4096\nk = 14336\nbm = 128\nbk = 96\nbmm = 32\n\n[Ker"
  },
  {
    "path": "preset_kernels/bitnet_b1_58-3B/bitnet-lut-kernels-tl1.h",
    "chars": 29139,
    "preview": "#if defined(GGML_BITNET_ARM_TL1)\n#include \"ggml-bitnet.h\"\n#define GGML_BITNET_MAX_NODES 8192\nstatic bool initialized = f"
  },
  {
    "path": "preset_kernels/bitnet_b1_58-3B/bitnet-lut-kernels-tl2.h",
    "chars": 74991,
    "preview": "#if defined(GGML_BITNET_X86_TL2)\n#include \"ggml-bitnet.h\"\n#define GGML_BITNET_MAX_NODES 8192\nstatic bool initialized = f"
  },
  {
    "path": "preset_kernels/bitnet_b1_58-3B/kernel_config_tl1.ini",
    "chars": 172,
    "preview": "[Kernels_0]\nm = 3200\nk = 8640\nbm = 160\nbk = 64\nbmm = 32\n\n[Kernels_1]\nm = 3200\nk = 3200\nbm = 320\nbk = 128\nbmm = 64\n\n[Kern"
  },
  {
    "path": "preset_kernels/bitnet_b1_58-3B/kernel_config_tl2.ini",
    "chars": 171,
    "preview": "[Kernels_0]\nm = 3200\nk = 8640\nbm = 160\nbk = 96\nbmm = 32\n\n[Kernels_1]\nm = 3200\nk = 3200\nbm = 320\nbk = 96\nbmm = 32\n\n[Kerne"
  },
  {
    "path": "preset_kernels/bitnet_b1_58-large/bitnet-lut-kernels-tl1.h",
    "chars": 29140,
    "preview": "#if defined(GGML_BITNET_ARM_TL1)\n#include \"ggml-bitnet.h\"\n#define GGML_BITNET_MAX_NODES 8192\nstatic bool initialized = f"
  },
  {
    "path": "preset_kernels/bitnet_b1_58-large/bitnet-lut-kernels-tl2.h",
    "chars": 74987,
    "preview": "#if defined(GGML_BITNET_X86_TL2)\n#include \"ggml-bitnet.h\"\n#define GGML_BITNET_MAX_NODES 8192\nstatic bool initialized = f"
  },
  {
    "path": "preset_kernels/bitnet_b1_58-large/kernel_config_tl1.ini",
    "chars": 173,
    "preview": "[Kernels_0]\nm = 1536\nk = 4096\nbm = 256\nbk = 128\nbmm = 32\n\n[Kernels_1]\nm = 1536\nk = 1536\nbm = 128\nbk = 64\nbmm = 64\n\n[Kern"
  },
  {
    "path": "preset_kernels/bitnet_b1_58-large/kernel_config_tl2.ini",
    "chars": 172,
    "preview": "[Kernels_0]\nm = 1536\nk = 4096\nbm = 256\nbk = 96\nbmm = 32\n\n[Kernels_1]\nm = 1536\nk = 1536\nbm = 128\nbk = 192\nbmm = 32\n\n[Kern"
  },
  {
    "path": "requirements.txt",
    "chars": 588,
    "preview": "# These requirements include all dependencies for all top-level python scripts\n# for llama.cpp. Avoid adding packages he"
  },
  {
    "path": "run_inference.py",
    "chars": 2477,
    "preview": "import os\nimport sys\nimport signal\nimport platform\nimport argparse\nimport subprocess\n\ndef run_command(command, shell=Fal"
  },
  {
    "path": "run_inference_server.py",
    "chars": 2559,
    "preview": "import os\nimport sys\nimport signal\nimport platform\nimport argparse\nimport subprocess\n\ndef run_command(command, shell=Fal"
  },
  {
    "path": "setup_env.py",
    "chars": 11381,
    "preview": "import subprocess\nimport signal\nimport sys\nimport os\nimport platform\nimport argparse\nimport logging\nimport shutil\nfrom p"
  },
  {
    "path": "src/CMakeLists.txt",
    "chars": 458,
    "preview": "set(GGML_HEADERS_BITNET ../include/ggml-bitnet.h)\nset(GGML_SOURCES_BITNET ggml-bitnet-mad.cpp)\nset(GGML_SOURCES_BITNET g"
  },
  {
    "path": "src/README.md",
    "chars": 7428,
    "preview": "# BitNet CPU Inference Optimization\n\nThis update provides significant performance improvements for BitNet inference on C"
  },
  {
    "path": "src/ggml-bitnet-lut.cpp",
    "chars": 4630,
    "preview": "#include <vector>\n#include <type_traits>\n\n#include <string.h>\n#include <stdio.h>\n#include <stdlib.h>\n\n#include \"ggml-bit"
  },
  {
    "path": "src/ggml-bitnet-mad.cpp",
    "chars": 42113,
    "preview": "#include <vector>\n#include <type_traits>\n#include <assert.h>\n#include \"ggml-bitnet.h\"\n#include \"ggml-quants.h\"\n#include "
  },
  {
    "path": "utils/codegen_tl1.py",
    "chars": 18128,
    "preview": "import argparse\nimport os\nfrom configparser import ConfigParser\n\ndef gen_ctor_code():\n    kernel_code = \"\\n\\\n#include \\\""
  },
  {
    "path": "utils/codegen_tl2.py",
    "chars": 42900,
    "preview": "import argparse\nimport os\nfrom configparser import ConfigParser\n\ndef gen_ctor_code():\n    kernel_code = \"\\n\\\n#include \\\""
  },
  {
    "path": "utils/convert-helper-bitnet.py",
    "chars": 4832,
    "preview": "#!/usr/bin/env python3\n\nimport sys\nimport os\nimport shutil\nimport subprocess\nfrom pathlib import Path\n\ndef run_command(c"
  },
  {
    "path": "utils/convert-hf-to-gguf-bitnet.py",
    "chars": 51055,
    "preview": "#!/usr/bin/env python3\n\nfrom __future__ import annotations\n\nimport logging\nimport argparse\nimport contextlib\nimport json"
  },
  {
    "path": "utils/convert-ms-to-gguf-bitnet.py",
    "chars": 72524,
    "preview": "#!/usr/bin/env python3\nfrom __future__ import annotations\n\nimport logging\nimport argparse\nimport concurrent.futures\nimpo"
  },
  {
    "path": "utils/convert.py",
    "chars": 65446,
    "preview": "#!/usr/bin/env python3\nfrom __future__ import annotations\n\nimport logging\nimport argparse\nimport concurrent.futures\nimpo"
  },
  {
    "path": "utils/e2e_benchmark.py",
    "chars": 2365,
    "preview": "import os\nimport sys\nimport logging\nimport argparse\nimport platform\nimport subprocess\n\ndef run_command(command, shell=Fa"
  },
  {
    "path": "utils/generate-dummy-bitnet-model.py",
    "chars": 44625,
    "preview": "#!/usr/bin/env python3\n\n# dummy model generation script based on convert-hf-to-gguf-bitnet.py\nfrom __future__ import ann"
  },
  {
    "path": "utils/preprocess-huggingface-bitnet.py",
    "chars": 1450,
    "preview": "from safetensors import safe_open\nfrom safetensors.torch import save_file\nimport torch\n\ndef quant_weight_fp16(weight):\n "
  },
  {
    "path": "utils/quantize_embeddings.py",
    "chars": 17630,
    "preview": "#!/usr/bin/env python3\n\"\"\"\nEmbedding Quantization Script\nThis script converts ggml-model-f32.gguf to multiple quantized "
  },
  {
    "path": "utils/test_gemm_kernel.sh",
    "chars": 20138,
    "preview": "#!/bin/bash\n# Unified GEMM kernel benchmark script\n# Builds, tests, and benchmarks the GEMM kernel with configurable out"
  },
  {
    "path": "utils/test_perplexity.py",
    "chars": 23827,
    "preview": "#!/usr/bin/env python3\n\"\"\"\nPerplexity Test Script\nTests GGUF model perplexity on multiple datasets using llama-perplexit"
  },
  {
    "path": "utils/test_power.sh",
    "chars": 4302,
    "preview": "#!/bin/bash\n# Monitor power consumption for llama-bench with different thread configurations\n# Usage: ./monitor_power.sh"
  },
  {
    "path": "utils/tune_gemm_config.py",
    "chars": 14030,
    "preview": "#!/usr/bin/env python3\n\"\"\"\nGEMM Configuration Tuning Script\nThis script automatically tunes ROW_BLOCK_SIZE, COL_BLOCK_SI"
  }
]

About this extraction

This page contains the full source code of the microsoft/BitNet GitHub repository, extracted and formatted as plain text for AI agents and large language models (LLMs). The extraction includes 60 files (2.9 MB), approximately 770.2k tokens, and a symbol index with 580 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!