Full Code of intel/libva-utils for AI

master 1747b4d227ed cached
167 files
5.9 MB
1.6M tokens
1590 symbols
1 requests
Download .txt
Showing preview only (6,231K chars total). Download the full file or copy to clipboard to get everything.
Repository: intel/libva-utils
Branch: master
Commit: 1747b4d227ed
Files: 167
Total size: 5.9 MB

Directory structure:
gitextract_6c2d9r9p/

├── .github/
│   └── workflows/
│       ├── EnterDevShell.ps1
│       ├── freebsd.yml
│       ├── ubuntu.yml
│       └── windows.yml
├── Android.bp
├── CONTRIBUTING.md
├── COPYING
├── INSTALL
├── Makefile.am
├── NEWS
├── README.md
├── autogen.sh
├── common/
│   ├── Makefile.am
│   ├── loadsurface.h
│   ├── loadsurface_yuv.h
│   ├── meson.build
│   ├── va_display.c
│   ├── va_display.h
│   ├── va_display_drm.c
│   ├── va_display_wayland.c
│   ├── va_display_win32.cpp
│   └── va_display_x11.c
├── configure.ac
├── decode/
│   ├── Makefile.am
│   ├── loadjpeg.c
│   ├── meson.build
│   ├── mpeg2-I.m2v
│   ├── mpeg2vldemo.cpp
│   ├── tinyjpeg-internal.h
│   ├── tinyjpeg.c
│   └── tinyjpeg.h
├── encode/
│   ├── Makefile.am
│   ├── av1encode.c
│   ├── avcenc.c
│   ├── h264encode.c
│   ├── hevcencode.c
│   ├── jpegenc.c
│   ├── jpegenc_utils.h
│   ├── meson.build
│   ├── mpeg2vaenc.c
│   ├── svctenc.c
│   ├── vp8enc.c
│   └── vp9enc.c
├── getopt/
│   ├── getopt.h
│   ├── getopt_long.c
│   └── meson.build
├── meson.build
├── meson_options.txt
├── putsurface/
│   ├── Makefile.am
│   ├── meson.build
│   ├── putsurface_common.c
│   ├── putsurface_wayland.c
│   └── putsurface_x11.c
├── security.md
├── style_unify
├── subprojects/
│   └── DirectX-Headers.wrap
├── test/
│   ├── Makefile.am
│   ├── compat_win32.h
│   ├── gtest/
│   │   ├── LICENSE
│   │   ├── README.md
│   │   ├── docs/
│   │   │   ├── AdvancedGuide.md
│   │   │   ├── DevGuide.md
│   │   │   ├── Documentation.md
│   │   │   ├── FAQ.md
│   │   │   ├── Primer.md
│   │   │   ├── PumpManual.md
│   │   │   ├── README.md
│   │   │   ├── Samples.md
│   │   │   └── XcodeGuide.md
│   │   ├── include/
│   │   │   └── gtest/
│   │   │       ├── gtest-death-test.h
│   │   │       ├── gtest-matchers.h
│   │   │       ├── gtest-message.h
│   │   │       ├── gtest-param-test.h
│   │   │       ├── gtest-param-test.h.pump
│   │   │       ├── gtest-printers.h
│   │   │       ├── gtest-spi.h
│   │   │       ├── gtest-test-part.h
│   │   │       ├── gtest-typed-test.h
│   │   │       ├── gtest.h
│   │   │       ├── gtest_pred_impl.h
│   │   │       ├── gtest_prod.h
│   │   │       └── internal/
│   │   │           ├── custom/
│   │   │           │   ├── README.md
│   │   │           │   ├── gtest-port.h
│   │   │           │   ├── gtest-printers.h
│   │   │           │   └── gtest.h
│   │   │           ├── gtest-death-test-internal.h
│   │   │           ├── gtest-filepath.h
│   │   │           ├── gtest-internal.h
│   │   │           ├── gtest-linked_ptr.h
│   │   │           ├── gtest-param-util-generated.h
│   │   │           ├── gtest-param-util-generated.h.pump
│   │   │           ├── gtest-param-util.h
│   │   │           ├── gtest-port-arch.h
│   │   │           ├── gtest-port.h
│   │   │           ├── gtest-string.h
│   │   │           ├── gtest-tuple.h
│   │   │           ├── gtest-tuple.h.pump
│   │   │           ├── gtest-type-util.h
│   │   │           └── gtest-type-util.h.pump
│   │   └── src/
│   │       ├── gtest-all.cc
│   │       ├── gtest-death-test.cc
│   │       ├── gtest-filepath.cc
│   │       ├── gtest-internal-inl.h
│   │       ├── gtest-matchers.cc
│   │       ├── gtest-port.cc
│   │       ├── gtest-printers.cc
│   │       ├── gtest-test-part.cc
│   │       ├── gtest-typed-test.cc
│   │       ├── gtest.cc
│   │       └── gtest_main.cc
│   ├── meson.build
│   ├── test.h
│   ├── test_data.h
│   ├── test_defs.h
│   ├── test_internal.cpp
│   ├── test_main.cpp
│   ├── test_streamable.h
│   ├── test_utils.h
│   ├── test_va_api_config_attribs.cpp
│   ├── test_va_api_createbuffer.cpp
│   ├── test_va_api_createcontext.cpp
│   ├── test_va_api_createsurfaces.cpp
│   ├── test_va_api_display_attribs.cpp
│   ├── test_va_api_fixture.cpp
│   ├── test_va_api_fixture.h
│   ├── test_va_api_get_create_config.cpp
│   ├── test_va_api_get_max_values.cpp
│   ├── test_va_api_init_terminate.cpp
│   ├── test_va_api_query_config.cpp
│   └── test_va_api_query_vendor.cpp
├── vainfo/
│   ├── Makefile.am
│   ├── meson.build
│   └── vainfo.c
├── vendor/
│   └── intel/
│       ├── Makefile.am
│       ├── avcstreamoutdemo.c
│       ├── avcstreamoutdemo.h
│       ├── meson.build
│       └── sfcsample/
│           ├── DecodeParamBuffer.h
│           ├── Makefile.am
│           ├── TestMain.cpp
│           ├── VDecAccelVA.cpp
│           ├── VDecAccelVA.h
│           └── meson.build
└── videoprocess/
    ├── Makefile.am
    ├── README.md
    ├── meson.build
    ├── process.cfg.template
    ├── process_3dlut.cfg.template
    ├── process_blending.cfg.template
    ├── process_chromasitting.cfg.template
    ├── process_denoise.cfg.template
    ├── process_hdr_tm_h2h.cfg.template
    ├── process_hdr_tm_h2s.cfg.template
    ├── process_scaling_csc.cfg.template
    ├── process_scaling_n_out_usrptr.cfg.template
    ├── process_sharpness.cfg.template
    ├── process_va_copy.cfg.template
    ├── vacopy.cpp
    ├── vavpp.cpp
    ├── vpp3dlut.cpp
    ├── vppblending.cpp
    ├── vppchromasitting.cpp
    ├── vppdenoise.cpp
    ├── vpphdr_tm.cpp
    ├── vppscaling_csc.cpp
    ├── vppscaling_n_out_usrptr.cpp
    └── vppsharpness.cpp

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

================================================
FILE: .github/workflows/EnterDevShell.ps1
================================================
param(
    [Parameter()]
    [String]$architecture
)

function EnterDevShellEnv  {

    param(
        [Parameter()]
        [String]$arch
    )

    $vsw = Get-Command 'vswhere'
    $VSFfavors = 'Community','Professional','Enterprise','BuildTools' | %{ "Microsoft.VisualStudio.Product.$_" }
    $vs = & $vsw.Path -products $VSFfavors -latest -format json | ConvertFrom-Json
    $tools_dir = Join-Path $vs.installationPath 'Common7' 'Tools'
    # Try the root tools dir
    $devshell = Join-Path $tools_dir 'Microsoft.VisualStudio.DevShell.dll'
    # Try finding it under vsdevshell
    if (!(Test-Path $devshell -Type Leaf)) {
        $devshell = Join-Path $tools_dir 'vsdevshell' 'Microsoft.VisualStudio.DevShell.dll'
    }
    # Fail if didn't find the DevShell library
    if (!(Test-Path $devshell -Type Leaf)) {
        throw "error: cannot find Microsoft.VisualStudio.DevShell.dll"
    }
    Import-Module $devshell
    Enter-VsDevShell -VsInstanceId $vs.instanceId -SkipAutomaticLocation -DevCmdArguments "-arch=$arch -no_logo"
}

# Enter VsDevShell, capture the environment difference and export it to github env
$env_before = @{}
Get-ChildItem env: | %{ $env_before.Add($_.Name, $_.Value) }
EnterDevShellEnv -arch "$architecture"
$env_after = @{}
Get-ChildItem env: | %{ $env_after.Add($_.Name, $_.Value) }
$env_diff = $env_after.GetEnumerator() | where { -not $env_before.ContainsKey($_.Name) -or $env_before[$_.Name] -ne $_.Value }
$env_diff | %{ echo "$($_.Name)=$($_.Value)" >> $env:GITHUB_ENV }


================================================
FILE: .github/workflows/freebsd.yml
================================================
name: freebsd

on:
  push:
    paths-ignore:
    - '.github/workflows/**'
    - '!.github/workflows/freebsd.yml'
  pull_request:
    paths-ignore:
    - '.github/workflows/**'
    - '!.github/workflows/freebsd.yml'

permissions: read-all

jobs:
  freebsd:
    runs-on: ubuntu-latest
    steps:
    - name: checkout libva
      uses: actions/checkout@v4
      with:
        repository: intel/libva
        path: libva
    - name: checkout libva-utils
      uses: actions/checkout@v4
      with:
        path: libva-utils
    - name: test
      uses: vmactions/freebsd-vm@v1
      with:
        prepare: |
          pkg install -y meson pkgconf libdrm libXext libXfixes wayland
          pkg install -y -x '^mesa($|-libs)'
        run: |
          cd libva
          meson setup _build --prefix=/usr --libdir=/usr/lib/x86_64-linux-gnu
          meson compile -C _build
          meson install -C _build
          cd ../libva-utils
          meson setup _build --prefix=/usr --libdir=/usr/lib/x86_64-linux-gnu
          meson compile -C _build
          meson install -C _build


================================================
FILE: .github/workflows/ubuntu.yml
================================================
name: ubuntu

on:
  push:
    paths-ignore:
    - '.github/workflows/**'
    - '!.github/workflows/ubuntu.yml'
  pull_request:
    paths-ignore:
    - '.github/workflows/**'
    - '!.github/workflows/ubuntu.yml'

permissions: read-all

jobs:
  ubuntu-24-04:
    runs-on: ubuntu-24.04
    steps:
    - name: checkout libva
      uses: actions/checkout@v4
      with:
        repository: intel/libva
        path: libva
    - name: checkout libva-utils
      uses: actions/checkout@v4
      with:
        path: libva-utils
    - name: install prerequisites
      run: |
        sudo apt-get update
        sudo apt-get install -y --no-install-recommends \
          libdrm-dev \
          libegl1-mesa-dev \
          libgl1-mesa-dev \
          libx11-dev \
          libxext-dev \
          libxfixes-dev \
          libwayland-dev
    - name: build libva
      run: |
        cd libva
        ./autogen.sh --prefix=/usr --libdir=/usr/lib/x86_64-linux-gnu
        make -j$(nproc)
        sudo make install
    - name: build libva-utils
      run: |
        cd libva-utils
        ./autogen.sh --prefix=/usr --libdir=/usr/lib/x86_64-linux-gnu
        make -j$(nproc)
        make check
        sudo make install


================================================
FILE: .github/workflows/windows.yml
================================================
name: windows

on:
  push:
    paths-ignore:
    - '.github/workflows/**'
    - '!.github/workflows/windows.yml'
    - '!.github/workflows/EnterDevShell.ps1'
  pull_request:
    paths-ignore:
    - '.github/workflows/**'
    - '!.github/workflows/windows.yml'
    - '!.github/workflows/EnterDevShell.ps1'

permissions: read-all

jobs:
  windows-msvc:
    runs-on: windows-2022
    steps:
    - name: checkout libva
      uses: actions/checkout@v3
      with:
        repository: intel/libva
        path: libva
    - name: checkout libva-utils
      uses: actions/checkout@v3
      with:
        path: libva-utils
    - name: 'Setup Python'
      uses: actions/setup-python@v4
      with:
        python-version: '3.x'
    - name: Install Meson
      run: pip install meson
    - name: Install pkg-config
      shell: pwsh
      run: |
        Invoke-RestMethod -Uri https://download.gnome.org/binaries/win32/dependencies/pkg-config_0.26-1_win32.zip -OutFile pkg-config_0.26-1_win32.zip
        Expand-Archive pkg-config_0.26-1_win32.zip
        Invoke-RestMethod -Uri http://ftp.gnome.org/pub/gnome/binaries/win32/glib/2.28/glib_2.28.8-1_win32.zip -OutFile glib_2.28.8-1_win32.zip
        Expand-Archive glib_2.28.8-1_win32.zip
        Invoke-RestMethod -Uri http://ftp.gnome.org/pub/gnome/binaries/win32/dependencies/gettext-runtime_0.18.1.1-2_win32.zip -OutFile gettext-runtime_0.18.1.1-2_win32.zip
        Expand-Archive gettext-runtime_0.18.1.1-2_win32.zip
        mkdir pkg-config
        cp pkg-config_0.26-1_win32\bin\* pkg-config\
        cp gettext-runtime_0.18.1.1-2_win32\bin\* pkg-config\
        cp glib_2.28.8-1_win32\bin\* pkg-config\
    - name: Enter DevShell
      run: 'libva-utils\.github\workflows\EnterDevShell.ps1 ${{ inputs.architecture }}'
      shell: pwsh
    - name: Build libva
      run: |
        cd libva
        meson build
        ninja -C build install
    - name: Build libva-utils
      run: |
        $env:Path += ";"
        $env:Path += Resolve-Path pkg-config\
        $env:Path += ";c:\bin\;c:\lib\"
        $env:PKG_CONFIG_PATH = "C:\lib\pkgconfig"
        del C:\Strawberry\perl\bin\pkg-config*
        cd libva-utils
        meson build -Dtests=true
        ninja -C build install

  windows-mingw:
    runs-on: windows-2022
    defaults:
      run:
        shell: msys2 {0}
    steps:
    - name: checkout libva
      uses: actions/checkout@v3
      with:
        repository: intel/libva
        path: libva
    - name: checkout libva-utils
      uses: actions/checkout@v3
      with:
        path: libva-utils
    - name: 'Setup MSYS2'
      uses: msys2/setup-msys2@v2
      with:
        msystem: mingw64
        update: false
        install: >-
          git
        pacboy: >-
          toolchain:p
          meson:p
    - name: Enter DevShell
      run: 'libva-utils\.github\workflows\EnterDevShell.ps1 ${{ inputs.architecture }}'
      shell: pwsh
    - name: Build libva
      run: |
        cd libva
        CC=gcc meson build
        CC=gcc ninja -C build install
    - name: Build libva-utils
      run: |
        cd libva-utils
        CC=gcc meson build -Dtests=true
        CC=gcc ninja -C build install


================================================
FILE: Android.bp
================================================
/*
 * Copyright (c) 2024 Intel Corporation. All Rights Reserved.
 *
 * 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, sub license, 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 (including the
 * next paragraph) 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 NON-INFRINGEMENT.
 * IN NO EVENT SHALL PRECISION INSIGHT AND/OR ITS SUPPLIERS 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.
 */

package {
    default_applicable_licenses: ["external_libva-utils_license"],
}

license {
    name: "external_libva-utils_license",
    visibility: [":__subpackages__"],
    license_kinds: [
        "SPDX-license-identifier-Apache-2.0",
        "SPDX-license-identifier-BSD",
        "SPDX-license-identifier-ISC",
        "SPDX-license-identifier-MIT",
    ],
    license_text: [
        "LICENSE",
    ],
}

cc_defaults {
    name: "libva_utils_defaults",
    shared_libs: [
        "libva",
        "libdl",
        "libcutils",
        "libutils",
        "libgui",
        "libdrm",
    ],

    vendor: true,
    enabled: false,
    arch: {
        x86_64: {
            enabled: true,
        },
    },
}

cc_library {
    name: "libva_utils_common",

    defaults: ["libva_utils_defaults"],

    srcs: [
        "common/va_display.c",
        "common/va_display_drm.c",
    ],

    export_include_dirs: ["common/"],

    cflags: ["-DHAVE_VA_DRM"],

    visibility: [":__subpackages__"],
}

cc_defaults {
    name: "libva_utils_bin_defaults",

    defaults: ["libva_utils_defaults"],

    shared_libs: [
        "libva_utils_common",
    ],
}

// decode directory

cc_binary {
    name: "vampeg2vldemo",

    srcs: [
        "decode/mpeg2vldemo.cpp",
    ],

    defaults: ["libva_utils_bin_defaults"],
}

cc_binary {
    name: "valoadjpeg",

    srcs: [
        "decode/loadjpeg.c",
        "decode/tinyjpeg.c",
    ],

    defaults: ["libva_utils_bin_defaults"],
}

// encode directory

cc_binary {
    name: "vah264encode",

    srcs: [
        "encode/h264encode.c",
    ],

    defaults: ["libva_utils_bin_defaults"],
}

cc_binary {
    name: "vaavcenc",

    srcs: [
        "encode/avcenc.c",
    ],

    defaults: ["libva_utils_bin_defaults"],
}

cc_binary {
    name: "vavp8enc",

    srcs: [
        "encode/vp8enc.c",
    ],

    cflags: [
        "-Wno-gnu-variable-sized-type-not-at-end",
    ],

    defaults: ["libva_utils_bin_defaults"],
}

cc_binary {
    name: "vavp9enc",

    srcs: [
        "encode/vp9enc.c",
    ],

    defaults: ["libva_utils_bin_defaults"],
}

cc_binary {
    name: "vajpegenc",

    srcs: [
        "encode/jpegenc.c",
    ],

    defaults: ["libva_utils_bin_defaults"],
}

cc_binary {
    name: "vampeg2vaenc",

    srcs: [
        "encode/mpeg2vaenc.c",
    ],

    defaults: ["libva_utils_bin_defaults"],
}

cc_binary {
    name: "vasvctenc",

    srcs: [
        "encode/svctenc.c",
    ],

    defaults: ["libva_utils_bin_defaults"],
}

// vainfo directory

cc_binary {
    name: "vainfo",

    srcs: [
        "vainfo/vainfo.c",
    ],

    defaults: ["libva_utils_bin_defaults"],
}

// videoprocess directory
cc_binary {
    name: "vavpp",

    srcs: [
        "videoprocess/vavpp.cpp",
    ],

    defaults: ["libva_utils_bin_defaults"],
}


================================================
FILE: CONTRIBUTING.md
================================================
# Contributing to libva-utils

Libva-utils is an open source project licensed under the [MIT License] (https://opensource.org/licenses/MIT)

## Coding Style

Libva-utils does not have a defined coding style at this time, but that will be updated.

## Certificate of Origin

In order to get a clear contribution chain of trust we use the [signed-off-by language] (https://01.org/community/signed-process)
used by the Linux kernel project.  
## Patch format

Beside the signed-off-by footer, we expect each patch to comply with the following format:

```
<component>: Change summary

More detailed explanation of your changes: Why and how.
Wrap it to 72 characters.
See [here] (http://chris.beams.io/posts/git-commit/)
for some more good advices.

Signed-off-by: <contributor@foo.com>
```

For example:

```
drm: remove va_drm_is_authenticated check
    
If we do not use a render node we must authenticate. Doing the extra
GetClient calls/ioctls does not help much, so don't bother.
    
Cc: David Herrmann <dh.herrmann@gmail.com>
Cc: Daniel Vetter <daniel.vetter@ffwll.ch>
Signed-off-by: Emil Velikov <emil.l.velikov@gmail.com>
Reviewed-by: Sean V Kelley <seanvk@posteo.de>
```

## Pull requests

We accept github pull requests.

Once you've finished making your changes push them to your fork and send the PR via the github UI.

## Reporting a security issue

Please refer to [security.md](security.md) file for details.

## Public issue tracking

If you have a problem, please let us know.  IRC is a perfectly fine place
to quickly informally bring something up, if you get a response.  The
[mailing list](https://lists.01.org/mailman/listinfo/intel-vaapi-media)
is a more durable communication channel.

If it's a bug not already documented, by all means please [open an
issue in github](https://github.com/intel/libva-utils/issues/new) so we all get visibility
to the problem and can work towards a resolution.

For feature requests we're also using github issues, with the label
"enhancement".

Our github bug/enhancement backlog and work queue are tracked in a
[Libva-utils waffle.io kanban](https://waffle.io/intel/libva-utils).

## Closing issues

You can either close issues manually by adding the fixing commit SHA1 to the issue
comments or by adding the `Fixes` keyword to your commit message:

```
ssntp: test: Add Disconnection role checking tests

We check that we get the right role from the disconnection
notifier.

Fixes #121

Signed-off-by: Samuel Ortiz <sameo@linux.intel.com>
```

Github will then automatically close that issue when parsing the
[commit message](https://help.github.com/articles/closing-issues-via-commit-messages/).


================================================
FILE: COPYING
================================================
    Copyright (C) 2009-2016 Intel Corporation. All Rights Reserved.

    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, sub license, 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 (including the
    next paragraph) 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 NON-INFRINGEMENT.
    IN NO EVENT SHALL PRECISION INSIGHT AND/OR ITS SUPPLIERS 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: INSTALL
================================================
[![Stories in Ready](https://badge.waffle.io/intel/libva-utils.png?label=ready&title=Ready)](https://waffle.io/intel/libva-utils)
  libva-utils
  Collection of tests to exercise VA-API as provided
  by the libva project.  VA-API requires a driver implementation
  to operate.

  Copyright (C) 2009-2016 Intel Corporation


License
-------

Please read the COPYING file available in this package.


Overview
--------

libva-utils is a collection of tests to exercise VA-API in accordance
with the libva project. A driver implementation is necessary to properly
operate.


Project is hosted on github:
https://github.com/intel/libva-utils

Codecs
------

H.264   D   ILK+
H.264   E   SNB+
MPEG-2  D   CTG+
VC-1    D   SNB+
JPEG    D   IVB+
JPEG    E   CHV+/BSW+
VP8     D   BDW+
VP8     E   CHV+/BSW+
HEVC    D   CHV+/BSW+
HEVC    E   SKL+
VP9     D   BXT+
HEVC 10bit     D       BXT+
VP9 10bit      D       KBL+

Requirements
------------

libva API >= 0.39.4

Google Test Framework Integration
---------------------------------

Google Test recommends it be custom compiled for each project that uses it.
Therefore, the libva-utils project tracks a subset copy of the Google
Test Framework source code at release 1.8.0 (initially) in a test/gtest/
subdirectory of the project source tree.  The libva-utils copy of gtest
will only be updated to new upstream releases (or critical upstream fixes) of
gtest, only if it is necessary.  As of this writing, the last release (1.8.0)
was August 2016, about three years after its previous release.  Thus, there
should be minimal need to update or maintain gtest within the libva-utils
project.

Building Google Test Framework Library
--------------------------------------

The Google Test Framework is compiled as a convenience library (libgtest.la)
within the libva-utils source tree.  The rules to build libgtest.la are
maintained in a custom makefile in the libva-intel-driver project tree
(see test/Makefile.am).  The libgtest.la library will be automatically compiled
if the tests are enabled by configuration.


Building Driver Tests
---------------------

The --enable-gtests=[yes|no] configuration option is defined in configure.ac to
enable or disable compilation of libgtest.la and the test_va_api test executable.
The default is disabled.  When the tests are enabled during configuration, the
make command will compile the VA-API gtests and link to libgtest.la and output/install
a single test/test_va_api or ${prefix}/bin/test_va_api executable.  Hence...

    "./autogen.sh --enable-gtests && make"

...is a minimal example of how one might build the driver and its tests.

Since all this project contains only tests, it is configurable to compile the GTest
framework and the corresponding tests.  Notice the difference when enabling
tests on other related projects, e.g. libva-intel-driver.

On the summary section after configuration something like this should be seen

libva-utils - ${LIBVA_UTILS_VERSION}

Libva VA-API version ............. : ${LIBVA_API_VERSION}
Installation prefix .............. : ${prefix}
Default driver path .............. : ${exec_prefix}/lib/dri
Extra window systems ............. : drm x11
Enable Gtests .................... : yes

Reporting Bugs / Submit change patches
--------------------------------------

See the contributing guide:

https://github.com/intel/libva-utils/blob/master/CONTRIBUTING.md


================================================
FILE: Makefile.am
================================================
# Copyright (c) 2007 Intel Corporation. All Rights Reserved.
#
# 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, sub license, 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 (including the
# next paragraph) 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 NON-INFRINGEMENT.
# IN NO EVENT SHALL PRECISION INSIGHT AND/OR ITS SUPPLIERS 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.

ACLOCAL_AMFLAGS = -I m4 ${ACLOCAL_FLAGS}

AUTOMAKE_OPTIONS = foreign

SUBDIRS = common decode encode vainfo videoprocess vendor/intel vendor/intel/sfcsample

if USE_X11
SUBDIRS += putsurface
else
if USE_WAYLAND
SUBDIRS += putsurface
endif
endif

if ENABLE_TESTS
SUBDIRS += test
endif

# Extra clean files so that maintainer-clean removes *everything*
MAINTAINERCLEANFILES = \
	aclocal.m4 compile config.guess config.sub \
	configure depcomp install-sh ltmain.sh     \
	Makefile.in missing

EXTRA_DIST = \
        autogen.sh \
        $(NULL)


================================================
FILE: NEWS
================================================
libva-utils NEWS -- summary of changes.  2025-12-12
Copyright (C) 2009-2025 Intel Corporation

Version 2.23.0 - 12.Dec.2025
* fix:Fixed build with -std=c++20
* fix:usr ptr surface type not set ext buffer flag
* fix:Fix coveirty overflowed issues
* fix: remove useless code and fix code copy typo
* android: Support Android build
* sample: [HEVCe] update header logic

Version 2.22.0 - 20.Jun.2024
* ci:  correct the permission of workflows
* fix: Fixed possible memory leak in h264encode
* doc: Fix meson build options in README
* test/CheckEntrypointsForProfile: fix for limited profiles

Version 2.21.0 - 12.Mar.2024
* vainfo: Print VAConfigAttribEncMaxTileRows and VAConfigAttribEncMaxTileCols
* test: Add Prime3 memtype support
* sample: Add back buffer size options for AV1e
* sample: simplify cbr/vbr interface and refine codes for AV1e
* fix: clean some unused variables and functions
* fix: unify the coding style
* fix: Fix coverity issues exposed in encode/decode/vpp
* fix: options in AV1 encode sample
* fix: fix typo of version in NEWS
* ci: harden permission for freebsd.yml
* ci: add workflow permission for all jobs
* ci: update freebsd vm to the v1 version
* meson: use meson setup instead of meson options

Version 2.20.0 - 14.Sep.2023
* test: Enable AV1 encode test

Version 2.19.0 - 04.Jul.2023
* add: Add support for VAConfigAttribEncHEVCBlockSizes & VAConfigAttribEncHEVCFeatures for hevcencode.
* ci:Update ubuntu.yml to remove ubuntu 18.04
* meson: guard code introduced after libva 1.xx release
* meson: libva-xyz should be same version as detected libva
* configure: libva-xyz should be same version as detected libva
* fix: scan num limitation.
* fix: pic_order_cnt_lsb to accept larger GOP

Version 2.18.0 - 17.Mar.2023
* doc:Add build and install libva-utils steps
* test: Add VAProfileH264High10
* test: Don't assume our DRM node is first
* add: va_display_drm: Allow VGEM for WSL2
* win: win32 compat: Fix setenv/unsetenv return values
* fix: Add Th limitation by HUFFMAN_TABLES Count
* fix: Add refresh_frame_flags in PPS
* fix: Add checking of stream_scan size
* fix: Add Scan Num limitation
* fix: Changed H2S configuration template.
* fix: Correct maximum display luminance per VAAPI definition.
* fix: Fix possible memory leak
* fix: Fix coding issues of function return type & ref_frame_idx idx too large

Version 2.17.0 - 26.Dec.2022
* add: Upload a security disclaimer
* add: av1 encode sample code
* tests: Changed default initialization value to VAProfileNone
* ci: Add git dependency for mingw build for meson dependencies cloning
* vainfo: Add support for Win32 device enumeration and selection
* ci: dos2unix for windows workflow files
* ci: update checkout and setup-python action versions to v3 and v4
* ci: Add msvc/mingw Windows CI
* tests: enable building on Windows
* tests: Remove C++20 constructs in tests project targetting C++11
* tests: remove non C++ standard constructs
* vainfo: add va-win32 support
* add:Import OpenBSD getopt for MSVC from mesa/f9bb5323
* fix: Fix reporting of VAConfigAttribEncMaxSlices
* meson: add missing sample tools

Version 2.16.0 - 8.Oct.2022
* trace: print the display being attempted
* ci: upgrade FreeBSD to 13.1
* meson: Search for threads in top-level meson.build
* meson: produce summary() when 0.53.0 is present

Version 2.15.0 - 1.Jul.2022
* add: Added HDR10 Tone Mapping sample code including H2H and H2S config files.
* add: Support lowpower for HEVC Encoding
* fix: Set correct entrypoint for lowpower
* fix: Components exceed the value specified by jpeg spec
* fix: hdr local variable pointer access issue
* fix: Fix issue incorrect color for EU based hevcencode
* fix: exclude vgem node and invalid drm node in vainfo
* ci:Disable travis build
* meson: check the dependency of libdrm

Version 2.14.0 - 16.Feb.2022
* test: Use test suite setup/teardown to reduce test overhead
* ci: fix freebsd build

Version 2.13.0 - 30.Sep.2020
* code style:unify the code styles using the style_unify script
* fix: h264encode, hevcencode: fix integer overflow for high definition

Version 2.12.0 - 21.Jun.2020
* test: Remove version check for test vaInitialize_vaTerminate
* vpp: Added 3DLUT sample code and configuration file

Version 2.11.0 - 23.Mar.2020
* vainfo: add VA_RC_TCBRC to reported caps list
* jpegenc: Allow encoding a 4K frame
* h264encode: Added low_power command line option
* test_va_api: Enable new caps for VAConfigAttribEncryption
* ci: upgrade FreeBSD to 12.2
* ci: enable github actions

Version 2.10.0 - 18.Dec.2020
* add Mediacopy Sample code
* Enable new caps for rate control TCBRC
* Add support for a --repeat command line option to vp8enc.
* fix one null pointer dereference risk 

Version 2.9.0 - 11.Sep.2020
* Fix KW issues
* Add support for csc with RGBP

Version 2.8.0 - 26.Jun.2020
* test: cast VA_STATUS_ERROR_UNKNOWN to VAStatus type
* test/fixture: fix GCC 10.0.1 error with drmDevicePaths

Version 2.7.0 - 1.Apr.2020
* meson: add missing samples
* sfcsample: drop unused Linux-only header
* autotools: drop libdrm dependency (only libva-drm is used)
* autotools: drop unused X11 dependencies
* Add 10/12bit RT format check
* test/createsurfaces: add some scoped traces
* test/streamable: add VAConfigAttrib and VASurfaceAttrib
* Modify output CS settings for Chroma siting on Linux
* Align libva attribute check
* Added displaying supported config attributes
* add the VP samples README

Version 2.6.0 - 10.Dec.2019
* Align libva attribute check
* Added displaying supported config attributes
* add the VP samples README.
* add VP sample for usrptr and 1:N output

Version 2.5.0 - 8.Jul.2019
* meson: rename the h264enc binary to be in line with the autotools build
* unify NEWS format
* sfcsample: don't include X11 headers
* test: update vaInitialize_vaTerminate_Bad_vaSetDriverName
* Check for -fstack-protector
* vavpp: csc with AYUV format
* vavpp: requires BGRA frame when saving a BGRA file

Version 2.4.0 - 1.Feb.2019
* fix make dist issue caused by decode streamout sample
* add VP sample for Blending.
* add VP seperate sample for scaling,csc,sharpness,denoise,chromasitting.

Version 2.3.0 - 30.Sep.2018
* add HEVC encode sample code
* Add sample code for avc decode streamout
* Add VP8 sample encoder application (SVCT supported)

Version 2.2.0 - DD.Jul.2018
* Bump version to 2.2.0
* Add meson build
* Add vainfo support in Android
* Remove driver specific test cases

Version 2.1.0 - 12.Feb.2018
* Bump version to 2.1.0
* Refine gtest conformance cases
* vp9enc: add support low power mode
* vavpp: add support for RGBA/RGBX surface
* vainfo: add support new profile/entrypoint pairs

Version 2.0.0 - 21.Oct.2017
* Bump version to 2.0.0
* Add option '--device <device>' to vainfo
* Add vp9enc for VP9 encoding
* Add vavpp for video processing
* Add FEI gtest cases
* Fix segmentation fault in putsurface_wayland
* Fix GCC 7.1.1 warnings/errors
* Fix libva version printed out by vainfo

Version 1.8.3 - 28.Jun.2017
* Bump version to 1.8.3
* Switch AC_PROG_LIBTOOL to LT_INIT
* putsurface: include wayland-client.h instead of wayland-server.h
* avcenc: add AUD NAL unit at the beginning of pic
* avcenc: enable direct_spatial_mv_pred_flag for B frame
* avcenc: add the frame number as the command line input parameter

Version 1.8.2 - 22.May.2017
* Bump version to 1.8.2

Version 1.8.1 - 10.Apr.2017
* Bump version to 1.8.1

Version 1.8.0 - 31.Mar.2017
* First release of libva-utils as a separate project
* Follows libva release versioning
* Contains all the utilities and tests for libva API
* dynamically links to libva
* building system clean ups
* test suite included using GoogleTestFramework


================================================
FILE: README.md
================================================
[![Stories in Ready](https://badge.waffle.io/intel/libva-utils.png?label=ready&title=Ready)](http://waffle.io/intel/libva-utils)
[![Build Status](https://travis-ci.org/intel/libva-utils.svg?branch=master)](https://travis-ci.org/intel/libva-utils)
[![Coverity Scan Build Status](https://scan.coverity.com/projects/11613/badge.svg)](https://scan.coverity.com/projects/intel-libva-utils)

# Libva-utils Project

libva-utils is a collection of utilities and examples to exercise VA-API in accordance with the libva project. --enable-tests (default = no) provides a suite of unit-tests based on Google Test Framework. A driver implementation is necessary to properly operate.

VA-API is an open-source library and API specification, which provides access to graphics hardware acceleration capabilities
for video processing. It consists of a main library and driver-specific acceleration backends for each supported hardware vendor.

If you would like to contribute to libva, check our [Contributing guide](https://github.com/intel/libva-utils/blob/master/CONTRIBUTING.md).

We also recommend taking a look at the ['janitorial' bugs](https://github.com/intel/libva-utils/issues?q=is%3Aopen+is%3Aissue+label%3AJanitorial) in our list of open issues as these bugs can be solved without an extensive knowledge of libva-utils.

We would love to help you start contributing!

The libva-utils development team can be reached via github issues.

# Build and Install Libva-utils

### Install Libva
You could refer to https://github.com/intel/libva to install Libva

### Build Libva-utils
Take latest libva-utils version:
```
git clone https://github.com/intel/libva-utils.git
cd libva-utils
```

Build libva-utils by autogen. You could add ```--enable-tests``` to run unit test
```
./autogen.sh or ./autogen.sh --enable-tests
make
sudo make install
```

or build using Meson
```
mkdir build
cd build
meson .. or meson .. -Dtests=true
ninja
sudo ninja install
```


### Validate your environment
You could run ```vainfo``` to check your media stack environment is correct or not as below.
```
sys@KBL:~/github/libva-utils$ vainfo
Trying display: drm
libva info: VA-API version 1.14.0
libva info: Trying to open /usr/lib/x86_64-linux-gnu/dri/iHD_drv_video.so
libva info: Found init function __vaDriverInit_1_14
libva info: va_openDriver() returns 0
vainfo: VA-API version: 1.18 (libva 2.18.0.pre1)
vainfo: Driver version: Intel iHD driver for Intel(R) Gen Graphics - 22.3.1 ()
vainfo: Supported profile and entrypoints
      VAProfileMPEG2Simple            : VAEntrypointVLD
      VAProfileMPEG2Main              : VAEntrypointVLD
      VAProfileH264Main               : VAEntrypointVLD
      VAProfileH264Main               : VAEntrypointEncSliceLP
      VAProfileH264High               : VAEntrypointVLD
      VAProfileH264High               : VAEntrypointEncSliceLP
      VAProfileJPEGBaseline           : VAEntrypointVLD
      VAProfileJPEGBaseline           : VAEntrypointEncPicture
      VAProfileH264ConstrainedBaseline: VAEntrypointVLD
      VAProfileH264ConstrainedBaseline: VAEntrypointEncSliceLP
      VAProfileVP8Version0_3          : VAEntrypointVLD
      VAProfileHEVCMain               : VAEntrypointVLD
      VAProfileHEVCMain10             : VAEntrypointVLD
      VAProfileVP9Profile0            : VAEntrypointVLD
      VAProfileVP9Profile2            : VAEntrypointVLD
      ...
```


================================================
FILE: autogen.sh
================================================
#!/bin/sh
# Copyright (c) 2007 Intel Corporation. All Rights Reserved.
#
# 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, sub license, 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 (including the
# next paragraph) 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 NON-INFRINGEMENT.
# IN NO EVENT SHALL PRECISION INSIGHT AND/OR ITS SUPPLIERS 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.

PROJECT="libva-utils"

test -n "$srcdir" || srcdir="`dirname \"$0\"`"
test -n "$srcdir" || srcdir=.

if ! test -f "$srcdir/configure.ac"; then
    echo "Failed to find the top-level $PROJECT directory"
    exit 1
fi

olddir="`pwd`"
cd "$srcdir"

mkdir -p m4

AUTORECONF=`which autoreconf`
if test -z $AUTORECONF; then
    echo "*** No autoreconf found ***"
    exit 1
else
    autoreconf -v --install || exit $?
fi

cd "$olddir"

if test -z "$NOCONFIGURE"; then
    $srcdir/configure "$@" && echo "Now type 'make' to compile $PROJECT."
fi


================================================
FILE: common/Makefile.am
================================================
# Copyright (c) 2012 Intel Corporation. All Rights Reserved.
#
# 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, sub license, 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 (including the
# next paragraph) 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 NON-INFRINGEMENT.
# IN NO EVENT SHALL PRECISION INSIGHT AND/OR ITS SUPPLIERS 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.

noinst_LTLIBRARIES = libva-display.la

libva_display_cflags = \
	$(LIBVA_CFLAGS)	\
	$(NULL)

libva_display_libs = \
	$(LIBVA_LDFLAGS) \
	$(NULL)

source_c		= va_display.c
source_h		= va_display.h loadsurface.h loadsurface_yuv.h

if USE_X11
source_c		+= va_display_x11.c
libva_display_cflags	+= $(X11_CFLAGS) $(LIBVA_X11_CFLAGS)
libva_display_libs	+= $(X11_LIBS) $(LIBVA_X11_LIBS)
endif

if USE_DRM
source_c		+= va_display_drm.c
libva_display_cflags	+= $(LIBVA_DRM_CFLAGS)
libva_display_libs	+= $(LIBVA_DRM_LIBS)
endif

if USE_WAYLAND
source_c		+= va_display_wayland.c
libva_display_cflags	+= $(WAYLAND_CFLAGS) $(LIBVA_WAYLAND_CFLAGS)
libva_display_libs	+= $(WAYLAND_LIBS) $(LIBVA_WAYLAND_LIBS)
endif

libva_display_la_SOURCES= $(source_c)
noinst_HEADERS		= $(source_h)
libva_display_la_CFLAGS	= $(libva_display_cflags)
libva_display_la_LIBADD	= $(libva_display_libs)

# Extra clean files so that maintainer-clean removes *everything*
MAINTAINERCLEANFILES = Makefile.in

EXTRA_DIST = \
	loadsurface.h		\
	loadsurface_yuv.h	\
	$(NULL)


================================================
FILE: common/loadsurface.h
================================================
/*
 * Copyright (c) 2008-2009 Intel Corporation. All Rights Reserved.
 *
 * 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, sub license, 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 (including the
 * next paragraph) 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 NON-INFRINGEMENT.
 * IN NO EVENT SHALL PRECISION INSIGHT AND/OR ITS SUPPLIERS 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.
 */
#include "loadsurface_yuv.h"

static int scale_2dimage(unsigned char *src_img, int src_imgw, int src_imgh,
                         unsigned char *dst_img, int dst_imgw, int dst_imgh)
{
    int row = 0, col = 0;

    for (row = 0; row < dst_imgh; row++) {
        for (col = 0; col < dst_imgw; col++) {
            *(dst_img + row * dst_imgw + col) = *(src_img + (row * src_imgh / dst_imgh) * src_imgw + col * src_imgw / dst_imgw);
        }
    }

    return 0;
}


static int YUV_blend_with_pic(int width, int height,
                              unsigned char *Y_start, int Y_pitch,
                              unsigned char *U_start, int U_pitch,
                              unsigned char *V_start, int V_pitch,
                              unsigned int fourcc, int fixed_alpha)
{
    /* PIC YUV format */
    unsigned char *pic_y_old = yuvga_pic;
    unsigned char *pic_u_old = pic_y_old + 640 * 480;
    unsigned char *pic_v_old = pic_u_old + 640 * 480 / 4;
    unsigned char *pic_y, *pic_u, *pic_v;

    int alpha_values[] = {100, 90, 80, 70, 60, 50, 40, 30, 20, 30, 40, 50, 60, 70, 80, 90};

    static int alpha_idx = 0;
    int alpha;
    int allocated = 0;

    int row, col;

    if (fixed_alpha == 0) {
        alpha = alpha_values[alpha_idx % 16 ];
        alpha_idx ++;
    } else
        alpha = fixed_alpha;

    //alpha = 0;

    pic_y = pic_y_old;
    pic_u = pic_u_old;
    pic_v = pic_v_old;

    if (width != 640 || height != 480) { /* need to scale the pic */
        pic_y = (unsigned char *)malloc(width * height);
        if (pic_y == NULL) {
            printf("Failed to allocate memory for pic_y\n");
            return -1;
        }

        pic_u = (unsigned char *)malloc(width * height / 4);
        if (pic_u == NULL) {
            printf("Failed to allocate memory for pic_u\n");
            free(pic_y);
            return -1;
        }

        pic_v = (unsigned char *)malloc(width * height / 4);
        if (pic_v == NULL) {
            printf("Failed to allocate memory for pic_v\n");
            free(pic_y);
            free(pic_u);
            return -1;
        }
        allocated = 1;

        memset(pic_y, 0, width * height);
        memset(pic_u, 0, width * height / 4);
        memset(pic_v, 0, width * height / 4);

        scale_2dimage(pic_y_old, 640, 480,
                      pic_y, width, height);
        scale_2dimage(pic_u_old, 320, 240,
                      pic_u, width / 2, height / 2);
        scale_2dimage(pic_v_old, 320, 240,
                      pic_v, width / 2, height / 2);
    }

    /* begin blend */

    /* Y plane */
    int Y_pixel_stride = 1;
    if (fourcc == VA_FOURCC_YUY2)
        Y_pixel_stride = 2;

    for (row = 0; row < height; row++) {
        unsigned char *p = Y_start + row * Y_pitch;
        unsigned char *q = pic_y + row * width;
        for (col = 0; col < width; col++, q++) {
            *p  = *p * (100 - alpha) / 100 + *q * alpha / 100;
            p += Y_pixel_stride;
        }
    }

    /* U/V plane */
    int U_pixel_stride = 0, V_pixel_stride = 0;
    int v_factor_to_nv12 = 1;
    switch (fourcc) {
    case VA_FOURCC_YV12:
        U_pixel_stride = V_pixel_stride = 1;
        break;
    case VA_FOURCC_NV12:
        U_pixel_stride = V_pixel_stride = 2;
        break;
    case VA_FOURCC_YUY2:
        U_pixel_stride = V_pixel_stride = 4;
        v_factor_to_nv12 = 2;
        break;
    default:
        break;
    }
    for (row = 0; row < height / 2 * v_factor_to_nv12; row++) {
        unsigned char *pU = U_start + row * U_pitch;
        unsigned char *pV = V_start + row * V_pitch;
        unsigned char *qU = pic_u + row / v_factor_to_nv12 * width / 2;
        unsigned char *qV = pic_v + row / v_factor_to_nv12 * width / 2;

        for (col = 0; col < width / 2; col++, qU++, qV++) {
            *pU  = *pU * (100 - alpha) / 100 + *qU * alpha / 100;
            *pV  = *pV * (100 - alpha) / 100 + *qV * alpha / 100;

            pU += U_pixel_stride;
            pV += V_pixel_stride;
        }
    }

    if (allocated) {
        free(pic_y);
        free(pic_u);
        free(pic_v);
    }

    return 0;
}

static int yuvgen_planar(int width, int height,
                         unsigned char *Y_start, int Y_pitch,
                         unsigned char *U_start, int U_pitch,
                         unsigned char *V_start, int V_pitch,
                         unsigned int fourcc, int box_width, int row_shift,
                         int field)
{
    int row, alpha;
    unsigned char uv_value = 0x80;

    /* copy Y plane */
    int y_factor = 1;
    if (fourcc == VA_FOURCC_YUY2) y_factor = 2;
    for (row = 0; row < height; row++) {
        unsigned char *Y_row = Y_start + row * Y_pitch;
        int jj, xpos, ypos;

        ypos = (row / box_width) & 0x1;

        /* fill garbage data into the other field */
        if (((field == VA_TOP_FIELD) && (row & 1))
            || ((field == VA_BOTTOM_FIELD) && ((row & 1) == 0))) {
            memset(Y_row, 0xff, width);
            continue;
        }

        for (jj = 0; jj < width; jj++) {
            xpos = ((row_shift + jj) / box_width) & 0x1;
            if (xpos == ypos)
                Y_row[jj * y_factor] = 0xeb;
            else
                Y_row[jj * y_factor] = 0x10;

            if (fourcc == VA_FOURCC_YUY2) {
                Y_row[jj * y_factor + 1] = uv_value; // it is for UV
            }
        }
    }

    /* copy UV data */
    for (row = 0; row < height / 2; row++) {

        /* fill garbage data into the other field */
        if (((field == VA_TOP_FIELD) && (row & 1))
            || ((field == VA_BOTTOM_FIELD) && ((row & 1) == 0))) {
            uv_value = 0xff;
        }

        unsigned char *U_row = U_start + row * U_pitch;
        unsigned char *V_row = V_start + row * V_pitch;
        switch (fourcc) {
        case VA_FOURCC_NV12:
            memset(U_row, uv_value, width);
            break;
        case VA_FOURCC_YV12:
            memset(U_row, uv_value, width / 2);
            memset(V_row, uv_value, width / 2);
            break;
        case VA_FOURCC_YUY2:
            // see above. it is set with Y update.
            break;
        default:
            printf("unsupported fourcc in loadsurface.h\n");
            assert(0);
        }
    }

    if (getenv("AUTO_NOUV"))
        return 0;

    if (getenv("AUTO_ALPHA"))
        alpha = 0;
    else
        alpha = 70;

    YUV_blend_with_pic(width, height,
                       Y_start, Y_pitch,
                       U_start, U_pitch,
                       V_start, V_pitch,
                       fourcc, alpha);

    return 0;
}

static int upload_surface(VADisplay va_dpy, VASurfaceID surface_id,
                          int box_width, int row_shift,
                          int field)
{
    VAImage surface_image;
    void *surface_p = NULL, *U_start = NULL, *V_start = NULL;
    VAStatus va_status;
    unsigned int pitches[3] = {0, 0, 0};

    va_status = vaDeriveImage(va_dpy, surface_id, &surface_image);
    CHECK_VASTATUS(va_status, "vaDeriveImage");

    vaMapBuffer(va_dpy, surface_image.buf, &surface_p);
    assert(VA_STATUS_SUCCESS == va_status);

    pitches[0] = surface_image.pitches[0];
    switch (surface_image.format.fourcc) {
    case VA_FOURCC_NV12:
        U_start = (char *)surface_p + surface_image.offsets[1];
        V_start = (char *)U_start + 1;
        pitches[1] = surface_image.pitches[1];
        pitches[2] = surface_image.pitches[1];
        break;
    case VA_FOURCC_IYUV:
        U_start = (char *)surface_p + surface_image.offsets[1];
        V_start = (char *)surface_p + surface_image.offsets[2];
        pitches[1] = surface_image.pitches[1];
        pitches[2] = surface_image.pitches[2];
        break;
    case VA_FOURCC_YV12:
        U_start = (char *)surface_p + surface_image.offsets[2];
        V_start = (char *)surface_p + surface_image.offsets[1];
        pitches[1] = surface_image.pitches[2];
        pitches[2] = surface_image.pitches[1];
        break;
    case VA_FOURCC_YUY2:
        U_start = (char *)surface_p + 1;
        V_start = (char *)surface_p + 3;
        pitches[1] = surface_image.pitches[0];
        pitches[2] = surface_image.pitches[0];
        break;
    default:
        assert(0);
    }

    /* assume surface is planar format */
    yuvgen_planar(surface_image.width, surface_image.height,
                  (unsigned char *)surface_p, pitches[0],
                  (unsigned char *)U_start, pitches[1],
                  (unsigned char *)V_start, pitches[2],
                  surface_image.format.fourcc,
                  box_width, row_shift, field);

    vaUnmapBuffer(va_dpy, surface_image.buf);

    vaDestroyImage(va_dpy, surface_image.image_id);

    return 0;
}

#ifdef LIBVA_UTILS_UPLOAD_DOWNLOAD_YUV_SURFACE

/*
 * Upload YUV data from memory into a surface
 * if src_fourcc == NV12, assume the buffer pointed by src_U
 * is UV interleaved (src_V is ignored)
 */
static int upload_surface_yuv(VADisplay va_dpy, VASurfaceID surface_id,
                              int src_fourcc, int src_width, int src_height,
                              unsigned char *src_Y, unsigned char *src_U, unsigned char *src_V)
{
    VAImage surface_image;
    unsigned char *surface_p = NULL, *Y_start = NULL, *U_start = NULL;
    int Y_pitch = 0, U_pitch = 0, row;
    VAStatus va_status;

    va_status = vaDeriveImage(va_dpy, surface_id, &surface_image);
    CHECK_VASTATUS(va_status, "vaDeriveImage");

    vaMapBuffer(va_dpy, surface_image.buf, (void **)&surface_p);
    assert(VA_STATUS_SUCCESS == va_status);

    Y_start = surface_p;
    Y_pitch = surface_image.pitches[0];
    switch (surface_image.format.fourcc) {
    case VA_FOURCC_NV12:
        U_start = (unsigned char *)surface_p + surface_image.offsets[1];
        U_pitch = surface_image.pitches[1];
        break;
    case VA_FOURCC_IYUV:
        U_start = (unsigned char *)surface_p + surface_image.offsets[1];
        U_pitch = surface_image.pitches[1];
        break;
    case VA_FOURCC_YV12:
        U_start = (unsigned char *)surface_p + surface_image.offsets[2];
        U_pitch = surface_image.pitches[2];
        break;
    case VA_FOURCC_YUY2:
        U_start = surface_p + 1;
        U_pitch = surface_image.pitches[0];
        break;
    default:
        assert(0);
    }

    /* copy Y plane */
    for (row = 0; row < src_height; row++) {
        unsigned char *Y_row = Y_start + row * Y_pitch;
        memcpy(Y_row, src_Y + row * src_width, src_width);
    }

    for (row = 0; row < src_height / 2; row++) {
        unsigned char *U_row = U_start + row * U_pitch;
        unsigned char *u_ptr = NULL, *v_ptr = NULL;
        int j;
        switch (surface_image.format.fourcc) {
        case VA_FOURCC_NV12:
            if (src_fourcc == VA_FOURCC_NV12) {
                memcpy(U_row, src_U + row * src_width, src_width);
                break;
            } else if (src_fourcc == VA_FOURCC_IYUV) {
                u_ptr = src_U + row * (src_width / 2);
                v_ptr = src_V + row * (src_width / 2);
            } else if (src_fourcc == VA_FOURCC_YV12) {
                v_ptr = src_U + row * (src_width / 2);
                u_ptr = src_V + row * (src_width / 2);
            }
            if ((src_fourcc == VA_FOURCC_IYUV) ||
                (src_fourcc == VA_FOURCC_YV12)) {
                for (j = 0; j < src_width / 2; j++) {
                    U_row[2 * j] = u_ptr[j];
                    U_row[2 * j + 1] = v_ptr[j];
                }
            }
            break;
        case VA_FOURCC_IYUV:
        case VA_FOURCC_YV12:
        case VA_FOURCC_YUY2:
        default:
            printf("unsupported fourcc in load_surface_yuv\n");
            assert(0);
        }
    }

    vaUnmapBuffer(va_dpy, surface_image.buf);

    vaDestroyImage(va_dpy, surface_image.image_id);

    return 0;
}

/*
 * Download YUV data from a surface into memory
 * Some hardward doesn't have a aperture for linear access of
 * tiled surface, thus use vaGetImage to expect the implemnetion
 * to do tile to linear convert
 *
 * if dst_fourcc == NV12, assume the buffer pointed by dst_U
 * is UV interleaved (src_V is ignored)
 */
static int download_surface_yuv(VADisplay va_dpy, VASurfaceID surface_id,
                                int dst_fourcc, int dst_width, int dst_height,
                                unsigned char *dst_Y, unsigned char *dst_U, unsigned char *dst_V)
{
    VAImage surface_image;
    unsigned char *surface_p = NULL, *Y_start = NULL, *U_start = NULL;
    int Y_pitch = 0, U_pitch = 0, row;
    VAStatus va_status;

    va_status = vaDeriveImage(va_dpy, surface_id, &surface_image);
    CHECK_VASTATUS(va_status, "vaDeriveImage");

    vaMapBuffer(va_dpy, surface_image.buf, (void **)&surface_p);
    assert(VA_STATUS_SUCCESS == va_status);

    Y_start = surface_p;
    Y_pitch = surface_image.pitches[0];
    switch (surface_image.format.fourcc) {
    case VA_FOURCC_NV12:
        U_start = (unsigned char *)surface_p + surface_image.offsets[1];
        U_pitch = surface_image.pitches[1];
        break;
    case VA_FOURCC_IYUV:
        U_start = (unsigned char *)surface_p + surface_image.offsets[1];
        U_pitch = surface_image.pitches[1];
        break;
    case VA_FOURCC_YV12:
        U_start = (unsigned char *)surface_p + surface_image.offsets[2];
        U_pitch = surface_image.pitches[2];
        break;
    case VA_FOURCC_YUY2:
        U_start = surface_p + 1;
        U_pitch = surface_image.pitches[0];
        break;
    default:
        assert(0);
    }

    /* copy Y plane */
    for (row = 0; row < dst_height; row++) {
        unsigned char *Y_row = Y_start + row * Y_pitch;
        memcpy(dst_Y + row * dst_width, Y_row, dst_width);
    }

    for (row = 0; row < dst_height / 2; row++) {
        unsigned char *U_row = U_start + row * U_pitch;
        unsigned char *u_ptr = NULL, *v_ptr = NULL;
        int j;
        switch (surface_image.format.fourcc) {
        case VA_FOURCC_NV12:
            if (dst_fourcc == VA_FOURCC_NV12) {
                memcpy(dst_U + row * dst_width, U_row, dst_width);
                break;
            } else if (dst_fourcc == VA_FOURCC_IYUV) {
                u_ptr = dst_U + row * (dst_width / 2);
                v_ptr = dst_V + row * (dst_width / 2);
            } else if (dst_fourcc == VA_FOURCC_YV12) {
                v_ptr = dst_U + row * (dst_width / 2);
                u_ptr = dst_V + row * (dst_width / 2);
            }
            if ((dst_fourcc == VA_FOURCC_IYUV) ||
                (dst_fourcc == VA_FOURCC_YV12)) {
                for (j = 0; j < dst_width / 2; j++) {
                    u_ptr[j] = U_row[2 * j];
                    v_ptr[j] = U_row[2 * j + 1];
                }
            }
            break;
        case VA_FOURCC_IYUV:
        case VA_FOURCC_YV12:
        case VA_FOURCC_YUY2:
        default:
            printf("unsupported fourcc in load_surface_yuv\n");
            assert(0);
        }
    }

    vaUnmapBuffer(va_dpy, surface_image.buf);

    vaDestroyImage(va_dpy, surface_image.image_id);

    return 0;
}

#endif /* LIBVA_UTILS_UPLOAD_DOWNLOAD_YUV_SURFACE */


================================================
FILE: common/loadsurface_yuv.h
================================================
/*
 * Copyright (c) 2008-2009 Intel Corporation. All Rights Reserved.
 *
 * 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, sub license, 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 (including the
 * next paragraph) 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 NON-INFRINGEMENT.
 * IN NO EVENT SHALL PRECISION INSIGHT AND/OR ITS SUPPLIERS 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.
 */

#ifndef _YUVGA_H
#define _YUVGA_H

static unsigned char yuvga_pic[] = {
    0x59, 0x59, 0x58, 0x59, 0x5a, 0x59, 0x58, 0x56, 0x4c, 0x4c, 0x4c, 0x4e, 0x54, 0x57, 0x54, 0x4f,
    0x42, 0x42, 0x44, 0x47, 0x4a, 0x4d, 0x53, 0x59, 0x56, 0x57, 0x4f, 0x3e, 0x30, 0x31, 0x3c, 0x47,
    0x4d, 0x58, 0x60, 0x5e, 0x58, 0x55, 0x55, 0x55, 0x4f, 0x4d, 0x4f, 0x58, 0x61, 0x60, 0x5a, 0x54,
    0x42, 0x4a, 0x4c, 0x46, 0x3f, 0x3d, 0x3c, 0x3a, 0x39, 0x37, 0x37, 0x3c, 0x3f, 0x3b, 0x36, 0x32,
    0x3a, 0x30, 0x33, 0x4a, 0x60, 0x62, 0x53, 0x46, 0x40, 0x3e, 0x40, 0x47, 0x49, 0x45, 0x40, 0x3f,
    0x3f, 0x47, 0x49, 0x45, 0x4c, 0x64, 0x7c, 0x87, 0x81, 0x77, 0x61, 0x48, 0x3a, 0x3b, 0x3f, 0x3f,
    0x44, 0x40, 0x3e, 0x3f, 0x3f, 0x3e, 0x41, 0x46, 0x4b, 0x53, 0x4a, 0x4c, 0x4d, 0x49, 0x4c, 0x3c,
    0x3f, 0x3e, 0x43, 0x4c, 0x4b, 0x45, 0x46, 0x4e, 0x52, 0x56, 0x57, 0x54, 0x55, 0x5a, 0x58, 0x51,
    0x50, 0x51, 0x51, 0x4d, 0x47, 0x43, 0x41, 0x42, 0x44, 0x48, 0x4a, 0x4b, 0x4d, 0x4d, 0x47, 0x3f,
    0x32, 0x28, 0x22, 0x24, 0x25, 0x23, 0x24, 0x29, 0x2d, 0x32, 0x34, 0x32, 0x32, 0x37, 0x3c, 0x3e,
    0x40, 0x40, 0x3b, 0x33, 0x2f, 0x33, 0x3c, 0x41, 0x4b, 0x58, 0x5e, 0x5c, 0x57, 0x4e, 0x4c, 0x52,
    0x5f, 0x66, 0x74, 0x7b, 0x72, 0x60, 0x5b, 0x60, 0x63, 0x61, 0x5f, 0x65, 0x77, 0x86, 0x80, 0x71,
    0x6d, 0x87, 0x98, 0x98, 0x98, 0x99, 0x98, 0x98, 0x9f, 0xa6, 0xb3, 0xd1, 0xd9, 0xee, 0xe0, 0xc8,
    0x9c, 0x88, 0x85, 0x83, 0x82, 0x86, 0x82, 0x83, 0x7e, 0x7d, 0x7d, 0x82, 0x83, 0x7e, 0x86, 0x9b,
    0xb4, 0xb4, 0x9a, 0x87, 0x81, 0x7f, 0x7f, 0x76, 0x71, 0x78, 0x7f, 0x7f, 0x78, 0x73, 0x72, 0x75,
    0x75, 0x75, 0x76, 0x76, 0x7d, 0x8d, 0x93, 0x88, 0x80, 0x73, 0x66, 0x57, 0x45, 0x3e, 0x3f, 0x3e,
    0x45, 0x46, 0x54, 0x66, 0x65, 0x50, 0x3f, 0x3b, 0x37, 0x42, 0x52, 0x5b, 0x5b, 0x59, 0x4e, 0x3b,
    0x29, 0x2c, 0x27, 0x2a, 0x3e, 0x52, 0x57, 0x57, 0x63, 0x69, 0x68, 0x56, 0x50, 0x6a, 0x77, 0x65,
    0x5a, 0x5f, 0x69, 0x6d, 0x67, 0x64, 0x64, 0x5f, 0x5b, 0x67, 0x74, 0x7d, 0x86, 0x8b, 0x86, 0x7d,
    0x6d, 0x60, 0x69, 0x80, 0x86, 0x80, 0x85, 0x8e, 0x87, 0x7c, 0x69, 0x6b, 0x62, 0x69, 0x63, 0x68,
    0x69, 0x6c, 0x6f, 0x6f, 0x6c, 0x67, 0x63, 0x61, 0x59, 0x53, 0x51, 0x41, 0x40, 0x46, 0x3e, 0x4a,
    0x50, 0x57, 0x53, 0x46, 0x41, 0x49, 0x51, 0x51, 0x53, 0x4c, 0x43, 0x3c, 0x38, 0x35, 0x32, 0x2f,
    0x32, 0x34, 0x36, 0x36, 0x33, 0x31, 0x32, 0x33, 0x30, 0x2c, 0x27, 0x25, 0x26, 0x28, 0x2a, 0x2b,
    0x2d, 0x28, 0x2e, 0x32, 0x2d, 0x34, 0x3e, 0x3c, 0x3b, 0x35, 0x30, 0x36, 0x42, 0x49, 0x46, 0x41,
    0x39, 0x3f, 0x37, 0x3a, 0x40, 0x4b, 0x5c, 0x99, 0xcc, 0xdf, 0xd2, 0x9a, 0x69, 0x74, 0x69, 0x56,
    0x49, 0x42, 0x41, 0x49, 0x49, 0x42, 0x51, 0x6f, 0x97, 0xa4, 0x95, 0x7a, 0x79, 0x81, 0x7d, 0x77,
    0x7a, 0x7e, 0x80, 0x7d, 0x7b, 0x7a, 0x76, 0x71, 0x75, 0x83, 0x9a, 0xb0, 0xc0, 0xc6, 0xc5, 0xc2,
    0xc9, 0xc6, 0xb3, 0x94, 0x81, 0x80, 0x7e, 0x77, 0x7a, 0x79, 0x76, 0x75, 0x77, 0x78, 0x76, 0x71,
    0x6c, 0x6f, 0x72, 0x71, 0x6d, 0x6b, 0x73, 0x7d, 0x74, 0x6d, 0x61, 0x58, 0x56, 0x57, 0x54, 0x4d,
    0x4c, 0x50, 0x53, 0x4e, 0x4b, 0x68, 0x9b, 0xbf, 0xc2, 0x9c, 0x78, 0x6d, 0x6a, 0x64, 0x67, 0x71,
    0x75, 0x77, 0x79, 0x7b, 0x7b, 0x79, 0x77, 0x75, 0x72, 0x74, 0x77, 0x78, 0x78, 0x78, 0x78, 0x78,
    0x77, 0x77, 0x77, 0x78, 0x81, 0x92, 0xa4, 0xae, 0x9e, 0x94, 0x86, 0x77, 0x66, 0x5a, 0x58, 0x5c,
    0x5f, 0x8e, 0xc0, 0xd5, 0xd6, 0xd6, 0xda, 0xdc, 0xcf, 0xb7, 0x76, 0x54, 0x50, 0x57, 0x8b, 0xc1,
    0xda, 0xd5, 0xce, 0xc8, 0xb5, 0x92, 0x7b, 0x7b, 0x7a, 0x77, 0x82, 0x91, 0x92, 0x94, 0xa7, 0xbb,
    0xcd, 0xcc, 0xb0, 0x71, 0x44, 0x4a, 0x54, 0x45, 0x35, 0x2c, 0x23, 0x20, 0x20, 0x1e, 0x1d, 0x1d,
    0x20, 0x1f, 0x16, 0x13, 0x1e, 0x27, 0x28, 0x29, 0x36, 0x32, 0x30, 0x2f, 0x26, 0x1a, 0x15, 0x17,
    0x1a, 0x1e, 0x25, 0x2c, 0x33, 0x33, 0x29, 0x1d, 0x1c, 0x1e, 0x24, 0x2e, 0x38, 0x3c, 0x3c, 0x3a,
    0x2f, 0x23, 0x1f, 0x28, 0x30, 0x31, 0x36, 0x40, 0x48, 0x3a, 0x42, 0x69, 0x8b, 0x91, 0x8c, 0x8a,
    0x86, 0x86, 0x84, 0x82, 0x81, 0x80, 0x7b, 0x76, 0x65, 0x71, 0x7b, 0x75, 0x5e, 0x4f, 0x54, 0x63,
    0x6b, 0x74, 0x7e, 0x86, 0x81, 0x6d, 0x5f, 0x63, 0x6e, 0x68, 0x5c, 0x4e, 0x48, 0x51, 0x65, 0x76,
    0x59, 0x59, 0x59, 0x5a, 0x5b, 0x5b, 0x59, 0x57, 0x52, 0x52, 0x51, 0x52, 0x55, 0x57, 0x52, 0x4c,
    0x41, 0x3f, 0x41, 0x45, 0x49, 0x4b, 0x4f, 0x53, 0x4f, 0x4d, 0x45, 0x39, 0x31, 0x33, 0x39, 0x3d,
    0x39, 0x45, 0x52, 0x57, 0x58, 0x57, 0x53, 0x4f, 0x47, 0x44, 0x44, 0x48, 0x4b, 0x49, 0x45, 0x43,
    0x4d, 0x52, 0x51, 0x47, 0x3d, 0x3a, 0x3a, 0x39, 0x35, 0x34, 0x35, 0x3a, 0x3d, 0x39, 0x34, 0x31,
    0x30, 0x30, 0x31, 0x35, 0x3c, 0x40, 0x3e, 0x39, 0x3d, 0x3b, 0x39, 0x37, 0x37, 0x3b, 0x43, 0x4b,
    0x4c, 0x50, 0x4d, 0x47, 0x50, 0x65, 0x71, 0x70, 0x78, 0x82, 0x76, 0x51, 0x35, 0x35, 0x40, 0x43,
    0x45, 0x40, 0x3d, 0x3c, 0x3c, 0x3e, 0x43, 0x49, 0x4e, 0x55, 0x4b, 0x4b, 0x4c, 0x4d, 0x53, 0x49,
    0x47, 0x49, 0x4e, 0x54, 0x53, 0x4e, 0x4d, 0x4f, 0x55, 0x5e, 0x64, 0x63, 0x60, 0x5d, 0x54, 0x4a,
    0x4c, 0x4d, 0x4c, 0x49, 0x45, 0x42, 0x41, 0x42, 0x3b, 0x46, 0x50, 0x51, 0x4c, 0x47, 0x41, 0x3c,
    0x2f, 0x26, 0x20, 0x22, 0x25, 0x24, 0x26, 0x2a, 0x2f, 0x2f, 0x31, 0x31, 0x2f, 0x30, 0x39, 0x44,
    0x45, 0x45, 0x42, 0x3c, 0x3a, 0x3f, 0x46, 0x4a, 0x53, 0x5b, 0x5c, 0x59, 0x55, 0x4d, 0x46, 0x49,
    0x56, 0x59, 0x62, 0x68, 0x64, 0x5b, 0x57, 0x5a, 0x5f, 0x5f, 0x5e, 0x61, 0x6c, 0x75, 0x72, 0x69,
    0x69, 0x82, 0x9e, 0xb6, 0xc4, 0xc4, 0xc2, 0xc8, 0xc8, 0xc5, 0xc9, 0xdb, 0xdb, 0xea, 0xdf, 0xcd,
    0x97, 0x84, 0x83, 0x83, 0x84, 0x89, 0x86, 0x87, 0x83, 0x82, 0x82, 0x86, 0x86, 0x80, 0x87, 0x9a,
    0xbb, 0xba, 0xa0, 0x8c, 0x86, 0x81, 0x80, 0x78, 0x79, 0x81, 0x88, 0x8a, 0x84, 0x7e, 0x7c, 0x7c,
    0x80, 0x7e, 0x7d, 0x7c, 0x84, 0x96, 0x9c, 0x92, 0x7c, 0x6c, 0x5f, 0x55, 0x4c, 0x49, 0x47, 0x41,
    0x43, 0x46, 0x57, 0x6b, 0x69, 0x51, 0x3a, 0x32, 0x46, 0x58, 0x60, 0x5c, 0x58, 0x54, 0x45, 0x32,
    0x29, 0x2b, 0x29, 0x2f, 0x45, 0x59, 0x64, 0x6b, 0x6f, 0x72, 0x76, 0x6c, 0x5f, 0x65, 0x6f, 0x6a,
    0x6a, 0x69, 0x6c, 0x6b, 0x68, 0x68, 0x69, 0x65, 0x67, 0x67, 0x6d, 0x7a, 0x85, 0x88, 0x82, 0x7b,
    0x72, 0x64, 0x6a, 0x80, 0x86, 0x81, 0x81, 0x84, 0x89, 0x7c, 0x6b, 0x69, 0x66, 0x68, 0x65, 0x68,
    0x68, 0x6a, 0x6b, 0x6c, 0x69, 0x64, 0x5e, 0x5b, 0x5c, 0x58, 0x58, 0x48, 0x48, 0x42, 0x44, 0x4d,
    0x4e, 0x51, 0x4e, 0x45, 0x40, 0x44, 0x48, 0x48, 0x49, 0x48, 0x47, 0x47, 0x45, 0x40, 0x38, 0x32,
    0x32, 0x33, 0x35, 0x36, 0x37, 0x37, 0x36, 0x35, 0x33, 0x32, 0x31, 0x31, 0x32, 0x32, 0x30, 0x2f,
    0x36, 0x32, 0x37, 0x3a, 0x34, 0x38, 0x3f, 0x3c, 0x37, 0x33, 0x31, 0x36, 0x3e, 0x44, 0x44, 0x42,
    0x3d, 0x3e, 0x36, 0x3b, 0x44, 0x51, 0x65, 0xa4, 0xd4, 0xde, 0xca, 0x92, 0x61, 0x6f, 0x6c, 0x64,
    0x54, 0x4b, 0x48, 0x4b, 0x4a, 0x4a, 0x52, 0x5e, 0x87, 0x96, 0x96, 0x85, 0x7c, 0x7c, 0x7e, 0x7f,
    0x82, 0x84, 0x84, 0x82, 0x81, 0x81, 0x7e, 0x79, 0x80, 0x88, 0x94, 0x9e, 0xa4, 0xa3, 0x9f, 0x9b,
    0x90, 0x91, 0x87, 0x77, 0x70, 0x74, 0x75, 0x72, 0x76, 0x78, 0x7a, 0x7b, 0x7d, 0x7e, 0x7b, 0x76,
    0x7a, 0x7a, 0x7c, 0x7c, 0x7a, 0x77, 0x7a, 0x7f, 0x84, 0x83, 0x7f, 0x79, 0x73, 0x6e, 0x66, 0x5f,
    0x5b, 0x57, 0x52, 0x49, 0x4a, 0x6c, 0xa1, 0xc3, 0xbb, 0x97, 0x74, 0x67, 0x65, 0x64, 0x68, 0x72,
    0x72, 0x75, 0x79, 0x7b, 0x7b, 0x78, 0x73, 0x70, 0x6f, 0x72, 0x75, 0x77, 0x77, 0x77, 0x77, 0x78,
    0x79, 0x78, 0x76, 0x77, 0x7c, 0x84, 0x87, 0x86, 0x82, 0x7b, 0x71, 0x67, 0x5d, 0x56, 0x56, 0x5a,
    0x61, 0x8e, 0xbf, 0xd6, 0xd8, 0xd7, 0xd8, 0xd8, 0xde, 0xc1, 0x7d, 0x55, 0x4e, 0x5b, 0x93, 0xcc,
    0xe1, 0xe2, 0xe4, 0xe0, 0xc5, 0x96, 0x7a, 0x7c, 0x86, 0x8b, 0x8e, 0x8d, 0x8c, 0x94, 0xad, 0xc6,
    0xcf, 0xd2, 0xc0, 0x8e, 0x61, 0x51, 0x4c, 0x41, 0x35, 0x2d, 0x25, 0x23, 0x21, 0x1e, 0x1c, 0x1b,
    0x1a, 0x18, 0x13, 0x13, 0x1a, 0x1c, 0x21, 0x2c, 0x36, 0x32, 0x2f, 0x2c, 0x23, 0x18, 0x15, 0x19,
    0x1d, 0x26, 0x30, 0x33, 0x2a, 0x21, 0x23, 0x29, 0x12, 0x1e, 0x2b, 0x32, 0x37, 0x38, 0x30, 0x26,
    0x1e, 0x1a, 0x1d, 0x26, 0x28, 0x25, 0x29, 0x32, 0x40, 0x6d, 0x86, 0x72, 0x5e, 0x67, 0x76, 0x78,
    0x7c, 0x7e, 0x83, 0x89, 0x8c, 0x8c, 0x8a, 0x89, 0x8e, 0x7d, 0x6b, 0x65, 0x69, 0x71, 0x7a, 0x80,
    0x96, 0x83, 0x6c, 0x5e, 0x4f, 0x38, 0x32, 0x3e, 0x2f, 0x3f, 0x55, 0x68, 0x75, 0x82, 0x8f, 0x99,
    0x5a, 0x59, 0x5a, 0x5b, 0x5c, 0x5c, 0x5b, 0x5a, 0x58, 0x58, 0x57, 0x57, 0x57, 0x57, 0x51, 0x4a,
    0x3d, 0x3c, 0x3f, 0x45, 0x49, 0x48, 0x45, 0x44, 0x44, 0x41, 0x3b, 0x36, 0x37, 0x3b, 0x3d, 0x3b,
    0x3c, 0x3e, 0x41, 0x44, 0x4a, 0x50, 0x54, 0x54, 0x4b, 0x48, 0x46, 0x46, 0x44, 0x40, 0x3e, 0x3e,
    0x47, 0x4e, 0x50, 0x47, 0x3d, 0x3a, 0x3a, 0x39, 0x38, 0x38, 0x3b, 0x3f, 0x3f, 0x3b, 0x35, 0x32,
    0x30, 0x37, 0x38, 0x33, 0x33, 0x3b, 0x40, 0x40, 0x3c, 0x3b, 0x37, 0x32, 0x31, 0x36, 0x3c, 0x40,
    0x41, 0x49, 0x4e, 0x4b, 0x48, 0x54, 0x6f, 0x86, 0xab, 0xbf, 0xb0, 0x73, 0x3d, 0x33, 0x3c, 0x40,
    0x45, 0x42, 0x3e, 0x3c, 0x3a, 0x3a, 0x3d, 0x42, 0x4b, 0x51, 0x4b, 0x4c, 0x4f, 0x55, 0x61, 0x60,
    0x67, 0x6b, 0x6c, 0x6a, 0x67, 0x64, 0x5f, 0x5b, 0x4f, 0x5b, 0x66, 0x67, 0x62, 0x5c, 0x54, 0x4d,
    0x46, 0x49, 0x4b, 0x4c, 0x49, 0x46, 0x43, 0x41, 0x4a, 0x53, 0x5a, 0x58, 0x4e, 0x42, 0x38, 0x32,
    0x2d, 0x27, 0x24, 0x27, 0x2a, 0x2b, 0x2d, 0x31, 0x34, 0x2f, 0x2f, 0x31, 0x2c, 0x29, 0x35, 0x47,
    0x50, 0x4e, 0x49, 0x44, 0x46, 0x4f, 0x57, 0x5b, 0x5d, 0x60, 0x5d, 0x5a, 0x59, 0x52, 0x4a, 0x4a,
    0x50, 0x4d, 0x4b, 0x4b, 0x4e, 0x52, 0x55, 0x56, 0x59, 0x5a, 0x5c, 0x5f, 0x62, 0x64, 0x64, 0x63,
    0x61, 0x62, 0x69, 0x79, 0x84, 0x82, 0x89, 0x9b, 0xa6, 0xa8, 0xba, 0xd7, 0xdd, 0xe7, 0xdd, 0xcc,
    0x99, 0x87, 0x86, 0x85, 0x84, 0x86, 0x81, 0x81, 0x80, 0x80, 0x80, 0x84, 0x86, 0x82, 0x89, 0x9b,
    0xb8, 0xb7, 0x9e, 0x8c, 0x86, 0x82, 0x81, 0x7a, 0x77, 0x7c, 0x82, 0x82, 0x7e, 0x79, 0x77, 0x77,
    0x77, 0x77, 0x79, 0x7c, 0x87, 0x9a, 0x9f, 0x93, 0x85, 0x70, 0x60, 0x5a, 0x5a, 0x5a, 0x51, 0x42,
    0x46, 0x47, 0x50, 0x5a, 0x56, 0x43, 0x36, 0x34, 0x54, 0x6a, 0x6b, 0x5c, 0x59, 0x55, 0x43, 0x34,
    0x2d, 0x2d, 0x2b, 0x31, 0x42, 0x50, 0x5d, 0x6c, 0x73, 0x72, 0x79, 0x77, 0x65, 0x5c, 0x66, 0x73,
    0x76, 0x75, 0x71, 0x6c, 0x6a, 0x6a, 0x68, 0x63, 0x66, 0x69, 0x74, 0x81, 0x83, 0x7a, 0x75, 0x77,
    0x74, 0x65, 0x69, 0x7f, 0x8b, 0x8c, 0x8a, 0x87, 0x8a, 0x78, 0x6a, 0x61, 0x65, 0x61, 0x64, 0x66,
    0x6d, 0x6c, 0x6c, 0x6c, 0x6b, 0x67, 0x60, 0x5b, 0x5d, 0x5e, 0x5a, 0x50, 0x4f, 0x3e, 0x47, 0x4d,
    0x4e, 0x4c, 0x48, 0x44, 0x40, 0x3e, 0x3e, 0x3e, 0x40, 0x3e, 0x3d, 0x3d, 0x3e, 0x3d, 0x39, 0x36,
    0x35, 0x34, 0x34, 0x37, 0x3a, 0x3b, 0x38, 0x35, 0x36, 0x36, 0x36, 0x37, 0x38, 0x37, 0x35, 0x33,
    0x34, 0x32, 0x36, 0x37, 0x32, 0x33, 0x36, 0x33, 0x3a, 0x39, 0x39, 0x3a, 0x3e, 0x42, 0x45, 0x46,
    0x43, 0x41, 0x39, 0x41, 0x46, 0x51, 0x65, 0xa3, 0xd8, 0xdd, 0xc7, 0x8f, 0x5e, 0x6a, 0x6b, 0x69,
    0x55, 0x48, 0x44, 0x45, 0x48, 0x58, 0x68, 0x68, 0x72, 0x79, 0x84, 0x86, 0x7c, 0x79, 0x7d, 0x80,
    0x80, 0x7d, 0x78, 0x74, 0x72, 0x71, 0x6c, 0x67, 0x68, 0x6b, 0x6f, 0x71, 0x71, 0x6f, 0x6c, 0x6a,
    0x66, 0x65, 0x61, 0x5e, 0x5e, 0x61, 0x62, 0x61, 0x65, 0x69, 0x6c, 0x6d, 0x6e, 0x70, 0x6e, 0x6b,
    0x6c, 0x6b, 0x6b, 0x6e, 0x6e, 0x6d, 0x6c, 0x6d, 0x69, 0x71, 0x79, 0x7f, 0x82, 0x84, 0x83, 0x81,
    0x78, 0x6b, 0x5b, 0x4c, 0x4c, 0x70, 0xa3, 0xc3, 0xb7, 0x95, 0x71, 0x61, 0x60, 0x63, 0x6a, 0x71,
    0x72, 0x74, 0x78, 0x7a, 0x7a, 0x77, 0x74, 0x71, 0x6f, 0x72, 0x75, 0x77, 0x77, 0x77, 0x77, 0x77,
    0x7a, 0x78, 0x76, 0x77, 0x78, 0x75, 0x68, 0x5b, 0x5d, 0x5a, 0x57, 0x56, 0x56, 0x57, 0x5b, 0x5f,
    0x6c, 0x85, 0x9b, 0x9e, 0x9a, 0xa0, 0xab, 0xb2, 0xb4, 0xa2, 0x75, 0x5b, 0x58, 0x60, 0x88, 0xb3,
    0xc6, 0xcf, 0xd8, 0xd6, 0xba, 0x8c, 0x75, 0x7b, 0x89, 0x95, 0x8e, 0x7e, 0x7c, 0x8a, 0xa7, 0xc8,
    0xcb, 0xd4, 0xc8, 0xa3, 0x76, 0x51, 0x3d, 0x39, 0x35, 0x2f, 0x29, 0x26, 0x23, 0x1e, 0x1b, 0x19,
    0x16, 0x14, 0x12, 0x15, 0x17, 0x14, 0x1c, 0x30, 0x35, 0x32, 0x2e, 0x2a, 0x20, 0x18, 0x18, 0x1e,
    0x1d, 0x1e, 0x22, 0x29, 0x32, 0x33, 0x27, 0x19, 0x28, 0x20, 0x1e, 0x28, 0x37, 0x38, 0x29, 0x19,
    0x1b, 0x1b, 0x1f, 0x25, 0x25, 0x28, 0x35, 0x45, 0x74, 0x5f, 0x58, 0x6d, 0x87, 0x92, 0x95, 0x98,
    0x98, 0x87, 0x79, 0x78, 0x7a, 0x76, 0x6b, 0x63, 0x6d, 0x67, 0x68, 0x75, 0x86, 0x90, 0x91, 0x8f,
    0x75, 0x67, 0x53, 0x3e, 0x29, 0x1d, 0x34, 0x5d, 0x73, 0x82, 0x8e, 0x87, 0x76, 0x6b, 0x70, 0x7a,
    0x5a, 0x5a, 0x5a, 0x5c, 0x5d, 0x5e, 0x5d, 0x5c, 0x5b, 0x5b, 0x5b, 0x59, 0x59, 0x58, 0x52, 0x4b,
    0x3e, 0x3e, 0x41, 0x49, 0x4d, 0x49, 0x41, 0x3c, 0x3d, 0x3b, 0x38, 0x39, 0x3f, 0x47, 0x49, 0x47,
    0x4b, 0x46, 0x3e, 0x3a, 0x3d, 0x45, 0x4d, 0x51, 0x50, 0x4e, 0x4d, 0x4e, 0x4d, 0x49, 0x46, 0x45,
    0x47, 0x50, 0x56, 0x51, 0x4a, 0x46, 0x41, 0x3c, 0x3c, 0x3c, 0x3e, 0x41, 0x40, 0x3a, 0x34, 0x31,
    0x33, 0x37, 0x39, 0x36, 0x36, 0x38, 0x38, 0x35, 0x3f, 0x3f, 0x3b, 0x36, 0x36, 0x39, 0x38, 0x34,
    0x38, 0x3b, 0x45, 0x49, 0x41, 0x48, 0x74, 0xa7, 0xd1, 0xdd, 0xc5, 0x82, 0x47, 0x34, 0x37, 0x38,
    0x3c, 0x3d, 0x3f, 0x41, 0x40, 0x40, 0x43, 0x45, 0x48, 0x4c, 0x4a, 0x4a, 0x4f, 0x5c, 0x6e, 0x76,
    0x87, 0x99, 0xa7, 0xa7, 0x9c, 0x89, 0x69, 0x4e, 0x5e, 0x6e, 0x7d, 0x7f, 0x76, 0x6a, 0x5d, 0x55,
    0x51, 0x50, 0x4e, 0x4c, 0x4a, 0x48, 0x47, 0x46, 0x4a, 0x4c, 0x4d, 0x4e, 0x4c, 0x45, 0x3b, 0x34,
    0x2f, 0x2c, 0x2c, 0x31, 0x34, 0x34, 0x34, 0x36, 0x37, 0x33, 0x31, 0x30, 0x2d, 0x2c, 0x37, 0x45,
    0x51, 0x52, 0x52, 0x53, 0x57, 0x5c, 0x5e, 0x5c, 0x52, 0x55, 0x53, 0x53, 0x59, 0x59, 0x56, 0x59,
    0x57, 0x53, 0x4c, 0x48, 0x4a, 0x4f, 0x50, 0x4d, 0x54, 0x55, 0x5a, 0x5f, 0x5f, 0x5d, 0x5d, 0x60,
    0x61, 0x5e, 0x5c, 0x63, 0x68, 0x64, 0x6b, 0x7f, 0x88, 0x8d, 0xac, 0xd4, 0xe4, 0xe7, 0xd9, 0xc3,
    0x96, 0x86, 0x87, 0x86, 0x83, 0x84, 0x7e, 0x7d, 0x7c, 0x7d, 0x7d, 0x81, 0x84, 0x81, 0x86, 0x97,
    0xac, 0xab, 0x94, 0x86, 0x83, 0x80, 0x80, 0x7b, 0x7c, 0x7e, 0x80, 0x7e, 0x7b, 0x78, 0x77, 0x78,
    0x75, 0x74, 0x77, 0x7c, 0x8c, 0xa4, 0xad, 0xa3, 0x94, 0x7c, 0x68, 0x65, 0x6a, 0x6b, 0x5b, 0x42,
    0x44, 0x45, 0x49, 0x48, 0x3e, 0x34, 0x38, 0x43, 0x50, 0x62, 0x5b, 0x4d, 0x52, 0x4b, 0x39, 0x34,
    0x31, 0x2f, 0x2d, 0x32, 0x3b, 0x40, 0x4c, 0x5f, 0x70, 0x6d, 0x70, 0x6d, 0x5c, 0x50, 0x5d, 0x73,
    0x7c, 0x80, 0x7d, 0x76, 0x73, 0x6f, 0x68, 0x63, 0x5e, 0x61, 0x69, 0x72, 0x75, 0x70, 0x6f, 0x70,
    0x6e, 0x60, 0x63, 0x7a, 0x90, 0x9f, 0xa3, 0x9e, 0x95, 0x7d, 0x6e, 0x5f, 0x65, 0x5e, 0x67, 0x6a,
    0x6c, 0x6b, 0x6a, 0x6d, 0x70, 0x6f, 0x69, 0x64, 0x5e, 0x65, 0x56, 0x5a, 0x52, 0x44, 0x4a, 0x4f,
    0x50, 0x48, 0x42, 0x42, 0x40, 0x3a, 0x37, 0x38, 0x3c, 0x3a, 0x37, 0x36, 0x37, 0x37, 0x37, 0x37,
    0x36, 0x36, 0x36, 0x38, 0x39, 0x38, 0x35, 0x33, 0x36, 0x35, 0x34, 0x33, 0x34, 0x34, 0x34, 0x35,
    0x35, 0x35, 0x36, 0x37, 0x35, 0x35, 0x37, 0x35, 0x36, 0x36, 0x35, 0x35, 0x37, 0x39, 0x3c, 0x3e,
    0x43, 0x40, 0x3e, 0x48, 0x4a, 0x53, 0x68, 0xa3, 0xd5, 0xdb, 0xc4, 0x8c, 0x5f, 0x71, 0x77, 0x77,
    0x62, 0x4f, 0x49, 0x4a, 0x4f, 0x6f, 0x91, 0x98, 0x78, 0x6a, 0x6f, 0x7d, 0x7b, 0x78, 0x78, 0x74,
    0x70, 0x69, 0x60, 0x5b, 0x5a, 0x59, 0x54, 0x4f, 0x54, 0x55, 0x56, 0x58, 0x59, 0x59, 0x59, 0x59,
    0x5c, 0x56, 0x52, 0x52, 0x52, 0x52, 0x52, 0x53, 0x55, 0x58, 0x59, 0x57, 0x57, 0x59, 0x5b, 0x5a,
    0x5f, 0x5e, 0x5f, 0x62, 0x64, 0x64, 0x67, 0x6a, 0x65, 0x68, 0x6b, 0x6e, 0x73, 0x77, 0x7a, 0x7b,
    0x81, 0x73, 0x61, 0x4f, 0x4f, 0x74, 0xa6, 0xc3, 0xb6, 0x97, 0x72, 0x60, 0x5e, 0x64, 0x6a, 0x6f,
    0x75, 0x76, 0x78, 0x79, 0x79, 0x78, 0x76, 0x75, 0x71, 0x74, 0x77, 0x79, 0x78, 0x77, 0x77, 0x76,
    0x78, 0x77, 0x77, 0x78, 0x77, 0x6e, 0x5b, 0x49, 0x4f, 0x4e, 0x4f, 0x53, 0x58, 0x5d, 0x61, 0x64,
    0x6e, 0x7a, 0x80, 0x77, 0x6d, 0x6e, 0x74, 0x78, 0x74, 0x71, 0x65, 0x62, 0x66, 0x66, 0x72, 0x84,
    0x97, 0xa3, 0xaa, 0xa7, 0x99, 0x85, 0x7d, 0x86, 0x81, 0x8c, 0x7f, 0x6c, 0x6e, 0x78, 0x91, 0xb6,
    0xcb, 0xd6, 0xc9, 0xa5, 0x7a, 0x4e, 0x33, 0x32, 0x34, 0x30, 0x2c, 0x2a, 0x25, 0x1f, 0x1a, 0x19,
    0x15, 0x17, 0x16, 0x16, 0x17, 0x15, 0x1e, 0x30, 0x38, 0x35, 0x30, 0x2a, 0x21, 0x1b, 0x1d, 0x24,
    0x1b, 0x23, 0x22, 0x1c, 0x21, 0x2e, 0x2e, 0x22, 0x14, 0x1b, 0x2d, 0x3d, 0x37, 0x25, 0x1e, 0x24,
    0x28, 0x2a, 0x2d, 0x31, 0x32, 0x39, 0x4a, 0x5b, 0x62, 0x7a, 0x91, 0x94, 0x8c, 0x88, 0x8d, 0x93,
    0x7f, 0x84, 0x8b, 0x8a, 0x7b, 0x6d, 0x6e, 0x78, 0x73, 0x73, 0x76, 0x79, 0x79, 0x74, 0x6b, 0x65,
    0x48, 0x38, 0x32, 0x4f, 0x7c, 0x95, 0x9d, 0xa2, 0x97, 0x81, 0x68, 0x5e, 0x63, 0x6a, 0x6a, 0x65,
    0x5a, 0x5a, 0x5a, 0x5c, 0x5e, 0x5e, 0x5e, 0x5c, 0x5a, 0x5b, 0x5b, 0x5a, 0x5a, 0x59, 0x54, 0x4f,
    0x44, 0x41, 0x42, 0x48, 0x4d, 0x4b, 0x46, 0x42, 0x3a, 0x3a, 0x3a, 0x3b, 0x42, 0x4b, 0x51, 0x52,
    0x4f, 0x4c, 0x48, 0x45, 0x42, 0x40, 0x3f, 0x3f, 0x45, 0x44, 0x46, 0x4d, 0x51, 0x4e, 0x49, 0x46,
    0x48, 0x4e, 0x51, 0x4e, 0x4a, 0x46, 0x3d, 0x33, 0x35, 0x34, 0x37, 0x3b, 0x3b, 0x36, 0x30, 0x2d,
    0x33, 0x34, 0x3a, 0x40, 0x40, 0x3c, 0x3b, 0x3d, 0x42, 0x44, 0x44, 0x40, 0x3d, 0x3d, 0x3e, 0x3f,
    0x44, 0x3f, 0x3d, 0x40, 0x44, 0x50, 0x6d, 0x8b, 0x9a, 0x9b, 0x88, 0x62, 0x41, 0x36, 0x37, 0x37,
    0x3c, 0x3e, 0x3f, 0x3c, 0x39, 0x39, 0x3a, 0x3c, 0x42, 0x43, 0x47, 0x4c, 0x5d, 0x7e, 0x9f, 0xb6,
    0xc9, 0xdd, 0xec, 0xec, 0xe6, 0xdb, 0xc2, 0xa9, 0x93, 0xa6, 0xbd, 0xc7, 0xc2, 0xb5, 0xa7, 0x9f,
    0x88, 0x80, 0x73, 0x67, 0x5e, 0x56, 0x50, 0x4d, 0x4c, 0x4a, 0x4a, 0x4b, 0x4a, 0x46, 0x40, 0x3c,
    0x32, 0x31, 0x33, 0x36, 0x36, 0x34, 0x31, 0x30, 0x35, 0x35, 0x33, 0x30, 0x32, 0x38, 0x3f, 0x44,
    0x4c, 0x50, 0x56, 0x5b, 0x5e, 0x5d, 0x55, 0x4d, 0x49, 0x4e, 0x4d, 0x4f, 0x57, 0x5d, 0x62, 0x6a,
    0x5f, 0x5d, 0x59, 0x55, 0x53, 0x53, 0x4e, 0x48, 0x52, 0x53, 0x57, 0x5d, 0x5f, 0x5c, 0x5a, 0x5b,
    0x59, 0x5f, 0x62, 0x62, 0x64, 0x66, 0x70, 0x81, 0x8b, 0x8b, 0xa8, 0xcd, 0xe3, 0xe7, 0xda, 0xc1,
    0x89, 0x7c, 0x80, 0x83, 0x84, 0x87, 0x83, 0x84, 0x82, 0x83, 0x83, 0x85, 0x88, 0x84, 0x88, 0x96,
    0xaa, 0xa9, 0x93, 0x87, 0x84, 0x80, 0x80, 0x7b, 0x7d, 0x80, 0x82, 0x81, 0x7d, 0x79, 0x77, 0x77,
    0x75, 0x76, 0x79, 0x7f, 0x8e, 0xa7, 0xb2, 0xa9, 0x93, 0x7b, 0x69, 0x69, 0x72, 0x76, 0x64, 0x47,
    0x3a, 0x42, 0x48, 0x43, 0x36, 0x33, 0x44, 0x57, 0x63, 0x66, 0x57, 0x4f, 0x55, 0x49, 0x35, 0x35,
    0x2f, 0x30, 0x31, 0x37, 0x3c, 0x3c, 0x46, 0x5a, 0x6c, 0x6c, 0x69, 0x61, 0x56, 0x50, 0x5a, 0x6c,
    0x81, 0x8c, 0x89, 0x80, 0x7e, 0x7a, 0x72, 0x71, 0x73, 0x6b, 0x63, 0x68, 0x79, 0x86, 0x82, 0x77,
    0x68, 0x5c, 0x5e, 0x71, 0x8d, 0xaa, 0xb9, 0xb6, 0x9d, 0x81, 0x6d, 0x59, 0x5c, 0x54, 0x60, 0x67,
    0x6c, 0x69, 0x67, 0x6a, 0x6f, 0x70, 0x6d, 0x69, 0x5e, 0x69, 0x52, 0x61, 0x53, 0x51, 0x4f, 0x55,
    0x4f, 0x45, 0x3d, 0x3e, 0x3d, 0x38, 0x36, 0x38, 0x3c, 0x3d, 0x3e, 0x3f, 0x3f, 0x3b, 0x37, 0x34,
    0x34, 0x36, 0x38, 0x39, 0x37, 0x36, 0x36, 0x37, 0x37, 0x37, 0x37, 0x36, 0x35, 0x35, 0x36, 0x36,
    0x37, 0x37, 0x34, 0x33, 0x33, 0x33, 0x32, 0x34, 0x36, 0x33, 0x31, 0x32, 0x36, 0x39, 0x3a, 0x39,
    0x3c, 0x3b, 0x3d, 0x48, 0x49, 0x58, 0x72, 0xaa, 0xd7, 0xdd, 0xc5, 0x8a, 0x5d, 0x73, 0x79, 0x75,
    0x67, 0x53, 0x4e, 0x50, 0x53, 0x74, 0xa0, 0xb1, 0x95, 0x79, 0x70, 0x7a, 0x7a, 0x77, 0x75, 0x6f,
    0x65, 0x5c, 0x53, 0x51, 0x53, 0x54, 0x53, 0x50, 0x54, 0x54, 0x54, 0x55, 0x55, 0x55, 0x55, 0x56,
    0x54, 0x4d, 0x47, 0x48, 0x49, 0x49, 0x4b, 0x4e, 0x50, 0x54, 0x56, 0x56, 0x56, 0x58, 0x58, 0x56,
    0x5a, 0x5a, 0x5b, 0x5d, 0x5c, 0x60, 0x69, 0x72, 0x75, 0x6d, 0x64, 0x61, 0x63, 0x65, 0x65, 0x64,
    0x68, 0x62, 0x58, 0x4c, 0x50, 0x77, 0xaa, 0xc7, 0xb4, 0x95, 0x71, 0x60, 0x5f, 0x65, 0x6b, 0x70,
    0x77, 0x79, 0x7b, 0x7c, 0x7b, 0x77, 0x73, 0x70, 0x6e, 0x72, 0x76, 0x78, 0x79, 0x78, 0x78, 0x78,
    0x76, 0x77, 0x78, 0x78, 0x77, 0x6e, 0x5e, 0x4f, 0x59, 0x59, 0x59, 0x5b, 0x5e, 0x61, 0x62, 0x62,
    0x6e, 0x71, 0x6e, 0x63, 0x5a, 0x59, 0x5d, 0x5f, 0x5f, 0x5d, 0x5f, 0x64, 0x6c, 0x6c, 0x67, 0x6a,
    0x60, 0x6a, 0x6a, 0x64, 0x69, 0x70, 0x76, 0x7c, 0x7f, 0x80, 0x70, 0x64, 0x69, 0x6b, 0x79, 0x99,
    0xbb, 0xc7, 0xba, 0x95, 0x71, 0x4e, 0x35, 0x2f, 0x33, 0x30, 0x2e, 0x2b, 0x25, 0x1d, 0x1a, 0x19,
    0x14, 0x1a, 0x18, 0x15, 0x18, 0x1d, 0x23, 0x2c, 0x39, 0x35, 0x2f, 0x27, 0x1e, 0x1b, 0x1f, 0x25,
    0x21, 0x27, 0x28, 0x25, 0x24, 0x25, 0x24, 0x1f, 0x1e, 0x27, 0x39, 0x4b, 0x55, 0x53, 0x4e, 0x4b,
    0x57, 0x5b, 0x60, 0x63, 0x65, 0x67, 0x6c, 0x71, 0x76, 0x7d, 0x75, 0x69, 0x76, 0x8d, 0x86, 0x6c,
    0x73, 0x66, 0x5b, 0x5d, 0x64, 0x66, 0x66, 0x66, 0x61, 0x5d, 0x5d, 0x65, 0x6d, 0x6c, 0x5d, 0x4e,
    0x3b, 0x58, 0x71, 0x7c, 0x80, 0x7d, 0x78, 0x7a, 0x6b, 0x62, 0x56, 0x4d, 0x4b, 0x51, 0x59, 0x5f,
    0x59, 0x59, 0x5a, 0x5c, 0x5d, 0x5e, 0x5d, 0x5c, 0x59, 0x5a, 0x5a, 0x59, 0x59, 0x5a, 0x57, 0x52,
    0x49, 0x42, 0x3e, 0x41, 0x45, 0x46, 0x46, 0x46, 0x38, 0x3a, 0x3b, 0x3a, 0x3e, 0x47, 0x4f, 0x53,
    0x55, 0x52, 0x4f, 0x4f, 0x4b, 0x43, 0x3d, 0x39, 0x39, 0x38, 0x3c, 0x45, 0x4b, 0x4b, 0x47, 0x44,
    0x44, 0x45, 0x43, 0x44, 0x4a, 0x4d, 0x45, 0x3a, 0x32, 0x30, 0x32, 0x38, 0x3d, 0x3b, 0x37, 0x34,
    0x37, 0x38, 0x3d, 0x43, 0x3f, 0x36, 0x37, 0x3f, 0x42, 0x4b, 0x56, 0x5a, 0x52, 0x47, 0x42, 0x43,
    0x44, 0x47, 0x42, 0x3b, 0x40, 0x51, 0x5b, 0x5a, 0x58, 0x55, 0x4f, 0x46, 0x3e, 0x39, 0x38, 0x38,
    0x41, 0x42, 0x40, 0x3b, 0x3a, 0x40, 0x49, 0x4e, 0x44, 0x3f, 0x43, 0x47, 0x5f, 0x8b, 0xb6, 0xd9,
    0xeb, 0xf0, 0xeb, 0xdc, 0xd5, 0xd8, 0xd4, 0xca, 0xb7, 0xc1, 0xce, 0xd5, 0xd6, 0xd3, 0xd2, 0xd1,
    0xce, 0xc8, 0xbd, 0xae, 0x9b, 0x84, 0x6c, 0x5c, 0x51, 0x4d, 0x49, 0x47, 0x45, 0x42, 0x41, 0x42,
    0x32, 0x33, 0x34, 0x33, 0x31, 0x2d, 0x29, 0x26, 0x2f, 0x32, 0x33, 0x32, 0x38, 0x42, 0x48, 0x48,
    0x51, 0x52, 0x53, 0x53, 0x54, 0x56, 0x53, 0x4f, 0x44, 0x47, 0x42, 0x3e, 0x42, 0x47, 0x4e, 0x59,
    0x61, 0x5c, 0x55, 0x52, 0x52, 0x55, 0x56, 0x57, 0x55, 0x55, 0x56, 0x59, 0x5c, 0x5d, 0x5a, 0x57,
    0x5a, 0x6a, 0x71, 0x6f, 0x6e, 0x71, 0x7a, 0x87, 0x90, 0x8e, 0xab, 0xca, 0xe4, 0xe6, 0xd9, 0xba,
    0x82, 0x76, 0x7d, 0x82, 0x83, 0x88, 0x85, 0x86, 0x83, 0x86, 0x87, 0x8b, 0x90, 0x90, 0x94, 0xa0,
    0xb1, 0xaf, 0x99, 0x8d, 0x89, 0x82, 0x80, 0x7b, 0x77, 0x7d, 0x84, 0x86, 0x81, 0x7b, 0x76, 0x75,
    0x72, 0x7a, 0x87, 0x91, 0x9b, 0xa8, 0xa6, 0x96, 0x85, 0x72, 0x64, 0x66, 0x72, 0x78, 0x68, 0x4d,
    0x3a, 0x3e, 0x3e, 0x36, 0x30, 0x3b, 0x58, 0x70, 0x81, 0x76, 0x63, 0x5b, 0x5b, 0x4b, 0x38, 0x37,
    0x2f, 0x34, 0x37, 0x3c, 0x3f, 0x3d, 0x46, 0x58, 0x65, 0x6d, 0x6b, 0x63, 0x61, 0x62, 0x65, 0x6d,
    0x7d, 0x8b, 0x86, 0x7a, 0x7c, 0x7b, 0x78, 0x7c, 0x7e, 0x7d, 0x7b, 0x7c, 0x85, 0x8d, 0x86, 0x78,
    0x6a, 0x61, 0x5d, 0x65, 0x7d, 0xa1, 0xb8, 0xb8, 0xa1, 0x86, 0x6d, 0x5b, 0x56, 0x51, 0x5d, 0x6b,
    0x7b, 0x76, 0x6f, 0x6c, 0x6b, 0x69, 0x64, 0x60, 0x5d, 0x65, 0x52, 0x5b, 0x4f, 0x55, 0x4e, 0x54,
    0x4b, 0x41, 0x3a, 0x3a, 0x3b, 0x39, 0x39, 0x3a, 0x3d, 0x3d, 0x3d, 0x3d, 0x3c, 0x3b, 0x3a, 0x39,
    0x3a, 0x3d, 0x3f, 0x3f, 0x3e, 0x3e, 0x40, 0x43, 0x41, 0x43, 0x46, 0x46, 0x45, 0x42, 0x40, 0x3f,
    0x40, 0x41, 0x3a, 0x36, 0x38, 0x35, 0x31, 0x34, 0x39, 0x35, 0x32, 0x34, 0x38, 0x3b, 0x3a, 0x37,
    0x39, 0x37, 0x38, 0x3f, 0x3e, 0x51, 0x67, 0x94, 0xa2, 0xb0, 0xaa, 0x85, 0x63, 0x74, 0x6f, 0x66,
    0x5b, 0x51, 0x53, 0x58, 0x60, 0x7e, 0xa3, 0xb3, 0xaa, 0x8f, 0x7c, 0x79, 0x78, 0x77, 0x78, 0x79,
    0x6a, 0x60, 0x56, 0x53, 0x55, 0x55, 0x54, 0x54, 0x53, 0x53, 0x53, 0x53, 0x52, 0x52, 0x52, 0x52,
    0x4d, 0x49, 0x44, 0x43, 0x43, 0x43, 0x46, 0x48, 0x4e, 0x55, 0x5d, 0x61, 0x63, 0x62, 0x5c, 0x56,
    0x52, 0x53, 0x53, 0x51, 0x4f, 0x54, 0x62, 0x71, 0x6b, 0x5f, 0x53, 0x52, 0x58, 0x5b, 0x5a, 0x57,
    0x53, 0x54, 0x52, 0x4c, 0x53, 0x7c, 0xae, 0xc9, 0xae, 0x8f, 0x6e, 0x61, 0x61, 0x65, 0x6b, 0x71,
    0x73, 0x78, 0x7d, 0x80, 0x7d, 0x75, 0x6c, 0x65, 0x69, 0x6d, 0x72, 0x76, 0x78, 0x79, 0x79, 0x7a,
    0x77, 0x78, 0x79, 0x78, 0x77, 0x71, 0x65, 0x5a, 0x5f, 0x61, 0x62, 0x62, 0x63, 0x65, 0x66, 0x65,
    0x6a, 0x67, 0x60, 0x57, 0x52, 0x54, 0x56, 0x56, 0x55, 0x51, 0x5a, 0x60, 0x69, 0x6f, 0x66, 0x64,
    0x5b, 0x62, 0x5e, 0x5a, 0x66, 0x77, 0x7f, 0x82, 0x84, 0x7a, 0x68, 0x61, 0x67, 0x66, 0x6b, 0x7d,
    0x89, 0x93, 0x8d, 0x74, 0x5f, 0x4d, 0x3a, 0x2e, 0x30, 0x2e, 0x2c, 0x28, 0x22, 0x1b, 0x19, 0x1a,
    0x14, 0x1b, 0x18, 0x15, 0x1d, 0x25, 0x28, 0x2b, 0x37, 0x31, 0x27, 0x1e, 0x19, 0x1c, 0x23, 0x2a,
    0x29, 0x22, 0x23, 0x2a, 0x28, 0x1e, 0x1d, 0x26, 0x3c, 0x61, 0x7c, 0x75, 0x63, 0x5f, 0x62, 0x62,
    0x6c, 0x6d, 0x6d, 0x6d, 0x6f, 0x72, 0x73, 0x71, 0x69, 0x6e, 0x78, 0x7b, 0x71, 0x64, 0x67, 0x72,
    0x64, 0x5f, 0x58, 0x50, 0x4c, 0x4e, 0x56, 0x5c, 0x56, 0x55, 0x57, 0x5b, 0x5d, 0x52, 0x3b, 0x26,
    0x48, 0x62, 0x6f, 0x68, 0x62, 0x5e, 0x57, 0x54, 0x53, 0x4b, 0x45, 0x48, 0x52, 0x55, 0x4f, 0x47,
    0x59, 0x59, 0x59, 0x5b, 0x5c, 0x5d, 0x5c, 0x5a, 0x5a, 0x5c, 0x5b, 0x59, 0x59, 0x59, 0x57, 0x54,
    0x4e, 0x48, 0x44, 0x44, 0x44, 0x42, 0x3f, 0x3e, 0x36, 0x39, 0x39, 0x39, 0x3c, 0x44, 0x4c, 0x50,
    0x56, 0x4f, 0x4a, 0x4b, 0x4b, 0x46, 0x3f, 0x3b, 0x37, 0x36, 0x38, 0x3d, 0x42, 0x43, 0x44, 0x46,
    0x44, 0x42, 0x42, 0x4c, 0x5f, 0x6b, 0x65, 0x57, 0x3d, 0x39, 0x3a, 0x42, 0x4a, 0x4c, 0x48, 0x45,
    0x41, 0x40, 0x41, 0x44, 0x46, 0x45, 0x42, 0x41, 0x4e, 0x50, 0x5c, 0x6e, 0x71, 0x60, 0x4d, 0x44,
    0x3f, 0x45, 0x45, 0x3d, 0x3c, 0x48, 0x53, 0x57, 0x5f, 0x5e, 0x5b, 0x52, 0x45, 0x3c, 0x3a, 0x3b,
    0x3d, 0x41, 0x43, 0x42, 0x48, 0x56, 0x66, 0x6f, 0x50, 0x45, 0x44, 0x3f, 0x4e, 0x74, 0x95, 0xb6,
    0xd8, 0xe6, 0xf0, 0xf0, 0xf0, 0xf1, 0xeb, 0xe1, 0xe8, 0xe5, 0xe0, 0xde, 0xdc, 0xde, 0xe2, 0xe6,
    0xdc, 0xdb, 0xd8, 0xd3, 0xc8, 0xb4, 0x9c, 0x8b, 0x6d, 0x58, 0x43, 0x3b, 0x3f, 0x42, 0x42, 0x41,
    0x33, 0x34, 0x33, 0x31, 0x2e, 0x2c, 0x2a, 0x29, 0x2e, 0x2f, 0x32, 0x37, 0x3c, 0x42, 0x49, 0x4e,
    0x5c, 0x5f, 0x62, 0x64, 0x67, 0x6a, 0x69, 0x66, 0x67, 0x66, 0x5d, 0x57, 0x5b, 0x60, 0x69, 0x75,
    0x6c, 0x64, 0x5f, 0x63, 0x66, 0x64, 0x61, 0x62, 0x5b, 0x5c, 0x5b, 0x58, 0x5b, 0x61, 0x61, 0x5d,
    0x6d, 0x84, 0x98, 0xa1, 0xa3, 0x9f, 0x9e, 0xa5, 0x9e, 0xa0, 0xbd, 0xd3, 0xe8, 0xe4, 0xd4, 0xaf,
    0x84, 0x78, 0x7f, 0x82, 0x82, 0x85, 0x82, 0x84, 0x7f, 0x83, 0x85, 0x8a, 0x91, 0x91, 0x96, 0xa1,
    0xad, 0xab, 0x95, 0x8b, 0x88, 0x81, 0x80, 0x7c, 0x7d, 0x84, 0x8b, 0x8c, 0x87, 0x82, 0x81, 0x82,
    0x81, 0x8c, 0x9a, 0xa1, 0xa4, 0xa8, 0xa0, 0x8d, 0x82, 0x74, 0x69, 0x68, 0x6e, 0x73, 0x65, 0x4c,
    0x3c, 0x37, 0x2e, 0x29, 0x32, 0x4b, 0x6a, 0x7e, 0x79, 0x6c, 0x5c, 0x53, 0x4c, 0x41, 0x35, 0x2e,
    0x2e, 0x36, 0x3a, 0x3d, 0x41, 0x42, 0x4b, 0x5b, 0x6c, 0x76, 0x72, 0x6b, 0x6f, 0x70, 0x6d, 0x71,
    0x72, 0x80, 0x77, 0x69, 0x70, 0x71, 0x6d, 0x72, 0x6b, 0x74, 0x7d, 0x7e, 0x78, 0x72, 0x6f, 0x6f,
    0x75, 0x6d, 0x63, 0x5c, 0x69, 0x8b, 0xa4, 0xa6, 0x9e, 0x88, 0x6e, 0x64, 0x59, 0x5b, 0x67, 0x7a,
    0x86, 0x7f, 0x75, 0x6d, 0x69, 0x65, 0x61, 0x5d, 0x61, 0x62, 0x5f, 0x4d, 0x49, 0x49, 0x45, 0x48,
    0x46, 0x40, 0x3b, 0x3a, 0x3d, 0x3e, 0x3f, 0x3e, 0x42, 0x42, 0x41, 0x41, 0x43, 0x46, 0x49, 0x4c,
    0x4d, 0x4d, 0x4d, 0x4d, 0x4e, 0x50, 0x52, 0x54, 0x54, 0x56, 0x58, 0x58, 0x55, 0x53, 0x51, 0x51,
    0x5a, 0x5c, 0x54, 0x4e, 0x52, 0x4c, 0x44, 0x47, 0x3f, 0x3b, 0x38, 0x38, 0x39, 0x38, 0x34, 0x31,
    0x37, 0x36, 0x36, 0x3a, 0x36, 0x44, 0x49, 0x62, 0x4d, 0x60, 0x72, 0x71, 0x62, 0x71, 0x6a, 0x65,
    0x58, 0x5f, 0x67, 0x71, 0x89, 0xaa, 0xc0, 0xc6, 0xb8, 0xa3, 0x85, 0x76, 0x78, 0x7b, 0x7b, 0x7d,
    0x72, 0x67, 0x5c, 0x57, 0x55, 0x53, 0x52, 0x52, 0x54, 0x54, 0x55, 0x56, 0x57, 0x58, 0x5a, 0x5a,
    0x56, 0x56, 0x54, 0x50, 0x4d, 0x4b, 0x49, 0x48, 0x51, 0x58, 0x60, 0x67, 0x6a, 0x67, 0x5d, 0x54,
    0x52, 0x52, 0x51, 0x4f, 0x4d, 0x54, 0x65, 0x75, 0x67, 0x58, 0x4b, 0x49, 0x4e, 0x50, 0x4d, 0x4b,
    0x50, 0x52, 0x52, 0x4e, 0x58, 0x81, 0xb1, 0xc8, 0xad, 0x8c, 0x6d, 0x64, 0x65, 0x64, 0x68, 0x71,
    0x71, 0x75, 0x7a, 0x7e, 0x7c, 0x75, 0x6c, 0x66, 0x69, 0x6d, 0x72, 0x76, 0x78, 0x79, 0x79, 0x79,
    0x78, 0x78, 0x78, 0x78, 0x79, 0x75, 0x6a, 0x60, 0x61, 0x65, 0x67, 0x64, 0x63, 0x65, 0x67, 0x66,
    0x61, 0x62, 0x64, 0x65, 0x66, 0x61, 0x58, 0x4f, 0x46, 0x41, 0x4f, 0x54, 0x5b, 0x68, 0x63, 0x62,
    0x5c, 0x60, 0x5e, 0x5f, 0x69, 0x72, 0x7a, 0x83, 0x89, 0x7b, 0x68, 0x5f, 0x63, 0x69, 0x6e, 0x70,
    0x6b, 0x6b, 0x69, 0x60, 0x55, 0x4f, 0x42, 0x30, 0x2c, 0x2a, 0x28, 0x24, 0x1d, 0x17, 0x17, 0x1b,
    0x19, 0x1b, 0x1b, 0x1e, 0x28, 0x2d, 0x2f, 0x35, 0x3b, 0x33, 0x27, 0x1f, 0x22, 0x2e, 0x3e, 0x47,
    0x61, 0x63, 0x64, 0x5c, 0x4f, 0x4e, 0x65, 0x80, 0x9b, 0x91, 0x75, 0x50, 0x3e, 0x48, 0x5d, 0x69,
    0x78, 0x78, 0x75, 0x72, 0x76, 0x7b, 0x7b, 0x78, 0x79, 0x67, 0x4b, 0x34, 0x29, 0x28, 0x25, 0x21,
    0x35, 0x3d, 0x47, 0x51, 0x5b, 0x60, 0x57, 0x49, 0x51, 0x50, 0x4b, 0x41, 0x39, 0x33, 0x2d, 0x28,
    0x3f, 0x49, 0x49, 0x43, 0x48, 0x4f, 0x4e, 0x4b, 0x45, 0x4a, 0x4d, 0x49, 0x41, 0x3a, 0x3a, 0x3d,
    0x59, 0x58, 0x59, 0x5a, 0x5c, 0x5c, 0x5b, 0x59, 0x5d, 0x5e, 0x5c, 0x59, 0x58, 0x59, 0x57, 0x55,
    0x55, 0x52, 0x51, 0x51, 0x4d, 0x43, 0x3a, 0x35, 0x34, 0x37, 0x38, 0x39, 0x3d, 0x45, 0x4c, 0x4f,
    0x4c, 0x44, 0x40, 0x46, 0x4b, 0x46, 0x3a, 0x32, 0x36, 0x35, 0x35, 0x36, 0x37, 0x39, 0x3f, 0x45,
    0x3d, 0x3b, 0x3e, 0x4f, 0x6a, 0x7a, 0x71, 0x5f, 0x4a, 0x45, 0x44, 0x4d, 0x56, 0x59, 0x55, 0x51,
    0x4a, 0x4b, 0x51, 0x63, 0x7f, 0x95, 0x96, 0x8b, 0x62, 0x51, 0x50, 0x6b, 0x81, 0x7a, 0x62, 0x51,
    0x4c, 0x41, 0x3d, 0x40, 0x41, 0x45, 0x57, 0x6e, 0x81, 0x85, 0x7e, 0x67, 0x4c, 0x3d, 0x3c, 0x40,
    0x43, 0x46, 0x44, 0x3e, 0x3c, 0x43, 0x4c, 0x51, 0x4e, 0x44, 0x49, 0x47, 0x57, 0x79, 0x94, 0xb3,
    0xe3, 0xf2, 0xfd, 0xf8, 0xea, 0xd9, 0xc3, 0xb0, 0xa0, 0x9e, 0x9e, 0xa1, 0xa5, 0xa8, 0xaa, 0xac,
    0xbb, 0xb8, 0xb6, 0xba, 0xc1, 0xc6, 0xc6, 0xc4, 0xbd, 0x8e, 0x5b, 0x45, 0x48, 0x4a, 0x3f, 0x34,
    0x34, 0x35, 0x34, 0x31, 0x30, 0x32, 0x34, 0x34, 0x30, 0x2e, 0x32, 0x3a, 0x3d, 0x3c, 0x45, 0x52,
    0x5d, 0x6c, 0x80, 0x8f, 0x94, 0x90, 0x84, 0x7a, 0x71, 0x6f, 0x67, 0x65, 0x6f, 0x7b, 0x88, 0x95,
    0x7d, 0x7a, 0x81, 0x8f, 0x90, 0x7c, 0x65, 0x58, 0x60, 0x63, 0x60, 0x5a, 0x5d, 0x67, 0x6b, 0x67,
    0x6c, 0x77, 0x7f, 0x83, 0x84, 0x82, 0x89, 0x97, 0x9b, 0x9e, 0xbb, 0xcb, 0xe0, 0xe1, 0xd9, 0xb7,
    0x84, 0x78, 0x7f, 0x82, 0x82, 0x86, 0x83, 0x85, 0x80, 0x83, 0x83, 0x85, 0x89, 0x87, 0x89, 0x92,
    0x9f, 0x9e, 0x8b, 0x84, 0x84, 0x7e, 0x7f, 0x7c, 0x7f, 0x84, 0x88, 0x87, 0x82, 0x80, 0x85, 0x8b,
    0x94, 0x95, 0x96, 0x90, 0x8e, 0x98, 0x9a, 0x90, 0x8c, 0x80, 0x75, 0x6e, 0x6d, 0x6d, 0x5e, 0x46,
    0x37, 0x30, 0x28, 0x2d, 0x42, 0x5e, 0x72, 0x7a, 0x65, 0x5c, 0x52, 0x48, 0x41, 0x3f, 0x3b, 0x30,
    0x29, 0x34, 0x3a, 0x3e, 0x44, 0x4b, 0x56, 0x66, 0x7e, 0x84, 0x7b, 0x70, 0x72, 0x6e, 0x68, 0x6d,
    0x69, 0x76, 0x6b, 0x5e, 0x67, 0x68, 0x5f, 0x61, 0x67, 0x66, 0x69, 0x6c, 0x6a, 0x67, 0x6e, 0x79,
    0x7e, 0x77, 0x68, 0x58, 0x5c, 0x7a, 0x93, 0x95, 0x86, 0x75, 0x5c, 0x5b, 0x4d, 0x55, 0x61, 0x79,
    0x7d, 0x77, 0x70, 0x6a, 0x68, 0x68, 0x68, 0x67, 0x6a, 0x66, 0x6f, 0x44, 0x48, 0x3e, 0x3e, 0x3f,
    0x43, 0x41, 0x3e, 0x3d, 0x40, 0x44, 0x44, 0x42, 0x47, 0x4c, 0x54, 0x5b, 0x5f, 0x60, 0x5f, 0x5e,
    0x61, 0x5e, 0x5b, 0x5b, 0x5d, 0x5f, 0x60, 0x60, 0x65, 0x64, 0x63, 0x60, 0x5d, 0x5c, 0x5e, 0x60,
    0x65, 0x6a, 0x62, 0x5d, 0x62, 0x5b, 0x50, 0x52, 0x53, 0x51, 0x4e, 0x4a, 0x46, 0x41, 0x3c, 0x39,
    0x34, 0x34, 0x37, 0x3d, 0x38, 0x40, 0x36, 0x3d, 0x3b, 0x43, 0x52, 0x5b, 0x50, 0x5a, 0x55, 0x5b,
    0x59, 0x6b, 0x75, 0x81, 0xa5, 0xcc, 0xd9, 0xd2, 0xcb, 0xb4, 0x8b, 0x74, 0x7c, 0x80, 0x77, 0x74,
    0x72, 0x68, 0x5d, 0x5a, 0x58, 0x56, 0x55, 0x57, 0x54, 0x54, 0x54, 0x55, 0x57, 0x59, 0x5b, 0x5d,
    0x61, 0x67, 0x68, 0x64, 0x5e, 0x5a, 0x56, 0x51, 0x5a, 0x5e, 0x64, 0x68, 0x6b, 0x68, 0x5e, 0x54,
    0x52, 0x51, 0x4f, 0x4e, 0x4f, 0x57, 0x68, 0x78, 0x6a, 0x5b, 0x4d, 0x4a, 0x4e, 0x50, 0x50, 0x50,
    0x4f, 0x50, 0x50, 0x4d, 0x5a, 0x85, 0xb4, 0xca, 0xb0, 0x8d, 0x6f, 0x68, 0x68, 0x63, 0x65, 0x6f,
    0x70, 0x72, 0x75, 0x78, 0x78, 0x76, 0x73, 0x71, 0x6d, 0x71, 0x75, 0x78, 0x79, 0x78, 0x77, 0x77,
    0x78, 0x77, 0x77, 0x79, 0x7c, 0x7a, 0x6e, 0x62, 0x68, 0x6c, 0x6c, 0x66, 0x60, 0x5f, 0x5f, 0x5e,
    0x66, 0x61, 0x5d, 0x5d, 0x61, 0x65, 0x63, 0x5f, 0x46, 0x3e, 0x49, 0x46, 0x4a, 0x5c, 0x5f, 0x64,
    0x60, 0x61, 0x62, 0x69, 0x70, 0x70, 0x79, 0x8c, 0x8e, 0x7e, 0x6b, 0x5e, 0x61, 0x71, 0x79, 0x72,
    0x7a, 0x6d, 0x6a, 0x67, 0x5c, 0x56, 0x4a, 0x37, 0x29, 0x27, 0x25, 0x20, 0x19, 0x14, 0x16, 0x1b,
    0x1e, 0x1d, 0x1e, 0x29, 0x34, 0x33, 0x35, 0x41, 0x46, 0x3c, 0x30, 0x2a, 0x34, 0x49, 0x5f, 0x6c,
    0x73, 0x7f, 0x83, 0x7e, 0x83, 0x8e, 0x8b, 0x7c, 0x7a, 0x6f, 0x68, 0x64, 0x59, 0x52, 0x62, 0x7a,
    0x73, 0x79, 0x7c, 0x7b, 0x7d, 0x7e, 0x77, 0x6d, 0x4f, 0x42, 0x31, 0x23, 0x1c, 0x1d, 0x25, 0x2d,
    0x34, 0x4a, 0x58, 0x51, 0x47, 0x49, 0x4f, 0x52, 0x4a, 0x48, 0x3f, 0x34, 0x2d, 0x2d, 0x2d, 0x2b,
    0x31, 0x3f, 0x48, 0x4b, 0x4e, 0x4b, 0x45, 0x46, 0x49, 0x45, 0x43, 0x43, 0x45, 0x45, 0x42, 0x3e,
    0x59, 0x59, 0x5a, 0x5a, 0x5b, 0x5b, 0x5b, 0x5b, 0x58, 0x59, 0x59, 0x59, 0x57, 0x57, 0x57, 0x58,
    0x57, 0x59, 0x5a, 0x58, 0x52, 0x49, 0x3d, 0x35, 0x33, 0x35, 0x39, 0x3d, 0x40, 0x43, 0x4d, 0x57,
    0x51, 0x46, 0x3e, 0x42, 0x4b, 0x4c, 0x42, 0x37, 0x38, 0x36, 0x31, 0x31, 0x38, 0x39, 0x3a, 0x40,
    0x3b, 0x3e, 0x4f, 0x65, 0x6b, 0x62, 0x5e, 0x64, 0x55, 0x58, 0x57, 0x54, 0x54, 0x56, 0x55, 0x51,
    0x40, 0x42, 0x56, 0x80, 0xa7, 0xaa, 0x89, 0x66, 0x49, 0x41, 0x4a, 0x66, 0x81, 0x90, 0x8c, 0x7f,
    0x62, 0x45, 0x35, 0x39, 0x3e, 0x45, 0x53, 0x5e, 0x62, 0x7f, 0x85, 0x7e, 0x68, 0x45, 0x3a, 0x3e,
    0x41, 0x40, 0x3c, 0x39, 0x39, 0x3e, 0x42, 0x44, 0x3e, 0x47, 0x44, 0x48, 0x5b, 0x83, 0x96, 0xb6,
    0xd8, 0xe8, 0xeb, 0xeb, 0xe1, 0xc7, 0xa1, 0x76, 0x6f, 0x72, 0x71, 0x6d, 0x6b, 0x6c, 0x6b, 0x67,
    0x76, 0x7d, 0x79, 0x6b, 0x65, 0x6e, 0x7a, 0x7e, 0x82, 0x6b, 0x5b, 0x5e, 0x5f, 0x52, 0x43, 0x3e,
    0x33, 0x34, 0x33, 0x34, 0x37, 0x33, 0x32, 0x38, 0x35, 0x34, 0x3b, 0x44, 0x43, 0x3c, 0x44, 0x54,
    0x65, 0x6f, 0x7d, 0x8d, 0x99, 0x98, 0x95, 0x9b, 0x8f, 0x7d, 0x69, 0x5f, 0x5f, 0x6c, 0x85, 0x9c,
    0x98, 0x9c, 0x9a, 0x98, 0x95, 0x86, 0x72, 0x69, 0x76, 0x7c, 0x7a, 0x77, 0x85, 0x99, 0x99, 0x8b,
    0x7e, 0x87, 0x8c, 0x83, 0x73, 0x66, 0x61, 0x5f, 0x5d, 0x74, 0xac, 0xda, 0xe6, 0xe5, 0xd5, 0xb6,
    0x85, 0x7e, 0x7c, 0x82, 0x87, 0x86, 0x86, 0x89, 0x83, 0x83, 0x81, 0x84, 0x87, 0x86, 0x8e, 0x9e,
    0xac, 0xac, 0x91, 0x84, 0x88, 0x84, 0x7f, 0x78, 0x7a, 0x7e, 0x83, 0x82, 0x86, 0x97, 0xa3, 0xa0,
    0x91, 0x8e, 0x85, 0x7d, 0x85, 0x95, 0x9a, 0x96, 0x85, 0x78, 0x6f, 0x6f, 0x72, 0x72, 0x5f, 0x45,
    0x37, 0x2f, 0x27, 0x2d, 0x45, 0x61, 0x6c, 0x6a, 0x56, 0x46, 0x40, 0x3e, 0x39, 0x3a, 0x3a, 0x2f,
    0x30, 0x3a, 0x43, 0x43, 0x42, 0x4b, 0x5f, 0x71, 0x79, 0x85, 0x83, 0x71, 0x63, 0x62, 0x60, 0x5a,
    0x5d, 0x5d, 0x5e, 0x61, 0x62, 0x5f, 0x58, 0x53, 0x52, 0x5d, 0x67, 0x70, 0x60, 0x5e, 0x5b, 0x78,
    0x8c, 0x81, 0x64, 0x41, 0x61, 0x88, 0xa0, 0x97, 0x7e, 0x63, 0x4d, 0x45, 0x44, 0x4d, 0x5d, 0x67,
    0x69, 0x6b, 0x6c, 0x6d, 0x6f, 0x6c, 0x60, 0x52, 0x46, 0x49, 0x49, 0x44, 0x41, 0x42, 0x43, 0x42,
    0x41, 0x43, 0x4b, 0x4d, 0x49, 0x4d, 0x57, 0x5b, 0x60, 0x66, 0x6d, 0x70, 0x6f, 0x6e, 0x6e, 0x70,
    0x70, 0x65, 0x5f, 0x62, 0x66, 0x65, 0x66, 0x69, 0x70, 0x69, 0x65, 0x65, 0x62, 0x5d, 0x5e, 0x62,
    0x70, 0x68, 0x64, 0x66, 0x63, 0x5d, 0x5d, 0x62, 0x5f, 0x5f, 0x55, 0x54, 0x5b, 0x53, 0x48, 0x4c,
    0x44, 0x40, 0x3b, 0x38, 0x38, 0x39, 0x3a, 0x3a, 0x3c, 0x39, 0x3c, 0x44, 0x48, 0x48, 0x4a, 0x50,
    0x5f, 0x70, 0x85, 0x98, 0xac, 0xc1, 0xcd, 0xd0, 0xd6, 0xb1, 0x8b, 0x7b, 0x77, 0x75, 0x75, 0x78,
    0x70, 0x67, 0x5e, 0x5a, 0x58, 0x57, 0x57, 0x57, 0x58, 0x55, 0x55, 0x57, 0x58, 0x58, 0x5b, 0x5f,
    0x6a, 0x72, 0x72, 0x6e, 0x6f, 0x69, 0x5d, 0x57, 0x5c, 0x5f, 0x64, 0x6b, 0x6e, 0x6a, 0x61, 0x5a,
    0x55, 0x55, 0x52, 0x4d, 0x4c, 0x55, 0x66, 0x74, 0x6a, 0x57, 0x49, 0x49, 0x4e, 0x4e, 0x4d, 0x4e,
    0x50, 0x4e, 0x4e, 0x4c, 0x59, 0x89, 0xb6, 0xc1, 0xaf, 0x8a, 0x70, 0x6c, 0x69, 0x66, 0x6c, 0x73,
    0x71, 0x74, 0x75, 0x74, 0x72, 0x71, 0x70, 0x6d, 0x6d, 0x72, 0x76, 0x78, 0x77, 0x76, 0x77, 0x79,
    0x77, 0x78, 0x79, 0x7b, 0x7d, 0x7a, 0x6f, 0x64, 0x67, 0x6b, 0x6d, 0x68, 0x5f, 0x5a, 0x5a, 0x5c,
    0x63, 0x5b, 0x56, 0x4e, 0x4c, 0x64, 0x7a, 0x77, 0x4d, 0x43, 0x3f, 0x40, 0x44, 0x52, 0x5f, 0x62,
    0x66, 0x65, 0x62, 0x62, 0x6a, 0x77, 0x83, 0x88, 0x88, 0x83, 0x70, 0x62, 0x63, 0x66, 0x75, 0x8e,
    0x91, 0x90, 0x7b, 0x62, 0x58, 0x55, 0x4a, 0x41, 0x36, 0x30, 0x2a, 0x22, 0x1c, 0x20, 0x23, 0x1b,
    0x1b, 0x19, 0x29, 0x40, 0x3a, 0x21, 0x1e, 0x30, 0x3b, 0x35, 0x2f, 0x36, 0x4b, 0x63, 0x6e, 0x6e,
    0x6c, 0x6a, 0x6d, 0x7b, 0x86, 0x7d, 0x70, 0x70, 0x6b, 0x54, 0x48, 0x42, 0x45, 0x68, 0x82, 0x75,
    0x77, 0x70, 0x6b, 0x6d, 0x6c, 0x61, 0x4f, 0x43, 0x23, 0x1b, 0x1a, 0x21, 0x24, 0x24, 0x32, 0x45,
    0x62, 0x5c, 0x52, 0x4c, 0x4b, 0x4b, 0x45, 0x3e, 0x37, 0x37, 0x34, 0x2d, 0x26, 0x27, 0x2f, 0x37,
    0x34, 0x38, 0x38, 0x32, 0x2e, 0x33, 0x39, 0x3d, 0x46, 0x43, 0x36, 0x29, 0x2a, 0x34, 0x35, 0x2d,
    0x57, 0x58, 0x58, 0x59, 0x5a, 0x5b, 0x5b, 0x5b, 0x5a, 0x5a, 0x5a, 0x5a, 0x58, 0x57, 0x57, 0x58,
    0x57, 0x58, 0x58, 0x57, 0x52, 0x4a, 0x3e, 0x34, 0x35, 0x38, 0x3c, 0x3d, 0x3f, 0x44, 0x4d, 0x53,
    0x4b, 0x42, 0x3c, 0x42, 0x4c, 0x50, 0x4a, 0x44, 0x3d, 0x3d, 0x3c, 0x41, 0x49, 0x43, 0x36, 0x31,
    0x39, 0x4d, 0x6c, 0x7e, 0x76, 0x5f, 0x54, 0x57, 0x57, 0x57, 0x53, 0x4d, 0x4b, 0x4a, 0x46, 0x41,
    0x48, 0x46, 0x4e, 0x6c, 0x99, 0xb0, 0x99, 0x75, 0x55, 0x46, 0x47, 0x56, 0x60, 0x68, 0x72, 0x78,
    0x5d, 0x43, 0x34, 0x36, 0x38, 0x3c, 0x42, 0x45, 0x45, 0x5c, 0x6f, 0x85, 0x7d, 0x52, 0x39, 0x35,
    0x3b, 0x3b, 0x3b, 0x39, 0x38, 0x39, 0x3b, 0x3d, 0x45, 0x47, 0x47, 0x50, 0x52, 0x5c, 0x78, 0xbd,
    0xe6, 0xf9, 0xf7, 0xea, 0xdb, 0xc6, 0xa1, 0x71, 0x5f, 0x63, 0x65, 0x64, 0x65, 0x66, 0x64, 0x5f,
    0x67, 0x7c, 0x83, 0x73, 0x66, 0x69, 0x6b, 0x66, 0x64, 0x61, 0x6c, 0x82, 0x87, 0x6f, 0x4c, 0x37,
    0x35, 0x35, 0x34, 0x34, 0x34, 0x30, 0x30, 0x38, 0x36, 0x38, 0x3f, 0x43, 0x3e, 0x41, 0x5c, 0x7c,
    0x81, 0x80, 0x74, 0x69, 0x71, 0x7d, 0x83, 0x87, 0x85, 0x6c, 0x56, 0x55, 0x64, 0x73, 0x7e, 0x85,
    0x8a, 0x90, 0x94, 0x9c, 0xa3, 0x97, 0x7f, 0x70, 0x6f, 0x71, 0x6f, 0x6c, 0x70, 0x79, 0x7a, 0x75,
    0x6d, 0x78, 0x82, 0x86, 0x88, 0x8a, 0x88, 0x84, 0x76, 0x80, 0xa7, 0xcf, 0xe0, 0xe4, 0xd4, 0xb4,
    0x87, 0x84, 0x83, 0x85, 0x87, 0x87, 0x87, 0x89, 0x8b, 0x89, 0x86, 0x88, 0x8c, 0x89, 0x8d, 0x9c,
    0xae, 0xae, 0x97, 0x8d, 0x8f, 0x85, 0x7d, 0x76, 0x7a, 0x81, 0x8e, 0x96, 0x99, 0x9e, 0x99, 0x8b,
    0x86, 0x89, 0x8a, 0x8c, 0x94, 0x9c, 0x99, 0x91, 0x81, 0x74, 0x6e, 0x6f, 0x72, 0x71, 0x60, 0x48,
    0x3a, 0x32, 0x2d, 0x33, 0x45, 0x55, 0x59, 0x55, 0x47, 0x41, 0x40, 0x41, 0x3b, 0x36, 0x33, 0x30,
    0x39, 0x3e, 0x43, 0x44, 0x45, 0x4e, 0x5d, 0x6a, 0x84, 0x8b, 0x84, 0x6d, 0x5e, 0x62, 0x6a, 0x6b,
    0x59, 0x5a, 0x5a, 0x5c, 0x5d, 0x5d, 0x5c, 0x5b, 0x59, 0x66, 0x76, 0x80, 0x6d, 0x62, 0x5e, 0x7e,
    0x94, 0x86, 0x64, 0x45, 0x5c, 0x86, 0x9b, 0x95, 0x65, 0x4e, 0x45, 0x4c, 0x50, 0x52, 0x5c, 0x65,
    0x6c, 0x6a, 0x66, 0x63, 0x63, 0x61, 0x59, 0x50, 0x49, 0x4a, 0x49, 0x44, 0x42, 0x45, 0x49, 0x49,
    0x4b, 0x4f, 0x5a, 0x62, 0x61, 0x63, 0x66, 0x64, 0x69, 0x6e, 0x75, 0x77, 0x74, 0x71, 0x6f, 0x6f,
    0x75, 0x6f, 0x67, 0x65, 0x68, 0x6d, 0x6d, 0x6a, 0x73, 0x6f, 0x6b, 0x68, 0x65, 0x63, 0x63, 0x66,
    0x6a, 0x63, 0x5f, 0x61, 0x60, 0x5c, 0x5d, 0x62, 0x5d, 0x5d, 0x57, 0x57, 0x5e, 0x59, 0x51, 0x55,
    0x50, 0x4b, 0x45, 0x41, 0x3f, 0x3d, 0x39, 0x36, 0x3d, 0x3c, 0x3c, 0x3d, 0x3e, 0x3e, 0x40, 0x44,
    0x4e, 0x5d, 0x70, 0x81, 0x92, 0xa7, 0xbc, 0xc9, 0xcd, 0xac, 0x87, 0x76, 0x75, 0x78, 0x7a, 0x7c,
    0x70, 0x67, 0x5e, 0x5a, 0x59, 0x58, 0x57, 0x58, 0x57, 0x56, 0x56, 0x58, 0x59, 0x5a, 0x5e, 0x62,
    0x6e, 0x74, 0x72, 0x6d, 0x6c, 0x66, 0x5b, 0x56, 0x5f, 0x63, 0x69, 0x6f, 0x6f, 0x68, 0x5d, 0x54,
    0x53, 0x55, 0x53, 0x4d, 0x4f, 0x5c, 0x69, 0x70, 0x68, 0x57, 0x4d, 0x51, 0x54, 0x4f, 0x4e, 0x52,
    0x4f, 0x4d, 0x4f, 0x4f, 0x5d, 0x8c, 0xb8, 0xc2, 0xab, 0x86, 0x6c, 0x69, 0x66, 0x64, 0x6a, 0x71,
    0x71, 0x73, 0x75, 0x73, 0x71, 0x70, 0x6d, 0x6a, 0x6c, 0x70, 0x76, 0x78, 0x77, 0x76, 0x76, 0x77,
    0x7a, 0x7a, 0x7a, 0x7c, 0x80, 0x81, 0x7b, 0x73, 0x6d, 0x6a, 0x68, 0x66, 0x61, 0x5b, 0x59, 0x5a,
    0x5f, 0x55, 0x4f, 0x4b, 0x51, 0x6e, 0x82, 0x7c, 0x4e, 0x3d, 0x35, 0x38, 0x3c, 0x46, 0x57, 0x61,
    0x5f, 0x5e, 0x5b, 0x5d, 0x66, 0x75, 0x80, 0x85, 0x81, 0x7a, 0x68, 0x5e, 0x60, 0x64, 0x74, 0x8e,
    0xa5, 0x95, 0x7a, 0x63, 0x58, 0x4e, 0x43, 0x3d, 0x43, 0x3f, 0x45, 0x48, 0x37, 0x2a, 0x32, 0x3f,
    0x46, 0x4a, 0x4d, 0x47, 0x38, 0x31, 0x3e, 0x51, 0x3e, 0x49, 0x58, 0x69, 0x75, 0x77, 0x6c, 0x5f,
    0x5a, 0x62, 0x70, 0x81, 0x87, 0x77, 0x5e, 0x51, 0x39, 0x41, 0x47, 0x4d, 0x5c, 0x73, 0x7b, 0x72,
    0x76, 0x6a, 0x5b, 0x50, 0x45, 0x38, 0x2b, 0x24, 0x32, 0x2c, 0x2b, 0x30, 0x33, 0x37, 0x44, 0x53,
    0x53, 0x4e, 0x47, 0x43, 0x44, 0x45, 0x41, 0x3a, 0x38, 0x32, 0x2a, 0x27, 0x28, 0x2b, 0x2e, 0x2f,
    0x45, 0x48, 0x46, 0x39, 0x2d, 0x29, 0x2c, 0x2f, 0x34, 0x34, 0x32, 0x31, 0x32, 0x31, 0x2d, 0x27,
    0x57, 0x57, 0x58, 0x59, 0x59, 0x5a, 0x5b, 0x5b, 0x5b, 0x5c, 0x5c, 0x5b, 0x59, 0x58, 0x58, 0x58,
    0x57, 0x57, 0x56, 0x55, 0x51, 0x48, 0x3d, 0x35, 0x3a, 0x3f, 0x42, 0x3f, 0x3f, 0x46, 0x4c, 0x4f,
    0x44, 0x3d, 0x3a, 0x42, 0x4c, 0x53, 0x55, 0x55, 0x54, 0x4f, 0x46, 0x47, 0x53, 0x53, 0x47, 0x3f,
    0x39, 0x4d, 0x64, 0x6a, 0x5a, 0x47, 0x3f, 0x41, 0x48, 0x45, 0x41, 0x3e, 0x3e, 0x3f, 0x3b, 0x36,
    0x43, 0x45, 0x46, 0x58, 0x87, 0xb2, 0xae, 0x91, 0x6e, 0x53, 0x42, 0x42, 0x42, 0x4a, 0x64, 0x7a,
    0x62, 0x4a, 0x39, 0x36, 0x39, 0x41, 0x4a, 0x4c, 0x5a, 0x71, 0x81, 0x8b, 0x76, 0x4a, 0x38, 0x39,
    0x37, 0x3a, 0x3d, 0x3d, 0x3a, 0x39, 0x3a, 0x3c, 0x3c, 0x44, 0x3f, 0x40, 0x3f, 0x47, 0x65, 0xb1,
    0xe4, 0xf9, 0xfb, 0xf4, 0xe8, 0xcf, 0xa4, 0x6f, 0x5d, 0x5e, 0x5f, 0x60, 0x63, 0x65, 0x63, 0x60,
    0x5e, 0x7c, 0x97, 0x95, 0x7f, 0x6b, 0x62, 0x61, 0x56, 0x54, 0x61, 0x7d, 0x8e, 0x7e, 0x5a, 0x3e,
    0x30, 0x31, 0x36, 0x3c, 0x3a, 0x34, 0x32, 0x35, 0x33, 0x36, 0x3d, 0x3f, 0x3b, 0x43, 0x65, 0x8a,
    0xae, 0xa1, 0x80, 0x63, 0x64, 0x7d, 0x99, 0xae, 0x92, 0x70, 0x50, 0x4e, 0x65, 0x81, 0x96, 0xa0,
    0x97, 0x92, 0x89, 0x88, 0x8e, 0x87, 0x75, 0x6a, 0x66, 0x66, 0x64, 0x5f, 0x5a, 0x57, 0x59, 0x5d,
    0x5e, 0x62, 0x62, 0x5f, 0x61, 0x64, 0x60, 0x57, 0x71, 0x72, 0x8e, 0xb3, 0xce, 0xdc, 0xd1, 0xb5,
    0x7c, 0x7f, 0x81, 0x83, 0x87, 0x8e, 0x92, 0x92, 0x8c, 0x8b, 0x88, 0x8a, 0x8f, 0x8d, 0x92, 0xa1,
    0xaf, 0xa8, 0x91, 0x8c, 0x8d, 0x84, 0x82, 0x7e, 0x88, 0x94, 0xa3, 0xa3, 0x96, 0x8e, 0x8d, 0x88,
    0x8f, 0x92, 0x95, 0x98, 0x9b, 0x9b, 0x93, 0x8b, 0x7d, 0x72, 0x6c, 0x6c, 0x6c, 0x69, 0x5c, 0x48,
    0x3b, 0x35, 0x33, 0x3b, 0x46, 0x4a, 0x47, 0x43, 0x3f, 0x41, 0x42, 0x41, 0x3b, 0x31, 0x33, 0x40,
    0x4f, 0x4e, 0x4c, 0x4b, 0x4e, 0x55, 0x5c, 0x61, 0x78, 0x85, 0x84, 0x6f, 0x60, 0x64, 0x6d, 0x6f,
    0x62, 0x61, 0x61, 0x62, 0x64, 0x68, 0x6b, 0x6d, 0x6a, 0x76, 0x88, 0x90, 0x7c, 0x69, 0x61, 0x7d,
    0x9a, 0x8d, 0x68, 0x4c, 0x51, 0x75, 0x84, 0x81, 0x63, 0x50, 0x50, 0x61, 0x67, 0x64, 0x68, 0x70,
    0x6d, 0x69, 0x61, 0x59, 0x55, 0x53, 0x4e, 0x49, 0x3f, 0x42, 0x44, 0x45, 0x48, 0x4d, 0x51, 0x53,
    0x5b, 0x5f, 0x6a, 0x73, 0x73, 0x74, 0x74, 0x6e, 0x72, 0x76, 0x7a, 0x7b, 0x78, 0x74, 0x71, 0x70,
    0x75, 0x73, 0x6c, 0x65, 0x68, 0x70, 0x70, 0x68, 0x6f, 0x6e, 0x6a, 0x65, 0x63, 0x64, 0x65, 0x64,
    0x63, 0x5d, 0x59, 0x5a, 0x5a, 0x58, 0x5a, 0x5e, 0x58, 0x59, 0x56, 0x57, 0x5c, 0x59, 0x55, 0x59,
    0x54, 0x51, 0x4d, 0x4c, 0x4b, 0x49, 0x45, 0x41, 0x38, 0x3a, 0x39, 0x36, 0x34, 0x37, 0x3a, 0x3b,
    0x43, 0x49, 0x51, 0x59, 0x66, 0x81, 0xa7, 0xc5, 0xc7, 0xae, 0x8d, 0x78, 0x74, 0x78, 0x7b, 0x7a,
    0x70, 0x68, 0x5f, 0x5b, 0x5b, 0x59, 0x59, 0x59, 0x57, 0x56, 0x57, 0x59, 0x5b, 0x5c, 0x61, 0x66,
    0x72, 0x77, 0x74, 0x6e, 0x6c, 0x66, 0x5c, 0x5a, 0x63, 0x68, 0x70, 0x76, 0x77, 0x6f, 0x63, 0x59,
    0x51, 0x55, 0x56, 0x55, 0x5a, 0x66, 0x6e, 0x70, 0x65, 0x59, 0x54, 0x58, 0x57, 0x51, 0x4f, 0x54,
    0x54, 0x4f, 0x50, 0x50, 0x61, 0x91, 0xbb, 0xc2, 0xa9, 0x84, 0x6b, 0x69, 0x67, 0x66, 0x6c, 0x72,
    0x72, 0x74, 0x75, 0x74, 0x72, 0x71, 0x6e, 0x6a, 0x6b, 0x70, 0x76, 0x78, 0x78, 0x76, 0x75, 0x75,
    0x7a, 0x79, 0x79, 0x7c, 0x83, 0x89, 0x89, 0x85, 0x72, 0x68, 0x62, 0x63, 0x61, 0x5a, 0x57, 0x59,
    0x5c, 0x50, 0x48, 0x48, 0x57, 0x7a, 0x8b, 0x7d, 0x51, 0x3c, 0x32, 0x36, 0x37, 0x3c, 0x4c, 0x59,
    0x5b, 0x59, 0x57, 0x5a, 0x65, 0x74, 0x7f, 0x82, 0x79, 0x6e, 0x5e, 0x58, 0x5c, 0x63, 0x79, 0x96,
    0x96, 0x8c, 0x7a, 0x63, 0x4b, 0x45, 0x5b, 0x78, 0x8f, 0x7a, 0x6b, 0x64, 0x5c, 0x66, 0x8b, 0xae,
    0xa0, 0x9c, 0x95, 0x8a, 0x7e, 0x75, 0x71, 0x70, 0x79, 0x80, 0x88, 0x8d, 0x8c, 0x86, 0x7b, 0x71,
    0x6e, 0x6d, 0x84, 0x9d, 0x86, 0x4d, 0x30, 0x39, 0x52, 0x61, 0x61, 0x60, 0x6b, 0x6f, 0x68, 0x68,
    0x5a, 0x52, 0x49, 0x45, 0x43, 0x43, 0x45, 0x48, 0x36, 0x33, 0x31, 0x31, 0x33, 0x38, 0x42, 0x4c,
    0x46, 0x44, 0x40, 0x3e, 0x3f, 0x40, 0x3b, 0x35, 0x2d, 0x2e, 0x2c, 0x26, 0x20, 0x20, 0x27, 0x2e,
    0x33, 0x3f, 0x48, 0x49, 0x46, 0x48, 0x4e, 0x54, 0x3c, 0x37, 0x37, 0x39, 0x34, 0x29, 0x21, 0x1f,
    0x58, 0x58, 0x58, 0x59, 0x59, 0x5a, 0x5b, 0x5b, 0x5d, 0x5d, 0x5d, 0x5b, 0x59, 0x57, 0x57, 0x57,
    0x55, 0x55, 0x56, 0x53, 0x4b, 0x41, 0x3a, 0x38, 0x40, 0x48, 0x49, 0x43, 0x42, 0x49, 0x4d, 0x4b,
    0x42, 0x3c, 0x3b, 0x42, 0x4b, 0x53, 0x5a, 0x61, 0x72, 0x68, 0x53, 0x48, 0x4d, 0x50, 0x48, 0x41,
    0x45, 0x4c, 0x50, 0x4c, 0x43, 0x3d, 0x3b, 0x3a, 0x3f, 0x3c, 0x3a, 0x3b, 0x3f, 0x42, 0x41, 0x3e,
    0x3d, 0x44, 0x4a, 0x56, 0x79, 0x9b, 0x9b, 0x85, 0x5b, 0x49, 0x42, 0x46, 0x43, 0x3e, 0x3f, 0x41,
    0x54, 0x45, 0x3c, 0x3a, 0x3b, 0x44, 0x4d, 0x4e, 0x66, 0x84, 0x8e, 0x81, 0x5f, 0x3f, 0x36, 0x32,
    0x34, 0x37, 0x3a, 0x3b, 0x38, 0x36, 0x38, 0x3d, 0x36, 0x43, 0x41, 0x42, 0x40, 0x47, 0x66, 0xb7,
    0xe8, 0xf2, 0xf2, 0xf6, 0xf2, 0xd7, 0xa6, 0x71, 0x58, 0x56, 0x54, 0x53, 0x56, 0x58, 0x58, 0x56,
    0x58, 0x6f, 0x98, 0xb3, 0xa0, 0x75, 0x63, 0x6c, 0x67, 0x57, 0x51, 0x64, 0x7f, 0x86, 0x75, 0x61,
    0x3c, 0x34, 0x35, 0x3b, 0x3a, 0x35, 0x34, 0x35, 0x37, 0x34, 0x34, 0x36, 0x3a, 0x4b, 0x6f, 0x91,
    0x8f, 0x8e, 0x86, 0x80, 0x83, 0x80, 0x75, 0x70, 0x73, 0x63, 0x56, 0x5a, 0x6f, 0x8d, 0xa9, 0xbc,
    0xc3, 0xb9, 0xa3, 0x90, 0x87, 0x7c, 0x70, 0x6d, 0x67, 0x6a, 0x68, 0x61, 0x59, 0x56, 0x5a, 0x5d,
    0x54, 0x56, 0x53, 0x4d, 0x51, 0x5c, 0x63, 0x62, 0x5b, 0x57, 0x63, 0x78, 0x8d, 0xa2, 0xa8, 0x9d,
    0x81, 0x84, 0x84, 0x83, 0x87, 0x8d, 0x8e, 0x89, 0x8a, 0x8a, 0x88, 0x8b, 0x8f, 0x90, 0x9c, 0xb0,
    0xbb, 0xaa, 0x90, 0x8e, 0x91, 0x8f, 0x95, 0x95, 0x9b, 0x9c, 0x9d, 0x93, 0x83, 0x81, 0x8c, 0x92,
    0x9a, 0x96, 0x92, 0x8f, 0x90, 0x90, 0x8d, 0x8a, 0x7c, 0x70, 0x69, 0x65, 0x60, 0x5b, 0x51, 0x43,
    0x38, 0x33, 0x35, 0x40, 0x47, 0x46, 0x42, 0x41, 0x42, 0x46, 0x41, 0x3b, 0x37, 0x31, 0x3f, 0x5d,
    0x6c, 0x63, 0x59, 0x57, 0x5a, 0x5e, 0x5f, 0x5d, 0x69, 0x7a, 0x80, 0x6f, 0x61, 0x64, 0x6d, 0x6f,
    0x63, 0x60, 0x5d, 0x5e, 0x63, 0x68, 0x6b, 0x6c, 0x70, 0x7d, 0x90, 0x95, 0x8b, 0x7a, 0x6a, 0x75,
    0x79, 0x77, 0x63, 0x58, 0x51, 0x71, 0x81, 0x87, 0x70, 0x61, 0x60, 0x6b, 0x6f, 0x6e, 0x70, 0x72,
    0x68, 0x64, 0x5b, 0x52, 0x4c, 0x48, 0x46, 0x44, 0x43, 0x49, 0x51, 0x5a, 0x61, 0x66, 0x69, 0x6a,
    0x6d, 0x6e, 0x76, 0x7a, 0x77, 0x78, 0x7a, 0x77, 0x76, 0x78, 0x79, 0x79, 0x77, 0x74, 0x73, 0x72,
    0x73, 0x70, 0x6a, 0x65, 0x67, 0x6c, 0x6a, 0x65, 0x65, 0x67, 0x64, 0x5e, 0x5d, 0x61, 0x63, 0x60,
    0x5c, 0x57, 0x52, 0x51, 0x52, 0x53, 0x54, 0x55, 0x56, 0x57, 0x56, 0x55, 0x57, 0x55, 0x53, 0x55,
    0x4e, 0x4e, 0x4e, 0x4e, 0x4d, 0x4c, 0x4c, 0x4b, 0x3d, 0x41, 0x40, 0x39, 0x36, 0x38, 0x3a, 0x38,
    0x3d, 0x3c, 0x3d, 0x40, 0x47, 0x5b, 0x7f, 0x9f, 0xab, 0xa1, 0x8e, 0x7c, 0x75, 0x78, 0x79, 0x76,
    0x70, 0x68, 0x5f, 0x5c, 0x5c, 0x5b, 0x5a, 0x5a, 0x58, 0x58, 0x58, 0x5a, 0x5b, 0x5d, 0x62, 0x68,
    0x73, 0x78, 0x77, 0x73, 0x71, 0x69, 0x61, 0x60, 0x63, 0x66, 0x6c, 0x73, 0x76, 0x6f, 0x61, 0x56,
    0x54, 0x56, 0x5b, 0x62, 0x67, 0x68, 0x6b, 0x6f, 0x77, 0x76, 0x73, 0x70, 0x6e, 0x6d, 0x6d, 0x6d,
    0x64, 0x57, 0x4f, 0x4f, 0x64, 0x96, 0xbd, 0xc0, 0xa5, 0x81, 0x68, 0x68, 0x68, 0x67, 0x6d, 0x72,
    0x74, 0x76, 0x78, 0x77, 0x76, 0x76, 0x72, 0x6e, 0x6e, 0x71, 0x75, 0x77, 0x77, 0x76, 0x75, 0x75,
    0x77, 0x77, 0x77, 0x7a, 0x82, 0x8b, 0x8d, 0x8a, 0x71, 0x65, 0x5e, 0x62, 0x60, 0x57, 0x54, 0x5a,
    0x5c, 0x50, 0x48, 0x47, 0x5a, 0x7f, 0x8d, 0x7a, 0x4e, 0x3f, 0x38, 0x3a, 0x38, 0x3c, 0x47, 0x4e,
    0x59, 0x58, 0x56, 0x59, 0x65, 0x73, 0x7c, 0x7e, 0x76, 0x68, 0x5a, 0x56, 0x59, 0x62, 0x7a, 0x94,
    0x92, 0x7e, 0x6c, 0x5e, 0x54, 0x59, 0x73, 0x8b, 0x87, 0x79, 0x6f, 0x6e, 0x74, 0x87, 0x9a, 0xa1,
    0xa3, 0x92, 0x87, 0x8c, 0x90, 0x89, 0x83, 0x82, 0x92, 0x94, 0x97, 0x99, 0x9c, 0x9d, 0x9d, 0x9d,
    0x92, 0x8a, 0x76, 0x53, 0x37, 0x3a, 0x54, 0x66, 0x76, 0x6f, 0x65, 0x5e, 0x5b, 0x53, 0x4c, 0x4d,
    0x49, 0x41, 0x3a, 0x35, 0x30, 0x2b, 0x28, 0x29, 0x2c, 0x2b, 0x29, 0x27, 0x2a, 0x32, 0x3b, 0x3f,
    0x42, 0x42, 0x3f, 0x3d, 0x3d, 0x3d, 0x37, 0x31, 0x26, 0x2a, 0x2a, 0x22, 0x19, 0x16, 0x1e, 0x27,
    0x2f, 0x3a, 0x45, 0x48, 0x45, 0x40, 0x3e, 0x3d, 0x3b, 0x33, 0x2a, 0x26, 0x21, 0x1b, 0x18, 0x17,
    0x59, 0x59, 0x59, 0x59, 0x59, 0x5a, 0x5a, 0x5b, 0x5d, 0x5d, 0x5d, 0x5b, 0x59, 0x57, 0x56, 0x57,
    0x52, 0x54, 0x54, 0x50, 0x44, 0x39, 0x39, 0x3e, 0x48, 0x4f, 0x4f, 0x48, 0x46, 0x4c, 0x4e, 0x4b,
    0x44, 0x3e, 0x3d, 0x43, 0x49, 0x50, 0x5b, 0x66, 0x6d, 0x69, 0x57, 0x48, 0x4a, 0x4c, 0x45, 0x40,
    0x41, 0x46, 0x49, 0x47, 0x44, 0x41, 0x3b, 0x35, 0x39, 0x38, 0x37, 0x39, 0x3c, 0x3e, 0x3e, 0x3e,
    0x4f, 0x57, 0x63, 0x73, 0x86, 0x8b, 0x76, 0x5c, 0x56, 0x4a, 0x42, 0x3e, 0x3e, 0x44, 0x4a, 0x48,
    0x40, 0x3d, 0x41, 0x45, 0x43, 0x43, 0x44, 0x42, 0x48, 0x64, 0x75, 0x73, 0x5d, 0x46, 0x3c, 0x2c,
    0x37, 0x37, 0x38, 0x38, 0x34, 0x31, 0x35, 0x3b, 0x42, 0x48, 0x51, 0x60, 0x52, 0x45, 0x64, 0xc2,
    0xe0, 0xe5, 0xd8, 0xd6, 0xdd, 0xd4, 0xaa, 0x6f, 0x55, 0x53, 0x52, 0x52, 0x53, 0x53, 0x51, 0x51,
    0x50, 0x5b, 0x80, 0xaa, 0xac, 0x89, 0x6d, 0x6a, 0x70, 0x63, 0x59, 0x5e, 0x72, 0x81, 0x80, 0x77,
    0x53, 0x3c, 0x30, 0x31, 0x2f, 0x30, 0x34, 0x33, 0x3c, 0x36, 0x32, 0x33, 0x3d, 0x59, 0x86, 0xac,
    0xb5, 0xae, 0x95, 0x81, 0x86, 0x8d, 0x7e, 0x6a, 0x4f, 0x50, 0x54, 0x5c, 0x6c, 0x88, 0xaa, 0xc4,
    0xcb, 0xcf, 0xc6, 0xb2, 0x9a, 0x80, 0x70, 0x6e, 0x6f, 0x76, 0x76, 0x6e, 0x6c, 0x73, 0x77, 0x75,
    0x80, 0x81, 0x7b, 0x6c, 0x5f, 0x60, 0x67, 0x6d, 0x70, 0x69, 0x62, 0x59, 0x58, 0x66, 0x77, 0x80,
    0x80, 0x83, 0x84, 0x85, 0x8d, 0x95, 0x94, 0x8d, 0x8f, 0x91, 0x8f, 0x8f, 0x90, 0x93, 0xa4, 0xbd,
    0xbe, 0xac, 0x97, 0x98, 0x9b, 0x98, 0x9c, 0x96, 0x98, 0x8e, 0x87, 0x84, 0x85, 0x8e, 0x93, 0x8d,
    0x89, 0x86, 0x82, 0x80, 0x85, 0x8c, 0x8e, 0x8c, 0x7b, 0x6f, 0x66, 0x5e, 0x53, 0x4d, 0x48, 0x40,
    0x36, 0x32, 0x34, 0x3e, 0x46, 0x46, 0x45, 0x46, 0x3f, 0x42, 0x3a, 0x32, 0x33, 0x38, 0x50, 0x74,
    0x78, 0x6d, 0x61, 0x5e, 0x63, 0x67, 0x64, 0x5f, 0x69, 0x79, 0x7c, 0x6b, 0x5f, 0x64, 0x6e, 0x71,
    0x5f, 0x5a, 0x57, 0x59, 0x60, 0x64, 0x63, 0x5f, 0x64, 0x76, 0x8f, 0x95, 0x99, 0x8e, 0x74, 0x6b,
    0x52, 0x5a, 0x59, 0x5a, 0x4c, 0x63, 0x76, 0x81, 0x76, 0x6e, 0x6a, 0x6c, 0x6d, 0x72, 0x74, 0x6d,
    0x60, 0x5a, 0x52, 0x4a, 0x47, 0x47, 0x4b, 0x4e, 0x57, 0x5b, 0x61, 0x69, 0x6f, 0x72, 0x73, 0x73,
    0x75, 0x77, 0x7e, 0x7f, 0x78, 0x77, 0x7c, 0x7d, 0x7b, 0x79, 0x77, 0x75, 0x74, 0x73, 0x72, 0x71,
    0x74, 0x6d, 0x69, 0x68, 0x66, 0x61, 0x5f, 0x5f, 0x5d, 0x60, 0x5f, 0x5a, 0x5b, 0x60, 0x61, 0x5e,
    0x55, 0x52, 0x4e, 0x4c, 0x4e, 0x52, 0x53, 0x52, 0x55, 0x54, 0x54, 0x53, 0x51, 0x52, 0x52, 0x50,
    0x49, 0x4b, 0x4b, 0x47, 0x42, 0x41, 0x44, 0x48, 0x4a, 0x4e, 0x4c, 0x43, 0x3d, 0x3c, 0x39, 0x34,
    0x36, 0x36, 0x3a, 0x3e, 0x3e, 0x41, 0x4d, 0x5c, 0x6e, 0x77, 0x7d, 0x7b, 0x7a, 0x7b, 0x7a, 0x75,
    0x70, 0x68, 0x60, 0x5d, 0x5d, 0x5c, 0x5b, 0x5b, 0x5a, 0x59, 0x5a, 0x5b, 0x5b, 0x5d, 0x62, 0x69,
    0x75, 0x7a, 0x7a, 0x78, 0x75, 0x6b, 0x61, 0x61, 0x69, 0x69, 0x6d, 0x72, 0x75, 0x6f, 0x61, 0x55,
    0x57, 0x56, 0x5f, 0x6f, 0x71, 0x69, 0x6c, 0x77, 0x8a, 0x92, 0x91, 0x88, 0x87, 0x90, 0x93, 0x8d,
    0x77, 0x60, 0x4d, 0x4b, 0x65, 0x9b, 0xbf, 0xbd, 0x9f, 0x7b, 0x63, 0x64, 0x66, 0x66, 0x6b, 0x70,
    0x75, 0x77, 0x79, 0x79, 0x7a, 0x7a, 0x77, 0x72, 0x73, 0x74, 0x75, 0x75, 0x75, 0x76, 0x76, 0x77,
    0x75, 0x76, 0x77, 0x79, 0x7f, 0x84, 0x83, 0x80, 0x6c, 0x63, 0x5f, 0x62, 0x5e, 0x54, 0x54, 0x5b,
    0x5a, 0x51, 0x4b, 0x4a, 0x5c, 0x82, 0x8e, 0x76, 0x47, 0x40, 0x3d, 0x3a, 0x39, 0x44, 0x4f, 0x4f,
    0x59, 0x59, 0x58, 0x5b, 0x65, 0x72, 0x7a, 0x7c, 0x7c, 0x6f, 0x64, 0x5e, 0x59, 0x5d, 0x6c, 0x7b,
    0x78, 0x6a, 0x66, 0x67, 0x64, 0x6d, 0x7e, 0x87, 0x86, 0x83, 0x7f, 0x73, 0x5e, 0x4d, 0x3b, 0x29,
    0x39, 0x3b, 0x4a, 0x63, 0x76, 0x7d, 0x83, 0x8a, 0x8a, 0x82, 0x77, 0x72, 0x74, 0x79, 0x7f, 0x83,
    0x79, 0x69, 0x53, 0x3d, 0x39, 0x51, 0x67, 0x67, 0x5d, 0x45, 0x46, 0x52, 0x4a, 0x41, 0x3f, 0x38,
    0x32, 0x2e, 0x2b, 0x2d, 0x2e, 0x2c, 0x29, 0x27, 0x24, 0x25, 0x23, 0x22, 0x28, 0x33, 0x3a, 0x3c,
    0x3a, 0x3c, 0x3b, 0x39, 0x38, 0x36, 0x31, 0x2b, 0x29, 0x24, 0x1d, 0x19, 0x18, 0x18, 0x18, 0x16,
    0x13, 0x19, 0x24, 0x2d, 0x32, 0x33, 0x31, 0x31, 0x29, 0x23, 0x1a, 0x14, 0x16, 0x1c, 0x1e, 0x1c,
    0x59, 0x58, 0x58, 0x58, 0x58, 0x59, 0x5a, 0x5b, 0x5d, 0x5d, 0x5d, 0x5b, 0x59, 0x57, 0x57, 0x57,
    0x52, 0x51, 0x50, 0x4a, 0x3e, 0x36, 0x3b, 0x45, 0x4f, 0x53, 0x53, 0x4e, 0x4c, 0x4e, 0x4e, 0x4c,
    0x46, 0x40, 0x3e, 0x43, 0x48, 0x4e, 0x5b, 0x69, 0x72, 0x72, 0x60, 0x4a, 0x46, 0x49, 0x48, 0x46,
    0x37, 0x3e, 0x45, 0x45, 0x41, 0x3c, 0x38, 0x35, 0x34, 0x35, 0x39, 0x3b, 0x3b, 0x39, 0x3c, 0x40,
    0x52, 0x58, 0x68, 0x7f, 0x8e, 0x84, 0x65, 0x49, 0x43, 0x45, 0x4c, 0x4d, 0x4b, 0x4e, 0x4e, 0x46,
    0x43, 0x3c, 0x3e, 0x42, 0x3d, 0x3b, 0x40, 0x42, 0x3d, 0x4c, 0x5a, 0x5e, 0x49, 0x36, 0x3a, 0x38,
    0x43, 0x41, 0x40, 0x41, 0x3c, 0x37, 0x39, 0x3f, 0x47, 0x4b, 0x51, 0x59, 0x4c, 0x49, 0x58, 0x8f,
    0x9d, 0xad, 0xa4, 0xa1, 0xb6, 0xc7, 0xaa, 0x6d, 0x57, 0x57, 0x59, 0x5c, 0x5c, 0x58, 0x56, 0x56,
    0x55, 0x58, 0x6c, 0x8d, 0xa4, 0x9b, 0x7b, 0x61, 0x5d, 0x5d, 0x57, 0x50, 0x53, 0x5e, 0x64, 0x63,
    0x53, 0x36, 0x2c, 0x32, 0x31, 0x31, 0x32, 0x2b, 0x30, 0x34, 0x3a, 0x3f, 0x46, 0x5b, 0x83, 0xa6,
    0xb8, 0xc7, 0xb2, 0x88, 0x7a, 0x80, 0x73, 0x5b, 0x49, 0x4e, 0x52, 0x55, 0x5d, 0x72, 0x91, 0xa9,
    0xb7, 0xc7, 0xcb, 0xb9, 0x99, 0x76, 0x61, 0x5f, 0x6b, 0x74, 0x76, 0x74, 0x79, 0x86, 0x8b, 0x87,
    0x82, 0x88, 0x89, 0x80, 0x70, 0x66, 0x6c, 0x77, 0x84, 0x88, 0x84, 0x74, 0x65, 0x62, 0x6b, 0x74,
    0x78, 0x7b, 0x80, 0x87, 0x91, 0x98, 0x98, 0x94, 0x92, 0x94, 0x92, 0x91, 0x8e, 0x8d, 0x9b, 0xb3,
    0xb6, 0xad, 0xa5, 0xab, 0xa9, 0xa1, 0x9d, 0x8e, 0x8a, 0x8e, 0x95, 0x98, 0x99, 0x9d, 0x96, 0x86,
    0x7f, 0x82, 0x83, 0x84, 0x8d, 0x97, 0x94, 0x8b, 0x7c, 0x71, 0x68, 0x5e, 0x4e, 0x46, 0x44, 0x42,
    0x38, 0x35, 0x36, 0x3d, 0x44, 0x47, 0x46, 0x46, 0x35, 0x35, 0x30, 0x2d, 0x33, 0x42, 0x5b, 0x74,
    0x6d, 0x65, 0x5f, 0x61, 0x69, 0x6d, 0x69, 0x64, 0x67, 0x77, 0x7c, 0x6d, 0x62, 0x65, 0x68, 0x66,
    0x5a, 0x57, 0x55, 0x59, 0x5f, 0x60, 0x5c, 0x56, 0x5d, 0x72, 0x94, 0x99, 0xa1, 0x91, 0x76, 0x6a,
    0x65, 0x64, 0x68, 0x66, 0x55, 0x5f, 0x73, 0x7c, 0x67, 0x64, 0x62, 0x60, 0x62, 0x6c, 0x6c, 0x60,
    0x59, 0x52, 0x4a, 0x48, 0x4a, 0x51, 0x5a, 0x62, 0x6f, 0x6c, 0x6b, 0x6c, 0x6d, 0x6d, 0x6e, 0x70,
    0x75, 0x78, 0x80, 0x81, 0x78, 0x76, 0x7b, 0x7b, 0x80, 0x7c, 0x77, 0x74, 0x73, 0x73, 0x71, 0x70,
    0x72, 0x6d, 0x6b, 0x6b, 0x65, 0x5a, 0x56, 0x59, 0x5a, 0x5c, 0x5c, 0x5c, 0x5d, 0x5f, 0x5f, 0x5e,
    0x56, 0x55, 0x52, 0x4f, 0x52, 0x58, 0x59, 0x55, 0x53, 0x4f, 0x50, 0x50, 0x4c, 0x50, 0x52, 0x4b,
    0x47, 0x48, 0x47, 0x43, 0x3e, 0x3e, 0x43, 0x49, 0x47, 0x48, 0x47, 0x43, 0x40, 0x3e, 0x3a, 0x36,
    0x38, 0x37, 0x39, 0x3b, 0x3a, 0x39, 0x3a, 0x3c, 0x3f, 0x52, 0x66, 0x72, 0x78, 0x7a, 0x78, 0x74,
    0x6f, 0x67, 0x60, 0x5d, 0x5e, 0x5d, 0x5c, 0x5c, 0x5b, 0x5b, 0x5b, 0x5c, 0x5c, 0x5d, 0x64, 0x6b,
    0x79, 0x7e, 0x7d, 0x7a, 0x76, 0x69, 0x5f, 0x60, 0x67, 0x69, 0x6e, 0x73, 0x75, 0x6e, 0x62, 0x59,
    0x56, 0x55, 0x60, 0x74, 0x7a, 0x76, 0x7c, 0x8c, 0x8e, 0x97, 0x97, 0x8e, 0x91, 0x9f, 0xa3, 0x9b,
    0x7d, 0x62, 0x4b, 0x4a, 0x68, 0x9f, 0xc0, 0xba, 0x9c, 0x78, 0x61, 0x64, 0x67, 0x68, 0x6d, 0x72,
    0x75, 0x77, 0x78, 0x7a, 0x7c, 0x7d, 0x79, 0x73, 0x76, 0x75, 0x74, 0x74, 0x74, 0x75, 0x77, 0x78,
    0x76, 0x78, 0x79, 0x7a, 0x7c, 0x7c, 0x78, 0x73, 0x6a, 0x66, 0x65, 0x65, 0x5f, 0x56, 0x55, 0x5c,
    0x57, 0x51, 0x4d, 0x4c, 0x61, 0x88, 0x90, 0x75, 0x44, 0x42, 0x40, 0x3c, 0x3d, 0x4d, 0x5a, 0x59,
    0x5b, 0x5c, 0x5e, 0x61, 0x69, 0x75, 0x7d, 0x80, 0x85, 0x7b, 0x74, 0x6b, 0x60, 0x63, 0x6c, 0x6f,
    0x6d, 0x60, 0x64, 0x6a, 0x64, 0x6c, 0x80, 0x88, 0x80, 0x79, 0x71, 0x5f, 0x44, 0x39, 0x45, 0x53,
    0x53, 0x5c, 0x65, 0x6a, 0x6b, 0x66, 0x5a, 0x4e, 0x42, 0x3b, 0x36, 0x3b, 0x47, 0x54, 0x5f, 0x66,
    0x6c, 0x4c, 0x41, 0x4c, 0x4f, 0x57, 0x66, 0x6d, 0x40, 0x28, 0x32, 0x44, 0x3a, 0x35, 0x38, 0x2b,
    0x2e, 0x29, 0x26, 0x27, 0x27, 0x25, 0x22, 0x20, 0x22, 0x20, 0x1d, 0x1c, 0x21, 0x28, 0x2c, 0x2c,
    0x2c, 0x2f, 0x31, 0x2f, 0x2d, 0x2b, 0x27, 0x22, 0x21, 0x1e, 0x19, 0x16, 0x14, 0x14, 0x13, 0x12,
    0x1b, 0x19, 0x1a, 0x1e, 0x21, 0x20, 0x20, 0x20, 0x1d, 0x1c, 0x18, 0x14, 0x16, 0x1d, 0x1f, 0x1c,
    0x56, 0x55, 0x55, 0x55, 0x57, 0x59, 0x5a, 0x5c, 0x5d, 0x5e, 0x5d, 0x5c, 0x5a, 0x58, 0x58, 0x59,
    0x54, 0x4e, 0x49, 0x44, 0x3d, 0x39, 0x41, 0x4d, 0x54, 0x54, 0x54, 0x52, 0x50, 0x4e, 0x4e, 0x4d,
    0x46, 0x3f, 0x3e, 0x44, 0x49, 0x4f, 0x5d, 0x6d, 0x90, 0x8c, 0x70, 0x4c, 0x3e, 0x3e, 0x3e, 0x3d,
    0x3b, 0x3d, 0x40, 0x42, 0x40, 0x3e, 0x3f, 0x41, 0x3a, 0x3f, 0x46, 0x48, 0x43, 0x3e, 0x42, 0x4a,
    0x43, 0x4a, 0x57, 0x65, 0x6c, 0x69, 0x5c, 0x52, 0x56, 0x4b, 0x45, 0x47, 0x4a, 0x53, 0x59, 0x56,
    0x5c, 0x47, 0x3a, 0x36, 0x30, 0x30, 0x3b, 0x44, 0x48, 0x53, 0x5b, 0x5b, 0x43, 0x37, 0x44, 0x44,
    0x46, 0x44, 0x47, 0x4b, 0x48, 0x41, 0x3e, 0x40, 0x42, 0x43, 0x43, 0x41, 0x3b, 0x4e, 0x4b, 0x4e,
    0x5a, 0x6b, 0x6c, 0x75, 0x8f, 0xa2, 0x95, 0x6d, 0x54, 0x53, 0x54, 0x55, 0x53, 0x4f, 0x50, 0x54,
    0x58, 0x59, 0x61, 0x72, 0x84, 0x85, 0x70, 0x59, 0x4c, 0x51, 0x4f, 0x4a, 0x50, 0x5e, 0x65, 0x62,
    0x50, 0x33, 0x2d, 0x36, 0x33, 0x30, 0x30, 0x26, 0x26, 0x2f, 0x3c, 0x46, 0x4c, 0x54, 0x68, 0x7a,
    0x97, 0xaa, 0x9e, 0x77, 0x5f, 0x59, 0x50, 0x43, 0x47, 0x55, 0x60, 0x60, 0x5c, 0x63, 0x77, 0x89,
    0xb7, 0xc7, 0xc9, 0xb4, 0x92, 0x6c, 0x58, 0x57, 0x5b, 0x60, 0x66, 0x6c, 0x76, 0x81, 0x87, 0x88,
    0x8a, 0x8c, 0x90, 0x8f, 0x7e, 0x6c, 0x6a, 0x75, 0x7d, 0x8c, 0x94, 0x90, 0x87, 0x7b, 0x73, 0x73,
    0x7e, 0x7f, 0x83, 0x86, 0x84, 0x7f, 0x7a, 0x79, 0x7f, 0x81, 0x82, 0x84, 0x83, 0x7d, 0x82, 0x93,
    0xa1, 0xa3, 0xa7, 0xaf, 0xa9, 0xa6, 0xa8, 0x98, 0x90, 0xa2, 0xb1, 0xac, 0xa1, 0xa1, 0x9d, 0x8f,
    0x91, 0x97, 0x96, 0x94, 0x9c, 0xa7, 0xa0, 0x8e, 0x83, 0x79, 0x71, 0x65, 0x51, 0x44, 0x43, 0x42,
    0x3b, 0x3b, 0x3c, 0x3f, 0x45, 0x49, 0x46, 0x40, 0x32, 0x2d, 0x2c, 0x2d, 0x36, 0x4c, 0x5f, 0x66,
    0x5a, 0x5a, 0x5d, 0x65, 0x6e, 0x71, 0x6e, 0x69, 0x66, 0x74, 0x78, 0x6c, 0x65, 0x67, 0x66, 0x5f,
    0x53, 0x54, 0x56, 0x59, 0x5c, 0x5b, 0x57, 0x54, 0x5d, 0x73, 0x9a, 0x9d, 0x9c, 0x84, 0x7a, 0x82,
    0x7c, 0x66, 0x5f, 0x54, 0x48, 0x4d, 0x63, 0x67, 0x56, 0x50, 0x50, 0x51, 0x54, 0x5b, 0x5b, 0x52,
    0x55, 0x51, 0x4f, 0x54, 0x5b, 0x62, 0x6a, 0x70, 0x7e, 0x78, 0x74, 0x75, 0x76, 0x75, 0x77, 0x79,
    0x7a, 0x7a, 0x7f, 0x7f, 0x76, 0x75, 0x78, 0x77, 0x7f, 0x7b, 0x77, 0x76, 0x77, 0x76, 0x73, 0x70,
    0x6f, 0x72, 0x74, 0x71, 0x69, 0x60, 0x5d, 0x5e, 0x5f, 0x5f, 0x61, 0x64, 0x65, 0x63, 0x62, 0x63,
    0x61, 0x61, 0x5e, 0x59, 0x5c, 0x62, 0x60, 0x59, 0x57, 0x51, 0x52, 0x51, 0x4d, 0x52, 0x54, 0x4a,
    0x48, 0x47, 0x46, 0x44, 0x43, 0x45, 0x49, 0x4c, 0x40, 0x3c, 0x3b, 0x3e, 0x40, 0x3e, 0x3c, 0x3b,
    0x3e, 0x3c, 0x38, 0x34, 0x34, 0x38, 0x3b, 0x3b, 0x38, 0x41, 0x4e, 0x5a, 0x65, 0x6d, 0x72, 0x73,
    0x6e, 0x66, 0x5f, 0x5d, 0x5e, 0x5d, 0x5c, 0x5c, 0x5b, 0x5b, 0x5d, 0x5e, 0x5d, 0x5f, 0x67, 0x6f,
    0x7d, 0x80, 0x7e, 0x7b, 0x76, 0x69, 0x60, 0x63, 0x68, 0x70, 0x7a, 0x7c, 0x76, 0x6b, 0x61, 0x5b,
    0x5d, 0x5c, 0x61, 0x6c, 0x74, 0x7a, 0x84, 0x8e, 0x89, 0x8b, 0x89, 0x88, 0x8e, 0x97, 0x98, 0x93,
    0x75, 0x5d, 0x4a, 0x4d, 0x6c, 0xa2, 0xc1, 0xba, 0x9b, 0x77, 0x61, 0x65, 0x6a, 0x6b, 0x70, 0x74,
    0x76, 0x78, 0x79, 0x7b, 0x7d, 0x7e, 0x79, 0x73, 0x75, 0x75, 0x74, 0x74, 0x75, 0x75, 0x75, 0x75,
    0x75, 0x77, 0x7a, 0x7b, 0x7d, 0x7c, 0x77, 0x71, 0x6d, 0x6d, 0x6c, 0x6a, 0x63, 0x5c, 0x59, 0x5a,
    0x57, 0x52, 0x4e, 0x4f, 0x66, 0x8f, 0x93, 0x72, 0x46, 0x42, 0x43, 0x42, 0x41, 0x4a, 0x54, 0x54,
    0x57, 0x5b, 0x5f, 0x63, 0x6b, 0x77, 0x81, 0x86, 0x86, 0x7f, 0x7c, 0x74, 0x71, 0x83, 0x96, 0x97,
    0x9a, 0x6d, 0x57, 0x5d, 0x5c, 0x5d, 0x61, 0x5c, 0x6b, 0x6a, 0x69, 0x5f, 0x53, 0x57, 0x67, 0x70,
    0x58, 0x57, 0x54, 0x4c, 0x44, 0x3e, 0x3c, 0x3b, 0x5b, 0x5c, 0x62, 0x6c, 0x71, 0x6b, 0x62, 0x5d,
    0x49, 0x4f, 0x56, 0x51, 0x52, 0x6c, 0x73, 0x57, 0x33, 0x32, 0x38, 0x37, 0x2e, 0x2e, 0x30, 0x29,
    0x2f, 0x2d, 0x2d, 0x2f, 0x2e, 0x2c, 0x2c, 0x2d, 0x21, 0x1c, 0x17, 0x17, 0x19, 0x1c, 0x1d, 0x1d,
    0x23, 0x27, 0x29, 0x27, 0x25, 0x22, 0x1f, 0x1b, 0x16, 0x18, 0x17, 0x15, 0x11, 0x10, 0x13, 0x16,
    0x15, 0x12, 0x13, 0x17, 0x19, 0x1a, 0x1c, 0x1f, 0x19, 0x17, 0x16, 0x17, 0x19, 0x1e, 0x27, 0x30,
    0x52, 0x52, 0x53, 0x54, 0x56, 0x58, 0x5b, 0x5c, 0x5e, 0x5e, 0x5e, 0x5d, 0x5b, 0x59, 0x59, 0x5a,
    0x56, 0x4c, 0x43, 0x40, 0x3d, 0x3d, 0x46, 0x52, 0x56, 0x54, 0x53, 0x54, 0x52, 0x4e, 0x4d, 0x4e,
    0x45, 0x3e, 0x3d, 0x45, 0x4b, 0x51, 0x60, 0x71, 0x86, 0x84, 0x6b, 0x4a, 0x3d, 0x3e, 0x3e, 0x3b,
    0x3b, 0x36, 0x35, 0x3c, 0x43, 0x42, 0x40, 0x3f, 0x3a, 0x41, 0x49, 0x49, 0x3e, 0x35, 0x39, 0x42,
    0x4f, 0x59, 0x5d, 0x55, 0x4d, 0x51, 0x5e, 0x68, 0x5f, 0x4f, 0x53, 0x6e, 0x88, 0x98, 0x9b, 0x95,
    0x81, 0x62, 0x4c, 0x45, 0x3b, 0x36, 0x3b, 0x43, 0x51, 0x63, 0x73, 0x7b, 0x74, 0x74, 0x6f, 0x4f,
    0x3a, 0x3b, 0x41, 0x4a, 0x4a, 0x41, 0x3a, 0x3a, 0x40, 0x38, 0x3e, 0x45, 0x3b, 0x47, 0x43, 0x44,
    0x52, 0x51, 0x4e, 0x5f, 0x71, 0x76, 0x78, 0x6f, 0x58, 0x54, 0x51, 0x4d, 0x48, 0x46, 0x4c, 0x55,
    0x50, 0x4f, 0x55, 0x5e, 0x5f, 0x56, 0x50, 0x50, 0x4c, 0x52, 0x57, 0x61, 0x7a, 0x93, 0x96, 0x89,
    0x62, 0x3e, 0x30, 0x31, 0x27, 0x26, 0x2d, 0x28, 0x2e, 0x2f, 0x35, 0x41, 0x4b, 0x52, 0x59, 0x5f,
    0x62, 0x5e, 0x54, 0x51, 0x56, 0x52, 0x4b, 0x4a, 0x60, 0x6d, 0x73, 0x69, 0x5e, 0x69, 0x8a, 0xa8,
    0xbc, 0xc8, 0xc8, 0xb2, 0x90, 0x6b, 0x54, 0x51, 0x4e, 0x4f, 0x57, 0x65, 0x70, 0x76, 0x7d, 0x84,
    0x85, 0x82, 0x86, 0x8b, 0x7f, 0x6b, 0x67, 0x70, 0x86, 0x92, 0x9a, 0x9b, 0x99, 0x8f, 0x81, 0x7c,
    0x77, 0x79, 0x7e, 0x80, 0x76, 0x69, 0x64, 0x67, 0x64, 0x67, 0x6b, 0x72, 0x75, 0x6e, 0x6c, 0x76,
    0x7b, 0x83, 0x8b, 0x93, 0x8e, 0x94, 0xa4, 0x9c, 0xa5, 0xb0, 0xb3, 0xa5, 0x9d, 0xa7, 0xaa, 0x9d,
    0xa7, 0xab, 0xa4, 0x9b, 0xa3, 0xb2, 0xac, 0x98, 0x8a, 0x81, 0x7a, 0x6d, 0x55, 0x45, 0x42, 0x41,
    0x3d, 0x40, 0x41, 0x43, 0x48, 0x4c, 0x46, 0x3c, 0x37, 0x2e, 0x2d, 0x30, 0x38, 0x51, 0x60, 0x59,
    0x4e, 0x54, 0x5e, 0x6a, 0x73, 0x75, 0x71, 0x6c, 0x6f, 0x76, 0x72, 0x63, 0x5e, 0x68, 0x6e, 0x6a,
    0x5a, 0x5e, 0x63, 0x66, 0x65, 0x63, 0x62, 0x62, 0x5c, 0x70, 0x9a, 0x9c, 0x94, 0x79, 0x85, 0xa7,
    0xb7, 0x8b, 0x73, 0x59, 0x4d, 0x4a, 0x5e, 0x59, 0x61, 0x55, 0x52, 0x56, 0x58, 0x5c, 0x5e, 0x5a,
    0x55, 0x54, 0x59, 0x64, 0x6d, 0x70, 0x72, 0x74, 0x74, 0x70, 0x70, 0x76, 0x7a, 0x7b, 0x7d, 0x7f,
    0x86, 0x81, 0x80, 0x7d, 0x76, 0x75, 0x79, 0x76, 0x7b, 0x78, 0x76, 0x77, 0x7a, 0x7a, 0x76, 0x72,
    0x6e, 0x7a, 0x80, 0x7a, 0x72, 0x6f, 0x6e, 0x6b, 0x6a, 0x67, 0x6a, 0x70, 0x70, 0x6b, 0x69, 0x6b,
    0x6d, 0x6e, 0x69, 0x62, 0x63, 0x68, 0x64, 0x5a, 0x62, 0x5a, 0x5a, 0x59, 0x53, 0x59, 0x5b, 0x4e,
    0x4e, 0x4a, 0x46, 0x45, 0x46, 0x48, 0x49, 0x48, 0x44, 0x3c, 0x39, 0x3d, 0x41, 0x3e, 0x3d, 0x3e,
    0x3f, 0x40, 0x3c, 0x35, 0x33, 0x36, 0x36, 0x31, 0x3f, 0x39, 0x37, 0x3f, 0x4e, 0x5e, 0x6d, 0x76,
    0x6d, 0x66, 0x5f, 0x5d, 0x5e, 0x5d, 0x5c, 0x5c, 0x5b, 0x5b, 0x5d, 0x5f, 0x5f, 0x61, 0x6a, 0x72,
    0x7f, 0x81, 0x7f, 0x7c, 0x77, 0x6b, 0x65, 0x6a, 0x86, 0x92, 0x9d, 0x9a, 0x8a, 0x77, 0x6b, 0x67,
    0x6a, 0x69, 0x64, 0x5f, 0x64, 0x70, 0x77, 0x78, 0x79, 0x72, 0x6f, 0x75, 0x7c, 0x7c, 0x79, 0x78,
    0x6a, 0x56, 0x4a, 0x50, 0x6f, 0xa4, 0xc2, 0xbb, 0x98, 0x74, 0x5e, 0x63, 0x68, 0x6a, 0x6e, 0x72,
    0x78, 0x7a, 0x7b, 0x7c, 0x7e, 0x7f, 0x79, 0x73, 0x73, 0x74, 0x74, 0x75, 0x75, 0x75, 0x74, 0x73,
    0x71, 0x75, 0x79, 0x7c, 0x7f, 0x80, 0x7c, 0x77, 0x71, 0x72, 0x71, 0x6e, 0x68, 0x61, 0x5b, 0x58,
    0x5a, 0x54, 0x4f, 0x51, 0x6a, 0x93, 0x94, 0x6f, 0x46, 0x40, 0x42, 0x46, 0x41, 0x3e, 0x40, 0x40,
    0x4e, 0x54, 0x5b, 0x60, 0x67, 0x74, 0x7f, 0x85, 0x81, 0x7c, 0x7b, 0x77, 0x80, 0xa6, 0xca, 0xd1,
    0xa2, 0x71, 0x5d, 0x61, 0x4f, 0x3d, 0x3e, 0x40, 0x5a, 0x68, 0x75, 0x78, 0x81, 0x8d, 0x7d, 0x5a,
    0x5c, 0x63, 0x71, 0x76, 0x62, 0x4b, 0x53, 0x6b, 0x73, 0x6e, 0x6b, 0x6b, 0x66, 0x5e, 0x57, 0x55,
    0x4e, 0x4f, 0x58, 0x58, 0x5a, 0x6b, 0x5e, 0x31, 0x2c, 0x47, 0x4d, 0x40, 0x3c, 0x3f, 0x3e, 0x3d,
    0x36, 0x37, 0x38, 0x35, 0x2d, 0x24, 0x21, 0x22, 0x20, 0x19, 0x15, 0x19, 0x1e, 0x1f, 0x21, 0x23,
    0x23, 0x27, 0x28, 0x26, 0x22, 0x1f, 0x1b, 0x18, 0x17, 0x11, 0x0b, 0x0e, 0x16, 0x1a, 0x17, 0x11,
    0x14, 0x15, 0x1a, 0x1f, 0x1f, 0x1c, 0x1d, 0x21, 0x1e, 0x19, 0x1a, 0x22, 0x29, 0x33, 0x4d, 0x67,
    0x54, 0x56, 0x57, 0x56, 0x57, 0x5a, 0x5b, 0x5a, 0x5b, 0x5e, 0x5f, 0x5c, 0x5a, 0x5b, 0x5c, 0x5c,
    0x56, 0x48, 0x40, 0x3d, 0x3c, 0x44, 0x50, 0x55, 0x58, 0x57, 0x54, 0x53, 0x52, 0x51, 0x50, 0x4f,
    0x4a, 0x44, 0x42, 0x46, 0x4c, 0x53, 0x5b, 0x63, 0x69, 0x60, 0x52, 0x46, 0x3f, 0x3d, 0x3e, 0x3f,
    0x39, 0x3a, 0x3a, 0x3b, 0x3e, 0x42, 0x44, 0x43, 0x44, 0x48, 0x51, 0x4f, 0x40, 0x41, 0x54, 0x64,
    0x89, 0xa8, 0xb0, 0x96, 0x8b, 0xa5, 0xae, 0x99, 0x6b, 0x4e, 0x59, 0x96, 0xd1, 0xe8, 0xe5, 0xdc,
    0xd1, 0xb5, 0x87, 0x4e, 0x33, 0x35, 0x43, 0x5c, 0x86, 0xad, 0xb9, 0x9d, 0x87, 0x87, 0x79, 0x5d,
    0x45, 0x42, 0x3c, 0x3d, 0x40, 0x3b, 0x34, 0x36, 0x3b, 0x3e, 0x3e, 0x41, 0x43, 0x3e, 0x3e, 0x47,
    0x54, 0x60, 0x63, 0x68, 0x6a, 0x68, 0x6a, 0x60, 0x62, 0x5b, 0x57, 0x58, 0x56, 0x4f, 0x4d, 0x51,
    0x4a, 0x4c, 0x4f, 0x4d, 0x48, 0x48, 0x51, 0x5d, 0x68, 0x69, 0x6b, 0x7d, 0xa8, 0xc5, 0xad, 0x7f,
    0x54, 0x3e, 0x2e, 0x28, 0x25, 0x27, 0x2b, 0x2a, 0x29, 0x2c, 0x2d, 0x37, 0x44, 0x43, 0x49, 0x5e,
    0x76, 0x6f, 0x67, 0x67, 0x70, 0x74, 0x69, 0x5a, 0x78, 0x98, 0xa6, 0x9c, 0x9b, 0xa9, 0xb5, 0xba,
    0xca, 0xce, 0xc2, 0xac, 0x8f, 0x68, 0x52, 0x57, 0x5a, 0x61, 0x6a, 0x6d, 0x6c, 0x6c, 0x70, 0x74,
    0x75, 0x7a, 0x7e, 0x7c, 0x77, 0x6f, 0x65, 0x5c, 0x7d, 0x8e, 0x9d, 0x9e, 0x94, 0x89, 0x81, 0x7b,
    0x7c, 0x79, 0x7a, 0x7d, 0x75, 0x66, 0x5d, 0x5e, 0x5c, 0x61, 0x66, 0x6b, 0x6d, 0x70, 0x73, 0x75,
    0x70, 0x73, 0x74, 0x73, 0x76, 0x7d, 0x84, 0x88, 0x98, 0xa9, 0xac, 0x9f, 0x9d, 0xa9, 0xab, 0xa1,
    0xa9, 0xae, 0xa5, 0x9f, 0xac, 0xb7, 0xaa, 0x96, 0x87, 0x85, 0x80, 0x74, 0x60, 0x4c, 0x45, 0x46,
    0x45, 0x43, 0x42, 0x43, 0x43, 0x42, 0x3e, 0x3a, 0x39, 0x33, 0x32, 0x38, 0x47, 0x5c, 0x65, 0x5f,
    0x53, 0x53, 0x5c, 0x6d, 0x78, 0x78, 0x75, 0x75, 0x75, 0x72, 0x69, 0x5a, 0x5a, 0x6f, 0x79, 0x70,
    0x59, 0x61, 0x6c, 0x72, 0x72, 0x73, 0x7d, 0x87, 0x83, 0x94, 0x97, 0x98, 0x97, 0x83, 0x8c, 0xba,
    0xce, 0xc2, 0xa9, 0x81, 0x51, 0x4c, 0x6a, 0x6e, 0x73, 0x67, 0x5d, 0x5b, 0x59, 0x54, 0x55, 0x59,
    0x5d, 0x64, 0x6d, 0x74, 0x7b, 0x81, 0x7f, 0x7b, 0x76, 0x7a, 0x7a, 0x79, 0x7c, 0x7b, 0x79, 0x7d,
    0x87, 0x84, 0x7c, 0x79, 0x7d, 0x7b, 0x76, 0x79, 0x7d, 0x7c, 0x7a, 0x7a, 0x7b, 0x7c, 0x7b, 0x7b,
    0x7b, 0x7e, 0x7f, 0x7f, 0x7f, 0x7e, 0x79, 0x74, 0x75, 0x70, 0x76, 0x78, 0x70, 0x72, 0x77, 0x72,
    0x70, 0x72, 0x70, 0x71, 0x73, 0x6e, 0x69, 0x6d, 0x6f, 0x69, 0x62, 0x60, 0x60, 0x61, 0x61, 0x60,
    0x5a, 0x54, 0x4f, 0x4e, 0x4f, 0x4e, 0x49, 0x44, 0x43, 0x42, 0x41, 0x3f, 0x3d, 0x3d, 0x3e, 0x40,
    0x40, 0x40, 0x3f, 0x3d, 0x3a, 0x37, 0x35, 0x34, 0x34, 0x34, 0x35, 0x39, 0x3e, 0x47, 0x57, 0x67,
    0x6a, 0x66, 0x61, 0x5c, 0x59, 0x59, 0x5b, 0x5c, 0x5f, 0x5e, 0x5f, 0x61, 0x62, 0x64, 0x69, 0x6f,
    0x80, 0x7e, 0x7d, 0x7f, 0x7a, 0x6a, 0x64, 0x6f, 0x99, 0xaf, 0xc1, 0xbd, 0xad, 0xa1, 0x9d, 0x9b,
    0x99, 0x87, 0x6a, 0x57, 0x5c, 0x6d, 0x77, 0x76, 0x67, 0x64, 0x5e, 0x5b, 0x5d, 0x62, 0x63, 0x62,
    0x5b, 0x4f, 0x4d, 0x55, 0x79, 0xa6, 0xca, 0xb3, 0x92, 0x75, 0x67, 0x62, 0x64, 0x6c, 0x6d, 0x72,
    0x75, 0x78, 0x7b, 0x7d, 0x7e, 0x7e, 0x79, 0x74, 0x75, 0x75, 0x76, 0x77, 0x78, 0x78, 0x77, 0x76,
    0x77, 0x77, 0x76, 0x76, 0x7b, 0x82, 0x85, 0x84, 0x75, 0x72, 0x6e, 0x6a, 0x64, 0x5c, 0x57, 0x56,
    0x56, 0x5c, 0x58, 0x5b, 0x7a, 0x9c, 0x93, 0x72, 0x4c, 0x49, 0x44, 0x3f, 0x3d, 0x3d, 0x3d, 0x3d,
    0x42, 0x4c, 0x5a, 0x64, 0x65, 0x64, 0x6c, 0x76, 0x72, 0x73, 0x6c, 0x6c, 0x88, 0xad, 0xb8, 0xad,
    0x84, 0x69, 0x5c, 0x5e, 0x5f, 0x6a, 0x7c, 0x84, 0x83, 0x76, 0x6f, 0x7d, 0x79, 0x73, 0x57, 0x41,
    0x53, 0x54, 0x5a, 0x62, 0x69, 0x6b, 0x68, 0x64, 0x4b, 0x3a, 0x32, 0x3d, 0x4c, 0x52, 0x53, 0x55,
    0x5f, 0x59, 0x56, 0x57, 0x57, 0x4d, 0x3b, 0x2b, 0x35, 0x3d, 0x45, 0x47, 0x46, 0x45, 0x44, 0x42,
    0x46, 0x3f, 0x33, 0x2a, 0x28, 0x28, 0x22, 0x1b, 0x1d, 0x17, 0x13, 0x13, 0x18, 0x1b, 0x19, 0x16,
    0x1a, 0x20, 0x1e, 0x19, 0x17, 0x13, 0x0f, 0x11, 0x17, 0x17, 0x18, 0x17, 0x14, 0x13, 0x17, 0x1d,
    0x1c, 0x19, 0x1c, 0x1e, 0x18, 0x1d, 0x2b, 0x34, 0x46, 0x53, 0x60, 0x64, 0x67, 0x74, 0x89, 0x99,
    0x54, 0x56, 0x56, 0x56, 0x57, 0x5a, 0x5b, 0x5a, 0x5c, 0x5d, 0x5d, 0x5a, 0x59, 0x5a, 0x59, 0x57,
    0x51, 0x44, 0x3e, 0x3d, 0x3f, 0x48, 0x53, 0x56, 0x5a, 0x58, 0x55, 0x54, 0x53, 0x52, 0x51, 0x50,
    0x4b, 0x47, 0x45, 0x49, 0x4f, 0x55, 0x5d, 0x63, 0x6a, 0x5e, 0x4e, 0x43, 0x40, 0x42, 0x44, 0x45,
    0x3e, 0x39, 0x36, 0x37, 0x39, 0x40, 0x4f, 0x5e, 0x55, 0x5b, 0x67, 0x62, 0x4e, 0x4f, 0x63, 0x6d,
    0x72, 0x9d, 0xbd, 0xbd, 0xc2, 0xd8, 0xcf, 0xab, 0x73, 0x5b, 0x6b, 0xac, 0xe7, 0xfc, 0xf6, 0xe9,
    0xd3, 0xa8, 0x77, 0x4d, 0x37, 0x36, 0x4b, 0x74, 0xc2, 0xdf, 0xd9, 0xa7, 0x8b, 0x94, 0x94, 0x81,
    0x55, 0x49, 0x3a, 0x38, 0x3d, 0x39, 0x34, 0x37, 0x40, 0x41, 0x45, 0x4f, 0x52, 0x46, 0x45, 0x53,
    0x6d, 0x79, 0x78, 0x71, 0x62, 0x54, 0x56, 0x53, 0x56, 0x57, 0x52, 0x48, 0x46, 0x4c, 0x4f, 0x4c,
    0x4c, 0x49, 0x48, 0x4d, 0x59, 0x64, 0x6b, 0x6e, 0x67, 0x6c, 0x75, 0x89, 0xa7, 0xb3, 0x99, 0x74,
    0x4c, 0x3e, 0x39, 0x3c, 0x39, 0x34, 0x2f, 0x28, 0x2a, 0x2d, 0x29, 0x29, 0x2f, 0x38, 0x53, 0x78,
    0x8d, 0x89, 0x8f, 0xa3, 0xb6, 0xb1, 0x93, 0x77, 0x8d, 0xa5, 0xb8, 0xc0, 0xc4, 0xc4, 0xc6, 0xcd,
    0xc8, 0xcb, 0xbd, 0xa3, 0x84, 0x62, 0x56, 0x61, 0x6b, 0x6e, 0x6f, 0x6b, 0x66, 0x64, 0x69, 0x6e,
    0x73, 0x79, 0x80, 0x81, 0x7e, 0x75, 0x67, 0x5b, 0x73, 0x83, 0x91, 0x94, 0x8e, 0x85, 0x7d, 0x77,
    0x77, 0x76, 0x79, 0x7c, 0x77, 0x6c, 0x64, 0x63, 0x61, 0x68, 0x71, 0x76, 0x75, 0x70, 0x6c, 0x6b,
    0x6b, 0x6c, 0x6a, 0x65, 0x62, 0x63, 0x64, 0x64, 0x68, 0x78, 0x85, 0x8f, 0xa1, 0xb3, 0xb0, 0xa1,
    0xae, 0xb1, 0xa7, 0xa0, 0xae, 0xb8, 0xab, 0x98, 0x81, 0x7b, 0x75, 0x71, 0x68, 0x5a, 0x4e, 0x48,
    0x49, 0x46, 0x42, 0x3f, 0x3d, 0x3c, 0x3a, 0x39, 0x3a, 0x35, 0x38, 0x43, 0x54, 0x68, 0x6f, 0x67,
    0x54, 0x58, 0x60, 0x6c, 0x77, 0x7c, 0x76, 0x6e, 0x7e, 0x6d, 0x5b, 0x52, 0x5b, 0x71, 0x75, 0x66,
    0x5d, 0x60, 0x66, 0x6e, 0x76, 0x7c, 0x80, 0x81, 0x86, 0x98, 0x9b, 0x9c, 0x9c, 0x8d, 0x94, 0xbc,
    0xdb, 0xcd, 0xb2, 0x8a, 0x59, 0x4f, 0x68, 0x6c, 0x6c, 0x63, 0x5c, 0x59, 0x57, 0x55, 0x5a, 0x62,
    0x71, 0x73, 0x75, 0x79, 0x80, 0x86, 0x84, 0x7f, 0x83, 0x86, 0x82, 0x7d, 0x7c, 0x7b, 0x7e, 0x87,
    0x88, 0x85, 0x7d, 0x7b, 0x7f, 0x7d, 0x7b, 0x81, 0x80, 0x81, 0x82, 0x81, 0x80, 0x80, 0x82, 0x83,
    0x83, 0x85, 0x85, 0x84, 0x83, 0x82, 0x7e, 0x7a, 0x7a, 0x78, 0x79, 0x79, 0x76, 0x78, 0x7c, 0x7c,
    0x73, 0x76, 0x74, 0x75, 0x79, 0x74, 0x70, 0x74, 0x70, 0x6f, 0x6b, 0x67, 0x67, 0x6a, 0x69, 0x66,
    0x65, 0x60, 0x5b, 0x59, 0x59, 0x56, 0x4f, 0x49, 0x45, 0x46, 0x46, 0x45, 0x43, 0x3f, 0x3c, 0x3a,
    0x3e, 0x3e, 0x3f, 0x3e, 0x3c, 0x3a, 0x38, 0x37, 0x34, 0x34, 0x36, 0x39, 0x3a, 0x3d, 0x46, 0x4f,
    0x59, 0x5a, 0x5b, 0x5c, 0x5d, 0x5d, 0x5d, 0x5d, 0x5d, 0x5c, 0x5c, 0x5f, 0x61, 0x64, 0x6b, 0x71,
    0x7d, 0x7e, 0x7e, 0x80, 0x7d, 0x6f, 0x67, 0x6e, 0x89, 0x98, 0xa8, 0xb0, 0xb1, 0xb3, 0xb8, 0xbc,
    0xb4, 0x9f, 0x7e, 0x64, 0x61, 0x6d, 0x77, 0x78, 0x78, 0x79, 0x78, 0x76, 0x74, 0x72, 0x70, 0x6e,
    0x65, 0x55, 0x4d, 0x54, 0x7b, 0xa8, 0xc9, 0xaf, 0x92, 0x75, 0x68, 0x62, 0x62, 0x6a, 0x6b, 0x71,
    0x73, 0x77, 0x7b, 0x7c, 0x7e, 0x7d, 0x79, 0x73, 0x75, 0x74, 0x74, 0x74, 0x75, 0x75, 0x75, 0x75,
    0x74, 0x78, 0x77, 0x76, 0x7f, 0x8b, 0x8a, 0x7f, 0x76, 0x75, 0x73, 0x6d, 0x64, 0x5b, 0x5a, 0x5d,
    0x70, 0x78, 0x7b, 0x7f, 0x95, 0xa9, 0x9a, 0x7a, 0x5f, 0x5d, 0x5a, 0x55, 0x4c, 0x42, 0x3d, 0x3e,
    0x41, 0x49, 0x58, 0x64, 0x67, 0x62, 0x5f, 0x5f, 0x6d, 0x67, 0x5c, 0x5d, 0x77, 0x92, 0x91, 0x7f,
    0x66, 0x70, 0x85, 0x93, 0x92, 0x89, 0x7f, 0x75, 0x67, 0x70, 0x7a, 0x82, 0x67, 0x54, 0x3f, 0x36,
    0x46, 0x57, 0x6a, 0x70, 0x63, 0x4f, 0x3e, 0x35, 0x32, 0x2d, 0x2f, 0x3b, 0x4a, 0x54, 0x5c, 0x63,
    0x64, 0x5c, 0x52, 0x4d, 0x48, 0x3e, 0x2e, 0x22, 0x2d, 0x33, 0x38, 0x39, 0x39, 0x39, 0x38, 0x36,
    0x34, 0x30, 0x28, 0x21, 0x1d, 0x1b, 0x17, 0x13, 0x0d, 0x10, 0x11, 0x0f, 0x0d, 0x10, 0x19, 0x20,
    0x20, 0x1f, 0x17, 0x11, 0x16, 0x18, 0x15, 0x15, 0x10, 0x19, 0x1e, 0x1c, 0x1b, 0x1d, 0x20, 0x20,
    0x18, 0x13, 0x18, 0x2b, 0x4d, 0x7a, 0x96, 0x98, 0x92, 0x69, 0x50, 0x5d, 0x6d, 0x77, 0x90, 0xb0,
    0x54, 0x56, 0x57, 0x56, 0x57, 0x5a, 0x5b, 0x59, 0x5f, 0x5e, 0x5c, 0x59, 0x59, 0x59, 0x56, 0x52,
    0x49, 0x3e, 0x3b, 0x3f, 0x43, 0x4d, 0x56, 0x57, 0x5b, 0x59, 0x55, 0x53, 0x52, 0x51, 0x51, 0x51,
    0x4e, 0x4b, 0x4a, 0x4e, 0x54, 0x59, 0x5e, 0x62, 0x67, 0x59, 0x48, 0x3f, 0x3f, 0x44, 0x48, 0x48,
    0x3e, 0x37, 0x36, 0x3a, 0x3f, 0x4a, 0x64, 0x7e, 0x77, 0x61, 0x55, 0x4e, 0x4c, 0x62, 0x75, 0x6e,
    0x78, 0xa7, 0xcd, 0xcc, 0xc3, 0xca, 0xc2, 0xa6, 0x77, 0x61, 0x6c, 0x9f, 0xce, 0xe3, 0xe5, 0xe0,
    0xd4, 0xaa, 0x7b, 0x4f, 0x36, 0x2e, 0x3a, 0x5c, 0x7c, 0x8e, 0x89, 0x6b, 0x60, 0x78, 0x90, 0x95,
    0x86, 0x68, 0x46, 0x3d, 0x43, 0x3f, 0x38, 0x3b, 0x40, 0x45, 0x53, 0x64, 0x64, 0x50, 0x4b, 0x5b,
    0xa4, 0xc2, 0xce, 0xbe, 0x8c, 0x5a, 0x4b, 0x45, 0x3e, 0x44, 0x47, 0x43, 0x44, 0x47, 0x44, 0x3c,
    0x46, 0x44, 0x41, 0x44, 0x52, 0x65, 0x6f, 0x71, 0x77, 0x73, 0x6d, 0x6d, 0x73, 0x74, 0x66, 0x55,
    0x46, 0x3b, 0x3a, 0x3f, 0x3e, 0x3b, 0x36, 0x30, 0x30, 0x2f, 0x2a, 0x2c, 0x33, 0x3b, 0x4e, 0x67,
    0x77, 0x82, 0x97, 0xaf, 0xbc, 0xb5, 0xa4, 0x97, 0x92, 0x9a, 0xa8, 0xb8, 0xbc, 0xb0, 0xad, 0xba,
    0xc9, 0xc5, 0xb3, 0x9a, 0x7f, 0x66, 0x5f, 0x69, 0x6c, 0x6e, 0x6d, 0x68, 0x62, 0x60, 0x66, 0x6c,
    0x6f, 0x74, 0x79, 0x7d, 0x7d, 0x77, 0x6a, 0x5f, 0x68, 0x73, 0x80, 0x86, 0x86, 0x84, 0x80, 0x7d,
    0x78, 0x7a, 0x7b, 0x7b, 0x77, 0x73, 0x70, 0x6f, 0x6d, 0x7a, 0x8a, 0x96, 0x9b, 0x9c, 0x9c, 0x9e,
    0x8f, 0x8f, 0x8a, 0x80, 0x76, 0x6f, 0x69, 0x64, 0x67, 0x6d, 0x73, 0x7d, 0x91, 0xa6, 0xad, 0xaa,
    0xb8, 0xb9, 0xae, 0xa7, 0xb2, 0xba, 0xae, 0x9e, 0x8c, 0x7e, 0x71, 0x6e, 0x6d, 0x65, 0x55, 0x48,
    0x42, 0x3e, 0x39, 0x37, 0x38, 0x3b, 0x3e, 0x3f, 0x40, 0x3b, 0x41, 0x50, 0x61, 0x70, 0x72, 0x67,
    0x57, 0x5f, 0x65, 0x67, 0x6d, 0x74, 0x73, 0x6b, 0x76, 0x65, 0x54, 0x4e, 0x54, 0x66, 0x6e, 0x67,
    0x5f, 0x5d, 0x5d, 0x66, 0x78, 0x85, 0x81, 0x76, 0x8b, 0x9f, 0xa5, 0xa7, 0xab, 0xa1, 0xa5, 0xc2,
    0xce, 0xcc, 0xbe, 0x9d, 0x68, 0x50, 0x61, 0x68, 0x66, 0x61, 0x5d, 0x5c, 0x5b, 0x5d, 0x66, 0x70,
    0x7b, 0x7b, 0x7c, 0x7f, 0x85, 0x88, 0x83, 0x7c, 0x84, 0x89, 0x86, 0x7f, 0x7c, 0x7c, 0x81, 0x8d,
    0x89, 0x88, 0x80, 0x7d, 0x80, 0x7f, 0x7f, 0x86, 0x88, 0x8b, 0x8d, 0x8b, 0x87, 0x85, 0x88, 0x8b,
    0x8b, 0x8c, 0x8b, 0x89, 0x88, 0x87, 0x83, 0x7f, 0x7c, 0x7d, 0x79, 0x76, 0x78, 0x7a, 0x7c, 0x81,
    0x7b, 0x7d, 0x7a, 0x79, 0x7a, 0x74, 0x6e, 0x72, 0x6e, 0x72, 0x71, 0x6b, 0x6a, 0x6e, 0x6e, 0x68,
    0x62, 0x60, 0x5f, 0x5f, 0x5f, 0x5c, 0x56, 0x51, 0x50, 0x4f, 0x4b, 0x47, 0x44, 0x41, 0x3e, 0x3d,
    0x3a, 0x3b, 0x3c, 0x3c, 0x3c, 0x3a, 0x38, 0x37, 0x39, 0x38, 0x38, 0x39, 0x38, 0x38, 0x3a, 0x3e,
    0x45, 0x4a, 0x52, 0x5a, 0x5f, 0x60, 0x5f, 0x5e, 0x5d, 0x5c, 0x5d, 0x5f, 0x61, 0x66, 0x6e, 0x76,
    0x7a, 0x7f, 0x7f, 0x7f, 0x7d, 0x72, 0x68, 0x68, 0x72, 0x7d, 0x8a, 0x8d, 0x86, 0x82, 0x89, 0x93,
    0x94, 0x84, 0x6b, 0x59, 0x5c, 0x6d, 0x7b, 0x7f, 0x78, 0x7a, 0x7c, 0x7c, 0x7b, 0x7a, 0x7a, 0x7a,
    0x6d, 0x5a, 0x4d, 0x52, 0x7e, 0xab, 0xc7, 0xab, 0x8f, 0x73, 0x68, 0x62, 0x62, 0x6a, 0x6d, 0x75,
    0x7a, 0x7e, 0x81, 0x83, 0x83, 0x82, 0x7c, 0x76, 0x76, 0x76, 0x75, 0x74, 0x74, 0x74, 0x74, 0x75,
    0x75, 0x7a, 0x79, 0x78, 0x86, 0x96, 0x90, 0x7c, 0x67, 0x6b, 0x6f, 0x6c, 0x61, 0x58, 0x59, 0x5f,
    0x65, 0x6f, 0x79, 0x84, 0x9a, 0xae, 0xab, 0x9c, 0x95, 0x8f, 0x86, 0x79, 0x62, 0x4b, 0x43, 0x47,
    0x45, 0x50, 0x61, 0x6c, 0x6b, 0x65, 0x62, 0x63, 0x6a, 0x6e, 0x6c, 0x65, 0x64, 0x6c, 0x71, 0x70,
    0x7d, 0x8d, 0x93, 0x88, 0x77, 0x65, 0x56, 0x51, 0x5f, 0x69, 0x6e, 0x6a, 0x4b, 0x4a, 0x58, 0x6c,
    0x66, 0x6b, 0x69, 0x5b, 0x44, 0x32, 0x2d, 0x2f, 0x2a, 0x29, 0x2c, 0x39, 0x4b, 0x5c, 0x64, 0x66,
    0x5d, 0x56, 0x4b, 0x42, 0x39, 0x2e, 0x21, 0x18, 0x1c, 0x20, 0x24, 0x26, 0x29, 0x2d, 0x2e, 0x2d,
    0x2d, 0x1c, 0x17, 0x20, 0x21, 0x14, 0x12, 0x1a, 0x15, 0x15, 0x15, 0x15, 0x15, 0x14, 0x13, 0x12,
    0x17, 0x1f, 0x1f, 0x17, 0x12, 0x14, 0x26, 0x3e, 0x4d, 0x46, 0x3f, 0x3c, 0x3f, 0x44, 0x48, 0x4a,
    0x5f, 0x75, 0x9b, 0xb1, 0xa8, 0x91, 0x7a, 0x6a, 0x5e, 0x5b, 0x60, 0x71, 0x7e, 0x7d, 0x79, 0x78,
    0x55, 0x57, 0x58, 0x58, 0x59, 0x5c, 0x5c, 0x5b, 0x61, 0x60, 0x5c, 0x5a, 0x5b, 0x5a, 0x54, 0x4d,
    0x41, 0x38, 0x3a, 0x42, 0x49, 0x52, 0x59, 0x59, 0x5a, 0x57, 0x53, 0x50, 0x50, 0x50, 0x50, 0x50,
    0x51, 0x50, 0x50, 0x53, 0x57, 0x5a, 0x5d, 0x5f, 0x5e, 0x52, 0x43, 0x3b, 0x3d, 0x42, 0x47, 0x49,
    0x4c, 0x48, 0x43, 0x3d, 0x38, 0x39, 0x47, 0x57, 0x5f, 0x52, 0x50, 0x4b, 0x4b, 0x70, 0x98, 0x9d,
    0x8f, 0xb5, 0xd8, 0xd7, 0xc1, 0xb2, 0xa4, 0x91, 0x6a, 0x61, 0x71, 0x96, 0xb2, 0xc3, 0xd1, 0xda,
    0xd4, 0xbe, 0x91, 0x53, 0x33, 0x32, 0x35, 0x42, 0x4a, 0x49, 0x47, 0x43, 0x3e, 0x42, 0x55, 0x68,
    0x72, 0x5b, 0x41, 0x38, 0x3b, 0x3d, 0x48, 0x5c, 0x5a, 0x76, 0xa1, 0xc3, 0xc2, 0x9a, 0x73, 0x67,
    0xb5, 0xdc, 0xee, 0xd5, 0x91, 0x55, 0x49, 0x4d, 0x54, 0x47, 0x3d, 0x3e, 0x40, 0x3f, 0x41, 0x47,
    0x3d, 0x3e, 0x3c, 0x3f, 0x50, 0x69, 0x78, 0x7a, 0x74, 0x6c, 0x5a, 0x48, 0x43, 0x49, 0x4d, 0x4b,
    0x40, 0x36, 0x36, 0x3d, 0x3e, 0x3f, 0x41, 0x3f, 0x39, 0x3b, 0x3e, 0x43, 0x47, 0x46, 0x4a, 0x51,
    0x60, 0x5d, 0x61, 0x74, 0x92, 0xa7, 0xab, 0xa4, 0x91, 0x90, 0x95, 0xa4, 0xad, 0xa6, 0xab, 0xbf,
    0xc8, 0xbb, 0xa6, 0x91, 0x7e, 0x6d, 0x65, 0x66, 0x62, 0x66, 0x68, 0x65, 0x60, 0x5f, 0x64, 0x6a,
    0x6f, 0x6f, 0x6f, 0x70, 0x73, 0x73, 0x6d, 0x65, 0x63, 0x6a, 0x73, 0x7a, 0x7e, 0x7f, 0x7d, 0x7c,
    0x83, 0x87, 0x8a, 0x8c, 0x91, 0x9a, 0xa0, 0xa3, 0xaf, 0xb4, 0xba, 0xb9, 0xb5, 0xb1, 0xb1, 0xb3,
    0xb8, 0xb8, 0xb4, 0xaa, 0x9f, 0x94, 0x8a, 0x83, 0x6c, 0x6e, 0x6e, 0x70, 0x7a, 0x8f, 0xa8, 0xba,
    0xc5, 0xc9, 0xc2, 0xbb, 0xc2, 0xc6, 0xbc, 0xb2, 0x9d, 0x8c, 0x79, 0x6f, 0x6c, 0x65, 0x56, 0x49,
    0x3e, 0x38, 0x32, 0x33, 0x3b, 0x43, 0x46, 0x46, 0x45, 0x40, 0x47, 0x5a, 0x68, 0x70, 0x6b, 0x5e,
    0x5b, 0x61, 0x64, 0x62, 0x63, 0x6a, 0x70, 0x72, 0x6d, 0x5c, 0x50, 0x4e, 0x53, 0x61, 0x6b, 0x6a,
    0x66, 0x64, 0x62, 0x6c, 0x83, 0x95, 0x8e, 0x7d, 0x8a, 0x9e, 0xa9, 0xad, 0xb2, 0xaa, 0xa7, 0xb6,
    0xd2, 0xd3, 0xc9, 0xaf, 0x80, 0x61, 0x66, 0x66, 0x61, 0x5f, 0x5e, 0x61, 0x64, 0x68, 0x71, 0x7a,
    0x78, 0x7b, 0x7f, 0x84, 0x87, 0x85, 0x7f, 0x79, 0x7b, 0x83, 0x84, 0x82, 0x83, 0x82, 0x85, 0x8d,
    0x8b, 0x8b, 0x85, 0x82, 0x84, 0x82, 0x82, 0x89, 0x90, 0x92, 0x93, 0x91, 0x8d, 0x8a, 0x8a, 0x8b,
    0x8e, 0x8f, 0x8f, 0x8d, 0x8b, 0x89, 0x85, 0x7f, 0x7b, 0x80, 0x79, 0x75, 0x7a, 0x79, 0x78, 0x81,
    0x7f, 0x80, 0x7c, 0x7a, 0x7b, 0x74, 0x6e, 0x71, 0x6e, 0x75, 0x74, 0x6b, 0x69, 0x70, 0x70, 0x6a,
    0x68, 0x68, 0x6a, 0x6b, 0x6c, 0x68, 0x63, 0x5f, 0x57, 0x56, 0x53, 0x51, 0x4d, 0x48, 0x43, 0x40,
    0x3e, 0x3d, 0x3c, 0x3b, 0x3a, 0x39, 0x38, 0x37, 0x3d, 0x3a, 0x37, 0x36, 0x36, 0x37, 0x39, 0x3a,
    0x38, 0x3e, 0x48, 0x52, 0x59, 0x5c, 0x5d, 0x5c, 0x5e, 0x5d, 0x5d, 0x5f, 0x60, 0x65, 0x6e, 0x77,
    0x7a, 0x80, 0x7f, 0x7c, 0x7a, 0x71, 0x66, 0x63, 0x6a, 0x7e, 0x92, 0x90, 0x78, 0x68, 0x72, 0x87,
    0x7f, 0x71, 0x5e, 0x55, 0x5e, 0x6f, 0x79, 0x7a, 0x67, 0x65, 0x63, 0x64, 0x66, 0x68, 0x6c, 0x70,
    0x67, 0x58, 0x4c, 0x53, 0x82, 0xae, 0xc6, 0xaa, 0x89, 0x70, 0x67, 0x63, 0x64, 0x6d, 0x72, 0x7b,
    0x82, 0x85, 0x87, 0x86, 0x85, 0x83, 0x7c, 0x76, 0x75, 0x76, 0x78, 0x78, 0x79, 0x7a, 0x7b, 0x7c,
    0x7a, 0x7c, 0x7b, 0x7e, 0x8b, 0x97, 0x90, 0x7f, 0x6b, 0x71, 0x77, 0x74, 0x68, 0x5b, 0x58, 0x5b,
    0x66, 0x6f, 0x7b, 0x86, 0x94, 0xa0, 0xa3, 0xa1, 0x9a, 0x99, 0x9a, 0x93, 0x77, 0x55, 0x44, 0x45,
    0x4d, 0x5c, 0x6b, 0x6d, 0x64, 0x61, 0x6b, 0x78, 0x8d, 0x81, 0x71, 0x68, 0x6a, 0x71, 0x72, 0x6f,
    0x78, 0x7f, 0x71, 0x5b, 0x4c, 0x3d, 0x38, 0x42, 0x5d, 0x5e, 0x58, 0x52, 0x3a, 0x40, 0x4c, 0x5a,
    0x40, 0x3c, 0x35, 0x2d, 0x27, 0x25, 0x28, 0x2b, 0x2a, 0x23, 0x21, 0x30, 0x4c, 0x61, 0x62, 0x58,
    0x4d, 0x48, 0x41, 0x3a, 0x31, 0x26, 0x1b, 0x14, 0x13, 0x15, 0x17, 0x18, 0x1c, 0x22, 0x24, 0x23,
    0x1b, 0x1a, 0x13, 0x0a, 0x0c, 0x14, 0x14, 0x0d, 0x12, 0x10, 0x0f, 0x12, 0x17, 0x1c, 0x1e, 0x1e,
    0x22, 0x2e, 0x1e, 0x0c, 0x2a, 0x64, 0x83, 0x83, 0x68, 0x6b, 0x7a, 0x8e, 0x99, 0x9a, 0xa2, 0xae,
    0xab, 0xbe, 0xbb, 0x8e, 0x5f, 0x51, 0x4d, 0x40, 0x53, 0x69, 0x72, 0x6a, 0x69, 0x77, 0x7a, 0x70,
    0x56, 0x58, 0x5a, 0x5a, 0x5b, 0x5e, 0x5e, 0x5d, 0x61, 0x60, 0x5d, 0x5b, 0x5b, 0x59, 0x51, 0x48,
    0x3b, 0x36, 0x3c, 0x47, 0x4f, 0x56, 0x5b, 0x59, 0x59, 0x56, 0x52, 0x50, 0x4f, 0x50, 0x50, 0x50,
    0x53, 0x53, 0x53, 0x55, 0x57, 0x5a, 0x5b, 0x5a, 0x50, 0x49, 0x40, 0x3b, 0x3d, 0x42, 0x49, 0x4c,
    0x47, 0x4b, 0x49, 0x41, 0x3c, 0x40, 0x45, 0x46, 0x4b, 0x4b, 0x52, 0x4c, 0x40, 0x4e, 0x62, 0x5f,
    0x57, 0x61, 0x70, 0x75, 0x6b, 0x62, 0x59, 0x4e, 0x44, 0x41, 0x4d, 0x5f, 0x6a, 0x80, 0xa7, 0xc7,
    0xdd, 0xd1, 0xa3, 0x59, 0x33, 0x35, 0x36, 0x3b, 0x48, 0x3e, 0x3b, 0x3c, 0x36, 0x2b, 0x2f, 0x3c,
    0x3d, 0x40, 0x3f, 0x39, 0x33, 0x33, 0x4d, 0x72, 0x9c, 0xa9, 0xbd, 0xd2, 0xdc, 0xc6, 0xa0, 0x89,
    0xac, 0xd1, 0xe5, 0xd5, 0xa4, 0x78, 0x70, 0x6f, 0x58, 0x4b, 0x44, 0x49, 0x4f, 0x4b, 0x44, 0x41,
    0x3d, 0x41, 0x40, 0x3e, 0x45, 0x53, 0x59, 0x56, 0x69, 0x6a, 0x5d, 0x48, 0x41, 0x48, 0x49, 0x40,
    0x35, 0x2f, 0x34, 0x3e, 0x41, 0x43, 0x46, 0x45, 0x43, 0x4b, 0x55, 0x55, 0x4c, 0x4b, 0x54, 0x5d,
    0x49, 0x68, 0x86, 0x8f, 0x90, 0x9b, 0xa9, 0xb1, 0xb8, 0xb8, 0xb7, 0xb9, 0xba, 0xb4, 0xb4, 0xc0,
    0xc0, 0xb1, 0x9d, 0x87, 0x74, 0x68, 0x66, 0x66, 0x65, 0x67, 0x68, 0x64, 0x5f, 0x5e, 0x64, 0x6a,
    0x71, 0x6f, 0x6a, 0x67, 0x69, 0x6a, 0x66, 0x61, 0x5e, 0x64, 0x6e, 0x77, 0x7b, 0x79, 0x73, 0x6f,
    0x75, 0x79, 0x7d, 0x80, 0x85, 0x8d, 0x92, 0x94, 0x99, 0x9d, 0xa0, 0xa1, 0xa2, 0xa5, 0xac, 0xb2,
    0xaf, 0xb1, 0xb0, 0xac, 0xa6, 0xa0, 0x97, 0x90, 0x8d, 0x8d, 0x8b, 0x85, 0x7d, 0x7d, 0x8a, 0x98,
    0xa9, 0xb2, 0xb1, 0xad, 0xb1, 0xb3, 0xae, 0xab, 0xa4, 0x99, 0x89, 0x7a, 0x6d, 0x61, 0x53, 0x49,
    0x42, 0x3a, 0x33, 0x38, 0x44, 0x4c, 0x4b, 0x46, 0x43, 0x40, 0x4d, 0x66, 0x76, 0x79, 0x72, 0x65,
    0x66, 0x60, 0x5f, 0x66, 0x6e, 0x73, 0x75, 0x78, 0x6d, 0x57, 0x4a, 0x4e, 0x5a, 0x68, 0x6b, 0x63,
    0x63, 0x64, 0x66, 0x70, 0x86, 0x98, 0x95, 0x87, 0x99, 0xab, 0xb5, 0xba, 0xba, 0xae, 0xa4, 0xa7,
    0xb5, 0xb4, 0xa6, 0x97, 0x7e, 0x6a, 0x6b, 0x65, 0x5f, 0x5d, 0x5e, 0x64, 0x6c, 0x72, 0x77, 0x7a,
    0x7a, 0x7e, 0x83, 0x85, 0x84, 0x80, 0x7d, 0x7d, 0x7e, 0x84, 0x86, 0x88, 0x8d, 0x8d, 0x8d, 0x92,
    0x8b, 0x8d, 0x8a, 0x89, 0x8c, 0x89, 0x87, 0x8e, 0x94, 0x93, 0x93, 0x92, 0x91, 0x8e, 0x8c, 0x8a,
    0x8d, 0x90, 0x91, 0x8f, 0x8e, 0x8b, 0x85, 0x7f, 0x7d, 0x83, 0x7e, 0x7a, 0x7e, 0x7b, 0x77, 0x7f,
    0x7c, 0x7d, 0x7b, 0x7b, 0x7e, 0x7a, 0x76, 0x7a, 0x75, 0x7b, 0x79, 0x6f, 0x6c, 0x73, 0x75, 0x6f,
    0x6e, 0x6f, 0x70, 0x70, 0x6d, 0x68, 0x62, 0x5f, 0x58, 0x5a, 0x5d, 0x5f, 0x5c, 0x54, 0x4a, 0x42,
    0x48, 0x45, 0x40, 0x3d, 0x3b, 0x3a, 0x39, 0x38, 0x3a, 0x38, 0x36, 0x35, 0x36, 0x38, 0x38, 0x37,
    0x37, 0x3a, 0x3f, 0x46, 0x4d, 0x52, 0x56, 0x58, 0x5c, 0x5c, 0x5d, 0x5e, 0x5f, 0x62, 0x6b, 0x74,
    0x7b, 0x7f, 0x7d, 0x79, 0x77, 0x70, 0x67, 0x66, 0x6b, 0x83, 0x9a, 0x96, 0x7a, 0x67, 0x73, 0x8b,
    0x81, 0x70, 0x5c, 0x58, 0x65, 0x74, 0x78, 0x75, 0x5f, 0x56, 0x4e, 0x4d, 0x51, 0x53, 0x54, 0x57,
    0x58, 0x52, 0x4b, 0x55, 0x87, 0xaf, 0xc4, 0xaa, 0x85, 0x6d, 0x65, 0x63, 0x64, 0x6e, 0x73, 0x7b,
    0x7d, 0x7f, 0x80, 0x7e, 0x7d, 0x7b, 0x76, 0x71, 0x73, 0x75, 0x76, 0x76, 0x75, 0x75, 0x76, 0x77,
    0x7b, 0x79, 0x79, 0x7f, 0x87, 0x8a, 0x87, 0x81, 0x79, 0x7b, 0x7c, 0x77, 0x6c, 0x60, 0x5b, 0x5c,
    0x68, 0x72, 0x80, 0x8b, 0x8f, 0x8e, 0x8d, 0x8c, 0x87, 0x86, 0x87, 0x82, 0x6e, 0x57, 0x52, 0x5b,
    0x71, 0x7d, 0x85, 0x82, 0x7a, 0x7d, 0x8c, 0x9b, 0xa1, 0x8e, 0x75, 0x67, 0x68, 0x70, 0x75, 0x76,
    0x6c, 0x62, 0x4c, 0x3e, 0x3f, 0x3e, 0x47, 0x5d, 0x5f, 0x55, 0x46, 0x41, 0x31, 0x38, 0x39, 0x3b,
    0x32, 0x2d, 0x27, 0x24, 0x25, 0x25, 0x24, 0x23, 0x1c, 0x17, 0x19, 0x2d, 0x4a, 0x5c, 0x56, 0x46,
    0x43, 0x3f, 0x38, 0x30, 0x28, 0x1f, 0x18, 0x14, 0x17, 0x17, 0x15, 0x13, 0x14, 0x16, 0x16, 0x14,
    0x0e, 0x0d, 0x14, 0x20, 0x1e, 0x13, 0x12, 0x1b, 0x13, 0x1b, 0x23, 0x24, 0x21, 0x20, 0x25, 0x2a,
    0x36, 0x32, 0x49, 0x75, 0x82, 0x63, 0x4f, 0x5a, 0x74, 0x86, 0x98, 0x9b, 0x93, 0x8f, 0x96, 0xa0,
    0xa4, 0x8d, 0x76, 0x60, 0x4b, 0x46, 0x50, 0x5a, 0x75, 0x76, 0x77, 0x77, 0x77, 0x74, 0x6e, 0x68,
    0x55, 0x58, 0x5b, 0x5b, 0x5d, 0x60, 0x61, 0x5f, 0x5f, 0x5f, 0x5e, 0x5c, 0x5a, 0x56, 0x4b, 0x41,
    0x38, 0x37, 0x41, 0x4e, 0x54, 0x58, 0x5b, 0x58, 0x58, 0x56, 0x53, 0x51, 0x51, 0x52, 0x52, 0x52,
    0x53, 0x54, 0x55, 0x55, 0x57, 0x5a, 0x5a, 0x57, 0x48, 0x44, 0x3f, 0x3e, 0x41, 0x47, 0x4e, 0x53,
    0x5e, 0x62, 0x5c, 0x4c, 0x43, 0x42, 0x3e, 0x36, 0x42, 0x44, 0x48, 0x47, 0x44, 0x45, 0x43, 0x3a,
    0x4c, 0x48, 0x47, 0x42, 0x3a, 0x3b, 0x3f, 0x3c, 0x3d, 0x3b, 0x42, 0x46, 0x43, 0x53, 0x7b, 0x9c,
    0xb1, 0xa5, 0x87, 0x53, 0x36, 0x31, 0x2f, 0x37, 0x37, 0x35, 0x30, 0x2c, 0x2b, 0x2e, 0x31, 0x33,
    0x34, 0x3a, 0x3b, 0x3a, 0x39, 0x38, 0x43, 0x56, 0x50, 0x57, 0x68, 0x8e, 0xbd, 0xd1, 0xc5, 0xb5,
    0xbb, 0xd4, 0xdd, 0xd6, 0xbe, 0xa2, 0x8f, 0x7a, 0x51, 0x58, 0x60, 0x6a, 0x74, 0x74, 0x60, 0x4a,
    0x50, 0x63, 0x6e, 0x62, 0x4c, 0x40, 0x43, 0x48, 0x56, 0x5f, 0x5b, 0x4d, 0x47, 0x4a, 0x41, 0x30,
    0x31, 0x29, 0x2a, 0x31, 0x33, 0x38, 0x40, 0x43, 0x4d, 0x4f, 0x55, 0x55, 0x4e, 0x51, 0x57, 0x56,
    0x6d, 0x7e, 0x8a, 0x86, 0x7f, 0x7f, 0x82, 0x82, 0x8b, 0x97, 0x9e, 0xa6, 0xb3, 0xbb, 0xbd, 0xc1,
    0xb0, 0xa4, 0x95, 0x7f, 0x67, 0x62, 0x6b, 0x71, 0x6b, 0x6c, 0x6a, 0x64, 0x5f, 0x61, 0x6a, 0x73,
    0x70, 0x6e, 0x69, 0x63, 0x60, 0x5e, 0x57, 0x51, 0x52, 0x5b, 0x6a, 0x79, 0x80, 0x7b, 0x73, 0x6e,
    0x74, 0x77, 0x7c, 0x7f, 0x7f, 0x7d, 0x7b, 0x7a, 0x7f, 0x80, 0x82, 0x82, 0x82, 0x84, 0x87, 0x8a,
    0x8f, 0x92, 0x96, 0x97, 0x97, 0x96, 0x92, 0x8c, 0x85, 0x85, 0x86, 0x87, 0x87, 0x87, 0x8a, 0x8e,
    0x90, 0x9a, 0x9d, 0x9c, 0xa1, 0xa2, 0xa2, 0xa4, 0xa1, 0xa0, 0x97, 0x86, 0x72, 0x5e, 0x4d, 0x43,
    0x3d, 0x36, 0x32, 0x3b, 0x49, 0x51, 0x4d, 0x46, 0x43, 0x44, 0x5b, 0x7c, 0x8e, 0x90, 0x87, 0x7c,
    0x73, 0x65, 0x63, 0x74, 0x86, 0x89, 0x81, 0x7a, 0x68, 0x5d, 0x57, 0x57, 0x5a, 0x63, 0x6a, 0x67,
    0x67, 0x6b, 0x71, 0x7a, 0x8a, 0x98, 0x9a, 0x95, 0xa2, 0xab, 0xb2, 0xb4, 0xaf, 0xa0, 0x93, 0x93,
    0x97, 0xa7, 0xa3, 0x93, 0x78, 0x64, 0x65, 0x63, 0x63, 0x63, 0x65, 0x6b, 0x73, 0x79, 0x7c, 0x7c,
    0x80, 0x81, 0x83, 0x81, 0x7d, 0x7b, 0x7f, 0x86, 0x89, 0x8d, 0x8b, 0x8b, 0x90, 0x91, 0x91, 0x96,
    0x8d, 0x8f, 0x8d, 0x8f, 0x93, 0x91, 0x8e, 0x93, 0x94, 0x93, 0x93, 0x93, 0x93, 0x90, 0x8d, 0x89,
    0x8e, 0x90, 0x91, 0x90, 0x8f, 0x8d, 0x87, 0x82, 0x7f, 0x82, 0x81, 0x7f, 0x7f, 0x7c, 0x79, 0x7c,
    0x7b, 0x7d, 0x7a, 0x7a, 0x7d, 0x79, 0x76, 0x7a, 0x7b, 0x7d, 0x7a, 0x72, 0x71, 0x76, 0x77, 0x73,
    0x6a, 0x6b, 0x6d, 0x6c, 0x69, 0x65, 0x62, 0x61, 0x64, 0x61, 0x5f, 0x5d, 0x5c, 0x5a, 0x56, 0x53,
    0x4e, 0x4a, 0x43, 0x3f, 0x3d, 0x3c, 0x3a, 0x38, 0x37, 0x39, 0x3a, 0x39, 0x39, 0x3a, 0x37, 0x34,
    0x39, 0x39, 0x3a, 0x3c, 0x41, 0x47, 0x4d, 0x50, 0x59, 0x5b, 0x5e, 0x61, 0x62, 0x65, 0x6d, 0x76,
    0x7c, 0x7e, 0x7b, 0x79, 0x78, 0x6f, 0x69, 0x6c, 0x80, 0x90, 0x9d, 0x95, 0x7f, 0x71, 0x79, 0x8a,
    0x87, 0x71, 0x5b, 0x57, 0x66, 0x75, 0x78, 0x74, 0x5d, 0x52, 0x4a, 0x4c, 0x4f, 0x4f, 0x4d, 0x4d,
    0x4c, 0x4d, 0x4b, 0x58, 0x8c, 0xb1, 0xc2, 0xaa, 0x82, 0x69, 0x63, 0x61, 0x63, 0x6c, 0x6f, 0x75,
    0x77, 0x77, 0x75, 0x72, 0x71, 0x72, 0x70, 0x6c, 0x75, 0x73, 0x6f, 0x67, 0x5f, 0x59, 0x57, 0x57,
    0x4e, 0x4b, 0x4c, 0x51, 0x54, 0x52, 0x52, 0x55, 0x5d, 0x5c, 0x5d, 0x5d, 0x5a, 0x58, 0x5b, 0x60,
    0x6e, 0x74, 0x7e, 0x86, 0x8a, 0x8b, 0x8f, 0x93, 0x8a, 0x88, 0x87, 0x81, 0x73, 0x65, 0x67, 0x71,
    0x71, 0x76, 0x7b, 0x7c, 0x80, 0x88, 0x92, 0x97, 0x97, 0x8e, 0x7c, 0x68, 0x5f, 0x63, 0x6d, 0x73,
    0x6c, 0x56, 0x3e, 0x37, 0x3e, 0x46, 0x57, 0x6c, 0x5e, 0x52, 0x3d, 0x37, 0x2e, 0x42, 0x4f, 0x57,
    0x57, 0x50, 0x44, 0x37, 0x2c, 0x27, 0x26, 0x27, 0x18, 0x1d, 0x29, 0x3b, 0x4a, 0x4e, 0x45, 0x3c,
    0x40, 0x3a, 0x2f, 0x25, 0x1d, 0x18, 0x15, 0x15, 0x16, 0x17, 0x16, 0x13, 0x12, 0x13, 0x12, 0x11,
    0x1d, 0x11, 0x10, 0x1a, 0x17, 0x0f, 0x21, 0x40, 0x74, 0x6c, 0x5d, 0x4f, 0x46, 0x46, 0x4d, 0x54,
    0x63, 0x87, 0x9a, 0x85, 0x5d, 0x44, 0x4f, 0x69, 0x7e, 0x8f, 0x94, 0x8b, 0x8f, 0x9f, 0xa0, 0x94,
    0x73, 0x59, 0x4e, 0x4f, 0x46, 0x41, 0x58, 0x75, 0x85, 0x77, 0x6b, 0x68, 0x64, 0x5e, 0x5c, 0x60,
    0x54, 0x57, 0x5a, 0x5c, 0x5e, 0x61, 0x62, 0x60, 0x60, 0x61, 0x61, 0x5f, 0x5a, 0x52, 0x46, 0x3a,
    0x37, 0x39, 0x47, 0x55, 0x58, 0x59, 0x5a, 0x57, 0x56, 0x54, 0x52, 0x52, 0x52, 0x53, 0x53, 0x52,
    0x51, 0x53, 0x54, 0x54, 0x57, 0x5b, 0x5b, 0x58, 0x4a, 0x45, 0x3f, 0x3f, 0x44, 0x4c, 0x52, 0x55,
    0x4f, 0x53, 0x52, 0x4b, 0x46, 0x45, 0x44, 0x41, 0x3d, 0x4a, 0x4a, 0x40, 0x3a, 0x38, 0x41, 0x53,
    0x66, 0x6b, 0x6b, 0x5c, 0x4e, 0x4f, 0x4a, 0x3a, 0x36, 0x38, 0x45, 0x4e, 0x4a, 0x48, 0x52, 0x5a,
    0x60, 0x5a, 0x50, 0x3c, 0x35, 0x35, 0x31, 0x3b, 0x44, 0x42, 0x3a, 0x30, 0x2b, 0x2e, 0x30, 0x2e,
    0x33, 0x31, 0x2b, 0x2d, 0x39, 0x3f, 0x3c, 0x3d, 0x44, 0x40, 0x3e, 0x51, 0x76, 0x93, 0xa5, 0xb2,
    0xb7, 0xc5, 0xbf, 0xb2, 0xa7, 0x9c, 0x8c, 0x6f, 0x46, 0x47, 0x47, 0x48, 0x50, 0x57, 0x51, 0x45,
    0x3a, 0x50, 0x62, 0x5b, 0x42, 0x32, 0x38, 0x46, 0x3b, 0x44, 0x49, 0x4a, 0x4d, 0x4f, 0x46, 0x39,
    0x36, 0x2d, 0x2b, 0x2e, 0x2c, 0x2e, 0x37, 0x3b, 0x4a, 0x46, 0x4b, 0x50, 0x4f, 0x55, 0x53, 0x44,
    0x55, 0x7b, 0xa6, 0xb1, 0x97, 0x76, 0x6d, 0x74, 0x82, 0x83, 0x7a, 0x75, 0x80, 0x8d, 0x91, 0x93,
    0x96, 0x89, 0x80, 0x73, 0x65, 0x68, 0x74, 0x75, 0x6c, 0x6d, 0x6b, 0x66, 0x62, 0x64, 0x6e, 0x76,
    0x72, 0x70, 0x6b, 0x63, 0x5c, 0x57, 0x4f, 0x49, 0x4a, 0x52, 0x62, 0x73, 0x7b, 0x79, 0x74, 0x72,
    0x6b, 0x6b, 0x70, 0x76, 0x76, 0x71, 0x6f, 0x71, 0x71, 0x72, 0x73, 0x76, 0x78, 0x7a, 0x7b, 0x7b,
    0x78, 0x7b, 0x7f, 0x81, 0x83, 0x84, 0x81, 0x7c, 0x76, 0x74, 0x71, 0x6e, 0x6d, 0x6c, 0x6b, 0x69,
    0x6e, 0x73, 0x72, 0x73, 0x79, 0x7b, 0x7c, 0x80, 0x88, 0x8c, 0x8a, 0x7e, 0x6c, 0x5a, 0x4a, 0x3f,
    0x38, 0x35, 0x35, 0x3d, 0x4a, 0x50, 0x4c, 0x46, 0x44, 0x4a, 0x68, 0x8e, 0x9f, 0x9a, 0x8d, 0x81,
    0x7c, 0x77, 0x78, 0x83, 0x90, 0x91, 0x87, 0x7c, 0x6a, 0x6d, 0x71, 0x6a, 0x60, 0x67, 0x76, 0x7c,
    0x85, 0x88, 0x8f, 0x96, 0x9c, 0xa2, 0xa5, 0xa7, 0xb3, 0xb4, 0xb6, 0xb9, 0xb4, 0xa8, 0xa3, 0xa6,
    0xb5, 0xc9, 0xbf, 0xa0, 0x7d, 0x67, 0x67, 0x65, 0x6b, 0x6c, 0x6e, 0x72, 0x76, 0x7c, 0x7f, 0x80,
    0x83, 0x81, 0x80, 0x7f, 0x7d, 0x7e, 0x85, 0x8e, 0x8f, 0x93, 0x91, 0x8e, 0x8f, 0x8f, 0x90, 0x97,
    0x92, 0x92, 0x8e, 0x90, 0x95, 0x93, 0x8f, 0x93, 0x96, 0x97, 0x98, 0x96, 0x93, 0x8f, 0x8b, 0x89,
    0x8f, 0x90, 0x90, 0x8e, 0x8d, 0x8d, 0x8a, 0x86, 0x81, 0x7f, 0x82, 0x82, 0x7d, 0x7c, 0x7d, 0x7b,
    0x7d, 0x7e, 0x7b, 0x7a, 0x7c, 0x77, 0x73, 0x78, 0x7d, 0x7c, 0x79, 0x76, 0x77, 0x79, 0x78, 0x75,
    0x71, 0x73, 0x74, 0x73, 0x70, 0x6e, 0x6e, 0x6f, 0x6d, 0x67, 0x5f, 0x5b, 0x5b, 0x5d, 0x5f, 0x5f,
    0x52, 0x4e, 0x49, 0x46, 0x44, 0x42, 0x3e, 0x3b, 0x3a, 0x3d, 0x3d, 0x3b, 0x3a, 0x3b, 0x3a, 0x37,
    0x38, 0x37, 0x37, 0x37, 0x3a, 0x3f, 0x44, 0x47, 0x51, 0x55, 0x5c, 0x62, 0x64, 0x67, 0x6f, 0x78,
    0x7d, 0x7e, 0x7c, 0x7c, 0x78, 0x6b, 0x65, 0x6c, 0x8d, 0x9c, 0xa7, 0xa1, 0x94, 0x90, 0x99, 0xa3,
    0x96, 0x80, 0x69, 0x63, 0x6d, 0x76, 0x75, 0x6f, 0x5b, 0x51, 0x4c, 0x4f, 0x52, 0x50, 0x50, 0x52,
    0x4a, 0x4e, 0x4c, 0x5a, 0x91, 0xb4, 0xbf, 0xa6, 0x7f, 0x66, 0x60, 0x60, 0x64, 0x6c, 0x6d, 0x71,
    0x77, 0x76, 0x71, 0x6b, 0x6a, 0x6b, 0x6a, 0x68, 0x74, 0x6f, 0x64, 0x56, 0x49, 0x42, 0x41, 0x42,
    0x43, 0x44, 0x45, 0x46, 0x46, 0x47, 0x48, 0x49, 0x43, 0x45, 0x48, 0x4b, 0x4c, 0x4d, 0x53, 0x59,
    0x5d, 0x5c, 0x59, 0x58, 0x58, 0x5c, 0x62, 0x67, 0x70, 0x78, 0x83, 0x85, 0x7b, 0x6c, 0x61, 0x5e,
    0x69, 0x6e, 0x73, 0x77, 0x7e, 0x85, 0x88, 0x87, 0x8e, 0x84, 0x74, 0x69, 0x6b, 0x6f, 0x66, 0x59,
    0x4e, 0x44, 0x40, 0x45, 0x48, 0x4d, 0x55, 0x57, 0x4b, 0x47, 0x3d, 0x3a, 0x2f, 0x40, 0x4b, 0x52,
    0x42, 0x3f, 0x3a, 0x34, 0x2e, 0x29, 0x27, 0x25, 0x23, 0x29, 0x35, 0x41, 0x42, 0x3a, 0x34, 0x32,
    0x36, 0x2f, 0x25, 0x1d, 0x17, 0x15, 0x14, 0x14, 0x13, 0x17, 0x19, 0x17, 0x15, 0x15, 0x16, 0x15,
    0x0f, 0x1c, 0x1b, 0x17, 0x35, 0x6a, 0x86, 0x83, 0x3c, 0x2f, 0x24, 0x28, 0x40, 0x61, 0x7d, 0x8d,
    0x9a, 0x91, 0x73, 0x4b, 0x30, 0x2f, 0x4c, 0x70, 0x82, 0x8d, 0x95, 0x9b, 0xa6, 0xa9, 0x90, 0x70,
    0x4a, 0x5a, 0x5a, 0x40, 0x3b, 0x5e, 0x7c, 0x7c, 0x6a, 0x6c, 0x6a, 0x61, 0x58, 0x54, 0x52, 0x50,
    0x53, 0x56, 0x5a, 0x5b, 0x5e, 0x61, 0x62, 0x61, 0x62, 0x64, 0x65, 0x62, 0x5c, 0x51, 0x43, 0x37,
    0x37, 0x3c, 0x4b, 0x59, 0x5a, 0x59, 0x59, 0x56, 0x53, 0x52, 0x51, 0x51, 0x52, 0x52, 0x52, 0x51,
    0x4f, 0x52, 0x54, 0x54, 0x57, 0x5c, 0x5d, 0x59, 0x50, 0x48, 0x3f, 0x3e, 0x45, 0x4d, 0x52, 0x52,
    0x54, 0x55, 0x56, 0x53, 0x4b, 0x43, 0x40, 0x42, 0x41, 0x45, 0x3d, 0x43, 0x5f, 0x72, 0x81, 0x9a,
    0xa8, 0xa6, 0x95, 0x7d, 0x7b, 0x8e, 0x88, 0x69, 0x43, 0x38, 0x37, 0x3e, 0x43, 0x4b, 0x53, 0x55,
    0x4e, 0x48, 0x3d, 0x2a, 0x2a, 0x31, 0x2d, 0x33, 0x3a, 0x35, 0x33, 0x33, 0x30, 0x2c, 0x2e, 0x34,
    0x3b, 0x3e, 0x37, 0x2f, 0x32, 0x36, 0x39, 0x3c, 0x38, 0x3e, 0x45, 0x4f, 0x55, 0x58, 0x6a, 0x85,
    0x99, 0xb6, 0xbf, 0xbd, 0xb8, 0xb2, 0x9f, 0x7d, 0x4c, 0x41, 0x3a, 0x3c, 0x3c, 0x36, 0x33, 0x34,
    0x3a, 0x3b, 0x3e, 0x3f, 0x3c, 0x36, 0x34, 0x35, 0x3e, 0x44, 0x4e, 0x58, 0x5b, 0x53, 0x46, 0x3b,
    0x3b, 0x36, 0x3b, 0x41, 0x3b, 0x36, 0x34, 0x32, 0x3d, 0x3f, 0x4b, 0x4e, 0x48, 0x4f, 0x55, 0x4c,
    0x47, 0x5c, 0x7e, 0x94, 0x8c, 0x7d, 0x8b, 0xa6, 0xad, 0x9b, 0x77, 0x5f, 0x63, 0x72, 0x7d, 0x84,
    0x7d, 0x6c, 0x65, 0x65, 0x67, 0x73, 0x79, 0x6f, 0x6c, 0x6f, 0x6f, 0x6a, 0x64, 0x62, 0x67, 0x6d,
    0x78, 0x76, 0x6f, 0x65, 0x5d, 0x58, 0x54, 0x4f, 0x4d, 0x50, 0x5a, 0x66, 0x6c, 0x6b, 0x6b, 0x6e,
    0x78, 0x70, 0x6c, 0x6c, 0x65, 0x59, 0x56, 0x5a, 0x5e, 0x5d, 0x5d, 0x5f, 0x63, 0x65, 0x66, 0x65,
    0x69, 0x6b, 0x6c, 0x6d, 0x6d, 0x6d, 0x68, 0x63, 0x5a, 0x5e, 0x61, 0x5f, 0x5d, 0x5e, 0x5e, 0x5e,
    0x5d, 0x5c, 0x56, 0x55, 0x5d, 0x5f, 0x5e, 0x62, 0x65, 0x6a, 0x6b, 0x66, 0x5e, 0x56, 0x4c, 0x43,
    0x40, 0x3f, 0x3f, 0x44, 0x4a, 0x4c, 0x48, 0x43, 0x44, 0x4c, 0x6c, 0x93, 0x9f, 0x93, 0x80, 0x72,
    0x80, 0x89, 0x8f, 0x8c, 0x89, 0x89, 0x85, 0x7f, 0x7b, 0x7d, 0x7e, 0x78, 0x73, 0x7e, 0x8c, 0x8d,
    0x98, 0x9a, 0x9f, 0xa2, 0xa2, 0xa0, 0xa3, 0xa8, 0xa2, 0x9d, 0x9e, 0xa3, 0xa2, 0x9c, 0x9f, 0xa9,
    0xb8, 0xb8, 0x97, 0x76, 0x69, 0x69, 0x6e, 0x67, 0x6d, 0x70, 0x72, 0x73, 0x74, 0x78, 0x7d, 0x80,
    0x83, 0x80, 0x80, 0x84, 0x86, 0x87, 0x8d, 0x94, 0x8e, 0x96, 0x97, 0x93, 0x92, 0x8e, 0x8f, 0x97,
    0x98, 0x96, 0x8f, 0x8e, 0x92, 0x90, 0x8b, 0x8e, 0x9b, 0x9d, 0x9e, 0x9a, 0x92, 0x8b, 0x88, 0x87,
    0x90, 0x90, 0x8e, 0x8b, 0x8a, 0x8c, 0x8b, 0x89, 0x85, 0x7f, 0x84, 0x85, 0x7d, 0x7e, 0x83, 0x7e,
    0x7c, 0x7e, 0x7b, 0x7c, 0x7f, 0x7c, 0x7a, 0x7f, 0x7f, 0x7c, 0x7a, 0x7c, 0x7e, 0x7e, 0x7b, 0x78,
    0x77, 0x78, 0x78, 0x74, 0x6f, 0x6c, 0x6c, 0x6d, 0x66, 0x64, 0x64, 0x65, 0x66, 0x64, 0x5e, 0x5a,
    0x56, 0x53, 0x51, 0x4f, 0x4f, 0x4c, 0x47, 0x42, 0x3d, 0x3e, 0x3c, 0x36, 0x34, 0x38, 0x3b, 0x3c,
    0x37, 0x36, 0x36, 0x36, 0x38, 0x3b, 0x3f, 0x41, 0x46, 0x4c, 0x56, 0x5e, 0x62, 0x65, 0x6d, 0x76,
    0x80, 0x7f, 0x7d, 0x7e, 0x77, 0x65, 0x5e, 0x68, 0x71, 0x86, 0x95, 0x8f, 0x83, 0x81, 0x8b, 0x94,
    0x8b, 0x7a, 0x6a, 0x68, 0x71, 0x78, 0x76, 0x71, 0x5c, 0x53, 0x4c, 0x4d, 0x4d, 0x4b, 0x4d, 0x53,
    0x4d, 0x50, 0x4d, 0x5b, 0x94, 0xb5, 0xbe, 0xa3, 0x7c, 0x63, 0x5e, 0x60, 0x66, 0x6f, 0x6f, 0x72,
    0x7b, 0x78, 0x70, 0x68, 0x64, 0x65, 0x65, 0x63, 0x6d, 0x67, 0x5c, 0x4f, 0x45, 0x42, 0x46, 0x4b,
    0x46, 0x4c, 0x4d, 0x49, 0x49, 0x4e, 0x4f, 0x4b, 0x55, 0x58, 0x5b, 0x5b, 0x53, 0x4b, 0x48, 0x4b,
    0x54, 0x53, 0x50, 0x4d, 0x4b, 0x4c, 0x4c, 0x4b, 0x4b, 0x4f, 0x52, 0x51, 0x4f, 0x4f, 0x51, 0x53,
    0x5e, 0x67, 0x6e, 0x6d, 0x6a, 0x6a, 0x6c, 0x6b, 0x75, 0x80, 0x83, 0x7a, 0x71, 0x6b, 0x61, 0x55,
    0x49, 0x46, 0x4a, 0x49, 0x42, 0x47, 0x4c, 0x43, 0x40, 0x3e, 0x35, 0x32, 0x27, 0x38, 0x43, 0x49,
    0x40, 0x36, 0x2a, 0x26, 0x2a, 0x30, 0x33, 0x32, 0x28, 0x26, 0x2b, 0x34, 0x33, 0x2a, 0x27, 0x2a,
    0x27, 0x23, 0x1e, 0x1a, 0x18, 0x17, 0x15, 0x14, 0x18, 0x1d, 0x1f, 0x1c, 0x17, 0x16, 0x15, 0x14,
    0x1a, 0x19, 0x32, 0x62, 0x83, 0x74, 0x46, 0x21, 0x39, 0x4b, 0x65, 0x7d, 0x8a, 0x8d, 0x88, 0x84,
    0x67, 0x4f, 0x30, 0x2b, 0x44, 0x5f, 0x71, 0x7c, 0x89, 0x8c, 0x97, 0xa2, 0x9c, 0x83, 0x6a, 0x5d,
    0x6c, 0x50, 0x3c, 0x3e, 0x4d, 0x60, 0x6b, 0x6b, 0x69, 0x62, 0x5a, 0x56, 0x50, 0x4b, 0x4b, 0x4f,
    0x4c, 0x51, 0x57, 0x5c, 0x5f, 0x60, 0x5f, 0x5e, 0x60, 0x61, 0x63, 0x61, 0x57, 0x48, 0x3d, 0x38,
    0x3d, 0x43, 0x4d, 0x55, 0x59, 0x59, 0x57, 0x55, 0x55, 0x52, 0x50, 0x50, 0x53, 0x54, 0x53, 0x52,
    0x55, 0x54, 0x54, 0x56, 0x57, 0x58, 0x58, 0x57, 0x52, 0x4a, 0x42, 0x41, 0x43, 0x44, 0x44, 0x45,
    0x50, 0x55, 0x56, 0x50, 0x4a, 0x48, 0x47, 0x46, 0x41, 0x40, 0x45, 0x51, 0x77, 0x9f, 0xb0, 0xbe,
    0xb7, 0xc1, 0xb5, 0x98, 0x8b, 0x93, 0x90, 0x80, 0x53, 0x35, 0x2c, 0x37, 0x3c, 0x40, 0x44, 0x42,
    0x3b, 0x32, 0x2a, 0x2b, 0x33, 0x3a, 0x3a, 0x36, 0x44, 0x4a, 0x4a, 0x3f, 0x33, 0x32, 0x39, 0x41,
    0x4e, 0x49, 0x41, 0x39, 0x36, 0x3a, 0x42, 0x49, 0x44, 0x46, 0x49, 0x4d, 0x52, 0x57, 0x5c, 0x5f,
    0x6f, 0x86, 0x96, 0x91, 0x88, 0x84, 0x7e, 0x75, 0x59, 0x4b, 0x42, 0x40, 0x39, 0x2e, 0x2c, 0x32,
    0x32, 0x37, 0x37, 0x39, 0x3c, 0x38, 0x33, 0x35, 0x42, 0x4d, 0x51, 0x5a, 0x59, 0x4e, 0x46, 0x36,
    0x39, 0x3f, 0x47, 0x4a, 0x48, 0x43, 0x40, 0x3e, 0x41, 0x4e, 0x56, 0x54, 0x53, 0x57, 0x56, 0x50,
    0x47, 0x48, 0x5e, 0x5c, 0x6a, 0x70, 0x84, 0x96, 0x94, 0x89, 0x74, 0x61, 0x58, 0x5a, 0x5f, 0x60,
    0x64, 0x53, 0x54, 0x61, 0x68, 0x72, 0x7d, 0x7c, 0x7c, 0x77, 0x74, 0x72, 0x6d, 0x67, 0x65, 0x68,
    0x6e, 0x76, 0x7c, 0x7b, 0x79, 0x74, 0x68, 0x5c, 0x5a, 0x51, 0x50, 0x5f, 0x6e, 0x72, 0x71, 0x71,
    0x70, 0x74, 0x74, 0x6a, 0x59, 0x4d, 0x4b, 0x4d, 0x4e, 0x4b, 0x46, 0x42, 0x42, 0x45, 0x49, 0x4b,
    0x4a, 0x4a, 0x4c, 0x51, 0x53, 0x51, 0x51, 0x52, 0x49, 0x4b, 0x4d, 0x4f, 0x4e, 0x4e, 0x4e, 0x4e,
    0x40, 0x3f, 0x3d, 0x3c, 0x3d, 0x40, 0x44, 0x46, 0x44, 0x43, 0x45, 0x4d, 0x52, 0x50, 0x4b, 0x48,
    0x45, 0x3f, 0x3e, 0x42, 0x47, 0x47, 0x45, 0x46, 0x43, 0x64, 0x83, 0x8f, 0x8d, 0x7f, 0x70, 0x6a,
    0x7a, 0x73, 0x78, 0x84, 0x88, 0x85, 0x7d, 0x74, 0x71, 0x70, 0x6e, 0x6c, 0x6c, 0x6f, 0x73, 0x77,
    0x83, 0x84, 0x85, 0x87, 0x89, 0x8d, 0x92, 0x95, 0x95, 0x96, 0x94, 0x8e, 0x88, 0x88, 0x8b, 0x8f,
    0x8c, 0x90, 0x82, 0x72, 0x6f, 0x6a, 0x68, 0x70, 0x73, 0x70, 0x71, 0x76, 0x7a, 0x7c, 0x7e, 0x82,
    0x86, 0x85, 0x83, 0x82, 0x84, 0x88, 0x8e, 0x92, 0x98, 0x9c, 0x9b, 0x94, 0x8e, 0x8f, 0x93, 0x94,
    0x98, 0x9b, 0x9a, 0x95, 0x92, 0x94, 0x95, 0x94, 0x99, 0x97, 0x99, 0x9c, 0x97, 0x8b, 0x85, 0x87,
    0x8a, 0x8c, 0x8e, 0x8e, 0x8c, 0x88, 0x86, 0x85, 0x86, 0x85, 0x86, 0x89, 0x89, 0x85, 0x81, 0x80,
    0x85, 0x7b, 0x7e, 0x81, 0x7e, 0x83, 0x86, 0x7d, 0x7b, 0x7d, 0x80, 0x81, 0x80, 0x7e, 0x7d, 0x7d,
    0x79, 0x7b, 0x7b, 0x75, 0x6f, 0x6b, 0x68, 0x65, 0x66, 0x6a, 0x6c, 0x66, 0x5c, 0x55, 0x57, 0x5c,
    0x5f, 0x59, 0x52, 0x4f, 0x4e, 0x4c, 0x47, 0x43, 0x40, 0x3a, 0x37, 0x39, 0x3c, 0x3d, 0x3d, 0x3d,
    0x3b, 0x3b, 0x39, 0x38, 0x37, 0x3a, 0x3e, 0x41, 0x47, 0x49, 0x4f, 0x58, 0x5f, 0x66, 0x6e, 0x75,
    0x7d, 0x7f, 0x83, 0x7e, 0x71, 0x6a, 0x64, 0x5a, 0x6d, 0x87, 0x92, 0x8b, 0x77, 0x6d, 0x7d, 0x88,
    0x8c, 0x6d, 0x66, 0x71, 0x73, 0x78, 0x7b, 0x6f, 0x61, 0x51, 0x4c, 0x51, 0x50, 0x4f, 0x52, 0x55,
    0x51, 0x50, 0x51, 0x5a, 0x96, 0xba, 0xbc, 0xa0, 0x79, 0x68, 0x5f, 0x62, 0x64, 0x69, 0x6e, 0x6e,
    0x6e, 0x71, 0x6d, 0x6a, 0x6c, 0x6a, 0x67, 0x69, 0x6b, 0x61, 0x51, 0x43, 0x3d, 0x3e, 0x3f, 0x3d,
    0x3e, 0x3f, 0x3f, 0x3e, 0x3e, 0x40, 0x45, 0x49, 0x4b, 0x50, 0x54, 0x51, 0x48, 0x40, 0x3f, 0x43,
    0x4c, 0x4f, 0x51, 0x52, 0x51, 0x51, 0x52, 0x54, 0x55, 0x50, 0x50, 0x4f, 0x47, 0x44, 0x46, 0x43,
    0x4c, 0x4a, 0x4b, 0x4d, 0x4b, 0x47, 0x48, 0x4c, 0x5d, 0x6c, 0x72, 0x6f, 0x6f, 0x6b, 0x5e, 0x56,
    0x4b, 0x51, 0x48, 0x49, 0x4c, 0x46, 0x48, 0x47, 0x49, 0x38, 0x36, 0x3d, 0x2f, 0x2d, 0x3a, 0x2c,
    0x2e, 0x24, 0x23, 0x28, 0x2b, 0x30, 0x33, 0x30, 0x26, 0x1f, 0x1b, 0x1b, 0x1c, 0x1a, 0x19, 0x1b,
    0x18, 0x1b, 0x1a, 0x15, 0x17, 0x20, 0x27, 0x28, 0x25, 0x22, 0x23, 0x22, 0x1d, 0x1d, 0x1c, 0x15,
    0x20, 0x50, 0x8d, 0x97, 0x63, 0x34, 0x37, 0x4e, 0x65, 0x77, 0x7f, 0x7e, 0x7f, 0x76, 0x5e, 0x4a,
    0x3f, 0x3c, 0x53, 0x78, 0x7f, 0x6a, 0x64, 0x72, 0x8e, 0x99, 0x97, 0x9a, 0x85, 0x62, 0x59, 0x51,
    0x3f, 0x37, 0x36, 0x45, 0x54, 0x5b, 0x5d, 0x60, 0x62, 0x5c, 0x52, 0x4a, 0x4a, 0x4e, 0x4d, 0x47,
    0x4d, 0x51, 0x56, 0x5c, 0x5f, 0x60, 0x5f, 0x5f, 0x5a, 0x5b, 0x5d, 0x5a, 0x4f, 0x41, 0x39, 0x38,
    0x44, 0x49, 0x51, 0x58, 0x5c, 0x5c, 0x5a, 0x59, 0x56, 0x55, 0x53, 0x54, 0x55, 0x55, 0x52, 0x50,
    0x52, 0x52, 0x53, 0x55, 0x57, 0x57, 0x56, 0x54, 0x52, 0x4a, 0x44, 0x46, 0x4b, 0x50, 0x53, 0x55,
    0x57, 0x58, 0x56, 0x51, 0x4f, 0x4d, 0x48, 0x41, 0x48, 0x48, 0x4f, 0x59, 0x7a, 0x9d, 0xac, 0xbb,
    0xb5, 0xba, 0xb2, 0x9b, 0x8a, 0x8b, 0x95, 0x9a, 0x75, 0x4d, 0x2c, 0x27, 0x2d, 0x31, 0x34, 0x35,
    0x2e, 0x2b, 0x2a, 0x2e, 0x37, 0x3e, 0x43, 0x44, 0x54, 0x56, 0x51, 0x44, 0x38, 0x33, 0x35, 0x38,
    0x37, 0x37, 0x39, 0x3c, 0x41, 0x46, 0x49, 0x4a, 0x4c, 0x49, 0x48, 0x4c, 0x54, 0x5b, 0x5f, 0x5f,
    0x75, 0x8d, 0xa1, 0x9f, 0x8f, 0x79, 0x60, 0x4c, 0x50, 0x4b, 0x47, 0x45, 0x42, 0x3d, 0x37, 0x34,
    0x2b, 0x34, 0x39, 0x3f, 0x45, 0x41, 0x39, 0x39, 0x43, 0x51, 0x54, 0x54, 0x49, 0x3b, 0x3a, 0x33,
    0x36, 0x3b, 0x42, 0x46, 0x47, 0x48, 0x4a, 0x4c, 0x54, 0x5b, 0x5d, 0x59, 0x5a, 0x60, 0x5f, 0x58,
    0x4f, 0x43, 0x48, 0x40, 0x4b, 0x4c, 0x51, 0x57, 0x5a, 0x59, 0x58, 0x5a, 0x5b, 0x59, 0x55, 0x51,
    0x5b, 0x59, 0x62, 0x70, 0x78, 0x7f, 0x85, 0x86, 0x83, 0x7e, 0x79, 0x78, 0x75, 0x71, 0x70, 0x72,
    0x78, 0x7e, 0x83, 0x82, 0x7e, 0x79, 0x72, 0x6d, 0x65, 0x5a, 0x57, 0x62, 0x6f, 0x73, 0x70, 0x6e,
    0x76, 0x79, 0x79, 0x71, 0x64, 0x5c, 0x5b, 0x5e, 0x57, 0x55, 0x50, 0x4c, 0x47, 0x43, 0x3f, 0x3d,
    0x3a, 0x39, 0x3a, 0x3c, 0x3c, 0x38, 0x36, 0x36, 0x34, 0x36, 0x37, 0x38, 0x37, 0x36, 0x37, 0x37,
    0x39, 0x38, 0x37, 0x36, 0x36, 0x38, 0x3a, 0x3b, 0x34, 0x34, 0x39, 0x43, 0x4a, 0x4a, 0x46, 0x43,
    0x47, 0x42, 0x40, 0x44, 0x48, 0x49, 0x49, 0x4a, 0x4b, 0x6b, 0x83, 0x83, 0x75, 0x65, 0x5e, 0x61,
    0x61, 0x62, 0x71, 0x81, 0x7f, 0x75, 0x6c, 0x65, 0x64, 0x62, 0x60, 0x5c, 0x59, 0x59, 0x5b, 0x5d,
    0x5b, 0x5d, 0x5f, 0x61, 0x64, 0x68, 0x6c, 0x6f, 0x7f, 0x7f, 0x7e, 0x7d, 0x7d, 0x7e, 0x81, 0x82,
    0x81, 0x7f, 0x76, 0x72, 0x75, 0x6f, 0x6a, 0x73, 0x74, 0x72, 0x74, 0x79, 0x7d, 0x7d, 0x7e, 0x80,
    0x8b, 0x88, 0x84, 0x82, 0x84, 0x89, 0x90, 0x94, 0x96, 0x9a, 0x9a, 0x96, 0x93, 0x95, 0x98, 0x99,
    0x98, 0x9a, 0x9a, 0x96, 0x92, 0x91, 0x92, 0x93, 0x98, 0x97, 0x99, 0x9c, 0x97, 0x8c, 0x86, 0x87,
    0x89, 0x8b, 0x8d, 0x8e, 0x8c, 0x89, 0x88, 0x88, 0x89, 0x87, 0x87, 0x89, 0x88, 0x84, 0x81, 0x80,
    0x86, 0x81, 0x81, 0x83, 0x82, 0x84, 0x83, 0x7e, 0x87, 0x84, 0x81, 0x7e, 0x7d, 0x7f, 0x81, 0x82,
    0x76, 0x7a, 0x7b, 0x76, 0x71, 0x6e, 0x6d, 0x6c, 0x6a, 0x6c, 0x6b, 0x64, 0x5d, 0x5b, 0x60, 0x66,
    0x5b, 0x58, 0x54, 0x52, 0x51, 0x50, 0x4e, 0x4b, 0x43, 0x3f, 0x3c, 0x3c, 0x3d, 0x3d, 0x3e, 0x41,
    0x40, 0x40, 0x40, 0x3e, 0x3d, 0x3c, 0x3d, 0x3e, 0x44, 0x46, 0x4c, 0x54, 0x5b, 0x64, 0x6f, 0x78,
    0x7d, 0x7c, 0x7e, 0x78, 0x6b, 0x62, 0x61, 0x60, 0x70, 0x8d, 0x97, 0x8a, 0x72, 0x6d, 0x88, 0x9a,
    0x8a, 0x6b, 0x63, 0x6d, 0x70, 0x77, 0x7a, 0x70, 0x5f, 0x59, 0x5b, 0x5e, 0x58, 0x54, 0x54, 0x52,
    0x50, 0x4e, 0x51, 0x5e, 0x99, 0xbc, 0xbb, 0x9d, 0x77, 0x67, 0x5f, 0x61, 0x64, 0x68, 0x6d, 0x6c,
    0x6a, 0x6e, 0x6b, 0x68, 0x6b, 0x6a, 0x68, 0x6b, 0x62, 0x58, 0x47, 0x3b, 0x38, 0x3a, 0x38, 0x34,
    0x2e, 0x2e, 0x2e, 0x2e, 0x2f, 0x30, 0x30, 0x2f, 0x38, 0x39, 0x39, 0x39, 0x38, 0x3b, 0x42, 0x49,
    0x4c, 0x51, 0x4f, 0x46, 0x42, 0x47, 0x4c, 0x4b, 0x43, 0x4a, 0x54, 0x54, 0x4a, 0x44, 0x43, 0x41,
    0x3a, 0x36, 0x35, 0x39, 0x3c, 0x3f, 0x42, 0x46, 0x4c, 0x56, 0x5f, 0x67, 0x6c, 0x65, 0x5f, 0x62,
    0x7f, 0x81, 0x70, 0x64, 0x5a, 0x4a, 0x46, 0x43, 0x3e, 0x49, 0x3c, 0x3f, 0x59, 0x61, 0x55, 0x43,
    0x21, 0x1e, 0x21, 0x20, 0x17, 0x13, 0x16, 0x16, 0x15, 0x19, 0x16, 0x0f, 0x12, 0x1c, 0x1d, 0x14,
    0x14, 0x17, 0x17, 0x21, 0x45, 0x72, 0x85, 0x7f, 0x6a, 0x5c, 0x55, 0x4c, 0x3a, 0x2f, 0x36, 0x40,
    0x6f, 0x90, 0x7d, 0x46, 0x34, 0x42, 0x5a, 0x74, 0x76, 0x70, 0x65, 0x5b, 0x52, 0x47, 0x4a, 0x5b,
    0x66, 0x7b, 0x78, 0x57, 0x45, 0x58, 0x74, 0x81, 0x93, 0x9c, 0x91, 0x81, 0x64, 0x47, 0x42, 0x3b,
    0x39, 0x35, 0x39, 0x47, 0x54, 0x56, 0x54, 0x53, 0x56, 0x52, 0x4b, 0x45, 0x45, 0x47, 0x43, 0x3d,
    0x4e, 0x51, 0x56, 0x5b, 0x5e, 0x5f, 0x5f, 0x5e, 0x59, 0x5a, 0x59, 0x53, 0x47, 0x3d, 0x3b, 0x3f,
    0x49, 0x4d, 0x52, 0x58, 0x5b, 0x5b, 0x5a, 0x59, 0x57, 0x56, 0x54, 0x55, 0x55, 0x53, 0x4f, 0x4c,
    0x4f, 0x50, 0x52, 0x54, 0x57, 0x57, 0x55, 0x54, 0x4b, 0x44, 0x41, 0x46, 0x50, 0x57, 0x5b, 0x5d,
    0x55, 0x54, 0x54, 0x55, 0x59, 0x5b, 0x57, 0x50, 0x45, 0x4a, 0x51, 0x4e, 0x5a, 0x71, 0x83, 0x9b,
    0xb1, 0xb1, 0xb4, 0xb3, 0xa2, 0x88, 0x77, 0x73, 0x72, 0x56, 0x38, 0x30, 0x34, 0x30, 0x2a, 0x2d,
    0x31, 0x2e, 0x2b, 0x29, 0x2b, 0x33, 0x3e, 0x45, 0x46, 0x45, 0x3f, 0x37, 0x31, 0x31, 0x31, 0x30,
    0x2e, 0x2b, 0x2a, 0x2f, 0x38, 0x40, 0x44, 0x44, 0x4a, 0x4d, 0x51, 0x57, 0x5b, 0x5e, 0x5e, 0x5e,
    0x5e, 0x64, 0x68, 0x63, 0x5a, 0x52, 0x4c, 0x49, 0x41, 0x43, 0x42, 0x3f, 0x40, 0x41, 0x3c, 0x33,
    0x30, 0x3a, 0x46, 0x51, 0x56, 0x4c, 0x44, 0x47, 0x4d, 0x4f, 0x45, 0x40, 0x3a, 0x36, 0x3c, 0x38,
    0x33, 0x36, 0x39, 0x3a, 0x3b, 0x3e, 0x42, 0x45, 0x49, 0x4d, 0x4e, 0x4d, 0x53, 0x5b, 0x59, 0x51,
    0x42, 0x3d, 0x46, 0x41, 0x46, 0x46, 0x49, 0x50, 0x4f, 0x4d, 0x53, 0x5e, 0x65, 0x61, 0x5b, 0x58,
    0x52, 0x5d, 0x63, 0x69, 0x71, 0x76, 0x77, 0x79, 0x7c, 0x77, 0x73, 0x72, 0x72, 0x71, 0x70, 0x71,
    0x74, 0x76, 0x7a, 0x7c, 0x7a, 0x77, 0x77, 0x7a, 0x73, 0x68, 0x62, 0x69, 0x72, 0x74, 0x6f, 0x6c,
    0x6d, 0x71, 0x72, 0x6e, 0x64, 0x5c, 0x58, 0x58, 0x5b, 0x5a, 0x5a, 0x58, 0x53, 0x4c, 0x43, 0x3d,
    0x3f, 0x3e, 0x3d, 0x3d, 0x3a, 0x35, 0x31, 0x30, 0x33, 0x34, 0x34, 0x33, 0x32, 0x32, 0x33, 0x34,
    0x34, 0x34, 0x34, 0x34, 0x34, 0x33, 0x33, 0x32, 0x30, 0x30, 0x35, 0x3e, 0x45, 0x47, 0x46, 0x46,
    0x48, 0x44, 0x41, 0x43, 0x46, 0x48, 0x49, 0x4b, 0x55, 0x6a, 0x73, 0x67, 0x56, 0x49, 0x48, 0x4f,
    0x4f, 0x59, 0x71, 0x80, 0x73, 0x5d, 0x55, 0x54, 0x58, 0x59, 0x58, 0x57, 0x56, 0x56, 0x58, 0x59,
    0x55, 0x56, 0x58, 0x59, 0x5a, 0x5b, 0x5d, 0x5f, 0x65, 0x68, 0x6b, 0x6c, 0x6d, 0x6f, 0x74, 0x79,
    0x79, 0x74, 0x70, 0x78, 0x7f, 0x77, 0x70, 0x77, 0x77, 0x76, 0x78, 0x7d, 0x80, 0x80, 0x80, 0x80,
    0x86, 0x81, 0x7c, 0x7b, 0x7f, 0x87, 0x8d, 0x91, 0x92, 0x95, 0x96, 0x95, 0x94, 0x96, 0x97, 0x96,
    0x97, 0x99, 0x9b, 0x99, 0x94, 0x8e, 0x8f, 0x92, 0x98, 0x97, 0x99, 0x9b, 0x97, 0x8e, 0x89, 0x89,
    0x8a, 0x8c, 0x8d, 0x8f, 0x8f, 0x8f, 0x8e, 0x8e, 0x8b, 0x89, 0x88, 0x8a, 0x8a, 0x87, 0x85, 0x84,
    0x87, 0x88, 0x86, 0x85, 0x89, 0x87, 0x82, 0x82, 0x8c, 0x87, 0x81, 0x7d, 0x7c, 0x7d, 0x80, 0x82,
    0x7c, 0x80, 0x81, 0x7a, 0x73, 0x6f, 0x6d, 0x6d, 0x6f, 0x6c, 0x66, 0x5f, 0x5b, 0x5c, 0x61, 0x66,
    0x5b, 0x5b, 0x59, 0x58, 0x57, 0x55, 0x54, 0x54, 0x46, 0x44, 0x43, 0x42, 0x3f, 0x3d, 0x3f, 0x43,
    0x41, 0x43, 0x44, 0x43, 0x41, 0x3f, 0x3d, 0x3d, 0x40, 0x42, 0x47, 0x4d, 0x54, 0x5e, 0x6d, 0x7a,
    0x80, 0x7d, 0x7c, 0x78, 0x6b, 0x60, 0x65, 0x72, 0x7c, 0x98, 0x9e, 0x8e, 0x7c, 0x7e, 0x99, 0xa4,
    0x91, 0x75, 0x6a, 0x70, 0x72, 0x77, 0x79, 0x6f, 0x60, 0x60, 0x64, 0x66, 0x63, 0x64, 0x61, 0x58,
    0x4f, 0x4b, 0x50, 0x65, 0x9d, 0xbf, 0xb9, 0x99, 0x75, 0x65, 0x5e, 0x62, 0x64, 0x68, 0x6c, 0x6a,
    0x6a, 0x6c, 0x69, 0x67, 0x6b, 0x69, 0x67, 0x6a, 0x6b, 0x60, 0x52, 0x48, 0x46, 0x44, 0x3a, 0x30,
    0x37, 0x34, 0x31, 0x30, 0x31, 0x32, 0x30, 0x2f, 0x32, 0x30, 0x2e, 0x30, 0x36, 0x3e, 0x45, 0x49,
    0x4c, 0x52, 0x4b, 0x37, 0x2b, 0x2f, 0x32, 0x2e, 0x38, 0x3b, 0x3d, 0x3f, 0x44, 0x47, 0x40, 0x36,
    0x3e, 0x3b, 0x3c, 0x43, 0x4b, 0x51, 0x55, 0x58, 0x52, 0x53, 0x59, 0x64, 0x67, 0x5c, 0x5a, 0x68,
    0x83, 0x8a, 0x7f, 0x74, 0x65, 0x4e, 0x43, 0x3e, 0x42, 0x39, 0x52, 0x73, 0x6d, 0x6a, 0x71, 0x59,
    0x36, 0x22, 0x15, 0x16, 0x1b, 0x1e, 0x1a, 0x0e, 0x19, 0x15, 0x15, 0x18, 0x17, 0x14, 0x15, 0x19,
    0x14, 0x21, 0x43, 0x6b, 0x7c, 0x70, 0x5e, 0x57, 0x4f, 0x43, 0x3e, 0x3d, 0x40, 0x53, 0x73, 0x89,
    0x97, 0x66, 0x4d, 0x50, 0x53, 0x5c, 0x6d, 0x73, 0x60, 0x60, 0x55, 0x4d, 0x55, 0x5f, 0x65, 0x69,
    0x55, 0x43, 0x40, 0x58, 0x73, 0x80, 0x88, 0x90, 0x7f, 0x81, 0x6e, 0x56, 0x3f, 0x33, 0x34, 0x2d,
    0x31, 0x32, 0x3b, 0x4a, 0x54, 0x53, 0x4e, 0x4c, 0x48, 0x47, 0x45, 0x43, 0x43, 0x43, 0x3e, 0x38,
    0x50, 0x51, 0x55, 0x59, 0x5c, 0x5e, 0x5e, 0x5d, 0x5c, 0x5a, 0x55, 0x4c, 0x40, 0x3a, 0x40, 0x49,
    0x4f, 0x50, 0x53, 0x56, 0x59, 0x5a, 0x59, 0x58, 0x56, 0x54, 0x52, 0x51, 0x52, 0x50, 0x4d, 0x4b,
    0x4b, 0x4b, 0x4c, 0x4e, 0x51, 0x52, 0x51, 0x50, 0x4b, 0x46, 0x45, 0x4c, 0x55, 0x5b, 0x5e, 0x5f,
    0x56, 0x59, 0x5e, 0x62, 0x67, 0x6a, 0x6c, 0x6c, 0x6b, 0x69, 0x65, 0x55, 0x53, 0x5f, 0x6d, 0x86,
    0x94, 0x98, 0xa4, 0xaa, 0x98, 0x72, 0x52, 0x45, 0x43, 0x42, 0x3a, 0x3a, 0x3f, 0x35, 0x2b, 0x32,
    0x34, 0x32, 0x2e, 0x28, 0x25, 0x28, 0x2f, 0x36, 0x33, 0x32, 0x2e, 0x2d, 0x30, 0x35, 0x36, 0x34,
    0x2d, 0x2b, 0x2c, 0x30, 0x38, 0x3e, 0x40, 0x40, 0x40, 0x48, 0x50, 0x52, 0x50, 0x50, 0x54, 0x59,
    0x55, 0x53, 0x50, 0x4d, 0x48, 0x43, 0x43, 0x45, 0x43, 0x44, 0x44, 0x41, 0x41, 0x43, 0x41, 0x3e,
    0x3d, 0x4a, 0x63, 0x7b, 0x7b, 0x61, 0x51, 0x58, 0x62, 0x61, 0x52, 0x49, 0x41, 0x3b, 0x40, 0x3c,
    0x38, 0x3a, 0x3a, 0x3a, 0x3a, 0x3a, 0x3c, 0x3e, 0x3e, 0x43, 0x46, 0x47, 0x4a, 0x4c, 0x46, 0x3d,
    0x3a, 0x3d, 0x4b, 0x4c, 0x4f, 0x51, 0x50, 0x56, 0x5b, 0x53, 0x55, 0x60, 0x66, 0x61, 0x5b, 0x5b,
    0x59, 0x64, 0x60, 0x5b, 0x67, 0x6f, 0x6e, 0x70, 0x6d, 0x6a, 0x67, 0x68, 0x6a, 0x6b, 0x69, 0x67,
    0x63, 0x60, 0x61, 0x67, 0x69, 0x67, 0x69, 0x6f, 0x71, 0x69, 0x66, 0x6b, 0x71, 0x71, 0x6e, 0x6d,
    0x70, 0x73, 0x76, 0x72, 0x68, 0x5c, 0x52, 0x4d, 0x4b, 0x4d, 0x50, 0x54, 0x55, 0x53, 0x4d, 0x48,
    0x44, 0x43, 0x42, 0x41, 0x3e, 0x37, 0x33, 0x33, 0x36, 0x35, 0x35, 0x33, 0x31, 0x31, 0x33, 0x34,
    0x37, 0x38, 0x39, 0x39, 0x38, 0x37, 0x35, 0x34, 0x3a, 0x3b, 0x3e, 0x41, 0x43, 0x44, 0x48, 0x4d,
    0x4a, 0x47, 0x44, 0x44, 0x45, 0x47, 0x4a, 0x4c, 0x5a, 0x5e, 0x56, 0x47, 0x40, 0x3c, 0x38, 0x3a,
    0x44, 0x55, 0x73, 0x7b, 0x60, 0x41, 0x3a, 0x3e, 0x40, 0x42, 0x44, 0x46, 0x47, 0x48, 0x4a, 0x4b,
    0x4d, 0x4f, 0x51, 0x52, 0x52, 0x52, 0x53, 0x54, 0x53, 0x57, 0x5d, 0x60, 0x60, 0x64, 0x6f, 0x7a,
    0x7a, 0x79, 0x7b, 0x82, 0x86, 0x7f, 0x78, 0x78, 0x7a, 0x7a, 0x7b, 0x7f, 0x82, 0x84, 0x84, 0x84,
    0x8b, 0x87, 0x84, 0x86, 0x8d, 0x95, 0x9a, 0x9c, 0x92, 0x93, 0x95, 0x95, 0x94, 0x93, 0x91, 0x8f,
    0x97, 0x98, 0x9c, 0x9d, 0x97, 0x90, 0x90, 0x94, 0x9a, 0x98, 0x98, 0x99, 0x96, 0x91, 0x8f, 0x90,
    0x91, 0x8e, 0x8e, 0x92, 0x97, 0x99, 0x97, 0x93, 0x8d, 0x8b, 0x8c, 0x8f, 0x90, 0x8d, 0x8a, 0x8a,
    0x87, 0x8e, 0x8a, 0x89, 0x8f, 0x8b, 0x84, 0x87, 0x89, 0x88, 0x86, 0x83, 0x7f, 0x7e, 0x7e, 0x7f,
    0x80, 0x84, 0x84, 0x7d, 0x74, 0x70, 0x6f, 0x6f, 0x73, 0x6e, 0x66, 0x60, 0x5c, 0x5c, 0x5d, 0x5d,
    0x5d, 0x5e, 0x5e, 0x5c, 0x58, 0x55, 0x54, 0x54, 0x4e, 0x4c, 0x4b, 0x4a, 0x48, 0x44, 0x43, 0x44,
    0x3e, 0x40, 0x42, 0x43, 0x41, 0x3f, 0x3e, 0x3e, 0x3e, 0x3f, 0x43, 0x47, 0x4c, 0x56, 0x67, 0x76,
    0x81, 0x7f, 0x7d, 0x7b, 0x6f, 0x62, 0x6c, 0x85, 0xaa, 0xbe, 0xbd, 0xb5, 0xb1, 0xb8, 0xc3, 0xbb,
    0x9a, 0x82, 0x75, 0x77, 0x77, 0x78, 0x75, 0x6b, 0x65, 0x6e, 0x74, 0x68, 0x58, 0x57, 0x59, 0x53,
    0x53, 0x49, 0x4e, 0x6b, 0x9f, 0xc1, 0xb8, 0x97, 0x74, 0x65, 0x5f, 0x63, 0x65, 0x69, 0x6c, 0x6a,
    0x6d, 0x6f, 0x6b, 0x69, 0x6b, 0x68, 0x65, 0x69, 0x71, 0x6c, 0x68, 0x6b, 0x73, 0x75, 0x6b, 0x5e,
    0x59, 0x56, 0x54, 0x56, 0x5b, 0x63, 0x6a, 0x6d, 0x68, 0x67, 0x65, 0x67, 0x69, 0x65, 0x5a, 0x4e,
    0x4f, 0x55, 0x53, 0x47, 0x3e, 0x3d, 0x3d, 0x3a, 0x37, 0x38, 0x36, 0x3c, 0x4e, 0x59, 0x51, 0x46,
    0x3e, 0x41, 0x46, 0x4c, 0x53, 0x56, 0x58, 0x59, 0x61, 0x60, 0x60, 0x62, 0x5f, 0x53, 0x53, 0x62,
    0x67, 0x74, 0x73, 0x74, 0x71, 0x65, 0x64, 0x63, 0x79, 0xa0, 0xa4, 0x91, 0x88, 0x86, 0x7f, 0x6a,
    0x5d, 0x4e, 0x44, 0x3d, 0x34, 0x30, 0x2f, 0x2a, 0x21, 0x1b, 0x17, 0x18, 0x1a, 0x20, 0x2e, 0x3d,
    0x4f, 0x63, 0x67, 0x54, 0x47, 0x4a, 0x4c, 0x44, 0x44, 0x44, 0x46, 0x4a, 0x5c, 0x7e, 0x90, 0x8a,
    0x66, 0x45, 0x4b, 0x58, 0x4f, 0x60, 0x77, 0x6a, 0x6a, 0x6c, 0x62, 0x5d, 0x6a, 0x74, 0x6c, 0x5f,
    0x5d, 0x4f, 0x47, 0x54, 0x6b, 0x75, 0x6b, 0x5d, 0x5b, 0x53, 0x41, 0x32, 0x2d, 0x2f, 0x33, 0x2f,
    0x35, 0x37, 0x3f, 0x49, 0x4e, 0x4b, 0x48, 0x47, 0x44, 0x43, 0x43, 0x42, 0x43, 0x41, 0x3d, 0x39,
    0x52, 0x52, 0x53, 0x57, 0x5a, 0x5c, 0x5c, 0x5b, 0x5c, 0x56, 0x4d, 0x42, 0x39, 0x39, 0x44, 0x4f,
    0x56, 0x56, 0x56, 0x59, 0x5b, 0x5d, 0x5c, 0x5b, 0x56, 0x52, 0x4f, 0x4e, 0x4f, 0x50, 0x4f, 0x4e,
    0x49, 0x48, 0x47, 0x46, 0x47, 0x47, 0x46, 0x45, 0x50, 0x4d, 0x4e, 0x54, 0x5a, 0x5b, 0x5a, 0x59,
    0x51, 0x58, 0x5f, 0x5e, 0x5a, 0x5a, 0x63, 0x6c, 0x75, 0x6e, 0x67, 0x5b, 0x61, 0x6f, 0x7b, 0x91,
    0x92, 0x96, 0x94, 0x82, 0x62, 0x46, 0x3a, 0x3a, 0x29, 0x2f, 0x2d, 0x2f, 0x36, 0x31, 0x2d, 0x35,
    0x2d, 0x2e, 0x2e, 0x2d, 0x2c, 0x2a, 0x29, 0x2a, 0x2f, 0x2e, 0x2c, 0x2b, 0x2e, 0x32, 0x31, 0x2f,
    0x2a, 0x32, 0x3f, 0x4c, 0x52, 0x50, 0x48, 0x42, 0x3b, 0x3e, 0x3f, 0x3f, 0x3e, 0x41, 0x48, 0x4e,
    0x4d, 0x4d, 0x4f, 0x50, 0x4c, 0x42, 0x3d, 0x3d, 0x43, 0x42, 0x42, 0x42, 0x3e, 0x3a, 0x3a, 0x3e,
    0x3f, 0x4e, 0x71, 0x94, 0x91, 0x6b, 0x58, 0x67, 0x74, 0x80, 0x7a, 0x6a, 0x4f, 0x39, 0x3a, 0x39,
    0x3f, 0x41, 0x44, 0x46, 0x47, 0x47, 0x47, 0x47, 0x52, 0x57, 0x59, 0x55, 0x50, 0x4c, 0x46, 0x3f,
    0x4a, 0x45, 0x49, 0x4f, 0x59, 0x64, 0x5a, 0x57, 0x55, 0x50, 0x54, 0x61, 0x68, 0x62, 0x5a, 0x58,
    0x64, 0x6c, 0x66, 0x64, 0x75, 0x7f, 0x78, 0x74, 0x63, 0x62, 0x61, 0x63, 0x65, 0x66, 0x63, 0x5f,
    0x56, 0x4f, 0x4d, 0x54, 0x5a, 0x5a, 0x59, 0x5b, 0x5f, 0x5e, 0x60, 0x66, 0x6b, 0x6e, 0x70, 0x72,
    0x78, 0x79, 0x79, 0x73, 0x67, 0x59, 0x4f, 0x49, 0x3c, 0x3c, 0x3f, 0x45, 0x4c, 0x4f, 0x4f, 0x4d,
    0x48, 0x46, 0x45, 0x44, 0x40, 0x39, 0x34, 0x33, 0x37, 0x37, 0x35, 0x33, 0x31, 0x31, 0x33, 0x34,
    0x3a, 0x3a, 0x3b, 0x3c, 0x3c, 0x3c, 0x3b, 0x3b, 0x40, 0x44, 0x49, 0x4a, 0x45, 0x42, 0x45, 0x4c,
    0x4f, 0x4d, 0x4b, 0x47, 0x46, 0x48, 0x4c, 0x4e, 0x57, 0x54, 0x44, 0x36, 0x35, 0x36, 0x32, 0x31,
    0x34, 0x4e, 0x70, 0x74, 0x4f, 0x2b, 0x24, 0x29, 0x2d, 0x2f, 0x32, 0x33, 0x33, 0x32, 0x32, 0x32,
    0x34, 0x37, 0x3a, 0x3d, 0x3e, 0x3f, 0x41, 0x42, 0x45, 0x44, 0x48, 0x52, 0x5d, 0x68, 0x73, 0x7c,
    0x7c, 0x84, 0x8a, 0x89, 0x84, 0x82, 0x7f, 0x78, 0x7d, 0x7d, 0x7d, 0x7e, 0x82, 0x86, 0x89, 0x89,
    0x83, 0x81, 0x80, 0x84, 0x8b, 0x91, 0x93, 0x93, 0x92, 0x93, 0x95, 0x97, 0x95, 0x92, 0x8f, 0x8d,
    0x96, 0x99, 0x9d, 0x9f, 0x9b, 0x95, 0x95, 0x98, 0x9d, 0x99, 0x96, 0x95, 0x95, 0x94, 0x95, 0x97,
    0x96, 0x91, 0x8f, 0x94, 0x9e, 0xa2, 0x9d, 0x96, 0x90, 0x8f, 0x91, 0x95, 0x95, 0x91, 0x8c, 0x8a,
    0x8c, 0x93, 0x90, 0x8e, 0x92, 0x8c, 0x84, 0x89, 0x88, 0x8b, 0x8d, 0x8a, 0x84, 0x80, 0x81, 0x83,
    0x7c, 0x80, 0x81, 0x7c, 0x76, 0x74, 0x75, 0x75, 0x76, 0x71, 0x6b, 0x67, 0x65, 0x62, 0x5e, 0x5a,
    0x5f, 0x61, 0x62, 0x5f, 0x5a, 0x55, 0x53, 0x52, 0x54, 0x51, 0x50, 0x53, 0x53, 0x4e, 0x48, 0x45,
    0x40, 0x41, 0x42, 0x41, 0x40, 0x3f, 0x3f, 0x40, 0x3e, 0x3f, 0x40, 0x42, 0x45, 0x4d, 0x5d, 0x6b,
    0x7c, 0x7d, 0x7c, 0x7b, 0x71, 0x61, 0x6c, 0x8e, 0xae, 0xbd, 0xbb, 0xb8, 0xbd, 0xc5, 0xc7, 0xb5,
    0xae, 0x9d, 0x93, 0x93, 0x94, 0x92, 0x8c, 0x85, 0x89, 0x9c, 0xa3, 0x88, 0x62, 0x56, 0x5b, 0x5a,
    0x5a, 0x4a, 0x4c, 0x71, 0xa0, 0xc2, 0xb7, 0x95, 0x73, 0x65, 0x5f, 0x64, 0x67, 0x6b, 0x6e, 0x6c,
    0x70, 0x70, 0x6d, 0x6c, 0x6e, 0x6a, 0x67, 0x6c, 0x73, 0x71, 0x70, 0x77, 0x82, 0x89, 0x82, 0x78,
    0x6a, 0x6d, 0x71, 0x77, 0x80, 0x8c, 0x98, 0x9f, 0xaa, 0xab, 0xad, 0xaf, 0xac, 0x98, 0x76, 0x58,
    0x51, 0x5a, 0x69, 0x79, 0x82, 0x84, 0x84, 0x85, 0x85, 0x89, 0x7f, 0x70, 0x67, 0x5a, 0x49, 0x42,
    0x49, 0x4d, 0x50, 0x4f, 0x4d, 0x4c, 0x4e, 0x4f, 0x5b, 0x63, 0x63, 0x5e, 0x59, 0x50, 0x4d, 0x52,
    0x56, 0x60, 0x5e, 0x65, 0x6f, 0x73, 0x82, 0x8a, 0x96, 0x9b, 0x90, 0x94, 0x98, 0x8a, 0x85, 0x88,
    0x87, 0x7b, 0x72, 0x6b, 0x5d, 0x52, 0x4a, 0x42, 0x34, 0x36, 0x29, 0x18, 0x27, 0x4e, 0x63, 0x5f,
    0x52, 0x4e, 0x57, 0x68, 0x69, 0x59, 0x4f, 0x52, 0x3f, 0x4e, 0x64, 0x78, 0x87, 0x90, 0x7f, 0x5f,
    0x4c, 0x4d, 0x46, 0x41, 0x4f, 0x62, 0x64, 0x5a, 0x5c, 0x58, 0x57, 0x60, 0x64, 0x53, 0x44, 0x45,
    0x50, 0x4f, 0x46, 0x3d, 0x46, 0x57, 0x59, 0x4d, 0x42, 0x37, 0x30, 0x2c, 0x2c, 0x2e, 0x32, 0x39,
    0x41, 0x41, 0x43, 0x45, 0x45, 0x42, 0x41, 0x41, 0x44, 0x42, 0x3e, 0x3b, 0x38, 0x35, 0x32, 0x31,
    0x54, 0x52, 0x52, 0x54, 0x58, 0x5a, 0x5a, 0x59, 0x5b, 0x52, 0x46, 0x3e, 0x3b, 0x3f, 0x4a, 0x55,
    0x57, 0x56, 0x56, 0x58, 0x5b, 0x5d, 0x5c, 0x5b, 0x56, 0x53, 0x4f, 0x4e, 0x50, 0x52, 0x53, 0x52,
    0x50, 0x4e, 0x4b, 0x49, 0x47, 0x45, 0x42, 0x40, 0x49, 0x48, 0x49, 0x4d, 0x4d, 0x4a, 0x48, 0x47,
    0x4a, 0x50, 0x56, 0x53, 0x4a, 0x4a, 0x59, 0x6a, 0x78, 0x7b, 0x7d, 0x6f, 0x69, 0x72, 0x84, 0xa4,
    0xa7, 0xa7, 0x9a, 0x7e, 0x64, 0x53, 0x45, 0x39, 0x33, 0x30, 0x2a, 0x2b, 0x32, 0x32, 0x2d, 0x2c,
    0x2f, 0x2d, 0x2a, 0x28, 0x27, 0x28, 0x29, 0x2b, 0x32, 0x34, 0x33, 0x30, 0x2e, 0x2f, 0x2f, 0x2d,
    0x30, 0x39, 0x47, 0x53, 0x57, 0x53, 0x4a, 0x43, 0x3c, 0x3c, 0x3e, 0x44, 0x4a, 0x4b, 0x47, 0x42,
    0x3e, 0x41, 0x45, 0x47, 0x45, 0x43, 0x45, 0x49, 0x44, 0x41, 0x41, 0x41, 0x3b, 0x33, 0x32, 0x36,
    0x3a, 0x41, 0x57, 0x71, 0x70, 0x57, 0x55, 0x6d, 0x72, 0x79, 0x6f, 0x61, 0x4b, 0x3a, 0x3c, 0x3a,
    0x3e, 0x40, 0x42, 0x45, 0x46, 0x46, 0x46, 0x46, 0x55, 0x5b, 0x60, 0x5e, 0x5c, 0x5d, 0x5e, 0x5f,
    0x62, 0x5b, 0x56, 0x54, 0x53, 0x61, 0x5b, 0x5e, 0x56, 0x52, 0x53, 0x5c, 0x61, 0x60, 0x5c, 0x5b,
    0x5e, 0x66, 0x69, 0x6d, 0x78, 0x7a, 0x6d, 0x60, 0x57, 0x58, 0x59, 0x59, 0x5a, 0x5b, 0x57, 0x53,
    0x4a, 0x45, 0x44, 0x4c, 0x58, 0x5f, 0x5f, 0x5e, 0x57, 0x58, 0x5b, 0x60, 0x67, 0x6e, 0x75, 0x79,
    0x7a, 0x79, 0x76, 0x6d, 0x61, 0x56, 0x4f, 0x4d, 0x43, 0x41, 0x40, 0x44, 0x4a, 0x4f, 0x51, 0x50,
    0x51, 0x4e, 0x4c, 0x4a, 0x44, 0x3c, 0x37, 0x35, 0x3c, 0x3c, 0x3a, 0x38, 0x36, 0x36, 0x37, 0x38,
    0x39, 0x39, 0x39, 0x3a, 0x3c, 0x3f, 0x42, 0x44, 0x44, 0x49, 0x51, 0x53, 0x4d, 0x46, 0x44, 0x47,
    0x4d, 0x4e, 0x4c, 0x47, 0x44, 0x46, 0x4a, 0x4c, 0x52, 0x52, 0x46, 0x38, 0x35, 0x35, 0x34, 0x36,
    0x32, 0x53, 0x77, 0x74, 0x4b, 0x29, 0x22, 0x25, 0x2b, 0x2d, 0x30, 0x32, 0x31, 0x31, 0x30, 0x30,
    0x33, 0x34, 0x36, 0x37, 0x36, 0x36, 0x36, 0x36, 0x3b, 0x35, 0x38, 0x4d, 0x65, 0x74, 0x7a, 0x7c,
    0x7f, 0x88, 0x91, 0x89, 0x7d, 0x7f, 0x81, 0x79, 0x7f, 0x7f, 0x7e, 0x7e, 0x82, 0x88, 0x8b, 0x8b,
    0x8b, 0x8b, 0x8d, 0x90, 0x94, 0x96, 0x95, 0x94, 0x8e, 0x8f, 0x93, 0x95, 0x94, 0x8f, 0x8d, 0x8d,
    0x95, 0x9a, 0x9e, 0x9e, 0x9c, 0x9b, 0x9a, 0x99, 0x9e, 0x9b, 0x96, 0x94, 0x94, 0x96, 0x98, 0x9a,
    0x97, 0x93, 0x91, 0x97, 0xa0, 0xa3, 0x9d, 0x96, 0x95, 0x94, 0x95, 0x97, 0x96, 0x91, 0x8c, 0x8a,
    0x92, 0x97, 0x96, 0x93, 0x91, 0x8b, 0x86, 0x88, 0x8a, 0x8c, 0x8d, 0x89, 0x82, 0x7f, 0x82, 0x85,
    0x7e, 0x81, 0x80, 0x7c, 0x77, 0x76, 0x76, 0x75, 0x73, 0x70, 0x6c, 0x6b, 0x6c, 0x69, 0x62, 0x5d,
    0x65, 0x67, 0x69, 0x67, 0x62, 0x5c, 0x59, 0x57, 0x55, 0x52, 0x51, 0x54, 0x55, 0x50, 0x49, 0x44,
    0x48, 0x48, 0x47, 0x44, 0x42, 0x40, 0x40, 0x40, 0x41, 0x40, 0x40, 0x40, 0x41, 0x47, 0x53, 0x5e,
    0x73, 0x79, 0x79, 0x78, 0x71, 0x61, 0x6c, 0x91, 0xaf, 0xbe, 0xbd, 0xbc, 0xbe, 0xc5, 0xcb, 0xc0,
    0xbc, 0xb4, 0xae, 0xb0, 0xb3, 0xb2, 0xae, 0xac, 0xb4, 0xbe, 0xbf, 0xac, 0x94, 0x8b, 0x84, 0x77,
    0x61, 0x4b, 0x4c, 0x78, 0xa1, 0xc3, 0xb5, 0x93, 0x73, 0x64, 0x5f, 0x64, 0x68, 0x6c, 0x70, 0x6f,
    0x71, 0x71, 0x6e, 0x6f, 0x72, 0x6e, 0x6b, 0x72, 0x78, 0x74, 0x70, 0x70, 0x76, 0x7d, 0x7b, 0x76,
    0x7b, 0x80, 0x86, 0x8b, 0x8e, 0x92, 0x97, 0x9b, 0xa8, 0xab, 0xaf, 0xb5, 0xb5, 0xa2, 0x7c, 0x59,
    0x4d, 0x57, 0x73, 0x98, 0xb1, 0xb9, 0xb8, 0xb9, 0xb4, 0xb1, 0x9c, 0x87, 0x7e, 0x6e, 0x61, 0x64,
    0x6c, 0x6d, 0x69, 0x5f, 0x57, 0x56, 0x5a, 0x5d, 0x56, 0x64, 0x66, 0x5e, 0x58, 0x51, 0x48, 0x43,
    0x4b, 0x55, 0x53, 0x5d, 0x69, 0x6c, 0x74, 0x76, 0x6e, 0x7c, 0x85, 0x87, 0x82, 0x8f, 0x91, 0x6d,
    0x61, 0x51, 0x48, 0x4a, 0x4e, 0x53, 0x53, 0x4d, 0x5e, 0x59, 0x4a, 0x41, 0x4f, 0x63, 0x62, 0x51,
    0x4b, 0x60, 0x6d, 0x6c, 0x72, 0x75, 0x5c, 0x39, 0x2f, 0x3e, 0x61, 0x83, 0x8b, 0x7e, 0x68, 0x55,
    0x4c, 0x34, 0x38, 0x5b, 0x71, 0x69, 0x52, 0x3f, 0x5a, 0x50, 0x43, 0x44, 0x51, 0x57, 0x59, 0x5f,
    0x42, 0x31, 0x2c, 0x3b, 0x44, 0x3d, 0x36, 0x39, 0x35, 0x2f, 0x34, 0x31, 0x2c, 0x2b, 0x30, 0x42,
    0x41, 0x41, 0x42, 0x42, 0x41, 0x40, 0x40, 0x40, 0x3c, 0x37, 0x31, 0x2b, 0x25, 0x20, 0x20, 0x22,
    0x55, 0x53, 0x51, 0x52, 0x56, 0x58, 0x57, 0x56, 0x57, 0x4d, 0x42, 0x3f, 0x42, 0x49, 0x53, 0x5a,
    0x54, 0x52, 0x51, 0x54, 0x57, 0x5a, 0x59, 0x58, 0x56, 0x53, 0x51, 0x51, 0x53, 0x55, 0x55, 0x54,
    0x55, 0x55, 0x54, 0x53, 0x51, 0x4d, 0x49, 0x45, 0x42, 0x42, 0x44, 0x45, 0x42, 0x3e, 0x3e, 0x40,
    0x4f, 0x52, 0x54, 0x53, 0x51, 0x57, 0x6b, 0x7e, 0x7e, 0x80, 0x7d, 0x64, 0x51, 0x51, 0x65, 0x89,
    0xa5, 0xa5, 0x9f, 0x97, 0x92, 0x86, 0x65, 0x43, 0x37, 0x32, 0x31, 0x32, 0x32, 0x34, 0x31, 0x29,
    0x33, 0x31, 0x2d, 0x28, 0x25, 0x25, 0x29, 0x2d, 0x36, 0x3d, 0x40, 0x3c, 0x37, 0x36, 0x39, 0x3c,
    0x3a, 0x39, 0x39, 0x3d, 0x43, 0x46, 0x44, 0x42, 0x3e, 0x43, 0x4b, 0x53, 0x57, 0x54, 0x4d, 0x47,
    0x4d, 0x55, 0x5b, 0x58, 0x51, 0x4d, 0x4f, 0x52, 0x55, 0x52, 0x4c, 0x45, 0x42, 0x41, 0x3f, 0x3c,
    0x37, 0x3a, 0x3f, 0x46, 0x49, 0x44, 0x4c, 0x60, 0x5e, 0x5b, 0x4b, 0x45, 0x43, 0x40, 0x43, 0x3b,
    0x3b, 0x3a, 0x39, 0x39, 0x3a, 0x3d, 0x3f, 0x40, 0x47, 0x4f, 0x58, 0x5e, 0x62, 0x68, 0x6e, 0x73,
    0x6d, 0x69, 0x5e, 0x52, 0x42, 0x4e, 0x4b, 0x55, 0x5a, 0x54, 0x4f, 0x4d, 0x4f, 0x53, 0x55, 0x57,
    0x56, 0x5a, 0x63, 0x67, 0x63, 0x5e, 0x54, 0x47, 0x4f, 0x51, 0x50, 0x4c, 0x4b, 0x4d, 0x4b, 0x48,
    0x45, 0x45, 0x46, 0x4d, 0x5b, 0x69, 0x6d, 0x6b, 0x5f, 0x5c, 0x59, 0x5b, 0x63, 0x6d, 0x74, 0x77,
    0x7a, 0x7c, 0x7b, 0x74, 0x69, 0x5f, 0x59, 0x57, 0x4e, 0x4b, 0x49, 0x4c, 0x52, 0x56, 0x56, 0x55,
    0x51, 0x4e, 0x4c, 0x49, 0x43, 0x3b, 0x35, 0x34, 0x39, 0x39, 0x38, 0x37, 0x35, 0x34, 0x35, 0x36,
    0x3a, 0x39, 0x38, 0x39, 0x3d, 0x44, 0x4b, 0x50, 0x4f, 0x4f, 0x52, 0x54, 0x52, 0x4b, 0x46, 0x44,
    0x46, 0x4a, 0x49, 0x44, 0x41, 0x44, 0x48, 0x4a, 0x50, 0x54, 0x4b, 0x3e, 0x3b, 0x3c, 0x3b, 0x3d,
    0x44, 0x65, 0x82, 0x73, 0x47, 0x2b, 0x27, 0x28, 0x28, 0x2b, 0x2e, 0x31, 0x33, 0x33, 0x34, 0x35,
    0x38, 0x38, 0x39, 0x37, 0x35, 0x34, 0x34, 0x34, 0x39, 0x3b, 0x48, 0x60, 0x73, 0x7b, 0x7e, 0x80,
    0x87, 0x89, 0x8f, 0x89, 0x79, 0x7a, 0x80, 0x7c, 0x80, 0x81, 0x81, 0x80, 0x83, 0x89, 0x8b, 0x89,
    0x87, 0x89, 0x8b, 0x8e, 0x8f, 0x8f, 0x8e, 0x8d, 0x8b, 0x8d, 0x92, 0x94, 0x91, 0x8c, 0x8b, 0x8d,
    0x94, 0x9b, 0x9e, 0x9a, 0x9a, 0x9f, 0x9d, 0x96, 0x9e, 0x9b, 0x97, 0x94, 0x94, 0x96, 0x97, 0x96,
    0x95, 0x95, 0x97, 0x9c, 0x9f, 0x9f, 0x9c, 0x98, 0x99, 0x97, 0x96, 0x97, 0x96, 0x93, 0x90, 0x90,
    0x94, 0x94, 0x98, 0x96, 0x8e, 0x8b, 0x8b, 0x89, 0x8d, 0x8c, 0x8a, 0x86, 0x83, 0x81, 0x81, 0x81,
    0x82, 0x83, 0x80, 0x7c, 0x79, 0x78, 0x76, 0x73, 0x70, 0x6c, 0x6a, 0x6a, 0x6c, 0x6b, 0x67, 0x63,
    0x6c, 0x6d, 0x6e, 0x6c, 0x68, 0x62, 0x5c, 0x59, 0x57, 0x54, 0x54, 0x56, 0x55, 0x50, 0x4c, 0x4a,
    0x4f, 0x4f, 0x4d, 0x4a, 0x46, 0x43, 0x41, 0x41, 0x44, 0x42, 0x41, 0x42, 0x42, 0x44, 0x4c, 0x53,
    0x65, 0x70, 0x71, 0x71, 0x6f, 0x63, 0x6f, 0x96, 0xb4, 0xbf, 0xbe, 0xbe, 0xbe, 0xc2, 0xcb, 0xc5,
    0xb7, 0xb5, 0xb2, 0xb2, 0xb6, 0xb6, 0xb5, 0xb8, 0xbf, 0xbd, 0xbb, 0xb5, 0xb0, 0xb0, 0xa2, 0x8c,
    0x67, 0x4d, 0x4d, 0x7e, 0xa4, 0xc5, 0xb2, 0x8f, 0x72, 0x63, 0x5e, 0x63, 0x68, 0x6d, 0x72, 0x71,
    0x74, 0x73, 0x70, 0x72, 0x75, 0x6f, 0x6d, 0x75, 0x75, 0x74, 0x73, 0x73, 0x78, 0x80, 0x83, 0x83,
    0x88, 0x8b, 0x91, 0x96, 0x99, 0x9a, 0x9a, 0x9a, 0x91, 0x8e, 0x8c, 0x8f, 0x96, 0x91, 0x77, 0x5b,
    0x48, 0x52, 0x6a, 0x8c, 0xa9, 0xb3, 0xad, 0xa4, 0xab, 0xa5, 0x8e, 0x7f, 0x7c, 0x6b, 0x5f, 0x68,
    0x77, 0x76, 0x6f, 0x64, 0x5d, 0x5f, 0x65, 0x68, 0x60, 0x6b, 0x6a, 0x60, 0x5b, 0x54, 0x49, 0x44,
    0x48, 0x53, 0x55, 0x63, 0x6d, 0x65, 0x5c, 0x51, 0x5c, 0x7a, 0x74, 0x73, 0x75, 0x4e, 0x33, 0x3e,
    0x36, 0x39, 0x43, 0x48, 0x45, 0x4e, 0x63, 0x71, 0x88, 0x80, 0x7e, 0x85, 0x82, 0x74, 0x69, 0x68,
    0x78, 0x77, 0x73, 0x6f, 0x6f, 0x6e, 0x66, 0x5d, 0x62, 0x62, 0x70, 0x7d, 0x72, 0x5e, 0x50, 0x49,
    0x38, 0x38, 0x55, 0x68, 0x5a, 0x55, 0x57, 0x49, 0x3c, 0x44, 0x44, 0x46, 0x51, 0x52, 0x3f, 0x2d,
    0x3d, 0x48, 0x4d, 0x47, 0x42, 0x43, 0x40, 0x3b, 0x30, 0x2c, 0x31, 0x28, 0x23, 0x29, 0x2b, 0x39,
    0x33, 0x37, 0x3b, 0x3d, 0x3d, 0x3a, 0x36, 0x32, 0x27, 0x22, 0x1d, 0x1a, 0x16, 0x14, 0x18, 0x1f,
    0x56, 0x53, 0x51, 0x51, 0x54, 0x56, 0x56, 0x54, 0x51, 0x47, 0x3e, 0x3f, 0x47, 0x4f, 0x56, 0x5a,
    0x52, 0x50, 0x50, 0x52, 0x56, 0x59, 0x59, 0x57, 0x55, 0x53, 0x52, 0x53, 0x55, 0x55, 0x54, 0x52,
    0x53, 0x55, 0x57, 0x59, 0x58, 0x55, 0x4f, 0x4b, 0x4a, 0x4a, 0x4c, 0x4c, 0x48, 0x45, 0x47, 0x4b,
    0x4f, 0x4c, 0x4a, 0x4c, 0x50, 0x5c, 0x71, 0x83, 0x85, 0x76, 0x66, 0x55, 0x57, 0x66, 0x78, 0x95,
    0xa3, 0xa7, 0xa5, 0xa0, 0x9a, 0x8b, 0x68, 0x45, 0x2c, 0x29, 0x2f, 0x2f, 0x27, 0x2d, 0x36, 0x31,
    0x2a, 0x31, 0x38, 0x39, 0x35, 0x2e, 0x2a, 0x29, 0x2f, 0x39, 0x40, 0x3b, 0x33, 0x32, 0x37, 0x3d,
    0x38, 0x32, 0x2c, 0x2f, 0x39, 0x41, 0x44, 0x43, 0x42, 0x4a, 0x51, 0x50, 0x4a, 0x49, 0x50, 0x58,
    0x5d, 0x61, 0x5d, 0x4e, 0x43, 0x45, 0x51, 0x5a, 0x5f, 0x5b, 0x4d, 0x3e, 0x3e, 0x47, 0x47, 0x3e,
    0x37, 0x41, 0x44, 0x43, 0x47, 0x49, 0x49, 0x4c, 0x49, 0x4f, 0x4a, 0x4a, 0x46, 0x3f, 0x3e, 0x35,
    0x3b, 0x38, 0x35, 0x35, 0x39, 0x3f, 0x46, 0x4a, 0x49, 0x51, 0x5c, 0x62, 0x66, 0x68, 0x6a, 0x6a,
    0x63, 0x5c, 0x4f, 0x4c, 0x48, 0x5d, 0x57, 0x5d, 0x59, 0x58, 0x53, 0x4f, 0x4f, 0x53, 0x54, 0x53,
    0x57, 0x59, 0x63, 0x62, 0x52, 0x4d, 0x4f, 0x49, 0x4f, 0x51, 0x4f, 0x48, 0x46, 0x48, 0x48, 0x47,
    0x4a, 0x4c, 0x4d, 0x50, 0x5b, 0x69, 0x6f, 0x6d, 0x69, 0x60, 0x56, 0x54, 0x5b, 0x66, 0x6b, 0x6c,
    0x71, 0x76, 0x7b, 0x78, 0x6d, 0x61, 0x58, 0x55, 0x4c, 0x4a, 0x49, 0x4e, 0x54, 0x59, 0x58, 0x56,
    0x54, 0x52, 0x4f, 0x4e, 0x48, 0x41, 0x3b, 0x3a, 0x3a, 0x3b, 0x3a, 0x39, 0x37, 0x36, 0x37, 0x38,
    0x3d, 0x3b, 0x3a, 0x3b, 0x41, 0x4a, 0x54, 0x5a, 0x5a, 0x54, 0x4e, 0x4e, 0x4f, 0x4b, 0x46, 0x43,
    0x44, 0x49, 0x49, 0x44, 0x42, 0x45, 0x49, 0x4b, 0x53, 0x53, 0x49, 0x40, 0x43, 0x45, 0x42, 0x40,
    0x57, 0x73, 0x85, 0x6a, 0x3b, 0x23, 0x24, 0x25, 0x2b, 0x2e, 0x31, 0x34, 0x35, 0x35, 0x36, 0x36,
    0x35, 0x36, 0x38, 0x39, 0x39, 0x3a, 0x3c, 0x3e, 0x3e, 0x4e, 0x67, 0x7b, 0x7e, 0x7a, 0x7e, 0x88,
    0x91, 0x8a, 0x8d, 0x8a, 0x7a, 0x77, 0x7f, 0x7f, 0x7f, 0x82, 0x82, 0x82, 0x84, 0x89, 0x89, 0x86,
    0x8a, 0x8c, 0x90, 0x92, 0x92, 0x92, 0x92, 0x93, 0x8f, 0x91, 0x95, 0x97, 0x93, 0x8c, 0x8b, 0x8f,
    0x93, 0x9c, 0x9d, 0x96, 0x98, 0xa0, 0x9d, 0x92, 0x9e, 0x9c, 0x98, 0x95, 0x95, 0x95, 0x94, 0x92,
    0x93, 0x98, 0x9d, 0xa0, 0x9f, 0x9c, 0x9b, 0x9a, 0x9b, 0x97, 0x95, 0x96, 0x97, 0x97, 0x97, 0x99,
    0x92, 0x90, 0x97, 0x98, 0x8d, 0x8c, 0x91, 0x8d, 0x90, 0x8d, 0x8a, 0x89, 0x89, 0x87, 0x81, 0x7d,
    0x7f, 0x7f, 0x7d, 0x7a, 0x7b, 0x7d, 0x7b, 0x78, 0x72, 0x6e, 0x6a, 0x69, 0x6b, 0x6d, 0x6c, 0x6a,
    0x6d, 0x6e, 0x6d, 0x6b, 0x66, 0x5f, 0x57, 0x53, 0x5d, 0x5c, 0x5c, 0x5c, 0x59, 0x54, 0x53, 0x55,
    0x51, 0x51, 0x51, 0x4e, 0x4a, 0x46, 0x44, 0x43, 0x45, 0x43, 0x42, 0x43, 0x43, 0x44, 0x48, 0x4d,
    0x56, 0x64, 0x67, 0x68, 0x6a, 0x63, 0x72, 0x9a, 0xbc, 0xc1, 0xbc, 0xbf, 0xc3, 0xc4, 0xc9, 0xc1,
    0xb9, 0xba, 0xb5, 0xb3, 0xb6, 0xb5, 0xb6, 0xbc, 0xc0, 0xc3, 0xc5, 0xbc, 0xb0, 0xac, 0xa7, 0x9a,
    0x69, 0x4e, 0x4e, 0x83, 0xa6, 0xc6, 0xb1, 0x8c, 0x72, 0x62, 0x5d, 0x62, 0x67, 0x6d, 0x73, 0x72,
    0x78, 0x76, 0x72, 0x73, 0x76, 0x6f, 0x6c, 0x73, 0x72, 0x75, 0x75, 0x74, 0x74, 0x77, 0x77, 0x76,
    0x72, 0x75, 0x7d, 0x89, 0x97, 0xa2, 0xa7, 0xa9, 0x9d, 0x92, 0x84, 0x7f, 0x87, 0x8a, 0x7c, 0x68,
    0x4a, 0x52, 0x61, 0x78, 0x91, 0x9c, 0x90, 0x7e, 0x6b, 0x7a, 0x7e, 0x7d, 0x78, 0x61, 0x56, 0x69,
    0x6a, 0x6a, 0x65, 0x5e, 0x5d, 0x62, 0x66, 0x66, 0x6b, 0x6f, 0x69, 0x5f, 0x5b, 0x56, 0x50, 0x50,
    0x45, 0x4e, 0x4e, 0x5b, 0x66, 0x5c, 0x4e, 0x3f, 0x49, 0x5b, 0x5e, 0x5b, 0x4b, 0x3a, 0x37, 0x33,
    0x36, 0x39, 0x46, 0x51, 0x50, 0x51, 0x54, 0x53, 0x54, 0x60, 0x6c, 0x6a, 0x5f, 0x59, 0x64, 0x73,
    0x6b, 0x6a, 0x5b, 0x4e, 0x61, 0x89, 0x9d, 0x99, 0x7f, 0x7a, 0x75, 0x6a, 0x58, 0x4a, 0x3e, 0x31,
    0x3d, 0x54, 0x5c, 0x57, 0x50, 0x3f, 0x3f, 0x5a, 0x6e, 0x61, 0x4d, 0x40, 0x35, 0x2a, 0x2f, 0x43,
    0x64, 0x71, 0x74, 0x6b, 0x68, 0x68, 0x59, 0x44, 0x34, 0x29, 0x26, 0x16, 0x18, 0x27, 0x21, 0x23,
    0x29, 0x2e, 0x34, 0x36, 0x33, 0x2b, 0x20, 0x17, 0x13, 0x10, 0x0f, 0x10, 0x11, 0x13, 0x1c, 0x26,
    0x5a, 0x58, 0x54, 0x52, 0x57, 0x5c, 0x59, 0x51, 0x4c, 0x3f, 0x3b, 0x41, 0x4b, 0x56, 0x5d, 0x5a,
    0x53, 0x51, 0x51, 0x53, 0x57, 0x5a, 0x5a, 0x59, 0x58, 0x54, 0x50, 0x50, 0x53, 0x56, 0x56, 0x56,
    0x5c, 0x59, 0x57, 0x56, 0x55, 0x53, 0x55, 0x58, 0x5a, 0x66, 0x6a, 0x5d, 0x4e, 0x4b, 0x51, 0x55,
    0x55, 0x50, 0x4a, 0x52, 0x6c, 0x8a, 0x96, 0x95, 0x8f, 0x83, 0x6e, 0x5e, 0x60, 0x72, 0x96, 0xba,
    0xbd, 0xae, 0x82, 0x63, 0x66, 0x5f, 0x49, 0x3f, 0x33, 0x31, 0x2f, 0x30, 0x32, 0x33, 0x34, 0x34,
    0x33, 0x39, 0x3f, 0x3c, 0x34, 0x2c, 0x2a, 0x2c, 0x29, 0x2e, 0x31, 0x2e, 0x2d, 0x37, 0x39, 0x2c,
    0x36, 0x35, 0x37, 0x35, 0x33, 0x3a, 0x40, 0x3c, 0x3c, 0x40, 0x45, 0x48, 0x4d, 0x57, 0x64, 0x6e,
    0x70, 0x66, 0x5a, 0x4f, 0x44, 0x3f, 0x45, 0x50, 0x59, 0x56, 0x4d, 0x42, 0x3e, 0x40, 0x42, 0x41,
    0x48, 0x48, 0x48, 0x45, 0x44, 0x45, 0x48, 0x4b, 0x47, 0x47, 0x4a, 0x4d, 0x48, 0x3f, 0x38, 0x37,
    0x3c, 0x38, 0x37, 0x3f, 0x48, 0x4d, 0x50, 0x51, 0x50, 0x51, 0x57, 0x5e, 0x60, 0x5d, 0x5c, 0x5f,
    0x5a, 0x56, 0x4f, 0x4c, 0x50, 0x57, 0x5a, 0x58, 0x5c, 0x56, 0x50, 0x51, 0x56, 0x5b, 0x5b, 0x59,
    0x5c, 0x5c, 0x5d, 0x5c, 0x5b, 0x58, 0x56, 0x54, 0x63, 0x61, 0x5f, 0x5d, 0x5a, 0x55, 0x50, 0x4c,
    0x50, 0x52, 0x54, 0x55, 0x59, 0x61, 0x67, 0x6a, 0x6c, 0x67, 0x5f, 0x5a, 0x5e, 0x67, 0x69, 0x66,
    0x6d, 0x6d, 0x6a, 0x64, 0x61, 0x5d, 0x55, 0x4c, 0x4b, 0x4c, 0x4b, 0x47, 0x47, 0x4c, 0x53, 0x56,
    0x58, 0x56, 0x55, 0x53, 0x4d, 0x43, 0x3c, 0x3a, 0x3a, 0x3b, 0x3c, 0x3b, 0x39, 0x38, 0x39, 0x3b,
    0x3c, 0x3e, 0x3d, 0x3c, 0x44, 0x4f, 0x51, 0x4d, 0x48, 0x4b, 0x4e, 0x4f, 0x4e, 0x4b, 0x48, 0x46,
    0x45, 0x45, 0x49, 0x4b, 0x48, 0x42, 0x42, 0x46, 0x47, 0x42, 0x41, 0x49, 0x53, 0x5c, 0x66, 0x6e,
    0x7d, 0x87, 0x7c, 0x56, 0x32, 0x26, 0x27, 0x28, 0x2c, 0x30, 0x35, 0x37, 0x37, 0x36, 0x37, 0x38,
    0x3a, 0x3c, 0x3d, 0x3c, 0x3a, 0x3b, 0x3f, 0x43, 0x4d, 0x60, 0x72, 0x78, 0x79, 0x7f, 0x84, 0x85,
    0x86, 0x89, 0x8c, 0x8b, 0x87, 0x84, 0x83, 0x84, 0x88, 0x86, 0x84, 0x81, 0x81, 0x84, 0x89, 0x8d,
    0x91, 0x92, 0x93, 0x93, 0x92, 0x94, 0x96, 0x98, 0x94, 0x96, 0x98, 0x97, 0x94, 0x91, 0x92, 0x93,
    0x9d, 0x9c, 0x96, 0x90, 0x94, 0x9d, 0x9f, 0x9b, 0x9c, 0x96, 0x94, 0x98, 0x99, 0x94, 0x91, 0x93,
    0x92, 0x9b, 0x9e, 0x9f, 0xa0, 0x9b, 0x97, 0x9a, 0x99, 0x94, 0x94, 0x97, 0x96, 0x91, 0x90, 0x95,
    0x8b, 0x91, 0x8a, 0x87, 0x93, 0x97, 0x90, 0x8f, 0x8f, 0x8f, 0x90, 0x90, 0x8d, 0x89, 0x84, 0x80,
    0x81, 0x82, 0x82, 0x7f, 0x7e, 0x7e, 0x7c, 0x79, 0x73, 0x77, 0x78, 0x74, 0x70, 0x6f, 0x6d, 0x6c,
    0x6d, 0x6e, 0x6f, 0x6e, 0x6b, 0x66, 0x62, 0x60, 0x5c, 0x5c, 0x5c, 0x5b, 0x5a, 0x59, 0x59, 0x5a,
    0x5c, 0x5a, 0x56, 0x51, 0x4e, 0x4d, 0x48, 0x43, 0x47, 0x48, 0x48, 0x47, 0x45, 0x43, 0x43, 0x43,
    0x48, 0x55, 0x63, 0x6a, 0x67, 0x65, 0x7e, 0xa4, 0xc2, 0xc5, 0xc6, 0xc6, 0xc6, 0xc7, 0xc6, 0xc4,
    0xc1, 0xbe, 0xba, 0xba, 0xba, 0xb9, 0xb9, 0xb9, 0xbc, 0xbe, 0xbf, 0xb9, 0xb4, 0xb6, 0xab, 0x95,
    0x68, 0x48, 0x51, 0x84, 0xaf, 0xc2, 0xaf, 0x87, 0x6c, 0x65, 0x60, 0x63, 0x69, 0x6d, 0x70, 0x72,
    0x74, 0x75, 0x75, 0x73, 0x72, 0x72, 0x71, 0x70, 0x72, 0x69, 0x62, 0x60, 0x5f, 0x5a, 0x56, 0x54,
    0x56, 0x5a, 0x60, 0x6c, 0x7e, 0x92, 0x9c, 0x9c, 0x97, 0x97, 0x98, 0x9b, 0x9b, 0x92, 0x7c, 0x68,
    0x4a, 0x4d, 0x5b, 0x67, 0x70, 0x7f, 0x7d, 0x67, 0x69, 0x6d, 0x78, 0x85, 0x7c, 0x59, 0x41, 0x44,
    0x49, 0x4d, 0x51, 0x55, 0x5f, 0x6b, 0x73, 0x75, 0x70, 0x72, 0x6b, 0x5d, 0x5c, 0x69, 0x64, 0x4c,
    0x58, 0x5c, 0x6c, 0x69, 0x5f, 0x58, 0x50, 0x4c, 0x51, 0x55, 0x55, 0x46, 0x35, 0x38, 0x47, 0x4e,
    0x69, 0x5f, 0x5c, 0x68, 0x77, 0x7c, 0x76, 0x71, 0x68, 0x6d, 0x68, 0x5c, 0x5a, 0x64, 0x6c, 0x6c,
    0x65, 0x55, 0x49, 0x4d, 0x52, 0x50, 0x4c, 0x4c, 0x5b, 0x61, 0x5e, 0x55, 0x4b, 0x3c, 0x31, 0x31,
    0x4d, 0x52, 0x4d, 0x3e, 0x3d, 0x49, 0x50, 0x4d, 0x42, 0x3c, 0x35, 0x2f, 0x2c, 0x2b, 0x2a, 0x27,
    0x30, 0x3c, 0x47, 0x5b, 0x71, 0x68, 0x4d, 0x3f, 0x2c, 0x29, 0x23, 0x22, 0x25, 0x28, 0x24, 0x1f,
    0x28, 0x28, 0x24, 0x1d, 0x19, 0x18, 0x14, 0x0f, 0x12, 0x16, 0x15, 0x13, 0x17, 0x23, 0x30, 0x37,
    0x5d, 0x5c, 0x58, 0x56, 0x58, 0x59, 0x54, 0x4c, 0x46, 0x3c, 0x3c, 0x46, 0x4e, 0x55, 0x58, 0x52,
    0x54, 0x50, 0x4e, 0x51, 0x58, 0x5d, 0x5d, 0x5a, 0x56, 0x52, 0x4f, 0x50, 0x53, 0x56, 0x57, 0x56,
    0x56, 0x56, 0x59, 0x5a, 0x5a, 0x5b, 0x60, 0x67, 0x7d, 0x86, 0x88, 0x7d, 0x72, 0x6d, 0x6a, 0x67,
    0x5e, 0x56, 0x57, 0x6b, 0x88, 0x9c, 0x9f, 0x9b, 0x8e, 0x80, 0x63, 0x48, 0x3c, 0x48, 0x72, 0xa0,
    0xc5, 0xbf, 0x89, 0x4d, 0x44, 0x4e, 0x44, 0x36, 0x3a, 0x35, 0x32, 0x35, 0x3a, 0x3b, 0x38, 0x36,
    0x3c, 0x3e, 0x3f, 0x3c, 0x36, 0x2f, 0x29, 0x26, 0x25, 0x27, 0x2c, 0x2c, 0x2b, 0x34, 0x3c, 0x3a,
    0x3c, 0x37, 0x35, 0x32, 0x2f, 0x34, 0x3c, 0x3c, 0x3c, 0x3a, 0x3b, 0x3e, 0x46, 0x50, 0x5e, 0x69,
    0x6c, 0x67, 0x60, 0x57, 0x4a, 0x3e, 0x3c, 0x40, 0x47, 0x4a, 0x49, 0x44, 0x40, 0x3f, 0x3c, 0x38,
    0x47, 0x48, 0x48, 0x46, 0x43, 0x44, 0x4a, 0x4f, 0x47, 0x48, 0x4b, 0x4d, 0x48, 0x40, 0x3a, 0x3a,
    0x3b, 0x3a, 0x3d, 0x43, 0x49, 0x4c, 0x4f, 0x52, 0x53, 0x56, 0x5b, 0x5f, 0x5d, 0x55, 0x51, 0x51,
    0x59, 0x56, 0x52, 0x52, 0x58, 0x5d, 0x5d, 0x5a, 0x52, 0x51, 0x53, 0x57, 0x5e, 0x64, 0x66, 0x67,
    0x6b, 0x67, 0x62, 0x5f, 0x5e, 0x5d, 0x5c, 0x5a, 0x5a, 0x5b, 0x5d, 0x5f, 0x5f, 0x5c, 0x56, 0x51,
    0x50, 0x53, 0x56, 0x56, 0x57, 0x5a, 0x5b, 0x5b, 0x65, 0x6a, 0x70, 0x74, 0x77, 0x77, 0x72, 0x6a,
    0x6b, 0x6d, 0x6b, 0x66, 0x62, 0x5d, 0x55, 0x4d, 0x4f, 0x53, 0x55, 0x52, 0x50, 0x50, 0x51, 0x50,
    0x58, 0x57, 0x56, 0x55, 0x4e, 0x44, 0x3c, 0x3a, 0x3b, 0x3b, 0x3c, 0x3b, 0x3a, 0x39, 0x39, 0x39,
    0x3d, 0x3f, 0x3d, 0x3a, 0x3f, 0x47, 0x4a, 0x47, 0x41, 0x42, 0x42, 0x43, 0x44, 0x44, 0x44, 0x44,
    0x47, 0x49, 0x4d, 0x50, 0x4d, 0x45, 0x42, 0x42, 0x47, 0x41, 0x3e, 0x43, 0x4e, 0x59, 0x65, 0x6e,
    0x75, 0x69, 0x4f, 0x34, 0x29, 0x2b, 0x2a, 0x24, 0x2c, 0x30, 0x35, 0x37, 0x37, 0x37, 0x37, 0x39,
    0x37, 0x36, 0x37, 0x3a, 0x39, 0x3a, 0x43, 0x4e, 0x62, 0x6f, 0x7b, 0x7e, 0x80, 0x85, 0x87, 0x85,
    0x87, 0x8a, 0x8b, 0x8b, 0x89, 0x88, 0x88, 0x89, 0x8b, 0x8a, 0x87, 0x85, 0x83, 0x84, 0x87, 0x8a,
    0x8f, 0x8d, 0x8d, 0x8f, 0x93, 0x95, 0x95, 0x94, 0x91, 0x94, 0x98, 0x99, 0x98, 0x98, 0x9a, 0x9d,
    0xa1, 0xa1, 0x9d, 0x98, 0x99, 0x9f, 0x9f, 0x9a, 0x98, 0x95, 0x97, 0x9c, 0x9a, 0x92, 0x8f, 0x91,
    0x95, 0x9d, 0xa0, 0x9f, 0x9e, 0x99, 0x94, 0x98, 0x99, 0x93, 0x91, 0x94, 0x94, 0x8f, 0x8e, 0x92,
    0x8c, 0x92, 0x8c, 0x89, 0x93, 0x97, 0x90, 0x8f, 0x8d, 0x8e, 0x8f, 0x90, 0x8f, 0x8b, 0x87, 0x83,
    0x85, 0x86, 0x85, 0x81, 0x7f, 0x80, 0x81, 0x80, 0x7f, 0x7e, 0x7a, 0x74, 0x71, 0x71, 0x71, 0x6f,
    0x71, 0x70, 0x6e, 0x6d, 0x6c, 0x6a, 0x66, 0x63, 0x5c, 0x5d, 0x5e, 0x5e, 0x5e, 0x5c, 0x5a, 0x58,
    0x5b, 0x5c, 0x5a, 0x56, 0x53, 0x51, 0x4c, 0x48, 0x48, 0x47, 0x46, 0x45, 0x45, 0x44, 0x44, 0x44,
    0x44, 0x4f, 0x5d, 0x66, 0x65, 0x64, 0x7b, 0x9e, 0xbb, 0xbe, 0xc0, 0xc0, 0xc1, 0xc3, 0xc2, 0xbf,
    0xbd, 0xbd, 0xbe, 0xbe, 0xbd, 0xbd, 0xbd, 0xbf, 0xc7, 0xc6, 0xc3, 0xba, 0xb3, 0xb3, 0xa9, 0x93,
    0x60, 0x48, 0x55, 0x80, 0xa2, 0xb0, 0xa2, 0x83, 0x6a, 0x63, 0x5f, 0x62, 0x69, 0x6e, 0x72, 0x75,
    0x75, 0x74, 0x72, 0x71, 0x70, 0x6f, 0x6c, 0x69, 0x64, 0x58, 0x4e, 0x4b, 0x4b, 0x48, 0x45, 0x43,
    0x4c, 0x4f, 0x54, 0x5d, 0x6b, 0x7c, 0x86, 0x89, 0x8e, 0x91, 0x97, 0x9e, 0xa4, 0xa1, 0x93, 0x85,
    0x5d, 0x49, 0x43, 0x4a, 0x52, 0x60, 0x6d, 0x6d, 0x6a, 0x73, 0x7b, 0x7f, 0x76, 0x5c, 0x45, 0x40,
    0x42, 0x4b, 0x54, 0x5b, 0x5e, 0x5d, 0x56, 0x4e, 0x5b, 0x62, 0x68, 0x6a, 0x6a, 0x64, 0x57, 0x4c,
    0x48, 0x56, 0x5a, 0x5d, 0x5b, 0x60, 0x59, 0x4f, 0x54, 0x49, 0x41, 0x3e, 0x41, 0x50, 0x5f, 0x61,
    0x41, 0x65, 0x87, 0x8e, 0x81, 0x75, 0x71, 0x72, 0x74, 0x76, 0x71, 0x67, 0x63, 0x66, 0x6a, 0x6a,
    0x4a, 0x44, 0x46, 0x50, 0x52, 0x46, 0x37, 0x2f, 0x48, 0x50, 0x4e, 0x46, 0x3e, 0x36, 0x35, 0x3d,
    0x4f, 0x43, 0x3d, 0x3e, 0x38, 0x2d, 0x2d, 0x36, 0x36, 0x35, 0x2d, 0x25, 0x2a, 0x32, 0x29, 0x17,
    0x40, 0x4c, 0x5d, 0x70, 0x7c, 0x77, 0x6e, 0x6c, 0x73, 0x73, 0x71, 0x6b, 0x67, 0x60, 0x52, 0x44,
    0x3c, 0x37, 0x32, 0x2d, 0x26, 0x22, 0x26, 0x2d, 0x22, 0x25, 0x27, 0x2c, 0x36, 0x41, 0x46, 0x46,
    0x68, 0x66, 0x62, 0x5f, 0x5d, 0x59, 0x51, 0x49, 0x3a, 0x37, 0x41, 0x53, 0x5f, 0x67, 0x68, 0x61,
    0x5b, 0x55, 0x51, 0x54, 0x5b, 0x60, 0x5f, 0x5d, 0x5a, 0x58, 0x56, 0x56, 0x58, 0x5a, 0x5a, 0x5a,
    0x5d, 0x5f, 0x62, 0x63, 0x61, 0x60, 0x66, 0x6e, 0x84, 0x8f, 0x99, 0x99, 0x94, 0x88, 0x75, 0x66,
    0x58, 0x56, 0x5c, 0x67, 0x6a, 0x64, 0x61, 0x63, 0x5a, 0x62, 0x62, 0x53, 0x3c, 0x31, 0x48, 0x6e,
    0x95, 0x90, 0x6c, 0x44, 0x3b, 0x3b, 0x37, 0x37, 0x39, 0x38, 0x39, 0x3e, 0x49, 0x51, 0x50, 0x4b,
    0x46, 0x43, 0x40, 0x3d, 0x3a, 0x34, 0x2d, 0x27, 0x28, 0x28, 0x2e, 0x32, 0x34, 0x3f, 0x4c, 0x51,
    0x37, 0x30, 0x31, 0x36, 0x32, 0x2f, 0x30, 0x2e, 0x35, 0x30, 0x30, 0x35, 0x3c, 0x43, 0x4c, 0x55,
    0x53, 0x53, 0x52, 0x4e, 0x46, 0x3d, 0x38, 0x38, 0x31, 0x36, 0x3c, 0x3d, 0x3c, 0x3b, 0x39, 0x37,
    0x48, 0x4a, 0x4a, 0x47, 0x44, 0x44, 0x49, 0x4e, 0x47, 0x47, 0x4a, 0x4c, 0x4a, 0x44, 0x3e, 0x3c,
    0x3b, 0x3b, 0x3b, 0x3d, 0x3e, 0x40, 0x45, 0x4b, 0x52, 0x55, 0x5b, 0x5f, 0x5e, 0x5b, 0x5b, 0x5e,
    0x62, 0x5f, 0x5b, 0x59, 0x5b, 0x5b, 0x55, 0x4d, 0x49, 0x4b, 0x4f, 0x54, 0x5a, 0x61, 0x68, 0x6d,
    0x6f, 0x6b, 0x67, 0x66, 0x67, 0x69, 0x67, 0x66, 0x5e, 0x5e, 0x5f, 0x5f, 0x5d, 0x54, 0x48, 0x3f,
    0x40, 0x46, 0x4d, 0x52, 0x55, 0x56, 0x55, 0x52, 0x5a, 0x5f, 0x63, 0x65, 0x66, 0x68, 0x69, 0x69,
    0x68, 0x6c, 0x6d, 0x6a, 0x66, 0x62, 0x5c, 0x58, 0x57, 0x57, 0x53, 0x4c, 0x48, 0x4b, 0x4f, 0x52,
    0x58, 0x57, 0x58, 0x56, 0x4f, 0x44, 0x3c, 0x39, 0x3e, 0x3e, 0x3e, 0x3e, 0x3e, 0x3d, 0x3b, 0x3a,
    0x39, 0x3a, 0x38, 0x35, 0x39, 0x41, 0x44, 0x43, 0x3e, 0x3c, 0x3a, 0x3a, 0x3e, 0x41, 0x43, 0x43,
    0x40, 0x42, 0x48, 0x4d, 0x4c, 0x46, 0x3f, 0x3c, 0x41, 0x3a, 0x35, 0x36, 0x3c, 0x44, 0x4c, 0x52,
    0x52, 0x4b, 0x3d, 0x30, 0x29, 0x28, 0x28, 0x26, 0x2c, 0x30, 0x35, 0x38, 0x38, 0x38, 0x39, 0x3a,
    0x3d, 0x38, 0x37, 0x3a, 0x3a, 0x3c, 0x4a, 0x5a, 0x74, 0x7b, 0x7f, 0x81, 0x85, 0x89, 0x88, 0x84,
    0x8b, 0x8b, 0x8c, 0x8c, 0x8c, 0x8b, 0x8a, 0x8a, 0x84, 0x85, 0x85, 0x85, 0x86, 0x87, 0x8a, 0x8c,
    0x8d, 0x8a, 0x88, 0x8d, 0x95, 0x99, 0x96, 0x92, 0x98, 0x9a, 0x9c, 0x9c, 0x9a, 0x99, 0x9a, 0x9c,
    0x9f, 0xa2, 0xa1, 0x9c, 0x9b, 0x9d, 0x9c, 0x98, 0x98, 0x98, 0x9b, 0x9e, 0x9a, 0x92, 0x90, 0x94,
    0x9b, 0xa2, 0xa2, 0x9f, 0x9e, 0x98, 0x93, 0x97, 0x9d, 0x97, 0x93, 0x94, 0x94, 0x91, 0x91, 0x93,
    0x8c, 0x91, 0x8e, 0x8c, 0x94, 0x97, 0x93, 0x90, 0x8d, 0x8e, 0x8f, 0x90, 0x8f, 0x8c, 0x8a, 0x88,
    0x87, 0x88, 0x86, 0x81, 0x7e, 0x80, 0x83, 0x84, 0x86, 0x83, 0x7c, 0x74, 0x72, 0x74, 0x75, 0x74,
    0x76, 0x72, 0x6e, 0x6d, 0x6d, 0x6c, 0x68, 0x64, 0x60, 0x60, 0x61, 0x63, 0x64, 0x62, 0x5e, 0x5a,
    0x5d, 0x5f, 0x60, 0x5d, 0x59, 0x57, 0x53, 0x4f, 0x4f, 0x4c, 0x49, 0x47, 0x47, 0x47, 0x46, 0x44,
    0x46, 0x4d, 0x57, 0x60, 0x63, 0x64, 0x7a, 0x9c, 0xb4, 0xb7, 0xba, 0xba, 0xbc, 0xbe, 0xbe, 0xbc,
    0xba, 0xbc, 0xbc, 0xba, 0xb7, 0xb6, 0xb9, 0xbb, 0xb8, 0xba, 0xbd, 0xb9, 0xb2, 0xae, 0x9f, 0x86,
    0x57, 0x48, 0x53, 0x71, 0x84, 0x8d, 0x89, 0x79, 0x6c, 0x66, 0x62, 0x65, 0x6b, 0x6f, 0x73, 0x76,
    0x76, 0x73, 0x70, 0x71, 0x72, 0x70, 0x6b, 0x66, 0x61, 0x55, 0x4a, 0x45, 0x46, 0x47, 0x45, 0x44,
    0x49, 0x4c, 0x50, 0x55, 0x5f, 0x6d, 0x79, 0x80, 0x88, 0x8c, 0x92, 0x98, 0x9d, 0x9e, 0x98, 0x90,
    0x6b, 0x4b, 0x3d, 0x49, 0x50, 0x53, 0x60, 0x6e, 0x71, 0x7c, 0x7c, 0x75, 0x6f, 0x64, 0x55, 0x4e,
    0x5d, 0x5b, 0x57, 0x53, 0x53, 0x57, 0x5a, 0x5a, 0x51, 0x55, 0x5b, 0x68, 0x74, 0x71, 0x76, 0x8c,
    0x96, 0x84, 0x4d, 0x50, 0x5b, 0x65, 0x5b, 0x50, 0x50, 0x42, 0x3d, 0x46, 0x52, 0x5f, 0x66, 0x62,
    0x74, 0x81, 0x86, 0x82, 0x85, 0x92, 0x94, 0x8b, 0x80, 0x76, 0x6d, 0x6d, 0x6f, 0x69, 0x56, 0x45,
    0x43, 0x42, 0x49, 0x55, 0x57, 0x4a, 0x3e, 0x3a, 0x40, 0x49, 0x47, 0x3e, 0x37, 0x31, 0x34, 0x3f,
    0x48, 0x37, 0x34, 0x3e, 0x38, 0x22, 0x1c, 0x29, 0x29, 0x2f, 0x34, 0x32, 0x28, 0x2d, 0x4b, 0x6c,
    0x76, 0x69, 0x69, 0x73, 0x78, 0x77, 0x74, 0x6f, 0x6b, 0x6c, 0x68, 0x62, 0x64, 0x6c, 0x6e, 0x69,
    0x57, 0x49, 0x40, 0x40, 0x3e, 0x36, 0x37, 0x3d, 0x33, 0x36, 0x3a, 0x3f, 0x49, 0x54, 0x5c, 0x5f,
    0x6a, 0x67, 0x62, 0x5e, 0x5a, 0x54, 0x4c, 0x45, 0x34, 0x35, 0x46, 0x5d, 0x6d, 0x76, 0x78, 0x72,
    0x79, 0x75, 0x72, 0x73, 0x76, 0x79, 0x78, 0x76, 0x78, 0x76, 0x74, 0x74, 0x74, 0x74, 0x73, 0x72,
    0x70, 0x70, 0x72, 0x72, 0x70, 0x6e, 0x71, 0x76, 0x7e, 0x88, 0x94, 0x9b, 0x9a, 0x90, 0x7c, 0x6b,
    0x5e, 0x62, 0x68, 0x6a, 0x61, 0x56, 0x53, 0x57, 0x53, 0x5c, 0x67, 0x6d, 0x66, 0x51, 0x48, 0x50,
    0x55, 0x53, 0x4a, 0x46, 0x43, 0x39, 0x35, 0x3f, 0x44, 0x4c, 0x4c, 0x44, 0x47, 0x53, 0x54, 0x4a,
    0x47, 0x43, 0x3d, 0x3a, 0x3a, 0x38, 0x35, 0x32, 0x2d, 0x2b, 0x2a, 0x28, 0x2c, 0x3c, 0x48, 0x46,
    0x3c, 0x2d, 0x2c, 0x35, 0x35, 0x2f, 0x2c, 0x2a, 0x2c, 0x2b, 0x2f, 0x35, 0x38, 0x37, 0x38, 0x3d,
    0x3a, 0x3b, 0x3c, 0x3b, 0x3b, 0x3b, 0x3b, 0x3b, 0x3d, 0x3f, 0x40, 0x3f, 0x40, 0x43, 0x49, 0x4d,
    0x4e, 0x4e, 0x4e, 0x4c, 0x49, 0x47, 0x47, 0x48, 0x42, 0x42, 0x44, 0x4a, 0x4e, 0x4c, 0x45, 0x3e,
    0x41, 0x3e, 0x3c, 0x3c, 0x3e, 0x42, 0x4a, 0x51, 0x4b, 0x4d, 0x50, 0x51, 0x51, 0x54, 0x5b, 0x61,
    0x65, 0x63, 0x61, 0x62, 0x66, 0x69, 0x66, 0x60, 0x51, 0x50, 0x4e, 0x50, 0x55, 0x5e, 0x67, 0x6d,
    0x6e, 0x6f, 0x71, 0x74, 0x75, 0x74, 0x71, 0x6e, 0x6f, 0x6d, 0x6b, 0x68, 0x61, 0x54, 0x44, 0x39,
    0x31, 0x39, 0x44, 0x4d, 0x54, 0x58, 0x55, 0x51, 0x5d, 0x5b, 0x58, 0x55, 0x58, 0x60, 0x6c, 0x74,
    0x70, 0x73, 0x74, 0x70, 0x69, 0x63, 0x60, 0x5f, 0x5d, 0x5a, 0x51, 0x47, 0x44, 0x4a, 0x53, 0x59,
    0x59, 0x5a, 0x5a, 0x58, 0x50, 0x44, 0x3c, 0x3a, 0x3f, 0x3e, 0x3d, 0x3e, 0x3f, 0x3e, 0x3c, 0x39,
    0x3a, 0x38, 0x36, 0x37, 0x3e, 0x48, 0x4b, 0x4a, 0x43, 0x3e, 0x3a, 0x3a, 0x3e, 0x41, 0x42, 0x42,
    0x43, 0x46, 0x4b, 0x50, 0x50, 0x4c, 0x45, 0x40, 0x40, 0x3c, 0x37, 0x36, 0x38, 0x3b, 0x3d, 0x3e,
    0x3a, 0x3e, 0x41, 0x3b, 0x2e, 0x24, 0x24, 0x2a, 0x2e, 0x32, 0x37, 0x3a, 0x3a, 0x3a, 0x3c, 0x3d,
    0x42, 0x3c, 0x37, 0x38, 0x3f, 0x4c, 0x5c, 0x6a, 0x7a, 0x7e, 0x82, 0x84, 0x88, 0x8c, 0x8b, 0x87,
    0x8f, 0x8e, 0x8e, 0x8e, 0x8e, 0x8c, 0x89, 0x86, 0x82, 0x84, 0x87, 0x88, 0x89, 0x8a, 0x8c, 0x8d,
    0x8d, 0x8b, 0x8b, 0x90, 0x97, 0x9b, 0x99, 0x96, 0x9e, 0x9e, 0x9f, 0x9d, 0x9b, 0x99, 0x99, 0x99,
    0x9d, 0xa0, 0xa1, 0x9e, 0x9b, 0x9c, 0x9d, 0x9b, 0x9e, 0x9c, 0x9c, 0x9c, 0x99, 0x96, 0x97, 0x9b,
    0x9f, 0xa5, 0xa5, 0xa1, 0x9f, 0x98, 0x94, 0x97, 0x9f, 0x99, 0x94, 0x93, 0x94, 0x93, 0x92, 0x94,
    0x8b, 0x90, 0x90, 0x8e, 0x93, 0x97, 0x95, 0x91, 0x91, 0x90, 0x90, 0x8e, 0x8c, 0x8c, 0x8c, 0x8d,
    0x8a, 0x8b, 0x89, 0x84, 0x80, 0x82, 0x85, 0x86, 0x82, 0x81, 0x7d, 0x76, 0x73, 0x75, 0x77, 0x77,
    0x77, 0x74, 0x71, 0x6f, 0x6e, 0x6b, 0x67, 0x64, 0x66, 0x65, 0x65, 0x67, 0x6a, 0x69, 0x65, 0x60,
    0x60, 0x64, 0x65, 0x62, 0x5e, 0x5c, 0x5b, 0x59, 0x5b, 0x56, 0x50, 0x4c, 0x4b, 0x4b, 0x48, 0x46,
    0x4a, 0x4b, 0x4e, 0x56, 0x5d, 0x64, 0x7d, 0xa0, 0xb6, 0xb8, 0xb9, 0xb9, 0xba, 0xbd, 0xbe, 0xbd,
    0xb7, 0xb7, 0xb4, 0xb0, 0xae, 0xb0, 0xb2, 0xb3, 0xb4, 0xb2, 0xae, 0xa4, 0x97, 0x8e, 0x7b, 0x63,
    0x53, 0x49, 0x50, 0x61, 0x6a, 0x70, 0x74, 0x6f, 0x70, 0x6b, 0x69, 0x6c, 0x6f, 0x71, 0x72, 0x74,
    0x75, 0x70, 0x6d, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x57, 0x51, 0x48, 0x43, 0x42, 0x43, 0x45, 0x47,
    0x4b, 0x4e, 0x51, 0x54, 0x5a, 0x67, 0x77, 0x82, 0x83, 0x86, 0x87, 0x87, 0x88, 0x89, 0x88, 0x86,
    0x71, 0x52, 0x45, 0x51, 0x57, 0x52, 0x58, 0x68, 0x76, 0x7b, 0x75, 0x6c, 0x6a, 0x67, 0x60, 0x5e,
    0x4c, 0x58, 0x69, 0x75, 0x77, 0x6f, 0x61, 0x56, 0x5a, 0x59, 0x54, 0x5f, 0x75, 0x7e, 0x97, 0xc3,
    0xd6, 0xac, 0x56, 0x66, 0x72, 0x69, 0x50, 0x47, 0x49, 0x42, 0x47, 0x55, 0x5c, 0x63, 0x6b, 0x6d,
    0x5a, 0x5d, 0x56, 0x4b, 0x50, 0x62, 0x6e, 0x6e, 0x6f, 0x66, 0x63, 0x6a, 0x6b, 0x59, 0x3c, 0x28,
    0x34, 0x34, 0x3c, 0x47, 0x48, 0x3f, 0x39, 0x3a, 0x41, 0x49, 0x48, 0x3f, 0x37, 0x30, 0x30, 0x39,
    0x3b, 0x38, 0x37, 0x38, 0x31, 0x25, 0x1e, 0x1e, 0x27, 0x27, 0x2a, 0x2c, 0x2c, 0x3a, 0x62, 0x8a,
    0x86, 0x75, 0x7a, 0x8c, 0x8c, 0x7e, 0x69, 0x53, 0x4a, 0x56, 0x61, 0x65, 0x67, 0x66, 0x5c, 0x4e,
    0x59, 0x52, 0x4d, 0x4d, 0x49, 0x42, 0x40, 0x44, 0x3f, 0x4a, 0x56, 0x58, 0x4f, 0x43, 0x3a, 0x35,
    0x57, 0x52, 0x4d, 0x4b, 0x4b, 0x48, 0x43, 0x3f, 0x34, 0x35, 0x44, 0x57, 0x62, 0x69, 0x6b, 0x67,
    0x66, 0x67, 0x68, 0x67, 0x66, 0x65, 0x65, 0x66, 0x66, 0x65, 0x65, 0x65, 0x64, 0x64, 0x62, 0x61,
    0x69, 0x67, 0x67, 0x6b, 0x6d, 0x6d, 0x6d, 0x6f, 0x73, 0x75, 0x77, 0x79, 0x79, 0x78, 0x75, 0x70,
    0x6c, 0x6d, 0x6c, 0x6b, 0x6d, 0x6c, 0x64, 0x59, 0x50, 0x4f, 0x59, 0x79, 0x95, 0x8d, 0x6b, 0x54,
    0x46, 0x49, 0x47, 0x42, 0x40, 0x40, 0x44, 0x4b, 0x76, 0x83, 0x79, 0x57, 0x45, 0x4a, 0x47, 0x38,
    0x3d, 0x39, 0x34, 0x31, 0x32, 0x35, 0x38, 0x3a, 0x31, 0x2f, 0x29, 0x26, 0x39, 0x5f, 0x70, 0x64,
    0x51, 0x37, 0x2b, 0x2f, 0x31, 0x31, 0x33, 0x34, 0x2b, 0x2f, 0x35, 0x38, 0x35, 0x31, 0x31, 0x33,
    0x35, 0x35, 0x33, 0x32, 0x37, 0x3f, 0x40, 0x3d, 0x3e, 0x3a, 0x34, 0x30, 0x31, 0x37, 0x41, 0x49,
    0x4f, 0x4f, 0x4e, 0x4e, 0x4d, 0x4a, 0x45, 0x42, 0x39, 0x38, 0x3c, 0x45, 0x51, 0x54, 0x4d, 0x43,
    0x3e, 0x3b, 0x3b, 0x3f, 0x44, 0x48, 0x4d, 0x51, 0x52, 0x52, 0x50, 0x4c, 0x4a, 0x4d, 0x53, 0x58,
    0x68, 0x66, 0x62, 0x61, 0x64, 0x68, 0x67, 0x64, 0x5d, 0x59, 0x57, 0x58, 0x5f, 0x67, 0x6e, 0x71,
    0x74, 0x77, 0x7b, 0x7d, 0x7b, 0x78, 0x74, 0x72, 0x79, 0x78, 0x79, 0x79, 0x76, 0x6e, 0x63, 0x5b,
    0x51, 0x54, 0x58, 0x5c, 0x61, 0x61, 0x59, 0x51, 0x51, 0x52, 0x55, 0x5b, 0x62, 0x6a, 0x72, 0x77,
    0x7c, 0x7c, 0x7a, 0x73, 0x68, 0x60, 0x5d, 0x5d, 0x5f, 0x5e, 0x59, 0x52, 0x4f, 0x52, 0x58, 0x5b,
    0x5c, 0x5d, 0x5e, 0x5c, 0x53, 0x48, 0x41, 0x3f, 0x3e, 0x3c, 0x3b, 0x3c, 0x3d, 0x3c, 0x3a, 0x37,
    0x3f, 0x3a, 0x37, 0x3b, 0x47, 0x51, 0x53, 0x51, 0x46, 0x42, 0x3e, 0x3d, 0x3e, 0x3e, 0x3c, 0x3a,
    0x41, 0x44, 0x48, 0x4b, 0x4d, 0x4c, 0x48, 0x44, 0x45, 0x41, 0x3b, 0x38, 0x39, 0x3
Download .txt
gitextract_6c2d9r9p/

├── .github/
│   └── workflows/
│       ├── EnterDevShell.ps1
│       ├── freebsd.yml
│       ├── ubuntu.yml
│       └── windows.yml
├── Android.bp
├── CONTRIBUTING.md
├── COPYING
├── INSTALL
├── Makefile.am
├── NEWS
├── README.md
├── autogen.sh
├── common/
│   ├── Makefile.am
│   ├── loadsurface.h
│   ├── loadsurface_yuv.h
│   ├── meson.build
│   ├── va_display.c
│   ├── va_display.h
│   ├── va_display_drm.c
│   ├── va_display_wayland.c
│   ├── va_display_win32.cpp
│   └── va_display_x11.c
├── configure.ac
├── decode/
│   ├── Makefile.am
│   ├── loadjpeg.c
│   ├── meson.build
│   ├── mpeg2-I.m2v
│   ├── mpeg2vldemo.cpp
│   ├── tinyjpeg-internal.h
│   ├── tinyjpeg.c
│   └── tinyjpeg.h
├── encode/
│   ├── Makefile.am
│   ├── av1encode.c
│   ├── avcenc.c
│   ├── h264encode.c
│   ├── hevcencode.c
│   ├── jpegenc.c
│   ├── jpegenc_utils.h
│   ├── meson.build
│   ├── mpeg2vaenc.c
│   ├── svctenc.c
│   ├── vp8enc.c
│   └── vp9enc.c
├── getopt/
│   ├── getopt.h
│   ├── getopt_long.c
│   └── meson.build
├── meson.build
├── meson_options.txt
├── putsurface/
│   ├── Makefile.am
│   ├── meson.build
│   ├── putsurface_common.c
│   ├── putsurface_wayland.c
│   └── putsurface_x11.c
├── security.md
├── style_unify
├── subprojects/
│   └── DirectX-Headers.wrap
├── test/
│   ├── Makefile.am
│   ├── compat_win32.h
│   ├── gtest/
│   │   ├── LICENSE
│   │   ├── README.md
│   │   ├── docs/
│   │   │   ├── AdvancedGuide.md
│   │   │   ├── DevGuide.md
│   │   │   ├── Documentation.md
│   │   │   ├── FAQ.md
│   │   │   ├── Primer.md
│   │   │   ├── PumpManual.md
│   │   │   ├── README.md
│   │   │   ├── Samples.md
│   │   │   └── XcodeGuide.md
│   │   ├── include/
│   │   │   └── gtest/
│   │   │       ├── gtest-death-test.h
│   │   │       ├── gtest-matchers.h
│   │   │       ├── gtest-message.h
│   │   │       ├── gtest-param-test.h
│   │   │       ├── gtest-param-test.h.pump
│   │   │       ├── gtest-printers.h
│   │   │       ├── gtest-spi.h
│   │   │       ├── gtest-test-part.h
│   │   │       ├── gtest-typed-test.h
│   │   │       ├── gtest.h
│   │   │       ├── gtest_pred_impl.h
│   │   │       ├── gtest_prod.h
│   │   │       └── internal/
│   │   │           ├── custom/
│   │   │           │   ├── README.md
│   │   │           │   ├── gtest-port.h
│   │   │           │   ├── gtest-printers.h
│   │   │           │   └── gtest.h
│   │   │           ├── gtest-death-test-internal.h
│   │   │           ├── gtest-filepath.h
│   │   │           ├── gtest-internal.h
│   │   │           ├── gtest-linked_ptr.h
│   │   │           ├── gtest-param-util-generated.h
│   │   │           ├── gtest-param-util-generated.h.pump
│   │   │           ├── gtest-param-util.h
│   │   │           ├── gtest-port-arch.h
│   │   │           ├── gtest-port.h
│   │   │           ├── gtest-string.h
│   │   │           ├── gtest-tuple.h
│   │   │           ├── gtest-tuple.h.pump
│   │   │           ├── gtest-type-util.h
│   │   │           └── gtest-type-util.h.pump
│   │   └── src/
│   │       ├── gtest-all.cc
│   │       ├── gtest-death-test.cc
│   │       ├── gtest-filepath.cc
│   │       ├── gtest-internal-inl.h
│   │       ├── gtest-matchers.cc
│   │       ├── gtest-port.cc
│   │       ├── gtest-printers.cc
│   │       ├── gtest-test-part.cc
│   │       ├── gtest-typed-test.cc
│   │       ├── gtest.cc
│   │       └── gtest_main.cc
│   ├── meson.build
│   ├── test.h
│   ├── test_data.h
│   ├── test_defs.h
│   ├── test_internal.cpp
│   ├── test_main.cpp
│   ├── test_streamable.h
│   ├── test_utils.h
│   ├── test_va_api_config_attribs.cpp
│   ├── test_va_api_createbuffer.cpp
│   ├── test_va_api_createcontext.cpp
│   ├── test_va_api_createsurfaces.cpp
│   ├── test_va_api_display_attribs.cpp
│   ├── test_va_api_fixture.cpp
│   ├── test_va_api_fixture.h
│   ├── test_va_api_get_create_config.cpp
│   ├── test_va_api_get_max_values.cpp
│   ├── test_va_api_init_terminate.cpp
│   ├── test_va_api_query_config.cpp
│   └── test_va_api_query_vendor.cpp
├── vainfo/
│   ├── Makefile.am
│   ├── meson.build
│   └── vainfo.c
├── vendor/
│   └── intel/
│       ├── Makefile.am
│       ├── avcstreamoutdemo.c
│       ├── avcstreamoutdemo.h
│       ├── meson.build
│       └── sfcsample/
│           ├── DecodeParamBuffer.h
│           ├── Makefile.am
│           ├── TestMain.cpp
│           ├── VDecAccelVA.cpp
│           ├── VDecAccelVA.h
│           └── meson.build
└── videoprocess/
    ├── Makefile.am
    ├── README.md
    ├── meson.build
    ├── process.cfg.template
    ├── process_3dlut.cfg.template
    ├── process_blending.cfg.template
    ├── process_chromasitting.cfg.template
    ├── process_denoise.cfg.template
    ├── process_hdr_tm_h2h.cfg.template
    ├── process_hdr_tm_h2s.cfg.template
    ├── process_scaling_csc.cfg.template
    ├── process_scaling_n_out_usrptr.cfg.template
    ├── process_sharpness.cfg.template
    ├── process_va_copy.cfg.template
    ├── vacopy.cpp
    ├── vavpp.cpp
    ├── vpp3dlut.cpp
    ├── vppblending.cpp
    ├── vppchromasitting.cpp
    ├── vppdenoise.cpp
    ├── vpphdr_tm.cpp
    ├── vppscaling_csc.cpp
    ├── vppscaling_n_out_usrptr.cpp
    └── vppsharpness.cpp
Download .txt
Showing preview only (298K chars total). Download the full file or copy to clipboard to get everything.
SYMBOL INDEX (1590 symbols across 93 files)

FILE: common/loadsurface.h
  function scale_2dimage (line 26) | static int scale_2dimage(unsigned char *src_img, int src_imgw, int src_i...
  function YUV_blend_with_pic (line 41) | static int YUV_blend_with_pic(int width, int height,
  function yuvgen_planar (line 165) | static int yuvgen_planar(int width, int height,
  function upload_surface (line 249) | static int upload_surface(VADisplay va_dpy, VASurfaceID surface_id,
  function upload_surface_yuv (line 316) | static int upload_surface_yuv(VADisplay va_dpy, VASurfaceID surface_id,
  function download_surface_yuv (line 409) | static int download_surface_yuv(VADisplay va_dpy, VASurfaceID surface_id,

FILE: common/va_display.c
  function print_display_names (line 98) | static void
  function sanitize_args (line 108) | static void
  function va_init_display_args (line 122) | void
  function VADisplay (line 142) | VADisplay
  function va_close_display (line 169) | void
  function VAStatus (line 179) | VAStatus
  function va_print_display_options (line 195) | void

FILE: common/va_display.h
  type VADisplayHooks (line 35) | typedef struct {

FILE: common/va_display_drm.c
  function VADisplay (line 42) | static VADisplay
  function va_close_display_drm (line 109) | static void
  function VAStatus (line 120) | static VAStatus

FILE: common/va_display_wayland.c
  type display (line 34) | struct display {
  type display (line 45) | struct display
  function registry_handle_global (line 47) | static void
  type wl_registry_listener (line 65) | struct wl_registry_listener
  function VADisplay (line 70) | static VADisplay
  function va_close_display_wayland (line 101) | static void
  function ensure_window (line 142) | static int
  function VAStatus (line 162) | static VAStatus

FILE: common/va_display_win32.cpp
  function dxcore_resolve_adapter (line 32) | void dxcore_resolve_adapter(const char *adapter_string, /*out*/ bool* pt...
  function VADisplay (line 121) | static VADisplay
  function va_close_display_win32 (line 141) | static void
  function VAStatus (line 146) | static VAStatus

FILE: common/va_display_x11.c
  function VADisplay (line 33) | static VADisplay
  function va_close_display_x11 (line 44) | static void
  function ensure_window (line 59) | static int
  function validate_rect (line 94) | static inline bool
  function VAStatus (line 104) | static VAStatus

FILE: decode/loadjpeg.c
  function exitmessage (line 43) | static void exitmessage(const char *message)
  function filesize (line 49) | static int filesize(FILE *fp)
  function convert_one_image (line 61) | int convert_one_image(const char *infilename)
  function usage (line 108) | static void usage(void)
  function main (line 118) | int main(int argc, char *argv[])

FILE: decode/mpeg2vldemo.cpp
  function main (line 139) | int main(int argc, char **argv)

FILE: decode/tinyjpeg-internal.h
  type jdec_private (line 43) | struct jdec_private
  type std_markers (line 53) | enum std_markers {
  type huffman_table (line 67) | struct huffman_table {
  type component (line 73) | struct component {
  type jdec_private (line 81) | struct jdec_private
  type jdec_private (line 82) | struct jdec_private
  type jpeg_sos (line 84) | struct jpeg_sos {
  type jdec_private (line 93) | struct jdec_private {

FILE: decode/tinyjpeg.c
  function build_default_huffman_tables (line 154) | static int build_default_huffman_tables(struct jdec_private *priv)
  function print_SOF (line 177) | static void print_SOF(const unsigned char *stream)
  function parse_DQT (line 202) | static int parse_DQT(struct jdec_private *priv, const unsigned char *str...
  function parse_SOF (line 227) | static int parse_SOF(struct jdec_private *priv, const unsigned char *str...
  function parse_SOS (line 278) | static int parse_SOS(struct jdec_private *priv, const unsigned char *str...
  function tinyjpeg_parse_SOS (line 311) | int tinyjpeg_parse_SOS(struct jdec_private *priv, const unsigned char *s...
  function parse_DHT (line 317) | static int parse_DHT(struct jdec_private *priv, const unsigned char *str...
  function parse_DRI (line 368) | static int parse_DRI(struct jdec_private *priv, const unsigned char *str...
  function findEOI (line 392) | static int findEOI(struct jdec_private *priv, const unsigned char *stream)
  function findSOI (line 402) | static int findSOI(struct jdec_private *priv, const unsigned char *stream)
  function parse_JFIF (line 415) | static int parse_JFIF(struct jdec_private *priv, const unsigned char *st...
  type jdec_private (line 515) | struct jdec_private
  type jdec_private (line 517) | struct jdec_private
  type jdec_private (line 519) | struct jdec_private
  type jdec_private (line 519) | struct jdec_private
  function tinyjpeg_free (line 530) | void tinyjpeg_free(struct jdec_private *priv)
  function tinyjpeg_parse_header (line 541) | int tinyjpeg_parse_header(struct jdec_private *priv, const unsigned char...
  function tinyjpeg_decode (line 559) | int tinyjpeg_decode(struct jdec_private *priv)
  type jdec_private (line 838) | struct jdec_private
  function tinyjpeg_get_size (line 843) | void tinyjpeg_get_size(struct jdec_private *priv, unsigned int *width, u...

FILE: decode/tinyjpeg.h
  type jdec_private (line 43) | struct jdec_private
  type tinyjpeg_fmt (line 49) | enum tinyjpeg_fmt {
  type jdec_private (line 56) | struct jdec_private
  type jdec_private (line 57) | struct jdec_private
  type jdec_private (line 59) | struct jdec_private
  type jdec_private (line 60) | struct jdec_private
  type jdec_private (line 61) | struct jdec_private
  type jdec_private (line 62) | struct jdec_private

FILE: encode/av1encode.c
  type __bitstream (line 59) | struct __bitstream {
  type bitstream (line 64) | typedef struct __bitstream bitstream;
  function bitstream_start (line 66) | static void
  function put_ui (line 76) | static void
  function put_aligning_bits (line 101) | static void
  function put_trailing_bits (line 109) | static void
  function bitstream_free (line 118) | static void
  function bitstream_cat (line 127) | static void
  type FRAME_TYPE (line 178) | enum FRAME_TYPE
  type INTERP_FILTER (line 187) | enum INTERP_FILTER{
  type AV1_OBU_TYPE (line 196) | enum AV1_OBU_TYPE
  type LoopFilterParams (line 208) | struct LoopFilterParams
  type TileInfoAv1 (line 220) | struct TileInfoAv1
  type QuantizationParams (line 233) | struct QuantizationParams
  type CdefParams (line 247) | struct CdefParams
  type RestorationType (line 257) | enum RestorationType
  type LRParams (line 283) | struct LRParams
  type TX_MODE (line 291) | enum TX_MODE{
  type ColorConfig (line 298) | struct ColorConfig
  type FH (line 313) | typedef struct FrameHeader
  type SH (line 379) | typedef struct SequenceHeader
  type ObuExtensionHeader (line 426) | struct ObuExtensionHeader {
  type BitOffsets (line 431) | struct BitOffsets
  type Av1InputParameters (line 444) | struct Av1InputParameters
  type Av1InputParameters (line 501) | struct Av1InputParameters
  type BitOffsets (line 504) | struct BitOffsets
  type storage_task_t (line 515) | struct storage_task_t {
  type storage_task_t (line 521) | struct storage_task_t
  function GetTickCount (line 563) | static unsigned int GetTickCount()
  function string_to_fourcc (line 571) | static int string_to_fourcc(char *str)
  function string_to_rc (line 591) | static int string_to_rc(char *str)
  function print_help (line 615) | static void print_help()
  function process_cmdline (line 640) | static void process_cmdline(int argc, char *argv[])
  function print_input (line 854) | static int print_input()
  function init_va (line 873) | static int init_va(void)
  function setup_encode (line 1031) | static int setup_encode()
  function release_encode (line 1089) | static int release_encode()
  function deinit_va (line 1105) | static int deinit_va()
  function encoding2display_order (line 1119) | void encoding2display_order(
  function fill_sps_header (line 1134) | static void
  function fill_pps_header (line 1151) | static void
  function va_render_packed_data (line 1268) | static void
  function render_ivf_frame_header (line 1316) | static void
  function render_ivf_header (line 1336) | static void
  function render_TD (line 1361) | static void
  function build_sps_buffer (line 1375) | static void
  function render_sequence (line 1415) | static void
  function render_rc_buffer (line 1438) | static void
  function render_hrd_buffer (line 1485) | static void
  function render_fr_buffer (line 1523) | static void
  function render_misc_buffer (line 1560) | static void
  function render_tile_group (line 1571) | static void
  function pack_obu_header (line 1592) | static void
  function pack_obu_header_size (line 1607) | static void
  function pack_operating_points (line 1653) | static void
  function pack_frame_size_info (line 1670) | static void
  function pack_seq_data (line 1681) | static void
  function build_packed_seq_header (line 1754) | static void
  function render_packedsequence (line 1775) | static int
  function pack_show_existing_frame (line 1793) | static void
  function pack_show_frame (line 1799) | static void
  function pack_error_resilient (line 1807) | static void
  function pack_ref_frame_flags (line 1814) | static void
  function pack_interpolation_filter (line 1823) | static void
  function pack_render_size (line 1834) | static void
  function pack_frame_size (line 1842) | static void
  function pack_frame_size_with_refs (line 1853) | static void
  function pack_frame_ref_info (line 1869) | static void
  function pack_tile_info (line 1899) | static void
  function write_SU (line 1908) | static uint16_t
  function pack_delta_q_value (line 1919) | static void
  function pack_quantization_params (line 1931) | static void
  function pack_loop_filter_params (line 1965) | static void
  function pack_cdef_params (line 1986) | static void
  function pack_lr_params (line 2010) | static void
  function pack_delta_q_params (line 2048) | static void
  function pack_frame_reference_mode (line 2062) | static void
  function pack_skip_mode_params (line 2070) | static void
  function pack_wrapped_motion (line 2077) | static void
  function pack_global_motion_params (line 2087) | static void
  function pack_frame_header (line 2097) | static void
  function build_packed_pic_header (line 2172) | static void
  function render_packedpicture (line 2217) | static void
  function fill_ref_params (line 2230) | static void
  function build_pps_buffer (line 2249) | static void
  function render_picture (line 2402) | static void
  function upload_source_YUV_once_for_all (line 2425) | static int upload_source_YUV_once_for_all()
  type storage_task_t (line 2443) | struct storage_task_t
  type storage_task_t (line 2445) | struct storage_task_t
  function load_surface (line 2461) | static int load_surface(VASurfaceID surface_id, unsigned long long displ...
  function save_codeddata (line 2513) | static int save_codeddata(unsigned long long display_order, unsigned lon...
  function save_recyuv (line 2584) | static int save_recyuv(VASurfaceID surface_id,
  function storage_task (line 2677) | static void storage_task(unsigned long long display_order, unsigned long...
  type storage_task_t (line 2706) | struct storage_task_t
  function storage_task_queue (line 2728) | static int storage_task_queue(unsigned long long display_order, unsigned...
  function encode_frames (line 2756) | static int encode_frames(void)
  function calc_PSNR (line 2864) | static int calc_PSNR(double *psnr)
  function print_performance (line 2907) | static int print_performance(unsigned int PictureCount)
  function main (line 2956) | int main(int argc, char **argv)

FILE: encode/avcenc.c
  type option (line 115) | struct option
  type upload_thread_param (line 145) | struct upload_thread_param {
  type upload_thread_param (line 181) | struct upload_thread_param
  function create_encode_pipe (line 202) | static void create_encode_pipe()
  function destory_encode_pipe (line 282) | static void destory_encode_pipe()
  function get_free_slot (line 325) | static int get_free_slot()
  type upload_thread_param (line 345) | struct upload_thread_param
  function alloc_encode_resource (line 352) | static void alloc_encode_resource(FILE *yuv_fp)
  function release_encode_resource (line 389) | static void release_encode_resource()
  function avcenc_update_sei_param (line 400) | static void avcenc_update_sei_param(int is_idr)
  function sort_one (line 462) | static void sort_one(VAPictureH264 ref[], int left, int right,
  function sort_two (line 485) | static void sort_two(VAPictureH264 ref[], int left, int right, unsigned ...
  function update_RefPicList (line 501) | static int update_RefPicList()
  function avcenc_update_picture_parameter (line 522) | static void avcenc_update_picture_parameter(int slice_type, int is_idr)
  function upload_yuv_to_surface (line 569) | static void upload_yuv_to_surface(FILE *yuv_fp, VASurfaceID surface_id)
  function avcenc_update_slice_parameter (line 640) | static void avcenc_update_slice_parameter(int slice_type)
  function update_ReferenceFrames (line 712) | static int update_ReferenceFrames(void)
  function begin_picture (line 755) | static int begin_picture(FILE *yuv_fp, int frame_num, int display_num, i...
  function avcenc_render_picture (line 939) | int avcenc_render_picture()
  function avcenc_destroy_buffers (line 1005) | static int avcenc_destroy_buffers(VABufferID *va_buffers, unsigned int n...
  function end_picture (line 1021) | static void end_picture(void)
  type __bitstream (line 1046) | struct __bitstream {
  type bitstream (line 1052) | typedef struct __bitstream bitstream;
  function get_coded_bitsteam_length (line 1055) | static int
  function va_swap32 (line 1072) | static unsigned int
  function bitstream_start (line 1083) | static void
  function bitstream_end (line 1092) | static void
  function bitstream_put_ui (line 1104) | static void
  function bitstream_put_ue (line 1133) | static void
  function bitstream_put_se (line 1148) | static void
  function bitstream_byte_aligning (line 1161) | static void
  function rbsp_trailing_bits (line 1181) | static void
  function nal_start_code_prefix (line 1188) | static void nal_start_code_prefix(bitstream *bs)
  function nal_header (line 1193) | static void nal_header(bitstream *bs, int nal_ref_idc, int nal_unit_type)
  function sps_rbsp (line 1200) | static void sps_rbsp(bitstream *bs)
  function build_nal_sps (line 1307) | static void build_nal_sps(FILE *avc_fp)
  function pps_rbsp (line 1319) | static void pps_rbsp(bitstream *bs)
  function build_nal_pps (line 1355) | static void build_nal_pps(FILE *avc_fp)
  function build_header (line 1366) | static void
  function nal_delimiter (line 1374) | static void nal_delimiter(bitstream *bs, int slice_type)
  function build_nal_delimiter (line 1388) | static int build_nal_delimiter(unsigned char **header_buffer)
  function build_packed_pic_buffer (line 1402) | static int
  function build_packed_seq_buffer (line 1417) | static int
  function build_packed_idr_sei_buffer_timing (line 1432) | static int
  function build_packed_sei_pic_timing (line 1511) | static int
  function slice_header (line 1567) | static void
  function slice_data (line 1635) | static void
  function build_nal_slice (line 1665) | static void
  function store_coded_buffer (line 1677) | static int
  function encoding2display_order (line 1728) | static void encoding2display_order(
  function encode_picture (line 1781) | static void
  function show_help (line 1855) | static void show_help()
  function avcenc_context_seq_param_init (line 1860) | static void avcenc_context_seq_param_init(VAEncSequenceParameterBufferH2...
  function avcenc_context_pic_param_init (line 1913) | static void avcenc_context_pic_param_init(VAEncPictureParameterBufferH26...
  function avcenc_context_sei_init (line 1941) | static void avcenc_context_sei_init()
  function avcenc_context_init (line 1959) | static void avcenc_context_init(int width, int height)
  function main (line 2021) | int main(int argc, char *argv[])

FILE: encode/h264encode.c
  type storage_task_t (line 154) | struct storage_task_t {
  type storage_task_t (line 159) | struct storage_task_t
  type __bitstream (line 181) | struct __bitstream {
  type bitstream (line 186) | typedef struct __bitstream bitstream;
  function va_swap32 (line 189) | static unsigned int
  function bitstream_start (line 200) | static void
  function bitstream_end (line 209) | static void
  function bitstream_put_ui (line 221) | static void
  function bitstream_put_ue (line 250) | static void
  function bitstream_put_se (line 265) | static void
  function bitstream_byte_aligning (line 278) | static void
  function rbsp_trailing_bits (line 298) | static void
  function nal_start_code_prefix (line 305) | static void nal_start_code_prefix(bitstream *bs)
  function nal_header (line 310) | static void nal_header(bitstream *bs, int nal_ref_idc, int nal_unit_type)
  function sps_rbsp (line 317) | static void sps_rbsp(bitstream *bs)
  function pps_rbsp (line 415) | static void pps_rbsp(bitstream *bs)
  function slice_header (line 448) | static void slice_header(bitstream *bs)
  function build_packed_pic_buffer (line 543) | static int
  function build_packed_seq_buffer (line 558) | static int
  function build_packed_sei_buffer_timing (line 575) | static int
  function build_packed_slice_buffer (line 643) | static int build_packed_slice_buffer(unsigned char **header_buffer)
  function GetTickCount (line 672) | static unsigned int GetTickCount()
  function encoding2display_order (line 717) | void encoding2display_order(
  function string_to_fourcc (line 780) | static int string_to_fourcc(char *str)
  function string_to_rc (line 820) | static int string_to_rc(char *str)
  function print_help (line 844) | static int print_help(void)
  function process_cmdline (line 871) | static int process_cmdline(int argc, char *argv[])
  function init_va (line 1079) | static int init_va(void)
  function setup_encode (line 1299) | static int setup_encode()
  function sort_one (line 1380) | static void sort_one(VAPictureH264 ref[], int left, int right,
  function sort_two (line 1403) | static void sort_two(VAPictureH264 ref[], int left, int right, unsigned ...
  function update_ReferenceFrames (line 1420) | static int update_ReferenceFrames(void)
  function update_RefPicList (line 1444) | static int update_RefPicList(void)
  function render_sequence (line 1467) | static int render_sequence(void)
  function calc_poc (line 1553) | static int calc_poc(int pic_order_cnt_lsb)
  function render_picture (line 1585) | static int render_picture(void)
  function render_packedsequence (line 1634) | static int render_packedsequence(void)
  function render_packedpicture (line 1673) | static int render_packedpicture(void)
  function render_packedsei (line 1712) | static void render_packedsei(void)
  function render_hrd (line 1774) | static int render_hrd(void)
  function render_packedslice (line 1812) | static void render_packedslice()
  function render_slice (line 1847) | static int render_slice(void)
  function upload_source_YUV_once_for_all (line 1908) | static int upload_source_YUV_once_for_all()
  function load_surface (line 1926) | static int load_surface(VASurfaceID surface_id, unsigned long long displ...
  function save_recyuv (line 1981) | static int save_recyuv(VASurfaceID surface_id,
  function save_codeddata (line 2075) | static int save_codeddata(unsigned long long display_order, unsigned lon...
  type storage_task_t (line 2115) | struct storage_task_t
  type storage_task_t (line 2117) | struct storage_task_t
  function storage_task_queue (line 2133) | static int storage_task_queue(unsigned long long display_order, unsigned...
  function storage_task (line 2160) | static void storage_task(unsigned long long display_order, unsigned long...
  type storage_task_t (line 2190) | struct storage_task_t
  function encode_frames (line 2213) | static int encode_frames(void)
  function release_encode (line 2300) | static int release_encode()
  function deinit_va (line 2316) | static int deinit_va()
  function print_input (line 2326) | static int print_input()
  function calc_PSNR (line 2358) | static int calc_PSNR(double *psnr)
  function print_performance (line 2403) | static int print_performance(unsigned int PictureCount)
  function main (line 2453) | int main(int argc, char **argv)

FILE: encode/hevcencode.c
  type NALUType (line 92) | enum NALUType {
  type ProfileTierParamSet (line 133) | struct ProfileTierParamSet {
  type VideoParamSet (line 147) | struct VideoParamSet {
  type ShortTermRefPicParamSet (line 180) | struct ShortTermRefPicParamSet {
  type SeqParamSet (line 194) | struct SeqParamSet {
  type PicParamSet (line 253) | struct PicParamSet {
  type SliceHeader (line 308) | struct SliceHeader {
  type BlockSizes (line 377) | struct BlockSizes {
  type Features (line 391) | struct Features {
  type VideoParamSet (line 409) | struct VideoParamSet
  type SeqParamSet (line 410) | struct SeqParamSet
  type PicParamSet (line 411) | struct PicParamSet
  type SliceHeader (line 412) | struct SliceHeader
  type BlockSizes (line 413) | struct BlockSizes
  type Features (line 415) | struct Features
  type ProfileTierParamSet (line 431) | struct ProfileTierParamSet
  type storage_task_t (line 492) | struct storage_task_t {
  type storage_task_t (line 497) | struct storage_task_t
  type __bitstream (line 515) | struct __bitstream {
  type bitstream (line 520) | typedef struct __bitstream bitstream;
  function va_swap32 (line 522) | static unsigned int
  function bitstream_start (line 533) | static void
  function bitstream_end (line 542) | static void
  function put_ui (line 554) | static void
  function put_ue (line 583) | static void
  function put_se (line 598) | static void
  function byte_aligning (line 611) | static void
  function rbsp_trailing_bits (line 631) | static void
  function nal_start_code_prefix (line 638) | static void nal_start_code_prefix(bitstream *bs, int nal_unit_type)
  function nal_header (line 649) | static void nal_header(bitstream *bs, int nal_unit_type)
  function calc_poc (line 657) | static int calc_poc(int pic_order_cnt_lsb)
  function fill_profile_tier_level (line 689) | static void fill_profile_tier_level(
  function fill_vps_header (line 713) | static void fill_vps_header(struct VideoParamSet *vps)
  function fill_short_term_ref_pic_header (line 743) | static void fill_short_term_ref_pic_header(
  function fill_sps_header (line 780) | void fill_sps_header(struct  SeqParamSet *sps, int id)
  function fill_pps_header (line 881) | static void fill_pps_header(
  function fill_slice_header (line 928) | static void fill_slice_header(
  function protier_rbsp (line 1000) | static void protier_rbsp(bitstream *bs)
  function pack_short_term_ref_pic_setp (line 1019) | void pack_short_term_ref_pic_setp(
  function vps_rbsp (line 1041) | static void vps_rbsp(bitstream *bs)
  function sps_rbsp (line 1088) | static void sps_rbsp(bitstream *bs)
  function pps_rbsp (line 1181) | static void pps_rbsp(bitstream *bs)
  function sliceHeader_rbsp (line 1281) | static void sliceHeader_rbsp(
  function build_packed_pic_buffer (line 1509) | static int
  function build_packed_video_buffer (line 1524) | static int
  function build_packed_seq_buffer (line 1540) | static int
  function build_packed_slice_buffer (line 1556) | static int build_packed_slice_buffer(unsigned char **header_buffer)
  function GetTickCount (line 1577) | static unsigned int GetTickCount()
  function encoding2display_order (line 1618) | void encoding2display_order(
  function string_to_fourcc (line 1683) | static int string_to_fourcc(char *str)
  function string_to_rc (line 1723) | static int string_to_rc(char *str)
  function print_help (line 1747) | static int print_help(void)
  function process_cmdline (line 1774) | static int process_cmdline(int argc, char *argv[])
  function init_va (line 1983) | static int init_va(void)
  function setup_encode (line 2242) | static int setup_encode()
  function sort_one (line 2324) | static void sort_one(VAPictureHEVC ref[], int left, int right,
  function sort_two (line 2340) | static void sort_two(VAPictureHEVC ref[], int left, int right, unsigned ...
  function update_ReferenceFrames (line 2352) | static int update_ReferenceFrames(void)
  function update_RefPicList (line 2369) | static int update_RefPicList(void)
  function render_sequence (line 2390) | static int render_sequence(struct SeqParamSet *sps)
  function render_picture (line 2489) | static int render_picture(struct PicParamSet *pps)
  function render_packedvideo (line 2563) | static int render_packedvideo(void)
  function render_packedsequence (line 2613) | static int render_packedsequence(void)
  function render_packedpicture (line 2663) | static int render_packedpicture(void)
  function render_packedslice (line 2711) | static void render_packedslice()
  function render_slice (line 2757) | static int render_slice(void)
  function upload_source_YUV_once_for_all (line 2828) | static int upload_source_YUV_once_for_all()
  function load_surface (line 2846) | static int load_surface(VASurfaceID surface_id, unsigned long long displ...
  function save_recyuv (line 2899) | static int save_recyuv(VASurfaceID surface_id,
  function save_codeddata (line 2993) | static int save_codeddata(unsigned long long display_order, unsigned lon...
  type storage_task_t (line 3033) | struct storage_task_t
  type storage_task_t (line 3035) | struct storage_task_t
  function storage_task_queue (line 3051) | static int storage_task_queue(unsigned long long display_order, unsigned...
  function storage_task (line 3079) | static void storage_task(unsigned long long display_order, unsigned long...
  type storage_task_t (line 3109) | struct storage_task_t
  function encode_frames (line 3132) | static int encode_frames(void)
  function release_encode (line 3212) | static int release_encode()
  function deinit_va (line 3228) | static int deinit_va()
  function print_input (line 3238) | static int print_input()
  function calc_PSNR (line 3272) | static int calc_PSNR(double *psnr)
  function print_performance (line 3315) | static int print_performance(unsigned int PictureCount)
  function main (line 3365) | int main(int argc, char **argv)

FILE: encode/jpegenc.c
  function show_help (line 66) | void show_help()
  function jpegenc_pic_param_init (line 75) | void jpegenc_pic_param_init(VAEncPictureParameterBufferJPEG *pic_param, ...
  function jpegenc_qmatrix_init (line 106) | void jpegenc_qmatrix_init(VAQMatrixBufferJPEG *quantization_param, YUVCo...
  function jpegenc_hufftable_init (line 128) | void jpegenc_hufftable_init(VAHuffmanTableBufferJPEGBaseline *hufftable_...
  function jpegenc_slice_param_init (line 166) | void jpegenc_slice_param_init(VAEncSliceParameterBufferJPEG *slice_param...
  function populate_quantdata (line 188) | void populate_quantdata(JPEGQuantSection *quantVal, int type)
  function populate_frame_header (line 211) | void populate_frame_header(JPEGFrameHeader *frameHdr, YUVComponentSpecs ...
  function populate_huff_section_header (line 240) | void populate_huff_section_header(JPEGHuffSection *huffSectionHdr, int t...
  function populate_scan_header (line 284) | void populate_scan_header(JPEGScanHeader *scanHdr, YUVComponentSpecs yuv...
  function build_packed_jpeg_header_buffer (line 320) | int build_packed_jpeg_header_buffer(unsigned char **header_buffer, YUVCo...
  function upload_yuv_to_surface (line 487) | void upload_yuv_to_surface(VADisplay va_dpy, FILE *yuv_fp, VASurfaceID s...
  function init_yuv_component (line 589) | void init_yuv_component(YUVComponentSpecs *yuvComponent, int yuv_type, i...
  function encode_input_image (line 676) | int encode_input_image(FILE *yuv_fp, FILE *jpeg_fp, int picture_width, i...
  function main (line 914) | int main(int argc, char *argv[])

FILE: encode/jpegenc_utils.h
  type __bitstream (line 44) | struct __bitstream {
  type bitstream (line 50) | typedef struct __bitstream bitstream;
  function swap32 (line 52) | static unsigned int
  function bitstream_start (line 63) | static void
  function bitstream_end (line 72) | static void
  function bitstream_put_ui (line 84) | static void
  type jpeg_markers (line 117) | enum jpeg_markers {
  type JPEGFrameHeader (line 135) | typedef struct _JPEGFrameHeader {
  type JPEGScanHeader (line 154) | typedef struct _JPEGScanHeader {
  type JPEGQuantSection (line 174) | typedef struct _JPEGQuantSection {
  type JPEGHuffSection (line 184) | typedef struct _JPEGHuffSection {
  type JPEGRestartSection (line 196) | typedef struct _JPEGRestartSection {
  type JPEGCommentSection (line 205) | typedef struct _JPEGCommentSection {
  type JPEGAppSection (line 214) | typedef struct _JPEGAppSection {
  type YUVComponentSpecs (line 334) | typedef struct _YUVComponentSpecs {

FILE: encode/mpeg2vaenc.c
  type _mpeg2_sampling_density (line 92) | struct _mpeg2_sampling_density {
  type mpeg2enc_context (line 108) | struct mpeg2enc_context {
  type __bitstream (line 164) | struct __bitstream {
  type bitstream (line 170) | typedef struct __bitstream bitstream;
  function swap32 (line 172) | static unsigned int
  function bitstream_start (line 183) | static void
  function bitstream_end (line 192) | static void
  function bitstream_put_ui (line 204) | static void
  function bitstream_byte_aligning (line 236) | static void
  type mpeg2_frame_rate (line 256) | struct mpeg2_frame_rate {
  function find_frame_rate_code (line 270) | static int
  function sps_rbsp (line 290) | static void
  function pps_rbsp (line 339) | static void
  function build_packed_pic_buffer (line 397) | static int
  function build_packed_seq_buffer (line 412) | static int
  type mpeg2enc_context (line 445) | struct mpeg2enc_context
  function mpeg2enc_exit (line 512) | static void
  function usage (line 533) | static void
  function mpeg2_profile_level (line 551) | void
  function parse_args (line 581) | static void
  function mpeg2enc_init_sequence_parameter (line 735) | void
  function mpeg2enc_init_picture_parameter (line 799) | static void
  function mpeg2enc_alloc_va_resources (line 828) | static void
  function mpeg2enc_init (line 916) | static void
  function mpeg2enc_time_code (line 970) | static int
  function mpeg2enc_update_sequence_parameter (line 1006) | static void
  function mpeg2enc_update_picture_parameter (line 1020) | static void
  function mpeg2enc_update_picture_parameter_buffer (line 1077) | static void
  function mpeg2enc_update_slice_parameter (line 1098) | static void
  function begin_picture (line 1133) | static int
  function mpeg2enc_render_picture (line 1221) | static int
  function mpeg2enc_destroy_buffers (line 1266) | static int
  function end_picture (line 1283) | static void
  function store_coded_buffer (line 1319) | static int
  function encode_picture (line 1375) | static void
  function update_next_frame_info (line 1431) | static void
  function mpeg2enc_run (line 1478) | static void
  function mpeg2enc_release_va_resources (line 1517) | static void
  function mpeg2enc_end (line 1527) | static void
  function main (line 1534) | int

FILE: encode/svctenc.c
  type svcenc_surface (line 144) | typedef struct _svcenc_surface {
  type upload_task_t (line 163) | struct upload_task_t {
  type svcenc_context (line 169) | struct svcenc_context {
  type __bitstream (line 271) | struct __bitstream {
  type bitstream (line 277) | typedef struct __bitstream bitstream;
  function va_swap32 (line 279) | static unsigned int
  function bitstream_start (line 290) | static void
  function bitstream_end (line 298) | static void
  function bitstream_put_ui (line 310) | static void
  function bitstream_put_ue (line 339) | static void
  function bitstream_put_se (line 354) | static void
  function bitstream_byte_aligning (line 367) | static void
  function rbsp_trailing_bits (line 387) | static void
  function nal_start_code_prefix (line 394) | static void
  function nal_header (line 400) | static void
  function sps_data (line 408) | static void
  function sps_svc_extension (line 508) | static void
  function sps_svc_vui_parameters_extension (line 543) | static void
  function sps_additional_extension2 (line 551) | static void
  function pps_rbsp (line 559) | static void
  function build_packed_seq_buffer (line 595) | static int
  function build_packed_subset_seq_buffer (line 616) | static int
  function build_packed_pic_buffer (line 640) | static int
  function build_packed_sei_buffering_period_buffer (line 657) | static int
  function build_packed_sei_pic_timing_buffer (line 689) | static int
  function build_packed_sei_scalability_info_buffer (line 727) | static int
  function svcenc_update_sei_info (line 789) | static void
  function build_packed_sei_buffer (line 823) | static int
  function slice_header (line 900) | static void
  function nal_header_extension (line 1017) | static void
  function nal_unit_svc_prefix_rbsp (line 1038) | static void
  function build_packed_svc_prefix_nal_unit (line 1051) | static int
  function build_packed_slice_header_buffer (line 1072) | static int
  type upload_task_t (line 1107) | struct upload_task_t
  type svcenc_context (line 1108) | struct svcenc_context
  type upload_task_t (line 1110) | struct upload_task_t
  function upload_task_queue (line 1128) | static int
  function upload_task (line 1156) | static void
  type svcenc_context (line 1233) | struct svcenc_context
  type svcenc_context (line 1233) | struct svcenc_context
  type upload_task_t (line 1237) | struct upload_task_t
  function usage (line 1259) | static void
  function svcenc_exit (line 1277) | static void
  function parse_args (line 1293) | static void
  function svcenc_update_ref_frames (line 1441) | void
  function svcenc_coding_order_to_display_order (line 1463) | static int
  function update_next_picture_info (line 1478) | static void
  function svcenc_coding_order_to_level_pgop (line 1518) | static int
  function update_next_picture_info_pgop (line 1538) | static void
  function svcenc_seq_parameter_set_id (line 1577) | static int
  function svcenc_pic_parameter_set_id (line 1584) | static int
  function svcenc_update_sequence_parameter_buffer (line 1591) | void
  function svcenc_update_picture_parameter_buffer (line 1661) | void
  function sort_one (line 1758) | static void
  function sort_two (line 1783) | static void
  function svcenc_update_ref_lists (line 1803) | static void
  function avc_temporal_find_surface (line 1826) | static int
  function avc_temporal_find_surface_pgop (line 1857) | static int
  function svcenc_update_slice_parameter_buffer (line 1886) | void
  function svcenc_update_misc_parameter_buffer (line 2073) | void
  function svcenc_update_packed_slice_header_buffer (line 2262) | static void
  function svcenc_update_packed_buffers (line 2333) | void
  function svcenc_update_profile_idc (line 2470) | void
  function begin_picture (line 2517) | int
  function svcenc_store_coded_buffer (line 2531) | static int
  function render_picture (line 2565) | int
  function svcenc_destroy_buffers (line 2672) | static int
  function end_picture (line 2691) | int
  function encode_picture (line 2724) | void
  function svcenc_va_init (line 2739) | static void
  function svcenc_sei_init (line 2903) | static void
  function svcenc_init (line 2925) | static void
  function svcenc_run (line 3023) | static void
  function svcenc_va_end (line 3061) | static void
  function svcenc_end (line 3073) | static void
  function main (line 3081) | int

FILE: encode/vp8enc.c
  type option (line 106) | struct option
  type vp8enc_settings (line 131) | struct vp8enc_settings {
  type vp8enc_settings (line 155) | struct vp8enc_settings
  type vp8enc_vaapi_context (line 175) | struct vp8enc_vaapi_context {
  type vp8enc_vaapi_context (line 212) | struct vp8enc_vaapi_context
  function vp8enc_write_word (line 220) | static void
  function vp8enc_write_dword (line 230) | static void
  function vp8enc_write_qword (line 242) | static void
  function vp8enc_write_frame_header (line 258) | static void
  function vp8enc_write_ivf_header (line 269) | static void
  function vp8enc_upload_yuv_to_surface (line 308) | static void
  function vp8enc_init_QMatrix (line 407) | void vp8enc_init_QMatrix(VAQMatrixBufferVP8 *qMatrix)
  function vp8enc_init_SequenceParameterBuffer (line 420) | void vp8enc_init_SequenceParameterBuffer(VAEncSequenceParameterBufferVP8...
  function vp8enc_init_PictureParameterBuffer (line 441) | void vp8enc_init_PictureParameterBuffer(VAEncPictureParameterBufferVP8 *...
  function vp8enc_set_refreshparameter_for_svct_2layers (line 462) | void vp8enc_set_refreshparameter_for_svct_2layers(VAEncPictureParameterB...
  function vp8enc_set_refreshparameter_for_svct_3layers (line 487) | void vp8enc_set_refreshparameter_for_svct_3layers(VAEncPictureParameterB...
  function vp8enc_reset_picture_parameter_references (line 519) | void vp8enc_reset_picture_parameter_references(VAEncPictureParameterBuff...
  function vp8enc_update_picture_parameter (line 534) | void vp8enc_update_picture_parameter(int frame_type, int current_frame)
  function VASurfaceID (line 585) | VASurfaceID vp8enc_get_unused_surface()
  function VASurfaceID (line 604) | VASurfaceID vp8enc_update_reference(VASurfaceID current_surface, VASurfa...
  function vp8enc_update_reference_list (line 624) | void vp8enc_update_reference_list(int frame_type)
  function vp8enc_init_MiscParameterBuffers (line 644) | void vp8enc_init_MiscParameterBuffers(VAEncMiscParameterHRD *hrd, VAEncM...
  function vp8enc_create_EncoderPipe (line 677) | void vp8enc_create_EncoderPipe()
  function vp8enc_destory_EncoderPipe (line 751) | void vp8enc_destory_EncoderPipe()
  function vp8enc_init_VaapiContext (line 762) | void vp8enc_init_VaapiContext()
  function vp8enc_store_coded_buffer (line 785) | static int
  function vp8enc_get_FileSize (line 828) | size_t vp8enc_get_FileSize(FILE *fp)
  function vp8enc_prepare_buffers (line 836) | int vp8enc_prepare_buffers(int frame_type)
  function vp8enc_render_picture (line 931) | static void
  function vp8enc_destroy_buffers (line 953) | void vp8enc_destroy_buffers()
  function vp8enc_show_help (line 973) | void vp8enc_show_help()
  function parameter_check (line 993) | void parameter_check(const char *param, int val, int min, int max)
  function parameter_check_positive (line 1001) | void parameter_check_positive(const char *param, int val, int min)
  function parse_options (line 1009) | int parse_options(int ac, char *av[])
  function main (line 1090) | int main(int argc, char *argv[])

FILE: encode/vp9enc.c
  type option (line 135) | struct option
  type vp9enc_bit_buffer (line 150) | struct vp9enc_bit_buffer {
  type upload_thread_param (line 155) | struct upload_thread_param {
  type vp9encode_context (line 160) | struct vp9encode_context {
  type vp9encode_context (line 189) | struct vp9encode_context
  function vp9enc_write_word (line 191) | static void
  function vp9enc_write_dword (line 201) | static void
  function vp9enc_wb_write_bit (line 213) | static void
  function vp9enc_wb_write_literal (line 229) | static void
  function vp9enc_write_bitdepth_colorspace_sampling (line 238) | static void
  function vp9enc_get_min_log2_tile_cols (line 258) | static int
  function vp9enc_get_max_log2_tile_cols (line 269) | static int
  function vp9enc_write_uncompressed_header (line 280) | static void
  function vp9enc_upload_yuv_to_surface (line 531) | static void
  type upload_thread_param (line 606) | struct upload_thread_param
  function vp9enc_alloc_encode_resource (line 613) | static void
  function vp9enc_create_encode_pipe (line 660) | static void
  function vp9enc_destory_encode_pipe (line 737) | static void
  function vp9enc_release_encode_resource (line 746) | static void
  function vp9enc_get_free_slot (line 756) | static int
  function vp9enc_update_reference_list (line 776) | static void
  function vp9enc_update_picture_parameter (line 822) | static void
  function vp9enc_create_picture_parameter_buf (line 867) | static void
  function vp9enc_begin_picture (line 881) | static void
  function vp9enc_render_picture (line 994) | static void
  function vp9enc_destroy_buffers (line 1040) | static void
  function vp9enc_write_frame_header (line 1055) | static void
  function vp9enc_store_coded_buffer (line 1067) | static int
  function vp9enc_write_ivf_header (line 1111) | static void
  function vp9enc_get_frame_type (line 1140) | static void
  function vp9enc_end_picture (line 1153) | static void
  function vp9enc_encode_picture (line 1173) | static void
  function vp9enc_context_seq_param_init (line 1266) | static void
  function vp9enc_context_pic_param_init (line 1283) | static void
  function vp9enc_context_init (line 1326) | static void
  function vp9enc_show_help (line 1356) | static void
  function main (line 1375) | int

FILE: getopt/getopt.h
  type option (line 47) | struct option {
  type option (line 62) | struct option
  type option (line 64) | struct option

FILE: getopt/getopt_long.c
  type option (line 78) | struct option
  type option (line 80) | struct option
  function gcd (line 101) | static int
  function permute_args (line 121) | static void
  function parse_long_options (line 158) | static int
  function getopt_internal (line 276) | static int
  function getopt (line 472) | int
  function getopt_long (line 491) | int
  function getopt_long_only (line 504) | int

FILE: putsurface/putsurface_common.c
  type fourcc_map (line 91) | typedef struct {
  function map_str_to_vafourcc (line 105) | unsigned int map_str_to_vafourcc(char * str)
  function va_value_equals (line 131) | static int
  function ensure_image_formats (line 150) | static int
  function VAImageFormat (line 176) | static const VAImageFormat *
  function ensure_surface_attribs (line 192) | static int
  function VASurfaceAttrib (line 236) | static const VASurfaceAttrib *
  function csc_preparation (line 256) | int csc_preparation()
  function VASurfaceID (line 315) | static VASurfaceID get_next_free_surface(int *index)
  function upload_source_YUV_once_for_all (line 349) | static int upload_source_YUV_once_for_all()
  function get_tick_count (line 370) | static unsigned long get_tick_count(void)
  function update_clipbox (line 378) | static void update_clipbox(VARectangle *cliprects, int width, int height)
  function main (line 508) | int main(int argc, char **argv)

FILE: putsurface/putsurface_wayland.c
  type display (line 43) | struct display
  type drawable (line 44) | struct drawable
  type drawable (line 49) | struct drawable
  function VADisplay (line 61) | static inline VADisplay
  function VAStatus (line 67) | static VAStatus
  type display (line 102) | struct display {
  type drawable (line 110) | struct drawable {
  function frame_redraw_callback (line 116) | static void
  type wl_callback_listener (line 125) | struct wl_callback_listener
  function VAStatus (line 129) | static VAStatus
  function registry_handle_global (line 179) | static void
  type wl_registry_listener (line 197) | struct wl_registry_listener
  type display (line 205) | struct display
  function close_display (line 225) | static void
  function create_window (line 247) | static int
  function check_window_event (line 288) | static int

FILE: putsurface/putsurface_x11.c
  function close_display (line 47) | static void close_display(void *win_display)
  function Pixmap (line 52) | static Pixmap create_pixmap(void *win_display, int width, int height)
  function create_window (line 71) | static int create_window(void *win_display, int x, int y, int width, int...
  function check_window_event (line 135) | static int check_window_event(void *win_display, void *drawable, int *wi...

FILE: test/compat_win32.h
  function setenv (line 40) | inline int setenv(const char *varname, const char *value_string, int ove...
  function unsetenv (line 51) | inline int unsetenv(const char *varname)

FILE: test/gtest/include/gtest/gtest-death-test.h
  function namespace (line 43) | namespace testing {

FILE: test/gtest/include/gtest/gtest-matchers.h
  function namespace (line 60) | namespace testing {
  function DescribeImpl (line 363) | void DescribeImpl(const MatcherBase& m, std::ostream* os,
  function MatcherDescriberInterface (line 373) | const MatcherDescriberInterface* GetDescriberImpl(
  function VTable (line 389) | VTable* GetVTable() {
  function Destroy (line 405) | void Destroy() {
  function IsInlined (line 412) | constexpr bool IsInlined() {
  function M (line 420) | static const M& Get(const MatcherBase& m) {
  function Init (line 427) | static void Init(MatcherBase& m, M impl) {
  function M (line 436) | static const M& Get(const MatcherBase& m) {
  function M (line 450) | static const M& Get(const MatcherBase& m) {
  function Init (line 453) | static void Init(MatcherBase& m, M* impl) {
  function explicit (line 515) | explicit Matcher(const MatcherInterface<const std::string&>* impl)
  function explicit (line 539) | explicit Matcher(const MatcherInterface<std::string>* impl)
  function explicit (line 565) | explicit Matcher(const MatcherInterface<const internal::StringView&>* impl)
  function explicit (line 593) | explicit Matcher(const MatcherInterface<internal::StringView>* impl)
  function DescribeTo (line 656) | void DescribeTo(::std::ostream* os) const override { impl_.DescribeTo(os...
  function DescribeNegationTo (line 658) | void DescribeNegationTo(::std::ostream* os) const override {
  function MatchAndExplain (line 662) | bool MatchAndExplain(T x, MatchResultListener* listener) const override {
  function namespace (line 696) | namespace internal {
  function DescribeTo (line 830) | void DescribeTo(::std::ostream* os) const {
  function DescribeNegationTo (line 835) | void DescribeNegationTo(::std::ostream* os) const {
  function PolymorphicMatcher (line 849) | inline PolymorphicMatcher<internal::MatchesRegexMatcher> MatchesRegex(
  function PolymorphicMatcher (line 861) | inline PolymorphicMatcher<internal::MatchesRegexMatcher> ContainsRegex(

FILE: test/gtest/include/gtest/gtest-message.h
  function namespace (line 63) | namespace testing {
  function namespace (line 203) | namespace internal {

FILE: test/gtest/include/gtest/gtest-param-test.h
  function class (line 154) | class BaseTest : public ::testing::Test {
  function namespace (line 181) | namespace testing {
  function internal (line 356) | inline internal::ParamGenerator<bool> Bool() {

FILE: test/gtest/include/gtest/gtest-printers.h
  function namespace (line 116) | namespace testing {
  function else (line 164) | struct FunctionPointerPrinter {
  function else (line 179) | struct PointerPrinter {
  function namespace (line 193) | namespace internal_stream_operator_without_lexical_name_lookup {
  type ConvertibleToIntegerPrinter (line 239) | struct ConvertibleToIntegerPrinter {
  type ConvertibleToStringViewPrinter (line 252) | struct ConvertibleToStringViewPrinter {
  type RawBytesPrinter (line 266) | struct RawBytesPrinter {
  type FallbackPrinter (line 278) | struct FallbackPrinter {
  function ostream (line 306) | ostream* os) {
  function string (line 342) | string Format(const ToPrint* value) {
  function string (line 413) | string FormatForComparisonFailureMessage(
  function ostream (line 440) | ostream* os) {
  function PrintTo (line 451) | inline void PrintTo(char c, ::std::ostream* os) {
  function PrintTo (line 459) | inline void PrintTo(bool x, ::std::ostream* os) {
  function PrintTo (line 473) | inline void PrintTo(char16_t c, ::std::ostream* os) {
  function PrintTo (line 477) | inline void PrintTo(char8_t c, ::std::ostream* os) {
  function PrintTo (line 484) | inline void PrintTo(char* s, ::std::ostream* os) {
  function PrintTo (line 490) | inline void PrintTo(const signed char* s, ::std::ostream* os) {
  function PrintTo (line 493) | inline void PrintTo(signed char* s, ::std::ostream* os) {
  function PrintTo (line 496) | inline void PrintTo(const unsigned char* s, ::std::ostream* os) {
  function PrintTo (line 499) | inline void PrintTo(unsigned char* s, ::std::ostream* os) {
  function PrintTo (line 505) | inline void PrintTo(char8_t* s, ::std::ostream* os) {
  function PrintTo (line 511) | inline void PrintTo(char16_t* s, ::std::ostream* os) {
  function PrintTo (line 516) | inline void PrintTo(char32_t* s, ::std::ostream* os) {
  function PrintTo (line 528) | inline void PrintTo(wchar_t* s, ::std::ostream* os) {
  function PrintTo (line 549) | inline void PrintTo(const ::std::string& s, ::std::ostream* os) {
  function PrintTo (line 556) | inline void PrintTo(const ::std::u8string& s, ::std::ostream* os) {
  function PrintTo (line 563) | inline void PrintTo(const ::std::u16string& s, ::std::ostream* os) {
  function PrintTo (line 569) | inline void PrintTo(const ::std::u32string& s, ::std::ostream* os) {
  function PrintTo (line 576) | inline void PrintTo(const ::std::wstring& s, ::std::ostream* os) {
  function PrintTo (line 583) | inline void PrintTo(internal::StringView sp, ::std::ostream* os) {
  function PrintTo (line 588) | inline void PrintTo(std::nullptr_t, ::std::ostream* os) { *os << "(nullp...
  function ostream (line 640) | ostream* os) {
  function Print (line 682) | static void Print(const T& value, ::std::ostream* os) {
  function Print (line 845) | static void Print(const T& value, ::std::ostream* os) {
  function Print (line 885) | static void Print(const char* str, ::std::ostream* os) {
  function Print (line 901) | static void Print(const char8_t* str, ::std::ostream* os) {
  function Print (line 917) | static void Print(const char16_t* str, ::std::ostream* os) {
  function Print (line 932) | static void Print(const char32_t* str, ::std::ostream* os) {
  function Print (line 948) | static void Print(const wchar_t* str, ::std::ostream* os) {
  function Print (line 961) | static void Print(wchar_t* str, ::std::ostream* os) {
  function ostream (line 967) | ostream* os) {
  function ostream (line 976) | ostream* os) {
  type std (line 983) | typedef ::std::vector< ::std::string> Strings;
  function string (line 1016) | string PrintToString(const T& value) {

FILE: test/gtest/include/gtest/gtest-spi.h
  function namespace (line 44) | namespace testing {

FILE: test/gtest/include/gtest/gtest-test-part.h
  function namespace (line 43) | namespace testing {
  function class (line 129) | class GTEST_API_ TestPartResultArray {
  function class (line 149) | class GTEST_API_ TestPartResultReporterInterface {
  function namespace (line 156) | namespace internal {

FILE: test/gtest/include/gtest/gtest-typed-test.h
  type testing (line 57) | typedef testing::Types<char, int, unsigned int> MyTypes;
  type testing (line 158) | typedef testing::Types<char, int, unsigned int> MyTypes;

FILE: test/gtest/include/gtest/gtest.h
  function namespace (line 76) | namespace testing {
  function namespace (line 389) | namespace testing {
  function class (line 1552) | class EqHelper {
  type AssertHelperData (line 1788) | struct AssertHelperData {
  function virtual (line 1849) | virtual ~WithParamInterface() {}
  function ParamType (line 1853) | static const ParamType& GetParam() {
  function class (line 2231) | class GTEST_API_ ScopedTrace {
  function StaticAssertTypeEq (line 2316) | bool StaticAssertTypeEq() noexcept {
  function class (line 2460) | class FactoryImpl : public internal::TestFactoryBase {

FILE: test/gtest/include/gtest/gtest_pred_impl.h
  function namespace (line 41) | namespace testing {

FILE: test/gtest/include/gtest/internal/gtest-death-test-internal.h
  function namespace (line 45) | namespace testing {

FILE: test/gtest/include/gtest/internal/gtest-filepath.h
  function pathname_ (line 65) | FilePath(const FilePath& rhs) : pathname_(rhs.pathname_) { }
  function explicit (line 67) | explicit FilePath(const std::string& pathname) : pathname_(pathname) {
  function Set (line 76) | void Set(const FilePath& rhs) {

FILE: test/gtest/include/gtest/internal/gtest-internal.h
  function namespace (line 93) | namespace proto2 {
  function namespace (line 97) | namespace testing {
  type typename (line 796) | typedef typename Tests::Head Head;
  function AlwaysFalse (line 844) | inline bool AlwaysFalse() { return !AlwaysTrue(); }
  function ConstCharPtr (line 849) | struct GTEST_API_ ConstCharPtr {
  type TrueWithString (line 857) | struct TrueWithString {
  function class (line 870) | class GTEST_API_ Random {
  type IsContainer (line 944) | typedef int IsContainer;
  type IsNotContainer (line 955) | typedef char IsNotContainer;
  function IsContainerTest (line 957) | IsContainerTest(long /* dummy */) { return '\0'; }
  function ArrayEq (line 1020) | bool ArrayEq(const T& lhs, const U& rhs) { return lhs == rhs; }
  function ArrayEq (line 1024) | bool ArrayEq(const T(&lhs)[N], const U(&rhs)[N]) {
  function CopyArray (line 1060) | void CopyArray(const T& from, U* to) { *to = from; }
  function CopyArray (line 1064) | void CopyArray(const T(&from)[N], U(*to)[N]) {
  type RelationToSourceReference (line 1082) | struct RelationToSourceReference {}
  type RelationToSourceCopy (line 1083) | struct RelationToSourceCopy {}
  type Element (line 1098) | typedef Element* iterator;
  type Element (line 1099) | typedef const Element* const_iterator;
  function InitCopy (line 1136) | void InitCopy(const Element* array, size_t a_size) {
  function InitRef (line 1145) | void InitRef(const Element* array, size_t a_size) {
  type MakeIndexSequenceImpl (line 1182) | struct MakeIndexSequenceImpl
  type FlatTupleConstructTag (line 1214) | struct FlatTupleConstructTag {}
  function InstantiateTestCase_P_IsDeprecated (line 1297) | constexpr bool InstantiateTestCase_P_IsDeprecated() { return true; }
  function TypedTestCase_P_IsDeprecated (line 1302) | constexpr bool TypedTestCase_P_IsDeprecated() { return true; }
  function TypedTestCaseIsDeprecated (line 1307) | constexpr bool TypedTestCaseIsDeprecated() { return true; }
  function RegisterTypedTestCase_P_IsDeprecated (line 1312) | constexpr bool RegisterTypedTestCase_P_IsDeprecated() { return true; }
  function InstantiateTypedTestCase_P_IsDeprecated (line 1317) | constexpr bool InstantiateTypedTestCase_P_IsDeprecated() { return true; }
  function namespace (line 1322) | namespace std {
  function namespace (line 1370) | namespace testing {

FILE: test/gtest/include/gtest/internal/gtest-linked_ptr.h
  function namespace (line 76) | namespace testing {
  function T (line 182) | T* get() const { return value_; }
  function depart (line 204) | void depart() {
  function capture (line 208) | void capture(T* ptr) {

FILE: test/gtest/include/gtest/internal/gtest-param-util-generated.h
  function namespace (line 57) | namespace testing {
  function virtual (line 3170) | virtual ~CartesianProductGenerator2() {}
  function virtual (line 3172) | virtual ParamIteratorInterface<ParamType>* Begin() const {
  function virtual (line 3175) | virtual ParamIteratorInterface<ParamType>* End() const {
  function virtual (line 3192) | virtual ~Iterator() {}
  function virtual (line 3194) | virtual const ParamGeneratorInterface<ParamType>* BaseGenerator() const {
  function virtual (line 3199) | virtual void Advance() {
  function virtual (line 3208) | virtual ParamIteratorInterface<ParamType>* Clone() const {
  function virtual (line 3211) | virtual const ParamType* Current() const { return &current_value_; }
  function virtual (line 3212) | virtual bool Equals(const ParamIteratorInterface<ParamType>& other) const {
  function ComputeCurrentValue (line 3241) | void ComputeCurrentValue() {
  function virtual (line 3285) | virtual ~CartesianProductGenerator3() {}
  function virtual (line 3287) | virtual ParamIteratorInterface<ParamType>* Begin() const {
  function virtual (line 3291) | virtual ParamIteratorInterface<ParamType>* End() const {
  function virtual (line 3311) | virtual ~Iterator() {}
  function virtual (line 3313) | virtual const ParamGeneratorInterface<ParamType>* BaseGenerator() const {
  function virtual (line 3318) | virtual void Advance() {
  function virtual (line 3331) | virtual ParamIteratorInterface<ParamType>* Clone() const {
  function virtual (line 3334) | virtual const ParamType* Current() const { return &current_value_; }
  function virtual (line 3335) | virtual bool Equals(const ParamIteratorInterface<ParamType>& other) const {
  function ComputeCurrentValue (line 3368) | void ComputeCurrentValue() {
  function virtual (line 3418) | virtual ~CartesianProductGenerator4() {}
  function virtual (line 3420) | virtual ParamIteratorInterface<ParamType>* Begin() const {
  function virtual (line 3424) | virtual ParamIteratorInterface<ParamType>* End() const {
  function virtual (line 3448) | virtual ~Iterator() {}
  function virtual (line 3450) | virtual const ParamGeneratorInterface<ParamType>* BaseGenerator() const {
  function virtual (line 3455) | virtual void Advance() {
  function virtual (line 3472) | virtual ParamIteratorInterface<ParamType>* Clone() const {
  function virtual (line 3475) | virtual const ParamType* Current() const { return &current_value_; }
  function virtual (line 3476) | virtual bool Equals(const ParamIteratorInterface<ParamType>& other) const {
  function ComputeCurrentValue (line 3513) | void ComputeCurrentValue() {
  function virtual (line 3569) | virtual ~CartesianProductGenerator5() {}
  function virtual (line 3571) | virtual ParamIteratorInterface<ParamType>* Begin() const {
  function virtual (line 3575) | virtual ParamIteratorInterface<ParamType>* End() const {
  function virtual (line 3602) | virtual ~Iterator() {}
  function virtual (line 3604) | virtual const ParamGeneratorInterface<ParamType>* BaseGenerator() const {
  function virtual (line 3609) | virtual void Advance() {
  function virtual (line 3630) | virtual ParamIteratorInterface<ParamType>* Clone() const {
  function virtual (line 3633) | virtual const ParamType* Current() const { return &current_value_; }
  function virtual (line 3634) | virtual bool Equals(const ParamIteratorInterface<ParamType>& other) const {
  function ComputeCurrentValue (line 3675) | void ComputeCurrentValue() {
  type testing (line 3732) | typedef ::testing::tuple<T1, T2, T3, T4, T5, T6> ParamType;
  function virtual (line 3739) | virtual ~CartesianProductGenerator6() {}
  function virtual (line 3741) | virtual ParamIteratorInterface<ParamType>* Begin() const {
  function virtual (line 3745) | virtual ParamIteratorInterface<ParamType>* End() const {
  function virtual (line 3775) | virtual ~Iterator() {}
  function virtual (line 3777) | virtual const ParamGeneratorInterface<ParamType>* BaseGenerator() const {
  function virtual (line 3782) | virtual void Advance() {
  function virtual (line 3807) | virtual ParamIteratorInterface<ParamType>* Clone() const {
  function virtual (line 3810) | virtual const ParamType* Current() const { return &current_value_; }
  function virtual (line 3811) | virtual bool Equals(const ParamIteratorInterface<ParamType>& other) const {
  function ComputeCurrentValue (line 3856) | void ComputeCurrentValue() {
  type testing (line 3918) | typedef ::testing::tuple<T1, T2, T3, T4, T5, T6, T7> ParamType;
  function virtual (line 3925) | virtual ~CartesianProductGenerator7() {}
  function virtual (line 3927) | virtual ParamIteratorInterface<ParamType>* Begin() const {
  function virtual (line 3932) | virtual ParamIteratorInterface<ParamType>* End() const {
  function virtual (line 3965) | virtual ~Iterator() {}
  function virtual (line 3967) | virtual const ParamGeneratorInterface<ParamType>* BaseGenerator() const {
  function virtual (line 3972) | virtual void Advance() {
  function virtual (line 4001) | virtual ParamIteratorInterface<ParamType>* Clone() const {
  function virtual (line 4004) | virtual const ParamType* Current() const { return &current_value_; }
  function virtual (line 4005) | virtual bool Equals(const ParamIteratorInterface<ParamType>& other) const {
  function ComputeCurrentValue (line 4054) | void ComputeCurrentValue() {
  type testing (line 4121) | typedef ::testing::tuple<T1, T2, T3, T4, T5, T6, T7, T8> ParamType;
  function virtual (line 4137) | virtual ParamIteratorInterface<ParamType>* End() const {
  function virtual (line 4174) | virtual ~Iterator() {}
  function virtual (line 4176) | virtual const ParamGeneratorInterface<ParamType>* BaseGenerator() const {
  function virtual (line 4181) | virtual void Advance() {
  function virtual (line 4214) | virtual ParamIteratorInterface<ParamType>* Clone() const {
  function virtual (line 4217) | virtual const ParamType* Current() const { return &current_value_; }
  function virtual (line 4218) | virtual bool Equals(const ParamIteratorInterface<ParamType>& other) const {
  function ComputeCurrentValue (line 4271) | void ComputeCurrentValue() {
  type testing (line 4343) | typedef ::testing::tuple<T1, T2, T3, T4, T5, T6, T7, T8, T9> ParamType;
  function virtual (line 4359) | virtual ParamIteratorInterface<ParamType>* End() const {
  function virtual (line 4399) | virtual ~Iterator() {}
  function virtual (line 4401) | virtual const ParamGeneratorInterface<ParamType>* BaseGenerator() const {
  function virtual (line 4406) | virtual void Advance() {
  function virtual (line 4443) | virtual ParamIteratorInterface<ParamType>* Clone() const {
  function virtual (line 4446) | virtual const ParamType* Current() const { return &current_value_; }
  function virtual (line 4447) | virtual bool Equals(const ParamIteratorInterface<ParamType>& other) const {
  function ComputeCurrentValue (line 4504) | void ComputeCurrentValue() {
  type testing (line 4582) | typedef ::testing::tuple<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10> ParamT...
  function virtual (line 4599) | virtual ParamIteratorInterface<ParamType>* End() const {
  function virtual (line 4642) | virtual ~Iterator() {}
  function virtual (line 4644) | virtual const ParamGeneratorInterface<ParamType>* BaseGenerator() const {
  function virtual (line 4649) | virtual void Advance() {
  function virtual (line 4690) | virtual ParamIteratorInterface<ParamType>* Clone() const {
  function virtual (line 4693) | virtual const ParamType* Current() const { return &current_value_; }
  function virtual (line 4694) | virtual bool Equals(const ParamIteratorInterface<ParamType>& other) const {
  function ComputeCurrentValue (line 4755) | void ComputeCurrentValue() {

FILE: test/gtest/include/gtest/internal/gtest-param-util.h
  type PrintToStringParamName (line 68) | struct PrintToStringParamName {
  type T (line 126) | typedef const T& reference;
  type difference_type (line 127) | typedef ptrdiff_t difference_type;
  function impl_ (line 130) | ParamIterator(const ParamIterator& other) : impl_(other.impl_->Clone()) {}

FILE: test/gtest/include/gtest/internal/gtest-port.h
  type GTEST_CRITICAL_SECTION (line 355) | typedef struct _CRITICAL_SECTION GTEST_CRITICAL_SECTION;
  type GTEST_CRITICAL_SECTION (line 360) | typedef struct _RTL_CRITICAL_SECTION GTEST_CRITICAL_SECTION;
  function namespace (line 851) | namespace testing {
  function To (line 1067) | To ImplicitCast_(To x) { return x; }
  function To (line 1091) | To DownCast_(From* f) {  // so we only accept pointers
  function SleepMilliseconds (line 1169) | inline void SleepMilliseconds(int n) {
  function class (line 1189) | class Notification {
  function class (line 1232) | class GTEST_API_ AutoHandle {
  function namespace (line 2279) | namespace testing {
  function namespace (line 2291) | namespace testing {
  function namespace (line 2307) | namespace testing {
  function namespace (line 2320) | namespace testing {
  function namespace (line 2337) | namespace testing {
  function namespace (line 2349) | namespace testing {
  function namespace (line 2365) | namespace testing {
  function namespace (line 2378) | namespace testing {

FILE: test/gtest/include/gtest/internal/gtest-string.h
  function namespace (line 55) | namespace testing {

FILE: test/gtest/include/gtest/internal/gtest-tuple.h
  function namespace (line 112) | namespace std {
  function GTEST_1_TUPLE_ (line 213) | GTEST_1_TUPLE_(T) {
  function GTEST_DECLARE_TUPLE_AS_FRIEND_ (line 233) | GTEST_DECLARE_TUPLE_AS_FRIEND_
  function GTEST_DECLARE_TUPLE_AS_FRIEND_ (line 274) | GTEST_DECLARE_TUPLE_AS_FRIEND_
  function GTEST_DECLARE_TUPLE_AS_FRIEND_ (line 309) | GTEST_DECLARE_TUPLE_AS_FRIEND_
  function GTEST_DECLARE_TUPLE_AS_FRIEND_ (line 348) | GTEST_DECLARE_TUPLE_AS_FRIEND_
  function GTEST_DECLARE_TUPLE_AS_FRIEND_ (line 390) | GTEST_DECLARE_TUPLE_AS_FRIEND_
  function GTEST_DECLARE_TUPLE_AS_FRIEND_ (line 435) | GTEST_DECLARE_TUPLE_AS_FRIEND_
  function GTEST_DECLARE_TUPLE_AS_FRIEND_ (line 482) | GTEST_DECLARE_TUPLE_AS_FRIEND_
  function GTEST_DECLARE_TUPLE_AS_FRIEND_ (line 532) | GTEST_DECLARE_TUPLE_AS_FRIEND_
  function GTEST_DECLARE_TUPLE_AS_FRIEND_ (line 584) | GTEST_DECLARE_TUPLE_AS_FRIEND_
  function GTEST_DECLARE_TUPLE_AS_FRIEND_ (line 640) | GTEST_DECLARE_TUPLE_AS_FRIEND_
  function make_tuple (line 683) | GTEST_2_TUPLE_(T) make_tuple(const T0& f0, const T1& f1) {
  function make_tuple (line 688) | GTEST_3_TUPLE_(T) make_tuple(const T0& f0, const T1& f1, const T2& f2) {
  function make_tuple (line 693) | GTEST_4_TUPLE_(T) make_tuple(const T0& f0, const T1& f1, const T2& f2,
  function make_tuple (line 699) | GTEST_5_TUPLE_(T) make_tuple(const T0& f0, const T1& f1, const T2& f2,
  function make_tuple (line 705) | GTEST_6_TUPLE_(T) make_tuple(const T0& f0, const T1& f1, const T2& f2,
  function make_tuple (line 711) | GTEST_7_TUPLE_(T) make_tuple(const T0& f0, const T1& f1, const T2& f2,
  function make_tuple (line 717) | GTEST_8_TUPLE_(T) make_tuple(const T0& f0, const T1& f1, const T2& f2,
  function make_tuple (line 723) | GTEST_9_TUPLE_(T) make_tuple(const T0& f0, const T1& f1, const T2& f2,
  function make_tuple (line 730) | GTEST_10_TUPLE_(T) make_tuple(const T0& f0, const T1& f1, const T2& f2,
  type typename (line 797) | typedef typename gtest_internal::TupleElement<
  function namespace (line 805) | namespace gtest_internal {
  function namespace (line 945) | namespace gtest_internal {

FILE: test/gtest/include/gtest/internal/gtest-type-util.h
  function namespace (line 48) | namespace testing {

FILE: test/gtest/src/gtest-death-test.cc
  type testing (line 88) | namespace testing {
    type internal (line 120) | namespace internal {
      function InDeathTestChild (line 146) | bool InDeathTestChild() {
      function ExitSummary (line 206) | static std::string ExitSummary(int exit_code) {
      function ExitedUnsuccessfully (line 232) | bool ExitedUnsuccessfully(int exit_status) {
      function DeathTestThreadWarning (line 241) | static std::string DeathTestThreadWarning(size_t thread_count) {
      type DeathTestOutcome (line 279) | enum DeathTestOutcome { IN_PROGRESS, DIED, LIVED, RETURNED, THREW }
      function DeathTestAbort (line 286) | static void DeathTestAbort(const std::string& message) {
      function GetLastErrnoDescription (line 339) | std::string GetLastErrnoDescription() {
      function FailFromInternalError (line 347) | static void FailFromInternalError(int fd) {
      class DeathTestImpl (line 398) | class DeathTestImpl : public DeathTest {
        method DeathTestImpl (line 400) | DeathTestImpl(const char* a_statement, Matcher<const std::string&>...
        method spawned (line 416) | bool spawned() const { return spawned_; }
        method set_spawned (line 417) | void set_spawned(bool is_spawned) { spawned_ = is_spawned; }
        method status (line 418) | int status() const { return status_; }
        method set_status (line 419) | void set_status(int a_status) { status_ = a_status; }
        method DeathTestOutcome (line 420) | DeathTestOutcome outcome() const { return outcome_; }
        method set_outcome (line 421) | void set_outcome(DeathTestOutcome an_outcome) { outcome_ = an_outc...
        method read_fd (line 422) | int read_fd() const { return read_fd_; }
        method set_read_fd (line 423) | void set_read_fd(int fd) { read_fd_ = fd; }
        method write_fd (line 424) | int write_fd() const { return write_fd_; }
        method set_write_fd (line 425) | void set_write_fd(int fd) { write_fd_ = fd; }
      function FormatDeathTestOutput (line 534) | static ::std::string FormatDeathTestOutput(const ::std::string& outp...
      class WindowsDeathTest (line 650) | class WindowsDeathTest : public DeathTestImpl {
        method WindowsDeathTest (line 652) | WindowsDeathTest(const char* a_statement, Matcher<const std::strin...
      class FuchsiaDeathTest (line 814) | class FuchsiaDeathTest : public DeathTestImpl {
        method FuchsiaDeathTest (line 816) | FuchsiaDeathTest(const char* a_statement, Matcher<const std::strin...
      class Arguments (line 841) | class Arguments {
        method Arguments (line 843) | Arguments() { args_.push_back(nullptr); }
        method AddArgument (line 851) | void AddArgument(const char* argument) {
        method AddArguments (line 856) | void AddArguments(const ::std::vector<Str>& arguments) {
        method size (line 867) | int size() {
        method Arguments (line 1192) | Arguments() { args_.push_back(nullptr); }
        method AddArgument (line 1200) | void AddArgument(const char* argument) {
        method AddArguments (line 1205) | void AddArguments(const ::std::vector<Str>& arguments) {
      class ForkingDeathTest (line 1072) | class ForkingDeathTest : public DeathTestImpl {
        method set_child_pid (line 1080) | void set_child_pid(pid_t child_pid) { child_pid_ = child_pid; }
      class NoExecDeathTest (line 1109) | class NoExecDeathTest : public ForkingDeathTest {
        method NoExecDeathTest (line 1111) | NoExecDeathTest(const char* a_statement, Matcher<const std::string...
      class ExecDeathTest (line 1164) | class ExecDeathTest : public ForkingDeathTest {
        method ExecDeathTest (line 1166) | ExecDeathTest(const char* a_statement, Matcher<const std::string&>...
        method GetArgvsForDeathTestChildProcess (line 1174) | static ::std::vector<std::string> GetArgvsForDeathTestChildProcess...
      class Arguments (line 1190) | class Arguments {
        method Arguments (line 843) | Arguments() { args_.push_back(nullptr); }
        method AddArgument (line 851) | void AddArgument(const char* argument) {
        method AddArguments (line 856) | void AddArguments(const ::std::vector<Str>& arguments) {
        method size (line 867) | int size() {
        method Arguments (line 1192) | Arguments() { args_.push_back(nullptr); }
        method AddArgument (line 1200) | void AddArgument(const char* argument) {
        method AddArguments (line 1205) | void AddArguments(const ::std::vector<Str>& arguments) {
      type ExecDeathTestArgs (line 1222) | struct ExecDeathTestArgs {
      function ExecDeathTestChildMain (line 1233) | static int ExecDeathTestChildMain(void* child_arg) {
      function GTEST_ATTRIBUTE_NO_SANITIZE_ADDRESS_ (line 1280) | GTEST_ATTRIBUTE_NO_SANITIZE_ADDRESS_
      function GTEST_ATTRIBUTE_NO_SANITIZE_ADDRESS_ (line 1288) | GTEST_ATTRIBUTE_NO_SANITIZE_ADDRESS_
      function pid_t (line 1305) | static pid_t ExecDeathTestSpawnChild(char* const* argv, int close_fd) {
    type internal (line 133) | namespace internal {
      function InDeathTestChild (line 146) | bool InDeathTestChild() {
      function ExitSummary (line 206) | static std::string ExitSummary(int exit_code) {
      function ExitedUnsuccessfully (line 232) | bool ExitedUnsuccessfully(int exit_status) {
      function DeathTestThreadWarning (line 241) | static std::string DeathTestThreadWarning(size_t thread_count) {
      type DeathTestOutcome (line 279) | enum DeathTestOutcome { IN_PROGRESS, DIED, LIVED, RETURNED, THREW }
      function DeathTestAbort (line 286) | static void DeathTestAbort(const std::string& message) {
      function GetLastErrnoDescription (line 339) | std::string GetLastErrnoDescription() {
      function FailFromInternalError (line 347) | static void FailFromInternalError(int fd) {
      class DeathTestImpl (line 398) | class DeathTestImpl : public DeathTest {
        method DeathTestImpl (line 400) | DeathTestImpl(const char* a_statement, Matcher<const std::string&>...
        method spawned (line 416) | bool spawned() const { return spawned_; }
        method set_spawned (line 417) | void set_spawned(bool is_spawned) { spawned_ = is_spawned; }
        method status (line 418) | int status() const { return status_; }
        method set_status (line 419) | void set_status(int a_status) { status_ = a_status; }
        method DeathTestOutcome (line 420) | DeathTestOutcome outcome() const { return outcome_; }
        method set_outcome (line 421) | void set_outcome(DeathTestOutcome an_outcome) { outcome_ = an_outc...
        method read_fd (line 422) | int read_fd() const { return read_fd_; }
        method set_read_fd (line 423) | void set_read_fd(int fd) { read_fd_ = fd; }
        method write_fd (line 424) | int write_fd() const { return write_fd_; }
        method set_write_fd (line 425) | void set_write_fd(int fd) { write_fd_ = fd; }
      function FormatDeathTestOutput (line 534) | static ::std::string FormatDeathTestOutput(const ::std::string& outp...
      class WindowsDeathTest (line 650) | class WindowsDeathTest : public DeathTestImpl {
        method WindowsDeathTest (line 652) | WindowsDeathTest(const char* a_statement, Matcher<const std::strin...
      class FuchsiaDeathTest (line 814) | class FuchsiaDeathTest : public DeathTestImpl {
        method FuchsiaDeathTest (line 816) | FuchsiaDeathTest(const char* a_statement, Matcher<const std::strin...
      class Arguments (line 841) | class Arguments {
        method Arguments (line 843) | Arguments() { args_.push_back(nullptr); }
        method AddArgument (line 851) | void AddArgument(const char* argument) {
        method AddArguments (line 856) | void AddArguments(const ::std::vector<Str>& arguments) {
        method size (line 867) | int size() {
        method Arguments (line 1192) | Arguments() { args_.push_back(nullptr); }
        method AddArgument (line 1200) | void AddArgument(const char* argument) {
        method AddArguments (line 1205) | void AddArguments(const ::std::vector<Str>& arguments) {
      class ForkingDeathTest (line 1072) | class ForkingDeathTest : public DeathTestImpl {
        method set_child_pid (line 1080) | void set_child_pid(pid_t child_pid) { child_pid_ = child_pid; }
      class NoExecDeathTest (line 1109) | class NoExecDeathTest : public ForkingDeathTest {
        method NoExecDeathTest (line 1111) | NoExecDeathTest(const char* a_statement, Matcher<const std::string...
      class ExecDeathTest (line 1164) | class ExecDeathTest : public ForkingDeathTest {
        method ExecDeathTest (line 1166) | ExecDeathTest(const char* a_statement, Matcher<const std::string&>...
        method GetArgvsForDeathTestChildProcess (line 1174) | static ::std::vector<std::string> GetArgvsForDeathTestChildProcess...
      class Arguments (line 1190) | class Arguments {
        method Arguments (line 843) | Arguments() { args_.push_back(nullptr); }
        method AddArgument (line 851) | void AddArgument(const char* argument) {
        method AddArguments (line 856) | void AddArguments(const ::std::vector<Str>& arguments) {
        method size (line 867) | int size() {
        method Arguments (line 1192) | Arguments() { args_.push_back(nullptr); }
        method AddArgument (line 1200) | void AddArgument(const char* argument) {
        method AddArguments (line 1205) | void AddArguments(const ::std::vector<Str>& arguments) {
      type ExecDeathTestArgs (line 1222) | struct ExecDeathTestArgs {
      function ExecDeathTestChildMain (line 1233) | static int ExecDeathTestChildMain(void* child_arg) {
      function GTEST_ATTRIBUTE_NO_SANITIZE_ADDRESS_ (line 1280) | GTEST_ATTRIBUTE_NO_SANITIZE_ADDRESS_
      function GTEST_ATTRIBUTE_NO_SANITIZE_ADDRESS_ (line 1288) | GTEST_ATTRIBUTE_NO_SANITIZE_ADDRESS_
      function pid_t (line 1305) | static pid_t ExecDeathTestSpawnChild(char* const* argv, int close_fd) {
    type internal (line 200) | namespace internal {
      function InDeathTestChild (line 146) | bool InDeathTestChild() {
      function ExitSummary (line 206) | static std::string ExitSummary(int exit_code) {
      function ExitedUnsuccessfully (line 232) | bool ExitedUnsuccessfully(int exit_status) {
      function DeathTestThreadWarning (line 241) | static std::string DeathTestThreadWarning(size_t thread_count) {
      type DeathTestOutcome (line 279) | enum DeathTestOutcome { IN_PROGRESS, DIED, LIVED, RETURNED, THREW }
      function DeathTestAbort (line 286) | static void DeathTestAbort(const std::string& message) {
      function GetLastErrnoDescription (line 339) | std::string GetLastErrnoDescription() {
      function FailFromInternalError (line 347) | static void FailFromInternalError(int fd) {
      class DeathTestImpl (line 398) | class DeathTestImpl : public DeathTest {
        method DeathTestImpl (line 400) | DeathTestImpl(const char* a_statement, Matcher<const std::string&>...
        method spawned (line 416) | bool spawned() const { return spawned_; }
        method set_spawned (line 417) | void set_spawned(bool is_spawned) { spawned_ = is_spawned; }
        method status (line 418) | int status() const { return status_; }
        method set_status (line 419) | void set_status(int a_status) { status_ = a_status; }
        method DeathTestOutcome (line 420) | DeathTestOutcome outcome() const { return outcome_; }
        method set_outcome (line 421) | void set_outcome(DeathTestOutcome an_outcome) { outcome_ = an_outc...
        method read_fd (line 422) | int read_fd() const { return read_fd_; }
        method set_read_fd (line 423) | void set_read_fd(int fd) { read_fd_ = fd; }
        method write_fd (line 424) | int write_fd() const { return write_fd_; }
        method set_write_fd (line 425) | void set_write_fd(int fd) { write_fd_ = fd; }
      function FormatDeathTestOutput (line 534) | static ::std::string FormatDeathTestOutput(const ::std::string& outp...
      class WindowsDeathTest (line 650) | class WindowsDeathTest : public DeathTestImpl {
        method WindowsDeathTest (line 652) | WindowsDeathTest(const char* a_statement, Matcher<const std::strin...
      class FuchsiaDeathTest (line 814) | class FuchsiaDeathTest : public DeathTestImpl {
        method FuchsiaDeathTest (line 816) | FuchsiaDeathTest(const char* a_statement, Matcher<const std::strin...
      class Arguments (line 841) | class Arguments {
        method Arguments (line 843) | Arguments() { args_.push_back(nullptr); }
        method AddArgument (line 851) | void AddArgument(const char* argument) {
        method AddArguments (line 856) | void AddArguments(const ::std::vector<Str>& arguments) {
        method size (line 867) | int size() {
        method Arguments (line 1192) | Arguments() { args_.push_back(nullptr); }
        method AddArgument (line 1200) | void AddArgument(const char* argument) {
        method AddArguments (line 1205) | void AddArguments(const ::std::vector<Str>& arguments) {
      class ForkingDeathTest (line 1072) | class ForkingDeathTest : public DeathTestImpl {
        method set_child_pid (line 1080) | void set_child_pid(pid_t child_pid) { child_pid_ = child_pid; }
      class NoExecDeathTest (line 1109) | class NoExecDeathTest : public ForkingDeathTest {
        method NoExecDeathTest (line 1111) | NoExecDeathTest(const char* a_statement, Matcher<const std::string...
      class ExecDeathTest (line 1164) | class ExecDeathTest : public ForkingDeathTest {
        method ExecDeathTest (line 1166) | ExecDeathTest(const char* a_statement, Matcher<const std::string&>...
        method GetArgvsForDeathTestChildProcess (line 1174) | static ::std::vector<std::string> GetArgvsForDeathTestChildProcess...
      class Arguments (line 1190) | class Arguments {
        method Arguments (line 843) | Arguments() { args_.push_back(nullptr); }
        method AddArgument (line 851) | void AddArgument(const char* argument) {
        method AddArguments (line 856) | void AddArguments(const ::std::vector<Str>& arguments) {
        method size (line 867) | int size() {
        method Arguments (line 1192) | Arguments() { args_.push_back(nullptr); }
        method AddArgument (line 1200) | void AddArgument(const char* argument) {
        method AddArguments (line 1205) | void AddArguments(const ::std::vector<Str>& arguments) {
      type ExecDeathTestArgs (line 1222) | struct ExecDeathTestArgs {
      function ExecDeathTestChildMain (line 1233) | static int ExecDeathTestChildMain(void* child_arg) {
      function GTEST_ATTRIBUTE_NO_SANITIZE_ADDRESS_ (line 1280) | GTEST_ATTRIBUTE_NO_SANITIZE_ADDRESS_
      function GTEST_ATTRIBUTE_NO_SANITIZE_ADDRESS_ (line 1288) | GTEST_ATTRIBUTE_NO_SANITIZE_ADDRESS_
      function pid_t (line 1305) | static pid_t ExecDeathTestSpawnChild(char* const* argv, int close_fd) {
    function GetStatusFileDescriptor (line 1521) | static int GetStatusFileDescriptor(unsigned int parent_process_id,
    function InternalRunDeathTestFlag (line 1586) | InternalRunDeathTestFlag* ParseInternalRunDeathTestFlag() {

FILE: test/gtest/src/gtest-filepath.cc
  type testing (line 58) | namespace testing {
    type internal (line 59) | namespace internal {
      function IsPathSeparator (line 85) | static bool IsPathSeparator(char c) {
      function FilePath (line 94) | FilePath FilePath::GetCurrentDir() {
      function FilePath (line 121) | FilePath FilePath::RemoveExtension(const char* extension) const {
      function FilePath (line 152) | FilePath FilePath::RemoveDirectoryName() const {
      function FilePath (line 163) | FilePath FilePath::RemoveFileName() const {
      function FilePath (line 180) | FilePath FilePath::MakeFileName(const FilePath& directory,
      function FilePath (line 196) | FilePath FilePath::ConcatPaths(const FilePath& directory,
      function FilePath (line 280) | FilePath FilePath::GenerateUniqueFileName(const FilePath& directory,
      function FilePath (line 343) | FilePath FilePath::RemoveTrailingPathSeparator() const {

FILE: test/gtest/src/gtest-internal-inl.h
  function namespace (line 67) | namespace testing {

FILE: test/gtest/src/gtest-matchers.cc
  type testing (line 41) | namespace testing {

FILE: test/gtest/src/gtest-port.cc
  type testing (line 89) | namespace testing {
    type internal (line 90) | namespace internal {
      function T (line 105) | T ReadProcFileField(const std::string& filename, int field) {
      function GetThreadCount (line 118) | size_t GetThreadCount() {
      function GetThreadCount (line 126) | size_t GetThreadCount() {
      function GetThreadCount (line 162) | size_t GetThreadCount() {
      function GetThreadCount (line 185) | size_t GetThreadCount() {
      function GetThreadCount (line 223) | size_t GetThreadCount() {
      function GetThreadCount (line 241) | size_t GetThreadCount() {
      function GetThreadCount (line 254) | size_t GetThreadCount() {
      function GetThreadCount (line 273) | size_t GetThreadCount() {
      function SleepMilliseconds (line 283) | void SleepMilliseconds(int n) {
      class MemoryIsNotDeallocated (line 394) | class MemoryIsNotDeallocated
        method MemoryIsNotDeallocated (line 397) | MemoryIsNotDeallocated() : old_crtdbg_flag_(0) {
      class ThreadWithParamSupport (line 467) | class ThreadWithParamSupport : public ThreadWithParamBase {
        method HANDLE (line 469) | static HANDLE CreateThread(Runnable* runnable,
        type ThreadMainParam (line 489) | struct ThreadMainParam {
          method ThreadMainParam (line 490) | ThreadMainParam(Runnable* runnable, Notification* thread_can_start)
        method DWORD (line 499) | static DWORD WINAPI ThreadMain(void* ptr) {
      class ThreadLocalRegistryImpl (line 535) | class ThreadLocalRegistryImpl {
        method ThreadLocalValueHolderBase (line 539) | static ThreadLocalValueHolderBase* GetValueOnCurrentThread(
        method OnThreadLocalDestroyed (line 570) | static void OnThreadLocalDestroyed(
        method OnThreadExit (line 598) | static void OnThreadExit(DWORD thread_id) {
        method StartWatcherThreadFor (line 637) | static void StartWatcherThreadFor(DWORD thread_id) {
        method DWORD (line 664) | static DWORD WINAPI WatcherThreadFunc(LPVOID param) {
        method ThreadIdToThreadLocals (line 676) | static ThreadIdToThreadLocals* GetThreadLocalsMapLocked() {
      function ThreadLocalValueHolderBase (line 694) | ThreadLocalValueHolderBase* ThreadLocalRegistry::GetValueOnCurrentTh...
      function IsInSet (line 774) | bool IsInSet(char ch, const char* str) {
      function IsAsciiDigit (line 781) | bool IsAsciiDigit(char ch) { return '0' <= ch && ch <= '9'; }
      function IsAsciiPunct (line 782) | bool IsAsciiPunct(char ch) {
      function IsRepeat (line 785) | bool IsRepeat(char ch) { return IsInSet(ch, "?*+"); }
      function IsAsciiWhiteSpace (line 786) | bool IsAsciiWhiteSpace(char ch) { return IsInSet(ch, " \f\n\r\t\v"); }
      function IsAsciiWordChar (line 787) | bool IsAsciiWordChar(char ch) {
      function IsValidEscape (line 793) | bool IsValidEscape(char c) {
      function AtomMatchesChar (line 799) | bool AtomMatchesChar(bool escaped, char pattern_char, char ch) {
      function FormatRegexSyntaxError (line 821) | static std::string FormatRegexSyntaxError(const char* regex, int ind...
      function ValidateRegex (line 828) | bool ValidateRegex(const char* regex) {
      function MatchRepetitionAndRegexAtHead (line 888) | bool MatchRepetitionAndRegexAtHead(
      function MatchRegexAtHead (line 915) | bool MatchRegexAtHead(const char* regex, const char* str) {
      function MatchRegexAnywhere (line 951) | bool MatchRegexAnywhere(const char* regex, const char* str) {
      function FormatFileLocation (line 1023) | GTEST_API_ ::std::string FormatFileLocation(const char* file, int li...
      function FormatCompilerIndependentFileLocation (line 1041) | GTEST_API_ ::std::string FormatCompilerIndependentFileLocation(
      class CapturedStream (line 1077) | class CapturedStream {
        method CapturedStream (line 1080) | explicit CapturedStream(int fd) : fd_(fd), uncaptured_fd_(dup(fd)) {
        method GetCapturedString (line 1163) | std::string GetCapturedString() {
      function CaptureStream (line 1197) | static void CaptureStream(int fd, const char* stream_name,
      function GetCapturedStream (line 1207) | static std::string GetCapturedStream(CapturedStream** captured_strea...
      function CaptureStdout (line 1217) | void CaptureStdout() {
      function CaptureStderr (line 1222) | void CaptureStderr() {
      function GetCapturedStdout (line 1227) | std::string GetCapturedStdout() {
      function GetCapturedStderr (line 1232) | std::string GetCapturedStderr() {
      function GetFileSize (line 1242) | size_t GetFileSize(FILE* file) {
      function ReadEntireFile (line 1247) | std::string ReadEntireFile(FILE* file) {
      function GetInjectableArgvs (line 1273) | std::vector<std::string> GetInjectableArgvs() {
      function SetInjectableArgvs (line 1280) | void SetInjectableArgvs(const std::vector<std::string>* new_argvs) {
      function SetInjectableArgvs (line 1285) | void SetInjectableArgvs(const std::vector<std::string>& new_argvs) {
      function ClearInjectableArgvs (line 1290) | void ClearInjectableArgvs() {
      type posix (line 1297) | namespace posix {
        function Abort (line 1298) | void Abort() {
      function FlagToEnvVar (line 1308) | static std::string FlagToEnvVar(const char* flag) {
      function ParseInt32 (line 1323) | bool ParseInt32(const Message& src_text, const char* str, int32_t* v...
      function BoolFromGTestEnv (line 1365) | bool BoolFromGTestEnv(const char* flag, bool default_value) {
      function Int32FromGTestEnv (line 1379) | int32_t Int32FromGTestEnv(const char* flag, int32_t default_value) {
      function OutputFlagAlsoCheckEnvVar (line 1411) | std::string OutputFlagAlsoCheckEnvVar(){

FILE: test/gtest/src/gtest-printers.cc
  type testing (line 58) | namespace testing {
    function GTEST_ATTRIBUTE_NO_SANITIZE_MEMORY_ (line 65) | GTEST_ATTRIBUTE_NO_SANITIZE_MEMORY_
    function PrintBytesInObjectToImpl (line 88) | void PrintBytesInObjectToImpl(const unsigned char* obj_bytes, size_t c...
    function ToChar32 (line 115) | char32_t ToChar32(CharType in) {
    type internal (line 122) | namespace internal {
      function PrintBytesInObjectTo (line 129) | void PrintBytesInObjectTo(const unsigned char* obj_bytes, size_t count,
      type CharFormat (line 139) | enum CharFormat {
      function IsPrintableAscii (line 148) | inline bool IsPrintableAscii(char32_t c) { return 0x20 <= c && c <= ...
      function CharFormat (line 154) | static CharFormat PrintAsCharLiteralTo(Char c, ostream* os) {
      function CharFormat (line 203) | static CharFormat PrintAsStringLiteralTo(char32_t c, ostream* os) {
      function CharFormat (line 248) | static CharFormat PrintAsStringLiteralTo(char c, ostream* os) {
      function CharFormat (line 253) | static CharFormat PrintAsStringLiteralTo(char8_t c, ostream* os) {
      function CharFormat (line 258) | static CharFormat PrintAsStringLiteralTo(char16_t c, ostream* os) {
      function CharFormat (line 262) | static CharFormat PrintAsStringLiteralTo(wchar_t c, ostream* os) {
      function PrintCharAndCodeTo (line 270) | void PrintCharAndCodeTo(Char c, ostream* os) {
      function PrintTo (line 294) | void PrintTo(unsigned char c, ::std::ostream* os) { PrintCharAndCode...
      function PrintTo (line 295) | void PrintTo(signed char c, ::std::ostream* os) { PrintCharAndCodeTo...
      function PrintTo (line 299) | void PrintTo(wchar_t wc, ostream* os) { PrintCharAndCodeTo(wc, os); }
      function PrintTo (line 302) | void PrintTo(char32_t c, ::std::ostream* os) {
      function CharFormat (line 316) | static CharFormat PrintCharsAsStringTo(
      function UniversalPrintCharArray (line 347) | static void UniversalPrintCharArray(
      function UniversalPrintArray (line 370) | void UniversalPrintArray(const char* begin, size_t len, ostream* os) {
      function UniversalPrintArray (line 377) | void UniversalPrintArray(const char8_t* begin, size_t len, ostream* ...
      function UniversalPrintArray (line 384) | void UniversalPrintArray(const char16_t* begin, size_t len, ostream*...
      function UniversalPrintArray (line 390) | void UniversalPrintArray(const char32_t* begin, size_t len, ostream*...
      function UniversalPrintArray (line 396) | void UniversalPrintArray(const wchar_t* begin, size_t len, ostream* ...
      function PrintCStringTo (line 404) | void PrintCStringTo(const Char* s, ostream* os) {
      function PrintTo (line 415) | void PrintTo(const char* s, ostream* os) { PrintCStringTo(s, os); }
      function PrintTo (line 418) | void PrintTo(const char8_t* s, ostream* os) { PrintCStringTo(s, os); }
      function PrintTo (line 421) | void PrintTo(const char16_t* s, ostream* os) { PrintCStringTo(s, os); }
      function PrintTo (line 423) | void PrintTo(const char32_t* s, ostream* os) { PrintCStringTo(s, os); }
      function PrintTo (line 433) | void PrintTo(const wchar_t* s, ostream* os) { PrintCStringTo(s, os); }
      function ContainsUnprintableControlCodes (line 438) | bool ContainsUnprintableControlCodes(const char* str, size_t length) {
      function IsUTF8TrailByte (line 457) | bool IsUTF8TrailByte(unsigned char t) { return 0x80 <= t && t<= 0xbf; }
      function IsValidUTF8 (line 459) | bool IsValidUTF8(const char* str, size_t length) {
      function ConditionalPrintAsText (line 494) | void ConditionalPrintAsText(const char* str, size_t length, ostream*...
      function PrintStringTo (line 503) | void PrintStringTo(const ::std::string& s, ostream* os) {
      function PrintU8StringTo (line 512) | void PrintU8StringTo(const ::std::u8string& s, ostream* os) {
      function PrintU16StringTo (line 517) | void PrintU16StringTo(const ::std::u16string& s, ostream* os) {
      function PrintU32StringTo (line 521) | void PrintU32StringTo(const ::std::u32string& s, ostream* os) {
      function PrintWideStringTo (line 526) | void PrintWideStringTo(const ::std::wstring& s, ostream* os) {

FILE: test/gtest/src/gtest-test-part.cc
  type testing (line 38) | namespace testing {
    function TestPartResult (line 71) | const TestPartResult& TestPartResultArray::GetTestPartResult(int index...
    type internal (line 85) | namespace internal {

FILE: test/gtest/src/gtest-typed-test.cc
  type testing (line 35) | namespace testing {
    type internal (line 36) | namespace internal {
      function SplitIntoTestNames (line 46) | static std::vector<std::string> SplitIntoTestNames(const char* src) {

FILE: test/gtest/src/gtest.cc
  type testing (line 137) | namespace testing {
    type internal (line 170) | namespace internal {
      function FILE (line 181) | static FILE* OpenFileForWriting(const std::string& output_file) {
      function GTestIsInitialized (line 368) | static bool GTestIsInitialized() { return GetArgvs().size() > 0; }
      function SumOverTestSuiteList (line 373) | static int SumOverTestSuiteList(const std::vector<TestSuite*>& case_...
      function TestSuitePassed (line 383) | static bool TestSuitePassed(const TestSuite* test_suite) {
      function TestSuiteFailed (line 388) | static bool TestSuiteFailed(const TestSuite* test_suite) {
      function ShouldRunTestSuite (line 394) | static bool ShouldRunTestSuite(const TestSuite* test_suite) {
      class FailureTest (line 432) | class FailureTest : public Test {
        method FailureTest (line 434) | explicit FailureTest(const CodeLocation& loc, std::string error_me...
        method TestBody (line 440) | void TestBody() override {
      function InsertSyntheticTestCase (line 469) | void InsertSyntheticTestCase(const std::string& name, CodeLocation l...
      function RegisterTypeParameterizedTestSuite (line 512) | void RegisterTypeParameterizedTestSuite(const char* test_suite_name,
      function RegisterTypeParameterizedTestSuiteInstantiation (line 518) | void RegisterTypeParameterizedTestSuiteInstantiation(const char* cas...
      function GetArgvs (line 580) | ::std::vector<std::string> GetArgvs() {
      function FilePath (line 593) | FilePath GetCurrentExecutableName() {
      function PatternMatchesString (line 655) | static bool PatternMatchesString(const std::string& name_str,
      function TypeId (line 847) | TypeId GetTestTypeId() {
      function AssertionResult (line 858) | static AssertionResult HasOneFailure(const char* /* results_expr */,
      function TestPartResultReporterInterface (line 928) | TestPartResultReporterInterface*
      function TestPartResultReporterInterface (line 942) | TestPartResultReporterInterface*
      class Timer (line 1035) | class Timer {
        method Timer (line 1037) | Timer() : start_(std::chrono::steady_clock::now()) {}
        method TimeInMillis (line 1040) | TimeInMillis Elapsed() {
      function TimeInMillis (line 1053) | TimeInMillis GetTimeInMillis() {
      function LPCWSTR (line 1069) | LPCWSTR String::AnsiToUtf16(const char* ansi) {
      function StreamWideCharsToMessage (line 1116) | static void StreamWideCharsToMessage(const wchar_t* wstr, size_t len...
      function SplitString (line 1132) | void SplitString(const ::std::string& str, char delimiter,
      type edit_distance (line 1226) | namespace edit_distance {
        function CalculateOptimalEdits (line 1227) | std::vector<EditType> CalculateOptimalEdits(const std::vector<size...
        class InternalStrings (line 1287) | class InternalStrings {
          method GetId (line 1289) | size_t GetId(const std::string& str) {
        function CalculateOptimalEdits (line 1303) | std::vector<EditType> CalculateOptimalEdits(
        class Hunk (line 1325) | class Hunk {
          method Hunk (line 1327) | Hunk(size_t left_start, size_t right_start)
          method PushLine (line 1334) | void PushLine(char edit, const char* line) {
          method PrintTo (line 1352) | void PrintTo(std::ostream* os) {
          method has_edits (line 1362) | bool has_edits() const { return adds_ || removes_; }
          method FlushEdits (line 1365) | void FlushEdits() {
          method PrintHeader (line 1374) | void PrintHeader(std::ostream* ss) const {
        function CreateUnifiedDiff (line 1402) | std::string CreateUnifiedDiff(const std::vector<std::string>& left,
      function SplitEscapedString (line 1472) | std::vector<std::string> SplitEscapedString(const std::string& str) {
      function AssertionResult (line 1512) | AssertionResult EqFailure(const char* lhs_expression,
      function GetBoolAssertionFailureMessage (line 1547) | std::string GetBoolAssertionFailureMessage(
      function AssertionResult (line 1563) | AssertionResult DoubleNearPredFormat(const char* expr1,
      function AssertionResult (line 1608) | AssertionResult FloatingPointLE(const char* expr1,
      function AssertionResult (line 1660) | AssertionResult CmpHelperSTREQ(const char* lhs_expression,
      function AssertionResult (line 1676) | AssertionResult CmpHelperSTRCASEEQ(const char* lhs_expression,
      function AssertionResult (line 1692) | AssertionResult CmpHelperSTRNE(const char* s1_expression,
      function AssertionResult (line 1706) | AssertionResult CmpHelperSTRCASENE(const char* s1_expression,
      function AssertionResult (line 1834) | AssertionResult HRESULTFailureHelper(const char* expr,
      function AssertionResult (line 1875) | AssertionResult IsHRESULTSuccess(const char* expr, long hr) {  // NO...
      function AssertionResult (line 1882) | AssertionResult IsHRESULTFailure(const char* expr, long hr) {  // NO...
      function ChopLowBits (line 1918) | inline uint32_t ChopLowBits(uint32_t* bits, int n) {
      function CodePointToUtf8 (line 1930) | std::string CodePointToUtf8(uint32_t code_point) {
      function IsUtf16SurrogatePair (line 1965) | inline bool IsUtf16SurrogatePair(wchar_t first, wchar_t second) {
      function CreateCodePointFromUtf16SurrogatePair (line 1971) | inline uint32_t CreateCodePointFromUtf16SurrogatePair(wchar_t first,
      function WideStringToUtf8 (line 1997) | std::string WideStringToUtf8(const wchar_t* str, int num_chars) {
      function AssertionResult (line 2043) | AssertionResult CmpHelperSTREQ(const char* lhs_expression,
      function AssertionResult (line 2059) | AssertionResult CmpHelperSTRNE(const char* s1_expression,
      function StringStreamToString (line 2164) | std::string StringStreamToString(::std::stringstream* ss) {
      function AppendUserMessage (line 2183) | std::string AppendUserMessage(const std::string& gtest_msg,
      function ReportFailureInUnknownLocation (line 2455) | void ReportFailureInUnknownLocation(TestPartResult::Type result_type,
      function FormatCxxExceptionMessage (line 2557) | static std::string FormatCxxExceptionMessage(const char* description,
      function Result (line 2588) | Result HandleSehExceptionsInMethodIfSupported(
      function Result (line 2615) | Result HandleExceptionsInMethodIfSupported(
      function TestInfo (line 2756) | TestInfo* MakeAndRegisterTestInfo(
      function ReportInvalidTestSuiteType (line 2768) | void ReportInvalidTestSuiteType(const char* test_suite_name,
      type GTestColor (line 3134) | enum class GTestColor { kDefault, kRed, kGreen, kYellow }
      function PrintTestPartResultToString (line 3138) | static std::string PrintTestPartResultToString(
      function PrintTestPartResult (line 3148) | static void PrintTestPartResult(const TestPartResult& test_part_resu...
      function WORD (line 3171) | static WORD GetColorAttribute(GTestColor color) {
      function GetBitOffset (line 3183) | static int GetBitOffset(WORD color_mask) {
      function WORD (line 3194) | static WORD GetNewColor(GTestColor color, WORD old_color_attrs) {
      function ShouldUseColor (line 3234) | bool ShouldUseColor(bool stdout_is_tty) {
      function ColoredPrintf (line 3276) | static void ColoredPrintf(GTestColor color, const char *fmt, ...) {
      function PrintFullTestCommentIfPresent (line 3329) | static void PrintFullTestCommentIfPresent(const TestInfo& test_info) {
      class PrettyUnitTestResultPrinter (line 3348) | class PrettyUnitTestResultPrinter : public TestEventListener {
        method PrettyUnitTestResultPrinter (line 3350) | PrettyUnitTestResultPrinter() {}
        method PrintTestName (line 3351) | static void PrintTestName(const char* test_suite, const char* test) {
        method OnTestProgramStart (line 3356) | void OnTestProgramStart(const UnitTest& /*unit_test*/) override {}
        method OnEnvironmentsSetUpEnd (line 3359) | void OnEnvironmentsSetUpEnd(const UnitTest& /*unit_test*/) overrid...
        method OnEnvironmentsTearDownEnd (line 3377) | void OnEnvironmentsTearDownEnd(const UnitTest& /*unit_test*/) over...
        method OnTestProgramEnd (line 3379) | void OnTestProgramEnd(const UnitTest& /*unit_test*/) override {}
      class BriefUnitTestResultPrinter (line 3647) | class BriefUnitTestResultPrinter : public TestEventListener {
        method BriefUnitTestResultPrinter (line 3649) | BriefUnitTestResultPrinter() {}
        method PrintTestName (line 3650) | static void PrintTestName(const char* test_suite, const char* test) {
        method OnTestProgramStart (line 3655) | void OnTestProgramStart(const UnitTest& /*unit_test*/) override {}
        method OnTestIterationStart (line 3656) | void OnTestIterationStart(const UnitTest& /*unit_test*/,
        method OnEnvironmentsSetUpStart (line 3658) | void OnEnvironmentsSetUpStart(const UnitTest& /*unit_test*/) overr...
        method OnEnvironmentsSetUpEnd (line 3659) | void OnEnvironmentsSetUpEnd(const UnitTest& /*unit_test*/) overrid...
        method OnTestCaseStart (line 3661) | void OnTestCaseStart(const TestCase& /*test_case*/) override {}
        method OnTestSuiteStart (line 3663) | void OnTestSuiteStart(const TestSuite& /*test_suite*/) override {}
        method OnTestStart (line 3666) | void OnTestStart(const TestInfo& /*test_info*/) override {}
        method OnTestCaseEnd (line 3671) | void OnTestCaseEnd(const TestCase& /*test_case*/) override {}
        method OnTestSuiteEnd (line 3673) | void OnTestSuiteEnd(const TestSuite& /*test_suite*/) override {}
        method OnEnvironmentsTearDownStart (line 3676) | void OnEnvironmentsTearDownStart(const UnitTest& /*unit_test*/) ov...
        method OnEnvironmentsTearDownEnd (line 3677) | void OnEnvironmentsTearDownEnd(const UnitTest& /*unit_test*/) over...
        method OnTestProgramEnd (line 3679) | void OnTestProgramEnd(const UnitTest& /*unit_test*/) override {}
      class TestEventRepeater (line 3751) | class TestEventRepeater : public TestEventListener {
        method TestEventRepeater (line 3753) | TestEventRepeater() : forwarding_enabled_(true) {}
        method forwarding_enabled (line 3760) | bool forwarding_enabled() const { return forwarding_enabled_; }
        method set_forwarding_enabled (line 3761) | void set_forwarding_enabled(bool enable) { forwarding_enabled_ = e...
      function TestEventListener (line 3803) | TestEventListener* TestEventRepeater::Release(TestEventListener *lis...
      class XmlUnitTestResultPrinter (line 3879) | class XmlUnitTestResultPrinter : public EmptyTestEventListener {
        method IsNormalizableWhitespace (line 3893) | static bool IsNormalizableWhitespace(char c) {
        method IsValidXmlCharacter (line 3898) | static bool IsValidXmlCharacter(char c) {
        method EscapeXmlAttribute (line 3912) | static std::string EscapeXmlAttribute(const std::string& str) {
        method EscapeXmlText (line 3917) | static std::string EscapeXmlText(const char* str) {
      function FormatTimeInMillisAsSeconds (line 4083) | std::string FormatTimeInMillisAsSeconds(TimeInMillis ms) {
      function PortableLocaltime (line 4089) | static bool PortableLocaltime(time_t seconds, struct tm* out) {
      function FormatEpochTimeInMillisAsIso8601 (line 4110) | std::string FormatEpochTimeInMillisAsIso8601(TimeInMillis ms) {
      class JsonUnitTestResultPrinter (line 4427) | class JsonUnitTestResultPrinter : public EmptyTestEventListener {
      function FormatTimeInMillisAsDuration (line 4551) | static std::string FormatTimeInMillisAsDuration(TimeInMillis ms) {
      function FormatEpochTimeInMillisAsRFC3339 (line 4559) | static std::string FormatEpochTimeInMillisAsRFC3339(TimeInMillis ms) {
      function Indent (line 4572) | static inline std::string Indent(size_t width) {
      function GTEST_LOCK_EXCLUDED_ (line 4942) | GTEST_LOCK_EXCLUDED_(mutex_) {
      function GTEST_LOCK_EXCLUDED_ (line 4991) | GTEST_LOCK_EXCLUDED_(mutex_) {
      class ScopedPrematureExitFile (line 5005) | class ScopedPrematureExitFile {
        method ScopedPrematureExitFile (line 5007) | explicit ScopedPrematureExitFile(const char* premature_exit_filepath)
      class TestSuiteNameIs (line 5671) | class TestSuiteNameIs {
        method TestSuiteNameIs (line 5674) | explicit TestSuiteNameIs(const std::string& name) : name_(name) {}
      function TestSuite (line 5698) | TestSuite* UnitTestImpl::GetTestSuite(
      function SetUpEnvironment (line 5734) | static void SetUpEnvironment(Environment* env) { env->SetUp(); }
      function TearDownEnvironment (line 5735) | static void TearDownEnvironment(Environment* env) { env->TearDown(); }
      function WriteToShardStatusFileIfNeeded (line 5928) | void WriteToShardStatusFileIfNeeded() {
      function ShouldShard (line 5950) | bool ShouldShard(const char* total_shards_env,
      function Int32FromEnvOrDie (line 5995) | int32_t Int32FromEnvOrDie(const char* var, int32_t default_val) {
      function ShouldRunTestOnShard (line 6013) | bool ShouldRunTestOnShard(int total_shards, int shard_index, int tes...
      function PrintOnOneLine (line 6079) | static void PrintOnOneLine(const char* str, int max_length) {
      function OsStackTraceGetterInterface (line 6166) | OsStackTraceGetterInterface* UnitTestImpl::os_stack_trace_getter() {
      function TestResult (line 6179) | TestResult* UnitTestImpl::current_test_result() {
      function GetCurrentOsStackTraceExceptTop (line 6225) | std::string GetCurrentOsStackTraceExceptTop(UnitTest* /*unit_test*/,
      class ClassUniqueToAlwaysTrue (line 6235) | class ClassUniqueToAlwaysTrue {}
      function IsTrue (line 6238) | bool IsTrue(bool condition) { return condition; }
      function AlwaysTrue (line 6240) | bool AlwaysTrue() {
      function SkipPrefix (line 6253) | bool SkipPrefix(const char* prefix, const char** pstr) {
      function ParseBoolFlag (line 6304) | static bool ParseBoolFlag(const char* str, const char* flag, bool* v...
      function ParseInt32Flag (line 6320) | bool ParseInt32Flag(const char* str, const char* flag, int32_t* valu...
      function ParseStringFlag (line 6337) | static bool ParseStringFlag(const char* str, const char* flag, Strin...
      function HasGoogleTestFlagPrefix (line 6355) | static bool HasGoogleTestFlagPrefix(const char* str) {
      function PrintColorEncoded (line 6373) | static void PrintColorEncoded(const char* str) {
      function ParseGoogleTestFlag (line 6499) | static bool ParseGoogleTestFlag(const char* const arg) {
      function LoadFlagsFromFile (line 6531) | static void LoadFlagsFromFile(const std::string& path) {
      function ParseGoogleTestFlagsOnlyImpl (line 6554) | void ParseGoogleTestFlagsOnlyImpl(int* argc, CharType** argv) {
      function ParseGoogleTestFlagsOnly (line 6607) | void ParseGoogleTestFlagsOnly(int* argc, char** argv) {
      function ParseGoogleTestFlagsOnly (line 6621) | void ParseGoogleTestFlagsOnly(int* argc, wchar_t** argv) {
      function InitGoogleTestImpl (line 6630) | void InitGoogleTestImpl(int* argc, CharType** argv) {
    function GetDefaultFailFast (line 210) | static bool GetDefaultFailFast() {
    type internal (line 343) | namespace internal {
      function FILE (line 181) | static FILE* OpenFileForWriting(const std::string& output_file) {
      function GTestIsInitialized (line 368) | static bool GTestIsInitialized() { return GetArgvs().size() > 0; }
      function SumOverTestSuiteList (line 373) | static int SumOverTestSuiteList(const std::vector<TestSuite*>& case_...
      function TestSuitePassed (line 383) | static bool TestSuitePassed(const TestSuite* test_suite) {
      function TestSuiteFailed (line 388) | static bool TestSuiteFailed(const TestSuite* test_suite) {
      function ShouldRunTestSuite (line 394) | static bool ShouldRunTestSuite(const TestSuite* test_suite) {
      class FailureTest (line 432) | class FailureTest : public Test {
        method FailureTest (line 434) | explicit FailureTest(const CodeLocation& loc, std::string error_me...
        method TestBody (line 440) | void TestBody() override {
      function InsertSyntheticTestCase (line 469) | void InsertSyntheticTestCase(const std::string& name, CodeLocation l...
      function RegisterTypeParameterizedTestSuite (line 512) | void RegisterTypeParameterizedTestSuite(const char* test_suite_name,
      function RegisterTypeParameterizedTestSuiteInstantiation (line 518) | void RegisterTypeParameterizedTestSuiteInstantiation(const char* cas...
      function GetArgvs (line 580) | ::std::vector<std::string> GetArgvs() {
      function FilePath (line 593) | FilePath GetCurrentExecutableName() {
      function PatternMatchesString (line 655) | static bool PatternMatchesString(const std::string& name_str,
      function TypeId (line 847) | TypeId GetTestTypeId() {
      function AssertionResult (line 858) | static AssertionResult HasOneFailure(const char* /* results_expr */,
      function TestPartResultReporterInterface (line 928) | TestPartResultReporterInterface*
      function TestPartResultReporterInterface (line 942) | TestPartResultReporterInterface*
      class Timer (line 1035) | class Timer {
        method Timer (line 1037) | Timer() : start_(std::chrono::steady_clock::now()) {}
        method TimeInMillis (line 1040) | TimeInMillis Elapsed() {
      function TimeInMillis (line 1053) | TimeInMillis GetTimeInMillis() {
      function LPCWSTR (line 1069) | LPCWSTR String::AnsiToUtf16(const char* ansi) {
      function StreamWideCharsToMessage (line 1116) | static void StreamWideCharsToMessage(const wchar_t* wstr, size_t len...
      function SplitString (line 1132) | void SplitString(const ::std::string& str, char delimiter,
      type edit_distance (line 1226) | namespace edit_distance {
        function CalculateOptimalEdits (line 1227) | std::vector<EditType> CalculateOptimalEdits(const std::vector<size...
        class InternalStrings (line 1287) | class InternalStrings {
          method GetId (line 1289) | size_t GetId(const std::string& str) {
        function CalculateOptimalEdits (line 1303) | std::vector<EditType> CalculateOptimalEdits(
        class Hunk (line 1325) | class Hunk {
          method Hunk (line 1327) | Hunk(size_t left_start, size_t right_start)
          method PushLine (line 1334) | void PushLine(char edit, const char* line) {
          method PrintTo (line 1352) | void PrintTo(std::ostream* os) {
          method has_edits (line 1362) | bool has_edits() const { return adds_ || removes_; }
          method FlushEdits (line 1365) | void FlushEdits() {
          method PrintHeader (line 1374) | void PrintHeader(std::ostream* ss) const {
        function CreateUnifiedDiff (line 1402) | std::string CreateUnifiedDiff(const std::vector<std::string>& left,
      function SplitEscapedString (line 1472) | std::vector<std::string> SplitEscapedString(const std::string& str) {
      function AssertionResult (line 1512) | AssertionResult EqFailure(const char* lhs_expression,
      function GetBoolAssertionFailureMessage (line 1547) | std::string GetBoolAssertionFailureMessage(
      function AssertionResult (line 1563) | AssertionResult DoubleNearPredFormat(const char* expr1,
      function AssertionResult (line 1608) | AssertionResult FloatingPointLE(const char* expr1,
      function AssertionResult (line 1660) | AssertionResult CmpHelperSTREQ(const char* lhs_expression,
      function AssertionResult (line 1676) | AssertionResult CmpHelperSTRCASEEQ(const char* lhs_expression,
      function AssertionResult (line 1692) | AssertionResult CmpHelperSTRNE(const char* s1_expression,
      function AssertionResult (line 1706) | AssertionResult CmpHelperSTRCASENE(const char* s1_expression,
      function AssertionResult (line 1834) | AssertionResult HRESULTFailureHelper(const char* expr,
      function AssertionResult (line 1875) | AssertionResult IsHRESULTSuccess(const char* expr, long hr) {  // NO...
      function AssertionResult (line 1882) | AssertionResult IsHRESULTFailure(const char* expr, long hr) {  // NO...
      function ChopLowBits (line 1918) | inline uint32_t ChopLowBits(uint32_t* bits, int n) {
      function CodePointToUtf8 (line 1930) | std::string CodePointToUtf8(uint32_t code_point) {
      function IsUtf16SurrogatePair (line 1965) | inline bool IsUtf16SurrogatePair(wchar_t first, wchar_t second) {
      function CreateCodePointFromUtf16SurrogatePair (line 1971) | inline uint32_t CreateCodePointFromUtf16SurrogatePair(wchar_t first,
      function WideStringToUtf8 (line 1997) | std::string WideStringToUtf8(const wchar_t* str, int num_chars) {
      function AssertionResult (line 2043) | AssertionResult CmpHelperSTREQ(const char* lhs_expression,
      function AssertionResult (line 2059) | AssertionResult CmpHelperSTRNE(const char* s1_expression,
      function StringStreamToString (line 2164) | std::string StringStreamToString(::std::stringstream* ss) {
      function AppendUserMessage (line 2183) | std::string AppendUserMessage(const std::string& gtest_msg,
      function ReportFailureInUnknownLocation (line 2455) | void ReportFailureInUnknownLocation(TestPartResult::Type result_type,
      function FormatCxxExceptionMessage (line 2557) | static std::string FormatCxxExceptionMessage(const char* description,
      function Result (line 2588) | Result HandleSehExceptionsInMethodIfSupported(
      function Result (line 2615) | Result HandleExceptionsInMethodIfSupported(
      function TestInfo (line 2756) | TestInfo* MakeAndRegisterTestInfo(
      function ReportInvalidTestSuiteType (line 2768) | void ReportInvalidTestSuiteType(const char* test_suite_name,
      type GTestColor (line 3134) | enum class GTestColor { kDefault, kRed, kGreen, kYellow }
      function PrintTestPartResultToString (line 3138) | static std::string PrintTestPartResultToString(
      function PrintTestPartResult (line 3148) | static void PrintTestPartResult(const TestPartResult& test_part_resu...
      function WORD (line 3171) | static WORD GetColorAttribute(GTestColor color) {
      function GetBitOffset (line 3183) | static int GetBitOffset(WORD color_mask) {
      function WORD (line 3194) | static WORD GetNewColor(GTestColor color, WORD old_color_attrs) {
      function ShouldUseColor (line 3234) | bool ShouldUseColor(bool stdout_is_tty) {
      function ColoredPrintf (line 3276) | static void ColoredPrintf(GTestColor color, const char *fmt, ...) {
      function PrintFullTestCommentIfPresent (line 3329) | static void PrintFullTestCommentIfPresent(const TestInfo& test_info) {
      class PrettyUnitTestResultPrinter (line 3348) | class PrettyUnitTestResultPrinter : public TestEventListener {
        method PrettyUnitTestResultPrinter (line 3350) | PrettyUnitTestResultPrinter() {}
        method PrintTestName (line 3351) | static void PrintTestName(const char* test_suite, const char* test) {
        method OnTestProgramStart (line 3356) | void OnTestProgramStart(const UnitTest& /*unit_test*/) override {}
        method OnEnvironmentsSetUpEnd (line 3359) | void OnEnvironmentsSetUpEnd(const UnitTest& /*unit_test*/) overrid...
        method OnEnvironmentsTearDownEnd (line 3377) | void OnEnvironmentsTearDownEnd(const UnitTest& /*unit_test*/) over...
        method OnTestProgramEnd (line 3379) | void OnTestProgramEnd(const UnitTest& /*unit_test*/) override {}
      class BriefUnitTestResultPrinter (line 3647) | class BriefUnitTestResultPrinter : public TestEventListener {
        method BriefUnitTestResultPrinter (line 3649) | BriefUnitTestResultPrinter() {}
        method PrintTestName (line 3650) | static void PrintTestName(const char* test_suite, const char* test) {
        method OnTestProgramStart (line 3655) | void OnTestProgramStart(const UnitTest& /*unit_test*/) override {}
        method OnTestIterationStart (line 3656) | void OnTestIterationStart(const UnitTest& /*unit_test*/,
        method OnEnvironmentsSetUpStart (line 3658) | void OnEnvironmentsSetUpStart(const UnitTest& /*unit_test*/) overr...
        method OnEnvironmentsSetUpEnd (line 3659) | void OnEnvironmentsSetUpEnd(const UnitTest& /*unit_test*/) overrid...
        method OnTestCaseStart (line 3661) | void OnTestCaseStart(const TestCase& /*test_case*/) override {}
        method OnTestSuiteStart (line 3663) | void OnTestSuiteStart(const TestSuite& /*test_suite*/) override {}
        method OnTestStart (line 3666) | void OnTestStart(const TestInfo& /*test_info*/) override {}
        method OnTestCaseEnd (line 3671) | void OnTestCaseEnd(const TestCase& /*test_case*/) override {}
        method OnTestSuiteEnd (line 3673) | void OnTestSuiteEnd(const TestSuite& /*test_suite*/) override {}
        method OnEnvironmentsTearDownStart (line 3676) | void OnEnvironmentsTearDownStart(const UnitTest& /*unit_test*/) ov...
        method OnEnvironmentsTearDownEnd (line 3677) | void OnEnvironmentsTearDownEnd(const UnitTest& /*unit_test*/) over...
        method OnTestProgramEnd (line 3679) | void OnTestProgramEnd(const UnitTest& /*unit_test*/) override {}
      class TestEventRepeater (line 3751) | class TestEventRepeater : public TestEventListener {
        method TestEventRepeater (line 3753) | TestEventRepeater() : forwarding_enabled_(true) {}
        method forwarding_enabled (line 3760) | bool forwarding_enabled() const { return forwarding_enabled_; }
        method set_forwarding_enabled (line 3761) | void set_forwarding_enabled(bool enable) { forwarding_enabled_ = e...
      function TestEventListener (line 3803) | TestEventListener* TestEventRepeater::Release(TestEventListener *lis...
      class XmlUnitTestResultPrinter (line 3879) | class XmlUnitTestResultPrinter : public EmptyTestEventListener {
        method IsNormalizableWhitespace (line 3893) | static bool IsNormalizableWhitespace(char c) {
        method IsValidXmlCharacter (line 3898) | static bool IsValidXmlCharacter(char c) {
        method EscapeXmlAttribute (line 3912) | static std::string EscapeXmlAttribute(const std::string& str) {
        method EscapeXmlText (line 3917) | static std::string EscapeXmlText(const char* str) {
      function FormatTimeInMillisAsSeconds (line 4083) | std::string FormatTimeInMillisAsSeconds(TimeInMillis ms) {
      function PortableLocaltime (line 4089) | static bool PortableLocaltime(time_t seconds, struct tm* out) {
      function FormatEpochTimeInMillisAsIso8601 (line 4110) | std::string FormatEpochTimeInMillisAsIso8601(TimeInMillis ms) {
      class JsonUnitTestResultPrinter (line 4427) | class JsonUnitTestResultPrinter : public EmptyTestEventListener {
      function FormatTimeInMillisAsDuration (line 4551) | static std::string FormatTimeInMillisAsDuration(TimeInMillis ms) {
      function FormatEpochTimeInMillisAsRFC3339 (line 4559) | static std::string FormatEpochTimeInMillisAsRFC3339(TimeInMillis ms) {
      function Indent (line 4572) | static inline std::string Indent(size_t width) {
      function GTEST_LOCK_EXCLUDED_ (line 4942) | GTEST_LOCK_EXCLUDED_(mutex_) {
      function GTEST_LOCK_EXCLUDED_ (line 4991) | GTEST_LOCK_EXCLUDED_(mutex_) {
      class ScopedPrematureExitFile (line 5005) | class ScopedPrematureExitFile {
        method ScopedPrematureExitFile (line 5007) | explicit ScopedPrematureExitFile(const char* premature_exit_filepath)
      class TestSuiteNameIs (line 5671) | class TestSuiteNameIs {
        method TestSuiteNameIs (line 5674) | explicit TestSuiteNameIs(const std::string& name) : name_(name) {}
      function TestSuite (line 5698) | TestSuite* UnitTestImpl::GetTestSuite(
      function SetUpEnvironment (line 5734) | static void SetUpEnvironment(Environment* env) { env->SetUp(); }
      function TearDownEnvironment (line 5735) | static void TearDownEnvironment(Environment* env) { env->TearDown(); }
      function WriteToShardStatusFileIfNeeded (line 5928) | void WriteToShardStatusFileIfNeeded() {
      function ShouldShard (line 5950) | bool ShouldShard(const char* total_shards_env,
      function Int32FromEnvOrDie (line 5995) | int32_t Int32FromEnvOrDie(const char* var, int32_t default_val) {
      function ShouldRunTestOnShard (line 6013) | bool ShouldRunTestOnShard(int total_shards, int shard_index, int tes...
      function PrintOnOneLine (line 6079) | static void PrintOnOneLine(const char* str, int max_length) {
      function OsStackTraceGetterInterface (line 6166) | OsStackTraceGetterInterface* UnitTestImpl::os_stack_trace_getter() {
      function TestResult (line 6179) | TestResult* UnitTestImpl::current_test_result() {
      function GetCurrentOsStackTraceExceptTop (line 6225) | std::string GetCurrentOsStackTraceExceptTop(UnitTest* /*unit_test*/,
      class ClassUniqueToAlwaysTrue (line 6235) | class ClassUniqueToAlwaysTrue {}
      function IsTrue (line 6238) | bool IsTrue(bool condition) { return condition; }
      function AlwaysTrue (line 6240) | bool AlwaysTrue() {
      function SkipPrefix (line 6253) | bool SkipPrefix(const char* prefix, const char** pstr) {
      function ParseBoolFlag (line 6304) | static bool ParseBoolFlag(const char* str, const char* flag, bool* v...
      function ParseInt32Flag (line 6320) | bool ParseInt32Flag(const char* str, const char* flag, int32_t* valu...
      function ParseStringFlag (line 6337) | static bool ParseStringFlag(const char* str, const char* flag, Strin...
      function HasGoogleTestFlagPrefix (line 6355) | static bool HasGoogleTestFlagPrefix(const char* str) {
      function PrintColorEncoded (line 6373) | static void PrintColorEncoded(const char* str) {
      function ParseGoogleTestFlag (line 6499) | static bool ParseGoogleTestFlag(const char* const arg) {
      function LoadFlagsFromFile (line 6531) | static void LoadFlagsFromFile(const std::string& path) {
      function ParseGoogleTestFlagsOnlyImpl (line 6554) | void ParseGoogleTestFlagsOnlyImpl(int* argc, CharType** argv) {
      function ParseGoogleTestFlagsOnly (line 6607) | void ParseGoogleTestFlagsOnly(int* argc, char** argv) {
      function ParseGoogleTestFlagsOnly (line 6621) | void ParseGoogleTestFlagsOnly(int* argc, wchar_t** argv) {
      function InitGoogleTestImpl (line 6630) | void InitGoogleTestImpl(int* argc, CharType** argv) {
    type internal (line 836) | namespace internal {
      function FILE (line 181) | static FILE* OpenFileForWriting(const std::string& output_file) {
      function GTestIsInitialized (line 368) | static bool GTestIsInitialized() { return GetArgvs().size() > 0; }
      function SumOverTestSuiteList (line 373) | static int SumOverTestSuiteList(const std::vector<TestSuite*>& case_...
      function TestSuitePassed (line 383) | static bool TestSuitePassed(const TestSuite* test_suite) {
      function TestSuiteFailed (line 388) | static bool TestSuiteFailed(const TestSuite* test_suite) {
      function ShouldRunTestSuite (line 394) | static bool ShouldRunTestSuite(const TestSuite* test_suite) {
      class FailureTest (line 432) | class FailureTest : public Test {
        method FailureTest (line 434) | explicit FailureTest(const CodeLocation& loc, std::string error_me...
        method TestBody (line 440) | void TestBody() override {
      function InsertSyntheticTestCase (line 469) | void InsertSyntheticTestCase(const std::string& name, CodeLocation l...
      function RegisterTypeParameterizedTestSuite (line 512) | void RegisterTypeParameterizedTestSuite(const char* test_suite_name,
      function RegisterTypeParameterizedTestSuiteInstantiation (line 518) | void RegisterTypeParameterizedTestSuiteInstantiation(const char* cas...
      function GetArgvs (line 580) | ::std::vector<std::string> GetArgvs() {
      function FilePath (line 593) | FilePath GetCurrentExecutableName() {
      function PatternMatchesString (line 655) | static bool PatternMatchesString(const std::string& name_str,
      function TypeId (line 847) | TypeId GetTestTypeId() {
      function AssertionResult (line 858) | static AssertionResult HasOneFailure(const char* /* results_expr */,
      function TestPartResultReporterInterface (line 928) | TestPartResultReporterInterface*
      function TestPartResultReporterInterface (line 942) | TestPartResultReporterInterface*
      class Timer (line 1035) | class Timer {
        method Timer (line 1037) | Timer() : start_(std::chrono::steady_clock::now()) {}
        method TimeInMillis (line 1040) | TimeInMillis Elapsed() {
      function TimeInMillis (line 1053) | TimeInMillis GetTimeInMillis() {
      function LPCWSTR (line 1069) | LPCWSTR String::AnsiToUtf16(const char* ansi) {
      function StreamWideCharsToMessage (line 1116) | static void StreamWideCharsToMessage(const wchar_t* wstr, size_t len...
      function SplitString (line 1132) | void SplitString(const ::std::string& str, char delimiter,
      type edit_distance (line 1226) | namespace edit_distance {
        function CalculateOptimalEdits (line 1227) | std::vector<EditType> CalculateOptimalEdits(const std::vector<size...
        class InternalStrings (line 1287) | class InternalStrings {
          method GetId (line 1289) | size_t GetId(const std::string& str) {
        function CalculateOptimalEdits (line 1303) | std::vector<EditType> CalculateOptimalEdits(
        class Hunk (line 1325) | class Hunk {
          method Hunk (line 1327) | Hunk(size_t left_start, size_t right_start)
          method PushLine (line 1334) | void PushLine(char edit, const char* line) {
          method PrintTo (line 1352) | void PrintTo(std::ostream* os) {
          method has_edits (line 1362) | bool has_edits() const { return adds_ || removes_; }
          method FlushEdits (line 1365) | void FlushEdits() {
          method PrintHeader (line 1374) | void PrintHeader(std::ostream* ss) const {
        function CreateUnifiedDiff (line 1402) | std::string CreateUnifiedDiff(const std::vector<std::string>& left,
      function SplitEscapedString (line 1472) | std::vector<std::string> SplitEscapedString(const std::string& str) {
      function AssertionResult (line 1512) | AssertionResult EqFailure(const char* lhs_expression,
      function GetBoolAssertionFailureMessage (line 1547) | std::string GetBoolAssertionFailureMessage(
      function AssertionResult (line 1563) | AssertionResult DoubleNearPredFormat(const char* expr1,
      function AssertionResult (line 1608) | AssertionResult FloatingPointLE(const char* expr1,
      function AssertionResult (line 1660) | AssertionResult CmpHelperSTREQ(const char* lhs_expression,
      function AssertionResult (line 1676) | AssertionResult CmpHelperSTRCASEEQ(const char* lhs_expression,
      function AssertionResult (line 1692) | AssertionResult CmpHelperSTRNE(const char* s1_expression,
      function AssertionResult (line 1706) | AssertionResult CmpHelperSTRCASENE(const char* s1_expression,
      function AssertionResult (line 1834) | AssertionResult HRESULTFailureHelper(const char* expr,
      function AssertionResult (line 1875) | AssertionResult IsHRESULTSuccess(const char* expr, long hr) {  // NO...
      function AssertionResult (line 1882) | AssertionResult IsHRESULTFailure(const char* expr, long hr) {  // NO...
      function ChopLowBits (line 1918) | inline uint32_t ChopLowBits(uint32_t* bits, int n) {
      function CodePointToUtf8 (line 1930) | std::string CodePointToUtf8(uint32_t code_point) {
      function IsUtf16SurrogatePair (line 1965) | inline bool IsUtf16SurrogatePair(wchar_t first, wchar_t second) {
      function CreateCodePointFromUtf16SurrogatePair (line 1971) | inline uint32_t CreateCodePointFromUtf16SurrogatePair(wchar_t first,
      function WideStringToUtf8 (line 1997) | std::string WideStringToUtf8(const wchar_t* str, int num_chars) {
      function AssertionResult (line 2043) | AssertionResult CmpHelperSTREQ(const char* lhs_expression,
      function AssertionResult (line 2059) | AssertionResult CmpHelperSTRNE(const char* s1_expression,
      function StringStreamToString (line 2164) | std::string StringStreamToString(::std::stringstream* ss) {
      function AppendUserMessage (line 2183) | std::string AppendUserMessage(const std::string& gtest_msg,
      function ReportFailureInUnknownLocation (line 2455) | void ReportFailureInUnknownLocation(TestPartResult::Type result_type,
      function FormatCxxExceptionMessage (line 2557) | static std::string FormatCxxExceptionMessage(const char* description,
      function Result (line 2588) | Result HandleSehExceptionsInMethodIfSupported(
      function Result (line 2615) | Result HandleExceptionsInMethodIfSupported(
      function TestInfo (line 2756) | TestInfo* MakeAndRegisterTestInfo(
      function ReportInvalidTestSuiteType (line 2768) | void ReportInvalidTestSuiteType(const char* test_suite_name,
      type GTestColor (line 3134) | enum class GTestColor { kDefault, kRed, kGreen, kYellow }
      function PrintTestPartResultToString (line 3138) | static std::string PrintTestPartResultToString(
      function PrintTestPartResult (line 3148) | static void PrintTestPartResult(const TestPartResult& test_part_resu...
      function WORD (line 3171) | static WORD GetColorAttribute(GTestColor color) {
      function GetBitOffset (line 3183) | static int GetBitOffset(WORD color_mask) {
      function WORD (line 3194) | static WORD GetNewColor(GTestColor color, WORD old_color_attrs) {
      function ShouldUseColor (line 3234) | bool ShouldUseColor(bool stdout_is_tty) {
      function ColoredPrintf (line 3276) | static void ColoredPrintf(GTestColor color, const char *fmt, ...) {
      function PrintFullTestCommentIfPresent (line 3329) | static void PrintFullTestCommentIfPresent(const TestInfo& test_info) {
      class PrettyUnitTestResultPrinter (line 3348) | class PrettyUnitTestResultPrinter : public TestEventListener {
        method PrettyUnitTestResultPrinter (line 3350) | PrettyUnitTestResultPrinter() {}
        method PrintTestName (line 3351) | static void PrintTestName(const char* test_suite, const char* test) {
        method OnTestProgramStart (line 3356) | void OnTestProgramStart(const UnitTest& /*unit_test*/) override {}
        method OnEnvironmentsSetUpEnd (line 3359) | void OnEnvironmentsSetUpEnd(const UnitTest& /*unit_test*/) overrid...
        method OnEnvironmentsTearDownEnd (line 3377) | void OnEnvironmentsTearDownEnd(const UnitTest& /*unit_test*/) over...
        method OnTestProgramEnd (line 3379) | void OnTestProgramEnd(const UnitTest& /*unit_test*/) override {}
      class BriefUnitTestResultPrinter (line 3647) | class BriefUnitTestResultPrinter : public TestEventListener {
        method BriefUnitTestResultPrinter (line 3649) | BriefUnitTestResultPrinter() {}
        method PrintTestName (line 3650) | static void PrintTestName(const char* test_suite, const char* test) {
        method OnTestProgramStart (line 3655) | void OnTestProgramStart(const UnitTest& /*unit_test*/) override {}
        method OnTestIterationStart (line 3656) | void OnTestIterationStart(const UnitTest& /*unit_test*/,
        method OnEnvironmentsSetUpStart (line 3658) | void OnEnvironmentsSetUpStart(const UnitTest& /*unit_test*/) overr...
        method OnEnvironmentsSetUpEnd (line 3659) | void OnEnvironmentsSetUpEnd(const UnitTest& /*unit_test*/) overrid...
        method OnTestCaseStart (line 3661) | void OnTestCaseStart(const TestCase& /*test_case*/) override {}
        method OnTestSuiteStart (line 3663) | void OnTestSuiteStart(const TestSuite& /*test_suite*/) override {}
        method OnTestStart (line 3666) | void OnTestStart(const TestInfo& /*test_info*/) override {}
        method OnTestCaseEnd (line 3671) | void OnTestCaseEnd(const TestCase& /*test_case*/) override {}
        method OnTestSuiteEnd (line 3673) | void OnTestSuiteEnd(const TestSuite& /*test_suite*/) override {}
        method OnEnvironmentsTearDownStart (line 3676) | void OnEnvironmentsTearDownStart(const UnitTest& /*unit_test*/) ov...
        method OnEnvironmentsTearDownEnd (line 3677) | void OnEnvironmentsTearDownEnd(const UnitTest& /*unit_test*/) over...
        method OnTestProgramEnd (line 3679) | void OnTestProgramEnd(const UnitTest& /*unit_test*/) override {}
      class TestEventRepeater (line 3751) | class TestEventRepeater : public TestEventListener {
        method TestEventRepeater (line 3753) | TestEventRepeater() : forwarding_enabled_(true) {}
        method forwarding_enabled (line 3760) | bool forwarding_enabled() const { return forwarding_enabled_; }
        method set_forwarding_enabled (line 3761) | void set_forwarding_enabled(bool enable) { forwarding_enabled_ = e...
      function TestEventListener (line 3803) | TestEventListener* TestEventRepeater::Release(TestEventListener *lis...
      class XmlUnitTestResultPrinter (line 3879) | class XmlUnitTestResultPrinter : public EmptyTestEventListener {
        method IsNormalizableWhitespace (line 3893) | static bool IsNormalizableWhitespace(char c) {
        method IsValidXmlCharacter (line 3898) | static bool IsValidXmlCharacter(char c) {
        method EscapeXmlAttribute (line 3912) | static std::string EscapeXmlAttribute(const std::string& str) {
        method EscapeXmlText (line 3917) | static std::string EscapeXmlText(const char* str) {
      function FormatTimeInMillisAsSeconds (line 4083) | std::string FormatTimeInMillisAsSeconds(TimeInMillis ms) {
      function PortableLocaltime (line 4089) | static bool PortableLocaltime(time_t seconds, struct tm* out) {
      function FormatEpochTimeInMillisAsIso8601 (line 4110) | std::string FormatEpochTimeInMillisAsIso8601(TimeInMillis ms) {
      class JsonUnitTestResultPrinter (line 4427) | class JsonUnitTestResultPrinter : public EmptyTestEventListener {
      function FormatTimeInMillisAsDuration (line 4551) | static std::string FormatTimeInMillisAsDuration(TimeInMillis ms) {
      function FormatEpochTimeInMillisAsRFC3339 (line 4559) | static std::string FormatEpochTimeInMillisAsRFC3339(TimeInMillis ms) {
      function Indent (line 4572) | static inline std::string Indent(size_t width) {
      function GTEST_LOCK_EXCLUDED_ (line 4942) | GTEST_LOCK_EXCLUDED_(mutex_) {
      function GTEST_LOCK_EXCLUDED_ (line 4991) | GTEST_LOCK_EXCLUDED_(mutex_) {
      class ScopedPrematureExitFile (line 5005) | class ScopedPrematureExitFile {
        method ScopedPrematureExitFile (line 5007) | explicit ScopedPrematureExitFile(const char* premature_exit_filepath)
      class TestSuiteNameIs (line 5671) | class TestSuiteNameIs {
        method TestSuiteNameIs (line 5674) | explicit TestSuiteNameIs(const std::string& name) : name_(name) {}
      function TestSuite (line 5698) | TestSuite* UnitTestImpl::GetTestSuite(
      function SetUpEnvironment (line 5734) | static void SetUpEnvironment(Environment* env) { env->SetUp(); }
      function TearDownEnvironment (line 5735) | static void TearDownEnvironment(Environment* env) { env->TearDown(); }
      function WriteToShardStatusFileIfNeeded (line 5928) | void WriteToShardStatusFileIfNeeded() {
      function ShouldShard (line 5950) | bool ShouldShard(const char* total_shards_env,
      function Int32FromEnvOrDie (line 5995) | int32_t Int32FromEnvOrDie(const char* var, int32_t default_val) {
      function ShouldRunTestOnShard (line 6013) | bool ShouldRunTestOnShard(int total_shards, int shard_index, int tes...
      function PrintOnOneLine (line 6079) | static void PrintOnOneLine(const char* str, int max_length) {
      function OsStackTraceGetterInterface (line 6166) | OsStackTraceGetterInterface* UnitTestImpl::os_stack_trace_getter() {
      function TestResult (line 6179) | TestResult* UnitTestImpl::current_test_result() {
      function GetCurrentOsStackTraceExceptTop (line 6225) | std::string GetCurrentOsStackTraceExceptTop(UnitTest* /*unit_test*/,
      class ClassUniqueToAlwaysTrue (line 6235) | class ClassUniqueToAlwaysTrue {}
      function IsTrue (line 6238) | bool IsTrue(bool condition) { return condition; }
      function AlwaysTrue (line 6240) | bool AlwaysTrue() {
      function SkipPrefix (line 6253) | bool SkipPrefix(const char* prefix, const char** pstr) {
      function ParseBoolFlag (line 6304) | static bool ParseBoolFlag(const char* str, const char* flag, bool* v...
      function ParseInt32Flag (line 6320) | bool ParseInt32Flag(const char* str, const char* flag, int32_t* valu...
      function ParseStringFlag (line 6337) | static bool ParseStringFlag(const char* str, const char* flag, Strin...
      function HasGoogleTestFlagPrefix (line 6355) | static bool HasGoogleTestFlagPrefix(const char* str) {
      function PrintColorEncoded (line 6373) | static void PrintColorEncoded(const char* str) {
      function ParseGoogleTestFlag (line 6499) | static bool ParseGoogleTestFlag(const char* const arg) {
      function LoadFlagsFromFile (line 6531) | static void LoadFlagsFromFile(const std::string& path) {
      function ParseGoogleTestFlagsOnlyImpl (line 6554) | void ParseGoogleTestFlagsOnlyImpl(int* argc, CharType** argv) {
      function ParseGoogleTestFlagsOnly (line 6607) | void ParseGoogleTestFlagsOnly(int* argc, char** argv) {
      function ParseGoogleTestFlagsOnly (line 6621) | void ParseGoogleTestFlagsOnly(int* argc, wchar_t** argv) {
      function InitGoogleTestImpl (line 6630) | void InitGoogleTestImpl(int* argc, CharType** argv) {
    function Message (line 1164) | Message& Message::operator <<(const wchar_t* wide_c_str) {
    function Message (line 1167) | Message& Message::operator <<(wchar_t* wide_c_str) {
    function Message (line 1174) | Message& Message::operator <<(const ::std::wstring& wstr) {
    function AssertionResult (line 1202) | AssertionResult AssertionResult::operator!() const {
    function AssertionResult (line 1209) | AssertionResult AssertionSuccess() {
    function AssertionResult (line 1214) | AssertionResult AssertionFailure() {
    function AssertionResult (line 1220) | AssertionResult AssertionFailure(const Message& message) {
    type internal (line 1224) | namespace internal {
      function FILE (line 181) | static FILE* OpenFileForWriting(const std::string& output_file) {
      function GTestIsInitialized (line 368) | static bool GTestIsInitialized() { return GetArgvs().size() > 0; }
      function SumOverTestSuiteList (line 373) | static int SumOverTestSuiteList(const std::vector<TestSuite*>& case_...
      function TestSuitePassed (line 383) | static bool TestSuitePassed(const TestSuite* test_suite) {
      function TestSuiteFailed (line 388) | static bool TestSuiteFailed(const TestSuite* test_suite) {
      function ShouldRunTestSuite (line 394) | static bool ShouldRunTestSuite(const TestSuite* test_suite) {
      class FailureTest (line 432) | class FailureTest : public Test {
        method FailureTest (line 434) | explicit FailureTest(const CodeLocation& loc, std::string error_me...
        method TestBody (line 440) | void TestBody() override {
      function InsertSyntheticTestCase (line 469) | void InsertSyntheticTestCase(const std::string& name, CodeLocation l...
      function RegisterTypeParameterizedTestSuite (line 512) | void RegisterTypeParameterizedTestSuite(const char* test_suite_name,
      function RegisterTypeParameterizedTestSuiteInstantiation (line 518) | void RegisterTypeParameterizedTestSuiteInstantiation(const char* cas...
      function GetArgvs (line 580) | ::std::vector<std::string> GetArgvs() {
      function FilePath (line 593) | FilePath GetCurrentExecutableName() {
      function PatternMatchesString (line 655) | static bool PatternMatchesString(const std::string& name_str,
      function TypeId (line 847) | TypeId GetTestTypeId() {
      function AssertionResult (line 858) | static AssertionResult HasOneFailure(const char* /* results_expr */,
      function TestPartResultReporterInterface (line 928) | TestPartResultReporterInterface*
      function TestPartResultReporterInterface (line 942) | TestPartResultReporterInterface*
      class Timer (line 1035) | class Timer {
        method Timer (line 1037) | Timer() : start_(std::chrono::steady_clock::now()) {}
        method TimeInMillis (line 1040) | TimeInMillis Elapsed() {
      function TimeInMillis (line 1053) | TimeInMillis GetTimeInMillis() {
      function LPCWSTR (line 1069) | LPCWSTR String::AnsiToUtf16(const char* ansi) {
      function StreamWideCharsToMessage (line 1116) | static void StreamWideCharsToMessage(const wchar_t* wstr, size_t len...
      function SplitString (line 1132) | void SplitString(const ::std::string& str, char delimiter,
      type edit_distance (line 1226) | namespace edit_distance {
        function CalculateOptimalEdits (line 1227) | std::vector<EditType> CalculateOptimalEdits(const std::vector<size...
        class InternalStrings (line 1287) | class InternalStrings {
          method GetId (line 1289) | size_t GetId(const std::string& str) {
        function CalculateOptimalEdits (line 1303) | std::vector<EditType> CalculateOptimalEdits(
        class Hunk (line 1325) | class Hunk {
          method Hunk (line 1327) | Hunk(size_t left_start, size_t right_start)
          method PushLine (line 1334) | void PushLine(char edit, const char* line) {
          method PrintTo (line 1352) | void PrintTo(std::ostream* os) {
          method has_edits (line 1362) | bool has_edits() const { return adds_ || removes_; }
          method FlushEdits (line 1365) | void FlushEdits() {
          method PrintHeader (line 1374) | void PrintHeader(std::ostream* ss) const {
        function CreateUnifiedDiff (line 1402) | std::string CreateUnifiedDiff(const std::vector<std::string>& left,
      function SplitEscapedString (line 1472) | std::vector<std::string> SplitEscapedString(const std::string& str) {
      function AssertionResult (line 1512) | AssertionResult EqFailure(const char* lhs_expression,
      function GetBoolAssertionFailureMessage (line 1547) | std::string GetBoolAssertionFailureMessage(
      function AssertionResult (line 1563) | AssertionResult DoubleNearPredFormat(const char* expr1,
      function AssertionResult (line 1608) | AssertionResult FloatingPointLE(const char* expr1,
      function AssertionResult (line 1660) | AssertionResult CmpHelperSTREQ(const char* lhs_expression,
      function AssertionResult (line 1676) | AssertionResult CmpHelperSTRCASEEQ(const char* lhs_expression,
      function AssertionResult (line 1692) | AssertionResult CmpHelperSTRNE(const char* s1_expression,
      function AssertionResult (line 1706) | AssertionResult CmpHelperSTRCASENE(const char* s1_expression,
      function AssertionResult (line 1834) | AssertionResult HRESULTFailureHelper(const char* expr,
      function AssertionResult (line 1875) | AssertionResult IsHRESULTSuccess(const char* expr, long hr) {  // NO...
      function AssertionResult (line 1882) | AssertionResult IsHRESULTFailure(const char* expr, long hr) {  // NO...
      function ChopLowBits (line 1918) | inline uint32_t ChopLowBits(uint32_t* bits, int n) {
      function CodePointToUtf8 (line 1930) | std::string CodePointToUtf8(uint32_t code_point) {
      function IsUtf16SurrogatePair (line 1965) | inline bool IsUtf16SurrogatePair(wchar_t first, wchar_t second) {
      function CreateCodePointFromUtf16SurrogatePair (line 1971) | inline uint32_t CreateCodePointFromUtf16SurrogatePair(wchar_t first,
      function WideStringToUtf8 (line 1997) | std::string WideStringToUtf8(const wchar_t* str, int num_chars) {
      function AssertionResult (line 2043) | AssertionResult CmpHelperSTREQ(const char* lhs_expression,
      function AssertionResult (line 2059) | AssertionResult CmpHelperSTRNE(const char* s1_expression,
      function StringStreamToString (line 2164) | std::string StringStreamToString(::std::stringstream* ss) {
      function AppendUserMessage (line 2183) | std::string AppendUserMessage(const std::string& gtest_msg,
      function ReportFailureInUnknownLocation (line 2455) | void ReportFailureInUnknownLocation(TestPartResult::Type result_type,
      function FormatCxxExceptionMessage (line 2557) | static std::string FormatCxxExceptionMessage(const char* description,
      function Result (line 2588) | Result HandleSehExceptionsInMethodIfSupported(
      function Result (line 2615) | Result HandleExceptionsInMethodIfSupported(
      function TestInfo (line 2756) | TestInfo* MakeAndRegisterTestInfo(
      function ReportInvalidTestSuiteType (line 2768) | void ReportInvalidTestSuiteType(const char* test_suite_name,
      type GTestColor (line 3134) | enum class GTestColor { kDefault, kRed, kGreen, kYellow }
      function PrintTestPartResultToString (line 3138) | static std::string PrintTestPartResultToString(
      function PrintTestPartResult (line 3148) | static void PrintTestPartResult(const TestPartResult& test_part_resu...
      function WORD (line 3171) | static WORD GetColorAttribute(GTestColor color) {
      function GetBitOffset (line 3183) | static int GetBitOffset(WORD color_mask) {
      function WORD (line 3194) | static WORD GetNewColor(GTestColor color, WORD old_color_attrs) {
      function ShouldUseColor (line 3234) | bool ShouldUseColor(bool stdout_is_tty) {
      function ColoredPrintf (line 3276) | static void ColoredPrintf(GTestColor color, const char *fmt, ...) {
      function PrintFullTestCommentIfPresent (line 3329) | static void PrintFullTestCommentIfPresent(const TestInfo& test_info) {
      class PrettyUnitTestResultPrinter (line 3348) | class PrettyUnitTestResultPrinter : public TestEventListener {
        method PrettyUnitTestResultPrinter (line 3350) | PrettyUnitTestResultPrinter() {}
        method PrintTestName (line 3351) | static void PrintTestName(const char* test_suite, const char* test) {
        method OnTestProgramStart (line 3356) | void OnTestProgramStart(const UnitTest& /*unit_test*/) override {}
        method OnEnvironmentsSetUpEnd (line 3359) | void OnEnvironmentsSetUpEnd(const UnitTest& /*unit_test*/) overrid...
        method OnEnvironmentsTearDownEnd (line 3377) | void OnEnvironmentsTearDownEnd(const UnitTest& /*unit_test*/) over...
        method OnTestProgramEnd (line 3379) | void OnTestProgramEnd(const UnitTest& /*unit_test*/) override {}
      class BriefUnitTestResultPrinter (line 3647) | class BriefUnitTestResultPrinter : public TestEventListener {
        method BriefUnitTestResultPrinter (line 3649) | BriefUnitTestResultPrinter() {}
        method PrintTestName (line 3650) | static void PrintTestName(const char* test_suite, const char* test) {
        method OnTestProgramStart (line 3655) | void OnTestProgramStart(const UnitTest& /*unit_test*/) override {}
        method OnTestIterationStart (line 3656) | void OnTestIterationStart(const UnitTest& /*unit_test*/,
        method OnEnvironmentsSetUpStart (line 3658) | void OnEnvironmentsSetUpStart(const UnitTest& /*unit_test*/) overr...
        method OnEnvironmentsSetUpEnd (line 3659) | void OnEnvironmentsSetUpEnd(const UnitTest& /*unit_test*/) overrid...
        method OnTestCaseStart (line 3661) | void OnTestCaseStart(const TestCase& /*test_case*/) override {}
        method OnTestSuiteStart (line 3663) | void OnTestSuiteStart(const TestSuite& /*test_suite*/) override {}
        method OnTestStart (line 3666) | void OnTestStart(const TestInfo& /*test_info*/) override {}
        method OnTestCaseEnd (line 3671) | void OnTestCaseEnd(const TestCase& /*test_case*/) override {}
        method OnTestSuiteEnd (line 3673) | void OnTestSuiteEnd(const TestSuite& /*test_suite*/) override {}
        method OnEnvironmentsTearDownStart (line 3676) | void OnEnvironmentsTearDownStart(const UnitTest& /*unit_test*/) ov...
        method OnEnvironmentsTearDownEnd (line 3677) | void OnEnvironmentsTearDownEnd(const UnitTest& /*unit_test*/) over...
        method OnTestProgramEnd (line 3679) | void OnTestProgramEnd(const UnitTest& /*unit_test*/) override {}
      class TestEventRepeater (line 3751) | class TestEventRepeater : public TestEventListener {
        method TestEventRepeater (line 3753) | TestEventRepeater() : forwarding_enabled_(true) {}
        method forwarding_enabled (line 3760) | bool forwarding_enabled() const { return forwarding_enabled_; }
        method set_forwarding_enabled (line 3761) | void set_forwarding_enabled(bool enable) { forwarding_enabled_ = e...
      function TestEventListener (line 3803) | TestEventListener* TestEventRepeater::Release(TestEventListener *lis...
      class XmlUnitTestResultPrinter (line 3879) | class XmlUnitTestResultPrinter : public EmptyTestEventListener {
        method IsNormalizableWhitespace (line 3893) | static bool IsNormalizableWhitespace(char c) {
        method IsValidXmlCharacter (line 3898) | static bool IsValidXmlCharacter(char c) {
        method EscapeXmlAttribute (line 3912) | static std::string EscapeXmlAttribute(const std::string& str) {
        method EscapeXmlText (line 3917) | static std::string EscapeXmlText(const char* str) {
      function FormatTimeInMillisAsSeconds (line 4083) | std::string FormatTimeInMillisAsSeconds(TimeInMillis ms) {
      function PortableLocaltime (line 4089) | static bool PortableLocaltime(time_t seconds, struct tm* out) {
      function FormatEpochTimeInMillisAsIso8601 (line 4110) | std::string FormatEpochTimeInMillisAsIso8601(TimeInMillis ms) {
      class JsonUnitTestResultPrinter (line 4427) | class JsonUnitTestResultPrinter : public EmptyTestEventListener {
      function FormatTimeInMillisAsDuration (line 4551) | static std::string FormatTimeInMillisAsDuration(TimeInMillis ms) {
      function FormatEpochTimeInMillisAsRFC3339 (line 4559) | static std::string FormatEpochTimeInMillisAsRFC3339(TimeInMillis ms) {
      function Indent (line 4572) | static inline std::string Indent(size_t width) {
      function GTEST_LOCK_EXCLUDED_ (line 4942) | GTEST_LOCK_EXCLUDED_(mutex_) {
      function GTEST_LOCK_EXCLUDED_ (line 4991) | GTEST_LOCK_EXCLUDED_(mutex_) {
      class ScopedPrematureExitFile (line 5005) | class ScopedPrematureExitFile {
        method ScopedPrematureExitFile (line 5007) | explicit ScopedPrematureExitFile(const char* premature_exit_filepath)
      class TestSuiteNameIs (line 5671) | class TestSuiteNameIs {
        method TestSuiteNameIs (line 5674) | explicit TestSuiteNameIs(const std::string& name) : name_(name) {}
      function TestSuite (line 5698) | TestSuite* UnitTestImpl::GetTestSuite(
      function SetUpEnvironment (line 5734) | static void SetUpEnvironment(Environment* env) { env->SetUp(); }
      function TearDownEnvironment (line 5735) | static void TearDownEnvironment(Environment* env) { env->TearDown(); }
      function WriteToShardStatusFileIfNeeded (line 5928) | void WriteToShardStatusFileIfNeeded() {
      function ShouldShard (line 5950) | bool ShouldShard(const char* total_shards_env,
      function Int32FromEnvOrDie (line 5995) | int32_t Int32FromEnvOrDie(const char* var, int32_t default_val) {
      function ShouldRunTestOnShard (line 6013) | bool ShouldRunTestOnShard(int total_shards, int shard_index, int tes...
      function PrintOnOneLine (line 6079) | static void PrintOnOneLine(const char* str, int max_length) {
      function OsStackTraceGetterInterface (line 6166) | OsStackTraceGetterInterface* UnitTestImpl::os_stack_trace_getter() {
      function TestResult (line 6179) | TestResult* UnitTestImpl::current_test_result() {
      function GetCurrentOsStackTraceExceptTop (line 6225) | std::string GetCurrentOsStackTraceExceptTop(UnitTest* /*unit_test*/,
      class ClassUniqueToAlwaysTrue (line 6235) | class ClassUniqueToAlwaysTrue {}
      function IsTrue (line 6238) | bool IsTrue(bool condition) { return condition; }
      function AlwaysTrue (line 6240) | bool AlwaysTrue() {
      function SkipPrefix (line 6253) | bool SkipPrefix(const char* prefix, const char** pstr) {
      function ParseBoolFlag (line 6304) | static bool ParseBoolFlag(const char* str, const char* flag, bool* v...
      function ParseInt32Flag (line 6320) | bool ParseInt32Flag(const char* str, const char* flag, int32_t* valu...
      function ParseStringFlag (line 6337) | static bool ParseStringFlag(const char* str, const char* flag, Strin...
      function HasGoogleTestFlagPrefix (line 6355) | static bool HasGoogleTestFlagPrefix(const char* str) {
      function PrintColorEncoded (line 6373) | static void PrintColorEncoded(const char* str) {
      function ParseGoogleTestFlag (line 6499) | static bool ParseGoogleTestFlag(const char* const arg) {
      function LoadFlagsFromFile (line 6531) | static void LoadFlagsFromFile(const std::string& path) {
      function ParseGoogleTestFlagsOnlyImpl (line 6554) | void ParseGoogleTestFlagsOnlyImpl(int* argc, CharType** argv) {
      function ParseGoogleTestFlagsOnly (line 6607) | void ParseGoogleTestFlagsOnly(int* argc, char** argv) {
      function ParseGoogleTestFlagsOnly (line 6621) | void ParseGoogleTestFlagsOnly(int* argc, wchar_t** argv) {
      function InitGoogleTestImpl (line 6630) | void InitGoogleTestImpl(int* argc, CharType** argv) {
    function AssertionResult (line 1645) | AssertionResult FloatLE(const char* expr1, const char* expr2,
    function AssertionResult (line 1652) | AssertionResult DoubleLE(const char* expr1, const char* expr2,
    type internal (line 1657) | namespace internal {
      function FILE (line 181) | static FILE* OpenFileForWriting(const std::string& output_file) {
      function GTestIsInitialized (line 368) | static bool GTestIsInitialized() { return GetArgvs().size() > 0; }
      function SumOverTestSuiteList (line 373) | static int SumOverTestSuiteList(const std::vector<TestSuite*>& case_...
      function TestSuitePassed (line 383) | static bool TestSuitePassed(const TestSuite* test_suite) {
      function TestSuiteFailed (line 388) | static bool TestSuiteFailed(const TestSuite* test_suite) {
      function ShouldRunTestSuite (line 394) | static bool ShouldRunTestSuite(const TestSuite* test_suite) {
      class FailureTest (line 432) | class FailureTest : public Test {
        method FailureTest (line 434) | explicit FailureTest(const CodeLocation& loc, std::string error_me...
        method TestBody (line 440) | void TestBody() override {
      function InsertSyntheticTestCase (line 469) | void InsertSyntheticTestCase(const std::string& name, CodeLocation l...
      function RegisterTypeParameterizedTestSuite (line 512) | void RegisterTypeParameterizedTestSuite(const char* test_suite_name,
      function RegisterTypeParameterizedTestSuiteInstantiation (line 518) | void RegisterTypeParameterizedTestSuiteInstantiation(const char* cas...
      function GetArgvs (line 580) | ::std::vector<std::string> GetArgvs() {
      function FilePath (line 593) | FilePath GetCurrentExecutableName() {
      function PatternMatchesString (line 655) | static bool PatternMatchesString(const std::string& name_str,
      function TypeId (line 847) | TypeId GetTestTypeId() {
      function AssertionResult (line 858) | static AssertionResult HasOneFailure(const char* /* results_expr */,
      function TestPartResultReporterInterface (line 928) | TestPartResultReporterInterface*
      function TestPartResultReporterInterface (line 942) | TestPartResultReporterInterface*
      class Timer (line 1035) | class Timer {
        method Timer (line 1037) | Timer() : start_(std::chrono::steady_clock::now()) {}
        method TimeInMillis (line 1040) | TimeInMillis Elapsed() {
      function TimeInMillis (line 1053) | TimeInMillis GetTimeInMillis() {
      function LPCWSTR (line 1069) | LPCWSTR String::AnsiToUtf16(const char* ansi) {
      function StreamWideCharsToMessage (line 1116) | static void StreamWideCharsToMessage(const wchar_t* wstr, size_t len...
      function SplitString (line 1132) | void SplitString(const ::std::string& str, char delimiter,
      type edit_distance (line 1226) | namespace edit_distance {
        function CalculateOptimalEdits (line 1227) | std::vector<EditType> CalculateOptimalEdits(const std::vector<size...
        class InternalStrings (line 1287) | class InternalStrings {
          method GetId (line 1289) | size_t GetId(const std::string& str) {
        function CalculateOptimalEdits (line 1303) | std::vector<EditType> CalculateOptimalEdits(
        class Hunk (line 1325) | class Hunk {
          method Hunk (line 1327) | Hunk(size_t left_start, size_t right_start)
          method PushLine (line 1334) | void PushLine(char edit, const char* line) {
          method PrintTo (line 1352) | void PrintTo(std::ostream* os) {
          method has_edits (line 1362) | bool has_edits() const { return adds_ || removes_; }
          method FlushEdits (line 1365) | void FlushEdits() {
          method PrintHeader (line 1374) | void PrintHeader(std::ostream* ss) const {
        function CreateUnifiedDiff (line 1402) | std::string CreateUnifiedDiff(const std::vector<std::string>& left,
      function SplitEscapedString (line 1472) | std::vector<std::string> SplitEscapedString(const std::string& str) {
      function AssertionResult (line 1512) | AssertionResult EqFailure(const char* lhs_expression,
      function GetBoolAssertionFailureMessage (line 1547) | std::string GetBoolAssertionFailureMessage(
      function AssertionResult (line 1563) | AssertionResult DoubleNearPredFormat(const char* expr1,
      function AssertionResult (line 1608) | AssertionResult FloatingPointLE(const char* expr1,
      function AssertionResult (line 1660) | AssertionResult CmpHelperSTREQ(const char* lhs_expression,
      function AssertionResult (line 1676) | AssertionResult CmpHelperSTRCASEEQ(const char* lhs_expression,
      function AssertionResult (line 1692) | AssertionResult CmpHelperSTRNE(const char* s1_expression,
      function AssertionResult (line 1706) | AssertionResult CmpHelperSTRCASENE(const char* s1_expression,
      function AssertionResult (line 1834) | AssertionResult HRESULTFailureHelper(const char* expr,
      function AssertionResult (line 1875) | AssertionResult IsHRESULTSuccess(const char* expr, long hr) {  // NO...
      function AssertionResult (line 1882) | AssertionResult IsHRESULTFailure(const char* expr, long hr) {  // NO...
      function ChopLowBits (line 1918) | inline uint32_t ChopLowBits(uint32_t* bits, int n) {
      function CodePointToUtf8 (line 1930) | std::string CodePointToUtf8(uint32_t code_point) {
      function IsUtf16SurrogatePair (line 1965) | inline bool IsUtf16SurrogatePair(wchar_t first, wchar_t second) {
      function CreateCodePointFromUtf16SurrogatePair (line 1971) | inline uint32_t CreateCodePointFromUtf16SurrogatePair(wchar_t first,
      function WideStringToUtf8 (line 1997) | std::string WideStringToUtf8(const wchar_t* str, int num_chars) {
      function AssertionResult (line 2043) | AssertionResult CmpHelperSTREQ(const char* lhs_expression,
      function AssertionResult (line 2059) | AssertionResult CmpHelperSTRNE(const char* s1_expression,
      function StringStreamToString (line 2164) | std::string StringStreamToString(::std::stringstream* ss) {
      function AppendUserMessage (line 2183) | std::string AppendUserMessage(const std::string& gtest_msg,
      function ReportFailureInUnknownLocation (line 2455) | void ReportFailureInUnknownLocation(TestPartResult::Type result_type,
      function FormatCxxExceptionMessage (line 2557) | static std::string FormatCxxExceptionMessage(const char* description,
      function Result (line 2588) | Result HandleSehExceptionsInMethodIfSupported(
      function Result (line 2615) | Result HandleExceptionsInMethodIfSupported(
      function TestInfo (line 2756) | TestInfo* MakeAndRegisterTestInfo(
      function ReportInvalidTestSuiteType (line 2768) | void ReportInvalidTestSuiteType(const char* test_suite_name,
      type GTestColor (line 3134) | enum class GTestColor { kDefault, kRed, kGreen, kYellow }
      function PrintTestPartResultToString (line 3138) | static std::string PrintTestPartResultToString(
      function PrintTestPartResult (line 3148) | static void PrintTestPartResult(const TestPartResult& test_part_resu...
      function WORD (line 3171) | static WORD GetColorAttribute(GTestColor color) {
      function GetBitOffset (line 3183) | static int GetBitOffset(WORD color_mask) {
      function WORD (line 3194) | static WORD GetNewColor(GTestColor color, WORD old_color_attrs) {
      function ShouldUseColor (line 3234) | bool ShouldUseColor(bool stdout_is_tty) {
      function ColoredPrintf (line 3276) | static void ColoredPrintf(GTestColor color, const char *fmt, ...) {
      function PrintFullTestCommentIfPresent (line 3329) | static void PrintFullTestCommentIfPresent(const TestInfo& test_info) {
      class PrettyUnitTestResultPrinter (line 3348) | class PrettyUnitTestResultPrinter : public TestEventListener {
        method PrettyUnitTestResultPrinter (line 3350) | PrettyUnitTestResultPrinter() {}
        method PrintTestName (line 3351) | static void PrintTestName(const char* test_suite, const char* test) {
        method OnTestProgramStart (line 3356) | void OnTestProgramStart(const UnitTest& /*unit_test*/) override {}
        method OnEnvironmentsSetUpEnd (line 3359) | void OnEnvironmentsSetUpEnd(const UnitTest& /*unit_test*/) overrid...
        method OnEnvironmentsTearDownEnd (line 3377) | void OnEnvironmentsTearDownEnd(const UnitTest& /*unit_test*/) over...
        method OnTestProgramEnd (line 3379) | void OnTestProgramEnd(const UnitTest& /*unit_test*/) override {}
      class BriefUnitTestResultPrinter (line 3647) | class BriefUnitTestResultPrinter : public TestEventListener {
        method BriefUnitTestResultPrinter (line 3649) | BriefUnitTestResultPrinter() {}
        method PrintTestName (line 3650) | static void PrintTestName(const char* test_suite, const char* test) {
        method OnTestProgramStart (line 3655) | void OnTestProgramStart(const UnitTest& /*unit_test*/) override {}
        method OnTestIterationStart (line 3656) | void OnTestIterationStart(const UnitTest& /*unit_test*/,
        method OnEnvironmentsSetUpStart (line 3658) | void OnEnvironmentsSetUpStart(const UnitTest& /*unit_test*/) overr...
        method OnEnvironmentsSetUpEnd (line 3659) | void OnEnvironmentsSetUpEnd(const UnitTest& /*unit_test*/) overrid...
        method OnTestCaseStart (line 3661) | void OnTestCaseStart(const TestCase& /*test_case*/) override {}
        method OnTestSuiteStart (line 3663) | void OnTestSuiteStart(const TestSuite& /*test_suite*/) override {}
        method OnTestStart (line 3666) | void OnTestStart(const TestInfo& /*test_info*/) override {}
        method OnTestCaseEnd (line 3671) | void OnTestCaseEnd(const TestCase& /*test_case*/) override {}
        method OnTestSuiteEnd (line 3673) | void OnTestSuiteEnd(const TestSuite& /*test_suite*/) override {}
        method OnEnvironmentsTearDownStart (line 3676) | void OnEnvironmentsTearDownStart(const UnitTest& /*unit_test*/) ov...
        method OnEnvironmentsTearDownEnd (line 3677) | void OnEnvironmentsTearDownEnd(const UnitTest& /*unit_test*/) over...
        method OnTestProgramEnd (line 3679) | void OnTestProgramEnd(const UnitTest& /*unit_test*/) override {}
      class TestEventRepeater (line 3751) | class TestEventRepeater : public TestEventListener {
        method TestEventRepeater (line 3753) | TestEventRepeater() : forwarding_enabled_(true) {}
        method forwarding_enabled (line 3760) | bool forwarding_enabled() const { return forwarding_enabled_; }
        method set_forwarding_enabled (line 3761) | void set_forwarding_enabled(bool enable) { forwarding_enabled_ = e...
      function TestEventListener (line 3803) | TestEventListener* TestEventRepeater::Release(TestEventListener *lis...
      class XmlUnitTestResultPrinter (line 3879) | class XmlUnitTestResultPrinter : public EmptyTestEventListener {
        method IsNormalizableWhitespace (line 3893) | static bool IsNormalizableWhitespace(char c) {
        method IsValidXmlCharacter (line 3898) | static bool IsValidXmlCharacter(char c) {
        method EscapeXmlAttribute (line 3912) | static std::string EscapeXmlAttribute(const std::string& str) {
        method EscapeXmlText (line 3917) | static std::string EscapeXmlText(const char* str) {
      function FormatTimeInMillisAsSeconds (line 4083) | std::string FormatTimeInMillisAsSeconds(TimeInMillis ms) {
      function PortableLocaltime (line 4089) | static bool PortableLocaltime(time_t seconds, struct tm* out) {
      function FormatEpochTimeInMillisAsIso8601 (line 4110) | std::string FormatEpochTimeInMillisAsIso8601(TimeInMillis ms) {
      class JsonUnitTestResultPrinter (line 4427) | class JsonUnitTestResultPrinter : public EmptyTestEventListener {
      function FormatTimeInMillisAsDuration (line 4551) | static std::string FormatTimeInMillisAsDuration(TimeInMillis ms) {
      function FormatEpochTimeInMillisAsRFC3339 (line 4559) | static std::string FormatEpochTimeInMillisAsRFC3339(TimeInMillis ms) {
      function Indent (line 4572) | static inline std::string Indent(size_t width) {
      function GTEST_LOCK_EXCLUDED_ (line 4942) | GTEST_LOCK_EXCLUDED_(mutex_) {
      function GTEST_LOCK_EXCLUDED_ (line 4991) | GTEST_LOCK_EXCLUDED_(mutex_) {
      class ScopedPrematureExitFile (line 5005) | class ScopedPrematureExitFile {
        method ScopedPrematureExitFile (line 5007) | explicit ScopedPrematureExitFile(const char* premature_exit_filepath)
      class TestSuiteNameIs (line 5671) | class TestSuiteNameIs {
        method TestSuiteNameIs (line 5674) | explicit TestSuiteNameIs(const std::string& name) : name_(name) {}
      function TestSuite (line 5698) | TestSuite* UnitTestImpl::GetTestSuite(
      function SetUpEnvironment (line 5734) | static void SetUpEnvironment(Environment* env) { env->SetUp(); }
      function TearDownEnvironment (line 5735) | static void TearDownEnvironment(Environment* env) { env->TearDown(); }
      function WriteToShardStatusFileIfNeeded (line 5928) | void WriteToShardStatusFileIfNeeded() {
      function ShouldShard (line 5950) | bool ShouldShard(const char* total_shards_env,
      function Int32FromEnvOrDie (line 5995) | int32_t Int32FromEnvOrDie(const char* var, int32_t default_val) {
      function ShouldRunTestOnShard (line 6013) | bool ShouldRunTestOnShard(int total_shards, int shard_index, int tes...
      function PrintOnOneLine (line 6079) | static void PrintOnOneLine(const char* str, int max_length) {
      function OsStackTraceGetterInterface (line 6166) | OsStackTraceGetterInterface* UnitTestImpl::os_stack_trace_getter() {
      function TestResult (line 6179) | TestResult* UnitTestImpl::current_test_result() {
      function GetCurrentOsStackTraceExceptTop (line 6225) | std::string GetCurrentOsStackTraceExceptTop(UnitTest* /*unit_test*/,
      class ClassUniqueToAlwaysTrue (line 6235) | class ClassUniqueToAlwaysTrue {}
      function IsTrue (line 6238) | bool IsTrue(bool condition) { return condition; }
      function AlwaysTrue (line 6240) | bool AlwaysTrue() {
      function SkipPrefix (line 6253) | bool SkipPrefix(const char* prefix, const char** pstr) {
      function ParseBoolFlag (line 6304) | static bool ParseBoolFlag(const char* str, const char* flag, bool* v...
      function ParseInt32Flag (line 6320) | bool ParseInt32Flag(const char* str, const char* flag, int32_t* valu...
      function ParseStringFlag (line 6337) | static bool ParseStringFlag(const char* str, const char* flag, Strin...
      function HasGoogleTestFlagPrefix (line 6355) | static bool HasGoogleTestFlagPrefix(const char* str) {
      function PrintColorEncoded (line 6373) | static void PrintColorEncoded(const char* str) {
      function ParseGoogleTestFlag (line 6499) | static bool ParseGoogleTestFlag(const char* const arg) {
      function LoadFlagsFromFile (line 6531) | static void LoadFlagsFromFile(const std::string& path) {
      function ParseGoogleTestFlagsOnlyImpl (line 6554) | void ParseGoogleTestFlagsOnlyImpl(int* argc, CharType** argv) {
      function ParseGoogleTestFlagsOnly (line 6607) | void ParseGoogleTestFlagsOnly(int* argc, char** argv) {
      function ParseGoogleTestFlagsOnly (line 6621) | void ParseGoogleTestFlagsOnly(int* argc, wchar_t** argv) {
      function InitGoogleTestImpl (line 6630) | void InitGoogleTestImpl(int* argc, CharType** argv) {
    function IsSubstringPred (line 1730) | bool IsSubstringPred(const char* needle, const char* haystack) {
    function IsSubstringPred (line 1736) | bool IsSubstringPred(const wchar_t* needle, const wchar_t* haystack) {
    function IsSubstringPred (line 1744) | bool IsSubstringPred(const StringType& needle,
    function AssertionResult (line 1754) | AssertionResult IsSubstringImpl(
    function AssertionResult (line 1777) | AssertionResult IsSubstring(
    function AssertionResult (line 1783) | AssertionResult IsSubstring(
    function AssertionResult (line 1789) | AssertionResult IsNotSubstring(
    function AssertionResult (line 1795) | AssertionResult IsNotSubstring(
    function AssertionResult (line 1801) | AssertionResult IsSubstring(
    function AssertionResult (line 1807) | AssertionResult IsNotSubstring(
    function AssertionResult (line 1814) | AssertionResult IsSubstring(
    function AssertionResult (line 1820) | AssertionResult IsNotSubstring(
    type internal (line 1827) | namespace internal {
      function FILE (line 181) | static FILE* OpenFileForWriting(const std::string& output_file) {
      function GTestIsInitialized (line 368) | static bool GTestIsInitialized() { return GetArgvs().size() > 0; }
      function SumOverTestSuiteList (line 373) | static int SumOverTestSuiteList(const std::vector<TestSuite*>& case_...
      function TestSuitePassed (line 383) | static bool TestSuitePassed(const TestSuite* test_suite) {
      function TestSuiteFailed (line 388) | static bool TestSuiteFailed(const TestSuite* test_suite) {
      function ShouldRunTestSuite (line 394) | static bool ShouldRunTestSuite(const TestSuite* test_suite) {
      class FailureTest (line 432) | class FailureTest : public Test {
        method FailureTest (line 434) | explicit FailureTest(const CodeLocation& loc, std::string error_me...
        method TestBody (line 440) | void TestBody() override {
      function InsertSyntheticTestCase (line 469) | void InsertSyntheticTestCase(const std::string& name, CodeLocation l...
      function RegisterTypeParameterizedTestSuite (line 512) | void RegisterTypeParameterizedTestSuite(const char* test_suite_name,
      function RegisterTypeParameterizedTestSuiteInstantiation (line 518) | void RegisterTypeParameterizedTestSuiteInstantiation(const char* cas...
      function GetArgvs (line 580) | ::std::vector<std::string> GetArgvs() {
      function FilePath (line 593) | FilePath GetCurrentExecutableName() {
      function PatternMatchesString (line 655) | static bool PatternMatchesString(const std::string& name_str,
      function TypeId (line 847) | TypeId GetTestTypeId() {
      function AssertionResult (line 858) | static AssertionResult HasOneFailure(const char* /* results_expr */,
      function TestPartResultReporterInterface (line 928) | TestPartResultReporterInterface*
      function TestPartResultReporterInterface (line 942) | TestPartResultReporterInterface*
      class Timer (line 1035) | class Timer {
        method Timer (line 1037) | Timer() : start_(std::chrono::steady_clock::now()) {}
        method TimeInMillis (line 1040) | TimeInMillis Elapsed() {
      function TimeInMillis (line 1053) | TimeInMillis GetTimeInMillis() {
      function LPCWSTR (line 1069) | LPCWSTR String::AnsiToUtf16(const char* ansi) {
      function StreamWideCharsToMessage (line 1116) | static void StreamWideCharsToMessage(const wchar_t* wstr, size_t len...
      function SplitString (line 1132) | void SplitString(const ::std::string& str, char delimiter,
      type edit_distance (line 1226) | namespace edit_distance {
        function CalculateOptimalEdits (line 1227) | std::vector<EditType> CalculateOptimalEdits(const std::vector<size...
        class InternalStrings (line 1287) | class InternalStrings {
          method GetId (line 1289) | size_t GetId(const std::string& str) {
        function CalculateOptimalEdits (line 1303) | std::vector<EditType> CalculateOptimalEdits(
        class Hunk (line 1325) | class Hunk {
          method Hunk (line 1327) | Hunk(size_t left_start, size_t right_start)
          method PushLine (line 1334) | void PushLine(char edit, const char* line) {
          method PrintTo (line 1352) | void PrintTo(std::ostream* os) {
          method has_edits (line 1362) | bool has_edits() const { return adds_ || removes_; }
          method FlushEdits (line 1365) | void FlushEdits() {
          method PrintHeader (line 1374) | void PrintHeader(std::ostream* ss) const {
        function CreateUnifiedDiff (line 1402) | std::string CreateUnifiedDiff(const std::vector<std::string>& left,
      function SplitEscapedString (line 1472) | std::vector<std::string> SplitEscapedString(const std::string& str) {
      function AssertionResult (line 1512) | AssertionResult EqFailure(const char* lhs_expression,
      function GetBoolAssertionFailureMessage (line 1547) | std::string GetBoolAssertionFailureMessage(
      function AssertionResult (line 1563) | AssertionResult DoubleNearPredFormat(const char* expr1,
      function AssertionResult (line 1608) | AssertionResult FloatingPointLE(const char* expr1,
      function AssertionResult (line 1660) | AssertionResult CmpHelperSTREQ(const char* lhs_expression,
      function AssertionResult (line 1676) | AssertionResult CmpHelperSTRCASEEQ(const char* lhs_expression,
      function AssertionResult (line 1692) | AssertionResult CmpHelperSTRNE(const char* s1_expression,
      function AssertionResult (line 1706) | AssertionResult CmpHelperSTRCASENE(const char* s1_expression,
      function AssertionResult (line 1834) | AssertionResult HRESULTFailureHelper(const char* expr,
      function AssertionResult (line 1875) | AssertionResult IsHRESULTSuccess(const char* expr, long hr) {  // NO...
      function AssertionResult (line 1882) | AssertionResult IsHRESULTFailure(const char* expr, long hr) {  // NO...
      function ChopLowBits (line 1918) | inline uint32_t ChopLowBits(uint32_t* bits, int n) {
      function CodePointToUtf8 (line 1930) | std::string CodePointToUtf8(uint32_t code_point) {
      function IsUtf16SurrogatePair (line 1965) | inline bool IsUtf16SurrogatePair(wchar_t first, wchar_t second) {
      function CreateCodePointFromUtf16SurrogatePair (line 1971) | inline uint32_t CreateCodePointFromUtf16SurrogatePair(wchar_t first,
      function WideStringToUtf8 (line 1997) | std::string WideStringToUtf8(const wchar_t* str, int num_chars) {
      function AssertionResult (line 2043) | AssertionResult CmpHelperSTREQ(const char* lhs_expression,
      function AssertionResult (line 2059) | AssertionResult CmpHelperSTRNE(const char* s1_expression,
      function StringStreamToString (line 2164) | std::string StringStreamToString(::std::stringstream* ss) {
      function AppendUserMessage (line 2183) | std::string AppendUserMessage(const std::string& gtest_msg,
      function ReportFailureInUnknownLocation (line 2455) | void ReportFailureInUnknownLocation(TestPartResult::Type result_type,
      function FormatCxxExceptionMessage (line 2557) | static std::string FormatCxxExceptionMessage(const char* description,
      function Result (line 2588) | Result HandleSehExceptionsInMethodIfSupported(
      function Result (line 2615) | Result HandleExceptionsInMethodIfSupported(
      function TestInfo (line 2756) | TestInfo* MakeAndRegisterTestInfo(
      function ReportInvalidTestSuiteType (line 2768) | void ReportInvalidTestSuiteType(const char* test_suite_name,
      type GTestColor (line 3134) | enum class GTestColor { kDefault, kRed, kGreen, kYellow }
      function PrintTestPartResultToString (line 3138) | static std::string PrintTestPartResultToString(
      function PrintTestPartResult (line 3148) | static void PrintTestPartResult(const TestPartResult& test_part_resu...
      function WORD (line 3171) | static WORD GetColorAttribute(GTestColor color) {
      function GetBitOffset (line 3183) | static int GetBitOffset(WORD color_mask) {
      function WORD (line 3194) | static WORD GetNewColor(GTestColor color, WORD old_color_attrs) {
      function ShouldUseColor (line 3234) | bool ShouldUseColor(bool stdout_is_tty) {
      function ColoredPrintf (line 3276) | static void ColoredPrintf(GTestColor color, const char *fmt, ...) {
      function PrintFullTestCommentIfPresent (line 3329) | static void PrintFullTestCommentIfPresent(const TestInfo& test_info) {
      class PrettyUnitTestResultPrinter (line 3348) | class PrettyUnitTestResultPrinter : public TestEventListener {
        method PrettyUnitTestResultPrinter (line 3350) | PrettyUnitTestResultPrinter() {}
        method PrintTestName (line 3351) | static void PrintTestName(const char* test_suite, const char* test) {
        method OnTestProgramStart (line 3356) | void OnTestProgramStart(const UnitTest& /*unit_test*/) override {}
        method OnEnvironmentsSetUpEnd (line 3359) | void OnEnvironmentsSetUpEnd(const UnitTest& /*unit_test*/) overrid...
        method OnEnvironmentsTearDownEnd (line 3377) | void OnEnvironmentsTearDownEnd(const UnitTest& /*unit_test*/) over...
        method OnTestProgramEnd (line 3379) | void OnTestProgramEnd(const UnitTest& /*unit_test*/) override {}
      class BriefUnitTestResultPrinter (line 3647) | class BriefUnitTestResultPrinter : public TestEventListener {
        method BriefUnitTestResultPrinter (line 3649) | BriefUnitTestResultPrinter() {}
        method PrintTestName (line 3650) | static void PrintTestName(const char* test_suite, const char* test) {
        method OnTestProgramStart (line 3655) | void OnTestProgramStart(const UnitTest& /*unit_test*/) override {}
        method OnTestIterationStart (line 3656) | void OnTestIterationStart(const UnitTest& /*unit_test*/,
        method OnEnvironmentsSetUpStart (line 3658) | void OnEnvironmentsSetUpStart(const UnitTest& /*unit_test*/) overr...
        method OnEnvironmentsSetUpEnd (line 3659) | void OnEnvironmentsSetUpEnd(const UnitTest& /*unit_test*/) overrid...
        method OnTestCaseStart (line 3661) | void OnTestCaseStart(const TestCase& /*test_case*/) override {}
        method OnTestSuiteStart (line 3663) | void OnTestSuiteStart(const TestSuite& /*test_suite*/) override {}
        method OnTestStart (line 3666) | void OnTestStart(const TestInfo& /*test_info*/) override {}
        method OnTestCaseEnd (line 3671) | void OnTestCaseEnd(const TestCase& /*test_case*/) override {}
        method OnTestSuiteEnd (line 3673) | void OnTestSuiteEnd(const TestSuite& /*test_suite*/) override {}
        method OnEnvironmentsTearDownStart (line 3676) | void OnEnvironmentsTearDownStart(const UnitTest& /*unit_test*/) ov...
        method OnEnvironmentsTearDownEnd (line 3677) | void OnEnvironmentsTearDownEnd(const UnitTest& /*unit_test*/) over...
        method OnTestProgramEnd (line 3679) | void OnTestProgramEnd(const UnitTest& /*unit_test*/) override {}
      class TestEventRepeater (line 3751) | class TestEventRepeater : public TestEventListener {
        method TestEventRepeater (line 3753) | TestEventRepeater() : forwarding_enabled_(true) {}
        method forwarding_enabled (line 3760) | bool forwarding_enabled() const { return forwarding_enabled_; }
        method set_forwarding_enabled (line 3761) | void set_forwarding_enabled(bool enable) { forwarding_enabled_ = e...
      function TestEventListener (line 3803) | TestEventListener* TestEventRepeater::Release(TestEventListener *lis...
      class XmlUnitTestResultPrinter (line 3879) | class XmlUnitTestResultPrinter : public EmptyTestEventListener {
        method IsNormalizableWhitespace (line 3893) | static bool IsNormalizableWhitespace(char c) {
        method IsValidXmlCharacter (line 3898) | static bool IsValidXmlCharacter(char c) {
        method EscapeXmlAttribute (line 3912) | static std::string EscapeXmlAttribute(const std::string& str) {
        method EscapeXmlText (line 3917) | static std::string EscapeXmlText(const char* str) {
      function FormatTimeInMillisAsSeconds (line 4083) | std::string FormatTimeInMillisAsSeconds(TimeInMillis ms) {
      function PortableLocaltime (line 4089) | static bool PortableLocaltime(time_t seconds, struct tm* out) {
      function FormatEpochTimeInMillisAsIso8601 (line 4110) | std::string FormatEpochTimeInMillisAsIso8601(TimeInMillis ms) {
      class JsonUnitTestResultPrinter (line 4427) | class JsonUnitTestResultPrinter : public EmptyTestEventListener {
      function FormatTimeInMillisAsDuration (line 4551) | static std::string FormatTimeInMillisAsDuration(TimeInMillis ms) {
      function FormatEpochTimeInMillisAsRFC3339 (line 4559) | static std::string FormatEpochTimeInMillisAsRFC3339(TimeInMillis ms) {
      function Indent (line 4572) | static inline std::string Indent(size_t width) {
      function GTEST_LOCK_EXCLUDED_ (line 4942) | GTEST_LOCK_EXCLUDED_(mutex_) {
      function GTEST_LOCK_EXCLUDED_ (line 4991) | GTEST_LOCK_EXCLUDED_(mutex_) {
      class ScopedPrematureExitFile (line 5005) | class ScopedPrematureExitFile {
        method ScopedPrematureExitFile (line 5007) | explicit ScopedPrematureExitFile(const char* premature_exit_filepath)
      class TestSuiteNameIs (line 5671) | class TestSuiteNameIs {
        method TestSuiteNameIs (line 5674) | explicit TestSuiteNameIs(const std::string& name) : name_(name) {}
      function TestSuite (line 5698) | TestSuite* UnitTestImpl::GetTestSuite(
      function SetUpEnvironment (line 5734) | static void SetUpEnvironment(Environment* env) { env->SetUp(); }
      function TearDownEnvironment (line 5735) | static void TearDownEnvironment(Environment* env) { env->TearDown(); }
      function WriteToShardStatusFileIfNeeded (line 5928) | void WriteToShardStatusFileIfNeeded() {
      function ShouldShard (line 5950) | bool ShouldShard(const char* total_shards_env,
      function Int32FromEnvOrDie (line 5995) | int32_t Int32FromEnvOrDie(const char* var, int32_t default_val) {
      function ShouldRunTestOnShard (line 6013) | bool ShouldRunTestOnShard(int total_shards, int shard_index, int tes...
      function PrintOnOneLine (line 6079) | static void PrintOnOneLine(const char* str, int max_length) {
      function OsStackTraceGetterInterface (line 6166) | OsStackTraceGetterInterface* UnitTestImpl::os_stack_trace_getter() {
      function TestResult (line 6179) | TestResult* UnitTestImpl::current_test_result() {
      function GetCurrentOsStackTraceExceptTop (line 6225) | std::string GetCurrentOsStackTraceExceptTop(UnitTest* /*unit_test*/,
      class ClassUniqueToAlwaysTrue (line 6235) | class ClassUniqueToAlwaysTrue {}
      function IsTrue (line 6238) | bool IsTrue(bool condition) { return condition; }
      function AlwaysTrue (line 6240) | bool AlwaysTrue() {
      function SkipPrefix (line 6253) | bool SkipPrefix(const char* prefix, const char** pstr) {
      function ParseBoolFlag (line 6304) | static bool ParseBoolFlag(const char* str, const char* flag, bool* v...
      function ParseInt32Flag (line 6320) | bool ParseInt32Flag(const char* str, const char* flag, int32_t* valu...
      function ParseStringFlag (line 6337) | static bool ParseStringFlag(const char* str, const char* flag, Strin...
      function HasGoogleTestFlagPrefix (line 6355) | static bool HasGoogleTestFlagPrefix(const char* str) {
      function PrintColorEncoded (line 6373) | static void PrintColorEncoded(const char* str) {
      function ParseGoogleTestFlag (line 6499) | static bool ParseGoogleTestFlag(const char* const arg) {
      function LoadFlagsFromFile (line 6531) | static void LoadFlagsFromFile(const std::string& path) {
      function ParseGoogleTestFlagsOnlyImpl (line 6554) | void ParseGoogleTestFlagsOnlyImpl(int* argc, CharType** argv) {
      function ParseGoogleTestFlagsOnly (line 6607) | void ParseGoogleTestFlagsOnly(int* argc, char** argv) {
      function ParseGoogleTestFlagsOnly (line 6621) | void ParseGoogleTestFlagsOnly(int* argc, wchar_t** argv) {
      function InitGoogleTestImpl (line 6630) | void InitGoogleTestImpl(int* argc, CharType** argv) {
    function TestPartResult (line 2211) | const TestPartResult& TestResult::GetTestPartResult(int i) const {
    function TestProperty (line 2220) | const TestProperty& TestResult::GetTestProperty(int i) const {
    function ArrayAsVector (line 2286) | std::vector<std::string> ArrayAsVector(const char* const (&array)[kSiz...
    function GetReservedAttributesForElement (line 2290) | static std::vector<std::string> GetReservedAttributesForElement(
    function GetReservedOutputAttributesForElement (line 2306) | static std::vector<std::string> GetReservedOutputAttributesForElement(
    function FormatWordList (line 2321) | static std::string FormatWordList(const std::vector<std::string>& word...
    function ValidateTestPropertyName (line 2335) | static bool ValidateTestPropertyName(
    function TestPartSkipped (line 2365) | static bool TestPartSkipped(const TestPartResult& result) {
    function TestPartFatallyFailed (line 2384) | static bool TestPartFatallyFailed(const TestPartResult& result) {
    function TestPartNonfatallyFailed (line 2394) | static bool TestPartNonfatallyFailed(const TestPartResult& result) {
    type internal (line 2453) | namespace internal {
      function FILE (line 181) | static FILE* OpenFileForWriting(const std::string& output_file) {
      function GTestIsInitialized (line 368) | static bool GTestIsInitialized() { return GetArgvs().size() > 0; }
      function SumOverTestSuiteList (line 373) | static int SumOverTestSuiteList(const std::vector<TestSuite*>& case_...
      function TestSuitePassed (line 383) | static bool TestSuitePassed(const TestSuite* test_suite) {
      function TestSuiteFailed (line 388) | static bool TestSuiteFailed(const TestSuite* test_suite) {
      function ShouldRunTestSuite (line 394) | static bool ShouldRunTestSuite(const TestSuite* test_suite) {
      class FailureTest (line 432) | class FailureTest : public Test {
        method FailureTest (line 434) | explicit FailureTest(const CodeLocation& loc, std::string error_me...
        method TestBody (line 440) | void TestBody() override {
      function InsertSyntheticTestCase (line 469) | void InsertSyntheticTestCase(const std::string& name, CodeLocation l...
      function RegisterTypeParameterizedTestSuite (line 512) | void RegisterTypeParameterizedTestSuite(const char* test_suite_name,
      function RegisterTypeParameterizedTestSuiteInstantiation (line 518) | void RegisterTypeParameterizedTestSuiteInstantiation(const char* cas...
      function GetArgvs (line 580) | ::std::vector<std::string> GetArgvs() {
      function FilePath (line 593) | FilePath GetCurrentExecutableName() {
      function PatternMatchesString (line 655) | static bool PatternMatchesString(const std::string& name_str,
      function TypeId (line 847) | TypeId GetTestTypeId() {
      function AssertionResult (line 858) | static AssertionResult HasOneFailure(const char* /* results_expr */,
      function TestPartResultReporterInterface (line 928) | TestPartResultReporterInterface*
      function TestPartResultReporterInterface (line 942) | TestPartResultReporterInterface*
      class Timer (line 1035) | class Timer {
        method Timer (line 1037) | Timer() : start_(std::chrono::steady_clock::now()) {}
        method TimeInMillis (line 1040) | TimeInMillis Elapsed() {
      function TimeInMillis (line 1053) | TimeInMillis GetTimeInMillis() {
      function LPCWSTR (line 1069) | LPCWSTR String::AnsiToUtf16(const char* ansi) {
      function StreamWideCharsToMessage (line 1116) | static void StreamWideCharsToMessage(const wchar_t* wstr, size_t len...
      function SplitString (line 1132) | void SplitString(const ::std::string& str, char delimiter,
      type edit_distance (line 1226) | namespace edit_distance {
        function CalculateOptimalEdits (line 1227) | std::vector<EditType> CalculateOptimalEdits(const std::vector<size...
        class InternalStrings (line 1287) | class InternalStrings {
          method GetId (line 1289) | size_t GetId(const std::string& str) {
        function CalculateOptimalEdits (line 1303) | std::vector<EditType> CalculateOptimalEdits(
        class Hunk (line 1325) | class Hunk {
          method Hunk (line 1327) | Hunk(size_t left_start, size_t right_start)
          method PushLine (line 1334) | void PushLine(char edit, const char* line) {
          method PrintTo (line 1352) | void PrintTo(std::ostream* os) {
          method has_edits (line 1362) | bool has_edits() const { return adds_ || removes_; }
          method FlushEdits (line 1365) | void FlushEdits() {
          method PrintHeader (line 1374) | void PrintHeader(std::ostream* ss) const {
        function CreateUnifiedDiff (line 1402) | std::string CreateUnifiedDiff(const std::vector<std::string>& left,
      function SplitEscapedString (line 1472) | std::vector<std::string> SplitEscapedString(const std::string& str) {
      function AssertionResult (line 1512) | AssertionResult EqFailure(const char* lhs_expression,
      function GetBoolAssertionFailureMessage (line 1547) | std::string GetBoolAssertionFailureMessage(
      function AssertionResult (line 1563) | AssertionResult DoubleNearPredFormat(const char* expr1,
      function AssertionResult (line 1608) | AssertionResult FloatingPointLE(const char* expr1,
      function AssertionResult (line 1660) | AssertionResult CmpHelperSTREQ(const char* lhs_expression,
      function AssertionResult (line 1676) | AssertionResult CmpHelperSTRCASEEQ(const char* lhs_expression,
      function AssertionResult (line 1692) | AssertionResult CmpHelperSTRNE(const char* s1_expression,
      function AssertionResult (line 1706) | AssertionResult CmpHelperSTRCASENE(const char* s1_expression,
      function AssertionResult (line 1834) | AssertionResult HRESULTFailureHelper(const char* expr,
      function AssertionResult (line 1875) | AssertionResult IsHRESULTSuccess(const char* expr, long hr) {  // NO...
      function AssertionResult (line 1882) | AssertionResult IsHRESULTFailure(const char* expr, long hr) {  // NO...
      function ChopLowBits (line 1918) | inline uint32_t ChopLowBits(uint32_t* bits, int n) {
      function CodePointToUtf8 (line 1930) | std::string CodePointToUtf8(uint32_t code_point) {
      function IsUtf16SurrogatePair (line 1965) | inline bool IsUtf16SurrogatePair(wchar_t first, wchar_t second) {
      function CreateCodePointFromUtf16SurrogatePair (line 1971) | inline uint32_t CreateCodePointFromUtf16SurrogatePair(wchar_t first,
      function WideStringToUtf8 (line 1997) | std::string WideStringToUtf8(const wchar_t* str, int num_chars) {
      function AssertionResult (line 2043) | AssertionResult CmpHelperSTREQ(const char* lhs_expression,
      function AssertionResult (line 2059) | AssertionResult CmpHelperSTRNE(const char* s1_expression,
      function StringStreamToString (line 2164) | std::string StringStreamToString(::std::stringstream* ss) {
      function AppendUserMessage (line 2183) | std::string AppendUserMessage(const std::string& gtest_msg,
      function ReportFailureInUnknownLocation (line 2455) | void ReportFailureInUnknownLocation(TestPartResult::Type result_type,
      function FormatCxxExceptionMessage (line 2557) | static std::string FormatCxxExceptionMessage(const char* description,
      function Result (line 2588) | Result HandleSehExceptionsInMethodIfSupported(
      function Result (line 2615) | Result HandleExceptionsInMethodIfSupported(
      function TestInfo (line 2756) | TestInfo* MakeAndRegisterTestInfo(
      function ReportInvalidTestSuiteType (line 2768) | void ReportInvalidTestSuiteType(const char* test_suite_name,
      type GTestColor (line 3134) | enum class GTestColor { kDefault, kRed, kGreen, kYellow }
      function PrintTestPartResultToString (line 3138) | static std::string PrintTestPartResultToString(
      function PrintTestPartResult (line 3148) | static void PrintTestPartResult(const TestPartResult& test_part_resu...
      function WORD (line 3171) | static WORD GetColorAttribute(GTestColor color) {
      function GetBitOffset (line 3183) | static int GetBitOffset(WORD color_mask) {
      function WORD (line 3194) | static WORD GetNewColor(GTestColor color, WORD old_color_attrs) {
      function ShouldUseColor (line 3234) | bool ShouldUseColor(bool stdout_is_tty) {
      function ColoredPrintf (line 3276) | static void ColoredPrintf(GTestColor color, const char *fmt, ...) {
      function PrintFullTestCommentIfPresent (line 3329) | static void PrintFullTestCommentIfPresent(const TestInfo& test_info) {
      class PrettyUnitTestResultPrinter (line 3348) | class PrettyUnitTestResultPrinter : public TestEventListener {
        method PrettyUnitTestResultPrinter (line 3350) | PrettyUnitTestResultPrinter() {}
        method PrintTestName (line 3351) | static void PrintTestName(const char* test_suite, const char* test) {
        method OnTestProgramStart (line 3356) | void OnTestProgramStart(const UnitTest& /*unit_test*/) override {}
        method OnEnvironmentsSetUpEnd (line 3359) | void OnEnvironmentsSetUpEnd(const UnitTest& /*unit_test*/) overrid...
        method OnEnvironmentsTearDownEnd (line 3377) | void OnEnvironmentsTearDownEnd(const UnitTest& /*unit_test*/) over...
        method OnTestProgramEnd (line 3379) | void OnTestProgramEnd(const UnitTest& /*unit_test*/) override {}
      class BriefUnitTestResultPrinter (line 3647) | class BriefUnitTestResultPrinter : public TestEventListener {
        method BriefUnitTestResultPrinter (line 3649) | BriefUnitTestResultPrinter() {}
        method PrintTestName (line 3650) | static void PrintTestName(const char* test_suite, const char* test) {
        method OnTestProgramStart (line 3655) | void OnTestProgramStart(const UnitTest& /*unit_test*/) override {}
        method OnTestIterationStart (line 3656) | void OnTestIterationStart(const UnitTest& /*unit_test*/,
        method OnEnvironmentsSetUpStart (line 3658) | void OnEnvironmentsSetUpStart(const UnitTest& /*unit_test*/) overr...
        method OnEnvironmentsSetUpEnd (line 3659) | void OnEnvironmentsSetUpEnd(const UnitTest& /*unit_test*/) overrid...
        method OnTestCaseStart (line 3661) | void OnTestCaseStart(const TestCase& /*test_case*/) override {}
        method OnTestSuiteStart (line 3663) | void OnTestSuiteStart(const TestSuite& /*test_suite*/) override {}
        method OnTestStart (line 3666) | void OnTestStart(const TestInfo& /*test_info*/) override {}
        method OnTestCaseEnd (line 3671) | void OnTestCaseEnd(const TestCase& /*test_case*/) override {}
        method OnTestSuiteEnd (line 3673) | void OnTestSuiteEnd(const TestSuite& /*test_suite*/) override {}
        method OnEnvironmentsTearDownStart (line 3676) | void OnEnvironmentsTearDownStart(const UnitTest& /*unit_test*/) ov...
        method OnEnvironmentsTearDownEnd (line 3677) | void OnEnvironmentsTearDownEnd(const UnitTest& /*unit_test*/) over...
        method OnTestProgramEnd (line 3679) | void OnTestProgramEnd(const UnitTest& /*unit_test*/) override {}
      class TestEventRepeater (line 3751) | class TestEventRepeater : public TestEventListener {
        method TestEventRepeater (line 3753) | TestEventRepeater() : forwarding_enabled_(true) {}
        method forwarding_enabled (line 3760) | bool forwarding_enabled() const { return forwarding_enabled_; }
        method set_forwarding_enabled (line 3761) | void set_forwarding_enabled(bool enable) { forwarding_enabled_ = e...
      function TestEventListener (line 3803) | TestEventListener* TestEventRepeater::Release(TestEventListener *lis...
      class XmlUnitTestResultPrinter (line 3879) | class XmlUnitTestResultPrinter : public EmptyTestEventListener {
        method IsNormalizableWhitespace (line 3893) | static bool IsNormalizableWhitespace(char c) {
        method IsValidXmlCharacter (line 3898) | static bool IsValidXmlCharacter(char c) {
        method EscapeXmlAttribute (line 3912) | static std::string EscapeXmlAttribute(const std::string& str) {
        method EscapeXmlText (line 3917) | static std::string EscapeXmlText(const char* str) {
      function FormatTimeInMillisAsSeconds (line 4083) | std::string FormatTimeInMillisAsSeconds(TimeInMillis ms) {
      function PortableLocaltime (line 4089) | static bool PortableLocaltime(time_t seconds, struct tm* out) {
      function FormatEpochTimeInMillisAsIso8601 (line 4110) | std::string FormatEpochTimeInMillisAsIso8601(TimeInMillis ms) {
      class JsonUnitTestResultPrinter (line 4427) | class JsonUnitTestResultPrinter : public EmptyTestEventListener {
      function FormatTimeInMillisAsDuration (line 4551) | static std::string FormatTimeInMillisAsDuration(TimeInMillis ms) {
      function FormatEpochTimeInMillisAsRFC3339 (line 4559) | static std::string FormatEpochTimeInMillisAsRFC3339(TimeInMillis ms) {
      function Indent (line 4572) | static inline std::string Indent(size_t width) {
      function GTEST_LOCK_EXCLUDED_ (line 4942) | GTEST_LOCK_EXCLUDED_(mutex_) {
      function GTEST_LOCK_EXCLUDED_ (line 4991) | GTEST_LOCK_EXCLUDED_(mutex_) {
      class ScopedPrematureExitFile (line 5005) | class ScopedPrematureExitFile {
        method ScopedPrematureExitFile (line 5007) | explicit ScopedPrematureExitFile(const char* premature_exit_filepath)
      class TestSuiteNameIs (line 5671) | class TestSuiteNameIs {
        method TestSuiteNameIs (line 5674) | explicit TestSuiteNameIs(const std::string& name) : name_(name) {}
      function TestSuite (line 5698) | TestSuite* UnitTestImpl::GetTestSuite(
      function SetUpEnvironment (line 5734) | static void SetUpEnvironment(Environment* env) { env->SetUp(); }
      function TearDownEnvironment (line 5735) | static void TearDownEnvironment(Environment* env) { env->TearDown(); }
      function WriteToShardStatusFileIfNeeded (line 5928) | void WriteToShardStatusFileIfNeeded() {
      function ShouldShard (line 5950) | bool ShouldShard(const char* total_shards_env,
      function Int32FromEnvOrDie (line 5995) | int32_t Int32FromEnvOrDie(const char* var, int32_t default_val) {
      function ShouldRunTestOnShard (line 6013) | bool ShouldRunTestOnShard(int total_shards, int shard_index, int tes...
      function PrintOnOneLine (line 6079) | static void PrintOnOneLine(const char* str, int max_length) {
      function OsStackTraceGetterInterface (line 6166) | OsStackTraceGetterInterface* UnitTestImpl::os_stack_trace_getter() {
      function TestResult (line 6179) | TestResult* UnitTestImpl::current_test_result() {
      function GetCurrentOsStackTraceExceptTop (line 6225) | std::string GetCurrentOsStackTraceExceptTop(UnitTest* /*unit_test*/,
      class ClassUniqueToAlwaysTrue (line 6235) | class ClassUniqueToAlwaysTrue {}
      function IsTrue (line 6238) | bool IsTrue(bool condition) { return condition; }
      function AlwaysTrue (line 6240) | bool AlwaysTrue() {
  
Condensed preview — 167 files, each showing path, character count, and a content snippet. Download the .json file or copy for the full structured content (6,343K chars).
[
  {
    "path": ".github/workflows/EnterDevShell.ps1",
    "chars": 1510,
    "preview": "param(\n    [Parameter()]\n    [String]$architecture\n)\n\nfunction EnterDevShellEnv  {\n\n    param(\n        [Parameter()]\n   "
  },
  {
    "path": ".github/workflows/freebsd.yml",
    "chars": 1075,
    "preview": "name: freebsd\n\non:\n  push:\n    paths-ignore:\n    - '.github/workflows/**'\n    - '!.github/workflows/freebsd.yml'\n  pull_"
  },
  {
    "path": ".github/workflows/ubuntu.yml",
    "chars": 1211,
    "preview": "name: ubuntu\n\non:\n  push:\n    paths-ignore:\n    - '.github/workflows/**'\n    - '!.github/workflows/ubuntu.yml'\n  pull_re"
  },
  {
    "path": ".github/workflows/windows.yml",
    "chars": 3165,
    "preview": "name: windows\n\non:\n  push:\n    paths-ignore:\n    - '.github/workflows/**'\n    - '!.github/workflows/windows.yml'\n    - '"
  },
  {
    "path": "Android.bp",
    "chars": 3987,
    "preview": "/*\n * Copyright (c) 2024 Intel Corporation. All Rights Reserved.\n *\n * Permission is hereby granted, free of charge, to "
  },
  {
    "path": "CONTRIBUTING.md",
    "chars": 2654,
    "preview": "# Contributing to libva-utils\n\nLibva-utils is an open source project licensed under the [MIT License] (https://opensourc"
  },
  {
    "path": "COPYING",
    "chars": 1199,
    "preview": "    Copyright (C) 2009-2016 Intel Corporation. All Rights Reserved.\n\n    Permission is hereby granted, free of charge, t"
  },
  {
    "path": "INSTALL",
    "chars": 3390,
    "preview": "[![Stories in Ready](https://badge.waffle.io/intel/libva-utils.png?label=ready&title=Ready)](https://waffle.io/intel/lib"
  },
  {
    "path": "Makefile.am",
    "chars": 1706,
    "preview": "# Copyright (c) 2007 Intel Corporation. All Rights Reserved.\n#\n# Permission is hereby granted, free of charge, to any pe"
  },
  {
    "path": "NEWS",
    "chars": 7634,
    "preview": "libva-utils NEWS -- summary of changes.  2025-12-12\nCopyright (C) 2009-2025 Intel Corporation\n\nVersion 2.23.0 - 12.Dec.2"
  },
  {
    "path": "README.md",
    "chars": 3385,
    "preview": "[![Stories in Ready](https://badge.waffle.io/intel/libva-utils.png?label=ready&title=Ready)](http://waffle.io/intel/libv"
  },
  {
    "path": "autogen.sh",
    "chars": 1713,
    "preview": "#!/bin/sh\n# Copyright (c) 2007 Intel Corporation. All Rights Reserved.\n#\n# Permission is hereby granted, free of charge,"
  },
  {
    "path": "common/Makefile.am",
    "chars": 2197,
    "preview": "# Copyright (c) 2012 Intel Corporation. All Rights Reserved.\n#\n# Permission is hereby granted, free of charge, to any pe"
  },
  {
    "path": "common/loadsurface.h",
    "chars": 16363,
    "preview": "/*\n * Copyright (c) 2008-2009 Intel Corporation. All Rights Reserved.\n *\n * Permission is hereby granted, free of charge"
  },
  {
    "path": "common/loadsurface_yuv.h",
    "chars": 2881282,
    "preview": "/*\n * Copyright (c) 2008-2009 Intel Corporation. All Rights Reserved.\n *\n * Permission is hereby granted, free of charge"
  },
  {
    "path": "common/meson.build",
    "chars": 926,
    "preview": "libva_display_src = [ 'va_display.c' ]\nlibva_display_deps = [ libva_dep ]\n\nif use_x11\n  libva_display_src += [ 'va_displ"
  },
  {
    "path": "common/va_display.c",
    "chars": 5426,
    "preview": "/*\n * Copyright (c) 2012 Intel Corporation. All Rights Reserved.\n *\n * Permission is hereby granted, free of charge, to "
  },
  {
    "path": "common/va_display.h",
    "chars": 2017,
    "preview": "/*\n * Copyright (c) 2012 Intel Corporation. All Rights Reserved.\n *\n * Permission is hereby granted, free of charge, to "
  },
  {
    "path": "common/va_display_drm.c",
    "chars": 3672,
    "preview": "/*\n * Copyright (c) 2012 Intel Corporation. All Rights Reserved.\n *\n * Permission is hereby granted, free of charge, to "
  },
  {
    "path": "common/va_display_wayland.c",
    "chars": 5394,
    "preview": "/*\n * Copyright (c) 2012 Intel Corporation. All Rights Reserved.\n *\n * Permission is hereby granted, free of charge, to "
  },
  {
    "path": "common/va_display_win32.cpp",
    "chars": 5962,
    "preview": "/*\n * Copyright © Microsoft Corporation\n *\n * Permission is hereby granted, free of charge, to any person obtaining a\n *"
  },
  {
    "path": "common/va_display_x11.c",
    "chars": 4067,
    "preview": "/*\n * Copyright (c) 2012 Intel Corporation. All Rights Reserved.\n *\n * Permission is hereby granted, free of charge, to "
  },
  {
    "path": "configure.ac",
    "chars": 8253,
    "preview": "# Copyright (c) 2007 Intel Corporation. All Rights Reserved.\n#\n# Permission is hereby granted, free of charge, to any pe"
  },
  {
    "path": "decode/Makefile.am",
    "chars": 1763,
    "preview": "# Copyright (c) 2007 Intel Corporation. All Rights Reserved.\n#\n# Permission is hereby granted, free of charge, to any pe"
  },
  {
    "path": "decode/loadjpeg.c",
    "chars": 4129,
    "preview": "/*\n * Small jpeg decoder library - testing application\n *\n * Copyright (c) 2006, Luc Saillard <luc@saillard.org>\n * Copy"
  },
  {
    "path": "decode/meson.build",
    "chars": 244,
    "preview": "executable('mpeg2vldemo', [ 'mpeg2vldemo.cpp' ],\n           dependencies: libva_display_dep,\n           install: true)\ne"
  },
  {
    "path": "decode/mpeg2vldemo.cpp",
    "chars": 10673,
    "preview": "/*\n * Copyright (c) 2007-2008 Intel Corporation. All Rights Reserved.\n *\n * Permission is hereby granted, free of charge"
  },
  {
    "path": "decode/tinyjpeg-internal.h",
    "chars": 3911,
    "preview": "/*\n * Small jpeg decoder library (Internal header)\n *\n * Copyright (c) 2006, Luc Saillard <luc@saillard.org>\n * Copyrigh"
  },
  {
    "path": "decode/tinyjpeg.c",
    "chars": 32306,
    "preview": "/*\n * Small jpeg decoder library\n *\n * Copyright (c) 2006, Luc Saillard <luc@saillard.org>\n * Copyright (c) 2012 Intel C"
  },
  {
    "path": "decode/tinyjpeg.h",
    "chars": 2461,
    "preview": "/*\n * Small jpeg decoder library (header file)\n *\n * Copyright (c) 2006, Luc Saillard <luc@saillard.org>\n * Copyright (c"
  },
  {
    "path": "encode/Makefile.am",
    "chars": 3189,
    "preview": "# Copyright (c) 2007 Intel Corporation. All Rights Reserved.\n#\n# Permission is hereby granted, free of charge, to any pe"
  },
  {
    "path": "encode/av1encode.c",
    "chars": 92661,
    "preview": "#define LIBVA_UTILS_UPLOAD_DOWNLOAD_YUV_SURFACE 1\n\n#include <stdio.h>\n#include <stdbool.h>\n#include <string.h>\n#include "
  },
  {
    "path": "encode/avcenc.c",
    "chars": 80224,
    "preview": "/*\n * Copyright (c) 2012 Intel Corporation. All Rights Reserved.\n *\n * Permission is hereby granted, free of charge, to "
  },
  {
    "path": "encode/h264encode.c",
    "chars": 87945,
    "preview": "/*\n * Copyright (c) 2007-2013 Intel Corporation. All Rights Reserved.\n *\n * Permission is hereby granted, free of charge"
  },
  {
    "path": "encode/hevcencode.c",
    "chars": 136378,
    "preview": "/*\n * Copyright (c) 2018 Intel Corporation. All Rights Reserved.\n *\n * Permission is hereby granted, free of charge, to "
  },
  {
    "path": "encode/jpegenc.c",
    "chars": 37035,
    "preview": "/*\n * Copyright (c) 2014 Intel Corporation. All Rights Reserved.\n *\n * Permission is hereby granted, free of charge, to "
  },
  {
    "path": "encode/jpegenc_utils.h",
    "chars": 13112,
    "preview": "/*\n * Copyright (c) 2014 Intel Corporation. All Rights Reserved.\n *\n * Permission is hereby granted, free of charge, to "
  },
  {
    "path": "encode/meson.build",
    "chars": 1192,
    "preview": "m = c.find_library('m')\n\n\nexecutable('avcenc', [ 'avcenc.c' ],\n           dependencies: [ libva_display_dep, threads ],\n"
  },
  {
    "path": "encode/mpeg2vaenc.c",
    "chars": 51790,
    "preview": "/*\n * Copyright (c) 2012 Intel Corporation. All Rights Reserved.\n *\n * Permission is hereby granted, free of charge, to "
  },
  {
    "path": "encode/svctenc.c",
    "chars": 113178,
    "preview": "/*\n * Copyright (c) 2016 Intel Corporation. All Rights Reserved.\n *\n * Permission is hereby granted, free of charge, to "
  },
  {
    "path": "encode/vp8enc.c",
    "chars": 41758,
    "preview": "/*\n * Copyright (c) 2018 Georg Ottinger. All Rights Reserved.\n *\n * Permission is hereby granted, free of charge, to any"
  },
  {
    "path": "encode/vp9enc.c",
    "chars": 53255,
    "preview": "/*\n * Copyright (c) 2017 Intel Corporation. All Rights Reserved.\n *\n * Permission is hereby granted, free of charge, to "
  },
  {
    "path": "getopt/getopt.h",
    "chars": 2921,
    "preview": "/*\t$OpenBSD: getopt.h,v 1.2 2008/06/26 05:42:04 ray Exp $\t*/\r\n/*\t$NetBSD: getopt.h,v 1.4 2000/07/07 10:43:54 ad Exp $\t*/"
  },
  {
    "path": "getopt/getopt_long.c",
    "chars": 14909,
    "preview": "/*\t$OpenBSD: getopt_long.c,v 1.24 2010/07/22 19:31:53 blambert Exp $\t*/\r\n/*\t$NetBSD: getopt_long.c,v 1.15 2002/01/31 22:"
  },
  {
    "path": "getopt/meson.build",
    "chars": 200,
    "preview": "libgetopt = static_library(\r\n  'getopt',\r\n  'getopt_long.c',\r\n)\r\n\r\nidep_getopt = declare_dependency(\r\n  link_with : libg"
  },
  {
    "path": "meson.build",
    "chars": 3286,
    "preview": "project('libva-utils', 'c', 'cpp',\n        version : '2.24.0.1',\n        default_options : [\n          'warning_level=2'"
  },
  {
    "path": "meson_options.txt",
    "chars": 489,
    "preview": "option('drm',\n       type : 'combo',\n       value : 'auto',\n       choices: [ 'auto', 'true', 'false' ])\noption('x11',\n "
  },
  {
    "path": "putsurface/Makefile.am",
    "chars": 2025,
    "preview": "# Copyright (c) 2007 Intel Corporation. All Rights Reserved.\n#\n# Permission is hereby granted, free of charge, to any pe"
  },
  {
    "path": "putsurface/meson.build",
    "chars": 318,
    "preview": "deps = [\n  libva_display_dep,\n  threads,\n]\n\nif use_x11\n  executable('putsurface', [ 'putsurface_x11.c' ],\n             d"
  },
  {
    "path": "putsurface/putsurface_common.c",
    "chars": 22642,
    "preview": "/*\n * Copyright (c) 2008-2009 Intel Corporation. All Rights Reserved.\n *\n * Permission is hereby granted, free of charge"
  },
  {
    "path": "putsurface/putsurface_wayland.c",
    "chars": 9298,
    "preview": "/*\n * Copyright (c) 2011 Intel Corporation. All Rights Reserved.\n *\n * Permission is hereby granted, free of charge, to "
  },
  {
    "path": "putsurface/putsurface_x11.c",
    "chars": 5576,
    "preview": "/*\n * Copyright (c) 2008-2009 Intel Corporation. All Rights Reserved.\n *\n * Permission is hereby granted, free of charge"
  },
  {
    "path": "security.md",
    "chars": 405,
    "preview": "# Security Policy\nIntel is committed to rapidly addressing security vulnerabilities affecting our customers and providin"
  },
  {
    "path": "style_unify",
    "chars": 176,
    "preview": "#!/bin/bash\nfile=$(find . -path ./test/gtest/ -prune -name \"*.[ch]\" -o -name \"*.cpp\")\nfor i in $file\ndo \n    echo $i \n  "
  },
  {
    "path": "subprojects/DirectX-Headers.wrap",
    "chars": 122,
    "preview": "[wrap-git]\r\ndirectory = DirectX-Headers-1.0\r\n\r\nurl = https://github.com/microsoft/DirectX-Headers.git\r\nrevision = v1.0.2"
  },
  {
    "path": "test/Makefile.am",
    "chars": 1960,
    "preview": "AUTOMAKE_OPTIONS = subdir-objects\n\nAM_CXXFLAGS =\t\t\t\t\t\t\t\\\n\t-I$(top_srcdir)/test/gtest/include\t\t\t\\\n\t$(NULL)\n\nAM_CPPFLAGS ="
  },
  {
    "path": "test/compat_win32.h",
    "chars": 2188,
    "preview": "/*\r\n * Copyright © Microsoft Corporation\r\n *\r\n * Permission is hereby granted, free of charge, to any person obtaining a"
  },
  {
    "path": "test/gtest/LICENSE",
    "chars": 1475,
    "preview": "Copyright 2008, Google Inc.\nAll rights reserved.\n\nRedistribution and use in source and binary forms, with or without\nmod"
  },
  {
    "path": "test/gtest/README.md",
    "chars": 10524,
    "preview": "\n### Generic Build Instructions ###\n\n#### Setup ####\n\nTo build Google Test and your tests that use it, you need to tell "
  },
  {
    "path": "test/gtest/docs/AdvancedGuide.md",
    "chars": 87724,
    "preview": "\n\nNow that you have read [Primer](Primer.md) and learned how to write tests\nusing Google Test, it's time to learn some n"
  },
  {
    "path": "test/gtest/docs/DevGuide.md",
    "chars": 6251,
    "preview": "\n\nIf you are interested in understanding the internals of Google Test,\nbuilding from source, or contributing ideas or mo"
  },
  {
    "path": "test/gtest/docs/Documentation.md",
    "chars": 779,
    "preview": "This page lists all documentation wiki pages for Google Test **(the SVN trunk version)**\n-- **if you use a released vers"
  },
  {
    "path": "test/gtest/docs/FAQ.md",
    "chars": 47879,
    "preview": "\n\nIf you cannot find the answer to your question here, and you have read\n[Primer](Primer.md) and [AdvancedGuide](Advance"
  },
  {
    "path": "test/gtest/docs/Primer.md",
    "chars": 24748,
    "preview": "\n\n# Introduction: Why Google C++ Testing Framework? #\n\n_Google C++ Testing Framework_ helps you write better C++ tests.\n"
  },
  {
    "path": "test/gtest/docs/PumpManual.md",
    "chars": 7052,
    "preview": "\n\n<b>P</b>ump is <b>U</b>seful for <b>M</b>eta <b>P</b>rogramming.\n\n# The Problem #\n\nTemplate and macro libraries often "
  },
  {
    "path": "test/gtest/docs/README.md",
    "chars": 139,
    "preview": "# Content Moved\n\nWe are working on updates to the GoogleTest documentation, which has moved to\nthe top-level [docs](../."
  },
  {
    "path": "test/gtest/docs/Samples.md",
    "chars": 1329,
    "preview": "If you're like us, you'd like to look at some Google Test sample code.  The\n[samples folder](../samples) has a number of"
  },
  {
    "path": "test/gtest/docs/XcodeGuide.md",
    "chars": 8237,
    "preview": "\n\nThis guide will explain how to use the Google Testing Framework in your Xcode projects on Mac OS X. This tutorial begi"
  },
  {
    "path": "test/gtest/include/gtest/gtest-death-test.h",
    "chars": 14647,
    "preview": "// Copyright 2005, Google Inc.\n// All rights reserved.\n//\n// Redistribution and use in source and binary forms, with or "
  },
  {
    "path": "test/gtest/include/gtest/gtest-matchers.h",
    "chars": 33126,
    "preview": "// Copyright 2007, Google Inc.\n// All rights reserved.\n//\n// Redistribution and use in source and binary forms, with or "
  },
  {
    "path": "test/gtest/include/gtest/gtest-message.h",
    "chars": 8045,
    "preview": "// Copyright 2005, Google Inc.\n// All rights reserved.\n//\n// Redistribution and use in source and binary forms, with or "
  },
  {
    "path": "test/gtest/include/gtest/gtest-param-test.h",
    "chars": 22588,
    "preview": "// Copyright 2008, Google Inc.\n// All rights reserved.\n//\n// Redistribution and use in source and binary forms, with or "
  },
  {
    "path": "test/gtest/include/gtest/gtest-param-test.h.pump",
    "chars": 20042,
    "preview": "$$ -*- mode: c++; -*-\n$var n = 50  $$ Maximum length of Values arguments we want to support.\n$var maxtuple = 10  $$ Maxi"
  },
  {
    "path": "test/gtest/include/gtest/gtest-printers.h",
    "chars": 35935,
    "preview": "// Copyright 2007, Google Inc.\n// All rights reserved.\n//\n// Redistribution and use in source and binary forms, with or "
  },
  {
    "path": "test/gtest/include/gtest/gtest-spi.h",
    "chars": 10112,
    "preview": "// Copyright 2007, Google Inc.\n// All rights reserved.\n//\n// Redistribution and use in source and binary forms, with or "
  },
  {
    "path": "test/gtest/include/gtest/gtest-test-part.h",
    "chars": 6868,
    "preview": "// Copyright 2008, Google Inc.\n// All rights reserved.\n//\n// Redistribution and use in source and binary forms, with or "
  },
  {
    "path": "test/gtest/include/gtest/gtest-typed-test.h",
    "chars": 15881,
    "preview": "// Copyright 2008 Google Inc.\n// All Rights Reserved.\n//\n// Redistribution and use in source and binary forms, with or w"
  },
  {
    "path": "test/gtest/include/gtest/gtest.h",
    "chars": 94181,
    "preview": "// Copyright 2005, Google Inc.\n// All rights reserved.\n//\n// Redistribution and use in source and binary forms, with or "
  },
  {
    "path": "test/gtest/include/gtest/gtest_pred_impl.h",
    "chars": 14865,
    "preview": "// Copyright 2006, Google Inc.\n// All rights reserved.\n//\n// Redistribution and use in source and binary forms, with or "
  },
  {
    "path": "test/gtest/include/gtest/gtest_prod.h",
    "chars": 2534,
    "preview": "// Copyright 2006, Google Inc.\n// All rights reserved.\n//\n// Redistribution and use in source and binary forms, with or "
  },
  {
    "path": "test/gtest/include/gtest/internal/custom/README.md",
    "chars": 1682,
    "preview": "# Customization Points\n\nThe custom directory is an injection point for custom user configurations.\n\n## Header `gtest.h`\n"
  },
  {
    "path": "test/gtest/include/gtest/internal/custom/gtest-port.h",
    "chars": 1873,
    "preview": "// Copyright 2015, Google Inc.\n// All rights reserved.\n//\n// Redistribution and use in source and binary forms, with or "
  },
  {
    "path": "test/gtest/include/gtest/internal/custom/gtest-printers.h",
    "chars": 2094,
    "preview": "// Copyright 2015, Google Inc.\n// All rights reserved.\n//\n// Redistribution and use in source and binary forms, with or "
  },
  {
    "path": "test/gtest/include/gtest/internal/custom/gtest.h",
    "chars": 1858,
    "preview": "// Copyright 2015, Google Inc.\n// All rights reserved.\n//\n// Redistribution and use in source and binary forms, with or "
  },
  {
    "path": "test/gtest/include/gtest/internal/gtest-death-test-internal.h",
    "chars": 13451,
    "preview": "// Copyright 2005, Google Inc.\n// All rights reserved.\n//\n// Redistribution and use in source and binary forms, with or "
  },
  {
    "path": "test/gtest/include/gtest/internal/gtest-filepath.h",
    "chars": 9780,
    "preview": "// Copyright 2008, Google Inc.\n// All rights reserved.\n//\n// Redistribution and use in source and binary forms, with or "
  },
  {
    "path": "test/gtest/include/gtest/internal/gtest-internal.h",
    "chars": 61622,
    "preview": "// Copyright 2005, Google Inc.\n// All rights reserved.\n//\n// Redistribution and use in source and binary forms, with or "
  },
  {
    "path": "test/gtest/include/gtest/internal/gtest-linked_ptr.h",
    "chars": 8424,
    "preview": "// Copyright 2003 Google Inc.\n// All rights reserved.\n//\n// Redistribution and use in source and binary forms, with or w"
  },
  {
    "path": "test/gtest/include/gtest/internal/gtest-param-util-generated.h",
    "chars": 192177,
    "preview": "// This file was GENERATED by command:\n//     pump.py gtest-param-util-generated.h.pump\n// DO NOT EDIT BY HAND!!!\n\n// Co"
  },
  {
    "path": "test/gtest/include/gtest/internal/gtest-param-util-generated.h.pump",
    "chars": 9107,
    "preview": "$$ -*- mode: c++; -*-\n$var n = 50  $$ Maximum length of Values arguments we want to support.\n$var maxtuple = 10  $$ Maxi"
  },
  {
    "path": "test/gtest/include/gtest/internal/gtest-param-util.h",
    "chars": 35140,
    "preview": "// Copyright 2008 Google Inc.\n// All Rights Reserved.\n//\n// Redistribution and use in source and binary forms, with or w"
  },
  {
    "path": "test/gtest/include/gtest/internal/gtest-port-arch.h",
    "chars": 4157,
    "preview": "// Copyright 2015, Google Inc.\n// All rights reserved.\n//\n// Redistribution and use in source and binary forms, with or "
  },
  {
    "path": "test/gtest/include/gtest/internal/gtest-port.h",
    "chars": 85257,
    "preview": "// Copyright 2005, Google Inc.\n// All rights reserved.\n//\n// Redistribution and use in source and binary forms, with or "
  },
  {
    "path": "test/gtest/include/gtest/internal/gtest-string.h",
    "chars": 7228,
    "preview": "// Copyright 2005, Google Inc.\n// All rights reserved.\n//\n// Redistribution and use in source and binary forms, with or "
  },
  {
    "path": "test/gtest/include/gtest/internal/gtest-tuple.h",
    "chars": 28617,
    "preview": "// This file was GENERATED by command:\n//     pump.py gtest-tuple.h.pump\n// DO NOT EDIT BY HAND!!!\n\n// Copyright 2009 Go"
  },
  {
    "path": "test/gtest/include/gtest/internal/gtest-tuple.h.pump",
    "chars": 9620,
    "preview": "$$ -*- mode: c++; -*-\n$var n = 10  $$ Maximum number of tuple fields we want to support.\n$$ This meta comment fixes auto"
  },
  {
    "path": "test/gtest/include/gtest/internal/gtest-type-util.h",
    "chars": 6174,
    "preview": "// Copyright 2008 Google Inc.\n// All Rights Reserved.\n//\n// Redistribution and use in source and binary forms, with or w"
  },
  {
    "path": "test/gtest/include/gtest/internal/gtest-type-util.h.pump",
    "chars": 9317,
    "preview": "$$ -*- mode: c++; -*-\n$var n = 50  $$ Maximum length of type lists we want to support.\n// Copyright 2008 Google Inc.\n// "
  },
  {
    "path": "test/gtest/src/gtest-all.cc",
    "chars": 2160,
    "preview": "// Copyright 2008, Google Inc.\n// All rights reserved.\n//\n// Redistribution and use in source and binary forms, with or "
  },
  {
    "path": "test/gtest/src/gtest-death-test.cc",
    "chars": 62109,
    "preview": "// Copyright 2005, Google Inc.\n// All rights reserved.\n//\n// Redistribution and use in source and binary forms, with or "
  },
  {
    "path": "test/gtest/src/gtest-filepath.cc",
    "chars": 14081,
    "preview": "// Copyright 2008, Google Inc.\n// All rights reserved.\n//\n// Redistribution and use in source and binary forms, with or "
  },
  {
    "path": "test/gtest/src/gtest-internal-inl.h",
    "chars": 47373,
    "preview": "// Copyright 2005, Google Inc.\n// All rights reserved.\n//\n// Redistribution and use in source and binary forms, with or "
  },
  {
    "path": "test/gtest/src/gtest-matchers.cc",
    "chars": 3723,
    "preview": "// Copyright 2007, Google Inc.\n// All rights reserved.\n//\n// Redistribution and use in source and binary forms, with or "
  },
  {
    "path": "test/gtest/src/gtest-port.cc",
    "chars": 48099,
    "preview": "// Copyright 2008, Google Inc.\n// All rights reserved.\n//\n// Redistribution and use in source and binary forms, with or "
  },
  {
    "path": "test/gtest/src/gtest-printers.cc",
    "chars": 17269,
    "preview": "// Copyright 2007, Google Inc.\n// All rights reserved.\n//\n// Redistribution and use in source and binary forms, with or "
  },
  {
    "path": "test/gtest/src/gtest-test-part.cc",
    "chars": 4126,
    "preview": "// Copyright 2008, Google Inc.\n// All rights reserved.\n//\n// Redistribution and use in source and binary forms, with or "
  },
  {
    "path": "test/gtest/src/gtest-typed-test.cc",
    "chars": 3780,
    "preview": "// Copyright 2008 Google Inc.\n// All Rights Reserved.\n//\n// Redistribution and use in source and binary forms, with or w"
  },
  {
    "path": "test/gtest/src/gtest.cc",
    "chars": 248867,
    "preview": "// Copyright 2005, Google Inc.\n// All rights reserved.\n//\n// Redistribution and use in source and binary forms, with or "
  },
  {
    "path": "test/gtest/src/gtest_main.cc",
    "chars": 1968,
    "preview": "// Copyright 2006, Google Inc.\n// All rights reserved.\n//\n// Redistribution and use in source and binary forms, with or "
  },
  {
    "path": "test/meson.build",
    "chars": 1369,
    "preview": "gtest_src = [\n  'gtest/src/gtest-all.cc',\n  'gtest/src/gtest_main.cc',\n]\ngtest_inc = include_directories('gtest', 'gtest"
  },
  {
    "path": "test/test.h",
    "chars": 6586,
    "preview": "/*\n * Copyright (C) 2016 Intel Corporation. All Rights Reserved.\n *\n * Permission is hereby granted, free of charge, to "
  },
  {
    "path": "test/test_data.h",
    "chars": 8751,
    "preview": "/*\n * Copyright (C) 2016 Intel Corporation. All Rights Reserved.\n *\n * Permission is hereby granted, free of charge, to "
  },
  {
    "path": "test/test_defs.h",
    "chars": 2102,
    "preview": "/*\n * Copyright (C) 2018 Intel Corporation. All Rights Reserved.\n *\n * Permission is hereby granted, free of charge, to "
  },
  {
    "path": "test/test_internal.cpp",
    "chars": 4148,
    "preview": "/*\n * Copyright (C) 2017 Intel Corporation. All Rights Reserved.\n *\n * Permission is hereby granted, free of charge, to "
  },
  {
    "path": "test/test_main.cpp",
    "chars": 1318,
    "preview": "/*\n * Copyright (C) 2016 Intel Corporation. All Rights Reserved.\n *\n * Permission is hereby granted, free of charge, to "
  },
  {
    "path": "test/test_streamable.h",
    "chars": 6547,
    "preview": "/*\n * Copyright (C) 2016 Intel Corporation. All Rights Reserved.\n *\n * Permission is hereby granted, free of charge, to "
  },
  {
    "path": "test/test_utils.h",
    "chars": 2099,
    "preview": "/*\n * Copyright (C) 2017 Intel Corporation. All Rights Reserved.\n *\n * Permission is hereby granted, free of charge, to "
  },
  {
    "path": "test/test_va_api_config_attribs.cpp",
    "chars": 5259,
    "preview": "/*\n * Copyright (C) 2016 Intel Corporation. All Rights Reserved.\n *\n * Permission is hereby granted, free of charge, to "
  },
  {
    "path": "test/test_va_api_createbuffer.cpp",
    "chars": 10650,
    "preview": "/*\n * Copyright (C) 2016 Intel Corporation. All Rights Reserved.\n *\n * Permission is hereby granted, free of charge, to "
  },
  {
    "path": "test/test_va_api_createcontext.cpp",
    "chars": 3512,
    "preview": "/*\n * Copyright (C) 2016 Intel Corporation. All Rights Reserved.\n *\n * Permission is hereby granted, free of charge, to "
  },
  {
    "path": "test/test_va_api_createsurfaces.cpp",
    "chars": 9378,
    "preview": "/*\n * Copyright (C) 2016 Intel Corporation. All Rights Reserved.\n *\n * Permission is hereby granted, free of charge, to "
  },
  {
    "path": "test/test_va_api_display_attribs.cpp",
    "chars": 6103,
    "preview": "/*\n * Copyright (C) 2016 Intel Corporation. All Rights Reserved.\n *\n * Permission is hereby granted, free of charge, to "
  },
  {
    "path": "test/test_va_api_fixture.cpp",
    "chars": 17908,
    "preview": "/*\n * Copyright (C) 2016 Intel Corporation. All Rights Reserved.\n *\n * Permission is hereby granted, free of charge, to "
  },
  {
    "path": "test/test_va_api_fixture.h",
    "chars": 4704,
    "preview": "/*\n * Copyright (C) 2016 Intel Corporation. All Rights Reserved.\n *\n * Permission is hereby granted, free of charge, to "
  },
  {
    "path": "test/test_va_api_get_create_config.cpp",
    "chars": 6380,
    "preview": "/*\n * Copyright (C) 2016 Intel Corporation. All Rights Reserved.\n *\n * Permission is hereby granted, free of charge, to "
  },
  {
    "path": "test/test_va_api_get_max_values.cpp",
    "chars": 1648,
    "preview": "/*\n * Copyright (C) 2016 Intel Corporation. All Rights Reserved.\n *\n * Permission is hereby granted, free of charge, to "
  },
  {
    "path": "test/test_va_api_init_terminate.cpp",
    "chars": 3641,
    "preview": "/*\n * Copyright (C) 2016 Intel Corporation. All Rights Reserved.\n *\n * Permission is hereby granted, free of charge, to "
  },
  {
    "path": "test/test_va_api_query_config.cpp",
    "chars": 3165,
    "preview": "/*\n * Copyright (C) 2016 Intel Corporation. All Rights Reserved.\n *\n * Permission is hereby granted, free of charge, to "
  },
  {
    "path": "test/test_va_api_query_vendor.cpp",
    "chars": 1835,
    "preview": "/*\n * Copyright (C) 2016 Intel Corporation. All Rights Reserved.\n *\n * Permission is hereby granted, free of charge, to "
  },
  {
    "path": "vainfo/Makefile.am",
    "chars": 1659,
    "preview": "# Copyright (c) 2007 Intel Corporation. All Rights Reserved.\n#\n# Permission is hereby granted, free of charge, to any pe"
  },
  {
    "path": "vainfo/meson.build",
    "chars": 213,
    "preview": "executable('vainfo', [ 'vainfo.c' ],\n           c_args: [ '-DLIBVA_VERSION_S=\"' + meson.project_version() + '\"' ],\n     "
  },
  {
    "path": "vainfo/vainfo.c",
    "chars": 28424,
    "preview": "/*\n * Copyright (c) 2007 Intel Corporation. All Rights Reserved.\n *\n * Permission is hereby granted, free of charge, to "
  },
  {
    "path": "vendor/intel/Makefile.am",
    "chars": 1692,
    "preview": "# Copyright (c) 2018 Intel Corporation. All Rights Reserved.\n#\n# Permission is hereby granted, free of charge, to any pe"
  },
  {
    "path": "vendor/intel/avcstreamoutdemo.c",
    "chars": 63092,
    "preview": "/*\n * Copyright (c) 2018 Intel Corporation. All Rights Reserved.\n *\n * Permission is hereby granted, free of charge, to "
  },
  {
    "path": "vendor/intel/avcstreamoutdemo.h",
    "chars": 7244,
    "preview": "/*\n * Copyright (c) 2018 Intel Corporation. All Rights Reserved.\n *\n * Permission is hereby granted, free of charge, to "
  },
  {
    "path": "vendor/intel/meson.build",
    "chars": 127,
    "preview": "executable('avcstreamoutdemo', [ 'avcstreamoutdemo.c' ],\n           dependencies: libva_display_dep,\n           install:"
  },
  {
    "path": "vendor/intel/sfcsample/DecodeParamBuffer.h",
    "chars": 244671,
    "preview": "/*\n * * Copyright (C) 2018 Intel Corporation. All Rights Reserved.\n * *\n ** Permission is hereby granted, free of charge"
  },
  {
    "path": "vendor/intel/sfcsample/Makefile.am",
    "chars": 1738,
    "preview": "\n# Copyright (C) 2018 Intel Corporation. All Rights Reserved.\n# \n# Permission is hereby granted, free of charge, to any "
  },
  {
    "path": "vendor/intel/sfcsample/TestMain.cpp",
    "chars": 1665,
    "preview": "/*\n * * Copyright (C) 2018 Intel Corporation. All Rights Reserved.\n * *\n * * Permission is hereby granted, free of charg"
  },
  {
    "path": "vendor/intel/sfcsample/VDecAccelVA.cpp",
    "chars": 20158,
    "preview": "/*\n * * Copyright (C) 2018 Intel Corporation. All Rights Reserved.\n * *\n ** Permission is hereby granted, free of charge"
  },
  {
    "path": "vendor/intel/sfcsample/VDecAccelVA.h",
    "chars": 5234,
    "preview": "/*\n * * Copyright (C) 2018 Intel Corporation. All Rights Reserved.\n * *\n ** Permission is hereby granted, free of charge"
  },
  {
    "path": "vendor/intel/sfcsample/meson.build",
    "chars": 156,
    "preview": "if use_drm\n  executable('sfcsample', [ 'TestMain.cpp', 'VDecAccelVA.cpp' ],\n             dependencies: libva_display_dep"
  },
  {
    "path": "videoprocess/Makefile.am",
    "chars": 2400,
    "preview": "# Copyright (c) 2022 Intel Corporation. All Rights Reserved.\n#\n# Permission is hereby granted, free of charge, to any pe"
  },
  {
    "path": "videoprocess/README.md",
    "chars": 1072,
    "preview": "# Video Processing feature test suites\n\n\n## Introduction\n\nThis folder collect a set of VP examples to exercise VA-API in"
  },
  {
    "path": "videoprocess/meson.build",
    "chars": 1262,
    "preview": "executable('vacopy', [ 'vacopy.cpp' ],\n           dependencies: libva_display_dep,\n           install: true)\nexecutable("
  },
  {
    "path": "videoprocess/process.cfg.template",
    "chars": 2830,
    "preview": "# Configuration information for video process test case.\n#    This application will firstly load yuv frames to one type "
  },
  {
    "path": "videoprocess/process_3dlut.cfg.template",
    "chars": 1039,
    "preview": "# Configuration information for video process test case.\n#    This application will firstly load yuv frames to one type "
  },
  {
    "path": "videoprocess/process_blending.cfg.template",
    "chars": 1975,
    "preview": "# Configuration information for video process test case.\n#    This application will firstly load yuv frames to one type "
  },
  {
    "path": "videoprocess/process_chromasitting.cfg.template",
    "chars": 1434,
    "preview": "# Configuration information for video process test case.\n#    This application will firstly load yuv frames to one type "
  },
  {
    "path": "videoprocess/process_denoise.cfg.template",
    "chars": 1261,
    "preview": "# Configuration information for video process test case.\n#    This application will firstly load yuv frames to one type "
  },
  {
    "path": "videoprocess/process_hdr_tm_h2h.cfg.template",
    "chars": 2488,
    "preview": "# Configuration information for video process test case.\n#    This application will firstly load yuv frames to one type "
  },
  {
    "path": "videoprocess/process_hdr_tm_h2s.cfg.template",
    "chars": 2445,
    "preview": "# Configuration information for video process test case.\n#    This application will firstly load yuv frames to one type "
  },
  {
    "path": "videoprocess/process_scaling_csc.cfg.template",
    "chars": 889,
    "preview": "# Configuration information for video process test case.\n#    This application will firstly load yuv frames to one type "
  },
  {
    "path": "videoprocess/process_scaling_n_out_usrptr.cfg.template",
    "chars": 2849,
    "preview": "# Configuration information for video process test case.\n#    This application will firstly load yuv frames to one type "
  },
  {
    "path": "videoprocess/process_sharpness.cfg.template",
    "chars": 1273,
    "preview": "# Configuration information for video process test case.\n#    This application will firstly load yuv frames to one type "
  },
  {
    "path": "videoprocess/process_va_copy.cfg.template",
    "chars": 1315,
    "preview": "# Configuration information for video process test case.\n#    This application will firstly load yuv frames to one type "
  },
  {
    "path": "videoprocess/vacopy.cpp",
    "chars": 29781,
    "preview": "/*\n* Copyright (c) 2009-2018, Intel Corporation\n*\n* Permission is hereby granted, free of charge, to any person obtainin"
  },
  {
    "path": "videoprocess/vavpp.cpp",
    "chars": 68414,
    "preview": "/*\n * Copyright (c) 2014 Intel Corporation. All Rights Reserved.\n *\n * Permission is hereby granted, free of charge, to "
  },
  {
    "path": "videoprocess/vpp3dlut.cpp",
    "chars": 56428,
    "preview": "/*\n* Copyright (c) 2009-2021, Intel Corporation\n*\n* Permission is hereby granted, free of charge, to any person obtainin"
  },
  {
    "path": "videoprocess/vppblending.cpp",
    "chars": 53360,
    "preview": "/*\n* Copyright (c) 2009-2018, Intel Corporation\n*\n* Permission is hereby granted, free of charge, to any person obtainin"
  },
  {
    "path": "videoprocess/vppchromasitting.cpp",
    "chars": 50697,
    "preview": "/*\n* Copyright (c) 2009-2018, Intel Corporation\n*\n* Permission is hereby granted, free of charge, to any person obtainin"
  },
  {
    "path": "videoprocess/vppdenoise.cpp",
    "chars": 49679,
    "preview": "/*\n* Copyright (c) 2009-2018, Intel Corporation\n*\n* Permission is hereby granted, free of charge, to any person obtainin"
  },
  {
    "path": "videoprocess/vpphdr_tm.cpp",
    "chars": 31803,
    "preview": "/*\n* Copyright (c) 2009-2022, Intel Corporation\n*\n* Permission is hereby granted, free of charge, to any person obtainin"
  },
  {
    "path": "videoprocess/vppscaling_csc.cpp",
    "chars": 46720,
    "preview": "/*\n* Copyright (c) 2009-2018, Intel Corporation\n*\n* Permission is hereby granted, free of charge, to any person obtainin"
  },
  {
    "path": "videoprocess/vppscaling_n_out_usrptr.cpp",
    "chars": 38616,
    "preview": "/*\n* Copyright (c) 2009-2018, Intel Corporation\n*\n* Permission is hereby granted, free of charge, to any person obtainin"
  },
  {
    "path": "videoprocess/vppsharpness.cpp",
    "chars": 49707,
    "preview": "/*\n* Copyright (c) 2009-2018, Intel Corporation\n*\n* Permission is hereby granted, free of charge, to any person obtainin"
  }
]

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

About this extraction

This page contains the full source code of the intel/libva-utils GitHub repository, extracted and formatted as plain text for AI agents and large language models (LLMs). The extraction includes 167 files (5.9 MB), approximately 1.6M tokens, and a symbol index with 1590 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!