pax_global_header00006660000000000000000000000064145122455660014524gustar00rootroot0000000000000052 comment=bbdc7081aec27daafca07fc40523335a2ea0a992 conky-1.19.6/000077500000000000000000000000001451224556600127455ustar00rootroot00000000000000conky-1.19.6/.clang-format000066400000000000000000000076401451224556600153270ustar00rootroot00000000000000--- Language: Cpp # BasedOnStyle: Google AccessModifierOffset: -1 AlignAfterOpenBracket: Align AlignConsecutiveAssignments: false AlignConsecutiveDeclarations: false AlignEscapedNewlines: Left AlignOperands: true AlignTrailingComments: true AllowAllParametersOfDeclarationOnNextLine: true AllowShortBlocksOnASingleLine: true AllowShortCaseLabelsOnASingleLine: false AllowShortFunctionsOnASingleLine: All AllowShortIfStatementsOnASingleLine: true AllowShortLoopsOnASingleLine: true AlwaysBreakAfterDefinitionReturnType: None AlwaysBreakAfterReturnType: None AlwaysBreakBeforeMultilineStrings: true AlwaysBreakTemplateDeclarations: Yes BinPackArguments: true BinPackParameters: true BraceWrapping: AfterClass: false AfterControlStatement: false AfterEnum: false AfterFunction: false AfterNamespace: false AfterObjCDeclaration: false AfterStruct: false AfterUnion: false AfterExternBlock: false BeforeCatch: false BeforeElse: false IndentBraces: false SplitEmptyFunction: true SplitEmptyRecord: true SplitEmptyNamespace: true BreakBeforeBinaryOperators: None BreakBeforeBraces: Attach BreakBeforeInheritanceComma: false BreakInheritanceList: BeforeColon BreakBeforeTernaryOperators: true BreakConstructorInitializersBeforeComma: false BreakConstructorInitializers: BeforeColon BreakAfterJavaFieldAnnotations: false BreakStringLiterals: true ColumnLimit: 80 CommentPragmas: '^ IWYU pragma:' CompactNamespaces: false ConstructorInitializerAllOnOneLineOrOnePerLine: true ConstructorInitializerIndentWidth: 4 ContinuationIndentWidth: 4 Cpp11BracedListStyle: true DerivePointerAlignment: true DisableFormat: false ExperimentalAutoDetectBinPacking: false FixNamespaceComments: true ForEachMacros: - foreach - Q_FOREACH - BOOST_FOREACH IncludeBlocks: Preserve IncludeCategories: - Regex: '^' Priority: 2 - Regex: '^<.*\.h>' Priority: 1 - Regex: '^<.*' Priority: 2 - Regex: '.*' Priority: 3 IncludeIsMainRegex: '([-_](test|unittest))?$' IndentCaseLabels: true IndentPPDirectives: None IndentWidth: 2 IndentWrappedFunctionNames: false JavaScriptQuotes: Leave JavaScriptWrapImports: true KeepEmptyLinesAtTheStartOfBlocks: false MacroBlockBegin: '' MacroBlockEnd: '' MaxEmptyLinesToKeep: 1 NamespaceIndentation: None ObjCBinPackProtocolList: Never ObjCBlockIndentWidth: 2 ObjCSpaceAfterProperty: false ObjCSpaceBeforeProtocolList: false PenaltyBreakAssignment: 2 PenaltyBreakBeforeFirstCallParameter: 1 PenaltyBreakComment: 300 PenaltyBreakFirstLessLess: 120 PenaltyBreakString: 1000 PenaltyBreakTemplateDeclaration: 10 PenaltyExcessCharacter: 1000000 PenaltyReturnTypeOnItsOwnLine: 200 PointerAlignment: Left RawStringFormats: - Language: Cpp Delimiters: - cc - CC - cpp - Cpp - CPP - 'c++' - 'C++' CanonicalDelimiter: '' BasedOnStyle: google - Language: TextProto Delimiters: - pb - PB - proto - PROTO EnclosingFunctions: - EqualsProto - EquivToProto - PARSE_PARTIAL_TEXT_PROTO - PARSE_TEST_PROTO - PARSE_TEXT_PROTO - ParseTextOrDie - ParseTextProtoOrDie CanonicalDelimiter: '' BasedOnStyle: google ReflowComments: true SortIncludes: true SortUsingDeclarations: true SpaceAfterCStyleCast: false SpaceAfterTemplateKeyword: true SpaceBeforeAssignmentOperators: true SpaceBeforeCpp11BracedList: false SpaceBeforeCtorInitializerColon: true SpaceBeforeInheritanceColon: true SpaceBeforeParens: ControlStatements SpaceBeforeRangeBasedForLoopColon: true SpaceInEmptyParentheses: false SpacesBeforeTrailingComments: 2 SpacesInAngles: false SpacesInContainerLiterals: true SpacesInCStyleCastParentheses: false SpacesInParentheses: false SpacesInSquareBrackets: false Standard: Auto TabWidth: 8 UseTab: Never ... conky-1.19.6/.clang-tidy000066400000000000000000000042371451224556600150070ustar00rootroot00000000000000--- Checks: 'clang-diagnostic-*,clang-analyzer-*,google-*' WarningsAsErrors: '' HeaderFilterRegex: '' AnalyzeTemporaryDtors: false FormatStyle: none User: brenden CheckOptions: - key: google-build-namespaces.HeaderFileExtensions value: ',h,hh,hpp,hxx' - key: google-global-names-in-headers.HeaderFileExtensions value: ',h,hh,hpp,hxx' - key: google-readability-braces-around-statements.ShortStatementLines value: '1' - key: google-readability-function-size.BranchThreshold value: '4294967295' - key: google-readability-function-size.LineThreshold value: '4294967295' - key: google-readability-function-size.NestingThreshold value: '4294967295' - key: google-readability-function-size.ParameterThreshold value: '4294967295' - key: google-readability-function-size.StatementThreshold value: '800' - key: google-readability-function-size.VariableThreshold value: '4294967295' - key: google-readability-namespace-comments.ShortNamespaceLines value: '10' - key: google-readability-namespace-comments.SpacesBeforeComments value: '2' - key: google-runtime-int.SignedTypePrefix value: int - key: google-runtime-int.TypeSuffix value: '' - key: google-runtime-int.UnsignedTypePrefix value: uint - key: google-runtime-references.WhiteListTypes value: '' - key: modernize-loop-convert.MaxCopySize value: '16' - key: modernize-loop-convert.MinConfidence value: reasonable - key: modernize-loop-convert.NamingStyle value: CamelCase - key: modernize-pass-by-value.IncludeStyle value: llvm - key: modernize-replace-auto-ptr.IncludeStyle value: llvm - key: modernize-use-nullptr.NullMacros value: 'NULL' ... conky-1.19.6/.dockerignore000066400000000000000000000005701451224556600154230ustar00rootroot00000000000000Dockerfile .dockerignore # Ignore SCM/CI related stuff .github/ .git/ .gitlab-ci.yml .DS_Store *~ .*.swp Doxyfile patches/ doc/conky.1 README build*/ doc/*.html Makefile CMakeCache.txt CMakeFiles data/convertconf.h data/defconfig.h lua/libcairo-orig.c lua/libcairo.c lua/libimlib2.c *.so *.a /config.h # Ignore vscode stuff .vscode *.code-workspace # Ignore tests tests/ conky-1.19.6/.editorconfig000066400000000000000000000001431451224556600154200ustar00rootroot00000000000000root = true [*] end_of_line = lf insert_final_newline = true indent_style = space indent_size = 2 conky-1.19.6/.envrc000066400000000000000000000000121451224556600140540ustar00rootroot00000000000000use flake conky-1.19.6/.github/000077500000000000000000000000001451224556600143055ustar00rootroot00000000000000conky-1.19.6/.github/FUNDING.yml000066400000000000000000000001031451224556600161140ustar00rootroot00000000000000# These are supported funding model platforms github: brndnmtthws conky-1.19.6/.github/ISSUE_TEMPLATE/000077500000000000000000000000001451224556600164705ustar00rootroot00000000000000conky-1.19.6/.github/ISSUE_TEMPLATE/bug_report.yml000066400000000000000000000045251451224556600213710ustar00rootroot00000000000000name: 🐞 Bug Report description: "File a bug report: crashes, unexpected behaviour, and other errors go here." title: "[Bug]: " labels: ["bug", "triage"] body: - type: markdown attributes: value: | If you haven't done so already, please take a moment to search the [existing issues](https://github.com/brndnmtthws/conky/issues) to see if this has been previously reported. If not, carry on. Thanks for taking the time to fill out this bug report! - type: textarea id: what-happened attributes: label: What happened? description: > Describe the problem, what you expected to happen, and any other relevant info. You can attach logs, stack traces, and config below. If required, include screenshots here which demonstrate the problem. placeholder: Here's what happened validations: required: true - type: input id: version attributes: label: Version description: What version of Conky are you running? validations: required: true - type: dropdown id: os validations: required: true attributes: label: Which OS/distro are you seeing the problem on? options: - Ubuntu - Fedora - Debian - Arch Linux - Gentoo - Linux (other) - macOS - type: textarea id: config attributes: label: Conky config description: Paste your Conky config here if it's relevant. render: Lua - type: markdown attributes: value: | ## Getting a stack trace If you are reporting a crash, please attach a stack trace below. To create one with `gdb`, try the following steps: ```shell # Start 'conky' $ gdb conky # Run 'conky' with a config. (gdb) run -c ~/.your_conky.conf # Wait for a crash to occur, then run this. (gdb) bt full # ... stack trace output here ... ``` - type: textarea id: stacktrace attributes: label: Stack trace description: Paste your stacktrace here if you have one. render: GDB - type: textarea id: logs attributes: label: Relevant log output description: Please copy and paste any relevant log output. This will be automatically formatted into code, so no need for backticks. render: Shell conky-1.19.6/.github/ISSUE_TEMPLATE/config.yml000066400000000000000000000006451451224556600204650ustar00rootroot00000000000000blank_issues_enabled: true contact_links: - name: 🙏 General questions & help url: https://github.com/brndnmtthws/conky/discussions/categories/q-a about: Please ask and answer general questions using GitHub Discussions - name: 💡 New ideas and feature requests url: https://github.com/brndnmtthws/conky/discussions/categories/ideas about: Request and discuss enhancements using GitHub Discussions conky-1.19.6/.github/dependabot.yml000066400000000000000000000007171451224556600171420ustar00rootroot00000000000000# Set update schedule for GitHub Actions version: 2 updates: # Maintain dependencies for actions - package-ecosystem: 'github-actions' directory: '/' schedule: interval: 'weekly' # Maintain dependencies for web docs/npm - package-ecosystem: 'npm' directory: '/web' schedule: interval: 'weekly' groups: web-deps: patterns: # Group all the web deps together to keep the PR spam down - '*' conky-1.19.6/.github/labeler.yml000066400000000000000000000005051451224556600164360ustar00rootroot00000000000000documentation: - doc/* - doc/**/* extras: - extras/* - extras/**/* sources: - src/* - src/**/* tests: - tests/**/* - tests/* web: - web/* - web/**/* appimage: - appimage/* - appimage/**/* 3rdparty: - 3rdparty/* - 3rdparty/**/* gh-actions: - .github/workflows/* - .github/workflows/**/* conky-1.19.6/.github/pull_request_template.md000066400000000000000000000007471451224556600212560ustar00rootroot00000000000000# Checklist - [ ] I have described the changes - [ ] I have linked to any relevant GitHub issues, if applicable - [ ] Documentation in `doc/` has been updated - [ ] All new code is licensed under GPLv3 ## Description * Describe the changes, why they were necessary, etc * Describe how the changes will affect existing behaviour. * Describe how you tested and validated your changes. * Include any relevant screenshots/evidence demonstrating that the changes work and have been tested. conky-1.19.6/.github/release.yml000066400000000000000000000004241451224556600164500ustar00rootroot00000000000000changelog: categories: - title: 🏕 Features labels: - "*" exclude: labels: - dependencies - bug - title: 🐞 Bug fixes labels: - bug - title: 👒 Dependencies labels: - dependencies conky-1.19.6/.github/workflows/000077500000000000000000000000001451224556600163425ustar00rootroot00000000000000conky-1.19.6/.github/workflows/build-and-test-linux.yaml000066400000000000000000000114351451224556600232030ustar00rootroot00000000000000name: Build and test on Linux on: push: branches: - main paths-ignore: - web/** - doc/** pull_request: branches: - main paths-ignore: - web/** - doc/** concurrency: group: ${{ github.workflow }}-${{ github.ref }} cancel-in-progress: true jobs: build: strategy: matrix: os: - ubuntu-20.04 - ubuntu-22.04 x11: [ON, OFF] wayland: [ON, OFF] compiler: - clang - gcc compiler_version: - 9 - 10 - 11 - 12 - 13 - 14 exclude: - os: ubuntu-20.04 compiler: gcc compiler_version: 12 - compiler: gcc compiler_version: 13 - compiler: gcc compiler_version: 14 - os: ubuntu-20.04 compiler: gcc compiler_version: 11 - compiler: clang compiler_version: 9 - os: ubuntu-22.04 compiler: clang compiler_version: 10 - os: ubuntu-22.04 compiler: clang compiler_version: 11 - os: ubuntu-22.04 compiler: clang compiler_version: 12 - os: ubuntu-20.04 compiler: clang compiler_version: 13 - os: ubuntu-20.04 compiler: clang compiler_version: 14 runs-on: ${{ matrix.os }} steps: - run: sudo apt-get -qq update - name: Install dependencies run: | sudo apt-get install -yqq --no-install-recommends \ audacious-dev \ cmake \ gawk \ lcov \ libaudclient-dev \ libcairo2-dev \ libcurl4-gnutls-dev \ libcurl4-gnutls-dev \ libdbus-glib-1-dev \ libglib2.0-dev \ libical-dev \ libimlib2-dev \ libircclient-dev \ libiw-dev \ liblua5.3-dev \ libmicrohttpd-dev \ libmysqlclient-dev \ libpulse-dev \ librsvg2-dev \ libsystemd-dev \ libwayland-bin \ libwayland-dev \ libx11-dev \ libxdamage-dev \ libxext-dev \ libxft-dev \ libxinerama-dev \ libxml2-dev \ libxmmsclient-dev \ libxnvctrl-dev \ ncurses-dev \ ninja-build \ wayland-protocols - name: Install libc++ if: matrix.compiler == 'clang' run: | sudo apt-get install -yqq --no-install-recommends \ libc++-${{ matrix.compiler_version }}-dev \ libc++abi-${{ matrix.compiler_version }}-dev - name: Checkout uses: actions/checkout@v4 - name: Configure with CMake run: | set -x # show the commands we're running [[ "${{ matrix.compiler }}" == "clang"* ]] && CC=clang-${{ matrix.compiler_version }} [[ "${{ matrix.compiler }}" == "clang"* ]] && CXX=clang++-${{ matrix.compiler_version }} [[ "${{ matrix.compiler }}" == "gcc"* ]] && CC=gcc-${{ matrix.compiler_version }} [[ "${{ matrix.compiler }}" == "gcc"* ]] && CXX=g++-${{ matrix.compiler_version }} # Enable librsvg by default, disable for older versions of Ubuntu # because we need librsvg>=2.52 RSVG_ENABLED=ON [[ "${{ matrix.os }}" == "ubuntu-20.04"* ]] && RSVG_ENABLED=OFF mkdir build cd build cmake .. -G Ninja \ -DBUILD_AUDACIOUS=ON \ -DBUILD_HTTP=ON \ -DBUILD_ICAL=ON \ -DBUILD_ICONV=ON \ -DBUILD_IRC=ON \ -DBUILD_IRC=ON \ -DBUILD_JOURNAL=ON \ -DBUILD_LUA_CAIRO=ON \ -DBUILD_LUA_IMLIB2=ON \ -DBUILD_LUA_RSVG=${RSVG_ENABLED} \ -DBUILD_MYSQL=ON \ -DBUILD_NVIDIA=ON \ -DBUILD_PULSEAUDIO=ON \ -DBUILD_RSS=ON \ -DBUILD_TESTS=ON \ -DBUILD_WLAN=ON \ -DBUILD_WAYLAND=${{ matrix.wayland }}\ -DBUILD_X11=${{ matrix.x11 }} \ -DBUILD_XMMS2=ON \ -DCMAKE_C_COMPILER=$CC \ -DCMAKE_CXX_COMPILER=$CXX \ -DMAINTAINER_MODE=ON - name: Compile run: cmake --build build - name: Test working-directory: build run: ctest conky-1.19.6/.github/workflows/build-and-test-macos.yaml000066400000000000000000000023241451224556600231430ustar00rootroot00000000000000name: Build and test on macOS on: push: branches: - main paths-ignore: - web/** - doc/** pull_request: branches: - main paths-ignore: - web/** - doc/** concurrency: group: ${{ github.workflow }}-${{ github.ref }} cancel-in-progress: true jobs: build: strategy: matrix: os: - macos-11 - macos-12 runs-on: ${{ matrix.os }} steps: - name: Install dependencies run: | brew install \ cmake \ freetype \ gettext \ imlib2 \ lcov \ librsvg \ libxft \ libxinerama \ libxfixes \ lua \ ninja \ pkg-config - name: Checkout uses: actions/checkout@v4 - run: mkdir build - name: Configure with CMake working-directory: build run: | cmake .. -G Ninja \ -DMAINTAINER_MODE=ON \ -DBUILD_WAYLAND=OFF \ -DBUILD_TESTS=ON - name: Compile run: cmake --build build - name: Test working-directory: build run: ctest conky-1.19.6/.github/workflows/codeql.yml000066400000000000000000000057171451224556600203460ustar00rootroot00000000000000name: 'CodeQL' on: schedule: - cron: '20 2 * * 0' jobs: analyze: name: Analyze runs-on: ubuntu-latest permissions: actions: read contents: read security-events: write strategy: fail-fast: false matrix: language: ['cpp', 'javascript', 'python'] # CodeQL supports [ 'cpp', 'csharp', 'go', 'java', 'javascript', 'python', 'ruby' ] # Use only 'java' to analyze code written in Java, Kotlin or both # Use only 'javascript' to analyze code written in JavaScript, TypeScript or both # Learn more about CodeQL language support at https://aka.ms/codeql-docs/language-support steps: - name: Install dependencies if: matrix.language == 'cpp' run: | sudo apt-get install -yqq --no-install-recommends \ audacious-dev \ cmake \ gawk \ lcov \ libaudclient-dev \ libc++-14-dev \ libc++abi-14-dev \ libcairo2-dev \ libcurl4-gnutls-dev \ libcurl4-gnutls-dev \ libdbus-glib-1-dev \ libglib2.0-dev \ libical-dev \ libimlib2-dev \ libircclient-dev \ libiw-dev \ liblua5.3-dev \ libmicrohttpd-dev \ libmysqlclient-dev \ libpulse-dev \ librsvg2-dev \ libsystemd-dev \ libwayland-bin \ libwayland-dev \ libx11-dev \ libxdamage-dev \ libxext-dev \ libxft-dev \ libxinerama-dev \ libxml2-dev \ libxmmsclient-dev \ libxnvctrl-dev \ ncurses-dev \ ninja-build \ wayland-protocols - name: Checkout repository uses: actions/checkout@v4 # Initializes the CodeQL tools for scanning. - name: Initialize CodeQL uses: github/codeql-action/init@v2 with: languages: ${{ matrix.language }} # If you wish to specify custom queries, you can do so here or in a config file. # By default, queries listed here will override any specified in a config file. # Prefix the list here with "+" to use these queries and those in the config file. # Details on CodeQL's query packs refer to : https://docs.github.com/en/code-security/code-scanning/automatically-scanning-your-code-for-vulnerabilities-and-errors/configuring-code-scanning#using-queries-in-ql-packs # queries: security-extended,security-and-quality # Autobuild attempts to build any compiled languages (C/C++, C#, Go, or Java). # If this step fails, then you should remove it and run the build manually (see below) - name: Autobuild uses: github/codeql-action/autobuild@v2 - name: Perform CodeQL Analysis uses: github/codeql-action/analyze@v2 with: category: '/language:${{matrix.language}}' conky-1.19.6/.github/workflows/docker.yaml000066400000000000000000000033321451224556600204760ustar00rootroot00000000000000name: Docker on: push: # Publish `main` as Docker `latest` image. branches: - main paths-ignore: - web/** - doc/** # Publish `v1.2.3` tags as releases. tags: - v* concurrency: group: ${{ github.workflow }}-${{ github.ref }} cancel-in-progress: true env: IMAGE_NAME: conky DOCKERHUB_ACCOUNT: brndnmtthws DOCKER_BUILDKIT: 1 jobs: buildx: runs-on: ubuntu-latest steps: - name: Checkout uses: actions/checkout@v4 - name: Set up QEMU uses: docker/setup-qemu-action@v3 - name: Set up Docker Buildx id: buildx uses: docker/setup-buildx-action@v3 - name: Log into Dockerhub registry run: echo "${{ secrets.DOCKERHUB_TOKEN }}" | docker login -u $DOCKERHUB_ACCOUNT --password-stdin - name: Build run: | DOCKERHUB_IMAGE_ID=$DOCKERHUB_ACCOUNT/$IMAGE_NAME # Change all uppercase to lowercase DOCKERHUB_IMAGE_ID=$(echo $DOCKERHUB_IMAGE_ID | tr '[A-Z]' '[a-z]') # Strip git ref prefix from version VERSION=$(echo "${{ github.ref }}" | sed -e 's,.*/\(.*\),\1,') # Strip "v" prefix from tag name [[ "${{ github.ref }}" == "refs/tags/"* ]] && VERSION=$(echo $VERSION | sed -e 's/^v//') # Use Docker `latest` tag convention [ "$VERSION" == "main" ] && VERSION=latest docker buildx build \ --push \ --platform linux/arm/v7,linux/arm64/v8,linux/amd64 \ --cache-from=type=registry,ref=$DOCKERHUB_ACCOUNT/$IMAGE_NAME:buildcache \ --cache-to=type=registry,ref=$DOCKERHUB_ACCOUNT/$IMAGE_NAME:buildcache,mode=max \ --tag $DOCKERHUB_IMAGE_ID:$VERSION \ . conky-1.19.6/.github/workflows/labeler.yml000066400000000000000000000004601451224556600204730ustar00rootroot00000000000000name: "Pull Request Labeler" on: - pull_request_target jobs: triage: permissions: contents: read pull-requests: write runs-on: ubuntu-latest steps: - uses: actions/labeler@v4 with: sync-labels: true repo-token: "${{ secrets.GITHUB_TOKEN }}" conky-1.19.6/.github/workflows/nix.yaml000066400000000000000000000012501451224556600200220ustar00rootroot00000000000000name: 'Nix build' on: push: branches: - main paths-ignore: - web/** - doc/** pull_request: branches: - main paths-ignore: - web/** - doc/** concurrency: group: ${{ github.workflow }}-${{ github.ref }} cancel-in-progress: true jobs: build-and-check: strategy: matrix: os: [ubuntu-latest, macos-latest] runs-on: ${{ matrix.os }} steps: - uses: actions/checkout@v4 - name: Install Nix uses: DeterminateSystems/nix-installer-action@v5 - name: Setup Nix Cache uses: DeterminateSystems/magic-nix-cache-action@v2 - run: nix build - run: nix flake check conky-1.19.6/.github/workflows/publish-appimage.yml000066400000000000000000000051671451224556600223250ustar00rootroot00000000000000name: Build AppImage on: push: branches: - main tags: - v* paths-ignore: - web/** - doc/** concurrency: group: ${{ github.workflow }}-${{ github.ref }} cancel-in-progress: true jobs: build: runs-on: ubuntu-22.04 permissions: contents: write discussions: write steps: - run: sudo apt-get -qq update - name: Install dependencies run: | sudo apt-get install -yqq --no-install-recommends \ audacious-dev \ cmake \ gawk \ lcov \ libaudclient-dev \ libcairo2-dev \ libcurl4-gnutls-dev \ libdbus-glib-1-dev \ libfuse2 \ libglib2.0-dev \ libical-dev \ libimlib2-dev \ libircclient-dev \ libiw-dev \ liblua5.3-dev \ libmicrohttpd-dev \ libmysqlclient-dev \ libpulse-dev \ librsvg2-dev \ libsystemd-dev \ libwayland-dev \ libx11-dev \ libxdamage-dev \ libxext-dev \ libxft-dev \ libxinerama-dev \ libxml2-dev \ libxmmsclient-dev \ libxnvctrl-dev \ ncurses-dev \ ninja-build \ pandoc \ python3 \ && pip3 install --upgrade pyyaml - name: Checkout uses: actions/checkout@v4 - name: Import GPG Deploy Key run: | echo "${{ secrets.GPG_DEPLOY_KEY }}" > appimage/secret.gpg gpg --import appimage/secret.gpg - name: Build AppImage run: CC=clang-14 CXX=clang++-14 ./appimage/build.sh - name: Upload AppImage artifact uses: actions/upload-artifact@v3 with: name: conky-x86_64.AppImage path: conky-x86_64.AppImage - name: Upload AppImage checksum artifact uses: actions/upload-artifact@v3 with: name: conky-x86_64.AppImage.sha256 path: conky-x86_64.AppImage.sha256 - name: Upload man page artifact uses: actions/upload-artifact@v3 with: name: conky.1.gz path: conky.1.gz - name: Create Conky Release id: create_release uses: softprops/action-gh-release@v1 if: startsWith(github.ref, 'refs/tags/') with: draft: false prerelease: false discussion_category_name: General generate_release_notes: true files: | conky-x86_64.AppImage conky-x86_64.AppImage.sha256 conky.1.gz conky-1.19.6/.github/workflows/stale.yml000066400000000000000000000020071451224556600201740ustar00rootroot00000000000000name: "Close stale issues and PRs" on: schedule: - cron: "30 1 * * *" jobs: stale: permissions: contents: write # for delete-branch option issues: write pull-requests: write runs-on: ubuntu-latest steps: - uses: actions/stale@v8 with: stale-issue-message: "This issue is stale because it has been open 365 days with no activity. Remove stale label or comment, or this issue will be closed in 30 days." stale-pr-message: "This PR is stale because it has been open 365 days with no activity. Remove stale label or comment, or this PR will be closed in 30 days." close-issue-message: "This issue was closed because it has been stalled for 30 days with no activity." close-pr-message: "This PR was closed because it has been stalled for 30 days with no activity." days-before-issue-stale: 365 days-before-pr-stale: 365 days-before-issue-close: 30 days-before-pr-close: 30 delete-branch: true conky-1.19.6/.github/workflows/web.yml000066400000000000000000000014041451224556600176410ustar00rootroot00000000000000name: Web CI on: push: branches: [main] paths: - web/** - doc/** pull_request: branches: [main] paths: - web/** - doc/** concurrency: group: ${{ github.workflow }}-${{ github.ref }} cancel-in-progress: true jobs: build: runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 - name: Use Node.js 18 uses: actions/setup-node@v3 with: node-version: 18 cache: npm cache-dependency-path: '**/package-lock.json' - run: npm ci working-directory: web - run: npm run lint working-directory: web - run: npm run build --if-present working-directory: web - run: npm run e2e:headless working-directory: web conky-1.19.6/.gitignore000066400000000000000000000006471451224556600147440ustar00rootroot00000000000000.DS_Store *~ .*.swp Doxyfile patches/ doc/conky.1 README build*/ doc/*.html Makefile CMakeCache.txt CMakeFiles data/convertconf.h data/defconfig.h lua/libcairo-orig.c lua/libcairo.c lua/libimlib2.c *.so *.a /config.h # Compiler cache .cache # Ignore (most) vscode stuff .vscode/* *.code-workspace # Allow vscode recommended extensions !.vscode/extensions.json .idea/ # Ignore nix stuff /result # Ignore direnv .direnv conky-1.19.6/.prettierrc.cjs000066400000000000000000000001541451224556600157070ustar00rootroot00000000000000module.exports = { printWidth: 80, semi: false, singleQuote: true, tabWidth: 2, useTabs: false, } conky-1.19.6/.vscode/000077500000000000000000000000001451224556600143065ustar00rootroot00000000000000conky-1.19.6/.vscode/extensions.json000066400000000000000000000001531451224556600173770ustar00rootroot00000000000000{ "recommendations": [ "kamadorueda.alejandra", "ms-vscode.cmake-tools", "mkhl.direnv" ] } conky-1.19.6/3rdparty/000077500000000000000000000000001451224556600145155ustar00rootroot00000000000000conky-1.19.6/3rdparty/toluapp/000077500000000000000000000000001451224556600162015ustar00rootroot00000000000000conky-1.19.6/3rdparty/toluapp/.gitignore000066400000000000000000000000071451224556600201660ustar00rootroot00000000000000build/ conky-1.19.6/3rdparty/toluapp/.travis.yml000066400000000000000000000046231451224556600203170ustar00rootroot00000000000000language: cpp cache: ccache dist: xenial matrix: include: - os: linux addons: apt: sources: - ubuntu-toolchain-r-test packages: - g++-5 - liblua5.3-dev env: - MATRIX_EVAL="CC=gcc-5 && CXX=g++-5" - os: linux addons: apt: sources: - ubuntu-toolchain-r-test packages: - g++-6 - liblua5.3-dev env: - MATRIX_EVAL="CC=gcc-6 && CXX=g++-6" - os: linux addons: apt: sources: - ubuntu-toolchain-r-test packages: - g++-7 - liblua5.3-dev env: - MATRIX_EVAL="CC=gcc-7 && CXX=g++-7" - os: linux addons: apt: sources: - ubuntu-toolchain-r-test packages: - g++-8 - liblua5.3-dev env: - MATRIX_EVAL="CC=gcc-8 && CXX=g++-8" - os: linux addons: apt: sources: - llvm-toolchain-xenial-6.0 packages: - clang-6.0 - liblua5.3-dev env: - MATRIX_EVAL="CC=clang-6.0 && CXX=clang++-6.0" - os: linux addons: apt: sources: - llvm-toolchain-xenial-7 packages: - clang-7 - liblua5.3-dev env: - MATRIX_EVAL="CC=clang-7 && CXX=clang++-7" - os: osx osx_image: xcode9.4 - os: osx osx_image: xcode10 - os: osx osx_image: xcode10.1 before_install: - | if [[ "$TRAVIS_OS_NAME" == "osx" ]]; then HOMEBREW_NO_AUTO_UPDATE=1 brew install lua ccache; export PATH="/usr/local/opt/ccache/libexec:$PATH"; fi - eval "${MATRIX_EVAL}" # Combine global build options with OS/compiler-dependent options - export CMAKE_OPTIONS="${CMAKE_OPTIONS} ${ENV_CMAKE_OPTIONS} -DCMAKE_CXX_COMPILER_LAUNCHER=ccache" - export CXX_FLAGS="${CXX_FLAGS} ${ENV_CXX_FLAGS} -Wall -Werror -Wextra -Wunused -pedantic" - export C_FLAGS="${C_FLAGS} ${ENV_C_FLAGS} -Wall -Werror -Wextra -Wunused -pedantic -std=c99" install: - echo ${PATH} - echo ${CXX} - ${CXX} --version - ${CXX} -v script: - mkdir -p build - cd build - cmake ${CMAKE_OPTIONS} -DCMAKE_C_FLAGS=${C_FLAGS} -DCMAKE_CXX_FLAGS=${CXX_FLAGS} .. - make -j4 # Only watch the master branch branches: only: - master conky-1.19.6/3rdparty/toluapp/CMakeLists.txt000066400000000000000000000027341451224556600207470ustar00rootroot00000000000000# Copyright (C) 2007-2012 LuaDist. # Created by Peter Kapec # Redistribution and use of this file is allowed according to the terms of the MIT license. # For details see the COPYRIGHT file distributed with LuaDist. # Please note that the package source code is licensed under its own license. project ( toluapp C ) cmake_minimum_required ( VERSION 3.4 ) # Disable dist stuff, we're not installing this as a lib # include ( cmake/dist.cmake ) include(FindPkgConfig) include(FindLua) include_directories ( include src/lib ${LUA_INCLUDE_DIR} ) # Build lib file ( GLOB SRC_LIBTOLUAPP src/lib/*.c ) if ( MSVC ) set ( DEF_FILE libtoluapp.def ) endif ( ) # add_library ( toluapp_lib SHARED ${SRC_LIBTOLUAPP} ${DEF_FILE} ) add_library ( toluapp_lib_static STATIC ${SRC_LIBTOLUAPP} ${DEF_FILE} ) target_link_libraries ( toluapp_lib_static ${LUA_LIBRARIES} ) set_target_properties ( toluapp_lib_static PROPERTIES COMPILE_FLAGS -fPIC) # -fPIC required for static linking set_target_properties ( toluapp_lib_static PROPERTIES OUTPUT_NAME toluapp CLEAN_DIRECT_OUTPUT 1 ) # Build app include_directories ( src/bin ) set ( SRC_TOLUA src/bin/tolua.c src/bin/toluabind.c ) add_executable ( toluapp ${SRC_TOLUA} ) target_link_libraries ( toluapp toluapp_lib_static ${LUA_LIBRARIES} ) # Disable installation, we don't need these at runtime for Conky # Install #install_library ( toluapp_lib ) #install_executable ( toluapp ) #install_header ( include/ ) #install_data ( README INSTALL ) #install_doc ( doc/ ) conky-1.19.6/3rdparty/toluapp/COPYRIGHT000066400000000000000000000027701451224556600175020ustar00rootroot00000000000000tolua++ License --------------- tolua++ is based on toLua (www.tecgraf.puc-rio.br/~celes/tolua), and it's licensed under the terms of the MIT license reproduced below. This means that Lua is free software and can be used for both academic and commercial purposes at absolutely no cost. =============================================================================== Copyright (C) 2009 Ariel Manzur. Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. =============================================================================== (end of COPYRIGHT) conky-1.19.6/3rdparty/toluapp/INSTALL000066400000000000000000000032531451224556600172350ustar00rootroot00000000000000This version of tolua++ uses SCons to compile (http://www.scons.org). SCons uses pythin. If you don't want to install python, check "Installation without scons" below. * Installation 1. Edit the "config" file for your platform to suit your environment, if at all necessary (for cygwin, mingw, BSD and mac OSX use 'config_posix') 2. Then, type "scons". You can use 'scons -h' to see a list of available command line options. * What you get If "scons" succeeds, you get: * an executable to generate binding code in ./bin; * the C library to be linked in your application in ./lib; * the include file needed to compile your application in ./include. These are the only directories you need for development, besides Lua. You can use 'scons install' to install the files, see the 'prefix' option. * Installation without scons The instructions for building tolua++ without scons depend on the particular compiler you are using. The simplest way is to create a folder with all .c and .h files except 'toluabind_default.c', and then create a project for the executable and the library, as follows: tolua.exe: all *.c *.h in src/bin (except toluabind_default.c) tolua.lib: all *.c *.h in src/lib. * Installation with Microsoft Visual Studio The directory 'win32' contains project files for Microsoft Visual Studio 7 (contributed by Makoto Hamanaka). The project has 4 different build options: withLua50_Release, withLua51_Release, withLua50_Debug and withLua51_Debug. They all expect the lua library names used by the LuaBinaries packages (http://luabinaries.luaforge.net/). The resulting files are built on /lib and /bin (for the library and tolua++.exe). conky-1.19.6/3rdparty/toluapp/Makefile000066400000000000000000000002011451224556600176320ustar00rootroot00000000000000# makefile for tolua hierarchy all: @echo "Makefile is deprecated ;)" @echo "see INSTALL for details on how to build tolua++" conky-1.19.6/3rdparty/toluapp/README-5.1000077500000000000000000000031141451224556600173640ustar00rootroot00000000000000Compiling for lua 5.1 --------------------- Starting from version 1.0.8pre1, tolua++ can be compiled with both lua 5.0 and 5.1. Both versions will output the same code, and the C API (tolua++.h) is the same. The build system is not yet ready to detect/decide when to compile for 5.1, the easiest way right now is to add a file called 'custom.py' on the root of the package, with the following: ## BEGIN custom.py CCFLAGS = ['-I/usr/local/include/lua5.1', '-O2', '-ansi'] LIBPATH = ['/usr/local/lib'] LIBS = ['lua5.1', 'dl', 'm'] tolua_bin = 'tolua++5.1' tolua_lib = 'tolua++5.1' TOLUAPP = 'tolua++5.1' ## END custom.py This will build the binary as 'tolua++5.1' and the library as 'libtolua++5.1.a' (taken from tolua_bin and tolua_lib), and take the lua headers and libraries from /usr/local/include/lua5.1 and /usr/local/lib. It will also link with '-llua5.1'. Modify the parameters acording to your system. Compatibility ------------- There are a couple of things to keep in mind when running code inside tolua using the -L option: * `...' and arg: you can still use 'arg' on 5.1, this is done automatically by adding the 'arg' declaration to functions on files loaded with dofile. For example, the line: function foo( ... ) becomes function foo( ... ) local arg = {n=select('#', ...), ...}; This lets you use the same code on both versions without having to make any modifications. * keep in mind that there are slight differences on the way string.gsub works, and the original version of the function is always kept, so it will behave diffently depending on which version of lua you're using. conky-1.19.6/3rdparty/toluapp/README.md000066400000000000000000000021651451224556600174640ustar00rootroot00000000000000[![Build Status](https://travis-ci.org/brndnmtthws/toluapp.svg?branch=master)](https://travis-ci.org/brndnmtthws/toluapp) # tolua++ ## What is tolua++? tolua++ is an extension of toLua, a tool to integrate C/C++ code with Lua. tolua++ includes new features oriented to c++, such as class templates. tolua is a tool that greatly simplifies the integration of C/C++ code with Lua. Based on a "cleaned" header file, tolua automatically generates the binding code to access C/C++ features from Lua. Using Lua-5.0 API and metamethod facilities, the current version automatically maps C/C++ constants, external variables, functions, namespace, classes, and methods to Lua. It also provides facilities to create Lua modules. ## Availability tolua++ is freely available for both academic and commercial purposes. See COPYRIGHT for details. tolua++ can be downloaded from the sites below: http://www.codenix.com/~tolua/ ## Installation See INSTALL. Contacting the author tolua has been designed and implemented by Waldemar Celes. tolua++ is maintained by Ariel Manzur. Send your comments, bug reports and anything else to tolua@codenix.com conky-1.19.6/3rdparty/toluapp/SConstruct000066400000000000000000000115151451224556600202360ustar00rootroot00000000000000import sys; import os tools = ['default'] if os.name == 'nt': tools = ['mingw'] env = Environment(tools = tools) options_file = None if sys.platform == 'linux2': options_file = "linux" elif 'msvc' in env['TOOLS']: options_file = "msvc" else: options_file = "posix" opts = Options(["config_"+options_file+".py", "custom.py", "custom_"+options_file+".py"], ARGUMENTS) opts.Add('CC', 'The C compiler.') opts.Add('CXX', 'The C++ compiler (for the tests)') opts.Add('CCFLAGS', 'Flags for the compiler.', ['-O2', '-Wall']) opts.Add('LINK', 'The linker.') opts.Add('LINKFLAGS', 'Linker flags.', []) opts.Add('no_cygwin', 'Use -mno-cygwin to build using the mingw compiler on cygwin', 0) opts.Add('LIBS', 'libraries', []) opts.Add('LIBPATH', 'library path', []) opts.Add('tolua_bin', 'the resulting binary', 'tolua++') opts.Add('tolua_lib', 'the resulting library', 'tolua++') opts.Add('TOLUAPP', 'the name of the tolua++ binary (to use with built_dev=1)', 'tolua++') opts.Add('prefix', 'The installation prefix') opts.Add('build_dev', 'Build for development (uses tolua to rebuild toluabind.c with the embeded scripts', 0) opts.Add('build_failsafe', "Build using 'factory default' toluabind file (in case build_dev fails)", 0) opts.Add('ENV', 'The environment variables') opts.Add('shared', 'Build a shared object', False) opts.Update(env) Help(opts.GenerateHelpText(env)) def save_config(target, source, env): opts.Save('custom.py', env) cust = env.Command('custom.py', [], save_config) env.Alias('configure', [cust]) env['TOLUAPP_BOOTSTRAP'] = env['tolua_bin']+"_bootstrap"+env['PROGSUFFIX'] env['build_dev'] = int(env['build_dev']) ## detecting the install directory on win32 if 'msvc' in env['TOOLS'] and not (env.has_key('prefix') or env['prefix']): if env['MSVS'].has_key('PLATFORMSDKDIR'): env['prefix'] = env['MSVS']['PLATFORMSDKDIR'] SConscriptChdir(0) ############ helper builders def pkg_scan_dep(self, target, source): import re ## TODO: detectar si el archivo existe antes de abrirlo asi nomas pkg = open(source, "rt") for linea in pkg.xreadlines(): dep = re.search("^[\t\w]*\$[cphl]file\s*\"([^\"]+)\"", linea) if dep: self.Depends(target, '#' + dep.groups()[0]); if dep.groups()[0][-4:] == '.pkg': # recursividad self.pkg_scan_dep(target, dep.groups()[0]) def make_tolua_code(self, target, source, pkgname = None, bootstrap = False, use_own = False, use_typeid=None): ptarget = Dir('.').path + '/' + target psource = Dir('.').path + '/' + source header = target[:-2] + '.h' pheader = Dir('.').path + '/' + header print("Generating ", target, " from ", source) tolua = "" if bootstrap: if os.name == 'nt': tolua = 'bin\\'+self['TOLUAPP_BOOTSTRAP'] else: tolua = 'bin/'+self['TOLUAPP_BOOTSTRAP'] print("********* tolua is ", tolua) else: if use_own: if 'msvc' in self['TOOLS']: tolua = 'bin\\$tolua_bin' else: tolua = 'bin/$tolua_bin' else: tolua = "$TOLUAPP" if pkgname: pkgname = ' -n '+pkgname else: pkgname = '' if use_typeid: tolua = tolua+' -t' comando = tolua + ' -C -H ' + pheader + ' -o ' + ptarget + pkgname + ' ' + psource command = self.Command(target, source, comando) self.SideEffect(header, target) self.Depends(target, source) self.pkg_scan_dep(target, psource) if bootstrap: self.Depends(target, "#/bin/$TOLUAPP_BOOTSTRAP") if use_own: self.Depends(target, "#/bin/$tolua_bin") return command env.__class__.LuaBinding = make_tolua_code; env.__class__.pkg_scan_dep = pkg_scan_dep; def print_install_error(target, source, env): msg = """Error: no install prefix was specified, or detected. you can use the 'prefix' option on command line to specify one. Examples: scons prefix=/usr/local install or on Windows: scons "prefix=c:\\program files\\visual basic" install Files will be installed on /bin, /lib and /include """ import SCons.Errors raise SCons.Errors.UserError(msg) ########### end of helper builders env['CPPPATH'] = '#/include' env['LIBPATH'] = ['#/lib'] + env['LIBPATH'] if env['no_cygwin']: env['CCFLAGS'] += ['-mno-cygwin'] env['LINKFLAGS'] += ['-mno-cygwin'] import string Export('env') SConscript('src/lib/SCsub') SConscript('src/bin/SCsub') #SConscript('src/lib/SCsub') SConscript('src/tests/SCsub') env.Alias('all', [env.bin_target, env.lib_target]) env.Alias('test', env.test_targets) Default('all') if env['prefix']: env.Install(env['prefix']+'/bin', env.bin_target) env.Install(env['prefix']+'/lib', env.lib_target) env.Install(env['prefix']+'/include', '#include/tolua++.h') env.Alias('install', [env['prefix']+'/bin', env['prefix']+'/include', env['prefix']+'/lib']) else: env.Command('install', [], print_install_error) env.Depends('install', 'all') env.Command('deb', [], 'dpkg-buildpackage -I.svn -Icustom.py -Itoluabind_dev.c -Itoluabind_dev.h -Itoluabind_default.o -Icustom.lua -I.sconsign', ENV=os.environ) conky-1.19.6/3rdparty/toluapp/cmake/000077500000000000000000000000001451224556600172615ustar00rootroot00000000000000conky-1.19.6/3rdparty/toluapp/cmake/dist.cmake000066400000000000000000000310071451224556600212270ustar00rootroot00000000000000# LuaDist CMake utility library. # Provides sane project defaults and macros common to LuaDist CMake builds. # # Copyright (C) 2007-2012 LuaDist. # by David Manura, Peter Drahoš # Redistribution and use of this file is allowed according to the terms of the MIT license. # For details see the COPYRIGHT file distributed with LuaDist. # Please note that the package source code is licensed under its own license. ## Extract information from dist.info if ( NOT EXISTS ${CMAKE_CURRENT_SOURCE_DIR}/dist.info ) message ( FATAL_ERROR "Missing dist.info file (${CMAKE_CURRENT_SOURCE_DIR}/dist.info)." ) endif () file ( READ ${CMAKE_CURRENT_SOURCE_DIR}/dist.info DIST_INFO ) if ( "${DIST_INFO}" STREQUAL "" ) message ( FATAL_ERROR "Failed to load dist.info." ) endif () # Reads field `name` from dist.info string `DIST_INFO` into variable `var`. macro ( _parse_dist_field name var ) string ( REGEX REPLACE ".*${name}[ \t]?=[ \t]?[\"']([^\"']+)[\"'].*" "\\1" ${var} "${DIST_INFO}" ) if ( ${var} STREQUAL DIST_INFO ) message ( FATAL_ERROR "Failed to extract \"${var}\" from dist.info" ) endif () endmacro () # _parse_dist_field ( name DIST_NAME ) _parse_dist_field ( version DIST_VERSION ) _parse_dist_field ( license DIST_LICENSE ) _parse_dist_field ( author DIST_AUTHOR ) _parse_dist_field ( maintainer DIST_MAINTAINER ) _parse_dist_field ( url DIST_URL ) _parse_dist_field ( desc DIST_DESC ) message ( "DIST_NAME: ${DIST_NAME}") message ( "DIST_VERSION: ${DIST_VERSION}") message ( "DIST_LICENSE: ${DIST_LICENSE}") message ( "DIST_AUTHOR: ${DIST_AUTHOR}") message ( "DIST_MAINTAINER: ${DIST_MAINTAINER}") message ( "DIST_URL: ${DIST_URL}") message ( "DIST_DESC: ${DIST_DESC}") string ( REGEX REPLACE ".*depends[ \t]?=[ \t]?[\"']([^\"']+)[\"'].*" "\\1" DIST_DEPENDS ${DIST_INFO} ) if ( DIST_DEPENDS STREQUAL DIST_INFO ) set ( DIST_DEPENDS "" ) endif () message ( "DIST_DEPENDS: ${DIST_DEPENDS}") ## 2DO: Parse DIST_DEPENDS and try to install Dependencies with automatically using externalproject_add ## INSTALL DEFAULTS (Relative to CMAKE_INSTALL_PREFIX) # Primary paths set ( INSTALL_BIN bin CACHE PATH "Where to install binaries to." ) set ( INSTALL_LIB lib CACHE PATH "Where to install libraries to." ) set ( INSTALL_INC include CACHE PATH "Where to install headers to." ) set ( INSTALL_ETC etc CACHE PATH "Where to store configuration files" ) set ( INSTALL_SHARE share CACHE PATH "Directory for shared data." ) # Secondary paths option ( INSTALL_VERSION "Install runtime libraries and executables with version information." OFF) set ( INSTALL_DATA ${INSTALL_SHARE}/${DIST_NAME} CACHE PATH "Directory the package can store documentation, tests or other data in.") set ( INSTALL_DOC ${INSTALL_DATA}/doc CACHE PATH "Recommended directory to install documentation into.") set ( INSTALL_EXAMPLE ${INSTALL_DATA}/example CACHE PATH "Recommended directory to install examples into.") set ( INSTALL_TEST ${INSTALL_DATA}/test CACHE PATH "Recommended directory to install tests into.") set ( INSTALL_FOO ${INSTALL_DATA}/etc CACHE PATH "Where to install additional files") # Tweaks and other defaults # Setting CMAKE to use loose block and search for find modules in source directory set ( CMAKE_ALLOW_LOOSE_LOOP_CONSTRUCTS true ) set ( CMAKE_MODULE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/cmake" ${CMAKE_MODULE_PATH} ) option ( BUILD_SHARED_LIBS "Build shared libraries" ON ) # In MSVC, prevent warnings that can occur when using standard libraries. if ( MSVC ) add_definitions ( -D_CRT_SECURE_NO_WARNINGS ) endif () ## MACROS # Parser macro macro ( parse_arguments prefix arg_names option_names) set ( DEFAULT_ARGS ) foreach ( arg_name ${arg_names} ) set ( ${prefix}_${arg_name} ) endforeach () foreach ( option ${option_names} ) set ( ${prefix}_${option} FALSE ) endforeach () set ( current_arg_name DEFAULT_ARGS ) set ( current_arg_list ) foreach ( arg ${ARGN} ) set ( larg_names ${arg_names} ) list ( FIND larg_names "${arg}" is_arg_name ) if ( is_arg_name GREATER -1 ) set ( ${prefix}_${current_arg_name} ${current_arg_list} ) set ( current_arg_name ${arg} ) set ( current_arg_list ) else () set ( loption_names ${option_names} ) list ( FIND loption_names "${arg}" is_option ) if ( is_option GREATER -1 ) set ( ${prefix}_${arg} TRUE ) else () set ( current_arg_list ${current_arg_list} ${arg} ) endif () endif () endforeach () set ( ${prefix}_${current_arg_name} ${current_arg_list} ) endmacro () # install_executable ( executable_targets ) # Installs any executables generated using "add_executable". # USE: install_executable ( lua ) # NOTE: subdirectories are NOT supported set ( CPACK_COMPONENT_RUNTIME_DISPLAY_NAME "${DIST_NAME} Runtime" ) set ( CPACK_COMPONENT_RUNTIME_DESCRIPTION "Executables and runtime libraries. Installed into ${INSTALL_BIN}." ) macro ( install_executable ) foreach ( _file ${ARGN} ) if ( INSTALL_VERSION ) set_target_properties ( ${_file} PROPERTIES VERSION ${DIST_VERSION} SOVERSION ${DIST_VERSION} ) endif () install ( TARGETS ${_file} RUNTIME DESTINATION ${INSTALL_BIN} COMPONENT Runtime ) endforeach() endmacro () # install_library ( library_targets ) # Installs any libraries generated using "add_library" into apropriate places. # USE: install_library ( libexpat ) # NOTE: subdirectories are NOT supported set ( CPACK_COMPONENT_LIBRARY_DISPLAY_NAME "${DIST_NAME} Development Libraries" ) set ( CPACK_COMPONENT_LIBRARY_DESCRIPTION "Static and import libraries needed for development. Installed into ${INSTALL_LIB} or ${INSTALL_BIN}." ) macro ( install_library ) foreach ( _file ${ARGN} ) if ( INSTALL_VERSION ) set_target_properties ( ${_file} PROPERTIES VERSION ${DIST_VERSION} SOVERSION ${DIST_VERSION} ) endif () install ( TARGETS ${_file} RUNTIME DESTINATION ${INSTALL_BIN} COMPONENT Runtime LIBRARY DESTINATION ${INSTALL_LIB} COMPONENT Runtime ARCHIVE DESTINATION ${INSTALL_LIB} COMPONENT Library ) endforeach() endmacro () # helper function for various install_* functions, for PATTERN/REGEX args. macro ( _complete_install_args ) if ( NOT("${_ARG_PATTERN}" STREQUAL "") ) set ( _ARG_PATTERN PATTERN ${_ARG_PATTERN} ) endif () if ( NOT("${_ARG_REGEX}" STREQUAL "") ) set ( _ARG_REGEX REGEX ${_ARG_REGEX} ) endif () endmacro () # install_header ( files/directories [INTO destination] ) # Install a directories or files into header destination. # USE: install_header ( lua.h luaconf.h ) or install_header ( GL ) # USE: install_header ( mylib.h INTO mylib ) # For directories, supports optional PATTERN/REGEX arguments like install(). set ( CPACK_COMPONENT_HEADER_DISPLAY_NAME "${DIST_NAME} Development Headers" ) set ( CPACK_COMPONENT_HEADER_DESCRIPTION "Headers needed for development. Installed into ${INSTALL_INC}." ) macro ( install_header ) parse_arguments ( _ARG "INTO;PATTERN;REGEX" "" ${ARGN} ) _complete_install_args() foreach ( _file ${_ARG_DEFAULT_ARGS} ) if ( IS_DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}/${_file}" ) install ( DIRECTORY ${_file} DESTINATION ${INSTALL_INC}/${_ARG_INTO} COMPONENT Header ${_ARG_PATTERN} ${_ARG_REGEX} ) else () install ( FILES ${_file} DESTINATION ${INSTALL_INC}/${_ARG_INTO} COMPONENT Header ) endif () endforeach() endmacro () # install_data ( files/directories [INTO destination] ) # This installs additional data files or directories. # USE: install_data ( extra data.dat ) # USE: install_data ( image1.png image2.png INTO images ) # For directories, supports optional PATTERN/REGEX arguments like install(). set ( CPACK_COMPONENT_DATA_DISPLAY_NAME "${DIST_NAME} Data" ) set ( CPACK_COMPONENT_DATA_DESCRIPTION "Application data. Installed into ${INSTALL_DATA}." ) macro ( install_data ) parse_arguments ( _ARG "INTO;PATTERN;REGEX" "" ${ARGN} ) _complete_install_args() foreach ( _file ${_ARG_DEFAULT_ARGS} ) if ( IS_DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}/${_file}" ) install ( DIRECTORY ${_file} DESTINATION ${INSTALL_DATA}/${_ARG_INTO} COMPONENT Data ${_ARG_PATTERN} ${_ARG_REGEX} ) else () install ( FILES ${_file} DESTINATION ${INSTALL_DATA}/${_ARG_INTO} COMPONENT Data ) endif () endforeach() endmacro () # INSTALL_DOC ( files/directories [INTO destination] ) # This installs documentation content # USE: install_doc ( doc/ doc.pdf ) # USE: install_doc ( index.html INTO html ) # For directories, supports optional PATTERN/REGEX arguments like install(). set ( CPACK_COMPONENT_DOCUMENTATION_DISPLAY_NAME "${DIST_NAME} Documentation" ) set ( CPACK_COMPONENT_DOCUMENTATION_DESCRIPTION "Application documentation. Installed into ${INSTALL_DOC}." ) macro ( install_doc ) parse_arguments ( _ARG "INTO;PATTERN;REGEX" "" ${ARGN} ) _complete_install_args() foreach ( _file ${_ARG_DEFAULT_ARGS} ) if ( IS_DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}/${_file}" ) install ( DIRECTORY ${_file} DESTINATION ${INSTALL_DOC}/${_ARG_INTO} COMPONENT Documentation ${_ARG_PATTERN} ${_ARG_REGEX} ) else () install ( FILES ${_file} DESTINATION ${INSTALL_DOC}/${_ARG_INTO} COMPONENT Documentation ) endif () endforeach() endmacro () # install_example ( files/directories [INTO destination] ) # This installs additional examples # USE: install_example ( examples/ exampleA ) # USE: install_example ( super_example super_data INTO super) # For directories, supports optional PATTERN/REGEX argument like install(). set ( CPACK_COMPONENT_EXAMPLE_DISPLAY_NAME "${DIST_NAME} Examples" ) set ( CPACK_COMPONENT_EXAMPLE_DESCRIPTION "Examples and their associated data. Installed into ${INSTALL_EXAMPLE}." ) macro ( install_example ) parse_arguments ( _ARG "INTO;PATTERN;REGEX" "" ${ARGN} ) _complete_install_args() foreach ( _file ${_ARG_DEFAULT_ARGS} ) if ( IS_DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}/${_file}" ) install ( DIRECTORY ${_file} DESTINATION ${INSTALL_EXAMPLE}/${_ARG_INTO} COMPONENT Example ${_ARG_PATTERN} ${_ARG_REGEX} ) else () install ( FILES ${_file} DESTINATION ${INSTALL_EXAMPLE}/${_ARG_INTO} COMPONENT Example ) endif () endforeach() endmacro () # install_test ( files/directories [INTO destination] ) # This installs tests and test files, DOES NOT EXECUTE TESTS # USE: install_test ( my_test data.sql ) # USE: install_test ( feature_x_test INTO x ) # For directories, supports optional PATTERN/REGEX argument like install(). set ( CPACK_COMPONENT_TEST_DISPLAY_NAME "${DIST_NAME} Tests" ) set ( CPACK_COMPONENT_TEST_DESCRIPTION "Tests and associated data. Installed into ${INSTALL_TEST}." ) macro ( install_test ) parse_arguments ( _ARG "INTO;PATTERN;REGEX" "" ${ARGN} ) _complete_install_args() foreach ( _file ${_ARG_DEFAULT_ARGS} ) if ( IS_DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}/${_file}" ) install ( DIRECTORY ${_file} DESTINATION ${INSTALL_TEST}/${_ARG_INTO} COMPONENT Test ${_ARG_PATTERN} ${_ARG_REGEX} ) else () install ( FILES ${_file} DESTINATION ${INSTALL_TEST}/${_ARG_INTO} COMPONENT Test ) endif () endforeach() endmacro () # install_foo ( files/directories [INTO destination] ) # This installs optional or otherwise unneeded content # USE: install_foo ( etc/ example.doc ) # USE: install_foo ( icon.png logo.png INTO icons) # For directories, supports optional PATTERN/REGEX argument like install(). set ( CPACK_COMPONENT_OTHER_DISPLAY_NAME "${DIST_NAME} Unspecified Content" ) set ( CPACK_COMPONENT_OTHER_DESCRIPTION "Other unspecified content. Installed into ${INSTALL_FOO}." ) macro ( install_foo ) parse_arguments ( _ARG "INTO;PATTERN;REGEX" "" ${ARGN} ) _complete_install_args() foreach ( _file ${_ARG_DEFAULT_ARGS} ) if ( IS_DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}/${_file}" ) install ( DIRECTORY ${_file} DESTINATION ${INSTALL_FOO}/${_ARG_INTO} COMPONENT Other ${_ARG_PATTERN} ${_ARG_REGEX} ) else () install ( FILES ${_file} DESTINATION ${INSTALL_FOO}/${_ARG_INTO} COMPONENT Other ) endif () endforeach() endmacro () ## CTest defaults ## CPack defaults set ( CPACK_GENERATOR "ZIP" ) set ( CPACK_STRIP_FILES TRUE ) set ( CPACK_PACKAGE_NAME "${DIST_NAME}" ) set ( CPACK_PACKAGE_VERSION "${DIST_VERSION}") set ( CPACK_PACKAGE_VENDOR "LuaDist" ) set ( CPACK_COMPONENTS_ALL Runtime Library Header Data Documentation Example Other ) include ( CPack ) conky-1.19.6/3rdparty/toluapp/cmake/lua.cmake000066400000000000000000000266271451224556600210610ustar00rootroot00000000000000# LuaDist CMake utility library for Lua. # # Copyright (C) 2007-2012 LuaDist. # by David Manura, Peter Drahos # Redistribution and use of this file is allowed according to the terms of the MIT license. # For details see the COPYRIGHT file distributed with LuaDist. # Please note that the package source code is licensed under its own license. set ( INSTALL_LMOD ${INSTALL_LIB}/lua CACHE PATH "Directory to install Lua modules." ) set ( INSTALL_CMOD ${INSTALL_LIB}/lua CACHE PATH "Directory to install Lua binary modules." ) option ( SKIP_LUA_WRAPPER "Do not build and install Lua executable wrappers." OFF) # List of (Lua module name, file path) pairs. # Used internally by add_lua_test. Built by add_lua_module. set ( _lua_modules ) # utility function: appends path `path` to path `basepath`, properly # handling cases when `path` may be relative or absolute. macro ( _append_path basepath path result ) if ( IS_ABSOLUTE "${path}" ) set ( ${result} "${path}" ) else () set ( ${result} "${basepath}/${path}" ) endif () endmacro () # install_lua_executable ( target source ) # Automatically generate a binary if srlua package is available # The application or its source will be placed into /bin # If the application source did not have .lua suffix then it will be added # USE: lua_executable ( sputnik src/sputnik.lua ) macro ( install_lua_executable _name _source ) get_filename_component ( _source_name ${_source} NAME_WE ) # Find srlua and glue find_program( SRLUA_EXECUTABLE NAMES srlua ) find_program( GLUE_EXECUTABLE NAMES glue ) # Executable output set ( _exe ${CMAKE_CURRENT_BINARY_DIR}/${_name}${CMAKE_EXECUTABLE_SUFFIX} ) if ( NOT SKIP_LUA_WRAPPER AND SRLUA_EXECUTABLE AND GLUE_EXECUTABLE ) # Generate binary gluing the lua code to srlua, this is a robuust approach for most systems add_custom_command( OUTPUT ${_exe} COMMAND ${GLUE_EXECUTABLE} ARGS ${SRLUA_EXECUTABLE} ${_source} ${_exe} DEPENDS ${_source} WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR} VERBATIM ) # Make sure we have a target associated with the binary add_custom_target(${_name} ALL DEPENDS ${_exe} ) # Install with run permissions install ( PROGRAMS ${_exe} DESTINATION ${INSTALL_BIN} COMPONENT Runtime) # Also install source as optional resurce install ( FILES ${_source} DESTINATION ${INSTALL_FOO} COMPONENT Other ) else() # Install into bin as is but without the lua suffix, we assume the executable uses UNIX shebang/hash-bang magic install ( PROGRAMS ${_source} DESTINATION ${INSTALL_BIN} RENAME ${_source_name} COMPONENT Runtime ) endif() endmacro () macro ( _lua_module_helper is_install _name ) parse_arguments ( _MODULE "LINK;ALL_IN_ONE" "" ${ARGN} ) # _target is CMake-compatible target name for module (e.g. socket_core). # _module is relative path of target (e.g. socket/core), # without extension (e.g. .lua/.so/.dll). # _MODULE_SRC is list of module source files (e.g. .lua and .c files). # _MODULE_NAMES is list of module names (e.g. socket.core). if ( _MODULE_ALL_IN_ONE ) string ( REGEX REPLACE "\\..*" "" _target "${_name}" ) string ( REGEX REPLACE "\\..*" "" _module "${_name}" ) set ( _target "${_target}_all_in_one") set ( _MODULE_SRC ${_MODULE_ALL_IN_ONE} ) set ( _MODULE_NAMES ${_name} ${_MODULE_DEFAULT_ARGS} ) else () string ( REPLACE "." "_" _target "${_name}" ) string ( REPLACE "." "/" _module "${_name}" ) set ( _MODULE_SRC ${_MODULE_DEFAULT_ARGS} ) set ( _MODULE_NAMES ${_name} ) endif () if ( NOT _MODULE_SRC ) message ( FATAL_ERROR "no module sources specified" ) endif () list ( GET _MODULE_SRC 0 _first_source ) get_filename_component ( _ext ${_first_source} EXT ) if ( _ext STREQUAL ".lua" ) # Lua source module list ( LENGTH _MODULE_SRC _len ) if ( _len GREATER 1 ) message ( FATAL_ERROR "more than one source file specified" ) endif () set ( _module "${_module}.lua" ) get_filename_component ( _module_dir ${_module} PATH ) get_filename_component ( _module_filename ${_module} NAME ) _append_path ( "${CMAKE_CURRENT_SOURCE_DIR}" "${_first_source}" _module_path ) list ( APPEND _lua_modules "${_name}" "${_module_path}" ) if ( ${is_install} ) install ( FILES ${_first_source} DESTINATION ${INSTALL_LMOD}/${_module_dir} RENAME ${_module_filename} COMPONENT Runtime ) endif () else () # Lua C binary module enable_language ( C ) find_package ( Lua REQUIRED ) include_directories ( ${LUA_INCLUDE_DIR} ) set ( _module "${_module}${CMAKE_SHARED_MODULE_SUFFIX}" ) get_filename_component ( _module_dir ${_module} PATH ) get_filename_component ( _module_filenamebase ${_module} NAME_WE ) foreach ( _thisname ${_MODULE_NAMES} ) list ( APPEND _lua_modules "${_thisname}" "${CMAKE_CURRENT_BINARY_DIR}/\${CMAKE_CFG_INTDIR}/${_module}" ) endforeach () add_library( ${_target} MODULE ${_MODULE_SRC}) target_link_libraries ( ${_target} ${LUA_LIBRARY} ${_MODULE_LINK} ) set_target_properties ( ${_target} PROPERTIES LIBRARY_OUTPUT_DIRECTORY "${_module_dir}" PREFIX "" OUTPUT_NAME "${_module_filenamebase}" ) if ( ${is_install} ) install ( TARGETS ${_target} DESTINATION ${INSTALL_CMOD}/${_module_dir} COMPONENT Runtime) endif () endif () endmacro () # add_lua_module # Builds a Lua source module into a destination locatable by Lua # require syntax. # Binary modules are also supported where this function takes sources and # libraries to compile separated by LINK keyword. # USE: add_lua_module ( socket.http src/http.lua ) # USE2: add_lua_module ( mime.core src/mime.c ) # USE3: add_lua_module ( socket.core ${SRC_SOCKET} LINK ${LIB_SOCKET} ) # USE4: add_lua_module ( ssl.context ssl.core ALL_IN_ONE src/context.c src/ssl.c ) # This form builds an "all-in-one" module (e.g. ssl.so or ssl.dll containing # both modules ssl.context and ssl.core). The CMake target name will be # ssl_all_in_one. # Also sets variable _module_path (relative path where module typically # would be installed). macro ( add_lua_module ) _lua_module_helper ( 0 ${ARGN} ) endmacro () # install_lua_module # This is the same as `add_lua_module` but also installs the module. # USE: install_lua_module ( socket.http src/http.lua ) # USE2: install_lua_module ( mime.core src/mime.c ) # USE3: install_lua_module ( socket.core ${SRC_SOCKET} LINK ${LIB_SOCKET} ) macro ( install_lua_module ) _lua_module_helper ( 1 ${ARGN} ) endmacro () # Builds string representing Lua table mapping Lua modules names to file # paths. Used internally. macro ( _make_module_table _outvar ) set ( ${_outvar} ) list ( LENGTH _lua_modules _n ) if ( ${_n} GREATER 0 ) # avoids cmake complaint foreach ( _i RANGE 1 ${_n} 2 ) list ( GET _lua_modules ${_i} _path ) math ( EXPR _ii ${_i}-1 ) list ( GET _lua_modules ${_ii} _name ) set ( ${_outvar} "${_table} ['${_name}'] = '${_path}'\;\n") endforeach () endif () set ( ${_outvar} "local modules = { ${_table}}" ) endmacro () # add_lua_test ( _testfile [ WORKING_DIRECTORY _working_dir ] ) # Runs Lua script `_testfile` under CTest tester. # Optional named argument `WORKING_DIRECTORY` is current working directory to # run test under (defaults to ${CMAKE_CURRENT_BINARY_DIR}). # Both paths, if relative, are relative to ${CMAKE_CURRENT_SOURCE_DIR}. # Any modules previously defined with install_lua_module are automatically # preloaded (via package.preload) prior to running the test script. # Under LuaDist, set test=true in config.lua to enable testing. # USE: add_lua_test ( test/test1.lua [args...] [WORKING_DIRECTORY dir]) macro ( add_lua_test _testfile ) if ( NOT SKIP_TESTING ) parse_arguments ( _ARG "WORKING_DIRECTORY" "" ${ARGN} ) include ( CTest ) find_program ( LUA NAMES lua lua.bat ) get_filename_component ( TESTFILEABS ${_testfile} ABSOLUTE ) get_filename_component ( TESTFILENAME ${_testfile} NAME ) get_filename_component ( TESTFILEBASE ${_testfile} NAME_WE ) # Write wrapper script. # Note: One simple way to allow the script to find modules is # to just put them in package.preload. set ( TESTWRAPPER ${CMAKE_CURRENT_BINARY_DIR}/${TESTFILENAME} ) _make_module_table ( _table ) set ( TESTWRAPPERSOURCE "local CMAKE_CFG_INTDIR = ... or '.' ${_table} local function preload_modules(modules) for name, path in pairs(modules) do if path:match'%.lua' then package.preload[name] = assert(loadfile(path)) else local name = name:gsub('.*%-', '') -- remove any hyphen prefix local symbol = 'luaopen_' .. name:gsub('%.', '_') --improve: generalize to support all-in-one loader? local path = path:gsub('%$%{CMAKE_CFG_INTDIR%}', CMAKE_CFG_INTDIR) package.preload[name] = assert(package.loadlib(path, symbol)) end end end preload_modules(modules) arg[0] = '${TESTFILEABS}' table.remove(arg, 1) return assert(loadfile '${TESTFILEABS}')(unpack(arg)) " ) if ( _ARG_WORKING_DIRECTORY ) get_filename_component ( TESTCURRENTDIRABS ${_ARG_WORKING_DIRECTORY} ABSOLUTE ) # note: CMake 2.6 (unlike 2.8) lacks WORKING_DIRECTORY parameter. set ( _pre ${CMAKE_COMMAND} -E chdir "${TESTCURRENTDIRABS}" ) endif () file ( WRITE ${TESTWRAPPER} ${TESTWRAPPERSOURCE}) add_test ( NAME ${TESTFILEBASE} COMMAND ${_pre} ${LUA} ${TESTWRAPPER} "${CMAKE_CFG_INTDIR}" ${_ARG_DEFAULT_ARGS} ) endif () # see also http://gdcm.svn.sourceforge.net/viewvc/gdcm/Sandbox/CMakeModules/UsePythonTest.cmake # Note: ${CMAKE_CFG_INTDIR} is a command-line argument to allow proper # expansion by the native build tool. endmacro () # Converts Lua source file `_source` to binary string embedded in C source # file `_target`. Optionally compiles Lua source to byte code (not available # under LuaJIT2, which doesn't have a bytecode loader). Additionally, Lua # versions of bin2c [1] and luac [2] may be passed respectively as additional # arguments. # # [1] http://lua-users.org/wiki/BinToCee # [2] http://lua-users.org/wiki/LuaCompilerInLua function ( add_lua_bin2c _target _source ) find_program ( LUA NAMES lua lua.bat ) execute_process ( COMMAND ${LUA} -e "string.dump(function()end)" RESULT_VARIABLE _LUA_DUMP_RESULT ERROR_QUIET ) if ( NOT ${_LUA_DUMP_RESULT} ) SET ( HAVE_LUA_DUMP true ) endif () message ( "-- string.dump=${HAVE_LUA_DUMP}" ) if ( ARGV2 ) get_filename_component ( BIN2C ${ARGV2} ABSOLUTE ) set ( BIN2C ${LUA} ${BIN2C} ) else () find_program ( BIN2C NAMES bin2c bin2c.bat ) endif () if ( HAVE_LUA_DUMP ) if ( ARGV3 ) get_filename_component ( LUAC ${ARGV3} ABSOLUTE ) set ( LUAC ${LUA} ${LUAC} ) else () find_program ( LUAC NAMES luac luac.bat ) endif () endif ( HAVE_LUA_DUMP ) message ( "-- bin2c=${BIN2C}" ) message ( "-- luac=${LUAC}" ) get_filename_component ( SOURCEABS ${_source} ABSOLUTE ) if ( HAVE_LUA_DUMP ) get_filename_component ( SOURCEBASE ${_source} NAME_WE ) add_custom_command ( OUTPUT ${_target} DEPENDS ${_source} COMMAND ${LUAC} -o ${CMAKE_CURRENT_BINARY_DIR}/${SOURCEBASE}.lo ${SOURCEABS} COMMAND ${BIN2C} ${CMAKE_CURRENT_BINARY_DIR}/${SOURCEBASE}.lo ">${_target}" ) else () add_custom_command ( OUTPUT ${_target} DEPENDS ${SOURCEABS} COMMAND ${BIN2C} ${_source} ">${_target}" ) endif () endfunction() conky-1.19.6/3rdparty/toluapp/config_linux.py000066400000000000000000000012571451224556600212440ustar00rootroot00000000000000 ## This is the linux configuration file # use 'scons -h' to see the list of command line options available # Compiler flags (based on Debian's installation of lua) #LINKFLAGS = ['-g'] CCFLAGS = ['-O2', '-ansi', '-Wall'] #CCFLAGS = ['-I/usr/include/lua50', '-g'] # this is the default directory for installation. Files will be installed on # /bin, /lib and /include when you run 'scons install' # # You can also specify this directory on the command line with the 'prefix' # option # # You can see more 'generic' options for POSIX systems on config_posix.py prefix = '/usr/local' # libraries (based on Debian's installation of lua) LIBS = ['lua', 'dl', 'm'] conky-1.19.6/3rdparty/toluapp/config_msvc.py000066400000000000000000000014051451224556600210500ustar00rootroot00000000000000 ## This is the MSVC configuration file # use 'scons -h' to see the list of command line options available # flags for the compiler CCFLAGS = ['/nologo'] # this is the default directory for installation. Files will be installed on # /bin, /lib and /include when you run 'scons install' # # You can also specify this directory on the command line with the 'prefix' # option # # If you leave it as 'None', we'll try to auto-detect it (as 'PLATFORMSDKDIR' # detected by SCons). prefix = None # (it's a string) # the libraries LIBS = ['lua', 'lualib'] # linkflags LINKFLAGS = ['/nologo'] ## We need to specifiy the environment for the PATH and LIB and all those # parameters cl tales from it import os ENV = os.environ conky-1.19.6/3rdparty/toluapp/config_posix.py000066400000000000000000000011001451224556600212320ustar00rootroot00000000000000 ## This is the POSIX configuration file (will be included for cygwin, mingw # and possibly mac OSX and BSDs) # use 'scons -h' to see the list of command line options available # flags for the compiler #CCFLAGS = [] CCFLAGS = ['-O2', '-ansi', '-Wall'] # this is the default directory for installation. Files will be installed on # /bin, /lib and /include when you run 'scons install' # # You can also specify this directory on the command line with the 'prefix' # option prefix = '/usr/local' # libraries LIBS = ['lua', 'lualib', 'm'] import os conky-1.19.6/3rdparty/toluapp/custom-5.1.py000066400000000000000000000003301451224556600203620ustar00rootroot00000000000000CCFLAGS = ['-I/usr/include/lua5.1', '-O2', '-ansi'] #LIBPATH = ['/usr/local/lib'] LIBS = ['lua5.1', 'dl', 'm'] prefix = '/mingw' #build_dev=1 tolua_bin = 'tolua++5.1' tolua_lib = 'tolua++5.1' TOLUAPP = 'tolua++5.1' conky-1.19.6/3rdparty/toluapp/debian/000077500000000000000000000000001451224556600174235ustar00rootroot00000000000000conky-1.19.6/3rdparty/toluapp/debian/README000066400000000000000000000002321451224556600203000ustar00rootroot00000000000000The Debian Package tolua++ ---------------------------- Comments regarding the Package Ariel Manzur , Thu, 30 Dec 2004 11:59:14 -0300 conky-1.19.6/3rdparty/toluapp/debian/README.Debian000066400000000000000000000002611451224556600214630ustar00rootroot00000000000000tolua++ for Debian ------------------ -- Ariel Manzur , Thu, 30 Dec 2004 11:59:14 -0300 conky-1.19.6/3rdparty/toluapp/debian/changelog000066400000000000000000000062031451224556600212760ustar00rootroot00000000000000tolua++ (1.0.92pre1-1) unstable; urgency=low * fixed array bound check bug * moved parsing of 'extern' keyword to the parser * fixed bug in module name generation from package filename * added -E command line option -- Ariel Manzur Mon, 13 Mar 2006 19:28:14 -0300 tolua++ (1.0.8pre3-1) unstable; urgency=low * changed tolua_touserdata * fixed bugs -- Ariel Manzur Tue, 13 Dec 2005 01:46:33 +0100 tolua++ (1.0.7-1) unstable; urgency=low * added -C flag * added object access * added parser_hook * merged Mildred's patch (sorry, no last name): code on open function is nested, embedded lua chunks have better names -- Ariel Manzur Tue, 18 Oct 2005 22:51:04 -0300 tolua++ (1.0.6-1) unstable; urgency=low * fixed parser bugs * added tolua_property * added TOLUA_PROTECTED_DESTRUCTOR * added inheritance from C objects by lua objects * fixed class constructor bug (calling the class name directly works) -- Ariel Manzur Sat, 6 Aug 2005 09:24:10 -0300 tolua++ (1.0.6pre3-1) unstable; urgency=low * fixed tolua_tocppstring -- Ariel Manzur Sun, 26 Jun 2005 21:01:50 -0300 tolua++ (1.0.6pre2-1) unstable; urgency=low * fixed c compilation bug * added -D flag * fixed tolua.releaseownership? -- Ariel Manzur Mon, 2 May 2005 20:56:04 -0300 tolua++ (1.0.6pre1-1) unstable; urgency=low * something -- Ariel Manzur Wed, 27 Apr 2005 00:09:41 -0300 tolua++ (1.0.5-1) unstable; urgency=low * fixed missed inheritance bug. * ready for 1.0.5 -- Ariel Manzur Fri, 8 Apr 2005 23:15:19 -0300 tolua++ (1.0.5~pre6-1) unstable; urgency=low * fixed bug in tolua.cast (introduced on previous version) -- Ariel Manzur Sat, 2 Apr 2005 00:36:45 -0300 tolua++ (1.0.5~pre5-1) unstable; urgency=low * fixed bug in tolua.cast -- Ariel Manzur Fri, 18 Mar 2005 01:13:55 -0300 tolua++ (1.0.5~pre4-1) unstable; urgency=low * fixed support for overloading methods across multiple class definitions -- Ariel Manzur Thu, 3 Mar 2005 19:03:04 -0300 tolua++ (1.0.5~pre3-1) unstable; urgency=low * fixed bugs in parser -- Ariel Manzur Sun, 20 Feb 2005 19:56:32 -0300 tolua++ (1.0.5~pre2-1) unstable; urgency=low * added tolua_outside -- Ariel Manzur Fri, 11 Feb 2005 02:50:45 -0300 tolua++ (1.0.5~pre1-1) unstable; urgency=low * fixed bug in type detection * fixed bug in code output for static variables -- Ariel Manzur Thu, 3 Feb 2005 02:05:43 -0300 tolua++ (1.0.4-3) unstable; urgency=low * jumped the gun on the previous release -- Ariel Manzur Thu, 20 Jan 2005 23:20:17 -0300 tolua++ (1.0.4-2) unstable; urgency=low * added optimize flags for binary package -- Ariel Manzur Fri, 14 Jan 2005 00:43:09 -0300 tolua++ (1.0.4-1) unstable; urgency=low * Initial Release. -- Ariel Manzur Thu, 30 Dec 2004 11:59:14 -0300 Local variables: mode: debian-changelog End: conky-1.19.6/3rdparty/toluapp/debian/compat000066400000000000000000000000021451224556600206210ustar00rootroot000000000000004 conky-1.19.6/3rdparty/toluapp/debian/conffiles.ex000066400000000000000000000003221451224556600217260ustar00rootroot00000000000000# # If you want to use this conffile, remove all comments and put files that # you want dpkg to process here using their absolute pathnames. # See the policy manual # # for example: # /etc/tolua++/tolua++.conf conky-1.19.6/3rdparty/toluapp/debian/control000066400000000000000000000007121451224556600210260ustar00rootroot00000000000000Source: tolua++ Section: unknown Priority: optional Maintainer: Ariel Manzur Build-Depends: debhelper (>= 4.0.0), scons, liblua50-dev, liblualib50-dev Standards-Version: 3.6.1 Package: tolua++ Architecture: any Depends: ${shlibs:Depends}, ${misc:Depends}, liblua50-dev, liblualib50-dev Description: tolua++ tolua++ is an extended version of tolua, a tool to integrate C/C++ code with Lua. tolua++ includes new features oriented to c++. conky-1.19.6/3rdparty/toluapp/debian/copyright000066400000000000000000000010601451224556600213530ustar00rootroot00000000000000This package is maintained by Ariel Manzur on Sat, 08 Jan 2005 06:11:22 -0300 Latest version can be found on http://www.codenix.com/~tolua/ Upstream Author(s): Waldemar Celes , Ariel Manzur Copyright: Quoted from the README file accompanying tolua: 'tolua is freely available; you can redistribute it and/or modify it. The software provided hereunder is on an "as is" basis, and the author has no obligation to provide maintenance, support, updates, enhancements, or modifications.' conky-1.19.6/3rdparty/toluapp/debian/cron.d.ex000066400000000000000000000001231451224556600211400ustar00rootroot00000000000000# # Regular cron jobs for the tolua++ package # 0 4 * * * root tolua++_maintenance conky-1.19.6/3rdparty/toluapp/debian/dirs000066400000000000000000000000351451224556600203050ustar00rootroot00000000000000usr/bin usr/lib usr/include conky-1.19.6/3rdparty/toluapp/debian/docs000066400000000000000000000000071451224556600202730ustar00rootroot00000000000000README conky-1.19.6/3rdparty/toluapp/debian/emacsen-install.ex000066400000000000000000000023231451224556600230400ustar00rootroot00000000000000#! /bin/sh -e # /usr/lib/emacsen-common/packages/install/tolua++ # Written by Jim Van Zandt , borrowing heavily # from the install scripts for gettext by Santiago Vila # and octave by Dirk Eddelbuettel . FLAVOR=$1 PACKAGE=tolua++ if [ ${FLAVOR} = emacs ]; then exit 0; fi echo install/${PACKAGE}: Handling install for emacsen flavor ${FLAVOR} #FLAVORTEST=`echo $FLAVOR | cut -c-6` #if [ ${FLAVORTEST} = xemacs ] ; then # SITEFLAG="-no-site-file" #else # SITEFLAG="--no-site-file" #fi FLAGS="${SITEFLAG} -q -batch -l path.el -f batch-byte-compile" ELDIR=/usr/share/emacs/site-lisp/${PACKAGE} ELCDIR=/usr/share/${FLAVOR}/site-lisp/${PACKAGE} # Install-info-altdir does not actually exist. # Maybe somebody will write it. if test -x /usr/sbin/install-info-altdir; then echo install/${PACKAGE}: install Info links for ${FLAVOR} install-info-altdir --quiet --section "" "" --dirname=${FLAVOR} /usr/info/${PACKAGE}.info.gz fi install -m 755 -d ${ELCDIR} cd ${ELDIR} FILES=`echo *.el` cp ${FILES} ${ELCDIR} cd ${ELCDIR} cat << EOF > path.el (setq load-path (cons "." load-path) byte-compile-warnings nil) EOF ${FLAVOR} ${FLAGS} ${FILES} rm -f *.el path.el exit 0 conky-1.19.6/3rdparty/toluapp/debian/emacsen-remove.ex000066400000000000000000000007211451224556600226670ustar00rootroot00000000000000#!/bin/sh -e # /usr/lib/emacsen-common/packages/remove/tolua++ FLAVOR=$1 PACKAGE=tolua++ if [ ${FLAVOR} != emacs ]; then if test -x /usr/sbin/install-info-altdir; then echo remove/${PACKAGE}: removing Info links for ${FLAVOR} install-info-altdir --quiet --remove --dirname=${FLAVOR} /usr/info/tolua++.info.gz fi echo remove/${PACKAGE}: purging byte-compiled files for ${FLAVOR} rm -rf /usr/share/${FLAVOR}/site-lisp/${PACKAGE} fi conky-1.19.6/3rdparty/toluapp/debian/emacsen-startup.ex000066400000000000000000000014521451224556600230760ustar00rootroot00000000000000;; -*-emacs-lisp-*- ;; ;; Emacs startup file for the Debian tolua++ package ;; ;; Originally contributed by Nils Naumann ;; Modified by Dirk Eddelbuettel ;; Adapted for dh-make by Jim Van Zandt ;; The tolua++ package follows the Debian/GNU Linux 'emacsen' policy and ;; byte-compiles its elisp files for each 'emacs flavor' (emacs19, ;; xemacs19, emacs20, xemacs20...). The compiled code is then ;; installed in a subdirectory of the respective site-lisp directory. ;; We have to add this to the load-path: (let ((package-dir (concat "/usr/share/" (symbol-name flavor) "/site-lisp/tolua++"))) (when (file-directory-p package-dir) (setq load-path (cons package-dir load-path)))) conky-1.19.6/3rdparty/toluapp/debian/init.d.ex000066400000000000000000000035261451224556600211540ustar00rootroot00000000000000#! /bin/sh # # skeleton example file to build /etc/init.d/ scripts. # This file should be used to construct scripts for /etc/init.d. # # Written by Miquel van Smoorenburg . # Modified for Debian # by Ian Murdock . # # Version: @(#)skeleton 1.9 26-Feb-2001 miquels@cistron.nl # PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin DAEMON=/usr/sbin/tolua++ NAME=tolua++ DESC=tolua++ test -x $DAEMON || exit 0 # Include tolua++ defaults if available if [ -f /etc/default/tolua++ ] ; then . /etc/default/tolua++ fi set -e case "$1" in start) echo -n "Starting $DESC: " start-stop-daemon --start --quiet --pidfile /var/run/$NAME.pid \ --exec $DAEMON -- $DAEMON_OPTS echo "$NAME." ;; stop) echo -n "Stopping $DESC: " start-stop-daemon --stop --quiet --pidfile /var/run/$NAME.pid \ --exec $DAEMON echo "$NAME." ;; #reload) # # If the daemon can reload its config files on the fly # for example by sending it SIGHUP, do it here. # # If the daemon responds to changes in its config file # directly anyway, make this a do-nothing entry. # # echo "Reloading $DESC configuration files." # start-stop-daemon --stop --signal 1 --quiet --pidfile \ # /var/run/$NAME.pid --exec $DAEMON #;; restart|force-reload) # # If the "reload" option is implemented, move the "force-reload" # option to the "reload" entry above. If not, "force-reload" is # just the same as "restart". # echo -n "Restarting $DESC: " start-stop-daemon --stop --quiet --pidfile \ /var/run/$NAME.pid --exec $DAEMON sleep 1 start-stop-daemon --start --quiet --pidfile \ /var/run/$NAME.pid --exec $DAEMON -- $DAEMON_OPTS echo "$NAME." ;; *) N=/etc/init.d/$NAME # echo "Usage: $N {start|stop|restart|reload|force-reload}" >&2 echo "Usage: $N {start|stop|restart|force-reload}" >&2 exit 1 ;; esac exit 0 conky-1.19.6/3rdparty/toluapp/debian/manpage.1.ex000066400000000000000000000033251451224556600215330ustar00rootroot00000000000000.\" Hey, EMACS: -*- nroff -*- .\" First parameter, NAME, should be all caps .\" Second parameter, SECTION, should be 1-8, maybe w/ subsection .\" other parameters are allowed: see man(7), man(1) .TH TOLUA++ SECTION "December 30, 2004" .\" Please adjust this date whenever revising the manpage. .\" .\" Some roff macros, for reference: .\" .nh disable hyphenation .\" .hy enable hyphenation .\" .ad l left justify .\" .ad b justify to both left and right margins .\" .nf disable filling .\" .fi enable filling .\" .br insert line break .\" .sp insert n+1 empty lines .\" for manpage-specific macros, see man(7) .SH NAME tolua++ \- program to do something .SH SYNOPSIS .B tolua++ .RI [ options ] " files" ... .br .B bar .RI [ options ] " files" ... .SH DESCRIPTION This manual page documents briefly the .B tolua++ and .B bar commands. .PP .\" TeX users may be more comfortable with the \fB\fP and .\" \fI\fP escape sequences to invode bold face and italics, .\" respectively. \fBtolua++\fP is a program that... .SH OPTIONS These programs follow the usual GNU command line syntax, with long options starting with two dashes (`-'). A summary of options is included below. For a complete description, see the Info files. .TP .B \-h, \-\-help Show summary of options. .TP .B \-v, \-\-version Show version of program. .SH SEE ALSO .BR bar (1), .BR baz (1). .br The programs are documented fully by .IR "The Rise and Fall of a Fooish Bar" , available via the Info system. .SH AUTHOR tolua++ was written by . .PP This manual page was written by Ariel Manzur , for the Debian project (but may be used by others). conky-1.19.6/3rdparty/toluapp/debian/manpage.sgml.ex000066400000000000000000000110461451224556600223340ustar00rootroot00000000000000 manpage.1'. You may view the manual page with: `docbook-to-man manpage.sgml | nroff -man | less'. A typical entry in a Makefile or Makefile.am is: manpage.1: manpage.sgml docbook-to-man $< > $@ The docbook-to-man binary is found in the docbook-to-man package. Please remember that if you create the nroff version in one of the debian/rules file targets (such as build), you will need to include docbook-to-man in your Build-Depends control field. --> FIRSTNAME"> SURNAME"> December 30, 2004"> SECTION"> puntob@gmail.com"> TOLUA++"> Debian"> GNU"> GPL"> ]>
&dhemail;
&dhfirstname; &dhsurname; 2003 &dhusername; &dhdate;
&dhucpackage; &dhsection; &dhpackage; program to do something &dhpackage; DESCRIPTION This manual page documents briefly the &dhpackage; and bar commands. This manual page was written for the &debian; distribution because the original program does not have a manual page. Instead, it has documentation in the &gnu; Info format; see below. &dhpackage; is a program that... OPTIONS These programs follow the usual &gnu; command line syntax, with long options starting with two dashes (`-'). A summary of options is included below. For a complete description, see the Info files. Show summary of options. Show version of program. SEE ALSO bar (1), baz (1). The programs are documented fully by The Rise and Fall of a Fooish Bar available via the Info system. AUTHOR This manual page was written by &dhusername; &dhemail; for the &debian; system (but may be used by others). Permission is granted to copy, distribute and/or modify this document under the terms of the &gnu; General Public License, Version 2 any later version published by the Free Software Foundation. On Debian systems, the complete text of the GNU General Public License can be found in /usr/share/common-licenses/GPL.
conky-1.19.6/3rdparty/toluapp/debian/manpage.xml.ex000066400000000000000000000107731451224556600222000ustar00rootroot00000000000000 .
will be generated. You may view the manual page with: nroff -man .
| less'. A typical entry in a Makefile or Makefile.am is: DB2MAN=/usr/share/sgml/docbook/stylesheet/xsl/nwalsh/\ manpages/docbook.xsl XP=xsltproc -''-nonet manpage.1: manpage.dbk $(XP) $(DB2MAN) $< The xsltproc binary is found in the xsltproc package. The XSL files are in docbook-xsl. Please remember that if you create the nroff version in one of the debian/rules file targets (such as build), you will need to include xsltproc and docbook-xsl in your Build-Depends control field. --> FIRSTNAME"> SURNAME"> December 30, 2004"> SECTION"> puntob@gmail.com"> TOLUA++"> Debian"> GNU"> GPL"> ]>
&dhemail;
&dhfirstname; &dhsurname; 2003 &dhusername; &dhdate;
&dhucpackage; &dhsection; &dhpackage; program to do something &dhpackage; DESCRIPTION This manual page documents briefly the &dhpackage; and bar commands. This manual page was written for the &debian; distribution because the original program does not have a manual page. Instead, it has documentation in the &gnu; Info format; see below. &dhpackage; is a program that... OPTIONS These programs follow the usual &gnu; command line syntax, with long options starting with two dashes (`-'). A summary of options is included below. For a complete description, see the Info files. Show summary of options. Show version of program. SEE ALSO bar (1), baz (1). The programs are documented fully by The Rise and Fall of a Fooish Bar available via the Info system. AUTHOR This manual page was written by &dhusername; &dhemail; for the &debian; system (but may be used by others). Permission is granted to copy, distribute and/or modify this document under the terms of the &gnu; General Public License, Version 2 any later version published by the Free Software Foundation. On Debian systems, the complete text of the GNU General Public License can be found in /usr/share/common-licenses/GPL.
conky-1.19.6/3rdparty/toluapp/debian/menu.ex000066400000000000000000000001661451224556600207300ustar00rootroot00000000000000?package(tolua++):needs="X11|text|vc|wm" section="Apps/see-menu-manual"\ title="tolua++" command="/usr/bin/tolua++" conky-1.19.6/3rdparty/toluapp/debian/postinst.ex000066400000000000000000000016361451224556600216520ustar00rootroot00000000000000#! /bin/sh # postinst script for tolua++ # # see: dh_installdeb(1) set -e # summary of how this script can be called: # * `configure' # * `abort-upgrade' # * `abort-remove' `in-favour' # # * `abort-deconfigure' `in-favour' # `removing' # # for details, see http://www.debian.org/doc/debian-policy/ or # the debian-policy package # case "$1" in configure) ;; abort-upgrade|abort-remove|abort-deconfigure) ;; *) echo "postinst called with unknown argument \`$1'" >&2 exit 1 ;; esac # dh_installdeb will replace this with shell code automatically # generated by other debhelper scripts. #DEBHELPER# exit 0 conky-1.19.6/3rdparty/toluapp/debian/postrm.ex000066400000000000000000000016261451224556600213120ustar00rootroot00000000000000#! /bin/sh # postrm script for tolua++ # # see: dh_installdeb(1) set -e # summary of how this script can be called: # * `remove' # * `purge' # * `upgrade' # * `failed-upgrade' # * `abort-install' # * `abort-install' # * `abort-upgrade' # * `disappear' overwrit>r> # for details, see http://www.debian.org/doc/debian-policy/ or # the debian-policy package case "$1" in purge|remove|upgrade|failed-upgrade|abort-install|abort-upgrade|disappear) ;; *) echo "postrm called with unknown argument \`$1'" >&2 exit 1 esac # dh_installdeb will replace this with shell code automatically # generated by other debhelper scripts. #DEBHELPER# exit 0 conky-1.19.6/3rdparty/toluapp/debian/preinst.ex000066400000000000000000000016351451224556600214520ustar00rootroot00000000000000#! /bin/sh # preinst script for tolua++ # # see: dh_installdeb(1) set -e # summary of how this script can be called: # * `install' # * `install' # * `upgrade' # * `abort-upgrade' # # for details, see http://www.debian.org/doc/debian-policy/ or # the debian-policy package case "$1" in install|upgrade) # if [ "$1" = "upgrade" ] # then # start-stop-daemon --stop --quiet --oknodo \ # --pidfile /var/run/tolua++.pid \ # --exec /usr/sbin/tolua++ 2>/dev/null || true # fi ;; abort-upgrade) ;; *) echo "preinst called with unknown argument \`$1'" >&2 exit 1 ;; esac # dh_installdeb will replace this with shell code automatically # generated by other debhelper scripts. #DEBHELPER# exit 0 conky-1.19.6/3rdparty/toluapp/debian/prerm.ex000066400000000000000000000016661451224556600211170ustar00rootroot00000000000000#! /bin/sh # prerm script for tolua++ # # see: dh_installdeb(1) set -e # summary of how this script can be called: # * `remove' # * `upgrade' # * `failed-upgrade' # * `remove' `in-favour' # * `deconfigure' `in-favour' # `removing' # # for details, see http://www.debian.org/doc/debian-policy/ or # the debian-policy package case "$1" in remove|upgrade|deconfigure) # install-info --quiet --remove /usr/info/tolua++.info.gz ;; failed-upgrade) ;; *) echo "prerm called with unknown argument \`$1'" >&2 exit 1 ;; esac # dh_installdeb will replace this with shell code automatically # generated by other debhelper scripts. #DEBHELPER# exit 0 conky-1.19.6/3rdparty/toluapp/debian/rules000077500000000000000000000037761451224556600205200ustar00rootroot00000000000000#!/usr/bin/make -f # -*- makefile -*- # Sample debian/rules that uses debhelper. # This file was originally written by Joey Hess and Craig Small. # As a special exception, when this file is copied by dh-make into a # dh-make output file, you may use that output file without restriction. # This special exception was added by Craig Small in version 0.37 of dh-make. # Uncomment this to turn on verbose mode. #export DH_VERBOSE=1 CFLAGS = -Wall -g ifneq (,$(findstring noopt,$(DEB_BUILD_OPTIONS))) CFLAGS += -O0 else CFLAGS += -O2 endif configure: configure-stamp configure-stamp: dh_testdir # Add here commands to configure the package. scons build_dev=0 prefix=$(CURDIR)/debian/tolua++/usr configure touch configure-stamp build: build-stamp build-stamp: configure-stamp dh_testdir # Add here commands to compile the package. #$(MAKE) scons all #docbook-to-man debian/tolua++.sgml > tolua++.1 touch build-stamp clean: dh_testdir dh_testroot rm -f build-stamp configure-stamp # Add here commands to clean up after the build process. #-$(MAKE) clean scons -c build_dev=0 all configure dh_clean install: build dh_testdir dh_testroot dh_clean -k dh_installdirs # Add here commands to install the package into debian/tolua++. #$(MAKE) install DESTDIR=$(CURDIR)/debian/tolua++ scons install # Build architecture-independent files here. binary-indep: build install # We have nothing to do by default. # Build architecture-dependent files here. binary-arch: build install dh_testdir dh_testroot dh_installchangelogs dh_installdocs dh_installexamples # dh_install # dh_installmenu # dh_installdebconf # dh_installlogrotate # dh_installemacsen # dh_installpam # dh_installmime # dh_installinit # dh_installcron # dh_installinfo dh_installman dh_link dh_strip dh_compress dh_fixperms # dh_perl # dh_python # dh_makeshlibs dh_installdeb dh_shlibdeps dh_gencontrol dh_md5sums dh_builddeb binary: binary-indep binary-arch .PHONY: build clean binary-indep binary-arch binary install configure conky-1.19.6/3rdparty/toluapp/debian/tolua++-default.ex000066400000000000000000000003531451224556600226560ustar00rootroot00000000000000# Defaults for tolua++ initscript # sourced by /etc/init.d/tolua++ # installed at /etc/default/tolua++ by the maintainer scripts # # This is a POSIX shell fragment # # Additional options that are passed to the Daemon. DAEMON_OPTS="" conky-1.19.6/3rdparty/toluapp/debian/tolua++.doc-base.EX000066400000000000000000000010071451224556600226050ustar00rootroot00000000000000Document: tolua++ Title: Debian tolua++ Manual Author: Abstract: This manual describes what tolua++ is and how it can be used to manage online manuals on Debian systems. Section: unknown Format: debiandoc-sgml Files: /usr/share/doc/tolua++/tolua++.sgml.gz Format: postscript Files: /usr/share/doc/tolua++/tolua++.ps.gz Format: text Files: /usr/share/doc/tolua++/tolua++.text.gz Format: HTML Index: /usr/share/doc/tolua++/html/index.html Files: /usr/share/doc/tolua++/html/*.html conky-1.19.6/3rdparty/toluapp/debian/watch.ex000066400000000000000000000004271451224556600210720ustar00rootroot00000000000000# Example watch control file for uscan # Rename this file to "watch" and then you can run the "uscan" command # to check for upstream updates and more. # Site Directory Pattern Version Script version=2 sunsite.unc.edu /pub/Linux/Incoming tolua++-(.*)\.tar\.gz debian uupdate conky-1.19.6/3rdparty/toluapp/dist.info000066400000000000000000000004741451224556600200260ustar00rootroot00000000000000--- This file is part of LuaDist project name = "toluapp" version = "1.0.93" desc = "tolua++ is an extension of toLua, a tool to integrate C/Cpp code with Lua." author = "Waldemar Celes, Ariel Manzur" license = "as-is" url = "http://www.codenix.com/~tolua/" maintainer = "Peter Kapec" depends = { "lua ~> 5.1" } conky-1.19.6/3rdparty/toluapp/doc/000077500000000000000000000000001451224556600167465ustar00rootroot00000000000000conky-1.19.6/3rdparty/toluapp/doc/index.html000066400000000000000000000225111451224556600207440ustar00rootroot00000000000000 toLua++ - binding c/c++ code to lua

tolua++ - Home

news - download - documentation - installing - contact - lua_qt - Codenix


tolua++ is an extended version of tolua, a tool to integrate C/C++ code with Lua. tolua++ includes new features oriented to c++ such as:

As well as other features and bugfixes.


News:

15/02/09: Version 1.0.93 released. Some bugfixes and new features:

  • Build process bootstraps.
  • Added hooks to handle custom types.
  • Added hooks to handle exceptions.
  • Fixed issues with newer GCC compilers.
  • Changed to MIT license. See COPYRIGHT file for details.
27/04/06: Version 1.0.92 released. Some bugfixes and new features:

  • Fixed garbage collector bug for C objects.
  • Fixed problems with C compilers (including microsoft's)
  • Added a .proj file to build with Visual Studio 7 (contributed by Makoto Hamanaka).
  • New command line option: -E to define extra values
  • New command line option: -t to associate C++ types with their lua names (see the manual for details)
25/02/06: Version 1.0.91 released. This version contains a small garbage collection bugfix for 1.0.90 (thanks to Rolf E. Thorup for the report), everyone should upgrade.

18/02/06: Version 1.0.90 released. Some bugfixes and new features:

  • lua 5.1 support (see README-5.1)
  • Support for casting operators (for example operator const char();)
  • New utility functions, tolua.setpeer and tolua.getpeer, for easier (and faster) inheritance from C/C++ objects (only for lua 5.1)
  • Some small API changes (see the compatibility section of the manual)

18/10/05: Version 1.0.7 released. Some bugfixes and new features:

  • New command line option: -C, to disable the cleanup of included lua code (for easier debugging).
  • Merged Mildred's patch: embedded lua chunks have better names, code on package initializer function is nested.
  • New hook: parser_hook, allows modifications to the behavior of the main parser.
  • Objects can be private (or protected). This doesn't affect the normal usage (everything is public by default), but it's useful to declare types that don't export any code, but serve as 'support' for other declarations.
  • Misc bugfixes.

01/9/05: Version 1.0.6 released. Several bugfixes and new features:

  • Classes can have properties, using the 'tolua_property' keyboard. Property types are customizable.
  • Added a command line flag -D, to disable automatic generation of destructors for all classes with constructors (for compatibility with tolua5)
  • Classes with protected or private destructors can be tagged individually using the "TOLUA_PROTECTED_DESTRUCTOR" macro.
  • Added utility function "tolua.inherit", to allow a lua table to "inherit" from an instance of a C/C++ class
  • Fixed class constructor bug (it is now possible to use 'ClassName()' to create a lua-owned instance of the class without problems)
  • Misc bugfixes.

10/4/05: Version 1.0.5 released. This version contains some minor bugfixes and a new feature, the tolua_outside keyword, used to specify regular functions as methods of classes or structs. This release is also paired with lua_qt version 0.0.1a.

1/2/05: version 1.0.4 released. This version contains some bugfixes and new features:

  • Ability to customize tolua++'s behaviour to add functionality.
  • Basic support for multiple inheritance.
  • Several bugfixes on the parser.
  • Debian package available for download.

Most of the changes on this version were added for lua_qt, a package to bind the Qt toolkit to lua.

20/9/04: version 1.0.3 released. This version contains major bugfixes:

  • Fixed bugs in object tracking (the 'memory address' bug; there's still some work left, but people should be able to use unions with no problems)
  • Fixed parser bugs, functions with template parameters should work, also functions with default parameters that call constructos and with commas on them should work.
  • Added a __call method for class names, to replace new_local to create instances owned by lua.
  • Fixed other minor bugs.
  • Removed the link to win32 binaries, since I aparently don't know what the hell I'm doing with a microsoft compiler ;-)

Everyone should upgrade.

23/10/03: version 1.0.2 released. This version contains major bugfixes:

  • Fixed bugs in gargabe collection (thanks to Christian Vogler for doing all the work :-)
  • namespaces and nested types are now fully supported.
  • Fixed other minor bugs.

Everyone should upgrade.


Downloading

The latest development version of the code is available through SVN from tolua++'s BerliOS project page. You can checkout using: svn checkout svn://svn.berlios.de/toluapp/trunk The tolua++ source is freely available by http. The software provided under the terms of the MIT license. See the COPYRIGHT file distributed with the source.

Current version is 1.0.93, older versions:

  • tolua++-1.0.93.tar.bz2
  • tolua++-1.0.92.tar.bz2
  • tolua++-1.0.91.tar.bz2
  • tolua++_1.0.7-1.tar.gz [deb]
  • tolua++_1.0.6-1.tar.gz [deb]
  • tolua++_1.0.5-1.tar.gz [deb]
  • tolua++-1.0.4.tar.bz2 [deb]
  • tolua++-1.0.3.tar.bz2
  • tolua++-1.0.2.tar.bz2
  • tolua++-1.0.tar.bz2

    Documentation

    You can find the manual here or under the doc/ directory on the distribution.

    I'll also be adding interesting addons/examples to my page on the lua-users wiki.


    Instalation

    tolua++ uses SCons to build. SCons is based on python, you can get a stand-alone version on their website. After you have SCons, follow this simple instructions:

  • Type 'scons all' to compile.
  • Type 'scons install'. The default install prefix is /usr/local, so if you are on a POSIX system, it should work. On other systems, you can change it with the 'prefix' option on command line.

    scons prefix=/usr install

    or on windows

    scons "prefix=c:\Program Files\Visual C" install

    Use scons -h to see a list of available command line options.

    The files you need (in case you want to do a manual install) are:

    • bin/tolua++[.exe] - the main binary
    • include/tolua++.h - the header file
    • lib/libtolua++.a or lib/tolua++.lib - the library
  • See INSTALL for instructions on how to install without SCons. There are also instructions on how to build without scons at the lua-users wiki (if you know the author of this, contact me)
  • For lua 5.1, see README-5.1
    tolua++ and this website are maintained by Ariel Manzur.
    Contact us with any bugs, fixes, suggestions, or questions about this package.
    conky-1.19.6/3rdparty/toluapp/doc/tolua++.html000066400000000000000000002156411451224556600211170ustar00rootroot00000000000000 tolua++ reference manual

    tolua++ - Reference Manual

    by Waldemar Celes, Ariel Manzur.


    tolua++ is an extended version of tolua, a tool to integrate C/C++ code with Lua. tolua++ includes new features oriented to c++ such as:

    As well as other features and bugfixes.

    tolua is a tool that greatly simplifies the integration of C/C++ code with Lua. Based on a cleaned header file (or extracts from real header files), tolua automatically generates the binding code to access C/C++ features from Lua. Using Lua API and tag method facilities, tolua maps C/C++ constants, external variables, functions, classes, and methods to Lua.

    This manual is for tolua++ version 1.0 and is implemented upon Lua 5.0 and based on tolua 5.0. See Compatibility for details on switching from older versions.

    The sections below describe how to use tolua. Please contact us with bug reports, suggestions, and comments.


    How tolua works

    To use tolua, we create a package file, a C/C++ cleaned header file, listing the constants, variables, functions, classes, and methods we want to export to the Lua environment. Then tolua parses this file and creates a C/C++ file that automatically binds the C/C++ code to Lua. If we link the created file with our application, the specified C/C++ code can be accessed from Lua.
    A package file can also include regular header files, other package files, or lua files.

    Let's start with some examples. If we specify as input the following C-like header file to tolua:

    #define FALSE 0
    #define TRUE 1
    
    enum { 
     POINT = 100, 
     LINE, 
     POLYGON
    }
    Object* createObejct (int type);
    void drawObject (Object* obj, double red, double green, double blue);
    int isSelected (Object* obj);
    A C file that binds such a code to Lua is automatically generated. Therefore, in Lua code, we can access the C code, writing, for instance:
    ...
    myLine = createObject(LINE)
    ...
    if isSelected(myLine) == TRUE then
      drawObject(myLine, 1.0, 0.0, 0.0);
    else
      drawObject(myLine, 1.0, 1.0, 1.0);
    end
    ...
    Also, consider a C++-like header file:
    #define FALSE 0
    #define TRUE 1
    class Shape
    {
      void draw (void);
      void draw (double red, double green, double blue);
      int isSelected (void);
    };
    class Line : public Shape
    {
     Line (double x1, double y1, double x2, double y2);
     ~Line (void);
    };
    If this file is used as input to tolua, a C++ file is automatically generated proving access to such a code from Lua. Therefore, it would be valid to write Lua statements like:
    ...
    myLine = Line:new (0,0,1,1)
    ...
    if myLine:isSelected() == TRUE then
     myLine:draw(1.0,0.0,0.0)
    else
     myLine:draw()
    end
    ...
    myLine:delete()
    ...
    The package file (usually with extension .pkg) passed to tolua is not the real C/C++ header file, but a cleaned version of it. tolua does not implement a complete parse to interpret C/C++ code, but it understands a few declarations that are used to describe the features that are to be exported to Lua. Regular header files can be included into packages files; tolua will extract the code specified by the user to parse from the header (see Basic Concepts).

    How to use toLua

    tolua is composed by two pieces of code: an executable and a library. The executable represents the parser that reads a package file and output a C/C++ code that implements the binding to access the C/C++ features from Lua. If the package file is a C++ like code (i.e., includes class definitions), a C++ code is generated. If the cleaned header file is a C like code (i.e., without classes), a C code is generated. tolua accepts a set of options. Running "tolua -h" displays the current accepted options. For instance, to parse a file called myfile.pkg generating the binding code in myfile.c, we do:

    tolua -o myfile.c myfile.pkg

    The generated code must be compiled and linked with the application to provide the desired access from Lua. Each parsed file represents a package being exported to Lua. By default, the package name is the input file root name (myfile in the example). The user can specify a different name for the package:

    tolua -n pkgname -o myfile.c myfile.pkg

    The package should also be explicitly initialized. To initialize the package from our C/C++ code, we must declare and call the initialization function. The initialization function is defined as

    int tolua_pkgname_open (lua_State*);

    where pkgname represents the name of the package being bound. If we are using C++, we can opt for automatic initialization:

    tolua -a -n pkgname -o myfile.c myfile.pkg

    In that case, the initialization function is automatically called. However, if we are planning to use multiple Lua states, automatic initialization does not work, because the order static variables are initialized in C++ is not defined.

    Optionally, the prototype of the open function can be outputted to a header file, which name is given by the -H option.

    The binding code generated by tolua uses a set of functions defined in the tolua library. Thus, this library also has to be linked with the application. The file tolua.h is also necessary to compile the generated code.

    An application can use tolua object oriented framework (see exported utility functions) without binding any package. In that case, the application must call tolua initialization function (this function is called by any package file initialization function):

    int tolua_open (void);

    Basic Concepts

    The first step in using tolua is to create the package file. Starting with the real header files, we clean them by declaring the features we want to access from Lua in a format that tolua can understand. The format tolua understands is simple C/C++ declarations as described below.

    Including files

    A package file may include other package file. The general format to do that is:

    $pfile "include_file"

    A package file may also include regular C/C++ header files, using the hfile or cfile directive:

    $cfile "example.h"

    In which case, tolua will extract the code enclosed between tolua_begin and tolua_end, or or tolua_export for a single line. Consider this C++ header as example:

    
    #ifndef EXAMPLE_H
    #define EXAMPLE_H
    
    class Example { // tolua_export
    
    private:
    
    	string name;
    	int number;
    
    public:
    
    	void set_number(int number);
    
    	//tolua_begin
    
    	string get_name();
    	int get_number();
    };
    // tolua_end
    
    #endif
    

    In this case, the code that's not supported by tolua (the private part of the class), along with the function set_number is left outside of the package that includes this header.

    Finally, lua files can be included on a package file, using $lfile:

    $lfile "example.lua"

    New on tolua++: an extra way to include source files is available since version 1.0.4 of tolua++, using ifile:

    $ifile "filename"

    ifile also takes extra optional parameters after the filename, for example:

    $ifile "widget.h", GUI
    $ifile "vector.h", math, 3d

    ifile's default behaviour is to include the whole file, untouched. However, the contents of the file and the extra parameters are put through the include_file_hook function before being included into the package (see Customizing tolua++ for more details).

    Basic types

    tolua automatically maps C/C++ basic types to Lua basic types. Thus, char, int, float, and double are mapped to the Lua type number; char* is mapped to string; and void* is mapped to userdata. Types may be preceded by modifiers (unsigned, static, short, const, etc.); however, be aware that tolua ignores the modifier const if applied to basic types. Thus, if we pass a constant basic type to Lua and then pass it back to C/C++ code where a non constant is expected, the constant to non constant conversion will be silently done.

    Functions in C/C++ can also manipulate Lua objects explicitly. Thus lua_Object is also considered a basic type. In this case, any Lua value matches it.

    New on tolua++: The C++ type string is also considered a basic type, and is passed as a value to lua (using the c_str() method). This feature can be turned off with the command line option -S.

    User defined types

    All other types that appear in the package file being processed are considered user defined types. These are mapped to tagged userdata type in Lua. Lua can only store pointers to user defined types; although, tolua automatically makes the necessary arrangement to deal with references and values. For instance, if a function or method returns a value of user defined type, tolua allocates a clone object when returning it to Lua and sets the garbage collection tag method to automatically free the allocated object when no longer in use by Lua.

    For user defined types, constness is preserved. Thus passing a non constant user defined type to a function that expects constant type generates an type mismatching error.

    NULL and nil

    C/C++ NULL or 0 pointers are mapped to Lua nil type; conversely, nil may be specified wherever a C/C++ pointer is expected. This is valid for any type: char*, void*, and pointers to user defined types.

    Typedefs

    tolua also accepts simple typedef's inside the package files. Any occurrence of a type after its definition is mapped by tolua to the base type. They are useful because several packages redefine the basic C/C++ types to their own types. For instance, one can define the type real to represent a double. In that case, real can be used to specify the variable types inside the package file interpreted by tolua, but only if we include the following definition before any use of the type real.

    typedef double real;

    Otherwise, real would be interpreted as a user defined type and would not be mapped to Lua numbers.

    Including real header files

    In the package file, we must specify which are the real header files that should be included so that the generated code can access the constants, variables, functions, and classes we are binding. Any line in the package file beginning with a $ (except $[hclp]file, $[ , and $] lines) is inserted into the generated binding C/C++ code without any change, but the elimination of the $ itself. We use this feature to include the real header files. So, our package files will usually start with a set of $ beginning lines specifying the files that must be included, that is, the files the package file is based on.
    /* specify the files to be included */
    $#include "header1.h"                 // include first header
    $#include "header2.h"                 // include second header
    As illustrated, tolua also accepts comments, using C or C++ convention, inside the package file. Nested C-like comments can also be used.

    Also note that files included with $cfile or $hfile don't need to be included using this method, this is done automatically by tolua.

    In the following sections, we describe how to specify the C/C++ code we want to bind to Lua. The formats are simplified valid C/C++ statements.

    Binding constants

    To bind constants, tolua accepts both define's and enum's. For define's the general format is:
    #define NAME [ VALUE ]
    The value, as showed above, is optional. If such a code is inserted inside the file being processed, tolua generates a code that allows the use of NAME as a Lua global variable that has the corresponding C/C++ constant value. Only numeric constants are accepted.

    New on tolua++: All other preprocessor directives are ignored.

    For enum's, the general format is:

    enum {
      NAME1 [ = VALUE1 ] ,
      NAME2 [ = VALUE2 ] ,
      ...
      NAMEn [ = VALUEn ]
    };
    Similarly, tolua creates a set of global variables, named NAMEi, with their corresponding values.

    Binding external variables

    Global extern variables can also be exported. In the cleaned header file they are specified as:
    [extern] type var;
    tolua binds such declarations to Lua global variables. Thus, in Lua, we can access the C/C++ variable naturally. If the variable is non constant, we can also assign the variable a new value from Lua. Global variables that represent arrays of value can also be bound to Lua. Arrays can be of any type. The corresponding Lua objects for arrays are Lua tables indexed with numeric values; however, be aware that index 1 in Lua is mapped to index 0 in an C/C++ array. Arrays must be pre dimensioned. For instance:

    double v[10];

    New on tolua++: External variables can use the tolua_readonly modifier (see Additional Features)

    Binding functions

    Functions are also specified as conventional C/C++ declarations:
    type funcname (type1 par1[, type2 par2[,...typeN parN]]);
    The returned type can be void, meaning no value is returned. A function can also have no parameter. In that case, void may be specified in the place of the list of parameters. The parameter types must follow the rules already posted. tolua creates a Lua function binding the C/C++ function. When calling a function from Lua, the parameter types must match the corresponding C/C++ types, otherwise, tolua generates an error and reports which parameter is wrongly specified. If a parameter name is omitted, tolua names it automatically, but its type should be a basic type or user type previously used.

    Arrays

    tolua also deals with function or method parameters that represent arrays of values. The nice thing about arrays is that the corresponding Lua tables have their values updated if the C/C++ function changes the array contents.

    The arrays must be pre dimensioned. For instance:

    void func (double a[3]);

    is a valid function declaration for tolua and calling this function from Lua would be done by, for instance:

    p = {1.0,1.5,8.6}
    func (p)

    The array dimension need not be a constant expression; the dimension can also be specified by any expression that can be evaluated in run time. For instance:

    void func (int n, int m, double image[n*m]);

    is also valid since the expression n*m is valid in the binding function scope. However, be aware that tolua uses dynamic allocation for binding this function, what can degrade the performance.

    Despite the dimension specification, it is important to know that all arrays passed to the actual C/C++ function are in the local scope of the binding function. So, if the C/C++ function being called needs to hold the array pointer for later use, the binding code will not work properly.

    Overloaded functions

    Overloaded functions are accepted. Remember that the distinction between two functions with the same name is made based on the parameter types that are mapped to Lua. So, although

    void func (int a);
    void func (double a);

    represent two different functions in C++, they are the same function for tolua, because both int and double are mapped to the same Lua type: number.

    Another tricky situation occurs when expecting pointers. Suppose:

    void func (char* s);
    void func (void* p);
    void func (Object1* ptr);
    void func (Object2* prt);
    Although these four functions represent different functions in C++, a Lua statement like:
    func(nil)
    matches all of them.

    It is important to know that tolua decides which function will be called in run-time, trying to match each provided function. tolua first tries to call the last specified function; if it fails, tolua then tries the previous one. This process is repeated until one function matches the calling code or the first function is reached. For that reason, the mismatching error message, when it occurs, is based on the first function specification. When performance is important, we can specify the most used function as the last one, because it will be tried first.

    tolua allows the use of overloaded functions in C, see Renaming for details.

    Default parameter values

    The last function parameters can have associated default values. In that case, if the function is called with fewer parameters, the default values are assumed. The format to specify the default values is the same as the one used in C++ code:

    type funcname (..., typeN-1 parN-1 [= valueN-1], typeN parN [= valueN]);

    toLua implements this feature without using any C++ mechanism; so, it can be used also to bind C functions.

    We can also specify default values for the elements of an array (there is no way to specify a default value for the array itself, though). For instance:

    void func (int a[5]=0);

    sets the default element values to zero, thus the function can be called from Lua with an uninitialized table.

    For Lua object types (lua_Object), tolua defines a constant that can be used to specify nil as default value:

    void func (lua_Object lo = TOLUA_NIL);

    New on tolua++: C++ class constructors are valid as default parameters. For example:

    void set_color(const Color& color = Color(0,0,0));

    Multiple returned values

    In Lua, a function may return any number of values. tolua uses this feature to simulate values passed by reference. If a function parameter is specified as a pointer to or reference of a basic type or a pointer to or reference of a pointer to an user defined type, tolua accepts the corresponding type as input and returns, besides the conventional function returned value, if any, the updated parameter value.

    For instance, consider a C function that swaps two values:

    void swap (double* x, double* y);

    or

    void swap (double& x, double& y);

    If such a function is declared in the package file, tolua binds it as a function receiving two numbers as input and returning two numbers. So, a valid Lua code would be:

    x,y = swap(x,y)

    If the input values are not used, the use of default parameter value allows calling the function from Lua without specifying them:

    void getBox (double* xmin=0, double* xmax=0, double* ymin=0, double* ymax=0);

    In Lua:

    xmin, xmax, ymin, ymax = getBox()

    With user defined types, we would have for instance:

    void update (Point** p);

    or

    void update (Point*& p);

    Binding struct fields

    User defined types are nicely bound by tolua. For each variable or function type that does not correspond to a basic type, tolua automatically creates a tagged userdata to represent the C/C++ type. If the type corresponds to a struct, the struct fields can be directly accessed from Lua, indexing a variable that holds an object of such a type. In C code, these types are commonly defined using typedef's:
    typedef struct [name] {
       type1 fieldname1;
       type2 fieldname2;
       ...
       typeN fieldnameN;
    } typename;
    If such a code is inserted in the package file being processed, tolua allows any variable that holds an object of type typename to access any listed field indexing the variable by the field name. For instance, if var holds a such object, var.fieldnamei accesses the field named fieldnamei.

    Fields that represent arrays of values can also be mapped:

    typedef struct {
      int x[10];
      int y[10];
    } Example;
     

    Binding classes and methods

    C++ class definitions are also supported by tolua. Actually, the tolua deals with single inheritance and polymorphism in a natural way. The subsections below describe what can be exported by a class definition.

    Specifying inheritance

    If var is a Lua variable that holds an object of a derived class, var can be used wherever its base class type is expected and var can access any method of its base class. For this mechanism to take effect, we must indicate that the derived class actually inherits the base class. This is done in the conventional way:
    class classname : public basename
    {
     /* class definition */
    };

    In this case, the definition of basename needs to appear before classname if the inheritance properties are to be taken advantage of from lua.

    Multiple inheritance

    tolua++ (starting from version 1.0.4) supports multiple inheritance by allowing you to access the extra parents 'manually'.

    For example, consider the following class:

    class Slider : public Widget, public Range {
    	...
    };
    

    An object of type 'Slider' will fully retain its inheritance with Widget, and will contain a 'member' of type Range, which will return the object cast to the correct base type.

    For example:

    slider = Slider:new()
    slider:show() -- a Widget method
    
    slider:set_range(0, 100) -- this won't work, because
                             -- set_range is a method from Range
    
    slider.__Range__:set_range(0, 100) -- this is the correct way
    

    This is an experimental feature.

    Specifying exported members and methods

    As for struct fields, class fields, static or not, can be exported. Class methods and class static methods can also be exported. Of course, they must be declared as public in the actual C++ code (the public:keyword may appear in the package files, it will be ignored by tolua).

    For each bound class, tolua creates a Lua table and stores it at a variable which name is the name of the C++ class. This tables may contain other tables that represent other tables, the way C++ classes may contain other classes and structs. Static exported fields are accessed by indexing this table with the field names (similar to struct fields). Static methods are also called using this table, with a colon. Non static exported fields are accessed by indexing the variable that holds the object. Class methods follow the format of the function declaration showed above. They can be accessed from Lua code using the conventional way Lua uses to call methods, applied of course to a variable that holds the appropriate object or to the class table, for static methods.

    There are a few special methods that are also supported by tolua. Constructors are called as static methods, named new, new_local (on tolua++), or calling the class name directly (also on tolua++, see below for the difference betwheen these methods). Destructors are called as a conventional method called delete.

    Note that tolua does support overload. This applies even for constructors. Also note that the virtual keyword has no effect in the package file.

    The following code exemplifies class definitions that can be interpreted by tolua.

    class Point {
       static int n;    // represents the total number of created Points
       static int get_n();    // static method
    
       double x;        // represents the x coordinate
       double y;        // represents the y coordinate
       static char* className (void);   // returns the name of the class
       Point (void);                          // constructor 1
       Point (double px, double py);          // constructor 2
       ~Point (void);                         // destructor
       Point add (Point& other);              // add points, returning another one
    };
    class ColorPoint : public Color {
       int red;      // red color component [0 - 255]
       int green;    // green color component [0 - 255]
       int blue;     // blue color component [0 - 255]
       ColorPoint (double px, double py, int r, int g, int b);
    };
    If this segment of code is processed by tolua, we would be able to write the following Lua statements:
    p1 = Point:new(0.0,1.0)
    p2 = ColorPoint:new(1.5,2.2,0,0,255)
    print(Point.n)                     -- would print 2
    print(Point:get_n())               -- would also print 2
    p3 = p1:add(p2)
    local p4 = ColorPoint()
    print(p3.x,p3.y)                   -- would print 1.5 and 3.2
    print(p2.red,p2.green,p2.blue)     -- would print 0, 0, and 255
    p1:delete()                        -- call destructor
    p2:delete()                        -- call destructor
    Note that we can only explicitly delete objects that we explicitly create. In the example above, the point p3 will be garbage-collected by tolua automatically; we cannot delete it.

    New on tolua++: Also note that p4 is created by calling the class name directly (ColorPoint()); this has the same effect as calling new_local, which leaves the object to be deleted by the garbaje collector, and it should not be deleted using delete. For each constructor on the pkg, one new, new_local and .call callback for the class is created.

    Of course, we need to specify only the methods and members we want to access from Lua. Sometimes, it will be necessary to declare a class with no member or method just for the sake of not breaking a chain of inheritances.

    Using Regular functions as class methods

    tolua++ (starting from version 1.0.5) uses the keyword tolua_outside to specify regular functions as methods and static methods of a class or struct. For example:

    
    /////////////// position.h:
    
    typedef struct {
    
    	int x;
    	int y;
    } Position;
    
    Position* position_create();
    void position_set(Position* pos, int x, int y);
    
    /////////////// position.pkg:
    
    struct Position {
    
    	int x;
    	int y;
    
    	static tolua_outside Position* position_create @ create();
    	tolua_outside void position_set @ set(int x, int y);
    };
    
    --------------- position.lua
    
    local pos = Position:create()
    
    pos:set(10, 10)
    
    
    Note that the position_set method takes a pointer to Position as its first parameter, this is ommited on the tolua_outside declaration. Also note that we cannot name our methods new or new_local, or as overloaded operators (see next section), this will result in undefined behaviour.

    Overloaded operators

    tolua automatically binds the following binary operators:
      operator+   operator-   operator*   operator/ 
      operator<   operator>=  operator==  operator[]
    For the relational operators, toLua also automatically converts a returned 0 value into nil, so false in C becomes false in Lua.

    As an example, suppose that in the code above, instead of having:

       Point add (Point& other);              // add points, returning another one
    we had:
       Point operator+ (Point& other);        // add points, returning another one
    In that case, in Lua, we could simply write:
    p3 = p1 + p2
    The indexing operator (operator[]) when receiving a numeric parameter can also be exported to Lua. In this case, tolua accepts reference as returned value, even for basic types. Then if a reference is returned, from Lua, the programmer can either get or set the value. If the returned value is not a reference, the programmer can only get the value. An example may clarify: suppose we have a vector class and bind the following operator:
       double& operator[] (int index);
    In this case, in Lua, we would be able to write: value = myVector[i] and also myVector[i] = value, which updates the C++ object. However, if the bound operator was:
       double operator[] (int index);
    we would only be able to write: value = myVector[i].

    Free functions (i.e., not class members) that overload operators are not supported.

    Cast operators

    New on tolua++ (versions 1.0.90 and up): casting operators are also supported. For example:
    /////////////// node.h
    
    // a class that holds a value that can be of type int, double, string or Object*
    class Node { // tolua_export
    
    private:
    	union {
    		int int_value;
    		double double_value;
    		string string_value;
    		Object* object_value;
    	};
    
    // tolua_begin
    public:
    
    	enum Type {
    		T_INT,
    		T_DOUBLE,
    		T_STRING,
    		T_OBJECT,
    		T_MAX,
    	};
    
    	Type get_type();
    
    	operator int();
    	operator double();
    	operator string();
    	operator Object*();
    };
    // tolua_end
    
    tolua++ will produce code that calls the operators by casting the object Node (using C++ static_cast), and register them inside the class as ".typename". For example:
    -- node.lua
    
    local node = list.get_node("some_node") -- returns a Node object
    
    if node.get_type() == Node.T_STRING then
    
    	print("node is "..node[".string"]())
    
    elseif node.get_type() == Node.T_OBJECT then
    
    	local object = node[".Object*"]()
    	object:method()
    end
    
    

    Binding Properties

    tolua++ (starting from version 1.0.6) supports declaration of class propeties, using the tolua_property keyword. A property will look like a 'field' of the class, but it's value will be retrieved using class methods. For example:
    /////////////// label.h
    
    class Label {
    
    public:
    
    	string get_name();
    	void set_name(string p_name);
    
    	Widget* get_parent();
    };
    
    /////////////// label.pkg
    class Label {
    
    	tolua_property string name;
    
    	tolua_readonly tolua_property Widget* parent;
    };
    
    --------------- label.lua
    
    local label = Label()
    
    label.name = "hello"
    print(label.name)
    
    label.parent:show()
    
    

    Property types

    A property can have differt types, which determine how it's value will be set and retrieved. tolua++ comes with 3 different built-in types:

  • default will use 'get_name' and 'set_name' methods to access a property called 'name'
  • qt will use 'name' and 'setName'
  • overload will use 'name' and 'name' (as in 'string name(void);' to get and 'void name(string);' to set)

    The property type can be appended at the end of the 'tolua_property' keyword on the declaration:

      tolua_property__qt string name;
    When no type is specified, default will be used, but this can be changed (see below).

    Changing the default property type

    The default property type can be changed using the 'TOLUA_PROPERTY_TYPE' macro. This will change the default type from the point of its invocation, until the end of the block that contains it. For example:

    
    TOLUA_PROPERTY_TYPE(default); // default type for the 'global' scope
    
    namespace GUI {
    
    	class Point {
    
    		tolua_property int x; // will use get_x/set_x
    		tolua_property int y; // will use get_y/set_y
    	};
    
    	TOLUA_PROPERTY_TYPE(qt); // changes default type to 'qt' for the rest of the 'GUI' namespace
    
    	class Label {
    
    		tolua_property string name; // will use name/setName
    	};
    };
    
    class Sprite {
    
    	tolua_property GUI::Point position; // will use get_position/set_position
    
    	tolua_property__overload string name; // will use name/name
    };
    
    

    Adding custom property types

    Custom property types can be added by redefining the function "get_property_methods_hook" (see Customizing tolua++ for more details). The functions takes the property type and the name, and returns the setter and getter function names. For example:

    
    /////////////// custom.lua
    
    function get_property_methods_hook(ptype, name)
    
    	if ptype == "hungarian_string" then
    
    		return "sGet"..name, "Set"..name
    	end
    
    	if ptype == "hungarian_int" then
    
    		return "iGet"..name, "Set"..name
    	end
    	-- etc
    end
    
    /////////////// label.pkg
    class Label {
    
    	tolua_property__hungarian_string string Name; // uses 'sGetName' and 'SetName'
    
    	tolua_property__hungarian_int string Type; // uses 'iGetType' and 'SetType'
    };
    
    

    Class Templates

    One of the additional features of tolua++ is the support for class templates, by using the TOLUA_TEMPLATE_BIND directive. For example:
    class vector {
    
    	TOLUA_TEMPLATE_BIND(T, int, string, Vector3D, double)
    
    	void clear();
    	int size() const;
    
    	const T& operator[](int index) const;
    	T& operator[](int index);
    	void push_back(T val);
    
    	vector();
    	~vector();
    };
    
    The TOLUA_TEMPLATE_BIND directive has to be the first thing on the class declaration, otherwise it will be ignored. This code will create 4 versions of the class vector, one for each type specified on the TOLUA_TEMPLATE_BIND parameters, each replacing the macro T (specified as the first argument of TOLUA_TEMPLATE_BIND). Thus, the functions operator[], &operator[] and push_back will have different signatures on each version of the object. The objects will be recognized as vector<type> on further declarations, and the name of the table on Lua will be vector_type_. Thus, the following Lua code could be used:
    string_vector = vector_string_:new_local()
    string_vector:push_back("hello")
    string_vector:push_back("world")
    print(string_vector[0].." "..string_vector[1])
    
    Similarily, a template with more than 1 macro could be bound, and it could also inherit from another template:
    class hash_map : public map<K,V> {
    
    	TOLUA_TEMPLATE_BIND(K V, int string, string vector<double>)
    
    	V get_element(K key);
    	void set_element(K key, V value);
    
    	hash_map();
    	~hash_map();
    };
    
    In this example, one of the objects has another template as one of its types, so it will be recognized as hash_map<string,vector<double> > while its constructor will be on the Lua table hash_map_string_vector_double___ (see Type Renaming for a better way to access these objects).

    Note that due to the complexity in the definition of some templates, you should be careful on how you declare them. For example, if you create an object with type hash_map<string,vector<double> > and then declare a variable with type hash_map<string, vector<double> > (note the space between string and vector), the type of the variable will not be recognized. The safest way is to declare a typedef, and use that to use each type (this is also a common practice on C++ programming). For example, using the previous declaration of vector:

    typedef vector VectorInt;
    
    VectorInt variable;
    
    TOLUA_TEMPLATE_BIND can be used with more than one parenthesis to open and close, in order to be valid as a macro inside a regular .h file. The TOLUA_TEMPLATE_BIND macro is declared on tolua.h as:

    #define TOLUA_TEMPLATE_BIND(x)

    Also, the parameters can have double quotes. Thus, the following uses are valid:

    TOLUA_TEMPLATE_BIND((T, int, float)) // to be used inside a real header file
    TOLUA_TEMPLATE_BIND("K V", "string string", int double)
    
    Function templates are not supported on this version.

    Module definition

    tolua allows us to group constants, variables, and functions in a module. The module itself is mapped to a table in Lua, and its constants, variables, and functions are mapped to fields in that table. The general format to specify a module is:

    module name
    {
          ... // constant, variable, and function declarations
    }

    Thus, if we bound the following module declaration:

    module mod
    {
     #define N
     extern int var;
     int func (...):
    }

    In Lua we would be able to access such features by indexing the module: mod.N, mod.var, mod.func.

    Renaming constants, variables and functions

    When exporting constants, variable, and functions (members of a class or not), we can rename them, such that they will be bound with a different name from their C/C++ counterparts. To do that, we write the name they will be referenced in Lua after the character @. For instance:

    extern int cvar @ lvar;

    #define CNAME @ LNAME

    enum {
      CITEM1 @ LITEM1,
      CITEM2 @ LITEM2,
      ...
    };

    void cfunc @ lfunc (...);

    class T
    {
       double cfield @ lfield;
       void cmeth @ lmeth (...);
       ...
    };

    In such a case, the global variable cvar would be identified in Lua by lvar, the constant CNAME by LNAME, and so on. Note that class cannot be renamed, because they represent types in C.

    This renaming feature allows function overload in C, because we can choose to export two different C functions with a same Lua name:

    void glVertex3d @ glVertex (double x, double y, double z=0.0);
    void glVertexdv @ glVertex (double v[3]=0.0);

    Renaming Types

    Types can be renamed using the $renaming directive on pkg files, using the format:

    $renaming real_name @ new_name

    The parameters to renaming can be Lua patterns. For example:

    $renaming ^_+ @
    $renaming hash_map<string,vector<double> > @ StringHash
    
    The first example will remove all underscores at the beginning of all types, the second will rename the template type hash_map<string,vector<double> > to StringHash. Once renamed, the Lua table for each type can be accessed only by their new name, for example: StringHash:new()

    Storing additional fields

    Finally, it is important to know that even though the variables that hold C/C++ objects are actually tagged userdata for Lua, tolua creates a mechanism that allows us to store any additional field attached to these objects. That is, these objects can be seen as conventional Lua tables.
    obj = ClassName:new()
    obj.myfield = 1  -- even though "myfield" does not represent a field of ClassName
    Such a construction is possible because, if needed, tolua automatically creates a Lua table and associates it with the object. So that, the object can store additional fields not mapped to C/C++, but actually stored in the conjugate table. The Lua programmer accesses the C/C++ features and these additional fields in an uniform way. Note that, in fact, these additional fields overwrite C/C++ fields or methods when the names are the same.

    Additional features on tolua++

    Multiple variable declarations

    Multiple variables of the same type can be declared at the same time, for example:

    float x,y,z;

    will create 3 different variables of type float. Make sure you don't leave any spaces between the commas, as that will raise a parse error.

    tolua_readonly

    Any variable declaration can use the tolua_readonly modifier, to ensure that the variable is read-only, even when its type is not const. Example:
    class Widget {
    
    	tolua_readonly string name;
    };
    
    This feature could be used to 'hack' the support for other unsupported things like operator->. Consider this example pkg file:
    $hfile "node.h"
    $#define __operator_arrow operator->()
    $#define __get_name get_name()
    
    And on the file node.h:
    template class<T>
    class Node { // tolua_export
    
    private:
    	string name;
    	T* value;
    
    public:
    
    	T* operator->() {return value;};
    	string get_name() {return name;};
    
    	// tolua_begin
    
    	#if 0
    	TOLUA_TEMPLATE_BIND(T, Vector3D)
    
    	tolua_readonly __operator_arrow @ p;
    	tolua_readonly __get_name @ name;
    	#endif
    
    
    	Node* next;
    	Node* prev;
    
    	void set_name(string p_name) {name = p_name;};
    
    	Node();
    };
    // tolua_end
    
    While not a pretty thing to do to a header file, this accomplishes a number of things:

  • The method operator->() can be used from Lua by calling the variable p on the object.
  • The method get_name() can be using from Lua by calling the variable name on the boject.
  • Example lua usage:
    node = Node_Vector3D_:new_local()
    -- do something with the node here --
    print("node name is "..node.name)
    print("node value is ".. node.p.x ..", ".. node.p.y ..", ".. node.p.z)
    
    Since tolua++ ignores all preprocessor directives (except for #define), node.h remains a valid C++ header file, and also a valid source for tolua++, eliminating the need to maintain 2 different files, even for objects with unusual features such as these ones.

    The ability to rename functions as variables might be expanded on future versions.

    Defining values on command line

    Starting from version 1.0.92, the command line option -E allows you to introduce values into to the luastate where tolua++ runs, similar to GCC's -D. For example:

    $ tolua++ -E VERSION=5.1 -E HAVE_ZLIB package.pkg > package_bind.cpp

    This will add 2 fields to the global table _extra_parameters: "VERSION", with the string value "5.1", and "HAVE_ZLIB" with the boolean value true. For the moment, there is no way to 'use' these values, except in custom scripts defined by the user (see customizing tolua++ for details).

    Using C++ typeid

    Starting from version 1.0.92, the command line option -t is available, which generates a list of calls to the empty macro Mtolua_typeid, with its C++ type_info object, and the name used by tolua++ to identify the type. For example, if you have a package that binds 2 classes, Foo and Bar, using -t will produce the following output:
    #ifndef Mtolua_typeid
    #define Mtolua_typeid(L,TI,T)
    #endif
     Mtolua_typeid(tolua_S,typeid(Foo), "Foo");
     Mtolua_typeid(tolua_S,typeid(Bar), "Bar");
    
    The implementation of Mtolua_typename is left as an exercise to the user.

    Exported utility functions

    tolua uses itself to export some utility functions to Lua, including its object-oriented framework. The package file used by tolua is shown below:

    module tolua
    {
     char* tolua_bnd_type @ type (lua_Object lo);
     void tolua_bnd_takeownership @ takeownership (lua_Object lo);
     void tolua_bnd_releaseownership @ releaseownership (lua_Object lo);
     lua_Object tolua_bnd_cast @ cast (lua_Object lo, char* type);
     void tolua_bnd_inherit @ inherit (lua_Object table, lua_Object instance);

    /* for lua 5.1 */
     void tolua_bnd_setpeer @ setpeer (lua_Object object, lua_Object peer_table);
     void tolua_bnd_getpeer @ getpeer (lua_Object object);
    }

    tolua.type (var)

    Returns a string representing the object type. For instance, tolua.type(tolua) returns the string table and tolua.type(tolua.type) returns cfunction. Similarly, if var is a variable holding a user defined type T, tolua.type(var) would return const T or T, depending whether it is a constant reference.

    tolua.takeownership (var)

    Takes ownership of the object referenced var. This means that when all references to that object are lost, the objects itself will be deleted by lua.

    tolua.releaseownership (var)

    Releases ownership of the object referenced by var.

    tolua.cast (var, type)

    Changes the metatable of var in order to make it of type type. type needs to be a string with the complete C type of the object (including namespaces, etc).

    tolua.inherit (table, var)

    (new on tolua++) Causes tolua++ to recognise table as an object with the same type as var, and to use var when necesary. For example, consider this method:

      void set_parent(Widget* p_parent);

    A lua object could be used like this:

    local w = Widget()
    local lua_widget = {}
    tolua.inherit(lua_widget, w)
    
    set_parent(lua_widget);
    
    
    Remember that this will only cause the table to be recognised as type 'Widget' when necesary. To be able to access Widget's methods, you'll have to implement your own object system. A simple example:

    
    lua_widget.show = Widget.show
    
    lua_widget:show() -- this will call the 'show' method from 'Widget', using the lua
                      -- table as 'self'. Since lua_widget inherits from a widget instance,
                      -- tolua++ will recognise 'self' as a 'Widget', and call the method
    
    

    Of course a better way would be to add a __index metamethod for the lua object.

    Similarily, to implement virtual functions, you'll need to create a c++ object that inherits from the desired type, implement its virtual functions, and use that to inherit from lua. The object would have a reference to the lua table, and call its methods from the c++ virtual methods.

    Note: the current implementation (as of version 1.0.6) stores the C instance inside the lua table on the field ".c_instance", and looks that up when necesary. This might change in the future, so it is recommended to use an alternative way to store the C instance to use with your own object system.

    tolua.setpeer (object, peer_table) (lua 5.1 only)

    Sets the table as the object's peer table (can be nil). The peer table is where all the custom lua fields for the object are stored. When compiled with lua 5.1, tolua++ stores the peer as the object's envirnment table, and uses uses lua_gettable/settable (instead of lua_rawget/set for lua 5.0) to retrieve and store fields on it. This allows us to implement our own object system on our table (using metatables), and use it as a way to inherit from the userdata object. Consider an alternative to the previous example:
    -- a 'LuaWidget' class
    LuaWidget = {}
    LuaWidget.__index = LuaWidget
    
    function LuaWidget:add_button(caption)
    
    	-- add a button to our widget here. 'self' will be the userdata Widget
    end
    
    
    local w = Widget()
    local t = {}
    setmetatable(t, LuaWidget) -- make 't' an instance of LuaWidget
    
    tolua.setpeer(w, t) -- make 't' the peer table of 'w'
    
    set_parent(w) -- we use 'w' as the object now
    
    w:show() -- a method from 'Widget'
    w:add_button("Quit") -- a method from LuaWidget (but we still use 'w' to call it)
    
    When indexing our object, the peer table (if present) will be consulted first, so we don't need to implement our own __index metamethod to call the C++ functions.

    tolua.getpeer (object) (lua 5.1 only)

    Retrieves the peer table from the object (can be nil).

    Embedded Lua code

    tolua allows us to embed Lua code in the C/C++ generated code. To do that, it compiles the specified Lua code and creates a C constant string, storing the corresponding bytecodes, in the generated code.  When the package is opened, such a string is executed. The format to embed Lua code is:

    $[

    embedded Lua code
    ...

    $]

    As an example consider the following .pkg excerpt:

    /* Bind a Point class */
    class Point
    {
     Point (int x, int y);
     ~Point ();
     void print ();
     ...
    } CPoint;

    $[

    -- Create a Point constructor
    function Point (self)
     local cobj = CPoint:new(self.x or 0, self.y or 0)
     tolua.takeownership(cobj)
     return cobj
    end

    $]

    Binding such a code would allow us to write the following Lua code:

    p = Point{ x=2, y=3 }
    p:print()
    ...
     

    Customizing tolua++

    tolua++ calls empty functions at specific points of its execution. This functions can be redefined on a separate lua file (and included using the -L command line option) and be used to control the way tolua++ behaves. This is the list of functions (taken from basic.lua on the tolua++ source):

    
    -- called right after processing the $[ichl]file directives,
    -- right before processing anything else
    -- takes the package object as the parameter
    function preprocess_hook(p)
    	-- p.code has all the input code from the pkg
    end
    
    
    -- called for every $ifile directive
    -- takes a table with a string called 'code' inside, the filename, and any extra arguments
    -- passed to $ifile. no return value
    function include_file_hook(t, filename, ...)
    
    end
    
    -- called after processing anything that's not code (like '$renaming', comments, etc)
    -- and right before parsing the actual code.
    -- takes the Package object with all the code on the 'code' key. no return value
    function preparse_hook(package)
    
    end
    
    
    -- called after writing all the output.
    -- takes the Package object
    function post_output_hook(package)
    
    end
    
    -- called at the beginning of the main parser function, with the code being parsed as a parameter
    -- it can return nil if nothing was foind, or the contents of 'code', modified by the function
    -- Usually a parser hook will search the beginning of the string for a token, and if it finds
    -- anything, return the string without that token (after doing whatever it has to do with the token).
    function parser_hook(code)
    
    end
    
    
    -- called from classFunction:supcode, before the call to the function is output
    -- the classFunction object is passed.
    function pre_call_hook(f)
    
    end
    
    -- called from classFunction:supcode, after the call to the function is output
    -- the classFunction object is passed.
    function post_call_hook(f)
    
    end
    
    -- called before the register code is output
    function pre_register_hook(package)
    
    end
    
    -- called to output an error message
    function output_error_hook(...)
    	return string.format(...)
    end
    
    
    

    Handling custom types

    Starting from version 1.0.93, it is possible to specify custom functions to handle certain types. There are 3 types of functions: a 'push function', used to push the C value onto the Lua stack, a 'to function', used to retrieve the value from the Lua stack, and return it as a C value, and an 'is function', used to check if the value on the stack is valid (or convertible to a C value by the to function). These functions are modelled upon tolua_pushusertype, tolua_tousertype and tolua_isusertype, declared in tolua++.h.

    A number of arrays found in basic.lua are used to specify these functions:

    -- for specific types
    _push_functions = {}
    _is_functions = {}
    _to_functions = {}
    
    -- for base types
    _base_push_functions = {}
    _base_is_functions = {}
    _base_to_functions = {}
    
    Example (using the -L command line option):

    _is_functions['Vector3'] = 'custom_is_vector3' -- checks for a 3d vector
                                                   -- (either userdata, or a table with 3 values)
    _to_functions['Vector3'] = 'custom_to_vector3' -- convertes the eventual table to a Vector3
    
    _base_push_functions['Widget'] = 'custom_push_widget' -- pushes anything that inherits from Widget
    
    The _base tables are used to lookup functions for types that are up in the inheritance chain.

    Access

    Starting from version 1.0.7, all objects have a an access flag, which determines the object's access inside its container. Container objects also have a member called curr_member_access, which determines the access of each child object at the moment of its addition to the container. If the access flag has the value nil (default), false or 0, the object is public. Otherwise, the object is not public, and tolua++ will not export any code for that object (and any objects it may contain).

    Another 'interesting' function is extract_code, defined on basic.lua, which extracs the code from files included with $cfile and $hfile (by looking for tolua_begin/end and tolua_export).

    Compatibility with older versions.

    tolua++ <1.0.90

    Version 1.0.90 of tolua++ introduces 2 small API changes the might be incompatible with older versions on some cases:

    TEMPLATE_BIND

    TEMPLATE_BIND is deprecated. Use TOLUA_TEMPLATE_BIND instead. Also, when declaring a template, the TOLUA_TEMPLATE_BIND statement has to be the first thing inside the class declaration, otherwise it will be ignored. This fixes a possible problem with nested template declarations.

    Retrieving Objects

    When passing a full userdata to a function that accepts light userdata parameters (void*), the tolua++ library function tolua_touserdata will detect the full userdata and dereference the void** pointer if necesary. This is a change on the function's behaviour (which used to return the pointer as-is). This allows us to pass pointers to objects to a function that accepts void* pointers. Note that this was a problem when switching from toLua version 4 to version 5 (and tolua++ versions < 1.0.90).

    toLua 4

    Retrieving Objects

    Users switching from tolua v4 should know that tolua++ stores the objects as void** on Lua, so when retrieving an object from the luastate using lua_touserdata, the pointer should be dereferenced. The library function tolua_tousertype should work as expected. Example:

    lua_pushglobal(lua_state, "get_Object");
    lua_call(lua_state, 0, 1);  // calling a function that returns an Object
    
    Object *new_object = (Object*)(*lua_touserdata(lua_state, -1));
    or
    Object *new_object = (Object*)tolua_tousertype(lua_state, -1, NULL);
    
    C++ Strings

    tolua++ binds the c++ type std::string as a basic type, passing it to Lua as a regular string (using the method c_str()). This feature can be turned off with the command line option -S.

    Operators

    The list of supported operators has changed, see Binding classes and methods for more information.

    toLua 5

    Class destructors.

    With every class constructor, tolua++ exports a 'local' constructor, to create an instance of the class that is owned by the lua state. To implement this, tolua++ will also export a function that will delete the class. There are 2 options to prevent this:

    Using the -D command line option will turn this off completely. Destructor functions will only be exported when a destructor for the class is explicitly declared, or when there is a function or method that returns an object of the type by value (this is compatible with tolua's behaviour).

    Using the TOLUA_PROTECTED_DESTRUCTOR directive inside the class declaration, to specify that the class has a private or protected destructor. In this case, no destructor will be exported for that class.

    operator[] index

    Users switching from tolua v5 should know that tolua 5 substracts 1 from the index on operator[] functions, for compatibility with lua's method for indexing arrays (1 is the first element). This feature is turned off by default on tolua++ (making it compatible with tolua 4). It can be turned back on with the command line option -1

    C++ Strings

    (see c++ strings on tolua 4 below)

    Changes since v. 3.0

    • Support for binding arrays as variables and struct/class fields;
    • Support for embedding Lua code into the generated binding code;
    • New utility functions: cast and takeownership;
    • Option to create the corresponding header file of the binding code;
    • New "close" package function;
    • Fixed bug on cloning objects in C++;
    • Fixed bug on enum and struct parsing;

    Changes since v. 2.0

    • There is a new executable parser;
    • Support for multiple Lua states is provided;
    • Support for module definition is provided;
    • Global variables is now directly bound to Lua global variables;
    • Constness of user defined types is preserved in Lua;
    • Support for multiple returned values from C/C++ is provided (simulating parameters passed by reference);
    • Constants, variables, and functions bound to Lua can have different names from their C/C++ counterparts;
    • Object-oriented framework (and other utility functions) used in tolua is now exported for Lua programmers;
    • Incompatibilities

      Lua code based on tolua v2.* should run with no change on tolua v3.0. Although, it may be necessary to change the .pkg file in order to get the same behavior. The following incompatibilities exist:
      • Parameters defined as pointer to basic types are no longer converted to arrays of dimension one; they are now considered parameters passed by reference.
      • Automatic initialization for C++ code must be explicitly requested when using the new parser;
      • Global variables are no longer mapped to a table; the definition of a module including the global variables may be used to simulate the old behavior;
      • The initialization function is no longer toLua_package_open but tolua_package_open, without the capital letter (sorry!).

    Changes since v. 1.*

    • The binding code should run much faster;
    • The cleaned header file extension should now be .pkg instead of .L;
    • Type modifiers is now accepted (though the current version ignores const's);
    • Returning object by value is accepted and memory allocation is controlled by Lua garbage collection;
    • Overloaded functions/methods are accepted;
    • Parameters with default values are accepted;
    • Some overloaded operators are automatically bound.

    Credits

    Luiz Henrique de Figueiredo had the idea of creating a tool to automatically bind C code to Lua. L.H.F. wrote the very first version of such a tool (that bound C functions, variables, and constants) in awk. At that time, Waldemar Celes (now the main author) was only responsible for the C code that supported the generated binding code.

    While working at NGD Studios, Ariel Manzur made some changes to tolua4 for their game engine. After the release of tolua5, having left NGD, enough changes were made to tolua to justify a separate release (with Waldemar's blessing :-)
     

    Availability

    tolua++ is freely available by http. The software provided hereunder is on an "as is" basis, and the author has no obligation to provide maintenance, support, updates, enhancements, or modifications.


    This document was created by Waldemar Celes With modifications by Ariel Manzur/
    Last update: Sept 2003 conky-1.19.6/3rdparty/toluapp/doc/toluapp.gif000066400000000000000000000134651451224556600211320ustar00rootroot00000000000000GIF89aPP+ 0888@S`pqUUUUUjUU{llr8888UUUUllqqͥǦ־!+,PPjZVjZVjZVjZVjZVjZVjZVjZjZVjZVjZVjZVjZVjZVjZVjZWjZVjZVjZVjZVjZVjZVjZVjVjZVjZVjZVjZVjZVjZVjZVj\VjZVjZVjZVjZVjZVjZVjZV ZVjZVjZVjZVjZVjZVjZVjZVpZVjZVjZVjZVjZVjZVjZVjZV+jZVjZVjZVjZVjZVjZVjZVjZVjZVjZVjZVjZVjZVjZVjZVjZjZVjZVjZVjZVjZVjZVjZVjZWjZVjZVjZVjZVjZVjZVjZVjVjZVjZVYVjZVjZVjZVjZVj\VjZVjZVjZVjZV+VjZVjZV ZVjZVjZVjZVjZVjZVjZV@pZVjZVjZVjZVjZVjZVjZVjZV+jZVj@ `ZVjZVjZVjZVjZVjZVjZVjZVjZVj@ ZVjZVjZVjZjZVjZVjZVjZVjZV+@ @ jZWjZVjZVjZVjZVjZVjZVjZVB @ jZVjZVjZVjZVjZVjZVj\VjZVj@ @ XVjZVjZVjZV ZVjZVjZVjZVj@ @ VjZVpZVjZVjZVjZVjZVjZVjZV@ jZVjZVjZVjZV@ @ jZVjZV@ jZVjZVjZVjZV@@ VjZVjZA XVjZVjZVjZWjZ @ @ @ jZVjZ VjVjZVjZVjZA @ @ @ YVj\V+jZVjZVjZVjZA @ @ @ @ jZVjjZVjZVjZVj@ @ @ @ @ dZVjjZVjZV+jZVjZA @ @ @ @ YVjZVjZVjZVjZVjZA @ @ @ @@ jZVjZVjZVjZVjZA @ !@ |.@ jZVjZVjZVjZVj @ @ @ QT@ ZVjZVj\VjZVjZ @ @ @ TN@ @VjZVjZVjZVjZ @ @ @ @@@ @ jZVjZVjZVjZ @  @ @ @ "J @ dZVjZVjZVjZV+@ @ @ @J*:@ ZjZVjZVjZV+@ @ @ QT(JRQ*UJ@ @VjZVjZVjZV+@ @ B @T*JRT(JB@ jZVjZVjZV@ @ @ @ O*TRp@ jZV ZVjZV @ @ @ @ TT@ YVjZVjZVj@ @ @ @  J @@ VjZVjZVj@ @ @@ @ @ O @ @VjZVjZjZA @ @ @ @ HRq@ !jZVjZVjZ @ @ @ @ v8@@ @ dZVjZVjZV@ @ @ @ @ @ @ ZVjZVjZV@ @ @ @ @ @ @ VpZVjZV@ @ @ @ @ @  @ @ jZVjZV @ @ @ @ @@ @ @ @ jZVjZVj@ @@ @ @ @ @ @ jZVjZWjZA @ @ @ @ @ @ B ZVjZVjZ @ @ @ @ @ @ @ YVjZVjZV@ @ @ @ @ @ @ VjZVjZV+@ @ @ @ @ @ @ @V+jZVjZV @ @ @ @ @ @ @@ @ jZVjZVj@ @ @ @@ @ @ @ jZVjZVj@ !@ @ @ @ @ @ dZVjVjZ @ @ @ @ @ @ @ YVjZVjZV@ @ @ @ @ @ @ VjZVjZV+@ @ @ D@ @ @ @ @VjZVjZV+ @ bRA @ R5 @ @ @ @ jZVjZVj@ DQ,X,QP,bHDbX @ jZVjZVjZA bQT*bQT*U@ T$RT) @ jZVjZVjZ B,*THE@ *@  H@T ⁑@"'@ dZVj\VjZV@  TQj@@ H *@ $ ZVjZVjZV @ J@T TJ RuJ( JYVjZVjZVj@ E *0@,*`R-:DZ**bRuVjZVjZVjZ bQI  PTR-(A8@jZVjZVjZVT ĢRTEb@<*BRU GPQ@ jZVjZVjZV@@* T*b*JR@IJBYT@RP&C@ jZVjZVjZVj@ d@@ ŢIehT*DX4DŽQ@ jZV ZVjZVjZA By@@jZVjZVjZVjZV$A A  H@ A @jZVjZVjZVjZV@ @@ @ @ @ @ jZVjZVjZjZVj@ @ @ @ @ @ jZWjZVjZVjZVjZ @ @ @ B @ dZVjZVjZVjZVjZV+@ @ @ @ @ dZVjZVjZVjZV ZVj@ @ @ @ @ dZVjZVpZVjZVjZVjZA @ @ @ @  ZVjZVjZVjZVjZVjZV+@ @ @@ @ dZVjZVjZVjZVjZVjZj@ @ @ @ dZVjZVjZVjZWjZVjZVjZ @ @ @ jZVjVjZVjZVjZVjZVjZV @ @ @ jZVjZVjZVjZVjZVjZVjZV ZV@ @VhjZVjZVjZVjZVjZVpZVjZVjZVjZVjZVjZVjZVjZV+jZVjZVA;conky-1.19.6/3rdparty/toluapp/include/000077500000000000000000000000001451224556600176245ustar00rootroot00000000000000conky-1.19.6/3rdparty/toluapp/include/tolua++.h000066400000000000000000000160361451224556600212550ustar00rootroot00000000000000/* tolua ** Support code for Lua bindings. ** Written by Waldemar Celes ** TeCGraf/PUC-Rio ** Apr 2003 ** $Id: $ */ /* This code is free software; you can redistribute it and/or modify it. ** The software provided hereunder is on an "as is" basis, and ** the author has no obligation to provide maintenance, support, updates, ** enhancements, or modifications. */ #ifndef TOLUA_H #define TOLUA_H #ifndef TOLUA_API #define TOLUA_API extern #endif #define TOLUA_VERSION "tolua++-1.0.92" #ifdef __cplusplus extern "C" { #endif #define tolua_pushcppstring(x,y) tolua_pushstring(x,y.c_str()) #define tolua_iscppstring tolua_isstring #define tolua_iscppstringarray tolua_isstringarray #define tolua_pushfieldcppstring(L,lo,idx,s) tolua_pushfieldstring(L, lo, idx, s.c_str()) #ifndef TEMPLATE_BIND #define TEMPLATE_BIND(p) #endif #define TOLUA_TEMPLATE_BIND(p) #define TOLUA_PROTECTED_DESTRUCTOR #define TOLUA_PROPERTY_TYPE(p) typedef int lua_Object; #include #include struct tolua_Error { int index; int array; const char* type; }; typedef struct tolua_Error tolua_Error; #define TOLUA_NOPEER LUA_REGISTRYINDEX /* for lua 5.1 */ TOLUA_API const char* tolua_typename (lua_State* L, int lo); TOLUA_API void tolua_error (lua_State* L, const char* msg, tolua_Error* err); TOLUA_API int tolua_isnoobj (lua_State* L, int lo, tolua_Error* err); TOLUA_API int tolua_isvalue (lua_State* L, int lo, int def, tolua_Error* err); TOLUA_API int tolua_isvaluenil (lua_State* L, int lo, tolua_Error* err); TOLUA_API int tolua_isboolean (lua_State* L, int lo, int def, tolua_Error* err); TOLUA_API int tolua_isnumber (lua_State* L, int lo, int def, tolua_Error* err); TOLUA_API int tolua_isstring (lua_State* L, int lo, int def, tolua_Error* err); TOLUA_API int tolua_istable (lua_State* L, int lo, int def, tolua_Error* err); TOLUA_API int tolua_isusertable (lua_State* L, int lo, const char* type, int def, tolua_Error* err); TOLUA_API int tolua_isuserdata (lua_State* L, int lo, int def, tolua_Error* err); TOLUA_API int tolua_isusertype (lua_State* L, int lo, const char* type, int def, tolua_Error* err); TOLUA_API int tolua_isvaluearray (lua_State* L, int lo, int dim, int def, tolua_Error* err); TOLUA_API int tolua_isbooleanarray (lua_State* L, int lo, int dim, int def, tolua_Error* err); TOLUA_API int tolua_isnumberarray (lua_State* L, int lo, int dim, int def, tolua_Error* err); TOLUA_API int tolua_isstringarray (lua_State* L, int lo, int dim, int def, tolua_Error* err); TOLUA_API int tolua_istablearray (lua_State* L, int lo, int dim, int def, tolua_Error* err); TOLUA_API int tolua_isuserdataarray (lua_State* L, int lo, int dim, int def, tolua_Error* err); TOLUA_API int tolua_isusertypearray (lua_State* L, int lo, const char* type, int dim, int def, tolua_Error* err); TOLUA_API void tolua_open (lua_State* L); TOLUA_API void* tolua_copy (lua_State* L, void* value, unsigned int size); TOLUA_API int tolua_register_gc (lua_State* L, int lo); TOLUA_API int tolua_default_collect (lua_State* tolua_S); TOLUA_API void tolua_usertype (lua_State* L, const char* type); TOLUA_API void tolua_beginmodule (lua_State* L, const char* name); TOLUA_API void tolua_endmodule (lua_State* L); TOLUA_API void tolua_module (lua_State* L, const char* name, int hasvar); TOLUA_API void tolua_class (lua_State* L, const char* name, const char* base); TOLUA_API void tolua_cclass (lua_State* L, const char* lname, const char* name, const char* base, lua_CFunction col); TOLUA_API void tolua_function (lua_State* L, const char* name, lua_CFunction func); TOLUA_API void tolua_constant (lua_State* L, const char* name, lua_Number value); TOLUA_API void tolua_variable (lua_State* L, const char* name, lua_CFunction get, lua_CFunction set); TOLUA_API void tolua_array (lua_State* L,const char* name, lua_CFunction get, lua_CFunction set); /* TOLUA_API void tolua_set_call_event(lua_State* L, lua_CFunction func, char* type); */ /* TOLUA_API void tolua_addbase(lua_State* L, char* name, char* base); */ TOLUA_API void tolua_pushvalue (lua_State* L, int lo); TOLUA_API void tolua_pushboolean (lua_State* L, int value); TOLUA_API void tolua_pushnumber (lua_State* L, lua_Number value); TOLUA_API void tolua_pushstring (lua_State* L, const char* value); TOLUA_API void tolua_pushuserdata (lua_State* L, void* value); TOLUA_API void tolua_pushusertype (lua_State* L, void* value, const char* type); TOLUA_API void tolua_pushusertype_and_takeownership(lua_State* L, void* value, const char* type); TOLUA_API void tolua_pushfieldvalue (lua_State* L, int lo, int index, int v); TOLUA_API void tolua_pushfieldboolean (lua_State* L, int lo, int index, int v); TOLUA_API void tolua_pushfieldnumber (lua_State* L, int lo, int index, lua_Number v); TOLUA_API void tolua_pushfieldstring (lua_State* L, int lo, int index, const char* v); TOLUA_API void tolua_pushfielduserdata (lua_State* L, int lo, int index, void* v); TOLUA_API void tolua_pushfieldusertype (lua_State* L, int lo, int index, void* v, const char* type); TOLUA_API void tolua_pushfieldusertype_and_takeownership (lua_State* L, int lo, int index, void* v, const char* type); TOLUA_API lua_Number tolua_tonumber (lua_State* L, int narg, lua_Number def); TOLUA_API const char* tolua_tostring (lua_State* L, int narg, const char* def); TOLUA_API void* tolua_touserdata (lua_State* L, int narg, void* def); TOLUA_API void* tolua_tousertype (lua_State* L, int narg, void* def); TOLUA_API int tolua_tovalue (lua_State* L, int narg, int def); TOLUA_API int tolua_toboolean (lua_State* L, int narg, int def); TOLUA_API lua_Number tolua_tofieldnumber (lua_State* L, int lo, int index, lua_Number def); TOLUA_API const char* tolua_tofieldstring (lua_State* L, int lo, int index, const char* def); TOLUA_API void* tolua_tofielduserdata (lua_State* L, int lo, int index, void* def); TOLUA_API void* tolua_tofieldusertype (lua_State* L, int lo, int index, void* def); TOLUA_API int tolua_tofieldvalue (lua_State* L, int lo, int index, int def); TOLUA_API int tolua_getfieldboolean (lua_State* L, int lo, int index, int def); TOLUA_API void tolua_dobuffer(lua_State* L, char* B, unsigned int size, const char* name); TOLUA_API int class_gc_event (lua_State* L); #ifdef __cplusplus static inline const char* tolua_tocppstring (lua_State* L, int narg, const char* def) { const char* s = tolua_tostring(L, narg, def); return s?s:""; } static inline const char* tolua_tofieldcppstring (lua_State* L, int lo, int index, const char* def) { const char* s = tolua_tofieldstring(L, lo, index, def); return s?s:""; } #else #define tolua_tocppstring tolua_tostring #define tolua_tofieldcppstring tolua_tofieldstring #endif TOLUA_API int tolua_fast_isa(lua_State *L, int mt_indexa, int mt_indexb, int super_index); #ifndef Mtolua_new #define Mtolua_new(EXP) new EXP #endif #ifndef Mtolua_delete #define Mtolua_delete(EXP) delete EXP #endif #ifndef Mtolua_new_dim #define Mtolua_new_dim(EXP, len) new EXP[len] #endif #ifndef Mtolua_delete_dim #define Mtolua_delete_dim(EXP) delete [] EXP #endif #ifndef tolua_outside #define tolua_outside #endif #ifndef tolua_owned #define tolua_owned #endif #ifdef __cplusplus } #endif #endif conky-1.19.6/3rdparty/toluapp/libtoluapp.def000066400000000000000000000023331451224556600210350ustar00rootroot00000000000000EXPORTS class_gc_event push_table_instance tolua_array tolua_beginmodule tolua_cclass tolua_classevents tolua_constant tolua_copy tolua_default_collect tolua_dobuffer tolua_endmodule tolua_error tolua_fast_isa tolua_function tolua_getfieldboolean tolua_isboolean tolua_isbooleanarray tolua_ismodulemetatable tolua_isnoobj tolua_isnumber tolua_isnumberarray tolua_isstring tolua_isstringarray tolua_istable tolua_istablearray tolua_isuserdata tolua_isuserdataarray tolua_isusertable tolua_isusertype tolua_isusertypearray tolua_isvalue tolua_isvaluearray tolua_module tolua_moduleevents tolua_open tolua_pushboolean tolua_pushfieldboolean tolua_pushfieldnumber tolua_pushfieldstring tolua_pushfielduserdata tolua_pushfieldusertype tolua_pushfieldusertype_and_takeownership tolua_pushfieldvalue tolua_pushnumber tolua_pushstring tolua_pushuserdata tolua_pushusertype tolua_pushusertype_and_takeownership tolua_pushvalue tolua_register_gc tolua_toboolean tolua_tofieldnumber tolua_tofieldstring tolua_tofielduserdata tolua_tofieldusertype tolua_tofieldvalue tolua_tonumber tolua_tostring tolua_touserdata tolua_tousertype tolua_tovalue tolua_typename tolua_usertype tolua_variable conky-1.19.6/3rdparty/toluapp/src/000077500000000000000000000000001451224556600167705ustar00rootroot00000000000000conky-1.19.6/3rdparty/toluapp/src/bin/000077500000000000000000000000001451224556600175405ustar00rootroot00000000000000conky-1.19.6/3rdparty/toluapp/src/bin/SCsub000066400000000000000000000006011451224556600204770ustar00rootroot00000000000000Import('env') src = [ env.Object('tolua.c'), ] #toluabind = env.LuaBinding('toluabind.c', 'tolua_scons.pkg', 'tolua', bootstrap = True) env.bin_target = env.Program('#/bin/'+env['tolua_bin'], src, LIBS = ['$tolua_lib'] + env['LIBS']) env.bootstrap_target = env.Program('#/bin/'+env['TOLUAPP_BOOTSTRAP'], src + ['toluabind_default.c', env.lib_target_static], LIBS = env['LIBS']) conky-1.19.6/3rdparty/toluapp/src/bin/lua/000077500000000000000000000000001451224556600203215ustar00rootroot00000000000000conky-1.19.6/3rdparty/toluapp/src/bin/lua/all.lua000066400000000000000000000015461451224556600216020ustar00rootroot00000000000000dofile(path.."compat-5.1.lua") dofile(path.."compat.lua") dofile(path.."feature.lua") dofile(path.."verbatim.lua") dofile(path.."basic.lua") dofile(path.."code.lua") dofile(path.."typedef.lua") dofile(path.."container.lua") dofile(path.."ordered_pairs.lua") dofile(path.."package.lua") dofile(path.."module.lua") dofile(path.."namespace.lua") dofile(path.."define.lua") dofile(path.."enumerate.lua") dofile(path.."declaration.lua") dofile(path.."variable.lua") dofile(path.."array.lua") dofile(path.."function.lua") dofile(path.."operator.lua") dofile(path.."template_class.lua") dofile(path.."class.lua") dofile(path.."clean.lua") --dofile(path.."custom.lua") dofile(path.."doit.lua") local err,msg = xpcall(doit, debug.traceback) if not err then --print("**** msg is "..tostring(msg)) local _,_,label,msg = strfind(msg,"(.-:.-:%s*)(.*)") tolua_error(msg,label) end conky-1.19.6/3rdparty/toluapp/src/bin/lua/array.lua000066400000000000000000000146271451224556600221540ustar00rootroot00000000000000-- tolua: array class -- Written by Waldemar Celes -- TeCGraf/PUC-Rio -- Jul 1999 -- $Id: array.lua,v 1.1 2000/11/06 22:03:57 celes Exp $ -- This code is free software; you can redistribute it and/or modify it. -- The software provided hereunder is on an "as is" basis, and -- the author has no obligation to provide maintenance, support, updates, -- enhancements, or modifications. -- Array class -- Represents a extern array variable or a public member of a class. -- Stores all fields present in a declaration. classArray = { } classArray.__index = classArray setmetatable(classArray,classDeclaration) -- Print method function classArray:print (ident,close) print(ident.."Array{") print(ident.." mod = '"..self.mod.."',") print(ident.." type = '"..self.type.."',") print(ident.." ptr = '"..self.ptr.."',") print(ident.." name = '"..self.name.."',") print(ident.." def = '"..self.def.."',") print(ident.." dim = '"..self.dim.."',") print(ident.." ret = '"..self.ret.."',") print(ident.."}"..close) end -- check if it is a variable function classArray:isvariable () return true end -- get variable value function classArray:getvalue (class,static) if class and static then return class..'::'..self.name..'[tolua_index]' elseif class then return 'self->'..self.name..'[tolua_index]' else return self.name..'[tolua_index]' end end -- Write binding functions function classArray:supcode () local class = self:inclass() -- get function ------------------------------------------------ if class then output("/* get function:",self.name," of class ",class," */") else output("/* get function:",self.name," */") end self.cgetname = self:cfuncname("tolua_get") output("#ifndef TOLUA_DISABLE_"..self.cgetname) output("\nstatic int",self.cgetname,"(lua_State* tolua_S)") output("{") output(" int tolua_index;") -- declare self, if the case local _,_,static = strfind(self.mod,'^%s*(static)') if class and static==nil then output(' ',self.parent.type,'*','self;') output(' lua_pushstring(tolua_S,".self");') output(' lua_rawget(tolua_S,1);') output(' self = ') output('(',self.parent.type,'*) ') output('lua_touserdata(tolua_S,-1);') elseif static then _,_,self.mod = strfind(self.mod,'^%s*static%s%s*(.*)') end -- check index output('#ifndef TOLUA_RELEASE\n') output(' {') output(' tolua_Error tolua_err;') output(' if (!tolua_isnumber(tolua_S,2,0,&tolua_err))') output(' tolua_error(tolua_S,"#vinvalid type in array indexing.",&tolua_err);') output(' }') output('#endif\n') if flags['1'] then -- for compatibility with tolua5 ? output(' tolua_index = (int)tolua_tonumber(tolua_S,2,0)-1;') else output(' tolua_index = (int)tolua_tonumber(tolua_S,2,0);') end output('#ifndef TOLUA_RELEASE\n') if self.dim and self.dim ~= '' then output(' if (tolua_index<0 || tolua_index>='..self.dim..')') else output(' if (tolua_index<0)') end output(' tolua_error(tolua_S,"array indexing out of range.",NULL);') output('#endif\n') -- return value local t,ct = isbasic(self.type) local push_func = get_push_function(t) if t then output(' tolua_push'..t..'(tolua_S,(',ct,')'..self:getvalue(class,static)..');') else t = self.type if self.ptr == '&' or self.ptr == '' then output(' ',push_func,'(tolua_S,(void*)&'..self:getvalue(class,static)..',"',t,'");') else output(' ',push_func,'(tolua_S,(void*)'..self:getvalue(class,static)..',"',t,'");') end end output(' return 1;') output('}') output('#endif //#ifndef TOLUA_DISABLE\n') output('\n') -- set function ------------------------------------------------ if not strfind(self.type,'const') then if class then output("/* set function:",self.name," of class ",class," */") else output("/* set function:",self.name," */") end self.csetname = self:cfuncname("tolua_set") output("#ifndef TOLUA_DISABLE_"..self.csetname) output("\nstatic int",self.csetname,"(lua_State* tolua_S)") output("{") -- declare index output(' int tolua_index;') -- declare self, if the case local _,_,static = strfind(self.mod,'^%s*(static)') if class and static==nil then output(' ',self.parent.type,'*','self;') output(' lua_pushstring(tolua_S,".self");') output(' lua_rawget(tolua_S,1);') output(' self = ') output('(',self.parent.type,'*) ') output('lua_touserdata(tolua_S,-1);') elseif static then _,_,self.mod = strfind(self.mod,'^%s*static%s%s*(.*)') end -- check index output('#ifndef TOLUA_RELEASE\n') output(' {') output(' tolua_Error tolua_err;') output(' if (!tolua_isnumber(tolua_S,2,0,&tolua_err))') output(' tolua_error(tolua_S,"#vinvalid type in array indexing.",&tolua_err);') output(' }') output('#endif\n') if flags['1'] then -- for compatibility with tolua5 ? output(' tolua_index = (int)tolua_tonumber(tolua_S,2,0)-1;') else output(' tolua_index = (int)tolua_tonumber(tolua_S,2,0);') end output('#ifndef TOLUA_RELEASE\n') if self.dim and self.dim ~= '' then output(' if (tolua_index<0 || tolua_index>='..self.dim..')') else output(' if (tolua_index<0)') end output(' tolua_error(tolua_S,"array indexing out of range.",NULL);') output('#endif\n') -- assign value local ptr = '' if self.ptr~='' then ptr = '*' end output(' ') if class and static then output(class..'::'..self.name..'[tolua_index]') elseif class then output('self->'..self.name..'[tolua_index]') else output(self.name..'[tolua_index]') end local t = isbasic(self.type) output(' = ') if not t and ptr=='' then output('*') end output('((',self.mod,self.type) if not t then output('*') end output(') ') local def = 0 if self.def ~= '' then def = self.def end if t then output('tolua_to'..t,'(tolua_S,3,',def,'));') else local to_func = get_to_function(self.type) output(to_func,'(tolua_S,3,',def,'));') end output(' return 0;') output('}') output('#endif //#ifndef TOLUA_DISABLE\n') output('\n') end end function classArray:register (pre) if not self:check_public_access() then return end pre = pre or '' if self.csetname then output(pre..'tolua_array(tolua_S,"'..self.lname..'",'..self.cgetname..','..self.csetname..');') else output(pre..'tolua_array(tolua_S,"'..self.lname..'",'..self.cgetname..',NULL);') end end -- Internal constructor function _Array (t) setmetatable(t,classArray) append(t) return t end -- Constructor -- Expects a string representing the variable declaration. function Array (s) return _Array (Declaration(s,'var')) end conky-1.19.6/3rdparty/toluapp/src/bin/lua/basic.lua000066400000000000000000000213531451224556600221110ustar00rootroot00000000000000-- tolua: basic utility functions -- Written by Waldemar Celes -- TeCGraf/PUC-Rio -- Jul 1998 -- Last update: Apr 2003 -- $Id: $ -- This code is free software; you can redistribute it and/or modify it. -- The software provided hereunder is on an "as is" basis, and -- the author has no obligation to provide maintenance, support, updates, -- enhancements, or modifications. -- Basic C types and their corresponding Lua types -- All occurrences of "char*" will be replaced by "_cstring", -- and all occurrences of "void*" will be replaced by "_userdata" _basic = { ['void'] = '', ['char'] = 'number', ['int'] = 'number', ['short'] = 'number', ['long'] = 'number', ['unsigned'] = 'number', ['float'] = 'number', ['double'] = 'number', ['_cstring'] = 'string', ['_userdata'] = 'userdata', ['char*'] = 'string', ['void*'] = 'userdata', ['bool'] = 'boolean', ['lua_Object'] = 'value', ['LUA_VALUE'] = 'value', -- for compatibility with tolua 4.0 ['lua_State*'] = 'state', ['_lstate'] = 'state', ['lua_Function'] = 'value', } _basic_ctype = { number = "lua_Number", string = "const char*", userdata = "void*", boolean = "bool", value = "int", state = "lua_State*", } -- functions the are used to do a 'raw push' of basic types _basic_raw_push = {} -- List of user defined types -- Each type corresponds to a variable name that stores its tag value. _usertype = {} -- List of types that have to be collected _collect = {} -- List of types _global_types = {n=0} _global_types_hash = {} -- list of classes _global_classes = {} -- List of enum constants _global_enums = {} -- List of auto renaming _renaming = {} function appendrenaming (s) local b,e,old,new = strfind(s,"%s*(.-)%s*@%s*(.-)%s*$") if not b then error("#Invalid renaming syntax; it should be of the form: pattern@pattern") end tinsert(_renaming,{old=old, new=new}) end function applyrenaming (s) for i,v in ipairs(_renaming) do local m,n = gsub(s,v.old,v.new) if n ~= 0 then return m end end return nil end -- Error handler function tolua_error (s,f) if _curr_code then print("***curr code for error is "..tostring(_curr_code)) print(debug.traceback()) end local out = _OUTPUT _OUTPUT = _STDERR if strsub(s,1,1) == '#' then write("\n** tolua: "..strsub(s,2)..".\n\n") if _curr_code then local _,_,s = strfind(_curr_code,"^%s*(.-\n)") -- extract first line if s==nil then s = _curr_code end s = gsub(s,"_userdata","void*") -- return with 'void*' s = gsub(s,"_cstring","char*") -- return with 'char*' s = gsub(s,"_lstate","lua_State*") -- return with 'lua_State*' write("Code being processed:\n"..s.."\n") end else if not f then f = "(f is nil)" end print("\n** tolua internal error: "..f..s..".\n\n") return end _OUTPUT = out end function warning (msg) if flags.q then return end local out = _OUTPUT _OUTPUT = _STDERR write("\n** tolua warning: "..msg..".\n\n") _OUTPUT = out end -- register an user defined type: returns full type function regtype (t) --if isbasic(t) then -- return t --end local ft = findtype(t) if not _usertype[ft] then return appendusertype(t) end return ft end -- return type name: returns full type function typevar(type) if type == '' or type == 'void' then return type else local ft = findtype(type) if ft then return ft end _usertype[type] = type return type end end -- check if basic type function isbasic (type) local t = gsub(type,'const ','') local m,t = applytypedef('', t) local b = _basic[t] if b then return b,_basic_ctype[b] end return nil end -- split string using a token function split (s,t) local l = {n=0} local f = function (s) l.n = l.n + 1 l[l.n] = s return "" end local p = "%s*(.-)%s*"..t.."%s*" s = gsub(s,"^%s+","") s = gsub(s,"%s+$","") s = gsub(s,p,f) l.n = l.n + 1 l[l.n] = gsub(s,"(%s%s*)$","") return l end -- splits a string using a pattern, considering the spacial cases of C code (templates, function parameters, etc) -- pattern can't contain the '^' (as used to identify the begining of the line) -- also strips whitespace function split_c_tokens(s, pat) s = string.gsub(s, "^%s*", "") s = string.gsub(s, "%s*$", "") local token_begin = 1 local token_end = 1 local ofs = 1 local ret = {n=0} function add_token(ofs) local t = string.sub(s, token_begin, ofs) t = string.gsub(t, "^%s*", "") t = string.gsub(t, "%s*$", "") ret.n = ret.n + 1 ret[ret.n] = t end while ofs <= string.len(s) do local sub = string.sub(s, ofs, -1) local b,e = string.find(sub, "^"..pat) if b then add_token(ofs-1) ofs = ofs+e token_begin = ofs else local char = string.sub(s, ofs, ofs) if char == "(" or char == "<" then local block if char == "(" then block = "^%b()" end if char == "<" then block = "^%b<>" end b,e = string.find(sub, block) if not b then -- unterminated block? ofs = ofs+1 else ofs = ofs + e end else ofs = ofs+1 end end end add_token(ofs) --if ret.n == 0 then -- ret.n=1 -- ret[1] = "" --end return ret end -- concatenate strings of a table function concat (t,f,l,jstr) jstr = jstr or " " local s = '' local i=f while i<=l do s = s..t[i] i = i+1 if i <= l then s = s..jstr end end return s end -- concatenate all parameters, following output rules function concatparam (line, ...) local i=1 local arg={...} while i<=#arg do if _cont and not strfind(_cont,'[%(,"]') and strfind(arg[i],"^[%a_~]") then line = line .. ' ' end line = line .. arg[i] if arg[i] ~= '' then _cont = strsub(arg[i],-1,-1) end i = i+1 end if strfind(arg[#arg],"[%/%)%;%{%}]$") then _cont=nil line = line .. '\n' end return line end -- output line function output (...) local i=1 local arg = {...} while i<=#arg do if _cont and not strfind(_cont,'[%(,"]') and strfind(arg[i],"^[%a_~]") then write(' ') end write(arg[i]) if arg[i] ~= '' then _cont = strsub(arg[i],-1,-1) end i = i+1 end if strfind(arg[#arg],"[%/%)%;%{%}]$") then _cont=nil write('\n') end end function get_property_methods(ptype, name) if get_property_methods_hook and get_property_methods_hook(ptype,name) then return get_property_methods_hook(ptype, name) end if ptype == "default" then -- get_name, set_name return "get_"..name, "set_"..name end if ptype == "qt" then -- name, setName return name, "set"..string.upper(string.sub(name, 1, 1))..string.sub(name, 2, -1) end if ptype == "overload" then -- name, name return name,name end return nil end -------------- the hooks -- called right after processing the $[ichl]file directives, -- right before processing anything else -- takes the package object as the parameter function preprocess_hook(p) -- p.code has all the input code from the pkg end -- called for every $ifile directive -- takes a table with a string called 'code' inside, the filename, and any extra arguments -- passed to $ifile. no return value function include_file_hook(t, filename, ...) end -- called after processing anything that's not code (like '$renaming', comments, etc) -- and right before parsing the actual code. -- takes the Package object with all the code on the 'code' key. no return value function preparse_hook(package) end -- called before starting output function pre_output_hook(package) end -- called after writing all the output. -- takes the Package object function post_output_hook(package) end -- called from 'get_property_methods' to get the methods to retrieve a property -- according to its type function get_property_methods_hook(property_type, name) end -- called from ClassContainer:doparse with the string being parsed -- return nil, or a substring function parser_hook(s) return nil end -- called from classFunction:supcode, before the call to the function is output function pre_call_hook(f) end -- called from classFunction:supcode, after the call to the function is output function post_call_hook(f) end -- called before the register code is output function pre_register_hook(package) end -- called to output an error message function output_error_hook(...) return string.format(table.unpack{...}) end -- custom pushers _push_functions = {} _is_functions = {} _to_functions = {} _base_push_functions = {} _base_is_functions = {} _base_to_functions = {} local function search_base(t, funcs) local class = _global_classes[t] while class do if funcs[class.type] then return funcs[class.type] end class = _global_classes[class.btype] end return nil end function get_push_function(t) return _push_functions[t] or search_base(t, _base_push_functions) or "tolua_pushusertype" end function get_to_function(t) return _to_functions[t] or search_base(t, _base_to_functions) or "tolua_tousertype" end function get_is_function(t) return _is_functions[t] or search_base(t, _base_is_functions) or "tolua_isusertype" end conky-1.19.6/3rdparty/toluapp/src/bin/lua/class.lua000066400000000000000000000115041451224556600221320ustar00rootroot00000000000000-- tolua: class class -- Written by Waldemar Celes -- TeCGraf/PUC-Rio -- Jul 1998 -- $Id: $ -- This code is free software; you can redistribute it and/or modify it. -- The software provided hereunder is on an "as is" basis, and -- the author has no obligation to provide maintenance, support, updates, -- enhancements, or modifications. -- Class class -- Represents a class definition. -- Stores the following fields: -- name = class name -- base = class base, if any (only single inheritance is supported) -- {i} = list of members classClass = { classtype = 'class', name = '', base = '', type = '', btype = '', ctype = '', } classClass.__index = classClass setmetatable(classClass,classContainer) -- register class function classClass:register (pre) if not self:check_public_access() then return end pre = pre or '' push(self) if _collect[self.type] then output(pre,'#ifdef __cplusplus\n') output(pre..'tolua_cclass(tolua_S,"'..self.lname..'","'..self.type..'","'..self.btype..'",'.._collect[self.type]..');') output(pre,'#else\n') output(pre..'tolua_cclass(tolua_S,"'..self.lname..'","'..self.type..'","'..self.btype..'",NULL);') output(pre,'#endif\n') else output(pre..'tolua_cclass(tolua_S,"'..self.lname..'","'..self.type..'","'..self.btype..'",NULL);') end if self.extra_bases then for k,base in ipairs(self.extra_bases) do -- not now --output(pre..' tolua_addbase(tolua_S, "'..self.type..'", "'..base..'");') end end output(pre..'tolua_beginmodule(tolua_S,"'..self.lname..'");') local i=1 while self[i] do self[i]:register(pre..' ') i = i+1 end output(pre..'tolua_endmodule(tolua_S);') pop() end -- return collection requirement function classClass:requirecollection (t) if self.flags.protected_destructor or (not self:check_public_access()) then return false end push(self) local r = false local i=1 while self[i] do r = self[i]:requirecollection(t) or r i = i+1 end pop() -- only class that exports destructor can be appropriately collected -- classes that export constructors need to have a collector (overrided by -D flag on command line) if self._delete or ((not flags['D']) and self._new) then --t[self.type] = "tolua_collect_" .. gsub(self.type,"::","_") t[self.type] = "tolua_collect_" .. clean_template(self.type) r = true end return r end -- output tags function classClass:decltype () push(self) self.type = regtype(self.original_name or self.name) self.btype = typevar(self.base) self.ctype = 'const '..self.type if self.extra_bases then for i=1,#self.extra_bases do self.extra_bases[i] = typevar(self.extra_bases[i]) end end local i=1 while self[i] do self[i]:decltype() i = i+1 end pop() end -- Print method function classClass:print (ident,close) print(ident.."Class{") print(ident.." name = '"..self.name.."',") print(ident.." base = '"..self.base.."';") print(ident.." lname = '"..self.lname.."',") print(ident.." type = '"..self.type.."',") print(ident.." btype = '"..self.btype.."',") print(ident.." ctype = '"..self.ctype.."',") local i=1 while self[i] do self[i]:print(ident.." ",",") i = i+1 end print(ident.."}"..close) end function classClass:set_protected_destructor(p) self.flags.protected_destructor = self.flags.protected_destructor or p end -- Internal constructor function _Class (t) setmetatable(t,classClass) t:buildnames() append(t) return t end -- Constructor -- Expects the name, the base (array) and the body of the class. function Class (n,p,b) if #p > 1 then b = string.sub(b, 1, -2) for i=2,#p,1 do b = b.."\n tolua_inherits "..p[i].." __"..p[i].."__;\n" end b = b.."\n}" end -- check for template b = string.gsub(b, "^{%s*TEMPLATE_BIND", "{\nTOLUA_TEMPLATE_BIND") local t,_,T,I = string.find(b, '^{%s*TOLUA_TEMPLATE_BIND%s*%(+%s*\"?([^\",]*)\"?%s*,%s*([^%)]*)%s*%)+') if t then -- remove quotes I = string.gsub(I, "\"", "") T = string.gsub(T, "\"", "") -- get type list local types = split_c_tokens(I, ",") -- remove TEMPLATE_BIND line local bs = string.gsub(b, "^{%s*TOLUA_TEMPLATE_BIND[^\n]*\n", "{\n") local Tl = split(T, " ") local tc = TemplateClass(n, p, bs, Tl) tc:throw(types, true) --for i=1,types.n do -- tc:throw(split_c_tokens(types[i], " "), true) --end return end local mbase if p then mbase = table.remove(p, 1) if not p[1] then p = nil end end mbase = mbase and resolve_template_types(mbase) local c local oname = string.gsub(n, "@.*$", "") oname = getnamespace(classContainer.curr)..oname if _global_classes[oname] then c = _global_classes[oname] if mbase and ((not c.base) or c.base == "") then c.base = mbase end else c = _Class(_Container{name=n, base=mbase, extra_bases=p}) local ft = getnamespace(c.parent)..c.original_name append_global_type(ft, c) end push(c) c:parse(strsub(b,2,strlen(b)-1)) -- eliminate braces pop() end conky-1.19.6/3rdparty/toluapp/src/bin/lua/clean.lua000066400000000000000000000024561451224556600221150ustar00rootroot00000000000000-- mark up comments and strings STR1 = "\001" STR2 = "\002" STR3 = "\003" STR4 = "\004" REM = "\005" ANY = "([\001-\005])" ESC1 = "\006" ESC2 = "\007" MASK = { -- the substitution order is important {ESC1, "\\'"}, {ESC2, '\\"'}, {STR1, "'"}, {STR2, '"'}, {STR3, "%[%["}, {STR4, "%]%]"}, {REM , "%-%-"}, } function mask (s) for i = 1,#MASK do s = gsub(s,MASK[i][2],MASK[i][1]) end return s end function unmask (s) for i = 1,#MASK do s = gsub(s,MASK[i][1],MASK[i][2]) end return s end function clean (s) -- check for compilation error local code = "return function ()\n" .. s .. "\n end" if not dostring(code) then return nil end if flags['C'] then return s end local S = "" -- saved string s = mask(s) -- remove blanks and comments while 1 do local b,e,d = strfind(s,ANY) if b then S = S..strsub(s,1,b-1) s = strsub(s,b+1) if d==STR1 or d==STR2 then e = strfind(s,d) S = S ..d..strsub(s,1,e) s = strsub(s,e+1) elseif d==STR3 then e = strfind(s,STR4) S = S..d..strsub(s,1,e) s = strsub(s,e+1) elseif d==REM then s = gsub(s,"[^\n]*(\n?)","%1",1) end else S = S..s break end end -- eliminate unecessary spaces S = gsub(S,"[ \t]+"," ") S = gsub(S,"[ \t]*\n[ \t]*","\n") S = gsub(S,"\n+","\n") S = unmask(S) return S end conky-1.19.6/3rdparty/toluapp/src/bin/lua/code.lua000066400000000000000000000047301451224556600217420ustar00rootroot00000000000000-- tolua: code class -- Written by Waldemar Celes -- TeCGraf/PUC-Rio -- Jul 1999 -- $Id: $ -- This code is free software; you can redistribute it and/or modify it. -- The software provided hereunder is on an "as is" basis, and -- the author has no obligation to provide maintenance, support, updates, -- enhancements, or modifications. -- global code_n = 1 -- Code class -- Represents Lua code to be compiled and included -- in the initialization function. -- The following fields are stored: -- text = text code classCode = { text = '', } classCode.__index = classCode setmetatable(classCode,classFeature) -- register code function classCode:register (pre) pre = pre or '' -- clean Lua code local s = clean(self.text) if not s then --print(self.text) error("parser error in embedded code") end -- get first line local _, _, first_line=string.find(self.text, "^([^\n\r]*)") if string.find(first_line, "^%s*%-%-") then if string.find(first_line, "^%-%-##") then first_line = string.gsub(first_line, "^%-%-##", "") if flags['C'] then s = string.gsub(s, "^%-%-##[^\n\r]*\n", "") end end else first_line = "" end -- pad to 16 bytes local npad = 16 - (#s % 16) local spad = "" for i=1,npad do spad = spad .. "-" end s = s..spad -- convert to C output('\n'..pre..'{ /* begin embedded lua code */\n') output(pre..' int top = lua_gettop(tolua_S);') output(pre..' static const unsigned char B[] = {\n ') local t={n=0} local b = gsub(s,'(.)',function (c) local e = '' t.n=t.n+1 if t.n==15 then t.n=0 e='\n'..pre..' ' end return format('%3u,%s',strbyte(c),e) end ) output(b..strbyte(" ")) output('\n'..pre..' };\n') if first_line and first_line ~= "" then output(pre..' tolua_dobuffer(tolua_S,(char*)B,sizeof(B),"tolua embedded: '..first_line..'");') else output(pre..' tolua_dobuffer(tolua_S,(char*)B,sizeof(B),"tolua: embedded Lua code '..code_n..'");') end output(pre..' lua_settop(tolua_S, top);') output(pre..'} /* end of embedded lua code */\n\n') code_n = code_n +1 end -- Print method function classCode:print (ident,close) print(ident.."Code{") print(ident.." text = [["..self.text.."]],") print(ident.."}"..close) end -- Internal constructor function _Code (t) setmetatable(t,classCode) append(t) return t end -- Constructor -- Expects a string representing the code text function Code (l) return _Code { text = l } end conky-1.19.6/3rdparty/toluapp/src/bin/lua/compat-5.1.lua000077500000000000000000000017061451224556600226170ustar00rootroot00000000000000if string.find(_VERSION, "5%.0") then return end -- "loadfile" local function pp_dofile(path) local loaded = false local getfile = function() if loaded then return else local file,err = io.open(path) if not file then error("error loading file "..path..": "..err) end local ret = file:read("*a") file:close() ret = string.gsub(ret, "%.%.%.%s*%)", "...) local arg = {n=select('#', ...), ...};") loaded = true return ret end end local f = load(getfile, path) if not f then error("error loading file "..path ..": " .. errmsg) end return f() end old_dofile = dofile dofile = pp_dofile -- string.gsub --[[ local ogsub = string.gsub local function compgsub(a,b,c,d) if type(c) == "function" then local oc = c c = function (...) return oc(...) or '' end end return ogsub(a,b,c,d) end string.repl = ogsub --]] --string.gsub = compgsub conky-1.19.6/3rdparty/toluapp/src/bin/lua/compat.lua000066400000000000000000000100651451224556600223110ustar00rootroot00000000000000------------------------------------------------------------------- -- Real globals -- _ALERT -- _ERRORMESSAGE -- _VERSION -- _G -- assert -- error -- metatable -- next -- print -- require -- tonumber -- tostring -- type -- unpack ------------------------------------------------------------------- -- collectgarbage -- gcinfo -- globals -- call -> protect(f, err) -- loadfile -- loadstring -- rawget -- rawset -- getargs = Main.getargs ?? rawtype = type function do_ (f, err) if not f then print(err); return end local a,b = pcall(f) if not a then print(b); return nil else return b or true end end function dostring(s) return do_(load(s)) end -- function dofile(s) return do_(loadfile(s)) end ------------------------------------------------------------------- -- Table library local tab = table getn = function (tab) return #tab end tinsert = tab.insert tremove = tab.remove sort = tab.sort ------------------------------------------------------------------- -- Debug library local dbg = debug getinfo = dbg.getinfo getlocal = dbg.getlocal setcallhook = function () error"`setcallhook' is deprecated" end setlinehook = function () error"`setlinehook' is deprecated" end setlocal = dbg.setlocal ------------------------------------------------------------------- -- math library local math = math abs = math.abs acos = function (x) return math.deg(math.acos(x)) end asin = function (x) return math.deg(math.asin(x)) end atan = function (x) return math.deg(math.atan(x)) end atan2 = function (x,y) return math.deg(math.atan2(x,y)) end ceil = math.ceil cos = function (x) return math.cos(math.rad(x)) end deg = math.deg exp = math.exp floor = math.floor frexp = math.frexp ldexp = math.ldexp log = math.log log10 = function(val) return math.log(10, val) end max = math.max min = math.min mod = math.mod PI = math.pi --??? pow = math.pow rad = math.rad random = math.random randomseed = math.randomseed sin = function (x) return math.sin(math.rad(x)) end sqrt = math.sqrt tan = function (x) return math.tan(math.rad(x)) end ------------------------------------------------------------------- -- string library local str = string strbyte = str.byte strchar = str.char strfind = str.find format = str.format gsub = str.gsub strlen = str.len strlower = str.lower strrep = str.rep strsub = str.sub strupper = str.upper ------------------------------------------------------------------- -- os library clock = os.clock date = os.date difftime = os.difftime execute = os.execute --? exit = os.exit getenv = os.getenv remove = os.remove rename = os.rename setlocale = os.setlocale time = os.time tmpname = os.tmpname ------------------------------------------------------------------- -- compatibility only getglobal = function (n) return _G[n] end setglobal = function (n,v) _G[n] = v end ------------------------------------------------------------------- local io, tab = io, table -- IO library (files) _STDIN = io.stdin _STDERR = io.stderr _STDOUT = io.stdout _INPUT = io.stdin _OUTPUT = io.stdout seek = io.stdin.seek -- sick ;-) tmpfile = io.tmpfile closefile = io.close openfile = io.open function flush (f) if f then f:flush() else _OUTPUT:flush() end end function readfrom (name) if name == nil then local f, err, cod = io.close(_INPUT) _INPUT = io.stdin return f, err, cod else local f, err, cod = io.open(name, "r") _INPUT = f or _INPUT return f, err, cod end end function writeto (name) if name == nil then local f, err, cod = io.close(_OUTPUT) _OUTPUT = io.stdout return f, err, cod else local f, err, cod = io.open(name, "w") _OUTPUT = f or _OUTPUT return f, err, cod end end function appendto (name) local f, err, cod = io.open(name, "a") _OUTPUT = f or _OUTPUT return f, err, cod end function read (...) local f = _INPUT local arg = {...} if rawtype(arg[1]) == 'userdata' then f = tab.remove(arg, 1) end return f:read(table.unpack(arg)) end function write (...) local f = _OUTPUT local arg = {...} if rawtype(arg[1]) == 'userdata' then f = tab.remove(arg, 1) end return f:write(table.unpack(arg)) end conky-1.19.6/3rdparty/toluapp/src/bin/lua/container.lua000066400000000000000000000420061451224556600230100ustar00rootroot00000000000000-- tolua: container abstract class -- Written by Waldemar Celes -- TeCGraf/PUC-Rio -- Jul 1998 -- $Id: $ -- This code is free software; you can redistribute it and/or modify it. -- The software provided hereunder is on an "as is" basis, and -- the author has no obligation to provide maintenance, support, updates, -- enhancements, or modifications. -- table to store namespaced typedefs/enums in global scope global_typedefs = {} global_enums = {} -- Container class -- Represents a container of features to be bound -- to lua. classContainer = { curr = nil, } classContainer.__index = classContainer setmetatable(classContainer,classFeature) -- output tags function classContainer:decltype () push(self) local i=1 while self[i] do self[i]:decltype() i = i+1 end pop() end -- write support code function classContainer:supcode () if not self:check_public_access() then return end push(self) local i=1 while self[i] do if self[i]:check_public_access() then self[i]:supcode() end i = i+1 end pop() end function classContainer:hasvar () local i=1 while self[i] do if self[i]:isvariable() then return 1 end i = i+1 end return 0 end -- Internal container constructor function _Container (self) setmetatable(self,classContainer) self.n = 0 self.typedefs = {tolua_n=0} self.usertypes = {} self.enums = {tolua_n=0} self.lnames = {} return self end -- push container function push (t) t.prox = classContainer.curr classContainer.curr = t end -- pop container function pop () --print("name",classContainer.curr.name) --foreach(classContainer.curr.usertypes,print) --print("______________") classContainer.curr = classContainer.curr.prox end -- get current namespace function getcurrnamespace () return getnamespace(classContainer.curr) end -- append to current container function append (t) return classContainer.curr:append(t) end -- append typedef to current container function appendtypedef (t) return classContainer.curr:appendtypedef(t) end -- append usertype to current container function appendusertype (t) return classContainer.curr:appendusertype(t) end -- append enum to current container function appendenum (t) return classContainer.curr:appendenum(t) end -- substitute typedef function applytypedef (mod,type) return classContainer.curr:applytypedef(mod,type) end -- check if is type function findtype (type) local t = classContainer.curr:findtype(type) return t end -- check if is typedef function istypedef (type) return classContainer.curr:istypedef(type) end -- get fulltype (with namespace) function fulltype (t) local curr = classContainer.curr while curr do if curr then if curr.typedefs and curr.typedefs[t] then return curr.typedefs[t] elseif curr.usertypes and curr.usertypes[t] then return curr.usertypes[t] end end curr = curr.prox end return t end -- checks if it requires collection function classContainer:requirecollection (t) push(self) local i=1 local r = false while self[i] do r = self[i]:requirecollection(t) or r i = i+1 end pop() return r end -- get namesapce function getnamespace (curr) local namespace = '' while curr do if curr and ( curr.classtype == 'class' or curr.classtype == 'namespace') then namespace = (curr.original_name or curr.name) .. '::' .. namespace --namespace = curr.name .. '::' .. namespace end curr = curr.prox end return namespace end -- get namespace (only namespace) function getonlynamespace () local curr = classContainer.curr local namespace = '' while curr do if curr.classtype == 'class' then return namespace elseif curr.classtype == 'namespace' then namespace = curr.name .. '::' .. namespace end curr = curr.prox end return namespace end -- check if is enum function isenum (type) return classContainer.curr:isenum(type) end -- append feature to container function classContainer:append (t) self.n = self.n + 1 self[self.n] = t t.parent = self end -- append typedef function classContainer:appendtypedef (t) local namespace = getnamespace(classContainer.curr) self.typedefs.tolua_n = self.typedefs.tolua_n + 1 self.typedefs[self.typedefs.tolua_n] = t self.typedefs[t.utype] = namespace .. t.utype global_typedefs[namespace..t.utype] = t t.ftype = findtype(t.type) or t.type --print("appending typedef "..t.utype.." as "..namespace..t.utype.." with ftype "..t.ftype) append_global_type(namespace..t.utype) if t.ftype and isenum(t.ftype) then global_enums[namespace..t.utype] = true end end -- append usertype: return full type function classContainer:appendusertype (t) local container if t == (self.original_name or self.name) then container = self.prox else container = self end local ft = getnamespace(container) .. t container.usertypes[t] = ft _usertype[ft] = ft return ft end -- append enum function classContainer:appendenum (t) local namespace = getnamespace(classContainer.curr) self.enums.tolua_n = self.enums.tolua_n + 1 self.enums[self.enums.tolua_n] = t global_enums[namespace..t.name] = t end -- determine lua function name overload function classContainer:overload (lname) if not self.lnames[lname] then self.lnames[lname] = 0 else self.lnames[lname] = self.lnames[lname] + 1 end return format("%02d",self.lnames[lname]) end -- applies typedef: returns the 'the facto' modifier and type function classContainer:applytypedef (mod,type) if global_typedefs[type] then --print("found typedef "..global_typedefs[type].type) local mod1, type1 = global_typedefs[type].mod, global_typedefs[type].ftype local mod2, type2 = applytypedef(mod.." "..mod1, type1) --return mod2 .. ' ' .. mod1, type2 return mod2, type2 end do return mod,type end end -- check if it is a typedef function classContainer:istypedef (type) local env = self while env do if env.typedefs then local i=1 while env.typedefs[i] do if env.typedefs[i].utype == type then return type end i = i+1 end end env = env.parent end return nil end function find_enum_var(var) if tonumber(var) then return var end local c = classContainer.curr while c do local ns = getnamespace(c) for k,v in pairs(_global_enums) do if match_type(var, v, ns) then return v end end if c.base and c.base ~= '' then c = _global_classes[c:findtype(c.base)] else c = nil end end return var end -- check if is a registered type: return full type or nil function classContainer:findtype (t) t = string.gsub(t, "=.*", "") if _basic[t] then return t end local _,_,em = string.find(t, "([&%*])%s*$") t = string.gsub(t, "%s*([&%*])%s*$", "") p = self while p and type(p)=='table' do local st = getnamespace(p) for i=_global_types.n,1,-1 do -- in reverse order if match_type(t, _global_types[i], st) then return _global_types[i]..(em or "") end end if p.base and p.base ~= '' and p.base ~= t then --print("type is "..t..", p is "..p.base.." self.type is "..self.type.." self.name is "..self.name) p = _global_classes[p:findtype(p.base)] else p = nil end end return nil end function append_global_type(t, class) _global_types.n = _global_types.n +1 _global_types[_global_types.n] = t _global_types_hash[t] = 1 if class then append_class_type(t, class) end end function append_class_type(t,class) if _global_classes[t] then class.flags = _global_classes[t].flags class.lnames = _global_classes[t].lnames if _global_classes[t].base and (_global_classes[t].base ~= '') then class.base = _global_classes[t].base or class.base end end _global_classes[t] = class class.flags = class.flags or {} end function match_type(childtype, regtype, st) --print("findtype "..childtype..", "..regtype..", "..st) local b,e = string.find(regtype, childtype, -string.len(childtype), true) if b then if e == string.len(regtype) and (b == 1 or (string.sub(regtype, b-1, b-1) == ':' and string.sub(regtype, 1, b-1) == string.sub(st, 1, b-1))) then return true end end return false end function findtype_on_childs(self, t) local tchild if self.classtype == 'class' or self.classtype == 'namespace' then for k,v in ipairs(self) do if v.classtype == 'class' or v.classtype == 'namespace' then if v.typedefs and v.typedefs[t] then return v.typedefs[t] elseif v.usertypes and v.usertypes[t] then return v.usertypes[t] end tchild = findtype_on_childs(v, t) if tchild then return tchild end end end end return nil end function classContainer:isenum (type) if global_enums[type] then return type else return false end local basetype = gsub(type,"^.*::","") local env = self while env do if env.enums then local i=1 while env.enums[i] do if env.enums[i].name == basetype then return true end i = i+1 end end env = env.parent end return false end methodisvirtual = false -- a global -- parse chunk function classContainer:doparse (s) --print ("parse "..s) -- try the parser hook do local sub = parser_hook(s) if sub then return sub end end -- try the null statement do local b,e,code = string.find(s, "^%s*;") if b then return strsub(s,e+1) end end -- try empty verbatim line do local b,e,code = string.find(s, "^%s*$\n") if b then return strsub(s,e+1) end end -- try Lua code do local b,e,code = strfind(s,"^%s*(%b\1\2)") if b then Code(strsub(code,2,-2)) return strsub(s,e+1) end end -- try C code do local b,e,code = strfind(s,"^%s*(%b\3\4)") if b then code = '{'..strsub(code,2,-2)..'\n}\n' Verbatim(code,'r') -- verbatim code for 'r'egister fragment return strsub(s,e+1) end end -- try C code for preamble section do local b,e,code = string.find(s, "^%s*(%b\5\6)") if b then code = string.sub(code, 2, -2).."\n" Verbatim(code, '') return string.sub(s, e+1) end end -- try default_property directive do local b,e,ptype = strfind(s, "^%s*TOLUA_PROPERTY_TYPE%s*%(+%s*([^%)%s]*)%s*%)+%s*;?") if b then if not ptype or ptype == "" then ptype = "default" end self:set_property_type(ptype) return strsub(s, e+1) end end -- try protected_destructor directive do local b,e = string.find(s, "^%s*TOLUA_PROTECTED_DESTRUCTOR%s*;?") if b then if self.set_protected_destructor then self:set_protected_destructor(true) end return strsub(s, e+1) end end -- try 'extern' keyword do local b,e = string.find(s, "^%s*extern%s+") if b then -- do nothing return strsub(s, e+1) end end -- try 'virtual' keyworkd do local b,e = string.find(s, "^%s*virtual%s+") if b then methodisvirtual = true return strsub(s, e+1) end end -- try labels (public, private, etc) do local b,e = string.find(s, "^%s*%w*%s*:[^:]") if b then return strsub(s, e) -- preserve the [^:] end end -- try module do local b,e,name,body = strfind(s,"^%s*module%s%s*([_%w][_%w]*)%s*(%b{})%s*") if b then _curr_code = strsub(s,b,e) Module(name,body) return strsub(s,e+1) end end -- try namesapce do local b,e,name,body = strfind(s,"^%s*namespace%s%s*([_%w][_%w]*)%s*(%b{})%s*;?") if b then _curr_code = strsub(s,b,e) Namespace(name,body) return strsub(s,e+1) end end -- try define do local b,e,name = strfind(s,"^%s*#define%s%s*([^%s]*)[^\n]*\n%s*") if b then _curr_code = strsub(s,b,e) Define(name) return strsub(s,e+1) end end -- try enumerates do local b,e,name,body,varname = strfind(s,"^%s*enum%s+(%S*)%s*(%b{})%s*([^%s;]*)%s*;?%s*") if b then --error("#Sorry, declaration of enums and variables on the same statement is not supported.\nDeclare your variable separately (example: '"..name.." "..varname..";')") _curr_code = strsub(s,b,e) Enumerate(name,body,varname) return strsub(s,e+1) end end -- do -- local b,e,name,body = strfind(s,"^%s*enum%s+(%S*)%s*(%b{})%s*;?%s*") -- if b then -- _curr_code = strsub(s,b,e) -- Enumerate(name,body) -- return strsub(s,e+1) -- end -- end do local b,e,body,name = strfind(s,"^%s*typedef%s+enum[^{]*(%b{})%s*([%w_][^%s]*)%s*;%s*") if b then _curr_code = strsub(s,b,e) Enumerate(name,body) return strsub(s,e+1) end end -- try operator do local b,e,decl,kind,arg,const = strfind(s,"^%s*([_%w][_%w%s%*&:<>,]-%s+operator)%s*([^%s][^%s]*)%s*(%b())%s*(c?o?n?s?t?)%s*;%s*") if not b then -- try inline b,e,decl,kind,arg,const = strfind(s,"^%s*([_%w][_%w%s%*&:<>,]-%s+operator)%s*([^%s][^%s]*)%s*(%b())%s*(c?o?n?s?t?)[%s\n]*%b{}%s*;?%s*") end if not b then -- try cast operator b,e,decl,kind,arg,const = strfind(s, "^%s*(operator)%s+([%w_:%d<>%*%&%s]+)%s*(%b())%s*(c?o?n?s?t?)"); if b then local _,ie = string.find(s, "^%s*%b{}", e+1) if ie then e = ie end end end if b then _curr_code = strsub(s,b,e) Operator(decl,kind,arg,const) return strsub(s,e+1) end end -- try function do --local b,e,decl,arg,const = strfind(s,"^%s*([~_%w][_@%w%s%*&:<>]*[_%w])%s*(%b())%s*(c?o?n?s?t?)%s*=?%s*0?%s*;%s*") local b,e,decl,arg,const,virt = strfind(s,"^%s*([^%(\n]+)%s*(%b())%s*(c?o?n?s?t?)%s*(=?%s*0?)%s*;%s*") if not b then -- try function with template b,e,decl,arg,const = strfind(s,"^%s*([~_%w][_@%w%s%*&:<>]*[_%w]%b<>)%s*(%b())%s*(c?o?n?s?t?)%s*=?%s*0?%s*;%s*") end if not b then -- try a single letter function name b,e,decl,arg,const = strfind(s,"^%s*([_%w])%s*(%b())%s*(c?o?n?s?t?)%s*;%s*") end if not b then -- try function pointer b,e,decl,arg,const = strfind(s,"^%s*([^%(;\n]+%b())%s*(%b())%s*;%s*") if b then decl = string.gsub(decl, "%(%s*%*([^%)]*)%s*%)", " %1 ") end end if b then if virt and string.find(virt, "[=0]") then if self.flags then self.flags.pure_virtual = true end end _curr_code = strsub(s,b,e) Function(decl,arg,const) return strsub(s,e+1) end end -- try inline function do local b,e,decl,arg,const = strfind(s,"^%s*([^%(\n]+)%s*(%b())%s*(c?o?n?s?t?)[^;{]*%b{}%s*;?%s*") --local b,e,decl,arg,const = strfind(s,"^%s*([~_%w][_@%w%s%*&:<>]*[_%w>])%s*(%b())%s*(c?o?n?s?t?)[^;]*%b{}%s*;?%s*") if not b then -- try a single letter function name b,e,decl,arg,const = strfind(s,"^%s*([_%w])%s*(%b())%s*(c?o?n?s?t?).-%b{}%s*;?%s*") end if b then _curr_code = strsub(s,b,e) Function(decl,arg,const) return strsub(s,e+1) end end -- try class do local b,e,name,base,body base = '' body = '' b,e,name = strfind(s,"^%s*class%s*([_%w][_%w@]*)%s*;") -- dummy class local dummy = false if not b then b,e,name = strfind(s,"^%s*struct%s*([_%w][_%w@]*)%s*;") -- dummy struct if not b then b,e,name,base,body = strfind(s,"^%s*class%s*([_%w][_%w@]*)%s*([^{]-)%s*(%b{})%s*") if not b then b,e,name,base,body = strfind(s,"^%s*struct%s+([_%w][_%w@]*)%s*([^{]-)%s*(%b{})%s*") if not b then b,e,name,base,body = strfind(s,"^%s*union%s*([_%w][_%w@]*)%s*([^{]-)%s*(%b{})%s*") if not b then base = '' b,e,body,name = strfind(s,"^%s*typedef%s%s*struct%s%s*[_%w]*%s*(%b{})%s*([_%w][_%w@]*)%s*;") end end end else dummy = 1 end else dummy = 1 end if b then if base ~= '' then base = string.gsub(base, "^%s*:%s*", "") base = string.gsub(base, "%s*public%s*", "") base = split(base, ",") --local b,e --b,e,base = strfind(base,".-([_%w][_%w<>,:]*)$") else base = {} end _curr_code = strsub(s,b,e) Class(name,base,body) if not dummy then varb,vare,varname = string.find(s, "^%s*([_%w]+)%s*;", e+1) if varb then Variable(name.." "..varname) e = vare end end return strsub(s,e+1) end end -- try typedef do local b,e,types = strfind(s,"^%s*typedef%s%s*(.-)%s*;%s*") if b then _curr_code = strsub(s,b,e) Typedef(types) return strsub(s,e+1) end end -- try variable do local b,e,decl = strfind(s,"^%s*([_%w][_@%s%w%d%*&:<>,]*[_%w%d])%s*;%s*") if b then _curr_code = strsub(s,b,e) local list = split_c_tokens(decl, ",") Variable(list[1]) if list.n > 1 then local _,_,type = strfind(list[1], "(.-)%s+([^%s]*)$"); local i =2; while list[i] do Variable(type.." "..list[i]) i=i+1 end end --Variable(decl) return strsub(s,e+1) end end -- try string do local b,e,decl = strfind(s,"^%s*([_%w]?[_%s%w%d]-char%s+[_@%w%d]*%s*%[%s*%S+%s*%])%s*;%s*") if b then _curr_code = strsub(s,b,e) Variable(decl) return strsub(s,e+1) end end -- try array do local b,e,decl = strfind(s,"^%s*([_%w][][_@%s%w%d%*&:<>]*[]_%w%d])%s*;%s*") if b then _curr_code = strsub(s,b,e) Array(decl) return strsub(s,e+1) end end -- no matching if gsub(s,"%s%s*","") ~= "" then _curr_code = s error("#parse error") else return "" end end function classContainer:parse (s) --self.curr_member_access = nil while s ~= '' do s = self:doparse(s) methodisvirtual = false end end -- property types function get_property_type() return classContainer.curr:get_property_type() end function classContainer:set_property_type(ptype) ptype = string.gsub(ptype, "^%s*", "") ptype = string.gsub(ptype, "%s*$", "") self.property_type = ptype end function classContainer:get_property_type() return self.property_type or (self.parent and self.parent:get_property_type()) or "default" end conky-1.19.6/3rdparty/toluapp/src/bin/lua/custom.lua000066400000000000000000000025541451224556600223440ustar00rootroot00000000000000 function extract_code(fn,s) local code = "" if fn then code = '\n$#include "'..fn..'"\n' end s= "\n" .. s .. "\n" -- add blank lines as sentinels local _,e,c,t = strfind(s, "\n([^\n]-)SCRIPT_([%w_]*)[^\n]*\n") while e do t = strlower(t) if t == "bind_begin" then _,e,c = strfind(s,"(.-)\n[^\n]*SCRIPT_BIND_END[^\n]*\n",e) if not e then tolua_error("Unbalanced 'SCRIPT_BIND_BEGIN' directive in header file") end end if t == "bind_class" or t == "bind_block" then local b _,e,c,b = string.find(s, "([^{]-)(%b{})", e) c = c..'{\n'..extract_code(nil, b)..'\n};\n' end code = code .. c .. "\n" _,e,c,t = strfind(s, "\n([^\n]-)SCRIPT_([%w_]*)[^\n]*\n",e) end return code end function preprocess_hook(p) end function preparse_hook(p) end function include_file_hook(p, filename) do return end --print("FILENAME is "..filename) p.code = string.gsub(p.code, "\n%s*SigC::Signal", "\n\ttolua_readonly SigC::Signal") p.code = string.gsub(p.code, "#ifdef __cplusplus\nextern \"C\" {\n#endif", "") p.code = string.gsub(p.code, "#ifdef __cplusplus\n};?\n#endif", "") p.code = string.gsub(p.code, "DECLSPEC", "") p.code = string.gsub(p.code, "SDLCALL", "") p.code = string.gsub(p.code, "DLLINTERFACE", "") p.code = string.gsub(p.code, "#define[^\n]*_[hH]_?%s*\n", "\n") --print("code is "..p.code) end conky-1.19.6/3rdparty/toluapp/src/bin/lua/declaration.lua000066400000000000000000000352451451224556600233220ustar00rootroot00000000000000-- tolua: declaration class -- Written by Waldemar Celes -- TeCGraf/PUC-Rio -- Jul 1998 -- $Id: $ -- This code is free software; you can redistribute it and/or modify it. -- The software provided hereunder is on an "as is" basis, and -- the author has no obligation to provide maintenance, support, updates, -- enhancements, or modifications. -- Declaration class -- Represents variable, function, or argument declaration. -- Stores the following fields: -- mod = type modifiers -- type = type -- ptr = "*" or "&", if representing a pointer or a reference -- name = name -- dim = dimension, if a vector -- def = default value, if any (only for arguments) -- ret = "*" or "&", if value is to be returned (only for arguments) classDeclaration = { mod = '', type = '', ptr = '', name = '', dim = '', ret = '', def = '' } classDeclaration.__index = classDeclaration setmetatable(classDeclaration,classFeature) -- Create an unique variable name function create_varname () if not _varnumber then _varnumber = 0 end _varnumber = _varnumber + 1 return "tolua_var_".._varnumber end -- Check declaration name -- It also identifies default values function classDeclaration:checkname () if strsub(self.name,1,1) == '[' and not findtype(self.type) then self.name = self.type..self.name local m = split(self.mod,'%s%s*') self.type = m[m.n] self.mod = concat(m,1,m.n-1) end local t = split(self.name,'=') if t.n==2 then self.name = t[1] self.def = find_enum_var(t[t.n]) end local b,e,d = strfind(self.name,"%[(.-)%]") if b then self.name = strsub(self.name,1,b-1) self.dim = find_enum_var(d) end if self.type ~= '' and self.type ~= 'void' and self.name == '' then self.name = create_varname() elseif self.kind=='var' then if self.type=='' and self.name~='' then self.type = self.type..self.name self.name = create_varname() elseif findtype(self.name) then if self.type=='' then self.type = self.name else self.type = self.type..' '..self.name end self.name = create_varname() end end -- adjust type of string if self.type == 'char' and self.dim ~= '' then self.type = 'char*' end if self.kind and self.kind == 'var' then self.name = string.gsub(self.name, ":.*$", "") -- ??? end end -- Check declaration type -- Substitutes typedef's. function classDeclaration:checktype () -- check if there is a pointer to basic type local basic = isbasic(self.type) if self.kind == 'func' and basic=='number' and string.find(self.ptr, "%*") then self.type = '_userdata' self.ptr = "" end if basic and self.ptr~='' then self.ret = self.ptr self.ptr = nil if isbasic(self.type) == 'number' then self.return_userdata = true end end -- check if there is array to be returned if self.dim~='' and self.ret~='' then error('#invalid parameter: cannot return an array of values') end -- restore 'void*' and 'string*' if self.type == '_userdata' then self.type = 'void*' elseif self.type == '_cstring' then self.type = 'char*' elseif self.type == '_lstate' then self.type = 'lua_State*' end -- resolve types inside the templates if self.type then self.type = resolve_template_types(self.type) end -- -- -- if returning value, automatically set default value -- if self.ret ~= '' and self.def == '' then -- self.def = '0' -- end -- end function resolve_template_types(type) if isbasic(type) then return type end local b,_,m = string.find(type, "(%b<>)") if b then m = split_c_tokens(string.sub(m, 2, -2), ",") for i=1, #m do m[i] = string.gsub(m[i],"%s*([%*&])", "%1") if not isbasic(m[i]) then if not isenum(m[i]) then _, m[i] = applytypedef("", m[i]) end m[i] = findtype(m[i]) or m[i] m[i] = resolve_template_types(m[i]) end end local b,i type,b,i = break_template(type) --print("concat is ",concat(m, 1, m.n)) local template_part = "<"..concat(m, 1, m.n, ",")..">" type = rebuild_template(type, b, template_part) type = string.gsub(type, ">>", "> >") end return type end function break_template(s) local b,e,timpl = string.find(s, "(%b<>)") if timpl then s = string.gsub(s, "%b<>", "") return s, b, timpl else return s, 0, nil end end function rebuild_template(s, b, timpl) if b == 0 then return s end return string.sub(s, 1, b-1)..timpl..string.sub(s, b, -1) end -- Print method function classDeclaration:print (ident,close) print(ident.."Declaration{") print(ident.." mod = '"..self.mod.."',") print(ident.." type = '"..self.type.."',") print(ident.." ptr = '"..self.ptr.."',") print(ident.." name = '"..self.name.."',") print(ident.." dim = '"..self.dim.."',") print(ident.." def = '"..self.def.."',") print(ident.." ret = '"..self.ret.."',") print(ident.."}"..close) end -- check if array of values are returned to Lua function classDeclaration:requirecollection (t) if self.mod ~= 'const' and self.dim and self.dim ~= '' and not isbasic(self.type) and self.ptr == '' and self:check_public_access() then local type = gsub(self.type,"%s*const%s+","") t[type] = "tolua_collect_" .. clean_template(type) return true end return false end -- declare tag function classDeclaration:decltype () self.type = typevar(self.type) if strfind(self.mod,'const') then self.type = 'const '..self.type self.mod = gsub(self.mod,'const%s*','') end end -- output type checking function classDeclaration:outchecktype (narg) local def local t = isbasic(self.type) if self.def~='' then def = 1 else def = 0 end if self.dim ~= '' then --if t=='string' then -- return 'tolua_isstringarray(tolua_S,'..narg..','..def..',&tolua_err)' --else return '!tolua_istable(tolua_S,'..narg..',0,&tolua_err)' --end elseif t then return '!tolua_is'..t..'(tolua_S,'..narg..','..def..',&tolua_err)' else local is_func = get_is_function(self.type) if self.ptr == '&' or self.ptr == '' then return '(tolua_isvaluenil(tolua_S,'..narg..',&tolua_err) || !'..is_func..'(tolua_S,'..narg..',"'..self.type..'",'..def..',&tolua_err))' else return '!'..is_func..'(tolua_S,'..narg..',"'..self.type..'",'..def..',&tolua_err)' end end end function classDeclaration:builddeclaration (narg, cplusplus) local array = self.dim ~= '' and tonumber(self.dim)==nil local line = "" local ptr = '' local mod local type = self.type local nctype = gsub(self.type,'const%s+','') if self.dim ~= '' then type = gsub(self.type,'const%s+','') -- eliminates const modifier for arrays end if self.ptr~='' and not isbasic(type) then ptr = '*' end line = concatparam(line," ",self.mod,type,ptr) if array then line = concatparam(line,'*') end line = concatparam(line,self.name) if self.dim ~= '' then if tonumber(self.dim)~=nil then line = concatparam(line,'[',self.dim,'];') else if cplusplus then line = concatparam(line,' = Mtolua_new_dim(',type,ptr,', '..self.dim..');') else line = concatparam(line,' = (',type,ptr,'*)', 'malloc((',self.dim,')*sizeof(',type,ptr,'));') end end else local t = isbasic(type) line = concatparam(line,' = ') if t == 'state' then line = concatparam(line, 'tolua_S;') else --print("t is "..tostring(t)..", ptr is "..tostring(self.ptr)) if t == 'number' and string.find(self.ptr, "%*") then t = 'userdata' end if not t and ptr=='' then line = concatparam(line,'*') end line = concatparam(line,'((',self.mod,type) if not t then line = concatparam(line,'*') end line = concatparam(line,') ') if isenum(nctype) then line = concatparam(line,'(int) ') end local def = 0 if self.def ~= '' then def = self.def if (ptr == '' or self.ptr == '&') and not t then def = "(void*)&(const "..type..")"..def end end if t then line = concatparam(line,'tolua_to'..t,'(tolua_S,',narg,',',def,'));') else local to_func = get_to_function(type) line = concatparam(line,to_func..'(tolua_S,',narg,',',def,'));') end end end return line end -- Declare variable function classDeclaration:declare (narg) if self.dim ~= '' and tonumber(self.dim)==nil then output('#ifdef __cplusplus\n') output(self:builddeclaration(narg,true)) output('#else\n') output(self:builddeclaration(narg,false)) output('#endif\n') else output(self:builddeclaration(narg,false)) end end -- Get parameter value function classDeclaration:getarray (narg) if self.dim ~= '' then local type = gsub(self.type,'const ','') output(' {') output('#ifndef TOLUA_RELEASE\n') local def; if self.def~='' then def=1 else def=0 end local t = isbasic(type) if (t) then output(' if (!tolua_is'..t..'array(tolua_S,',narg,',',self.dim,',',def,',&tolua_err))') else output(' if (!tolua_isusertypearray(tolua_S,',narg,',"',type,'",',self.dim,',',def,',&tolua_err))') end output(' goto tolua_lerror;') output(' else\n') output('#endif\n') output(' {') output(' int i;') output(' for(i=0; i<'..self.dim..';i++)') local t = isbasic(type) local ptr = '' if self.ptr~='' then ptr = '*' end output(' ',self.name..'[i] = ') if not t and ptr=='' then output('*') end output('((',type) if not t then output('*') end output(') ') local def = 0 if self.def ~= '' then def = self.def end if t then output('tolua_tofield'..t..'(tolua_S,',narg,',i+1,',def,'));') else output('tolua_tofieldusertype(tolua_S,',narg,',i+1,',def,'));') end output(' }') output(' }') end end -- Get parameter value function classDeclaration:setarray (narg) if not strfind(self.type,'const%s+') and self.dim ~= '' then local type = gsub(self.type,'const ','') output(' {') output(' int i;') output(' for(i=0; i<'..self.dim..';i++)') local t,ct = isbasic(type) if t then output(' tolua_pushfield'..t..'(tolua_S,',narg,',i+1,(',ct,')',self.name,'[i]);') else if self.ptr == '' then output(' {') output('#ifdef __cplusplus\n') output(' void* tolua_obj = Mtolua_new((',type,')(',self.name,'[i]));') output(' tolua_pushfieldusertype_and_takeownership(tolua_S,',narg,',i+1,tolua_obj,"',type,'");') output('#else\n') output(' void* tolua_obj = tolua_copy(tolua_S,(void*)&',self.name,'[i],sizeof(',type,'));') output(' tolua_pushfieldusertype(tolua_S,',narg,',i+1,tolua_obj,"',type,'");') output('#endif\n') output(' }') else output(' tolua_pushfieldusertype(tolua_S,',narg,',i+1,(void*)',self.name,'[i],"',type,'");') end end output(' }') end end -- Free dynamically allocated array function classDeclaration:freearray () if self.dim ~= '' and tonumber(self.dim)==nil then output('#ifdef __cplusplus\n') output(' Mtolua_delete_dim(',self.name,');') output('#else\n') output(' free(',self.name,');') output('#endif\n') end end -- Pass parameter function classDeclaration:passpar () if self.ptr=='&' and not isbasic(self.type) then output('*'..self.name) elseif self.ret=='*' then output('&'..self.name) else output(self.name) end end -- Return parameter value function classDeclaration:retvalue () if self.ret ~= '' then local t,ct = isbasic(self.type) if t and t~='' then output(' tolua_push'..t..'(tolua_S,(',ct,')'..self.name..');') else local push_func = get_push_function(self.type) output(' ',push_func,'(tolua_S,(void*)'..self.name..',"',self.type,'");') end return 1 end return 0 end -- Internal constructor function _Declaration (t) setmetatable(t,classDeclaration) t:buildnames() t:checkname() t:checktype() local ft = findtype(t.type) or t.type if not isenum(ft) then t.mod, t.type = applytypedef(t.mod, ft) end if t.kind=="var" and (string.find(t.mod, "tolua_property%s") or string.find(t.mod, "tolua_property$")) then t.mod = string.gsub(t.mod, "tolua_property", "tolua_property__"..get_property_type()) end return t end -- Constructor -- Expects the string declaration. -- The kind of declaration can be "var" or "func". function Declaration (s,kind,is_parameter) -- eliminate spaces if default value is provided s = gsub(s,"%s*=%s*","=") s = gsub(s, "%s*<", "<") local defb,tmpdef defb,_,tmpdef = string.find(s, "(=.*)$") if defb then s = string.gsub(s, "=.*$", "") else tmpdef = '' end if kind == "var" then -- check the form: void if s == '' or s == 'void' then return _Declaration{type = 'void', kind = kind, is_parameter = is_parameter} end end -- check the form: mod type*& name local t = split_c_tokens(s,'%*%s*&') if t.n == 2 then if kind == 'func' then error("#invalid function return type: "..s) end --local m = split(t[1],'%s%s*') local m = split_c_tokens(t[1],'%s+') return _Declaration{ name = t[2]..tmpdef, ptr = '*', ret = '&', --type = rebuild_template(m[m.n], tb, timpl), type = m[m.n], mod = concat(m,1,m.n-1), is_parameter = is_parameter, kind = kind } end -- check the form: mod type** name t = split_c_tokens(s,'%*%s*%*') if t.n == 2 then if kind == 'func' then error("#invalid function return type: "..s) end --local m = split(t[1],'%s%s*') local m = split_c_tokens(t[1],'%s+') return _Declaration{ name = t[2]..tmpdef, ptr = '*', ret = '*', --type = rebuild_template(m[m.n], tb, timpl), type = m[m.n], mod = concat(m,1,m.n-1), is_parameter = is_parameter, kind = kind } end -- check the form: mod type& name t = split_c_tokens(s,'&') if t.n == 2 then --local m = split(t[1],'%s%s*') local m = split_c_tokens(t[1],'%s+') return _Declaration{ name = t[2]..tmpdef, ptr = '&', --type = rebuild_template(m[m.n], tb, timpl), type = m[m.n], mod = concat(m,1,m.n-1), is_parameter = is_parameter, kind = kind } end -- check the form: mod type* name local s1 = gsub(s,"(%b%[%])",function (n) return gsub(n,'%*','\1') end) t = split_c_tokens(s1,'%*') if t.n == 2 then t[2] = gsub(t[2],'\1','%*') -- restore * in dimension expression --local m = split(t[1],'%s%s*') local m = split_c_tokens(t[1],'%s+') return _Declaration{ name = t[2]..tmpdef, ptr = '*', type = m[m.n], --type = rebuild_template(m[m.n], tb, timpl), mod = concat(m,1,m.n-1) , is_parameter = is_parameter, kind = kind } end if kind == 'var' then -- check the form: mod type name --t = split(s,'%s%s*') t = split_c_tokens(s,'%s+') local v if findtype(t[t.n]) then v = create_varname() else v = t[t.n]; t.n = t.n-1 end return _Declaration{ name = v..tmpdef, --type = rebuild_template(t[t.n], tb, timpl), type = t[t.n], mod = concat(t,1,t.n-1), is_parameter = is_parameter, kind = kind } else -- kind == "func" -- check the form: mod type name --t = split(s,'%s%s*') t = split_c_tokens(s,'%s+') local v = t[t.n] -- last word is the function name local tp,md if t.n>1 then tp = t[t.n-1] md = concat(t,1,t.n-2) end --if tp then tp = rebuild_template(tp, tb, timpl) end return _Declaration{ name = v, type = tp, mod = md, is_parameter = is_parameter, kind = kind } end end conky-1.19.6/3rdparty/toluapp/src/bin/lua/define.lua000066400000000000000000000024451451224556600222630ustar00rootroot00000000000000-- tolua: define class -- Written by Waldemar Celes -- TeCGraf/PUC-Rio -- Jul 1998 -- $Id: define.lua,v 1.2 1999/07/28 22:21:08 celes Exp $ -- This code is free software; you can redistribute it and/or modify it. -- The software provided hereunder is on an "as is" basis, and -- the author has no obligation to provide maintenance, support, updates, -- enhancements, or modifications. -- Define class -- Represents a numeric const definition -- The following filds are stored: -- name = constant name classDefine = { name = '', } classDefine.__index = classDefine setmetatable(classDefine,classFeature) -- register define function classDefine:register (pre) if not self:check_public_access() then return end pre = pre or '' output(pre..'tolua_constant(tolua_S,"'..self.lname..'",'..self.name..');') end -- Print method function classDefine:print (ident,close) print(ident.."Define{") print(ident.." name = '"..self.name.."',") print(ident.." lname = '"..self.lname.."',") print(ident.."}"..close) end -- Internal constructor function _Define (t) setmetatable(t,classDefine) t:buildnames() if t.name == '' then error("#invalid define") end append(t) return t end -- Constructor -- Expects a string representing the constant name function Define (n) return _Define{ name = n } end conky-1.19.6/3rdparty/toluapp/src/bin/lua/doit.lua000066400000000000000000000034241451224556600217660ustar00rootroot00000000000000-- Generate binding code -- Written by Waldemar Celes -- TeCGraf/PUC-Rio -- Jul 1998 -- Last update: Apr 2003 -- $Id: $ -- This code is free software; you can redistribute it and/or modify it. -- The software provided hereunder is on an "as is" basis, and -- the author has no obligation to provide maintenance, support, updates, -- enhancements, or modifications. function parse_extra() for k,v in ipairs(_extra_parameters or {}) do local b,e,name,value = string.find(v, "^([^=]*)=(.*)$") if b then _extra_parameters[name] = value else _extra_parameters[v] = true end end end function doit () -- define package name, if not provided if not flags.n then if flags.f then flags.n = gsub(flags.f,"%..*$","") _,_,flags.n = string.find(flags.n, "([^/\\]*)$") else error("#no package name nor input file provided") end end -- parse table with extra paramters parse_extra() -- do this after setting the package name if flags['L'] then dofile(flags['L']) end -- add cppstring if not flags['S'] then _basic['string'] = 'cppstring' _basic['std::string'] = 'cppstring' _basic_ctype.cppstring = 'const char*' end -- proccess package local p = Package(flags.n,flags.f) if flags.p then return -- only parse end if flags.o then local st,msg = writeto(flags.o) if not st then error('#'..msg) end end p:decltype() if flags.P then p:print() else push(p) pre_output_hook(p) pop() p:preamble() p:supcode() push(p) pre_register_hook(p) pop() p:register() push(p) post_output_hook(p) pop() end if flags.o then writeto() end -- write header file if not flags.P then if flags.H then local st,msg = writeto(flags.H) if not st then error('#'..msg) end p:header() writeto() end end end conky-1.19.6/3rdparty/toluapp/src/bin/lua/enumerate.lua000066400000000000000000000047361451224556600230230ustar00rootroot00000000000000-- tolua: enumerate class -- Written by Waldemar Celes -- TeCGraf/PUC-Rio -- Jul 1998 -- $Id: enumerate.lua,v 1.3 2000/01/24 20:41:15 celes Exp $ -- This code is free software; you can redistribute it and/or modify it. -- The software provided hereunder is on an "as is" basis, and -- the author has no obligation to provide maintenance, support, updates, -- enhancements, or modifications. -- Enumerate class -- Represents enumeration -- The following fields are stored: -- {i} = list of constant names classEnumerate = { } classEnumerate.__index = classEnumerate setmetatable(classEnumerate,classFeature) -- register enumeration function classEnumerate:register (pre) if not self:check_public_access() then return end pre = pre or '' local nspace = getnamespace(classContainer.curr) local i=1 while self[i] do if self.lnames[i] and self.lnames[i] ~= "" then output(pre..'tolua_constant(tolua_S,"'..self.lnames[i]..'",'..nspace..self[i]..');') end i = i+1 end end -- Print method function classEnumerate:print (ident,close) print(ident.."Enumerate{") print(ident.." name = "..self.name) local i=1 while self[i] do print(ident.." '"..self[i].."'("..self.lnames[i].."),") i = i+1 end print(ident.."}"..close) end -- Internal constructor function _Enumerate (t,varname) setmetatable(t,classEnumerate) append(t) appendenum(t) if varname and varname ~= "" then if t.name ~= "" then Variable(t.name.." "..varname) else local ns = getcurrnamespace() warning("Variable "..ns..varname.." of type is declared as read-only") Variable("tolua_readonly int "..varname) end end local parent = classContainer.curr if parent then t.access = parent.curr_member_access t.global_access = t:check_public_access() end return t end -- Constructor -- Expects a string representing the enumerate body function Enumerate (n,b,varname) b = string.gsub(b, ",[%s\n]*}", "\n}") -- eliminate last ',' local t = split(strsub(b,2,-2),',') -- eliminate braces local i = 1 local e = {n=0} while t[i] do local tt = split(t[i],'=') -- discard initial value e.n = e.n + 1 e[e.n] = tt[1] i = i+1 end -- set lua names i = 1 e.lnames = {} local ns = getcurrnamespace() while e[i] do local t = split(e[i],'@') e[i] = t[1] if not t[2] then t[2] = applyrenaming(t[1]) end e.lnames[i] = t[2] or t[1] _global_enums[ ns..e[i] ] = (ns..e[i]) i = i+1 end e.name = n if n ~= "" then Typedef("int "..n) end return _Enumerate(e, varname) end conky-1.19.6/3rdparty/toluapp/src/bin/lua/feature.lua000066400000000000000000000055031451224556600224620ustar00rootroot00000000000000-- tolua: abstract feature class -- Written by Waldemar Celes -- TeCGraf/PUC-Rio -- Jul 1998 -- $Id: $ -- This code is free software; you can redistribute it and/or modify it. -- The software provided hereunder is on an "as is" basis, and -- the author has no obligation to provide maintenance, support, updates, -- enhancements, or modifications. -- Feature class -- Represents the base class of all mapped feature. classFeature = { } classFeature.__index = classFeature -- write support code function classFeature:supcode () end -- output tag function classFeature:decltype () end -- register feature function classFeature:register (pre) end -- translate verbatim function classFeature:preamble () end -- check if it is a variable function classFeature:isvariable () return false end -- check if it requires collection function classFeature:requirecollection (t) return false end -- build names function classFeature:buildnames () if self.name and self.name~='' then local n = split(self.name,'@') self.name = n[1] self.name = string.gsub(self.name, ":%d*$", "") if not n[2] then n[2] = applyrenaming(n[1]) end self.lname = n[2] or gsub(n[1],"%[.-%]","") self.lname = string.gsub(self.lname, ":%d*$", "") self.original_name = self.name self.lname = clean_template(self.lname) end if not self.is_parameter then self.name = getonlynamespace() .. self.name end local parent = classContainer.curr if parent then self.access = parent.curr_member_access self.global_access = self:check_public_access() else end end function classFeature:check_public_access() if type(self.global_access) == "boolean" then return self.global_access end if self.access and self.access ~= 0 then return false end local parent = classContainer.curr while parent do if parent.access and parent.access ~= 0 then return false end parent = parent.prox end return true end function clean_template(t) return string.gsub(t, "[<>:, %*]", "_") end -- check if feature is inside a container definition -- it returns the container class name or nil. function classFeature:incontainer (which) if self.parent then local parent = self.parent while parent do if parent.classtype == which then return parent.name end parent = parent.parent end end return nil end function classFeature:inclass () return self:incontainer('class') end function classFeature:inmodule () return self:incontainer('module') end function classFeature:innamespace () return self:incontainer('namespace') end -- return C binding function name based on name -- the client specifies a prefix function classFeature:cfuncname (n) if self.parent then n = self.parent:cfuncname(n) end local fname = self.lname if not fname or fname == '' then fname = self.name end n = string.gsub(n..'_'.. (fname), "[<>:, \\.%*&]", "_") return n end conky-1.19.6/3rdparty/toluapp/src/bin/lua/function.lua000066400000000000000000000336561451224556600226660ustar00rootroot00000000000000-- tolua: function class -- Written by Waldemar Celes -- TeCGraf/PUC-Rio -- Jul 1998 -- $Id: $ -- This code is free software; you can redistribute it and/or modify it. -- The software provided hereunder is on an "as is" basis, and -- the author has no obligation to provide maintenance, support, updates, -- enhancements, or modifications. -- Function class -- Represents a function or a class method. -- The following fields are stored: -- mod = type modifiers -- type = type -- ptr = "*" or "&", if representing a pointer or a reference -- name = name -- lname = lua name -- args = list of argument declarations -- const = if it is a method receiving a const "this". classFunction = { mod = '', type = '', ptr = '', name = '', args = {n=0}, const = '', } classFunction.__index = classFunction setmetatable(classFunction,classFeature) -- declare tags function classFunction:decltype () self.type = typevar(self.type) if strfind(self.mod,'const') then self.type = 'const '..self.type self.mod = gsub(self.mod,'const','') end local i=1 while self.args[i] do self.args[i]:decltype() i = i+1 end end -- Write binding function -- Outputs C/C++ binding function. function classFunction:supcode (local_constructor) local overload = strsub(self.cname,-2,-1) - 1 -- indicate overloaded func local nret = 0 -- number of returned values local class = self:inclass() local _,_,static = strfind(self.mod,'^%s*(static)') if class then if self.name == 'new' and self.parent.flags.pure_virtual then -- no constructor for classes with pure virtual methods return end if local_constructor then output("/* method: new_local of class ",class," */") else output("/* method:",self.name," of class ",class," */") end else output("/* function:",self.name," */") end if local_constructor then output("#ifndef TOLUA_DISABLE_"..self.cname.."_local") output("\nstatic int",self.cname.."_local","(lua_State* tolua_S)") else output("#ifndef TOLUA_DISABLE_"..self.cname) output("\nstatic int",self.cname,"(lua_State* tolua_S)") end output("{") -- check types if overload < 0 then output('#ifndef TOLUA_RELEASE\n') end output(' tolua_Error tolua_err;') output(' if (\n') -- check self local narg if class then narg=2 else narg=1 end if class then local func = get_is_function(self.parent.type) local type = self.parent.type if self.name=='new' or static~=nil then func = 'tolua_isusertable' type = self.parent.type end if self.const ~= '' then type = "const "..type end output(' !'..func..'(tolua_S,1,"'..type..'",0,&tolua_err) ||\n') end -- check args if self.args[1].type ~= 'void' then local i=1 while self.args[i] do local btype = isbasic(self.args[i].type) if btype ~= 'value' and btype ~= 'state' then output(' '..self.args[i]:outchecktype(narg)..' ||\n') end if btype ~= 'state' then narg = narg+1 end i = i+1 end end -- check end of list output(' !tolua_isnoobj(tolua_S,'..narg..',&tolua_err)\n )') output(' goto tolua_lerror;') output(' else\n') if overload < 0 then output('#endif\n') end output(' {') -- declare self, if the case local narg if class then narg=2 else narg=1 end if class and self.name~='new' and static==nil then output(' ',self.const,self.parent.type,'*','self = ') output('(',self.const,self.parent.type,'*) ') local to_func = get_to_function(self.parent.type) output(to_func,'(tolua_S,1,0);') elseif static then _,_,self.mod = strfind(self.mod,'^%s*static%s%s*(.*)') end -- declare parameters if self.args[1].type ~= 'void' then local i=1 while self.args[i] do self.args[i]:declare(narg) if isbasic(self.args[i].type) ~= "state" then narg = narg+1 end i = i+1 end end -- check self if class and self.name~='new' and static==nil then output('#ifndef TOLUA_RELEASE\n') output(' if (!self) tolua_error(tolua_S,"'..output_error_hook("invalid \'self\' in function \'%s\'", self.name)..'", NULL);'); output('#endif\n') end -- get array element values if class then narg=2 else narg=1 end if self.args[1].type ~= 'void' then local i=1 while self.args[i] do self.args[i]:getarray(narg) narg = narg+1 i = i+1 end end pre_call_hook(self) local out = string.find(self.mod, "tolua_outside") -- call function if class and self.name=='delete' then output(' Mtolua_delete(self);') elseif class and self.name == 'operator&[]' then if flags['1'] then -- for compatibility with tolua5 ? output(' self->operator[](',self.args[1].name,'-1) = ',self.args[2].name,';') else output(' self->operator[](',self.args[1].name,') = ',self.args[2].name,';') end else output(' {') if self.type ~= '' and self.type ~= 'void' then output(' ',self.mod,self.type,self.ptr,'tolua_ret = ') output('(',self.mod,self.type,self.ptr,') ') else output(' ') end if class and self.name=='new' then output('Mtolua_new((',self.type,')(') elseif class and static then if out then output(self.name,'(') else output(class..'::'..self.name,'(') end elseif class then if out then output(self.name,'(') else if self.cast_operator then --output('static_cast<',self.mod,self.type,self.ptr,' >(*self') output('self->operator ',self.mod,self.type,'(') else output('self->'..self.name,'(') end end else output(self.name,'(') end if out and not static then output('self') if self.args[1] and self.args[1].name ~= '' then output(',') end end -- write parameters local i=1 while self.args[i] do self.args[i]:passpar() i = i+1 if self.args[i] then output(',') end end if class and self.name == 'operator[]' and flags['1'] then output('-1);') else if class and self.name=='new' then output('));') -- close Mtolua_new( else output(');') end end -- return values if self.type ~= '' and self.type ~= 'void' then nret = nret + 1 local t,ct = isbasic(self.type) if t and self.name ~= "new" then if self.cast_operator and _basic_raw_push[t] then output(' ',_basic_raw_push[t],'(tolua_S,(',ct,')tolua_ret);') else output(' tolua_push'..t..'(tolua_S,(',ct,')tolua_ret);') end else t = self.type new_t = string.gsub(t, "const%s+", "") local owned = false if string.find(self.mod, "tolua_owned") then owned = true end local push_func = get_push_function(t) if self.ptr == '' then output(' {') output('#ifdef __cplusplus\n') output(' void* tolua_obj = Mtolua_new((',new_t,')(tolua_ret));') output(' ',push_func,'(tolua_S,tolua_obj,"',t,'");') output(' tolua_register_gc(tolua_S,lua_gettop(tolua_S));') output('#else\n') output(' void* tolua_obj = tolua_copy(tolua_S,(void*)&tolua_ret,sizeof(',t,'));') output(' ',push_func,'(tolua_S,tolua_obj,"',t,'");') output(' tolua_register_gc(tolua_S,lua_gettop(tolua_S));') output('#endif\n') output(' }') elseif self.ptr == '&' then output(' ',push_func,'(tolua_S,(void*)&tolua_ret,"',t,'");') else output(' ',push_func,'(tolua_S,(void*)tolua_ret,"',t,'");') if owned or local_constructor then output(' tolua_register_gc(tolua_S,lua_gettop(tolua_S));') end end end end local i=1 while self.args[i] do nret = nret + self.args[i]:retvalue() i = i+1 end output(' }') -- set array element values if class then narg=2 else narg=1 end if self.args[1].type ~= 'void' then local i=1 while self.args[i] do self.args[i]:setarray(narg) narg = narg+1 i = i+1 end end -- free dynamically allocated array if self.args[1].type ~= 'void' then local i=1 while self.args[i] do self.args[i]:freearray() i = i+1 end end end post_call_hook(self) output(' }') output(' return '..nret..';') -- call overloaded function or generate error if overload < 0 then output('#ifndef TOLUA_RELEASE\n') output('tolua_lerror:\n') output(' tolua_error(tolua_S,"'..output_error_hook("#ferror in function \'%s\'.", self.lname)..'",&tolua_err);') output(' return 0;') output('#endif\n') else local _local = "" if local_constructor then _local = "_local" end output('tolua_lerror:\n') output(' return '..strsub(self.cname,1,-3)..format("%02d",overload).._local..'(tolua_S);') end output('}') output('#endif //#ifndef TOLUA_DISABLE\n') output('\n') -- recursive call to write local constructor if class and self.name=='new' and not local_constructor then self:supcode(1) end end -- register function function classFunction:register (pre) if not self:check_public_access() then return end if self.name == 'new' and self.parent.flags.pure_virtual then -- no constructor for classes with pure virtual methods return end output(pre..'tolua_function(tolua_S,"'..self.lname..'",'..self.cname..');') if self.name == 'new' then output(pre..'tolua_function(tolua_S,"new_local",'..self.cname..'_local);') output(pre..'tolua_function(tolua_S,".call",'..self.cname..'_local);') --output(' tolua_set_call_event(tolua_S,'..self.cname..'_local, "'..self.parent.type..'");') end end -- Print method function classFunction:print (ident,close) print(ident.."Function{") print(ident.." mod = '"..self.mod.."',") print(ident.." type = '"..self.type.."',") print(ident.." ptr = '"..self.ptr.."',") print(ident.." name = '"..self.name.."',") print(ident.." lname = '"..self.lname.."',") print(ident.." const = '"..self.const.."',") print(ident.." cname = '"..self.cname.."',") print(ident.." lname = '"..self.lname.."',") print(ident.." args = {") local i=1 while self.args[i] do self.args[i]:print(ident.." ",",") i = i+1 end print(ident.." }") print(ident.."}"..close) end -- check if it returns an object by value function classFunction:requirecollection (t) local r = false if self.type ~= '' and not isbasic(self.type) and self.ptr=='' then local type = gsub(self.type,"%s*const%s+","") t[type] = "tolua_collect_" .. clean_template(type) r = true end local i=1 while self.args[i] do r = self.args[i]:requirecollection(t) or r i = i+1 end return r end -- determine lua function name overload function classFunction:overload () return self.parent:overload(self.lname) end function param_object(par) -- returns true if the parameter has an object as its default value if not string.find(par, '=') then return false end -- it has no default value local _,_,def = string.find(par, "=(.*)$") if string.find(par, "|") then -- a list of flags return true end if string.find(par, "%*") then -- it's a pointer with a default value if string.find(par, '=%s*new') or string.find(par, "%(") then -- it's a pointer with an instance as default parameter.. is that valid? return true end return false -- default value is 'NULL' or something end if string.find(par, "[%(&]") then return true end -- default value is a constructor call (most likely for a const reference) --if string.find(par, "&") then -- if string.find(def, ":") or string.find(def, "^%s*new%s+") then -- -- it's a reference with default to something like Class::member, or 'new Class' -- return true -- end --end return false -- ? end function strip_last_arg(all_args, last_arg) -- strips the default value from the last argument local _,_,s_arg = string.find(last_arg, "^([^=]+)") last_arg = string.gsub(last_arg, "([%%%(%)])", "%%%1"); all_args = string.gsub(all_args, "%s*,%s*"..last_arg.."%s*%)%s*$", ")") return all_args, s_arg end -- Internal constructor function _Function (t) setmetatable(t,classFunction) if t.const ~= 'const' and t.const ~= '' then error("#invalid 'const' specification") end append(t) if t:inclass() then --print ('t.name is '..t.name..', parent.name is '..t.parent.name) if string.gsub(t.name, "%b<>", "") == string.gsub(t.parent.original_name or t.parent.name, "%b<>", "") then t.name = 'new' t.lname = 'new' t.parent._new = true t.type = t.parent.name t.ptr = '*' elseif string.gsub(t.name, "%b<>", "") == '~'..string.gsub(t.parent.original_name or t.parent.name, "%b<>", "") then t.name = 'delete' t.lname = 'delete' t.parent._delete = true end end t.cname = t:cfuncname("tolua")..t:overload(t) return t end -- Constructor -- Expects three strings: one representing the function declaration, -- another representing the argument list, and the third representing -- the "const" or empty string. function Function (d,a,c) --local t = split(strsub(a,2,-2),',') -- eliminate braces --local t = split_params(strsub(a,2,-2)) if not flags['W'] and string.find(a, "%.%.%.%s*%)") then warning("Functions with variable arguments (`...') are not supported. Ignoring "..d..a..c) return nil end local i=1 local l = {n=0} a = string.gsub(a, "%s*([%(%)])%s*", "%1") local t,strip,last = strip_pars(strsub(a,2,-2)); if strip then --local ns = string.sub(strsub(a,1,-2), 1, -(string.len(last)+1)) local ns = join(t, ",", 1, last-1) ns = "("..string.gsub(ns, "%s*,%s*$", "")..')' --ns = strip_defaults(ns) local f = Function(d, ns, c) for i=1,last do t[i] = string.gsub(t[i], "=.*$", "") end end while t[i] do l.n = l.n+1 l[l.n] = Declaration(t[i],'var',true) i = i+1 end local f = Declaration(d,'func') f.args = l f.const = c return _Function(f) end function join(t, sep, first, last) first = first or 1 last = last or #t local lsep = "" local ret = "" local loop = false for i = first,last do ret = ret..lsep..t[i] lsep = sep loop = true end if not loop then return "" end return ret end function strip_pars(s) local t = split_c_tokens(s, ',') local strip = false local last for i=t.n,1,-1 do if not strip and param_object(t[i]) then last = i strip = true end --if strip then -- t[i] = string.gsub(t[i], "=.*$", "") --end end return t,strip,last end function strip_defaults(s) s = string.gsub(s, "^%(", "") s = string.gsub(s, "%)$", "") local t = split_c_tokens(s, ",") local sep, ret = "","" for i=1,t.n do t[i] = string.gsub(t[i], "=.*$", "") ret = ret..sep..t[i] sep = "," end return "("..ret..")" end conky-1.19.6/3rdparty/toluapp/src/bin/lua/module.lua000066400000000000000000000027071451224556600223170ustar00rootroot00000000000000-- tolua: module class -- Written by Waldemar Celes -- TeCGraf/PUC-Rio -- Jul 1998 -- $Id: $ -- This code is free software; you can redistribute it and/or modify it. -- The software provided hereunder is on an "as is" basis, and -- the author has no obligation to provide maintenance, support, updates, -- enhancements, or modifications. -- Module class -- Represents module. -- The following fields are stored: -- {i} = list of objects in the module. classModule = { classtype = 'module' } classModule.__index = classModule setmetatable(classModule,classContainer) -- register module function classModule:register (pre) pre = pre or '' push(self) output(pre..'tolua_module(tolua_S,"'..self.name..'",',self:hasvar(),');') output(pre..'tolua_beginmodule(tolua_S,"'..self.name..'");') local i=1 while self[i] do self[i]:register(pre..' ') i = i+1 end output(pre..'tolua_endmodule(tolua_S);') pop() end -- Print method function classModule:print (ident,close) print(ident.."Module{") print(ident.." name = '"..self.name.."';") local i=1 while self[i] do self[i]:print(ident.." ",",") i = i+1 end print(ident.."}"..close) end -- Internal constructor function _Module (t) setmetatable(t,classModule) append(t) return t end -- Constructor -- Expects two string representing the module name and body. function Module (n,b) local t = _Module(_Container{name=n}) push(t) t:parse(strsub(b,2,strlen(b)-1)) -- eliminate braces pop() return t end conky-1.19.6/3rdparty/toluapp/src/bin/lua/namespace.lua000066400000000000000000000022341451224556600227610ustar00rootroot00000000000000-- tolua: namespace class -- Written by Waldemar Celes -- TeCGraf/PUC-Rio -- Jul 2003 -- $Id: $ -- This code is free software; you can redistribute it and/or modify it. -- The software provided hereunder is on an "as is" basis, and -- the author has no obligation to provide maintenance, support, updates, -- enhancements, or modifications. -- Namespace class -- Represents a namesapce definition. -- Stores the following fields: -- name = class name -- {i} = list of members classNamespace = { classtype = 'namespace', name = '', } classNamespace.__index = classNamespace setmetatable(classNamespace,classModule) -- Print method function classNamespace:print (ident,close) print(ident.."Namespace{") print(ident.." name = '"..self.name.."',") local i=1 while self[i] do self[i]:print(ident.." ",",") i = i+1 end print(ident.."}"..close) end -- Internal constructor function _Namespace (t) setmetatable(t,classNamespace) append(t) return t end -- Constructor -- Expects the name and the body of the namespace. function Namespace (n,b) local c = _Namespace(_Container{name=n}) push(c) c:parse(strsub(b,2,strlen(b)-1)) -- eliminate braces pop() end conky-1.19.6/3rdparty/toluapp/src/bin/lua/operator.lua000066400000000000000000000136331451224556600226650ustar00rootroot00000000000000-- tolua: operator class -- Written by Waldemar Celes -- TeCGraf/PUC-Rio -- Jul 1998 -- $Id: $ -- This code is free software; you can redistribute it and/or modify it. -- The software provided hereunder is on an "as is" basis, and -- the author has no obligation to provide maintenance, support, updates, -- enhancements, or modifications. -- Operator class -- Represents an operator function or a class operator method. -- It stores the same fields as functions do plus: -- kind = set of character representing the operator (as it appers in C++ code) classOperator = { kind = '', } classOperator.__index = classOperator setmetatable(classOperator,classFunction) -- table to transform operator kind into the appropriate tag method name _TM = {['+'] = 'add', ['-'] = 'sub', ['*'] = 'mul', ['/'] = 'div', ['<'] = 'lt', ['<='] = 'le', ['=='] = 'eq', ['[]'] = 'geti', ['&[]'] = 'seti', --['->'] = 'flechita', } -- Print method function classOperator:print (ident,close) print(ident.."Operator{") print(ident.." kind = '"..self.kind.."',") print(ident.." mod = '"..self.mod.."',") print(ident.." type = '"..self.type.."',") print(ident.." ptr = '"..self.ptr.."',") print(ident.." name = '"..self.name.."',") print(ident.." const = '"..self.const.."',") print(ident.." cname = '"..self.cname.."',") print(ident.." lname = '"..self.lname.."',") print(ident.." args = {") local i=1 while self.args[i] do self.args[i]:print(ident.." ",",") i = i+1 end print(ident.." }") print(ident.."}"..close) end function classOperator:supcode_tmp() if not _TM[self.kind] then return classFunction.supcode(self) end -- no overload, no parameters, always inclass output("/* method:",self.name," of class ",self:inclass()," */") output("#ifndef TOLUA_DISABLE_"..self.cname) output("\nstatic int",self.cname,"(lua_State* tolua_S)") if overload < 0 then output('#ifndef TOLUA_RELEASE\n') end output(' tolua_Error tolua_err;') output(' if (\n') -- check self local is_func = get_is_function(self.parent.type) output(' !'..is_func..'(tolua_S,1,"'..self.parent.type..'",0,&tolua_err) ||\n') output(' !tolua_isnoobj(tolua_S,2,&tolua_err)\n )') output(' goto tolua_lerror;') output(' else\n') output('#endif\n') -- tolua_release output(' {') -- declare self output(' ',self.const,self.parent.type,'*','self = ') output('(',self.const,self.parent.type,'*) ') local to_func = get_to_func(self.parent.type) output(to_func,'(tolua_S,1,0);') -- check self output('#ifndef TOLUA_RELEASE\n') output(' if (!self) tolua_error(tolua_S,"'..output_error_hook("invalid \'self\' in function \'%s\'", self.name)..'",NULL);'); output('#endif\n') -- cast self output(' ',self.mod,self.type,self.ptr,'tolua_ret = ') output('(',self.mod,self.type,self.ptr,')(*self);') -- return value local t,ct = isbasic(self.type) if t then output(' tolua_push'..t..'(tolua_S,(',ct,')tolua_ret);') else t = self.type local push_func = get_push_function(t) new_t = string.gsub(t, "const%s+", "") if self.ptr == '' then output(' {') output('#ifdef __cplusplus\n') output(' void* tolua_obj = Mtolua_new((',new_t,')(tolua_ret));') output(' ',push_func,'(tolua_S,tolua_obj,"',t,'");') output(' tolua_register_gc(tolua_S,lua_gettop(tolua_S));') output('#else\n') output(' void* tolua_obj = tolua_copy(tolua_S,(void*)&tolua_ret,sizeof(',t,'));') output(' ',push_func,'(tolua_S,tolua_obj,"',t,'");') output(' tolua_register_gc(tolua_S,lua_gettop(tolua_S));') output('#endif\n') output(' }') elseif self.ptr == '&' then output(' ',push_func,'(tolua_S,(void*)&tolua_ret,"',t,'");') else if local_constructor then output(' ',push_func,'(tolua_S,(void *)tolua_ret,"',t,'");') output(' tolua_register_gc(tolua_S,lua_gettop(tolua_S));') else output(' ',push_func,'(tolua_S,(void*)tolua_ret,"',t,'");') end end end output(' }') output(' return 1;') output('#ifndef TOLUA_RELEASE\n') output('tolua_lerror:\n') output(' tolua_error(tolua_S,"'..output_error_hook("#ferror in function \'%s\'.", self.lname)..'",&tolua_err);') output(' return 0;') output('#endif\n') output('}') output('#endif //#ifndef TOLUA_DISABLE\n') output('\n') end -- Internal constructor function _Operator (t) setmetatable(t,classOperator) if t.const ~= 'const' and t.const ~= '' then error("#invalid 'const' specification") end append(t) if not t:inclass() then error("#operator can only be defined as class member") end --t.name = t.name .. "_" .. (_TM[t.kind] or t.kind) t.cname = t:cfuncname("tolua")..t:overload(t) t.name = "operator" .. t.kind -- set appropriate calling name return t end -- Constructor function Operator (d,k,a,c) local op_k = string.gsub(k, "^%s*", "") op_k = string.gsub(k, "%s*$", "") --if string.find(k, "^[%w_:%d<>%*%&]+$") then if d == "operator" and k ~= '' then d = k.." operator" elseif not _TM[op_k] then if flags['W'] then error("tolua: no support for operator" .. f.kind) else warning("No support for operator "..op_k..", ignoring") return nil end end local ref = '' local t = split_c_tokens(strsub(a,2,strlen(a)-1),',') -- eliminate braces local i=1 local l = {n=0} while t[i] do l.n = l.n+1 l[l.n] = Declaration(t[i],'var') i = i+1 end if k == '[]' then local _ _, _, ref = strfind(d,'(&)') d = gsub(d,'&','') elseif k=='&[]' then l.n = l.n+1 l[l.n] = Declaration(d,'var') l[l.n].name = 'tolua_value' end local f = Declaration(d,'func') if k == '[]' and (l[1]==nil or isbasic(l[1].type)~='number') then error('operator[] can only be defined for numeric index.') end f.args = l f.const = c f.kind = op_k f.lname = "."..(_TM[f.kind] or f.kind) if not _TM[f.kind] then f.cast_operator = true end if f.kind == '[]' and ref=='&' and f.const~='const' then Operator(d,'&'..k,a,c) -- create correspoding set operator end return _Operator(f) end conky-1.19.6/3rdparty/toluapp/src/bin/lua/ordered_pairs.lua000066400000000000000000000003741451224556600236520ustar00rootroot00000000000000local P = {} op = P function P:ordered_pairs(t) local i = {} for k in next, t do table.insert(i, k) end table.sort(i) return function() local k = table.remove(i) if k ~= nil then return k, t[k] end end end return op conky-1.19.6/3rdparty/toluapp/src/bin/lua/package.lua000066400000000000000000000246161451224556600224300ustar00rootroot00000000000000-- tolua: package class -- Written by Waldemar Celes -- TeCGraf/PUC-Rio -- Jul 1998 -- $Id: $ -- This code is free software; you can redistribute it and/or modify it. -- The software provided hereunder is on an "as is" basis, and -- the author has no obligation to provide maintenance, support, updates, -- enhancements, or modifications. -- Package class -- Represents the whole package being bound. -- The following fields are stored: -- {i} = list of objects in the package. classPackage = { classtype = 'package' } classPackage.__index = classPackage setmetatable(classPackage,classContainer) -- Print method function classPackage:print () print("Package: "..self.name) local i=1 while self[i] do self[i]:print("","") i = i+1 end end function classPackage:preprocess () -- avoid preprocessing embedded Lua code local L = {} self.code = gsub(self.code,"\n%s*%$%[","\1") -- deal with embedded lua code self.code = gsub(self.code,"\n%s*%$%]","\2") self.code = gsub(self.code,"(%b\1\2)", function (c) tinsert(L,c) return "\n#[".. #L .."]#" end) -- avoid preprocessing embedded C code local C = {} self.code = gsub(self.code,"\n%s*%$%<","\3") -- deal with embedded C code self.code = gsub(self.code,"\n%s*%$%>","\4") self.code = gsub(self.code,"(%b\3\4)", function (c) tinsert(C,c) return "\n#<".. #C ..">#" end) -- avoid preprocessing embedded C code self.code = gsub(self.code,"\n%s*%$%{","\5") -- deal with embedded C code self.code = gsub(self.code,"\n%s*%$%}","\6") self.code = gsub(self.code,"(%b\5\6)", function (c) tinsert(C,c) return "\n#<".. #C..">#" end) --self.code = gsub(self.code,"\n%s*#[^d][^\n]*\n", "\n\n") -- eliminate preprocessor directives that don't start with 'd' self.code = gsub(self.code,"\n[ \t]*#[ \t]*[^d%<%[]", "\n//") -- eliminate preprocessor directives that don't start with 'd' -- avoid preprocessing verbatim lines local V = {} self.code = gsub(self.code,"\n(%s*%$[^%[%]][^\n]*)",function (v) tinsert(V,v) return "\n#".. #V .."#" end) -- perform global substitution self.code = gsub(self.code,"(//[^\n]*)","") -- eliminate C++ comments self.code = gsub(self.code,"/%*","\1") self.code = gsub(self.code,"%*/","\2") self.code = gsub(self.code,"%b\1\2","") self.code = gsub(self.code,"\1","/%*") self.code = gsub(self.code,"\2","%*/") self.code = gsub(self.code,"%s*@%s*","@") -- eliminate spaces beside @ self.code = gsub(self.code,"%s?inline(%s)","%1") -- eliminate 'inline' keyword --self.code = gsub(self.code,"%s?extern(%s)","%1") -- eliminate 'extern' keyword --self.code = gsub(self.code,"%s?virtual(%s)","%1") -- eliminate 'virtual' keyword --self.code = gsub(self.code,"public:","") -- eliminate 'public:' keyword self.code = gsub(self.code,"([^%w_])void%s*%*","%1_userdata ") -- substitute 'void*' self.code = gsub(self.code,"([^%w_])void%s*%*","%1_userdata ") -- substitute 'void*' self.code = gsub(self.code,"([^%w_])char%s*%*","%1_cstring ") -- substitute 'char*' self.code = gsub(self.code,"([^%w_])lua_State%s*%*","%1_lstate ") -- substitute 'lua_State*' -- restore embedded Lua code self.code = gsub(self.code,"%#%[(%d+)%]%#",function (n) return L[tonumber(n)] end) -- restore embedded C code self.code = gsub(self.code,"%#%<(%d+)%>%#",function (n) return C[tonumber(n)] end) -- restore verbatim lines self.code = gsub(self.code,"%#(%d+)%#",function (n) return V[tonumber(n)] end) self.code = string.gsub(self.code, "\n%s*%$([^\n]+)", function (l) Verbatim(l.."\n") return "\n" end) end -- translate verbatim function classPackage:preamble () output('/*\n') output('** Lua binding: '..self.name..'\n') output('** Generated automatically by '..TOLUA_VERSION..'.\n') output('*/\n\n') output('#ifndef __cplusplus\n') output('#include "stdlib.h"\n') output('#endif\n') output('#include "string.h"\n\n') output('#include "tolua++.h"\n\n') if not flags.h then output('/* Exported function */') output('TOLUA_API int tolua_'..self.name..'_open (lua_State* tolua_S);') output('\n') end local i=1 while self[i] do self[i]:preamble() i = i+1 end if self:requirecollection(_collect) then output('\n') output('/* function to release collected object via destructor */') output('#ifdef __cplusplus\n') for i,v in op:ordered_pairs(_collect) do output('\nstatic int '..v..' (lua_State* tolua_S)') output('{') output(' '..i..'* self = ('..i..'*) tolua_tousertype(tolua_S,1,0);') output(' Mtolua_delete(self);') output(' return 0;') output('}') end output('#endif\n\n') end output('\n') output('/* function to register type */') output('static void tolua_reg_types (lua_State* tolua_S)') output('{') if flags.t then output("#ifndef Mtolua_typeid\n#define Mtolua_typeid(L,TI,T)\n#endif\n") end for n,v in op:ordered_pairs(_usertype) do if (not _global_classes[v]) or _global_classes[v]:check_public_access() then output(' tolua_usertype(tolua_S,"',v,'");') if flags.t then output(' Mtolua_typeid(tolua_S,typeid(',v,'), "',v,'");') end end end output('}') output('\n') end -- register package -- write package open function function classPackage:register (pre) pre = pre or '' push(self) output(pre.."/* Open function */") output(pre.."TOLUA_API int tolua_"..self.name.."_open (lua_State* tolua_S)") output(pre.."{") output(pre.." tolua_open(tolua_S);") output(pre.." tolua_reg_types(tolua_S);") output(pre.." tolua_module(tolua_S,NULL,",self:hasvar(),");") output(pre.." tolua_beginmodule(tolua_S,NULL);") local i=1 while self[i] do self[i]:register(pre.." ") i = i+1 end output(pre.." tolua_endmodule(tolua_S);") output(pre.." return 1;") output(pre.."}") output("\n\n") output("#if defined(LUA_VERSION_NUM) && LUA_VERSION_NUM >= 501\n"); output(pre.."TOLUA_API int luaopen_"..self.name.." (lua_State* tolua_S) {") output(pre.." return tolua_"..self.name.."_open(tolua_S);") output(pre.."}") output("#endif\n\n") pop() end -- write header file function classPackage:header () output('/*\n') output('** Lua binding: '..self.name..'\n') output('** Generated automatically by '..TOLUA_VERSION..' on '..date()..'.\n') output('*/\n\n') if not flags.h then output('/* Exported function */') output('TOLUA_API int tolua_'..self.name..'_open (lua_State* tolua_S);') output('\n') end end -- Internal constructor function _Package (self) setmetatable(self,classPackage) return self end -- Parse C header file with tolua directives -- *** Thanks to Ariel Manzur for fixing bugs in nested directives *** function extract_code(fn,s) local code = '\n$#include "'..fn..'"\n' s= "\n" .. s .. "\n" -- add blank lines as sentinels local _,e,c,t = strfind(s, "\n([^\n]-)[Tt][Oo][Ll][Uu][Aa]_([^%s]*)[^\n]*\n") while e do t = strlower(t) if t == "begin" then _,e,c = strfind(s,"(.-)\n[^\n]*[Tt][Oo][Ll][Uu][Aa]_[Ee][Nn][Dd][^\n]*\n",e) if not e then tolua_error("Unbalanced 'tolua_begin' directive in header file") end end code = code .. c .. "\n" _,e,c,t = strfind(s, "\n([^\n]-)[Tt][Oo][Ll][Uu][Aa]_([^%s]*)[^\n]*\n",e) end return code end -- Constructor -- Expects the package name, the file extension, and the file text. function Package (name,fn) local ext = "pkg" -- open input file, if any local st,msg if fn then st, msg = readfrom(flags.f) if not st then error('#'..msg) end local _; _, _, ext = strfind(fn,".*%.(.*)$") end local code if ext == 'pkg' then code = prep(st) else code = "\n" .. read('*a') if ext == 'h' or ext == 'hpp' then code = extract_code(fn,code) end end -- close file if fn then readfrom() end -- deal with include directive local nsubst repeat code,nsubst = gsub(code,'\n%s*%$(.)file%s*"(.-)"([^\n]*)\n', function (kind,fn,extra) local _, _, ext = strfind(fn,".*%.(.*)$") local fp,msg = openfile(fn,'r') if not fp then error('#'..msg..': '..fn) end if kind == 'p' then local s = prep(fp) closefile(fp) return s end local s = read(fp,'*a') closefile(fp) if kind == 'c' or kind == 'h' then return extract_code(fn,s) elseif kind == 'l' then return "\n$[--##"..fn.."\n" .. s .. "\n$]\n" elseif kind == 'i' then local t = {code=s} extra = string.gsub(extra, "^%s*,%s*", "") local pars = split_c_tokens(extra, ",") include_file_hook(t, fn, table.unpack(pars)) return "\n\n" .. t.code else error('#Invalid include directive (use $cfile, $pfile, $lfile or $ifile)') end end) until nsubst==0 -- deal with renaming directive repeat -- I don't know why this is necesary code,nsubst = gsub(code,'\n%s*%$renaming%s*(.-)%s*\n', function (r) appendrenaming(r) return "\n" end) until nsubst == 0 local t = _Package(_Container{name=name, code=code}) push(t) preprocess_hook(t) t:preprocess() preparse_hook(t) t:parse(t.code) pop() return t end setmetatable(_extra_parameters, { __index = _G }) function prep(file) local chunk = {'local __ret = {"\\n"}\n'} for line in file:lines() do if string.find(line, "^##") then table.insert(chunk, string.sub(line, 3) .. "\n") else local last = 1 for text, expr, index in string.gmatch(line, "(.-)$(%b())()") do last = index if text ~= "" then table.insert(chunk, string.format('table.insert(__ret, %q )', text)) end table.insert(chunk, string.format('table.insert(__ret, %s )', expr)) end table.insert(chunk, string.format('table.insert(__ret, %q)\n', string.sub(line, last).."\n")) end end table.insert(chunk, '\nreturn table.concat(__ret)\n') local f,e = load(table.concat(chunk), nil, "t", _extra_parameters) if e then error("#"..e) end return f() end conky-1.19.6/3rdparty/toluapp/src/bin/lua/template_class.lua000066400000000000000000000033561451224556600240330ustar00rootroot00000000000000 _global_templates = {} classTemplateClass = { name = '', body = '', parents = {}, args = {}, -- the template arguments } classTemplateClass.__index = classTemplateClass function classTemplateClass:throw(types, local_scope) --if table.getn(types) ~= table.getn(self.args) then -- error("#invalid parameter count") --end -- replace for i =1 , types.n do local Il = split_c_tokens(types[i], " ") if #Il ~= #self.args then error("#invalid parameter count for "..types[i]) end local bI = self.body local pI = {} for j = 1,self.args.n do --Tl[j] = findtype(Tl[j]) or Tl[j] bI = string.gsub(bI, "([^_%w])"..self.args[j].."([^_%w])", "%1"..Il[j].."%2") if self.parents then for i=1,#self.parents do pI[i] = string.gsub(self.parents[i], "([^_%w]?)"..self.args[j].."([^_%w]?)", "%1"..Il[j].."%2") end end end --local append = "<"..string.gsub(types[i], "%s+", ",")..">" local append = "<"..concat(Il, 1, #Il, ",")..">" append = string.gsub(append, "%s*,%s*", ",") append = string.gsub(append, ">>", "> >") for i=1,#pI do --pI[i] = string.gsub(pI[i], ">>", "> >") pI[i] = resolve_template_types(pI[i]) end bI = string.gsub(bI, ">>", "> >") local n = self.name if local_scope then n = self.local_name end Class(n..append, pI, bI) end end function TemplateClass(name, parents, body, parameters) local o = { parents = parents, body = body, args = parameters, } local oname = string.gsub(name, "@.*$", "") oname = getnamespace(classContainer.curr)..oname o.name = oname o.local_name = name setmetatable(o, classTemplateClass) if _global_templates[oname] then warning("Duplicate declaration of template "..oname) else _global_templates[oname] = o end return o end conky-1.19.6/3rdparty/toluapp/src/bin/lua/typedef.lua000066400000000000000000000032401451224556600224630ustar00rootroot00000000000000-- tolua: typedef class -- Written by Waldemar Celes -- TeCGraf/PUC-Rio -- Jul 1998 -- $Id: $ -- This code is free software; you can redistribute it and/or modify it. -- The software provided hereunder is on an "as is" basis, and -- the author has no obligation to provide maintenance, support, updates, -- enhancements, or modifications. -- Typedef class -- Represents a type synonym. -- The 'de facto' type replaces the typedef before the -- remaining code is parsed. -- The following fields are stored: -- utype = typedef name -- type = 'the facto' type -- mod = modifiers to the 'de facto' type classTypedef = { utype = '', mod = '', type = '' } classTypedef.__index = classTypedef -- Print method function classTypedef:print (ident,close) print(ident.."Typedef{") print(ident.." utype = '"..self.utype.."',") print(ident.." mod = '"..self.mod.."',") print(ident.." type = '"..self.type.."',") print(ident.."}"..close) end -- Return it's not a variable function classTypedef:isvariable () return false end -- Internal constructor function _Typedef (t) setmetatable(t,classTypedef) t.type = resolve_template_types(t.type) appendtypedef(t) return t end -- Constructor -- Expects one string representing the type definition. function Typedef (s) if strfind(string.gsub(s, '%b<>', ''),'[%*&]') then tolua_error("#invalid typedef: pointers (and references) are not supported") end local o = {mod = ''} if string.find(s, "[<>]") then _,_,o.type,o.utype = string.find(s, "^%s*([^<>]+%b<>[^%s]*)%s+(.-)$") else local t = split(gsub(s,"%s%s*"," ")," ") o = { utype = t[t.n], type = t[t.n-1], mod = concat(t,1,t.n-2), } end return _Typedef(o) end conky-1.19.6/3rdparty/toluapp/src/bin/lua/variable.lua000066400000000000000000000176051451224556600226220ustar00rootroot00000000000000-- tolua: variable class -- Written by Waldemar Celes -- TeCGraf/PUC-Rio -- Jul 1998 -- $Id: $ -- This code is free software; you can redistribute it and/or modify it. -- The software provided hereunder is on an "as is" basis, and -- the author has no obligation to provide maintenance, support, updates, -- enhancements, or modifications. -- Variable class -- Represents a extern variable or a public member of a class. -- Stores all fields present in a declaration. classVariable = { _get = {}, -- mapped get functions _set = {}, -- mapped set functions } classVariable.__index = classVariable setmetatable(classVariable,classDeclaration) -- Print method function classVariable:print (ident,close) print(ident.."Variable{") print(ident.." mod = '"..self.mod.."',") print(ident.." type = '"..self.type.."',") print(ident.." ptr = '"..self.ptr.."',") print(ident.." name = '"..self.name.."',") if self.dim then print(ident.." dim = '"..self.dim.."',") end print(ident.." def = '"..self.def.."',") print(ident.." ret = '"..self.ret.."',") print(ident.."}"..close) end -- Generates C function name function classVariable:cfuncname (prefix) local parent = "" local unsigned = "" local ptr = "" local p = self:inmodule() or self:innamespace() or self:inclass() if p then if self.parent.classtype == 'class' then parent = "_" .. self.parent.type else parent = "_" .. p end end if strfind(self.mod,"(unsigned)") then unsigned = "_unsigned" end if self.ptr == "*" then ptr = "_ptr" elseif self.ptr == "&" then ptr = "_ref" end local name = prefix .. parent .. unsigned .. "_" .. gsub(self.lname or self.name,".*::","") .. ptr name = clean_template(name) return name end -- check if it is a variable function classVariable:isvariable () return true end -- get variable value function classVariable:getvalue (class,static, prop_get) local name if prop_get then name = prop_get.."()" else name = self.name end if class and static then return self.parent.type..'::'..name elseif class then return 'self->'..name else return name end end -- get variable pointer value function classVariable:getpointervalue (class,static) if class and static then return class..'::p' elseif class then return 'self->p' else return 'p' end end -- Write binding functions function classVariable:supcode () local class = self:inclass() local prop_get,prop_set if string.find(self.mod, 'tolua_property') then local _,_,type = string.find(self.mod, "tolua_property__([^%s]*)") type = type or "default" prop_get,prop_set = get_property_methods(type, self.name) self.mod = string.gsub(self.mod, "tolua_property[^%s]*", "") end -- get function ------------------------------------------------ if class then output("/* get function:",self.name," of class ",class," */") else output("/* get function:",self.name," */") end self.cgetname = self:cfuncname("tolua_get") output("#ifndef TOLUA_DISABLE_"..self.cgetname) output("\nstatic int",self.cgetname,"(lua_State* tolua_S)") output("{") -- declare self, if the case local _,_,static = strfind(self.mod,'^%s*(static)') if class and static==nil then output(' ',self.parent.type,'*','self = ') output('(',self.parent.type,'*) ') local to_func = get_to_function(self.parent.type) output(to_func,'(tolua_S,1,0);') elseif static then _,_,self.mod = strfind(self.mod,'^%s*static%s%s*(.*)') end -- check self value if class and static==nil then output('#ifndef TOLUA_RELEASE\n') output(' if (!self) tolua_error(tolua_S,"'..output_error_hook("invalid \'self\' in accessing variable \'%s\'", self.name)..'",NULL);'); output('#endif\n') end -- return value if string.find(self.mod, 'tolua_inherits') then local push_func = get_push_function(self.type) output('#ifdef __cplusplus\n') output(' ',push_func,'(tolua_S,(void*)static_cast<'..self.type..'*>(self), "',self.type,'");') output('#else\n') output(' ',push_func,'(tolua_S,(void*)(('..self.type..'*)self), "',self.type,'");') output('#endif\n') else local t,ct = isbasic(self.type) if t then output(' tolua_push'..t..'(tolua_S,(',ct,')'..self:getvalue(class,static,prop_get)..');') else local push_func = get_push_function(self.type) t = self.type if self.ptr == '&' or self.ptr == '' then output(' ',push_func,'(tolua_S,(void*)&'..self:getvalue(class,static,prop_get)..',"',t,'");') else output(' ',push_func,'(tolua_S,(void*)'..self:getvalue(class,static,prop_get)..',"',t,'");') end end end output(' return 1;') output('}') output('#endif //#ifndef TOLUA_DISABLE\n') output('\n') -- set function ------------------------------------------------ if not (strfind(self.type,'const%s+') or string.find(self.mod, 'tolua_readonly') or string.find(self.mod, 'tolua_inherits')) then if class then output("/* set function:",self.name," of class ",class," */") else output("/* set function:",self.name," */") end self.csetname = self:cfuncname("tolua_set") output("#ifndef TOLUA_DISABLE_"..self.csetname) output("\nstatic int",self.csetname,"(lua_State* tolua_S)") output("{") -- declare self, if the case if class and static==nil then output(' ',self.parent.type,'*','self = ') output('(',self.parent.type,'*) ') local to_func = get_to_function(self.parent.type) output(to_func,'(tolua_S,1,0);') -- check self value end -- check types output('#ifndef TOLUA_RELEASE\n') output(' tolua_Error tolua_err;') if class and static==nil then output(' if (!self) tolua_error(tolua_S,"'..output_error_hook("invalid \'self\' in accessing variable \'%s\'", self.name)..'",NULL);'); elseif static then _,_,self.mod = strfind(self.mod,'^%s*static%s%s*(.*)') end -- check variable type output(' if ('..self:outchecktype(2)..')') output(' tolua_error(tolua_S,"#vinvalid type in variable assignment.",&tolua_err);') output('#endif\n') -- assign value local def = 0 if self.def ~= '' then def = self.def end if self.type == 'char*' and self.dim ~= '' then -- is string output(' strncpy((char*)') if class and static then output(self.parent.type..'::'..self.name) elseif class then output('self->'..self.name) else output(self.name) end output(',(const char*)tolua_tostring(tolua_S,2,',def,'),',self.dim,'-1);') else local ptr = '' if self.ptr~='' then ptr = '*' end output(' ') local name = prop_set or self.name if class and static then output(self.parent.type..'::'..name) elseif class then output('self->'..name) else output(name) end local t = isbasic(self.type) if prop_set then output('(') else output(' = ') end if not t and ptr=='' then output('*') end output('((',self.mod,self.type) if not t then output('*') end output(') ') if t then if isenum(self.type) then output('(int) ') end output('tolua_to'..t,'(tolua_S,2,',def,'))') else local to_func = get_to_function(self.type) output(to_func,'(tolua_S,2,',def,'))') end if prop_set then output(")") end output(";") end output(' return 0;') output('}') output('#endif //#ifndef TOLUA_DISABLE\n') output('\n') end end function classVariable:register (pre) if not self:check_public_access() then return end pre = pre or '' local parent = self:inmodule() or self:innamespace() or self:inclass() if not parent then if classVariable._warning==nil then warning("Mapping variable to global may degrade performance") classVariable._warning = 1 end end if self.csetname then output(pre..'tolua_variable(tolua_S,"'..self.lname..'",'..self.cgetname..','..self.csetname..');') else output(pre..'tolua_variable(tolua_S,"'..self.lname..'",'..self.cgetname..',NULL);') end end -- Internal constructor function _Variable (t) setmetatable(t,classVariable) append(t) return t end -- Constructor -- Expects a string representing the variable declaration. function Variable (s) return _Variable (Declaration(s,'var')) end conky-1.19.6/3rdparty/toluapp/src/bin/lua/verbatim.lua000066400000000000000000000032031451224556600226330ustar00rootroot00000000000000-- tolua: verbatim class -- Written by Waldemar Celes -- TeCGraf/PUC-Rio -- Jul 1998 -- $Id: verbatim.lua,v 1.3 2000/01/24 20:41:16 celes Exp $ -- This code is free software; you can redistribute it and/or modify it. -- The software provided hereunder is on an "as is" basis, and -- the author has no obligation to provide maintenance, support, updates, -- enhancements, or modifications. -- Verbatim class -- Represents a line translated directed to the binding file. -- The following filds are stored: -- line = line text classVerbatim = { line = '', cond = nil, -- condition: where to generate the code (s=suport, r=register) } classVerbatim.__index = classVerbatim setmetatable(classVerbatim,classFeature) -- preamble verbatim function classVerbatim:preamble () if self.cond == '' then write(self.line) end end -- support code function classVerbatim:supcode () if strfind(self.cond,'s') then write(self.line) write('\n') end end -- register code function classVerbatim:register (pre) if strfind(self.cond,'r') then write(self.line) end end -- Print method function classVerbatim:print (ident,close) print(ident.."Verbatim{") print(ident.." line = '"..self.line.."',") print(ident.."}"..close) end -- Internal constructor function _Verbatim (t) setmetatable(t,classVerbatim) append(t) return t end -- Constructor -- Expects a string representing the text line function Verbatim (l,cond) if strsub(l,1,1) == "'" then l = strsub(l,2) elseif strsub(l,1,1) == '$' then cond = 'sr' -- generates in both suport and register fragments l = strsub(l,2) end return _Verbatim { line = l, cond = cond or '', } end conky-1.19.6/3rdparty/toluapp/src/bin/tolua.c000066400000000000000000000127611451224556600210370ustar00rootroot00000000000000/* tolua ** Support code for Lua bindings. ** Written by Waldemar Celes ** TeCGraf/PUC-Rio ** Aug 2003 ** $Id:$ */ /* This code is free software; you can redistribute it and/or modify it. ** The software provided hereunder is on an "as is" basis, and ** the author has no obligation to provide maintenance, support, updates, ** enhancements, or modifications. */ #include "tolua++.h" #include "lauxlib.h" #include "lua.h" #include "lualib.h" #include #include #include static void help(void) { fprintf( stderr, "\n" "usage: tolua++ [options] input_file\n" "\n" "Command line options are:\n" " -v : print version information.\n" " -o file : set output file; default is stdout.\n" " -H file : create include file.\n" " -n name : set package name; default is input file root name.\n" " -p : parse only.\n" " -P : parse and print structure information (for debug).\n" " -S : disable support for c++ strings.\n" " -1 : substract 1 to operator[] index (for compatibility with " "tolua5).\n" " -L file : run lua file (with dofile()) before doing anything.\n" " -D : disable automatic exporting of destructors for classes " "that have\n" " constructors (for compatibility with tolua5)\n" " -W : disable warnings for unsupported features (for " "compatibility\n" " with tolua5)\n" " -C : disable cleanup of included lua code (for easier " "debugging)\n" " -E value[=value] : add extra values to the luastate\n" " -t : export a list of types asociates with the C++ typeid name\n" " -q : don't print warnings to the console\n" " -h : print this message.\n" "Should the input file be omitted, stdin is assumed;\n" "in that case, the package name must be explicitly set.\n\n"); } static void version(void) { fprintf(stderr, "%s (written by W. Celes, A. Manzur)\n", TOLUA_VERSION); } static void setfield(lua_State *L, int table, const char *f, const char *v) { lua_pushstring(L, f); lua_pushstring(L, v); lua_settable(L, table); } static void add_extra(lua_State *L, const char *value) { int len; lua_getglobal(L, "_extra_parameters"); #if LUA_VERSION_NUM > 501 len = lua_rawlen(L, -1); #else len = luaL_getn(L, -1); #endif lua_pushstring(L, value); lua_rawseti(L, -2, len + 1); lua_pop(L, 1); } static void error(char *o) __attribute__((noreturn)); static void error(char *o) { fprintf(stderr, "tolua: unknown option '%s'\n", o); help(); exit(1); } int main(int argc, char *argv[]) { #ifdef LUA_VERSION_NUM /* lua 5.1 */ lua_State *L = luaL_newstate(); luaL_openlibs(L); #else lua_State *L = lua_open(); luaopen_base(L); luaopen_io(L); luaopen_string(L); luaopen_table(L); luaopen_math(L); luaopen_debug(L); #endif lua_pushstring(L, TOLUA_VERSION); lua_setglobal(L, "TOLUA_VERSION"); lua_pushstring(L, LUA_VERSION); lua_setglobal(L, "TOLUA_LUA_VERSION"); if (argc == 1) { help(); return 0; } else { int i, t; lua_newtable(L); lua_setglobal(L, "_extra_parameters"); lua_newtable(L); lua_pushvalue(L, -1); lua_setglobal(L, "flags"); t = lua_gettop(L); // Ignore the last arg in the arg list. for (i = 1; i < argc - 1; ++i) { if (*argv[i] == '-') { switch (argv[i][1]) { case 'v': version(); return 0; case 'h': help(); return 0; case 'p': setfield(L, t, "p", ""); break; case 'P': setfield(L, t, "P", ""); break; case 'o': setfield(L, t, "o", argv[++i]); break; case 'n': setfield(L, t, "n", argv[++i]); break; case 'H': setfield(L, t, "H", argv[++i]); break; case 'S': setfield(L, t, "S", ""); break; case '1': setfield(L, t, "1", ""); break; case 'L': setfield(L, t, "L", argv[++i]); break; case 'D': setfield(L, t, "D", ""); break; case 'W': setfield(L, t, "W", ""); break; case 'C': setfield(L, t, "C", ""); break; case 'E': add_extra(L, argv[++i]); break; case 't': setfield(L, t, "t", ""); break; case 'q': setfield(L, t, "q", ""); break; default: error(argv[i]); break; } } else { setfield(L, t, "f", argv[i]); break; } } lua_pop(L, 1); } #define TOLUA_SCRIPT_RUN #ifndef TOLUA_SCRIPT_RUN { int tolua_tolua_open(lua_State * L); tolua_tolua_open(L); } #else { // Take the path to the Lua sources from the last arg. char *pkg_path = argv[argc - 1]; char full_path[1024]; strcpy(full_path, pkg_path); strcat(full_path, "all.lua"); lua_pushstring(L, pkg_path); lua_setglobal(L, "path"); if (luaL_loadfile(L, full_path) != 0) { fprintf(stderr, "luaL_loadfile failed\n"); return 1; } if (lua_pcall(L, 0, 0, 0) != 0) { const char *errmsg = lua_tostring(L, -1); fprintf(stderr, "lua_pcall failed: %s\n", errmsg); lua_pop(L, 1); return 1; } } #endif return 0; } conky-1.19.6/3rdparty/toluapp/src/bin/tolua_scons.pkg000066400000000000000000000015741451224556600226030ustar00rootroot00000000000000$lfile "src/bin/lua/compat-5.1.lua" $lfile "src/bin/lua/compat.lua" $lfile "src/bin/lua/basic.lua" $lfile "src/bin/lua/feature.lua" $lfile "src/bin/lua/verbatim.lua" $lfile "src/bin/lua/code.lua" $lfile "src/bin/lua/typedef.lua" $lfile "src/bin/lua/container.lua" $lfile "src/bin/lua/package.lua" $lfile "src/bin/lua/module.lua" $lfile "src/bin/lua/namespace.lua" $lfile "src/bin/lua/define.lua" $lfile "src/bin/lua/enumerate.lua" $lfile "src/bin/lua/declaration.lua" $lfile "src/bin/lua/variable.lua" $lfile "src/bin/lua/array.lua" $lfile "src/bin/lua/function.lua" $lfile "src/bin/lua/operator.lua" $lfile "src/bin/lua/template_class.lua" $lfile "src/bin/lua/class.lua" $lfile "src/bin/lua/clean.lua" $lfile "src/bin/lua/doit.lua" $[ local err,msg = pcall(doit) if not err then local _,_,label,msg = strfind(msg,"(.-:.-:%s*)(.*)") tolua_error(msg,label) print(debug.traceback()) end $] conky-1.19.6/3rdparty/toluapp/src/bin/toluabind.c000066400000000000000000017556451451224556600217140ustar00rootroot00000000000000/* ** Lua binding: tolua ** Generated automatically by tolua++-1.0.92 on Sun Feb 15 22:29:47 2009. */ #ifndef __cplusplus #include "stdlib.h" #endif #include "string.h" #include "tolua++.h" /* Exported function */ TOLUA_API int tolua_tolua_open (lua_State* tolua_S); /* function to register type */ static void tolua_reg_types (lua_State* tolua_S) { (void)tolua_S; } /* Open function */ TOLUA_API int tolua_tolua_open (lua_State* tolua_S) { tolua_open(tolua_S); tolua_reg_types(tolua_S); tolua_module(tolua_S,NULL,0); tolua_beginmodule(tolua_S,NULL); { /* begin embedded lua code */ int top = lua_gettop(tolua_S); static unsigned char B[] = { 105,102, 32,115,116,114,105,110,103, 46,102,105,110,100, 40, 95, 86, 69, 82, 83, 73, 79, 78, 44, 32, 34, 53, 37, 46, 48, 34, 41, 32,116,104,101,110, 13, 10, 9,114,101,116,117,114, 110, 13, 10,101,110,100, 13, 10, 13, 10, 45, 45, 32, 34,108, 111, 97,100,102,105,108,101, 34, 13, 10,108,111, 99, 97,108, 32,102,117,110, 99,116,105,111,110, 32,112,112, 95,100,111, 102,105,108,101, 40,112, 97,116,104, 41, 13, 10, 13, 10, 9, 108,111, 99, 97,108, 32,108,111, 97,100,101,100, 32, 61, 32, 102, 97,108,115,101, 13, 10, 9,108,111, 99, 97,108, 32,103, 101,116,102,105,108,101, 32, 61, 32,102,117,110, 99,116,105, 111,110, 40, 41, 13, 10, 13, 10, 9, 9,105,102, 32,108,111, 97,100,101,100, 32,116,104,101,110, 13, 10, 9, 9, 9,114, 101,116,117,114,110, 13, 10, 9, 9,101,108,115,101, 13, 10, 9, 9, 9,108,111, 99, 97,108, 32,102,105,108,101, 44,101, 114,114, 32, 61, 32,105,111, 46,111,112,101,110, 40,112, 97, 116,104, 41, 13, 10, 9, 9, 9,105,102, 32,110,111,116, 32, 102,105,108,101, 32,116,104,101,110, 13, 10, 9, 9, 9, 9, 101,114,114,111,114, 40, 34,101,114,114,111,114, 32,108,111, 97,100,105,110,103, 32,102,105,108,101, 32, 34, 46, 46,112, 97,116,104, 46, 46, 34, 58, 32, 34, 46, 46,101,114,114, 41, 13, 10, 9, 9, 9,101,110,100, 13, 10, 9, 9, 9,108,111, 99, 97,108, 32,114,101,116, 32, 61, 32,102,105,108,101, 58, 114,101, 97,100, 40, 34, 42, 97, 34, 41, 13, 10, 9, 9, 9, 102,105,108,101, 58, 99,108,111,115,101, 40, 41, 13, 10, 13, 10, 9, 9, 9,114,101,116, 32, 61, 32,115,116,114,105,110, 103, 46,103,115,117, 98, 40,114,101,116, 44, 32, 34, 37, 46, 37, 46, 37, 46, 37,115, 42, 37, 41, 34, 44, 32, 34, 46, 46, 46, 41, 32,108,111, 99, 97,108, 32, 97,114,103, 32, 61, 32, 123,110, 61,115,101,108,101, 99,116, 40, 39, 35, 39, 44, 32, 46, 46, 46, 41, 44, 32, 46, 46, 46,125, 59, 34, 41, 13, 10, 13, 10, 9, 9, 9,108,111, 97,100,101,100, 32, 61, 32,116, 114,117,101, 13, 10, 9, 9, 9,114,101,116,117,114,110, 32, 114,101,116, 13, 10, 9, 9,101,110,100, 13, 10, 9,101,110, 100, 13, 10, 13, 10, 9,108,111, 99, 97,108, 32,102, 32, 61, 32,108,111, 97,100, 40,103,101,116,102,105,108,101, 44, 32, 112, 97,116,104, 41, 13, 10, 9,105,102, 32,110,111,116, 32, 102, 32,116,104,101,110, 13, 10, 9, 13, 10, 9, 9,101,114, 114,111,114, 40, 34,101,114,114,111,114, 32,108,111, 97,100, 105,110,103, 32,102,105,108,101, 32, 34, 46, 46,112, 97,116, 104, 41, 13, 10, 9,101,110,100, 13, 10, 9,114,101,116,117, 114,110, 32,102, 40, 41, 13, 10,101,110,100, 13, 10, 13, 10, 111,108,100, 95,100,111,102,105,108,101, 32, 61, 32,100,111, 102,105,108,101, 13, 10,100,111,102,105,108,101, 32, 61, 32, 112,112, 95,100,111,102,105,108,101, 13, 10, 13, 10, 13, 10, 45, 45, 32,115,116,114,105,110,103, 46,103,115,117, 98, 13, 10, 45, 45, 91, 91, 13, 10,108,111, 99, 97,108, 32,111,103, 115,117, 98, 32, 61, 32,115,116,114,105,110,103, 46,103,115, 117, 98, 13, 10,108,111, 99, 97,108, 32,102,117,110, 99,116, 105,111,110, 32, 99,111,109,112,103,115,117, 98, 40, 97, 44, 98, 44, 99, 44,100, 41, 13, 10, 32, 32,105,102, 32,116,121, 112,101, 40, 99, 41, 32, 61, 61, 32, 34,102,117,110, 99,116, 105,111,110, 34, 32,116,104,101,110, 13, 10, 32, 32, 32, 32, 108,111, 99, 97,108, 32,111, 99, 32, 61, 32, 99, 13, 10, 32, 32, 32, 32, 99, 32, 61, 32,102,117,110, 99,116,105,111,110, 32, 40, 46, 46, 46, 41, 32,114,101,116,117,114,110, 32,111, 99, 40, 46, 46, 46, 41, 32,111,114, 32, 39, 39, 32,101,110, 100, 13, 10, 32, 32,101,110,100, 13, 10, 32, 32,114,101,116, 117,114,110, 32,111,103,115,117, 98, 40, 97, 44, 98, 44, 99, 44,100, 41, 13, 10,101,110,100, 13, 10,115,116,114,105,110, 103, 46,114,101,112,108, 32, 61, 32,111,103,115,117, 98, 13, 10, 45, 45, 93, 93, 13, 10, 13, 10, 45, 45,115,116,114,105, 110,103, 46,103,115,117, 98, 32, 61, 32, 99,111,109,112,103, 115,117, 98, 13,32 }; tolua_dobuffer(tolua_S,(char*)B,sizeof(B),"tolua embedded: src/bin/lua/compat-5.1.lua"); lua_settop(tolua_S, top); } /* end of embedded lua code */ { /* begin embedded lua code */ int top = lua_gettop(tolua_S); static unsigned char B[] = { 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 10, 45, 45, 32, 82,101, 97,108, 32,103,108,111, 98, 97,108,115, 10, 45, 45, 32, 95, 65, 76, 69, 82, 84, 10, 45, 45, 32, 95, 69, 82, 82, 79, 82, 77, 69, 83, 83, 65, 71, 69, 10, 45, 45, 32, 95, 86, 69, 82, 83, 73, 79, 78, 10, 45, 45, 32, 95, 71, 10, 45, 45, 32, 97,115,115, 101,114,116, 10, 45, 45, 32,101,114,114,111,114, 10, 45, 45, 32,109,101,116, 97,116, 97, 98,108,101, 10, 45, 45, 32,110, 101,120,116, 10, 45, 45, 32,112,114,105,110,116, 10, 45, 45, 32,114,101,113,117,105,114,101, 10, 45, 45, 32,116,111,110, 117,109, 98,101,114, 10, 45, 45, 32,116,111,115,116,114,105, 110,103, 10, 45, 45, 32,116,121,112,101, 10, 45, 45, 32,117, 110,112, 97, 99,107, 10, 10, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 10, 45, 45, 32, 99,111,108,108,101, 99,116,103, 97,114, 98, 97, 103,101, 10, 45, 45, 32,103, 99,105,110,102,111, 10, 10, 45, 45, 32,103,108,111, 98, 97,108,115, 10, 10, 45, 45, 32, 99, 97,108,108, 32, 32, 32, 45, 62, 32,112,114,111,116,101, 99, 116, 40,102, 44, 32,101,114,114, 41, 10, 45, 45, 32,108,111, 97,100,102,105,108,101, 10, 45, 45, 32,108,111, 97,100,115, 116,114,105,110,103, 10, 10, 45, 45, 32,114, 97,119,103,101, 116, 10, 45, 45, 32,114, 97,119,115,101,116, 10, 10, 45, 45, 32,103,101,116, 97,114,103,115, 32, 61, 32, 77, 97,105,110, 46,103,101,116, 97,114,103,115, 32, 63, 63, 10, 10,114, 97, 119,116,121,112,101, 32, 61, 32,116,121,112,101, 10, 10,102, 117,110, 99,116,105,111,110, 32,100,111, 95, 32, 40,102, 44, 32,101,114,114, 41, 10, 32, 32,105,102, 32,110,111,116, 32, 102, 32,116,104,101,110, 32,112,114,105,110,116, 40,101,114, 114, 41, 59, 32,114,101,116,117,114,110, 32,101,110,100, 10, 32, 32,108,111, 99, 97,108, 32, 97, 44, 98, 32, 61, 32,112, 99, 97,108,108, 40,102, 41, 10, 32, 32,105,102, 32,110,111, 116, 32, 97, 32,116,104,101,110, 32,112,114,105,110,116, 40, 98, 41, 59, 32,114,101,116,117,114,110, 32,110,105,108, 10, 32, 32,101,108,115,101, 32,114,101,116,117,114,110, 32, 98, 32,111,114, 32,116,114,117,101, 10, 32, 32,101,110,100, 10, 101,110,100, 10, 10,102,117,110, 99,116,105,111,110, 32,100, 111,115,116,114,105,110,103, 40,115, 41, 32,114,101,116,117, 114,110, 32,100,111, 95, 40,108,111, 97,100,115,116,114,105, 110,103, 40,115, 41, 41, 32,101,110,100, 10, 45, 45, 32,102, 117,110, 99,116,105,111,110, 32,100,111,102,105,108,101, 40, 115, 41, 32,114,101,116,117,114,110, 32,100,111, 95, 40,108, 111, 97,100,102,105,108,101, 40,115, 41, 41, 32,101,110,100, 10, 10, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 10, 45, 45, 32, 84, 97, 98,108,101, 32,108,105, 98,114, 97,114,121, 10,108,111, 99, 97,108, 32,116, 97, 98, 32, 61, 32,116, 97, 98,108,101, 10, 102,111,114,101, 97, 99,104, 32, 61, 32,116, 97, 98, 46,102, 111,114,101, 97, 99,104, 10,102,111,114,101, 97, 99,104,105, 32, 61, 32,116, 97, 98, 46,102,111,114,101, 97, 99,104,105, 10,103,101,116,110, 32, 61, 32,116, 97, 98, 46,103,101,116, 110, 10,116,105,110,115,101,114,116, 32, 61, 32,116, 97, 98, 46,105,110,115,101,114,116, 10,116,114,101,109,111,118,101, 32, 61, 32,116, 97, 98, 46,114,101,109,111,118,101, 10,115, 111,114,116, 32, 61, 32,116, 97, 98, 46,115,111,114,116, 10, 10, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 10, 45, 45, 32, 68,101, 98, 117,103, 32,108,105, 98,114, 97,114,121, 10,108,111, 99, 97, 108, 32,100, 98,103, 32, 61, 32,100,101, 98,117,103, 10,103, 101,116,105,110,102,111, 32, 61, 32,100, 98,103, 46,103,101, 116,105,110,102,111, 10,103,101,116,108,111, 99, 97,108, 32, 61, 32,100, 98,103, 46,103,101,116,108,111, 99, 97,108, 10, 115,101,116, 99, 97,108,108,104,111,111,107, 32, 61, 32,102, 117,110, 99,116,105,111,110, 32, 40, 41, 32,101,114,114,111, 114, 34, 96,115,101,116, 99, 97,108,108,104,111,111,107, 39, 32,105,115, 32,100,101,112,114,101, 99, 97,116,101,100, 34, 32,101,110,100, 10,115,101,116,108,105,110,101,104,111,111, 107, 32, 61, 32,102,117,110, 99,116,105,111,110, 32, 40, 41, 32,101,114,114,111,114, 34, 96,115,101,116,108,105,110,101, 104,111,111,107, 39, 32,105,115, 32,100,101,112,114,101, 99, 97,116,101,100, 34, 32,101,110,100, 10,115,101,116,108,111, 99, 97,108, 32, 61, 32,100, 98,103, 46,115,101,116,108,111, 99, 97,108, 10, 10, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 10, 45, 45, 32,109, 97,116,104, 32,108,105, 98,114, 97,114,121, 10,108, 111, 99, 97,108, 32,109, 97,116,104, 32, 61, 32,109, 97,116, 104, 10, 97, 98,115, 32, 61, 32,109, 97,116,104, 46, 97, 98, 115, 10, 97, 99,111,115, 32, 61, 32,102,117,110, 99,116,105, 111,110, 32, 40,120, 41, 32,114,101,116,117,114,110, 32,109, 97,116,104, 46,100,101,103, 40,109, 97,116,104, 46, 97, 99, 111,115, 40,120, 41, 41, 32,101,110,100, 10, 97,115,105,110, 32, 61, 32,102,117,110, 99,116,105,111,110, 32, 40,120, 41, 32,114,101,116,117,114,110, 32,109, 97,116,104, 46,100,101, 103, 40,109, 97,116,104, 46, 97,115,105,110, 40,120, 41, 41, 32,101,110,100, 10, 97,116, 97,110, 32, 61, 32,102,117,110, 99,116,105,111,110, 32, 40,120, 41, 32,114,101,116,117,114, 110, 32,109, 97,116,104, 46,100,101,103, 40,109, 97,116,104, 46, 97,116, 97,110, 40,120, 41, 41, 32,101,110,100, 10, 97, 116, 97,110, 50, 32, 61, 32,102,117,110, 99,116,105,111,110, 32, 40,120, 44,121, 41, 32,114,101,116,117,114,110, 32,109, 97,116,104, 46,100,101,103, 40,109, 97,116,104, 46, 97,116, 97,110, 50, 40,120, 44,121, 41, 41, 32,101,110,100, 10, 99, 101,105,108, 32, 61, 32,109, 97,116,104, 46, 99,101,105,108, 10, 99,111,115, 32, 61, 32,102,117,110, 99,116,105,111,110, 32, 40,120, 41, 32,114,101,116,117,114,110, 32,109, 97,116, 104, 46, 99,111,115, 40,109, 97,116,104, 46,114, 97,100, 40, 120, 41, 41, 32,101,110,100, 10,100,101,103, 32, 61, 32,109, 97,116,104, 46,100,101,103, 10,101,120,112, 32, 61, 32,109, 97,116,104, 46,101,120,112, 10,102,108,111,111,114, 32, 61, 32,109, 97,116,104, 46,102,108,111,111,114, 10,102,114,101, 120,112, 32, 61, 32,109, 97,116,104, 46,102,114,101,120,112, 10,108,100,101,120,112, 32, 61, 32,109, 97,116,104, 46,108, 100,101,120,112, 10,108,111,103, 32, 61, 32,109, 97,116,104, 46,108,111,103, 10,108,111,103, 49, 48, 32, 61, 32,109, 97, 116,104, 46,108,111,103, 49, 48, 10,109, 97,120, 32, 61, 32, 109, 97,116,104, 46,109, 97,120, 10,109,105,110, 32, 61, 32, 109, 97,116,104, 46,109,105,110, 10,109,111,100, 32, 61, 32, 109, 97,116,104, 46,109,111,100, 10, 80, 73, 32, 61, 32,109, 97,116,104, 46,112,105, 10, 45, 45, 63, 63, 63, 32,112,111, 119, 32, 61, 32,109, 97,116,104, 46,112,111,119, 32, 32, 10, 114, 97,100, 32, 61, 32,109, 97,116,104, 46,114, 97,100, 10, 114, 97,110,100,111,109, 32, 61, 32,109, 97,116,104, 46,114, 97,110,100,111,109, 10,114, 97,110,100,111,109,115,101,101, 100, 32, 61, 32,109, 97,116,104, 46,114, 97,110,100,111,109, 115,101,101,100, 10,115,105,110, 32, 61, 32,102,117,110, 99, 116,105,111,110, 32, 40,120, 41, 32,114,101,116,117,114,110, 32,109, 97,116,104, 46,115,105,110, 40,109, 97,116,104, 46, 114, 97,100, 40,120, 41, 41, 32,101,110,100, 10,115,113,114, 116, 32, 61, 32,109, 97,116,104, 46,115,113,114,116, 10,116, 97,110, 32, 61, 32,102,117,110, 99,116,105,111,110, 32, 40, 120, 41, 32,114,101,116,117,114,110, 32,109, 97,116,104, 46, 116, 97,110, 40,109, 97,116,104, 46,114, 97,100, 40,120, 41, 41, 32,101,110,100, 10, 10, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 10, 45, 45, 32,115,116,114,105,110,103, 32,108,105, 98,114, 97, 114,121, 10,108,111, 99, 97,108, 32,115,116,114, 32, 61, 32, 115,116,114,105,110,103, 10,115,116,114, 98,121,116,101, 32, 61, 32,115,116,114, 46, 98,121,116,101, 10,115,116,114, 99, 104, 97,114, 32, 61, 32,115,116,114, 46, 99,104, 97,114, 10, 115,116,114,102,105,110,100, 32, 61, 32,115,116,114, 46,102, 105,110,100, 10,102,111,114,109, 97,116, 32, 61, 32,115,116, 114, 46,102,111,114,109, 97,116, 10,103,115,117, 98, 32, 61, 32,115,116,114, 46,103,115,117, 98, 10,115,116,114,108,101, 110, 32, 61, 32,115,116,114, 46,108,101,110, 10,115,116,114, 108,111,119,101,114, 32, 61, 32,115,116,114, 46,108,111,119, 101,114, 10,115,116,114,114,101,112, 32, 61, 32,115,116,114, 46,114,101,112, 10,115,116,114,115,117, 98, 32, 61, 32,115, 116,114, 46,115,117, 98, 10,115,116,114,117,112,112,101,114, 32, 61, 32,115,116,114, 46,117,112,112,101,114, 10, 10, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 10, 45, 45, 32,111,115, 32,108,105, 98,114, 97,114,121, 10, 99,108,111, 99,107, 32, 61, 32,111, 115, 46, 99,108,111, 99,107, 10,100, 97,116,101, 32, 61, 32, 111,115, 46,100, 97,116,101, 10,100,105,102,102,116,105,109, 101, 32, 61, 32,111,115, 46,100,105,102,102,116,105,109,101, 10,101,120,101, 99,117,116,101, 32, 61, 32,111,115, 46,101, 120,101, 99,117,116,101, 32, 45, 45, 63, 10,101,120,105,116, 32, 61, 32,111,115, 46,101,120,105,116, 10,103,101,116,101, 110,118, 32, 61, 32,111,115, 46,103,101,116,101,110,118, 10, 114,101,109,111,118,101, 32, 61, 32,111,115, 46,114,101,109, 111,118,101, 10,114,101,110, 97,109,101, 32, 61, 32,111,115, 46,114,101,110, 97,109,101, 10,115,101,116,108,111, 99, 97, 108,101, 32, 61, 32,111,115, 46,115,101,116,108,111, 99, 97, 108,101, 10,116,105,109,101, 32, 61, 32,111,115, 46,116,105, 109,101, 10,116,109,112,110, 97,109,101, 32, 61, 32,111,115, 46,116,109,112,110, 97,109,101, 10, 10, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 10, 45, 45, 32, 99,111,109,112, 97,116,105, 98,105, 108,105,116,121, 32,111,110,108,121, 10,103,101,116,103,108, 111, 98, 97,108, 32, 61, 32,102,117,110, 99,116,105,111,110, 32, 40,110, 41, 32,114,101,116,117,114,110, 32, 95, 71, 91, 110, 93, 32,101,110,100, 10,115,101,116,103,108,111, 98, 97, 108, 32, 61, 32,102,117,110, 99,116,105,111,110, 32, 40,110, 44,118, 41, 32, 95, 71, 91,110, 93, 32, 61, 32,118, 32,101, 110,100, 10, 10, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 10, 10,108,111, 99, 97,108, 32,105,111, 44, 32,116, 97, 98, 32, 61, 32,105, 111, 44, 32,116, 97, 98,108,101, 10, 10, 45, 45, 32, 73, 79, 32,108,105, 98,114, 97,114,121, 32, 40,102,105,108,101,115, 41, 10, 95, 83, 84, 68, 73, 78, 32, 61, 32,105,111, 46,115, 116,100,105,110, 10, 95, 83, 84, 68, 69, 82, 82, 32, 61, 32, 105,111, 46,115,116,100,101,114,114, 10, 95, 83, 84, 68, 79, 85, 84, 32, 61, 32,105,111, 46,115,116,100,111,117,116, 10, 95, 73, 78, 80, 85, 84, 32, 61, 32,105,111, 46,115,116,100, 105,110, 10, 95, 79, 85, 84, 80, 85, 84, 32, 61, 32,105,111, 46,115,116,100,111,117,116, 10,115,101,101,107, 32, 61, 32, 105,111, 46,115,116,100,105,110, 46,115,101,101,107, 32, 32, 32, 45, 45, 32,115,105, 99,107, 32, 59, 45, 41, 10,116,109, 112,102,105,108,101, 32, 61, 32,105,111, 46,116,109,112,102, 105,108,101, 10, 99,108,111,115,101,102,105,108,101, 32, 61, 32,105,111, 46, 99,108,111,115,101, 10,111,112,101,110,102, 105,108,101, 32, 61, 32,105,111, 46,111,112,101,110, 10, 10, 102,117,110, 99,116,105,111,110, 32,102,108,117,115,104, 32, 40,102, 41, 10, 32, 32,105,102, 32,102, 32,116,104,101,110, 32,102, 58,102,108,117,115,104, 40, 41, 10, 32, 32,101,108, 115,101, 32, 95, 79, 85, 84, 80, 85, 84, 58,102,108,117,115, 104, 40, 41, 10, 32, 32,101,110,100, 10,101,110,100, 10, 10, 102,117,110, 99,116,105,111,110, 32,114,101, 97,100,102,114, 111,109, 32, 40,110, 97,109,101, 41, 10, 32, 32,105,102, 32, 110, 97,109,101, 32, 61, 61, 32,110,105,108, 32,116,104,101, 110, 10, 32, 32, 32, 32,108,111, 99, 97,108, 32,102, 44, 32, 101,114,114, 44, 32, 99,111,100, 32, 61, 32,105,111, 46, 99, 108,111,115,101, 40, 95, 73, 78, 80, 85, 84, 41, 10, 32, 32, 32, 32, 95, 73, 78, 80, 85, 84, 32, 61, 32,105,111, 46,115, 116,100,105,110, 10, 32, 32, 32, 32,114,101,116,117,114,110, 32,102, 44, 32,101,114,114, 44, 32, 99,111,100, 10, 32, 32, 101,108,115,101, 10, 32, 32, 32, 32,108,111, 99, 97,108, 32, 102, 44, 32,101,114,114, 44, 32, 99,111,100, 32, 61, 32,105, 111, 46,111,112,101,110, 40,110, 97,109,101, 44, 32, 34,114, 34, 41, 10, 32, 32, 32, 32, 95, 73, 78, 80, 85, 84, 32, 61, 32,102, 32,111,114, 32, 95, 73, 78, 80, 85, 84, 10, 32, 32, 32, 32,114,101,116,117,114,110, 32,102, 44, 32,101,114,114, 44, 32, 99,111,100, 10, 32, 32,101,110,100, 10,101,110,100, 10, 10,102,117,110, 99,116,105,111,110, 32,119,114,105,116, 101,116,111, 32, 40,110, 97,109,101, 41, 10, 32, 32,105,102, 32,110, 97,109,101, 32, 61, 61, 32,110,105,108, 32,116,104, 101,110, 10, 32, 32, 32, 32,108,111, 99, 97,108, 32,102, 44, 32,101,114,114, 44, 32, 99,111,100, 32, 61, 32,105,111, 46, 99,108,111,115,101, 40, 95, 79, 85, 84, 80, 85, 84, 41, 10, 32, 32, 32, 32, 95, 79, 85, 84, 80, 85, 84, 32, 61, 32,105, 111, 46,115,116,100,111,117,116, 10, 32, 32, 32, 32,114,101, 116,117,114,110, 32,102, 44, 32,101,114,114, 44, 32, 99,111, 100, 10, 32, 32,101,108,115,101, 10, 32, 32, 32, 32,108,111, 99, 97,108, 32,102, 44, 32,101,114,114, 44, 32, 99,111,100, 32, 61, 32,105,111, 46,111,112,101,110, 40,110, 97,109,101, 44, 32, 34,119, 34, 41, 10, 32, 32, 32, 32, 95, 79, 85, 84, 80, 85, 84, 32, 61, 32,102, 32,111,114, 32, 95, 79, 85, 84, 80, 85, 84, 10, 32, 32, 32, 32,114,101,116,117,114,110, 32, 102, 44, 32,101,114,114, 44, 32, 99,111,100, 10, 32, 32,101, 110,100, 10,101,110,100, 10, 10,102,117,110, 99,116,105,111, 110, 32, 97,112,112,101,110,100,116,111, 32, 40,110, 97,109, 101, 41, 10, 32, 32,108,111, 99, 97,108, 32,102, 44, 32,101, 114,114, 44, 32, 99,111,100, 32, 61, 32,105,111, 46,111,112, 101,110, 40,110, 97,109,101, 44, 32, 34, 97, 34, 41, 10, 32, 32, 95, 79, 85, 84, 80, 85, 84, 32, 61, 32,102, 32,111,114, 32, 95, 79, 85, 84, 80, 85, 84, 10, 32, 32,114,101,116,117, 114,110, 32,102, 44, 32,101,114,114, 44, 32, 99,111,100, 10, 101,110,100, 10, 10,102,117,110, 99,116,105,111,110, 32,114, 101, 97,100, 32, 40, 46, 46, 46, 41, 10, 32, 32,108,111, 99, 97,108, 32,102, 32, 61, 32, 95, 73, 78, 80, 85, 84, 10, 32, 32,105,102, 32,114, 97,119,116,121,112,101, 40, 97,114,103, 91, 49, 93, 41, 32, 61, 61, 32, 39,117,115,101,114,100, 97, 116, 97, 39, 32,116,104,101,110, 10, 32, 32, 32, 32,102, 32, 61, 32,116, 97, 98, 46,114,101,109,111,118,101, 40, 97,114, 103, 44, 32, 49, 41, 10, 32, 32,101,110,100, 10, 32, 32,114, 101,116,117,114,110, 32,102, 58,114,101, 97,100, 40,117,110, 112, 97, 99,107, 40, 97,114,103, 41, 41, 10,101,110,100, 10, 10,102,117,110, 99,116,105,111,110, 32,119,114,105,116,101, 32, 40, 46, 46, 46, 41, 10, 32, 32,108,111, 99, 97,108, 32, 102, 32, 61, 32, 95, 79, 85, 84, 80, 85, 84, 10, 32, 32,105, 102, 32,114, 97,119,116,121,112,101, 40, 97,114,103, 91, 49, 93, 41, 32, 61, 61, 32, 39,117,115,101,114,100, 97,116, 97, 39, 32,116,104,101,110, 10, 32, 32, 32, 32,102, 32, 61, 32, 116, 97, 98, 46,114,101,109,111,118,101, 40, 97,114,103, 44, 32, 49, 41, 10, 32, 32,101,110,100, 10, 32, 32,114,101,116, 117,114,110, 32,102, 58,119,114,105,116,101, 40,117,110,112, 97, 99,107, 40, 97,114,103, 41, 41, 10,101,110,100,32 }; tolua_dobuffer(tolua_S,(char*)B,sizeof(B),"tolua embedded: src/bin/lua/compat.lua"); lua_settop(tolua_S, top); } /* end of embedded lua code */ { /* begin embedded lua code */ int top = lua_gettop(tolua_S); static unsigned char B[] = { 45, 45, 32,116,111,108,117, 97, 58, 32, 98, 97,115,105, 99, 32,117,116,105,108,105,116,121, 32,102,117,110, 99,116,105, 111,110,115, 10, 45, 45, 32, 87,114,105,116,116,101,110, 32, 98,121, 32, 87, 97,108,100,101,109, 97,114, 32, 67,101,108, 101,115, 10, 45, 45, 32, 84,101, 67, 71,114, 97,102, 47, 80, 85, 67, 45, 82,105,111, 10, 45, 45, 32, 74,117,108, 32, 49, 57, 57, 56, 10, 45, 45, 32, 76, 97,115,116, 32,117,112,100, 97,116,101, 58, 32, 65,112,114, 32, 50, 48, 48, 51, 10, 45, 45, 32, 36, 73,100, 58, 32, 36, 10, 10, 45, 45, 32, 84,104, 105,115, 32, 99,111,100,101, 32,105,115, 32,102,114,101,101, 32,115,111,102,116,119, 97,114,101, 59, 32,121,111,117, 32, 99, 97,110, 32,114,101,100,105,115,116,114,105, 98,117,116, 101, 32,105,116, 32, 97,110,100, 47,111,114, 32,109,111,100, 105,102,121, 32,105,116, 46, 10, 45, 45, 32, 84,104,101, 32, 115,111,102,116,119, 97,114,101, 32,112,114,111,118,105,100, 101,100, 32,104,101,114,101,117,110,100,101,114, 32,105,115, 32,111,110, 32, 97,110, 32, 34, 97,115, 32,105,115, 34, 32, 98, 97,115,105,115, 44, 32, 97,110,100, 10, 45, 45, 32,116, 104,101, 32, 97,117,116,104,111,114, 32,104, 97,115, 32,110, 111, 32,111, 98,108,105,103, 97,116,105,111,110, 32,116,111, 32,112,114,111,118,105,100,101, 32,109, 97,105,110,116,101, 110, 97,110, 99,101, 44, 32,115,117,112,112,111,114,116, 44, 32,117,112,100, 97,116,101,115, 44, 10, 45, 45, 32,101,110, 104, 97,110, 99,101,109,101,110,116,115, 44, 32,111,114, 32, 109,111,100,105,102,105, 99, 97,116,105,111,110,115, 46, 10, 10, 10, 45, 45, 32, 66, 97,115,105, 99, 32, 67, 32,116,121, 112,101,115, 32, 97,110,100, 32,116,104,101,105,114, 32, 99, 111,114,114,101,115,112,111,110,100,105,110,103, 32, 76,117, 97, 32,116,121,112,101,115, 10, 45, 45, 32, 65,108,108, 32, 111, 99, 99,117,114,114,101,110, 99,101,115, 32,111,102, 32, 34, 99,104, 97,114, 42, 34, 32,119,105,108,108, 32, 98,101, 32,114,101,112,108, 97, 99,101,100, 32, 98,121, 32, 34, 95, 99,115,116,114,105,110,103, 34, 44, 10, 45, 45, 32, 97,110, 100, 32, 97,108,108, 32,111, 99, 99,117,114,114,101,110, 99, 101,115, 32,111,102, 32, 34,118,111,105,100, 42, 34, 32,119, 105,108,108, 32, 98,101, 32,114,101,112,108, 97, 99,101,100, 32, 98,121, 32, 34, 95,117,115,101,114,100, 97,116, 97, 34, 10, 95, 98, 97,115,105, 99, 32, 61, 32,123, 10, 32, 91, 39, 118,111,105,100, 39, 93, 32, 61, 32, 39, 39, 44, 10, 32, 91, 39, 99,104, 97,114, 39, 93, 32, 61, 32, 39,110,117,109, 98, 101,114, 39, 44, 10, 32, 91, 39,105,110,116, 39, 93, 32, 61, 32, 39,110,117,109, 98,101,114, 39, 44, 10, 32, 91, 39,115, 104,111,114,116, 39, 93, 32, 61, 32, 39,110,117,109, 98,101, 114, 39, 44, 10, 32, 91, 39,108,111,110,103, 39, 93, 32, 61, 32, 39,110,117,109, 98,101,114, 39, 44, 10, 32, 91, 39,117, 110,115,105,103,110,101,100, 39, 93, 32, 61, 32, 39,110,117, 109, 98,101,114, 39, 44, 10, 32, 91, 39,102,108,111, 97,116, 39, 93, 32, 61, 32, 39,110,117,109, 98,101,114, 39, 44, 10, 32, 91, 39,100,111,117, 98,108,101, 39, 93, 32, 61, 32, 39, 110,117,109, 98,101,114, 39, 44, 10, 32, 91, 39, 95, 99,115, 116,114,105,110,103, 39, 93, 32, 61, 32, 39,115,116,114,105, 110,103, 39, 44, 10, 32, 91, 39, 95,117,115,101,114,100, 97, 116, 97, 39, 93, 32, 61, 32, 39,117,115,101,114,100, 97,116, 97, 39, 44, 10, 32, 91, 39, 99,104, 97,114, 42, 39, 93, 32, 61, 32, 39,115,116,114,105,110,103, 39, 44, 10, 32, 91, 39, 118,111,105,100, 42, 39, 93, 32, 61, 32, 39,117,115,101,114, 100, 97,116, 97, 39, 44, 10, 32, 91, 39, 98,111,111,108, 39, 93, 32, 61, 32, 39, 98,111,111,108,101, 97,110, 39, 44, 10, 32, 91, 39,108,117, 97, 95, 79, 98,106,101, 99,116, 39, 93, 32, 61, 32, 39,118, 97,108,117,101, 39, 44, 10, 32, 91, 39, 76, 85, 65, 95, 86, 65, 76, 85, 69, 39, 93, 32, 61, 32, 39, 118, 97,108,117,101, 39, 44, 32, 32, 32, 32, 45, 45, 32,102, 111,114, 32, 99,111,109,112, 97,116,105, 98,105,108,105,116, 121, 32,119,105,116,104, 32,116,111,108,117, 97, 32, 52, 46, 48, 10, 32, 91, 39,108,117, 97, 95, 83,116, 97,116,101, 42, 39, 93, 32, 61, 32, 39,115,116, 97,116,101, 39, 44, 10, 32, 91, 39, 95,108,115,116, 97,116,101, 39, 93, 32, 61, 32, 39, 115,116, 97,116,101, 39, 44, 10, 32, 91, 39,108,117, 97, 95, 70,117,110, 99,116,105,111,110, 39, 93, 32, 61, 32, 39,118, 97,108,117,101, 39, 44, 10,125, 10, 10, 95, 98, 97,115,105, 99, 95, 99,116,121,112,101, 32, 61, 32,123, 10, 32,110,117, 109, 98,101,114, 32, 61, 32, 34,108,117, 97, 95, 78,117,109, 98,101,114, 34, 44, 10, 32,115,116,114,105,110,103, 32, 61, 32, 34, 99,111,110,115,116, 32, 99,104, 97,114, 42, 34, 44, 10, 32,117,115,101,114,100, 97,116, 97, 32, 61, 32, 34,118, 111,105,100, 42, 34, 44, 10, 32, 98,111,111,108,101, 97,110, 32, 61, 32, 34, 98,111,111,108, 34, 44, 10, 32,118, 97,108, 117,101, 32, 61, 32, 34,105,110,116, 34, 44, 10, 32,115,116, 97,116,101, 32, 61, 32, 34,108,117, 97, 95, 83,116, 97,116, 101, 42, 34, 44, 10,125, 10, 10, 45, 45, 32,102,117,110, 99, 116,105,111,110,115, 32,116,104,101, 32, 97,114,101, 32,117, 115,101,100, 32,116,111, 32,100,111, 32, 97, 32, 39,114, 97, 119, 32,112,117,115,104, 39, 32,111,102, 32, 98, 97,115,105, 99, 32,116,121,112,101,115, 10, 95, 98, 97,115,105, 99, 95, 114, 97,119, 95,112,117,115,104, 32, 61, 32,123,125, 10, 10, 45, 45, 32, 76,105,115,116, 32,111,102, 32,117,115,101,114, 32,100,101,102,105,110,101,100, 32,116,121,112,101,115, 10, 45, 45, 32, 69, 97, 99,104, 32,116,121,112,101, 32, 99,111, 114,114,101,115,112,111,110,100,115, 32,116,111, 32, 97, 32, 118, 97,114,105, 97, 98,108,101, 32,110, 97,109,101, 32,116, 104, 97,116, 32,115,116,111,114,101,115, 32,105,116,115, 32, 116, 97,103, 32,118, 97,108,117,101, 46, 10, 95,117,115,101, 114,116,121,112,101, 32, 61, 32,123,125, 10, 10, 45, 45, 32, 76,105,115,116, 32,111,102, 32,116,121,112,101,115, 32,116, 104, 97,116, 32,104, 97,118,101, 32,116,111, 32, 98,101, 32, 99,111,108,108,101, 99,116,101,100, 10, 95, 99,111,108,108, 101, 99,116, 32, 61, 32,123,125, 10, 10, 45, 45, 32, 76,105, 115,116, 32,111,102, 32,116,121,112,101,115, 10, 95,103,108, 111, 98, 97,108, 95,116,121,112,101,115, 32, 61, 32,123,110, 61, 48,125, 10, 95,103,108,111, 98, 97,108, 95,116,121,112, 101,115, 95,104, 97,115,104, 32, 61, 32,123,125, 10, 10, 45, 45, 32,108,105,115,116, 32,111,102, 32, 99,108, 97,115,115, 101,115, 10, 95,103,108,111, 98, 97,108, 95, 99,108, 97,115, 115,101,115, 32, 61, 32,123,125, 10, 10, 45, 45, 32, 76,105, 115,116, 32,111,102, 32,101,110,117,109, 32, 99,111,110,115, 116, 97,110,116,115, 10, 95,103,108,111, 98, 97,108, 95,101, 110,117,109,115, 32, 61, 32,123,125, 10, 10, 45, 45, 32, 76, 105,115,116, 32,111,102, 32, 97,117,116,111, 32,114,101,110, 97,109,105,110,103, 10, 95,114,101,110, 97,109,105,110,103, 32, 61, 32,123,125, 10,102,117,110, 99,116,105,111,110, 32, 97,112,112,101,110,100,114,101,110, 97,109,105,110,103, 32, 40,115, 41, 10, 32,108,111, 99, 97,108, 32, 98, 44,101, 44, 111,108,100, 44,110,101,119, 32, 61, 32,115,116,114,102,105, 110,100, 40,115, 44, 34, 37,115, 42, 40, 46, 45, 41, 37,115, 42, 64, 37,115, 42, 40, 46, 45, 41, 37,115, 42, 36, 34, 41, 10, 9,105,102, 32,110,111,116, 32, 98, 32,116,104,101,110, 10, 9, 32,101,114,114,111,114, 40, 34, 35, 73,110,118, 97, 108,105,100, 32,114,101,110, 97,109,105,110,103, 32,115,121, 110,116, 97,120, 59, 32,105,116, 32,115,104,111,117,108,100, 32, 98,101, 32,111,102, 32,116,104,101, 32,102,111,114,109, 58, 32,112, 97,116,116,101,114,110, 64,112, 97,116,116,101, 114,110, 34, 41, 10, 9,101,110,100, 10, 9,116,105,110,115, 101,114,116, 40, 95,114,101,110, 97,109,105,110,103, 44,123, 111,108,100, 61,111,108,100, 44, 32,110,101,119, 61,110,101, 119,125, 41, 10,101,110,100, 10, 10,102,117,110, 99,116,105, 111,110, 32, 97,112,112,108,121,114,101,110, 97,109,105,110, 103, 32, 40,115, 41, 10, 9,102,111,114, 32,105, 61, 49, 44, 103,101,116,110, 40, 95,114,101,110, 97,109,105,110,103, 41, 32,100,111, 10, 9, 32,108,111, 99, 97,108, 32,109, 44,110, 32, 61, 32,103,115,117, 98, 40,115, 44, 95,114,101,110, 97, 109,105,110,103, 91,105, 93, 46,111,108,100, 44, 95,114,101, 110, 97,109,105,110,103, 91,105, 93, 46,110,101,119, 41, 10, 9, 9,105,102, 32,110, 32,126, 61, 32, 48, 32,116,104,101, 110, 10, 9, 9, 32,114,101,116,117,114,110, 32,109, 10, 9, 9,101,110,100, 10, 9,101,110,100, 10, 9,114,101,116,117, 114,110, 32,110,105,108, 10,101,110,100, 10, 10, 45, 45, 32, 69,114,114,111,114, 32,104, 97,110,100,108,101,114, 10,102, 117,110, 99,116,105,111,110, 32,116,111,108,117, 97, 95,101, 114,114,111,114, 32, 40,115, 44,102, 41, 10,105,102, 32, 95, 99,117,114,114, 95, 99,111,100,101, 32,116,104,101,110, 10, 9,112,114,105,110,116, 40, 34, 42, 42, 42, 99,117,114,114, 32, 99,111,100,101, 32,102,111,114, 32,101,114,114,111,114, 32,105,115, 32, 34, 46, 46,116,111,115,116,114,105,110,103, 40, 95, 99,117,114,114, 95, 99,111,100,101, 41, 41, 10, 9, 112,114,105,110,116, 40,100,101, 98,117,103, 46,116,114, 97, 99,101, 98, 97, 99,107, 40, 41, 41, 10,101,110,100, 10, 32, 108,111, 99, 97,108, 32,111,117,116, 32, 61, 32, 95, 79, 85, 84, 80, 85, 84, 10, 32, 95, 79, 85, 84, 80, 85, 84, 32, 61, 32, 95, 83, 84, 68, 69, 82, 82, 10, 32,105,102, 32,115,116, 114,115,117, 98, 40,115, 44, 49, 44, 49, 41, 32, 61, 61, 32, 39, 35, 39, 32,116,104,101,110, 10, 32, 32,119,114,105,116, 101, 40, 34, 92,110, 42, 42, 32,116,111,108,117, 97, 58, 32, 34, 46, 46,115,116,114,115,117, 98, 40,115, 44, 50, 41, 46, 46, 34, 46, 92,110, 92,110, 34, 41, 10, 32, 32,105,102, 32, 95, 99,117,114,114, 95, 99,111,100,101, 32,116,104,101,110, 10, 32, 32, 32,108,111, 99, 97,108, 32, 95, 44, 95, 44,115, 32, 61, 32,115,116,114,102,105,110,100, 40, 95, 99,117,114, 114, 95, 99,111,100,101, 44, 34, 94, 37,115, 42, 40, 46, 45, 92,110, 41, 34, 41, 32, 45, 45, 32,101,120,116,114, 97, 99, 116, 32,102,105,114,115,116, 32,108,105,110,101, 10, 32, 32, 32,105,102, 32,115, 61, 61,110,105,108, 32,116,104,101,110, 32,115, 32, 61, 32, 95, 99,117,114,114, 95, 99,111,100,101, 32,101,110,100, 10, 32, 32, 32,115, 32, 61, 32,103,115,117, 98, 40,115, 44, 34, 95,117,115,101,114,100, 97,116, 97, 34, 44, 34,118,111,105,100, 42, 34, 41, 32, 45, 45, 32,114,101, 116,117,114,110, 32,119,105,116,104, 32, 39,118,111,105,100, 42, 39, 10, 32, 32, 32,115, 32, 61, 32,103,115,117, 98, 40, 115, 44, 34, 95, 99,115,116,114,105,110,103, 34, 44, 34, 99, 104, 97,114, 42, 34, 41, 32, 32, 45, 45, 32,114,101,116,117, 114,110, 32,119,105,116,104, 32, 39, 99,104, 97,114, 42, 39, 10, 32, 32, 32,115, 32, 61, 32,103,115,117, 98, 40,115, 44, 34, 95,108,115,116, 97,116,101, 34, 44, 34,108,117, 97, 95, 83,116, 97,116,101, 42, 34, 41, 32, 32, 45, 45, 32,114,101, 116,117,114,110, 32,119,105,116,104, 32, 39,108,117, 97, 95, 83,116, 97,116,101, 42, 39, 10, 32, 32, 32,119,114,105,116, 101, 40, 34, 67,111,100,101, 32, 98,101,105,110,103, 32,112, 114,111, 99,101,115,115,101,100, 58, 92,110, 34, 46, 46,115, 46, 46, 34, 92,110, 34, 41, 10, 32, 32,101,110,100, 10, 32, 101,108,115,101, 10, 32,105,102, 32,110,111,116, 32,102, 32, 116,104,101,110, 32,102, 32, 61, 32, 34, 40,102, 32,105,115, 32,110,105,108, 41, 34, 32,101,110,100, 10, 32, 32,112,114, 105,110,116, 40, 34, 92,110, 42, 42, 32,116,111,108,117, 97, 32,105,110,116,101,114,110, 97,108, 32,101,114,114,111,114, 58, 32, 34, 46, 46,102, 46, 46,115, 46, 46, 34, 46, 92,110, 92,110, 34, 41, 10, 32, 32,114,101,116,117,114,110, 10, 32, 101,110,100, 10, 32, 95, 79, 85, 84, 80, 85, 84, 32, 61, 32, 111,117,116, 10,101,110,100, 10, 10,102,117,110, 99,116,105, 111,110, 32,119, 97,114,110,105,110,103, 32, 40,109,115,103, 41, 10, 32,105,102, 32,102,108, 97,103,115, 46,113, 32,116, 104,101,110, 32,114,101,116,117,114,110, 32,101,110,100, 10, 32,108,111, 99, 97,108, 32,111,117,116, 32, 61, 32, 95, 79, 85, 84, 80, 85, 84, 10, 32, 95, 79, 85, 84, 80, 85, 84, 32, 61, 32, 95, 83, 84, 68, 69, 82, 82, 10, 32,119,114,105,116, 101, 40, 34, 92,110, 42, 42, 32,116,111,108,117, 97, 32,119, 97,114,110,105,110,103, 58, 32, 34, 46, 46,109,115,103, 46, 46, 34, 46, 92,110, 92,110, 34, 41, 10, 32, 95, 79, 85, 84, 80, 85, 84, 32, 61, 32,111,117,116, 10,101,110,100, 10, 10, 45, 45, 32,114,101,103,105,115,116,101,114, 32, 97,110, 32, 117,115,101,114, 32,100,101,102,105,110,101,100, 32,116,121, 112,101, 58, 32,114,101,116,117,114,110,115, 32,102,117,108, 108, 32,116,121,112,101, 10,102,117,110, 99,116,105,111,110, 32,114,101,103,116,121,112,101, 32, 40,116, 41, 10, 9, 45, 45,105,102, 32,105,115, 98, 97,115,105, 99, 40,116, 41, 32, 116,104,101,110, 10, 9, 45, 45, 9,114,101,116,117,114,110, 32,116, 10, 9, 45, 45,101,110,100, 10, 9,108,111, 99, 97, 108, 32,102,116, 32, 61, 32,102,105,110,100,116,121,112,101, 40,116, 41, 10, 10, 9,105,102, 32,110,111,116, 32, 95,117, 115,101,114,116,121,112,101, 91,102,116, 93, 32,116,104,101, 110, 10, 9, 9,114,101,116,117,114,110, 32, 97,112,112,101, 110,100,117,115,101,114,116,121,112,101, 40,116, 41, 10, 9, 101,110,100, 10, 9,114,101,116,117,114,110, 32,102,116, 10, 101,110,100, 10, 10, 45, 45, 32,114,101,116,117,114,110, 32, 116,121,112,101, 32,110, 97,109,101, 58, 32,114,101,116,117, 114,110,115, 32,102,117,108,108, 32,116,121,112,101, 10,102, 117,110, 99,116,105,111,110, 32,116,121,112,101,118, 97,114, 40,116,121,112,101, 41, 10, 9,105,102, 32,116,121,112,101, 32, 61, 61, 32, 39, 39, 32,111,114, 32,116,121,112,101, 32, 61, 61, 32, 39,118,111,105,100, 39, 32,116,104,101,110, 10, 9, 9,114,101,116,117,114,110, 32,116,121,112,101, 10, 9, 101,108,115,101, 10, 9, 9,108,111, 99, 97,108, 32,102,116, 32, 61, 32,102,105,110,100,116,121,112,101, 40,116,121,112, 101, 41, 10, 9, 9,105,102, 32,102,116, 32,116,104,101,110, 10, 9, 9, 9,114,101,116,117,114,110, 32,102,116, 10, 9, 9,101,110,100, 10, 9, 9, 95,117,115,101,114,116,121,112, 101, 91,116,121,112,101, 93, 32, 61, 32,116,121,112,101, 10, 9, 9,114,101,116,117,114,110, 32,116,121,112,101, 10, 9, 101,110,100, 10,101,110,100, 10, 10, 45, 45, 32, 99,104,101, 99,107, 32,105,102, 32, 98, 97,115,105, 99, 32,116,121,112, 101, 10,102,117,110, 99,116,105,111,110, 32,105,115, 98, 97, 115,105, 99, 32, 40,116,121,112,101, 41, 10, 32,108,111, 99, 97,108, 32,116, 32, 61, 32,103,115,117, 98, 40,116,121,112, 101, 44, 39, 99,111,110,115,116, 32, 39, 44, 39, 39, 41, 10, 32,108,111, 99, 97,108, 32,109, 44,116, 32, 61, 32, 97,112, 112,108,121,116,121,112,101,100,101,102, 40, 39, 39, 44, 32, 116, 41, 10, 32,108,111, 99, 97,108, 32, 98, 32, 61, 32, 95, 98, 97,115,105, 99, 91,116, 93, 10, 32,105,102, 32, 98, 32, 116,104,101,110, 10, 32, 32,114,101,116,117,114,110, 32, 98, 44, 95, 98, 97,115,105, 99, 95, 99,116,121,112,101, 91, 98, 93, 10, 32,101,110,100, 10, 32,114,101,116,117,114,110, 32, 110,105,108, 10,101,110,100, 10, 10, 45, 45, 32,115,112,108, 105,116, 32,115,116,114,105,110,103, 32,117,115,105,110,103, 32, 97, 32,116,111,107,101,110, 10,102,117,110, 99,116,105, 111,110, 32,115,112,108,105,116, 32, 40,115, 44,116, 41, 10, 32,108,111, 99, 97,108, 32,108, 32, 61, 32,123,110, 61, 48, 125, 10, 32,108,111, 99, 97,108, 32,102, 32, 61, 32,102,117, 110, 99,116,105,111,110, 32, 40,115, 41, 10, 32, 32,108, 46, 110, 32, 61, 32,108, 46,110, 32, 43, 32, 49, 10, 32, 32,108, 91,108, 46,110, 93, 32, 61, 32,115, 10, 32, 32,114,101,116, 117,114,110, 32, 34, 34, 10, 32,101,110,100, 10, 32,108,111, 99, 97,108, 32,112, 32, 61, 32, 34, 37,115, 42, 40, 46, 45, 41, 37,115, 42, 34, 46, 46,116, 46, 46, 34, 37,115, 42, 34, 10, 32,115, 32, 61, 32,103,115,117, 98, 40,115, 44, 34, 94, 37,115, 43, 34, 44, 34, 34, 41, 10, 32,115, 32, 61, 32,103, 115,117, 98, 40,115, 44, 34, 37,115, 43, 36, 34, 44, 34, 34, 41, 10, 32,115, 32, 61, 32,103,115,117, 98, 40,115, 44,112, 44,102, 41, 10, 32,108, 46,110, 32, 61, 32,108, 46,110, 32, 43, 32, 49, 10, 32,108, 91,108, 46,110, 93, 32, 61, 32,103, 115,117, 98, 40,115, 44, 34, 40, 37,115, 37,115, 42, 41, 36, 34, 44, 34, 34, 41, 10, 32,114,101,116,117,114,110, 32,108, 10,101,110,100, 10, 10, 45, 45, 32,115,112,108,105,116,115, 32, 97, 32,115,116,114,105,110,103, 32,117,115,105,110,103, 32, 97, 32,112, 97,116,116,101,114,110, 44, 32, 99,111,110, 115,105,100,101,114,105,110,103, 32,116,104,101, 32,115,112, 97, 99,105, 97,108, 32, 99, 97,115,101,115, 32,111,102, 32, 67, 32, 99,111,100,101, 32, 40,116,101,109,112,108, 97,116, 101,115, 44, 32,102,117,110, 99,116,105,111,110, 32,112, 97, 114, 97,109,101,116,101,114,115, 44, 32,101,116, 99, 41, 10, 45, 45, 32,112, 97,116,116,101,114,110, 32, 99, 97,110, 39, 116, 32, 99,111,110,116, 97,105,110, 32,116,104,101, 32, 39, 94, 39, 32, 40, 97,115, 32,117,115,101,100, 32,116,111, 32, 105,100,101,110,116,105,102,121, 32,116,104,101, 32, 98,101, 103,105,110,105,110,103, 32,111,102, 32,116,104,101, 32,108, 105,110,101, 41, 10, 45, 45, 32, 97,108,115,111, 32,115,116, 114,105,112,115, 32,119,104,105,116,101,115,112, 97, 99,101, 10,102,117,110, 99,116,105,111,110, 32,115,112,108,105,116, 95, 99, 95,116,111,107,101,110,115, 40,115, 44, 32,112, 97, 116, 41, 10, 10, 9,115, 32, 61, 32,115,116,114,105,110,103, 46,103,115,117, 98, 40,115, 44, 32, 34, 94, 37,115, 42, 34, 44, 32, 34, 34, 41, 10, 9,115, 32, 61, 32,115,116,114,105, 110,103, 46,103,115,117, 98, 40,115, 44, 32, 34, 37,115, 42, 36, 34, 44, 32, 34, 34, 41, 10, 10, 9,108,111, 99, 97,108, 32,116,111,107,101,110, 95, 98,101,103,105,110, 32, 61, 32, 49, 10, 9,108,111, 99, 97,108, 32,116,111,107,101,110, 95, 101,110,100, 32, 61, 32, 49, 10, 9,108,111, 99, 97,108, 32, 111,102,115, 32, 61, 32, 49, 10, 9,108,111, 99, 97,108, 32, 114,101,116, 32, 61, 32,123,110, 61, 48,125, 10, 10, 9,102, 117,110, 99,116,105,111,110, 32, 97,100,100, 95,116,111,107, 101,110, 40,111,102,115, 41, 10, 10, 9, 9,108,111, 99, 97, 108, 32,116, 32, 61, 32,115,116,114,105,110,103, 46,115,117, 98, 40,115, 44, 32,116,111,107,101,110, 95, 98,101,103,105, 110, 44, 32,111,102,115, 41, 10, 9, 9,116, 32, 61, 32,115, 116,114,105,110,103, 46,103,115,117, 98, 40,116, 44, 32, 34, 94, 37,115, 42, 34, 44, 32, 34, 34, 41, 10, 9, 9,116, 32, 61, 32,115,116,114,105,110,103, 46,103,115,117, 98, 40,116, 44, 32, 34, 37,115, 42, 36, 34, 44, 32, 34, 34, 41, 10, 9, 9,114,101,116, 46,110, 32, 61, 32,114,101,116, 46,110, 32, 43, 32, 49, 10, 9, 9,114,101,116, 91,114,101,116, 46,110, 93, 32, 61, 32,116, 10, 9,101,110,100, 10, 10, 9,119,104, 105,108,101, 32,111,102,115, 32, 60, 61, 32,115,116,114,105, 110,103, 46,108,101,110, 40,115, 41, 32,100,111, 10, 10, 9, 9,108,111, 99, 97,108, 32,115,117, 98, 32, 61, 32,115,116, 114,105,110,103, 46,115,117, 98, 40,115, 44, 32,111,102,115, 44, 32, 45, 49, 41, 10, 9, 9,108,111, 99, 97,108, 32, 98, 44,101, 32, 61, 32,115,116,114,105,110,103, 46,102,105,110, 100, 40,115,117, 98, 44, 32, 34, 94, 34, 46, 46,112, 97,116, 41, 10, 9, 9,105,102, 32, 98, 32,116,104,101,110, 10, 9, 9, 9, 97,100,100, 95,116,111,107,101,110, 40,111,102,115, 45, 49, 41, 10, 9, 9, 9,111,102,115, 32, 61, 32,111,102, 115, 43,101, 10, 9, 9, 9,116,111,107,101,110, 95, 98,101, 103,105,110, 32, 61, 32,111,102,115, 10, 9, 9,101,108,115, 101, 10, 9, 9, 9,108,111, 99, 97,108, 32, 99,104, 97,114, 32, 61, 32,115,116,114,105,110,103, 46,115,117, 98, 40,115, 44, 32,111,102,115, 44, 32,111,102,115, 41, 10, 9, 9, 9, 105,102, 32, 99,104, 97,114, 32, 61, 61, 32, 34, 40, 34, 32, 111,114, 32, 99,104, 97,114, 32, 61, 61, 32, 34, 60, 34, 32, 116,104,101,110, 10, 10, 9, 9, 9, 9,108,111, 99, 97,108, 32, 98,108,111, 99,107, 10, 9, 9, 9, 9,105,102, 32, 99, 104, 97,114, 32, 61, 61, 32, 34, 40, 34, 32,116,104,101,110, 32, 98,108,111, 99,107, 32, 61, 32, 34, 94, 37, 98, 40, 41, 34, 32,101,110,100, 10, 9, 9, 9, 9,105,102, 32, 99,104, 97,114, 32, 61, 61, 32, 34, 60, 34, 32,116,104,101,110, 32, 98,108,111, 99,107, 32, 61, 32, 34, 94, 37, 98, 60, 62, 34, 32,101,110,100, 10, 10, 9, 9, 9, 9, 98, 44,101, 32, 61, 32,115,116,114,105,110,103, 46,102,105,110,100, 40,115,117, 98, 44, 32, 98,108,111, 99,107, 41, 10, 9, 9, 9, 9,105, 102, 32,110,111,116, 32, 98, 32,116,104,101,110, 10, 9, 9, 9, 9, 9, 45, 45, 32,117,110,116,101,114,109,105,110, 97, 116,101,100, 32, 98,108,111, 99,107, 63, 10, 9, 9, 9, 9, 9,111,102,115, 32, 61, 32,111,102,115, 43, 49, 10, 9, 9, 9, 9,101,108,115,101, 10, 9, 9, 9, 9, 9,111,102,115, 32, 61, 32,111,102,115, 32, 43, 32,101, 10, 9, 9, 9, 9, 101,110,100, 10, 10, 9, 9, 9,101,108,115,101, 10, 9, 9, 9, 9,111,102,115, 32, 61, 32,111,102,115, 43, 49, 10, 9, 9, 9,101,110,100, 10, 9, 9,101,110,100, 10, 10, 9,101, 110,100, 10, 9, 97,100,100, 95,116,111,107,101,110, 40,111, 102,115, 41, 10, 9, 45, 45,105,102, 32,114,101,116, 46,110, 32, 61, 61, 32, 48, 32,116,104,101,110, 10, 10, 9, 45, 45, 9,114,101,116, 46,110, 61, 49, 10, 9, 45, 45, 9,114,101, 116, 91, 49, 93, 32, 61, 32, 34, 34, 10, 9, 45, 45,101,110, 100, 10, 10, 9,114,101,116,117,114,110, 32,114,101,116, 10, 10,101,110,100, 10, 10, 45, 45, 32, 99,111,110, 99, 97,116, 101,110, 97,116,101, 32,115,116,114,105,110,103,115, 32,111, 102, 32, 97, 32,116, 97, 98,108,101, 10,102,117,110, 99,116, 105,111,110, 32, 99,111,110, 99, 97,116, 32, 40,116, 44,102, 44,108, 44,106,115,116,114, 41, 10, 9,106,115,116,114, 32, 61, 32,106,115,116,114, 32,111,114, 32, 34, 32, 34, 10, 32, 108,111, 99, 97,108, 32,115, 32, 61, 32, 39, 39, 10, 32,108, 111, 99, 97,108, 32,105, 61,102, 10, 32,119,104,105,108,101, 32,105, 60, 61,108, 32,100,111, 10, 32, 32,115, 32, 61, 32, 115, 46, 46,116, 91,105, 93, 10, 32, 32,105, 32, 61, 32,105, 43, 49, 10, 32, 32,105,102, 32,105, 32, 60, 61, 32,108, 32, 116,104,101,110, 32,115, 32, 61, 32,115, 46, 46,106,115,116, 114, 32,101,110,100, 10, 32,101,110,100, 10, 32,114,101,116, 117,114,110, 32,115, 10,101,110,100, 10, 10, 45, 45, 32, 99, 111,110, 99, 97,116,101,110, 97,116,101, 32, 97,108,108, 32, 112, 97,114, 97,109,101,116,101,114,115, 44, 32,102,111,108, 108,111,119,105,110,103, 32,111,117,116,112,117,116, 32,114, 117,108,101,115, 10,102,117,110, 99,116,105,111,110, 32, 99, 111,110, 99, 97,116,112, 97,114, 97,109, 32, 40,108,105,110, 101, 44, 32, 46, 46, 46, 41, 10, 32,108,111, 99, 97,108, 32, 105, 61, 49, 10, 32,119,104,105,108,101, 32,105, 60, 61, 97, 114,103, 46,110, 32,100,111, 10, 32, 32,105,102, 32, 95, 99, 111,110,116, 32, 97,110,100, 32,110,111,116, 32,115,116,114, 102,105,110,100, 40, 95, 99,111,110,116, 44, 39, 91, 37, 40, 44, 34, 93, 39, 41, 32, 97,110,100, 10, 32, 32, 32, 32, 32, 115,116,114,102,105,110,100, 40, 97,114,103, 91,105, 93, 44, 34, 94, 91, 37, 97, 95,126, 93, 34, 41, 32,116,104,101,110, 10, 9, 32, 32, 32, 32,108,105,110,101, 32, 61, 32,108,105, 110,101, 32, 46, 46, 32, 39, 32, 39, 10, 32, 32,101,110,100, 10, 32, 32,108,105,110,101, 32, 61, 32,108,105,110,101, 32, 46, 46, 32, 97,114,103, 91,105, 93, 10, 32, 32,105,102, 32, 97,114,103, 91,105, 93, 32,126, 61, 32, 39, 39, 32,116,104, 101,110, 10, 32, 32, 32, 95, 99,111,110,116, 32, 61, 32,115, 116,114,115,117, 98, 40, 97,114,103, 91,105, 93, 44, 45, 49, 44, 45, 49, 41, 10, 32, 32,101,110,100, 10, 32, 32,105, 32, 61, 32,105, 43, 49, 10, 32,101,110,100, 10, 32,105,102, 32, 115,116,114,102,105,110,100, 40, 97,114,103, 91, 97,114,103, 46,110, 93, 44, 34, 91, 37, 47, 37, 41, 37, 59, 37,123, 37, 125, 93, 36, 34, 41, 32,116,104,101,110, 10, 32, 32, 95, 99, 111,110,116, 61,110,105,108, 32,108,105,110,101, 32, 61, 32, 108,105,110,101, 32, 46, 46, 32, 39, 92,110, 39, 10, 32,101, 110,100, 10, 9,114,101,116,117,114,110, 32,108,105,110,101, 10,101,110,100, 10, 10, 45, 45, 32,111,117,116,112,117,116, 32,108,105,110,101, 10,102,117,110, 99,116,105,111,110, 32, 111,117,116,112,117,116, 32, 40, 46, 46, 46, 41, 10, 32,108, 111, 99, 97,108, 32,105, 61, 49, 10, 32,119,104,105,108,101, 32,105, 60, 61, 97,114,103, 46,110, 32,100,111, 10, 32, 32, 105,102, 32, 95, 99,111,110,116, 32, 97,110,100, 32,110,111, 116, 32,115,116,114,102,105,110,100, 40, 95, 99,111,110,116, 44, 39, 91, 37, 40, 44, 34, 93, 39, 41, 32, 97,110,100, 10, 32, 32, 32, 32, 32,115,116,114,102,105,110,100, 40, 97,114, 103, 91,105, 93, 44, 34, 94, 91, 37, 97, 95,126, 93, 34, 41, 32,116,104,101,110, 10, 9, 32, 32, 32, 32,119,114,105,116, 101, 40, 39, 32, 39, 41, 10, 32, 32,101,110,100, 10, 32, 32, 119,114,105,116,101, 40, 97,114,103, 91,105, 93, 41, 10, 32, 32,105,102, 32, 97,114,103, 91,105, 93, 32,126, 61, 32, 39, 39, 32,116,104,101,110, 10, 32, 32, 32, 95, 99,111,110,116, 32, 61, 32,115,116,114,115,117, 98, 40, 97,114,103, 91,105, 93, 44, 45, 49, 44, 45, 49, 41, 10, 32, 32,101,110,100, 10, 32, 32,105, 32, 61, 32,105, 43, 49, 10, 32,101,110,100, 10, 32,105,102, 32,115,116,114,102,105,110,100, 40, 97,114,103, 91, 97,114,103, 46,110, 93, 44, 34, 91, 37, 47, 37, 41, 37, 59, 37,123, 37,125, 93, 36, 34, 41, 32,116,104,101,110, 10, 32, 32, 95, 99,111,110,116, 61,110,105,108, 32,119,114,105, 116,101, 40, 39, 92,110, 39, 41, 10, 32,101,110,100, 10,101, 110,100, 10, 10,102,117,110, 99,116,105,111,110, 32,103,101, 116, 95,112,114,111,112,101,114,116,121, 95,109,101,116,104, 111,100,115, 40,112,116,121,112,101, 44, 32,110, 97,109,101, 41, 10, 10, 9,105,102, 32,103,101,116, 95,112,114,111,112, 101,114,116,121, 95,109,101,116,104,111,100,115, 95,104,111, 111,107, 32, 97,110,100, 32,103,101,116, 95,112,114,111,112, 101,114,116,121, 95,109,101,116,104,111,100,115, 95,104,111, 111,107, 40,112,116,121,112,101, 44,110, 97,109,101, 41, 32, 116,104,101,110, 10, 9, 9,114,101,116,117,114,110, 32,103, 101,116, 95,112,114,111,112,101,114,116,121, 95,109,101,116, 104,111,100,115, 95,104,111,111,107, 40,112,116,121,112,101, 44, 32,110, 97,109,101, 41, 10, 9,101,110,100, 10, 10, 9, 105,102, 32,112,116,121,112,101, 32, 61, 61, 32, 34,100,101, 102, 97,117,108,116, 34, 32,116,104,101,110, 32, 45, 45, 32, 103,101,116, 95,110, 97,109,101, 44, 32,115,101,116, 95,110, 97,109,101, 10, 9, 9,114,101,116,117,114,110, 32, 34,103, 101,116, 95, 34, 46, 46,110, 97,109,101, 44, 32, 34,115,101, 116, 95, 34, 46, 46,110, 97,109,101, 10, 9,101,110,100, 10, 10, 9,105,102, 32,112,116,121,112,101, 32, 61, 61, 32, 34, 113,116, 34, 32,116,104,101,110, 32, 45, 45, 32,110, 97,109, 101, 44, 32,115,101,116, 78, 97,109,101, 10, 9, 9,114,101, 116,117,114,110, 32,110, 97,109,101, 44, 32, 34,115,101,116, 34, 46, 46,115,116,114,105,110,103, 46,117,112,112,101,114, 40,115,116,114,105,110,103, 46,115,117, 98, 40,110, 97,109, 101, 44, 32, 49, 44, 32, 49, 41, 41, 46, 46,115,116,114,105, 110,103, 46,115,117, 98, 40,110, 97,109,101, 44, 32, 50, 44, 32, 45, 49, 41, 10, 9,101,110,100, 10, 10, 9,105,102, 32, 112,116,121,112,101, 32, 61, 61, 32, 34,111,118,101,114,108, 111, 97,100, 34, 32,116,104,101,110, 32, 45, 45, 32,110, 97, 109,101, 44, 32,110, 97,109,101, 10, 9, 9,114,101,116,117, 114,110, 32,110, 97,109,101, 44,110, 97,109,101, 10, 9,101, 110,100, 10, 10, 9,114,101,116,117,114,110, 32,110,105,108, 10,101,110,100, 10, 10, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 32,116,104,101, 32,104,111,111,107,115, 10, 10, 45, 45, 32, 99, 97,108,108,101,100, 32,114,105,103, 104,116, 32, 97,102,116,101,114, 32,112,114,111, 99,101,115, 115,105,110,103, 32,116,104,101, 32, 36, 91,105, 99,104,108, 93,102,105,108,101, 32,100,105,114,101, 99,116,105,118,101, 115, 44, 10, 45, 45, 32,114,105,103,104,116, 32, 98,101,102, 111,114,101, 32,112,114,111, 99,101,115,115,105,110,103, 32, 97,110,121,116,104,105,110,103, 32,101,108,115,101, 10, 45, 45, 32,116, 97,107,101,115, 32,116,104,101, 32,112, 97, 99, 107, 97,103,101, 32,111, 98,106,101, 99,116, 32, 97,115, 32, 116,104,101, 32,112, 97,114, 97,109,101,116,101,114, 10,102, 117,110, 99,116,105,111,110, 32,112,114,101,112,114,111, 99, 101,115,115, 95,104,111,111,107, 40,112, 41, 10, 9, 45, 45, 32,112, 46, 99,111,100,101, 32,104, 97,115, 32, 97,108,108, 32,116,104,101, 32,105,110,112,117,116, 32, 99,111,100,101, 32,102,114,111,109, 32,116,104,101, 32,112,107,103, 10,101, 110,100, 10, 10, 10, 45, 45, 32, 99, 97,108,108,101,100, 32, 102,111,114, 32,101,118,101,114,121, 32, 36,105,102,105,108, 101, 32,100,105,114,101, 99,116,105,118,101, 10, 45, 45, 32, 116, 97,107,101,115, 32, 97, 32,116, 97, 98,108,101, 32,119, 105,116,104, 32, 97, 32,115,116,114,105,110,103, 32, 99, 97, 108,108,101,100, 32, 39, 99,111,100,101, 39, 32,105,110,115, 105,100,101, 44, 32,116,104,101, 32,102,105,108,101,110, 97, 109,101, 44, 32, 97,110,100, 32, 97,110,121, 32,101,120,116, 114, 97, 32, 97,114,103,117,109,101,110,116,115, 10, 45, 45, 32,112, 97,115,115,101,100, 32,116,111, 32, 36,105,102,105, 108,101, 46, 32,110,111, 32,114,101,116,117,114,110, 32,118, 97,108,117,101, 10,102,117,110, 99,116,105,111,110, 32,105, 110, 99,108,117,100,101, 95,102,105,108,101, 95,104,111,111, 107, 40,116, 44, 32,102,105,108,101,110, 97,109,101, 44, 32, 46, 46, 46, 41, 10, 10,101,110,100, 10, 10, 45, 45, 32, 99, 97,108,108,101,100, 32, 97,102,116,101,114, 32,112,114,111, 99,101,115,115,105,110,103, 32, 97,110,121,116,104,105,110, 103, 32,116,104, 97,116, 39,115, 32,110,111,116, 32, 99,111, 100,101, 32, 40,108,105,107,101, 32, 39, 36,114,101,110, 97, 109,105,110,103, 39, 44, 32, 99,111,109,109,101,110,116,115, 44, 32,101,116, 99, 41, 10, 45, 45, 32, 97,110,100, 32,114, 105,103,104,116, 32, 98,101,102,111,114,101, 32,112, 97,114, 115,105,110,103, 32,116,104,101, 32, 97, 99,116,117, 97,108, 32, 99,111,100,101, 46, 10, 45, 45, 32,116, 97,107,101,115, 32,116,104,101, 32, 80, 97, 99,107, 97,103,101, 32,111, 98, 106,101, 99,116, 32,119,105,116,104, 32, 97,108,108, 32,116, 104,101, 32, 99,111,100,101, 32,111,110, 32,116,104,101, 32, 39, 99,111,100,101, 39, 32,107,101,121, 46, 32,110,111, 32, 114,101,116,117,114,110, 32,118, 97,108,117,101, 10,102,117, 110, 99,116,105,111,110, 32,112,114,101,112, 97,114,115,101, 95,104,111,111,107, 40,112, 97, 99,107, 97,103,101, 41, 10, 10,101,110,100, 10, 10, 45, 45, 32, 99, 97,108,108,101,100, 32, 98,101,102,111,114,101, 32,115,116, 97,114,116,105,110, 103, 32,111,117,116,112,117,116, 10,102,117,110, 99,116,105, 111,110, 32,112,114,101, 95,111,117,116,112,117,116, 95,104, 111,111,107, 40,112, 97, 99,107, 97,103,101, 41, 10, 10,101, 110,100, 10, 10, 45, 45, 32, 99, 97,108,108,101,100, 32, 97, 102,116,101,114, 32,119,114,105,116,105,110,103, 32, 97,108, 108, 32,116,104,101, 32,111,117,116,112,117,116, 46, 10, 45, 45, 32,116, 97,107,101,115, 32,116,104,101, 32, 80, 97, 99, 107, 97,103,101, 32,111, 98,106,101, 99,116, 10,102,117,110, 99,116,105,111,110, 32,112,111,115,116, 95,111,117,116,112, 117,116, 95,104,111,111,107, 40,112, 97, 99,107, 97,103,101, 41, 10, 10,101,110,100, 10, 10, 10, 45, 45, 32, 99, 97,108, 108,101,100, 32,102,114,111,109, 32, 39,103,101,116, 95,112, 114,111,112,101,114,116,121, 95,109,101,116,104,111,100,115, 39, 32,116,111, 32,103,101,116, 32,116,104,101, 32,109,101, 116,104,111,100,115, 32,116,111, 32,114,101,116,114,105,101, 118,101, 32, 97, 32,112,114,111,112,101,114,116,121, 10, 45, 45, 32, 97, 99, 99,111,114,100,105,110,103, 32,116,111, 32, 105,116,115, 32,116,121,112,101, 10,102,117,110, 99,116,105, 111,110, 32,103,101,116, 95,112,114,111,112,101,114,116,121, 95,109,101,116,104,111,100,115, 95,104,111,111,107, 40,112, 114,111,112,101,114,116,121, 95,116,121,112,101, 44, 32,110, 97,109,101, 41, 10, 10,101,110,100, 10, 10, 45, 45, 32, 99, 97,108,108,101,100, 32,102,114,111,109, 32, 67,108, 97,115, 115, 67,111,110,116, 97,105,110,101,114, 58,100,111,112, 97, 114,115,101, 32,119,105,116,104, 32,116,104,101, 32,115,116, 114,105,110,103, 32, 98,101,105,110,103, 32,112, 97,114,115, 101,100, 10, 45, 45, 32,114,101,116,117,114,110, 32,110,105, 108, 44, 32,111,114, 32, 97, 32,115,117, 98,115,116,114,105, 110,103, 10,102,117,110, 99,116,105,111,110, 32,112, 97,114, 115,101,114, 95,104,111,111,107, 40,115, 41, 10, 10, 9,114, 101,116,117,114,110, 32,110,105,108, 10,101,110,100, 10, 10, 45, 45, 32, 99, 97,108,108,101,100, 32,102,114,111,109, 32, 99,108, 97,115,115, 70,117,110, 99,116,105,111,110, 58,115, 117,112, 99,111,100,101, 44, 32, 98,101,102,111,114,101, 32, 116,104,101, 32, 99, 97,108,108, 32,116,111, 32,116,104,101, 32,102,117,110, 99,116,105,111,110, 32,105,115, 32,111,117, 116,112,117,116, 10,102,117,110, 99,116,105,111,110, 32,112, 114,101, 95, 99, 97,108,108, 95,104,111,111,107, 40,102, 41, 10, 10,101,110,100, 10, 10, 45, 45, 32, 99, 97,108,108,101, 100, 32,102,114,111,109, 32, 99,108, 97,115,115, 70,117,110, 99,116,105,111,110, 58,115,117,112, 99,111,100,101, 44, 32, 97,102,116,101,114, 32,116,104,101, 32, 99, 97,108,108, 32, 116,111, 32,116,104,101, 32,102,117,110, 99,116,105,111,110, 32,105,115, 32,111,117,116,112,117,116, 10,102,117,110, 99, 116,105,111,110, 32,112,111,115,116, 95, 99, 97,108,108, 95, 104,111,111,107, 40,102, 41, 10, 10,101,110,100, 10, 10, 45, 45, 32, 99, 97,108,108,101,100, 32, 98,101,102,111,114,101, 32,116,104,101, 32,114,101,103,105,115,116,101,114, 32, 99, 111,100,101, 32,105,115, 32,111,117,116,112,117,116, 10,102, 117,110, 99,116,105,111,110, 32,112,114,101, 95,114,101,103, 105,115,116,101,114, 95,104,111,111,107, 40,112, 97, 99,107, 97,103,101, 41, 10, 10,101,110,100, 10, 10, 45, 45, 32, 99, 97,108,108,101,100, 32,116,111, 32,111,117,116,112,117,116, 32, 97,110, 32,101,114,114,111,114, 32,109,101,115,115, 97, 103,101, 10,102,117,110, 99,116,105,111,110, 32,111,117,116, 112,117,116, 95,101,114,114,111,114, 95,104,111,111,107, 40, 46, 46, 46, 41, 10, 9,114,101,116,117,114,110, 32,115,116, 114,105,110,103, 46,102,111,114,109, 97,116, 40, 46, 46, 46, 41, 10,101,110,100, 10, 10, 45, 45, 32, 99,117,115,116,111, 109, 32,112,117,115,104,101,114,115, 10, 10, 95,112,117,115, 104, 95,102,117,110, 99,116,105,111,110,115, 32, 61, 32,123, 125, 10, 95,105,115, 95,102,117,110, 99,116,105,111,110,115, 32, 61, 32,123,125, 10, 95,116,111, 95,102,117,110, 99,116, 105,111,110,115, 32, 61, 32,123,125, 10, 10, 95, 98, 97,115, 101, 95,112,117,115,104, 95,102,117,110, 99,116,105,111,110, 115, 32, 61, 32,123,125, 10, 95, 98, 97,115,101, 95,105,115, 95,102,117,110, 99,116,105,111,110,115, 32, 61, 32,123,125, 10, 95, 98, 97,115,101, 95,116,111, 95,102,117,110, 99,116, 105,111,110,115, 32, 61, 32,123,125, 10, 10,108,111, 99, 97, 108, 32,102,117,110, 99,116,105,111,110, 32,115,101, 97,114, 99,104, 95, 98, 97,115,101, 40,116, 44, 32,102,117,110, 99, 115, 41, 10, 10, 9,108,111, 99, 97,108, 32, 99,108, 97,115, 115, 32, 61, 32, 95,103,108,111, 98, 97,108, 95, 99,108, 97, 115,115,101,115, 91,116, 93, 10, 10, 9,119,104,105,108,101, 32, 99,108, 97,115,115, 32,100,111, 10, 9, 9,105,102, 32, 102,117,110, 99,115, 91, 99,108, 97,115,115, 46,116,121,112, 101, 93, 32,116,104,101,110, 10, 9, 9, 9,114,101,116,117, 114,110, 32,102,117,110, 99,115, 91, 99,108, 97,115,115, 46, 116,121,112,101, 93, 10, 9, 9,101,110,100, 10, 9, 9, 99, 108, 97,115,115, 32, 61, 32, 95,103,108,111, 98, 97,108, 95, 99,108, 97,115,115,101,115, 91, 99,108, 97,115,115, 46, 98, 116,121,112,101, 93, 10, 9,101,110,100, 10, 9,114,101,116, 117,114,110, 32,110,105,108, 10,101,110,100, 10, 10,102,117, 110, 99,116,105,111,110, 32,103,101,116, 95,112,117,115,104, 95,102,117,110, 99,116,105,111,110, 40,116, 41, 10, 9,114, 101,116,117,114,110, 32, 95,112,117,115,104, 95,102,117,110, 99,116,105,111,110,115, 91,116, 93, 32,111,114, 32,115,101, 97,114, 99,104, 95, 98, 97,115,101, 40,116, 44, 32, 95, 98, 97,115,101, 95,112,117,115,104, 95,102,117,110, 99,116,105, 111,110,115, 41, 32,111,114, 32, 34,116,111,108,117, 97, 95, 112,117,115,104,117,115,101,114,116,121,112,101, 34, 10,101, 110,100, 10, 10,102,117,110, 99,116,105,111,110, 32,103,101, 116, 95,116,111, 95,102,117,110, 99,116,105,111,110, 40,116, 41, 10, 9,114,101,116,117,114,110, 32, 95,116,111, 95,102, 117,110, 99,116,105,111,110,115, 91,116, 93, 32,111,114, 32, 115,101, 97,114, 99,104, 95, 98, 97,115,101, 40,116, 44, 32, 95, 98, 97,115,101, 95,116,111, 95,102,117,110, 99,116,105, 111,110,115, 41, 32,111,114, 32, 34,116,111,108,117, 97, 95, 116,111,117,115,101,114,116,121,112,101, 34, 10,101,110,100, 10, 10,102,117,110, 99,116,105,111,110, 32,103,101,116, 95, 105,115, 95,102,117,110, 99,116,105,111,110, 40,116, 41, 10, 9,114,101,116,117,114,110, 32, 95,105,115, 95,102,117,110, 99,116,105,111,110,115, 91,116, 93, 32,111,114, 32,115,101, 97,114, 99,104, 95, 98, 97,115,101, 40,116, 44, 32, 95, 98, 97,115,101, 95,105,115, 95,102,117,110, 99,116,105,111,110, 115, 41, 32,111,114, 32, 34,116,111,108,117, 97, 95,105,115, 117,115,101,114,116,121,112,101, 34, 10,101,110,100,32 }; tolua_dobuffer(tolua_S,(char*)B,sizeof(B),"tolua embedded: src/bin/lua/basic.lua"); lua_settop(tolua_S, top); } /* end of embedded lua code */ { /* begin embedded lua code */ int top = lua_gettop(tolua_S); static unsigned char B[] = { 45, 45, 32,116,111,108,117, 97, 58, 32, 97, 98,115,116,114, 97, 99,116, 32,102,101, 97,116,117,114,101, 32, 99,108, 97, 115,115, 10, 45, 45, 32, 87,114,105,116,116,101,110, 32, 98, 121, 32, 87, 97,108,100,101,109, 97,114, 32, 67,101,108,101, 115, 10, 45, 45, 32, 84,101, 67, 71,114, 97,102, 47, 80, 85, 67, 45, 82,105,111, 10, 45, 45, 32, 74,117,108, 32, 49, 57, 57, 56, 10, 45, 45, 32, 36, 73,100, 58, 32, 36, 10, 10, 45, 45, 32, 84,104,105,115, 32, 99,111,100,101, 32,105,115, 32, 102,114,101,101, 32,115,111,102,116,119, 97,114,101, 59, 32, 121,111,117, 32, 99, 97,110, 32,114,101,100,105,115,116,114, 105, 98,117,116,101, 32,105,116, 32, 97,110,100, 47,111,114, 32,109,111,100,105,102,121, 32,105,116, 46, 10, 45, 45, 32, 84,104,101, 32,115,111,102,116,119, 97,114,101, 32,112,114, 111,118,105,100,101,100, 32,104,101,114,101,117,110,100,101, 114, 32,105,115, 32,111,110, 32, 97,110, 32, 34, 97,115, 32, 105,115, 34, 32, 98, 97,115,105,115, 44, 32, 97,110,100, 10, 45, 45, 32,116,104,101, 32, 97,117,116,104,111,114, 32,104, 97,115, 32,110,111, 32,111, 98,108,105,103, 97,116,105,111, 110, 32,116,111, 32,112,114,111,118,105,100,101, 32,109, 97, 105,110,116,101,110, 97,110, 99,101, 44, 32,115,117,112,112, 111,114,116, 44, 32,117,112,100, 97,116,101,115, 44, 10, 45, 45, 32,101,110,104, 97,110, 99,101,109,101,110,116,115, 44, 32,111,114, 32,109,111,100,105,102,105, 99, 97,116,105,111, 110,115, 46, 10, 10, 10, 45, 45, 32, 70,101, 97,116,117,114, 101, 32, 99,108, 97,115,115, 10, 45, 45, 32, 82,101,112,114, 101,115,101,110,116,115, 32,116,104,101, 32, 98, 97,115,101, 32, 99,108, 97,115,115, 32,111,102, 32, 97,108,108, 32,109, 97,112,112,101,100, 32,102,101, 97,116,117,114,101, 46, 10, 99,108, 97,115,115, 70,101, 97,116,117,114,101, 32, 61, 32, 123, 10,125, 10, 99,108, 97,115,115, 70,101, 97,116,117,114, 101, 46, 95, 95,105,110,100,101,120, 32, 61, 32, 99,108, 97, 115,115, 70,101, 97,116,117,114,101, 10, 10, 45, 45, 32,119, 114,105,116,101, 32,115,117,112,112,111,114,116, 32, 99,111, 100,101, 10,102,117,110, 99,116,105,111,110, 32, 99,108, 97, 115,115, 70,101, 97,116,117,114,101, 58,115,117,112, 99,111, 100,101, 32, 40, 41, 10,101,110,100, 10, 10, 45, 45, 32,111, 117,116,112,117,116, 32,116, 97,103, 10,102,117,110, 99,116, 105,111,110, 32, 99,108, 97,115,115, 70,101, 97,116,117,114, 101, 58,100,101, 99,108,116,121,112,101, 32, 40, 41, 10,101, 110,100, 10, 10, 45, 45, 32,114,101,103,105,115,116,101,114, 32,102,101, 97,116,117,114,101, 10,102,117,110, 99,116,105, 111,110, 32, 99,108, 97,115,115, 70,101, 97,116,117,114,101, 58,114,101,103,105,115,116,101,114, 32, 40,112,114,101, 41, 10,101,110,100, 10, 10, 45, 45, 32,116,114, 97,110,115,108, 97,116,101, 32,118,101,114, 98, 97,116,105,109, 10,102,117, 110, 99,116,105,111,110, 32, 99,108, 97,115,115, 70,101, 97, 116,117,114,101, 58,112,114,101, 97,109, 98,108,101, 32, 40, 41, 10,101,110,100, 10, 10, 45, 45, 32, 99,104,101, 99,107, 32,105,102, 32,105,116, 32,105,115, 32, 97, 32,118, 97,114, 105, 97, 98,108,101, 10,102,117,110, 99,116,105,111,110, 32, 99,108, 97,115,115, 70,101, 97,116,117,114,101, 58,105,115, 118, 97,114,105, 97, 98,108,101, 32, 40, 41, 10, 32,114,101, 116,117,114,110, 32,102, 97,108,115,101, 10,101,110,100, 10, 10, 45, 45, 32, 99,104,101, 99,107, 32,105,102, 32,105,116, 32,114,101,113,117,105,114,101,115, 32, 99,111,108,108,101, 99,116,105,111,110, 10,102,117,110, 99,116,105,111,110, 32, 99,108, 97,115,115, 70,101, 97,116,117,114,101, 58,114,101, 113,117,105,114,101, 99,111,108,108,101, 99,116,105,111,110, 32, 40,116, 41, 10, 32,114,101,116,117,114,110, 32,102, 97, 108,115,101, 10,101,110,100, 10, 10, 45, 45, 32, 98,117,105, 108,100, 32,110, 97,109,101,115, 10,102,117,110, 99,116,105, 111,110, 32, 99,108, 97,115,115, 70,101, 97,116,117,114,101, 58, 98,117,105,108,100,110, 97,109,101,115, 32, 40, 41, 10, 32,105,102, 32,115,101,108,102, 46,110, 97,109,101, 32, 97, 110,100, 32,115,101,108,102, 46,110, 97,109,101,126, 61, 39, 39, 32,116,104,101,110, 10, 32, 32,108,111, 99, 97,108, 32, 110, 32, 61, 32,115,112,108,105,116, 40,115,101,108,102, 46, 110, 97,109,101, 44, 39, 64, 39, 41, 10, 32, 32,115,101,108, 102, 46,110, 97,109,101, 32, 61, 32,110, 91, 49, 93, 10, 32, 32,115,101,108,102, 46,110, 97,109,101, 32, 61, 32,115,116, 114,105,110,103, 46,103,115,117, 98, 40,115,101,108,102, 46, 110, 97,109,101, 44, 32, 34, 58, 37,100, 42, 36, 34, 44, 32, 34, 34, 41, 10, 32, 32,105,102, 32,110,111,116, 32,110, 91, 50, 93, 32,116,104,101,110, 10, 32, 32, 32,110, 91, 50, 93, 32, 61, 32, 97,112,112,108,121,114,101,110, 97,109,105,110, 103, 40,110, 91, 49, 93, 41, 10, 32, 32,101,110,100, 10, 32, 32,115,101,108,102, 46,108,110, 97,109,101, 32, 61, 32,110, 91, 50, 93, 32,111,114, 32,103,115,117, 98, 40,110, 91, 49, 93, 44, 34, 37, 91, 46, 45, 37, 93, 34, 44, 34, 34, 41, 10, 32, 32,115,101,108,102, 46,108,110, 97,109,101, 32, 61, 32, 115,116,114,105,110,103, 46,103,115,117, 98, 40,115,101,108, 102, 46,108,110, 97,109,101, 44, 32, 34, 58, 37,100, 42, 36, 34, 44, 32, 34, 34, 41, 10, 32, 32,115,101,108,102, 46,111, 114,105,103,105,110, 97,108, 95,110, 97,109,101, 32, 61, 32, 115,101,108,102, 46,110, 97,109,101, 10, 32, 32,115,101,108, 102, 46,108,110, 97,109,101, 32, 61, 32, 99,108,101, 97,110, 95,116,101,109,112,108, 97,116,101, 40,115,101,108,102, 46, 108,110, 97,109,101, 41, 10, 32,101,110,100, 10, 32,105,102, 32,110,111,116, 32,115,101,108,102, 46,105,115, 95,112, 97, 114, 97,109,101,116,101,114, 32,116,104,101,110, 10, 9, 32, 115,101,108,102, 46,110, 97,109,101, 32, 61, 32,103,101,116, 111,110,108,121,110, 97,109,101,115,112, 97, 99,101, 40, 41, 32, 46, 46, 32,115,101,108,102, 46,110, 97,109,101, 10, 32, 101,110,100, 10, 10, 32,108,111, 99, 97,108, 32,112, 97,114, 101,110,116, 32, 61, 32, 99,108, 97,115,115, 67,111,110,116, 97,105,110,101,114, 46, 99,117,114,114, 10, 32,105,102, 32, 112, 97,114,101,110,116, 32,116,104,101,110, 10, 32, 9,115, 101,108,102, 46, 97, 99, 99,101,115,115, 32, 61, 32,112, 97, 114,101,110,116, 46, 99,117,114,114, 95,109,101,109, 98,101, 114, 95, 97, 99, 99,101,115,115, 10, 9,115,101,108,102, 46, 103,108,111, 98, 97,108, 95, 97, 99, 99,101,115,115, 32, 61, 32,115,101,108,102, 58, 99,104,101, 99,107, 95,112,117, 98, 108,105, 99, 95, 97, 99, 99,101,115,115, 40, 41, 10, 32,101, 108,115,101, 10, 32,101,110,100, 10,101,110,100, 10, 10,102, 117,110, 99,116,105,111,110, 32, 99,108, 97,115,115, 70,101, 97,116,117,114,101, 58, 99,104,101, 99,107, 95,112,117, 98, 108,105, 99, 95, 97, 99, 99,101,115,115, 40, 41, 10, 10, 9, 105,102, 32,116,121,112,101, 40,115,101,108,102, 46,103,108, 111, 98, 97,108, 95, 97, 99, 99,101,115,115, 41, 32, 61, 61, 32, 34, 98,111,111,108,101, 97,110, 34, 32,116,104,101,110, 10, 9, 9,114,101,116,117,114,110, 32,115,101,108,102, 46, 103,108,111, 98, 97,108, 95, 97, 99, 99,101,115,115, 10, 9, 101,110,100, 10, 10, 9,105,102, 32,115,101,108,102, 46, 97, 99, 99,101,115,115, 32, 97,110,100, 32,115,101,108,102, 46, 97, 99, 99,101,115,115, 32,126, 61, 32, 48, 32,116,104,101, 110, 10, 9, 9,114,101,116,117,114,110, 32,102, 97,108,115, 101, 10, 9,101,110,100, 10, 10, 9,108,111, 99, 97,108, 32, 112, 97,114,101,110,116, 32, 61, 32, 99,108, 97,115,115, 67, 111,110,116, 97,105,110,101,114, 46, 99,117,114,114, 10, 9, 119,104,105,108,101, 32,112, 97,114,101,110,116, 32,100,111, 10, 9, 9,105,102, 32,112, 97,114,101,110,116, 46, 97, 99, 99,101,115,115, 32, 97,110,100, 32,112, 97,114,101,110,116, 46, 97, 99, 99,101,115,115, 32,126, 61, 32, 48, 32,116,104, 101,110, 10, 9, 9, 9,114,101,116,117,114,110, 32,102, 97, 108,115,101, 10, 9, 9,101,110,100, 10, 9, 9,112, 97,114, 101,110,116, 32, 61, 32,112, 97,114,101,110,116, 46,112,114, 111,120, 10, 9,101,110,100, 10, 9,114,101,116,117,114,110, 32,116,114,117,101, 10,101,110,100, 10, 10,102,117,110, 99, 116,105,111,110, 32, 99,108,101, 97,110, 95,116,101,109,112, 108, 97,116,101, 40,116, 41, 10, 10, 9,114,101,116,117,114, 110, 32,115,116,114,105,110,103, 46,103,115,117, 98, 40,116, 44, 32, 34, 91, 60, 62, 58, 44, 32, 37, 42, 93, 34, 44, 32, 34, 95, 34, 41, 10,101,110,100, 10, 10, 45, 45, 32, 99,104, 101, 99,107, 32,105,102, 32,102,101, 97,116,117,114,101, 32, 105,115, 32,105,110,115,105,100,101, 32, 97, 32, 99,111,110, 116, 97,105,110,101,114, 32,100,101,102,105,110,105,116,105, 111,110, 10, 45, 45, 32,105,116, 32,114,101,116,117,114,110, 115, 32,116,104,101, 32, 99,111,110,116, 97,105,110,101,114, 32, 99,108, 97,115,115, 32,110, 97,109,101, 32,111,114, 32, 110,105,108, 46, 10,102,117,110, 99,116,105,111,110, 32, 99, 108, 97,115,115, 70,101, 97,116,117,114,101, 58,105,110, 99, 111,110,116, 97,105,110,101,114, 32, 40,119,104,105, 99,104, 41, 10, 32,105,102, 32,115,101,108,102, 46,112, 97,114,101, 110,116, 32,116,104,101,110, 10, 32, 32,108,111, 99, 97,108, 32,112, 97,114,101,110,116, 32, 61, 32,115,101,108,102, 46, 112, 97,114,101,110,116, 10, 32, 32,119,104,105,108,101, 32, 112, 97,114,101,110,116, 32,100,111, 10, 32, 32, 32,105,102, 32,112, 97,114,101,110,116, 46, 99,108, 97,115,115,116,121, 112,101, 32, 61, 61, 32,119,104,105, 99,104, 32,116,104,101, 110, 10, 32, 32, 32, 32,114,101,116,117,114,110, 32,112, 97, 114,101,110,116, 46,110, 97,109,101, 10, 32, 32, 32,101,110, 100, 10, 32, 32, 32,112, 97,114,101,110,116, 32, 61, 32,112, 97,114,101,110,116, 46,112, 97,114,101,110,116, 10, 32, 32, 101,110,100, 10, 32,101,110,100, 10, 32,114,101,116,117,114, 110, 32,110,105,108, 10,101,110,100, 10, 10,102,117,110, 99, 116,105,111,110, 32, 99,108, 97,115,115, 70,101, 97,116,117, 114,101, 58,105,110, 99,108, 97,115,115, 32, 40, 41, 10, 32, 114,101,116,117,114,110, 32,115,101,108,102, 58,105,110, 99, 111,110,116, 97,105,110,101,114, 40, 39, 99,108, 97,115,115, 39, 41, 10,101,110,100, 10, 10,102,117,110, 99,116,105,111, 110, 32, 99,108, 97,115,115, 70,101, 97,116,117,114,101, 58, 105,110,109,111,100,117,108,101, 32, 40, 41, 10, 32,114,101, 116,117,114,110, 32,115,101,108,102, 58,105,110, 99,111,110, 116, 97,105,110,101,114, 40, 39,109,111,100,117,108,101, 39, 41, 10,101,110,100, 10, 10,102,117,110, 99,116,105,111,110, 32, 99,108, 97,115,115, 70,101, 97,116,117,114,101, 58,105, 110,110, 97,109,101,115,112, 97, 99,101, 32, 40, 41, 10, 32, 114,101,116,117,114,110, 32,115,101,108,102, 58,105,110, 99, 111,110,116, 97,105,110,101,114, 40, 39,110, 97,109,101,115, 112, 97, 99,101, 39, 41, 10,101,110,100, 10, 10, 45, 45, 32, 114,101,116,117,114,110, 32, 67, 32, 98,105,110,100,105,110, 103, 32,102,117,110, 99,116,105,111,110, 32,110, 97,109,101, 32, 98, 97,115,101,100, 32,111,110, 32,110, 97,109,101, 10, 45, 45, 32,116,104,101, 32, 99,108,105,101,110,116, 32,115, 112,101, 99,105,102,105,101,115, 32, 97, 32,112,114,101,102, 105,120, 10,102,117,110, 99,116,105,111,110, 32, 99,108, 97, 115,115, 70,101, 97,116,117,114,101, 58, 99,102,117,110, 99, 110, 97,109,101, 32, 40,110, 41, 10, 10, 32,105,102, 32,115, 101,108,102, 46,112, 97,114,101,110,116, 32,116,104,101,110, 10, 32, 32,110, 32, 61, 32,115,101,108,102, 46,112, 97,114, 101,110,116, 58, 99,102,117,110, 99,110, 97,109,101, 40,110, 41, 10, 32,101,110,100, 10, 10, 32,108,111, 99, 97,108, 32, 102,110, 97,109,101, 32, 61, 32,115,101,108,102, 46,108,110, 97,109,101, 10, 32,105,102, 32,110,111,116, 32,102,110, 97, 109,101, 32,111,114, 32,102,110, 97,109,101, 32, 61, 61, 32, 39, 39, 32,116,104,101,110, 10, 32, 9,102,110, 97,109,101, 32, 61, 32,115,101,108,102, 46,110, 97,109,101, 10, 32,101, 110,100, 10, 32, 32,110, 32, 61, 32,115,116,114,105,110,103, 46,103,115,117, 98, 40,110, 46, 46, 39, 95, 39, 46, 46, 32, 40,102,110, 97,109,101, 41, 44, 32, 34, 91, 60, 62, 58, 44, 32, 92, 46, 37, 42, 38, 93, 34, 44, 32, 34, 95, 34, 41, 10, 10, 32, 32,114,101,116,117,114,110, 32,110, 10,101,110,100, 32 }; tolua_dobuffer(tolua_S,(char*)B,sizeof(B),"tolua embedded: src/bin/lua/feature.lua"); lua_settop(tolua_S, top); } /* end of embedded lua code */ { /* begin embedded lua code */ int top = lua_gettop(tolua_S); static unsigned char B[] = { 45, 45, 32,116,111,108,117, 97, 58, 32,118,101,114, 98, 97, 116,105,109, 32, 99,108, 97,115,115, 10, 45, 45, 32, 87,114, 105,116,116,101,110, 32, 98,121, 32, 87, 97,108,100,101,109, 97,114, 32, 67,101,108,101,115, 10, 45, 45, 32, 84,101, 67, 71,114, 97,102, 47, 80, 85, 67, 45, 82,105,111, 10, 45, 45, 32, 74,117,108, 32, 49, 57, 57, 56, 10, 45, 45, 32, 36, 73, 100, 58, 32,118,101,114, 98, 97,116,105,109, 46,108,117, 97, 44,118, 32, 49, 46, 51, 32, 50, 48, 48, 48, 47, 48, 49, 47, 50, 52, 32, 50, 48, 58, 52, 49, 58, 49, 54, 32, 99,101,108, 101,115, 32, 69,120,112, 32, 36, 10, 10, 45, 45, 32, 84,104, 105,115, 32, 99,111,100,101, 32,105,115, 32,102,114,101,101, 32,115,111,102,116,119, 97,114,101, 59, 32,121,111,117, 32, 99, 97,110, 32,114,101,100,105,115,116,114,105, 98,117,116, 101, 32,105,116, 32, 97,110,100, 47,111,114, 32,109,111,100, 105,102,121, 32,105,116, 46, 10, 45, 45, 32, 84,104,101, 32, 115,111,102,116,119, 97,114,101, 32,112,114,111,118,105,100, 101,100, 32,104,101,114,101,117,110,100,101,114, 32,105,115, 32,111,110, 32, 97,110, 32, 34, 97,115, 32,105,115, 34, 32, 98, 97,115,105,115, 44, 32, 97,110,100, 10, 45, 45, 32,116, 104,101, 32, 97,117,116,104,111,114, 32,104, 97,115, 32,110, 111, 32,111, 98,108,105,103, 97,116,105,111,110, 32,116,111, 32,112,114,111,118,105,100,101, 32,109, 97,105,110,116,101, 110, 97,110, 99,101, 44, 32,115,117,112,112,111,114,116, 44, 32,117,112,100, 97,116,101,115, 44, 10, 45, 45, 32,101,110, 104, 97,110, 99,101,109,101,110,116,115, 44, 32,111,114, 32, 109,111,100,105,102,105, 99, 97,116,105,111,110,115, 46, 10, 10, 10, 10, 45, 45, 32, 86,101,114, 98, 97,116,105,109, 32, 99,108, 97,115,115, 10, 45, 45, 32, 82,101,112,114,101,115, 101,110,116,115, 32, 97, 32,108,105,110,101, 32,116,114, 97, 110,115,108, 97,116,101,100, 32,100,105,114,101, 99,116,101, 100, 32,116,111, 32,116,104,101, 32, 98,105,110,100,105,110, 103, 32,102,105,108,101, 46, 10, 45, 45, 32, 84,104,101, 32, 102,111,108,108,111,119,105,110,103, 32,102,105,108,100,115, 32, 97,114,101, 32,115,116,111,114,101,100, 58, 10, 45, 45, 32, 32, 32,108,105,110,101, 32, 61, 32,108,105,110,101, 32, 116,101,120,116, 10, 99,108, 97,115,115, 86,101,114, 98, 97, 116,105,109, 32, 61, 32,123, 10, 32,108,105,110,101, 32, 61, 32, 39, 39, 44, 10, 9, 99,111,110,100, 32, 61, 32,110,105, 108, 44, 32, 32, 32, 32, 45, 45, 32, 99,111,110,100,105,116, 105,111,110, 58, 32,119,104,101,114,101, 32,116,111, 32,103, 101,110,101,114, 97,116,101, 32,116,104,101, 32, 99,111,100, 101, 32, 40,115, 61,115,117,112,111,114,116, 44, 32,114, 61, 114,101,103,105,115,116,101,114, 41, 10,125, 10, 99,108, 97, 115,115, 86,101,114, 98, 97,116,105,109, 46, 95, 95,105,110, 100,101,120, 32, 61, 32, 99,108, 97,115,115, 86,101,114, 98, 97,116,105,109, 10,115,101,116,109,101,116, 97,116, 97, 98, 108,101, 40, 99,108, 97,115,115, 86,101,114, 98, 97,116,105, 109, 44, 99,108, 97,115,115, 70,101, 97,116,117,114,101, 41, 10, 10, 45, 45, 32,112,114,101, 97,109, 98,108,101, 32,118, 101,114, 98, 97,116,105,109, 10,102,117,110, 99,116,105,111, 110, 32, 99,108, 97,115,115, 86,101,114, 98, 97,116,105,109, 58,112,114,101, 97,109, 98,108,101, 32, 40, 41, 10, 32,105, 102, 32,115,101,108,102, 46, 99,111,110,100, 32, 61, 61, 32, 39, 39, 32,116,104,101,110, 10, 32, 32,119,114,105,116,101, 40,115,101,108,102, 46,108,105,110,101, 41, 10, 32,101,110, 100, 10,101,110,100, 10, 10, 45, 45, 32,115,117,112,112,111, 114,116, 32, 99,111,100,101, 10,102,117,110, 99,116,105,111, 110, 32, 99,108, 97,115,115, 86,101,114, 98, 97,116,105,109, 58,115,117,112, 99,111,100,101, 32, 40, 41, 10, 32,105,102, 32,115,116,114,102,105,110,100, 40,115,101,108,102, 46, 99, 111,110,100, 44, 39,115, 39, 41, 32,116,104,101,110, 10, 32, 32,119,114,105,116,101, 40,115,101,108,102, 46,108,105,110, 101, 41, 10, 32, 32,119,114,105,116,101, 40, 39, 92,110, 39, 41, 10, 32,101,110,100, 10,101,110,100, 10, 10, 45, 45, 32, 114,101,103,105,115,116,101,114, 32, 99,111,100,101, 10,102, 117,110, 99,116,105,111,110, 32, 99,108, 97,115,115, 86,101, 114, 98, 97,116,105,109, 58,114,101,103,105,115,116,101,114, 32, 40,112,114,101, 41, 10, 32,105,102, 32,115,116,114,102, 105,110,100, 40,115,101,108,102, 46, 99,111,110,100, 44, 39, 114, 39, 41, 32,116,104,101,110, 10, 32, 32,119,114,105,116, 101, 40,115,101,108,102, 46,108,105,110,101, 41, 10, 32,101, 110,100, 10,101,110,100, 10, 10, 10, 45, 45, 32, 80,114,105, 110,116, 32,109,101,116,104,111,100, 10,102,117,110, 99,116, 105,111,110, 32, 99,108, 97,115,115, 86,101,114, 98, 97,116, 105,109, 58,112,114,105,110,116, 32, 40,105,100,101,110,116, 44, 99,108,111,115,101, 41, 10, 32,112,114,105,110,116, 40, 105,100,101,110,116, 46, 46, 34, 86,101,114, 98, 97,116,105, 109,123, 34, 41, 10, 32,112,114,105,110,116, 40,105,100,101, 110,116, 46, 46, 34, 32,108,105,110,101, 32, 61, 32, 39, 34, 46, 46,115,101,108,102, 46,108,105,110,101, 46, 46, 34, 39, 44, 34, 41, 10, 32,112,114,105,110,116, 40,105,100,101,110, 116, 46, 46, 34,125, 34, 46, 46, 99,108,111,115,101, 41, 10, 101,110,100, 10, 10, 10, 45, 45, 32, 73,110,116,101,114,110, 97,108, 32, 99,111,110,115,116,114,117, 99,116,111,114, 10, 102,117,110, 99,116,105,111,110, 32, 95, 86,101,114, 98, 97, 116,105,109, 32, 40,116, 41, 10, 32,115,101,116,109,101,116, 97,116, 97, 98,108,101, 40,116, 44, 99,108, 97,115,115, 86, 101,114, 98, 97,116,105,109, 41, 10, 32, 97,112,112,101,110, 100, 40,116, 41, 10, 32,114,101,116,117,114,110, 32,116, 10, 101,110,100, 10, 10, 45, 45, 32, 67,111,110,115,116,114,117, 99,116,111,114, 10, 45, 45, 32, 69,120,112,101, 99,116,115, 32, 97, 32,115,116,114,105,110,103, 32,114,101,112,114,101, 115,101,110,116,105,110,103, 32,116,104,101, 32,116,101,120, 116, 32,108,105,110,101, 10,102,117,110, 99,116,105,111,110, 32, 86,101,114, 98, 97,116,105,109, 32, 40,108, 44, 99,111, 110,100, 41, 10, 32,105,102, 32,115,116,114,115,117, 98, 40, 108, 44, 49, 44, 49, 41, 32, 61, 61, 32, 34, 39, 34, 32,116, 104,101,110, 10, 32, 32,108, 32, 61, 32,115,116,114,115,117, 98, 40,108, 44, 50, 41, 10, 32,101,108,115,101,105,102, 32, 115,116,114,115,117, 98, 40,108, 44, 49, 44, 49, 41, 32, 61, 61, 32, 39, 36, 39, 32,116,104,101,110, 10, 32, 32, 99,111, 110,100, 32, 61, 32, 39,115,114, 39, 32, 32, 32, 32, 32, 32, 32, 45, 45, 32,103,101,110,101,114, 97,116,101,115, 32,105, 110, 32, 98,111,116,104, 32,115,117,112,111,114,116, 32, 97, 110,100, 32,114,101,103,105,115,116,101,114, 32,102,114, 97, 103,109,101,110,116,115, 10, 32, 32,108, 32, 61, 32,115,116, 114,115,117, 98, 40,108, 44, 50, 41, 10, 32,101,110,100, 10, 32,114,101,116,117,114,110, 32, 95, 86,101,114, 98, 97,116, 105,109, 32,123, 10, 32, 32,108,105,110,101, 32, 61, 32,108, 44, 10, 32, 32, 99,111,110,100, 32, 61, 32, 99,111,110,100, 32,111,114, 32, 39, 39, 44, 10, 32,125, 10,101,110,100,32 }; tolua_dobuffer(tolua_S,(char*)B,sizeof(B),"tolua embedded: src/bin/lua/verbatim.lua"); lua_settop(tolua_S, top); } /* end of embedded lua code */ { /* begin embedded lua code */ int top = lua_gettop(tolua_S); static unsigned char B[] = { 45, 45, 32,116,111,108,117, 97, 58, 32, 99,111,100,101, 32, 99,108, 97,115,115, 10, 45, 45, 32, 87,114,105,116,116,101, 110, 32, 98,121, 32, 87, 97,108,100,101,109, 97,114, 32, 67, 101,108,101,115, 10, 45, 45, 32, 84,101, 67, 71,114, 97,102, 47, 80, 85, 67, 45, 82,105,111, 10, 45, 45, 32, 74,117,108, 32, 49, 57, 57, 57, 10, 45, 45, 32, 36, 73,100, 58, 32, 36, 10, 10, 45, 45, 32, 84,104,105,115, 32, 99,111,100,101, 32, 105,115, 32,102,114,101,101, 32,115,111,102,116,119, 97,114, 101, 59, 32,121,111,117, 32, 99, 97,110, 32,114,101,100,105, 115,116,114,105, 98,117,116,101, 32,105,116, 32, 97,110,100, 47,111,114, 32,109,111,100,105,102,121, 32,105,116, 46, 10, 45, 45, 32, 84,104,101, 32,115,111,102,116,119, 97,114,101, 32,112,114,111,118,105,100,101,100, 32,104,101,114,101,117, 110,100,101,114, 32,105,115, 32,111,110, 32, 97,110, 32, 34, 97,115, 32,105,115, 34, 32, 98, 97,115,105,115, 44, 32, 97, 110,100, 10, 45, 45, 32,116,104,101, 32, 97,117,116,104,111, 114, 32,104, 97,115, 32,110,111, 32,111, 98,108,105,103, 97, 116,105,111,110, 32,116,111, 32,112,114,111,118,105,100,101, 32,109, 97,105,110,116,101,110, 97,110, 99,101, 44, 32,115, 117,112,112,111,114,116, 44, 32,117,112,100, 97,116,101,115, 44, 10, 45, 45, 32,101,110,104, 97,110, 99,101,109,101,110, 116,115, 44, 32,111,114, 32,109,111,100,105,102,105, 99, 97, 116,105,111,110,115, 46, 10, 10, 45, 45, 32,103,108,111, 98, 97,108, 10, 99,111,100,101, 95,110, 32, 61, 32, 49, 10, 10, 45, 45, 32, 67,111,100,101, 32, 99,108, 97,115,115, 10, 45, 45, 32, 82,101,112,114,101,115,101,110,116,115, 32, 76,117, 97, 32, 99,111,100,101, 32,116,111, 32, 98,101, 32, 99,111, 109,112,105,108,101,100, 32, 97,110,100, 32,105,110, 99,108, 117,100,101,100, 10, 45, 45, 32,105,110, 32,116,104,101, 32, 105,110,105,116,105, 97,108,105,122, 97,116,105,111,110, 32, 102,117,110, 99,116,105,111,110, 46, 10, 45, 45, 32, 84,104, 101, 32,102,111,108,108,111,119,105,110,103, 32,102,105,101, 108,100,115, 32, 97,114,101, 32,115,116,111,114,101,100, 58, 10, 45, 45, 32, 32, 32,116,101,120,116, 32, 61, 32,116,101, 120,116, 32, 99,111,100,101, 10, 99,108, 97,115,115, 67,111, 100,101, 32, 61, 32,123, 10, 32,116,101,120,116, 32, 61, 32, 39, 39, 44, 10,125, 10, 99,108, 97,115,115, 67,111,100,101, 46, 95, 95,105,110,100,101,120, 32, 61, 32, 99,108, 97,115, 115, 67,111,100,101, 10,115,101,116,109,101,116, 97,116, 97, 98,108,101, 40, 99,108, 97,115,115, 67,111,100,101, 44, 99, 108, 97,115,115, 70,101, 97,116,117,114,101, 41, 10, 10, 45, 45, 32,114,101,103,105,115,116,101,114, 32, 99,111,100,101, 10,102,117,110, 99,116,105,111,110, 32, 99,108, 97,115,115, 67,111,100,101, 58,114,101,103,105,115,116,101,114, 32, 40, 112,114,101, 41, 10, 32,112,114,101, 32, 61, 32,112,114,101, 32,111,114, 32, 39, 39, 10, 32, 45, 45, 32, 99,108,101, 97, 110, 32, 76,117, 97, 32, 99,111,100,101, 10, 32,108,111, 99, 97,108, 32,115, 32, 61, 32, 99,108,101, 97,110, 40,115,101, 108,102, 46,116,101,120,116, 41, 10, 32,105,102, 32,110,111, 116, 32,115, 32,116,104,101,110, 10, 32, 32, 45, 45,112,114, 105,110,116, 40,115,101,108,102, 46,116,101,120,116, 41, 10, 32, 32,101,114,114,111,114, 40, 34,112, 97,114,115,101,114, 32,101,114,114,111,114, 32,105,110, 32,101,109, 98,101,100, 100,101,100, 32, 99,111,100,101, 34, 41, 10, 32,101,110,100, 10, 10, 32, 45, 45, 32,103,101,116, 32,102,105,114,115,116, 32,108,105,110,101, 10, 32,108,111, 99, 97,108, 32, 95, 44, 32, 95, 44, 32,102,105,114,115,116, 95,108,105,110,101, 61, 115,116,114,105,110,103, 46,102,105,110,100, 40,115,101,108, 102, 46,116,101,120,116, 44, 32, 34, 94, 40, 91, 94, 92,110, 92,114, 93, 42, 41, 34, 41, 10, 32,105,102, 32,115,116,114, 105,110,103, 46,102,105,110,100, 40,102,105,114,115,116, 95, 108,105,110,101, 44, 32, 34, 94, 37,115, 42, 37, 45, 37, 45, 34, 41, 32,116,104,101,110, 10, 9, 32,105,102, 32,115,116, 114,105,110,103, 46,102,105,110,100, 40,102,105,114,115,116, 95,108,105,110,101, 44, 32, 34, 94, 37, 45, 37, 45, 35, 35, 34, 41, 32,116,104,101,110, 10, 9, 9,102,105,114,115,116, 95,108,105,110,101, 32, 61, 32,115,116,114,105,110,103, 46, 103,115,117, 98, 40,102,105,114,115,116, 95,108,105,110,101, 44, 32, 34, 94, 37, 45, 37, 45, 35, 35, 34, 44, 32, 34, 34, 41, 10, 9, 9,105,102, 32,102,108, 97,103,115, 91, 39, 67, 39, 93, 32,116,104,101,110, 10, 9, 9, 9,115, 32, 61, 32, 115,116,114,105,110,103, 46,103,115,117, 98, 40,115, 44, 32, 34, 94, 37, 45, 37, 45, 35, 35, 91, 94, 92,110, 92,114, 93, 42, 92,110, 34, 44, 32, 34, 34, 41, 10, 9, 9,101,110,100, 10, 9, 32,101,110,100, 10, 32,101,108,115,101, 10, 32, 9, 102,105,114,115,116, 95,108,105,110,101, 32, 61, 32, 34, 34, 10, 32,101,110,100, 10, 10, 32, 45, 45, 32,112, 97,100, 32, 116,111, 32, 49, 54, 32, 98,121,116,101,115, 10, 32,108,111, 99, 97,108, 32,110,112, 97,100, 32, 61, 32, 49, 54, 32, 45, 32, 40, 35,115, 32, 37, 32, 49, 54, 41, 10, 32,108,111, 99, 97,108, 32,115,112, 97,100, 32, 61, 32, 34, 34, 10, 32,102, 111,114, 32,105, 61, 49, 44,110,112, 97,100, 32,100,111, 10, 32, 9,115,112, 97,100, 32, 61, 32,115,112, 97,100, 32, 46, 46, 32, 34, 45, 34, 10, 32,101,110,100, 10, 32,115, 32, 61, 32,115, 46, 46,115,112, 97,100, 10, 32, 10, 32, 45, 45, 32, 99,111,110,118,101,114,116, 32,116,111, 32, 67, 10, 32,111, 117,116,112,117,116, 40, 39, 92,110, 39, 46, 46,112,114,101, 46, 46, 39,123, 32, 47, 42, 32, 98,101,103,105,110, 32,101, 109, 98,101,100,100,101,100, 32,108,117, 97, 32, 99,111,100, 101, 32, 42, 47, 92,110, 39, 41, 10, 32,111,117,116,112,117, 116, 40,112,114,101, 46, 46, 39, 32,105,110,116, 32,116,111, 112, 32, 61, 32,108,117, 97, 95,103,101,116,116,111,112, 40, 116,111,108,117, 97, 95, 83, 41, 59, 39, 41, 10, 32,111,117, 116,112,117,116, 40,112,114,101, 46, 46, 39, 32,115,116, 97, 116,105, 99, 32, 99,111,110,115,116, 32,117,110,115,105,103, 110,101,100, 32, 99,104, 97,114, 32, 66, 91, 93, 32, 61, 32, 123, 92,110, 32, 32, 32, 39, 41, 10, 32,108,111, 99, 97,108, 32,116, 61,123,110, 61, 48,125, 10, 10, 32,108,111, 99, 97, 108, 32, 98, 32, 61, 32,103,115,117, 98, 40,115, 44, 39, 40, 46, 41, 39, 44,102,117,110, 99,116,105,111,110, 32, 40, 99, 41, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32,108,111, 99, 97,108, 32,101, 32, 61, 32, 39, 39, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32,116, 46,110, 61,116, 46,110, 43, 49, 32, 105,102, 32,116, 46,110, 61, 61, 49, 53, 32,116,104,101,110, 32,116, 46,110, 61, 48, 32,101, 61, 39, 92,110, 39, 46, 46, 112,114,101, 46, 46, 39, 32, 32, 39, 32,101,110,100, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32,114,101,116,117,114,110, 32,102,111,114,109, 97,116, 40, 39, 37, 51,117, 44, 37,115, 39, 44,115,116,114, 98,121,116,101, 40, 99, 41, 44,101, 41, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32,101,110,100, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 41, 10, 32,111,117,116,112,117,116, 40, 98, 46, 46,115,116,114, 98,121,116,101, 40, 34, 32, 34, 41, 41, 10, 32,111,117,116, 112,117,116, 40, 39, 92,110, 39, 46, 46,112,114,101, 46, 46, 39, 32,125, 59, 92,110, 39, 41, 10, 32,105,102, 32,102,105, 114,115,116, 95,108,105,110,101, 32, 97,110,100, 32,102,105, 114,115,116, 95,108,105,110,101, 32,126, 61, 32, 34, 34, 32, 116,104,101,110, 10, 32, 9,111,117,116,112,117,116, 40,112, 114,101, 46, 46, 39, 32,116,111,108,117, 97, 95,100,111, 98, 117,102,102,101,114, 40,116,111,108,117, 97, 95, 83, 44, 40, 99,104, 97,114, 42, 41, 66, 44,115,105,122,101,111,102, 40, 66, 41, 44, 34,116,111,108,117, 97, 32,101,109, 98,101,100, 100,101,100, 58, 32, 39, 46, 46,102,105,114,115,116, 95,108, 105,110,101, 46, 46, 39, 34, 41, 59, 39, 41, 10, 32,101,108, 115,101, 10, 32, 9,111,117,116,112,117,116, 40,112,114,101, 46, 46, 39, 32,116,111,108,117, 97, 95,100,111, 98,117,102, 102,101,114, 40,116,111,108,117, 97, 95, 83, 44, 40, 99,104, 97,114, 42, 41, 66, 44,115,105,122,101,111,102, 40, 66, 41, 44, 34,116,111,108,117, 97, 58, 32,101,109, 98,101,100,100, 101,100, 32, 76,117, 97, 32, 99,111,100,101, 32, 39, 46, 46, 99,111,100,101, 95,110, 46, 46, 39, 34, 41, 59, 39, 41, 10, 32,101,110,100, 10, 32,111,117,116,112,117,116, 40,112,114, 101, 46, 46, 39, 32,108,117, 97, 95,115,101,116,116,111,112, 40,116,111,108,117, 97, 95, 83, 44, 32,116,111,112, 41, 59, 39, 41, 10, 32,111,117,116,112,117,116, 40,112,114,101, 46, 46, 39,125, 32, 47, 42, 32,101,110,100, 32,111,102, 32,101, 109, 98,101,100,100,101,100, 32,108,117, 97, 32, 99,111,100, 101, 32, 42, 47, 92,110, 92,110, 39, 41, 10, 32, 99,111,100, 101, 95,110, 32, 61, 32, 99,111,100,101, 95,110, 32, 43, 49, 10,101,110,100, 10, 10, 10, 45, 45, 32, 80,114,105,110,116, 32,109,101,116,104,111,100, 10,102,117,110, 99,116,105,111, 110, 32, 99,108, 97,115,115, 67,111,100,101, 58,112,114,105, 110,116, 32, 40,105,100,101,110,116, 44, 99,108,111,115,101, 41, 10, 32,112,114,105,110,116, 40,105,100,101,110,116, 46, 46, 34, 67,111,100,101,123, 34, 41, 10, 32,112,114,105,110, 116, 40,105,100,101,110,116, 46, 46, 34, 32,116,101,120,116, 32, 61, 32, 91, 91, 34, 46, 46,115,101,108,102, 46,116,101, 120,116, 46, 46, 34, 93, 93, 44, 34, 41, 10, 32,112,114,105, 110,116, 40,105,100,101,110,116, 46, 46, 34,125, 34, 46, 46, 99,108,111,115,101, 41, 10,101,110,100, 10, 10, 10, 45, 45, 32, 73,110,116,101,114,110, 97,108, 32, 99,111,110,115,116, 114,117, 99,116,111,114, 10,102,117,110, 99,116,105,111,110, 32, 95, 67,111,100,101, 32, 40,116, 41, 10, 32,115,101,116, 109,101,116, 97,116, 97, 98,108,101, 40,116, 44, 99,108, 97, 115,115, 67,111,100,101, 41, 10, 32, 97,112,112,101,110,100, 40,116, 41, 10, 32,114,101,116,117,114,110, 32,116, 10,101, 110,100, 10, 10, 45, 45, 32, 67,111,110,115,116,114,117, 99, 116,111,114, 10, 45, 45, 32, 69,120,112,101, 99,116,115, 32, 97, 32,115,116,114,105,110,103, 32,114,101,112,114,101,115, 101,110,116,105,110,103, 32,116,104,101, 32, 99,111,100,101, 32,116,101,120,116, 10,102,117,110, 99,116,105,111,110, 32, 67,111,100,101, 32, 40,108, 41, 10, 32,114,101,116,117,114, 110, 32, 95, 67,111,100,101, 32,123, 10, 32, 32,116,101,120, 116, 32, 61, 32,108, 10, 32,125, 10,101,110,100,32 }; tolua_dobuffer(tolua_S,(char*)B,sizeof(B),"tolua embedded: src/bin/lua/code.lua"); lua_settop(tolua_S, top); } /* end of embedded lua code */ { /* begin embedded lua code */ int top = lua_gettop(tolua_S); static unsigned char B[] = { 45, 45, 32,116,111,108,117, 97, 58, 32,116,121,112,101,100, 101,102, 32, 99,108, 97,115,115, 10, 45, 45, 32, 87,114,105, 116,116,101,110, 32, 98,121, 32, 87, 97,108,100,101,109, 97, 114, 32, 67,101,108,101,115, 10, 45, 45, 32, 84,101, 67, 71, 114, 97,102, 47, 80, 85, 67, 45, 82,105,111, 10, 45, 45, 32, 74,117,108, 32, 49, 57, 57, 56, 10, 45, 45, 32, 36, 73,100, 58, 32, 36, 10, 10, 45, 45, 32, 84,104,105,115, 32, 99,111, 100,101, 32,105,115, 32,102,114,101,101, 32,115,111,102,116, 119, 97,114,101, 59, 32,121,111,117, 32, 99, 97,110, 32,114, 101,100,105,115,116,114,105, 98,117,116,101, 32,105,116, 32, 97,110,100, 47,111,114, 32,109,111,100,105,102,121, 32,105, 116, 46, 10, 45, 45, 32, 84,104,101, 32,115,111,102,116,119, 97,114,101, 32,112,114,111,118,105,100,101,100, 32,104,101, 114,101,117,110,100,101,114, 32,105,115, 32,111,110, 32, 97, 110, 32, 34, 97,115, 32,105,115, 34, 32, 98, 97,115,105,115, 44, 32, 97,110,100, 10, 45, 45, 32,116,104,101, 32, 97,117, 116,104,111,114, 32,104, 97,115, 32,110,111, 32,111, 98,108, 105,103, 97,116,105,111,110, 32,116,111, 32,112,114,111,118, 105,100,101, 32,109, 97,105,110,116,101,110, 97,110, 99,101, 44, 32,115,117,112,112,111,114,116, 44, 32,117,112,100, 97, 116,101,115, 44, 10, 45, 45, 32,101,110,104, 97,110, 99,101, 109,101,110,116,115, 44, 32,111,114, 32,109,111,100,105,102, 105, 99, 97,116,105,111,110,115, 46, 10, 10, 10, 10, 45, 45, 32, 84,121,112,101,100,101,102, 32, 99,108, 97,115,115, 10, 45, 45, 32, 82,101,112,114,101,115,101,110,116,115, 32, 97, 32,116,121,112,101, 32,115,121,110,111,110,121,109, 46, 10, 45, 45, 32, 84,104,101, 32, 39,100,101, 32,102, 97, 99,116, 111, 39, 32,116,121,112,101, 32,114,101,112,108, 97, 99,101, 115, 32,116,104,101, 32,116,121,112,101,100,101,102, 32, 98, 101,102,111,114,101, 32,116,104,101, 10, 45, 45, 32,114,101, 109, 97,105,110,105,110,103, 32, 99,111,100,101, 32,105,115, 32,112, 97,114,115,101,100, 46, 10, 45, 45, 32, 84,104,101, 32,102,111,108,108,111,119,105,110,103, 32,102,105,101,108, 100,115, 32, 97,114,101, 32,115,116,111,114,101,100, 58, 10, 45, 45, 32, 32, 32,117,116,121,112,101, 32, 61, 32,116,121, 112,101,100,101,102, 32,110, 97,109,101, 10, 45, 45, 32, 32, 32,116,121,112,101, 32, 61, 32, 39,116,104,101, 32,102, 97, 99,116,111, 39, 32,116,121,112,101, 10, 45, 45, 32, 32, 32, 109,111,100, 32, 61, 32,109,111,100,105,102,105,101,114,115, 32,116,111, 32,116,104,101, 32, 39,100,101, 32,102, 97, 99, 116,111, 39, 32,116,121,112,101, 10, 99,108, 97,115,115, 84, 121,112,101,100,101,102, 32, 61, 32,123, 10, 32,117,116,121, 112,101, 32, 61, 32, 39, 39, 44, 10, 32,109,111,100, 32, 61, 32, 39, 39, 44, 10, 32,116,121,112,101, 32, 61, 32, 39, 39, 10,125, 10, 99,108, 97,115,115, 84,121,112,101,100,101,102, 46, 95, 95,105,110,100,101,120, 32, 61, 32, 99,108, 97,115, 115, 84,121,112,101,100,101,102, 10, 10, 45, 45, 32, 80,114, 105,110,116, 32,109,101,116,104,111,100, 10,102,117,110, 99, 116,105,111,110, 32, 99,108, 97,115,115, 84,121,112,101,100, 101,102, 58,112,114,105,110,116, 32, 40,105,100,101,110,116, 44, 99,108,111,115,101, 41, 10, 32,112,114,105,110,116, 40, 105,100,101,110,116, 46, 46, 34, 84,121,112,101,100,101,102, 123, 34, 41, 10, 32,112,114,105,110,116, 40,105,100,101,110, 116, 46, 46, 34, 32,117,116,121,112,101, 32, 61, 32, 39, 34, 46, 46,115,101,108,102, 46,117,116,121,112,101, 46, 46, 34, 39, 44, 34, 41, 10, 32,112,114,105,110,116, 40,105,100,101, 110,116, 46, 46, 34, 32,109,111,100, 32, 61, 32, 39, 34, 46, 46,115,101,108,102, 46,109,111,100, 46, 46, 34, 39, 44, 34, 41, 10, 32,112,114,105,110,116, 40,105,100,101,110,116, 46, 46, 34, 32,116,121,112,101, 32, 61, 32, 39, 34, 46, 46,115, 101,108,102, 46,116,121,112,101, 46, 46, 34, 39, 44, 34, 41, 10, 32,112,114,105,110,116, 40,105,100,101,110,116, 46, 46, 34,125, 34, 46, 46, 99,108,111,115,101, 41, 10,101,110,100, 10, 10, 45, 45, 32, 82,101,116,117,114,110, 32,105,116, 39, 115, 32,110,111,116, 32, 97, 32,118, 97,114,105, 97, 98,108, 101, 10,102,117,110, 99,116,105,111,110, 32, 99,108, 97,115, 115, 84,121,112,101,100,101,102, 58,105,115,118, 97,114,105, 97, 98,108,101, 32, 40, 41, 10, 32,114,101,116,117,114,110, 32,102, 97,108,115,101, 10,101,110,100, 10, 10, 45, 45, 32, 73,110,116,101,114,110, 97,108, 32, 99,111,110,115,116,114, 117, 99,116,111,114, 10,102,117,110, 99,116,105,111,110, 32, 95, 84,121,112,101,100,101,102, 32, 40,116, 41, 10, 32,115, 101,116,109,101,116, 97,116, 97, 98,108,101, 40,116, 44, 99, 108, 97,115,115, 84,121,112,101,100,101,102, 41, 10, 32,116, 46,116,121,112,101, 32, 61, 32,114,101,115,111,108,118,101, 95,116,101,109,112,108, 97,116,101, 95,116,121,112,101,115, 40,116, 46,116,121,112,101, 41, 10, 32, 97,112,112,101,110, 100,116,121,112,101,100,101,102, 40,116, 41, 10, 32,114,101, 116,117,114,110, 32,116, 10,101,110,100, 10, 10, 45, 45, 32, 67,111,110,115,116,114,117, 99,116,111,114, 10, 45, 45, 32, 69,120,112,101, 99,116,115, 32,111,110,101, 32,115,116,114, 105,110,103, 32,114,101,112,114,101,115,101,110,116,105,110, 103, 32,116,104,101, 32,116,121,112,101, 32,100,101,102,105, 110,105,116,105,111,110, 46, 10,102,117,110, 99,116,105,111, 110, 32, 84,121,112,101,100,101,102, 32, 40,115, 41, 10, 32, 105,102, 32,115,116,114,102,105,110,100, 40,115,116,114,105, 110,103, 46,103,115,117, 98, 40,115, 44, 32, 39, 37, 98, 60, 62, 39, 44, 32, 39, 39, 41, 44, 39, 91, 37, 42, 38, 93, 39, 41, 32,116,104,101,110, 10, 32, 32,116,111,108,117, 97, 95, 101,114,114,111,114, 40, 34, 35,105,110,118, 97,108,105,100, 32,116,121,112,101,100,101,102, 58, 32,112,111,105,110,116, 101,114,115, 32, 40, 97,110,100, 32,114,101,102,101,114,101, 110, 99,101,115, 41, 32, 97,114,101, 32,110,111,116, 32,115, 117,112,112,111,114,116,101,100, 34, 41, 10, 32,101,110,100, 10, 32,108,111, 99, 97,108, 32,111, 32, 61, 32,123,109,111, 100, 32, 61, 32, 39, 39,125, 10, 32,105,102, 32,115,116,114, 105,110,103, 46,102,105,110,100, 40,115, 44, 32, 34, 91, 60, 62, 93, 34, 41, 32,116,104,101,110, 10, 32, 9, 95, 44, 95, 44,111, 46,116,121,112,101, 44,111, 46,117,116,121,112,101, 32, 61, 32,115,116,114,105,110,103, 46,102,105,110,100, 40, 115, 44, 32, 34, 94, 37,115, 42, 40, 91, 94, 60, 62, 93, 43, 37, 98, 60, 62, 91, 94, 37,115, 93, 42, 41, 37,115, 43, 40, 46, 45, 41, 36, 34, 41, 10, 32,101,108,115,101, 10, 32, 9, 108,111, 99, 97,108, 32,116, 32, 61, 32,115,112,108,105,116, 40,103,115,117, 98, 40,115, 44, 34, 37,115, 37,115, 42, 34, 44, 34, 32, 34, 41, 44, 34, 32, 34, 41, 10, 32, 9,111, 32, 61, 32,123, 10, 9, 32, 32,117,116,121,112,101, 32, 61, 32, 116, 91,116, 46,110, 93, 44, 10, 9, 32, 32,116,121,112,101, 32, 61, 32,116, 91,116, 46,110, 45, 49, 93, 44, 10, 9, 32, 32,109,111,100, 32, 61, 32, 99,111,110, 99, 97,116, 40,116, 44, 49, 44,116, 46,110, 45, 50, 41, 44, 10, 9, 32,125, 10, 32,101,110,100, 10, 32,114,101,116,117,114,110, 32, 95, 84, 121,112,101,100,101,102, 40,111, 41, 10,101,110,100,32 }; tolua_dobuffer(tolua_S,(char*)B,sizeof(B),"tolua embedded: src/bin/lua/typedef.lua"); lua_settop(tolua_S, top); } /* end of embedded lua code */ { /* begin embedded lua code */ int top = lua_gettop(tolua_S); static unsigned char B[] = { 45, 45, 32,116,111,108,117, 97, 58, 32, 99,111,110,116, 97, 105,110,101,114, 32, 97, 98,115,116,114, 97, 99,116, 32, 99, 108, 97,115,115, 10, 45, 45, 32, 87,114,105,116,116,101,110, 32, 98,121, 32, 87, 97,108,100,101,109, 97,114, 32, 67,101, 108,101,115, 10, 45, 45, 32, 84,101, 67, 71,114, 97,102, 47, 80, 85, 67, 45, 82,105,111, 10, 45, 45, 32, 74,117,108, 32, 49, 57, 57, 56, 10, 45, 45, 32, 36, 73,100, 58, 32, 36, 10, 10, 45, 45, 32, 84,104,105,115, 32, 99,111,100,101, 32,105, 115, 32,102,114,101,101, 32,115,111,102,116,119, 97,114,101, 59, 32,121,111,117, 32, 99, 97,110, 32,114,101,100,105,115, 116,114,105, 98,117,116,101, 32,105,116, 32, 97,110,100, 47, 111,114, 32,109,111,100,105,102,121, 32,105,116, 46, 10, 45, 45, 32, 84,104,101, 32,115,111,102,116,119, 97,114,101, 32, 112,114,111,118,105,100,101,100, 32,104,101,114,101,117,110, 100,101,114, 32,105,115, 32,111,110, 32, 97,110, 32, 34, 97, 115, 32,105,115, 34, 32, 98, 97,115,105,115, 44, 32, 97,110, 100, 10, 45, 45, 32,116,104,101, 32, 97,117,116,104,111,114, 32,104, 97,115, 32,110,111, 32,111, 98,108,105,103, 97,116, 105,111,110, 32,116,111, 32,112,114,111,118,105,100,101, 32, 109, 97,105,110,116,101,110, 97,110, 99,101, 44, 32,115,117, 112,112,111,114,116, 44, 32,117,112,100, 97,116,101,115, 44, 10, 45, 45, 32,101,110,104, 97,110, 99,101,109,101,110,116, 115, 44, 32,111,114, 32,109,111,100,105,102,105, 99, 97,116, 105,111,110,115, 46, 10, 10, 45, 45, 32,116, 97, 98,108,101, 32,116,111, 32,115,116,111,114,101, 32,110, 97,109,101,115, 112, 97, 99,101,100, 32,116,121,112,101,100,101,102,115, 47, 101,110,117,109,115, 32,105,110, 32,103,108,111, 98, 97,108, 32,115, 99,111,112,101, 10,103,108,111, 98, 97,108, 95,116, 121,112,101,100,101,102,115, 32, 61, 32,123,125, 10,103,108, 111, 98, 97,108, 95,101,110,117,109,115, 32, 61, 32,123,125, 10, 10, 45, 45, 32, 67,111,110,116, 97,105,110,101,114, 32, 99,108, 97,115,115, 10, 45, 45, 32, 82,101,112,114,101,115, 101,110,116,115, 32, 97, 32, 99,111,110,116, 97,105,110,101, 114, 32,111,102, 32,102,101, 97,116,117,114,101,115, 32,116, 111, 32, 98,101, 32, 98,111,117,110,100, 10, 45, 45, 32,116, 111, 32,108,117, 97, 46, 10, 99,108, 97,115,115, 67,111,110, 116, 97,105,110,101,114, 32, 61, 10,123, 10, 32, 99,117,114, 114, 32, 61, 32,110,105,108, 44, 10,125, 10, 99,108, 97,115, 115, 67,111,110,116, 97,105,110,101,114, 46, 95, 95,105,110, 100,101,120, 32, 61, 32, 99,108, 97,115,115, 67,111,110,116, 97,105,110,101,114, 10,115,101,116,109,101,116, 97,116, 97, 98,108,101, 40, 99,108, 97,115,115, 67,111,110,116, 97,105, 110,101,114, 44, 99,108, 97,115,115, 70,101, 97,116,117,114, 101, 41, 10, 10, 45, 45, 32,111,117,116,112,117,116, 32,116, 97,103,115, 10,102,117,110, 99,116,105,111,110, 32, 99,108, 97,115,115, 67,111,110,116, 97,105,110,101,114, 58,100,101, 99,108,116,121,112,101, 32, 40, 41, 10, 32,112,117,115,104, 40,115,101,108,102, 41, 10, 32,108,111, 99, 97,108, 32,105, 61, 49, 10, 32,119,104,105,108,101, 32,115,101,108,102, 91, 105, 93, 32,100,111, 10, 32, 32,115,101,108,102, 91,105, 93, 58,100,101, 99,108,116,121,112,101, 40, 41, 10, 32, 32,105, 32, 61, 32,105, 43, 49, 10, 32,101,110,100, 10, 32,112,111, 112, 40, 41, 10,101,110,100, 10, 10, 10, 45, 45, 32,119,114, 105,116,101, 32,115,117,112,112,111,114,116, 32, 99,111,100, 101, 10,102,117,110, 99,116,105,111,110, 32, 99,108, 97,115, 115, 67,111,110,116, 97,105,110,101,114, 58,115,117,112, 99, 111,100,101, 32, 40, 41, 10, 10, 9,105,102, 32,110,111,116, 32,115,101,108,102, 58, 99,104,101, 99,107, 95,112,117, 98, 108,105, 99, 95, 97, 99, 99,101,115,115, 40, 41, 32,116,104, 101,110, 10, 9, 9,114,101,116,117,114,110, 10, 9,101,110, 100, 10, 10, 32,112,117,115,104, 40,115,101,108,102, 41, 10, 32,108,111, 99, 97,108, 32,105, 61, 49, 10, 32,119,104,105, 108,101, 32,115,101,108,102, 91,105, 93, 32,100,111, 10, 32, 32,105,102, 32,115,101,108,102, 91,105, 93, 58, 99,104,101, 99,107, 95,112,117, 98,108,105, 99, 95, 97, 99, 99,101,115, 115, 40, 41, 32,116,104,101,110, 10, 32, 32, 9,115,101,108, 102, 91,105, 93, 58,115,117,112, 99,111,100,101, 40, 41, 10, 32, 32,101,110,100, 10, 32, 32,105, 32, 61, 32,105, 43, 49, 10, 32,101,110,100, 10, 32,112,111,112, 40, 41, 10,101,110, 100, 10, 10,102,117,110, 99,116,105,111,110, 32, 99,108, 97, 115,115, 67,111,110,116, 97,105,110,101,114, 58,104, 97,115, 118, 97,114, 32, 40, 41, 10, 32,108,111, 99, 97,108, 32,105, 61, 49, 10, 32,119,104,105,108,101, 32,115,101,108,102, 91, 105, 93, 32,100,111, 10, 32, 32,105,102, 32,115,101,108,102, 91,105, 93, 58,105,115,118, 97,114,105, 97, 98,108,101, 40, 41, 32,116,104,101,110, 10, 9, 9, 32,114,101,116,117,114, 110, 32, 49, 10, 9, 9,101,110,100, 10, 32, 32,105, 32, 61, 32,105, 43, 49, 10, 32,101,110,100, 10, 9,114,101,116,117, 114,110, 32, 48, 10,101,110,100, 10, 10, 45, 45, 32, 73,110, 116,101,114,110, 97,108, 32, 99,111,110,116, 97,105,110,101, 114, 32, 99,111,110,115,116,114,117, 99,116,111,114, 10,102, 117,110, 99,116,105,111,110, 32, 95, 67,111,110,116, 97,105, 110,101,114, 32, 40,115,101,108,102, 41, 10, 32,115,101,116, 109,101,116, 97,116, 97, 98,108,101, 40,115,101,108,102, 44, 99,108, 97,115,115, 67,111,110,116, 97,105,110,101,114, 41, 10, 32,115,101,108,102, 46,110, 32, 61, 32, 48, 10, 32,115, 101,108,102, 46,116,121,112,101,100,101,102,115, 32, 61, 32, 123,116,111,108,117, 97, 95,110, 61, 48,125, 10, 32,115,101, 108,102, 46,117,115,101,114,116,121,112,101,115, 32, 61, 32, 123,125, 10, 32,115,101,108,102, 46,101,110,117,109,115, 32, 61, 32,123,116,111,108,117, 97, 95,110, 61, 48,125, 10, 32, 115,101,108,102, 46,108,110, 97,109,101,115, 32, 61, 32,123, 125, 10, 32,114,101,116,117,114,110, 32,115,101,108,102, 10, 101,110,100, 10, 10, 45, 45, 32,112,117,115,104, 32, 99,111, 110,116, 97,105,110,101,114, 10,102,117,110, 99,116,105,111, 110, 32,112,117,115,104, 32, 40,116, 41, 10, 9,116, 46,112, 114,111,120, 32, 61, 32, 99,108, 97,115,115, 67,111,110,116, 97,105,110,101,114, 46, 99,117,114,114, 10, 32, 99,108, 97, 115,115, 67,111,110,116, 97,105,110,101,114, 46, 99,117,114, 114, 32, 61, 32,116, 10,101,110,100, 10, 10, 45, 45, 32,112, 111,112, 32, 99,111,110,116, 97,105,110,101,114, 10,102,117, 110, 99,116,105,111,110, 32,112,111,112, 32, 40, 41, 10, 45, 45,112,114,105,110,116, 40, 34,110, 97,109,101, 34, 44, 99, 108, 97,115,115, 67,111,110,116, 97,105,110,101,114, 46, 99, 117,114,114, 46,110, 97,109,101, 41, 10, 45, 45,102,111,114, 101, 97, 99,104, 40, 99,108, 97,115,115, 67,111,110,116, 97, 105,110,101,114, 46, 99,117,114,114, 46,117,115,101,114,116, 121,112,101,115, 44,112,114,105,110,116, 41, 10, 45, 45,112, 114,105,110,116, 40, 34, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 34, 41, 10, 32, 99,108, 97,115,115, 67, 111,110,116, 97,105,110,101,114, 46, 99,117,114,114, 32, 61, 32, 99,108, 97,115,115, 67,111,110,116, 97,105,110,101,114, 46, 99,117,114,114, 46,112,114,111,120, 10,101,110,100, 10, 10, 45, 45, 32,103,101,116, 32, 99,117,114,114,101,110,116, 32,110, 97,109,101,115,112, 97, 99,101, 10,102,117,110, 99, 116,105,111,110, 32,103,101,116, 99,117,114,114,110, 97,109, 101,115,112, 97, 99,101, 32, 40, 41, 10, 9,114,101,116,117, 114,110, 32,103,101,116,110, 97,109,101,115,112, 97, 99,101, 40, 99,108, 97,115,115, 67,111,110,116, 97,105,110,101,114, 46, 99,117,114,114, 41, 10,101,110,100, 10, 10, 45, 45, 32, 97,112,112,101,110,100, 32,116,111, 32, 99,117,114,114,101, 110,116, 32, 99,111,110,116, 97,105,110,101,114, 10,102,117, 110, 99,116,105,111,110, 32, 97,112,112,101,110,100, 32, 40, 116, 41, 10, 32,114,101,116,117,114,110, 32, 99,108, 97,115, 115, 67,111,110,116, 97,105,110,101,114, 46, 99,117,114,114, 58, 97,112,112,101,110,100, 40,116, 41, 10,101,110,100, 10, 10, 45, 45, 32, 97,112,112,101,110,100, 32,116,121,112,101, 100,101,102, 32,116,111, 32, 99,117,114,114,101,110,116, 32, 99,111,110,116, 97,105,110,101,114, 10,102,117,110, 99,116, 105,111,110, 32, 97,112,112,101,110,100,116,121,112,101,100, 101,102, 32, 40,116, 41, 10, 32,114,101,116,117,114,110, 32, 99,108, 97,115,115, 67,111,110,116, 97,105,110,101,114, 46, 99,117,114,114, 58, 97,112,112,101,110,100,116,121,112,101, 100,101,102, 40,116, 41, 10,101,110,100, 10, 10, 45, 45, 32, 97,112,112,101,110,100, 32,117,115,101,114,116,121,112,101, 32,116,111, 32, 99,117,114,114,101,110,116, 32, 99,111,110, 116, 97,105,110,101,114, 10,102,117,110, 99,116,105,111,110, 32, 97,112,112,101,110,100,117,115,101,114,116,121,112,101, 32, 40,116, 41, 10, 32,114,101,116,117,114,110, 32, 99,108, 97,115,115, 67,111,110,116, 97,105,110,101,114, 46, 99,117, 114,114, 58, 97,112,112,101,110,100,117,115,101,114,116,121, 112,101, 40,116, 41, 10,101,110,100, 10, 10, 45, 45, 32, 97, 112,112,101,110,100, 32,101,110,117,109, 32,116,111, 32, 99, 117,114,114,101,110,116, 32, 99,111,110,116, 97,105,110,101, 114, 10,102,117,110, 99,116,105,111,110, 32, 97,112,112,101, 110,100,101,110,117,109, 32, 40,116, 41, 10, 32,114,101,116, 117,114,110, 32, 99,108, 97,115,115, 67,111,110,116, 97,105, 110,101,114, 46, 99,117,114,114, 58, 97,112,112,101,110,100, 101,110,117,109, 40,116, 41, 10,101,110,100, 10, 10, 45, 45, 32,115,117, 98,115,116,105,116,117,116,101, 32,116,121,112, 101,100,101,102, 10,102,117,110, 99,116,105,111,110, 32, 97, 112,112,108,121,116,121,112,101,100,101,102, 32, 40,109,111, 100, 44,116,121,112,101, 41, 10, 32,114,101,116,117,114,110, 32, 99,108, 97,115,115, 67,111,110,116, 97,105,110,101,114, 46, 99,117,114,114, 58, 97,112,112,108,121,116,121,112,101, 100,101,102, 40,109,111,100, 44,116,121,112,101, 41, 10,101, 110,100, 10, 10, 45, 45, 32, 99,104,101, 99,107, 32,105,102, 32,105,115, 32,116,121,112,101, 10,102,117,110, 99,116,105, 111,110, 32,102,105,110,100,116,121,112,101, 32, 40,116,121, 112,101, 41, 10, 32,108,111, 99, 97,108, 32,116, 32, 61, 32, 99,108, 97,115,115, 67,111,110,116, 97,105,110,101,114, 46, 99,117,114,114, 58,102,105,110,100,116,121,112,101, 40,116, 121,112,101, 41, 10, 9,114,101,116,117,114,110, 32,116, 10, 101,110,100, 10, 10, 45, 45, 32, 99,104,101, 99,107, 32,105, 102, 32,105,115, 32,116,121,112,101,100,101,102, 10,102,117, 110, 99,116,105,111,110, 32,105,115,116,121,112,101,100,101, 102, 32, 40,116,121,112,101, 41, 10, 32,114,101,116,117,114, 110, 32, 99,108, 97,115,115, 67,111,110,116, 97,105,110,101, 114, 46, 99,117,114,114, 58,105,115,116,121,112,101,100,101, 102, 40,116,121,112,101, 41, 10,101,110,100, 10, 10, 45, 45, 32,103,101,116, 32,102,117,108,108,116,121,112,101, 32, 40, 119,105,116,104, 32,110, 97,109,101,115,112, 97, 99,101, 41, 10,102,117,110, 99,116,105,111,110, 32,102,117,108,108,116, 121,112,101, 32, 40,116, 41, 10, 32,108,111, 99, 97,108, 32, 99,117,114,114, 32, 61, 32, 32, 99,108, 97,115,115, 67,111, 110,116, 97,105,110,101,114, 46, 99,117,114,114, 10, 9,119, 104,105,108,101, 32, 99,117,114,114, 32,100,111, 10, 9, 32, 105,102, 32, 99,117,114,114, 32,116,104,101,110, 10, 9, 9, 32,105,102, 32, 99,117,114,114, 46,116,121,112,101,100,101, 102,115, 32, 97,110,100, 32, 99,117,114,114, 46,116,121,112, 101,100,101,102,115, 91,116, 93, 32,116,104,101,110, 10, 9, 9, 32, 32,114,101,116,117,114,110, 32, 99,117,114,114, 46, 116,121,112,101,100,101,102,115, 91,116, 93, 10, 9, 9, 32, 101,108,115,101,105,102, 32, 99,117,114,114, 46,117,115,101, 114,116,121,112,101,115, 32, 97,110,100, 32, 99,117,114,114, 46,117,115,101,114,116,121,112,101,115, 91,116, 93, 32,116, 104,101,110, 10, 9, 9, 32, 32,114,101,116,117,114,110, 32, 99,117,114,114, 46,117,115,101,114,116,121,112,101,115, 91, 116, 93, 10, 9, 9, 9,101,110,100, 10, 9, 9,101,110,100, 10, 9, 32, 99,117,114,114, 32, 61, 32, 99,117,114,114, 46, 112,114,111,120, 10, 9,101,110,100, 10, 9,114,101,116,117, 114,110, 32,116, 10,101,110,100, 10, 10, 45, 45, 32, 99,104, 101, 99,107,115, 32,105,102, 32,105,116, 32,114,101,113,117, 105,114,101,115, 32, 99,111,108,108,101, 99,116,105,111,110, 10,102,117,110, 99,116,105,111,110, 32, 99,108, 97,115,115, 67,111,110,116, 97,105,110,101,114, 58,114,101,113,117,105, 114,101, 99,111,108,108,101, 99,116,105,111,110, 32, 40,116, 41, 10, 32,112,117,115,104, 40,115,101,108,102, 41, 10, 32, 108,111, 99, 97,108, 32,105, 61, 49, 10, 9,108,111, 99, 97, 108, 32,114, 32, 61, 32,102, 97,108,115,101, 10, 32,119,104, 105,108,101, 32,115,101,108,102, 91,105, 93, 32,100,111, 10, 32, 32,114, 32, 61, 32,115,101,108,102, 91,105, 93, 58,114, 101,113,117,105,114,101, 99,111,108,108,101, 99,116,105,111, 110, 40,116, 41, 32,111,114, 32,114, 10, 32, 32,105, 32, 61, 32,105, 43, 49, 10, 32,101,110,100, 10, 9,112,111,112, 40, 41, 10, 9,114,101,116,117,114,110, 32,114, 10,101,110,100, 10, 10, 10, 45, 45, 32,103,101,116, 32,110, 97,109,101,115, 97,112, 99,101, 10,102,117,110, 99,116,105,111,110, 32,103, 101,116,110, 97,109,101,115,112, 97, 99,101, 32, 40, 99,117, 114,114, 41, 10, 9,108,111, 99, 97,108, 32,110, 97,109,101, 115,112, 97, 99,101, 32, 61, 32, 39, 39, 10, 9,119,104,105, 108,101, 32, 99,117,114,114, 32,100,111, 10, 9, 32,105,102, 32, 99,117,114,114, 32, 97,110,100, 10, 9, 9, 32, 32, 32, 40, 32, 99,117,114,114, 46, 99,108, 97,115,115,116,121,112, 101, 32, 61, 61, 32, 39, 99,108, 97,115,115, 39, 32,111,114, 32, 99,117,114,114, 46, 99,108, 97,115,115,116,121,112,101, 32, 61, 61, 32, 39,110, 97,109,101,115,112, 97, 99,101, 39, 41, 10, 9, 9,116,104,101,110, 10, 9, 9, 32,110, 97,109, 101,115,112, 97, 99,101, 32, 61, 32, 40, 99,117,114,114, 46, 111,114,105,103,105,110, 97,108, 95,110, 97,109,101, 32,111, 114, 32, 99,117,114,114, 46,110, 97,109,101, 41, 32, 46, 46, 32, 39, 58, 58, 39, 32, 46, 46, 32,110, 97,109,101,115,112, 97, 99,101, 10, 9, 9, 32, 45, 45,110, 97,109,101,115,112, 97, 99,101, 32, 61, 32, 99,117,114,114, 46,110, 97,109,101, 32, 46, 46, 32, 39, 58, 58, 39, 32, 46, 46, 32,110, 97,109, 101,115,112, 97, 99,101, 10, 9, 9,101,110,100, 10, 9, 32, 99,117,114,114, 32, 61, 32, 99,117,114,114, 46,112,114,111, 120, 10, 9,101,110,100, 10, 9,114,101,116,117,114,110, 32, 110, 97,109,101,115,112, 97, 99,101, 10,101,110,100, 10, 10, 45, 45, 32,103,101,116, 32,110, 97,109,101,115,112, 97, 99, 101, 32, 40,111,110,108,121, 32,110, 97,109,101,115,112, 97, 99,101, 41, 10,102,117,110, 99,116,105,111,110, 32,103,101, 116,111,110,108,121,110, 97,109,101,115,112, 97, 99,101, 32, 40, 41, 10, 32,108,111, 99, 97,108, 32, 99,117,114,114, 32, 61, 32, 99,108, 97,115,115, 67,111,110,116, 97,105,110,101, 114, 46, 99,117,114,114, 10, 9,108,111, 99, 97,108, 32,110, 97,109,101,115,112, 97, 99,101, 32, 61, 32, 39, 39, 10, 9, 119,104,105,108,101, 32, 99,117,114,114, 32,100,111, 10, 9, 9,105,102, 32, 99,117,114,114, 46, 99,108, 97,115,115,116, 121,112,101, 32, 61, 61, 32, 39, 99,108, 97,115,115, 39, 32, 116,104,101,110, 10, 9, 9, 32,114,101,116,117,114,110, 32, 110, 97,109,101,115,112, 97, 99,101, 10, 9, 9,101,108,115, 101,105,102, 32, 99,117,114,114, 46, 99,108, 97,115,115,116, 121,112,101, 32, 61, 61, 32, 39,110, 97,109,101,115,112, 97, 99,101, 39, 32,116,104,101,110, 10, 9, 9, 32,110, 97,109, 101,115,112, 97, 99,101, 32, 61, 32, 99,117,114,114, 46,110, 97,109,101, 32, 46, 46, 32, 39, 58, 58, 39, 32, 46, 46, 32, 110, 97,109,101,115,112, 97, 99,101, 10, 9, 9,101,110,100, 10, 9, 32, 99,117,114,114, 32, 61, 32, 99,117,114,114, 46, 112,114,111,120, 10, 9,101,110,100, 10, 9,114,101,116,117, 114,110, 32,110, 97,109,101,115,112, 97, 99,101, 10,101,110, 100, 10, 10, 45, 45, 32, 99,104,101, 99,107, 32,105,102, 32, 105,115, 32,101,110,117,109, 10,102,117,110, 99,116,105,111, 110, 32,105,115,101,110,117,109, 32, 40,116,121,112,101, 41, 10, 32,114,101,116,117,114,110, 32, 99,108, 97,115,115, 67, 111,110,116, 97,105,110,101,114, 46, 99,117,114,114, 58,105, 115,101,110,117,109, 40,116,121,112,101, 41, 10,101,110,100, 10, 10, 45, 45, 32, 97,112,112,101,110,100, 32,102,101, 97, 116,117,114,101, 32,116,111, 32, 99,111,110,116, 97,105,110, 101,114, 10,102,117,110, 99,116,105,111,110, 32, 99,108, 97, 115,115, 67,111,110,116, 97,105,110,101,114, 58, 97,112,112, 101,110,100, 32, 40,116, 41, 10, 32,115,101,108,102, 46,110, 32, 61, 32,115,101,108,102, 46,110, 32, 43, 32, 49, 10, 32, 115,101,108,102, 91,115,101,108,102, 46,110, 93, 32, 61, 32, 116, 10, 32,116, 46,112, 97,114,101,110,116, 32, 61, 32,115, 101,108,102, 10,101,110,100, 10, 10, 45, 45, 32, 97,112,112, 101,110,100, 32,116,121,112,101,100,101,102, 10,102,117,110, 99,116,105,111,110, 32, 99,108, 97,115,115, 67,111,110,116, 97,105,110,101,114, 58, 97,112,112,101,110,100,116,121,112, 101,100,101,102, 32, 40,116, 41, 10, 32,108,111, 99, 97,108, 32,110, 97,109,101,115,112, 97, 99,101, 32, 61, 32,103,101, 116,110, 97,109,101,115,112, 97, 99,101, 40, 99,108, 97,115, 115, 67,111,110,116, 97,105,110,101,114, 46, 99,117,114,114, 41, 10, 32,115,101,108,102, 46,116,121,112,101,100,101,102, 115, 46,116,111,108,117, 97, 95,110, 32, 61, 32,115,101,108, 102, 46,116,121,112,101,100,101,102,115, 46,116,111,108,117, 97, 95,110, 32, 43, 32, 49, 10, 32,115,101,108,102, 46,116, 121,112,101,100,101,102,115, 91,115,101,108,102, 46,116,121, 112,101,100,101,102,115, 46,116,111,108,117, 97, 95,110, 93, 32, 61, 32,116, 10, 9,115,101,108,102, 46,116,121,112,101, 100,101,102,115, 91,116, 46,117,116,121,112,101, 93, 32, 61, 32,110, 97,109,101,115,112, 97, 99,101, 32, 46, 46, 32,116, 46,117,116,121,112,101, 10, 9,103,108,111, 98, 97,108, 95, 116,121,112,101,100,101,102,115, 91,110, 97,109,101,115,112, 97, 99,101, 46, 46,116, 46,117,116,121,112,101, 93, 32, 61, 32,116, 10, 9,116, 46,102,116,121,112,101, 32, 61, 32,102, 105,110,100,116,121,112,101, 40,116, 46,116,121,112,101, 41, 32,111,114, 32,116, 46,116,121,112,101, 10, 9, 45, 45,112, 114,105,110,116, 40, 34, 97,112,112,101,110,100,105,110,103, 32,116,121,112,101,100,101,102, 32, 34, 46, 46,116, 46,117, 116,121,112,101, 46, 46, 34, 32, 97,115, 32, 34, 46, 46,110, 97,109,101,115,112, 97, 99,101, 46, 46,116, 46,117,116,121, 112,101, 46, 46, 34, 32,119,105,116,104, 32,102,116,121,112, 101, 32, 34, 46, 46,116, 46,102,116,121,112,101, 41, 10, 9, 97,112,112,101,110,100, 95,103,108,111, 98, 97,108, 95,116, 121,112,101, 40,110, 97,109,101,115,112, 97, 99,101, 46, 46, 116, 46,117,116,121,112,101, 41, 10, 9,105,102, 32,116, 46, 102,116,121,112,101, 32, 97,110,100, 32,105,115,101,110,117, 109, 40,116, 46,102,116,121,112,101, 41, 32,116,104,101,110, 10, 10, 9, 9,103,108,111, 98, 97,108, 95,101,110,117,109, 115, 91,110, 97,109,101,115,112, 97, 99,101, 46, 46,116, 46, 117,116,121,112,101, 93, 32, 61, 32,116,114,117,101, 10, 9, 101,110,100, 10,101,110,100, 10, 10, 45, 45, 32, 97,112,112, 101,110,100, 32,117,115,101,114,116,121,112,101, 58, 32,114, 101,116,117,114,110, 32,102,117,108,108, 32,116,121,112,101, 10,102,117,110, 99,116,105,111,110, 32, 99,108, 97,115,115, 67,111,110,116, 97,105,110,101,114, 58, 97,112,112,101,110, 100,117,115,101,114,116,121,112,101, 32, 40,116, 41, 10, 9, 108,111, 99, 97,108, 32, 99,111,110,116, 97,105,110,101,114, 10, 9,105,102, 32,116, 32, 61, 61, 32, 40,115,101,108,102, 46,111,114,105,103,105,110, 97,108, 95,110, 97,109,101, 32, 111,114, 32,115,101,108,102, 46,110, 97,109,101, 41, 32,116, 104,101,110, 10, 9, 9, 99,111,110,116, 97,105,110,101,114, 32, 61, 32,115,101,108,102, 46,112,114,111,120, 10, 9,101, 108,115,101, 10, 9, 9, 99,111,110,116, 97,105,110,101,114, 32, 61, 32,115,101,108,102, 10, 9,101,110,100, 10, 9,108, 111, 99, 97,108, 32,102,116, 32, 61, 32,103,101,116,110, 97, 109,101,115,112, 97, 99,101, 40, 99,111,110,116, 97,105,110, 101,114, 41, 32, 46, 46, 32,116, 10, 9, 99,111,110,116, 97, 105,110,101,114, 46,117,115,101,114,116,121,112,101,115, 91, 116, 93, 32, 61, 32,102,116, 10, 9, 95,117,115,101,114,116, 121,112,101, 91,102,116, 93, 32, 61, 32,102,116, 10, 9,114, 101,116,117,114,110, 32,102,116, 10,101,110,100, 10, 10, 45, 45, 32, 97,112,112,101,110,100, 32,101,110,117,109, 10,102, 117,110, 99,116,105,111,110, 32, 99,108, 97,115,115, 67,111, 110,116, 97,105,110,101,114, 58, 97,112,112,101,110,100,101, 110,117,109, 32, 40,116, 41, 10, 32,108,111, 99, 97,108, 32, 110, 97,109,101,115,112, 97, 99,101, 32, 61, 32,103,101,116, 110, 97,109,101,115,112, 97, 99,101, 40, 99,108, 97,115,115, 67,111,110,116, 97,105,110,101,114, 46, 99,117,114,114, 41, 10, 32,115,101,108,102, 46,101,110,117,109,115, 46,116,111, 108,117, 97, 95,110, 32, 61, 32,115,101,108,102, 46,101,110, 117,109,115, 46,116,111,108,117, 97, 95,110, 32, 43, 32, 49, 10, 32,115,101,108,102, 46,101,110,117,109,115, 91,115,101, 108,102, 46,101,110,117,109,115, 46,116,111,108,117, 97, 95, 110, 93, 32, 61, 32,116, 10, 9,103,108,111, 98, 97,108, 95, 101,110,117,109,115, 91,110, 97,109,101,115,112, 97, 99,101, 46, 46,116, 46,110, 97,109,101, 93, 32, 61, 32,116, 10,101, 110,100, 10, 10, 45, 45, 32,100,101,116,101,114,109,105,110, 101, 32,108,117, 97, 32,102,117,110, 99,116,105,111,110, 32, 110, 97,109,101, 32,111,118,101,114,108,111, 97,100, 10,102, 117,110, 99,116,105,111,110, 32, 99,108, 97,115,115, 67,111, 110,116, 97,105,110,101,114, 58,111,118,101,114,108,111, 97, 100, 32, 40,108,110, 97,109,101, 41, 10, 32,105,102, 32,110, 111,116, 32,115,101,108,102, 46,108,110, 97,109,101,115, 91, 108,110, 97,109,101, 93, 32,116,104,101,110, 10, 32, 32,115, 101,108,102, 46,108,110, 97,109,101,115, 91,108,110, 97,109, 101, 93, 32, 61, 32, 48, 10, 32,101,108,115,101, 10, 32, 32, 115,101,108,102, 46,108,110, 97,109,101,115, 91,108,110, 97, 109,101, 93, 32, 61, 32,115,101,108,102, 46,108,110, 97,109, 101,115, 91,108,110, 97,109,101, 93, 32, 43, 32, 49, 10, 32, 101,110,100, 10, 32,114,101,116,117,114,110, 32,102,111,114, 109, 97,116, 40, 34, 37, 48, 50,100, 34, 44,115,101,108,102, 46,108,110, 97,109,101,115, 91,108,110, 97,109,101, 93, 41, 10,101,110,100, 10, 10, 45, 45, 32, 97,112,112,108,105,101, 115, 32,116,121,112,101,100,101,102, 58, 32,114,101,116,117, 114,110,115, 32,116,104,101, 32, 39,116,104,101, 32,102, 97, 99,116,111, 39, 32,109,111,100,105,102,105,101,114, 32, 97, 110,100, 32,116,121,112,101, 10,102,117,110, 99,116,105,111, 110, 32, 99,108, 97,115,115, 67,111,110,116, 97,105,110,101, 114, 58, 97,112,112,108,121,116,121,112,101,100,101,102, 32, 40,109,111,100, 44,116,121,112,101, 41, 10, 9,105,102, 32, 103,108,111, 98, 97,108, 95,116,121,112,101,100,101,102,115, 91,116,121,112,101, 93, 32,116,104,101,110, 10, 9, 9, 45, 45,112,114,105,110,116, 40, 34,102,111,117,110,100, 32,116, 121,112,101,100,101,102, 32, 34, 46, 46,103,108,111, 98, 97, 108, 95,116,121,112,101,100,101,102,115, 91,116,121,112,101, 93, 46,116,121,112,101, 41, 10, 9, 9,108,111, 99, 97,108, 32,109,111,100, 49, 44, 32,116,121,112,101, 49, 32, 61, 32, 103,108,111, 98, 97,108, 95,116,121,112,101,100,101,102,115, 91,116,121,112,101, 93, 46,109,111,100, 44, 32,103,108,111, 98, 97,108, 95,116,121,112,101,100,101,102,115, 91,116,121, 112,101, 93, 46,102,116,121,112,101, 10, 9, 9,108,111, 99, 97,108, 32,109,111,100, 50, 44, 32,116,121,112,101, 50, 32, 61, 32, 97,112,112,108,121,116,121,112,101,100,101,102, 40, 109,111,100, 46, 46, 34, 32, 34, 46, 46,109,111,100, 49, 44, 32,116,121,112,101, 49, 41, 10, 9, 9, 45, 45,114,101,116, 117,114,110, 32,109,111,100, 50, 32, 46, 46, 32, 39, 32, 39, 32, 46, 46, 32,109,111,100, 49, 44, 32,116,121,112,101, 50, 10, 9, 9,114,101,116,117,114,110, 32,109,111,100, 50, 44, 32,116,121,112,101, 50, 10, 9,101,110,100, 10, 9,100,111, 32,114,101,116,117,114,110, 32,109,111,100, 44,116,121,112, 101, 32,101,110,100, 10,101,110,100, 10, 10, 45, 45, 32, 99, 104,101, 99,107, 32,105,102, 32,105,116, 32,105,115, 32, 97, 32,116,121,112,101,100,101,102, 10,102,117,110, 99,116,105, 111,110, 32, 99,108, 97,115,115, 67,111,110,116, 97,105,110, 101,114, 58,105,115,116,121,112,101,100,101,102, 32, 40,116, 121,112,101, 41, 10, 32,108,111, 99, 97,108, 32,101,110,118, 32, 61, 32,115,101,108,102, 10, 32,119,104,105,108,101, 32, 101,110,118, 32,100,111, 10, 32, 32,105,102, 32,101,110,118, 46,116,121,112,101,100,101,102,115, 32,116,104,101,110, 10, 32, 32, 32,108,111, 99, 97,108, 32,105, 61, 49, 10, 32, 32, 32,119,104,105,108,101, 32,101,110,118, 46,116,121,112,101, 100,101,102,115, 91,105, 93, 32,100,111, 10, 32, 32, 32, 32, 105,102, 32,101,110,118, 46,116,121,112,101,100,101,102,115, 91,105, 93, 46,117,116,121,112,101, 32, 61, 61, 32,116,121, 112,101, 32,116,104,101,110, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32,114,101,116,117,114,110, 32,116,121,112,101, 10, 32, 32, 32, 32, 32, 32, 32, 32,101,110,100, 10, 32, 32, 32, 32, 32, 32, 32, 32,105, 32, 61, 32,105, 43, 49, 10, 32, 32, 32, 101,110,100, 10, 32, 32,101,110,100, 10, 32, 32,101,110,118, 32, 61, 32,101,110,118, 46,112, 97,114,101,110,116, 10, 32, 101,110,100, 10, 32,114,101,116,117,114,110, 32,110,105,108, 10,101,110,100, 10, 10,102,117,110, 99,116,105,111,110, 32, 102,105,110,100, 95,101,110,117,109, 95,118, 97,114, 40,118, 97,114, 41, 10, 10, 9,105,102, 32,116,111,110,117,109, 98, 101,114, 40,118, 97,114, 41, 32,116,104,101,110, 32,114,101, 116,117,114,110, 32,118, 97,114, 32,101,110,100, 10, 10, 9, 108,111, 99, 97,108, 32, 99, 32, 61, 32, 99,108, 97,115,115, 67,111,110,116, 97,105,110,101,114, 46, 99,117,114,114, 10, 9,119,104,105,108,101, 32, 99, 32,100,111, 10, 9, 9,108, 111, 99, 97,108, 32,110,115, 32, 61, 32,103,101,116,110, 97, 109,101,115,112, 97, 99,101, 40, 99, 41, 10, 9, 9,102,111, 114, 32,107, 44,118, 32,105,110, 32,112, 97,105,114,115, 40, 95,103,108,111, 98, 97,108, 95,101,110,117,109,115, 41, 32, 100,111, 10, 9, 9, 9,105,102, 32,109, 97,116, 99,104, 95, 116,121,112,101, 40,118, 97,114, 44, 32,118, 44, 32,110,115, 41, 32,116,104,101,110, 10, 9, 9, 9, 9,114,101,116,117, 114,110, 32,118, 10, 9, 9, 9,101,110,100, 10, 9, 9,101, 110,100, 10, 9, 9,105,102, 32, 99, 46, 98, 97,115,101, 32, 97,110,100, 32, 99, 46, 98, 97,115,101, 32,126, 61, 32, 39, 39, 32,116,104,101,110, 10, 9, 9, 9, 99, 32, 61, 32, 95, 103,108,111, 98, 97,108, 95, 99,108, 97,115,115,101,115, 91, 99, 58,102,105,110,100,116,121,112,101, 40, 99, 46, 98, 97, 115,101, 41, 93, 10, 9, 9,101,108,115,101, 10, 9, 9, 9, 99, 32, 61, 32,110,105,108, 10, 9, 9,101,110,100, 10, 9, 101,110,100, 10, 10, 9,114,101,116,117,114,110, 32,118, 97, 114, 10,101,110,100, 10, 10, 45, 45, 32, 99,104,101, 99,107, 32,105,102, 32,105,115, 32, 97, 32,114,101,103,105,115,116, 101,114,101,100, 32,116,121,112,101, 58, 32,114,101,116,117, 114,110, 32,102,117,108,108, 32,116,121,112,101, 32,111,114, 32,110,105,108, 10,102,117,110, 99,116,105,111,110, 32, 99, 108, 97,115,115, 67,111,110,116, 97,105,110,101,114, 58,102, 105,110,100,116,121,112,101, 32, 40,116, 41, 10, 10, 9,116, 32, 61, 32,115,116,114,105,110,103, 46,103,115,117, 98, 40, 116, 44, 32, 34, 61, 46, 42, 34, 44, 32, 34, 34, 41, 10, 9, 105,102, 32, 95, 98, 97,115,105, 99, 91,116, 93, 32,116,104, 101,110, 10, 9, 32,114,101,116,117,114,110, 32,116, 10, 9, 101,110,100, 10, 10, 9,108,111, 99, 97,108, 32, 95, 44, 95, 44,101,109, 32, 61, 32,115,116,114,105,110,103, 46,102,105, 110,100, 40,116, 44, 32, 34, 40, 91, 38, 37, 42, 93, 41, 37, 115, 42, 36, 34, 41, 10, 9,116, 32, 61, 32,115,116,114,105, 110,103, 46,103,115,117, 98, 40,116, 44, 32, 34, 37,115, 42, 40, 91, 38, 37, 42, 93, 41, 37,115, 42, 36, 34, 44, 32, 34, 34, 41, 10, 9,112, 32, 61, 32,115,101,108,102, 10, 9,119, 104,105,108,101, 32,112, 32, 97,110,100, 32,116,121,112,101, 40,112, 41, 61, 61, 39,116, 97, 98,108,101, 39, 32,100,111, 10, 9, 9,108,111, 99, 97,108, 32,115,116, 32, 61, 32,103, 101,116,110, 97,109,101,115,112, 97, 99,101, 40,112, 41, 10, 10, 9, 9,102,111,114, 32,105, 61, 95,103,108,111, 98, 97, 108, 95,116,121,112,101,115, 46,110, 44, 49, 44, 45, 49, 32, 100,111, 32, 45, 45, 32,105,110, 32,114,101,118,101,114,115, 101, 32,111,114,100,101,114, 10, 10, 9, 9, 9,105,102, 32, 109, 97,116, 99,104, 95,116,121,112,101, 40,116, 44, 32, 95, 103,108,111, 98, 97,108, 95,116,121,112,101,115, 91,105, 93, 44, 32,115,116, 41, 32,116,104,101,110, 10, 9, 9, 9, 9, 114,101,116,117,114,110, 32, 95,103,108,111, 98, 97,108, 95, 116,121,112,101,115, 91,105, 93, 46, 46, 40,101,109, 32,111, 114, 32, 34, 34, 41, 10, 9, 9, 9,101,110,100, 10, 9, 9, 101,110,100, 10, 9, 9,105,102, 32,112, 46, 98, 97,115,101, 32, 97,110,100, 32,112, 46, 98, 97,115,101, 32,126, 61, 32, 39, 39, 32, 97,110,100, 32,112, 46, 98, 97,115,101, 32,126, 61, 32,116, 32,116,104,101,110, 10, 9, 9, 9, 45, 45,112, 114,105,110,116, 40, 34,116,121,112,101, 32,105,115, 32, 34, 46, 46,116, 46, 46, 34, 44, 32,112, 32,105,115, 32, 34, 46, 46,112, 46, 98, 97,115,101, 46, 46, 34, 32,115,101,108,102, 46,116,121,112,101, 32,105,115, 32, 34, 46, 46,115,101,108, 102, 46,116,121,112,101, 46, 46, 34, 32,115,101,108,102, 46, 110, 97,109,101, 32,105,115, 32, 34, 46, 46,115,101,108,102, 46,110, 97,109,101, 41, 10, 9, 9, 9,112, 32, 61, 32, 95, 103,108,111, 98, 97,108, 95, 99,108, 97,115,115,101,115, 91, 112, 58,102,105,110,100,116,121,112,101, 40,112, 46, 98, 97, 115,101, 41, 93, 10, 9, 9,101,108,115,101, 10, 9, 9, 9, 112, 32, 61, 32,110,105,108, 10, 9, 9,101,110,100, 10, 9, 101,110,100, 10, 10, 9,114,101,116,117,114,110, 32,110,105, 108, 10,101,110,100, 10, 10,102,117,110, 99,116,105,111,110, 32, 97,112,112,101,110,100, 95,103,108,111, 98, 97,108, 95, 116,121,112,101, 40,116, 44, 32, 99,108, 97,115,115, 41, 10, 9, 95,103,108,111, 98, 97,108, 95,116,121,112,101,115, 46, 110, 32, 61, 32, 95,103,108,111, 98, 97,108, 95,116,121,112, 101,115, 46,110, 32, 43, 49, 10, 9, 95,103,108,111, 98, 97, 108, 95,116,121,112,101,115, 91, 95,103,108,111, 98, 97,108, 95,116,121,112,101,115, 46,110, 93, 32, 61, 32,116, 10, 9, 95,103,108,111, 98, 97,108, 95,116,121,112,101,115, 95,104, 97,115,104, 91,116, 93, 32, 61, 32, 49, 10, 9,105,102, 32, 99,108, 97,115,115, 32,116,104,101,110, 32, 97,112,112,101, 110,100, 95, 99,108, 97,115,115, 95,116,121,112,101, 40,116, 44, 32, 99,108, 97,115,115, 41, 32,101,110,100, 10,101,110, 100, 10, 10,102,117,110, 99,116,105,111,110, 32, 97,112,112, 101,110,100, 95, 99,108, 97,115,115, 95,116,121,112,101, 40, 116, 44, 99,108, 97,115,115, 41, 10, 9,105,102, 32, 95,103, 108,111, 98, 97,108, 95, 99,108, 97,115,115,101,115, 91,116, 93, 32,116,104,101,110, 10, 9, 9, 99,108, 97,115,115, 46, 102,108, 97,103,115, 32, 61, 32, 95,103,108,111, 98, 97,108, 95, 99,108, 97,115,115,101,115, 91,116, 93, 46,102,108, 97, 103,115, 10, 9, 9, 99,108, 97,115,115, 46,108,110, 97,109, 101,115, 32, 61, 32, 95,103,108,111, 98, 97,108, 95, 99,108, 97,115,115,101,115, 91,116, 93, 46,108,110, 97,109,101,115, 10, 9, 9,105,102, 32, 95,103,108,111, 98, 97,108, 95, 99, 108, 97,115,115,101,115, 91,116, 93, 46, 98, 97,115,101, 32, 97,110,100, 32, 40, 95,103,108,111, 98, 97,108, 95, 99,108, 97,115,115,101,115, 91,116, 93, 46, 98, 97,115,101, 32,126, 61, 32, 39, 39, 41, 32,116,104,101,110, 10, 9, 9, 9, 99, 108, 97,115,115, 46, 98, 97,115,101, 32, 61, 32, 95,103,108, 111, 98, 97,108, 95, 99,108, 97,115,115,101,115, 91,116, 93, 46, 98, 97,115,101, 32,111,114, 32, 99,108, 97,115,115, 46, 98, 97,115,101, 10, 9, 9,101,110,100, 10, 9,101,110,100, 10, 9, 95,103,108,111, 98, 97,108, 95, 99,108, 97,115,115, 101,115, 91,116, 93, 32, 61, 32, 99,108, 97,115,115, 10, 9, 99,108, 97,115,115, 46,102,108, 97,103,115, 32, 61, 32, 99, 108, 97,115,115, 46,102,108, 97,103,115, 32,111,114, 32,123, 125, 10,101,110,100, 10, 10,102,117,110, 99,116,105,111,110, 32,109, 97,116, 99,104, 95,116,121,112,101, 40, 99,104,105, 108,100,116,121,112,101, 44, 32,114,101,103,116,121,112,101, 44, 32,115,116, 41, 10, 45, 45,112,114,105,110,116, 40, 34, 102,105,110,100,116,121,112,101, 32, 34, 46, 46, 99,104,105, 108,100,116,121,112,101, 46, 46, 34, 44, 32, 34, 46, 46,114, 101,103,116,121,112,101, 46, 46, 34, 44, 32, 34, 46, 46,115, 116, 41, 10, 9,108,111, 99, 97,108, 32, 98, 44,101, 32, 61, 32,115,116,114,105,110,103, 46,102,105,110,100, 40,114,101, 103,116,121,112,101, 44, 32, 99,104,105,108,100,116,121,112, 101, 44, 32, 45,115,116,114,105,110,103, 46,108,101,110, 40, 99,104,105,108,100,116,121,112,101, 41, 44, 32,116,114,117, 101, 41, 10, 9,105,102, 32, 98, 32,116,104,101,110, 10, 10, 9, 9,105,102, 32,101, 32, 61, 61, 32,115,116,114,105,110, 103, 46,108,101,110, 40,114,101,103,116,121,112,101, 41, 32, 97,110,100, 10, 9, 9, 9, 9, 40, 98, 32, 61, 61, 32, 49, 32,111,114, 32, 40,115,116,114,105,110,103, 46,115,117, 98, 40,114,101,103,116,121,112,101, 44, 32, 98, 45, 49, 44, 32, 98, 45, 49, 41, 32, 61, 61, 32, 39, 58, 39, 32, 97,110,100, 10, 9, 9, 9, 9,115,116,114,105,110,103, 46,115,117, 98, 40,114,101,103,116,121,112,101, 44, 32, 49, 44, 32, 98, 45, 49, 41, 32, 61, 61, 32,115,116,114,105,110,103, 46,115,117, 98, 40,115,116, 44, 32, 49, 44, 32, 98, 45, 49, 41, 41, 41, 32,116,104,101,110, 10, 9, 9, 9,114,101,116,117,114,110, 32,116,114,117,101, 10, 9, 9,101,110,100, 10, 9,101,110, 100, 10, 10, 9,114,101,116,117,114,110, 32,102, 97,108,115, 101, 10,101,110,100, 10, 10,102,117,110, 99,116,105,111,110, 32,102,105,110,100,116,121,112,101, 95,111,110, 95, 99,104, 105,108,100,115, 40,115,101,108,102, 44, 32,116, 41, 10, 10, 9,108,111, 99, 97,108, 32,116, 99,104,105,108,100, 10, 9, 105,102, 32,115,101,108,102, 46, 99,108, 97,115,115,116,121, 112,101, 32, 61, 61, 32, 39, 99,108, 97,115,115, 39, 32,111, 114, 32,115,101,108,102, 46, 99,108, 97,115,115,116,121,112, 101, 32, 61, 61, 32, 39,110, 97,109,101,115,112, 97, 99,101, 39, 32,116,104,101,110, 10, 9, 9,102,111,114, 32,107, 44, 118, 32,105,110, 32,105,112, 97,105,114,115, 40,115,101,108, 102, 41, 32,100,111, 10, 9, 9, 9,105,102, 32,118, 46, 99, 108, 97,115,115,116,121,112,101, 32, 61, 61, 32, 39, 99,108, 97,115,115, 39, 32,111,114, 32,118, 46, 99,108, 97,115,115, 116,121,112,101, 32, 61, 61, 32, 39,110, 97,109,101,115,112, 97, 99,101, 39, 32,116,104,101,110, 10, 9, 9, 9, 9,105, 102, 32,118, 46,116,121,112,101,100,101,102,115, 32, 97,110, 100, 32,118, 46,116,121,112,101,100,101,102,115, 91,116, 93, 32,116,104,101,110, 10, 9, 9, 9, 9, 32,114,101,116,117, 114,110, 32,118, 46,116,121,112,101,100,101,102,115, 91,116, 93, 10, 9, 9, 9, 9,101,108,115,101,105,102, 32,118, 46, 117,115,101,114,116,121,112,101,115, 32, 97,110,100, 32,118, 46,117,115,101,114,116,121,112,101,115, 91,116, 93, 32,116, 104,101,110, 10, 9, 9, 9, 9, 32,114,101,116,117,114,110, 32,118, 46,117,115,101,114,116,121,112,101,115, 91,116, 93, 10, 9, 9, 9, 9,101,110,100, 10, 9, 9, 9, 9,116, 99, 104,105,108,100, 32, 61, 32,102,105,110,100,116,121,112,101, 95,111,110, 95, 99,104,105,108,100,115, 40,118, 44, 32,116, 41, 10, 9, 9, 9, 9,105,102, 32,116, 99,104,105,108,100, 32,116,104,101,110, 32,114,101,116,117,114,110, 32,116, 99, 104,105,108,100, 32,101,110,100, 10, 9, 9, 9,101,110,100, 10, 9, 9,101,110,100, 10, 9,101,110,100, 10, 9,114,101, 116,117,114,110, 32,110,105,108, 10, 10,101,110,100, 10, 10, 102,117,110, 99,116,105,111,110, 32, 99,108, 97,115,115, 67, 111,110,116, 97,105,110,101,114, 58,105,115,101,110,117,109, 32, 40,116,121,112,101, 41, 10, 32,105,102, 32,103,108,111, 98, 97,108, 95,101,110,117,109,115, 91,116,121,112,101, 93, 32,116,104,101,110, 10, 9,114,101,116,117,114,110, 32,116, 121,112,101, 10, 32,101,108,115,101, 10, 32, 9,114,101,116, 117,114,110, 32,102, 97,108,115,101, 10, 32,101,110,100, 10, 10, 32,108,111, 99, 97,108, 32, 98, 97,115,101,116,121,112, 101, 32, 61, 32,103,115,117, 98, 40,116,121,112,101, 44, 34, 94, 46, 42, 58, 58, 34, 44, 34, 34, 41, 10, 32,108,111, 99, 97,108, 32,101,110,118, 32, 61, 32,115,101,108,102, 10, 32, 119,104,105,108,101, 32,101,110,118, 32,100,111, 10, 32, 32, 105,102, 32,101,110,118, 46,101,110,117,109,115, 32,116,104, 101,110, 10, 32, 32, 32,108,111, 99, 97,108, 32,105, 61, 49, 10, 32, 32, 32,119,104,105,108,101, 32,101,110,118, 46,101, 110,117,109,115, 91,105, 93, 32,100,111, 10, 32, 32, 32, 32, 105,102, 32,101,110,118, 46,101,110,117,109,115, 91,105, 93, 46,110, 97,109,101, 32, 61, 61, 32, 98, 97,115,101,116,121, 112,101, 32,116,104,101,110, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32,114,101,116,117,114,110, 32,116,114,117,101, 10, 32, 32, 32, 32, 32, 32, 32, 32,101,110,100, 10, 32, 32, 32, 32, 32, 32, 32, 32,105, 32, 61, 32,105, 43, 49, 10, 32, 32, 32, 101,110,100, 10, 32, 32,101,110,100, 10, 32, 32,101,110,118, 32, 61, 32,101,110,118, 46,112, 97,114,101,110,116, 10, 32, 101,110,100, 10, 32,114,101,116,117,114,110, 32,102, 97,108, 115,101, 10,101,110,100, 10, 10,109,101,116,104,111,100,105, 115,118,105,114,116,117, 97,108, 32, 61, 32,102, 97,108,115, 101, 32, 45, 45, 32, 97, 32,103,108,111, 98, 97,108, 10, 10, 45, 45, 32,112, 97,114,115,101, 32, 99,104,117,110,107, 10, 102,117,110, 99,116,105,111,110, 32, 99,108, 97,115,115, 67, 111,110,116, 97,105,110,101,114, 58,100,111,112, 97,114,115, 101, 32, 40,115, 41, 10, 45, 45,112,114,105,110,116, 32, 40, 34,112, 97,114,115,101, 32, 34, 46, 46,115, 41, 10, 10, 32, 45, 45, 32,116,114,121, 32,116,104,101, 32,112, 97,114,115, 101,114, 32,104,111,111,107, 10, 32,100,111, 10, 32, 9,108, 111, 99, 97,108, 32,115,117, 98, 32, 61, 32,112, 97,114,115, 101,114, 95,104,111,111,107, 40,115, 41, 10, 32, 9,105,102, 32,115,117, 98, 32,116,104,101,110, 10, 32, 9, 9,114,101, 116,117,114,110, 32,115,117, 98, 10, 32, 9,101,110,100, 10, 32,101,110,100, 10, 10, 32, 45, 45, 32,116,114,121, 32,116, 104,101, 32,110,117,108,108, 32,115,116, 97,116,101,109,101, 110,116, 10, 32,100,111, 10, 32, 9,108,111, 99, 97,108, 32, 98, 44,101, 44, 99,111,100,101, 32, 61, 32,115,116,114,105, 110,103, 46,102,105,110,100, 40,115, 44, 32, 34, 94, 37,115, 42, 59, 34, 41, 10, 32, 9,105,102, 32, 98, 32,116,104,101, 110, 10, 32, 9, 9,114,101,116,117,114,110, 32,115,116,114, 115,117, 98, 40,115, 44,101, 43, 49, 41, 10, 32, 9,101,110, 100, 10, 32,101,110,100, 10, 10, 32, 45, 45, 32,116,114,121, 32,101,109,112,116,121, 32,118,101,114, 98, 97,116,105,109, 32,108,105,110,101, 10, 32,100,111, 10, 32, 9,108,111, 99, 97,108, 32, 98, 44,101, 44, 99,111,100,101, 32, 61, 32,115, 116,114,105,110,103, 46,102,105,110,100, 40,115, 44, 32, 34, 94, 37,115, 42, 36, 92,110, 34, 41, 10, 32, 9,105,102, 32, 98, 32,116,104,101,110, 10, 32, 9, 9,114,101,116,117,114, 110, 32,115,116,114,115,117, 98, 40,115, 44,101, 43, 49, 41, 10, 32, 9,101,110,100, 10, 32,101,110,100, 10, 10, 32, 45, 45, 32,116,114,121, 32, 76,117, 97, 32, 99,111,100,101, 10, 32,100,111, 10, 32, 32,108,111, 99, 97,108, 32, 98, 44,101, 44, 99,111,100,101, 32, 61, 32,115,116,114,102,105,110,100, 40,115, 44, 34, 94, 37,115, 42, 40, 37, 98, 92, 49, 92, 50, 41, 34, 41, 10, 32, 32,105,102, 32, 98, 32,116,104,101,110, 10, 32, 32, 32, 67,111,100,101, 40,115,116,114,115,117, 98, 40, 99,111,100,101, 44, 50, 44, 45, 50, 41, 41, 10, 32, 32, 32,114,101,116,117,114,110, 32,115,116,114,115,117, 98, 40, 115, 44,101, 43, 49, 41, 10, 32, 32,101,110,100, 10, 32,101, 110,100, 10, 10, 32, 45, 45, 32,116,114,121, 32, 67, 32, 99, 111,100,101, 10, 32,100,111, 10, 32, 32,108,111, 99, 97,108, 32, 98, 44,101, 44, 99,111,100,101, 32, 61, 32,115,116,114, 102,105,110,100, 40,115, 44, 34, 94, 37,115, 42, 40, 37, 98, 92, 51, 92, 52, 41, 34, 41, 10, 32, 32,105,102, 32, 98, 32, 116,104,101,110, 10, 9, 99,111,100,101, 32, 61, 32, 39,123, 39, 46, 46,115,116,114,115,117, 98, 40, 99,111,100,101, 44, 50, 44, 45, 50, 41, 46, 46, 39, 92,110,125, 92,110, 39, 10, 9, 86,101,114, 98, 97,116,105,109, 40, 99,111,100,101, 44, 39,114, 39, 41, 32, 32, 32, 32, 32, 32, 32, 32, 45, 45, 32, 118,101,114, 98, 97,116,105,109, 32, 99,111,100,101, 32,102, 111,114, 32, 39,114, 39,101,103,105,115,116,101,114, 32,102, 114, 97,103,109,101,110,116, 10, 9,114,101,116,117,114,110, 32,115,116,114,115,117, 98, 40,115, 44,101, 43, 49, 41, 10, 32, 32,101,110,100, 10, 32,101,110,100, 10, 10, 32, 45, 45, 32,116,114,121, 32, 67, 32, 99,111,100,101, 32,102,111,114, 32,112,114,101, 97,109, 98,108,101, 32,115,101, 99,116,105, 111,110, 10, 32,100,111, 10, 32, 9,108,111, 99, 97,108, 32, 98, 44,101, 44, 99,111,100,101, 32, 61, 32,115,116,114,105, 110,103, 46,102,105,110,100, 40,115, 44, 32, 34, 94, 37,115, 42, 40, 37, 98, 92, 53, 92, 54, 41, 34, 41, 10, 32, 9,105, 102, 32, 98, 32,116,104,101,110, 10, 32, 9, 9, 99,111,100, 101, 32, 61, 32,115,116,114,105,110,103, 46,115,117, 98, 40, 99,111,100,101, 44, 32, 50, 44, 32, 45, 50, 41, 46, 46, 34, 92,110, 34, 10, 9, 9, 86,101,114, 98, 97,116,105,109, 40, 99,111,100,101, 44, 32, 39, 39, 41, 10, 9, 9,114,101,116, 117,114,110, 32,115,116,114,105,110,103, 46,115,117, 98, 40, 115, 44, 32,101, 43, 49, 41, 10, 32, 9,101,110,100, 10, 32, 101,110,100, 10, 10, 32, 45, 45, 32,116,114,121, 32,100,101, 102, 97,117,108,116, 95,112,114,111,112,101,114,116,121, 32, 100,105,114,101, 99,116,105,118,101, 10, 32,100,111, 10, 32, 9,108,111, 99, 97,108, 32, 98, 44,101, 44,112,116,121,112, 101, 32, 61, 32,115,116,114,102,105,110,100, 40,115, 44, 32, 34, 94, 37,115, 42, 84, 79, 76, 85, 65, 95, 80, 82, 79, 80, 69, 82, 84, 89, 95, 84, 89, 80, 69, 37,115, 42, 37, 40, 43, 37,115, 42, 40, 91, 94, 37, 41, 37,115, 93, 42, 41, 37,115, 42, 37, 41, 43, 37,115, 42, 59, 63, 34, 41, 10, 32, 9,105, 102, 32, 98, 32,116,104,101,110, 10, 32, 9, 9,105,102, 32, 110,111,116, 32,112,116,121,112,101, 32,111,114, 32,112,116, 121,112,101, 32, 61, 61, 32, 34, 34, 32,116,104,101,110, 10, 32, 9, 9, 9,112,116,121,112,101, 32, 61, 32, 34,100,101, 102, 97,117,108,116, 34, 10, 32, 9, 9,101,110,100, 10, 32, 9, 9,115,101,108,102, 58,115,101,116, 95,112,114,111,112, 101,114,116,121, 95,116,121,112,101, 40,112,116,121,112,101, 41, 10, 9, 32, 9,114,101,116,117,114,110, 32,115,116,114, 115,117, 98, 40,115, 44, 32,101, 43, 49, 41, 10, 32, 9,101, 110,100, 10, 32,101,110,100, 10, 10, 32, 45, 45, 32,116,114, 121, 32,112,114,111,116,101, 99,116,101,100, 95,100,101,115, 116,114,117, 99,116,111,114, 32,100,105,114,101, 99,116,105, 118,101, 10, 32,100,111, 10, 32, 9,108,111, 99, 97,108, 32, 98, 44,101, 32, 61, 32,115,116,114,105,110,103, 46,102,105, 110,100, 40,115, 44, 32, 34, 94, 37,115, 42, 84, 79, 76, 85, 65, 95, 80, 82, 79, 84, 69, 67, 84, 69, 68, 95, 68, 69, 83, 84, 82, 85, 67, 84, 79, 82, 37,115, 42, 59, 63, 34, 41, 10, 9,105,102, 32, 98, 32,116,104,101,110, 10, 9, 9,105,102, 32,115,101,108,102, 46,115,101,116, 95,112,114,111,116,101, 99,116,101,100, 95,100,101,115,116,114,117, 99,116,111,114, 32,116,104,101,110, 10, 9, 32, 9, 9,115,101,108,102, 58, 115,101,116, 95,112,114,111,116,101, 99,116,101,100, 95,100, 101,115,116,114,117, 99,116,111,114, 40,116,114,117,101, 41, 10, 9, 32, 9,101,110,100, 10, 32, 9, 9,114,101,116,117, 114,110, 32,115,116,114,115,117, 98, 40,115, 44, 32,101, 43, 49, 41, 10, 32, 9,101,110,100, 10, 32,101,110,100, 10, 10, 32, 45, 45, 32,116,114,121, 32, 39,101,120,116,101,114,110, 39, 32,107,101,121,119,111,114,100, 10, 32,100,111, 10, 32, 9,108,111, 99, 97,108, 32, 98, 44,101, 32, 61, 32,115,116, 114,105,110,103, 46,102,105,110,100, 40,115, 44, 32, 34, 94, 37,115, 42,101,120,116,101,114,110, 37,115, 43, 34, 41, 10, 32, 9,105,102, 32, 98, 32,116,104,101,110, 10, 9, 9, 45, 45, 32,100,111, 32,110,111,116,104,105,110,103, 10, 32, 9, 9,114,101,116,117,114,110, 32,115,116,114,115,117, 98, 40, 115, 44, 32,101, 43, 49, 41, 10, 32, 9,101,110,100, 10, 32, 101,110,100, 10, 10, 32, 45, 45, 32,116,114,121, 32, 39,118, 105,114,116,117, 97,108, 39, 32,107,101,121,119,111,114,107, 100, 10, 32,100,111, 10, 32, 9,108,111, 99, 97,108, 32, 98, 44,101, 32, 61, 32,115,116,114,105,110,103, 46,102,105,110, 100, 40,115, 44, 32, 34, 94, 37,115, 42,118,105,114,116,117, 97,108, 37,115, 43, 34, 41, 10, 32, 9,105,102, 32, 98, 32, 116,104,101,110, 10, 32, 9, 9,109,101,116,104,111,100,105, 115,118,105,114,116,117, 97,108, 32, 61, 32,116,114,117,101, 10, 32, 9, 9,114,101,116,117,114,110, 32,115,116,114,115, 117, 98, 40,115, 44, 32,101, 43, 49, 41, 10, 32, 9,101,110, 100, 10, 32,101,110,100, 10, 10, 32, 45, 45, 32,116,114,121, 32,108, 97, 98,101,108,115, 32, 40,112,117, 98,108,105, 99, 44, 32,112,114,105,118, 97,116,101, 44, 32,101,116, 99, 41, 10, 32,100,111, 10, 32, 9,108,111, 99, 97,108, 32, 98, 44, 101, 32, 61, 32,115,116,114,105,110,103, 46,102,105,110,100, 40,115, 44, 32, 34, 94, 37,115, 42, 37,119, 42, 37,115, 42, 58, 91, 94, 58, 93, 34, 41, 10, 32, 9,105,102, 32, 98, 32, 116,104,101,110, 10, 32, 9, 9,114,101,116,117,114,110, 32, 115,116,114,115,117, 98, 40,115, 44, 32,101, 41, 32, 45, 45, 32,112,114,101,115,101,114,118,101, 32,116,104,101, 32, 91, 94, 58, 93, 10, 32, 9,101,110,100, 10, 32,101,110,100, 10, 10, 32, 45, 45, 32,116,114,121, 32,109,111,100,117,108,101, 10, 32,100,111, 10, 32, 32,108,111, 99, 97,108, 32, 98, 44, 101, 44,110, 97,109,101, 44, 98,111,100,121, 32, 61, 32,115, 116,114,102,105,110,100, 40,115, 44, 34, 94, 37,115, 42,109, 111,100,117,108,101, 37,115, 37,115, 42, 40, 91, 95, 37,119, 93, 91, 95, 37,119, 93, 42, 41, 37,115, 42, 40, 37, 98,123, 125, 41, 37,115, 42, 34, 41, 10, 32, 32,105,102, 32, 98, 32, 116,104,101,110, 10, 32, 32, 32, 95, 99,117,114,114, 95, 99, 111,100,101, 32, 61, 32,115,116,114,115,117, 98, 40,115, 44, 98, 44,101, 41, 10, 32, 32, 32, 77,111,100,117,108,101, 40, 110, 97,109,101, 44, 98,111,100,121, 41, 10, 32, 32, 32,114, 101,116,117,114,110, 32,115,116,114,115,117, 98, 40,115, 44, 101, 43, 49, 41, 10, 32, 32,101,110,100, 10, 32,101,110,100, 10, 10, 32, 45, 45, 32,116,114,121, 32,110, 97,109,101,115, 97,112, 99,101, 10, 32,100,111, 10, 32, 32,108,111, 99, 97, 108, 32, 98, 44,101, 44,110, 97,109,101, 44, 98,111,100,121, 32, 61, 32,115,116,114,102,105,110,100, 40,115, 44, 34, 94, 37,115, 42,110, 97,109,101,115,112, 97, 99,101, 37,115, 37, 115, 42, 40, 91, 95, 37,119, 93, 91, 95, 37,119, 93, 42, 41, 37,115, 42, 40, 37, 98,123,125, 41, 37,115, 42, 59, 63, 34, 41, 10, 32, 32,105,102, 32, 98, 32,116,104,101,110, 10, 32, 32, 32, 95, 99,117,114,114, 95, 99,111,100,101, 32, 61, 32, 115,116,114,115,117, 98, 40,115, 44, 98, 44,101, 41, 10, 32, 32, 32, 78, 97,109,101,115,112, 97, 99,101, 40,110, 97,109, 101, 44, 98,111,100,121, 41, 10, 32, 32, 32,114,101,116,117, 114,110, 32,115,116,114,115,117, 98, 40,115, 44,101, 43, 49, 41, 10, 32, 32,101,110,100, 10, 32,101,110,100, 10, 10, 32, 45, 45, 32,116,114,121, 32,100,101,102,105,110,101, 10, 32, 100,111, 10, 32, 32,108,111, 99, 97,108, 32, 98, 44,101, 44, 110, 97,109,101, 32, 61, 32,115,116,114,102,105,110,100, 40, 115, 44, 34, 94, 37,115, 42, 35,100,101,102,105,110,101, 37, 115, 37,115, 42, 40, 91, 94, 37,115, 93, 42, 41, 91, 94, 92, 110, 93, 42, 92,110, 37,115, 42, 34, 41, 10, 32, 32,105,102, 32, 98, 32,116,104,101,110, 10, 32, 32, 32, 95, 99,117,114, 114, 95, 99,111,100,101, 32, 61, 32,115,116,114,115,117, 98, 40,115, 44, 98, 44,101, 41, 10, 32, 32, 32, 68,101,102,105, 110,101, 40,110, 97,109,101, 41, 10, 32, 32, 32,114,101,116, 117,114,110, 32,115,116,114,115,117, 98, 40,115, 44,101, 43, 49, 41, 10, 32, 32,101,110,100, 10, 32,101,110,100, 10, 10, 32, 45, 45, 32,116,114,121, 32,101,110,117,109,101,114, 97, 116,101,115, 10, 10, 32,100,111, 10, 32, 32,108,111, 99, 97, 108, 32, 98, 44,101, 44,110, 97,109,101, 44, 98,111,100,121, 44,118, 97,114,110, 97,109,101, 32, 61, 32,115,116,114,102, 105,110,100, 40,115, 44, 34, 94, 37,115, 42,101,110,117,109, 37,115, 43, 40, 37, 83, 42, 41, 37,115, 42, 40, 37, 98,123, 125, 41, 37,115, 42, 40, 91, 94, 37,115, 59, 93, 42, 41, 37, 115, 42, 59, 63, 37,115, 42, 34, 41, 10, 32, 32,105,102, 32, 98, 32,116,104,101,110, 10, 32, 32, 32, 45, 45,101,114,114, 111,114, 40, 34, 35, 83,111,114,114,121, 44, 32,100,101, 99, 108, 97,114, 97,116,105,111,110, 32,111,102, 32,101,110,117, 109,115, 32, 97,110,100, 32,118, 97,114,105, 97, 98,108,101, 115, 32,111,110, 32,116,104,101, 32,115, 97,109,101, 32,115, 116, 97,116,101,109,101,110,116, 32,105,115, 32,110,111,116, 32,115,117,112,112,111,114,116,101,100, 46, 92,110, 68,101, 99,108, 97,114,101, 32,121,111,117,114, 32,118, 97,114,105, 97, 98,108,101, 32,115,101,112, 97,114, 97,116,101,108,121, 32, 40,101,120, 97,109,112,108,101, 58, 32, 39, 34, 46, 46, 110, 97,109,101, 46, 46, 34, 32, 34, 46, 46,118, 97,114,110, 97,109,101, 46, 46, 34, 59, 39, 41, 34, 41, 10, 32, 32, 32, 95, 99,117,114,114, 95, 99,111,100,101, 32, 61, 32,115,116, 114,115,117, 98, 40,115, 44, 98, 44,101, 41, 10, 32, 32, 32, 69,110,117,109,101,114, 97,116,101, 40,110, 97,109,101, 44, 98,111,100,121, 44,118, 97,114,110, 97,109,101, 41, 10, 32, 32, 32,114,101,116,117,114,110, 32,115,116,114,115,117, 98, 40,115, 44,101, 43, 49, 41, 10, 32, 32,101,110,100, 10, 32, 101,110,100, 10, 10, 45, 45, 32,100,111, 10, 45, 45, 32, 32, 108,111, 99, 97,108, 32, 98, 44,101, 44,110, 97,109,101, 44, 98,111,100,121, 32, 61, 32,115,116,114,102,105,110,100, 40, 115, 44, 34, 94, 37,115, 42,101,110,117,109, 37,115, 43, 40, 37, 83, 42, 41, 37,115, 42, 40, 37, 98,123,125, 41, 37,115, 42, 59, 63, 37,115, 42, 34, 41, 10, 45, 45, 32, 32,105,102, 32, 98, 32,116,104,101,110, 10, 45, 45, 32, 32, 32, 95, 99, 117,114,114, 95, 99,111,100,101, 32, 61, 32,115,116,114,115, 117, 98, 40,115, 44, 98, 44,101, 41, 10, 45, 45, 32, 32, 32, 69,110,117,109,101,114, 97,116,101, 40,110, 97,109,101, 44, 98,111,100,121, 41, 10, 45, 45, 32, 32,114,101,116,117,114, 110, 32,115,116,114,115,117, 98, 40,115, 44,101, 43, 49, 41, 10, 45, 45, 32, 32,101,110,100, 10, 45, 45, 32,101,110,100, 10, 10, 32,100,111, 10, 32, 32,108,111, 99, 97,108, 32, 98, 44,101, 44, 98,111,100,121, 44,110, 97,109,101, 32, 61, 32, 115,116,114,102,105,110,100, 40,115, 44, 34, 94, 37,115, 42, 116,121,112,101,100,101,102, 37,115, 43,101,110,117,109, 91, 94,123, 93, 42, 40, 37, 98,123,125, 41, 37,115, 42, 40, 91, 37,119, 95, 93, 91, 94, 37,115, 93, 42, 41, 37,115, 42, 59, 37,115, 42, 34, 41, 10, 32, 32,105,102, 32, 98, 32,116,104, 101,110, 10, 32, 32, 32, 95, 99,117,114,114, 95, 99,111,100, 101, 32, 61, 32,115,116,114,115,117, 98, 40,115, 44, 98, 44, 101, 41, 10, 32, 32, 32, 69,110,117,109,101,114, 97,116,101, 40,110, 97,109,101, 44, 98,111,100,121, 41, 10, 32, 32, 32, 114,101,116,117,114,110, 32,115,116,114,115,117, 98, 40,115, 44,101, 43, 49, 41, 10, 32, 32,101,110,100, 10, 32,101,110, 100, 10, 10, 32, 45, 45, 32,116,114,121, 32,111,112,101,114, 97,116,111,114, 10, 32,100,111, 10, 32, 32,108,111, 99, 97, 108, 32, 98, 44,101, 44,100,101, 99,108, 44,107,105,110,100, 44, 97,114,103, 44, 99,111,110,115,116, 32, 61, 32,115,116, 114,102,105,110,100, 40,115, 44, 34, 94, 37,115, 42, 40, 91, 95, 37,119, 93, 91, 95, 37,119, 37,115, 37, 42, 38, 58, 60, 62, 44, 93, 45, 37,115, 43,111,112,101,114, 97,116,111,114, 41, 37,115, 42, 40, 91, 94, 37,115, 93, 91, 94, 37,115, 93, 42, 41, 37,115, 42, 40, 37, 98, 40, 41, 41, 37,115, 42, 40, 99, 63,111, 63,110, 63,115, 63,116, 63, 41, 37,115, 42, 59, 37,115, 42, 34, 41, 10, 32, 32,105,102, 32,110,111,116, 32, 98, 32,116,104,101,110, 10, 9, 9, 32, 45, 45, 32,116,114, 121, 32,105,110,108,105,110,101, 10, 32, 32, 32, 98, 44,101, 44,100,101, 99,108, 44,107,105,110,100, 44, 97,114,103, 44, 99,111,110,115,116, 32, 61, 32,115,116,114,102,105,110,100, 40,115, 44, 34, 94, 37,115, 42, 40, 91, 95, 37,119, 93, 91, 95, 37,119, 37,115, 37, 42, 38, 58, 60, 62, 44, 93, 45, 37, 115, 43,111,112,101,114, 97,116,111,114, 41, 37,115, 42, 40, 91, 94, 37,115, 93, 91, 94, 37,115, 93, 42, 41, 37,115, 42, 40, 37, 98, 40, 41, 41, 37,115, 42, 40, 99, 63,111, 63,110, 63,115, 63,116, 63, 41, 91, 37,115, 92,110, 93, 42, 37, 98, 123,125, 37,115, 42, 59, 63, 37,115, 42, 34, 41, 10, 32, 32, 101,110,100, 10, 32, 32,105,102, 32,110,111,116, 32, 98, 32, 116,104,101,110, 10, 32, 32, 9, 45, 45, 32,116,114,121, 32, 99, 97,115,116, 32,111,112,101,114, 97,116,111,114, 10, 32, 32, 9, 98, 44,101, 44,100,101, 99,108, 44,107,105,110,100, 44, 97,114,103, 44, 99,111,110,115,116, 32, 61, 32,115,116, 114,102,105,110,100, 40,115, 44, 32, 34, 94, 37,115, 42, 40, 111,112,101,114, 97,116,111,114, 41, 37,115, 43, 40, 91, 37, 119, 95, 58, 37,100, 60, 62, 37, 42, 37, 38, 37,115, 93, 43, 41, 37,115, 42, 40, 37, 98, 40, 41, 41, 37,115, 42, 40, 99, 63,111, 63,110, 63,115, 63,116, 63, 41, 34, 41, 59, 10, 32, 32, 9,105,102, 32, 98, 32,116,104,101,110, 10, 32, 32, 9, 9,108,111, 99, 97,108, 32, 95, 44,105,101, 32, 61, 32,115, 116,114,105,110,103, 46,102,105,110,100, 40,115, 44, 32, 34, 94, 37,115, 42, 37, 98,123,125, 34, 44, 32,101, 43, 49, 41, 10, 32, 32, 9, 9,105,102, 32,105,101, 32,116,104,101,110, 10, 32, 32, 9, 9, 9,101, 32, 61, 32,105,101, 10, 32, 32, 9, 9,101,110,100, 10, 32, 32, 9,101,110,100, 10, 32, 32, 101,110,100, 10, 32, 32,105,102, 32, 98, 32,116,104,101,110, 10, 32, 32, 32, 95, 99,117,114,114, 95, 99,111,100,101, 32, 61, 32,115,116,114,115,117, 98, 40,115, 44, 98, 44,101, 41, 10, 32, 32, 32, 79,112,101,114, 97,116,111,114, 40,100,101, 99,108, 44,107,105,110,100, 44, 97,114,103, 44, 99,111,110, 115,116, 41, 10, 32, 32, 32,114,101,116,117,114,110, 32,115, 116,114,115,117, 98, 40,115, 44,101, 43, 49, 41, 10, 32, 32, 101,110,100, 10, 32,101,110,100, 10, 10, 32, 45, 45, 32,116, 114,121, 32,102,117,110, 99,116,105,111,110, 10, 32,100,111, 10, 32, 32, 45, 45,108,111, 99, 97,108, 32, 98, 44,101, 44, 100,101, 99,108, 44, 97,114,103, 44, 99,111,110,115,116, 32, 61, 32,115,116,114,102,105,110,100, 40,115, 44, 34, 94, 37, 115, 42, 40, 91,126, 95, 37,119, 93, 91, 95, 64, 37,119, 37, 115, 37, 42, 38, 58, 60, 62, 93, 42, 91, 95, 37,119, 93, 41, 37,115, 42, 40, 37, 98, 40, 41, 41, 37,115, 42, 40, 99, 63, 111, 63,110, 63,115, 63,116, 63, 41, 37,115, 42, 61, 63, 37, 115, 42, 48, 63, 37,115, 42, 59, 37,115, 42, 34, 41, 10, 32, 32,108,111, 99, 97,108, 32, 98, 44,101, 44,100,101, 99,108, 44, 97,114,103, 44, 99,111,110,115,116, 44,118,105,114,116, 32, 61, 32,115,116,114,102,105,110,100, 40,115, 44, 34, 94, 37,115, 42, 40, 91, 94, 37, 40, 92,110, 93, 43, 41, 37,115, 42, 40, 37, 98, 40, 41, 41, 37,115, 42, 40, 99, 63,111, 63, 110, 63,115, 63,116, 63, 41, 37,115, 42, 40, 61, 63, 37,115, 42, 48, 63, 41, 37,115, 42, 59, 37,115, 42, 34, 41, 10, 32, 32,105,102, 32,110,111,116, 32, 98, 32,116,104,101,110, 10, 32, 32, 9, 45, 45, 32,116,114,121, 32,102,117,110, 99,116, 105,111,110, 32,119,105,116,104, 32,116,101,109,112,108, 97, 116,101, 10, 32, 32, 9, 98, 44,101, 44,100,101, 99,108, 44, 97,114,103, 44, 99,111,110,115,116, 32, 61, 32,115,116,114, 102,105,110,100, 40,115, 44, 34, 94, 37,115, 42, 40, 91,126, 95, 37,119, 93, 91, 95, 64, 37,119, 37,115, 37, 42, 38, 58, 60, 62, 93, 42, 91, 95, 37,119, 93, 37, 98, 60, 62, 41, 37, 115, 42, 40, 37, 98, 40, 41, 41, 37,115, 42, 40, 99, 63,111, 63,110, 63,115, 63,116, 63, 41, 37,115, 42, 61, 63, 37,115, 42, 48, 63, 37,115, 42, 59, 37,115, 42, 34, 41, 10, 32, 32, 101,110,100, 10, 32, 32,105,102, 32,110,111,116, 32, 98, 32, 116,104,101,110, 10, 32, 32, 32, 45, 45, 32,116,114,121, 32, 97, 32,115,105,110,103,108,101, 32,108,101,116,116,101,114, 32,102,117,110, 99,116,105,111,110, 32,110, 97,109,101, 10, 32, 32, 32, 98, 44,101, 44,100,101, 99,108, 44, 97,114,103, 44, 99,111,110,115,116, 32, 61, 32,115,116,114,102,105,110, 100, 40,115, 44, 34, 94, 37,115, 42, 40, 91, 95, 37,119, 93, 41, 37,115, 42, 40, 37, 98, 40, 41, 41, 37,115, 42, 40, 99, 63,111, 63,110, 63,115, 63,116, 63, 41, 37,115, 42, 59, 37, 115, 42, 34, 41, 10, 32, 32,101,110,100, 10, 32, 32,105,102, 32,110,111,116, 32, 98, 32,116,104,101,110, 10, 32, 32, 32, 45, 45, 32,116,114,121, 32,102,117,110, 99,116,105,111,110, 32,112,111,105,110,116,101,114, 10, 32, 32, 32, 98, 44,101, 44,100,101, 99,108, 44, 97,114,103, 44, 99,111,110,115,116, 32, 61, 32,115,116,114,102,105,110,100, 40,115, 44, 34, 94, 37,115, 42, 40, 91, 94, 37, 40, 59, 92,110, 93, 43, 37, 98, 40, 41, 41, 37,115, 42, 40, 37, 98, 40, 41, 41, 37,115, 42, 59, 37,115, 42, 34, 41, 10, 32, 32, 32,105,102, 32, 98, 32, 116,104,101,110, 10, 32, 32, 32, 32,100,101, 99,108, 32, 61, 32,115,116,114,105,110,103, 46,103,115,117, 98, 40,100,101, 99,108, 44, 32, 34, 37, 40, 37,115, 42, 37, 42, 40, 91, 94, 37, 41, 93, 42, 41, 37,115, 42, 37, 41, 34, 44, 32, 34, 32, 37, 49, 32, 34, 41, 10, 32, 32, 32,101,110,100, 10, 32, 32, 101,110,100, 10, 32, 32,105,102, 32, 98, 32,116,104,101,110, 10, 32, 32, 9,105,102, 32,118,105,114,116, 32, 97,110,100, 32,115,116,114,105,110,103, 46,102,105,110,100, 40,118,105, 114,116, 44, 32, 34, 91, 61, 48, 93, 34, 41, 32,116,104,101, 110, 10, 32, 32, 9, 9,105,102, 32,115,101,108,102, 46,102, 108, 97,103,115, 32,116,104,101,110, 10, 32, 32, 9, 9, 9, 115,101,108,102, 46,102,108, 97,103,115, 46,112,117,114,101, 95,118,105,114,116,117, 97,108, 32, 61, 32,116,114,117,101, 10, 32, 32, 9, 9,101,110,100, 10, 32, 32, 9,101,110,100, 10, 32, 32, 32, 95, 99,117,114,114, 95, 99,111,100,101, 32, 61, 32,115,116,114,115,117, 98, 40,115, 44, 98, 44,101, 41, 10, 32, 32, 32, 70,117,110, 99,116,105,111,110, 40,100,101, 99,108, 44, 97,114,103, 44, 99,111,110,115,116, 41, 10, 32, 32, 32,114,101,116,117,114,110, 32,115,116,114,115,117, 98, 40,115, 44,101, 43, 49, 41, 10, 32, 32,101,110,100, 10, 32, 101,110,100, 10, 10, 32, 45, 45, 32,116,114,121, 32,105,110, 108,105,110,101, 32,102,117,110, 99,116,105,111,110, 10, 32, 100,111, 10, 32, 32,108,111, 99, 97,108, 32, 98, 44,101, 44, 100,101, 99,108, 44, 97,114,103, 44, 99,111,110,115,116, 32, 61, 32,115,116,114,102,105,110,100, 40,115, 44, 34, 94, 37, 115, 42, 40, 91, 94, 37, 40, 92,110, 93, 43, 41, 37,115, 42, 40, 37, 98, 40, 41, 41, 37,115, 42, 40, 99, 63,111, 63,110, 63,115, 63,116, 63, 41, 91, 94, 59,123, 93, 42, 37, 98,123, 125, 37,115, 42, 59, 63, 37,115, 42, 34, 41, 10, 32, 32, 45, 45,108,111, 99, 97,108, 32, 98, 44,101, 44,100,101, 99,108, 44, 97,114,103, 44, 99,111,110,115,116, 32, 61, 32,115,116, 114,102,105,110,100, 40,115, 44, 34, 94, 37,115, 42, 40, 91, 126, 95, 37,119, 93, 91, 95, 64, 37,119, 37,115, 37, 42, 38, 58, 60, 62, 93, 42, 91, 95, 37,119, 62, 93, 41, 37,115, 42, 40, 37, 98, 40, 41, 41, 37,115, 42, 40, 99, 63,111, 63,110, 63,115, 63,116, 63, 41, 91, 94, 59, 93, 42, 37, 98,123,125, 37,115, 42, 59, 63, 37,115, 42, 34, 41, 10, 32, 32,105,102, 32,110,111,116, 32, 98, 32,116,104,101,110, 10, 32, 32, 32, 45, 45, 32,116,114,121, 32, 97, 32,115,105,110,103,108,101, 32,108,101,116,116,101,114, 32,102,117,110, 99,116,105,111, 110, 32,110, 97,109,101, 10, 32, 32, 32, 98, 44,101, 44,100, 101, 99,108, 44, 97,114,103, 44, 99,111,110,115,116, 32, 61, 32,115,116,114,102,105,110,100, 40,115, 44, 34, 94, 37,115, 42, 40, 91, 95, 37,119, 93, 41, 37,115, 42, 40, 37, 98, 40, 41, 41, 37,115, 42, 40, 99, 63,111, 63,110, 63,115, 63,116, 63, 41, 46, 45, 37, 98,123,125, 37,115, 42, 59, 63, 37,115, 42, 34, 41, 10, 32, 32,101,110,100, 10, 32, 32,105,102, 32, 98, 32,116,104,101,110, 10, 32, 32, 32, 95, 99,117,114,114, 95, 99,111,100,101, 32, 61, 32,115,116,114,115,117, 98, 40, 115, 44, 98, 44,101, 41, 10, 32, 32, 32, 70,117,110, 99,116, 105,111,110, 40,100,101, 99,108, 44, 97,114,103, 44, 99,111, 110,115,116, 41, 10, 32, 32, 32,114,101,116,117,114,110, 32, 115,116,114,115,117, 98, 40,115, 44,101, 43, 49, 41, 10, 32, 32,101,110,100, 10, 32,101,110,100, 10, 10, 32, 45, 45, 32, 116,114,121, 32, 99,108, 97,115,115, 10, 32,100,111, 10, 9, 32,108,111, 99, 97,108, 32, 98, 44,101, 44,110, 97,109,101, 44, 98, 97,115,101, 44, 98,111,100,121, 10, 9, 9, 98, 97, 115,101, 32, 61, 32, 39, 39, 32, 98,111,100,121, 32, 61, 32, 39, 39, 10, 9, 9, 98, 44,101, 44,110, 97,109,101, 32, 61, 32,115,116,114,102,105,110,100, 40,115, 44, 34, 94, 37,115, 42, 99,108, 97,115,115, 37,115, 42, 40, 91, 95, 37,119, 93, 91, 95, 37,119, 64, 93, 42, 41, 37,115, 42, 59, 34, 41, 32, 32, 45, 45, 32,100,117,109,109,121, 32, 99,108, 97,115,115, 10, 9, 9,108,111, 99, 97,108, 32,100,117,109,109,121, 32, 61, 32,102, 97,108,115,101, 10, 9, 9,105,102, 32,110,111, 116, 32, 98, 32,116,104,101,110, 10, 9, 9, 9, 98, 44,101, 44,110, 97,109,101, 32, 61, 32,115,116,114,102,105,110,100, 40,115, 44, 34, 94, 37,115, 42,115,116,114,117, 99,116, 37, 115, 42, 40, 91, 95, 37,119, 93, 91, 95, 37,119, 64, 93, 42, 41, 37,115, 42, 59, 34, 41, 32, 32, 32, 32, 45, 45, 32,100, 117,109,109,121, 32,115,116,114,117, 99,116, 10, 9, 9, 9, 105,102, 32,110,111,116, 32, 98, 32,116,104,101,110, 10, 9, 9, 9, 9, 98, 44,101, 44,110, 97,109,101, 44, 98, 97,115, 101, 44, 98,111,100,121, 32, 61, 32,115,116,114,102,105,110, 100, 40,115, 44, 34, 94, 37,115, 42, 99,108, 97,115,115, 37, 115, 42, 40, 91, 95, 37,119, 93, 91, 95, 37,119, 64, 93, 42, 41, 37,115, 42, 40, 91, 94,123, 93, 45, 41, 37,115, 42, 40, 37, 98,123,125, 41, 37,115, 42, 34, 41, 10, 9, 9, 9, 9, 105,102, 32,110,111,116, 32, 98, 32,116,104,101,110, 10, 9, 9, 9, 9, 9, 98, 44,101, 44,110, 97,109,101, 44, 98, 97, 115,101, 44, 98,111,100,121, 32, 61, 32,115,116,114,102,105, 110,100, 40,115, 44, 34, 94, 37,115, 42,115,116,114,117, 99, 116, 37,115, 43, 40, 91, 95, 37,119, 93, 91, 95, 37,119, 64, 93, 42, 41, 37,115, 42, 40, 91, 94,123, 93, 45, 41, 37,115, 42, 40, 37, 98,123,125, 41, 37,115, 42, 34, 41, 10, 9, 9, 9, 9, 9,105,102, 32,110,111,116, 32, 98, 32,116,104,101, 110, 10, 9, 9, 9, 9, 9, 9, 98, 44,101, 44,110, 97,109, 101, 44, 98, 97,115,101, 44, 98,111,100,121, 32, 61, 32,115, 116,114,102,105,110,100, 40,115, 44, 34, 94, 37,115, 42,117, 110,105,111,110, 37,115, 42, 40, 91, 95, 37,119, 93, 91, 95, 37,119, 64, 93, 42, 41, 37,115, 42, 40, 91, 94,123, 93, 45, 41, 37,115, 42, 40, 37, 98,123,125, 41, 37,115, 42, 34, 41, 10, 9, 9, 9, 9, 9, 9,105,102, 32,110,111,116, 32, 98, 32,116,104,101,110, 10, 9, 9, 9, 9, 9, 9, 9, 98, 97, 115,101, 32, 61, 32, 39, 39, 10, 9, 9, 9, 9, 9, 9, 9, 98, 44,101, 44, 98,111,100,121, 44,110, 97,109,101, 32, 61, 32,115,116,114,102,105,110,100, 40,115, 44, 34, 94, 37,115, 42,116,121,112,101,100,101,102, 37,115, 37,115, 42,115,116, 114,117, 99,116, 37,115, 37,115, 42, 91, 95, 37,119, 93, 42, 37,115, 42, 40, 37, 98,123,125, 41, 37,115, 42, 40, 91, 95, 37,119, 93, 91, 95, 37,119, 64, 93, 42, 41, 37,115, 42, 59, 34, 41, 10, 9, 9, 9, 9, 9, 9,101,110,100, 10, 9, 9, 9, 9, 9,101,110,100, 10, 9, 9, 9, 9,101,110,100, 10, 9, 9, 9,101,108,115,101, 32,100,117,109,109,121, 32, 61, 32, 49, 32,101,110,100, 10, 9, 9,101,108,115,101, 32,100, 117,109,109,121, 32, 61, 32, 49, 32,101,110,100, 10, 9, 9, 105,102, 32, 98, 32,116,104,101,110, 10, 9, 9, 9,105,102, 32, 98, 97,115,101, 32,126, 61, 32, 39, 39, 32,116,104,101, 110, 10, 9, 9, 9, 9, 98, 97,115,101, 32, 61, 32,115,116, 114,105,110,103, 46,103,115,117, 98, 40, 98, 97,115,101, 44, 32, 34, 94, 37,115, 42, 58, 37,115, 42, 34, 44, 32, 34, 34, 41, 10, 9, 9, 9, 9, 98, 97,115,101, 32, 61, 32,115,116, 114,105,110,103, 46,103,115,117, 98, 40, 98, 97,115,101, 44, 32, 34, 37,115, 42,112,117, 98,108,105, 99, 37,115, 42, 34, 44, 32, 34, 34, 41, 10, 9, 9, 9, 9, 98, 97,115,101, 32, 61, 32,115,112,108,105,116, 40, 98, 97,115,101, 44, 32, 34, 44, 34, 41, 10, 9, 9, 9, 9, 45, 45,108,111, 99, 97,108, 32, 98, 44,101, 10, 9, 9, 9, 9, 45, 45, 98, 44,101, 44, 98, 97,115,101, 32, 61, 32,115,116,114,102,105,110,100, 40, 98, 97,115,101, 44, 34, 46, 45, 40, 91, 95, 37,119, 93, 91, 95, 37,119, 60, 62, 44, 58, 93, 42, 41, 36, 34, 41, 10, 9, 9, 9,101,108,115,101, 10, 9, 9, 9, 9, 98, 97,115,101, 32, 61, 32,123,125, 10, 9, 9, 9,101,110,100, 10, 9, 9, 9, 95, 99,117,114,114, 95, 99,111,100,101, 32, 61, 32,115, 116,114,115,117, 98, 40,115, 44, 98, 44,101, 41, 10, 9, 9, 9, 67,108, 97,115,115, 40,110, 97,109,101, 44, 98, 97,115, 101, 44, 98,111,100,121, 41, 10, 9, 9, 9,105,102, 32,110, 111,116, 32,100,117,109,109,121, 32,116,104,101,110, 10, 9, 9, 9, 9,118, 97,114, 98, 44,118, 97,114,101, 44,118, 97, 114,110, 97,109,101, 32, 61, 32,115,116,114,105,110,103, 46, 102,105,110,100, 40,115, 44, 32, 34, 94, 37,115, 42, 40, 91, 95, 37,119, 93, 43, 41, 37,115, 42, 59, 34, 44, 32,101, 43, 49, 41, 10, 9, 9, 9, 9,105,102, 32,118, 97,114, 98, 32, 116,104,101,110, 10, 9, 9, 9, 9, 9, 86, 97,114,105, 97, 98,108,101, 40,110, 97,109,101, 46, 46, 34, 32, 34, 46, 46, 118, 97,114,110, 97,109,101, 41, 10, 9, 9, 9, 9, 9,101, 32, 61, 32,118, 97,114,101, 10, 9, 9, 9, 9,101,110,100, 10, 9, 9, 9,101,110,100, 10, 9, 9, 9,114,101,116,117, 114,110, 32,115,116,114,115,117, 98, 40,115, 44,101, 43, 49, 41, 10, 9, 9,101,110,100, 10, 9,101,110,100, 10, 10, 32, 45, 45, 32,116,114,121, 32,116,121,112,101,100,101,102, 10, 32,100,111, 10, 32, 32,108,111, 99, 97,108, 32, 98, 44,101, 44,116,121,112,101,115, 32, 61, 32,115,116,114,102,105,110, 100, 40,115, 44, 34, 94, 37,115, 42,116,121,112,101,100,101, 102, 37,115, 37,115, 42, 40, 46, 45, 41, 37,115, 42, 59, 37, 115, 42, 34, 41, 10, 32, 32,105,102, 32, 98, 32,116,104,101, 110, 10, 32, 32, 32, 95, 99,117,114,114, 95, 99,111,100,101, 32, 61, 32,115,116,114,115,117, 98, 40,115, 44, 98, 44,101, 41, 10, 32, 32, 32, 84,121,112,101,100,101,102, 40,116,121, 112,101,115, 41, 10, 32, 32, 32,114,101,116,117,114,110, 32, 115,116,114,115,117, 98, 40,115, 44,101, 43, 49, 41, 10, 32, 32,101,110,100, 10, 32,101,110,100, 10, 10, 32, 45, 45, 32, 116,114,121, 32,118, 97,114,105, 97, 98,108,101, 10, 32,100, 111, 10, 32, 32,108,111, 99, 97,108, 32, 98, 44,101, 44,100, 101, 99,108, 32, 61, 32,115,116,114,102,105,110,100, 40,115, 44, 34, 94, 37,115, 42, 40, 91, 95, 37,119, 93, 91, 95, 64, 37,115, 37,119, 37,100, 37, 42, 38, 58, 60, 62, 44, 93, 42, 91, 95, 37,119, 37,100, 93, 41, 37,115, 42, 59, 37,115, 42, 34, 41, 10, 32, 32,105,102, 32, 98, 32,116,104,101,110, 10, 32, 32, 32, 95, 99,117,114,114, 95, 99,111,100,101, 32, 61, 32,115,116,114,115,117, 98, 40,115, 44, 98, 44,101, 41, 10, 10, 9,108,111, 99, 97,108, 32,108,105,115,116, 32, 61, 32, 115,112,108,105,116, 95, 99, 95,116,111,107,101,110,115, 40, 100,101, 99,108, 44, 32, 34, 44, 34, 41, 10, 9, 86, 97,114, 105, 97, 98,108,101, 40,108,105,115,116, 91, 49, 93, 41, 10, 9,105,102, 32,108,105,115,116, 46,110, 32, 62, 32, 49, 32, 116,104,101,110, 10, 9, 9,108,111, 99, 97,108, 32, 95, 44, 95, 44,116,121,112,101, 32, 61, 32,115,116,114,102,105,110, 100, 40,108,105,115,116, 91, 49, 93, 44, 32, 34, 40, 46, 45, 41, 37,115, 43, 40, 91, 94, 37,115, 93, 42, 41, 36, 34, 41, 59, 10, 10, 9, 9,108,111, 99, 97,108, 32,105, 32, 61, 50, 59, 10, 9, 9,119,104,105,108,101, 32,108,105,115,116, 91, 105, 93, 32,100,111, 10, 9, 9, 9, 86, 97,114,105, 97, 98, 108,101, 40,116,121,112,101, 46, 46, 34, 32, 34, 46, 46,108, 105,115,116, 91,105, 93, 41, 10, 9, 9, 9,105, 61,105, 43, 49, 10, 9, 9,101,110,100, 10, 9,101,110,100, 10, 32, 32, 32, 45, 45, 86, 97,114,105, 97, 98,108,101, 40,100,101, 99, 108, 41, 10, 32, 32, 32,114,101,116,117,114,110, 32,115,116, 114,115,117, 98, 40,115, 44,101, 43, 49, 41, 10, 32, 32,101, 110,100, 10, 32,101,110,100, 10, 10, 9, 45, 45, 32,116,114, 121, 32,115,116,114,105,110,103, 10, 32,100,111, 10, 32, 32, 108,111, 99, 97,108, 32, 98, 44,101, 44,100,101, 99,108, 32, 61, 32,115,116,114,102,105,110,100, 40,115, 44, 34, 94, 37, 115, 42, 40, 91, 95, 37,119, 93, 63, 91, 95, 37,115, 37,119, 37,100, 93, 45, 99,104, 97,114, 37,115, 43, 91, 95, 64, 37, 119, 37,100, 93, 42, 37,115, 42, 37, 91, 37,115, 42, 37, 83, 43, 37,115, 42, 37, 93, 41, 37,115, 42, 59, 37,115, 42, 34, 41, 10, 32, 32,105,102, 32, 98, 32,116,104,101,110, 10, 32, 32, 32, 95, 99,117,114,114, 95, 99,111,100,101, 32, 61, 32, 115,116,114,115,117, 98, 40,115, 44, 98, 44,101, 41, 10, 32, 32, 32, 86, 97,114,105, 97, 98,108,101, 40,100,101, 99,108, 41, 10, 32, 32, 32,114,101,116,117,114,110, 32,115,116,114, 115,117, 98, 40,115, 44,101, 43, 49, 41, 10, 32, 32,101,110, 100, 10, 32,101,110,100, 10, 10, 32, 45, 45, 32,116,114,121, 32, 97,114,114, 97,121, 10, 32,100,111, 10, 32, 32,108,111, 99, 97,108, 32, 98, 44,101, 44,100,101, 99,108, 32, 61, 32, 115,116,114,102,105,110,100, 40,115, 44, 34, 94, 37,115, 42, 40, 91, 95, 37,119, 93, 91, 93, 91, 95, 64, 37,115, 37,119, 37,100, 37, 42, 38, 58, 60, 62, 93, 42, 91, 93, 95, 37,119, 37,100, 93, 41, 37,115, 42, 59, 37,115, 42, 34, 41, 10, 32, 32,105,102, 32, 98, 32,116,104,101,110, 10, 32, 32, 32, 95, 99,117,114,114, 95, 99,111,100,101, 32, 61, 32,115,116,114, 115,117, 98, 40,115, 44, 98, 44,101, 41, 10, 32, 32, 32, 65, 114,114, 97,121, 40,100,101, 99,108, 41, 10, 32, 32, 32,114, 101,116,117,114,110, 32,115,116,114,115,117, 98, 40,115, 44, 101, 43, 49, 41, 10, 32, 32,101,110,100, 10, 32,101,110,100, 10, 10, 32, 45, 45, 32,110,111, 32,109, 97,116, 99,104,105, 110,103, 10, 32,105,102, 32,103,115,117, 98, 40,115, 44, 34, 37,115, 37,115, 42, 34, 44, 34, 34, 41, 32,126, 61, 32, 34, 34, 32,116,104,101,110, 10, 32, 32, 95, 99,117,114,114, 95, 99,111,100,101, 32, 61, 32,115, 10, 32, 32,101,114,114,111, 114, 40, 34, 35,112, 97,114,115,101, 32,101,114,114,111,114, 34, 41, 10, 32,101,108,115,101, 10, 32, 32,114,101,116,117, 114,110, 32, 34, 34, 10, 32,101,110,100, 10, 10,101,110,100, 10, 10,102,117,110, 99,116,105,111,110, 32, 99,108, 97,115, 115, 67,111,110,116, 97,105,110,101,114, 58,112, 97,114,115, 101, 32, 40,115, 41, 10, 10, 9, 45, 45,115,101,108,102, 46, 99,117,114,114, 95,109,101,109, 98,101,114, 95, 97, 99, 99, 101,115,115, 32, 61, 32,110,105,108, 10, 10, 32,119,104,105, 108,101, 32,115, 32,126, 61, 32, 39, 39, 32,100,111, 10, 32, 32,115, 32, 61, 32,115,101,108,102, 58,100,111,112, 97,114, 115,101, 40,115, 41, 10, 32, 32,109,101,116,104,111,100,105, 115,118,105,114,116,117, 97,108, 32, 61, 32,102, 97,108,115, 101, 10, 32,101,110,100, 10,101,110,100, 10, 10, 10, 45, 45, 32,112,114,111,112,101,114,116,121, 32,116,121,112,101,115, 10, 10,102,117,110, 99,116,105,111,110, 32,103,101,116, 95, 112,114,111,112,101,114,116,121, 95,116,121,112,101, 40, 41, 10, 10, 9,114,101,116,117,114,110, 32, 99,108, 97,115,115, 67,111,110,116, 97,105,110,101,114, 46, 99,117,114,114, 58, 103,101,116, 95,112,114,111,112,101,114,116,121, 95,116,121, 112,101, 40, 41, 10,101,110,100, 10, 10,102,117,110, 99,116, 105,111,110, 32, 99,108, 97,115,115, 67,111,110,116, 97,105, 110,101,114, 58,115,101,116, 95,112,114,111,112,101,114,116, 121, 95,116,121,112,101, 40,112,116,121,112,101, 41, 10, 9, 112,116,121,112,101, 32, 61, 32,115,116,114,105,110,103, 46, 103,115,117, 98, 40,112,116,121,112,101, 44, 32, 34, 94, 37, 115, 42, 34, 44, 32, 34, 34, 41, 10, 9,112,116,121,112,101, 32, 61, 32,115,116,114,105,110,103, 46,103,115,117, 98, 40, 112,116,121,112,101, 44, 32, 34, 37,115, 42, 36, 34, 44, 32, 34, 34, 41, 10, 10, 9,115,101,108,102, 46,112,114,111,112, 101,114,116,121, 95,116,121,112,101, 32, 61, 32,112,116,121, 112,101, 10,101,110,100, 10, 10,102,117,110, 99,116,105,111, 110, 32, 99,108, 97,115,115, 67,111,110,116, 97,105,110,101, 114, 58,103,101,116, 95,112,114,111,112,101,114,116,121, 95, 116,121,112,101, 40, 41, 10, 9,114,101,116,117,114,110, 32, 115,101,108,102, 46,112,114,111,112,101,114,116,121, 95,116, 121,112,101, 32,111,114, 32, 40,115,101,108,102, 46,112, 97, 114,101,110,116, 32, 97,110,100, 32,115,101,108,102, 46,112, 97,114,101,110,116, 58,103,101,116, 95,112,114,111,112,101, 114,116,121, 95,116,121,112,101, 40, 41, 41, 32,111,114, 32, 34,100,101,102, 97,117,108,116, 34, 10,101,110,100,32 }; tolua_dobuffer(tolua_S,(char*)B,sizeof(B),"tolua embedded: src/bin/lua/container.lua"); lua_settop(tolua_S, top); } /* end of embedded lua code */ { /* begin embedded lua code */ int top = lua_gettop(tolua_S); static unsigned char B[] = { 45, 45, 32,116,111,108,117, 97, 58, 32,112, 97, 99,107, 97, 103,101, 32, 99,108, 97,115,115, 10, 45, 45, 32, 87,114,105, 116,116,101,110, 32, 98,121, 32, 87, 97,108,100,101,109, 97, 114, 32, 67,101,108,101,115, 10, 45, 45, 32, 84,101, 67, 71, 114, 97,102, 47, 80, 85, 67, 45, 82,105,111, 10, 45, 45, 32, 74,117,108, 32, 49, 57, 57, 56, 10, 45, 45, 32, 36, 73,100, 58, 32, 36, 10, 10, 45, 45, 32, 84,104,105,115, 32, 99,111, 100,101, 32,105,115, 32,102,114,101,101, 32,115,111,102,116, 119, 97,114,101, 59, 32,121,111,117, 32, 99, 97,110, 32,114, 101,100,105,115,116,114,105, 98,117,116,101, 32,105,116, 32, 97,110,100, 47,111,114, 32,109,111,100,105,102,121, 32,105, 116, 46, 10, 45, 45, 32, 84,104,101, 32,115,111,102,116,119, 97,114,101, 32,112,114,111,118,105,100,101,100, 32,104,101, 114,101,117,110,100,101,114, 32,105,115, 32,111,110, 32, 97, 110, 32, 34, 97,115, 32,105,115, 34, 32, 98, 97,115,105,115, 44, 32, 97,110,100, 10, 45, 45, 32,116,104,101, 32, 97,117, 116,104,111,114, 32,104, 97,115, 32,110,111, 32,111, 98,108, 105,103, 97,116,105,111,110, 32,116,111, 32,112,114,111,118, 105,100,101, 32,109, 97,105,110,116,101,110, 97,110, 99,101, 44, 32,115,117,112,112,111,114,116, 44, 32,117,112,100, 97, 116,101,115, 44, 10, 45, 45, 32,101,110,104, 97,110, 99,101, 109,101,110,116,115, 44, 32,111,114, 32,109,111,100,105,102, 105, 99, 97,116,105,111,110,115, 46, 10, 10, 10, 10, 45, 45, 32, 80, 97, 99,107, 97,103,101, 32, 99,108, 97,115,115, 10, 45, 45, 32, 82,101,112,114,101,115,101,110,116,115, 32,116, 104,101, 32,119,104,111,108,101, 32,112, 97, 99,107, 97,103, 101, 32, 98,101,105,110,103, 32, 98,111,117,110,100, 46, 10, 45, 45, 32, 84,104,101, 32,102,111,108,108,111,119,105,110, 103, 32,102,105,101,108,100,115, 32, 97,114,101, 32,115,116, 111,114,101,100, 58, 10, 45, 45, 32, 32, 32, 32,123,105,125, 32, 61, 32,108,105,115,116, 32,111,102, 32,111, 98,106,101, 99,116,115, 32,105,110, 32,116,104,101, 32,112, 97, 99,107, 97,103,101, 46, 10, 99,108, 97,115,115, 80, 97, 99,107, 97, 103,101, 32, 61, 32,123, 10, 32, 99,108, 97,115,115,116,121, 112,101, 32, 61, 32, 39,112, 97, 99,107, 97,103,101, 39, 10, 125, 10, 99,108, 97,115,115, 80, 97, 99,107, 97,103,101, 46, 95, 95,105,110,100,101,120, 32, 61, 32, 99,108, 97,115,115, 80, 97, 99,107, 97,103,101, 10,115,101,116,109,101,116, 97, 116, 97, 98,108,101, 40, 99,108, 97,115,115, 80, 97, 99,107, 97,103,101, 44, 99,108, 97,115,115, 67,111,110,116, 97,105, 110,101,114, 41, 10, 10, 45, 45, 32, 80,114,105,110,116, 32, 109,101,116,104,111,100, 10,102,117,110, 99,116,105,111,110, 32, 99,108, 97,115,115, 80, 97, 99,107, 97,103,101, 58,112, 114,105,110,116, 32, 40, 41, 10, 32,112,114,105,110,116, 40, 34, 80, 97, 99,107, 97,103,101, 58, 32, 34, 46, 46,115,101, 108,102, 46,110, 97,109,101, 41, 10, 32,108,111, 99, 97,108, 32,105, 61, 49, 10, 32,119,104,105,108,101, 32,115,101,108, 102, 91,105, 93, 32,100,111, 10, 32, 32,115,101,108,102, 91, 105, 93, 58,112,114,105,110,116, 40, 34, 34, 44, 34, 34, 41, 10, 32, 32,105, 32, 61, 32,105, 43, 49, 10, 32,101,110,100, 10,101,110,100, 10, 10,102,117,110, 99,116,105,111,110, 32, 99,108, 97,115,115, 80, 97, 99,107, 97,103,101, 58,112,114, 101,112,114,111, 99,101,115,115, 32, 40, 41, 10, 10, 32, 45, 45, 32, 97,118,111,105,100, 32,112,114,101,112,114,111, 99, 101,115,115,105,110,103, 32,101,109, 98,101,100,100,101,100, 32, 76,117, 97, 32, 99,111,100,101, 10, 32,108,111, 99, 97, 108, 32, 76, 32, 61, 32,123,125, 10, 32,115,101,108,102, 46, 99,111,100,101, 32, 61, 32,103,115,117, 98, 40,115,101,108, 102, 46, 99,111,100,101, 44, 34, 92,110, 37,115, 42, 37, 36, 37, 91, 34, 44, 34, 92, 49, 34, 41, 32, 45, 45, 32,100,101, 97,108, 32,119,105,116,104, 32,101,109, 98,101,100,100,101, 100, 32,108,117, 97, 32, 99,111,100,101, 10, 32,115,101,108, 102, 46, 99,111,100,101, 32, 61, 32,103,115,117, 98, 40,115, 101,108,102, 46, 99,111,100,101, 44, 34, 92,110, 37,115, 42, 37, 36, 37, 93, 34, 44, 34, 92, 50, 34, 41, 10, 32,115,101, 108,102, 46, 99,111,100,101, 32, 61, 32,103,115,117, 98, 40, 115,101,108,102, 46, 99,111,100,101, 44, 34, 40, 37, 98, 92, 49, 92, 50, 41, 34, 44, 32, 32, 32, 32, 32, 32, 32,102,117, 110, 99,116,105,111,110, 32, 40, 99, 41, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32,116,105, 110,115,101,114,116, 40, 76, 44, 99, 41, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32,114,101, 116,117,114,110, 32, 34, 92,110, 35, 91, 34, 46, 46,103,101, 116,110, 40, 76, 41, 46, 46, 34, 93, 35, 34, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32,101,110, 100, 41, 10, 32, 45, 45, 32, 97,118,111,105,100, 32,112,114, 101,112,114,111, 99,101,115,115,105,110,103, 32,101,109, 98, 101,100,100,101,100, 32, 67, 32, 99,111,100,101, 10, 32,108, 111, 99, 97,108, 32, 67, 32, 61, 32,123,125, 10, 32,115,101, 108,102, 46, 99,111,100,101, 32, 61, 32,103,115,117, 98, 40, 115,101,108,102, 46, 99,111,100,101, 44, 34, 92,110, 37,115, 42, 37, 36, 37, 60, 34, 44, 34, 92, 51, 34, 41, 32, 45, 45, 32,100,101, 97,108, 32,119,105,116,104, 32,101,109, 98,101, 100,100,101,100, 32, 67, 32, 99,111,100,101, 10, 32,115,101, 108,102, 46, 99,111,100,101, 32, 61, 32,103,115,117, 98, 40, 115,101,108,102, 46, 99,111,100,101, 44, 34, 92,110, 37,115, 42, 37, 36, 37, 62, 34, 44, 34, 92, 52, 34, 41, 10, 32,115, 101,108,102, 46, 99,111,100,101, 32, 61, 32,103,115,117, 98, 40,115,101,108,102, 46, 99,111,100,101, 44, 34, 40, 37, 98, 92, 51, 92, 52, 41, 34, 44, 32, 32, 32, 32, 32, 32, 32,102, 117,110, 99,116,105,111,110, 32, 40, 99, 41, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32,116, 105,110,115,101,114,116, 40, 67, 44, 99, 41, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32,114, 101,116,117,114,110, 32, 34, 92,110, 35, 60, 34, 46, 46,103, 101,116,110, 40, 67, 41, 46, 46, 34, 62, 35, 34, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32,101, 110,100, 41, 10, 32, 45, 45, 32, 97,118,111,105,100, 32,112, 114,101,112,114,111, 99,101,115,115,105,110,103, 32,101,109, 98,101,100,100,101,100, 32, 67, 32, 99,111,100,101, 10, 32, 115,101,108,102, 46, 99,111,100,101, 32, 61, 32,103,115,117, 98, 40,115,101,108,102, 46, 99,111,100,101, 44, 34, 92,110, 37,115, 42, 37, 36, 37,123, 34, 44, 34, 92, 53, 34, 41, 32, 45, 45, 32,100,101, 97,108, 32,119,105,116,104, 32,101,109, 98,101,100,100,101,100, 32, 67, 32, 99,111,100,101, 10, 32, 115,101,108,102, 46, 99,111,100,101, 32, 61, 32,103,115,117, 98, 40,115,101,108,102, 46, 99,111,100,101, 44, 34, 92,110, 37,115, 42, 37, 36, 37,125, 34, 44, 34, 92, 54, 34, 41, 10, 32,115,101,108,102, 46, 99,111,100,101, 32, 61, 32,103,115, 117, 98, 40,115,101,108,102, 46, 99,111,100,101, 44, 34, 40, 37, 98, 92, 53, 92, 54, 41, 34, 44, 32, 32, 32, 32, 32, 32, 32,102,117,110, 99,116,105,111,110, 32, 40, 99, 41, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32,116,105,110,115,101,114,116, 40, 67, 44, 99, 41, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32,114,101,116,117,114,110, 32, 34, 92,110, 35, 60, 34, 46, 46,103,101,116,110, 40, 67, 41, 46, 46, 34, 62, 35, 34, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32,101,110,100, 41, 10, 10, 32, 45, 45,115,101,108,102, 46, 99,111,100,101, 32, 61, 32,103,115,117, 98, 40,115,101,108, 102, 46, 99,111,100,101, 44, 34, 92,110, 37,115, 42, 35, 91, 94,100, 93, 91, 94, 92,110, 93, 42, 92,110, 34, 44, 32, 34, 92,110, 92,110, 34, 41, 32, 45, 45, 32,101,108,105,109,105, 110, 97,116,101, 32,112,114,101,112,114,111, 99,101,115,115, 111,114, 32,100,105,114,101, 99,116,105,118,101,115, 32,116, 104, 97,116, 32,100,111,110, 39,116, 32,115,116, 97,114,116, 32,119,105,116,104, 32, 39,100, 39, 10, 32,115,101,108,102, 46, 99,111,100,101, 32, 61, 32,103,115,117, 98, 40,115,101, 108,102, 46, 99,111,100,101, 44, 34, 92,110, 91, 32, 92,116, 93, 42, 35, 91, 32, 92,116, 93, 42, 91, 94,100, 37, 60, 37, 91, 93, 34, 44, 32, 34, 92,110, 47, 47, 34, 41, 32, 45, 45, 32,101,108,105,109,105,110, 97,116,101, 32,112,114,101,112, 114,111, 99,101,115,115,111,114, 32,100,105,114,101, 99,116, 105,118,101,115, 32,116,104, 97,116, 32,100,111,110, 39,116, 32,115,116, 97,114,116, 32,119,105,116,104, 32, 39,100, 39, 10, 10, 32, 45, 45, 32, 97,118,111,105,100, 32,112,114,101, 112,114,111, 99,101,115,115,105,110,103, 32,118,101,114, 98, 97,116,105,109, 32,108,105,110,101,115, 10, 32,108,111, 99, 97,108, 32, 86, 32, 61, 32,123,125, 10, 32,115,101,108,102, 46, 99,111,100,101, 32, 61, 32,103,115,117, 98, 40,115,101, 108,102, 46, 99,111,100,101, 44, 34, 92,110, 40, 37,115, 42, 37, 36, 91, 94, 37, 91, 37, 93, 93, 91, 94, 92,110, 93, 42, 41, 34, 44,102,117,110, 99,116,105,111,110, 32, 40,118, 41, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32,116,105,110,115,101,114,116, 40, 86, 44,118, 41, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32,114,101,116,117,114,110, 32, 34, 92,110, 35, 34, 46, 46,103,101,116,110, 40, 86, 41, 46, 46, 34, 35, 34, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32,101,110,100, 41, 10, 10, 32, 45, 45, 32,112,101,114,102, 111,114,109, 32,103,108,111, 98, 97,108, 32,115,117, 98,115, 116,105,116,117,116,105,111,110, 10, 10, 32,115,101,108,102, 46, 99,111,100,101, 32, 61, 32,103,115,117, 98, 40,115,101, 108,102, 46, 99,111,100,101, 44, 34, 40, 47, 47, 91, 94, 92, 110, 93, 42, 41, 34, 44, 34, 34, 41, 32, 32, 32, 32, 32, 45, 45, 32,101,108,105,109,105,110, 97,116,101, 32, 67, 43, 43, 32, 99,111,109,109,101,110,116,115, 10, 32,115,101,108,102, 46, 99,111,100,101, 32, 61, 32,103,115,117, 98, 40,115,101, 108,102, 46, 99,111,100,101, 44, 34, 47, 37, 42, 34, 44, 34, 92, 49, 34, 41, 10, 32,115,101,108,102, 46, 99,111,100,101, 32, 61, 32,103,115,117, 98, 40,115,101,108,102, 46, 99,111, 100,101, 44, 34, 37, 42, 47, 34, 44, 34, 92, 50, 34, 41, 10, 32,115,101,108,102, 46, 99,111,100,101, 32, 61, 32,103,115, 117, 98, 40,115,101,108,102, 46, 99,111,100,101, 44, 34, 37, 98, 92, 49, 92, 50, 34, 44, 34, 34, 41, 10, 32,115,101,108, 102, 46, 99,111,100,101, 32, 61, 32,103,115,117, 98, 40,115, 101,108,102, 46, 99,111,100,101, 44, 34, 92, 49, 34, 44, 34, 47, 37, 42, 34, 41, 10, 32,115,101,108,102, 46, 99,111,100, 101, 32, 61, 32,103,115,117, 98, 40,115,101,108,102, 46, 99, 111,100,101, 44, 34, 92, 50, 34, 44, 34, 37, 42, 47, 34, 41, 10, 32,115,101,108,102, 46, 99,111,100,101, 32, 61, 32,103, 115,117, 98, 40,115,101,108,102, 46, 99,111,100,101, 44, 34, 37,115, 42, 64, 37,115, 42, 34, 44, 34, 64, 34, 41, 32, 45, 45, 32,101,108,105,109,105,110, 97,116,101, 32,115,112, 97, 99,101,115, 32, 98,101,115,105,100,101, 32, 64, 10, 32,115, 101,108,102, 46, 99,111,100,101, 32, 61, 32,103,115,117, 98, 40,115,101,108,102, 46, 99,111,100,101, 44, 34, 37,115, 63, 105,110,108,105,110,101, 40, 37,115, 41, 34, 44, 34, 37, 49, 34, 41, 32, 45, 45, 32,101,108,105,109,105,110, 97,116,101, 32, 39,105,110,108,105,110,101, 39, 32,107,101,121,119,111, 114,100, 10, 32, 45, 45,115,101,108,102, 46, 99,111,100,101, 32, 61, 32,103,115,117, 98, 40,115,101,108,102, 46, 99,111, 100,101, 44, 34, 37,115, 63,101,120,116,101,114,110, 40, 37, 115, 41, 34, 44, 34, 37, 49, 34, 41, 32, 45, 45, 32,101,108, 105,109,105,110, 97,116,101, 32, 39,101,120,116,101,114,110, 39, 32,107,101,121,119,111,114,100, 10, 32, 45, 45,115,101, 108,102, 46, 99,111,100,101, 32, 61, 32,103,115,117, 98, 40, 115,101,108,102, 46, 99,111,100,101, 44, 34, 37,115, 63,118, 105,114,116,117, 97,108, 40, 37,115, 41, 34, 44, 34, 37, 49, 34, 41, 32, 45, 45, 32,101,108,105,109,105,110, 97,116,101, 32, 39,118,105,114,116,117, 97,108, 39, 32,107,101,121,119, 111,114,100, 10, 32, 45, 45,115,101,108,102, 46, 99,111,100, 101, 32, 61, 32,103,115,117, 98, 40,115,101,108,102, 46, 99, 111,100,101, 44, 34,112,117, 98,108,105, 99, 58, 34, 44, 34, 34, 41, 32, 45, 45, 32,101,108,105,109,105,110, 97,116,101, 32, 39,112,117, 98,108,105, 99, 58, 39, 32,107,101,121,119, 111,114,100, 10, 32,115,101,108,102, 46, 99,111,100,101, 32, 61, 32,103,115,117, 98, 40,115,101,108,102, 46, 99,111,100, 101, 44, 34, 40, 91, 94, 37,119, 95, 93, 41,118,111,105,100, 37,115, 42, 37, 42, 34, 44, 34, 37, 49, 95,117,115,101,114, 100, 97,116, 97, 32, 34, 41, 32, 45, 45, 32,115,117, 98,115, 116,105,116,117,116,101, 32, 39,118,111,105,100, 42, 39, 10, 32,115,101,108,102, 46, 99,111,100,101, 32, 61, 32,103,115, 117, 98, 40,115,101,108,102, 46, 99,111,100,101, 44, 34, 40, 91, 94, 37,119, 95, 93, 41,118,111,105,100, 37,115, 42, 37, 42, 34, 44, 34, 37, 49, 95,117,115,101,114,100, 97,116, 97, 32, 34, 41, 32, 45, 45, 32,115,117, 98,115,116,105,116,117, 116,101, 32, 39,118,111,105,100, 42, 39, 10, 32,115,101,108, 102, 46, 99,111,100,101, 32, 61, 32,103,115,117, 98, 40,115, 101,108,102, 46, 99,111,100,101, 44, 34, 40, 91, 94, 37,119, 95, 93, 41, 99,104, 97,114, 37,115, 42, 37, 42, 34, 44, 34, 37, 49, 95, 99,115,116,114,105,110,103, 32, 34, 41, 32, 32, 45, 45, 32,115,117, 98,115,116,105,116,117,116,101, 32, 39, 99,104, 97,114, 42, 39, 10, 32,115,101,108,102, 46, 99,111, 100,101, 32, 61, 32,103,115,117, 98, 40,115,101,108,102, 46, 99,111,100,101, 44, 34, 40, 91, 94, 37,119, 95, 93, 41,108, 117, 97, 95, 83,116, 97,116,101, 37,115, 42, 37, 42, 34, 44, 34, 37, 49, 95,108,115,116, 97,116,101, 32, 34, 41, 32, 32, 45, 45, 32,115,117, 98,115,116,105,116,117,116,101, 32, 39, 108,117, 97, 95, 83,116, 97,116,101, 42, 39, 10, 10, 32, 45, 45, 32,114,101,115,116,111,114,101, 32,101,109, 98,101,100, 100,101,100, 32, 76,117, 97, 32, 99,111,100,101, 10, 32,115, 101,108,102, 46, 99,111,100,101, 32, 61, 32,103,115,117, 98, 40,115,101,108,102, 46, 99,111,100,101, 44, 34, 37, 35, 37, 91, 40, 37,100, 43, 41, 37, 93, 37, 35, 34, 44,102,117,110, 99,116,105,111,110, 32, 40,110, 41, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32,114,101,116,117, 114,110, 32, 76, 91,116,111,110,117,109, 98,101,114, 40,110, 41, 93, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32,101,110,100, 41, 10, 32, 45, 45, 32,114,101,115,116, 111,114,101, 32,101,109, 98,101,100,100,101,100, 32, 67, 32, 99,111,100,101, 10, 32,115,101,108,102, 46, 99,111,100,101, 32, 61, 32,103,115,117, 98, 40,115,101,108,102, 46, 99,111, 100,101, 44, 34, 37, 35, 37, 60, 40, 37,100, 43, 41, 37, 62, 37, 35, 34, 44,102,117,110, 99,116,105,111,110, 32, 40,110, 41, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32,114,101,116,117,114,110, 32, 67, 91,116,111,110,117, 109, 98,101,114, 40,110, 41, 93, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32,101,110,100, 41, 10, 32, 45, 45, 32,114,101,115,116,111,114,101, 32,118,101,114, 98, 97, 116,105,109, 32,108,105,110,101,115, 10, 32,115,101,108,102, 46, 99,111,100,101, 32, 61, 32,103,115,117, 98, 40,115,101, 108,102, 46, 99,111,100,101, 44, 34, 37, 35, 40, 37,100, 43, 41, 37, 35, 34, 44,102,117,110, 99,116,105,111,110, 32, 40, 110, 41, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32,114, 101,116,117,114,110, 32, 86, 91,116,111,110,117,109, 98,101, 114, 40,110, 41, 93, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32,101,110,100, 41, 10, 10, 32,115,101,108,102, 46, 99,111, 100,101, 32, 61, 32,115,116,114,105,110,103, 46,103,115,117, 98, 40,115,101,108,102, 46, 99,111,100,101, 44, 32, 34, 92, 110, 37,115, 42, 37, 36, 40, 91, 94, 92,110, 93, 43, 41, 34, 44, 32,102,117,110, 99,116,105,111,110, 32, 40,108, 41, 10, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 86,101,114, 98, 97,116,105,109, 40,108, 46, 46, 34, 92,110, 34, 41, 10, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,114,101,116,117,114, 110, 32, 34, 92,110, 34, 10, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 32, 32,101,110,100, 41, 10,101,110,100, 10, 10, 45, 45, 32,116,114, 97,110,115,108, 97,116,101, 32,118,101,114, 98, 97,116,105,109, 10,102,117,110, 99,116,105,111,110, 32, 99,108, 97,115,115, 80, 97, 99,107, 97,103,101, 58,112,114, 101, 97,109, 98,108,101, 32, 40, 41, 10, 32,111,117,116,112, 117,116, 40, 39, 47, 42, 92,110, 39, 41, 10, 32,111,117,116, 112,117,116, 40, 39, 42, 42, 32, 76,117, 97, 32, 98,105,110, 100,105,110,103, 58, 32, 39, 46, 46,115,101,108,102, 46,110, 97,109,101, 46, 46, 39, 92,110, 39, 41, 10, 32,111,117,116, 112,117,116, 40, 39, 42, 42, 32, 71,101,110,101,114, 97,116, 101,100, 32, 97,117,116,111,109, 97,116,105, 99, 97,108,108, 121, 32, 98,121, 32, 39, 46, 46, 84, 79, 76, 85, 65, 95, 86, 69, 82, 83, 73, 79, 78, 46, 46, 39, 32,111,110, 32, 39, 46, 46,100, 97,116,101, 40, 41, 46, 46, 39, 46, 92,110, 39, 41, 10, 32,111,117,116,112,117,116, 40, 39, 42, 47, 92,110, 92, 110, 39, 41, 10, 10, 9,111,117,116,112,117,116, 40, 39, 35, 105,102,110,100,101,102, 32, 95, 95, 99,112,108,117,115,112, 108,117,115, 92,110, 39, 41, 10, 9,111,117,116,112,117,116, 40, 39, 35,105,110, 99,108,117,100,101, 32, 34,115,116,100, 108,105, 98, 46,104, 34, 92,110, 39, 41, 10, 9,111,117,116, 112,117,116, 40, 39, 35,101,110,100,105,102, 92,110, 39, 41, 10, 9,111,117,116,112,117,116, 40, 39, 35,105,110, 99,108, 117,100,101, 32, 34,115,116,114,105,110,103, 46,104, 34, 92, 110, 92,110, 39, 41, 10, 32,111,117,116,112,117,116, 40, 39, 35,105,110, 99,108,117,100,101, 32, 34,116,111,108,117, 97, 43, 43, 46,104, 34, 92,110, 92,110, 39, 41, 10, 10, 32,105, 102, 32,110,111,116, 32,102,108, 97,103,115, 46,104, 32,116, 104,101,110, 10, 32, 32,111,117,116,112,117,116, 40, 39, 47, 42, 32, 69,120,112,111,114,116,101,100, 32,102,117,110, 99, 116,105,111,110, 32, 42, 47, 39, 41, 10, 32, 32,111,117,116, 112,117,116, 40, 39, 84, 79, 76, 85, 65, 95, 65, 80, 73, 32, 105,110,116, 32, 32,116,111,108,117, 97, 95, 39, 46, 46,115, 101,108,102, 46,110, 97,109,101, 46, 46, 39, 95,111,112,101, 110, 32, 40,108,117, 97, 95, 83,116, 97,116,101, 42, 32,116, 111,108,117, 97, 95, 83, 41, 59, 39, 41, 10, 32, 32,111,117, 116,112,117,116, 40, 39, 92,110, 39, 41, 10, 32,101,110,100, 10, 10, 32,108,111, 99, 97,108, 32,105, 61, 49, 10, 32,119, 104,105,108,101, 32,115,101,108,102, 91,105, 93, 32,100,111, 10, 32, 32,115,101,108,102, 91,105, 93, 58,112,114,101, 97, 109, 98,108,101, 40, 41, 10, 32, 32,105, 32, 61, 32,105, 43, 49, 10, 32,101,110,100, 10, 10, 9,105,102, 32,115,101,108, 102, 58,114,101,113,117,105,114,101, 99,111,108,108,101, 99, 116,105,111,110, 40, 95, 99,111,108,108,101, 99,116, 41, 32, 116,104,101,110, 10, 9, 9,111,117,116,112,117,116, 40, 39, 92,110, 39, 41, 10, 9, 9,111,117,116,112,117,116, 40, 39, 47, 42, 32,102,117,110, 99,116,105,111,110, 32,116,111, 32, 114,101,108,101, 97,115,101, 32, 99,111,108,108,101, 99,116, 101,100, 32,111, 98,106,101, 99,116, 32,118,105, 97, 32,100, 101,115,116,114,117, 99,116,111,114, 32, 42, 47, 39, 41, 10, 9, 9,111,117,116,112,117,116, 40, 39, 35,105,102,100,101, 102, 32, 95, 95, 99,112,108,117,115,112,108,117,115, 92,110, 39, 41, 10, 9, 9,102,111,114, 32,105, 44,118, 32,105,110, 32,112, 97,105,114,115, 40, 95, 99,111,108,108,101, 99,116, 41, 32,100,111, 10, 9, 9, 32,111,117,116,112,117,116, 40, 39, 92,110,115,116, 97,116,105, 99, 32,105,110,116, 32, 39, 46, 46,118, 46, 46, 39, 32, 40,108,117, 97, 95, 83,116, 97, 116,101, 42, 32,116,111,108,117, 97, 95, 83, 41, 39, 41, 10, 9, 9, 9,111,117,116,112,117,116, 40, 39,123, 39, 41, 10, 9, 9, 9,111,117,116,112,117,116, 40, 39, 32, 39, 46, 46, 105, 46, 46, 39, 42, 32,115,101,108,102, 32, 61, 32, 40, 39, 46, 46,105, 46, 46, 39, 42, 41, 32,116,111,108,117, 97, 95, 116,111,117,115,101,114,116,121,112,101, 40,116,111,108,117, 97, 95, 83, 44, 49, 44, 48, 41, 59, 39, 41, 10, 9, 9, 9, 111,117,116,112,117,116, 40, 39, 9, 77,116,111,108,117, 97, 95,100,101,108,101,116,101, 40,115,101,108,102, 41, 59, 39, 41, 10, 9, 9, 9,111,117,116,112,117,116, 40, 39, 9,114, 101,116,117,114,110, 32, 48, 59, 39, 41, 10, 9, 9, 9,111, 117,116,112,117,116, 40, 39,125, 39, 41, 10, 9, 9,101,110, 100, 10, 9, 9,111,117,116,112,117,116, 40, 39, 35,101,110, 100,105,102, 92,110, 92,110, 39, 41, 10, 9,101,110,100, 10, 10, 32,111,117,116,112,117,116, 40, 39, 92,110, 39, 41, 10, 32,111,117,116,112,117,116, 40, 39, 47, 42, 32,102,117,110, 99,116,105,111,110, 32,116,111, 32,114,101,103,105,115,116, 101,114, 32,116,121,112,101, 32, 42, 47, 39, 41, 10, 32,111, 117,116,112,117,116, 40, 39,115,116, 97,116,105, 99, 32,118, 111,105,100, 32,116,111,108,117, 97, 95,114,101,103, 95,116, 121,112,101,115, 32, 40,108,117, 97, 95, 83,116, 97,116,101, 42, 32,116,111,108,117, 97, 95, 83, 41, 39, 41, 10, 32,111, 117,116,112,117,116, 40, 39,123, 39, 41, 10, 10, 9,105,102, 32,102,108, 97,103,115, 46,116, 32,116,104,101,110, 10, 9, 9,111,117,116,112,117,116, 40, 34, 35,105,102,110,100,101, 102, 32, 77,116,111,108,117, 97, 95,116,121,112,101,105,100, 92,110, 35,100,101,102,105,110,101, 32, 77,116,111,108,117, 97, 95,116,121,112,101,105,100, 40, 76, 44, 84, 73, 44, 84, 41, 92,110, 35,101,110,100,105,102, 92,110, 34, 41, 10, 9, 101,110,100, 10, 9,102,111,114,101, 97, 99,104, 40, 95,117, 115,101,114,116,121,112,101, 44,102,117,110, 99,116,105,111, 110, 40,110, 44,118, 41, 10, 9, 9,105,102, 32, 40,110,111, 116, 32, 95,103,108,111, 98, 97,108, 95, 99,108, 97,115,115, 101,115, 91,118, 93, 41, 32,111,114, 32, 95,103,108,111, 98, 97,108, 95, 99,108, 97,115,115,101,115, 91,118, 93, 58, 99, 104,101, 99,107, 95,112,117, 98,108,105, 99, 95, 97, 99, 99, 101,115,115, 40, 41, 32,116,104,101,110, 10, 9, 9, 9,111, 117,116,112,117,116, 40, 39, 32,116,111,108,117, 97, 95,117, 115,101,114,116,121,112,101, 40,116,111,108,117, 97, 95, 83, 44, 34, 39, 44,118, 44, 39, 34, 41, 59, 39, 41, 10, 9, 9, 9,105,102, 32,102,108, 97,103,115, 46,116, 32,116,104,101, 110, 10, 9, 9, 9, 9,111,117,116,112,117,116, 40, 39, 32, 77,116,111,108,117, 97, 95,116,121,112,101,105,100, 40,116, 111,108,117, 97, 95, 83, 44,116,121,112,101,105,100, 40, 39, 44,118, 44, 39, 41, 44, 32, 34, 39, 44,118, 44, 39, 34, 41, 59, 39, 41, 10, 9, 9, 9,101,110,100, 10, 9, 9,101,110, 100, 10, 9, 32,101,110,100, 41, 10, 32,111,117,116,112,117, 116, 40, 39,125, 39, 41, 10, 32,111,117,116,112,117,116, 40, 39, 92,110, 39, 41, 10,101,110,100, 10, 10, 45, 45, 32,114, 101,103,105,115,116,101,114, 32,112, 97, 99,107, 97,103,101, 10, 45, 45, 32,119,114,105,116,101, 32,112, 97, 99,107, 97, 103,101, 32,111,112,101,110, 32,102,117,110, 99,116,105,111, 110, 10,102,117,110, 99,116,105,111,110, 32, 99,108, 97,115, 115, 80, 97, 99,107, 97,103,101, 58,114,101,103,105,115,116, 101,114, 32, 40,112,114,101, 41, 10, 32,112,114,101, 32, 61, 32,112,114,101, 32,111,114, 32, 39, 39, 10, 32,112,117,115, 104, 40,115,101,108,102, 41, 10, 32,111,117,116,112,117,116, 40,112,114,101, 46, 46, 34, 47, 42, 32, 79,112,101,110, 32, 102,117,110, 99,116,105,111,110, 32, 42, 47, 34, 41, 10, 32, 111,117,116,112,117,116, 40,112,114,101, 46, 46, 34, 84, 79, 76, 85, 65, 95, 65, 80, 73, 32,105,110,116, 32,116,111,108, 117, 97, 95, 34, 46, 46,115,101,108,102, 46,110, 97,109,101, 46, 46, 34, 95,111,112,101,110, 32, 40,108,117, 97, 95, 83, 116, 97,116,101, 42, 32,116,111,108,117, 97, 95, 83, 41, 34, 41, 10, 32,111,117,116,112,117,116, 40,112,114,101, 46, 46, 34,123, 34, 41, 10, 32,111,117,116,112,117,116, 40,112,114, 101, 46, 46, 34, 32,116,111,108,117, 97, 95,111,112,101,110, 40,116,111,108,117, 97, 95, 83, 41, 59, 34, 41, 10, 32,111, 117,116,112,117,116, 40,112,114,101, 46, 46, 34, 32,116,111, 108,117, 97, 95,114,101,103, 95,116,121,112,101,115, 40,116, 111,108,117, 97, 95, 83, 41, 59, 34, 41, 10, 32,111,117,116, 112,117,116, 40,112,114,101, 46, 46, 34, 32,116,111,108,117, 97, 95,109,111,100,117,108,101, 40,116,111,108,117, 97, 95, 83, 44, 78, 85, 76, 76, 44, 34, 44,115,101,108,102, 58,104, 97,115,118, 97,114, 40, 41, 44, 34, 41, 59, 34, 41, 10, 32, 111,117,116,112,117,116, 40,112,114,101, 46, 46, 34, 32,116, 111,108,117, 97, 95, 98,101,103,105,110,109,111,100,117,108, 101, 40,116,111,108,117, 97, 95, 83, 44, 78, 85, 76, 76, 41, 59, 34, 41, 10, 32,108,111, 99, 97,108, 32,105, 61, 49, 10, 32,119,104,105,108,101, 32,115,101,108,102, 91,105, 93, 32, 100,111, 10, 32, 32,115,101,108,102, 91,105, 93, 58,114,101, 103,105,115,116,101,114, 40,112,114,101, 46, 46, 34, 32, 32, 34, 41, 10, 32, 32,105, 32, 61, 32,105, 43, 49, 10, 32,101, 110,100, 10, 32,111,117,116,112,117,116, 40,112,114,101, 46, 46, 34, 32,116,111,108,117, 97, 95,101,110,100,109,111,100, 117,108,101, 40,116,111,108,117, 97, 95, 83, 41, 59, 34, 41, 10, 32,111,117,116,112,117,116, 40,112,114,101, 46, 46, 34, 32,114,101,116,117,114,110, 32, 49, 59, 34, 41, 10, 32,111, 117,116,112,117,116, 40,112,114,101, 46, 46, 34,125, 34, 41, 10, 10, 32,111,117,116,112,117,116, 40, 34, 92,110, 92,110, 34, 41, 10, 32,111,117,116,112,117,116, 40, 34, 35,105,102, 32,100,101,102,105,110,101,100, 40, 76, 85, 65, 95, 86, 69, 82, 83, 73, 79, 78, 95, 78, 85, 77, 41, 32, 38, 38, 32, 76, 85, 65, 95, 86, 69, 82, 83, 73, 79, 78, 95, 78, 85, 77, 32, 62, 61, 32, 53, 48, 49, 92,110, 34, 41, 59, 10, 32,111,117, 116,112,117,116, 40,112,114,101, 46, 46, 34, 84, 79, 76, 85, 65, 95, 65, 80, 73, 32,105,110,116, 32,108,117, 97,111,112, 101,110, 95, 34, 46, 46,115,101,108,102, 46,110, 97,109,101, 46, 46, 34, 32, 40,108,117, 97, 95, 83,116, 97,116,101, 42, 32,116,111,108,117, 97, 95, 83, 41, 32,123, 34, 41, 10, 32, 111,117,116,112,117,116, 40,112,114,101, 46, 46, 34, 32,114, 101,116,117,114,110, 32,116,111,108,117, 97, 95, 34, 46, 46, 115,101,108,102, 46,110, 97,109,101, 46, 46, 34, 95,111,112, 101,110, 40,116,111,108,117, 97, 95, 83, 41, 59, 34, 41, 10, 32,111,117,116,112,117,116, 40,112,114,101, 46, 46, 34,125, 59, 34, 41, 10, 32,111,117,116,112,117,116, 40, 34, 35,101, 110,100,105,102, 92,110, 92,110, 34, 41, 10, 10, 9,112,111, 112, 40, 41, 10,101,110,100, 10, 10, 45, 45, 32,119,114,105, 116,101, 32,104,101, 97,100,101,114, 32,102,105,108,101, 10, 102,117,110, 99,116,105,111,110, 32, 99,108, 97,115,115, 80, 97, 99,107, 97,103,101, 58,104,101, 97,100,101,114, 32, 40, 41, 10, 32,111,117,116,112,117,116, 40, 39, 47, 42, 92,110, 39, 41, 32,111,117,116,112,117,116, 40, 39, 42, 42, 32, 76, 117, 97, 32, 98,105,110,100,105,110,103, 58, 32, 39, 46, 46, 115,101,108,102, 46,110, 97,109,101, 46, 46, 39, 92,110, 39, 41, 10, 32,111,117,116,112,117,116, 40, 39, 42, 42, 32, 71, 101,110,101,114, 97,116,101,100, 32, 97,117,116,111,109, 97, 116,105, 99, 97,108,108,121, 32, 98,121, 32, 39, 46, 46, 84, 79, 76, 85, 65, 95, 86, 69, 82, 83, 73, 79, 78, 46, 46, 39, 32,111,110, 32, 39, 46, 46,100, 97,116,101, 40, 41, 46, 46, 39, 46, 92,110, 39, 41, 10, 32,111,117,116,112,117,116, 40, 39, 42, 47, 92,110, 92,110, 39, 41, 10, 10, 32,105,102, 32, 110,111,116, 32,102,108, 97,103,115, 46,104, 32,116,104,101, 110, 10, 32, 32,111,117,116,112,117,116, 40, 39, 47, 42, 32, 69,120,112,111,114,116,101,100, 32,102,117,110, 99,116,105, 111,110, 32, 42, 47, 39, 41, 10, 32, 32,111,117,116,112,117, 116, 40, 39, 84, 79, 76, 85, 65, 95, 65, 80, 73, 32,105,110, 116, 32, 32,116,111,108,117, 97, 95, 39, 46, 46,115,101,108, 102, 46,110, 97,109,101, 46, 46, 39, 95,111,112,101,110, 32, 40,108,117, 97, 95, 83,116, 97,116,101, 42, 32,116,111,108, 117, 97, 95, 83, 41, 59, 39, 41, 10, 32, 32,111,117,116,112, 117,116, 40, 39, 92,110, 39, 41, 10, 32,101,110,100, 10,101, 110,100, 10, 10, 45, 45, 32, 73,110,116,101,114,110, 97,108, 32, 99,111,110,115,116,114,117, 99,116,111,114, 10,102,117, 110, 99,116,105,111,110, 32, 95, 80, 97, 99,107, 97,103,101, 32, 40,115,101,108,102, 41, 10, 32,115,101,116,109,101,116, 97,116, 97, 98,108,101, 40,115,101,108,102, 44, 99,108, 97, 115,115, 80, 97, 99,107, 97,103,101, 41, 10, 32,114,101,116, 117,114,110, 32,115,101,108,102, 10,101,110,100, 10, 10, 45, 45, 32, 80, 97,114,115,101, 32, 67, 32,104,101, 97,100,101, 114, 32,102,105,108,101, 32,119,105,116,104, 32,116,111,108, 117, 97, 32,100,105,114,101, 99,116,105,118,101,115, 10, 45, 45, 32, 42, 42, 42, 32, 84,104, 97,110,107,115, 32,116,111, 32, 65,114,105,101,108, 32, 77, 97,110,122,117,114, 32,102, 111,114, 32,102,105,120,105,110,103, 32, 98,117,103,115, 32, 105,110, 32,110,101,115,116,101,100, 32,100,105,114,101, 99, 116,105,118,101,115, 32, 42, 42, 42, 10,102,117,110, 99,116, 105,111,110, 32,101,120,116,114, 97, 99,116, 95, 99,111,100, 101, 40,102,110, 44,115, 41, 10, 9,108,111, 99, 97,108, 32, 99,111,100,101, 32, 61, 32, 39, 92,110, 36, 35,105,110, 99, 108,117,100,101, 32, 34, 39, 46, 46,102,110, 46, 46, 39, 34, 92,110, 39, 10, 9,115, 61, 32, 34, 92,110, 34, 32, 46, 46, 32,115, 32, 46, 46, 32, 34, 92,110, 34, 32, 45, 45, 32, 97, 100,100, 32, 98,108, 97,110,107, 32,108,105,110,101,115, 32, 97,115, 32,115,101,110,116,105,110,101,108,115, 10, 9,108, 111, 99, 97,108, 32, 95, 44,101, 44, 99, 44,116, 32, 61, 32, 115,116,114,102,105,110,100, 40,115, 44, 32, 34, 92,110, 40, 91, 94, 92,110, 93, 45, 41, 91, 84,116, 93, 91, 79,111, 93, 91, 76,108, 93, 91, 85,117, 93, 91, 65, 97, 93, 95, 40, 91, 94, 37,115, 93, 42, 41, 91, 94, 92,110, 93, 42, 92,110, 34, 41, 10, 9,119,104,105,108,101, 32,101, 32,100,111, 10, 9, 9,116, 32, 61, 32,115,116,114,108,111,119,101,114, 40,116, 41, 10, 9, 9,105,102, 32,116, 32, 61, 61, 32, 34, 98,101, 103,105,110, 34, 32,116,104,101,110, 10, 9, 9, 9, 95, 44, 101, 44, 99, 32, 61, 32,115,116,114,102,105,110,100, 40,115, 44, 34, 40, 46, 45, 41, 92,110, 91, 94, 92,110, 93, 42, 91, 84,116, 93, 91, 79,111, 93, 91, 76,108, 93, 91, 85,117, 93, 91, 65, 97, 93, 95, 91, 69,101, 93, 91, 78,110, 93, 91, 68, 100, 93, 91, 94, 92,110, 93, 42, 92,110, 34, 44,101, 41, 10, 9, 9, 9,105,102, 32,110,111,116, 32,101, 32,116,104,101, 110, 10, 9, 9, 9, 32,116,111,108,117, 97, 95,101,114,114, 111,114, 40, 34, 85,110, 98, 97,108, 97,110, 99,101,100, 32, 39,116,111,108,117, 97, 95, 98,101,103,105,110, 39, 32,100, 105,114,101, 99,116,105,118,101, 32,105,110, 32,104,101, 97, 100,101,114, 32,102,105,108,101, 34, 41, 10, 9, 9, 9,101, 110,100, 10, 9, 9,101,110,100, 10, 9, 9, 99,111,100,101, 32, 61, 32, 99,111,100,101, 32, 46, 46, 32, 99, 32, 46, 46, 32, 34, 92,110, 34, 10, 9, 32, 95, 44,101, 44, 99, 44,116, 32, 61, 32,115,116,114,102,105,110,100, 40,115, 44, 32, 34, 92,110, 40, 91, 94, 92,110, 93, 45, 41, 91, 84,116, 93, 91, 79,111, 93, 91, 76,108, 93, 91, 85,117, 93, 91, 65, 97, 93, 95, 40, 91, 94, 37,115, 93, 42, 41, 91, 94, 92,110, 93, 42, 92,110, 34, 44,101, 41, 10, 9,101,110,100, 10, 9,114,101, 116,117,114,110, 32, 99,111,100,101, 10,101,110,100, 10, 10, 45, 45, 32, 67,111,110,115,116,114,117, 99,116,111,114, 10, 45, 45, 32, 69,120,112,101, 99,116,115, 32,116,104,101, 32, 112, 97, 99,107, 97,103,101, 32,110, 97,109,101, 44, 32,116, 104,101, 32,102,105,108,101, 32,101,120,116,101,110,115,105, 111,110, 44, 32, 97,110,100, 32,116,104,101, 32,102,105,108, 101, 32,116,101,120,116, 46, 10,102,117,110, 99,116,105,111, 110, 32, 80, 97, 99,107, 97,103,101, 32, 40,110, 97,109,101, 44,102,110, 41, 10, 32,108,111, 99, 97,108, 32,101,120,116, 32, 61, 32, 34,112,107,103, 34, 10, 10, 32, 45, 45, 32,111, 112,101,110, 32,105,110,112,117,116, 32,102,105,108,101, 44, 32,105,102, 32, 97,110,121, 10, 32,108,111, 99, 97,108, 32, 115,116, 44,109,115,103, 10, 32,105,102, 32,102,110, 32,116, 104,101,110, 10, 32, 32,115,116, 44, 32,109,115,103, 32, 61, 32,114,101, 97,100,102,114,111,109, 40,102,108, 97,103,115, 46,102, 41, 10, 32, 32,105,102, 32,110,111,116, 32,115,116, 32,116,104,101,110, 10, 32, 32, 32,101,114,114,111,114, 40, 39, 35, 39, 46, 46,109,115,103, 41, 10, 32, 32,101,110,100, 10, 32, 32,108,111, 99, 97,108, 32, 95, 59, 32, 95, 44, 32, 95, 44, 32,101,120,116, 32, 61, 32,115,116,114,102,105,110, 100, 40,102,110, 44, 34, 46, 42, 37, 46, 40, 46, 42, 41, 36, 34, 41, 10, 32,101,110,100, 10, 32,108,111, 99, 97,108, 32, 99,111,100,101, 10, 32,105,102, 32,101,120,116, 32, 61, 61, 32, 39,112,107,103, 39, 32,116,104,101,110, 10, 32, 32, 99, 111,100,101, 32, 61, 32,112,114,101,112, 40,115,116, 41, 10, 32,101,108,115,101, 10, 32, 32, 99,111,100,101, 32, 61, 32, 34, 92,110, 34, 32, 46, 46, 32,114,101, 97,100, 40, 39, 42, 97, 39, 41, 10, 32, 32,105,102, 32,101,120,116, 32, 61, 61, 32, 39,104, 39, 32,111,114, 32,101,120,116, 32, 61, 61, 32, 39,104,112,112, 39, 32,116,104,101,110, 10, 32, 32, 32, 99, 111,100,101, 32, 61, 32,101,120,116,114, 97, 99,116, 95, 99, 111,100,101, 40,102,110, 44, 99,111,100,101, 41, 10, 32, 32, 101,110,100, 10, 32,101,110,100, 10, 10, 32, 45, 45, 32, 99, 108,111,115,101, 32,102,105,108,101, 10, 32,105,102, 32,102, 110, 32,116,104,101,110, 10, 32, 32,114,101, 97,100,102,114, 111,109, 40, 41, 10, 32,101,110,100, 10, 10, 32, 45, 45, 32, 100,101, 97,108, 32,119,105,116,104, 32,105,110, 99,108,117, 100,101, 32,100,105,114,101, 99,116,105,118,101, 10, 32,108, 111, 99, 97,108, 32,110,115,117, 98,115,116, 10, 32,114,101, 112,101, 97,116, 10, 32, 32, 99,111,100,101, 44,110,115,117, 98,115,116, 32, 61, 32,103,115,117, 98, 40, 99,111,100,101, 44, 39, 92,110, 37,115, 42, 37, 36, 40, 46, 41,102,105,108, 101, 37,115, 42, 34, 40, 46, 45, 41, 34, 40, 91, 94, 92,110, 93, 42, 41, 92,110, 39, 44, 10, 9, 9,102,117,110, 99,116, 105,111,110, 32, 40,107,105,110,100, 44,102,110, 44,101,120, 116,114, 97, 41, 10, 9, 9, 9,108,111, 99, 97,108, 32, 95, 44, 32, 95, 44, 32,101,120,116, 32, 61, 32,115,116,114,102, 105,110,100, 40,102,110, 44, 34, 46, 42, 37, 46, 40, 46, 42, 41, 36, 34, 41, 10, 9, 9, 9,108,111, 99, 97,108, 32,102, 112, 44,109,115,103, 32, 61, 32,111,112,101,110,102,105,108, 101, 40,102,110, 44, 39,114, 39, 41, 10, 9, 9, 9,105,102, 32,110,111,116, 32,102,112, 32,116,104,101,110, 10, 9, 9, 9, 9,101,114,114,111,114, 40, 39, 35, 39, 46, 46,109,115, 103, 46, 46, 39, 58, 32, 39, 46, 46,102,110, 41, 10, 9, 9, 9,101,110,100, 10, 9, 9, 9,105,102, 32,107,105,110,100, 32, 61, 61, 32, 39,112, 39, 32,116,104,101,110, 10, 9, 9, 9, 9,108,111, 99, 97,108, 32,115, 32, 61, 32,112,114,101, 112, 40,102,112, 41, 10, 9, 9, 9, 9, 99,108,111,115,101, 102,105,108,101, 40,102,112, 41, 10, 9, 9, 9, 9,114,101, 116,117,114,110, 32,115, 10, 9, 9, 9,101,110,100, 10, 9, 9, 9,108,111, 99, 97,108, 32,115, 32, 61, 32,114,101, 97, 100, 40,102,112, 44, 39, 42, 97, 39, 41, 10, 9, 9, 9, 99, 108,111,115,101,102,105,108,101, 40,102,112, 41, 10, 9, 9, 9,105,102, 32,107,105,110,100, 32, 61, 61, 32, 39, 99, 39, 32,111,114, 32,107,105,110,100, 32, 61, 61, 32, 39,104, 39, 32,116,104,101,110, 10, 9, 9, 9, 9,114,101,116,117,114, 110, 32,101,120,116,114, 97, 99,116, 95, 99,111,100,101, 40, 102,110, 44,115, 41, 10, 9, 9, 9,101,108,115,101,105,102, 32,107,105,110,100, 32, 61, 61, 32, 39,108, 39, 32,116,104, 101,110, 10, 9, 9, 9, 9,114,101,116,117,114,110, 32, 34, 92,110, 36, 91, 45, 45, 35, 35, 34, 46, 46,102,110, 46, 46, 34, 92,110, 34, 32, 46, 46, 32,115, 32, 46, 46, 32, 34, 92, 110, 36, 93, 92,110, 34, 10, 9, 9, 9,101,108,115,101,105, 102, 32,107,105,110,100, 32, 61, 61, 32, 39,105, 39, 32,116, 104,101,110, 10, 9, 9, 9, 9,108,111, 99, 97,108, 32,116, 32, 61, 32,123, 99,111,100,101, 61,115,125, 10, 9, 9, 9, 9,101,120,116,114, 97, 32, 61, 32,115,116,114,105,110,103, 46,103,115,117, 98, 40,101,120,116,114, 97, 44, 32, 34, 94, 37,115, 42, 44, 37,115, 42, 34, 44, 32, 34, 34, 41, 10, 9, 9, 9, 9,108,111, 99, 97,108, 32,112, 97,114,115, 32, 61, 32,115,112,108,105,116, 95, 99, 95,116,111,107,101,110,115, 40,101,120,116,114, 97, 44, 32, 34, 44, 34, 41, 10, 9, 9, 9, 9,105,110, 99,108,117,100,101, 95,102,105,108,101, 95, 104,111,111,107, 40,116, 44, 32,102,110, 44, 32,117,110,112, 97, 99,107, 40,112, 97,114,115, 41, 41, 10, 9, 9, 9, 9, 114,101,116,117,114,110, 32, 34, 92,110, 92,110, 34, 32, 46, 46, 32,116, 46, 99,111,100,101, 10, 9, 9, 9,101,108,115, 101, 10, 9, 9, 9, 9,101,114,114,111,114, 40, 39, 35, 73, 110,118, 97,108,105,100, 32,105,110, 99,108,117,100,101, 32, 100,105,114,101, 99,116,105,118,101, 32, 40,117,115,101, 32, 36, 99,102,105,108,101, 44, 32, 36,112,102,105,108,101, 44, 32, 36,108,102,105,108,101, 32,111,114, 32, 36,105,102,105, 108,101, 41, 39, 41, 10, 9, 9, 9,101,110,100, 10, 9, 9, 101,110,100, 41, 10, 32,117,110,116,105,108, 32,110,115,117, 98,115,116, 61, 61, 48, 10, 10, 32, 45, 45, 32,100,101, 97, 108, 32,119,105,116,104, 32,114,101,110, 97,109,105,110,103, 32,100,105,114,101, 99,116,105,118,101, 10, 32,114,101,112, 101, 97,116, 32, 45, 45, 32, 73, 32,100,111,110, 39,116, 32, 107,110,111,119, 32,119,104,121, 32,116,104,105,115, 32,105, 115, 32,110,101, 99,101,115, 97,114,121, 10, 9, 99,111,100, 101, 44,110,115,117, 98,115,116, 32, 61, 32,103,115,117, 98, 40, 99,111,100,101, 44, 39, 92,110, 37,115, 42, 37, 36,114, 101,110, 97,109,105,110,103, 37,115, 42, 40, 46, 45, 41, 37, 115, 42, 92,110, 39, 44, 32,102,117,110, 99,116,105,111,110, 32, 40,114, 41, 32, 97,112,112,101,110,100,114,101,110, 97, 109,105,110,103, 40,114, 41, 32,114,101,116,117,114,110, 32, 34, 92,110, 34, 32,101,110,100, 41, 10, 32,117,110,116,105, 108, 32,110,115,117, 98,115,116, 32, 61, 61, 32, 48, 10, 10, 32,108,111, 99, 97,108, 32,116, 32, 61, 32, 95, 80, 97, 99, 107, 97,103,101, 40, 95, 67,111,110,116, 97,105,110,101,114, 123,110, 97,109,101, 61,110, 97,109,101, 44, 32, 99,111,100, 101, 61, 99,111,100,101,125, 41, 10, 32,112,117,115,104, 40, 116, 41, 10, 32,112,114,101,112,114,111, 99,101,115,115, 95, 104,111,111,107, 40,116, 41, 10, 32,116, 58,112,114,101,112, 114,111, 99,101,115,115, 40, 41, 10, 32,112,114,101,112, 97, 114,115,101, 95,104,111,111,107, 40,116, 41, 10, 32,116, 58, 112, 97,114,115,101, 40,116, 46, 99,111,100,101, 41, 10, 32, 112,111,112, 40, 41, 10, 32,114,101,116,117,114,110, 32,116, 10,101,110,100, 10, 10, 10,115,101,116,109,101,116, 97,116, 97, 98,108,101, 40, 95,101,120,116,114, 97, 95,112, 97,114, 97,109,101,116,101,114,115, 44, 32,123, 32, 95, 95,105,110, 100,101,120, 32, 61, 32, 95, 71, 32,125, 41, 10, 10,102,117, 110, 99,116,105,111,110, 32,112,114,101,112, 40,102,105,108, 101, 41, 10, 10, 32, 32,108,111, 99, 97,108, 32, 99,104,117, 110,107, 32, 61, 32,123, 39,108,111, 99, 97,108, 32, 95, 95, 114,101,116, 32, 61, 32,123, 34, 92, 92,110, 34,125, 92,110, 39,125, 10, 32, 32,102,111,114, 32,108,105,110,101, 32,105, 110, 32,102,105,108,101, 58,108,105,110,101,115, 40, 41, 32, 100,111, 10, 32, 32, 32, 32, 32,105,102, 32,115,116,114,105, 110,103, 46,102,105,110,100, 40,108,105,110,101, 44, 32, 34, 94, 35, 35, 34, 41, 32,116,104,101,110, 10, 32, 32, 32, 32, 32, 32,116, 97, 98,108,101, 46,105,110,115,101,114,116, 40, 99,104,117,110,107, 44, 32,115,116,114,105,110,103, 46,115, 117, 98, 40,108,105,110,101, 44, 32, 51, 41, 32, 46, 46, 32, 34, 92,110, 34, 41, 10, 32, 32, 32, 32, 32,101,108,115,101, 10, 32, 32, 32, 32, 32, 32,108,111, 99, 97,108, 32,108, 97, 115,116, 32, 61, 32, 49, 10, 32, 32, 32, 32, 32, 32,102,111, 114, 32,116,101,120,116, 44, 32,101,120,112,114, 44, 32,105, 110,100,101,120, 32,105,110, 32,115,116,114,105,110,103, 46, 103,102,105,110,100, 40,108,105,110,101, 44, 32, 34, 40, 46, 45, 41, 36, 40, 37, 98, 40, 41, 41, 40, 41, 34, 41, 32,100, 111, 32, 10, 32, 32, 32, 32, 32, 32, 32, 32,108, 97,115,116, 32, 61, 32,105,110,100,101,120, 10, 32, 32, 32, 32, 32, 32, 32, 32,105,102, 32,116,101,120,116, 32,126, 61, 32, 34, 34, 32,116,104,101,110, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32,116, 97, 98,108,101, 46,105,110,115,101,114,116, 40, 99, 104,117,110,107, 44, 32,115,116,114,105,110,103, 46,102,111, 114,109, 97,116, 40, 39,116, 97, 98,108,101, 46,105,110,115, 101,114,116, 40, 95, 95,114,101,116, 44, 32, 37,113, 32, 41, 39, 44, 32,116,101,120,116, 41, 41, 10, 32, 32, 32, 32, 32, 32, 32, 32,101,110,100, 10, 32, 32, 32, 32, 32, 32, 32, 32, 116, 97, 98,108,101, 46,105,110,115,101,114,116, 40, 99,104, 117,110,107, 44, 32,115,116,114,105,110,103, 46,102,111,114, 109, 97,116, 40, 39,116, 97, 98,108,101, 46,105,110,115,101, 114,116, 40, 95, 95,114,101,116, 44, 32, 37,115, 32, 41, 39, 44, 32,101,120,112,114, 41, 41, 10, 32, 32, 32, 32, 32, 32, 101,110,100, 10, 32, 32, 32, 32, 32, 32,116, 97, 98,108,101, 46,105,110,115,101,114,116, 40, 99,104,117,110,107, 44, 32, 115,116,114,105,110,103, 46,102,111,114,109, 97,116, 40, 39, 116, 97, 98,108,101, 46,105,110,115,101,114,116, 40, 95, 95, 114,101,116, 44, 32, 37,113, 41, 92,110, 39, 44, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32,115,116,114,105,110,103, 46,115,117, 98, 40,108,105,110,101, 44, 32,108, 97,115,116, 41, 46, 46, 34, 92,110, 34, 41, 41, 10, 32, 32, 32, 32,101, 110,100, 10, 32, 32,101,110,100, 10, 32, 32,116, 97, 98,108, 101, 46,105,110,115,101,114,116, 40, 99,104,117,110,107, 44, 32, 39, 92,110,114,101,116,117,114,110, 32,116, 97, 98,108, 101, 46, 99,111,110, 99, 97,116, 40, 95, 95,114,101,116, 41, 92,110, 39, 41, 10, 32, 32,108,111, 99, 97,108, 32,102, 44, 101, 32, 61, 32,108,111, 97,100,115,116,114,105,110,103, 40, 116, 97, 98,108,101, 46, 99,111,110, 99, 97,116, 40, 99,104, 117,110,107, 41, 41, 10, 32, 32,105,102, 32,101, 32,116,104, 101,110, 10, 32, 32, 9,101,114,114,111,114, 40, 34, 35, 34, 46, 46,101, 41, 10, 32, 32,101,110,100, 10, 32, 32,115,101, 116,102,101,110,118, 40,102, 44, 32, 95,101,120,116,114, 97, 95,112, 97,114, 97,109,101,116,101,114,115, 41, 10, 32, 32, 114,101,116,117,114,110, 32,102, 40, 41, 10,101,110,100,32 }; tolua_dobuffer(tolua_S,(char*)B,sizeof(B),"tolua embedded: src/bin/lua/package.lua"); lua_settop(tolua_S, top); } /* end of embedded lua code */ { /* begin embedded lua code */ int top = lua_gettop(tolua_S); static unsigned char B[] = { 45, 45, 32,116,111,108,117, 97, 58, 32,109,111,100,117,108, 101, 32, 99,108, 97,115,115, 10, 45, 45, 32, 87,114,105,116, 116,101,110, 32, 98,121, 32, 87, 97,108,100,101,109, 97,114, 32, 67,101,108,101,115, 10, 45, 45, 32, 84,101, 67, 71,114, 97,102, 47, 80, 85, 67, 45, 82,105,111, 10, 45, 45, 32, 74, 117,108, 32, 49, 57, 57, 56, 10, 45, 45, 32, 36, 73,100, 58, 32, 36, 10, 10, 45, 45, 32, 84,104,105,115, 32, 99,111,100, 101, 32,105,115, 32,102,114,101,101, 32,115,111,102,116,119, 97,114,101, 59, 32,121,111,117, 32, 99, 97,110, 32,114,101, 100,105,115,116,114,105, 98,117,116,101, 32,105,116, 32, 97, 110,100, 47,111,114, 32,109,111,100,105,102,121, 32,105,116, 46, 10, 45, 45, 32, 84,104,101, 32,115,111,102,116,119, 97, 114,101, 32,112,114,111,118,105,100,101,100, 32,104,101,114, 101,117,110,100,101,114, 32,105,115, 32,111,110, 32, 97,110, 32, 34, 97,115, 32,105,115, 34, 32, 98, 97,115,105,115, 44, 32, 97,110,100, 10, 45, 45, 32,116,104,101, 32, 97,117,116, 104,111,114, 32,104, 97,115, 32,110,111, 32,111, 98,108,105, 103, 97,116,105,111,110, 32,116,111, 32,112,114,111,118,105, 100,101, 32,109, 97,105,110,116,101,110, 97,110, 99,101, 44, 32,115,117,112,112,111,114,116, 44, 32,117,112,100, 97,116, 101,115, 44, 10, 45, 45, 32,101,110,104, 97,110, 99,101,109, 101,110,116,115, 44, 32,111,114, 32,109,111,100,105,102,105, 99, 97,116,105,111,110,115, 46, 10, 10, 10, 10, 45, 45, 32, 77,111,100,117,108,101, 32, 99,108, 97,115,115, 10, 45, 45, 32, 82,101,112,114,101,115,101,110,116,115, 32,109,111,100, 117,108,101, 46, 10, 45, 45, 32, 84,104,101, 32,102,111,108, 108,111,119,105,110,103, 32,102,105,101,108,100,115, 32, 97, 114,101, 32,115,116,111,114,101,100, 58, 10, 45, 45, 32, 32, 32, 32,123,105,125, 32, 61, 32,108,105,115,116, 32,111,102, 32,111, 98,106,101, 99,116,115, 32,105,110, 32,116,104,101, 32,109,111,100,117,108,101, 46, 10, 99,108, 97,115,115, 77, 111,100,117,108,101, 32, 61, 32,123, 10, 32, 99,108, 97,115, 115,116,121,112,101, 32, 61, 32, 39,109,111,100,117,108,101, 39, 10,125, 10, 99,108, 97,115,115, 77,111,100,117,108,101, 46, 95, 95,105,110,100,101,120, 32, 61, 32, 99,108, 97,115, 115, 77,111,100,117,108,101, 10,115,101,116,109,101,116, 97, 116, 97, 98,108,101, 40, 99,108, 97,115,115, 77,111,100,117, 108,101, 44, 99,108, 97,115,115, 67,111,110,116, 97,105,110, 101,114, 41, 10, 10, 45, 45, 32,114,101,103,105,115,116,101, 114, 32,109,111,100,117,108,101, 10,102,117,110, 99,116,105, 111,110, 32, 99,108, 97,115,115, 77,111,100,117,108,101, 58, 114,101,103,105,115,116,101,114, 32, 40,112,114,101, 41, 10, 32,112,114,101, 32, 61, 32,112,114,101, 32,111,114, 32, 39, 39, 10, 32,112,117,115,104, 40,115,101,108,102, 41, 10, 32, 111,117,116,112,117,116, 40,112,114,101, 46, 46, 39,116,111, 108,117, 97, 95,109,111,100,117,108,101, 40,116,111,108,117, 97, 95, 83, 44, 34, 39, 46, 46,115,101,108,102, 46,110, 97, 109,101, 46, 46, 39, 34, 44, 39, 44,115,101,108,102, 58,104, 97,115,118, 97,114, 40, 41, 44, 39, 41, 59, 39, 41, 10, 32, 111,117,116,112,117,116, 40,112,114,101, 46, 46, 39,116,111, 108,117, 97, 95, 98,101,103,105,110,109,111,100,117,108,101, 40,116,111,108,117, 97, 95, 83, 44, 34, 39, 46, 46,115,101, 108,102, 46,110, 97,109,101, 46, 46, 39, 34, 41, 59, 39, 41, 10, 32,108,111, 99, 97,108, 32,105, 61, 49, 10, 32,119,104, 105,108,101, 32,115,101,108,102, 91,105, 93, 32,100,111, 10, 32, 32,115,101,108,102, 91,105, 93, 58,114,101,103,105,115, 116,101,114, 40,112,114,101, 46, 46, 39, 32, 39, 41, 10, 32, 32,105, 32, 61, 32,105, 43, 49, 10, 32,101,110,100, 10, 32, 111,117,116,112,117,116, 40,112,114,101, 46, 46, 39,116,111, 108,117, 97, 95,101,110,100,109,111,100,117,108,101, 40,116, 111,108,117, 97, 95, 83, 41, 59, 39, 41, 10, 9,112,111,112, 40, 41, 10,101,110,100, 10, 10, 45, 45, 32, 80,114,105,110, 116, 32,109,101,116,104,111,100, 10,102,117,110, 99,116,105, 111,110, 32, 99,108, 97,115,115, 77,111,100,117,108,101, 58, 112,114,105,110,116, 32, 40,105,100,101,110,116, 44, 99,108, 111,115,101, 41, 10, 32,112,114,105,110,116, 40,105,100,101, 110,116, 46, 46, 34, 77,111,100,117,108,101,123, 34, 41, 10, 32,112,114,105,110,116, 40,105,100,101,110,116, 46, 46, 34, 32,110, 97,109,101, 32, 61, 32, 39, 34, 46, 46,115,101,108, 102, 46,110, 97,109,101, 46, 46, 34, 39, 59, 34, 41, 10, 32, 108,111, 99, 97,108, 32,105, 61, 49, 10, 32,119,104,105,108, 101, 32,115,101,108,102, 91,105, 93, 32,100,111, 10, 32, 32, 115,101,108,102, 91,105, 93, 58,112,114,105,110,116, 40,105, 100,101,110,116, 46, 46, 34, 32, 34, 44, 34, 44, 34, 41, 10, 32, 32,105, 32, 61, 32,105, 43, 49, 10, 32,101,110,100, 10, 32,112,114,105,110,116, 40,105,100,101,110,116, 46, 46, 34, 125, 34, 46, 46, 99,108,111,115,101, 41, 10,101,110,100, 10, 10, 45, 45, 32, 73,110,116,101,114,110, 97,108, 32, 99,111, 110,115,116,114,117, 99,116,111,114, 10,102,117,110, 99,116, 105,111,110, 32, 95, 77,111,100,117,108,101, 32, 40,116, 41, 10, 32,115,101,116,109,101,116, 97,116, 97, 98,108,101, 40, 116, 44, 99,108, 97,115,115, 77,111,100,117,108,101, 41, 10, 32, 97,112,112,101,110,100, 40,116, 41, 10, 32,114,101,116, 117,114,110, 32,116, 10,101,110,100, 10, 10, 45, 45, 32, 67, 111,110,115,116,114,117, 99,116,111,114, 10, 45, 45, 32, 69, 120,112,101, 99,116,115, 32,116,119,111, 32,115,116,114,105, 110,103, 32,114,101,112,114,101,115,101,110,116,105,110,103, 32,116,104,101, 32,109,111,100,117,108,101, 32,110, 97,109, 101, 32, 97,110,100, 32, 98,111,100,121, 46, 10,102,117,110, 99,116,105,111,110, 32, 77,111,100,117,108,101, 32, 40,110, 44, 98, 41, 10, 32,108,111, 99, 97,108, 32,116, 32, 61, 32, 95, 77,111,100,117,108,101, 40, 95, 67,111,110,116, 97,105, 110,101,114,123,110, 97,109,101, 61,110,125, 41, 10, 32,112, 117,115,104, 40,116, 41, 10, 32,116, 58,112, 97,114,115,101, 40,115,116,114,115,117, 98, 40, 98, 44, 50, 44,115,116,114, 108,101,110, 40, 98, 41, 45, 49, 41, 41, 32, 45, 45, 32,101, 108,105,109,105,110, 97,116,101, 32, 98,114, 97, 99,101,115, 10, 32,112,111,112, 40, 41, 10, 32,114,101,116,117,114,110, 32,116, 10,101,110,100,32 }; tolua_dobuffer(tolua_S,(char*)B,sizeof(B),"tolua embedded: src/bin/lua/module.lua"); lua_settop(tolua_S, top); } /* end of embedded lua code */ { /* begin embedded lua code */ int top = lua_gettop(tolua_S); static unsigned char B[] = { 45, 45, 32,116,111,108,117, 97, 58, 32,110, 97,109,101,115, 112, 97, 99,101, 32, 99,108, 97,115,115, 10, 45, 45, 32, 87, 114,105,116,116,101,110, 32, 98,121, 32, 87, 97,108,100,101, 109, 97,114, 32, 67,101,108,101,115, 10, 45, 45, 32, 84,101, 67, 71,114, 97,102, 47, 80, 85, 67, 45, 82,105,111, 10, 45, 45, 32, 74,117,108, 32, 50, 48, 48, 51, 10, 45, 45, 32, 36, 73,100, 58, 32, 36, 10, 10, 45, 45, 32, 84,104,105,115, 32, 99,111,100,101, 32,105,115, 32,102,114,101,101, 32,115,111, 102,116,119, 97,114,101, 59, 32,121,111,117, 32, 99, 97,110, 32,114,101,100,105,115,116,114,105, 98,117,116,101, 32,105, 116, 32, 97,110,100, 47,111,114, 32,109,111,100,105,102,121, 32,105,116, 46, 10, 45, 45, 32, 84,104,101, 32,115,111,102, 116,119, 97,114,101, 32,112,114,111,118,105,100,101,100, 32, 104,101,114,101,117,110,100,101,114, 32,105,115, 32,111,110, 32, 97,110, 32, 34, 97,115, 32,105,115, 34, 32, 98, 97,115, 105,115, 44, 32, 97,110,100, 10, 45, 45, 32,116,104,101, 32, 97,117,116,104,111,114, 32,104, 97,115, 32,110,111, 32,111, 98,108,105,103, 97,116,105,111,110, 32,116,111, 32,112,114, 111,118,105,100,101, 32,109, 97,105,110,116,101,110, 97,110, 99,101, 44, 32,115,117,112,112,111,114,116, 44, 32,117,112, 100, 97,116,101,115, 44, 10, 45, 45, 32,101,110,104, 97,110, 99,101,109,101,110,116,115, 44, 32,111,114, 32,109,111,100, 105,102,105, 99, 97,116,105,111,110,115, 46, 10, 10, 10, 45, 45, 32, 78, 97,109,101,115,112, 97, 99,101, 32, 99,108, 97, 115,115, 10, 45, 45, 32, 82,101,112,114,101,115,101,110,116, 115, 32, 97, 32,110, 97,109,101,115, 97,112, 99,101, 32,100, 101,102,105,110,105,116,105,111,110, 46, 10, 45, 45, 32, 83, 116,111,114,101,115, 32,116,104,101, 32,102,111,108,108,111, 119,105,110,103, 32,102,105,101,108,100,115, 58, 10, 45, 45, 32, 32, 32, 32,110, 97,109,101, 32, 61, 32, 99,108, 97,115, 115, 32,110, 97,109,101, 10, 45, 45, 32, 32, 32, 32,123,105, 125, 32, 32, 61, 32,108,105,115,116, 32,111,102, 32,109,101, 109, 98,101,114,115, 10, 99,108, 97,115,115, 78, 97,109,101, 115,112, 97, 99,101, 32, 61, 32,123, 10, 32, 99,108, 97,115, 115,116,121,112,101, 32, 61, 32, 39,110, 97,109,101,115,112, 97, 99,101, 39, 44, 10, 32,110, 97,109,101, 32, 61, 32, 39, 39, 44, 10,125, 10, 99,108, 97,115,115, 78, 97,109,101,115, 112, 97, 99,101, 46, 95, 95,105,110,100,101,120, 32, 61, 32, 99,108, 97,115,115, 78, 97,109,101,115,112, 97, 99,101, 10, 115,101,116,109,101,116, 97,116, 97, 98,108,101, 40, 99,108, 97,115,115, 78, 97,109,101,115,112, 97, 99,101, 44, 99,108, 97,115,115, 77,111,100,117,108,101, 41, 10, 10, 45, 45, 32, 80,114,105,110,116, 32,109,101,116,104,111,100, 10,102,117, 110, 99,116,105,111,110, 32, 99,108, 97,115,115, 78, 97,109, 101,115,112, 97, 99,101, 58,112,114,105,110,116, 32, 40,105, 100,101,110,116, 44, 99,108,111,115,101, 41, 10, 32,112,114, 105,110,116, 40,105,100,101,110,116, 46, 46, 34, 78, 97,109, 101,115,112, 97, 99,101,123, 34, 41, 10, 32,112,114,105,110, 116, 40,105,100,101,110,116, 46, 46, 34, 32,110, 97,109,101, 32, 61, 32, 39, 34, 46, 46,115,101,108,102, 46,110, 97,109, 101, 46, 46, 34, 39, 44, 34, 41, 10, 32,108,111, 99, 97,108, 32,105, 61, 49, 10, 32,119,104,105,108,101, 32,115,101,108, 102, 91,105, 93, 32,100,111, 10, 32, 32,115,101,108,102, 91, 105, 93, 58,112,114,105,110,116, 40,105,100,101,110,116, 46, 46, 34, 32, 34, 44, 34, 44, 34, 41, 10, 32, 32,105, 32, 61, 32,105, 43, 49, 10, 32,101,110,100, 10, 32,112,114,105,110, 116, 40,105,100,101,110,116, 46, 46, 34,125, 34, 46, 46, 99, 108,111,115,101, 41, 10,101,110,100, 10, 10, 45, 45, 32, 73, 110,116,101,114,110, 97,108, 32, 99,111,110,115,116,114,117, 99,116,111,114, 10,102,117,110, 99,116,105,111,110, 32, 95, 78, 97,109,101,115,112, 97, 99,101, 32, 40,116, 41, 10, 32, 115,101,116,109,101,116, 97,116, 97, 98,108,101, 40,116, 44, 99,108, 97,115,115, 78, 97,109,101,115,112, 97, 99,101, 41, 10, 32, 97,112,112,101,110,100, 40,116, 41, 10, 32,114,101, 116,117,114,110, 32,116, 10,101,110,100, 10, 10, 45, 45, 32, 67,111,110,115,116,114,117, 99,116,111,114, 10, 45, 45, 32, 69,120,112,101, 99,116,115, 32,116,104,101, 32,110, 97,109, 101, 32, 97,110,100, 32,116,104,101, 32, 98,111,100,121, 32, 111,102, 32,116,104,101, 32,110, 97,109,101,115,112, 97, 99, 101, 46, 10,102,117,110, 99,116,105,111,110, 32, 78, 97,109, 101,115,112, 97, 99,101, 32, 40,110, 44, 98, 41, 10, 32,108, 111, 99, 97,108, 32, 99, 32, 61, 32, 95, 78, 97,109,101,115, 112, 97, 99,101, 40, 95, 67,111,110,116, 97,105,110,101,114, 123,110, 97,109,101, 61,110,125, 41, 10, 32,112,117,115,104, 40, 99, 41, 10, 32, 99, 58,112, 97,114,115,101, 40,115,116, 114,115,117, 98, 40, 98, 44, 50, 44,115,116,114,108,101,110, 40, 98, 41, 45, 49, 41, 41, 32, 45, 45, 32,101,108,105,109, 105,110, 97,116,101, 32, 98,114, 97, 99,101,115, 10, 32,112, 111,112, 40, 41, 10,101,110,100,32 }; tolua_dobuffer(tolua_S,(char*)B,sizeof(B),"tolua embedded: src/bin/lua/namespace.lua"); lua_settop(tolua_S, top); } /* end of embedded lua code */ { /* begin embedded lua code */ int top = lua_gettop(tolua_S); static unsigned char B[] = { 45, 45, 32,116,111,108,117, 97, 58, 32,100,101,102,105,110, 101, 32, 99,108, 97,115,115, 10, 45, 45, 32, 87,114,105,116, 116,101,110, 32, 98,121, 32, 87, 97,108,100,101,109, 97,114, 32, 67,101,108,101,115, 10, 45, 45, 32, 84,101, 67, 71,114, 97,102, 47, 80, 85, 67, 45, 82,105,111, 10, 45, 45, 32, 74, 117,108, 32, 49, 57, 57, 56, 10, 45, 45, 32, 36, 73,100, 58, 32,100,101,102,105,110,101, 46,108,117, 97, 44,118, 32, 49, 46, 50, 32, 49, 57, 57, 57, 47, 48, 55, 47, 50, 56, 32, 50, 50, 58, 50, 49, 58, 48, 56, 32, 99,101,108,101,115, 32, 69, 120,112, 32, 36, 10, 10, 45, 45, 32, 84,104,105,115, 32, 99, 111,100,101, 32,105,115, 32,102,114,101,101, 32,115,111,102, 116,119, 97,114,101, 59, 32,121,111,117, 32, 99, 97,110, 32, 114,101,100,105,115,116,114,105, 98,117,116,101, 32,105,116, 32, 97,110,100, 47,111,114, 32,109,111,100,105,102,121, 32, 105,116, 46, 10, 45, 45, 32, 84,104,101, 32,115,111,102,116, 119, 97,114,101, 32,112,114,111,118,105,100,101,100, 32,104, 101,114,101,117,110,100,101,114, 32,105,115, 32,111,110, 32, 97,110, 32, 34, 97,115, 32,105,115, 34, 32, 98, 97,115,105, 115, 44, 32, 97,110,100, 10, 45, 45, 32,116,104,101, 32, 97, 117,116,104,111,114, 32,104, 97,115, 32,110,111, 32,111, 98, 108,105,103, 97,116,105,111,110, 32,116,111, 32,112,114,111, 118,105,100,101, 32,109, 97,105,110,116,101,110, 97,110, 99, 101, 44, 32,115,117,112,112,111,114,116, 44, 32,117,112,100, 97,116,101,115, 44, 10, 45, 45, 32,101,110,104, 97,110, 99, 101,109,101,110,116,115, 44, 32,111,114, 32,109,111,100,105, 102,105, 99, 97,116,105,111,110,115, 46, 10, 10, 10, 45, 45, 32, 68,101,102,105,110,101, 32, 99,108, 97,115,115, 10, 45, 45, 32, 82,101,112,114,101,115,101,110,116,115, 32, 97, 32, 110,117,109,101,114,105, 99, 32, 99,111,110,115,116, 32,100, 101,102,105,110,105,116,105,111,110, 10, 45, 45, 32, 84,104, 101, 32,102,111,108,108,111,119,105,110,103, 32,102,105,108, 100,115, 32, 97,114,101, 32,115,116,111,114,101,100, 58, 10, 45, 45, 32, 32, 32,110, 97,109,101, 32, 61, 32, 99,111,110, 115,116, 97,110,116, 32,110, 97,109,101, 10, 99,108, 97,115, 115, 68,101,102,105,110,101, 32, 61, 32,123, 10, 32,110, 97, 109,101, 32, 61, 32, 39, 39, 44, 10,125, 10, 99,108, 97,115, 115, 68,101,102,105,110,101, 46, 95, 95,105,110,100,101,120, 32, 61, 32, 99,108, 97,115,115, 68,101,102,105,110,101, 10, 115,101,116,109,101,116, 97,116, 97, 98,108,101, 40, 99,108, 97,115,115, 68,101,102,105,110,101, 44, 99,108, 97,115,115, 70,101, 97,116,117,114,101, 41, 10, 10, 45, 45, 32,114,101, 103,105,115,116,101,114, 32,100,101,102,105,110,101, 10,102, 117,110, 99,116,105,111,110, 32, 99,108, 97,115,115, 68,101, 102,105,110,101, 58,114,101,103,105,115,116,101,114, 32, 40, 112,114,101, 41, 10, 9,105,102, 32,110,111,116, 32,115,101, 108,102, 58, 99,104,101, 99,107, 95,112,117, 98,108,105, 99, 95, 97, 99, 99,101,115,115, 40, 41, 32,116,104,101,110, 10, 9, 9,114,101,116,117,114,110, 10, 9,101,110,100, 10, 10, 32,112,114,101, 32, 61, 32,112,114,101, 32,111,114, 32, 39, 39, 10, 32,111,117,116,112,117,116, 40,112,114,101, 46, 46, 39,116,111,108,117, 97, 95, 99,111,110,115,116, 97,110,116, 40,116,111,108,117, 97, 95, 83, 44, 34, 39, 46, 46,115,101, 108,102, 46,108,110, 97,109,101, 46, 46, 39, 34, 44, 39, 46, 46,115,101,108,102, 46,110, 97,109,101, 46, 46, 39, 41, 59, 39, 41, 10,101,110,100, 10, 10, 45, 45, 32, 80,114,105,110, 116, 32,109,101,116,104,111,100, 10,102,117,110, 99,116,105, 111,110, 32, 99,108, 97,115,115, 68,101,102,105,110,101, 58, 112,114,105,110,116, 32, 40,105,100,101,110,116, 44, 99,108, 111,115,101, 41, 10, 32,112,114,105,110,116, 40,105,100,101, 110,116, 46, 46, 34, 68,101,102,105,110,101,123, 34, 41, 10, 32,112,114,105,110,116, 40,105,100,101,110,116, 46, 46, 34, 32,110, 97,109,101, 32, 61, 32, 39, 34, 46, 46,115,101,108, 102, 46,110, 97,109,101, 46, 46, 34, 39, 44, 34, 41, 10, 32, 112,114,105,110,116, 40,105,100,101,110,116, 46, 46, 34, 32, 108,110, 97,109,101, 32, 61, 32, 39, 34, 46, 46,115,101,108, 102, 46,108,110, 97,109,101, 46, 46, 34, 39, 44, 34, 41, 10, 32,112,114,105,110,116, 40,105,100,101,110,116, 46, 46, 34, 125, 34, 46, 46, 99,108,111,115,101, 41, 10,101,110,100, 10, 10, 10, 45, 45, 32, 73,110,116,101,114,110, 97,108, 32, 99, 111,110,115,116,114,117, 99,116,111,114, 10,102,117,110, 99, 116,105,111,110, 32, 95, 68,101,102,105,110,101, 32, 40,116, 41, 10, 32,115,101,116,109,101,116, 97,116, 97, 98,108,101, 40,116, 44, 99,108, 97,115,115, 68,101,102,105,110,101, 41, 10, 32,116, 58, 98,117,105,108,100,110, 97,109,101,115, 40, 41, 10, 10, 32,105,102, 32,116, 46,110, 97,109,101, 32, 61, 61, 32, 39, 39, 32,116,104,101,110, 10, 32, 32,101,114,114, 111,114, 40, 34, 35,105,110,118, 97,108,105,100, 32,100,101, 102,105,110,101, 34, 41, 10, 32,101,110,100, 10, 10, 32, 97, 112,112,101,110,100, 40,116, 41, 10, 32,114,101,116,117,114, 110, 32,116, 10,101,110,100, 10, 10, 45, 45, 32, 67,111,110, 115,116,114,117, 99,116,111,114, 10, 45, 45, 32, 69,120,112, 101, 99,116,115, 32, 97, 32,115,116,114,105,110,103, 32,114, 101,112,114,101,115,101,110,116,105,110,103, 32,116,104,101, 32, 99,111,110,115,116, 97,110,116, 32,110, 97,109,101, 10, 102,117,110, 99,116,105,111,110, 32, 68,101,102,105,110,101, 32, 40,110, 41, 10, 32,114,101,116,117,114,110, 32, 95, 68, 101,102,105,110,101,123, 10, 32, 32,110, 97,109,101, 32, 61, 32,110, 10, 32,125, 10,101,110,100,32 }; tolua_dobuffer(tolua_S,(char*)B,sizeof(B),"tolua embedded: src/bin/lua/define.lua"); lua_settop(tolua_S, top); } /* end of embedded lua code */ { /* begin embedded lua code */ int top = lua_gettop(tolua_S); static unsigned char B[] = { 45, 45, 32,116,111,108,117, 97, 58, 32,101,110,117,109,101, 114, 97,116,101, 32, 99,108, 97,115,115, 10, 45, 45, 32, 87, 114,105,116,116,101,110, 32, 98,121, 32, 87, 97,108,100,101, 109, 97,114, 32, 67,101,108,101,115, 10, 45, 45, 32, 84,101, 67, 71,114, 97,102, 47, 80, 85, 67, 45, 82,105,111, 10, 45, 45, 32, 74,117,108, 32, 49, 57, 57, 56, 10, 45, 45, 32, 36, 73,100, 58, 32,101,110,117,109,101,114, 97,116,101, 46,108, 117, 97, 44,118, 32, 49, 46, 51, 32, 50, 48, 48, 48, 47, 48, 49, 47, 50, 52, 32, 50, 48, 58, 52, 49, 58, 49, 53, 32, 99, 101,108,101,115, 32, 69,120,112, 32, 36, 10, 10, 45, 45, 32, 84,104,105,115, 32, 99,111,100,101, 32,105,115, 32,102,114, 101,101, 32,115,111,102,116,119, 97,114,101, 59, 32,121,111, 117, 32, 99, 97,110, 32,114,101,100,105,115,116,114,105, 98, 117,116,101, 32,105,116, 32, 97,110,100, 47,111,114, 32,109, 111,100,105,102,121, 32,105,116, 46, 10, 45, 45, 32, 84,104, 101, 32,115,111,102,116,119, 97,114,101, 32,112,114,111,118, 105,100,101,100, 32,104,101,114,101,117,110,100,101,114, 32, 105,115, 32,111,110, 32, 97,110, 32, 34, 97,115, 32,105,115, 34, 32, 98, 97,115,105,115, 44, 32, 97,110,100, 10, 45, 45, 32,116,104,101, 32, 97,117,116,104,111,114, 32,104, 97,115, 32,110,111, 32,111, 98,108,105,103, 97,116,105,111,110, 32, 116,111, 32,112,114,111,118,105,100,101, 32,109, 97,105,110, 116,101,110, 97,110, 99,101, 44, 32,115,117,112,112,111,114, 116, 44, 32,117,112,100, 97,116,101,115, 44, 10, 45, 45, 32, 101,110,104, 97,110, 99,101,109,101,110,116,115, 44, 32,111, 114, 32,109,111,100,105,102,105, 99, 97,116,105,111,110,115, 46, 10, 10, 10, 45, 45, 32, 69,110,117,109,101,114, 97,116, 101, 32, 99,108, 97,115,115, 10, 45, 45, 32, 82,101,112,114, 101,115,101,110,116,115, 32,101,110,117,109,101,114, 97,116, 105,111,110, 10, 45, 45, 32, 84,104,101, 32,102,111,108,108, 111,119,105,110,103, 32,102,105,101,108,100,115, 32, 97,114, 101, 32,115,116,111,114,101,100, 58, 10, 45, 45, 32, 32, 32, 32,123,105,125, 32, 61, 32,108,105,115,116, 32,111,102, 32, 99,111,110,115,116, 97,110,116, 32,110, 97,109,101,115, 10, 99,108, 97,115,115, 69,110,117,109,101,114, 97,116,101, 32, 61, 32,123, 10,125, 10, 99,108, 97,115,115, 69,110,117,109, 101,114, 97,116,101, 46, 95, 95,105,110,100,101,120, 32, 61, 32, 99,108, 97,115,115, 69,110,117,109,101,114, 97,116,101, 10,115,101,116,109,101,116, 97,116, 97, 98,108,101, 40, 99, 108, 97,115,115, 69,110,117,109,101,114, 97,116,101, 44, 99, 108, 97,115,115, 70,101, 97,116,117,114,101, 41, 10, 10, 45, 45, 32,114,101,103,105,115,116,101,114, 32,101,110,117,109, 101,114, 97,116,105,111,110, 10,102,117,110, 99,116,105,111, 110, 32, 99,108, 97,115,115, 69,110,117,109,101,114, 97,116, 101, 58,114,101,103,105,115,116,101,114, 32, 40,112,114,101, 41, 10, 9,105,102, 32,110,111,116, 32,115,101,108,102, 58, 99,104,101, 99,107, 95,112,117, 98,108,105, 99, 95, 97, 99, 99,101,115,115, 40, 41, 32,116,104,101,110, 10, 9, 9,114, 101,116,117,114,110, 10, 9,101,110,100, 10, 32,112,114,101, 32, 61, 32,112,114,101, 32,111,114, 32, 39, 39, 10, 32,108, 111, 99, 97,108, 32,110,115,112, 97, 99,101, 32, 61, 32,103, 101,116,110, 97,109,101,115,112, 97, 99,101, 40, 99,108, 97, 115,115, 67,111,110,116, 97,105,110,101,114, 46, 99,117,114, 114, 41, 10, 32,108,111, 99, 97,108, 32,105, 61, 49, 10, 32, 119,104,105,108,101, 32,115,101,108,102, 91,105, 93, 32,100, 111, 10, 32, 9,105,102, 32,115,101,108,102, 46,108,110, 97, 109,101,115, 91,105, 93, 32, 97,110,100, 32,115,101,108,102, 46,108,110, 97,109,101,115, 91,105, 93, 32,126, 61, 32, 34, 34, 32,116,104,101,110, 10, 9, 10, 9, 9,111,117,116,112, 117,116, 40,112,114,101, 46, 46, 39,116,111,108,117, 97, 95, 99,111,110,115,116, 97,110,116, 40,116,111,108,117, 97, 95, 83, 44, 34, 39, 46, 46,115,101,108,102, 46,108,110, 97,109, 101,115, 91,105, 93, 46, 46, 39, 34, 44, 39, 46, 46,110,115, 112, 97, 99,101, 46, 46,115,101,108,102, 91,105, 93, 46, 46, 39, 41, 59, 39, 41, 10, 9,101,110,100, 10, 32, 32,105, 32, 61, 32,105, 43, 49, 10, 32,101,110,100, 10,101,110,100, 10, 10, 45, 45, 32, 80,114,105,110,116, 32,109,101,116,104,111, 100, 10,102,117,110, 99,116,105,111,110, 32, 99,108, 97,115, 115, 69,110,117,109,101,114, 97,116,101, 58,112,114,105,110, 116, 32, 40,105,100,101,110,116, 44, 99,108,111,115,101, 41, 10, 32,112,114,105,110,116, 40,105,100,101,110,116, 46, 46, 34, 69,110,117,109,101,114, 97,116,101,123, 34, 41, 10, 32, 112,114,105,110,116, 40,105,100,101,110,116, 46, 46, 34, 32, 110, 97,109,101, 32, 61, 32, 34, 46, 46,115,101,108,102, 46, 110, 97,109,101, 41, 10, 32,108,111, 99, 97,108, 32,105, 61, 49, 10, 32,119,104,105,108,101, 32,115,101,108,102, 91,105, 93, 32,100,111, 10, 32, 32,112,114,105,110,116, 40,105,100, 101,110,116, 46, 46, 34, 32, 39, 34, 46, 46,115,101,108,102, 91,105, 93, 46, 46, 34, 39, 40, 34, 46, 46,115,101,108,102, 46,108,110, 97,109,101,115, 91,105, 93, 46, 46, 34, 41, 44, 34, 41, 10, 32, 32,105, 32, 61, 32,105, 43, 49, 10, 32,101, 110,100, 10, 32,112,114,105,110,116, 40,105,100,101,110,116, 46, 46, 34,125, 34, 46, 46, 99,108,111,115,101, 41, 10,101, 110,100, 10, 10, 45, 45, 32, 73,110,116,101,114,110, 97,108, 32, 99,111,110,115,116,114,117, 99,116,111,114, 10,102,117, 110, 99,116,105,111,110, 32, 95, 69,110,117,109,101,114, 97, 116,101, 32, 40,116, 44,118, 97,114,110, 97,109,101, 41, 10, 32,115,101,116,109,101,116, 97,116, 97, 98,108,101, 40,116, 44, 99,108, 97,115,115, 69,110,117,109,101,114, 97,116,101, 41, 10, 32, 97,112,112,101,110,100, 40,116, 41, 10, 32, 97, 112,112,101,110,100,101,110,117,109, 40,116, 41, 10, 9, 32, 105,102, 32,118, 97,114,110, 97,109,101, 32, 97,110,100, 32, 118, 97,114,110, 97,109,101, 32,126, 61, 32, 34, 34, 32,116, 104,101,110, 10, 9, 9,105,102, 32,116, 46,110, 97,109,101, 32,126, 61, 32, 34, 34, 32,116,104,101,110, 10, 9, 9, 9, 86, 97,114,105, 97, 98,108,101, 40,116, 46,110, 97,109,101, 46, 46, 34, 32, 34, 46, 46,118, 97,114,110, 97,109,101, 41, 10, 9, 9,101,108,115,101, 10, 9, 9, 9,108,111, 99, 97, 108, 32,110,115, 32, 61, 32,103,101,116, 99,117,114,114,110, 97,109,101,115,112, 97, 99,101, 40, 41, 10, 9, 9, 9,119, 97,114,110,105,110,103, 40, 34, 86, 97,114,105, 97, 98,108, 101, 32, 34, 46, 46,110,115, 46, 46,118, 97,114,110, 97,109, 101, 46, 46, 34, 32,111,102, 32,116,121,112,101, 32, 60, 97, 110,111,110,121,109,111,117,115, 32,101,110,117,109, 62, 32, 105,115, 32,100,101, 99,108, 97,114,101,100, 32, 97,115, 32, 114,101, 97,100, 45,111,110,108,121, 34, 41, 10, 9, 9, 9, 86, 97,114,105, 97, 98,108,101, 40, 34,116,111,108,117, 97, 95,114,101, 97,100,111,110,108,121, 32,105,110,116, 32, 34, 46, 46,118, 97,114,110, 97,109,101, 41, 10, 9, 9,101,110, 100, 10, 9,101,110,100, 10, 9, 32,108,111, 99, 97,108, 32, 112, 97,114,101,110,116, 32, 61, 32, 99,108, 97,115,115, 67, 111,110,116, 97,105,110,101,114, 46, 99,117,114,114, 10, 9, 32,105,102, 32,112, 97,114,101,110,116, 32,116,104,101,110, 10, 9, 9,116, 46, 97, 99, 99,101,115,115, 32, 61, 32,112, 97,114,101,110,116, 46, 99,117,114,114, 95,109,101,109, 98, 101,114, 95, 97, 99, 99,101,115,115, 10, 9, 9,116, 46,103, 108,111, 98, 97,108, 95, 97, 99, 99,101,115,115, 32, 61, 32, 116, 58, 99,104,101, 99,107, 95,112,117, 98,108,105, 99, 95, 97, 99, 99,101,115,115, 40, 41, 10, 9, 32,101,110,100, 10, 114,101,116,117,114,110, 32,116, 10,101,110,100, 10, 10, 45, 45, 32, 67,111,110,115,116,114,117, 99,116,111,114, 10, 45, 45, 32, 69,120,112,101, 99,116,115, 32, 97, 32,115,116,114, 105,110,103, 32,114,101,112,114,101,115,101,110,116,105,110, 103, 32,116,104,101, 32,101,110,117,109,101,114, 97,116,101, 32, 98,111,100,121, 10,102,117,110, 99,116,105,111,110, 32, 69,110,117,109,101,114, 97,116,101, 32, 40,110, 44, 98, 44, 118, 97,114,110, 97,109,101, 41, 10, 9, 98, 32, 61, 32,115, 116,114,105,110,103, 46,103,115,117, 98, 40, 98, 44, 32, 34, 44, 91, 37,115, 92,110, 93, 42,125, 34, 44, 32, 34, 92,110, 125, 34, 41, 32, 45, 45, 32,101,108,105,109,105,110, 97,116, 101, 32,108, 97,115,116, 32, 39, 44, 39, 10, 32,108,111, 99, 97,108, 32,116, 32, 61, 32,115,112,108,105,116, 40,115,116, 114,115,117, 98, 40, 98, 44, 50, 44, 45, 50, 41, 44, 39, 44, 39, 41, 32, 45, 45, 32,101,108,105,109,105,110, 97,116,101, 32, 98,114, 97, 99,101,115, 10, 32,108,111, 99, 97,108, 32, 105, 32, 61, 32, 49, 10, 32,108,111, 99, 97,108, 32,101, 32, 61, 32,123,110, 61, 48,125, 10, 32,119,104,105,108,101, 32, 116, 91,105, 93, 32,100,111, 10, 32, 32,108,111, 99, 97,108, 32,116,116, 32, 61, 32,115,112,108,105,116, 40,116, 91,105, 93, 44, 39, 61, 39, 41, 32, 32, 45, 45, 32,100,105,115, 99, 97,114,100, 32,105,110,105,116,105, 97,108, 32,118, 97,108, 117,101, 10, 32, 32,101, 46,110, 32, 61, 32,101, 46,110, 32, 43, 32, 49, 10, 32, 32,101, 91,101, 46,110, 93, 32, 61, 32, 116,116, 91, 49, 93, 10, 32, 32,105, 32, 61, 32,105, 43, 49, 10, 32,101,110,100, 10, 32, 45, 45, 32,115,101,116, 32,108, 117, 97, 32,110, 97,109,101,115, 10, 32,105, 32, 32, 61, 32, 49, 10, 32,101, 46,108,110, 97,109,101,115, 32, 61, 32,123, 125, 10, 32,108,111, 99, 97,108, 32,110,115, 32, 61, 32,103, 101,116, 99,117,114,114,110, 97,109,101,115,112, 97, 99,101, 40, 41, 10, 32,119,104,105,108,101, 32,101, 91,105, 93, 32, 100,111, 10, 32, 32,108,111, 99, 97,108, 32,116, 32, 61, 32, 115,112,108,105,116, 40,101, 91,105, 93, 44, 39, 64, 39, 41, 10, 32, 32,101, 91,105, 93, 32, 61, 32,116, 91, 49, 93, 10, 9, 9,105,102, 32,110,111,116, 32,116, 91, 50, 93, 32,116, 104,101,110, 10, 9, 9, 32,116, 91, 50, 93, 32, 61, 32, 97, 112,112,108,121,114,101,110, 97,109,105,110,103, 40,116, 91, 49, 93, 41, 10, 9, 9,101,110,100, 10, 32, 32,101, 46,108, 110, 97,109,101,115, 91,105, 93, 32, 61, 32,116, 91, 50, 93, 32,111,114, 32,116, 91, 49, 93, 10, 32, 32, 95,103,108,111, 98, 97,108, 95,101,110,117,109,115, 91, 32,110,115, 46, 46, 101, 91,105, 93, 32, 93, 32, 61, 32, 40,110,115, 46, 46,101, 91,105, 93, 41, 10, 32, 32,105, 32, 61, 32,105, 43, 49, 10, 32,101,110,100, 10, 9,101, 46,110, 97,109,101, 32, 61, 32, 110, 10, 9,105,102, 32,110, 32,126, 61, 32, 34, 34, 32,116, 104,101,110, 10, 9, 9, 84,121,112,101,100,101,102, 40, 34, 105,110,116, 32, 34, 46, 46,110, 41, 10, 9,101,110,100, 10, 32,114,101,116,117,114,110, 32, 95, 69,110,117,109,101,114, 97,116,101, 40,101, 44, 32,118, 97,114,110, 97,109,101, 41, 10,101,110,100,32 }; tolua_dobuffer(tolua_S,(char*)B,sizeof(B),"tolua embedded: src/bin/lua/enumerate.lua"); lua_settop(tolua_S, top); } /* end of embedded lua code */ { /* begin embedded lua code */ int top = lua_gettop(tolua_S); static unsigned char B[] = { 45, 45, 32,116,111,108,117, 97, 58, 32,100,101, 99,108, 97, 114, 97,116,105,111,110, 32, 99,108, 97,115,115, 10, 45, 45, 32, 87,114,105,116,116,101,110, 32, 98,121, 32, 87, 97,108, 100,101,109, 97,114, 32, 67,101,108,101,115, 10, 45, 45, 32, 84,101, 67, 71,114, 97,102, 47, 80, 85, 67, 45, 82,105,111, 10, 45, 45, 32, 74,117,108, 32, 49, 57, 57, 56, 10, 45, 45, 32, 36, 73,100, 58, 32, 36, 10, 10, 45, 45, 32, 84,104,105, 115, 32, 99,111,100,101, 32,105,115, 32,102,114,101,101, 32, 115,111,102,116,119, 97,114,101, 59, 32,121,111,117, 32, 99, 97,110, 32,114,101,100,105,115,116,114,105, 98,117,116,101, 32,105,116, 32, 97,110,100, 47,111,114, 32,109,111,100,105, 102,121, 32,105,116, 46, 10, 45, 45, 32, 84,104,101, 32,115, 111,102,116,119, 97,114,101, 32,112,114,111,118,105,100,101, 100, 32,104,101,114,101,117,110,100,101,114, 32,105,115, 32, 111,110, 32, 97,110, 32, 34, 97,115, 32,105,115, 34, 32, 98, 97,115,105,115, 44, 32, 97,110,100, 10, 45, 45, 32,116,104, 101, 32, 97,117,116,104,111,114, 32,104, 97,115, 32,110,111, 32,111, 98,108,105,103, 97,116,105,111,110, 32,116,111, 32, 112,114,111,118,105,100,101, 32,109, 97,105,110,116,101,110, 97,110, 99,101, 44, 32,115,117,112,112,111,114,116, 44, 32, 117,112,100, 97,116,101,115, 44, 10, 45, 45, 32,101,110,104, 97,110, 99,101,109,101,110,116,115, 44, 32,111,114, 32,109, 111,100,105,102,105, 99, 97,116,105,111,110,115, 46, 10, 10, 10, 45, 45, 32, 68,101, 99,108, 97,114, 97,116,105,111,110, 32, 99,108, 97,115,115, 10, 45, 45, 32, 82,101,112,114,101, 115,101,110,116,115, 32,118, 97,114,105, 97, 98,108,101, 44, 32,102,117,110, 99,116,105,111,110, 44, 32,111,114, 32, 97, 114,103,117,109,101,110,116, 32,100,101, 99,108, 97,114, 97, 116,105,111,110, 46, 10, 45, 45, 32, 83,116,111,114,101,115, 32,116,104,101, 32,102,111,108,108,111,119,105,110,103, 32, 102,105,101,108,100,115, 58, 10, 45, 45, 32, 32,109,111,100, 32, 32, 61, 32,116,121,112,101, 32,109,111,100,105,102,105, 101,114,115, 10, 45, 45, 32, 32,116,121,112,101, 32, 61, 32, 116,121,112,101, 10, 45, 45, 32, 32,112,116,114, 32, 32, 61, 32, 34, 42, 34, 32,111,114, 32, 34, 38, 34, 44, 32,105,102, 32,114,101,112,114,101,115,101,110,116,105,110,103, 32, 97, 32,112,111,105,110,116,101,114, 32,111,114, 32, 97, 32,114, 101,102,101,114,101,110, 99,101, 10, 45, 45, 32, 32,110, 97, 109,101, 32, 61, 32,110, 97,109,101, 10, 45, 45, 32, 32,100, 105,109, 32, 32, 61, 32,100,105,109,101,110,115,105,111,110, 44, 32,105,102, 32, 97, 32,118,101, 99,116,111,114, 10, 45, 45, 32, 32,100,101,102, 32, 32, 61, 32,100,101,102, 97,117, 108,116, 32,118, 97,108,117,101, 44, 32,105,102, 32, 97,110, 121, 32, 40,111,110,108,121, 32,102,111,114, 32, 97,114,103, 117,109,101,110,116,115, 41, 10, 45, 45, 32, 32,114,101,116, 32, 32, 61, 32, 34, 42, 34, 32,111,114, 32, 34, 38, 34, 44, 32,105,102, 32,118, 97,108,117,101, 32,105,115, 32,116,111, 32, 98,101, 32,114,101,116,117,114,110,101,100, 32, 40,111, 110,108,121, 32,102,111,114, 32, 97,114,103,117,109,101,110, 116,115, 41, 10, 99,108, 97,115,115, 68,101, 99,108, 97,114, 97,116,105,111,110, 32, 61, 32,123, 10, 32,109,111,100, 32, 61, 32, 39, 39, 44, 10, 32,116,121,112,101, 32, 61, 32, 39, 39, 44, 10, 32,112,116,114, 32, 61, 32, 39, 39, 44, 10, 32, 110, 97,109,101, 32, 61, 32, 39, 39, 44, 10, 32,100,105,109, 32, 61, 32, 39, 39, 44, 10, 32,114,101,116, 32, 61, 32, 39, 39, 44, 10, 32,100,101,102, 32, 61, 32, 39, 39, 10,125, 10, 99,108, 97,115,115, 68,101, 99,108, 97,114, 97,116,105,111, 110, 46, 95, 95,105,110,100,101,120, 32, 61, 32, 99,108, 97, 115,115, 68,101, 99,108, 97,114, 97,116,105,111,110, 10,115, 101,116,109,101,116, 97,116, 97, 98,108,101, 40, 99,108, 97, 115,115, 68,101, 99,108, 97,114, 97,116,105,111,110, 44, 99, 108, 97,115,115, 70,101, 97,116,117,114,101, 41, 10, 10, 45, 45, 32, 67,114,101, 97,116,101, 32, 97,110, 32,117,110,105, 113,117,101, 32,118, 97,114,105, 97, 98,108,101, 32,110, 97, 109,101, 10,102,117,110, 99,116,105,111,110, 32, 99,114,101, 97,116,101, 95,118, 97,114,110, 97,109,101, 32, 40, 41, 10, 32,105,102, 32,110,111,116, 32, 95,118, 97,114,110,117,109, 98,101,114, 32,116,104,101,110, 32, 95,118, 97,114,110,117, 109, 98,101,114, 32, 61, 32, 48, 32,101,110,100, 10, 32, 95, 118, 97,114,110,117,109, 98,101,114, 32, 61, 32, 95,118, 97, 114,110,117,109, 98,101,114, 32, 43, 32, 49, 10, 32,114,101, 116,117,114,110, 32, 34,116,111,108,117, 97, 95,118, 97,114, 95, 34, 46, 46, 95,118, 97,114,110,117,109, 98,101,114, 10, 101,110,100, 10, 10, 45, 45, 32, 67,104,101, 99,107, 32,100, 101, 99,108, 97,114, 97,116,105,111,110, 32,110, 97,109,101, 10, 45, 45, 32, 73,116, 32, 97,108,115,111, 32,105,100,101, 110,116,105,102,105,101,115, 32,100,101,102, 97,117,108,116, 32,118, 97,108,117,101,115, 10,102,117,110, 99,116,105,111, 110, 32, 99,108, 97,115,115, 68,101, 99,108, 97,114, 97,116, 105,111,110, 58, 99,104,101, 99,107,110, 97,109,101, 32, 40, 41, 10, 10, 32,105,102, 32,115,116,114,115,117, 98, 40,115, 101,108,102, 46,110, 97,109,101, 44, 49, 44, 49, 41, 32, 61, 61, 32, 39, 91, 39, 32, 97,110,100, 32,110,111,116, 32,102, 105,110,100,116,121,112,101, 40,115,101,108,102, 46,116,121, 112,101, 41, 32,116,104,101,110, 10, 32, 32,115,101,108,102, 46,110, 97,109,101, 32, 61, 32,115,101,108,102, 46,116,121, 112,101, 46, 46,115,101,108,102, 46,110, 97,109,101, 10, 32, 32,108,111, 99, 97,108, 32,109, 32, 61, 32,115,112,108,105, 116, 40,115,101,108,102, 46,109,111,100, 44, 39, 37,115, 37, 115, 42, 39, 41, 10, 32, 32,115,101,108,102, 46,116,121,112, 101, 32, 61, 32,109, 91,109, 46,110, 93, 10, 32, 32,115,101, 108,102, 46,109,111,100, 32, 61, 32, 99,111,110, 99, 97,116, 40,109, 44, 49, 44,109, 46,110, 45, 49, 41, 10, 32,101,110, 100, 10, 10, 32,108,111, 99, 97,108, 32,116, 32, 61, 32,115, 112,108,105,116, 40,115,101,108,102, 46,110, 97,109,101, 44, 39, 61, 39, 41, 10, 32,105,102, 32,116, 46,110, 61, 61, 50, 32,116,104,101,110, 10, 32, 32,115,101,108,102, 46,110, 97, 109,101, 32, 61, 32,116, 91, 49, 93, 10, 32, 32,115,101,108, 102, 46,100,101,102, 32, 61, 32,102,105,110,100, 95,101,110, 117,109, 95,118, 97,114, 40,116, 91,116, 46,110, 93, 41, 10, 32,101,110,100, 10, 10, 32,108,111, 99, 97,108, 32, 98, 44, 101, 44,100, 32, 61, 32,115,116,114,102,105,110,100, 40,115, 101,108,102, 46,110, 97,109,101, 44, 34, 37, 91, 40, 46, 45, 41, 37, 93, 34, 41, 10, 32,105,102, 32, 98, 32,116,104,101, 110, 10, 32, 32,115,101,108,102, 46,110, 97,109,101, 32, 61, 32,115,116,114,115,117, 98, 40,115,101,108,102, 46,110, 97, 109,101, 44, 49, 44, 98, 45, 49, 41, 10, 32, 32,115,101,108, 102, 46,100,105,109, 32, 61, 32,102,105,110,100, 95,101,110, 117,109, 95,118, 97,114, 40,100, 41, 10, 32,101,110,100, 10, 10, 10, 32,105,102, 32,115,101,108,102, 46,116,121,112,101, 32,126, 61, 32, 39, 39, 32, 97,110,100, 32,115,101,108,102, 46,116,121,112,101, 32,126, 61, 32, 39,118,111,105,100, 39, 32, 97,110,100, 32,115,101,108,102, 46,110, 97,109,101, 32, 61, 61, 32, 39, 39, 32,116,104,101,110, 10, 32, 32,115,101, 108,102, 46,110, 97,109,101, 32, 61, 32, 99,114,101, 97,116, 101, 95,118, 97,114,110, 97,109,101, 40, 41, 10, 32,101,108, 115,101,105,102, 32,115,101,108,102, 46,107,105,110,100, 61, 61, 39,118, 97,114, 39, 32,116,104,101,110, 10, 32, 32,105, 102, 32,115,101,108,102, 46,116,121,112,101, 61, 61, 39, 39, 32, 97,110,100, 32,115,101,108,102, 46,110, 97,109,101,126, 61, 39, 39, 32,116,104,101,110, 10, 32, 32, 32,115,101,108, 102, 46,116,121,112,101, 32, 61, 32,115,101,108,102, 46,116, 121,112,101, 46, 46,115,101,108,102, 46,110, 97,109,101, 10, 32, 32, 32,115,101,108,102, 46,110, 97,109,101, 32, 61, 32, 99,114,101, 97,116,101, 95,118, 97,114,110, 97,109,101, 40, 41, 10, 32, 32,101,108,115,101,105,102, 32,102,105,110,100, 116,121,112,101, 40,115,101,108,102, 46,110, 97,109,101, 41, 32,116,104,101,110, 10, 32, 32, 32,105,102, 32,115,101,108, 102, 46,116,121,112,101, 61, 61, 39, 39, 32,116,104,101,110, 32,115,101,108,102, 46,116,121,112,101, 32, 61, 32,115,101, 108,102, 46,110, 97,109,101, 10, 32, 32, 32,101,108,115,101, 32,115,101,108,102, 46,116,121,112,101, 32, 61, 32,115,101, 108,102, 46,116,121,112,101, 46, 46, 39, 32, 39, 46, 46,115, 101,108,102, 46,110, 97,109,101, 32,101,110,100, 10, 32, 32, 32,115,101,108,102, 46,110, 97,109,101, 32, 61, 32, 99,114, 101, 97,116,101, 95,118, 97,114,110, 97,109,101, 40, 41, 10, 32, 32,101,110,100, 10, 32,101,110,100, 10, 10, 32, 45, 45, 32, 97,100,106,117,115,116, 32,116,121,112,101, 32,111,102, 32,115,116,114,105,110,103, 10, 32,105,102, 32,115,101,108, 102, 46,116,121,112,101, 32, 61, 61, 32, 39, 99,104, 97,114, 39, 32, 97,110,100, 32,115,101,108,102, 46,100,105,109, 32, 126, 61, 32, 39, 39, 32,116,104,101,110, 10, 9, 32,115,101, 108,102, 46,116,121,112,101, 32, 61, 32, 39, 99,104, 97,114, 42, 39, 10, 32,101,110,100, 10, 10, 9,105,102, 32,115,101, 108,102, 46,107,105,110,100, 32, 97,110,100, 32,115,101,108, 102, 46,107,105,110,100, 32, 61, 61, 32, 39,118, 97,114, 39, 32,116,104,101,110, 10, 9, 9,115,101,108,102, 46,110, 97, 109,101, 32, 61, 32,115,116,114,105,110,103, 46,103,115,117, 98, 40,115,101,108,102, 46,110, 97,109,101, 44, 32, 34, 58, 46, 42, 36, 34, 44, 32, 34, 34, 41, 32, 45, 45, 32, 63, 63, 63, 10, 9,101,110,100, 10,101,110,100, 10, 10, 45, 45, 32, 67,104,101, 99,107, 32,100,101, 99,108, 97,114, 97,116,105, 111,110, 32,116,121,112,101, 10, 45, 45, 32, 83,117, 98,115, 116,105,116,117,116,101,115, 32,116,121,112,101,100,101,102, 39,115, 46, 10,102,117,110, 99,116,105,111,110, 32, 99,108, 97,115,115, 68,101, 99,108, 97,114, 97,116,105,111,110, 58, 99,104,101, 99,107,116,121,112,101, 32, 40, 41, 10, 10, 32, 45, 45, 32, 99,104,101, 99,107, 32,105,102, 32,116,104,101, 114,101, 32,105,115, 32, 97, 32,112,111,105,110,116,101,114, 32,116,111, 32, 98, 97,115,105, 99, 32,116,121,112,101, 10, 32,108,111, 99, 97,108, 32, 98, 97,115,105, 99, 32, 61, 32, 105,115, 98, 97,115,105, 99, 40,115,101,108,102, 46,116,121, 112,101, 41, 10, 32,105,102, 32,115,101,108,102, 46,107,105, 110,100, 32, 61, 61, 32, 39,102,117,110, 99, 39, 32, 97,110, 100, 32, 98, 97,115,105, 99, 61, 61, 39,110,117,109, 98,101, 114, 39, 32, 97,110,100, 32,115,116,114,105,110,103, 46,102, 105,110,100, 40,115,101,108,102, 46,112,116,114, 44, 32, 34, 37, 42, 34, 41, 32,116,104,101,110, 10, 32, 9,115,101,108, 102, 46,116,121,112,101, 32, 61, 32, 39, 95,117,115,101,114, 100, 97,116, 97, 39, 10, 32, 9,115,101,108,102, 46,112,116, 114, 32, 61, 32, 34, 34, 10, 32,101,110,100, 10, 32,105,102, 32, 98, 97,115,105, 99, 32, 97,110,100, 32,115,101,108,102, 46,112,116,114,126, 61, 39, 39, 32,116,104,101,110, 10, 32, 32,115,101,108,102, 46,114,101,116, 32, 61, 32,115,101,108, 102, 46,112,116,114, 10, 32, 32,115,101,108,102, 46,112,116, 114, 32, 61, 32,110,105,108, 10, 32, 32,105,102, 32,105,115, 98, 97,115,105, 99, 40,115,101,108,102, 46,116,121,112,101, 41, 32, 61, 61, 32, 39,110,117,109, 98,101,114, 39, 32,116, 104,101,110, 10, 32, 32, 9,115,101,108,102, 46,114,101,116, 117,114,110, 95,117,115,101,114,100, 97,116, 97, 32, 61, 32, 116,114,117,101, 10, 32, 32,101,110,100, 10, 32,101,110,100, 10, 10, 32, 45, 45, 32, 99,104,101, 99,107, 32,105,102, 32, 116,104,101,114,101, 32,105,115, 32, 97,114,114, 97,121, 32, 116,111, 32, 98,101, 32,114,101,116,117,114,110,101,100, 10, 32,105,102, 32,115,101,108,102, 46,100,105,109,126, 61, 39, 39, 32, 97,110,100, 32,115,101,108,102, 46,114,101,116,126, 61, 39, 39, 32,116,104,101,110, 10, 32, 32, 32,101,114,114, 111,114, 40, 39, 35,105,110,118, 97,108,105,100, 32,112, 97, 114, 97,109,101,116,101,114, 58, 32, 99, 97,110,110,111,116, 32,114,101,116,117,114,110, 32, 97,110, 32, 97,114,114, 97, 121, 32,111,102, 32,118, 97,108,117,101,115, 39, 41, 10, 32, 101,110,100, 10, 32, 45, 45, 32,114,101,115,116,111,114,101, 32, 39,118,111,105,100, 42, 39, 32, 97,110,100, 32, 39,115, 116,114,105,110,103, 42, 39, 10, 32,105,102, 32,115,101,108, 102, 46,116,121,112,101, 32, 61, 61, 32, 39, 95,117,115,101, 114,100, 97,116, 97, 39, 32,116,104,101,110, 32,115,101,108, 102, 46,116,121,112,101, 32, 61, 32, 39,118,111,105,100, 42, 39, 10, 32,101,108,115,101,105,102, 32,115,101,108,102, 46, 116,121,112,101, 32, 61, 61, 32, 39, 95, 99,115,116,114,105, 110,103, 39, 32,116,104,101,110, 32,115,101,108,102, 46,116, 121,112,101, 32, 61, 32, 39, 99,104, 97,114, 42, 39, 10, 32, 101,108,115,101,105,102, 32,115,101,108,102, 46,116,121,112, 101, 32, 61, 61, 32, 39, 95,108,115,116, 97,116,101, 39, 32, 116,104,101,110, 32,115,101,108,102, 46,116,121,112,101, 32, 61, 32, 39,108,117, 97, 95, 83,116, 97,116,101, 42, 39, 10, 32,101,110,100, 10, 10, 32, 45, 45, 32,114,101,115,111,108, 118,101, 32,116,121,112,101,115, 32,105,110,115,105,100,101, 32,116,104,101, 32,116,101,109,112,108, 97,116,101,115, 10, 32,105,102, 32,115,101,108,102, 46,116,121,112,101, 32,116, 104,101,110, 10, 9, 32,115,101,108,102, 46,116,121,112,101, 32, 61, 32,114,101,115,111,108,118,101, 95,116,101,109,112, 108, 97,116,101, 95,116,121,112,101,115, 40,115,101,108,102, 46,116,121,112,101, 41, 10, 32,101,110,100, 10, 10, 45, 45, 10, 45, 45, 32, 45, 45, 32,105,102, 32,114,101,116,117,114, 110,105,110,103, 32,118, 97,108,117,101, 44, 32, 97,117,116, 111,109, 97,116,105, 99, 97,108,108,121, 32,115,101,116, 32, 100,101,102, 97,117,108,116, 32,118, 97,108,117,101, 10, 45, 45, 32,105,102, 32,115,101,108,102, 46,114,101,116, 32,126, 61, 32, 39, 39, 32, 97,110,100, 32,115,101,108,102, 46,100, 101,102, 32, 61, 61, 32, 39, 39, 32,116,104,101,110, 10, 45, 45, 32, 32,115,101,108,102, 46,100,101,102, 32, 61, 32, 39, 48, 39, 10, 45, 45, 32,101,110,100, 10, 45, 45, 10, 10,101, 110,100, 10, 10,102,117,110, 99,116,105,111,110, 32,114,101, 115,111,108,118,101, 95,116,101,109,112,108, 97,116,101, 95, 116,121,112,101,115, 40,116,121,112,101, 41, 10, 10, 9,105, 102, 32,105,115, 98, 97,115,105, 99, 40,116,121,112,101, 41, 32,116,104,101,110, 10, 9, 9,114,101,116,117,114,110, 32, 116,121,112,101, 10, 9,101,110,100, 10, 9,108,111, 99, 97, 108, 32, 98, 44, 95, 44,109, 32, 61, 32,115,116,114,105,110, 103, 46,102,105,110,100, 40,116,121,112,101, 44, 32, 34, 40, 37, 98, 60, 62, 41, 34, 41, 10, 9,105,102, 32, 98, 32,116, 104,101,110, 10, 10, 9, 9,109, 32, 61, 32,115,112,108,105, 116, 95, 99, 95,116,111,107,101,110,115, 40,115,116,114,105, 110,103, 46,115,117, 98, 40,109, 44, 32, 50, 44, 32, 45, 50, 41, 44, 32, 34, 44, 34, 41, 10, 9, 9,102,111,114, 32,105, 61, 49, 44, 32,116, 97, 98,108,101, 46,103,101,116,110, 40, 109, 41, 32,100,111, 10, 9, 9, 9,109, 91,105, 93, 32, 61, 32,115,116,114,105,110,103, 46,103,115,117, 98, 40,109, 91, 105, 93, 44, 34, 37,115, 42, 40, 91, 37, 42, 38, 93, 41, 34, 44, 32, 34, 37, 49, 34, 41, 10, 9, 9, 9,105,102, 32,110, 111,116, 32,105,115, 98, 97,115,105, 99, 40,109, 91,105, 93, 41, 32,116,104,101,110, 10, 9, 9, 9, 9,105,102, 32,110, 111,116, 32,105,115,101,110,117,109, 40,109, 91,105, 93, 41, 32,116,104,101,110, 32, 95, 44, 32,109, 91,105, 93, 32, 61, 32, 97,112,112,108,121,116,121,112,101,100,101,102, 40, 34, 34, 44, 32,109, 91,105, 93, 41, 32,101,110,100, 10, 9, 9, 9, 9,109, 91,105, 93, 32, 61, 32,102,105,110,100,116,121, 112,101, 40,109, 91,105, 93, 41, 32,111,114, 32,109, 91,105, 93, 10, 9, 9, 9, 9,109, 91,105, 93, 32, 61, 32,114,101, 115,111,108,118,101, 95,116,101,109,112,108, 97,116,101, 95, 116,121,112,101,115, 40,109, 91,105, 93, 41, 10, 9, 9, 9, 101,110,100, 10, 9, 9,101,110,100, 10, 10, 9, 9,108,111, 99, 97,108, 32, 98, 44,105, 10, 9, 9,116,121,112,101, 44, 98, 44,105, 32, 61, 32, 98,114,101, 97,107, 95,116,101,109, 112,108, 97,116,101, 40,116,121,112,101, 41, 10, 45, 45,112, 114,105,110,116, 40, 34, 99,111,110, 99, 97,116, 32,105,115, 32, 34, 44, 99,111,110, 99, 97,116, 40,109, 44, 32, 49, 44, 32,109, 46,110, 41, 41, 10, 9, 9,108,111, 99, 97,108, 32, 116,101,109,112,108, 97,116,101, 95,112, 97,114,116, 32, 61, 32, 34, 60, 34, 46, 46, 99,111,110, 99, 97,116, 40,109, 44, 32, 49, 44, 32,109, 46,110, 44, 32, 34, 44, 34, 41, 46, 46, 34, 62, 34, 10, 9, 9,116,121,112,101, 32, 61, 32,114,101, 98,117,105,108,100, 95,116,101,109,112,108, 97,116,101, 40, 116,121,112,101, 44, 32, 98, 44, 32,116,101,109,112,108, 97, 116,101, 95,112, 97,114,116, 41, 10, 9, 9,116,121,112,101, 32, 61, 32,115,116,114,105,110,103, 46,103,115,117, 98, 40, 116,121,112,101, 44, 32, 34, 62, 62, 34, 44, 32, 34, 62, 32, 62, 34, 41, 10, 9,101,110,100, 10, 9,114,101,116,117,114, 110, 32,116,121,112,101, 10,101,110,100, 10, 10,102,117,110, 99,116,105,111,110, 32, 98,114,101, 97,107, 95,116,101,109, 112,108, 97,116,101, 40,115, 41, 10, 9,108,111, 99, 97,108, 32, 98, 44,101, 44,116,105,109,112,108, 32, 61, 32,115,116, 114,105,110,103, 46,102,105,110,100, 40,115, 44, 32, 34, 40, 37, 98, 60, 62, 41, 34, 41, 10, 9,105,102, 32,116,105,109, 112,108, 32,116,104,101,110, 10, 9, 9,115, 32, 61, 32,115, 116,114,105,110,103, 46,103,115,117, 98, 40,115, 44, 32, 34, 37, 98, 60, 62, 34, 44, 32, 34, 34, 41, 10, 9, 9,114,101, 116,117,114,110, 32,115, 44, 32, 98, 44, 32,116,105,109,112, 108, 10, 9,101,108,115,101, 10, 9, 9,114,101,116,117,114, 110, 32,115, 44, 32, 48, 44, 32,110,105,108, 10, 9,101,110, 100, 10,101,110,100, 10, 10,102,117,110, 99,116,105,111,110, 32,114,101, 98,117,105,108,100, 95,116,101,109,112,108, 97, 116,101, 40,115, 44, 32, 98, 44, 32,116,105,109,112,108, 41, 10, 10, 9,105,102, 32, 98, 32, 61, 61, 32, 48, 32,116,104, 101,110, 10, 9, 9,114,101,116,117,114,110, 32,115, 10, 9, 101,110,100, 10, 10, 9,114,101,116,117,114,110, 32,115,116, 114,105,110,103, 46,115,117, 98, 40,115, 44, 32, 49, 44, 32, 98, 45, 49, 41, 46, 46,116,105,109,112,108, 46, 46,115,116, 114,105,110,103, 46,115,117, 98, 40,115, 44, 32, 98, 44, 32, 45, 49, 41, 10,101,110,100, 10, 10, 45, 45, 32, 80,114,105, 110,116, 32,109,101,116,104,111,100, 10,102,117,110, 99,116, 105,111,110, 32, 99,108, 97,115,115, 68,101, 99,108, 97,114, 97,116,105,111,110, 58,112,114,105,110,116, 32, 40,105,100, 101,110,116, 44, 99,108,111,115,101, 41, 10, 32,112,114,105, 110,116, 40,105,100,101,110,116, 46, 46, 34, 68,101, 99,108, 97,114, 97,116,105,111,110,123, 34, 41, 10, 32,112,114,105, 110,116, 40,105,100,101,110,116, 46, 46, 34, 32,109,111,100, 32, 32, 61, 32, 39, 34, 46, 46,115,101,108,102, 46,109,111, 100, 46, 46, 34, 39, 44, 34, 41, 10, 32,112,114,105,110,116, 40,105,100,101,110,116, 46, 46, 34, 32,116,121,112,101, 32, 61, 32, 39, 34, 46, 46,115,101,108,102, 46,116,121,112,101, 46, 46, 34, 39, 44, 34, 41, 10, 32,112,114,105,110,116, 40, 105,100,101,110,116, 46, 46, 34, 32,112,116,114, 32, 32, 61, 32, 39, 34, 46, 46,115,101,108,102, 46,112,116,114, 46, 46, 34, 39, 44, 34, 41, 10, 32,112,114,105,110,116, 40,105,100, 101,110,116, 46, 46, 34, 32,110, 97,109,101, 32, 61, 32, 39, 34, 46, 46,115,101,108,102, 46,110, 97,109,101, 46, 46, 34, 39, 44, 34, 41, 10, 32,112,114,105,110,116, 40,105,100,101, 110,116, 46, 46, 34, 32,100,105,109, 32, 32, 61, 32, 39, 34, 46, 46,115,101,108,102, 46,100,105,109, 46, 46, 34, 39, 44, 34, 41, 10, 32,112,114,105,110,116, 40,105,100,101,110,116, 46, 46, 34, 32,100,101,102, 32, 32, 61, 32, 39, 34, 46, 46, 115,101,108,102, 46,100,101,102, 46, 46, 34, 39, 44, 34, 41, 10, 32,112,114,105,110,116, 40,105,100,101,110,116, 46, 46, 34, 32,114,101,116, 32, 32, 61, 32, 39, 34, 46, 46,115,101, 108,102, 46,114,101,116, 46, 46, 34, 39, 44, 34, 41, 10, 32, 112,114,105,110,116, 40,105,100,101,110,116, 46, 46, 34,125, 34, 46, 46, 99,108,111,115,101, 41, 10,101,110,100, 10, 10, 45, 45, 32, 99,104,101, 99,107, 32,105,102, 32, 97,114,114, 97,121, 32,111,102, 32,118, 97,108,117,101,115, 32, 97,114, 101, 32,114,101,116,117,114,110,101,100, 32,116,111, 32, 76, 117, 97, 10,102,117,110, 99,116,105,111,110, 32, 99,108, 97, 115,115, 68,101, 99,108, 97,114, 97,116,105,111,110, 58,114, 101,113,117,105,114,101, 99,111,108,108,101, 99,116,105,111, 110, 32, 40,116, 41, 10, 32,105,102, 32,115,101,108,102, 46, 109,111,100, 32,126, 61, 32, 39, 99,111,110,115,116, 39, 32, 97,110,100, 10, 9, 32, 32, 32, 32,115,101,108,102, 46,100, 105,109, 32, 97,110,100, 32,115,101,108,102, 46,100,105,109, 32,126, 61, 32, 39, 39, 32, 97,110,100, 10, 9, 9, 9, 9, 32,110,111,116, 32,105,115, 98, 97,115,105, 99, 40,115,101, 108,102, 46,116,121,112,101, 41, 32, 97,110,100, 10, 9, 9, 9, 9, 32,115,101,108,102, 46,112,116,114, 32, 61, 61, 32, 39, 39, 32, 97,110,100, 32,115,101,108,102, 58, 99,104,101, 99,107, 95,112,117, 98,108,105, 99, 95, 97, 99, 99,101,115, 115, 40, 41, 32,116,104,101,110, 10, 9, 9,108,111, 99, 97, 108, 32,116,121,112,101, 32, 61, 32,103,115,117, 98, 40,115, 101,108,102, 46,116,121,112,101, 44, 34, 37,115, 42, 99,111, 110,115,116, 37,115, 43, 34, 44, 34, 34, 41, 10, 9, 9,116, 91,116,121,112,101, 93, 32, 61, 32, 34,116,111,108,117, 97, 95, 99,111,108,108,101, 99,116, 95, 34, 32, 46, 46, 32, 99, 108,101, 97,110, 95,116,101,109,112,108, 97,116,101, 40,116, 121,112,101, 41, 10, 9, 9,114,101,116,117,114,110, 32,116, 114,117,101, 10, 9,101,110,100, 10, 9,114,101,116,117,114, 110, 32,102, 97,108,115,101, 10,101,110,100, 10, 10, 45, 45, 32,100,101, 99,108, 97,114,101, 32,116, 97,103, 10,102,117, 110, 99,116,105,111,110, 32, 99,108, 97,115,115, 68,101, 99, 108, 97,114, 97,116,105,111,110, 58,100,101, 99,108,116,121, 112,101, 32, 40, 41, 10, 10, 9,115,101,108,102, 46,116,121, 112,101, 32, 61, 32,116,121,112,101,118, 97,114, 40,115,101, 108,102, 46,116,121,112,101, 41, 10, 9,105,102, 32,115,116, 114,102,105,110,100, 40,115,101,108,102, 46,109,111,100, 44, 39, 99,111,110,115,116, 39, 41, 32,116,104,101,110, 10, 9, 9,115,101,108,102, 46,116,121,112,101, 32, 61, 32, 39, 99, 111,110,115,116, 32, 39, 46, 46,115,101,108,102, 46,116,121, 112,101, 10, 9, 9,115,101,108,102, 46,109,111,100, 32, 61, 32,103,115,117, 98, 40,115,101,108,102, 46,109,111,100, 44, 39, 99,111,110,115,116, 37,115, 42, 39, 44, 39, 39, 41, 10, 9,101,110,100, 10,101,110,100, 10, 10, 10, 45, 45, 32,111, 117,116,112,117,116, 32,116,121,112,101, 32, 99,104,101, 99, 107,105,110,103, 10,102,117,110, 99,116,105,111,110, 32, 99, 108, 97,115,115, 68,101, 99,108, 97,114, 97,116,105,111,110, 58,111,117,116, 99,104,101, 99,107,116,121,112,101, 32, 40, 110, 97,114,103, 41, 10, 32,108,111, 99, 97,108, 32,100,101, 102, 10, 32,108,111, 99, 97,108, 32,116, 32, 61, 32,105,115, 98, 97,115,105, 99, 40,115,101,108,102, 46,116,121,112,101, 41, 10, 32,105,102, 32,115,101,108,102, 46,100,101,102,126, 61, 39, 39, 32,116,104,101,110, 10, 32, 32,100,101,102, 32, 61, 32, 49, 10, 32,101,108,115,101, 10, 32, 32,100,101,102, 32, 61, 32, 48, 10, 32,101,110,100, 10, 32,105,102, 32,115, 101,108,102, 46,100,105,109, 32,126, 61, 32, 39, 39, 32,116, 104,101,110, 10, 9, 45, 45,105,102, 32,116, 61, 61, 39,115, 116,114,105,110,103, 39, 32,116,104,101,110, 10, 9, 45, 45, 9,114,101,116,117,114,110, 32, 39,116,111,108,117, 97, 95, 105,115,115,116,114,105,110,103, 97,114,114, 97,121, 40,116, 111,108,117, 97, 95, 83, 44, 39, 46, 46,110, 97,114,103, 46, 46, 39, 44, 39, 46, 46,100,101,102, 46, 46, 39, 44, 38,116, 111,108,117, 97, 95,101,114,114, 41, 39, 10, 9, 45, 45,101, 108,115,101, 10, 9,114,101,116,117,114,110, 32, 39, 33,116, 111,108,117, 97, 95,105,115,116, 97, 98,108,101, 40,116,111, 108,117, 97, 95, 83, 44, 39, 46, 46,110, 97,114,103, 46, 46, 39, 44, 48, 44, 38,116,111,108,117, 97, 95,101,114,114, 41, 39, 10, 32, 9, 45, 45,101,110,100, 10, 32,101,108,115,101, 105,102, 32,116, 32,116,104,101,110, 10, 9,114,101,116,117, 114,110, 32, 39, 33,116,111,108,117, 97, 95,105,115, 39, 46, 46,116, 46, 46, 39, 40,116,111,108,117, 97, 95, 83, 44, 39, 46, 46,110, 97,114,103, 46, 46, 39, 44, 39, 46, 46,100,101, 102, 46, 46, 39, 44, 38,116,111,108,117, 97, 95,101,114,114, 41, 39, 10, 32,101,108,115,101, 10, 32, 32,108,111, 99, 97, 108, 32,105,115, 95,102,117,110, 99, 32, 61, 32,103,101,116, 95,105,115, 95,102,117,110, 99,116,105,111,110, 40,115,101, 108,102, 46,116,121,112,101, 41, 10, 32, 32,105,102, 32,115, 101,108,102, 46,112,116,114, 32, 61, 61, 32, 39, 38, 39, 32, 111,114, 32,115,101,108,102, 46,112,116,114, 32, 61, 61, 32, 39, 39, 32,116,104,101,110, 10, 32, 32, 9,114,101,116,117, 114,110, 32, 39, 40,116,111,108,117, 97, 95,105,115,118, 97, 108,117,101,110,105,108, 40,116,111,108,117, 97, 95, 83, 44, 39, 46, 46,110, 97,114,103, 46, 46, 39, 44, 38,116,111,108, 117, 97, 95,101,114,114, 41, 32,124,124, 32, 33, 39, 46, 46, 105,115, 95,102,117,110, 99, 46, 46, 39, 40,116,111,108,117, 97, 95, 83, 44, 39, 46, 46,110, 97,114,103, 46, 46, 39, 44, 34, 39, 46, 46,115,101,108,102, 46,116,121,112,101, 46, 46, 39, 34, 44, 39, 46, 46,100,101,102, 46, 46, 39, 44, 38,116, 111,108,117, 97, 95,101,114,114, 41, 41, 39, 10, 32, 32,101, 108,115,101, 10, 9,114,101,116,117,114,110, 32, 39, 33, 39, 46, 46,105,115, 95,102,117,110, 99, 46, 46, 39, 40,116,111, 108,117, 97, 95, 83, 44, 39, 46, 46,110, 97,114,103, 46, 46, 39, 44, 34, 39, 46, 46,115,101,108,102, 46,116,121,112,101, 46, 46, 39, 34, 44, 39, 46, 46,100,101,102, 46, 46, 39, 44, 38,116,111,108,117, 97, 95,101,114,114, 41, 39, 10, 32, 32, 101,110,100, 10, 32,101,110,100, 10,101,110,100, 10, 10,102, 117,110, 99,116,105,111,110, 32, 99,108, 97,115,115, 68,101, 99,108, 97,114, 97,116,105,111,110, 58, 98,117,105,108,100, 100,101, 99,108, 97,114, 97,116,105,111,110, 32, 40,110, 97, 114,103, 44, 32, 99,112,108,117,115,112,108,117,115, 41, 10, 32,108,111, 99, 97,108, 32, 97,114,114, 97,121, 32, 61, 32, 115,101,108,102, 46,100,105,109, 32,126, 61, 32, 39, 39, 32, 97,110,100, 32,116,111,110,117,109, 98,101,114, 40,115,101, 108,102, 46,100,105,109, 41, 61, 61,110,105,108, 10, 9,108, 111, 99, 97,108, 32,108,105,110,101, 32, 61, 32, 34, 34, 10, 32,108,111, 99, 97,108, 32,112,116,114, 32, 61, 32, 39, 39, 10, 32,108,111, 99, 97,108, 32,109,111,100, 10, 32,108,111, 99, 97,108, 32,116,121,112,101, 32, 61, 32,115,101,108,102, 46,116,121,112,101, 10, 32,108,111, 99, 97,108, 32,110, 99, 116,121,112,101, 32, 61, 32,103,115,117, 98, 40,115,101,108, 102, 46,116,121,112,101, 44, 39, 99,111,110,115,116, 37,115, 43, 39, 44, 39, 39, 41, 10, 32,105,102, 32,115,101,108,102, 46,100,105,109, 32,126, 61, 32, 39, 39, 32,116,104,101,110, 10, 9, 32,116,121,112,101, 32, 61, 32,103,115,117, 98, 40, 115,101,108,102, 46,116,121,112,101, 44, 39, 99,111,110,115, 116, 37,115, 43, 39, 44, 39, 39, 41, 32, 32, 45, 45, 32,101, 108,105,109,105,110, 97,116,101,115, 32, 99,111,110,115,116, 32,109,111,100,105,102,105,101,114, 32,102,111,114, 32, 97, 114,114, 97,121,115, 10, 32,101,110,100, 10, 32,105,102, 32, 115,101,108,102, 46,112,116,114,126, 61, 39, 39, 32, 97,110, 100, 32,110,111,116, 32,105,115, 98, 97,115,105, 99, 40,116, 121,112,101, 41, 32,116,104,101,110, 32,112,116,114, 32, 61, 32, 39, 42, 39, 32,101,110,100, 10, 32,108,105,110,101, 32, 61, 32, 99,111,110, 99, 97,116,112, 97,114, 97,109, 40,108, 105,110,101, 44, 34, 32, 34, 44,115,101,108,102, 46,109,111, 100, 44,116,121,112,101, 44,112,116,114, 41, 10, 32,105,102, 32, 97,114,114, 97,121, 32,116,104,101,110, 10, 32, 32,108, 105,110,101, 32, 61, 32, 99,111,110, 99, 97,116,112, 97,114, 97,109, 40,108,105,110,101, 44, 39, 42, 39, 41, 10, 32,101, 110,100, 10, 32,108,105,110,101, 32, 61, 32, 99,111,110, 99, 97,116,112, 97,114, 97,109, 40,108,105,110,101, 44,115,101, 108,102, 46,110, 97,109,101, 41, 10, 32,105,102, 32,115,101, 108,102, 46,100,105,109, 32,126, 61, 32, 39, 39, 32,116,104, 101,110, 10, 32, 32,105,102, 32,116,111,110,117,109, 98,101, 114, 40,115,101,108,102, 46,100,105,109, 41,126, 61,110,105, 108, 32,116,104,101,110, 10, 32, 32, 32,108,105,110,101, 32, 61, 32, 99,111,110, 99, 97,116,112, 97,114, 97,109, 40,108, 105,110,101, 44, 39, 91, 39, 44,115,101,108,102, 46,100,105, 109, 44, 39, 93, 59, 39, 41, 10, 32, 32,101,108,115,101, 10, 9,105,102, 32, 99,112,108,117,115,112,108,117,115, 32,116, 104,101,110, 10, 9, 9,108,105,110,101, 32, 61, 32, 99,111, 110, 99, 97,116,112, 97,114, 97,109, 40,108,105,110,101, 44, 39, 32, 61, 32, 77,116,111,108,117, 97, 95,110,101,119, 95, 100,105,109, 40, 39, 44,116,121,112,101, 44,112,116,114, 44, 39, 44, 32, 39, 46, 46,115,101,108,102, 46,100,105,109, 46, 46, 39, 41, 59, 39, 41, 10, 9,101,108,115,101, 10, 9, 9, 108,105,110,101, 32, 61, 32, 99,111,110, 99, 97,116,112, 97, 114, 97,109, 40,108,105,110,101, 44, 39, 32, 61, 32, 40, 39, 44,116,121,112,101, 44,112,116,114, 44, 39, 42, 41, 39, 44, 10, 9, 9, 39,109, 97,108,108,111, 99, 40, 40, 39, 44,115, 101,108,102, 46,100,105,109, 44, 39, 41, 42,115,105,122,101, 111,102, 40, 39, 44,116,121,112,101, 44,112,116,114, 44, 39, 41, 41, 59, 39, 41, 10, 9,101,110,100, 10, 32, 32,101,110, 100, 10, 32,101,108,115,101, 10, 32, 32,108,111, 99, 97,108, 32,116, 32, 61, 32,105,115, 98, 97,115,105, 99, 40,116,121, 112,101, 41, 10, 32, 32,108,105,110,101, 32, 61, 32, 99,111, 110, 99, 97,116,112, 97,114, 97,109, 40,108,105,110,101, 44, 39, 32, 61, 32, 39, 41, 10, 32, 32,105,102, 32,116, 32, 61, 61, 32, 39,115,116, 97,116,101, 39, 32,116,104,101,110, 10, 32, 32, 9,108,105,110,101, 32, 61, 32, 99,111,110, 99, 97, 116,112, 97,114, 97,109, 40,108,105,110,101, 44, 32, 39,116, 111,108,117, 97, 95, 83, 59, 39, 41, 10, 32, 32,101,108,115, 101, 10, 32, 32, 9, 45, 45,112,114,105,110,116, 40, 34,116, 32,105,115, 32, 34, 46, 46,116,111,115,116,114,105,110,103, 40,116, 41, 46, 46, 34, 44, 32,112,116,114, 32,105,115, 32, 34, 46, 46,116,111,115,116,114,105,110,103, 40,115,101,108, 102, 46,112,116,114, 41, 41, 10, 32, 32, 9,105,102, 32,116, 32, 61, 61, 32, 39,110,117,109, 98,101,114, 39, 32, 97,110, 100, 32,115,116,114,105,110,103, 46,102,105,110,100, 40,115, 101,108,102, 46,112,116,114, 44, 32, 34, 37, 42, 34, 41, 32, 116,104,101,110, 10, 32, 32, 9, 9,116, 32, 61, 32, 39,117, 115,101,114,100, 97,116, 97, 39, 10, 32, 32, 9,101,110,100, 10, 9,105,102, 32,110,111,116, 32,116, 32, 97,110,100, 32, 112,116,114, 61, 61, 39, 39, 32,116,104,101,110, 32,108,105, 110,101, 32, 61, 32, 99,111,110, 99, 97,116,112, 97,114, 97, 109, 40,108,105,110,101, 44, 39, 42, 39, 41, 32,101,110,100, 10, 9,108,105,110,101, 32, 61, 32, 99,111,110, 99, 97,116, 112, 97,114, 97,109, 40,108,105,110,101, 44, 39, 40, 40, 39, 44,115,101,108,102, 46,109,111,100, 44,116,121,112,101, 41, 10, 9,105,102, 32,110,111,116, 32,116, 32,116,104,101,110, 10, 9, 9,108,105,110,101, 32, 61, 32, 99,111,110, 99, 97, 116,112, 97,114, 97,109, 40,108,105,110,101, 44, 39, 42, 39, 41, 10, 9,101,110,100, 10, 9,108,105,110,101, 32, 61, 32, 99,111,110, 99, 97,116,112, 97,114, 97,109, 40,108,105,110, 101, 44, 39, 41, 32, 39, 41, 10, 9,105,102, 32,105,115,101, 110,117,109, 40,110, 99,116,121,112,101, 41, 32,116,104,101, 110, 10, 9, 9,108,105,110,101, 32, 61, 32, 99,111,110, 99, 97,116,112, 97,114, 97,109, 40,108,105,110,101, 44, 39, 40, 105,110,116, 41, 32, 39, 41, 10, 9,101,110,100, 10, 9,108, 111, 99, 97,108, 32,100,101,102, 32, 61, 32, 48, 10, 9,105, 102, 32,115,101,108,102, 46,100,101,102, 32,126, 61, 32, 39, 39, 32,116,104,101,110, 10, 9, 9,100,101,102, 32, 61, 32, 115,101,108,102, 46,100,101,102, 10, 9, 9,105,102, 32, 40, 112,116,114, 32, 61, 61, 32, 39, 39, 32,111,114, 32,115,101, 108,102, 46,112,116,114, 32, 61, 61, 32, 39, 38, 39, 41, 32, 97,110,100, 32,110,111,116, 32,116, 32,116,104,101,110, 10, 9, 9, 9,100,101,102, 32, 61, 32, 34, 40,118,111,105,100, 42, 41, 38, 40, 99,111,110,115,116, 32, 34, 46, 46,116,121, 112,101, 46, 46, 34, 41, 34, 46, 46,100,101,102, 10, 9, 9, 101,110,100, 10, 9,101,110,100, 10, 9,105,102, 32,116, 32, 116,104,101,110, 10, 9, 9,108,105,110,101, 32, 61, 32, 99, 111,110, 99, 97,116,112, 97,114, 97,109, 40,108,105,110,101, 44, 39,116,111,108,117, 97, 95,116,111, 39, 46, 46,116, 44, 39, 40,116,111,108,117, 97, 95, 83, 44, 39, 44,110, 97,114, 103, 44, 39, 44, 39, 44,100,101,102, 44, 39, 41, 41, 59, 39, 41, 10, 9,101,108,115,101, 10, 9, 9,108,111, 99, 97,108, 32,116,111, 95,102,117,110, 99, 32, 61, 32,103,101,116, 95, 116,111, 95,102,117,110, 99,116,105,111,110, 40,116,121,112, 101, 41, 10, 9, 9,108,105,110,101, 32, 61, 32, 99,111,110, 99, 97,116,112, 97,114, 97,109, 40,108,105,110,101, 44,116, 111, 95,102,117,110, 99, 46, 46, 39, 40,116,111,108,117, 97, 95, 83, 44, 39, 44,110, 97,114,103, 44, 39, 44, 39, 44,100, 101,102, 44, 39, 41, 41, 59, 39, 41, 10, 9,101,110,100, 10, 32, 32,101,110,100, 10, 32,101,110,100, 10, 9,114,101,116, 117,114,110, 32,108,105,110,101, 10,101,110,100, 10, 10, 45, 45, 32, 68,101, 99,108, 97,114,101, 32,118, 97,114,105, 97, 98,108,101, 10,102,117,110, 99,116,105,111,110, 32, 99,108, 97,115,115, 68,101, 99,108, 97,114, 97,116,105,111,110, 58, 100,101, 99,108, 97,114,101, 32, 40,110, 97,114,103, 41, 10, 32,105,102, 32,115,101,108,102, 46,100,105,109, 32,126, 61, 32, 39, 39, 32, 97,110,100, 32,116,111,110,117,109, 98,101, 114, 40,115,101,108,102, 46,100,105,109, 41, 61, 61,110,105, 108, 32,116,104,101,110, 10, 9, 32,111,117,116,112,117,116, 40, 39, 35,105,102,100,101,102, 32, 95, 95, 99,112,108,117, 115,112,108,117,115, 92,110, 39, 41, 10, 9, 9,111,117,116, 112,117,116, 40,115,101,108,102, 58, 98,117,105,108,100,100, 101, 99,108, 97,114, 97,116,105,111,110, 40,110, 97,114,103, 44,116,114,117,101, 41, 41, 10, 9, 9,111,117,116,112,117, 116, 40, 39, 35,101,108,115,101, 92,110, 39, 41, 10, 9, 9, 111,117,116,112,117,116, 40,115,101,108,102, 58, 98,117,105, 108,100,100,101, 99,108, 97,114, 97,116,105,111,110, 40,110, 97,114,103, 44,102, 97,108,115,101, 41, 41, 10, 9, 32,111, 117,116,112,117,116, 40, 39, 35,101,110,100,105,102, 92,110, 39, 41, 10, 9,101,108,115,101, 10, 9, 9,111,117,116,112, 117,116, 40,115,101,108,102, 58, 98,117,105,108,100,100,101, 99,108, 97,114, 97,116,105,111,110, 40,110, 97,114,103, 44, 102, 97,108,115,101, 41, 41, 10, 9,101,110,100, 10,101,110, 100, 10, 10, 45, 45, 32, 71,101,116, 32,112, 97,114, 97,109, 101,116,101,114, 32,118, 97,108,117,101, 10,102,117,110, 99, 116,105,111,110, 32, 99,108, 97,115,115, 68,101, 99,108, 97, 114, 97,116,105,111,110, 58,103,101,116, 97,114,114, 97,121, 32, 40,110, 97,114,103, 41, 10, 32,105,102, 32,115,101,108, 102, 46,100,105,109, 32,126, 61, 32, 39, 39, 32,116,104,101, 110, 10, 9, 32,108,111, 99, 97,108, 32,116,121,112,101, 32, 61, 32,103,115,117, 98, 40,115,101,108,102, 46,116,121,112, 101, 44, 39, 99,111,110,115,116, 32, 39, 44, 39, 39, 41, 10, 32, 32,111,117,116,112,117,116, 40, 39, 32, 32,123, 39, 41, 10, 9, 32,111,117,116,112,117,116, 40, 39, 35,105,102,110, 100,101,102, 32, 84, 79, 76, 85, 65, 95, 82, 69, 76, 69, 65, 83, 69, 92,110, 39, 41, 10, 32, 32,108,111, 99, 97,108, 32, 100,101,102, 59, 32,105,102, 32,115,101,108,102, 46,100,101, 102,126, 61, 39, 39, 32,116,104,101,110, 32,100,101,102, 61, 49, 32,101,108,115,101, 32,100,101,102, 61, 48, 32,101,110, 100, 10, 9, 9,108,111, 99, 97,108, 32,116, 32, 61, 32,105, 115, 98, 97,115,105, 99, 40,116,121,112,101, 41, 10, 9, 9, 105,102, 32, 40,116, 41, 32,116,104,101,110, 10, 9, 9, 32, 32, 32,111,117,116,112,117,116, 40, 39, 32, 32, 32,105,102, 32, 40, 33,116,111,108,117, 97, 95,105,115, 39, 46, 46,116, 46, 46, 39, 97,114,114, 97,121, 40,116,111,108,117, 97, 95, 83, 44, 39, 44,110, 97,114,103, 44, 39, 44, 39, 44,115,101, 108,102, 46,100,105,109, 44, 39, 44, 39, 44,100,101,102, 44, 39, 44, 38,116,111,108,117, 97, 95,101,114,114, 41, 41, 39, 41, 10, 9, 9,101,108,115,101, 10, 9, 9, 32, 32, 32,111, 117,116,112,117,116, 40, 39, 32, 32, 32,105,102, 32, 40, 33, 116,111,108,117, 97, 95,105,115,117,115,101,114,116,121,112, 101, 97,114,114, 97,121, 40,116,111,108,117, 97, 95, 83, 44, 39, 44,110, 97,114,103, 44, 39, 44, 34, 39, 44,116,121,112, 101, 44, 39, 34, 44, 39, 44,115,101,108,102, 46,100,105,109, 44, 39, 44, 39, 44,100,101,102, 44, 39, 44, 38,116,111,108, 117, 97, 95,101,114,114, 41, 41, 39, 41, 10, 9, 9,101,110, 100, 10, 32, 32,111,117,116,112,117,116, 40, 39, 32, 32, 32, 32,103,111,116,111, 32,116,111,108,117, 97, 95,108,101,114, 114,111,114, 59, 39, 41, 10, 32, 32,111,117,116,112,117,116, 40, 39, 32, 32, 32,101,108,115,101, 92,110, 39, 41, 10, 9, 32,111,117,116,112,117,116, 40, 39, 35,101,110,100,105,102, 92,110, 39, 41, 10, 32, 32,111,117,116,112,117,116, 40, 39, 32, 32, 32,123, 39, 41, 10, 32, 32,111,117,116,112,117,116, 40, 39, 32, 32, 32, 32,105,110,116, 32,105, 59, 39, 41, 10, 32, 32,111,117,116,112,117,116, 40, 39, 32, 32, 32, 32,102, 111,114, 40,105, 61, 48, 59, 32,105, 60, 39, 46, 46,115,101, 108,102, 46,100,105,109, 46, 46, 39, 59,105, 43, 43, 41, 39, 41, 10, 32, 32,108,111, 99, 97,108, 32,116, 32, 61, 32,105, 115, 98, 97,115,105, 99, 40,116,121,112,101, 41, 10, 32, 32, 108,111, 99, 97,108, 32,112,116,114, 32, 61, 32, 39, 39, 10, 32, 32,105,102, 32,115,101,108,102, 46,112,116,114,126, 61, 39, 39, 32,116,104,101,110, 32,112,116,114, 32, 61, 32, 39, 42, 39, 32,101,110,100, 10, 32, 32,111,117,116,112,117,116, 40, 39, 32, 32, 32, 39, 44,115,101,108,102, 46,110, 97,109, 101, 46, 46, 39, 91,105, 93, 32, 61, 32, 39, 41, 10, 32, 32, 105,102, 32,110,111,116, 32,116, 32, 97,110,100, 32,112,116, 114, 61, 61, 39, 39, 32,116,104,101,110, 32,111,117,116,112, 117,116, 40, 39, 42, 39, 41, 32,101,110,100, 10, 32, 32,111, 117,116,112,117,116, 40, 39, 40, 40, 39, 44,116,121,112,101, 41, 10, 32, 32,105,102, 32,110,111,116, 32,116, 32,116,104, 101,110, 10, 32, 32, 32,111,117,116,112,117,116, 40, 39, 42, 39, 41, 10, 32, 32,101,110,100, 10, 32, 32,111,117,116,112, 117,116, 40, 39, 41, 32, 39, 41, 10, 32, 32,108,111, 99, 97, 108, 32,100,101,102, 32, 61, 32, 48, 10, 32, 32,105,102, 32, 115,101,108,102, 46,100,101,102, 32,126, 61, 32, 39, 39, 32, 116,104,101,110, 32,100,101,102, 32, 61, 32,115,101,108,102, 46,100,101,102, 32,101,110,100, 10, 32, 32,105,102, 32,116, 32,116,104,101,110, 10, 32, 32, 32,111,117,116,112,117,116, 40, 39,116,111,108,117, 97, 95,116,111,102,105,101,108,100, 39, 46, 46,116, 46, 46, 39, 40,116,111,108,117, 97, 95, 83, 44, 39, 44,110, 97,114,103, 44, 39, 44,105, 43, 49, 44, 39, 44,100,101,102, 44, 39, 41, 41, 59, 39, 41, 10, 32, 32,101, 108,115,101, 10, 32, 32, 32,111,117,116,112,117,116, 40, 39, 116,111,108,117, 97, 95,116,111,102,105,101,108,100,117,115, 101,114,116,121,112,101, 40,116,111,108,117, 97, 95, 83, 44, 39, 44,110, 97,114,103, 44, 39, 44,105, 43, 49, 44, 39, 44, 100,101,102, 44, 39, 41, 41, 59, 39, 41, 10, 32, 32,101,110, 100, 10, 32, 32,111,117,116,112,117,116, 40, 39, 32, 32, 32, 125, 39, 41, 10, 32, 32,111,117,116,112,117,116, 40, 39, 32, 32,125, 39, 41, 10, 32,101,110,100, 10,101,110,100, 10, 10, 45, 45, 32, 71,101,116, 32,112, 97,114, 97,109,101,116,101, 114, 32,118, 97,108,117,101, 10,102,117,110, 99,116,105,111, 110, 32, 99,108, 97,115,115, 68,101, 99,108, 97,114, 97,116, 105,111,110, 58,115,101,116, 97,114,114, 97,121, 32, 40,110, 97,114,103, 41, 10, 32,105,102, 32,110,111,116, 32,115,116, 114,102,105,110,100, 40,115,101,108,102, 46,116,121,112,101, 44, 39, 99,111,110,115,116, 37,115, 43, 39, 41, 32, 97,110, 100, 32,115,101,108,102, 46,100,105,109, 32,126, 61, 32, 39, 39, 32,116,104,101,110, 10, 9, 32,108,111, 99, 97,108, 32, 116,121,112,101, 32, 61, 32,103,115,117, 98, 40,115,101,108, 102, 46,116,121,112,101, 44, 39, 99,111,110,115,116, 32, 39, 44, 39, 39, 41, 10, 32, 32,111,117,116,112,117,116, 40, 39, 32, 32,123, 39, 41, 10, 32, 32,111,117,116,112,117,116, 40, 39, 32, 32, 32,105,110,116, 32,105, 59, 39, 41, 10, 32, 32, 111,117,116,112,117,116, 40, 39, 32, 32, 32,102,111,114, 40, 105, 61, 48, 59, 32,105, 60, 39, 46, 46,115,101,108,102, 46, 100,105,109, 46, 46, 39, 59,105, 43, 43, 41, 39, 41, 10, 32, 32,108,111, 99, 97,108, 32,116, 44, 99,116, 32, 61, 32,105, 115, 98, 97,115,105, 99, 40,116,121,112,101, 41, 10, 32, 32, 105,102, 32,116, 32,116,104,101,110, 10, 32, 32, 32,111,117, 116,112,117,116, 40, 39, 32, 32, 32, 32,116,111,108,117, 97, 95,112,117,115,104,102,105,101,108,100, 39, 46, 46,116, 46, 46, 39, 40,116,111,108,117, 97, 95, 83, 44, 39, 44,110, 97, 114,103, 44, 39, 44,105, 43, 49, 44, 40, 39, 44, 99,116, 44, 39, 41, 39, 44,115,101,108,102, 46,110, 97,109,101, 44, 39, 91,105, 93, 41, 59, 39, 41, 10, 32, 32,101,108,115,101, 10, 32, 32, 32,105,102, 32,115,101,108,102, 46,112,116,114, 32, 61, 61, 32, 39, 39, 32,116,104,101,110, 10, 32, 32, 32, 32, 32,111,117,116,112,117,116, 40, 39, 32, 32, 32,123, 39, 41, 10, 32, 32, 32, 32, 32,111,117,116,112,117,116, 40, 39, 35, 105,102,100,101,102, 32, 95, 95, 99,112,108,117,115,112,108, 117,115, 92,110, 39, 41, 10, 32, 32, 32, 32, 32,111,117,116, 112,117,116, 40, 39, 32, 32, 32, 32,118,111,105,100, 42, 32, 116,111,108,117, 97, 95,111, 98,106, 32, 61, 32, 77,116,111, 108,117, 97, 95,110,101,119, 40, 40, 39, 44,116,121,112,101, 44, 39, 41, 40, 39, 44,115,101,108,102, 46,110, 97,109,101, 44, 39, 91,105, 93, 41, 41, 59, 39, 41, 10, 32, 32, 32, 32, 32,111,117,116,112,117,116, 40, 39, 32, 32, 32, 32,116,111, 108,117, 97, 95,112,117,115,104,102,105,101,108,100,117,115, 101,114,116,121,112,101, 95, 97,110,100, 95,116, 97,107,101, 111,119,110,101,114,115,104,105,112, 40,116,111,108,117, 97, 95, 83, 44, 39, 44,110, 97,114,103, 44, 39, 44,105, 43, 49, 44,116,111,108,117, 97, 95,111, 98,106, 44, 34, 39, 44,116, 121,112,101, 44, 39, 34, 41, 59, 39, 41, 10, 32, 32, 32, 32, 32,111,117,116,112,117,116, 40, 39, 35,101,108,115,101, 92, 110, 39, 41, 10, 32, 32, 32, 32, 32,111,117,116,112,117,116, 40, 39, 32, 32, 32, 32,118,111,105,100, 42, 32,116,111,108, 117, 97, 95,111, 98,106, 32, 61, 32,116,111,108,117, 97, 95, 99,111,112,121, 40,116,111,108,117, 97, 95, 83, 44, 40,118, 111,105,100, 42, 41, 38, 39, 44,115,101,108,102, 46,110, 97, 109,101, 44, 39, 91,105, 93, 44,115,105,122,101,111,102, 40, 39, 44,116,121,112,101, 44, 39, 41, 41, 59, 39, 41, 10, 32, 32, 32, 32, 32,111,117,116,112,117,116, 40, 39, 32, 32, 32, 32,116,111,108,117, 97, 95,112,117,115,104,102,105,101,108, 100,117,115,101,114,116,121,112,101, 40,116,111,108,117, 97, 95, 83, 44, 39, 44,110, 97,114,103, 44, 39, 44,105, 43, 49, 44,116,111,108,117, 97, 95,111, 98,106, 44, 34, 39, 44,116, 121,112,101, 44, 39, 34, 41, 59, 39, 41, 10, 32, 32, 32, 32, 32,111,117,116,112,117,116, 40, 39, 35,101,110,100,105,102, 92,110, 39, 41, 10, 32, 32, 32, 32, 32,111,117,116,112,117, 116, 40, 39, 32, 32, 32,125, 39, 41, 10, 32, 32, 32,101,108, 115,101, 10, 32, 32, 32, 32,111,117,116,112,117,116, 40, 39, 32, 32, 32,116,111,108,117, 97, 95,112,117,115,104,102,105, 101,108,100,117,115,101,114,116,121,112,101, 40,116,111,108, 117, 97, 95, 83, 44, 39, 44,110, 97,114,103, 44, 39, 44,105, 43, 49, 44, 40,118,111,105,100, 42, 41, 39, 44,115,101,108, 102, 46,110, 97,109,101, 44, 39, 91,105, 93, 44, 34, 39, 44, 116,121,112,101, 44, 39, 34, 41, 59, 39, 41, 10, 32, 32, 32, 101,110,100, 10, 32, 32,101,110,100, 10, 32, 32,111,117,116, 112,117,116, 40, 39, 32, 32,125, 39, 41, 10, 32,101,110,100, 10,101,110,100, 10, 10, 45, 45, 32, 70,114,101,101, 32,100, 121,110, 97,109,105, 99, 97,108,108,121, 32, 97,108,108,111, 99, 97,116,101,100, 32, 97,114,114, 97,121, 10,102,117,110, 99,116,105,111,110, 32, 99,108, 97,115,115, 68,101, 99,108, 97,114, 97,116,105,111,110, 58,102,114,101,101, 97,114,114, 97,121, 32, 40, 41, 10, 32,105,102, 32,115,101,108,102, 46, 100,105,109, 32,126, 61, 32, 39, 39, 32, 97,110,100, 32,116, 111,110,117,109, 98,101,114, 40,115,101,108,102, 46,100,105, 109, 41, 61, 61,110,105,108, 32,116,104,101,110, 10, 9, 32, 111,117,116,112,117,116, 40, 39, 35,105,102,100,101,102, 32, 95, 95, 99,112,108,117,115,112,108,117,115, 92,110, 39, 41, 10, 9, 9,111,117,116,112,117,116, 40, 39, 32, 32, 77,116, 111,108,117, 97, 95,100,101,108,101,116,101, 95,100,105,109, 40, 39, 44,115,101,108,102, 46,110, 97,109,101, 44, 39, 41, 59, 39, 41, 10, 9, 32,111,117,116,112,117,116, 40, 39, 35, 101,108,115,101, 92,110, 39, 41, 10, 32, 32,111,117,116,112, 117,116, 40, 39, 32, 32,102,114,101,101, 40, 39, 44,115,101, 108,102, 46,110, 97,109,101, 44, 39, 41, 59, 39, 41, 10, 9, 32,111,117,116,112,117,116, 40, 39, 35,101,110,100,105,102, 92,110, 39, 41, 10, 32,101,110,100, 10,101,110,100, 10, 10, 45, 45, 32, 80, 97,115,115, 32,112, 97,114, 97,109,101,116, 101,114, 10,102,117,110, 99,116,105,111,110, 32, 99,108, 97, 115,115, 68,101, 99,108, 97,114, 97,116,105,111,110, 58,112, 97,115,115,112, 97,114, 32, 40, 41, 10, 32,105,102, 32,115, 101,108,102, 46,112,116,114, 61, 61, 39, 38, 39, 32, 97,110, 100, 32,110,111,116, 32,105,115, 98, 97,115,105, 99, 40,115, 101,108,102, 46,116,121,112,101, 41, 32,116,104,101,110, 10, 32, 32,111,117,116,112,117,116, 40, 39, 42, 39, 46, 46,115, 101,108,102, 46,110, 97,109,101, 41, 10, 32,101,108,115,101, 105,102, 32,115,101,108,102, 46,114,101,116, 61, 61, 39, 42, 39, 32,116,104,101,110, 10, 32, 32,111,117,116,112,117,116, 40, 39, 38, 39, 46, 46,115,101,108,102, 46,110, 97,109,101, 41, 10, 32,101,108,115,101, 10, 32, 32,111,117,116,112,117, 116, 40,115,101,108,102, 46,110, 97,109,101, 41, 10, 32,101, 110,100, 10,101,110,100, 10, 10, 45, 45, 32, 82,101,116,117, 114,110, 32,112, 97,114, 97,109,101,116,101,114, 32,118, 97, 108,117,101, 10,102,117,110, 99,116,105,111,110, 32, 99,108, 97,115,115, 68,101, 99,108, 97,114, 97,116,105,111,110, 58, 114,101,116,118, 97,108,117,101, 32, 40, 41, 10, 32,105,102, 32,115,101,108,102, 46,114,101,116, 32,126, 61, 32, 39, 39, 32,116,104,101,110, 10, 32, 32,108,111, 99, 97,108, 32,116, 44, 99,116, 32, 61, 32,105,115, 98, 97,115,105, 99, 40,115, 101,108,102, 46,116,121,112,101, 41, 10, 32, 32,105,102, 32, 116, 32, 97,110,100, 32,116,126, 61, 39, 39, 32,116,104,101, 110, 10, 32, 32, 32,111,117,116,112,117,116, 40, 39, 32, 32, 32,116,111,108,117, 97, 95,112,117,115,104, 39, 46, 46,116, 46, 46, 39, 40,116,111,108,117, 97, 95, 83, 44, 40, 39, 44, 99,116, 44, 39, 41, 39, 46, 46,115,101,108,102, 46,110, 97, 109,101, 46, 46, 39, 41, 59, 39, 41, 10, 32, 32,101,108,115, 101, 10, 32, 32, 32,108,111, 99, 97,108, 32,112,117,115,104, 95,102,117,110, 99, 32, 61, 32,103,101,116, 95,112,117,115, 104, 95,102,117,110, 99,116,105,111,110, 40,115,101,108,102, 46,116,121,112,101, 41, 10, 32, 32, 32,111,117,116,112,117, 116, 40, 39, 32, 32, 32, 39, 44,112,117,115,104, 95,102,117, 110, 99, 44, 39, 40,116,111,108,117, 97, 95, 83, 44, 40,118, 111,105,100, 42, 41, 39, 46, 46,115,101,108,102, 46,110, 97, 109,101, 46, 46, 39, 44, 34, 39, 44,115,101,108,102, 46,116, 121,112,101, 44, 39, 34, 41, 59, 39, 41, 10, 32, 32,101,110, 100, 10, 32, 32,114,101,116,117,114,110, 32, 49, 10, 32,101, 110,100, 10, 32,114,101,116,117,114,110, 32, 48, 10,101,110, 100, 10, 10, 45, 45, 32, 73,110,116,101,114,110, 97,108, 32, 99,111,110,115,116,114,117, 99,116,111,114, 10,102,117,110, 99,116,105,111,110, 32, 95, 68,101, 99,108, 97,114, 97,116, 105,111,110, 32, 40,116, 41, 10, 10, 32,115,101,116,109,101, 116, 97,116, 97, 98,108,101, 40,116, 44, 99,108, 97,115,115, 68,101, 99,108, 97,114, 97,116,105,111,110, 41, 10, 32,116, 58, 98,117,105,108,100,110, 97,109,101,115, 40, 41, 10, 32, 116, 58, 99,104,101, 99,107,110, 97,109,101, 40, 41, 10, 32, 116, 58, 99,104,101, 99,107,116,121,112,101, 40, 41, 10, 32, 108,111, 99, 97,108, 32,102,116, 32, 61, 32,102,105,110,100, 116,121,112,101, 40,116, 46,116,121,112,101, 41, 32,111,114, 32,116, 46,116,121,112,101, 10, 32,105,102, 32,110,111,116, 32,105,115,101,110,117,109, 40,102,116, 41, 32,116,104,101, 110, 10, 9,116, 46,109,111,100, 44, 32,116, 46,116,121,112, 101, 32, 61, 32, 97,112,112,108,121,116,121,112,101,100,101, 102, 40,116, 46,109,111,100, 44, 32,102,116, 41, 10, 32,101, 110,100, 10, 10, 32,105,102, 32,116, 46,107,105,110,100, 61, 61, 34,118, 97,114, 34, 32, 97,110,100, 32, 40,115,116,114, 105,110,103, 46,102,105,110,100, 40,116, 46,109,111,100, 44, 32, 34,116,111,108,117, 97, 95,112,114,111,112,101,114,116, 121, 37,115, 34, 41, 32,111,114, 32,115,116,114,105,110,103, 46,102,105,110,100, 40,116, 46,109,111,100, 44, 32, 34,116, 111,108,117, 97, 95,112,114,111,112,101,114,116,121, 36, 34, 41, 41, 32,116,104,101,110, 10, 32, 9,116, 46,109,111,100, 32, 61, 32,115,116,114,105,110,103, 46,103,115,117, 98, 40, 116, 46,109,111,100, 44, 32, 34,116,111,108,117, 97, 95,112, 114,111,112,101,114,116,121, 34, 44, 32, 34,116,111,108,117, 97, 95,112,114,111,112,101,114,116,121, 95, 95, 34, 46, 46, 103,101,116, 95,112,114,111,112,101,114,116,121, 95,116,121, 112,101, 40, 41, 41, 10, 32,101,110,100, 10, 10, 32,114,101, 116,117,114,110, 32,116, 10,101,110,100, 10, 10, 45, 45, 32, 67,111,110,115,116,114,117, 99,116,111,114, 10, 45, 45, 32, 69,120,112,101, 99,116,115, 32,116,104,101, 32,115,116,114, 105,110,103, 32,100,101, 99,108, 97,114, 97,116,105,111,110, 46, 10, 45, 45, 32, 84,104,101, 32,107,105,110,100, 32,111, 102, 32,100,101, 99,108, 97,114, 97,116,105,111,110, 32, 99, 97,110, 32, 98,101, 32, 34,118, 97,114, 34, 32,111,114, 32, 34,102,117,110, 99, 34, 46, 10,102,117,110, 99,116,105,111, 110, 32, 68,101, 99,108, 97,114, 97,116,105,111,110, 32, 40, 115, 44,107,105,110,100, 44,105,115, 95,112, 97,114, 97,109, 101,116,101,114, 41, 10, 10, 32, 45, 45, 32,101,108,105,109, 105,110, 97,116,101, 32,115,112, 97, 99,101,115, 32,105,102, 32,100,101,102, 97,117,108,116, 32,118, 97,108,117,101, 32, 105,115, 32,112,114,111,118,105,100,101,100, 10, 32,115, 32, 61, 32,103,115,117, 98, 40,115, 44, 34, 37,115, 42, 61, 37, 115, 42, 34, 44, 34, 61, 34, 41, 10, 32,115, 32, 61, 32,103, 115,117, 98, 40,115, 44, 32, 34, 37,115, 42, 60, 34, 44, 32, 34, 60, 34, 41, 10, 10, 32,108,111, 99, 97,108, 32,100,101, 102, 98, 44,116,109,112,100,101,102, 10, 32,100,101,102, 98, 44, 95, 44,116,109,112,100,101,102, 32, 61, 32,115,116,114, 105,110,103, 46,102,105,110,100, 40,115, 44, 32, 34, 40, 61, 46, 42, 41, 36, 34, 41, 10, 32,105,102, 32,100,101,102, 98, 32,116,104,101,110, 10, 32, 9,115, 32, 61, 32,115,116,114, 105,110,103, 46,103,115,117, 98, 40,115, 44, 32, 34, 61, 46, 42, 36, 34, 44, 32, 34, 34, 41, 10, 32,101,108,115,101, 10, 32, 9,116,109,112,100,101,102, 32, 61, 32, 39, 39, 10, 32, 101,110,100, 10, 32,105,102, 32,107,105,110,100, 32, 61, 61, 32, 34,118, 97,114, 34, 32,116,104,101,110, 10, 32, 32, 45, 45, 32, 99,104,101, 99,107, 32,116,104,101, 32,102,111,114, 109, 58, 32,118,111,105,100, 10, 32, 32,105,102, 32,115, 32, 61, 61, 32, 39, 39, 32,111,114, 32,115, 32, 61, 61, 32, 39, 118,111,105,100, 39, 32,116,104,101,110, 10, 32, 32, 32,114, 101,116,117,114,110, 32, 95, 68,101, 99,108, 97,114, 97,116, 105,111,110,123,116,121,112,101, 32, 61, 32, 39,118,111,105, 100, 39, 44, 32,107,105,110,100, 32, 61, 32,107,105,110,100, 44, 32,105,115, 95,112, 97,114, 97,109,101,116,101,114, 32, 61, 32,105,115, 95,112, 97,114, 97,109,101,116,101,114,125, 10, 32, 32,101,110,100, 10, 32,101,110,100, 10, 10, 32, 45, 45, 32, 99,104,101, 99,107, 32,116,104,101, 32,102,111,114, 109, 58, 32,109,111,100, 32,116,121,112,101, 42, 38, 32,110, 97,109,101, 10, 32,108,111, 99, 97,108, 32,116, 32, 61, 32, 115,112,108,105,116, 95, 99, 95,116,111,107,101,110,115, 40, 115, 44, 39, 37, 42, 37,115, 42, 38, 39, 41, 10, 32,105,102, 32,116, 46,110, 32, 61, 61, 32, 50, 32,116,104,101,110, 10, 32, 32,105,102, 32,107,105,110,100, 32, 61, 61, 32, 39,102, 117,110, 99, 39, 32,116,104,101,110, 10, 32, 32, 32,101,114, 114,111,114, 40, 34, 35,105,110,118, 97,108,105,100, 32,102, 117,110, 99,116,105,111,110, 32,114,101,116,117,114,110, 32, 116,121,112,101, 58, 32, 34, 46, 46,115, 41, 10, 32, 32,101, 110,100, 10, 32, 32, 45, 45,108,111, 99, 97,108, 32,109, 32, 61, 32,115,112,108,105,116, 40,116, 91, 49, 93, 44, 39, 37, 115, 37,115, 42, 39, 41, 10, 32, 32,108,111, 99, 97,108, 32, 109, 32, 61, 32,115,112,108,105,116, 95, 99, 95,116,111,107, 101,110,115, 40,116, 91, 49, 93, 44, 39, 37,115, 43, 39, 41, 10, 32, 32,114,101,116,117,114,110, 32, 95, 68,101, 99,108, 97,114, 97,116,105,111,110,123, 10, 32, 32, 32,110, 97,109, 101, 32, 61, 32,116, 91, 50, 93, 46, 46,116,109,112,100,101, 102, 44, 10, 32, 32, 32,112,116,114, 32, 61, 32, 39, 42, 39, 44, 10, 32, 32, 32,114,101,116, 32, 61, 32, 39, 38, 39, 44, 10, 32, 32, 32, 45, 45,116,121,112,101, 32, 61, 32,114,101, 98,117,105,108,100, 95,116,101,109,112,108, 97,116,101, 40, 109, 91,109, 46,110, 93, 44, 32,116, 98, 44, 32,116,105,109, 112,108, 41, 44, 10, 32, 32, 32,116,121,112,101, 32, 61, 32, 109, 91,109, 46,110, 93, 44, 10, 32, 32, 32,109,111,100, 32, 61, 32, 99,111,110, 99, 97,116, 40,109, 44, 49, 44,109, 46, 110, 45, 49, 41, 44, 10, 32, 32, 32,105,115, 95,112, 97,114, 97,109,101,116,101,114, 32, 61, 32,105,115, 95,112, 97,114, 97,109,101,116,101,114, 44, 10, 32, 32, 32,107,105,110,100, 32, 61, 32,107,105,110,100, 10, 32, 32,125, 10, 32,101,110, 100, 10, 10, 32, 45, 45, 32, 99,104,101, 99,107, 32,116,104, 101, 32,102,111,114,109, 58, 32,109,111,100, 32,116,121,112, 101, 42, 42, 32,110, 97,109,101, 10, 32,116, 32, 61, 32,115, 112,108,105,116, 95, 99, 95,116,111,107,101,110,115, 40,115, 44, 39, 37, 42, 37,115, 42, 37, 42, 39, 41, 10, 32,105,102, 32,116, 46,110, 32, 61, 61, 32, 50, 32,116,104,101,110, 10, 32, 32,105,102, 32,107,105,110,100, 32, 61, 61, 32, 39,102, 117,110, 99, 39, 32,116,104,101,110, 10, 32, 32, 32,101,114, 114,111,114, 40, 34, 35,105,110,118, 97,108,105,100, 32,102, 117,110, 99,116,105,111,110, 32,114,101,116,117,114,110, 32, 116,121,112,101, 58, 32, 34, 46, 46,115, 41, 10, 32, 32,101, 110,100, 10, 32, 32, 45, 45,108,111, 99, 97,108, 32,109, 32, 61, 32,115,112,108,105,116, 40,116, 91, 49, 93, 44, 39, 37, 115, 37,115, 42, 39, 41, 10, 32, 32,108,111, 99, 97,108, 32, 109, 32, 61, 32,115,112,108,105,116, 95, 99, 95,116,111,107, 101,110,115, 40,116, 91, 49, 93, 44, 39, 37,115, 43, 39, 41, 10, 32, 32,114,101,116,117,114,110, 32, 95, 68,101, 99,108, 97,114, 97,116,105,111,110,123, 10, 32, 32, 32,110, 97,109, 101, 32, 61, 32,116, 91, 50, 93, 46, 46,116,109,112,100,101, 102, 44, 10, 32, 32, 32,112,116,114, 32, 61, 32, 39, 42, 39, 44, 10, 32, 32, 32,114,101,116, 32, 61, 32, 39, 42, 39, 44, 10, 32, 32, 32, 45, 45,116,121,112,101, 32, 61, 32,114,101, 98,117,105,108,100, 95,116,101,109,112,108, 97,116,101, 40, 109, 91,109, 46,110, 93, 44, 32,116, 98, 44, 32,116,105,109, 112,108, 41, 44, 10, 32, 32, 32,116,121,112,101, 32, 61, 32, 109, 91,109, 46,110, 93, 44, 10, 32, 32, 32,109,111,100, 32, 61, 32, 99,111,110, 99, 97,116, 40,109, 44, 49, 44,109, 46, 110, 45, 49, 41, 44, 10, 32, 32, 32,105,115, 95,112, 97,114, 97,109,101,116,101,114, 32, 61, 32,105,115, 95,112, 97,114, 97,109,101,116,101,114, 44, 10, 32, 32, 32,107,105,110,100, 32, 61, 32,107,105,110,100, 10, 32, 32,125, 10, 32,101,110, 100, 10, 10, 32, 45, 45, 32, 99,104,101, 99,107, 32,116,104, 101, 32,102,111,114,109, 58, 32,109,111,100, 32,116,121,112, 101, 38, 32,110, 97,109,101, 10, 32,116, 32, 61, 32,115,112, 108,105,116, 95, 99, 95,116,111,107,101,110,115, 40,115, 44, 39, 38, 39, 41, 10, 32,105,102, 32,116, 46,110, 32, 61, 61, 32, 50, 32,116,104,101,110, 10, 32, 32, 45, 45,108,111, 99, 97,108, 32,109, 32, 61, 32,115,112,108,105,116, 40,116, 91, 49, 93, 44, 39, 37,115, 37,115, 42, 39, 41, 10, 32, 32,108, 111, 99, 97,108, 32,109, 32, 61, 32,115,112,108,105,116, 95, 99, 95,116,111,107,101,110,115, 40,116, 91, 49, 93, 44, 39, 37,115, 43, 39, 41, 10, 32, 32,114,101,116,117,114,110, 32, 95, 68,101, 99,108, 97,114, 97,116,105,111,110,123, 10, 32, 32, 32,110, 97,109,101, 32, 61, 32,116, 91, 50, 93, 46, 46, 116,109,112,100,101,102, 44, 10, 32, 32, 32,112,116,114, 32, 61, 32, 39, 38, 39, 44, 10, 32, 32, 32, 45, 45,116,121,112, 101, 32, 61, 32,114,101, 98,117,105,108,100, 95,116,101,109, 112,108, 97,116,101, 40,109, 91,109, 46,110, 93, 44, 32,116, 98, 44, 32,116,105,109,112,108, 41, 44, 10, 32, 32, 32,116, 121,112,101, 32, 61, 32,109, 91,109, 46,110, 93, 44, 10, 32, 32, 32,109,111,100, 32, 61, 32, 99,111,110, 99, 97,116, 40, 109, 44, 49, 44,109, 46,110, 45, 49, 41, 44, 10, 32, 32, 32, 105,115, 95,112, 97,114, 97,109,101,116,101,114, 32, 61, 32, 105,115, 95,112, 97,114, 97,109,101,116,101,114, 44, 10, 32, 32, 32,107,105,110,100, 32, 61, 32,107,105,110,100, 10, 32, 32,125, 10, 32,101,110,100, 10, 10, 32, 45, 45, 32, 99,104, 101, 99,107, 32,116,104,101, 32,102,111,114,109, 58, 32,109, 111,100, 32,116,121,112,101, 42, 32,110, 97,109,101, 10, 32, 108,111, 99, 97,108, 32,115, 49, 32, 61, 32,103,115,117, 98, 40,115, 44, 34, 40, 37, 98, 92, 91, 92, 93, 41, 34, 44,102, 117,110, 99,116,105,111,110, 32, 40,110, 41, 32,114,101,116, 117,114,110, 32,103,115,117, 98, 40,110, 44, 39, 37, 42, 39, 44, 39, 92, 49, 39, 41, 32,101,110,100, 41, 10, 32,116, 32, 61, 32,115,112,108,105,116, 95, 99, 95,116,111,107,101,110, 115, 40,115, 49, 44, 39, 37, 42, 39, 41, 10, 32,105,102, 32, 116, 46,110, 32, 61, 61, 32, 50, 32,116,104,101,110, 10, 32, 32,116, 91, 50, 93, 32, 61, 32,103,115,117, 98, 40,116, 91, 50, 93, 44, 39, 92, 49, 39, 44, 39, 37, 42, 39, 41, 32, 45, 45, 32,114,101,115,116,111,114,101, 32, 42, 32,105,110, 32, 100,105,109,101,110,115,105,111,110, 32,101,120,112,114,101, 115,115,105,111,110, 10, 32, 32, 45, 45,108,111, 99, 97,108, 32,109, 32, 61, 32,115,112,108,105,116, 40,116, 91, 49, 93, 44, 39, 37,115, 37,115, 42, 39, 41, 10, 32, 32,108,111, 99, 97,108, 32,109, 32, 61, 32,115,112,108,105,116, 95, 99, 95, 116,111,107,101,110,115, 40,116, 91, 49, 93, 44, 39, 37,115, 43, 39, 41, 10, 32, 32,114,101,116,117,114,110, 32, 95, 68, 101, 99,108, 97,114, 97,116,105,111,110,123, 10, 32, 32, 32, 110, 97,109,101, 32, 61, 32,116, 91, 50, 93, 46, 46,116,109, 112,100,101,102, 44, 10, 32, 32, 32,112,116,114, 32, 61, 32, 39, 42, 39, 44, 10, 32, 32, 32,116,121,112,101, 32, 61, 32, 109, 91,109, 46,110, 93, 44, 10, 32, 32, 32, 45, 45,116,121, 112,101, 32, 61, 32,114,101, 98,117,105,108,100, 95,116,101, 109,112,108, 97,116,101, 40,109, 91,109, 46,110, 93, 44, 32, 116, 98, 44, 32,116,105,109,112,108, 41, 44, 10, 32, 32, 32, 109,111,100, 32, 61, 32, 99,111,110, 99, 97,116, 40,109, 44, 49, 44,109, 46,110, 45, 49, 41, 32, 32, 32, 44, 10, 32, 32, 32,105,115, 95,112, 97,114, 97,109,101,116,101,114, 32, 61, 32,105,115, 95,112, 97,114, 97,109,101,116,101,114, 44, 10, 32, 32, 32,107,105,110,100, 32, 61, 32,107,105,110,100, 10, 32, 32,125, 10, 32,101,110,100, 10, 10, 32,105,102, 32,107, 105,110,100, 32, 61, 61, 32, 39,118, 97,114, 39, 32,116,104, 101,110, 10, 32, 32, 45, 45, 32, 99,104,101, 99,107, 32,116, 104,101, 32,102,111,114,109, 58, 32,109,111,100, 32,116,121, 112,101, 32,110, 97,109,101, 10, 32, 32, 45, 45,116, 32, 61, 32,115,112,108,105,116, 40,115, 44, 39, 37,115, 37,115, 42, 39, 41, 10, 32, 32,116, 32, 61, 32,115,112,108,105,116, 95, 99, 95,116,111,107,101,110,115, 40,115, 44, 39, 37,115, 43, 39, 41, 10, 32, 32,108,111, 99, 97,108, 32,118, 10, 32, 32, 105,102, 32,102,105,110,100,116,121,112,101, 40,116, 91,116, 46,110, 93, 41, 32,116,104,101,110, 32,118, 32, 61, 32, 99, 114,101, 97,116,101, 95,118, 97,114,110, 97,109,101, 40, 41, 32,101,108,115,101, 32,118, 32, 61, 32,116, 91,116, 46,110, 93, 59, 32,116, 46,110, 32, 61, 32,116, 46,110, 45, 49, 32, 101,110,100, 10, 32, 32,114,101,116,117,114,110, 32, 95, 68, 101, 99,108, 97,114, 97,116,105,111,110,123, 10, 32, 32, 32, 110, 97,109,101, 32, 61, 32,118, 46, 46,116,109,112,100,101, 102, 44, 10, 32, 32, 32, 45, 45,116,121,112,101, 32, 61, 32, 114,101, 98,117,105,108,100, 95,116,101,109,112,108, 97,116, 101, 40,116, 91,116, 46,110, 93, 44, 32,116, 98, 44, 32,116, 105,109,112,108, 41, 44, 10, 32, 32, 32,116,121,112,101, 32, 61, 32,116, 91,116, 46,110, 93, 44, 10, 32, 32, 32,109,111, 100, 32, 61, 32, 99,111,110, 99, 97,116, 40,116, 44, 49, 44, 116, 46,110, 45, 49, 41, 44, 10, 32, 32, 32,105,115, 95,112, 97,114, 97,109,101,116,101,114, 32, 61, 32,105,115, 95,112, 97,114, 97,109,101,116,101,114, 44, 10, 32, 32, 32,107,105, 110,100, 32, 61, 32,107,105,110,100, 10, 32, 32,125, 10, 10, 32,101,108,115,101, 32, 45, 45, 32,107,105,110,100, 32, 61, 61, 32, 34,102,117,110, 99, 34, 10, 10, 32, 32, 45, 45, 32, 99,104,101, 99,107, 32,116,104,101, 32,102,111,114,109, 58, 32,109,111,100, 32,116,121,112,101, 32,110, 97,109,101, 10, 32, 32, 45, 45,116, 32, 61, 32,115,112,108,105,116, 40,115, 44, 39, 37,115, 37,115, 42, 39, 41, 10, 32, 32,116, 32, 61, 32,115,112,108,105,116, 95, 99, 95,116,111,107,101,110,115, 40,115, 44, 39, 37,115, 43, 39, 41, 10, 32, 32,108,111, 99, 97,108, 32,118, 32, 61, 32,116, 91,116, 46,110, 93, 32, 32, 45, 45, 32,108, 97,115,116, 32,119,111,114,100, 32,105,115, 32,116,104,101, 32,102,117,110, 99,116,105,111,110, 32,110, 97,109,101, 10, 32, 32,108,111, 99, 97,108, 32,116,112, 44, 109,100, 10, 32, 32,105,102, 32,116, 46,110, 62, 49, 32,116, 104,101,110, 10, 32, 32, 32,116,112, 32, 61, 32,116, 91,116, 46,110, 45, 49, 93, 10, 32, 32, 32,109,100, 32, 61, 32, 99, 111,110, 99, 97,116, 40,116, 44, 49, 44,116, 46,110, 45, 50, 41, 10, 32, 32,101,110,100, 10, 32, 32, 45, 45,105,102, 32, 116,112, 32,116,104,101,110, 32,116,112, 32, 61, 32,114,101, 98,117,105,108,100, 95,116,101,109,112,108, 97,116,101, 40, 116,112, 44, 32,116, 98, 44, 32,116,105,109,112,108, 41, 32, 101,110,100, 10, 32, 32,114,101,116,117,114,110, 32, 95, 68, 101, 99,108, 97,114, 97,116,105,111,110,123, 10, 32, 32, 32, 110, 97,109,101, 32, 61, 32,118, 44, 10, 32, 32, 32,116,121, 112,101, 32, 61, 32,116,112, 44, 10, 32, 32, 32,109,111,100, 32, 61, 32,109,100, 44, 10, 32, 32, 32,105,115, 95,112, 97, 114, 97,109,101,116,101,114, 32, 61, 32,105,115, 95,112, 97, 114, 97,109,101,116,101,114, 44, 10, 32, 32, 32,107,105,110, 100, 32, 61, 32,107,105,110,100, 10, 32, 32,125, 10, 32,101, 110,100, 10, 10,101,110,100,32 }; tolua_dobuffer(tolua_S,(char*)B,sizeof(B),"tolua embedded: src/bin/lua/declaration.lua"); lua_settop(tolua_S, top); } /* end of embedded lua code */ { /* begin embedded lua code */ int top = lua_gettop(tolua_S); static unsigned char B[] = { 45, 45, 32,116,111,108,117, 97, 58, 32,118, 97,114,105, 97, 98,108,101, 32, 99,108, 97,115,115, 10, 45, 45, 32, 87,114, 105,116,116,101,110, 32, 98,121, 32, 87, 97,108,100,101,109, 97,114, 32, 67,101,108,101,115, 10, 45, 45, 32, 84,101, 67, 71,114, 97,102, 47, 80, 85, 67, 45, 82,105,111, 10, 45, 45, 32, 74,117,108, 32, 49, 57, 57, 56, 10, 45, 45, 32, 36, 73, 100, 58, 32, 36, 10, 10, 45, 45, 32, 84,104,105,115, 32, 99, 111,100,101, 32,105,115, 32,102,114,101,101, 32,115,111,102, 116,119, 97,114,101, 59, 32,121,111,117, 32, 99, 97,110, 32, 114,101,100,105,115,116,114,105, 98,117,116,101, 32,105,116, 32, 97,110,100, 47,111,114, 32,109,111,100,105,102,121, 32, 105,116, 46, 10, 45, 45, 32, 84,104,101, 32,115,111,102,116, 119, 97,114,101, 32,112,114,111,118,105,100,101,100, 32,104, 101,114,101,117,110,100,101,114, 32,105,115, 32,111,110, 32, 97,110, 32, 34, 97,115, 32,105,115, 34, 32, 98, 97,115,105, 115, 44, 32, 97,110,100, 10, 45, 45, 32,116,104,101, 32, 97, 117,116,104,111,114, 32,104, 97,115, 32,110,111, 32,111, 98, 108,105,103, 97,116,105,111,110, 32,116,111, 32,112,114,111, 118,105,100,101, 32,109, 97,105,110,116,101,110, 97,110, 99, 101, 44, 32,115,117,112,112,111,114,116, 44, 32,117,112,100, 97,116,101,115, 44, 10, 45, 45, 32,101,110,104, 97,110, 99, 101,109,101,110,116,115, 44, 32,111,114, 32,109,111,100,105, 102,105, 99, 97,116,105,111,110,115, 46, 10, 10, 10, 45, 45, 32, 86, 97,114,105, 97, 98,108,101, 32, 99,108, 97,115,115, 10, 45, 45, 32, 82,101,112,114,101,115,101,110,116,115, 32, 97, 32,101,120,116,101,114,110, 32,118, 97,114,105, 97, 98, 108,101, 32,111,114, 32, 97, 32,112,117, 98,108,105, 99, 32, 109,101,109, 98,101,114, 32,111,102, 32, 97, 32, 99,108, 97, 115,115, 46, 10, 45, 45, 32, 83,116,111,114,101,115, 32, 97, 108,108, 32,102,105,101,108,100,115, 32,112,114,101,115,101, 110,116, 32,105,110, 32, 97, 32,100,101, 99,108, 97,114, 97, 116,105,111,110, 46, 10, 99,108, 97,115,115, 86, 97,114,105, 97, 98,108,101, 32, 61, 32,123, 10, 32, 95,103,101,116, 32, 61, 32,123,125, 44, 32, 32, 32, 45, 45, 32,109, 97,112,112, 101,100, 32,103,101,116, 32,102,117,110, 99,116,105,111,110, 115, 10, 32, 95,115,101,116, 32, 61, 32,123,125, 44, 32, 32, 32, 45, 45, 32,109, 97,112,112,101,100, 32,115,101,116, 32, 102,117,110, 99,116,105,111,110,115, 10,125, 10, 99,108, 97, 115,115, 86, 97,114,105, 97, 98,108,101, 46, 95, 95,105,110, 100,101,120, 32, 61, 32, 99,108, 97,115,115, 86, 97,114,105, 97, 98,108,101, 10,115,101,116,109,101,116, 97,116, 97, 98, 108,101, 40, 99,108, 97,115,115, 86, 97,114,105, 97, 98,108, 101, 44, 99,108, 97,115,115, 68,101, 99,108, 97,114, 97,116, 105,111,110, 41, 10, 10, 45, 45, 32, 80,114,105,110,116, 32, 109,101,116,104,111,100, 10,102,117,110, 99,116,105,111,110, 32, 99,108, 97,115,115, 86, 97,114,105, 97, 98,108,101, 58, 112,114,105,110,116, 32, 40,105,100,101,110,116, 44, 99,108, 111,115,101, 41, 10, 32,112,114,105,110,116, 40,105,100,101, 110,116, 46, 46, 34, 86, 97,114,105, 97, 98,108,101,123, 34, 41, 10, 32,112,114,105,110,116, 40,105,100,101,110,116, 46, 46, 34, 32,109,111,100, 32, 32, 61, 32, 39, 34, 46, 46,115, 101,108,102, 46,109,111,100, 46, 46, 34, 39, 44, 34, 41, 10, 32,112,114,105,110,116, 40,105,100,101,110,116, 46, 46, 34, 32,116,121,112,101, 32, 61, 32, 39, 34, 46, 46,115,101,108, 102, 46,116,121,112,101, 46, 46, 34, 39, 44, 34, 41, 10, 32, 112,114,105,110,116, 40,105,100,101,110,116, 46, 46, 34, 32, 112,116,114, 32, 32, 61, 32, 39, 34, 46, 46,115,101,108,102, 46,112,116,114, 46, 46, 34, 39, 44, 34, 41, 10, 32,112,114, 105,110,116, 40,105,100,101,110,116, 46, 46, 34, 32,110, 97, 109,101, 32, 61, 32, 39, 34, 46, 46,115,101,108,102, 46,110, 97,109,101, 46, 46, 34, 39, 44, 34, 41, 10, 32,105,102, 32, 115,101,108,102, 46,100,105,109, 32,116,104,101,110, 32,112, 114,105,110,116, 40,105,100,101,110,116, 46, 46, 34, 32,100, 105,109, 32, 61, 32, 39, 34, 46, 46,115,101,108,102, 46,100, 105,109, 46, 46, 34, 39, 44, 34, 41, 32,101,110,100, 10, 32, 112,114,105,110,116, 40,105,100,101,110,116, 46, 46, 34, 32, 100,101,102, 32, 32, 61, 32, 39, 34, 46, 46,115,101,108,102, 46,100,101,102, 46, 46, 34, 39, 44, 34, 41, 10, 32,112,114, 105,110,116, 40,105,100,101,110,116, 46, 46, 34, 32,114,101, 116, 32, 32, 61, 32, 39, 34, 46, 46,115,101,108,102, 46,114, 101,116, 46, 46, 34, 39, 44, 34, 41, 10, 32,112,114,105,110, 116, 40,105,100,101,110,116, 46, 46, 34,125, 34, 46, 46, 99, 108,111,115,101, 41, 10,101,110,100, 10, 10, 45, 45, 32, 71, 101,110,101,114, 97,116,101,115, 32, 67, 32,102,117,110, 99, 116,105,111,110, 32,110, 97,109,101, 10,102,117,110, 99,116, 105,111,110, 32, 99,108, 97,115,115, 86, 97,114,105, 97, 98, 108,101, 58, 99,102,117,110, 99,110, 97,109,101, 32, 40,112, 114,101,102,105,120, 41, 10, 32,108,111, 99, 97,108, 32,112, 97,114,101,110,116, 32, 61, 32, 34, 34, 10, 32,108,111, 99, 97,108, 32,117,110,115,105,103,110,101,100, 32, 61, 32, 34, 34, 10, 32,108,111, 99, 97,108, 32,112,116,114, 32, 61, 32, 34, 34, 10, 10, 32,108,111, 99, 97,108, 32,112, 32, 61, 32, 115,101,108,102, 58,105,110,109,111,100,117,108,101, 40, 41, 32,111,114, 32,115,101,108,102, 58,105,110,110, 97,109,101, 115,112, 97, 99,101, 40, 41, 32,111,114, 32,115,101,108,102, 58,105,110, 99,108, 97,115,115, 40, 41, 10, 10, 32,105,102, 32,112, 32,116,104,101,110, 10, 32, 9,105,102, 32,115,101, 108,102, 46,112, 97,114,101,110,116, 46, 99,108, 97,115,115, 116,121,112,101, 32, 61, 61, 32, 39, 99,108, 97,115,115, 39, 32,116,104,101,110, 10, 9, 9,112, 97,114,101,110,116, 32, 61, 32, 34, 95, 34, 32, 46, 46, 32,115,101,108,102, 46,112, 97,114,101,110,116, 46,116,121,112,101, 10, 9,101,108,115, 101, 10, 9, 32, 32,112, 97,114,101,110,116, 32, 61, 32, 34, 95, 34, 32, 46, 46, 32,112, 10, 9,101,110,100, 10, 32,101, 110,100, 10, 10, 32,105,102, 32,115,116,114,102,105,110,100, 40,115,101,108,102, 46,109,111,100, 44, 34, 40,117,110,115, 105,103,110,101,100, 41, 34, 41, 32,116,104,101,110, 10, 32, 32,117,110,115,105,103,110,101,100, 32, 61, 32, 34, 95,117, 110,115,105,103,110,101,100, 34, 10, 32,101,110,100, 10, 10, 32,105,102, 32,115,101,108,102, 46,112,116,114, 32, 61, 61, 32, 34, 42, 34, 32,116,104,101,110, 32,112,116,114, 32, 61, 32, 34, 95,112,116,114, 34, 10, 32,101,108,115,101,105,102, 32,115,101,108,102, 46,112,116,114, 32, 61, 61, 32, 34, 38, 34, 32,116,104,101,110, 32,112,116,114, 32, 61, 32, 34, 95, 114,101,102, 34, 10, 32,101,110,100, 10, 10, 32,108,111, 99, 97,108, 32,110, 97,109,101, 32, 61, 32, 32,112,114,101,102, 105,120, 32, 46, 46, 32,112, 97,114,101,110,116, 32, 46, 46, 32,117,110,115,105,103,110,101,100, 32, 46, 46, 32, 34, 95, 34, 32, 46, 46, 32,103,115,117, 98, 40,115,101,108,102, 46, 108,110, 97,109,101, 32,111,114, 32,115,101,108,102, 46,110, 97,109,101, 44, 34, 46, 42, 58, 58, 34, 44, 34, 34, 41, 32, 46, 46, 32,112,116,114, 10, 10, 9,110, 97,109,101, 32, 61, 32, 99,108,101, 97,110, 95,116,101,109,112,108, 97,116,101, 40,110, 97,109,101, 41, 10, 32,114,101,116,117,114,110, 32, 110, 97,109,101, 10, 10,101,110,100, 10, 10, 45, 45, 32, 99, 104,101, 99,107, 32,105,102, 32,105,116, 32,105,115, 32, 97, 32,118, 97,114,105, 97, 98,108,101, 10,102,117,110, 99,116, 105,111,110, 32, 99,108, 97,115,115, 86, 97,114,105, 97, 98, 108,101, 58,105,115,118, 97,114,105, 97, 98,108,101, 32, 40, 41, 10, 32,114,101,116,117,114,110, 32,116,114,117,101, 10, 101,110,100, 10, 10, 45, 45, 32,103,101,116, 32,118, 97,114, 105, 97, 98,108,101, 32,118, 97,108,117,101, 10,102,117,110, 99,116,105,111,110, 32, 99,108, 97,115,115, 86, 97,114,105, 97, 98,108,101, 58,103,101,116,118, 97,108,117,101, 32, 40, 99,108, 97,115,115, 44,115,116, 97,116,105, 99, 44, 32,112, 114,111,112, 95,103,101,116, 41, 10, 10, 9,108,111, 99, 97, 108, 32,110, 97,109,101, 10, 9,105,102, 32,112,114,111,112, 95,103,101,116, 32,116,104,101,110, 10, 10, 9, 9,110, 97, 109,101, 32, 61, 32,112,114,111,112, 95,103,101,116, 46, 46, 34, 40, 41, 34, 10, 9,101,108,115,101, 10, 9, 9,110, 97, 109,101, 32, 61, 32,115,101,108,102, 46,110, 97,109,101, 10, 9,101,110,100, 10, 10, 9,105,102, 32, 99,108, 97,115,115, 32, 97,110,100, 32,115,116, 97,116,105, 99, 32,116,104,101, 110, 10, 9, 32,114,101,116,117,114,110, 32,115,101,108,102, 46,112, 97,114,101,110,116, 46,116,121,112,101, 46, 46, 39, 58, 58, 39, 46, 46,110, 97,109,101, 10, 9,101,108,115,101, 105,102, 32, 99,108, 97,115,115, 32,116,104,101,110, 10, 9, 32,114,101,116,117,114,110, 32, 39,115,101,108,102, 45, 62, 39, 46, 46,110, 97,109,101, 10, 9,101,108,115,101, 10, 9, 32,114,101,116,117,114,110, 32,110, 97,109,101, 10, 9,101, 110,100, 10,101,110,100, 10, 10, 45, 45, 32,103,101,116, 32, 118, 97,114,105, 97, 98,108,101, 32,112,111,105,110,116,101, 114, 32,118, 97,108,117,101, 10,102,117,110, 99,116,105,111, 110, 32, 99,108, 97,115,115, 86, 97,114,105, 97, 98,108,101, 58,103,101,116,112,111,105,110,116,101,114,118, 97,108,117, 101, 32, 40, 99,108, 97,115,115, 44,115,116, 97,116,105, 99, 41, 10, 32,105,102, 32, 99,108, 97,115,115, 32, 97,110,100, 32,115,116, 97,116,105, 99, 32,116,104,101,110, 10, 32, 32, 114,101,116,117,114,110, 32, 99,108, 97,115,115, 46, 46, 39, 58, 58,112, 39, 10, 32,101,108,115,101,105,102, 32, 99,108, 97,115,115, 32,116,104,101,110, 10, 32, 32,114,101,116,117, 114,110, 32, 39,115,101,108,102, 45, 62,112, 39, 10, 32,101, 108,115,101, 10, 32, 32,114,101,116,117,114,110, 32, 39,112, 39, 10, 32,101,110,100, 10,101,110,100, 10, 10, 45, 45, 32, 87,114,105,116,101, 32, 98,105,110,100,105,110,103, 32,102, 117,110, 99,116,105,111,110,115, 10,102,117,110, 99,116,105, 111,110, 32, 99,108, 97,115,115, 86, 97,114,105, 97, 98,108, 101, 58,115,117,112, 99,111,100,101, 32, 40, 41, 10, 10, 32, 108,111, 99, 97,108, 32, 99,108, 97,115,115, 32, 61, 32,115, 101,108,102, 58,105,110, 99,108, 97,115,115, 40, 41, 10, 10, 9,108,111, 99, 97,108, 32,112,114,111,112, 95,103,101,116, 44,112,114,111,112, 95,115,101,116, 10, 9,105,102, 32,115, 116,114,105,110,103, 46,102,105,110,100, 40,115,101,108,102, 46,109,111,100, 44, 32, 39,116,111,108,117, 97, 95,112,114, 111,112,101,114,116,121, 39, 41, 32,116,104,101,110, 10, 10, 9, 9,108,111, 99, 97,108, 32, 95, 44, 95, 44,116,121,112, 101, 32, 61, 32,115,116,114,105,110,103, 46,102,105,110,100, 40,115,101,108,102, 46,109,111,100, 44, 32, 34,116,111,108, 117, 97, 95,112,114,111,112,101,114,116,121, 95, 95, 40, 91, 94, 37,115, 93, 42, 41, 34, 41, 10, 9, 9,116,121,112,101, 32, 61, 32,116,121,112,101, 32,111,114, 32, 34,100,101,102, 97,117,108,116, 34, 10, 9, 9,112,114,111,112, 95,103,101, 116, 44,112,114,111,112, 95,115,101,116, 32, 61, 32,103,101, 116, 95,112,114,111,112,101,114,116,121, 95,109,101,116,104, 111,100,115, 40,116,121,112,101, 44, 32,115,101,108,102, 46, 110, 97,109,101, 41, 10, 9, 9,115,101,108,102, 46,109,111, 100, 32, 61, 32,115,116,114,105,110,103, 46,103,115,117, 98, 40,115,101,108,102, 46,109,111,100, 44, 32, 34,116,111,108, 117, 97, 95,112,114,111,112,101,114,116,121, 91, 94, 37,115, 93, 42, 34, 44, 32, 34, 34, 41, 10, 9,101,110,100, 10, 10, 32, 45, 45, 32,103,101,116, 32,102,117,110, 99,116,105,111, 110, 32, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 10, 32,105,102, 32, 99,108, 97,115,115, 32,116,104,101,110, 10, 32, 32,111,117,116,112,117,116, 40, 34, 47, 42, 32,103,101,116, 32,102,117,110, 99,116,105,111, 110, 58, 34, 44,115,101,108,102, 46,110, 97,109,101, 44, 34, 32,111,102, 32, 99,108, 97,115,115, 32, 34, 44, 99,108, 97, 115,115, 44, 34, 32, 42, 47, 34, 41, 10, 32,101,108,115,101, 10, 32, 32,111,117,116,112,117,116, 40, 34, 47, 42, 32,103, 101,116, 32,102,117,110, 99,116,105,111,110, 58, 34, 44,115, 101,108,102, 46,110, 97,109,101, 44, 34, 32, 42, 47, 34, 41, 10, 32,101,110,100, 10, 32,115,101,108,102, 46, 99,103,101, 116,110, 97,109,101, 32, 61, 32,115,101,108,102, 58, 99,102, 117,110, 99,110, 97,109,101, 40, 34,116,111,108,117, 97, 95, 103,101,116, 34, 41, 10, 32,111,117,116,112,117,116, 40, 34, 35,105,102,110,100,101,102, 32, 84, 79, 76, 85, 65, 95, 68, 73, 83, 65, 66, 76, 69, 95, 34, 46, 46,115,101,108,102, 46, 99,103,101,116,110, 97,109,101, 41, 10, 32,111,117,116,112, 117,116, 40, 34, 92,110,115,116, 97,116,105, 99, 32,105,110, 116, 34, 44,115,101,108,102, 46, 99,103,101,116,110, 97,109, 101, 44, 34, 40,108,117, 97, 95, 83,116, 97,116,101, 42, 32, 116,111,108,117, 97, 95, 83, 41, 34, 41, 10, 32,111,117,116, 112,117,116, 40, 34,123, 34, 41, 10, 10, 32, 45, 45, 32,100, 101, 99,108, 97,114,101, 32,115,101,108,102, 44, 32,105,102, 32,116,104,101, 32, 99, 97,115,101, 10, 32,108,111, 99, 97, 108, 32, 95, 44, 95, 44,115,116, 97,116,105, 99, 32, 61, 32, 115,116,114,102,105,110,100, 40,115,101,108,102, 46,109,111, 100, 44, 39, 94, 37,115, 42, 40,115,116, 97,116,105, 99, 41, 39, 41, 10, 32,105,102, 32, 99,108, 97,115,115, 32, 97,110, 100, 32,115,116, 97,116,105, 99, 61, 61,110,105,108, 32,116, 104,101,110, 10, 32, 32,111,117,116,112,117,116, 40, 39, 32, 39, 44,115,101,108,102, 46,112, 97,114,101,110,116, 46,116, 121,112,101, 44, 39, 42, 39, 44, 39,115,101,108,102, 32, 61, 32, 39, 41, 10, 32, 32,111,117,116,112,117,116, 40, 39, 40, 39, 44,115,101,108,102, 46,112, 97,114,101,110,116, 46,116, 121,112,101, 44, 39, 42, 41, 32, 39, 41, 10, 32, 32,108,111, 99, 97,108, 32,116,111, 95,102,117,110, 99, 32, 61, 32,103, 101,116, 95,116,111, 95,102,117,110, 99,116,105,111,110, 40, 115,101,108,102, 46,112, 97,114,101,110,116, 46,116,121,112, 101, 41, 10, 32, 32,111,117,116,112,117,116, 40,116,111, 95, 102,117,110, 99, 44, 39, 40,116,111,108,117, 97, 95, 83, 44, 49, 44, 48, 41, 59, 39, 41, 10, 32,101,108,115,101,105,102, 32,115,116, 97,116,105, 99, 32,116,104,101,110, 10, 32, 32, 95, 44, 95, 44,115,101,108,102, 46,109,111,100, 32, 61, 32, 115,116,114,102,105,110,100, 40,115,101,108,102, 46,109,111, 100, 44, 39, 94, 37,115, 42,115,116, 97,116,105, 99, 37,115, 37,115, 42, 40, 46, 42, 41, 39, 41, 10, 32,101,110,100, 10, 10, 10, 32, 45, 45, 32, 99,104,101, 99,107, 32,115,101,108, 102, 32,118, 97,108,117,101, 10, 32,105,102, 32, 99,108, 97, 115,115, 32, 97,110,100, 32,115,116, 97,116,105, 99, 61, 61, 110,105,108, 32,116,104,101,110, 10, 9, 32,111,117,116,112, 117,116, 40, 39, 35,105,102,110,100,101,102, 32, 84, 79, 76, 85, 65, 95, 82, 69, 76, 69, 65, 83, 69, 92,110, 39, 41, 10, 32, 32,111,117,116,112,117,116, 40, 39, 32, 32,105,102, 32, 40, 33,115,101,108,102, 41, 32,116,111,108,117, 97, 95,101, 114,114,111,114, 40,116,111,108,117, 97, 95, 83, 44, 34, 39, 46, 46,111,117,116,112,117,116, 95,101,114,114,111,114, 95, 104,111,111,107, 40, 34,105,110,118, 97,108,105,100, 32, 92, 39,115,101,108,102, 92, 39, 32,105,110, 32, 97, 99, 99,101, 115,115,105,110,103, 32,118, 97,114,105, 97, 98,108,101, 32, 92, 39, 37,115, 92, 39, 34, 44, 32,115,101,108,102, 46,110, 97,109,101, 41, 46, 46, 39, 34, 44, 78, 85, 76, 76, 41, 59, 39, 41, 59, 10, 9, 9,111,117,116,112,117,116, 40, 39, 35, 101,110,100,105,102, 92,110, 39, 41, 10, 32,101,110,100, 10, 10, 32, 45, 45, 32,114,101,116,117,114,110, 32,118, 97,108, 117,101, 10, 32,105,102, 32,115,116,114,105,110,103, 46,102, 105,110,100, 40,115,101,108,102, 46,109,111,100, 44, 32, 39, 116,111,108,117, 97, 95,105,110,104,101,114,105,116,115, 39, 41, 32,116,104,101,110, 10, 9,108,111, 99, 97,108, 32,112, 117,115,104, 95,102,117,110, 99, 32, 61, 32,103,101,116, 95, 112,117,115,104, 95,102,117,110, 99,116,105,111,110, 40,115, 101,108,102, 46,116,121,112,101, 41, 10, 32, 9,111,117,116, 112,117,116, 40, 39, 35,105,102,100,101,102, 32, 95, 95, 99, 112,108,117,115,112,108,117,115, 92,110, 39, 41, 10, 9,111, 117,116,112,117,116, 40, 39, 32, 32, 39, 44,112,117,115,104, 95,102,117,110, 99, 44, 39, 40,116,111,108,117, 97, 95, 83, 44, 40,118,111,105,100, 42, 41,115,116, 97,116,105, 99, 95, 99, 97,115,116, 60, 39, 46, 46,115,101,108,102, 46,116,121, 112,101, 46, 46, 39, 42, 62, 40,115,101,108,102, 41, 44, 32, 34, 39, 44,115,101,108,102, 46,116,121,112,101, 44, 39, 34, 41, 59, 39, 41, 10, 9,111,117,116,112,117,116, 40, 39, 35, 101,108,115,101, 92,110, 39, 41, 10, 9,111,117,116,112,117, 116, 40, 39, 32, 32, 39, 44,112,117,115,104, 95,102,117,110, 99, 44, 39, 40,116,111,108,117, 97, 95, 83, 44, 40,118,111, 105,100, 42, 41, 40, 40, 39, 46, 46,115,101,108,102, 46,116, 121,112,101, 46, 46, 39, 42, 41,115,101,108,102, 41, 44, 32, 34, 39, 44,115,101,108,102, 46,116,121,112,101, 44, 39, 34, 41, 59, 39, 41, 10, 9,111,117,116,112,117,116, 40, 39, 35, 101,110,100,105,102, 92,110, 39, 41, 10, 32,101,108,115,101, 10, 9,108,111, 99, 97,108, 32,116, 44, 99,116, 32, 61, 32, 105,115, 98, 97,115,105, 99, 40,115,101,108,102, 46,116,121, 112,101, 41, 10, 9,105,102, 32,116, 32,116,104,101,110, 10, 9, 9,111,117,116,112,117,116, 40, 39, 32, 32,116,111,108, 117, 97, 95,112,117,115,104, 39, 46, 46,116, 46, 46, 39, 40, 116,111,108,117, 97, 95, 83, 44, 40, 39, 44, 99,116, 44, 39, 41, 39, 46, 46,115,101,108,102, 58,103,101,116,118, 97,108, 117,101, 40, 99,108, 97,115,115, 44,115,116, 97,116,105, 99, 44,112,114,111,112, 95,103,101,116, 41, 46, 46, 39, 41, 59, 39, 41, 10, 9,101,108,115,101, 10, 9, 9,108,111, 99, 97, 108, 32,112,117,115,104, 95,102,117,110, 99, 32, 61, 32,103, 101,116, 95,112,117,115,104, 95,102,117,110, 99,116,105,111, 110, 40,115,101,108,102, 46,116,121,112,101, 41, 10, 9, 9, 116, 32, 61, 32,115,101,108,102, 46,116,121,112,101, 10, 9, 9,105,102, 32,115,101,108,102, 46,112,116,114, 32, 61, 61, 32, 39, 38, 39, 32,111,114, 32,115,101,108,102, 46,112,116, 114, 32, 61, 61, 32, 39, 39, 32,116,104,101,110, 10, 9, 9, 9,111,117,116,112,117,116, 40, 39, 32, 32, 39, 44,112,117, 115,104, 95,102,117,110, 99, 44, 39, 40,116,111,108,117, 97, 95, 83, 44, 40,118,111,105,100, 42, 41, 38, 39, 46, 46,115, 101,108,102, 58,103,101,116,118, 97,108,117,101, 40, 99,108, 97,115,115, 44,115,116, 97,116,105, 99, 44,112,114,111,112, 95,103,101,116, 41, 46, 46, 39, 44, 34, 39, 44,116, 44, 39, 34, 41, 59, 39, 41, 10, 9, 9,101,108,115,101, 10, 9, 9, 9,111,117,116,112,117,116, 40, 39, 32, 32, 39, 44,112,117, 115,104, 95,102,117,110, 99, 44, 39, 40,116,111,108,117, 97, 95, 83, 44, 40,118,111,105,100, 42, 41, 39, 46, 46,115,101, 108,102, 58,103,101,116,118, 97,108,117,101, 40, 99,108, 97, 115,115, 44,115,116, 97,116,105, 99, 44,112,114,111,112, 95, 103,101,116, 41, 46, 46, 39, 44, 34, 39, 44,116, 44, 39, 34, 41, 59, 39, 41, 10, 9, 9,101,110,100, 10, 9,101,110,100, 10, 32,101,110,100, 10, 32,111,117,116,112,117,116, 40, 39, 32,114,101,116,117,114,110, 32, 49, 59, 39, 41, 10, 32,111, 117,116,112,117,116, 40, 39,125, 39, 41, 10, 32,111,117,116, 112,117,116, 40, 39, 35,101,110,100,105,102, 32, 47, 47, 35, 105,102,110,100,101,102, 32, 84, 79, 76, 85, 65, 95, 68, 73, 83, 65, 66, 76, 69, 92,110, 39, 41, 10, 32,111,117,116,112, 117,116, 40, 39, 92,110, 39, 41, 10, 10, 32, 45, 45, 32,115, 101,116, 32,102,117,110, 99,116,105,111,110, 32, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 10, 32,105,102, 32,110,111,116, 32, 40,115,116,114,102,105, 110,100, 40,115,101,108,102, 46,116,121,112,101, 44, 39, 99, 111,110,115,116, 37,115, 43, 39, 41, 32,111,114, 32,115,116, 114,105,110,103, 46,102,105,110,100, 40,115,101,108,102, 46, 109,111,100, 44, 32, 39,116,111,108,117, 97, 95,114,101, 97, 100,111,110,108,121, 39, 41, 32,111,114, 32,115,116,114,105, 110,103, 46,102,105,110,100, 40,115,101,108,102, 46,109,111, 100, 44, 32, 39,116,111,108,117, 97, 95,105,110,104,101,114, 105,116,115, 39, 41, 41, 32, 32,116,104,101,110, 10, 32, 32, 105,102, 32, 99,108, 97,115,115, 32,116,104,101,110, 10, 32, 32, 32,111,117,116,112,117,116, 40, 34, 47, 42, 32,115,101, 116, 32,102,117,110, 99,116,105,111,110, 58, 34, 44,115,101, 108,102, 46,110, 97,109,101, 44, 34, 32,111,102, 32, 99,108, 97,115,115, 32, 34, 44, 99,108, 97,115,115, 44, 34, 32, 42, 47, 34, 41, 10, 32, 32,101,108,115,101, 10, 32, 32, 32,111, 117,116,112,117,116, 40, 34, 47, 42, 32,115,101,116, 32,102, 117,110, 99,116,105,111,110, 58, 34, 44,115,101,108,102, 46, 110, 97,109,101, 44, 34, 32, 42, 47, 34, 41, 10, 32, 32,101, 110,100, 10, 32, 32,115,101,108,102, 46, 99,115,101,116,110, 97,109,101, 32, 61, 32,115,101,108,102, 58, 99,102,117,110, 99,110, 97,109,101, 40, 34,116,111,108,117, 97, 95,115,101, 116, 34, 41, 10, 32, 32,111,117,116,112,117,116, 40, 34, 35, 105,102,110,100,101,102, 32, 84, 79, 76, 85, 65, 95, 68, 73, 83, 65, 66, 76, 69, 95, 34, 46, 46,115,101,108,102, 46, 99, 115,101,116,110, 97,109,101, 41, 10, 32, 32,111,117,116,112, 117,116, 40, 34, 92,110,115,116, 97,116,105, 99, 32,105,110, 116, 34, 44,115,101,108,102, 46, 99,115,101,116,110, 97,109, 101, 44, 34, 40,108,117, 97, 95, 83,116, 97,116,101, 42, 32, 116,111,108,117, 97, 95, 83, 41, 34, 41, 10, 32, 32,111,117, 116,112,117,116, 40, 34,123, 34, 41, 10, 10, 32, 32, 45, 45, 32,100,101, 99,108, 97,114,101, 32,115,101,108,102, 44, 32, 105,102, 32,116,104,101, 32, 99, 97,115,101, 10, 32, 32,105, 102, 32, 99,108, 97,115,115, 32, 97,110,100, 32,115,116, 97, 116,105, 99, 61, 61,110,105,108, 32,116,104,101,110, 10, 32, 32, 32,111,117,116,112,117,116, 40, 39, 32, 39, 44,115,101, 108,102, 46,112, 97,114,101,110,116, 46,116,121,112,101, 44, 39, 42, 39, 44, 39,115,101,108,102, 32, 61, 32, 39, 41, 10, 32, 32, 32,111,117,116,112,117,116, 40, 39, 40, 39, 44,115, 101,108,102, 46,112, 97,114,101,110,116, 46,116,121,112,101, 44, 39, 42, 41, 32, 39, 41, 10, 32, 32, 32,108,111, 99, 97, 108, 32,116,111, 95,102,117,110, 99, 32, 61, 32,103,101,116, 95,116,111, 95,102,117,110, 99,116,105,111,110, 40,115,101, 108,102, 46,112, 97,114,101,110,116, 46,116,121,112,101, 41, 10, 32, 32, 32,111,117,116,112,117,116, 40,116,111, 95,102, 117,110, 99, 44, 39, 40,116,111,108,117, 97, 95, 83, 44, 49, 44, 48, 41, 59, 39, 41, 10, 32, 32, 32, 45, 45, 32, 99,104, 101, 99,107, 32,115,101,108,102, 32,118, 97,108,117,101, 10, 9, 9,101,110,100, 10, 32, 32, 45, 45, 32, 99,104,101, 99, 107, 32,116,121,112,101,115, 10, 9, 9,111,117,116,112,117, 116, 40, 39, 35,105,102,110,100,101,102, 32, 84, 79, 76, 85, 65, 95, 82, 69, 76, 69, 65, 83, 69, 92,110, 39, 41, 10, 9, 9,111,117,116,112,117,116, 40, 39, 32, 32,116,111,108,117, 97, 95, 69,114,114,111,114, 32,116,111,108,117, 97, 95,101, 114,114, 59, 39, 41, 10, 32, 32,105,102, 32, 99,108, 97,115, 115, 32, 97,110,100, 32,115,116, 97,116,105, 99, 61, 61,110, 105,108, 32,116,104,101,110, 10, 32, 32, 32,111,117,116,112, 117,116, 40, 39, 32, 32,105,102, 32, 40, 33,115,101,108,102, 41, 32,116,111,108,117, 97, 95,101,114,114,111,114, 40,116, 111,108,117, 97, 95, 83, 44, 34, 39, 46, 46,111,117,116,112, 117,116, 95,101,114,114,111,114, 95,104,111,111,107, 40, 34, 105,110,118, 97,108,105,100, 32, 92, 39,115,101,108,102, 92, 39, 32,105,110, 32, 97, 99, 99,101,115,115,105,110,103, 32, 118, 97,114,105, 97, 98,108,101, 32, 92, 39, 37,115, 92, 39, 34, 44, 32,115,101,108,102, 46,110, 97,109,101, 41, 46, 46, 39, 34, 44, 78, 85, 76, 76, 41, 59, 39, 41, 59, 10, 32, 32, 101,108,115,101,105,102, 32,115,116, 97,116,105, 99, 32,116, 104,101,110, 10, 32, 32, 32, 95, 44, 95, 44,115,101,108,102, 46,109,111,100, 32, 61, 32,115,116,114,102,105,110,100, 40, 115,101,108,102, 46,109,111,100, 44, 39, 94, 37,115, 42,115, 116, 97,116,105, 99, 37,115, 37,115, 42, 40, 46, 42, 41, 39, 41, 10, 32, 32,101,110,100, 10, 10, 32, 32, 45, 45, 32, 99, 104,101, 99,107, 32,118, 97,114,105, 97, 98,108,101, 32,116, 121,112,101, 10, 32, 32,111,117,116,112,117,116, 40, 39, 32, 32,105,102, 32, 40, 39, 46, 46,115,101,108,102, 58,111,117, 116, 99,104,101, 99,107,116,121,112,101, 40, 50, 41, 46, 46, 39, 41, 39, 41, 10, 32, 32,111,117,116,112,117,116, 40, 39, 32, 32, 32,116,111,108,117, 97, 95,101,114,114,111,114, 40, 116,111,108,117, 97, 95, 83, 44, 34, 35,118,105,110,118, 97, 108,105,100, 32,116,121,112,101, 32,105,110, 32,118, 97,114, 105, 97, 98,108,101, 32, 97,115,115,105,103,110,109,101,110, 116, 46, 34, 44, 38,116,111,108,117, 97, 95,101,114,114, 41, 59, 39, 41, 10, 9, 9,111,117,116,112,117,116, 40, 39, 35, 101,110,100,105,102, 92,110, 39, 41, 10, 10, 32, 32, 45, 45, 32, 97,115,115,105,103,110, 32,118, 97,108,117,101, 10, 9, 9,108,111, 99, 97,108, 32,100,101,102, 32, 61, 32, 48, 10, 9, 9,105,102, 32,115,101,108,102, 46,100,101,102, 32,126, 61, 32, 39, 39, 32,116,104,101,110, 32,100,101,102, 32, 61, 32,115,101,108,102, 46,100,101,102, 32,101,110,100, 10, 9, 9,105,102, 32,115,101,108,102, 46,116,121,112,101, 32, 61, 61, 32, 39, 99,104, 97,114, 42, 39, 32, 97,110,100, 32,115, 101,108,102, 46,100,105,109, 32,126, 61, 32, 39, 39, 32,116, 104,101,110, 32, 45, 45, 32,105,115, 32,115,116,114,105,110, 103, 10, 9, 9, 9,111,117,116,112,117,116, 40, 39, 32,115, 116,114,110, 99,112,121, 40, 40, 99,104, 97,114, 42, 41, 39, 41, 10, 9, 9, 9,105,102, 32, 99,108, 97,115,115, 32, 97, 110,100, 32,115,116, 97,116,105, 99, 32,116,104,101,110, 10, 9, 9, 9, 9,111,117,116,112,117,116, 40,115,101,108,102, 46,112, 97,114,101,110,116, 46,116,121,112,101, 46, 46, 39, 58, 58, 39, 46, 46,115,101,108,102, 46,110, 97,109,101, 41, 10, 9, 9, 9,101,108,115,101,105,102, 32, 99,108, 97,115, 115, 32,116,104,101,110, 10, 9, 9, 9, 9,111,117,116,112, 117,116, 40, 39,115,101,108,102, 45, 62, 39, 46, 46,115,101, 108,102, 46,110, 97,109,101, 41, 10, 9, 9, 9,101,108,115, 101, 10, 9, 9, 9, 9,111,117,116,112,117,116, 40,115,101, 108,102, 46,110, 97,109,101, 41, 10, 9, 9, 9,101,110,100, 10, 9, 9, 9,111,117,116,112,117,116, 40, 39, 44, 40, 99, 111,110,115,116, 32, 99,104, 97,114, 42, 41,116,111,108,117, 97, 95,116,111,115,116,114,105,110,103, 40,116,111,108,117, 97, 95, 83, 44, 50, 44, 39, 44,100,101,102, 44, 39, 41, 44, 39, 44,115,101,108,102, 46,100,105,109, 44, 39, 45, 49, 41, 59, 39, 41, 10, 9, 9,101,108,115,101, 10, 9, 9, 9,108, 111, 99, 97,108, 32,112,116,114, 32, 61, 32, 39, 39, 10, 9, 9, 9,105,102, 32,115,101,108,102, 46,112,116,114,126, 61, 39, 39, 32,116,104,101,110, 32,112,116,114, 32, 61, 32, 39, 42, 39, 32,101,110,100, 10, 9, 9, 9,111,117,116,112,117, 116, 40, 39, 32, 39, 41, 10, 9, 9, 9,108,111, 99, 97,108, 32,110, 97,109,101, 32, 61, 32,112,114,111,112, 95,115,101, 116, 32,111,114, 32,115,101,108,102, 46,110, 97,109,101, 10, 9, 9, 9,105,102, 32, 99,108, 97,115,115, 32, 97,110,100, 32,115,116, 97,116,105, 99, 32,116,104,101,110, 10, 9, 9, 9, 9,111,117,116,112,117,116, 40,115,101,108,102, 46,112, 97,114,101,110,116, 46,116,121,112,101, 46, 46, 39, 58, 58, 39, 46, 46,110, 97,109,101, 41, 10, 9, 9, 9,101,108,115, 101,105,102, 32, 99,108, 97,115,115, 32,116,104,101,110, 10, 9, 9, 9, 9,111,117,116,112,117,116, 40, 39,115,101,108, 102, 45, 62, 39, 46, 46,110, 97,109,101, 41, 10, 9, 9, 9, 101,108,115,101, 10, 9, 9, 9, 9,111,117,116,112,117,116, 40,110, 97,109,101, 41, 10, 9, 9, 9,101,110,100, 10, 9, 9, 9,108,111, 99, 97,108, 32,116, 32, 61, 32,105,115, 98, 97,115,105, 99, 40,115,101,108,102, 46,116,121,112,101, 41, 10, 9, 9, 9,105,102, 32,112,114,111,112, 95,115,101,116, 32,116,104,101,110, 10, 9, 9, 9, 9,111,117,116,112,117, 116, 40, 39, 40, 39, 41, 10, 9, 9, 9,101,108,115,101, 10, 9, 9, 9, 9,111,117,116,112,117,116, 40, 39, 32, 61, 32, 39, 41, 10, 9, 9, 9,101,110,100, 10, 9, 9, 9,105,102, 32,110,111,116, 32,116, 32, 97,110,100, 32,112,116,114, 61, 61, 39, 39, 32,116,104,101,110, 32,111,117,116,112,117,116, 40, 39, 42, 39, 41, 32,101,110,100, 10, 9, 9, 9,111,117, 116,112,117,116, 40, 39, 40, 40, 39, 44,115,101,108,102, 46, 109,111,100, 44,115,101,108,102, 46,116,121,112,101, 41, 10, 9, 9, 9,105,102, 32,110,111,116, 32,116, 32,116,104,101, 110, 10, 9, 9, 9, 9,111,117,116,112,117,116, 40, 39, 42, 39, 41, 10, 9, 9, 9,101,110,100, 10, 9, 9, 9,111,117, 116,112,117,116, 40, 39, 41, 32, 39, 41, 10, 9, 9, 9,105, 102, 32,116, 32,116,104,101,110, 10, 9, 9, 9, 9,105,102, 32,105,115,101,110,117,109, 40,115,101,108,102, 46,116,121, 112,101, 41, 32,116,104,101,110, 10, 9, 9, 9, 9, 9,111, 117,116,112,117,116, 40, 39, 40,105,110,116, 41, 32, 39, 41, 10, 9, 9, 9, 9,101,110,100, 10, 9, 9, 9, 9,111,117, 116,112,117,116, 40, 39,116,111,108,117, 97, 95,116,111, 39, 46, 46,116, 44, 39, 40,116,111,108,117, 97, 95, 83, 44, 50, 44, 39, 44,100,101,102, 44, 39, 41, 41, 39, 41, 10, 9, 9, 9,101,108,115,101, 10, 9, 9, 9, 9,108,111, 99, 97,108, 32,116,111, 95,102,117,110, 99, 32, 61, 32,103,101,116, 95, 116,111, 95,102,117,110, 99,116,105,111,110, 40,115,101,108, 102, 46,116,121,112,101, 41, 10, 9, 9, 9, 9,111,117,116, 112,117,116, 40,116,111, 95,102,117,110, 99, 44, 39, 40,116, 111,108,117, 97, 95, 83, 44, 50, 44, 39, 44,100,101,102, 44, 39, 41, 41, 39, 41, 10, 9, 9, 9,101,110,100, 10, 9, 9, 9,105,102, 32,112,114,111,112, 95,115,101,116, 32,116,104, 101,110, 10, 9, 9, 9, 9,111,117,116,112,117,116, 40, 34, 41, 34, 41, 10, 9, 9, 9,101,110,100, 10, 9, 9, 9,111, 117,116,112,117,116, 40, 34, 59, 34, 41, 10, 9, 9,101,110, 100, 10, 32, 32,111,117,116,112,117,116, 40, 39, 32,114,101, 116,117,114,110, 32, 48, 59, 39, 41, 10, 32, 32,111,117,116, 112,117,116, 40, 39,125, 39, 41, 10, 32, 32,111,117,116,112, 117,116, 40, 39, 35,101,110,100,105,102, 32, 47, 47, 35,105, 102,110,100,101,102, 32, 84, 79, 76, 85, 65, 95, 68, 73, 83, 65, 66, 76, 69, 92,110, 39, 41, 10, 32, 32,111,117,116,112, 117,116, 40, 39, 92,110, 39, 41, 10, 32,101,110,100, 10, 10, 101,110,100, 10, 10,102,117,110, 99,116,105,111,110, 32, 99, 108, 97,115,115, 86, 97,114,105, 97, 98,108,101, 58,114,101, 103,105,115,116,101,114, 32, 40,112,114,101, 41, 10, 10, 9, 105,102, 32,110,111,116, 32,115,101,108,102, 58, 99,104,101, 99,107, 95,112,117, 98,108,105, 99, 95, 97, 99, 99,101,115, 115, 40, 41, 32,116,104,101,110, 10, 9, 9,114,101,116,117, 114,110, 10, 9,101,110,100, 10, 32,112,114,101, 32, 61, 32, 112,114,101, 32,111,114, 32, 39, 39, 10, 32,108,111, 99, 97, 108, 32,112, 97,114,101,110,116, 32, 61, 32,115,101,108,102, 58,105,110,109,111,100,117,108,101, 40, 41, 32,111,114, 32, 115,101,108,102, 58,105,110,110, 97,109,101,115,112, 97, 99, 101, 40, 41, 32,111,114, 32,115,101,108,102, 58,105,110, 99, 108, 97,115,115, 40, 41, 10, 32,105,102, 32,110,111,116, 32, 112, 97,114,101,110,116, 32,116,104,101,110, 10, 32, 32,105, 102, 32, 99,108, 97,115,115, 86, 97,114,105, 97, 98,108,101, 46, 95,119, 97,114,110,105,110,103, 61, 61,110,105,108, 32, 116,104,101,110, 10, 32, 32, 32,119, 97,114,110,105,110,103, 40, 34, 77, 97,112,112,105,110,103, 32,118, 97,114,105, 97, 98,108,101, 32,116,111, 32,103,108,111, 98, 97,108, 32,109, 97,121, 32,100,101,103,114, 97,100,101, 32,112,101,114,102, 111,114,109, 97,110, 99,101, 34, 41, 10, 32, 32, 32, 99,108, 97,115,115, 86, 97,114,105, 97, 98,108,101, 46, 95,119, 97, 114,110,105,110,103, 32, 61, 32, 49, 10, 32, 32,101,110,100, 10, 32,101,110,100, 10, 32,105,102, 32,115,101,108,102, 46, 99,115,101,116,110, 97,109,101, 32,116,104,101,110, 10, 32, 32,111,117,116,112,117,116, 40,112,114,101, 46, 46, 39,116, 111,108,117, 97, 95,118, 97,114,105, 97, 98,108,101, 40,116, 111,108,117, 97, 95, 83, 44, 34, 39, 46, 46,115,101,108,102, 46,108,110, 97,109,101, 46, 46, 39, 34, 44, 39, 46, 46,115, 101,108,102, 46, 99,103,101,116,110, 97,109,101, 46, 46, 39, 44, 39, 46, 46,115,101,108,102, 46, 99,115,101,116,110, 97, 109,101, 46, 46, 39, 41, 59, 39, 41, 10, 32,101,108,115,101, 10, 32, 32,111,117,116,112,117,116, 40,112,114,101, 46, 46, 39,116,111,108,117, 97, 95,118, 97,114,105, 97, 98,108,101, 40,116,111,108,117, 97, 95, 83, 44, 34, 39, 46, 46,115,101, 108,102, 46,108,110, 97,109,101, 46, 46, 39, 34, 44, 39, 46, 46,115,101,108,102, 46, 99,103,101,116,110, 97,109,101, 46, 46, 39, 44, 78, 85, 76, 76, 41, 59, 39, 41, 10, 32,101,110, 100, 10,101,110,100, 10, 10, 45, 45, 32, 73,110,116,101,114, 110, 97,108, 32, 99,111,110,115,116,114,117, 99,116,111,114, 10,102,117,110, 99,116,105,111,110, 32, 95, 86, 97,114,105, 97, 98,108,101, 32, 40,116, 41, 10, 32,115,101,116,109,101, 116, 97,116, 97, 98,108,101, 40,116, 44, 99,108, 97,115,115, 86, 97,114,105, 97, 98,108,101, 41, 10, 32, 97,112,112,101, 110,100, 40,116, 41, 10, 32,114,101,116,117,114,110, 32,116, 10,101,110,100, 10, 10, 45, 45, 32, 67,111,110,115,116,114, 117, 99,116,111,114, 10, 45, 45, 32, 69,120,112,101, 99,116, 115, 32, 97, 32,115,116,114,105,110,103, 32,114,101,112,114, 101,115,101,110,116,105,110,103, 32,116,104,101, 32,118, 97, 114,105, 97, 98,108,101, 32,100,101, 99,108, 97,114, 97,116, 105,111,110, 46, 10,102,117,110, 99,116,105,111,110, 32, 86, 97,114,105, 97, 98,108,101, 32, 40,115, 41, 10, 32,114,101, 116,117,114,110, 32, 95, 86, 97,114,105, 97, 98,108,101, 32, 40, 68,101, 99,108, 97,114, 97,116,105,111,110, 40,115, 44, 39,118, 97,114, 39, 41, 41, 10,101,110,100,32 }; tolua_dobuffer(tolua_S,(char*)B,sizeof(B),"tolua embedded: src/bin/lua/variable.lua"); lua_settop(tolua_S, top); } /* end of embedded lua code */ { /* begin embedded lua code */ int top = lua_gettop(tolua_S); static unsigned char B[] = { 45, 45, 32,116,111,108,117, 97, 58, 32, 97,114,114, 97,121, 32, 99,108, 97,115,115, 10, 45, 45, 32, 87,114,105,116,116, 101,110, 32, 98,121, 32, 87, 97,108,100,101,109, 97,114, 32, 67,101,108,101,115, 10, 45, 45, 32, 84,101, 67, 71,114, 97, 102, 47, 80, 85, 67, 45, 82,105,111, 10, 45, 45, 32, 74,117, 108, 32, 49, 57, 57, 57, 10, 45, 45, 32, 36, 73,100, 58, 32, 97,114,114, 97,121, 46,108,117, 97, 44,118, 32, 49, 46, 49, 32, 50, 48, 48, 48, 47, 49, 49, 47, 48, 54, 32, 50, 50, 58, 48, 51, 58, 53, 55, 32, 99,101,108,101,115, 32, 69,120,112, 32, 36, 10, 10, 45, 45, 32, 84,104,105,115, 32, 99,111,100, 101, 32,105,115, 32,102,114,101,101, 32,115,111,102,116,119, 97,114,101, 59, 32,121,111,117, 32, 99, 97,110, 32,114,101, 100,105,115,116,114,105, 98,117,116,101, 32,105,116, 32, 97, 110,100, 47,111,114, 32,109,111,100,105,102,121, 32,105,116, 46, 10, 45, 45, 32, 84,104,101, 32,115,111,102,116,119, 97, 114,101, 32,112,114,111,118,105,100,101,100, 32,104,101,114, 101,117,110,100,101,114, 32,105,115, 32,111,110, 32, 97,110, 32, 34, 97,115, 32,105,115, 34, 32, 98, 97,115,105,115, 44, 32, 97,110,100, 10, 45, 45, 32,116,104,101, 32, 97,117,116, 104,111,114, 32,104, 97,115, 32,110,111, 32,111, 98,108,105, 103, 97,116,105,111,110, 32,116,111, 32,112,114,111,118,105, 100,101, 32,109, 97,105,110,116,101,110, 97,110, 99,101, 44, 32,115,117,112,112,111,114,116, 44, 32,117,112,100, 97,116, 101,115, 44, 10, 45, 45, 32,101,110,104, 97,110, 99,101,109, 101,110,116,115, 44, 32,111,114, 32,109,111,100,105,102,105, 99, 97,116,105,111,110,115, 46, 10, 10, 10, 45, 45, 32, 65, 114,114, 97,121, 32, 99,108, 97,115,115, 10, 45, 45, 32, 82, 101,112,114,101,115,101,110,116,115, 32, 97, 32,101,120,116, 101,114,110, 32, 97,114,114, 97,121, 32,118, 97,114,105, 97, 98,108,101, 32,111,114, 32, 97, 32,112,117, 98,108,105, 99, 32,109,101,109, 98,101,114, 32,111,102, 32, 97, 32, 99,108, 97,115,115, 46, 10, 45, 45, 32, 83,116,111,114,101,115, 32, 97,108,108, 32,102,105,101,108,100,115, 32,112,114,101,115, 101,110,116, 32,105,110, 32, 97, 32,100,101, 99,108, 97,114, 97,116,105,111,110, 46, 10, 99,108, 97,115,115, 65,114,114, 97,121, 32, 61, 32,123, 10,125, 10, 99,108, 97,115,115, 65, 114,114, 97,121, 46, 95, 95,105,110,100,101,120, 32, 61, 32, 99,108, 97,115,115, 65,114,114, 97,121, 10,115,101,116,109, 101,116, 97,116, 97, 98,108,101, 40, 99,108, 97,115,115, 65, 114,114, 97,121, 44, 99,108, 97,115,115, 68,101, 99,108, 97, 114, 97,116,105,111,110, 41, 10, 10, 45, 45, 32, 80,114,105, 110,116, 32,109,101,116,104,111,100, 10,102,117,110, 99,116, 105,111,110, 32, 99,108, 97,115,115, 65,114,114, 97,121, 58, 112,114,105,110,116, 32, 40,105,100,101,110,116, 44, 99,108, 111,115,101, 41, 10, 32,112,114,105,110,116, 40,105,100,101, 110,116, 46, 46, 34, 65,114,114, 97,121,123, 34, 41, 10, 32, 112,114,105,110,116, 40,105,100,101,110,116, 46, 46, 34, 32, 109,111,100, 32, 32, 61, 32, 39, 34, 46, 46,115,101,108,102, 46,109,111,100, 46, 46, 34, 39, 44, 34, 41, 10, 32,112,114, 105,110,116, 40,105,100,101,110,116, 46, 46, 34, 32,116,121, 112,101, 32, 61, 32, 39, 34, 46, 46,115,101,108,102, 46,116, 121,112,101, 46, 46, 34, 39, 44, 34, 41, 10, 32,112,114,105, 110,116, 40,105,100,101,110,116, 46, 46, 34, 32,112,116,114, 32, 32, 61, 32, 39, 34, 46, 46,115,101,108,102, 46,112,116, 114, 46, 46, 34, 39, 44, 34, 41, 10, 32,112,114,105,110,116, 40,105,100,101,110,116, 46, 46, 34, 32,110, 97,109,101, 32, 61, 32, 39, 34, 46, 46,115,101,108,102, 46,110, 97,109,101, 46, 46, 34, 39, 44, 34, 41, 10, 32,112,114,105,110,116, 40, 105,100,101,110,116, 46, 46, 34, 32,100,101,102, 32, 32, 61, 32, 39, 34, 46, 46,115,101,108,102, 46,100,101,102, 46, 46, 34, 39, 44, 34, 41, 10, 32,112,114,105,110,116, 40,105,100, 101,110,116, 46, 46, 34, 32,100,105,109, 32, 32, 61, 32, 39, 34, 46, 46,115,101,108,102, 46,100,105,109, 46, 46, 34, 39, 44, 34, 41, 10, 32,112,114,105,110,116, 40,105,100,101,110, 116, 46, 46, 34, 32,114,101,116, 32, 32, 61, 32, 39, 34, 46, 46,115,101,108,102, 46,114,101,116, 46, 46, 34, 39, 44, 34, 41, 10, 32,112,114,105,110,116, 40,105,100,101,110,116, 46, 46, 34,125, 34, 46, 46, 99,108,111,115,101, 41, 10,101,110, 100, 10, 10, 45, 45, 32, 99,104,101, 99,107, 32,105,102, 32, 105,116, 32,105,115, 32, 97, 32,118, 97,114,105, 97, 98,108, 101, 10,102,117,110, 99,116,105,111,110, 32, 99,108, 97,115, 115, 65,114,114, 97,121, 58,105,115,118, 97,114,105, 97, 98, 108,101, 32, 40, 41, 10, 32,114,101,116,117,114,110, 32,116, 114,117,101, 10,101,110,100, 10, 10, 10, 45, 45, 32,103,101, 116, 32,118, 97,114,105, 97, 98,108,101, 32,118, 97,108,117, 101, 10,102,117,110, 99,116,105,111,110, 32, 99,108, 97,115, 115, 65,114,114, 97,121, 58,103,101,116,118, 97,108,117,101, 32, 40, 99,108, 97,115,115, 44,115,116, 97,116,105, 99, 41, 10, 32,105,102, 32, 99,108, 97,115,115, 32, 97,110,100, 32, 115,116, 97,116,105, 99, 32,116,104,101,110, 10, 32, 32,114, 101,116,117,114,110, 32, 99,108, 97,115,115, 46, 46, 39, 58, 58, 39, 46, 46,115,101,108,102, 46,110, 97,109,101, 46, 46, 39, 91,116,111,108,117, 97, 95,105,110,100,101,120, 93, 39, 10, 32,101,108,115,101,105,102, 32, 99,108, 97,115,115, 32, 116,104,101,110, 10, 32, 32,114,101,116,117,114,110, 32, 39, 115,101,108,102, 45, 62, 39, 46, 46,115,101,108,102, 46,110, 97,109,101, 46, 46, 39, 91,116,111,108,117, 97, 95,105,110, 100,101,120, 93, 39, 10, 32,101,108,115,101, 10, 32, 32,114, 101,116,117,114,110, 32,115,101,108,102, 46,110, 97,109,101, 46, 46, 39, 91,116,111,108,117, 97, 95,105,110,100,101,120, 93, 39, 10, 32,101,110,100, 10,101,110,100, 10, 10, 45, 45, 32, 87,114,105,116,101, 32, 98,105,110,100,105,110,103, 32, 102,117,110, 99,116,105,111,110,115, 10,102,117,110, 99,116, 105,111,110, 32, 99,108, 97,115,115, 65,114,114, 97,121, 58, 115,117,112, 99,111,100,101, 32, 40, 41, 10, 32,108,111, 99, 97,108, 32, 99,108, 97,115,115, 32, 61, 32,115,101,108,102, 58,105,110, 99,108, 97,115,115, 40, 41, 10, 10, 32, 45, 45, 32,103,101,116, 32,102,117,110, 99,116,105,111,110, 32, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 10, 32,105,102, 32, 99,108, 97,115,115, 32,116,104, 101,110, 10, 32, 32,111,117,116,112,117,116, 40, 34, 47, 42, 32,103,101,116, 32,102,117,110, 99,116,105,111,110, 58, 34, 44,115,101,108,102, 46,110, 97,109,101, 44, 34, 32,111,102, 32, 99,108, 97,115,115, 32, 34, 44, 99,108, 97,115,115, 44, 34, 32, 42, 47, 34, 41, 10, 32,101,108,115,101, 10, 32, 32, 111,117,116,112,117,116, 40, 34, 47, 42, 32,103,101,116, 32, 102,117,110, 99,116,105,111,110, 58, 34, 44,115,101,108,102, 46,110, 97,109,101, 44, 34, 32, 42, 47, 34, 41, 10, 32,101, 110,100, 10, 32,115,101,108,102, 46, 99,103,101,116,110, 97, 109,101, 32, 61, 32,115,101,108,102, 58, 99,102,117,110, 99, 110, 97,109,101, 40, 34,116,111,108,117, 97, 95,103,101,116, 34, 41, 10, 32,111,117,116,112,117,116, 40, 34, 35,105,102, 110,100,101,102, 32, 84, 79, 76, 85, 65, 95, 68, 73, 83, 65, 66, 76, 69, 95, 34, 46, 46,115,101,108,102, 46, 99,103,101, 116,110, 97,109,101, 41, 10, 32,111,117,116,112,117,116, 40, 34, 92,110,115,116, 97,116,105, 99, 32,105,110,116, 34, 44, 115,101,108,102, 46, 99,103,101,116,110, 97,109,101, 44, 34, 40,108,117, 97, 95, 83,116, 97,116,101, 42, 32,116,111,108, 117, 97, 95, 83, 41, 34, 41, 10, 32,111,117,116,112,117,116, 40, 34,123, 34, 41, 10, 32,111,117,116,112,117,116, 40, 34, 32,105,110,116, 32,116,111,108,117, 97, 95,105,110,100,101, 120, 59, 34, 41, 10, 10, 32, 45, 45, 32,100,101, 99,108, 97, 114,101, 32,115,101,108,102, 44, 32,105,102, 32,116,104,101, 32, 99, 97,115,101, 10, 32,108,111, 99, 97,108, 32, 95, 44, 95, 44,115,116, 97,116,105, 99, 32, 61, 32,115,116,114,102, 105,110,100, 40,115,101,108,102, 46,109,111,100, 44, 39, 94, 37,115, 42, 40,115,116, 97,116,105, 99, 41, 39, 41, 10, 32, 105,102, 32, 99,108, 97,115,115, 32, 97,110,100, 32,115,116, 97,116,105, 99, 61, 61,110,105,108, 32,116,104,101,110, 10, 32, 32,111,117,116,112,117,116, 40, 39, 32, 39, 44,115,101, 108,102, 46,112, 97,114,101,110,116, 46,116,121,112,101, 44, 39, 42, 39, 44, 39,115,101,108,102, 59, 39, 41, 10, 32, 32, 111,117,116,112,117,116, 40, 39, 32,108,117, 97, 95,112,117, 115,104,115,116,114,105,110,103, 40,116,111,108,117, 97, 95, 83, 44, 34, 46,115,101,108,102, 34, 41, 59, 39, 41, 10, 32, 32,111,117,116,112,117,116, 40, 39, 32,108,117, 97, 95,114, 97,119,103,101,116, 40,116,111,108,117, 97, 95, 83, 44, 49, 41, 59, 39, 41, 10, 32, 32,111,117,116,112,117,116, 40, 39, 32,115,101,108,102, 32, 61, 32, 39, 41, 10, 32, 32,111,117, 116,112,117,116, 40, 39, 40, 39, 44,115,101,108,102, 46,112, 97,114,101,110,116, 46,116,121,112,101, 44, 39, 42, 41, 32, 39, 41, 10, 32, 32,111,117,116,112,117,116, 40, 39,108,117, 97, 95,116,111,117,115,101,114,100, 97,116, 97, 40,116,111, 108,117, 97, 95, 83, 44, 45, 49, 41, 59, 39, 41, 10, 32,101, 108,115,101,105,102, 32,115,116, 97,116,105, 99, 32,116,104, 101,110, 10, 32, 32, 95, 44, 95, 44,115,101,108,102, 46,109, 111,100, 32, 61, 32,115,116,114,102,105,110,100, 40,115,101, 108,102, 46,109,111,100, 44, 39, 94, 37,115, 42,115,116, 97, 116,105, 99, 37,115, 37,115, 42, 40, 46, 42, 41, 39, 41, 10, 32,101,110,100, 10, 10, 32, 45, 45, 32, 99,104,101, 99,107, 32,105,110,100,101,120, 10, 9,111,117,116,112,117,116, 40, 39, 35,105,102,110,100,101,102, 32, 84, 79, 76, 85, 65, 95, 82, 69, 76, 69, 65, 83, 69, 92,110, 39, 41, 10, 9,111,117, 116,112,117,116, 40, 39, 32,123, 39, 41, 10, 9,111,117,116, 112,117,116, 40, 39, 32, 32,116,111,108,117, 97, 95, 69,114, 114,111,114, 32,116,111,108,117, 97, 95,101,114,114, 59, 39, 41, 10, 32,111,117,116,112,117,116, 40, 39, 32, 32,105,102, 32, 40, 33,116,111,108,117, 97, 95,105,115,110,117,109, 98, 101,114, 40,116,111,108,117, 97, 95, 83, 44, 50, 44, 48, 44, 38,116,111,108,117, 97, 95,101,114,114, 41, 41, 39, 41, 10, 32,111,117,116,112,117,116, 40, 39, 32, 32, 32,116,111,108, 117, 97, 95,101,114,114,111,114, 40,116,111,108,117, 97, 95, 83, 44, 34, 35,118,105,110,118, 97,108,105,100, 32,116,121, 112,101, 32,105,110, 32, 97,114,114, 97,121, 32,105,110,100, 101,120,105,110,103, 46, 34, 44, 38,116,111,108,117, 97, 95, 101,114,114, 41, 59, 39, 41, 10, 9,111,117,116,112,117,116, 40, 39, 32,125, 39, 41, 10, 9,111,117,116,112,117,116, 40, 39, 35,101,110,100,105,102, 92,110, 39, 41, 10, 9,105,102, 32,102,108, 97,103,115, 91, 39, 49, 39, 93, 32,116,104,101, 110, 32, 45, 45, 32,102,111,114, 32, 99,111,109,112, 97,116, 105, 98,105,108,105,116,121, 32,119,105,116,104, 32,116,111, 108,117, 97, 53, 32, 63, 10, 9, 9,111,117,116,112,117,116, 40, 39, 32,116,111,108,117, 97, 95,105,110,100,101,120, 32, 61, 32, 40,105,110,116, 41,116,111,108,117, 97, 95,116,111, 110,117,109, 98,101,114, 40,116,111,108,117, 97, 95, 83, 44, 50, 44, 48, 41, 45, 49, 59, 39, 41, 10, 9,101,108,115,101, 10, 9, 9,111,117,116,112,117,116, 40, 39, 32,116,111,108, 117, 97, 95,105,110,100,101,120, 32, 61, 32, 40,105,110,116, 41,116,111,108,117, 97, 95,116,111,110,117,109, 98,101,114, 40,116,111,108,117, 97, 95, 83, 44, 50, 44, 48, 41, 59, 39, 41, 10, 9,101,110,100, 10, 9,111,117,116,112,117,116, 40, 39, 35,105,102,110,100,101,102, 32, 84, 79, 76, 85, 65, 95, 82, 69, 76, 69, 65, 83, 69, 92,110, 39, 41, 10, 9,105,102, 32,115,101,108,102, 46,100,105,109, 32, 97,110,100, 32,115, 101,108,102, 46,100,105,109, 32,126, 61, 32, 39, 39, 32,116, 104,101,110, 10, 9, 32, 32,111,117,116,112,117,116, 40, 39, 32,105,102, 32, 40,116,111,108,117, 97, 95,105,110,100,101, 120, 60, 48, 32,124,124, 32,116,111,108,117, 97, 95,105,110, 100,101,120, 62, 61, 39, 46, 46,115,101,108,102, 46,100,105, 109, 46, 46, 39, 41, 39, 41, 10, 9,101,108,115,101, 10, 9, 32, 32,111,117,116,112,117,116, 40, 39, 32,105,102, 32, 40, 116,111,108,117, 97, 95,105,110,100,101,120, 60, 48, 41, 39, 41, 10, 9,101,110,100, 10, 32,111,117,116,112,117,116, 40, 39, 32, 32,116,111,108,117, 97, 95,101,114,114,111,114, 40, 116,111,108,117, 97, 95, 83, 44, 34, 97,114,114, 97,121, 32, 105,110,100,101,120,105,110,103, 32,111,117,116, 32,111,102, 32,114, 97,110,103,101, 46, 34, 44, 78, 85, 76, 76, 41, 59, 39, 41, 10, 9,111,117,116,112,117,116, 40, 39, 35,101,110, 100,105,102, 92,110, 39, 41, 10, 10, 32, 45, 45, 32,114,101, 116,117,114,110, 32,118, 97,108,117,101, 10, 32,108,111, 99, 97,108, 32,116, 44, 99,116, 32, 61, 32,105,115, 98, 97,115, 105, 99, 40,115,101,108,102, 46,116,121,112,101, 41, 10, 32, 108,111, 99, 97,108, 32,112,117,115,104, 95,102,117,110, 99, 32, 61, 32,103,101,116, 95,112,117,115,104, 95,102,117,110, 99,116,105,111,110, 40,116, 41, 10, 32,105,102, 32,116, 32, 116,104,101,110, 10, 32, 32,111,117,116,112,117,116, 40, 39, 32,116,111,108,117, 97, 95,112,117,115,104, 39, 46, 46,116, 46, 46, 39, 40,116,111,108,117, 97, 95, 83, 44, 40, 39, 44, 99,116, 44, 39, 41, 39, 46, 46,115,101,108,102, 58,103,101, 116,118, 97,108,117,101, 40, 99,108, 97,115,115, 44,115,116, 97,116,105, 99, 41, 46, 46, 39, 41, 59, 39, 41, 10, 32,101, 108,115,101, 10, 9, 9,116, 32, 61, 32,115,101,108,102, 46, 116,121,112,101, 10, 32, 32,105,102, 32,115,101,108,102, 46, 112,116,114, 32, 61, 61, 32, 39, 38, 39, 32,111,114, 32,115, 101,108,102, 46,112,116,114, 32, 61, 61, 32, 39, 39, 32,116, 104,101,110, 10, 32, 32, 32,111,117,116,112,117,116, 40, 39, 32, 39, 44,112,117,115,104, 95,102,117,110, 99, 44, 39, 40, 116,111,108,117, 97, 95, 83, 44, 40,118,111,105,100, 42, 41, 38, 39, 46, 46,115,101,108,102, 58,103,101,116,118, 97,108, 117,101, 40, 99,108, 97,115,115, 44,115,116, 97,116,105, 99, 41, 46, 46, 39, 44, 34, 39, 44,116, 44, 39, 34, 41, 59, 39, 41, 10, 32, 32,101,108,115,101, 10, 32, 32, 32,111,117,116, 112,117,116, 40, 39, 32, 39, 44,112,117,115,104, 95,102,117, 110, 99, 44, 39, 40,116,111,108,117, 97, 95, 83, 44, 40,118, 111,105,100, 42, 41, 39, 46, 46,115,101,108,102, 58,103,101, 116,118, 97,108,117,101, 40, 99,108, 97,115,115, 44,115,116, 97,116,105, 99, 41, 46, 46, 39, 44, 34, 39, 44,116, 44, 39, 34, 41, 59, 39, 41, 10, 32, 32,101,110,100, 10, 32,101,110, 100, 10, 32,111,117,116,112,117,116, 40, 39, 32,114,101,116, 117,114,110, 32, 49, 59, 39, 41, 10, 32,111,117,116,112,117, 116, 40, 39,125, 39, 41, 10, 32,111,117,116,112,117,116, 40, 39, 35,101,110,100,105,102, 32, 47, 47, 35,105,102,110,100, 101,102, 32, 84, 79, 76, 85, 65, 95, 68, 73, 83, 65, 66, 76, 69, 92,110, 39, 41, 10, 32,111,117,116,112,117,116, 40, 39, 92,110, 39, 41, 10, 10, 32, 45, 45, 32,115,101,116, 32,102, 117,110, 99,116,105,111,110, 32, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 10, 32,105,102, 32,110,111,116, 32,115,116,114,102,105,110,100, 40,115,101, 108,102, 46,116,121,112,101, 44, 39, 99,111,110,115,116, 39, 41, 32,116,104,101,110, 10, 32, 32,105,102, 32, 99,108, 97, 115,115, 32,116,104,101,110, 10, 32, 32, 32,111,117,116,112, 117,116, 40, 34, 47, 42, 32,115,101,116, 32,102,117,110, 99, 116,105,111,110, 58, 34, 44,115,101,108,102, 46,110, 97,109, 101, 44, 34, 32,111,102, 32, 99,108, 97,115,115, 32, 34, 44, 99,108, 97,115,115, 44, 34, 32, 42, 47, 34, 41, 10, 32, 32, 101,108,115,101, 10, 32, 32, 32,111,117,116,112,117,116, 40, 34, 47, 42, 32,115,101,116, 32,102,117,110, 99,116,105,111, 110, 58, 34, 44,115,101,108,102, 46,110, 97,109,101, 44, 34, 32, 42, 47, 34, 41, 10, 32, 32,101,110,100, 10, 32, 32,115, 101,108,102, 46, 99,115,101,116,110, 97,109,101, 32, 61, 32, 115,101,108,102, 58, 99,102,117,110, 99,110, 97,109,101, 40, 34,116,111,108,117, 97, 95,115,101,116, 34, 41, 10, 32, 32, 111,117,116,112,117,116, 40, 34, 35,105,102,110,100,101,102, 32, 84, 79, 76, 85, 65, 95, 68, 73, 83, 65, 66, 76, 69, 95, 34, 46, 46,115,101,108,102, 46, 99,115,101,116,110, 97,109, 101, 41, 10, 32, 32,111,117,116,112,117,116, 40, 34, 92,110, 115,116, 97,116,105, 99, 32,105,110,116, 34, 44,115,101,108, 102, 46, 99,115,101,116,110, 97,109,101, 44, 34, 40,108,117, 97, 95, 83,116, 97,116,101, 42, 32,116,111,108,117, 97, 95, 83, 41, 34, 41, 10, 32, 32,111,117,116,112,117,116, 40, 34, 123, 34, 41, 10, 10, 32, 32, 45, 45, 32,100,101, 99,108, 97, 114,101, 32,105,110,100,101,120, 10, 32, 32,111,117,116,112, 117,116, 40, 39, 32,105,110,116, 32,116,111,108,117, 97, 95, 105,110,100,101,120, 59, 39, 41, 10, 10, 32, 32, 45, 45, 32, 100,101, 99,108, 97,114,101, 32,115,101,108,102, 44, 32,105, 102, 32,116,104,101, 32, 99, 97,115,101, 10, 32, 32,108,111, 99, 97,108, 32, 95, 44, 95, 44,115,116, 97,116,105, 99, 32, 61, 32,115,116,114,102,105,110,100, 40,115,101,108,102, 46, 109,111,100, 44, 39, 94, 37,115, 42, 40,115,116, 97,116,105, 99, 41, 39, 41, 10, 32, 32,105,102, 32, 99,108, 97,115,115, 32, 97,110,100, 32,115,116, 97,116,105, 99, 61, 61,110,105, 108, 32,116,104,101,110, 10, 32, 32, 32,111,117,116,112,117, 116, 40, 39, 32, 39, 44,115,101,108,102, 46,112, 97,114,101, 110,116, 46,116,121,112,101, 44, 39, 42, 39, 44, 39,115,101, 108,102, 59, 39, 41, 10, 32, 32, 32,111,117,116,112,117,116, 40, 39, 32,108,117, 97, 95,112,117,115,104,115,116,114,105, 110,103, 40,116,111,108,117, 97, 95, 83, 44, 34, 46,115,101, 108,102, 34, 41, 59, 39, 41, 10, 32, 32, 32,111,117,116,112, 117,116, 40, 39, 32,108,117, 97, 95,114, 97,119,103,101,116, 40,116,111,108,117, 97, 95, 83, 44, 49, 41, 59, 39, 41, 10, 32, 32, 32,111,117,116,112,117,116, 40, 39, 32,115,101,108, 102, 32, 61, 32, 39, 41, 10, 32, 32, 32,111,117,116,112,117, 116, 40, 39, 40, 39, 44,115,101,108,102, 46,112, 97,114,101, 110,116, 46,116,121,112,101, 44, 39, 42, 41, 32, 39, 41, 10, 32, 32, 32,111,117,116,112,117,116, 40, 39,108,117, 97, 95, 116,111,117,115,101,114,100, 97,116, 97, 40,116,111,108,117, 97, 95, 83, 44, 45, 49, 41, 59, 39, 41, 10, 32, 32,101,108, 115,101,105,102, 32,115,116, 97,116,105, 99, 32,116,104,101, 110, 10, 32, 32, 32, 95, 44, 95, 44,115,101,108,102, 46,109, 111,100, 32, 61, 32,115,116,114,102,105,110,100, 40,115,101, 108,102, 46,109,111,100, 44, 39, 94, 37,115, 42,115,116, 97, 116,105, 99, 37,115, 37,115, 42, 40, 46, 42, 41, 39, 41, 10, 32, 32,101,110,100, 10, 10, 32, 32, 45, 45, 32, 99,104,101, 99,107, 32,105,110,100,101,120, 10, 9, 32,111,117,116,112, 117,116, 40, 39, 35,105,102,110,100,101,102, 32, 84, 79, 76, 85, 65, 95, 82, 69, 76, 69, 65, 83, 69, 92,110, 39, 41, 10, 9, 32,111,117,116,112,117,116, 40, 39, 32,123, 39, 41, 10, 9, 32,111,117,116,112,117,116, 40, 39, 32, 32,116,111,108, 117, 97, 95, 69,114,114,111,114, 32,116,111,108,117, 97, 95, 101,114,114, 59, 39, 41, 10, 32, 32,111,117,116,112,117,116, 40, 39, 32, 32,105,102, 32, 40, 33,116,111,108,117, 97, 95, 105,115,110,117,109, 98,101,114, 40,116,111,108,117, 97, 95, 83, 44, 50, 44, 48, 44, 38,116,111,108,117, 97, 95,101,114, 114, 41, 41, 39, 41, 10, 32, 32,111,117,116,112,117,116, 40, 39, 32, 32, 32,116,111,108,117, 97, 95,101,114,114,111,114, 40,116,111,108,117, 97, 95, 83, 44, 34, 35,118,105,110,118, 97,108,105,100, 32,116,121,112,101, 32,105,110, 32, 97,114, 114, 97,121, 32,105,110,100,101,120,105,110,103, 46, 34, 44, 38,116,111,108,117, 97, 95,101,114,114, 41, 59, 39, 41, 10, 9, 9,111,117,116,112,117,116, 40, 39, 32,125, 39, 41, 10, 9, 9,111,117,116,112,117,116, 40, 39, 35,101,110,100,105, 102, 92,110, 39, 41, 10, 10, 9,105,102, 32,102,108, 97,103, 115, 91, 39, 49, 39, 93, 32,116,104,101,110, 32, 45, 45, 32, 102,111,114, 32, 99,111,109,112, 97,116,105, 98,105,108,105, 116,121, 32,119,105,116,104, 32,116,111,108,117, 97, 53, 32, 63, 10, 9, 9,111,117,116,112,117,116, 40, 39, 32,116,111, 108,117, 97, 95,105,110,100,101,120, 32, 61, 32, 40,105,110, 116, 41,116,111,108,117, 97, 95,116,111,110,117,109, 98,101, 114, 40,116,111,108,117, 97, 95, 83, 44, 50, 44, 48, 41, 45, 49, 59, 39, 41, 10, 9,101,108,115,101, 10, 9, 9,111,117, 116,112,117,116, 40, 39, 32,116,111,108,117, 97, 95,105,110, 100,101,120, 32, 61, 32, 40,105,110,116, 41,116,111,108,117, 97, 95,116,111,110,117,109, 98,101,114, 40,116,111,108,117, 97, 95, 83, 44, 50, 44, 48, 41, 59, 39, 41, 10, 9,101,110, 100, 10, 10, 9, 32,111,117,116,112,117,116, 40, 39, 35,105, 102,110,100,101,102, 32, 84, 79, 76, 85, 65, 95, 82, 69, 76, 69, 65, 83, 69, 92,110, 39, 41, 10, 9,105,102, 32,115,101, 108,102, 46,100,105,109, 32, 97,110,100, 32,115,101,108,102, 46,100,105,109, 32,126, 61, 32, 39, 39, 32,116,104,101,110, 10, 9, 32, 32,111,117,116,112,117,116, 40, 39, 32,105,102, 32, 40,116,111,108,117, 97, 95,105,110,100,101,120, 60, 48, 32,124,124, 32,116,111,108,117, 97, 95,105,110,100,101,120, 62, 61, 39, 46, 46,115,101,108,102, 46,100,105,109, 46, 46, 39, 41, 39, 41, 10, 9,101,108,115,101, 10, 9, 32, 32,111, 117,116,112,117,116, 40, 39, 32,105,102, 32, 40,116,111,108, 117, 97, 95,105,110,100,101,120, 60, 48, 41, 39, 41, 10, 9, 101,110,100, 10, 32, 32,111,117,116,112,117,116, 40, 39, 32, 32,116,111,108,117, 97, 95,101,114,114,111,114, 40,116,111, 108,117, 97, 95, 83, 44, 34, 97,114,114, 97,121, 32,105,110, 100,101,120,105,110,103, 32,111,117,116, 32,111,102, 32,114, 97,110,103,101, 46, 34, 44, 78, 85, 76, 76, 41, 59, 39, 41, 10, 9, 9,111,117,116,112,117,116, 40, 39, 35,101,110,100, 105,102, 92,110, 39, 41, 10, 10, 32, 32, 45, 45, 32, 97,115, 115,105,103,110, 32,118, 97,108,117,101, 10, 32, 32,108,111, 99, 97,108, 32,112,116,114, 32, 61, 32, 39, 39, 10, 32, 32, 105,102, 32,115,101,108,102, 46,112,116,114,126, 61, 39, 39, 32,116,104,101,110, 32,112,116,114, 32, 61, 32, 39, 42, 39, 32,101,110,100, 10, 32, 32,111,117,116,112,117,116, 40, 39, 32, 39, 41, 10, 32, 32,105,102, 32, 99,108, 97,115,115, 32, 97,110,100, 32,115,116, 97,116,105, 99, 32,116,104,101,110, 10, 32, 32, 32,111,117,116,112,117,116, 40, 99,108, 97,115, 115, 46, 46, 39, 58, 58, 39, 46, 46,115,101,108,102, 46,110, 97,109,101, 46, 46, 39, 91,116,111,108,117, 97, 95,105,110, 100,101,120, 93, 39, 41, 10, 32, 32,101,108,115,101,105,102, 32, 99,108, 97,115,115, 32,116,104,101,110, 10, 32, 32, 32, 111,117,116,112,117,116, 40, 39,115,101,108,102, 45, 62, 39, 46, 46,115,101,108,102, 46,110, 97,109,101, 46, 46, 39, 91, 116,111,108,117, 97, 95,105,110,100,101,120, 93, 39, 41, 10, 32, 32,101,108,115,101, 10, 32, 32, 32,111,117,116,112,117, 116, 40,115,101,108,102, 46,110, 97,109,101, 46, 46, 39, 91, 116,111,108,117, 97, 95,105,110,100,101,120, 93, 39, 41, 10, 32, 32,101,110,100, 10, 32, 32,108,111, 99, 97,108, 32,116, 32, 61, 32,105,115, 98, 97,115,105, 99, 40,115,101,108,102, 46,116,121,112,101, 41, 10, 32, 32,111,117,116,112,117,116, 40, 39, 32, 61, 32, 39, 41, 10, 32, 32,105,102, 32,110,111, 116, 32,116, 32, 97,110,100, 32,112,116,114, 61, 61, 39, 39, 32,116,104,101,110, 32,111,117,116,112,117,116, 40, 39, 42, 39, 41, 32,101,110,100, 10, 32, 32,111,117,116,112,117,116, 40, 39, 40, 40, 39, 44,115,101,108,102, 46,109,111,100, 44, 115,101,108,102, 46,116,121,112,101, 41, 10, 32, 32,105,102, 32,110,111,116, 32,116, 32,116,104,101,110, 10, 32, 32, 32, 111,117,116,112,117,116, 40, 39, 42, 39, 41, 10, 32, 32,101, 110,100, 10, 32, 32,111,117,116,112,117,116, 40, 39, 41, 32, 39, 41, 10, 32, 32,108,111, 99, 97,108, 32,100,101,102, 32, 61, 32, 48, 10, 32, 32,105,102, 32,115,101,108,102, 46,100, 101,102, 32,126, 61, 32, 39, 39, 32,116,104,101,110, 32,100, 101,102, 32, 61, 32,115,101,108,102, 46,100,101,102, 32,101, 110,100, 10, 32, 32,105,102, 32,116, 32,116,104,101,110, 10, 32, 32, 32,111,117,116,112,117,116, 40, 39,116,111,108,117, 97, 95,116,111, 39, 46, 46,116, 44, 39, 40,116,111,108,117, 97, 95, 83, 44, 51, 44, 39, 44,100,101,102, 44, 39, 41, 41, 59, 39, 41, 10, 32, 32,101,108,115,101, 10, 32, 32, 32,108, 111, 99, 97,108, 32,116,111, 95,102,117,110, 99, 32, 61, 32, 103,101,116, 95,116,111, 95,102,117,110, 99,116,105,111,110, 40,115,101,108,102, 46,116,121,112,101, 41, 10, 32, 32, 32, 111,117,116,112,117,116, 40,116,111, 95,102,117,110, 99, 44, 39, 40,116,111,108,117, 97, 95, 83, 44, 51, 44, 39, 44,100, 101,102, 44, 39, 41, 41, 59, 39, 41, 10, 32, 32,101,110,100, 10, 32, 32,111,117,116,112,117,116, 40, 39, 32,114,101,116, 117,114,110, 32, 48, 59, 39, 41, 10, 32, 32,111,117,116,112, 117,116, 40, 39,125, 39, 41, 10, 32, 32,111,117,116,112,117, 116, 40, 39, 35,101,110,100,105,102, 32, 47, 47, 35,105,102, 110,100,101,102, 32, 84, 79, 76, 85, 65, 95, 68, 73, 83, 65, 66, 76, 69, 92,110, 39, 41, 10, 32, 32,111,117,116,112,117, 116, 40, 39, 92,110, 39, 41, 10, 32,101,110,100, 10, 10,101, 110,100, 10, 10,102,117,110, 99,116,105,111,110, 32, 99,108, 97,115,115, 65,114,114, 97,121, 58,114,101,103,105,115,116, 101,114, 32, 40,112,114,101, 41, 10, 9,105,102, 32,110,111, 116, 32,115,101,108,102, 58, 99,104,101, 99,107, 95,112,117, 98,108,105, 99, 95, 97, 99, 99,101,115,115, 40, 41, 32,116, 104,101,110, 10, 9, 9,114,101,116,117,114,110, 10, 9,101, 110,100, 10, 10, 32,112,114,101, 32, 61, 32,112,114,101, 32, 111,114, 32, 39, 39, 10, 32,105,102, 32,115,101,108,102, 46, 99,115,101,116,110, 97,109,101, 32,116,104,101,110, 10, 32, 32,111,117,116,112,117,116, 40,112,114,101, 46, 46, 39,116, 111,108,117, 97, 95, 97,114,114, 97,121, 40,116,111,108,117, 97, 95, 83, 44, 34, 39, 46, 46,115,101,108,102, 46,108,110, 97,109,101, 46, 46, 39, 34, 44, 39, 46, 46,115,101,108,102, 46, 99,103,101,116,110, 97,109,101, 46, 46, 39, 44, 39, 46, 46,115,101,108,102, 46, 99,115,101,116,110, 97,109,101, 46, 46, 39, 41, 59, 39, 41, 10, 32,101,108,115,101, 10, 32, 32, 111,117,116,112,117,116, 40,112,114,101, 46, 46, 39,116,111, 108,117, 97, 95, 97,114,114, 97,121, 40,116,111,108,117, 97, 95, 83, 44, 34, 39, 46, 46,115,101,108,102, 46,108,110, 97, 109,101, 46, 46, 39, 34, 44, 39, 46, 46,115,101,108,102, 46, 99,103,101,116,110, 97,109,101, 46, 46, 39, 44, 78, 85, 76, 76, 41, 59, 39, 41, 10, 32,101,110,100, 10,101,110,100, 10, 10, 45, 45, 32, 73,110,116,101,114,110, 97,108, 32, 99,111, 110,115,116,114,117, 99,116,111,114, 10,102,117,110, 99,116, 105,111,110, 32, 95, 65,114,114, 97,121, 32, 40,116, 41, 10, 32,115,101,116,109,101,116, 97,116, 97, 98,108,101, 40,116, 44, 99,108, 97,115,115, 65,114,114, 97,121, 41, 10, 32, 97, 112,112,101,110,100, 40,116, 41, 10, 32,114,101,116,117,114, 110, 32,116, 10,101,110,100, 10, 10, 45, 45, 32, 67,111,110, 115,116,114,117, 99,116,111,114, 10, 45, 45, 32, 69,120,112, 101, 99,116,115, 32, 97, 32,115,116,114,105,110,103, 32,114, 101,112,114,101,115,101,110,116,105,110,103, 32,116,104,101, 32,118, 97,114,105, 97, 98,108,101, 32,100,101, 99,108, 97, 114, 97,116,105,111,110, 46, 10,102,117,110, 99,116,105,111, 110, 32, 65,114,114, 97,121, 32, 40,115, 41, 10, 32,114,101, 116,117,114,110, 32, 95, 65,114,114, 97,121, 32, 40, 68,101, 99,108, 97,114, 97,116,105,111,110, 40,115, 44, 39,118, 97, 114, 39, 41, 41, 10,101,110,100,32 }; tolua_dobuffer(tolua_S,(char*)B,sizeof(B),"tolua embedded: src/bin/lua/array.lua"); lua_settop(tolua_S, top); } /* end of embedded lua code */ { /* begin embedded lua code */ int top = lua_gettop(tolua_S); static unsigned char B[] = { 45, 45, 32,116,111,108,117, 97, 58, 32,102,117,110, 99,116, 105,111,110, 32, 99,108, 97,115,115, 10, 45, 45, 32, 87,114, 105,116,116,101,110, 32, 98,121, 32, 87, 97,108,100,101,109, 97,114, 32, 67,101,108,101,115, 10, 45, 45, 32, 84,101, 67, 71,114, 97,102, 47, 80, 85, 67, 45, 82,105,111, 10, 45, 45, 32, 74,117,108, 32, 49, 57, 57, 56, 10, 45, 45, 32, 36, 73, 100, 58, 32, 36, 10, 10, 45, 45, 32, 84,104,105,115, 32, 99, 111,100,101, 32,105,115, 32,102,114,101,101, 32,115,111,102, 116,119, 97,114,101, 59, 32,121,111,117, 32, 99, 97,110, 32, 114,101,100,105,115,116,114,105, 98,117,116,101, 32,105,116, 32, 97,110,100, 47,111,114, 32,109,111,100,105,102,121, 32, 105,116, 46, 10, 45, 45, 32, 84,104,101, 32,115,111,102,116, 119, 97,114,101, 32,112,114,111,118,105,100,101,100, 32,104, 101,114,101,117,110,100,101,114, 32,105,115, 32,111,110, 32, 97,110, 32, 34, 97,115, 32,105,115, 34, 32, 98, 97,115,105, 115, 44, 32, 97,110,100, 10, 45, 45, 32,116,104,101, 32, 97, 117,116,104,111,114, 32,104, 97,115, 32,110,111, 32,111, 98, 108,105,103, 97,116,105,111,110, 32,116,111, 32,112,114,111, 118,105,100,101, 32,109, 97,105,110,116,101,110, 97,110, 99, 101, 44, 32,115,117,112,112,111,114,116, 44, 32,117,112,100, 97,116,101,115, 44, 10, 45, 45, 32,101,110,104, 97,110, 99, 101,109,101,110,116,115, 44, 32,111,114, 32,109,111,100,105, 102,105, 99, 97,116,105,111,110,115, 46, 10, 10, 10, 10, 45, 45, 32, 70,117,110, 99,116,105,111,110, 32, 99,108, 97,115, 115, 10, 45, 45, 32, 82,101,112,114,101,115,101,110,116,115, 32, 97, 32,102,117,110, 99,116,105,111,110, 32,111,114, 32, 97, 32, 99,108, 97,115,115, 32,109,101,116,104,111,100, 46, 10, 45, 45, 32, 84,104,101, 32,102,111,108,108,111,119,105, 110,103, 32,102,105,101,108,100,115, 32, 97,114,101, 32,115, 116,111,114,101,100, 58, 10, 45, 45, 32, 32,109,111,100, 32, 32, 61, 32,116,121,112,101, 32,109,111,100,105,102,105,101, 114,115, 10, 45, 45, 32, 32,116,121,112,101, 32, 61, 32,116, 121,112,101, 10, 45, 45, 32, 32,112,116,114, 32, 32, 61, 32, 34, 42, 34, 32,111,114, 32, 34, 38, 34, 44, 32,105,102, 32, 114,101,112,114,101,115,101,110,116,105,110,103, 32, 97, 32, 112,111,105,110,116,101,114, 32,111,114, 32, 97, 32,114,101, 102,101,114,101,110, 99,101, 10, 45, 45, 32, 32,110, 97,109, 101, 32, 61, 32,110, 97,109,101, 10, 45, 45, 32, 32,108,110, 97,109,101, 32, 61, 32,108,117, 97, 32,110, 97,109,101, 10, 45, 45, 32, 32, 97,114,103,115, 32, 32, 61, 32,108,105,115, 116, 32,111,102, 32, 97,114,103,117,109,101,110,116, 32,100, 101, 99,108, 97,114, 97,116,105,111,110,115, 10, 45, 45, 32, 32, 99,111,110,115,116, 32, 61, 32,105,102, 32,105,116, 32, 105,115, 32, 97, 32,109,101,116,104,111,100, 32,114,101, 99, 101,105,118,105,110,103, 32, 97, 32, 99,111,110,115,116, 32, 34,116,104,105,115, 34, 46, 10, 99,108, 97,115,115, 70,117, 110, 99,116,105,111,110, 32, 61, 32,123, 10, 32,109,111,100, 32, 61, 32, 39, 39, 44, 10, 32,116,121,112,101, 32, 61, 32, 39, 39, 44, 10, 32,112,116,114, 32, 61, 32, 39, 39, 44, 10, 32,110, 97,109,101, 32, 61, 32, 39, 39, 44, 10, 32, 97,114, 103,115, 32, 61, 32,123,110, 61, 48,125, 44, 10, 32, 99,111, 110,115,116, 32, 61, 32, 39, 39, 44, 10,125, 10, 99,108, 97, 115,115, 70,117,110, 99,116,105,111,110, 46, 95, 95,105,110, 100,101,120, 32, 61, 32, 99,108, 97,115,115, 70,117,110, 99, 116,105,111,110, 10,115,101,116,109,101,116, 97,116, 97, 98, 108,101, 40, 99,108, 97,115,115, 70,117,110, 99,116,105,111, 110, 44, 99,108, 97,115,115, 70,101, 97,116,117,114,101, 41, 10, 10, 45, 45, 32,100,101, 99,108, 97,114,101, 32,116, 97, 103,115, 10,102,117,110, 99,116,105,111,110, 32, 99,108, 97, 115,115, 70,117,110, 99,116,105,111,110, 58,100,101, 99,108, 116,121,112,101, 32, 40, 41, 10, 32,115,101,108,102, 46,116, 121,112,101, 32, 61, 32,116,121,112,101,118, 97,114, 40,115, 101,108,102, 46,116,121,112,101, 41, 10, 32,105,102, 32,115, 116,114,102,105,110,100, 40,115,101,108,102, 46,109,111,100, 44, 39, 99,111,110,115,116, 39, 41, 32,116,104,101,110, 10, 9, 32,115,101,108,102, 46,116,121,112,101, 32, 61, 32, 39, 99,111,110,115,116, 32, 39, 46, 46,115,101,108,102, 46,116, 121,112,101, 10, 9, 9,115,101,108,102, 46,109,111,100, 32, 61, 32,103,115,117, 98, 40,115,101,108,102, 46,109,111,100, 44, 39, 99,111,110,115,116, 39, 44, 39, 39, 41, 10, 9,101, 110,100, 10, 32,108,111, 99, 97,108, 32,105, 61, 49, 10, 32, 119,104,105,108,101, 32,115,101,108,102, 46, 97,114,103,115, 91,105, 93, 32,100,111, 10, 32, 32,115,101,108,102, 46, 97, 114,103,115, 91,105, 93, 58,100,101, 99,108,116,121,112,101, 40, 41, 10, 32, 32,105, 32, 61, 32,105, 43, 49, 10, 32,101, 110,100, 10,101,110,100, 10, 10, 10, 45, 45, 32, 87,114,105, 116,101, 32, 98,105,110,100,105,110,103, 32,102,117,110, 99, 116,105,111,110, 10, 45, 45, 32, 79,117,116,112,117,116,115, 32, 67, 47, 67, 43, 43, 32, 98,105,110,100,105,110,103, 32, 102,117,110, 99,116,105,111,110, 46, 10,102,117,110, 99,116, 105,111,110, 32, 99,108, 97,115,115, 70,117,110, 99,116,105, 111,110, 58,115,117,112, 99,111,100,101, 32, 40,108,111, 99, 97,108, 95, 99,111,110,115,116,114,117, 99,116,111,114, 41, 10, 10, 32,108,111, 99, 97,108, 32,111,118,101,114,108,111, 97,100, 32, 61, 32,115,116,114,115,117, 98, 40,115,101,108, 102, 46, 99,110, 97,109,101, 44, 45, 50, 44, 45, 49, 41, 32, 45, 32, 49, 32, 32, 45, 45, 32,105,110,100,105, 99, 97,116, 101, 32,111,118,101,114,108,111, 97,100,101,100, 32,102,117, 110, 99, 10, 32,108,111, 99, 97,108, 32,110,114,101,116, 32, 61, 32, 48, 32, 32, 32, 32, 32, 32, 45, 45, 32,110,117,109, 98,101,114, 32,111,102, 32,114,101,116,117,114,110,101,100, 32,118, 97,108,117,101,115, 10, 32,108,111, 99, 97,108, 32, 99,108, 97,115,115, 32, 61, 32,115,101,108,102, 58,105,110, 99,108, 97,115,115, 40, 41, 10, 32,108,111, 99, 97,108, 32, 95, 44, 95, 44,115,116, 97,116,105, 99, 32, 61, 32,115,116, 114,102,105,110,100, 40,115,101,108,102, 46,109,111,100, 44, 39, 94, 37,115, 42, 40,115,116, 97,116,105, 99, 41, 39, 41, 10, 32,105,102, 32, 99,108, 97,115,115, 32,116,104,101,110, 10, 10, 32, 9,105,102, 32,115,101,108,102, 46,110, 97,109, 101, 32, 61, 61, 32, 39,110,101,119, 39, 32, 97,110,100, 32, 115,101,108,102, 46,112, 97,114,101,110,116, 46,102,108, 97, 103,115, 46,112,117,114,101, 95,118,105,114,116,117, 97,108, 32,116,104,101,110, 10, 32, 9, 9, 45, 45, 32,110,111, 32, 99,111,110,115,116,114,117, 99,116,111,114, 32,102,111,114, 32, 99,108, 97,115,115,101,115, 32,119,105,116,104, 32,112, 117,114,101, 32,118,105,114,116,117, 97,108, 32,109,101,116, 104,111,100,115, 10, 32, 9, 9,114,101,116,117,114,110, 10, 32, 9,101,110,100, 10, 10, 32, 9,105,102, 32,108,111, 99, 97,108, 95, 99,111,110,115,116,114,117, 99,116,111,114, 32, 116,104,101,110, 10, 9, 9,111,117,116,112,117,116, 40, 34, 47, 42, 32,109,101,116,104,111,100, 58, 32,110,101,119, 95, 108,111, 99, 97,108, 32,111,102, 32, 99,108, 97,115,115, 32, 34, 44, 99,108, 97,115,115, 44, 34, 32, 42, 47, 34, 41, 10, 9,101,108,115,101, 10, 9, 9,111,117,116,112,117,116, 40, 34, 47, 42, 32,109,101,116,104,111,100, 58, 34, 44,115,101, 108,102, 46,110, 97,109,101, 44, 34, 32,111,102, 32, 99,108, 97,115,115, 32, 34, 44, 99,108, 97,115,115, 44, 34, 32, 42, 47, 34, 41, 10, 9,101,110,100, 10, 32,101,108,115,101, 10, 32, 32,111,117,116,112,117,116, 40, 34, 47, 42, 32,102,117, 110, 99,116,105,111,110, 58, 34, 44,115,101,108,102, 46,110, 97,109,101, 44, 34, 32, 42, 47, 34, 41, 10, 32,101,110,100, 10, 10, 32,105,102, 32,108,111, 99, 97,108, 95, 99,111,110, 115,116,114,117, 99,116,111,114, 32,116,104,101,110, 10, 32, 32,111,117,116,112,117,116, 40, 34, 35,105,102,110,100,101, 102, 32, 84, 79, 76, 85, 65, 95, 68, 73, 83, 65, 66, 76, 69, 95, 34, 46, 46,115,101,108,102, 46, 99,110, 97,109,101, 46, 46, 34, 95,108,111, 99, 97,108, 34, 41, 10, 32, 32,111,117, 116,112,117,116, 40, 34, 92,110,115,116, 97,116,105, 99, 32, 105,110,116, 34, 44,115,101,108,102, 46, 99,110, 97,109,101, 46, 46, 34, 95,108,111, 99, 97,108, 34, 44, 34, 40,108,117, 97, 95, 83,116, 97,116,101, 42, 32,116,111,108,117, 97, 95, 83, 41, 34, 41, 10, 32,101,108,115,101, 10, 32, 32,111,117, 116,112,117,116, 40, 34, 35,105,102,110,100,101,102, 32, 84, 79, 76, 85, 65, 95, 68, 73, 83, 65, 66, 76, 69, 95, 34, 46, 46,115,101,108,102, 46, 99,110, 97,109,101, 41, 10, 32, 32, 111,117,116,112,117,116, 40, 34, 92,110,115,116, 97,116,105, 99, 32,105,110,116, 34, 44,115,101,108,102, 46, 99,110, 97, 109,101, 44, 34, 40,108,117, 97, 95, 83,116, 97,116,101, 42, 32,116,111,108,117, 97, 95, 83, 41, 34, 41, 10, 32,101,110, 100, 10, 32,111,117,116,112,117,116, 40, 34,123, 34, 41, 10, 10, 32, 45, 45, 32, 99,104,101, 99,107, 32,116,121,112,101, 115, 10, 9,105,102, 32,111,118,101,114,108,111, 97,100, 32, 60, 32, 48, 32,116,104,101,110, 10, 9, 32,111,117,116,112, 117,116, 40, 39, 35,105,102,110,100,101,102, 32, 84, 79, 76, 85, 65, 95, 82, 69, 76, 69, 65, 83, 69, 92,110, 39, 41, 10, 9,101,110,100, 10, 9,111,117,116,112,117,116, 40, 39, 32, 116,111,108,117, 97, 95, 69,114,114,111,114, 32,116,111,108, 117, 97, 95,101,114,114, 59, 39, 41, 10, 32,111,117,116,112, 117,116, 40, 39, 32,105,102, 32, 40, 92,110, 39, 41, 10, 32, 45, 45, 32, 99,104,101, 99,107, 32,115,101,108,102, 10, 32, 108,111, 99, 97,108, 32,110, 97,114,103, 10, 32,105,102, 32, 99,108, 97,115,115, 32,116,104,101,110, 32,110, 97,114,103, 61, 50, 32,101,108,115,101, 32,110, 97,114,103, 61, 49, 32, 101,110,100, 10, 32,105,102, 32, 99,108, 97,115,115, 32,116, 104,101,110, 10, 9, 9,108,111, 99, 97,108, 32,102,117,110, 99, 32, 61, 32,103,101,116, 95,105,115, 95,102,117,110, 99, 116,105,111,110, 40,115,101,108,102, 46,112, 97,114,101,110, 116, 46,116,121,112,101, 41, 10, 9, 9,108,111, 99, 97,108, 32,116,121,112,101, 32, 61, 32,115,101,108,102, 46,112, 97, 114,101,110,116, 46,116,121,112,101, 10, 9, 9,105,102, 32, 115,101,108,102, 46,110, 97,109,101, 61, 61, 39,110,101,119, 39, 32,111,114, 32,115,116, 97,116,105, 99,126, 61,110,105, 108, 32,116,104,101,110, 10, 9, 9, 9,102,117,110, 99, 32, 61, 32, 39,116,111,108,117, 97, 95,105,115,117,115,101,114, 116, 97, 98,108,101, 39, 10, 9, 9, 9,116,121,112,101, 32, 61, 32,115,101,108,102, 46,112, 97,114,101,110,116, 46,116, 121,112,101, 10, 9, 9,101,110,100, 10, 9, 9,105,102, 32, 115,101,108,102, 46, 99,111,110,115,116, 32,126, 61, 32, 39, 39, 32,116,104,101,110, 10, 9, 9, 9,116,121,112,101, 32, 61, 32, 34, 99,111,110,115,116, 32, 34, 46, 46,116,121,112, 101, 10, 9, 9,101,110,100, 10, 9, 9,111,117,116,112,117, 116, 40, 39, 32, 32, 32, 32, 32, 33, 39, 46, 46,102,117,110, 99, 46, 46, 39, 40,116,111,108,117, 97, 95, 83, 44, 49, 44, 34, 39, 46, 46,116,121,112,101, 46, 46, 39, 34, 44, 48, 44, 38,116,111,108,117, 97, 95,101,114,114, 41, 32,124,124, 92, 110, 39, 41, 10, 32,101,110,100, 10, 32, 45, 45, 32, 99,104, 101, 99,107, 32, 97,114,103,115, 10, 32,105,102, 32,115,101, 108,102, 46, 97,114,103,115, 91, 49, 93, 46,116,121,112,101, 32,126, 61, 32, 39,118,111,105,100, 39, 32,116,104,101,110, 10, 32, 32,108,111, 99, 97,108, 32,105, 61, 49, 10, 32, 32, 119,104,105,108,101, 32,115,101,108,102, 46, 97,114,103,115, 91,105, 93, 32,100,111, 10, 32, 32, 32,108,111, 99, 97,108, 32, 98,116,121,112,101, 32, 61, 32,105,115, 98, 97,115,105, 99, 40,115,101,108,102, 46, 97,114,103,115, 91,105, 93, 46, 116,121,112,101, 41, 10, 32, 32, 32,105,102, 32, 98,116,121, 112,101, 32,126, 61, 32, 39,118, 97,108,117,101, 39, 32, 97, 110,100, 32, 98,116,121,112,101, 32,126, 61, 32, 39,115,116, 97,116,101, 39, 32,116,104,101,110, 10, 32, 32, 32, 32,111, 117,116,112,117,116, 40, 39, 32, 32, 32, 32, 32, 39, 46, 46, 115,101,108,102, 46, 97,114,103,115, 91,105, 93, 58,111,117, 116, 99,104,101, 99,107,116,121,112,101, 40,110, 97,114,103, 41, 46, 46, 39, 32,124,124, 92,110, 39, 41, 10, 32, 32, 32, 101,110,100, 10, 32, 32, 32,105,102, 32, 98,116,121,112,101, 32,126, 61, 32, 39,115,116, 97,116,101, 39, 32,116,104,101, 110, 10, 9, 32, 32, 32,110, 97,114,103, 32, 61, 32,110, 97, 114,103, 43, 49, 10, 32, 32, 32,101,110,100, 10, 32, 32, 32, 105, 32, 61, 32,105, 43, 49, 10, 32, 32,101,110,100, 10, 32, 101,110,100, 10, 32, 45, 45, 32, 99,104,101, 99,107, 32,101, 110,100, 32,111,102, 32,108,105,115,116, 10, 32,111,117,116, 112,117,116, 40, 39, 32, 32, 32, 32, 32, 33,116,111,108,117, 97, 95,105,115,110,111,111, 98,106, 40,116,111,108,117, 97, 95, 83, 44, 39, 46, 46,110, 97,114,103, 46, 46, 39, 44, 38, 116,111,108,117, 97, 95,101,114,114, 41, 92,110, 32, 41, 39, 41, 10, 9,111,117,116,112,117,116, 40, 39, 32, 32,103,111, 116,111, 32,116,111,108,117, 97, 95,108,101,114,114,111,114, 59, 39, 41, 10, 10, 32,111,117,116,112,117,116, 40, 39, 32, 101,108,115,101, 92,110, 39, 41, 10, 9,105,102, 32,111,118, 101,114,108,111, 97,100, 32, 60, 32, 48, 32,116,104,101,110, 10, 9, 32,111,117,116,112,117,116, 40, 39, 35,101,110,100, 105,102, 92,110, 39, 41, 10, 9,101,110,100, 10, 9,111,117, 116,112,117,116, 40, 39, 32,123, 39, 41, 10, 10, 32, 45, 45, 32,100,101, 99,108, 97,114,101, 32,115,101,108,102, 44, 32, 105,102, 32,116,104,101, 32, 99, 97,115,101, 10, 32,108,111, 99, 97,108, 32,110, 97,114,103, 10, 32,105,102, 32, 99,108, 97,115,115, 32,116,104,101,110, 32,110, 97,114,103, 61, 50, 32,101,108,115,101, 32,110, 97,114,103, 61, 49, 32,101,110, 100, 10, 32,105,102, 32, 99,108, 97,115,115, 32, 97,110,100, 32,115,101,108,102, 46,110, 97,109,101,126, 61, 39,110,101, 119, 39, 32, 97,110,100, 32,115,116, 97,116,105, 99, 61, 61, 110,105,108, 32,116,104,101,110, 10, 32, 32,111,117,116,112, 117,116, 40, 39, 32, 39, 44,115,101,108,102, 46, 99,111,110, 115,116, 44,115,101,108,102, 46,112, 97,114,101,110,116, 46, 116,121,112,101, 44, 39, 42, 39, 44, 39,115,101,108,102, 32, 61, 32, 39, 41, 10, 32, 32,111,117,116,112,117,116, 40, 39, 40, 39, 44,115,101,108,102, 46, 99,111,110,115,116, 44,115, 101,108,102, 46,112, 97,114,101,110,116, 46,116,121,112,101, 44, 39, 42, 41, 32, 39, 41, 10, 32, 32,108,111, 99, 97,108, 32,116,111, 95,102,117,110, 99, 32, 61, 32,103,101,116, 95, 116,111, 95,102,117,110, 99,116,105,111,110, 40,115,101,108, 102, 46,112, 97,114,101,110,116, 46,116,121,112,101, 41, 10, 32, 32,111,117,116,112,117,116, 40,116,111, 95,102,117,110, 99, 44, 39, 40,116,111,108,117, 97, 95, 83, 44, 49, 44, 48, 41, 59, 39, 41, 10, 32,101,108,115,101,105,102, 32,115,116, 97,116,105, 99, 32,116,104,101,110, 10, 32, 32, 95, 44, 95, 44,115,101,108,102, 46,109,111,100, 32, 61, 32,115,116,114, 102,105,110,100, 40,115,101,108,102, 46,109,111,100, 44, 39, 94, 37,115, 42,115,116, 97,116,105, 99, 37,115, 37,115, 42, 40, 46, 42, 41, 39, 41, 10, 32,101,110,100, 10, 32, 45, 45, 32,100,101, 99,108, 97,114,101, 32,112, 97,114, 97,109,101, 116,101,114,115, 10, 32,105,102, 32,115,101,108,102, 46, 97, 114,103,115, 91, 49, 93, 46,116,121,112,101, 32,126, 61, 32, 39,118,111,105,100, 39, 32,116,104,101,110, 10, 32, 32,108, 111, 99, 97,108, 32,105, 61, 49, 10, 32, 32,119,104,105,108, 101, 32,115,101,108,102, 46, 97,114,103,115, 91,105, 93, 32, 100,111, 10, 32, 32, 32,115,101,108,102, 46, 97,114,103,115, 91,105, 93, 58,100,101, 99,108, 97,114,101, 40,110, 97,114, 103, 41, 10, 32, 32, 32,105,102, 32,105,115, 98, 97,115,105, 99, 40,115,101,108,102, 46, 97,114,103,115, 91,105, 93, 46, 116,121,112,101, 41, 32,126, 61, 32, 34,115,116, 97,116,101, 34, 32,116,104,101,110, 10, 9, 32, 32, 32,110, 97,114,103, 32, 61, 32,110, 97,114,103, 43, 49, 10, 32, 32, 32,101,110, 100, 10, 32, 32, 32,105, 32, 61, 32,105, 43, 49, 10, 32, 32, 101,110,100, 10, 32,101,110,100, 10, 10, 32, 45, 45, 32, 99, 104,101, 99,107, 32,115,101,108,102, 10, 32,105,102, 32, 99, 108, 97,115,115, 32, 97,110,100, 32,115,101,108,102, 46,110, 97,109,101,126, 61, 39,110,101,119, 39, 32, 97,110,100, 32, 115,116, 97,116,105, 99, 61, 61,110,105,108, 32,116,104,101, 110, 10, 9, 32,111,117,116,112,117,116, 40, 39, 35,105,102, 110,100,101,102, 32, 84, 79, 76, 85, 65, 95, 82, 69, 76, 69, 65, 83, 69, 92,110, 39, 41, 10, 9, 32,111,117,116,112,117, 116, 40, 39, 32, 32,105,102, 32, 40, 33,115,101,108,102, 41, 32,116,111,108,117, 97, 95,101,114,114,111,114, 40,116,111, 108,117, 97, 95, 83, 44, 34, 39, 46, 46,111,117,116,112,117, 116, 95,101,114,114,111,114, 95,104,111,111,107, 40, 34,105, 110,118, 97,108,105,100, 32, 92, 39,115,101,108,102, 92, 39, 32,105,110, 32,102,117,110, 99,116,105,111,110, 32, 92, 39, 37,115, 92, 39, 34, 44, 32,115,101,108,102, 46,110, 97,109, 101, 41, 46, 46, 39, 34, 44, 32, 78, 85, 76, 76, 41, 59, 39, 41, 59, 10, 9, 32,111,117,116,112,117,116, 40, 39, 35,101, 110,100,105,102, 92,110, 39, 41, 10, 32,101,110,100, 10, 10, 32, 45, 45, 32,103,101,116, 32, 97,114,114, 97,121, 32,101, 108,101,109,101,110,116, 32,118, 97,108,117,101,115, 10, 32, 105,102, 32, 99,108, 97,115,115, 32,116,104,101,110, 32,110, 97,114,103, 61, 50, 32,101,108,115,101, 32,110, 97,114,103, 61, 49, 32,101,110,100, 10, 32,105,102, 32,115,101,108,102, 46, 97,114,103,115, 91, 49, 93, 46,116,121,112,101, 32,126, 61, 32, 39,118,111,105,100, 39, 32,116,104,101,110, 10, 32, 32,108,111, 99, 97,108, 32,105, 61, 49, 10, 32, 32,119,104, 105,108,101, 32,115,101,108,102, 46, 97,114,103,115, 91,105, 93, 32,100,111, 10, 32, 32, 32,115,101,108,102, 46, 97,114, 103,115, 91,105, 93, 58,103,101,116, 97,114,114, 97,121, 40, 110, 97,114,103, 41, 10, 32, 32, 32,110, 97,114,103, 32, 61, 32,110, 97,114,103, 43, 49, 10, 32, 32, 32,105, 32, 61, 32, 105, 43, 49, 10, 32, 32,101,110,100, 10, 32,101,110,100, 10, 10, 32,112,114,101, 95, 99, 97,108,108, 95,104,111,111,107, 40,115,101,108,102, 41, 10, 10, 32,108,111, 99, 97,108, 32, 111,117,116, 32, 61, 32,115,116,114,105,110,103, 46,102,105, 110,100, 40,115,101,108,102, 46,109,111,100, 44, 32, 34,116, 111,108,117, 97, 95,111,117,116,115,105,100,101, 34, 41, 10, 32, 45, 45, 32, 99, 97,108,108, 32,102,117,110, 99,116,105, 111,110, 10, 32,105,102, 32, 99,108, 97,115,115, 32, 97,110, 100, 32,115,101,108,102, 46,110, 97,109,101, 61, 61, 39,100, 101,108,101,116,101, 39, 32,116,104,101,110, 10, 32, 32,111, 117,116,112,117,116, 40, 39, 32, 32, 77,116,111,108,117, 97, 95,100,101,108,101,116,101, 40,115,101,108,102, 41, 59, 39, 41, 10, 32,101,108,115,101,105,102, 32, 99,108, 97,115,115, 32, 97,110,100, 32,115,101,108,102, 46,110, 97,109,101, 32, 61, 61, 32, 39,111,112,101,114, 97,116,111,114, 38, 91, 93, 39, 32,116,104,101,110, 10, 32, 32,105,102, 32,102,108, 97, 103,115, 91, 39, 49, 39, 93, 32,116,104,101,110, 32, 45, 45, 32,102,111,114, 32, 99,111,109,112, 97,116,105, 98,105,108, 105,116,121, 32,119,105,116,104, 32,116,111,108,117, 97, 53, 32, 63, 10, 9,111,117,116,112,117,116, 40, 39, 32, 32,115, 101,108,102, 45, 62,111,112,101,114, 97,116,111,114, 91, 93, 40, 39, 44,115,101,108,102, 46, 97,114,103,115, 91, 49, 93, 46,110, 97,109,101, 44, 39, 45, 49, 41, 32, 61, 32, 39, 44, 115,101,108,102, 46, 97,114,103,115, 91, 50, 93, 46,110, 97, 109,101, 44, 39, 59, 39, 41, 10, 32, 32,101,108,115,101, 10, 32, 32, 32, 32,111,117,116,112,117,116, 40, 39, 32, 32,115, 101,108,102, 45, 62,111,112,101,114, 97,116,111,114, 91, 93, 40, 39, 44,115,101,108,102, 46, 97,114,103,115, 91, 49, 93, 46,110, 97,109,101, 44, 39, 41, 32, 61, 32, 39, 44,115,101, 108,102, 46, 97,114,103,115, 91, 50, 93, 46,110, 97,109,101, 44, 39, 59, 39, 41, 10, 32, 32,101,110,100, 10, 32,101,108, 115,101, 10, 32, 32,111,117,116,112,117,116, 40, 39, 32, 32, 123, 39, 41, 10, 32, 32,105,102, 32,115,101,108,102, 46,116, 121,112,101, 32,126, 61, 32, 39, 39, 32, 97,110,100, 32,115, 101,108,102, 46,116,121,112,101, 32,126, 61, 32, 39,118,111, 105,100, 39, 32,116,104,101,110, 10, 32, 32, 32,111,117,116, 112,117,116, 40, 39, 32, 32, 39, 44,115,101,108,102, 46,109, 111,100, 44,115,101,108,102, 46,116,121,112,101, 44,115,101, 108,102, 46,112,116,114, 44, 39,116,111,108,117, 97, 95,114, 101,116, 32, 61, 32, 39, 41, 10, 32, 32, 32,111,117,116,112, 117,116, 40, 39, 40, 39, 44,115,101,108,102, 46,109,111,100, 44,115,101,108,102, 46,116,121,112,101, 44,115,101,108,102, 46,112,116,114, 44, 39, 41, 32, 39, 41, 10, 32, 32,101,108, 115,101, 10, 32, 32, 32,111,117,116,112,117,116, 40, 39, 32, 32, 39, 41, 10, 32, 32,101,110,100, 10, 32, 32,105,102, 32, 99,108, 97,115,115, 32, 97,110,100, 32,115,101,108,102, 46, 110, 97,109,101, 61, 61, 39,110,101,119, 39, 32,116,104,101, 110, 10, 32, 32, 32,111,117,116,112,117,116, 40, 39, 77,116, 111,108,117, 97, 95,110,101,119, 40, 40, 39, 44,115,101,108, 102, 46,116,121,112,101, 44, 39, 41, 40, 39, 41, 10, 32, 32, 101,108,115,101,105,102, 32, 99,108, 97,115,115, 32, 97,110, 100, 32,115,116, 97,116,105, 99, 32,116,104,101,110, 10, 9, 105,102, 32,111,117,116, 32,116,104,101,110, 10, 9, 9,111, 117,116,112,117,116, 40,115,101,108,102, 46,110, 97,109,101, 44, 39, 40, 39, 41, 10, 9,101,108,115,101, 10, 9, 9,111, 117,116,112,117,116, 40, 99,108, 97,115,115, 46, 46, 39, 58, 58, 39, 46, 46,115,101,108,102, 46,110, 97,109,101, 44, 39, 40, 39, 41, 10, 9,101,110,100, 10, 32, 32,101,108,115,101, 105,102, 32, 99,108, 97,115,115, 32,116,104,101,110, 10, 9, 105,102, 32,111,117,116, 32,116,104,101,110, 10, 9, 9,111, 117,116,112,117,116, 40,115,101,108,102, 46,110, 97,109,101, 44, 39, 40, 39, 41, 10, 9,101,108,115,101, 10, 9, 32, 32, 105,102, 32,115,101,108,102, 46, 99, 97,115,116, 95,111,112, 101,114, 97,116,111,114, 32,116,104,101,110, 10, 9, 32, 32, 9, 45, 45,111,117,116,112,117,116, 40, 39,115,116, 97,116, 105, 99, 95, 99, 97,115,116, 60, 39, 44,115,101,108,102, 46, 109,111,100, 44,115,101,108,102, 46,116,121,112,101, 44,115, 101,108,102, 46,112,116,114, 44, 39, 32, 62, 40, 42,115,101, 108,102, 39, 41, 10, 9, 9,111,117,116,112,117,116, 40, 39, 115,101,108,102, 45, 62,111,112,101,114, 97,116,111,114, 32, 39, 44,115,101,108,102, 46,109,111,100, 44,115,101,108,102, 46,116,121,112,101, 44, 39, 40, 39, 41, 10, 9, 32, 32,101, 108,115,101, 10, 9, 9,111,117,116,112,117,116, 40, 39,115, 101,108,102, 45, 62, 39, 46, 46,115,101,108,102, 46,110, 97, 109,101, 44, 39, 40, 39, 41, 10, 9, 32, 32,101,110,100, 10, 9,101,110,100, 10, 32, 32,101,108,115,101, 10, 32, 32, 32, 111,117,116,112,117,116, 40,115,101,108,102, 46,110, 97,109, 101, 44, 39, 40, 39, 41, 10, 32, 32,101,110,100, 10, 10, 32, 32,105,102, 32,111,117,116, 32, 97,110,100, 32,110,111,116, 32,115,116, 97,116,105, 99, 32,116,104,101,110, 10, 32, 32, 9,111,117,116,112,117,116, 40, 39,115,101,108,102, 39, 41, 10, 9,105,102, 32,115,101,108,102, 46, 97,114,103,115, 91, 49, 93, 32, 97,110,100, 32,115,101,108,102, 46, 97,114,103, 115, 91, 49, 93, 46,110, 97,109,101, 32,126, 61, 32, 39, 39, 32,116,104,101,110, 10, 9, 9,111,117,116,112,117,116, 40, 39, 44, 39, 41, 10, 9,101,110,100, 10, 32, 32,101,110,100, 10, 32, 32, 45, 45, 32,119,114,105,116,101, 32,112, 97,114, 97,109,101,116,101,114,115, 10, 32, 32,108,111, 99, 97,108, 32,105, 61, 49, 10, 32, 32,119,104,105,108,101, 32,115,101, 108,102, 46, 97,114,103,115, 91,105, 93, 32,100,111, 10, 32, 32, 32,115,101,108,102, 46, 97,114,103,115, 91,105, 93, 58, 112, 97,115,115,112, 97,114, 40, 41, 10, 32, 32, 32,105, 32, 61, 32,105, 43, 49, 10, 32, 32, 32,105,102, 32,115,101,108, 102, 46, 97,114,103,115, 91,105, 93, 32,116,104,101,110, 10, 32, 32, 32, 32,111,117,116,112,117,116, 40, 39, 44, 39, 41, 10, 32, 32, 32,101,110,100, 10, 32, 32,101,110,100, 10, 10, 32, 32,105,102, 32, 99,108, 97,115,115, 32, 97,110,100, 32, 115,101,108,102, 46,110, 97,109,101, 32, 61, 61, 32, 39,111, 112,101,114, 97,116,111,114, 91, 93, 39, 32, 97,110,100, 32, 102,108, 97,103,115, 91, 39, 49, 39, 93, 32,116,104,101,110, 10, 9,111,117,116,112,117,116, 40, 39, 45, 49, 41, 59, 39, 41, 10, 32, 32,101,108,115,101, 10, 9,105,102, 32, 99,108, 97,115,115, 32, 97,110,100, 32,115,101,108,102, 46,110, 97, 109,101, 61, 61, 39,110,101,119, 39, 32,116,104,101,110, 10, 9, 9,111,117,116,112,117,116, 40, 39, 41, 41, 59, 39, 41, 32, 45, 45, 32, 99,108,111,115,101, 32, 77,116,111,108,117, 97, 95,110,101,119, 40, 10, 9,101,108,115,101, 10, 9, 9, 111,117,116,112,117,116, 40, 39, 41, 59, 39, 41, 10, 9,101, 110,100, 10, 32, 32,101,110,100, 10, 10, 32, 32, 45, 45, 32, 114,101,116,117,114,110, 32,118, 97,108,117,101,115, 10, 32, 32,105,102, 32,115,101,108,102, 46,116,121,112,101, 32,126, 61, 32, 39, 39, 32, 97,110,100, 32,115,101,108,102, 46,116, 121,112,101, 32,126, 61, 32, 39,118,111,105,100, 39, 32,116, 104,101,110, 10, 32, 32, 32,110,114,101,116, 32, 61, 32,110, 114,101,116, 32, 43, 32, 49, 10, 32, 32, 32,108,111, 99, 97, 108, 32,116, 44, 99,116, 32, 61, 32,105,115, 98, 97,115,105, 99, 40,115,101,108,102, 46,116,121,112,101, 41, 10, 32, 32, 32,105,102, 32,116, 32, 97,110,100, 32,115,101,108,102, 46, 110, 97,109,101, 32,126, 61, 32, 34,110,101,119, 34, 32,116, 104,101,110, 10, 32, 32, 32, 9,105,102, 32,115,101,108,102, 46, 99, 97,115,116, 95,111,112,101,114, 97,116,111,114, 32, 97,110,100, 32, 95, 98, 97,115,105, 99, 95,114, 97,119, 95, 112,117,115,104, 91,116, 93, 32,116,104,101,110, 10, 9, 9, 111,117,116,112,117,116, 40, 39, 32, 32, 32, 39, 44, 95, 98, 97,115,105, 99, 95,114, 97,119, 95,112,117,115,104, 91,116, 93, 44, 39, 40,116,111,108,117, 97, 95, 83, 44, 40, 39, 44, 99,116, 44, 39, 41,116,111,108,117, 97, 95,114,101,116, 41, 59, 39, 41, 10, 32, 32, 32, 9,101,108,115,101, 10, 9, 32, 32, 32, 32,111,117,116,112,117,116, 40, 39, 32, 32, 32,116, 111,108,117, 97, 95,112,117,115,104, 39, 46, 46,116, 46, 46, 39, 40,116,111,108,117, 97, 95, 83, 44, 40, 39, 44, 99,116, 44, 39, 41,116,111,108,117, 97, 95,114,101,116, 41, 59, 39, 41, 10, 9,101,110,100, 10, 32, 32, 32,101,108,115,101, 10, 9,116, 32, 61, 32,115,101,108,102, 46,116,121,112,101, 10, 9,110,101,119, 95,116, 32, 61, 32,115,116,114,105,110,103, 46,103,115,117, 98, 40,116, 44, 32, 34, 99,111,110,115,116, 37,115, 43, 34, 44, 32, 34, 34, 41, 10, 9,108,111, 99, 97, 108, 32,111,119,110,101,100, 32, 61, 32,102, 97,108,115,101, 10, 9,105,102, 32,115,116,114,105,110,103, 46,102,105,110, 100, 40,115,101,108,102, 46,109,111,100, 44, 32, 34,116,111, 108,117, 97, 95,111,119,110,101,100, 34, 41, 32,116,104,101, 110, 10, 9, 9,111,119,110,101,100, 32, 61, 32,116,114,117, 101, 10, 9,101,110,100, 10, 32, 32, 32, 32,108,111, 99, 97, 108, 32,112,117,115,104, 95,102,117,110, 99, 32, 61, 32,103, 101,116, 95,112,117,115,104, 95,102,117,110, 99,116,105,111, 110, 40,116, 41, 10, 32, 32, 32, 32,105,102, 32,115,101,108, 102, 46,112,116,114, 32, 61, 61, 32, 39, 39, 32,116,104,101, 110, 10, 32, 32, 32, 32, 32,111,117,116,112,117,116, 40, 39, 32, 32, 32,123, 39, 41, 10, 32, 32, 32, 32, 32,111,117,116, 112,117,116, 40, 39, 35,105,102,100,101,102, 32, 95, 95, 99, 112,108,117,115,112,108,117,115, 92,110, 39, 41, 10, 32, 32, 32, 32, 32,111,117,116,112,117,116, 40, 39, 32, 32, 32, 32, 118,111,105,100, 42, 32,116,111,108,117, 97, 95,111, 98,106, 32, 61, 32, 77,116,111,108,117, 97, 95,110,101,119, 40, 40, 39, 44,110,101,119, 95,116, 44, 39, 41, 40,116,111,108,117, 97, 95,114,101,116, 41, 41, 59, 39, 41, 10, 32, 32, 32, 32, 32,111,117,116,112,117,116, 40, 39, 32, 32, 32, 32, 39, 44, 112,117,115,104, 95,102,117,110, 99, 44, 39, 40,116,111,108, 117, 97, 95, 83, 44,116,111,108,117, 97, 95,111, 98,106, 44, 34, 39, 44,116, 44, 39, 34, 41, 59, 39, 41, 10, 32, 32, 32, 32, 32,111,117,116,112,117,116, 40, 39, 32, 32, 32, 32,116, 111,108,117, 97, 95,114,101,103,105,115,116,101,114, 95,103, 99, 40,116,111,108,117, 97, 95, 83, 44,108,117, 97, 95,103, 101,116,116,111,112, 40,116,111,108,117, 97, 95, 83, 41, 41, 59, 39, 41, 10, 32, 32, 32, 32, 32,111,117,116,112,117,116, 40, 39, 35,101,108,115,101, 92,110, 39, 41, 10, 32, 32, 32, 32, 32,111,117,116,112,117,116, 40, 39, 32, 32, 32, 32,118, 111,105,100, 42, 32,116,111,108,117, 97, 95,111, 98,106, 32, 61, 32,116,111,108,117, 97, 95, 99,111,112,121, 40,116,111, 108,117, 97, 95, 83, 44, 40,118,111,105,100, 42, 41, 38,116, 111,108,117, 97, 95,114,101,116, 44,115,105,122,101,111,102, 40, 39, 44,116, 44, 39, 41, 41, 59, 39, 41, 10, 32, 32, 32, 32, 32,111,117,116,112,117,116, 40, 39, 32, 32, 32, 32, 39, 44,112,117,115,104, 95,102,117,110, 99, 44, 39, 40,116,111, 108,117, 97, 95, 83, 44,116,111,108,117, 97, 95,111, 98,106, 44, 34, 39, 44,116, 44, 39, 34, 41, 59, 39, 41, 10, 32, 32, 32, 32, 32,111,117,116,112,117,116, 40, 39, 32, 32, 32, 32, 116,111,108,117, 97, 95,114,101,103,105,115,116,101,114, 95, 103, 99, 40,116,111,108,117, 97, 95, 83, 44,108,117, 97, 95, 103,101,116,116,111,112, 40,116,111,108,117, 97, 95, 83, 41, 41, 59, 39, 41, 10, 32, 32, 32, 32, 32,111,117,116,112,117, 116, 40, 39, 35,101,110,100,105,102, 92,110, 39, 41, 10, 32, 32, 32, 32, 32,111,117,116,112,117,116, 40, 39, 32, 32, 32, 125, 39, 41, 10, 32, 32, 32, 32,101,108,115,101,105,102, 32, 115,101,108,102, 46,112,116,114, 32, 61, 61, 32, 39, 38, 39, 32,116,104,101,110, 10, 32, 32, 32, 32, 32,111,117,116,112, 117,116, 40, 39, 32, 32, 32, 39, 44,112,117,115,104, 95,102, 117,110, 99, 44, 39, 40,116,111,108,117, 97, 95, 83, 44, 40, 118,111,105,100, 42, 41, 38,116,111,108,117, 97, 95,114,101, 116, 44, 34, 39, 44,116, 44, 39, 34, 41, 59, 39, 41, 10, 32, 32, 32, 32,101,108,115,101, 10, 9, 32,111,117,116,112,117, 116, 40, 39, 32, 32, 32, 39, 44,112,117,115,104, 95,102,117, 110, 99, 44, 39, 40,116,111,108,117, 97, 95, 83, 44, 40,118, 111,105,100, 42, 41,116,111,108,117, 97, 95,114,101,116, 44, 34, 39, 44,116, 44, 39, 34, 41, 59, 39, 41, 10, 9, 32,105, 102, 32,111,119,110,101,100, 32,111,114, 32,108,111, 99, 97, 108, 95, 99,111,110,115,116,114,117, 99,116,111,114, 32,116, 104,101,110, 10, 32, 32, 32, 32, 32, 32,111,117,116,112,117, 116, 40, 39, 32, 32, 32, 32,116,111,108,117, 97, 95,114,101, 103,105,115,116,101,114, 95,103, 99, 40,116,111,108,117, 97, 95, 83, 44,108,117, 97, 95,103,101,116,116,111,112, 40,116, 111,108,117, 97, 95, 83, 41, 41, 59, 39, 41, 10, 9, 32,101, 110,100, 10, 32, 32, 32, 32,101,110,100, 10, 32, 32, 32,101, 110,100, 10, 32, 32,101,110,100, 10, 32, 32,108,111, 99, 97, 108, 32,105, 61, 49, 10, 32, 32,119,104,105,108,101, 32,115, 101,108,102, 46, 97,114,103,115, 91,105, 93, 32,100,111, 10, 32, 32, 32,110,114,101,116, 32, 61, 32,110,114,101,116, 32, 43, 32,115,101,108,102, 46, 97,114,103,115, 91,105, 93, 58, 114,101,116,118, 97,108,117,101, 40, 41, 10, 32, 32, 32,105, 32, 61, 32,105, 43, 49, 10, 32, 32,101,110,100, 10, 32, 32, 111,117,116,112,117,116, 40, 39, 32, 32,125, 39, 41, 10, 10, 32, 32, 45, 45, 32,115,101,116, 32, 97,114,114, 97,121, 32, 101,108,101,109,101,110,116, 32,118, 97,108,117,101,115, 10, 32, 32,105,102, 32, 99,108, 97,115,115, 32,116,104,101,110, 32,110, 97,114,103, 61, 50, 32,101,108,115,101, 32,110, 97, 114,103, 61, 49, 32,101,110,100, 10, 32, 32,105,102, 32,115, 101,108,102, 46, 97,114,103,115, 91, 49, 93, 46,116,121,112, 101, 32,126, 61, 32, 39,118,111,105,100, 39, 32,116,104,101, 110, 10, 32, 32, 32,108,111, 99, 97,108, 32,105, 61, 49, 10, 32, 32, 32,119,104,105,108,101, 32,115,101,108,102, 46, 97, 114,103,115, 91,105, 93, 32,100,111, 10, 32, 32, 32, 32,115, 101,108,102, 46, 97,114,103,115, 91,105, 93, 58,115,101,116, 97,114,114, 97,121, 40,110, 97,114,103, 41, 10, 32, 32, 32, 32,110, 97,114,103, 32, 61, 32,110, 97,114,103, 43, 49, 10, 32, 32, 32, 32,105, 32, 61, 32,105, 43, 49, 10, 32, 32, 32, 101,110,100, 10, 32, 32,101,110,100, 10, 10, 32, 32, 45, 45, 32,102,114,101,101, 32,100,121,110, 97,109,105, 99, 97,108, 108,121, 32, 97,108,108,111, 99, 97,116,101,100, 32, 97,114, 114, 97,121, 10, 32, 32,105,102, 32,115,101,108,102, 46, 97, 114,103,115, 91, 49, 93, 46,116,121,112,101, 32,126, 61, 32, 39,118,111,105,100, 39, 32,116,104,101,110, 10, 32, 32, 32, 108,111, 99, 97,108, 32,105, 61, 49, 10, 32, 32, 32,119,104, 105,108,101, 32,115,101,108,102, 46, 97,114,103,115, 91,105, 93, 32,100,111, 10, 32, 32, 32, 32,115,101,108,102, 46, 97, 114,103,115, 91,105, 93, 58,102,114,101,101, 97,114,114, 97, 121, 40, 41, 10, 32, 32, 32, 32,105, 32, 61, 32,105, 43, 49, 10, 32, 32, 32,101,110,100, 10, 32, 32,101,110,100, 10, 32, 101,110,100, 10, 10, 32,112,111,115,116, 95, 99, 97,108,108, 95,104,111,111,107, 40,115,101,108,102, 41, 10, 10, 32,111, 117,116,112,117,116, 40, 39, 32,125, 39, 41, 10, 32,111,117, 116,112,117,116, 40, 39, 32,114,101,116,117,114,110, 32, 39, 46, 46,110,114,101,116, 46, 46, 39, 59, 39, 41, 10, 10, 32, 45, 45, 32, 99, 97,108,108, 32,111,118,101,114,108,111, 97, 100,101,100, 32,102,117,110, 99,116,105,111,110, 32,111,114, 32,103,101,110,101,114, 97,116,101, 32,101,114,114,111,114, 10, 9,105,102, 32,111,118,101,114,108,111, 97,100, 32, 60, 32, 48, 32,116,104,101,110, 10, 10, 9, 9,111,117,116,112, 117,116, 40, 39, 35,105,102,110,100,101,102, 32, 84, 79, 76, 85, 65, 95, 82, 69, 76, 69, 65, 83, 69, 92,110, 39, 41, 10, 9, 9,111,117,116,112,117,116, 40, 39,116,111,108,117, 97, 95,108,101,114,114,111,114, 58, 92,110, 39, 41, 10, 9, 9, 111,117,116,112,117,116, 40, 39, 32,116,111,108,117, 97, 95, 101,114,114,111,114, 40,116,111,108,117, 97, 95, 83, 44, 34, 39, 46, 46,111,117,116,112,117,116, 95,101,114,114,111,114, 95,104,111,111,107, 40, 34, 35,102,101,114,114,111,114, 32, 105,110, 32,102,117,110, 99,116,105,111,110, 32, 92, 39, 37, 115, 92, 39, 46, 34, 44, 32,115,101,108,102, 46,108,110, 97, 109,101, 41, 46, 46, 39, 34, 44, 38,116,111,108,117, 97, 95, 101,114,114, 41, 59, 39, 41, 10, 9, 9,111,117,116,112,117, 116, 40, 39, 32,114,101,116,117,114,110, 32, 48, 59, 39, 41, 10, 9, 9,111,117,116,112,117,116, 40, 39, 35,101,110,100, 105,102, 92,110, 39, 41, 10, 9,101,108,115,101, 10, 9, 9, 108,111, 99, 97,108, 32, 95,108,111, 99, 97,108, 32, 61, 32, 34, 34, 10, 9, 9,105,102, 32,108,111, 99, 97,108, 95, 99, 111,110,115,116,114,117, 99,116,111,114, 32,116,104,101,110, 10, 9, 9, 9, 95,108,111, 99, 97,108, 32, 61, 32, 34, 95, 108,111, 99, 97,108, 34, 10, 9, 9,101,110,100, 10, 9, 9, 111,117,116,112,117,116, 40, 39,116,111,108,117, 97, 95,108, 101,114,114,111,114, 58, 92,110, 39, 41, 10, 9, 9,111,117, 116,112,117,116, 40, 39, 32,114,101,116,117,114,110, 32, 39, 46, 46,115,116,114,115,117, 98, 40,115,101,108,102, 46, 99, 110, 97,109,101, 44, 49, 44, 45, 51, 41, 46, 46,102,111,114, 109, 97,116, 40, 34, 37, 48, 50,100, 34, 44,111,118,101,114, 108,111, 97,100, 41, 46, 46, 95,108,111, 99, 97,108, 46, 46, 39, 40,116,111,108,117, 97, 95, 83, 41, 59, 39, 41, 10, 9, 101,110,100, 10, 32,111,117,116,112,117,116, 40, 39,125, 39, 41, 10, 32,111,117,116,112,117,116, 40, 39, 35,101,110,100, 105,102, 32, 47, 47, 35,105,102,110,100,101,102, 32, 84, 79, 76, 85, 65, 95, 68, 73, 83, 65, 66, 76, 69, 92,110, 39, 41, 10, 32,111,117,116,112,117,116, 40, 39, 92,110, 39, 41, 10, 10, 9, 45, 45, 32,114,101, 99,117,114,115,105,118,101, 32, 99, 97,108,108, 32,116,111, 32,119,114,105,116,101, 32,108, 111, 99, 97,108, 32, 99,111,110,115,116,114,117, 99,116,111, 114, 10, 9,105,102, 32, 99,108, 97,115,115, 32, 97,110,100, 32,115,101,108,102, 46,110, 97,109,101, 61, 61, 39,110,101, 119, 39, 32, 97,110,100, 32,110,111,116, 32,108,111, 99, 97, 108, 95, 99,111,110,115,116,114,117, 99,116,111,114, 32,116, 104,101,110, 10, 10, 9, 9,115,101,108,102, 58,115,117,112, 99,111,100,101, 40, 49, 41, 10, 9,101,110,100, 10, 10,101, 110,100, 10, 10, 10, 45, 45, 32,114,101,103,105,115,116,101, 114, 32,102,117,110, 99,116,105,111,110, 10,102,117,110, 99, 116,105,111,110, 32, 99,108, 97,115,115, 70,117,110, 99,116, 105,111,110, 58,114,101,103,105,115,116,101,114, 32, 40,112, 114,101, 41, 10, 10, 9,105,102, 32,110,111,116, 32,115,101, 108,102, 58, 99,104,101, 99,107, 95,112,117, 98,108,105, 99, 95, 97, 99, 99,101,115,115, 40, 41, 32,116,104,101,110, 10, 9, 9,114,101,116,117,114,110, 10, 9,101,110,100, 10, 10, 32, 9,105,102, 32,115,101,108,102, 46,110, 97,109,101, 32, 61, 61, 32, 39,110,101,119, 39, 32, 97,110,100, 32,115,101, 108,102, 46,112, 97,114,101,110,116, 46,102,108, 97,103,115, 46,112,117,114,101, 95,118,105,114,116,117, 97,108, 32,116, 104,101,110, 10, 32, 9, 9, 45, 45, 32,110,111, 32, 99,111, 110,115,116,114,117, 99,116,111,114, 32,102,111,114, 32, 99, 108, 97,115,115,101,115, 32,119,105,116,104, 32,112,117,114, 101, 32,118,105,114,116,117, 97,108, 32,109,101,116,104,111, 100,115, 10, 32, 9, 9,114,101,116,117,114,110, 10, 32, 9, 101,110,100, 10, 10, 32,111,117,116,112,117,116, 40,112,114, 101, 46, 46, 39,116,111,108,117, 97, 95,102,117,110, 99,116, 105,111,110, 40,116,111,108,117, 97, 95, 83, 44, 34, 39, 46, 46,115,101,108,102, 46,108,110, 97,109,101, 46, 46, 39, 34, 44, 39, 46, 46,115,101,108,102, 46, 99,110, 97,109,101, 46, 46, 39, 41, 59, 39, 41, 10, 32, 32,105,102, 32,115,101,108, 102, 46,110, 97,109,101, 32, 61, 61, 32, 39,110,101,119, 39, 32,116,104,101,110, 10, 9, 32, 32,111,117,116,112,117,116, 40,112,114,101, 46, 46, 39,116,111,108,117, 97, 95,102,117, 110, 99,116,105,111,110, 40,116,111,108,117, 97, 95, 83, 44, 34,110,101,119, 95,108,111, 99, 97,108, 34, 44, 39, 46, 46, 115,101,108,102, 46, 99,110, 97,109,101, 46, 46, 39, 95,108, 111, 99, 97,108, 41, 59, 39, 41, 10, 9, 32, 32,111,117,116, 112,117,116, 40,112,114,101, 46, 46, 39,116,111,108,117, 97, 95,102,117,110, 99,116,105,111,110, 40,116,111,108,117, 97, 95, 83, 44, 34, 46, 99, 97,108,108, 34, 44, 39, 46, 46,115, 101,108,102, 46, 99,110, 97,109,101, 46, 46, 39, 95,108,111, 99, 97,108, 41, 59, 39, 41, 10, 9, 32, 32, 45, 45,111,117, 116,112,117,116, 40, 39, 32,116,111,108,117, 97, 95,115,101, 116, 95, 99, 97,108,108, 95,101,118,101,110,116, 40,116,111, 108,117, 97, 95, 83, 44, 39, 46, 46,115,101,108,102, 46, 99, 110, 97,109,101, 46, 46, 39, 95,108,111, 99, 97,108, 44, 32, 34, 39, 46, 46,115,101,108,102, 46,112, 97,114,101,110,116, 46,116,121,112,101, 46, 46, 39, 34, 41, 59, 39, 41, 10, 32, 32,101,110,100, 10,101,110,100, 10, 10, 45, 45, 32, 80,114, 105,110,116, 32,109,101,116,104,111,100, 10,102,117,110, 99, 116,105,111,110, 32, 99,108, 97,115,115, 70,117,110, 99,116, 105,111,110, 58,112,114,105,110,116, 32, 40,105,100,101,110, 116, 44, 99,108,111,115,101, 41, 10, 32,112,114,105,110,116, 40,105,100,101,110,116, 46, 46, 34, 70,117,110, 99,116,105, 111,110,123, 34, 41, 10, 32,112,114,105,110,116, 40,105,100, 101,110,116, 46, 46, 34, 32,109,111,100, 32, 32, 61, 32, 39, 34, 46, 46,115,101,108,102, 46,109,111,100, 46, 46, 34, 39, 44, 34, 41, 10, 32,112,114,105,110,116, 40,105,100,101,110, 116, 46, 46, 34, 32,116,121,112,101, 32, 61, 32, 39, 34, 46, 46,115,101,108,102, 46,116,121,112,101, 46, 46, 34, 39, 44, 34, 41, 10, 32,112,114,105,110,116, 40,105,100,101,110,116, 46, 46, 34, 32,112,116,114, 32, 32, 61, 32, 39, 34, 46, 46, 115,101,108,102, 46,112,116,114, 46, 46, 34, 39, 44, 34, 41, 10, 32,112,114,105,110,116, 40,105,100,101,110,116, 46, 46, 34, 32,110, 97,109,101, 32, 61, 32, 39, 34, 46, 46,115,101, 108,102, 46,110, 97,109,101, 46, 46, 34, 39, 44, 34, 41, 10, 32,112,114,105,110,116, 40,105,100,101,110,116, 46, 46, 34, 32,108,110, 97,109,101, 32, 61, 32, 39, 34, 46, 46,115,101, 108,102, 46,108,110, 97,109,101, 46, 46, 34, 39, 44, 34, 41, 10, 32,112,114,105,110,116, 40,105,100,101,110,116, 46, 46, 34, 32, 99,111,110,115,116, 32, 61, 32, 39, 34, 46, 46,115, 101,108,102, 46, 99,111,110,115,116, 46, 46, 34, 39, 44, 34, 41, 10, 32,112,114,105,110,116, 40,105,100,101,110,116, 46, 46, 34, 32, 99,110, 97,109,101, 32, 61, 32, 39, 34, 46, 46, 115,101,108,102, 46, 99,110, 97,109,101, 46, 46, 34, 39, 44, 34, 41, 10, 32,112,114,105,110,116, 40,105,100,101,110,116, 46, 46, 34, 32,108,110, 97,109,101, 32, 61, 32, 39, 34, 46, 46,115,101,108,102, 46,108,110, 97,109,101, 46, 46, 34, 39, 44, 34, 41, 10, 32,112,114,105,110,116, 40,105,100,101,110, 116, 46, 46, 34, 32, 97,114,103,115, 32, 61, 32,123, 34, 41, 10, 32,108,111, 99, 97,108, 32,105, 61, 49, 10, 32,119,104, 105,108,101, 32,115,101,108,102, 46, 97,114,103,115, 91,105, 93, 32,100,111, 10, 32, 32,115,101,108,102, 46, 97,114,103, 115, 91,105, 93, 58,112,114,105,110,116, 40,105,100,101,110, 116, 46, 46, 34, 32, 32, 34, 44, 34, 44, 34, 41, 10, 32, 32, 105, 32, 61, 32,105, 43, 49, 10, 32,101,110,100, 10, 32,112, 114,105,110,116, 40,105,100,101,110,116, 46, 46, 34, 32,125, 34, 41, 10, 32,112,114,105,110,116, 40,105,100,101,110,116, 46, 46, 34,125, 34, 46, 46, 99,108,111,115,101, 41, 10,101, 110,100, 10, 10, 45, 45, 32, 99,104,101, 99,107, 32,105,102, 32,105,116, 32,114,101,116,117,114,110,115, 32, 97,110, 32, 111, 98,106,101, 99,116, 32, 98,121, 32,118, 97,108,117,101, 10,102,117,110, 99,116,105,111,110, 32, 99,108, 97,115,115, 70,117,110, 99,116,105,111,110, 58,114,101,113,117,105,114, 101, 99,111,108,108,101, 99,116,105,111,110, 32, 40,116, 41, 10, 9,108,111, 99, 97,108, 32,114, 32, 61, 32,102, 97,108, 115,101, 10, 9,105,102, 32,115,101,108,102, 46,116,121,112, 101, 32,126, 61, 32, 39, 39, 32, 97,110,100, 32,110,111,116, 32,105,115, 98, 97,115,105, 99, 40,115,101,108,102, 46,116, 121,112,101, 41, 32, 97,110,100, 32,115,101,108,102, 46,112, 116,114, 61, 61, 39, 39, 32,116,104,101,110, 10, 9, 9,108, 111, 99, 97,108, 32,116,121,112,101, 32, 61, 32,103,115,117, 98, 40,115,101,108,102, 46,116,121,112,101, 44, 34, 37,115, 42, 99,111,110,115,116, 37,115, 43, 34, 44, 34, 34, 41, 10, 9, 32,116, 91,116,121,112,101, 93, 32, 61, 32, 34,116,111, 108,117, 97, 95, 99,111,108,108,101, 99,116, 95, 34, 32, 46, 46, 32, 99,108,101, 97,110, 95,116,101,109,112,108, 97,116, 101, 40,116,121,112,101, 41, 10, 9, 32,114, 32, 61, 32,116, 114,117,101, 10, 9,101,110,100, 10, 9,108,111, 99, 97,108, 32,105, 61, 49, 10, 9,119,104,105,108,101, 32,115,101,108, 102, 46, 97,114,103,115, 91,105, 93, 32,100,111, 10, 9, 9, 114, 32, 61, 32,115,101,108,102, 46, 97,114,103,115, 91,105, 93, 58,114,101,113,117,105,114,101, 99,111,108,108,101, 99, 116,105,111,110, 40,116, 41, 32,111,114, 32,114, 10, 9, 9, 105, 32, 61, 32,105, 43, 49, 10, 9,101,110,100, 10, 9,114, 101,116,117,114,110, 32,114, 10,101,110,100, 10, 10, 45, 45, 32,100,101,116,101,114,109,105,110,101, 32,108,117, 97, 32, 102,117,110, 99,116,105,111,110, 32,110, 97,109,101, 32,111, 118,101,114,108,111, 97,100, 10,102,117,110, 99,116,105,111, 110, 32, 99,108, 97,115,115, 70,117,110, 99,116,105,111,110, 58,111,118,101,114,108,111, 97,100, 32, 40, 41, 10, 32,114, 101,116,117,114,110, 32,115,101,108,102, 46,112, 97,114,101, 110,116, 58,111,118,101,114,108,111, 97,100, 40,115,101,108, 102, 46,108,110, 97,109,101, 41, 10,101,110,100, 10, 10, 10, 102,117,110, 99,116,105,111,110, 32,112, 97,114, 97,109, 95, 111, 98,106,101, 99,116, 40,112, 97,114, 41, 32, 45, 45, 32, 114,101,116,117,114,110,115, 32,116,114,117,101, 32,105,102, 32,116,104,101, 32,112, 97,114, 97,109,101,116,101,114, 32, 104, 97,115, 32, 97,110, 32,111, 98,106,101, 99,116, 32, 97, 115, 32,105,116,115, 32,100,101,102, 97,117,108,116, 32,118, 97,108,117,101, 10, 10, 9,105,102, 32,110,111,116, 32,115, 116,114,105,110,103, 46,102,105,110,100, 40,112, 97,114, 44, 32, 39, 61, 39, 41, 32,116,104,101,110, 32,114,101,116,117, 114,110, 32,102, 97,108,115,101, 32,101,110,100, 32, 45, 45, 32,105,116, 32,104, 97,115, 32,110,111, 32,100,101,102, 97, 117,108,116, 32,118, 97,108,117,101, 10, 10, 9,108,111, 99, 97,108, 32, 95, 44, 95, 44,100,101,102, 32, 61, 32,115,116, 114,105,110,103, 46,102,105,110,100, 40,112, 97,114, 44, 32, 34, 61, 40, 46, 42, 41, 36, 34, 41, 10, 10, 9,105,102, 32, 115,116,114,105,110,103, 46,102,105,110,100, 40,112, 97,114, 44, 32, 34,124, 34, 41, 32,116,104,101,110, 32, 45, 45, 32, 97, 32,108,105,115,116, 32,111,102, 32,102,108, 97,103,115, 10, 10, 9, 9,114,101,116,117,114,110, 32,116,114,117,101, 10, 9,101,110,100, 10, 10, 9,105,102, 32,115,116,114,105, 110,103, 46,102,105,110,100, 40,112, 97,114, 44, 32, 34, 37, 42, 34, 41, 32,116,104,101,110, 32, 45, 45, 32,105,116, 39, 115, 32, 97, 32,112,111,105,110,116,101,114, 32,119,105,116, 104, 32, 97, 32,100,101,102, 97,117,108,116, 32,118, 97,108, 117,101, 10, 10, 9, 9,105,102, 32,115,116,114,105,110,103, 46,102,105,110,100, 40,112, 97,114, 44, 32, 39, 61, 37,115, 42,110,101,119, 39, 41, 32,111,114, 32,115,116,114,105,110, 103, 46,102,105,110,100, 40,112, 97,114, 44, 32, 34, 37, 40, 34, 41, 32,116,104,101,110, 32, 45, 45, 32,105,116, 39,115, 32, 97, 32,112,111,105,110,116,101,114, 32,119,105,116,104, 32, 97,110, 32,105,110,115,116, 97,110, 99,101, 32, 97,115, 32,100,101,102, 97,117,108,116, 32,112, 97,114, 97,109,101, 116,101,114, 46, 46, 32,105,115, 32,116,104, 97,116, 32,118, 97,108,105,100, 63, 10, 9, 9, 9,114,101,116,117,114,110, 32,116,114,117,101, 10, 9, 9,101,110,100, 10, 9, 9,114, 101,116,117,114,110, 32,102, 97,108,115,101, 32, 45, 45, 32, 100,101,102, 97,117,108,116, 32,118, 97,108,117,101, 32,105, 115, 32, 39, 78, 85, 76, 76, 39, 32,111,114, 32,115,111,109, 101,116,104,105,110,103, 10, 9,101,110,100, 10, 10, 10, 9, 105,102, 32,115,116,114,105,110,103, 46,102,105,110,100, 40, 112, 97,114, 44, 32, 34, 91, 37, 40, 38, 93, 34, 41, 32,116, 104,101,110, 10, 9, 9,114,101,116,117,114,110, 32,116,114, 117,101, 10, 9,101,110,100, 32, 45, 45, 32,100,101,102, 97, 117,108,116, 32,118, 97,108,117,101, 32,105,115, 32, 97, 32, 99,111,110,115,116,114,117, 99,116,111,114, 32, 99, 97,108, 108, 32, 40,109,111,115,116, 32,108,105,107,101,108,121, 32, 102,111,114, 32, 97, 32, 99,111,110,115,116, 32,114,101,102, 101,114,101,110, 99,101, 41, 10, 10, 9, 45, 45,105,102, 32, 115,116,114,105,110,103, 46,102,105,110,100, 40,112, 97,114, 44, 32, 34, 38, 34, 41, 32,116,104,101,110, 10, 10, 9, 45, 45, 9,105,102, 32,115,116,114,105,110,103, 46,102,105,110, 100, 40,100,101,102, 44, 32, 34, 58, 34, 41, 32,111,114, 32, 115,116,114,105,110,103, 46,102,105,110,100, 40,100,101,102, 44, 32, 34, 94, 37,115, 42,110,101,119, 37,115, 43, 34, 41, 32,116,104,101,110, 10, 10, 9, 45, 45, 9, 9, 45, 45, 32, 105,116, 39,115, 32, 97, 32,114,101,102,101,114,101,110, 99, 101, 32,119,105,116,104, 32,100,101,102, 97,117,108,116, 32, 116,111, 32,115,111,109,101,116,104,105,110,103, 32,108,105, 107,101, 32, 67,108, 97,115,115, 58, 58,109,101,109, 98,101, 114, 44, 32,111,114, 32, 39,110,101,119, 32, 67,108, 97,115, 115, 39, 10, 9, 45, 45, 9, 9,114,101,116,117,114,110, 32, 116,114,117,101, 10, 9, 45, 45, 9,101,110,100, 10, 9, 45, 45,101,110,100, 10, 10, 9,114,101,116,117,114,110, 32,102, 97,108,115,101, 32, 45, 45, 32, 63, 10,101,110,100, 10, 10, 102,117,110, 99,116,105,111,110, 32,115,116,114,105,112, 95, 108, 97,115,116, 95, 97,114,103, 40, 97,108,108, 95, 97,114, 103,115, 44, 32,108, 97,115,116, 95, 97,114,103, 41, 32, 45, 45, 32,115,116,114,105,112,115, 32,116,104,101, 32,100,101, 102, 97,117,108,116, 32,118, 97,108,117,101, 32,102,114,111, 109, 32,116,104,101, 32,108, 97,115,116, 32, 97,114,103,117, 109,101,110,116, 10, 10, 9,108,111, 99, 97,108, 32, 95, 44, 95, 44,115, 95, 97,114,103, 32, 61, 32,115,116,114,105,110, 103, 46,102,105,110,100, 40,108, 97,115,116, 95, 97,114,103, 44, 32, 34, 94, 40, 91, 94, 61, 93, 43, 41, 34, 41, 10, 9, 108, 97,115,116, 95, 97,114,103, 32, 61, 32,115,116,114,105, 110,103, 46,103,115,117, 98, 40,108, 97,115,116, 95, 97,114, 103, 44, 32, 34, 40, 91, 37, 37, 37, 40, 37, 41, 93, 41, 34, 44, 32, 34, 37, 37, 37, 49, 34, 41, 59, 10, 9, 97,108,108, 95, 97,114,103,115, 32, 61, 32,115,116,114,105,110,103, 46, 103,115,117, 98, 40, 97,108,108, 95, 97,114,103,115, 44, 32, 34, 37,115, 42, 44, 37,115, 42, 34, 46, 46,108, 97,115,116, 95, 97,114,103, 46, 46, 34, 37,115, 42, 37, 41, 37,115, 42, 36, 34, 44, 32, 34, 41, 34, 41, 10, 9,114,101,116,117,114, 110, 32, 97,108,108, 95, 97,114,103,115, 44, 32,115, 95, 97, 114,103, 10,101,110,100, 10, 10, 10, 10, 45, 45, 32, 73,110, 116,101,114,110, 97,108, 32, 99,111,110,115,116,114,117, 99, 116,111,114, 10,102,117,110, 99,116,105,111,110, 32, 95, 70, 117,110, 99,116,105,111,110, 32, 40,116, 41, 10, 32,115,101, 116,109,101,116, 97,116, 97, 98,108,101, 40,116, 44, 99,108, 97,115,115, 70,117,110, 99,116,105,111,110, 41, 10, 10, 32, 105,102, 32,116, 46, 99,111,110,115,116, 32,126, 61, 32, 39, 99,111,110,115,116, 39, 32, 97,110,100, 32,116, 46, 99,111, 110,115,116, 32,126, 61, 32, 39, 39, 32,116,104,101,110, 10, 32, 32,101,114,114,111,114, 40, 34, 35,105,110,118, 97,108, 105,100, 32, 39, 99,111,110,115,116, 39, 32,115,112,101, 99, 105,102,105, 99, 97,116,105,111,110, 34, 41, 10, 32,101,110, 100, 10, 10, 32, 97,112,112,101,110,100, 40,116, 41, 10, 32, 105,102, 32,116, 58,105,110, 99,108, 97,115,115, 40, 41, 32, 116,104,101,110, 10, 32, 45, 45,112,114,105,110,116, 32, 40, 39,116, 46,110, 97,109,101, 32,105,115, 32, 39, 46, 46,116, 46,110, 97,109,101, 46, 46, 39, 44, 32,112, 97,114,101,110, 116, 46,110, 97,109,101, 32,105,115, 32, 39, 46, 46,116, 46, 112, 97,114,101,110,116, 46,110, 97,109,101, 41, 10, 32, 32, 105,102, 32,115,116,114,105,110,103, 46,103,115,117, 98, 40, 116, 46,110, 97,109,101, 44, 32, 34, 37, 98, 60, 62, 34, 44, 32, 34, 34, 41, 32, 61, 61, 32,115,116,114,105,110,103, 46, 103,115,117, 98, 40,116, 46,112, 97,114,101,110,116, 46,111, 114,105,103,105,110, 97,108, 95,110, 97,109,101, 32,111,114, 32,116, 46,112, 97,114,101,110,116, 46,110, 97,109,101, 44, 32, 34, 37, 98, 60, 62, 34, 44, 32, 34, 34, 41, 32,116,104, 101,110, 10, 32, 32, 32,116, 46,110, 97,109,101, 32, 61, 32, 39,110,101,119, 39, 10, 32, 32, 32,116, 46,108,110, 97,109, 101, 32, 61, 32, 39,110,101,119, 39, 10, 32, 32, 32,116, 46, 112, 97,114,101,110,116, 46, 95,110,101,119, 32, 61, 32,116, 114,117,101, 10, 32, 32, 32,116, 46,116,121,112,101, 32, 61, 32,116, 46,112, 97,114,101,110,116, 46,110, 97,109,101, 10, 32, 32, 32,116, 46,112,116,114, 32, 61, 32, 39, 42, 39, 10, 32, 32,101,108,115,101,105,102, 32,115,116,114,105,110,103, 46,103,115,117, 98, 40,116, 46,110, 97,109,101, 44, 32, 34, 37, 98, 60, 62, 34, 44, 32, 34, 34, 41, 32, 61, 61, 32, 39, 126, 39, 46, 46,115,116,114,105,110,103, 46,103,115,117, 98, 40,116, 46,112, 97,114,101,110,116, 46,111,114,105,103,105, 110, 97,108, 95,110, 97,109,101, 32,111,114, 32,116, 46,112, 97,114,101,110,116, 46,110, 97,109,101, 44, 32, 34, 37, 98, 60, 62, 34, 44, 32, 34, 34, 41, 32,116,104,101,110, 10, 32, 32, 32,116, 46,110, 97,109,101, 32, 61, 32, 39,100,101,108, 101,116,101, 39, 10, 32, 32, 32,116, 46,108,110, 97,109,101, 32, 61, 32, 39,100,101,108,101,116,101, 39, 10, 32, 32, 32, 116, 46,112, 97,114,101,110,116, 46, 95,100,101,108,101,116, 101, 32, 61, 32,116,114,117,101, 10, 32, 32,101,110,100, 10, 32,101,110,100, 10, 32,116, 46, 99,110, 97,109,101, 32, 61, 32,116, 58, 99,102,117,110, 99,110, 97,109,101, 40, 34,116, 111,108,117, 97, 34, 41, 46, 46,116, 58,111,118,101,114,108, 111, 97,100, 40,116, 41, 10, 32,114,101,116,117,114,110, 32, 116, 10,101,110,100, 10, 10, 45, 45, 32, 67,111,110,115,116, 114,117, 99,116,111,114, 10, 45, 45, 32, 69,120,112,101, 99, 116,115, 32,116,104,114,101,101, 32,115,116,114,105,110,103, 115, 58, 32,111,110,101, 32,114,101,112,114,101,115,101,110, 116,105,110,103, 32,116,104,101, 32,102,117,110, 99,116,105, 111,110, 32,100,101, 99,108, 97,114, 97,116,105,111,110, 44, 10, 45, 45, 32, 97,110,111,116,104,101,114, 32,114,101,112, 114,101,115,101,110,116,105,110,103, 32,116,104,101, 32, 97, 114,103,117,109,101,110,116, 32,108,105,115,116, 44, 32, 97, 110,100, 32,116,104,101, 32,116,104,105,114,100, 32,114,101, 112,114,101,115,101,110,116,105,110,103, 10, 45, 45, 32,116, 104,101, 32, 34, 99,111,110,115,116, 34, 32,111,114, 32,101, 109,112,116,121, 32,115,116,114,105,110,103, 46, 10,102,117, 110, 99,116,105,111,110, 32, 70,117,110, 99,116,105,111,110, 32, 40,100, 44, 97, 44, 99, 41, 10, 32, 45, 45,108,111, 99, 97,108, 32,116, 32, 61, 32,115,112,108,105,116, 40,115,116, 114,115,117, 98, 40, 97, 44, 50, 44, 45, 50, 41, 44, 39, 44, 39, 41, 32, 45, 45, 32,101,108,105,109,105,110, 97,116,101, 32, 98,114, 97, 99,101,115, 10, 32, 45, 45,108,111, 99, 97, 108, 32,116, 32, 61, 32,115,112,108,105,116, 95,112, 97,114, 97,109,115, 40,115,116,114,115,117, 98, 40, 97, 44, 50, 44, 45, 50, 41, 41, 10, 10, 9,105,102, 32,110,111,116, 32,102, 108, 97,103,115, 91, 39, 87, 39, 93, 32, 97,110,100, 32,115, 116,114,105,110,103, 46,102,105,110,100, 40, 97, 44, 32, 34, 37, 46, 37, 46, 37, 46, 37,115, 42, 37, 41, 34, 41, 32,116, 104,101,110, 10, 10, 9, 9,119, 97,114,110,105,110,103, 40, 34, 70,117,110, 99,116,105,111,110,115, 32,119,105,116,104, 32,118, 97,114,105, 97, 98,108,101, 32, 97,114,103,117,109, 101,110,116,115, 32, 40, 96, 46, 46, 46, 39, 41, 32, 97,114, 101, 32,110,111,116, 32,115,117,112,112,111,114,116,101,100, 46, 32, 73,103,110,111,114,105,110,103, 32, 34, 46, 46,100, 46, 46, 97, 46, 46, 99, 41, 10, 9, 9,114,101,116,117,114, 110, 32,110,105,108, 10, 9,101,110,100, 10, 10, 10, 32,108, 111, 99, 97,108, 32,105, 61, 49, 10, 32,108,111, 99, 97,108, 32,108, 32, 61, 32,123,110, 61, 48,125, 10, 10, 32, 9, 97, 32, 61, 32,115,116,114,105,110,103, 46,103,115,117, 98, 40, 97, 44, 32, 34, 37,115, 42, 40, 91, 37, 40, 37, 41, 93, 41, 37,115, 42, 34, 44, 32, 34, 37, 49, 34, 41, 10, 9,108,111, 99, 97,108, 32,116, 44,115,116,114,105,112, 44,108, 97,115, 116, 32, 61, 32,115,116,114,105,112, 95,112, 97,114,115, 40, 115,116,114,115,117, 98, 40, 97, 44, 50, 44, 45, 50, 41, 41, 59, 10, 9,105,102, 32,115,116,114,105,112, 32,116,104,101, 110, 10, 9, 9, 45, 45,108,111, 99, 97,108, 32,110,115, 32, 61, 32,115,116,114,105,110,103, 46,115,117, 98, 40,115,116, 114,115,117, 98, 40, 97, 44, 49, 44, 45, 50, 41, 44, 32, 49, 44, 32, 45, 40,115,116,114,105,110,103, 46,108,101,110, 40, 108, 97,115,116, 41, 43, 49, 41, 41, 10, 9, 9,108,111, 99, 97,108, 32,110,115, 32, 61, 32,106,111,105,110, 40,116, 44, 32, 34, 44, 34, 44, 32, 49, 44, 32,108, 97,115,116, 45, 49, 41, 10, 10, 9, 9,110,115, 32, 61, 32, 34, 40, 34, 46, 46, 115,116,114,105,110,103, 46,103,115,117, 98, 40,110,115, 44, 32, 34, 37,115, 42, 44, 37,115, 42, 36, 34, 44, 32, 34, 34, 41, 46, 46, 39, 41, 39, 10, 9, 9, 45, 45,110,115, 32, 61, 32,115,116,114,105,112, 95,100,101,102, 97,117,108,116,115, 40,110,115, 41, 10, 10, 9, 9,108,111, 99, 97,108, 32,102, 32, 61, 32, 70,117,110, 99,116,105,111,110, 40,100, 44, 32, 110,115, 44, 32, 99, 41, 10, 9, 9,102,111,114, 32,105, 61, 49, 44,108, 97,115,116, 32,100,111, 10, 9, 9, 9,116, 91, 105, 93, 32, 61, 32,115,116,114,105,110,103, 46,103,115,117, 98, 40,116, 91,105, 93, 44, 32, 34, 61, 46, 42, 36, 34, 44, 32, 34, 34, 41, 10, 9, 9,101,110,100, 10, 9,101,110,100, 10, 10, 32,119,104,105,108,101, 32,116, 91,105, 93, 32,100, 111, 10, 32, 32,108, 46,110, 32, 61, 32,108, 46,110, 43, 49, 10, 32, 32,108, 91,108, 46,110, 93, 32, 61, 32, 68,101, 99, 108, 97,114, 97,116,105,111,110, 40,116, 91,105, 93, 44, 39, 118, 97,114, 39, 44,116,114,117,101, 41, 10, 32, 32,105, 32, 61, 32,105, 43, 49, 10, 32,101,110,100, 10, 32,108,111, 99, 97,108, 32,102, 32, 61, 32, 68,101, 99,108, 97,114, 97,116, 105,111,110, 40,100, 44, 39,102,117,110, 99, 39, 41, 10, 32, 102, 46, 97,114,103,115, 32, 61, 32,108, 10, 32,102, 46, 99, 111,110,115,116, 32, 61, 32, 99, 10, 32,114,101,116,117,114, 110, 32, 95, 70,117,110, 99,116,105,111,110, 40,102, 41, 10, 101,110,100, 10, 10,102,117,110, 99,116,105,111,110, 32,106, 111,105,110, 40,116, 44, 32,115,101,112, 44, 32,102,105,114, 115,116, 44, 32,108, 97,115,116, 41, 10, 10, 9,102,105,114, 115,116, 32, 61, 32,102,105,114,115,116, 32,111,114, 32, 49, 10, 9,108, 97,115,116, 32, 61, 32,108, 97,115,116, 32,111, 114, 32,116, 97, 98,108,101, 46,103,101,116,110, 40,116, 41, 10, 9,108,111, 99, 97,108, 32,108,115,101,112, 32, 61, 32, 34, 34, 10, 9,108,111, 99, 97,108, 32,114,101,116, 32, 61, 32, 34, 34, 10, 9,108,111, 99, 97,108, 32,108,111,111,112, 32, 61, 32,102, 97,108,115,101, 10, 9,102,111,114, 32,105, 32, 61, 32,102,105,114,115,116, 44,108, 97,115,116, 32,100, 111, 10, 10, 9, 9,114,101,116, 32, 61, 32,114,101,116, 46, 46,108,115,101,112, 46, 46,116, 91,105, 93, 10, 9, 9,108, 115,101,112, 32, 61, 32,115,101,112, 10, 9, 9,108,111,111, 112, 32, 61, 32,116,114,117,101, 10, 9,101,110,100, 10, 9, 105,102, 32,110,111,116, 32,108,111,111,112, 32,116,104,101, 110, 10, 9, 9,114,101,116,117,114,110, 32, 34, 34, 10, 9, 101,110,100, 10, 10, 9,114,101,116,117,114,110, 32,114,101, 116, 10,101,110,100, 10, 10,102,117,110, 99,116,105,111,110, 32,115,116,114,105,112, 95,112, 97,114,115, 40,115, 41, 10, 10, 9,108,111, 99, 97,108, 32,116, 32, 61, 32,115,112,108, 105,116, 95, 99, 95,116,111,107,101,110,115, 40,115, 44, 32, 39, 44, 39, 41, 10, 9,108,111, 99, 97,108, 32,115,116,114, 105,112, 32, 61, 32,102, 97,108,115,101, 10, 9,108,111, 99, 97,108, 32,108, 97,115,116, 10, 10, 9,102,111,114, 32,105, 61,116, 46,110, 44, 49, 44, 45, 49, 32,100,111, 10, 10, 9, 9,105,102, 32,110,111,116, 32,115,116,114,105,112, 32, 97, 110,100, 32,112, 97,114, 97,109, 95,111, 98,106,101, 99,116, 40,116, 91,105, 93, 41, 32,116,104,101,110, 10, 9, 9, 9, 108, 97,115,116, 32, 61, 32,105, 10, 9, 9, 9,115,116,114, 105,112, 32, 61, 32,116,114,117,101, 10, 9, 9,101,110,100, 10, 9, 9, 45, 45,105,102, 32,115,116,114,105,112, 32,116, 104,101,110, 10, 9, 9, 45, 45, 9,116, 91,105, 93, 32, 61, 32,115,116,114,105,110,103, 46,103,115,117, 98, 40,116, 91, 105, 93, 44, 32, 34, 61, 46, 42, 36, 34, 44, 32, 34, 34, 41, 10, 9, 9, 45, 45,101,110,100, 10, 9,101,110,100, 10, 10, 9,114,101,116,117,114,110, 32,116, 44,115,116,114,105,112, 44,108, 97,115,116, 10, 10,101,110,100, 10, 10,102,117,110, 99,116,105,111,110, 32,115,116,114,105,112, 95,100,101,102, 97,117,108,116,115, 40,115, 41, 10, 10, 9,115, 32, 61, 32, 115,116,114,105,110,103, 46,103,115,117, 98, 40,115, 44, 32, 34, 94, 37, 40, 34, 44, 32, 34, 34, 41, 10, 9,115, 32, 61, 32,115,116,114,105,110,103, 46,103,115,117, 98, 40,115, 44, 32, 34, 37, 41, 36, 34, 44, 32, 34, 34, 41, 10, 10, 9,108, 111, 99, 97,108, 32,116, 32, 61, 32,115,112,108,105,116, 95, 99, 95,116,111,107,101,110,115, 40,115, 44, 32, 34, 44, 34, 41, 10, 9,108,111, 99, 97,108, 32,115,101,112, 44, 32,114, 101,116, 32, 61, 32, 34, 34, 44, 34, 34, 10, 9,102,111,114, 32,105, 61, 49, 44,116, 46,110, 32,100,111, 10, 9, 9,116, 91,105, 93, 32, 61, 32,115,116,114,105,110,103, 46,103,115, 117, 98, 40,116, 91,105, 93, 44, 32, 34, 61, 46, 42, 36, 34, 44, 32, 34, 34, 41, 10, 9, 9,114,101,116, 32, 61, 32,114, 101,116, 46, 46,115,101,112, 46, 46,116, 91,105, 93, 10, 9, 9,115,101,112, 32, 61, 32, 34, 44, 34, 10, 9,101,110,100, 10, 10, 9,114,101,116,117,114,110, 32, 34, 40, 34, 46, 46, 114,101,116, 46, 46, 34, 41, 34, 10,101,110,100,32 }; tolua_dobuffer(tolua_S,(char*)B,sizeof(B),"tolua embedded: src/bin/lua/function.lua"); lua_settop(tolua_S, top); } /* end of embedded lua code */ { /* begin embedded lua code */ int top = lua_gettop(tolua_S); static unsigned char B[] = { 45, 45, 32,116,111,108,117, 97, 58, 32,111,112,101,114, 97, 116,111,114, 32, 99,108, 97,115,115, 10, 45, 45, 32, 87,114, 105,116,116,101,110, 32, 98,121, 32, 87, 97,108,100,101,109, 97,114, 32, 67,101,108,101,115, 10, 45, 45, 32, 84,101, 67, 71,114, 97,102, 47, 80, 85, 67, 45, 82,105,111, 10, 45, 45, 32, 74,117,108, 32, 49, 57, 57, 56, 10, 45, 45, 32, 36, 73, 100, 58, 32, 36, 10, 10, 45, 45, 32, 84,104,105,115, 32, 99, 111,100,101, 32,105,115, 32,102,114,101,101, 32,115,111,102, 116,119, 97,114,101, 59, 32,121,111,117, 32, 99, 97,110, 32, 114,101,100,105,115,116,114,105, 98,117,116,101, 32,105,116, 32, 97,110,100, 47,111,114, 32,109,111,100,105,102,121, 32, 105,116, 46, 10, 45, 45, 32, 84,104,101, 32,115,111,102,116, 119, 97,114,101, 32,112,114,111,118,105,100,101,100, 32,104, 101,114,101,117,110,100,101,114, 32,105,115, 32,111,110, 32, 97,110, 32, 34, 97,115, 32,105,115, 34, 32, 98, 97,115,105, 115, 44, 32, 97,110,100, 10, 45, 45, 32,116,104,101, 32, 97, 117,116,104,111,114, 32,104, 97,115, 32,110,111, 32,111, 98, 108,105,103, 97,116,105,111,110, 32,116,111, 32,112,114,111, 118,105,100,101, 32,109, 97,105,110,116,101,110, 97,110, 99, 101, 44, 32,115,117,112,112,111,114,116, 44, 32,117,112,100, 97,116,101,115, 44, 10, 45, 45, 32,101,110,104, 97,110, 99, 101,109,101,110,116,115, 44, 32,111,114, 32,109,111,100,105, 102,105, 99, 97,116,105,111,110,115, 46, 10, 10, 10, 45, 45, 32, 79,112,101,114, 97,116,111,114, 32, 99,108, 97,115,115, 10, 45, 45, 32, 82,101,112,114,101,115,101,110,116,115, 32, 97,110, 32,111,112,101,114, 97,116,111,114, 32,102,117,110, 99,116,105,111,110, 32,111,114, 32, 97, 32, 99,108, 97,115, 115, 32,111,112,101,114, 97,116,111,114, 32,109,101,116,104, 111,100, 46, 10, 45, 45, 32, 73,116, 32,115,116,111,114,101, 115, 32,116,104,101, 32,115, 97,109,101, 32,102,105,101,108, 100,115, 32, 97,115, 32,102,117,110, 99,116,105,111,110,115, 32,100,111, 32,112,108,117,115, 58, 10, 45, 45, 32, 32,107, 105,110,100, 32, 61, 32,115,101,116, 32,111,102, 32, 99,104, 97,114, 97, 99,116,101,114, 32,114,101,112,114,101,115,101, 110,116,105,110,103, 32,116,104,101, 32,111,112,101,114, 97, 116,111,114, 32, 40, 97,115, 32,105,116, 32, 97,112,112,101, 114,115, 32,105,110, 32, 67, 43, 43, 32, 99,111,100,101, 41, 10, 99,108, 97,115,115, 79,112,101,114, 97,116,111,114, 32, 61, 32,123, 10, 32,107,105,110,100, 32, 61, 32, 39, 39, 44, 10,125, 10, 99,108, 97,115,115, 79,112,101,114, 97,116,111, 114, 46, 95, 95,105,110,100,101,120, 32, 61, 32, 99,108, 97, 115,115, 79,112,101,114, 97,116,111,114, 10,115,101,116,109, 101,116, 97,116, 97, 98,108,101, 40, 99,108, 97,115,115, 79, 112,101,114, 97,116,111,114, 44, 99,108, 97,115,115, 70,117, 110, 99,116,105,111,110, 41, 10, 10, 45, 45, 32,116, 97, 98, 108,101, 32,116,111, 32,116,114, 97,110,115,102,111,114,109, 32,111,112,101,114, 97,116,111,114, 32,107,105,110,100, 32, 105,110,116,111, 32,116,104,101, 32, 97,112,112,114,111,112, 114,105, 97,116,101, 32,116, 97,103, 32,109,101,116,104,111, 100, 32,110, 97,109,101, 10, 95, 84, 77, 32, 61, 32,123, 91, 39, 43, 39, 93, 32, 61, 32, 39, 97,100,100, 39, 44, 10, 32, 32, 32, 32, 32, 32, 32, 91, 39, 45, 39, 93, 32, 61, 32, 39, 115,117, 98, 39, 44, 10, 32, 32, 32, 32, 32, 32, 32, 91, 39, 42, 39, 93, 32, 61, 32, 39,109,117,108, 39, 44, 10, 32, 32, 32, 32, 32, 32, 32, 91, 39, 47, 39, 93, 32, 61, 32, 39,100, 105,118, 39, 44, 10, 32, 32, 32, 32, 32, 32, 32, 91, 39, 60, 39, 93, 32, 61, 32, 39,108,116, 39, 44, 10, 32, 32, 32, 32, 32, 32, 32, 91, 39, 60, 61, 39, 93, 32, 61, 32, 39,108,101, 39, 44, 10, 32, 32, 32, 32, 32, 32, 32, 91, 39, 61, 61, 39, 93, 32, 61, 32, 39,101,113, 39, 44, 10, 32, 32, 32, 32, 32, 32, 32, 91, 39, 91, 93, 39, 93, 32, 61, 32, 39,103,101,116, 105, 39, 44, 10, 32, 32, 32, 32, 32, 32, 32, 91, 39, 38, 91, 93, 39, 93, 32, 61, 32, 39,115,101,116,105, 39, 44, 10, 32, 32, 32, 32, 32, 32, 32, 45, 45, 91, 39, 45, 62, 39, 93, 32, 61, 32, 39,102,108,101, 99,104,105,116, 97, 39, 44, 10, 32, 32, 32, 32, 32, 32,125, 10, 10, 10, 45, 45, 32, 80,114,105, 110,116, 32,109,101,116,104,111,100, 10,102,117,110, 99,116, 105,111,110, 32, 99,108, 97,115,115, 79,112,101,114, 97,116, 111,114, 58,112,114,105,110,116, 32, 40,105,100,101,110,116, 44, 99,108,111,115,101, 41, 10, 32,112,114,105,110,116, 40, 105,100,101,110,116, 46, 46, 34, 79,112,101,114, 97,116,111, 114,123, 34, 41, 10, 32,112,114,105,110,116, 40,105,100,101, 110,116, 46, 46, 34, 32,107,105,110,100, 32, 32, 61, 32, 39, 34, 46, 46,115,101,108,102, 46,107,105,110,100, 46, 46, 34, 39, 44, 34, 41, 10, 32,112,114,105,110,116, 40,105,100,101, 110,116, 46, 46, 34, 32,109,111,100, 32, 32, 61, 32, 39, 34, 46, 46,115,101,108,102, 46,109,111,100, 46, 46, 34, 39, 44, 34, 41, 10, 32,112,114,105,110,116, 40,105,100,101,110,116, 46, 46, 34, 32,116,121,112,101, 32, 61, 32, 39, 34, 46, 46, 115,101,108,102, 46,116,121,112,101, 46, 46, 34, 39, 44, 34, 41, 10, 32,112,114,105,110,116, 40,105,100,101,110,116, 46, 46, 34, 32,112,116,114, 32, 32, 61, 32, 39, 34, 46, 46,115, 101,108,102, 46,112,116,114, 46, 46, 34, 39, 44, 34, 41, 10, 32,112,114,105,110,116, 40,105,100,101,110,116, 46, 46, 34, 32,110, 97,109,101, 32, 61, 32, 39, 34, 46, 46,115,101,108, 102, 46,110, 97,109,101, 46, 46, 34, 39, 44, 34, 41, 10, 32, 112,114,105,110,116, 40,105,100,101,110,116, 46, 46, 34, 32, 99,111,110,115,116, 32, 61, 32, 39, 34, 46, 46,115,101,108, 102, 46, 99,111,110,115,116, 46, 46, 34, 39, 44, 34, 41, 10, 32,112,114,105,110,116, 40,105,100,101,110,116, 46, 46, 34, 32, 99,110, 97,109,101, 32, 61, 32, 39, 34, 46, 46,115,101, 108,102, 46, 99,110, 97,109,101, 46, 46, 34, 39, 44, 34, 41, 10, 32,112,114,105,110,116, 40,105,100,101,110,116, 46, 46, 34, 32,108,110, 97,109,101, 32, 61, 32, 39, 34, 46, 46,115, 101,108,102, 46,108,110, 97,109,101, 46, 46, 34, 39, 44, 34, 41, 10, 32,112,114,105,110,116, 40,105,100,101,110,116, 46, 46, 34, 32, 97,114,103,115, 32, 61, 32,123, 34, 41, 10, 32, 108,111, 99, 97,108, 32,105, 61, 49, 10, 32,119,104,105,108, 101, 32,115,101,108,102, 46, 97,114,103,115, 91,105, 93, 32, 100,111, 10, 32, 32,115,101,108,102, 46, 97,114,103,115, 91, 105, 93, 58,112,114,105,110,116, 40,105,100,101,110,116, 46, 46, 34, 32, 32, 34, 44, 34, 44, 34, 41, 10, 32, 32,105, 32, 61, 32,105, 43, 49, 10, 32,101,110,100, 10, 32,112,114,105, 110,116, 40,105,100,101,110,116, 46, 46, 34, 32,125, 34, 41, 10, 32,112,114,105,110,116, 40,105,100,101,110,116, 46, 46, 34,125, 34, 46, 46, 99,108,111,115,101, 41, 10,101,110,100, 10, 10,102,117,110, 99,116,105,111,110, 32, 99,108, 97,115, 115, 79,112,101,114, 97,116,111,114, 58,115,117,112, 99,111, 100,101, 95,116,109,112, 40, 41, 10, 10, 9,105,102, 32,110, 111,116, 32, 95, 84, 77, 91,115,101,108,102, 46,107,105,110, 100, 93, 32,116,104,101,110, 10, 9, 9,114,101,116,117,114, 110, 32, 99,108, 97,115,115, 70,117,110, 99,116,105,111,110, 46,115,117,112, 99,111,100,101, 40,115,101,108,102, 41, 10, 9,101,110,100, 10, 10, 9, 45, 45, 32,110,111, 32,111,118, 101,114,108,111, 97,100, 44, 32,110,111, 32,112, 97,114, 97, 109,101,116,101,114,115, 44, 32, 97,108,119, 97,121,115, 32, 105,110, 99,108, 97,115,115, 10, 9,111,117,116,112,117,116, 40, 34, 47, 42, 32,109,101,116,104,111,100, 58, 34, 44,115, 101,108,102, 46,110, 97,109,101, 44, 34, 32,111,102, 32, 99, 108, 97,115,115, 32, 34, 44,115,101,108,102, 58,105,110, 99, 108, 97,115,115, 40, 41, 44, 34, 32, 42, 47, 34, 41, 10, 10, 9,111,117,116,112,117,116, 40, 34, 35,105,102,110,100,101, 102, 32, 84, 79, 76, 85, 65, 95, 68, 73, 83, 65, 66, 76, 69, 95, 34, 46, 46,115,101,108,102, 46, 99,110, 97,109,101, 41, 10, 9,111,117,116,112,117,116, 40, 34, 92,110,115,116, 97, 116,105, 99, 32,105,110,116, 34, 44,115,101,108,102, 46, 99, 110, 97,109,101, 44, 34, 40,108,117, 97, 95, 83,116, 97,116, 101, 42, 32,116,111,108,117, 97, 95, 83, 41, 34, 41, 10, 10, 9,105,102, 32,111,118,101,114,108,111, 97,100, 32, 60, 32, 48, 32,116,104,101,110, 10, 9, 32,111,117,116,112,117,116, 40, 39, 35,105,102,110,100,101,102, 32, 84, 79, 76, 85, 65, 95, 82, 69, 76, 69, 65, 83, 69, 92,110, 39, 41, 10, 9,101, 110,100, 10, 9,111,117,116,112,117,116, 40, 39, 32,116,111, 108,117, 97, 95, 69,114,114,111,114, 32,116,111,108,117, 97, 95,101,114,114, 59, 39, 41, 10, 9,111,117,116,112,117,116, 40, 39, 32,105,102, 32, 40, 92,110, 39, 41, 10, 9, 45, 45, 32, 99,104,101, 99,107, 32,115,101,108,102, 10, 9,108,111, 99, 97,108, 32,105,115, 95,102,117,110, 99, 32, 61, 32,103, 101,116, 95,105,115, 95,102,117,110, 99,116,105,111,110, 40, 115,101,108,102, 46,112, 97,114,101,110,116, 46,116,121,112, 101, 41, 10, 9,111,117,116,112,117,116, 40, 39, 32, 32, 32, 32, 32, 33, 39, 46, 46,105,115, 95,102,117,110, 99, 46, 46, 39, 40,116,111,108,117, 97, 95, 83, 44, 49, 44, 34, 39, 46, 46,115,101,108,102, 46,112, 97,114,101,110,116, 46,116,121, 112,101, 46, 46, 39, 34, 44, 48, 44, 38,116,111,108,117, 97, 95,101,114,114, 41, 32,124,124, 92,110, 39, 41, 10, 9,111, 117,116,112,117,116, 40, 39, 32, 32, 32, 32, 32, 33,116,111, 108,117, 97, 95,105,115,110,111,111, 98,106, 40,116,111,108, 117, 97, 95, 83, 44, 50, 44, 38,116,111,108,117, 97, 95,101, 114,114, 41, 92,110, 32, 41, 39, 41, 10, 9,111,117,116,112, 117,116, 40, 39, 32, 32,103,111,116,111, 32,116,111,108,117, 97, 95,108,101,114,114,111,114, 59, 39, 41, 10, 10, 9,111, 117,116,112,117,116, 40, 39, 32,101,108,115,101, 92,110, 39, 41, 10, 9,111,117,116,112,117,116, 40, 39, 35,101,110,100, 105,102, 92,110, 39, 41, 32, 45, 45, 32,116,111,108,117, 97, 95,114,101,108,101, 97,115,101, 10, 9,111,117,116,112,117, 116, 40, 39, 32,123, 39, 41, 10, 10, 9, 45, 45, 32,100,101, 99,108, 97,114,101, 32,115,101,108,102, 10, 9,111,117,116, 112,117,116, 40, 39, 32, 39, 44,115,101,108,102, 46, 99,111, 110,115,116, 44,115,101,108,102, 46,112, 97,114,101,110,116, 46,116,121,112,101, 44, 39, 42, 39, 44, 39,115,101,108,102, 32, 61, 32, 39, 41, 10, 9,111,117,116,112,117,116, 40, 39, 40, 39, 44,115,101,108,102, 46, 99,111,110,115,116, 44,115, 101,108,102, 46,112, 97,114,101,110,116, 46,116,121,112,101, 44, 39, 42, 41, 32, 39, 41, 10, 9,108,111, 99, 97,108, 32, 116,111, 95,102,117,110, 99, 32, 61, 32,103,101,116, 95,116, 111, 95,102,117,110, 99, 40,115,101,108,102, 46,112, 97,114, 101,110,116, 46,116,121,112,101, 41, 10, 9,111,117,116,112, 117,116, 40,116,111, 95,102,117,110, 99, 44, 39, 40,116,111, 108,117, 97, 95, 83, 44, 49, 44, 48, 41, 59, 39, 41, 10, 10, 9, 45, 45, 32, 99,104,101, 99,107, 32,115,101,108,102, 10, 9,111,117,116,112,117,116, 40, 39, 35,105,102,110,100,101, 102, 32, 84, 79, 76, 85, 65, 95, 82, 69, 76, 69, 65, 83, 69, 92,110, 39, 41, 10, 9,111,117,116,112,117,116, 40, 39, 32, 32,105,102, 32, 40, 33,115,101,108,102, 41, 32,116,111,108, 117, 97, 95,101,114,114,111,114, 40,116,111,108,117, 97, 95, 83, 44, 34, 39, 46, 46,111,117,116,112,117,116, 95,101,114, 114,111,114, 95,104,111,111,107, 40, 34,105,110,118, 97,108, 105,100, 32, 92, 39,115,101,108,102, 92, 39, 32,105,110, 32, 102,117,110, 99,116,105,111,110, 32, 92, 39, 37,115, 92, 39, 34, 44, 32,115,101,108,102, 46,110, 97,109,101, 41, 46, 46, 39, 34, 44, 78, 85, 76, 76, 41, 59, 39, 41, 59, 10, 9,111, 117,116,112,117,116, 40, 39, 35,101,110,100,105,102, 92,110, 39, 41, 10, 10, 9, 45, 45, 32, 99, 97,115,116, 32,115,101, 108,102, 10, 9,111,117,116,112,117,116, 40, 39, 32, 32, 39, 44,115,101,108,102, 46,109,111,100, 44,115,101,108,102, 46, 116,121,112,101, 44,115,101,108,102, 46,112,116,114, 44, 39, 116,111,108,117, 97, 95,114,101,116, 32, 61, 32, 39, 41, 10, 9,111,117,116,112,117,116, 40, 39, 40, 39, 44,115,101,108, 102, 46,109,111,100, 44,115,101,108,102, 46,116,121,112,101, 44,115,101,108,102, 46,112,116,114, 44, 39, 41, 40, 42,115, 101,108,102, 41, 59, 39, 41, 10, 10, 9, 45, 45, 32,114,101, 116,117,114,110, 32,118, 97,108,117,101, 10, 9,108,111, 99, 97,108, 32,116, 44, 99,116, 32, 61, 32,105,115, 98, 97,115, 105, 99, 40,115,101,108,102, 46,116,121,112,101, 41, 10, 9, 105,102, 32,116, 32,116,104,101,110, 10, 9, 9,111,117,116, 112,117,116, 40, 39, 32, 32, 32,116,111,108,117, 97, 95,112, 117,115,104, 39, 46, 46,116, 46, 46, 39, 40,116,111,108,117, 97, 95, 83, 44, 40, 39, 44, 99,116, 44, 39, 41,116,111,108, 117, 97, 95,114,101,116, 41, 59, 39, 41, 10, 9,101,108,115, 101, 10, 9, 9,116, 32, 61, 32,115,101,108,102, 46,116,121, 112,101, 10, 9, 9,108,111, 99, 97,108, 32,112,117,115,104, 95,102,117,110, 99, 32, 61, 32,103,101,116, 95,112,117,115, 104, 95,102,117,110, 99,116,105,111,110, 40,116, 41, 10, 9, 9,110,101,119, 95,116, 32, 61, 32,115,116,114,105,110,103, 46,103,115,117, 98, 40,116, 44, 32, 34, 99,111,110,115,116, 37,115, 43, 34, 44, 32, 34, 34, 41, 10, 9, 9,105,102, 32, 115,101,108,102, 46,112,116,114, 32, 61, 61, 32, 39, 39, 32, 116,104,101,110, 10, 9, 9, 9,111,117,116,112,117,116, 40, 39, 32, 32, 32,123, 39, 41, 10, 9, 9, 9,111,117,116,112, 117,116, 40, 39, 35,105,102,100,101,102, 32, 95, 95, 99,112, 108,117,115,112,108,117,115, 92,110, 39, 41, 10, 9, 9, 9, 111,117,116,112,117,116, 40, 39, 32, 32, 32, 32,118,111,105, 100, 42, 32,116,111,108,117, 97, 95,111, 98,106, 32, 61, 32, 77,116,111,108,117, 97, 95,110,101,119, 40, 40, 39, 44,110, 101,119, 95,116, 44, 39, 41, 40,116,111,108,117, 97, 95,114, 101,116, 41, 41, 59, 39, 41, 10, 9, 9, 9,111,117,116,112, 117,116, 40, 39, 32, 32, 32, 32, 39, 44,112,117,115,104, 95, 102,117,110, 99, 44, 39, 40,116,111,108,117, 97, 95, 83, 44, 116,111,108,117, 97, 95,111, 98,106, 44, 34, 39, 44,116, 44, 39, 34, 41, 59, 39, 41, 10, 9, 9, 9,111,117,116,112,117, 116, 40, 39, 32, 32, 32, 32,116,111,108,117, 97, 95,114,101, 103,105,115,116,101,114, 95,103, 99, 40,116,111,108,117, 97, 95, 83, 44,108,117, 97, 95,103,101,116,116,111,112, 40,116, 111,108,117, 97, 95, 83, 41, 41, 59, 39, 41, 10, 9, 9, 9, 111,117,116,112,117,116, 40, 39, 35,101,108,115,101, 92,110, 39, 41, 10, 9, 9, 9,111,117,116,112,117,116, 40, 39, 32, 32, 32, 32,118,111,105,100, 42, 32,116,111,108,117, 97, 95, 111, 98,106, 32, 61, 32,116,111,108,117, 97, 95, 99,111,112, 121, 40,116,111,108,117, 97, 95, 83, 44, 40,118,111,105,100, 42, 41, 38,116,111,108,117, 97, 95,114,101,116, 44,115,105, 122,101,111,102, 40, 39, 44,116, 44, 39, 41, 41, 59, 39, 41, 10, 9, 9, 9,111,117,116,112,117,116, 40, 39, 32, 32, 32, 32, 39, 44,112,117,115,104, 95,102,117,110, 99, 44, 39, 40, 116,111,108,117, 97, 95, 83, 44,116,111,108,117, 97, 95,111, 98,106, 44, 34, 39, 44,116, 44, 39, 34, 41, 59, 39, 41, 10, 9, 9, 9,111,117,116,112,117,116, 40, 39, 32, 32, 32, 32, 116,111,108,117, 97, 95,114,101,103,105,115,116,101,114, 95, 103, 99, 40,116,111,108,117, 97, 95, 83, 44,108,117, 97, 95, 103,101,116,116,111,112, 40,116,111,108,117, 97, 95, 83, 41, 41, 59, 39, 41, 10, 9, 9, 9,111,117,116,112,117,116, 40, 39, 35,101,110,100,105,102, 92,110, 39, 41, 10, 9, 9, 9, 111,117,116,112,117,116, 40, 39, 32, 32, 32,125, 39, 41, 10, 9, 9,101,108,115,101,105,102, 32,115,101,108,102, 46,112, 116,114, 32, 61, 61, 32, 39, 38, 39, 32,116,104,101,110, 10, 9, 9, 9,111,117,116,112,117,116, 40, 39, 32, 32, 32, 39, 44,112,117,115,104, 95,102,117,110, 99, 44, 39, 40,116,111, 108,117, 97, 95, 83, 44, 40,118,111,105,100, 42, 41, 38,116, 111,108,117, 97, 95,114,101,116, 44, 34, 39, 44,116, 44, 39, 34, 41, 59, 39, 41, 10, 9, 9,101,108,115,101, 10, 9, 9, 9,105,102, 32,108,111, 99, 97,108, 95, 99,111,110,115,116, 114,117, 99,116,111,114, 32,116,104,101,110, 10, 9, 9, 9, 9,111,117,116,112,117,116, 40, 39, 32, 32, 32, 39, 44,112, 117,115,104, 95,102,117,110, 99, 44, 39, 40,116,111,108,117, 97, 95, 83, 44, 40,118,111,105,100, 32, 42, 41,116,111,108, 117, 97, 95,114,101,116, 44, 34, 39, 44,116, 44, 39, 34, 41, 59, 39, 41, 10, 9, 9, 9, 9,111,117,116,112,117,116, 40, 39, 32, 32, 32, 32,116,111,108,117, 97, 95,114,101,103,105, 115,116,101,114, 95,103, 99, 40,116,111,108,117, 97, 95, 83, 44,108,117, 97, 95,103,101,116,116,111,112, 40,116,111,108, 117, 97, 95, 83, 41, 41, 59, 39, 41, 10, 9, 9, 9,101,108, 115,101, 10, 9, 9, 9, 9,111,117,116,112,117,116, 40, 39, 32, 32, 32, 39, 44,112,117,115,104, 95,102,117,110, 99, 44, 39, 40,116,111,108,117, 97, 95, 83, 44, 40,118,111,105,100, 42, 41,116,111,108,117, 97, 95,114,101,116, 44, 34, 39, 44, 116, 44, 39, 34, 41, 59, 39, 41, 10, 9, 9, 9,101,110,100, 10, 9, 9,101,110,100, 10, 9,101,110,100, 10, 10, 9,111, 117,116,112,117,116, 40, 39, 32, 32,125, 39, 41, 10, 9,111, 117,116,112,117,116, 40, 39, 32,114,101,116,117,114,110, 32, 49, 59, 39, 41, 10, 10, 9,111,117,116,112,117,116, 40, 39, 35,105,102,110,100,101,102, 32, 84, 79, 76, 85, 65, 95, 82, 69, 76, 69, 65, 83, 69, 92,110, 39, 41, 10, 9,111,117,116, 112,117,116, 40, 39,116,111,108,117, 97, 95,108,101,114,114, 111,114, 58, 92,110, 39, 41, 10, 9,111,117,116,112,117,116, 40, 39, 32,116,111,108,117, 97, 95,101,114,114,111,114, 40, 116,111,108,117, 97, 95, 83, 44, 34, 39, 46, 46,111,117,116, 112,117,116, 95,101,114,114,111,114, 95,104,111,111,107, 40, 34, 35,102,101,114,114,111,114, 32,105,110, 32,102,117,110, 99,116,105,111,110, 32, 92, 39, 37,115, 92, 39, 46, 34, 44, 32,115,101,108,102, 46,108,110, 97,109,101, 41, 46, 46, 39, 34, 44, 38,116,111,108,117, 97, 95,101,114,114, 41, 59, 39, 41, 10, 9,111,117,116,112,117,116, 40, 39, 32,114,101,116, 117,114,110, 32, 48, 59, 39, 41, 10, 9,111,117,116,112,117, 116, 40, 39, 35,101,110,100,105,102, 92,110, 39, 41, 10, 10, 10, 9,111,117,116,112,117,116, 40, 39,125, 39, 41, 10, 9, 111,117,116,112,117,116, 40, 39, 35,101,110,100,105,102, 32, 47, 47, 35,105,102,110,100,101,102, 32, 84, 79, 76, 85, 65, 95, 68, 73, 83, 65, 66, 76, 69, 92,110, 39, 41, 10, 9,111, 117,116,112,117,116, 40, 39, 92,110, 39, 41, 10,101,110,100, 10, 10, 45, 45, 32, 73,110,116,101,114,110, 97,108, 32, 99, 111,110,115,116,114,117, 99,116,111,114, 10,102,117,110, 99, 116,105,111,110, 32, 95, 79,112,101,114, 97,116,111,114, 32, 40,116, 41, 10, 32,115,101,116,109,101,116, 97,116, 97, 98, 108,101, 40,116, 44, 99,108, 97,115,115, 79,112,101,114, 97, 116,111,114, 41, 10, 10, 32,105,102, 32,116, 46, 99,111,110, 115,116, 32,126, 61, 32, 39, 99,111,110,115,116, 39, 32, 97, 110,100, 32,116, 46, 99,111,110,115,116, 32,126, 61, 32, 39, 39, 32,116,104,101,110, 10, 32, 32,101,114,114,111,114, 40, 34, 35,105,110,118, 97,108,105,100, 32, 39, 99,111,110,115, 116, 39, 32,115,112,101, 99,105,102,105, 99, 97,116,105,111, 110, 34, 41, 10, 32,101,110,100, 10, 10, 32, 97,112,112,101, 110,100, 40,116, 41, 10, 32,105,102, 32,110,111,116, 32,116, 58,105,110, 99,108, 97,115,115, 40, 41, 32,116,104,101,110, 10, 32, 32,101,114,114,111,114, 40, 34, 35,111,112,101,114, 97,116,111,114, 32, 99, 97,110, 32,111,110,108,121, 32, 98, 101, 32,100,101,102,105,110,101,100, 32, 97,115, 32, 99,108, 97,115,115, 32,109,101,109, 98,101,114, 34, 41, 10, 32,101, 110,100, 10, 10, 32, 45, 45,116, 46,110, 97,109,101, 32, 61, 32,116, 46,110, 97,109,101, 32, 46, 46, 32, 34, 95, 34, 32, 46, 46, 32, 40, 95, 84, 77, 91,116, 46,107,105,110,100, 93, 32,111,114, 32,116, 46,107,105,110,100, 41, 10, 32,116, 46, 99,110, 97,109,101, 32, 61, 32,116, 58, 99,102,117,110, 99, 110, 97,109,101, 40, 34,116,111,108,117, 97, 34, 41, 46, 46, 116, 58,111,118,101,114,108,111, 97,100, 40,116, 41, 10, 32, 116, 46,110, 97,109,101, 32, 61, 32, 34,111,112,101,114, 97, 116,111,114, 34, 32, 46, 46, 32,116, 46,107,105,110,100, 32, 32, 45, 45, 32,115,101,116, 32, 97,112,112,114,111,112,114, 105, 97,116,101, 32, 99, 97,108,108,105,110,103, 32,110, 97, 109,101, 10, 32,114,101,116,117,114,110, 32,116, 10,101,110, 100, 10, 10, 45, 45, 32, 67,111,110,115,116,114,117, 99,116, 111,114, 10,102,117,110, 99,116,105,111,110, 32, 79,112,101, 114, 97,116,111,114, 32, 40,100, 44,107, 44, 97, 44, 99, 41, 10, 10, 9,108,111, 99, 97,108, 32,111,112, 95,107, 32, 61, 32,115,116,114,105,110,103, 46,103,115,117, 98, 40,107, 44, 32, 34, 94, 37,115, 42, 34, 44, 32, 34, 34, 41, 10, 9,111, 112, 95,107, 32, 61, 32,115,116,114,105,110,103, 46,103,115, 117, 98, 40,107, 44, 32, 34, 37,115, 42, 36, 34, 44, 32, 34, 34, 41, 10, 9, 45, 45,105,102, 32,115,116,114,105,110,103, 46,102,105,110,100, 40,107, 44, 32, 34, 94, 91, 37,119, 95, 58, 37,100, 60, 62, 37, 42, 37, 38, 93, 43, 36, 34, 41, 32, 116,104,101,110, 10, 9,105,102, 32,100, 32, 61, 61, 32, 34, 111,112,101,114, 97,116,111,114, 34, 32, 97,110,100, 32,107, 32,126, 61, 32, 39, 39, 32,116,104,101,110, 10, 10, 9, 9, 100, 32, 61, 32,107, 46, 46, 34, 32,111,112,101,114, 97,116, 111,114, 34, 10, 9,101,108,115,101,105,102, 32,110,111,116, 32, 95, 84, 77, 91,111,112, 95,107, 93, 32,116,104,101,110, 10, 10, 9, 9,105,102, 32,102,108, 97,103,115, 91, 39, 87, 39, 93, 32,116,104,101,110, 10, 9, 9, 9,101,114,114,111, 114, 40, 34,116,111,108,117, 97, 58, 32,110,111, 32,115,117, 112,112,111,114,116, 32,102,111,114, 32,111,112,101,114, 97, 116,111,114, 34, 32, 46, 46, 32,102, 46,107,105,110,100, 41, 10, 9, 9,101,108,115,101, 10, 9, 9, 9,119, 97,114,110, 105,110,103, 40, 34, 78,111, 32,115,117,112,112,111,114,116, 32,102,111,114, 32,111,112,101,114, 97,116,111,114, 32, 34, 46, 46,111,112, 95,107, 46, 46, 34, 44, 32,105,103,110,111, 114,105,110,103, 34, 41, 10, 9, 9, 9,114,101,116,117,114, 110, 32,110,105,108, 10, 9, 9,101,110,100, 10, 9,101,110, 100, 10, 10, 9,108,111, 99, 97,108, 32,114,101,102, 32, 61, 32, 39, 39, 10, 32,108,111, 99, 97,108, 32,116, 32, 61, 32, 115,112,108,105,116, 95, 99, 95,116,111,107,101,110,115, 40, 115,116,114,115,117, 98, 40, 97, 44, 50, 44,115,116,114,108, 101,110, 40, 97, 41, 45, 49, 41, 44, 39, 44, 39, 41, 32, 45, 45, 32,101,108,105,109,105,110, 97,116,101, 32, 98,114, 97, 99,101,115, 10, 32,108,111, 99, 97,108, 32,105, 61, 49, 10, 32,108,111, 99, 97,108, 32,108, 32, 61, 32,123,110, 61, 48, 125, 10, 32,119,104,105,108,101, 32,116, 91,105, 93, 32,100, 111, 10, 32, 32,108, 46,110, 32, 61, 32,108, 46,110, 43, 49, 10, 32, 32,108, 91,108, 46,110, 93, 32, 61, 32, 68,101, 99, 108, 97,114, 97,116,105,111,110, 40,116, 91,105, 93, 44, 39, 118, 97,114, 39, 41, 10, 32, 32,105, 32, 61, 32,105, 43, 49, 10, 32,101,110,100, 10, 32,105,102, 32,107, 32, 61, 61, 32, 39, 91, 93, 39, 32,116,104,101,110, 10, 9, 32,108,111, 99, 97,108, 32, 95, 10, 9, 32, 95, 44, 32, 95, 44, 32,114,101, 102, 32, 61, 32,115,116,114,102,105,110,100, 40,100, 44, 39, 40, 38, 41, 39, 41, 10, 32, 32,100, 32, 61, 32,103,115,117, 98, 40,100, 44, 39, 38, 39, 44, 39, 39, 41, 10, 32,101,108, 115,101,105,102, 32,107, 61, 61, 39, 38, 91, 93, 39, 32,116, 104,101,110, 10, 32, 32,108, 46,110, 32, 61, 32,108, 46,110, 43, 49, 10, 32, 32,108, 91,108, 46,110, 93, 32, 61, 32, 68, 101, 99,108, 97,114, 97,116,105,111,110, 40,100, 44, 39,118, 97,114, 39, 41, 10, 32, 32,108, 91,108, 46,110, 93, 46,110, 97,109,101, 32, 61, 32, 39,116,111,108,117, 97, 95,118, 97, 108,117,101, 39, 10, 32,101,110,100, 10, 32,108,111, 99, 97, 108, 32,102, 32, 61, 32, 68,101, 99,108, 97,114, 97,116,105, 111,110, 40,100, 44, 39,102,117,110, 99, 39, 41, 10, 32,105, 102, 32,107, 32, 61, 61, 32, 39, 91, 93, 39, 32, 97,110,100, 32, 40,108, 91, 49, 93, 61, 61,110,105,108, 32,111,114, 32, 105,115, 98, 97,115,105, 99, 40,108, 91, 49, 93, 46,116,121, 112,101, 41,126, 61, 39,110,117,109, 98,101,114, 39, 41, 32, 116,104,101,110, 10, 32, 32,101,114,114,111,114, 40, 39,111, 112,101,114, 97,116,111,114, 91, 93, 32, 99, 97,110, 32,111, 110,108,121, 32, 98,101, 32,100,101,102,105,110,101,100, 32, 102,111,114, 32,110,117,109,101,114,105, 99, 32,105,110,100, 101,120, 46, 39, 41, 10, 32,101,110,100, 10, 32,102, 46, 97, 114,103,115, 32, 61, 32,108, 10, 32,102, 46, 99,111,110,115, 116, 32, 61, 32, 99, 10, 32,102, 46,107,105,110,100, 32, 61, 32,111,112, 95,107, 10, 32,102, 46,108,110, 97,109,101, 32, 61, 32, 34, 46, 34, 46, 46, 40, 95, 84, 77, 91,102, 46,107, 105,110,100, 93, 32,111,114, 32,102, 46,107,105,110,100, 41, 10, 32,105,102, 32,110,111,116, 32, 95, 84, 77, 91,102, 46, 107,105,110,100, 93, 32,116,104,101,110, 10, 32, 9,102, 46, 99, 97,115,116, 95,111,112,101,114, 97,116,111,114, 32, 61, 32,116,114,117,101, 10, 32,101,110,100, 10, 32,105,102, 32, 102, 46,107,105,110,100, 32, 61, 61, 32, 39, 91, 93, 39, 32, 97,110,100, 32,114,101,102, 61, 61, 39, 38, 39, 32, 97,110, 100, 32,102, 46, 99,111,110,115,116,126, 61, 39, 99,111,110, 115,116, 39, 32,116,104,101,110, 10, 32, 32, 79,112,101,114, 97,116,111,114, 40,100, 44, 39, 38, 39, 46, 46,107, 44, 97, 44, 99, 41, 32, 9, 45, 45, 32, 99,114,101, 97,116,101, 32, 99,111,114,114,101,115,112,111,100,105,110,103, 32,115,101, 116, 32,111,112,101,114, 97,116,111,114, 10, 32,101,110,100, 10, 32,114,101,116,117,114,110, 32, 95, 79,112,101,114, 97, 116,111,114, 40,102, 41, 10,101,110,100,32 }; tolua_dobuffer(tolua_S,(char*)B,sizeof(B),"tolua embedded: src/bin/lua/operator.lua"); lua_settop(tolua_S, top); } /* end of embedded lua code */ { /* begin embedded lua code */ int top = lua_gettop(tolua_S); static unsigned char B[] = { 10, 95,103,108,111, 98, 97,108, 95,116,101,109,112,108, 97, 116,101,115, 32, 61, 32,123,125, 10, 10, 99,108, 97,115,115, 84,101,109,112,108, 97,116,101, 67,108, 97,115,115, 32, 61, 32,123, 10, 10, 9,110, 97,109,101, 32, 61, 32, 39, 39, 44, 10, 9, 98,111,100,121, 32, 61, 32, 39, 39, 44, 10, 9,112, 97,114,101,110,116,115, 32, 61, 32,123,125, 44, 10, 9, 97, 114,103,115, 32, 61, 32,123,125, 44, 32, 45, 45, 32,116,104, 101, 32,116,101,109,112,108, 97,116,101, 32, 97,114,103,117, 109,101,110,116,115, 10,125, 10, 10, 99,108, 97,115,115, 84, 101,109,112,108, 97,116,101, 67,108, 97,115,115, 46, 95, 95, 105,110,100,101,120, 32, 61, 32, 99,108, 97,115,115, 84,101, 109,112,108, 97,116,101, 67,108, 97,115,115, 10, 10, 10,102, 117,110, 99,116,105,111,110, 32, 99,108, 97,115,115, 84,101, 109,112,108, 97,116,101, 67,108, 97,115,115, 58,116,104,114, 111,119, 40,116,121,112,101,115, 44, 32,108,111, 99, 97,108, 95,115, 99,111,112,101, 41, 10, 10, 9, 45, 45,105,102, 32, 116, 97, 98,108,101, 46,103,101,116,110, 40,116,121,112,101, 115, 41, 32,126, 61, 32,116, 97, 98,108,101, 46,103,101,116, 110, 40,115,101,108,102, 46, 97,114,103,115, 41, 32,116,104, 101,110, 10, 9, 45, 45, 9,101,114,114,111,114, 40, 34, 35, 105,110,118, 97,108,105,100, 32,112, 97,114, 97,109,101,116, 101,114, 32, 99,111,117,110,116, 34, 41, 10, 9, 45, 45,101, 110,100, 10, 10, 9, 45, 45, 32,114,101,112,108, 97, 99,101, 10, 9,102,111,114, 32,105, 32, 61, 49, 32, 44, 32,116,121, 112,101,115, 46,110, 32,100,111, 10, 10, 9, 9,108,111, 99, 97,108, 32, 73,108, 32, 61, 32,115,112,108,105,116, 95, 99, 95,116,111,107,101,110,115, 40,116,121,112,101,115, 91,105, 93, 44, 32, 34, 32, 34, 41, 10, 9, 9,105,102, 32,116, 97, 98,108,101, 46,103,101,116,110, 40, 73,108, 41, 32,126, 61, 32,116, 97, 98,108,101, 46,103,101,116,110, 40,115,101,108, 102, 46, 97,114,103,115, 41, 32,116,104,101,110, 10, 9, 9, 9,101,114,114,111,114, 40, 34, 35,105,110,118, 97,108,105, 100, 32,112, 97,114, 97,109,101,116,101,114, 32, 99,111,117, 110,116, 32,102,111,114, 32, 34, 46, 46,116,121,112,101,115, 91,105, 93, 41, 10, 9, 9,101,110,100, 10, 9, 9,108,111, 99, 97,108, 32, 98, 73, 32, 61, 32,115,101,108,102, 46, 98, 111,100,121, 10, 9, 9,108,111, 99, 97,108, 32,112, 73, 32, 61, 32,123,125, 10, 9, 9,102,111,114, 32,106, 32, 61, 32, 49, 44,115,101,108,102, 46, 97,114,103,115, 46,110, 32,100, 111, 10, 9, 9, 9, 45, 45, 84,108, 91,106, 93, 32, 61, 32, 102,105,110,100,116,121,112,101, 40, 84,108, 91,106, 93, 41, 32,111,114, 32, 84,108, 91,106, 93, 10, 9, 9, 9, 98, 73, 32, 61, 32,115,116,114,105,110,103, 46,103,115,117, 98, 40, 98, 73, 44, 32, 34, 40, 91, 94, 95, 37,119, 93, 41, 34, 46, 46,115,101,108,102, 46, 97,114,103,115, 91,106, 93, 46, 46, 34, 40, 91, 94, 95, 37,119, 93, 41, 34, 44, 32, 34, 37, 49, 34, 46, 46, 73,108, 91,106, 93, 46, 46, 34, 37, 50, 34, 41, 10, 9, 9, 9,105,102, 32,115,101,108,102, 46,112, 97,114, 101,110,116,115, 32,116,104,101,110, 10, 9, 9, 9, 9,102, 111,114, 32,105, 61, 49, 44,116, 97, 98,108,101, 46,103,101, 116,110, 40,115,101,108,102, 46,112, 97,114,101,110,116,115, 41, 32,100,111, 10, 9, 9, 9, 9, 9,112, 73, 91,105, 93, 32, 61, 32,115,116,114,105,110,103, 46,103,115,117, 98, 40, 115,101,108,102, 46,112, 97,114,101,110,116,115, 91,105, 93, 44, 32, 34, 40, 91, 94, 95, 37,119, 93, 63, 41, 34, 46, 46, 115,101,108,102, 46, 97,114,103,115, 91,106, 93, 46, 46, 34, 40, 91, 94, 95, 37,119, 93, 63, 41, 34, 44, 32, 34, 37, 49, 34, 46, 46, 73,108, 91,106, 93, 46, 46, 34, 37, 50, 34, 41, 10, 9, 9, 9, 9,101,110,100, 10, 9, 9, 9,101,110,100, 10, 9, 9,101,110,100, 10, 9, 9, 45, 45,108,111, 99, 97, 108, 32, 97,112,112,101,110,100, 32, 61, 32, 34, 60, 34, 46, 46,115,116,114,105,110,103, 46,103,115,117, 98, 40,116,121, 112,101,115, 91,105, 93, 44, 32, 34, 37,115, 43, 34, 44, 32, 34, 44, 34, 41, 46, 46, 34, 62, 34, 10, 9, 9,108,111, 99, 97,108, 32, 97,112,112,101,110,100, 32, 61, 32, 34, 60, 34, 46, 46, 99,111,110, 99, 97,116, 40, 73,108, 44, 32, 49, 44, 32,116, 97, 98,108,101, 46,103,101,116,110, 40, 73,108, 41, 44, 32, 34, 44, 34, 41, 46, 46, 34, 62, 34, 10, 9, 9, 97, 112,112,101,110,100, 32, 61, 32,115,116,114,105,110,103, 46, 103,115,117, 98, 40, 97,112,112,101,110,100, 44, 32, 34, 37, 115, 42, 44, 37,115, 42, 34, 44, 32, 34, 44, 34, 41, 10, 9, 9, 97,112,112,101,110,100, 32, 61, 32,115,116,114,105,110, 103, 46,103,115,117, 98, 40, 97,112,112,101,110,100, 44, 32, 34, 62, 62, 34, 44, 32, 34, 62, 32, 62, 34, 41, 10, 9, 9, 102,111,114, 32,105, 61, 49, 44,116, 97, 98,108,101, 46,103, 101,116,110, 40,112, 73, 41, 32,100,111, 10, 9, 9, 9, 45, 45,112, 73, 91,105, 93, 32, 61, 32,115,116,114,105,110,103, 46,103,115,117, 98, 40,112, 73, 91,105, 93, 44, 32, 34, 62, 62, 34, 44, 32, 34, 62, 32, 62, 34, 41, 10, 9, 9, 9,112, 73, 91,105, 93, 32, 61, 32,114,101,115,111,108,118,101, 95, 116,101,109,112,108, 97,116,101, 95,116,121,112,101,115, 40, 112, 73, 91,105, 93, 41, 10, 9, 9,101,110,100, 10, 9, 9, 98, 73, 32, 61, 32,115,116,114,105,110,103, 46,103,115,117, 98, 40, 98, 73, 44, 32, 34, 62, 62, 34, 44, 32, 34, 62, 32, 62, 34, 41, 10, 9, 9,108,111, 99, 97,108, 32,110, 32, 61, 32,115,101,108,102, 46,110, 97,109,101, 10, 9, 9,105,102, 32,108,111, 99, 97,108, 95,115, 99,111,112,101, 32,116,104, 101,110, 10, 9, 9, 9,110, 32, 61, 32,115,101,108,102, 46, 108,111, 99, 97,108, 95,110, 97,109,101, 10, 9, 9,101,110, 100, 10, 10, 9, 9, 67,108, 97,115,115, 40,110, 46, 46, 97, 112,112,101,110,100, 44, 32,112, 73, 44, 32, 98, 73, 41, 10, 9,101,110,100, 10,101,110,100, 10, 10, 10,102,117,110, 99, 116,105,111,110, 32, 84,101,109,112,108, 97,116,101, 67,108, 97,115,115, 40,110, 97,109,101, 44, 32,112, 97,114,101,110, 116,115, 44, 32, 98,111,100,121, 44, 32,112, 97,114, 97,109, 101,116,101,114,115, 41, 10, 10, 9,108,111, 99, 97,108, 32, 111, 32, 61, 32,123, 10, 9, 10, 9, 9,112, 97,114,101,110, 116,115, 32, 61, 32,112, 97,114,101,110,116,115, 44, 10, 9, 9, 98,111,100,121, 32, 61, 32, 98,111,100,121, 44, 10, 9, 9, 97,114,103,115, 32, 61, 32,112, 97,114, 97,109,101,116, 101,114,115, 44, 10, 9,125, 10, 9, 10, 9,108,111, 99, 97, 108, 32,111,110, 97,109,101, 32, 61, 32,115,116,114,105,110, 103, 46,103,115,117, 98, 40,110, 97,109,101, 44, 32, 34, 64, 46, 42, 36, 34, 44, 32, 34, 34, 41, 10, 9,111,110, 97,109, 101, 32, 61, 32,103,101,116,110, 97,109,101,115,112, 97, 99, 101, 40, 99,108, 97,115,115, 67,111,110,116, 97,105,110,101, 114, 46, 99,117,114,114, 41, 46, 46,111,110, 97,109,101, 10, 9,111, 46,110, 97,109,101, 32, 61, 32,111,110, 97,109,101, 10, 10, 9,111, 46,108,111, 99, 97,108, 95,110, 97,109,101, 32, 61, 32,110, 97,109,101, 10, 9, 10, 9,115,101,116,109, 101,116, 97,116, 97, 98,108,101, 40,111, 44, 32, 99,108, 97, 115,115, 84,101,109,112,108, 97,116,101, 67,108, 97,115,115, 41, 10, 10, 9,105,102, 32, 95,103,108,111, 98, 97,108, 95, 116,101,109,112,108, 97,116,101,115, 91,111,110, 97,109,101, 93, 32,116,104,101,110, 10, 9, 9,119, 97,114,110,105,110, 103, 40, 34, 68,117,112,108,105, 99, 97,116,101, 32,100,101, 99,108, 97,114, 97,116,105,111,110, 32,111,102, 32,116,101, 109,112,108, 97,116,101, 32, 34, 46, 46,111,110, 97,109,101, 41, 10, 9,101,108,115,101, 10, 9, 9, 95,103,108,111, 98, 97,108, 95,116,101,109,112,108, 97,116,101,115, 91,111,110, 97,109,101, 93, 32, 61, 32,111, 10, 9,101,110,100, 10, 10, 9,114,101,116,117,114,110, 32,111, 10,101,110,100,32 }; tolua_dobuffer(tolua_S,(char*)B,sizeof(B),"tolua embedded: src/bin/lua/template_class.lua"); lua_settop(tolua_S, top); } /* end of embedded lua code */ { /* begin embedded lua code */ int top = lua_gettop(tolua_S); static unsigned char B[] = { 45, 45, 32,116,111,108,117, 97, 58, 32, 99,108, 97,115,115, 32, 99,108, 97,115,115, 10, 45, 45, 32, 87,114,105,116,116, 101,110, 32, 98,121, 32, 87, 97,108,100,101,109, 97,114, 32, 67,101,108,101,115, 10, 45, 45, 32, 84,101, 67, 71,114, 97, 102, 47, 80, 85, 67, 45, 82,105,111, 10, 45, 45, 32, 74,117, 108, 32, 49, 57, 57, 56, 10, 45, 45, 32, 36, 73,100, 58, 32, 36, 10, 10, 45, 45, 32, 84,104,105,115, 32, 99,111,100,101, 32,105,115, 32,102,114,101,101, 32,115,111,102,116,119, 97, 114,101, 59, 32,121,111,117, 32, 99, 97,110, 32,114,101,100, 105,115,116,114,105, 98,117,116,101, 32,105,116, 32, 97,110, 100, 47,111,114, 32,109,111,100,105,102,121, 32,105,116, 46, 10, 45, 45, 32, 84,104,101, 32,115,111,102,116,119, 97,114, 101, 32,112,114,111,118,105,100,101,100, 32,104,101,114,101, 117,110,100,101,114, 32,105,115, 32,111,110, 32, 97,110, 32, 34, 97,115, 32,105,115, 34, 32, 98, 97,115,105,115, 44, 32, 97,110,100, 10, 45, 45, 32,116,104,101, 32, 97,117,116,104, 111,114, 32,104, 97,115, 32,110,111, 32,111, 98,108,105,103, 97,116,105,111,110, 32,116,111, 32,112,114,111,118,105,100, 101, 32,109, 97,105,110,116,101,110, 97,110, 99,101, 44, 32, 115,117,112,112,111,114,116, 44, 32,117,112,100, 97,116,101, 115, 44, 10, 45, 45, 32,101,110,104, 97,110, 99,101,109,101, 110,116,115, 44, 32,111,114, 32,109,111,100,105,102,105, 99, 97,116,105,111,110,115, 46, 10, 10, 10, 45, 45, 32, 67,108, 97,115,115, 32, 99,108, 97,115,115, 10, 45, 45, 32, 82,101, 112,114,101,115,101,110,116,115, 32, 97, 32, 99,108, 97,115, 115, 32,100,101,102,105,110,105,116,105,111,110, 46, 10, 45, 45, 32, 83,116,111,114,101,115, 32,116,104,101, 32,102,111, 108,108,111,119,105,110,103, 32,102,105,101,108,100,115, 58, 10, 45, 45, 32, 32, 32, 32,110, 97,109,101, 32, 61, 32, 99, 108, 97,115,115, 32,110, 97,109,101, 10, 45, 45, 32, 32, 32, 32, 98, 97,115,101, 32, 61, 32, 99,108, 97,115,115, 32, 98, 97,115,101, 44, 32,105,102, 32, 97,110,121, 32, 40,111,110, 108,121, 32,115,105,110,103,108,101, 32,105,110,104,101,114, 105,116, 97,110, 99,101, 32,105,115, 32,115,117,112,112,111, 114,116,101,100, 41, 10, 45, 45, 32, 32, 32, 32,123,105,125, 32, 32, 61, 32,108,105,115,116, 32,111,102, 32,109,101,109, 98,101,114,115, 10, 99,108, 97,115,115, 67,108, 97,115,115, 32, 61, 32,123, 10, 32, 99,108, 97,115,115,116,121,112,101, 32, 61, 32, 39, 99,108, 97,115,115, 39, 44, 10, 32,110, 97, 109,101, 32, 61, 32, 39, 39, 44, 10, 32, 98, 97,115,101, 32, 61, 32, 39, 39, 44, 10, 32,116,121,112,101, 32, 61, 32, 39, 39, 44, 10, 32, 98,116,121,112,101, 32, 61, 32, 39, 39, 44, 10, 32, 99,116,121,112,101, 32, 61, 32, 39, 39, 44, 10,125, 10, 99,108, 97,115,115, 67,108, 97,115,115, 46, 95, 95,105, 110,100,101,120, 32, 61, 32, 99,108, 97,115,115, 67,108, 97, 115,115, 10,115,101,116,109,101,116, 97,116, 97, 98,108,101, 40, 99,108, 97,115,115, 67,108, 97,115,115, 44, 99,108, 97, 115,115, 67,111,110,116, 97,105,110,101,114, 41, 10, 10, 10, 45, 45, 32,114,101,103,105,115,116,101,114, 32, 99,108, 97, 115,115, 10,102,117,110, 99,116,105,111,110, 32, 99,108, 97, 115,115, 67,108, 97,115,115, 58,114,101,103,105,115,116,101, 114, 32, 40,112,114,101, 41, 10, 10, 9,105,102, 32,110,111, 116, 32,115,101,108,102, 58, 99,104,101, 99,107, 95,112,117, 98,108,105, 99, 95, 97, 99, 99,101,115,115, 40, 41, 32,116, 104,101,110, 10, 9, 9,114,101,116,117,114,110, 10, 9,101, 110,100, 10, 10, 32,112,114,101, 32, 61, 32,112,114,101, 32, 111,114, 32, 39, 39, 10, 32,112,117,115,104, 40,115,101,108, 102, 41, 10, 9,105,102, 32, 95, 99,111,108,108,101, 99,116, 91,115,101,108,102, 46,116,121,112,101, 93, 32,116,104,101, 110, 10, 9, 9,111,117,116,112,117,116, 40,112,114,101, 44, 39, 35,105,102,100,101,102, 32, 95, 95, 99,112,108,117,115, 112,108,117,115, 92,110, 39, 41, 10, 32, 32,111,117,116,112, 117,116, 40,112,114,101, 46, 46, 39,116,111,108,117, 97, 95, 99, 99,108, 97,115,115, 40,116,111,108,117, 97, 95, 83, 44, 34, 39, 46, 46,115,101,108,102, 46,108,110, 97,109,101, 46, 46, 39, 34, 44, 34, 39, 46, 46,115,101,108,102, 46,116,121, 112,101, 46, 46, 39, 34, 44, 34, 39, 46, 46,115,101,108,102, 46, 98,116,121,112,101, 46, 46, 39, 34, 44, 39, 46, 46, 95, 99,111,108,108,101, 99,116, 91,115,101,108,102, 46,116,121, 112,101, 93, 46, 46, 39, 41, 59, 39, 41, 10, 9, 9,111,117, 116,112,117,116, 40,112,114,101, 44, 39, 35,101,108,115,101, 92,110, 39, 41, 10, 32, 32,111,117,116,112,117,116, 40,112, 114,101, 46, 46, 39,116,111,108,117, 97, 95, 99, 99,108, 97, 115,115, 40,116,111,108,117, 97, 95, 83, 44, 34, 39, 46, 46, 115,101,108,102, 46,108,110, 97,109,101, 46, 46, 39, 34, 44, 34, 39, 46, 46,115,101,108,102, 46,116,121,112,101, 46, 46, 39, 34, 44, 34, 39, 46, 46,115,101,108,102, 46, 98,116,121, 112,101, 46, 46, 39, 34, 44, 78, 85, 76, 76, 41, 59, 39, 41, 10, 9, 9,111,117,116,112,117,116, 40,112,114,101, 44, 39, 35,101,110,100,105,102, 92,110, 39, 41, 10, 9,101,108,115, 101, 10, 32, 32,111,117,116,112,117,116, 40,112,114,101, 46, 46, 39,116,111,108,117, 97, 95, 99, 99,108, 97,115,115, 40, 116,111,108,117, 97, 95, 83, 44, 34, 39, 46, 46,115,101,108, 102, 46,108,110, 97,109,101, 46, 46, 39, 34, 44, 34, 39, 46, 46,115,101,108,102, 46,116,121,112,101, 46, 46, 39, 34, 44, 34, 39, 46, 46,115,101,108,102, 46, 98,116,121,112,101, 46, 46, 39, 34, 44, 78, 85, 76, 76, 41, 59, 39, 41, 10, 9,101, 110,100, 10, 9,105,102, 32,115,101,108,102, 46,101,120,116, 114, 97, 95, 98, 97,115,101,115, 32,116,104,101,110, 10, 9, 9,102,111,114, 32,107, 44, 98, 97,115,101, 32,105,110, 32, 105,112, 97,105,114,115, 40,115,101,108,102, 46,101,120,116, 114, 97, 95, 98, 97,115,101,115, 41, 32,100,111, 10, 9, 9, 9, 45, 45, 32,110,111,116, 32,110,111,119, 10, 32, 32, 32, 45, 45,111,117,116,112,117,116, 40,112,114,101, 46, 46, 39, 32,116,111,108,117, 97, 95, 97,100,100, 98, 97,115,101, 40, 116,111,108,117, 97, 95, 83, 44, 32, 34, 39, 46, 46,115,101, 108,102, 46,116,121,112,101, 46, 46, 39, 34, 44, 32, 34, 39, 46, 46, 98, 97,115,101, 46, 46, 39, 34, 41, 59, 39, 41, 10, 9, 9,101,110,100, 10, 9,101,110,100, 10, 32,111,117,116, 112,117,116, 40,112,114,101, 46, 46, 39,116,111,108,117, 97, 95, 98,101,103,105,110,109,111,100,117,108,101, 40,116,111, 108,117, 97, 95, 83, 44, 34, 39, 46, 46,115,101,108,102, 46, 108,110, 97,109,101, 46, 46, 39, 34, 41, 59, 39, 41, 10, 32, 108,111, 99, 97,108, 32,105, 61, 49, 10, 32,119,104,105,108, 101, 32,115,101,108,102, 91,105, 93, 32,100,111, 10, 32, 32, 115,101,108,102, 91,105, 93, 58,114,101,103,105,115,116,101, 114, 40,112,114,101, 46, 46, 39, 32, 39, 41, 10, 32, 32,105, 32, 61, 32,105, 43, 49, 10, 32,101,110,100, 10, 32,111,117, 116,112,117,116, 40,112,114,101, 46, 46, 39,116,111,108,117, 97, 95,101,110,100,109,111,100,117,108,101, 40,116,111,108, 117, 97, 95, 83, 41, 59, 39, 41, 10, 9,112,111,112, 40, 41, 10,101,110,100, 10, 10, 45, 45, 32,114,101,116,117,114,110, 32, 99,111,108,108,101, 99,116,105,111,110, 32,114,101,113, 117,105,114,101,109,101,110,116, 10,102,117,110, 99,116,105, 111,110, 32, 99,108, 97,115,115, 67,108, 97,115,115, 58,114, 101,113,117,105,114,101, 99,111,108,108,101, 99,116,105,111, 110, 32, 40,116, 41, 10, 9,105,102, 32,115,101,108,102, 46, 102,108, 97,103,115, 46,112,114,111,116,101, 99,116,101,100, 95,100,101,115,116,114,117, 99,116,111,114, 32,111,114, 32, 40,110,111,116, 32,115,101,108,102, 58, 99,104,101, 99,107, 95,112,117, 98,108,105, 99, 95, 97, 99, 99,101,115,115, 40, 41, 41, 32,116,104,101,110, 10, 9, 9,114,101,116,117,114, 110, 32,102, 97,108,115,101, 10, 9,101,110,100, 10, 32,112, 117,115,104, 40,115,101,108,102, 41, 10, 9,108,111, 99, 97, 108, 32,114, 32, 61, 32,102, 97,108,115,101, 10, 32,108,111, 99, 97,108, 32,105, 61, 49, 10, 32,119,104,105,108,101, 32, 115,101,108,102, 91,105, 93, 32,100,111, 10, 32, 32,114, 32, 61, 32,115,101,108,102, 91,105, 93, 58,114,101,113,117,105, 114,101, 99,111,108,108,101, 99,116,105,111,110, 40,116, 41, 32,111,114, 32,114, 10, 32, 32,105, 32, 61, 32,105, 43, 49, 10, 32,101,110,100, 10, 9,112,111,112, 40, 41, 10, 9, 45, 45, 32,111,110,108,121, 32, 99,108, 97,115,115, 32,116,104, 97,116, 32,101,120,112,111,114,116,115, 32,100,101,115,116, 114,117, 99,116,111,114, 32, 99, 97,110, 32, 98,101, 32, 97, 112,112,114,111,112,114,105, 97,116,101,108,121, 32, 99,111, 108,108,101, 99,116,101,100, 10, 9, 45, 45, 32, 99,108, 97, 115,115,101,115, 32,116,104, 97,116, 32,101,120,112,111,114, 116, 32, 99,111,110,115,116,114,117, 99,116,111,114,115, 32, 110,101,101,100, 32,116,111, 32,104, 97,118,101, 32, 97, 32, 99,111,108,108,101, 99,116,111,114, 32, 40,111,118,101,114, 114,105,100,101,100, 32, 98,121, 32, 45, 68, 32,102,108, 97, 103, 32,111,110, 32, 99,111,109,109, 97,110,100, 32,108,105, 110,101, 41, 10, 9,105,102, 32,115,101,108,102, 46, 95,100, 101,108,101,116,101, 32,111,114, 32, 40, 40,110,111,116, 32, 102,108, 97,103,115, 91, 39, 68, 39, 93, 41, 32, 97,110,100, 32,115,101,108,102, 46, 95,110,101,119, 41, 32,116,104,101, 110, 10, 9, 9, 45, 45,116, 91,115,101,108,102, 46,116,121, 112,101, 93, 32, 61, 32, 34,116,111,108,117, 97, 95, 99,111, 108,108,101, 99,116, 95, 34, 32, 46, 46, 32,103,115,117, 98, 40,115,101,108,102, 46,116,121,112,101, 44, 34, 58, 58, 34, 44, 34, 95, 34, 41, 10, 9, 9,116, 91,115,101,108,102, 46, 116,121,112,101, 93, 32, 61, 32, 34,116,111,108,117, 97, 95, 99,111,108,108,101, 99,116, 95, 34, 32, 46, 46, 32, 99,108, 101, 97,110, 95,116,101,109,112,108, 97,116,101, 40,115,101, 108,102, 46,116,121,112,101, 41, 10, 9, 9,114, 32, 61, 32, 116,114,117,101, 10, 9,101,110,100, 10, 32,114,101,116,117, 114,110, 32,114, 10,101,110,100, 10, 10, 45, 45, 32,111,117, 116,112,117,116, 32,116, 97,103,115, 10,102,117,110, 99,116, 105,111,110, 32, 99,108, 97,115,115, 67,108, 97,115,115, 58, 100,101, 99,108,116,121,112,101, 32, 40, 41, 10, 32,112,117, 115,104, 40,115,101,108,102, 41, 10, 9,115,101,108,102, 46, 116,121,112,101, 32, 61, 32,114,101,103,116,121,112,101, 40, 115,101,108,102, 46,111,114,105,103,105,110, 97,108, 95,110, 97,109,101, 32,111,114, 32,115,101,108,102, 46,110, 97,109, 101, 41, 10, 9,115,101,108,102, 46, 98,116,121,112,101, 32, 61, 32,116,121,112,101,118, 97,114, 40,115,101,108,102, 46, 98, 97,115,101, 41, 10, 9,115,101,108,102, 46, 99,116,121, 112,101, 32, 61, 32, 39, 99,111,110,115,116, 32, 39, 46, 46, 115,101,108,102, 46,116,121,112,101, 10, 9,105,102, 32,115, 101,108,102, 46,101,120,116,114, 97, 95, 98, 97,115,101,115, 32,116,104,101,110, 10, 9, 9,102,111,114, 32,105, 61, 49, 44,116, 97, 98,108,101, 46,103,101,116,110, 40,115,101,108, 102, 46,101,120,116,114, 97, 95, 98, 97,115,101,115, 41, 32, 100,111, 10, 9, 9, 9,115,101,108,102, 46,101,120,116,114, 97, 95, 98, 97,115,101,115, 91,105, 93, 32, 61, 32,116,121, 112,101,118, 97,114, 40,115,101,108,102, 46,101,120,116,114, 97, 95, 98, 97,115,101,115, 91,105, 93, 41, 10, 9, 9,101, 110,100, 10, 9,101,110,100, 10, 32,108,111, 99, 97,108, 32, 105, 61, 49, 10, 32,119,104,105,108,101, 32,115,101,108,102, 91,105, 93, 32,100,111, 10, 32, 32,115,101,108,102, 91,105, 93, 58,100,101, 99,108,116,121,112,101, 40, 41, 10, 32, 32, 105, 32, 61, 32,105, 43, 49, 10, 32,101,110,100, 10, 9,112, 111,112, 40, 41, 10,101,110,100, 10, 10, 10, 45, 45, 32, 80, 114,105,110,116, 32,109,101,116,104,111,100, 10,102,117,110, 99,116,105,111,110, 32, 99,108, 97,115,115, 67,108, 97,115, 115, 58,112,114,105,110,116, 32, 40,105,100,101,110,116, 44, 99,108,111,115,101, 41, 10, 32,112,114,105,110,116, 40,105, 100,101,110,116, 46, 46, 34, 67,108, 97,115,115,123, 34, 41, 10, 32,112,114,105,110,116, 40,105,100,101,110,116, 46, 46, 34, 32,110, 97,109,101, 32, 61, 32, 39, 34, 46, 46,115,101, 108,102, 46,110, 97,109,101, 46, 46, 34, 39, 44, 34, 41, 10, 32,112,114,105,110,116, 40,105,100,101,110,116, 46, 46, 34, 32, 98, 97,115,101, 32, 61, 32, 39, 34, 46, 46,115,101,108, 102, 46, 98, 97,115,101, 46, 46, 34, 39, 59, 34, 41, 10, 32, 112,114,105,110,116, 40,105,100,101,110,116, 46, 46, 34, 32, 108,110, 97,109,101, 32, 61, 32, 39, 34, 46, 46,115,101,108, 102, 46,108,110, 97,109,101, 46, 46, 34, 39, 44, 34, 41, 10, 32,112,114,105,110,116, 40,105,100,101,110,116, 46, 46, 34, 32,116,121,112,101, 32, 61, 32, 39, 34, 46, 46,115,101,108, 102, 46,116,121,112,101, 46, 46, 34, 39, 44, 34, 41, 10, 32, 112,114,105,110,116, 40,105,100,101,110,116, 46, 46, 34, 32, 98,116,121,112,101, 32, 61, 32, 39, 34, 46, 46,115,101,108, 102, 46, 98,116,121,112,101, 46, 46, 34, 39, 44, 34, 41, 10, 32,112,114,105,110,116, 40,105,100,101,110,116, 46, 46, 34, 32, 99,116,121,112,101, 32, 61, 32, 39, 34, 46, 46,115,101, 108,102, 46, 99,116,121,112,101, 46, 46, 34, 39, 44, 34, 41, 10, 32,108,111, 99, 97,108, 32,105, 61, 49, 10, 32,119,104, 105,108,101, 32,115,101,108,102, 91,105, 93, 32,100,111, 10, 32, 32,115,101,108,102, 91,105, 93, 58,112,114,105,110,116, 40,105,100,101,110,116, 46, 46, 34, 32, 34, 44, 34, 44, 34, 41, 10, 32, 32,105, 32, 61, 32,105, 43, 49, 10, 32,101,110, 100, 10, 32,112,114,105,110,116, 40,105,100,101,110,116, 46, 46, 34,125, 34, 46, 46, 99,108,111,115,101, 41, 10,101,110, 100, 10, 10,102,117,110, 99,116,105,111,110, 32, 99,108, 97, 115,115, 67,108, 97,115,115, 58,115,101,116, 95,112,114,111, 116,101, 99,116,101,100, 95,100,101,115,116,114,117, 99,116, 111,114, 40,112, 41, 10, 9,115,101,108,102, 46,102,108, 97, 103,115, 46,112,114,111,116,101, 99,116,101,100, 95,100,101, 115,116,114,117, 99,116,111,114, 32, 61, 32,115,101,108,102, 46,102,108, 97,103,115, 46,112,114,111,116,101, 99,116,101, 100, 95,100,101,115,116,114,117, 99,116,111,114, 32,111,114, 32,112, 10,101,110,100, 10, 10, 45, 45, 32, 73,110,116,101, 114,110, 97,108, 32, 99,111,110,115,116,114,117, 99,116,111, 114, 10,102,117,110, 99,116,105,111,110, 32, 95, 67,108, 97, 115,115, 32, 40,116, 41, 10, 32,115,101,116,109,101,116, 97, 116, 97, 98,108,101, 40,116, 44, 99,108, 97,115,115, 67,108, 97,115,115, 41, 10, 32,116, 58, 98,117,105,108,100,110, 97, 109,101,115, 40, 41, 10, 32, 97,112,112,101,110,100, 40,116, 41, 10, 32,114,101,116,117,114,110, 32,116, 10,101,110,100, 10, 10, 45, 45, 32, 67,111,110,115,116,114,117, 99,116,111, 114, 10, 45, 45, 32, 69,120,112,101, 99,116,115, 32,116,104, 101, 32,110, 97,109,101, 44, 32,116,104,101, 32, 98, 97,115, 101, 32, 40, 97,114,114, 97,121, 41, 32, 97,110,100, 32,116, 104,101, 32, 98,111,100,121, 32,111,102, 32,116,104,101, 32, 99,108, 97,115,115, 46, 10,102,117,110, 99,116,105,111,110, 32, 67,108, 97,115,115, 32, 40,110, 44,112, 44, 98, 41, 10, 10, 9,105,102, 32,116, 97, 98,108,101, 46,103,101,116,110, 40,112, 41, 32, 62, 32, 49, 32,116,104,101,110, 10, 9, 9, 98, 32, 61, 32,115,116,114,105,110,103, 46,115,117, 98, 40, 98, 44, 32, 49, 44, 32, 45, 50, 41, 10, 9, 9,102,111,114, 32,105, 61, 50, 44,116, 97, 98,108,101, 46,103,101,116,110, 40,112, 41, 44, 49, 32,100,111, 10, 9, 9, 9, 98, 32, 61, 32, 98, 46, 46, 34, 92,110, 32,116,111,108,117, 97, 95,105, 110,104,101,114,105,116,115, 32, 34, 46, 46,112, 91,105, 93, 46, 46, 34, 32, 95, 95, 34, 46, 46,112, 91,105, 93, 46, 46, 34, 95, 95, 59, 92,110, 34, 10, 9, 9,101,110,100, 10, 9, 9, 98, 32, 61, 32, 98, 46, 46, 34, 92,110,125, 34, 10, 9, 101,110,100, 10, 10, 9, 45, 45, 32, 99,104,101, 99,107, 32, 102,111,114, 32,116,101,109,112,108, 97,116,101, 10, 9, 98, 32, 61, 32,115,116,114,105,110,103, 46,103,115,117, 98, 40, 98, 44, 32, 34, 94,123, 37,115, 42, 84, 69, 77, 80, 76, 65, 84, 69, 95, 66, 73, 78, 68, 34, 44, 32, 34,123, 92,110, 84, 79, 76, 85, 65, 95, 84, 69, 77, 80, 76, 65, 84, 69, 95, 66, 73, 78, 68, 34, 41, 10, 9,108,111, 99, 97,108, 32,116, 44, 95, 44, 84, 44, 73, 32, 61, 32,115,116,114,105,110,103, 46, 102,105,110,100, 40, 98, 44, 32, 39, 94,123, 37,115, 42, 84, 79, 76, 85, 65, 95, 84, 69, 77, 80, 76, 65, 84, 69, 95, 66, 73, 78, 68, 37,115, 42, 37, 40, 43, 37,115, 42, 92, 34, 63, 40, 91, 94, 92, 34, 44, 93, 42, 41, 92, 34, 63, 37,115, 42, 44, 37,115, 42, 40, 91, 94, 37, 41, 93, 42, 41, 37,115, 42, 37, 41, 43, 39, 41, 10, 9,105,102, 32,116, 32,116,104,101, 110, 10, 10, 9, 9, 45, 45, 32,114,101,109,111,118,101, 32, 113,117,111,116,101,115, 10, 9, 9, 73, 32, 61, 32,115,116, 114,105,110,103, 46,103,115,117, 98, 40, 73, 44, 32, 34, 92, 34, 34, 44, 32, 34, 34, 41, 10, 9, 9, 84, 32, 61, 32,115, 116,114,105,110,103, 46,103,115,117, 98, 40, 84, 44, 32, 34, 92, 34, 34, 44, 32, 34, 34, 41, 10, 9, 9, 45, 45, 32,103, 101,116, 32,116,121,112,101, 32,108,105,115,116, 10, 9, 9, 108,111, 99, 97,108, 32,116,121,112,101,115, 32, 61, 32,115, 112,108,105,116, 95, 99, 95,116,111,107,101,110,115, 40, 73, 44, 32, 34, 44, 34, 41, 10, 9, 9, 45, 45, 32,114,101,109, 111,118,101, 32, 84, 69, 77, 80, 76, 65, 84, 69, 95, 66, 73, 78, 68, 32,108,105,110,101, 10, 9, 9,108,111, 99, 97,108, 32, 98,115, 32, 61, 32,115,116,114,105,110,103, 46,103,115, 117, 98, 40, 98, 44, 32, 34, 94,123, 37,115, 42, 84, 79, 76, 85, 65, 95, 84, 69, 77, 80, 76, 65, 84, 69, 95, 66, 73, 78, 68, 91, 94, 92,110, 93, 42, 92,110, 34, 44, 32, 34,123, 92, 110, 34, 41, 10, 9, 9, 9, 10, 9, 9,108,111, 99, 97,108, 32, 84,108, 32, 61, 32,115,112,108,105,116, 40, 84, 44, 32, 34, 32, 34, 41, 10, 9, 9,108,111, 99, 97,108, 32,116, 99, 32, 61, 32, 84,101,109,112,108, 97,116,101, 67,108, 97,115, 115, 40,110, 44, 32,112, 44, 32, 98,115, 44, 32, 84,108, 41, 10, 10, 9, 9, 10, 9, 9,116, 99, 58,116,104,114,111,119, 40,116,121,112,101,115, 44, 32,116,114,117,101, 41, 10, 9, 9, 45, 45,102,111,114, 32,105, 61, 49, 44,116,121,112,101, 115, 46,110, 32,100,111, 10, 9, 9, 45, 45, 9,116, 99, 58, 116,104,114,111,119, 40,115,112,108,105,116, 95, 99, 95,116, 111,107,101,110,115, 40,116,121,112,101,115, 91,105, 93, 44, 32, 34, 32, 34, 41, 44, 32,116,114,117,101, 41, 10, 9, 9, 45, 45,101,110,100, 10, 9, 9,114,101,116,117,114,110, 10, 9,101,110,100, 10, 9, 10, 9,108,111, 99, 97,108, 32,109, 98, 97,115,101, 10, 10, 9,105,102, 32,112, 32,116,104,101, 110, 10, 9, 9,109, 98, 97,115,101, 32, 61, 32,116, 97, 98, 108,101, 46,114,101,109,111,118,101, 40,112, 44, 32, 49, 41, 10, 9, 9,105,102, 32,110,111,116, 32,112, 91, 49, 93, 32, 116,104,101,110, 32,112, 32, 61, 32,110,105,108, 32,101,110, 100, 10, 9,101,110,100, 10, 10, 9,109, 98, 97,115,101, 32, 61, 32,109, 98, 97,115,101, 32, 97,110,100, 32,114,101,115, 111,108,118,101, 95,116,101,109,112,108, 97,116,101, 95,116, 121,112,101,115, 40,109, 98, 97,115,101, 41, 10, 10, 9,108, 111, 99, 97,108, 32, 99, 10, 9,108,111, 99, 97,108, 32,111, 110, 97,109,101, 32, 61, 32,115,116,114,105,110,103, 46,103, 115,117, 98, 40,110, 44, 32, 34, 64, 46, 42, 36, 34, 44, 32, 34, 34, 41, 10, 9,111,110, 97,109,101, 32, 61, 32,103,101, 116,110, 97,109,101,115,112, 97, 99,101, 40, 99,108, 97,115, 115, 67,111,110,116, 97,105,110,101,114, 46, 99,117,114,114, 41, 46, 46,111,110, 97,109,101, 10, 10, 9,105,102, 32, 95, 103,108,111, 98, 97,108, 95, 99,108, 97,115,115,101,115, 91, 111,110, 97,109,101, 93, 32,116,104,101,110, 10, 9, 9, 99, 32, 61, 32, 95,103,108,111, 98, 97,108, 95, 99,108, 97,115, 115,101,115, 91,111,110, 97,109,101, 93, 10, 9, 9,105,102, 32,109, 98, 97,115,101, 32, 97,110,100, 32, 40, 40,110,111, 116, 32, 99, 46, 98, 97,115,101, 41, 32,111,114, 32, 99, 46, 98, 97,115,101, 32, 61, 61, 32, 34, 34, 41, 32,116,104,101, 110, 10, 9, 9, 9, 99, 46, 98, 97,115,101, 32, 61, 32,109, 98, 97,115,101, 10, 9, 9,101,110,100, 10, 9,101,108,115, 101, 10, 9, 9, 99, 32, 61, 32, 95, 67,108, 97,115,115, 40, 95, 67,111,110,116, 97,105,110,101,114,123,110, 97,109,101, 61,110, 44, 32, 98, 97,115,101, 61,109, 98, 97,115,101, 44, 32,101,120,116,114, 97, 95, 98, 97,115,101,115, 61,112,125, 41, 10, 10, 9, 9,108,111, 99, 97,108, 32,102,116, 32, 61, 32,103,101,116,110, 97,109,101,115,112, 97, 99,101, 40, 99, 46,112, 97,114,101,110,116, 41, 46, 46, 99, 46,111,114,105, 103,105,110, 97,108, 95,110, 97,109,101, 10, 9, 9, 97,112, 112,101,110,100, 95,103,108,111, 98, 97,108, 95,116,121,112, 101, 40,102,116, 44, 32, 99, 41, 10, 9,101,110,100, 10, 10, 9,112,117,115,104, 40, 99, 41, 10, 9, 99, 58,112, 97,114, 115,101, 40,115,116,114,115,117, 98, 40, 98, 44, 50, 44,115, 116,114,108,101,110, 40, 98, 41, 45, 49, 41, 41, 32, 45, 45, 32,101,108,105,109,105,110, 97,116,101, 32, 98,114, 97, 99, 101,115, 10, 9,112,111,112, 40, 41, 10,101,110,100,32 }; tolua_dobuffer(tolua_S,(char*)B,sizeof(B),"tolua embedded: src/bin/lua/class.lua"); lua_settop(tolua_S, top); } /* end of embedded lua code */ { /* begin embedded lua code */ int top = lua_gettop(tolua_S); static unsigned char B[] = { 45, 45, 32,109, 97,114,107, 32,117,112, 32, 99,111,109,109, 101,110,116,115, 32, 97,110,100, 32,115,116,114,105,110,103, 115, 10, 83, 84, 82, 49, 32, 61, 32, 34, 92, 48, 48, 49, 34, 10, 83, 84, 82, 50, 32, 61, 32, 34, 92, 48, 48, 50, 34, 10, 83, 84, 82, 51, 32, 61, 32, 34, 92, 48, 48, 51, 34, 10, 83, 84, 82, 52, 32, 61, 32, 34, 92, 48, 48, 52, 34, 10, 82, 69, 77, 32, 32, 61, 32, 34, 92, 48, 48, 53, 34, 10, 65, 78, 89, 32, 32, 61, 32, 34, 40, 91, 92, 48, 48, 49, 45, 92, 48, 48, 53, 93, 41, 34, 10, 69, 83, 67, 49, 32, 61, 32, 34, 92, 48, 48, 54, 34, 10, 69, 83, 67, 50, 32, 61, 32, 34, 92, 48, 48, 55, 34, 10, 10, 77, 65, 83, 75, 32, 61, 32,123, 32, 45, 45, 32,116,104,101, 32,115,117, 98,115,116,105,116,117,116,105, 111,110, 32,111,114,100,101,114, 32,105,115, 32,105,109,112, 111,114,116, 97,110,116, 10, 32,123, 69, 83, 67, 49, 44, 32, 34, 92, 92, 39, 34,125, 44, 10, 32,123, 69, 83, 67, 50, 44, 32, 39, 92, 92, 34, 39,125, 44, 10, 32,123, 83, 84, 82, 49, 44, 32, 34, 39, 34,125, 44, 10, 32,123, 83, 84, 82, 50, 44, 32, 39, 34, 39,125, 44, 10, 32,123, 83, 84, 82, 51, 44, 32, 34, 37, 91, 37, 91, 34,125, 44, 10, 32,123, 83, 84, 82, 52, 44, 32, 34, 37, 93, 37, 93, 34,125, 44, 10, 32,123, 82, 69, 77, 32, 44, 32, 34, 37, 45, 37, 45, 34,125, 44, 10,125, 10, 10,102,117,110, 99,116,105,111,110, 32,109, 97,115,107, 32, 40,115, 41, 10, 32,102,111,114, 32,105, 32, 61, 32, 49, 44, 103,101,116,110, 40, 77, 65, 83, 75, 41, 32, 32,100,111, 10, 32, 32,115, 32, 61, 32,103,115,117, 98, 40,115, 44, 77, 65, 83, 75, 91,105, 93, 91, 50, 93, 44, 77, 65, 83, 75, 91,105, 93, 91, 49, 93, 41, 10, 32,101,110,100, 10, 32,114,101,116, 117,114,110, 32,115, 10,101,110,100, 10, 10,102,117,110, 99, 116,105,111,110, 32,117,110,109, 97,115,107, 32, 40,115, 41, 10, 32,102,111,114, 32,105, 32, 61, 32, 49, 44,103,101,116, 110, 40, 77, 65, 83, 75, 41, 32, 32,100,111, 10, 32, 32,115, 32, 61, 32,103,115,117, 98, 40,115, 44, 77, 65, 83, 75, 91, 105, 93, 91, 49, 93, 44, 77, 65, 83, 75, 91,105, 93, 91, 50, 93, 41, 10, 32,101,110,100, 10, 32,114,101,116,117,114,110, 32,115, 10,101,110,100, 10, 10,102,117,110, 99,116,105,111, 110, 32, 99,108,101, 97,110, 32, 40,115, 41, 10, 32, 45, 45, 32, 99,104,101, 99,107, 32,102,111,114, 32, 99,111,109,112, 105,108, 97,116,105,111,110, 32,101,114,114,111,114, 10, 32, 108,111, 99, 97,108, 32, 99,111,100,101, 32, 61, 32, 34,114, 101,116,117,114,110, 32,102,117,110, 99,116,105,111,110, 32, 40, 41, 92,110, 34, 32, 46, 46, 32,115, 32, 46, 46, 32, 34, 92,110, 32,101,110,100, 34, 10, 32,105,102, 32,110,111,116, 32,100,111,115,116,114,105,110,103, 40, 99,111,100,101, 41, 32,116,104,101,110, 10, 32, 32,114,101,116,117,114,110, 32, 110,105,108, 10, 32,101,110,100, 10, 10, 32,105,102, 32,102, 108, 97,103,115, 91, 39, 67, 39, 93, 32,116,104,101,110, 10, 32, 9,114,101,116,117,114,110, 32,115, 10, 32,101,110,100, 10, 10, 32,108,111, 99, 97,108, 32, 83, 32, 61, 32, 34, 34, 32, 45, 45, 32,115, 97,118,101,100, 32,115,116,114,105,110, 103, 10, 10, 32,115, 32, 61, 32,109, 97,115,107, 40,115, 41, 10, 10, 32, 45, 45, 32,114,101,109,111,118,101, 32, 98,108, 97,110,107,115, 32, 97,110,100, 32, 99,111,109,109,101,110, 116,115, 10, 32,119,104,105,108,101, 32, 49, 32,100,111, 10, 32, 32,108,111, 99, 97,108, 32, 98, 44,101, 44,100, 32, 61, 32,115,116,114,102,105,110,100, 40,115, 44, 65, 78, 89, 41, 10, 32, 32,105,102, 32, 98, 32,116,104,101,110, 10, 32, 32, 32, 83, 32, 61, 32, 83, 46, 46,115,116,114,115,117, 98, 40, 115, 44, 49, 44, 98, 45, 49, 41, 10, 32, 32, 32,115, 32, 61, 32,115,116,114,115,117, 98, 40,115, 44, 98, 43, 49, 41, 10, 32, 32, 32,105,102, 32,100, 61, 61, 83, 84, 82, 49, 32,111, 114, 32,100, 61, 61, 83, 84, 82, 50, 32,116,104,101,110, 10, 32, 32, 32, 32,101, 32, 61, 32,115,116,114,102,105,110,100, 40,115, 44,100, 41, 10, 32, 32, 32, 32, 83, 32, 61, 32, 83, 32, 46, 46,100, 46, 46,115,116,114,115,117, 98, 40,115, 44, 49, 44,101, 41, 10, 32, 32, 32, 32,115, 32, 61, 32,115,116, 114,115,117, 98, 40,115, 44,101, 43, 49, 41, 10, 32, 32, 32, 101,108,115,101,105,102, 32,100, 61, 61, 83, 84, 82, 51, 32, 116,104,101,110, 10, 32, 32, 32, 32,101, 32, 61, 32,115,116, 114,102,105,110,100, 40,115, 44, 83, 84, 82, 52, 41, 10, 32, 32, 32, 32, 83, 32, 61, 32, 83, 46, 46,100, 46, 46,115,116, 114,115,117, 98, 40,115, 44, 49, 44,101, 41, 10, 32, 32, 32, 32,115, 32, 61, 32,115,116,114,115,117, 98, 40,115, 44,101, 43, 49, 41, 10, 32, 32, 32,101,108,115,101,105,102, 32,100, 61, 61, 82, 69, 77, 32,116,104,101,110, 10, 32, 32, 32, 32, 115, 32, 61, 32,103,115,117, 98, 40,115, 44, 34, 91, 94, 92, 110, 93, 42, 40, 92,110, 63, 41, 34, 44, 34, 37, 49, 34, 44, 49, 41, 10, 32, 32, 32,101,110,100, 10, 32, 32,101,108,115, 101, 10, 32, 32, 32, 83, 32, 61, 32, 83, 46, 46,115, 10, 32, 32, 32, 98,114,101, 97,107, 10, 32, 32,101,110,100, 10, 32, 101,110,100, 10, 32, 45, 45, 32,101,108,105,109,105,110, 97, 116,101, 32,117,110,101, 99,101,115,115, 97,114,121, 32,115, 112, 97, 99,101,115, 10, 32, 83, 32, 61, 32,103,115,117, 98, 40, 83, 44, 34, 91, 32, 92,116, 93, 43, 34, 44, 34, 32, 34, 41, 10, 32, 83, 32, 61, 32,103,115,117, 98, 40, 83, 44, 34, 91, 32, 92,116, 93, 42, 92,110, 91, 32, 92,116, 93, 42, 34, 44, 34, 92,110, 34, 41, 10, 9, 83, 32, 61, 32,103,115,117, 98, 40, 83, 44, 34, 92,110, 43, 34, 44, 34, 92,110, 34, 41, 10, 32, 83, 32, 61, 32,117,110,109, 97,115,107, 40, 83, 41, 10, 32,114,101,116,117,114,110, 32, 83, 10,101,110,100,32 }; tolua_dobuffer(tolua_S,(char*)B,sizeof(B),"tolua embedded: src/bin/lua/clean.lua"); lua_settop(tolua_S, top); } /* end of embedded lua code */ { /* begin embedded lua code */ int top = lua_gettop(tolua_S); static unsigned char B[] = { 45, 45, 32, 71,101,110,101,114, 97,116,101, 32, 98,105,110, 100,105,110,103, 32, 99,111,100,101, 10, 45, 45, 32, 87,114, 105,116,116,101,110, 32, 98,121, 32, 87, 97,108,100,101,109, 97,114, 32, 67,101,108,101,115, 10, 45, 45, 32, 84,101, 67, 71,114, 97,102, 47, 80, 85, 67, 45, 82,105,111, 10, 45, 45, 32, 74,117,108, 32, 49, 57, 57, 56, 10, 45, 45, 32, 76, 97, 115,116, 32,117,112,100, 97,116,101, 58, 32, 65,112,114, 32, 50, 48, 48, 51, 10, 45, 45, 32, 36, 73,100, 58, 32, 36, 10, 10, 10, 45, 45, 32, 84,104,105,115, 32, 99,111,100,101, 32, 105,115, 32,102,114,101,101, 32,115,111,102,116,119, 97,114, 101, 59, 32,121,111,117, 32, 99, 97,110, 32,114,101,100,105, 115,116,114,105, 98,117,116,101, 32,105,116, 32, 97,110,100, 47,111,114, 32,109,111,100,105,102,121, 32,105,116, 46, 10, 45, 45, 32, 84,104,101, 32,115,111,102,116,119, 97,114,101, 32,112,114,111,118,105,100,101,100, 32,104,101,114,101,117, 110,100,101,114, 32,105,115, 32,111,110, 32, 97,110, 32, 34, 97,115, 32,105,115, 34, 32, 98, 97,115,105,115, 44, 32, 97, 110,100, 10, 45, 45, 32,116,104,101, 32, 97,117,116,104,111, 114, 32,104, 97,115, 32,110,111, 32,111, 98,108,105,103, 97, 116,105,111,110, 32,116,111, 32,112,114,111,118,105,100,101, 32,109, 97,105,110,116,101,110, 97,110, 99,101, 44, 32,115, 117,112,112,111,114,116, 44, 32,117,112,100, 97,116,101,115, 44, 10, 45, 45, 32,101,110,104, 97,110, 99,101,109,101,110, 116,115, 44, 32,111,114, 32,109,111,100,105,102,105, 99, 97, 116,105,111,110,115, 46, 10, 10,102,117,110, 99,116,105,111, 110, 32,112, 97,114,115,101, 95,101,120,116,114, 97, 40, 41, 10, 10, 9,102,111,114, 32,107, 44,118, 32,105,110, 32,105, 112, 97,105,114,115, 40, 95,101,120,116,114, 97, 95,112, 97, 114, 97,109,101,116,101,114,115, 32,111,114, 32,123,125, 41, 32,100,111, 10, 9, 9, 10, 9, 9,108,111, 99, 97,108, 32, 98, 44,101, 44,110, 97,109,101, 44,118, 97,108,117,101, 32, 61, 32,115,116,114,105,110,103, 46,102,105,110,100, 40,118, 44, 32, 34, 94, 40, 91, 94, 61, 93, 42, 41, 61, 40, 46, 42, 41, 36, 34, 41, 10, 9, 9,105,102, 32, 98, 32,116,104,101, 110, 10, 9, 9, 9, 95,101,120,116,114, 97, 95,112, 97,114, 97,109,101,116,101,114,115, 91,110, 97,109,101, 93, 32, 61, 32,118, 97,108,117,101, 10, 9, 9,101,108,115,101, 10, 9, 9, 9, 95,101,120,116,114, 97, 95,112, 97,114, 97,109,101, 116,101,114,115, 91,118, 93, 32, 61, 32,116,114,117,101, 10, 9, 9,101,110,100, 10, 9,101,110,100, 10,101,110,100, 10, 10,102,117,110, 99,116,105,111,110, 32,100,111,105,116, 32, 40, 41, 10, 9, 45, 45, 32,100,101,102,105,110,101, 32,112, 97, 99,107, 97,103,101, 32,110, 97,109,101, 44, 32,105,102, 32,110,111,116, 32,112,114,111,118,105,100,101,100, 10, 9, 105,102, 32,110,111,116, 32,102,108, 97,103,115, 46,110, 32, 116,104,101,110, 10, 9, 9,105,102, 32,102,108, 97,103,115, 46,102, 32,116,104,101,110, 10, 9, 9, 9,102,108, 97,103, 115, 46,110, 32, 61, 32,103,115,117, 98, 40,102,108, 97,103, 115, 46,102, 44, 34, 37, 46, 46, 42, 36, 34, 44, 34, 34, 41, 10, 9, 9, 9, 95, 44, 95, 44,102,108, 97,103,115, 46,110, 32, 61, 32,115,116,114,105,110,103, 46,102,105,110,100, 40, 102,108, 97,103,115, 46,110, 44, 32, 34, 40, 91, 94, 47, 92, 92, 93, 42, 41, 36, 34, 41, 10, 9, 9,101,108,115,101, 10, 9, 9, 9,101,114,114,111,114, 40, 34, 35,110,111, 32,112, 97, 99,107, 97,103,101, 32,110, 97,109,101, 32,110,111,114, 32,105,110,112,117,116, 32,102,105,108,101, 32,112,114,111, 118,105,100,101,100, 34, 41, 10, 9, 9,101,110,100, 10, 9, 101,110,100, 10, 10, 9, 45, 45, 32,112, 97,114,115,101, 32, 116, 97, 98,108,101, 32,119,105,116,104, 32,101,120,116,114, 97, 32,112, 97,114, 97,109,116,101,114,115, 10, 9,112, 97, 114,115,101, 95,101,120,116,114, 97, 40, 41, 10, 10, 9, 45, 45, 32,100,111, 32,116,104,105,115, 32, 97,102,116,101,114, 32,115,101,116,116,105,110,103, 32,116,104,101, 32,112, 97, 99,107, 97,103,101, 32,110, 97,109,101, 10, 9,105,102, 32, 102,108, 97,103,115, 91, 39, 76, 39, 93, 32,116,104,101,110, 10, 9, 9,100,111,102,105,108,101, 40,102,108, 97,103,115, 91, 39, 76, 39, 93, 41, 10, 9,101,110,100, 10, 10, 9, 45, 45, 32, 97,100,100, 32, 99,112,112,115,116,114,105,110,103, 10, 9,105,102, 32,110,111,116, 32,102,108, 97,103,115, 91, 39, 83, 39, 93, 32,116,104,101,110, 10, 9, 9, 95, 98, 97, 115,105, 99, 91, 39,115,116,114,105,110,103, 39, 93, 32, 61, 32, 39, 99,112,112,115,116,114,105,110,103, 39, 10, 9, 9, 95, 98, 97,115,105, 99, 91, 39,115,116,100, 58, 58,115,116, 114,105,110,103, 39, 93, 32, 61, 32, 39, 99,112,112,115,116, 114,105,110,103, 39, 10, 9, 9, 95, 98, 97,115,105, 99, 95, 99,116,121,112,101, 46, 99,112,112,115,116,114,105,110,103, 32, 61, 32, 39, 99,111,110,115,116, 32, 99,104, 97,114, 42, 39, 10, 9,101,110,100, 10, 10, 9, 45, 45, 32,112,114,111, 99, 99,101,115,115, 32,112, 97, 99,107, 97,103,101, 10, 9, 108,111, 99, 97,108, 32,112, 32, 32, 61, 32, 80, 97, 99,107, 97,103,101, 40,102,108, 97,103,115, 46,110, 44,102,108, 97, 103,115, 46,102, 41, 10, 10, 9,105,102, 32,102,108, 97,103, 115, 46,112, 32,116,104,101,110, 10, 9, 9,114,101,116,117, 114,110, 32, 32, 32, 32, 32, 32, 32, 32, 45, 45, 32,111,110, 108,121, 32,112, 97,114,115,101, 10, 9,101,110,100, 10, 10, 9,105,102, 32,102,108, 97,103,115, 46,111, 32,116,104,101, 110, 10, 9, 9,108,111, 99, 97,108, 32,115,116, 44,109,115, 103, 32, 61, 32,119,114,105,116,101,116,111, 40,102,108, 97, 103,115, 46,111, 41, 10, 9, 9,105,102, 32,110,111,116, 32, 115,116, 32,116,104,101,110, 10, 9, 9, 9,101,114,114,111, 114, 40, 39, 35, 39, 46, 46,109,115,103, 41, 10, 9, 9,101, 110,100, 10, 9,101,110,100, 10, 10, 9,112, 58,100,101, 99, 108,116,121,112,101, 40, 41, 10, 9,105,102, 32,102,108, 97, 103,115, 46, 80, 32,116,104,101,110, 10, 9, 9,112, 58,112, 114,105,110,116, 40, 41, 10, 9,101,108,115,101, 10, 9, 9, 112,117,115,104, 40,112, 41, 10, 9, 9,112,114,101, 95,111, 117,116,112,117,116, 95,104,111,111,107, 40,112, 41, 10, 9, 9,112,111,112, 40, 41, 10, 9, 9,112, 58,112,114,101, 97, 109, 98,108,101, 40, 41, 10, 9, 9,112, 58,115,117,112, 99, 111,100,101, 40, 41, 10, 9, 9,112,117,115,104, 40,112, 41, 10, 9, 9,112,114,101, 95,114,101,103,105,115,116,101,114, 95,104,111,111,107, 40,112, 41, 10, 9, 9,112,111,112, 40, 41, 10, 9, 9,112, 58,114,101,103,105,115,116,101,114, 40, 41, 10, 9, 9,112,117,115,104, 40,112, 41, 10, 9, 9,112, 111,115,116, 95,111,117,116,112,117,116, 95,104,111,111,107, 40,112, 41, 10, 9, 9,112,111,112, 40, 41, 10, 9,101,110, 100, 10, 10, 9,105,102, 32,102,108, 97,103,115, 46,111, 32, 116,104,101,110, 10, 9, 9,119,114,105,116,101,116,111, 40, 41, 10, 9,101,110,100, 10, 10, 9, 45, 45, 32,119,114,105, 116,101, 32,104,101, 97,100,101,114, 32,102,105,108,101, 10, 9,105,102, 32,110,111,116, 32,102,108, 97,103,115, 46, 80, 32,116,104,101,110, 10, 9, 9,105,102, 32,102,108, 97,103, 115, 46, 72, 32,116,104,101,110, 10, 9, 9, 9,108,111, 99, 97,108, 32,115,116, 44,109,115,103, 32, 61, 32,119,114,105, 116,101,116,111, 40,102,108, 97,103,115, 46, 72, 41, 10, 9, 9, 9,105,102, 32,110,111,116, 32,115,116, 32,116,104,101, 110, 10, 9, 9, 9, 9,101,114,114,111,114, 40, 39, 35, 39, 46, 46,109,115,103, 41, 10, 9, 9, 9,101,110,100, 10, 9, 9, 9,112, 58,104,101, 97,100,101,114, 40, 41, 10, 9, 9, 9,119,114,105,116,101,116,111, 40, 41, 10, 9, 9,101,110, 100, 10, 9,101,110,100, 10,101,110,100,32 }; tolua_dobuffer(tolua_S,(char*)B,sizeof(B),"tolua embedded: src/bin/lua/doit.lua"); lua_settop(tolua_S, top); } /* end of embedded lua code */ { /* begin embedded lua code */ int top = lua_gettop(tolua_S); static unsigned char B[] = { 10,108,111, 99, 97,108, 32,101,114,114, 44,109,115,103, 32, 61, 32,112, 99, 97,108,108, 40,100,111,105,116, 41, 10,105, 102, 32,110,111,116, 32,101,114,114, 32,116,104,101,110, 10, 32,108,111, 99, 97,108, 32, 95, 44, 95, 44,108, 97, 98,101, 108, 44,109,115,103, 32, 61, 32,115,116,114,102,105,110,100, 40,109,115,103, 44, 34, 40, 46, 45, 58, 46, 45, 58, 37,115, 42, 41, 40, 46, 42, 41, 34, 41, 10, 32,116,111,108,117, 97, 95,101,114,114,111,114, 40,109,115,103, 44,108, 97, 98,101, 108, 41, 10, 32,112,114,105,110,116, 40,100,101, 98,117,103, 46,116,114, 97, 99,101, 98, 97, 99,107, 40, 41, 41, 10,101, 110,100,32 }; tolua_dobuffer(tolua_S,(char*)B,sizeof(B),"tolua: embedded Lua code 23"); lua_settop(tolua_S, top); } /* end of embedded lua code */ tolua_endmodule(tolua_S); return 1; } #if defined(LUA_VERSION_NUM) && LUA_VERSION_NUM >= 501 TOLUA_API int luaopen_tolua (lua_State* tolua_S) { return tolua_tolua_open(tolua_S); } #endif conky-1.19.6/3rdparty/toluapp/src/bin/toluabind.h000066400000000000000000000002661451224556600216760ustar00rootroot00000000000000/* ** Lua binding: tolua ** Generated automatically by tolua++-1.0.92 on Sun Feb 15 22:29:48 2009. */ /* Exported function */ TOLUA_API int tolua_tolua_open (lua_State* tolua_S); conky-1.19.6/3rdparty/toluapp/src/bin/toluabind_default.c000066400000000000000000017457621451224556600234170ustar00rootroot00000000000000/* ** Lua binding: tolua ** Generated automatically by tolua++-1.0.92 on Fri Dec 28 21:37:36 2007. */ #ifndef __cplusplus #include "stdlib.h" #endif #include "string.h" #include "tolua++.h" /* Exported function */ TOLUA_API int tolua_tolua_open (lua_State* tolua_S); /* function to register type */ static void tolua_reg_types (lua_State* tolua_S) { } /* Open function */ TOLUA_API int tolua_tolua_open (lua_State* tolua_S) { tolua_open(tolua_S); tolua_reg_types(tolua_S); tolua_module(tolua_S,NULL,0); tolua_beginmodule(tolua_S,NULL); { /* begin embedded lua code */ int top = lua_gettop(tolua_S); static unsigned char B[] = { 105,102, 32,115,116,114,105,110,103, 46,102,105,110,100, 40, 95, 86, 69, 82, 83, 73, 79, 78, 44, 32, 34, 53, 37, 46, 48, 34, 41, 32,116,104,101,110, 13, 10, 9,114,101,116,117,114, 110, 13, 10,101,110,100, 13, 10, 13, 10, 45, 45, 32, 34,108, 111, 97,100,102,105,108,101, 34, 13, 10,108,111, 99, 97,108, 32,102,117,110, 99,116,105,111,110, 32,112,112, 95,100,111, 102,105,108,101, 40,112, 97,116,104, 41, 13, 10, 13, 10, 9, 108,111, 99, 97,108, 32,108,111, 97,100,101,100, 32, 61, 32, 102, 97,108,115,101, 13, 10, 9,108,111, 99, 97,108, 32,103, 101,116,102,105,108,101, 32, 61, 32,102,117,110, 99,116,105, 111,110, 40, 41, 13, 10, 13, 10, 9, 9,105,102, 32,108,111, 97,100,101,100, 32,116,104,101,110, 13, 10, 9, 9, 9,114, 101,116,117,114,110, 13, 10, 9, 9,101,108,115,101, 13, 10, 9, 9, 9,108,111, 99, 97,108, 32,102,105,108,101, 44,101, 114,114, 32, 61, 32,105,111, 46,111,112,101,110, 40,112, 97, 116,104, 41, 13, 10, 9, 9, 9,105,102, 32,110,111,116, 32, 102,105,108,101, 32,116,104,101,110, 13, 10, 9, 9, 9, 9, 101,114,114,111,114, 40, 34,101,114,114,111,114, 32,108,111, 97,100,105,110,103, 32,102,105,108,101, 32, 34, 46, 46,112, 97,116,104, 46, 46, 34, 58, 32, 34, 46, 46,101,114,114, 41, 13, 10, 9, 9, 9,101,110,100, 13, 10, 9, 9, 9,108,111, 99, 97,108, 32,114,101,116, 32, 61, 32,102,105,108,101, 58, 114,101, 97,100, 40, 34, 42, 97, 34, 41, 13, 10, 9, 9, 9, 102,105,108,101, 58, 99,108,111,115,101, 40, 41, 13, 10, 13, 10, 9, 9, 9,114,101,116, 32, 61, 32,115,116,114,105,110, 103, 46,103,115,117, 98, 40,114,101,116, 44, 32, 34, 37, 46, 37, 46, 37, 46, 37,115, 42, 37, 41, 34, 44, 32, 34, 46, 46, 46, 41, 32,108,111, 99, 97,108, 32, 97,114,103, 32, 61, 32, 123,110, 61,115,101,108,101, 99,116, 40, 39, 35, 39, 44, 32, 46, 46, 46, 41, 44, 32, 46, 46, 46,125, 59, 34, 41, 13, 10, 13, 10, 9, 9, 9,108,111, 97,100,101,100, 32, 61, 32,116, 114,117,101, 13, 10, 9, 9, 9,114,101,116,117,114,110, 32, 114,101,116, 13, 10, 9, 9,101,110,100, 13, 10, 9,101,110, 100, 13, 10, 13, 10, 9,108,111, 99, 97,108, 32,102, 32, 61, 32,108,111, 97,100, 40,103,101,116,102,105,108,101, 44, 32, 112, 97,116,104, 41, 13, 10, 9,105,102, 32,110,111,116, 32, 102, 32,116,104,101,110, 13, 10, 9, 13, 10, 9, 9,101,114, 114,111,114, 40, 34,101,114,114,111,114, 32,108,111, 97,100, 105,110,103, 32,102,105,108,101, 32, 34, 46, 46,112, 97,116, 104, 41, 13, 10, 9,101,110,100, 13, 10, 9,114,101,116,117, 114,110, 32,102, 40, 41, 13, 10,101,110,100, 13, 10, 13, 10, 111,108,100, 95,100,111,102,105,108,101, 32, 61, 32,100,111, 102,105,108,101, 13, 10,100,111,102,105,108,101, 32, 61, 32, 112,112, 95,100,111,102,105,108,101, 13, 10, 13, 10, 13, 10, 45, 45, 32,115,116,114,105,110,103, 46,103,115,117, 98, 13, 10, 45, 45, 91, 91, 13, 10,108,111, 99, 97,108, 32,111,103, 115,117, 98, 32, 61, 32,115,116,114,105,110,103, 46,103,115, 117, 98, 13, 10,108,111, 99, 97,108, 32,102,117,110, 99,116, 105,111,110, 32, 99,111,109,112,103,115,117, 98, 40, 97, 44, 98, 44, 99, 44,100, 41, 13, 10, 32, 32,105,102, 32,116,121, 112,101, 40, 99, 41, 32, 61, 61, 32, 34,102,117,110, 99,116, 105,111,110, 34, 32,116,104,101,110, 13, 10, 32, 32, 32, 32, 108,111, 99, 97,108, 32,111, 99, 32, 61, 32, 99, 13, 10, 32, 32, 32, 32, 99, 32, 61, 32,102,117,110, 99,116,105,111,110, 32, 40, 46, 46, 46, 41, 32,114,101,116,117,114,110, 32,111, 99, 40, 46, 46, 46, 41, 32,111,114, 32, 39, 39, 32,101,110, 100, 13, 10, 32, 32,101,110,100, 13, 10, 32, 32,114,101,116, 117,114,110, 32,111,103,115,117, 98, 40, 97, 44, 98, 44, 99, 44,100, 41, 13, 10,101,110,100, 13, 10,115,116,114,105,110, 103, 46,114,101,112,108, 32, 61, 32,111,103,115,117, 98, 13, 10, 45, 45, 93, 93, 13, 10, 13, 10, 45, 45,115,116,114,105, 110,103, 46,103,115,117, 98, 32, 61, 32, 99,111,109,112,103, 115,117, 98, 13,32 }; tolua_dobuffer(tolua_S,(char*)B,sizeof(B),"tolua embedded: lua/tolua++/src/bin/lua/compat-5.1.lua"); lua_settop(tolua_S, top); } /* end of embedded lua code */ { /* begin embedded lua code */ int top = lua_gettop(tolua_S); static unsigned char B[] = { 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 10, 45, 45, 32, 82,101, 97,108, 32,103,108,111, 98, 97,108,115, 10, 45, 45, 32, 95, 65, 76, 69, 82, 84, 10, 45, 45, 32, 95, 69, 82, 82, 79, 82, 77, 69, 83, 83, 65, 71, 69, 10, 45, 45, 32, 95, 86, 69, 82, 83, 73, 79, 78, 10, 45, 45, 32, 95, 71, 10, 45, 45, 32, 97,115,115, 101,114,116, 10, 45, 45, 32,101,114,114,111,114, 10, 45, 45, 32,109,101,116, 97,116, 97, 98,108,101, 10, 45, 45, 32,110, 101,120,116, 10, 45, 45, 32,112,114,105,110,116, 10, 45, 45, 32,114,101,113,117,105,114,101, 10, 45, 45, 32,116,111,110, 117,109, 98,101,114, 10, 45, 45, 32,116,111,115,116,114,105, 110,103, 10, 45, 45, 32,116,121,112,101, 10, 45, 45, 32,117, 110,112, 97, 99,107, 10, 10, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 10, 45, 45, 32, 99,111,108,108,101, 99,116,103, 97,114, 98, 97, 103,101, 10, 45, 45, 32,103, 99,105,110,102,111, 10, 10, 45, 45, 32,103,108,111, 98, 97,108,115, 10, 10, 45, 45, 32, 99, 97,108,108, 32, 32, 32, 45, 62, 32,112,114,111,116,101, 99, 116, 40,102, 44, 32,101,114,114, 41, 10, 45, 45, 32,108,111, 97,100,102,105,108,101, 10, 45, 45, 32,108,111, 97,100,115, 116,114,105,110,103, 10, 10, 45, 45, 32,114, 97,119,103,101, 116, 10, 45, 45, 32,114, 97,119,115,101,116, 10, 10, 45, 45, 32,103,101,116, 97,114,103,115, 32, 61, 32, 77, 97,105,110, 46,103,101,116, 97,114,103,115, 32, 63, 63, 10, 10,114, 97, 119,116,121,112,101, 32, 61, 32,116,121,112,101, 10, 10,102, 117,110, 99,116,105,111,110, 32,100,111, 95, 32, 40,102, 44, 32,101,114,114, 41, 10, 32, 32,105,102, 32,110,111,116, 32, 102, 32,116,104,101,110, 32,112,114,105,110,116, 40,101,114, 114, 41, 59, 32,114,101,116,117,114,110, 32,101,110,100, 10, 32, 32,108,111, 99, 97,108, 32, 97, 44, 98, 32, 61, 32,112, 99, 97,108,108, 40,102, 41, 10, 32, 32,105,102, 32,110,111, 116, 32, 97, 32,116,104,101,110, 32,112,114,105,110,116, 40, 98, 41, 59, 32,114,101,116,117,114,110, 32,110,105,108, 10, 32, 32,101,108,115,101, 32,114,101,116,117,114,110, 32, 98, 32,111,114, 32,116,114,117,101, 10, 32, 32,101,110,100, 10, 101,110,100, 10, 10,102,117,110, 99,116,105,111,110, 32,100, 111,115,116,114,105,110,103, 40,115, 41, 32,114,101,116,117, 114,110, 32,100,111, 95, 40,108,111, 97,100,115,116,114,105, 110,103, 40,115, 41, 41, 32,101,110,100, 10, 45, 45, 32,102, 117,110, 99,116,105,111,110, 32,100,111,102,105,108,101, 40, 115, 41, 32,114,101,116,117,114,110, 32,100,111, 95, 40,108, 111, 97,100,102,105,108,101, 40,115, 41, 41, 32,101,110,100, 10, 10, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 10, 45, 45, 32, 84, 97, 98,108,101, 32,108,105, 98,114, 97,114,121, 10,108,111, 99, 97,108, 32,116, 97, 98, 32, 61, 32,116, 97, 98,108,101, 10, 102,111,114,101, 97, 99,104, 32, 61, 32,116, 97, 98, 46,102, 111,114,101, 97, 99,104, 10,102,111,114,101, 97, 99,104,105, 32, 61, 32,116, 97, 98, 46,102,111,114,101, 97, 99,104,105, 10,103,101,116,110, 32, 61, 32,116, 97, 98, 46,103,101,116, 110, 10,116,105,110,115,101,114,116, 32, 61, 32,116, 97, 98, 46,105,110,115,101,114,116, 10,116,114,101,109,111,118,101, 32, 61, 32,116, 97, 98, 46,114,101,109,111,118,101, 10,115, 111,114,116, 32, 61, 32,116, 97, 98, 46,115,111,114,116, 10, 10, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 10, 45, 45, 32, 68,101, 98, 117,103, 32,108,105, 98,114, 97,114,121, 10,108,111, 99, 97, 108, 32,100, 98,103, 32, 61, 32,100,101, 98,117,103, 10,103, 101,116,105,110,102,111, 32, 61, 32,100, 98,103, 46,103,101, 116,105,110,102,111, 10,103,101,116,108,111, 99, 97,108, 32, 61, 32,100, 98,103, 46,103,101,116,108,111, 99, 97,108, 10, 115,101,116, 99, 97,108,108,104,111,111,107, 32, 61, 32,102, 117,110, 99,116,105,111,110, 32, 40, 41, 32,101,114,114,111, 114, 34, 96,115,101,116, 99, 97,108,108,104,111,111,107, 39, 32,105,115, 32,100,101,112,114,101, 99, 97,116,101,100, 34, 32,101,110,100, 10,115,101,116,108,105,110,101,104,111,111, 107, 32, 61, 32,102,117,110, 99,116,105,111,110, 32, 40, 41, 32,101,114,114,111,114, 34, 96,115,101,116,108,105,110,101, 104,111,111,107, 39, 32,105,115, 32,100,101,112,114,101, 99, 97,116,101,100, 34, 32,101,110,100, 10,115,101,116,108,111, 99, 97,108, 32, 61, 32,100, 98,103, 46,115,101,116,108,111, 99, 97,108, 10, 10, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 10, 45, 45, 32,109, 97,116,104, 32,108,105, 98,114, 97,114,121, 10,108, 111, 99, 97,108, 32,109, 97,116,104, 32, 61, 32,109, 97,116, 104, 10, 97, 98,115, 32, 61, 32,109, 97,116,104, 46, 97, 98, 115, 10, 97, 99,111,115, 32, 61, 32,102,117,110, 99,116,105, 111,110, 32, 40,120, 41, 32,114,101,116,117,114,110, 32,109, 97,116,104, 46,100,101,103, 40,109, 97,116,104, 46, 97, 99, 111,115, 40,120, 41, 41, 32,101,110,100, 10, 97,115,105,110, 32, 61, 32,102,117,110, 99,116,105,111,110, 32, 40,120, 41, 32,114,101,116,117,114,110, 32,109, 97,116,104, 46,100,101, 103, 40,109, 97,116,104, 46, 97,115,105,110, 40,120, 41, 41, 32,101,110,100, 10, 97,116, 97,110, 32, 61, 32,102,117,110, 99,116,105,111,110, 32, 40,120, 41, 32,114,101,116,117,114, 110, 32,109, 97,116,104, 46,100,101,103, 40,109, 97,116,104, 46, 97,116, 97,110, 40,120, 41, 41, 32,101,110,100, 10, 97, 116, 97,110, 50, 32, 61, 32,102,117,110, 99,116,105,111,110, 32, 40,120, 44,121, 41, 32,114,101,116,117,114,110, 32,109, 97,116,104, 46,100,101,103, 40,109, 97,116,104, 46, 97,116, 97,110, 50, 40,120, 44,121, 41, 41, 32,101,110,100, 10, 99, 101,105,108, 32, 61, 32,109, 97,116,104, 46, 99,101,105,108, 10, 99,111,115, 32, 61, 32,102,117,110, 99,116,105,111,110, 32, 40,120, 41, 32,114,101,116,117,114,110, 32,109, 97,116, 104, 46, 99,111,115, 40,109, 97,116,104, 46,114, 97,100, 40, 120, 41, 41, 32,101,110,100, 10,100,101,103, 32, 61, 32,109, 97,116,104, 46,100,101,103, 10,101,120,112, 32, 61, 32,109, 97,116,104, 46,101,120,112, 10,102,108,111,111,114, 32, 61, 32,109, 97,116,104, 46,102,108,111,111,114, 10,102,114,101, 120,112, 32, 61, 32,109, 97,116,104, 46,102,114,101,120,112, 10,108,100,101,120,112, 32, 61, 32,109, 97,116,104, 46,108, 100,101,120,112, 10,108,111,103, 32, 61, 32,109, 97,116,104, 46,108,111,103, 10,108,111,103, 49, 48, 32, 61, 32,109, 97, 116,104, 46,108,111,103, 49, 48, 10,109, 97,120, 32, 61, 32, 109, 97,116,104, 46,109, 97,120, 10,109,105,110, 32, 61, 32, 109, 97,116,104, 46,109,105,110, 10,109,111,100, 32, 61, 32, 109, 97,116,104, 46,109,111,100, 10, 80, 73, 32, 61, 32,109, 97,116,104, 46,112,105, 10, 45, 45, 63, 63, 63, 32,112,111, 119, 32, 61, 32,109, 97,116,104, 46,112,111,119, 32, 32, 10, 114, 97,100, 32, 61, 32,109, 97,116,104, 46,114, 97,100, 10, 114, 97,110,100,111,109, 32, 61, 32,109, 97,116,104, 46,114, 97,110,100,111,109, 10,114, 97,110,100,111,109,115,101,101, 100, 32, 61, 32,109, 97,116,104, 46,114, 97,110,100,111,109, 115,101,101,100, 10,115,105,110, 32, 61, 32,102,117,110, 99, 116,105,111,110, 32, 40,120, 41, 32,114,101,116,117,114,110, 32,109, 97,116,104, 46,115,105,110, 40,109, 97,116,104, 46, 114, 97,100, 40,120, 41, 41, 32,101,110,100, 10,115,113,114, 116, 32, 61, 32,109, 97,116,104, 46,115,113,114,116, 10,116, 97,110, 32, 61, 32,102,117,110, 99,116,105,111,110, 32, 40, 120, 41, 32,114,101,116,117,114,110, 32,109, 97,116,104, 46, 116, 97,110, 40,109, 97,116,104, 46,114, 97,100, 40,120, 41, 41, 32,101,110,100, 10, 10, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 10, 45, 45, 32,115,116,114,105,110,103, 32,108,105, 98,114, 97, 114,121, 10,108,111, 99, 97,108, 32,115,116,114, 32, 61, 32, 115,116,114,105,110,103, 10,115,116,114, 98,121,116,101, 32, 61, 32,115,116,114, 46, 98,121,116,101, 10,115,116,114, 99, 104, 97,114, 32, 61, 32,115,116,114, 46, 99,104, 97,114, 10, 115,116,114,102,105,110,100, 32, 61, 32,115,116,114, 46,102, 105,110,100, 10,102,111,114,109, 97,116, 32, 61, 32,115,116, 114, 46,102,111,114,109, 97,116, 10,103,115,117, 98, 32, 61, 32,115,116,114, 46,103,115,117, 98, 10,115,116,114,108,101, 110, 32, 61, 32,115,116,114, 46,108,101,110, 10,115,116,114, 108,111,119,101,114, 32, 61, 32,115,116,114, 46,108,111,119, 101,114, 10,115,116,114,114,101,112, 32, 61, 32,115,116,114, 46,114,101,112, 10,115,116,114,115,117, 98, 32, 61, 32,115, 116,114, 46,115,117, 98, 10,115,116,114,117,112,112,101,114, 32, 61, 32,115,116,114, 46,117,112,112,101,114, 10, 10, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 10, 45, 45, 32,111,115, 32,108,105, 98,114, 97,114,121, 10, 99,108,111, 99,107, 32, 61, 32,111, 115, 46, 99,108,111, 99,107, 10,100, 97,116,101, 32, 61, 32, 111,115, 46,100, 97,116,101, 10,100,105,102,102,116,105,109, 101, 32, 61, 32,111,115, 46,100,105,102,102,116,105,109,101, 10,101,120,101, 99,117,116,101, 32, 61, 32,111,115, 46,101, 120,101, 99,117,116,101, 32, 45, 45, 63, 10,101,120,105,116, 32, 61, 32,111,115, 46,101,120,105,116, 10,103,101,116,101, 110,118, 32, 61, 32,111,115, 46,103,101,116,101,110,118, 10, 114,101,109,111,118,101, 32, 61, 32,111,115, 46,114,101,109, 111,118,101, 10,114,101,110, 97,109,101, 32, 61, 32,111,115, 46,114,101,110, 97,109,101, 10,115,101,116,108,111, 99, 97, 108,101, 32, 61, 32,111,115, 46,115,101,116,108,111, 99, 97, 108,101, 10,116,105,109,101, 32, 61, 32,111,115, 46,116,105, 109,101, 10,116,109,112,110, 97,109,101, 32, 61, 32,111,115, 46,116,109,112,110, 97,109,101, 10, 10, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 10, 45, 45, 32, 99,111,109,112, 97,116,105, 98,105, 108,105,116,121, 32,111,110,108,121, 10,103,101,116,103,108, 111, 98, 97,108, 32, 61, 32,102,117,110, 99,116,105,111,110, 32, 40,110, 41, 32,114,101,116,117,114,110, 32, 95, 71, 91, 110, 93, 32,101,110,100, 10,115,101,116,103,108,111, 98, 97, 108, 32, 61, 32,102,117,110, 99,116,105,111,110, 32, 40,110, 44,118, 41, 32, 95, 71, 91,110, 93, 32, 61, 32,118, 32,101, 110,100, 10, 10, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 10, 10,108,111, 99, 97,108, 32,105,111, 44, 32,116, 97, 98, 32, 61, 32,105, 111, 44, 32,116, 97, 98,108,101, 10, 10, 45, 45, 32, 73, 79, 32,108,105, 98,114, 97,114,121, 32, 40,102,105,108,101,115, 41, 10, 95, 83, 84, 68, 73, 78, 32, 61, 32,105,111, 46,115, 116,100,105,110, 10, 95, 83, 84, 68, 69, 82, 82, 32, 61, 32, 105,111, 46,115,116,100,101,114,114, 10, 95, 83, 84, 68, 79, 85, 84, 32, 61, 32,105,111, 46,115,116,100,111,117,116, 10, 95, 73, 78, 80, 85, 84, 32, 61, 32,105,111, 46,115,116,100, 105,110, 10, 95, 79, 85, 84, 80, 85, 84, 32, 61, 32,105,111, 46,115,116,100,111,117,116, 10,115,101,101,107, 32, 61, 32, 105,111, 46,115,116,100,105,110, 46,115,101,101,107, 32, 32, 32, 45, 45, 32,115,105, 99,107, 32, 59, 45, 41, 10,116,109, 112,102,105,108,101, 32, 61, 32,105,111, 46,116,109,112,102, 105,108,101, 10, 99,108,111,115,101,102,105,108,101, 32, 61, 32,105,111, 46, 99,108,111,115,101, 10,111,112,101,110,102, 105,108,101, 32, 61, 32,105,111, 46,111,112,101,110, 10, 10, 102,117,110, 99,116,105,111,110, 32,102,108,117,115,104, 32, 40,102, 41, 10, 32, 32,105,102, 32,102, 32,116,104,101,110, 32,102, 58,102,108,117,115,104, 40, 41, 10, 32, 32,101,108, 115,101, 32, 95, 79, 85, 84, 80, 85, 84, 58,102,108,117,115, 104, 40, 41, 10, 32, 32,101,110,100, 10,101,110,100, 10, 10, 102,117,110, 99,116,105,111,110, 32,114,101, 97,100,102,114, 111,109, 32, 40,110, 97,109,101, 41, 10, 32, 32,105,102, 32, 110, 97,109,101, 32, 61, 61, 32,110,105,108, 32,116,104,101, 110, 10, 32, 32, 32, 32,108,111, 99, 97,108, 32,102, 44, 32, 101,114,114, 44, 32, 99,111,100, 32, 61, 32,105,111, 46, 99, 108,111,115,101, 40, 95, 73, 78, 80, 85, 84, 41, 10, 32, 32, 32, 32, 95, 73, 78, 80, 85, 84, 32, 61, 32,105,111, 46,115, 116,100,105,110, 10, 32, 32, 32, 32,114,101,116,117,114,110, 32,102, 44, 32,101,114,114, 44, 32, 99,111,100, 10, 32, 32, 101,108,115,101, 10, 32, 32, 32, 32,108,111, 99, 97,108, 32, 102, 44, 32,101,114,114, 44, 32, 99,111,100, 32, 61, 32,105, 111, 46,111,112,101,110, 40,110, 97,109,101, 44, 32, 34,114, 34, 41, 10, 32, 32, 32, 32, 95, 73, 78, 80, 85, 84, 32, 61, 32,102, 32,111,114, 32, 95, 73, 78, 80, 85, 84, 10, 32, 32, 32, 32,114,101,116,117,114,110, 32,102, 44, 32,101,114,114, 44, 32, 99,111,100, 10, 32, 32,101,110,100, 10,101,110,100, 10, 10,102,117,110, 99,116,105,111,110, 32,119,114,105,116, 101,116,111, 32, 40,110, 97,109,101, 41, 10, 32, 32,105,102, 32,110, 97,109,101, 32, 61, 61, 32,110,105,108, 32,116,104, 101,110, 10, 32, 32, 32, 32,108,111, 99, 97,108, 32,102, 44, 32,101,114,114, 44, 32, 99,111,100, 32, 61, 32,105,111, 46, 99,108,111,115,101, 40, 95, 79, 85, 84, 80, 85, 84, 41, 10, 32, 32, 32, 32, 95, 79, 85, 84, 80, 85, 84, 32, 61, 32,105, 111, 46,115,116,100,111,117,116, 10, 32, 32, 32, 32,114,101, 116,117,114,110, 32,102, 44, 32,101,114,114, 44, 32, 99,111, 100, 10, 32, 32,101,108,115,101, 10, 32, 32, 32, 32,108,111, 99, 97,108, 32,102, 44, 32,101,114,114, 44, 32, 99,111,100, 32, 61, 32,105,111, 46,111,112,101,110, 40,110, 97,109,101, 44, 32, 34,119, 34, 41, 10, 32, 32, 32, 32, 95, 79, 85, 84, 80, 85, 84, 32, 61, 32,102, 32,111,114, 32, 95, 79, 85, 84, 80, 85, 84, 10, 32, 32, 32, 32,114,101,116,117,114,110, 32, 102, 44, 32,101,114,114, 44, 32, 99,111,100, 10, 32, 32,101, 110,100, 10,101,110,100, 10, 10,102,117,110, 99,116,105,111, 110, 32, 97,112,112,101,110,100,116,111, 32, 40,110, 97,109, 101, 41, 10, 32, 32,108,111, 99, 97,108, 32,102, 44, 32,101, 114,114, 44, 32, 99,111,100, 32, 61, 32,105,111, 46,111,112, 101,110, 40,110, 97,109,101, 44, 32, 34, 97, 34, 41, 10, 32, 32, 95, 79, 85, 84, 80, 85, 84, 32, 61, 32,102, 32,111,114, 32, 95, 79, 85, 84, 80, 85, 84, 10, 32, 32,114,101,116,117, 114,110, 32,102, 44, 32,101,114,114, 44, 32, 99,111,100, 10, 101,110,100, 10, 10,102,117,110, 99,116,105,111,110, 32,114, 101, 97,100, 32, 40, 46, 46, 46, 41, 10, 32, 32,108,111, 99, 97,108, 32,102, 32, 61, 32, 95, 73, 78, 80, 85, 84, 10, 32, 32,105,102, 32,114, 97,119,116,121,112,101, 40, 97,114,103, 91, 49, 93, 41, 32, 61, 61, 32, 39,117,115,101,114,100, 97, 116, 97, 39, 32,116,104,101,110, 10, 32, 32, 32, 32,102, 32, 61, 32,116, 97, 98, 46,114,101,109,111,118,101, 40, 97,114, 103, 44, 32, 49, 41, 10, 32, 32,101,110,100, 10, 32, 32,114, 101,116,117,114,110, 32,102, 58,114,101, 97,100, 40,117,110, 112, 97, 99,107, 40, 97,114,103, 41, 41, 10,101,110,100, 10, 10,102,117,110, 99,116,105,111,110, 32,119,114,105,116,101, 32, 40, 46, 46, 46, 41, 10, 32, 32,108,111, 99, 97,108, 32, 102, 32, 61, 32, 95, 79, 85, 84, 80, 85, 84, 10, 32, 32,105, 102, 32,114, 97,119,116,121,112,101, 40, 97,114,103, 91, 49, 93, 41, 32, 61, 61, 32, 39,117,115,101,114,100, 97,116, 97, 39, 32,116,104,101,110, 10, 32, 32, 32, 32,102, 32, 61, 32, 116, 97, 98, 46,114,101,109,111,118,101, 40, 97,114,103, 44, 32, 49, 41, 10, 32, 32,101,110,100, 10, 32, 32,114,101,116, 117,114,110, 32,102, 58,119,114,105,116,101, 40,117,110,112, 97, 99,107, 40, 97,114,103, 41, 41, 10,101,110,100,32 }; tolua_dobuffer(tolua_S,(char*)B,sizeof(B),"tolua embedded: lua/tolua++/src/bin/lua/compat.lua"); lua_settop(tolua_S, top); } /* end of embedded lua code */ { /* begin embedded lua code */ int top = lua_gettop(tolua_S); static unsigned char B[] = { 45, 45, 32,116,111,108,117, 97, 58, 32, 98, 97,115,105, 99, 32,117,116,105,108,105,116,121, 32,102,117,110, 99,116,105, 111,110,115, 10, 45, 45, 32, 87,114,105,116,116,101,110, 32, 98,121, 32, 87, 97,108,100,101,109, 97,114, 32, 67,101,108, 101,115, 10, 45, 45, 32, 84,101, 67, 71,114, 97,102, 47, 80, 85, 67, 45, 82,105,111, 10, 45, 45, 32, 74,117,108, 32, 49, 57, 57, 56, 10, 45, 45, 32, 76, 97,115,116, 32,117,112,100, 97,116,101, 58, 32, 65,112,114, 32, 50, 48, 48, 51, 10, 45, 45, 32, 36, 73,100, 58, 32, 36, 10, 10, 45, 45, 32, 84,104, 105,115, 32, 99,111,100,101, 32,105,115, 32,102,114,101,101, 32,115,111,102,116,119, 97,114,101, 59, 32,121,111,117, 32, 99, 97,110, 32,114,101,100,105,115,116,114,105, 98,117,116, 101, 32,105,116, 32, 97,110,100, 47,111,114, 32,109,111,100, 105,102,121, 32,105,116, 46, 10, 45, 45, 32, 84,104,101, 32, 115,111,102,116,119, 97,114,101, 32,112,114,111,118,105,100, 101,100, 32,104,101,114,101,117,110,100,101,114, 32,105,115, 32,111,110, 32, 97,110, 32, 34, 97,115, 32,105,115, 34, 32, 98, 97,115,105,115, 44, 32, 97,110,100, 10, 45, 45, 32,116, 104,101, 32, 97,117,116,104,111,114, 32,104, 97,115, 32,110, 111, 32,111, 98,108,105,103, 97,116,105,111,110, 32,116,111, 32,112,114,111,118,105,100,101, 32,109, 97,105,110,116,101, 110, 97,110, 99,101, 44, 32,115,117,112,112,111,114,116, 44, 32,117,112,100, 97,116,101,115, 44, 10, 45, 45, 32,101,110, 104, 97,110, 99,101,109,101,110,116,115, 44, 32,111,114, 32, 109,111,100,105,102,105, 99, 97,116,105,111,110,115, 46, 10, 10, 10, 45, 45, 32, 66, 97,115,105, 99, 32, 67, 32,116,121, 112,101,115, 32, 97,110,100, 32,116,104,101,105,114, 32, 99, 111,114,114,101,115,112,111,110,100,105,110,103, 32, 76,117, 97, 32,116,121,112,101,115, 10, 45, 45, 32, 65,108,108, 32, 111, 99, 99,117,114,114,101,110, 99,101,115, 32,111,102, 32, 34, 99,104, 97,114, 42, 34, 32,119,105,108,108, 32, 98,101, 32,114,101,112,108, 97, 99,101,100, 32, 98,121, 32, 34, 95, 99,115,116,114,105,110,103, 34, 44, 10, 45, 45, 32, 97,110, 100, 32, 97,108,108, 32,111, 99, 99,117,114,114,101,110, 99, 101,115, 32,111,102, 32, 34,118,111,105,100, 42, 34, 32,119, 105,108,108, 32, 98,101, 32,114,101,112,108, 97, 99,101,100, 32, 98,121, 32, 34, 95,117,115,101,114,100, 97,116, 97, 34, 10, 95, 98, 97,115,105, 99, 32, 61, 32,123, 10, 32, 91, 39, 118,111,105,100, 39, 93, 32, 61, 32, 39, 39, 44, 10, 32, 91, 39, 99,104, 97,114, 39, 93, 32, 61, 32, 39,110,117,109, 98, 101,114, 39, 44, 10, 32, 91, 39,105,110,116, 39, 93, 32, 61, 32, 39,110,117,109, 98,101,114, 39, 44, 10, 32, 91, 39,115, 104,111,114,116, 39, 93, 32, 61, 32, 39,110,117,109, 98,101, 114, 39, 44, 10, 32, 91, 39,108,111,110,103, 39, 93, 32, 61, 32, 39,110,117,109, 98,101,114, 39, 44, 10, 32, 91, 39,117, 110,115,105,103,110,101,100, 39, 93, 32, 61, 32, 39,110,117, 109, 98,101,114, 39, 44, 10, 32, 91, 39,102,108,111, 97,116, 39, 93, 32, 61, 32, 39,110,117,109, 98,101,114, 39, 44, 10, 32, 91, 39,100,111,117, 98,108,101, 39, 93, 32, 61, 32, 39, 110,117,109, 98,101,114, 39, 44, 10, 32, 91, 39, 95, 99,115, 116,114,105,110,103, 39, 93, 32, 61, 32, 39,115,116,114,105, 110,103, 39, 44, 10, 32, 91, 39, 95,117,115,101,114,100, 97, 116, 97, 39, 93, 32, 61, 32, 39,117,115,101,114,100, 97,116, 97, 39, 44, 10, 32, 91, 39, 99,104, 97,114, 42, 39, 93, 32, 61, 32, 39,115,116,114,105,110,103, 39, 44, 10, 32, 91, 39, 118,111,105,100, 42, 39, 93, 32, 61, 32, 39,117,115,101,114, 100, 97,116, 97, 39, 44, 10, 32, 91, 39, 98,111,111,108, 39, 93, 32, 61, 32, 39, 98,111,111,108,101, 97,110, 39, 44, 10, 32, 91, 39,108,117, 97, 95, 79, 98,106,101, 99,116, 39, 93, 32, 61, 32, 39,118, 97,108,117,101, 39, 44, 10, 32, 91, 39, 76, 85, 65, 95, 86, 65, 76, 85, 69, 39, 93, 32, 61, 32, 39, 118, 97,108,117,101, 39, 44, 32, 32, 32, 32, 45, 45, 32,102, 111,114, 32, 99,111,109,112, 97,116,105, 98,105,108,105,116, 121, 32,119,105,116,104, 32,116,111,108,117, 97, 32, 52, 46, 48, 10, 32, 91, 39,108,117, 97, 95, 83,116, 97,116,101, 42, 39, 93, 32, 61, 32, 39,115,116, 97,116,101, 39, 44, 10, 32, 91, 39, 95,108,115,116, 97,116,101, 39, 93, 32, 61, 32, 39, 115,116, 97,116,101, 39, 44, 10, 32, 91, 39,108,117, 97, 95, 70,117,110, 99,116,105,111,110, 39, 93, 32, 61, 32, 39,118, 97,108,117,101, 39, 44, 10,125, 10, 10, 95, 98, 97,115,105, 99, 95, 99,116,121,112,101, 32, 61, 32,123, 10, 32,110,117, 109, 98,101,114, 32, 61, 32, 34,108,117, 97, 95, 78,117,109, 98,101,114, 34, 44, 10, 32,115,116,114,105,110,103, 32, 61, 32, 34, 99,111,110,115,116, 32, 99,104, 97,114, 42, 34, 44, 10, 32,117,115,101,114,100, 97,116, 97, 32, 61, 32, 34,118, 111,105,100, 42, 34, 44, 10, 32, 98,111,111,108,101, 97,110, 32, 61, 32, 34, 98,111,111,108, 34, 44, 10, 32,118, 97,108, 117,101, 32, 61, 32, 34,105,110,116, 34, 44, 10, 32,115,116, 97,116,101, 32, 61, 32, 34,108,117, 97, 95, 83,116, 97,116, 101, 42, 34, 44, 10,125, 10, 10, 45, 45, 32,102,117,110, 99, 116,105,111,110,115, 32,116,104,101, 32, 97,114,101, 32,117, 115,101,100, 32,116,111, 32,100,111, 32, 97, 32, 39,114, 97, 119, 32,112,117,115,104, 39, 32,111,102, 32, 98, 97,115,105, 99, 32,116,121,112,101,115, 10, 95, 98, 97,115,105, 99, 95, 114, 97,119, 95,112,117,115,104, 32, 61, 32,123,125, 10, 10, 45, 45, 32, 76,105,115,116, 32,111,102, 32,117,115,101,114, 32,100,101,102,105,110,101,100, 32,116,121,112,101,115, 10, 45, 45, 32, 69, 97, 99,104, 32,116,121,112,101, 32, 99,111, 114,114,101,115,112,111,110,100,115, 32,116,111, 32, 97, 32, 118, 97,114,105, 97, 98,108,101, 32,110, 97,109,101, 32,116, 104, 97,116, 32,115,116,111,114,101,115, 32,105,116,115, 32, 116, 97,103, 32,118, 97,108,117,101, 46, 10, 95,117,115,101, 114,116,121,112,101, 32, 61, 32,123,125, 10, 10, 45, 45, 32, 76,105,115,116, 32,111,102, 32,116,121,112,101,115, 32,116, 104, 97,116, 32,104, 97,118,101, 32,116,111, 32, 98,101, 32, 99,111,108,108,101, 99,116,101,100, 10, 95, 99,111,108,108, 101, 99,116, 32, 61, 32,123,125, 10, 10, 45, 45, 32, 76,105, 115,116, 32,111,102, 32,116,121,112,101,115, 10, 95,103,108, 111, 98, 97,108, 95,116,121,112,101,115, 32, 61, 32,123,110, 61, 48,125, 10, 95,103,108,111, 98, 97,108, 95,116,121,112, 101,115, 95,104, 97,115,104, 32, 61, 32,123,125, 10, 10, 45, 45, 32,108,105,115,116, 32,111,102, 32, 99,108, 97,115,115, 101,115, 10, 95,103,108,111, 98, 97,108, 95, 99,108, 97,115, 115,101,115, 32, 61, 32,123,125, 10, 10, 45, 45, 32, 76,105, 115,116, 32,111,102, 32,101,110,117,109, 32, 99,111,110,115, 116, 97,110,116,115, 10, 95,103,108,111, 98, 97,108, 95,101, 110,117,109,115, 32, 61, 32,123,125, 10, 10, 45, 45, 32, 76, 105,115,116, 32,111,102, 32, 97,117,116,111, 32,114,101,110, 97,109,105,110,103, 10, 95,114,101,110, 97,109,105,110,103, 32, 61, 32,123,125, 10,102,117,110, 99,116,105,111,110, 32, 97,112,112,101,110,100,114,101,110, 97,109,105,110,103, 32, 40,115, 41, 10, 32,108,111, 99, 97,108, 32, 98, 44,101, 44, 111,108,100, 44,110,101,119, 32, 61, 32,115,116,114,102,105, 110,100, 40,115, 44, 34, 37,115, 42, 40, 46, 45, 41, 37,115, 42, 64, 37,115, 42, 40, 46, 45, 41, 37,115, 42, 36, 34, 41, 10, 9,105,102, 32,110,111,116, 32, 98, 32,116,104,101,110, 10, 9, 32,101,114,114,111,114, 40, 34, 35, 73,110,118, 97, 108,105,100, 32,114,101,110, 97,109,105,110,103, 32,115,121, 110,116, 97,120, 59, 32,105,116, 32,115,104,111,117,108,100, 32, 98,101, 32,111,102, 32,116,104,101, 32,102,111,114,109, 58, 32,112, 97,116,116,101,114,110, 64,112, 97,116,116,101, 114,110, 34, 41, 10, 9,101,110,100, 10, 9,116,105,110,115, 101,114,116, 40, 95,114,101,110, 97,109,105,110,103, 44,123, 111,108,100, 61,111,108,100, 44, 32,110,101,119, 61,110,101, 119,125, 41, 10,101,110,100, 10, 10,102,117,110, 99,116,105, 111,110, 32, 97,112,112,108,121,114,101,110, 97,109,105,110, 103, 32, 40,115, 41, 10, 9,102,111,114, 32,105, 61, 49, 44, 103,101,116,110, 40, 95,114,101,110, 97,109,105,110,103, 41, 32,100,111, 10, 9, 32,108,111, 99, 97,108, 32,109, 44,110, 32, 61, 32,103,115,117, 98, 40,115, 44, 95,114,101,110, 97, 109,105,110,103, 91,105, 93, 46,111,108,100, 44, 95,114,101, 110, 97,109,105,110,103, 91,105, 93, 46,110,101,119, 41, 10, 9, 9,105,102, 32,110, 32,126, 61, 32, 48, 32,116,104,101, 110, 10, 9, 9, 32,114,101,116,117,114,110, 32,109, 10, 9, 9,101,110,100, 10, 9,101,110,100, 10, 9,114,101,116,117, 114,110, 32,110,105,108, 10,101,110,100, 10, 10, 45, 45, 32, 69,114,114,111,114, 32,104, 97,110,100,108,101,114, 10,102, 117,110, 99,116,105,111,110, 32,116,111,108,117, 97, 95,101, 114,114,111,114, 32, 40,115, 44,102, 41, 10,105,102, 32, 95, 99,117,114,114, 95, 99,111,100,101, 32,116,104,101,110, 10, 9,112,114,105,110,116, 40, 34, 42, 42, 42, 99,117,114,114, 32, 99,111,100,101, 32,102,111,114, 32,101,114,114,111,114, 32,105,115, 32, 34, 46, 46,116,111,115,116,114,105,110,103, 40, 95, 99,117,114,114, 95, 99,111,100,101, 41, 41, 10, 9, 112,114,105,110,116, 40,100,101, 98,117,103, 46,116,114, 97, 99,101, 98, 97, 99,107, 40, 41, 41, 10,101,110,100, 10, 32, 108,111, 99, 97,108, 32,111,117,116, 32, 61, 32, 95, 79, 85, 84, 80, 85, 84, 10, 32, 95, 79, 85, 84, 80, 85, 84, 32, 61, 32, 95, 83, 84, 68, 69, 82, 82, 10, 32,105,102, 32,115,116, 114,115,117, 98, 40,115, 44, 49, 44, 49, 41, 32, 61, 61, 32, 39, 35, 39, 32,116,104,101,110, 10, 32, 32,119,114,105,116, 101, 40, 34, 92,110, 42, 42, 32,116,111,108,117, 97, 58, 32, 34, 46, 46,115,116,114,115,117, 98, 40,115, 44, 50, 41, 46, 46, 34, 46, 92,110, 92,110, 34, 41, 10, 32, 32,105,102, 32, 95, 99,117,114,114, 95, 99,111,100,101, 32,116,104,101,110, 10, 32, 32, 32,108,111, 99, 97,108, 32, 95, 44, 95, 44,115, 32, 61, 32,115,116,114,102,105,110,100, 40, 95, 99,117,114, 114, 95, 99,111,100,101, 44, 34, 94, 37,115, 42, 40, 46, 45, 92,110, 41, 34, 41, 32, 45, 45, 32,101,120,116,114, 97, 99, 116, 32,102,105,114,115,116, 32,108,105,110,101, 10, 32, 32, 32,105,102, 32,115, 61, 61,110,105,108, 32,116,104,101,110, 32,115, 32, 61, 32, 95, 99,117,114,114, 95, 99,111,100,101, 32,101,110,100, 10, 32, 32, 32,115, 32, 61, 32,103,115,117, 98, 40,115, 44, 34, 95,117,115,101,114,100, 97,116, 97, 34, 44, 34,118,111,105,100, 42, 34, 41, 32, 45, 45, 32,114,101, 116,117,114,110, 32,119,105,116,104, 32, 39,118,111,105,100, 42, 39, 10, 32, 32, 32,115, 32, 61, 32,103,115,117, 98, 40, 115, 44, 34, 95, 99,115,116,114,105,110,103, 34, 44, 34, 99, 104, 97,114, 42, 34, 41, 32, 32, 45, 45, 32,114,101,116,117, 114,110, 32,119,105,116,104, 32, 39, 99,104, 97,114, 42, 39, 10, 32, 32, 32,115, 32, 61, 32,103,115,117, 98, 40,115, 44, 34, 95,108,115,116, 97,116,101, 34, 44, 34,108,117, 97, 95, 83,116, 97,116,101, 42, 34, 41, 32, 32, 45, 45, 32,114,101, 116,117,114,110, 32,119,105,116,104, 32, 39,108,117, 97, 95, 83,116, 97,116,101, 42, 39, 10, 32, 32, 32,119,114,105,116, 101, 40, 34, 67,111,100,101, 32, 98,101,105,110,103, 32,112, 114,111, 99,101,115,115,101,100, 58, 92,110, 34, 46, 46,115, 46, 46, 34, 92,110, 34, 41, 10, 32, 32,101,110,100, 10, 32, 101,108,115,101, 10, 32,105,102, 32,110,111,116, 32,102, 32, 116,104,101,110, 32,102, 32, 61, 32, 34, 40,102, 32,105,115, 32,110,105,108, 41, 34, 32,101,110,100, 10, 32, 32,112,114, 105,110,116, 40, 34, 92,110, 42, 42, 32,116,111,108,117, 97, 32,105,110,116,101,114,110, 97,108, 32,101,114,114,111,114, 58, 32, 34, 46, 46,102, 46, 46,115, 46, 46, 34, 46, 92,110, 92,110, 34, 41, 10, 32, 32,114,101,116,117,114,110, 10, 32, 101,110,100, 10, 32, 95, 79, 85, 84, 80, 85, 84, 32, 61, 32, 111,117,116, 10,101,110,100, 10, 10,102,117,110, 99,116,105, 111,110, 32,119, 97,114,110,105,110,103, 32, 40,109,115,103, 41, 10, 32,105,102, 32,102,108, 97,103,115, 46,113, 32,116, 104,101,110, 32,114,101,116,117,114,110, 32,101,110,100, 10, 32,108,111, 99, 97,108, 32,111,117,116, 32, 61, 32, 95, 79, 85, 84, 80, 85, 84, 10, 32, 95, 79, 85, 84, 80, 85, 84, 32, 61, 32, 95, 83, 84, 68, 69, 82, 82, 10, 32,119,114,105,116, 101, 40, 34, 92,110, 42, 42, 32,116,111,108,117, 97, 32,119, 97,114,110,105,110,103, 58, 32, 34, 46, 46,109,115,103, 46, 46, 34, 46, 92,110, 92,110, 34, 41, 10, 32, 95, 79, 85, 84, 80, 85, 84, 32, 61, 32,111,117,116, 10,101,110,100, 10, 10, 45, 45, 32,114,101,103,105,115,116,101,114, 32, 97,110, 32, 117,115,101,114, 32,100,101,102,105,110,101,100, 32,116,121, 112,101, 58, 32,114,101,116,117,114,110,115, 32,102,117,108, 108, 32,116,121,112,101, 10,102,117,110, 99,116,105,111,110, 32,114,101,103,116,121,112,101, 32, 40,116, 41, 10, 9, 45, 45,105,102, 32,105,115, 98, 97,115,105, 99, 40,116, 41, 32, 116,104,101,110, 10, 9, 45, 45, 9,114,101,116,117,114,110, 32,116, 10, 9, 45, 45,101,110,100, 10, 9,108,111, 99, 97, 108, 32,102,116, 32, 61, 32,102,105,110,100,116,121,112,101, 40,116, 41, 10, 10, 9,105,102, 32,110,111,116, 32, 95,117, 115,101,114,116,121,112,101, 91,102,116, 93, 32,116,104,101, 110, 10, 9, 9,114,101,116,117,114,110, 32, 97,112,112,101, 110,100,117,115,101,114,116,121,112,101, 40,116, 41, 10, 9, 101,110,100, 10, 9,114,101,116,117,114,110, 32,102,116, 10, 101,110,100, 10, 10, 45, 45, 32,114,101,116,117,114,110, 32, 116,121,112,101, 32,110, 97,109,101, 58, 32,114,101,116,117, 114,110,115, 32,102,117,108,108, 32,116,121,112,101, 10,102, 117,110, 99,116,105,111,110, 32,116,121,112,101,118, 97,114, 40,116,121,112,101, 41, 10, 9,105,102, 32,116,121,112,101, 32, 61, 61, 32, 39, 39, 32,111,114, 32,116,121,112,101, 32, 61, 61, 32, 39,118,111,105,100, 39, 32,116,104,101,110, 10, 9, 9,114,101,116,117,114,110, 32,116,121,112,101, 10, 9, 101,108,115,101, 10, 9, 9,108,111, 99, 97,108, 32,102,116, 32, 61, 32,102,105,110,100,116,121,112,101, 40,116,121,112, 101, 41, 10, 9, 9,105,102, 32,102,116, 32,116,104,101,110, 10, 9, 9, 9,114,101,116,117,114,110, 32,102,116, 10, 9, 9,101,110,100, 10, 9, 9, 95,117,115,101,114,116,121,112, 101, 91,116,121,112,101, 93, 32, 61, 32,116,121,112,101, 10, 9, 9,114,101,116,117,114,110, 32,116,121,112,101, 10, 9, 101,110,100, 10,101,110,100, 10, 10, 45, 45, 32, 99,104,101, 99,107, 32,105,102, 32, 98, 97,115,105, 99, 32,116,121,112, 101, 10,102,117,110, 99,116,105,111,110, 32,105,115, 98, 97, 115,105, 99, 32, 40,116,121,112,101, 41, 10, 32,108,111, 99, 97,108, 32,116, 32, 61, 32,103,115,117, 98, 40,116,121,112, 101, 44, 39, 99,111,110,115,116, 32, 39, 44, 39, 39, 41, 10, 32,108,111, 99, 97,108, 32,109, 44,116, 32, 61, 32, 97,112, 112,108,121,116,121,112,101,100,101,102, 40, 39, 39, 44, 32, 116, 41, 10, 32,108,111, 99, 97,108, 32, 98, 32, 61, 32, 95, 98, 97,115,105, 99, 91,116, 93, 10, 32,105,102, 32, 98, 32, 116,104,101,110, 10, 32, 32,114,101,116,117,114,110, 32, 98, 44, 95, 98, 97,115,105, 99, 95, 99,116,121,112,101, 91, 98, 93, 10, 32,101,110,100, 10, 32,114,101,116,117,114,110, 32, 110,105,108, 10,101,110,100, 10, 10, 45, 45, 32,115,112,108, 105,116, 32,115,116,114,105,110,103, 32,117,115,105,110,103, 32, 97, 32,116,111,107,101,110, 10,102,117,110, 99,116,105, 111,110, 32,115,112,108,105,116, 32, 40,115, 44,116, 41, 10, 32,108,111, 99, 97,108, 32,108, 32, 61, 32,123,110, 61, 48, 125, 10, 32,108,111, 99, 97,108, 32,102, 32, 61, 32,102,117, 110, 99,116,105,111,110, 32, 40,115, 41, 10, 32, 32,108, 46, 110, 32, 61, 32,108, 46,110, 32, 43, 32, 49, 10, 32, 32,108, 91,108, 46,110, 93, 32, 61, 32,115, 10, 32, 32,114,101,116, 117,114,110, 32, 34, 34, 10, 32,101,110,100, 10, 32,108,111, 99, 97,108, 32,112, 32, 61, 32, 34, 37,115, 42, 40, 46, 45, 41, 37,115, 42, 34, 46, 46,116, 46, 46, 34, 37,115, 42, 34, 10, 32,115, 32, 61, 32,103,115,117, 98, 40,115, 44, 34, 94, 37,115, 43, 34, 44, 34, 34, 41, 10, 32,115, 32, 61, 32,103, 115,117, 98, 40,115, 44, 34, 37,115, 43, 36, 34, 44, 34, 34, 41, 10, 32,115, 32, 61, 32,103,115,117, 98, 40,115, 44,112, 44,102, 41, 10, 32,108, 46,110, 32, 61, 32,108, 46,110, 32, 43, 32, 49, 10, 32,108, 91,108, 46,110, 93, 32, 61, 32,103, 115,117, 98, 40,115, 44, 34, 40, 37,115, 37,115, 42, 41, 36, 34, 44, 34, 34, 41, 10, 32,114,101,116,117,114,110, 32,108, 10,101,110,100, 10, 10, 45, 45, 32,115,112,108,105,116,115, 32, 97, 32,115,116,114,105,110,103, 32,117,115,105,110,103, 32, 97, 32,112, 97,116,116,101,114,110, 44, 32, 99,111,110, 115,105,100,101,114,105,110,103, 32,116,104,101, 32,115,112, 97, 99,105, 97,108, 32, 99, 97,115,101,115, 32,111,102, 32, 67, 32, 99,111,100,101, 32, 40,116,101,109,112,108, 97,116, 101,115, 44, 32,102,117,110, 99,116,105,111,110, 32,112, 97, 114, 97,109,101,116,101,114,115, 44, 32,101,116, 99, 41, 10, 45, 45, 32,112, 97,116,116,101,114,110, 32, 99, 97,110, 39, 116, 32, 99,111,110,116, 97,105,110, 32,116,104,101, 32, 39, 94, 39, 32, 40, 97,115, 32,117,115,101,100, 32,116,111, 32, 105,100,101,110,116,105,102,121, 32,116,104,101, 32, 98,101, 103,105,110,105,110,103, 32,111,102, 32,116,104,101, 32,108, 105,110,101, 41, 10, 45, 45, 32, 97,108,115,111, 32,115,116, 114,105,112,115, 32,119,104,105,116,101,115,112, 97, 99,101, 10,102,117,110, 99,116,105,111,110, 32,115,112,108,105,116, 95, 99, 95,116,111,107,101,110,115, 40,115, 44, 32,112, 97, 116, 41, 10, 10, 9,115, 32, 61, 32,115,116,114,105,110,103, 46,103,115,117, 98, 40,115, 44, 32, 34, 94, 37,115, 42, 34, 44, 32, 34, 34, 41, 10, 9,115, 32, 61, 32,115,116,114,105, 110,103, 46,103,115,117, 98, 40,115, 44, 32, 34, 37,115, 42, 36, 34, 44, 32, 34, 34, 41, 10, 10, 9,108,111, 99, 97,108, 32,116,111,107,101,110, 95, 98,101,103,105,110, 32, 61, 32, 49, 10, 9,108,111, 99, 97,108, 32,116,111,107,101,110, 95, 101,110,100, 32, 61, 32, 49, 10, 9,108,111, 99, 97,108, 32, 111,102,115, 32, 61, 32, 49, 10, 9,108,111, 99, 97,108, 32, 114,101,116, 32, 61, 32,123,110, 61, 48,125, 10, 10, 9,102, 117,110, 99,116,105,111,110, 32, 97,100,100, 95,116,111,107, 101,110, 40,111,102,115, 41, 10, 10, 9, 9,108,111, 99, 97, 108, 32,116, 32, 61, 32,115,116,114,105,110,103, 46,115,117, 98, 40,115, 44, 32,116,111,107,101,110, 95, 98,101,103,105, 110, 44, 32,111,102,115, 41, 10, 9, 9,116, 32, 61, 32,115, 116,114,105,110,103, 46,103,115,117, 98, 40,116, 44, 32, 34, 94, 37,115, 42, 34, 44, 32, 34, 34, 41, 10, 9, 9,116, 32, 61, 32,115,116,114,105,110,103, 46,103,115,117, 98, 40,116, 44, 32, 34, 37,115, 42, 36, 34, 44, 32, 34, 34, 41, 10, 9, 9,114,101,116, 46,110, 32, 61, 32,114,101,116, 46,110, 32, 43, 32, 49, 10, 9, 9,114,101,116, 91,114,101,116, 46,110, 93, 32, 61, 32,116, 10, 9,101,110,100, 10, 10, 9,119,104, 105,108,101, 32,111,102,115, 32, 60, 61, 32,115,116,114,105, 110,103, 46,108,101,110, 40,115, 41, 32,100,111, 10, 10, 9, 9,108,111, 99, 97,108, 32,115,117, 98, 32, 61, 32,115,116, 114,105,110,103, 46,115,117, 98, 40,115, 44, 32,111,102,115, 44, 32, 45, 49, 41, 10, 9, 9,108,111, 99, 97,108, 32, 98, 44,101, 32, 61, 32,115,116,114,105,110,103, 46,102,105,110, 100, 40,115,117, 98, 44, 32, 34, 94, 34, 46, 46,112, 97,116, 41, 10, 9, 9,105,102, 32, 98, 32,116,104,101,110, 10, 9, 9, 9, 97,100,100, 95,116,111,107,101,110, 40,111,102,115, 45, 49, 41, 10, 9, 9, 9,111,102,115, 32, 61, 32,111,102, 115, 43,101, 10, 9, 9, 9,116,111,107,101,110, 95, 98,101, 103,105,110, 32, 61, 32,111,102,115, 10, 9, 9,101,108,115, 101, 10, 9, 9, 9,108,111, 99, 97,108, 32, 99,104, 97,114, 32, 61, 32,115,116,114,105,110,103, 46,115,117, 98, 40,115, 44, 32,111,102,115, 44, 32,111,102,115, 41, 10, 9, 9, 9, 105,102, 32, 99,104, 97,114, 32, 61, 61, 32, 34, 40, 34, 32, 111,114, 32, 99,104, 97,114, 32, 61, 61, 32, 34, 60, 34, 32, 116,104,101,110, 10, 10, 9, 9, 9, 9,108,111, 99, 97,108, 32, 98,108,111, 99,107, 10, 9, 9, 9, 9,105,102, 32, 99, 104, 97,114, 32, 61, 61, 32, 34, 40, 34, 32,116,104,101,110, 32, 98,108,111, 99,107, 32, 61, 32, 34, 94, 37, 98, 40, 41, 34, 32,101,110,100, 10, 9, 9, 9, 9,105,102, 32, 99,104, 97,114, 32, 61, 61, 32, 34, 60, 34, 32,116,104,101,110, 32, 98,108,111, 99,107, 32, 61, 32, 34, 94, 37, 98, 60, 62, 34, 32,101,110,100, 10, 10, 9, 9, 9, 9, 98, 44,101, 32, 61, 32,115,116,114,105,110,103, 46,102,105,110,100, 40,115,117, 98, 44, 32, 98,108,111, 99,107, 41, 10, 9, 9, 9, 9,105, 102, 32,110,111,116, 32, 98, 32,116,104,101,110, 10, 9, 9, 9, 9, 9, 45, 45, 32,117,110,116,101,114,109,105,110, 97, 116,101,100, 32, 98,108,111, 99,107, 63, 10, 9, 9, 9, 9, 9,111,102,115, 32, 61, 32,111,102,115, 43, 49, 10, 9, 9, 9, 9,101,108,115,101, 10, 9, 9, 9, 9, 9,111,102,115, 32, 61, 32,111,102,115, 32, 43, 32,101, 10, 9, 9, 9, 9, 101,110,100, 10, 10, 9, 9, 9,101,108,115,101, 10, 9, 9, 9, 9,111,102,115, 32, 61, 32,111,102,115, 43, 49, 10, 9, 9, 9,101,110,100, 10, 9, 9,101,110,100, 10, 10, 9,101, 110,100, 10, 9, 97,100,100, 95,116,111,107,101,110, 40,111, 102,115, 41, 10, 9, 45, 45,105,102, 32,114,101,116, 46,110, 32, 61, 61, 32, 48, 32,116,104,101,110, 10, 10, 9, 45, 45, 9,114,101,116, 46,110, 61, 49, 10, 9, 45, 45, 9,114,101, 116, 91, 49, 93, 32, 61, 32, 34, 34, 10, 9, 45, 45,101,110, 100, 10, 10, 9,114,101,116,117,114,110, 32,114,101,116, 10, 10,101,110,100, 10, 10, 45, 45, 32, 99,111,110, 99, 97,116, 101,110, 97,116,101, 32,115,116,114,105,110,103,115, 32,111, 102, 32, 97, 32,116, 97, 98,108,101, 10,102,117,110, 99,116, 105,111,110, 32, 99,111,110, 99, 97,116, 32, 40,116, 44,102, 44,108, 44,106,115,116,114, 41, 10, 9,106,115,116,114, 32, 61, 32,106,115,116,114, 32,111,114, 32, 34, 32, 34, 10, 32, 108,111, 99, 97,108, 32,115, 32, 61, 32, 39, 39, 10, 32,108, 111, 99, 97,108, 32,105, 61,102, 10, 32,119,104,105,108,101, 32,105, 60, 61,108, 32,100,111, 10, 32, 32,115, 32, 61, 32, 115, 46, 46,116, 91,105, 93, 10, 32, 32,105, 32, 61, 32,105, 43, 49, 10, 32, 32,105,102, 32,105, 32, 60, 61, 32,108, 32, 116,104,101,110, 32,115, 32, 61, 32,115, 46, 46,106,115,116, 114, 32,101,110,100, 10, 32,101,110,100, 10, 32,114,101,116, 117,114,110, 32,115, 10,101,110,100, 10, 10, 45, 45, 32, 99, 111,110, 99, 97,116,101,110, 97,116,101, 32, 97,108,108, 32, 112, 97,114, 97,109,101,116,101,114,115, 44, 32,102,111,108, 108,111,119,105,110,103, 32,111,117,116,112,117,116, 32,114, 117,108,101,115, 10,102,117,110, 99,116,105,111,110, 32, 99, 111,110, 99, 97,116,112, 97,114, 97,109, 32, 40,108,105,110, 101, 44, 32, 46, 46, 46, 41, 10, 32,108,111, 99, 97,108, 32, 105, 61, 49, 10, 32,119,104,105,108,101, 32,105, 60, 61, 97, 114,103, 46,110, 32,100,111, 10, 32, 32,105,102, 32, 95, 99, 111,110,116, 32, 97,110,100, 32,110,111,116, 32,115,116,114, 102,105,110,100, 40, 95, 99,111,110,116, 44, 39, 91, 37, 40, 44, 34, 93, 39, 41, 32, 97,110,100, 10, 32, 32, 32, 32, 32, 115,116,114,102,105,110,100, 40, 97,114,103, 91,105, 93, 44, 34, 94, 91, 37, 97, 95,126, 93, 34, 41, 32,116,104,101,110, 10, 9, 32, 32, 32, 32,108,105,110,101, 32, 61, 32,108,105, 110,101, 32, 46, 46, 32, 39, 32, 39, 10, 32, 32,101,110,100, 10, 32, 32,108,105,110,101, 32, 61, 32,108,105,110,101, 32, 46, 46, 32, 97,114,103, 91,105, 93, 10, 32, 32,105,102, 32, 97,114,103, 91,105, 93, 32,126, 61, 32, 39, 39, 32,116,104, 101,110, 10, 32, 32, 32, 95, 99,111,110,116, 32, 61, 32,115, 116,114,115,117, 98, 40, 97,114,103, 91,105, 93, 44, 45, 49, 44, 45, 49, 41, 10, 32, 32,101,110,100, 10, 32, 32,105, 32, 61, 32,105, 43, 49, 10, 32,101,110,100, 10, 32,105,102, 32, 115,116,114,102,105,110,100, 40, 97,114,103, 91, 97,114,103, 46,110, 93, 44, 34, 91, 37, 47, 37, 41, 37, 59, 37,123, 37, 125, 93, 36, 34, 41, 32,116,104,101,110, 10, 32, 32, 95, 99, 111,110,116, 61,110,105,108, 32,108,105,110,101, 32, 61, 32, 108,105,110,101, 32, 46, 46, 32, 39, 92,110, 39, 10, 32,101, 110,100, 10, 9,114,101,116,117,114,110, 32,108,105,110,101, 10,101,110,100, 10, 10, 45, 45, 32,111,117,116,112,117,116, 32,108,105,110,101, 10,102,117,110, 99,116,105,111,110, 32, 111,117,116,112,117,116, 32, 40, 46, 46, 46, 41, 10, 32,108, 111, 99, 97,108, 32,105, 61, 49, 10, 32,119,104,105,108,101, 32,105, 60, 61, 97,114,103, 46,110, 32,100,111, 10, 32, 32, 105,102, 32, 95, 99,111,110,116, 32, 97,110,100, 32,110,111, 116, 32,115,116,114,102,105,110,100, 40, 95, 99,111,110,116, 44, 39, 91, 37, 40, 44, 34, 93, 39, 41, 32, 97,110,100, 10, 32, 32, 32, 32, 32,115,116,114,102,105,110,100, 40, 97,114, 103, 91,105, 93, 44, 34, 94, 91, 37, 97, 95,126, 93, 34, 41, 32,116,104,101,110, 10, 9, 32, 32, 32, 32,119,114,105,116, 101, 40, 39, 32, 39, 41, 10, 32, 32,101,110,100, 10, 32, 32, 119,114,105,116,101, 40, 97,114,103, 91,105, 93, 41, 10, 32, 32,105,102, 32, 97,114,103, 91,105, 93, 32,126, 61, 32, 39, 39, 32,116,104,101,110, 10, 32, 32, 32, 95, 99,111,110,116, 32, 61, 32,115,116,114,115,117, 98, 40, 97,114,103, 91,105, 93, 44, 45, 49, 44, 45, 49, 41, 10, 32, 32,101,110,100, 10, 32, 32,105, 32, 61, 32,105, 43, 49, 10, 32,101,110,100, 10, 32,105,102, 32,115,116,114,102,105,110,100, 40, 97,114,103, 91, 97,114,103, 46,110, 93, 44, 34, 91, 37, 47, 37, 41, 37, 59, 37,123, 37,125, 93, 36, 34, 41, 32,116,104,101,110, 10, 32, 32, 95, 99,111,110,116, 61,110,105,108, 32,119,114,105, 116,101, 40, 39, 92,110, 39, 41, 10, 32,101,110,100, 10,101, 110,100, 10, 10,102,117,110, 99,116,105,111,110, 32,103,101, 116, 95,112,114,111,112,101,114,116,121, 95,109,101,116,104, 111,100,115, 40,112,116,121,112,101, 44, 32,110, 97,109,101, 41, 10, 10, 9,105,102, 32,103,101,116, 95,112,114,111,112, 101,114,116,121, 95,109,101,116,104,111,100,115, 95,104,111, 111,107, 32, 97,110,100, 32,103,101,116, 95,112,114,111,112, 101,114,116,121, 95,109,101,116,104,111,100,115, 95,104,111, 111,107, 40,112,116,121,112,101, 44,110, 97,109,101, 41, 32, 116,104,101,110, 10, 9, 9,114,101,116,117,114,110, 32,103, 101,116, 95,112,114,111,112,101,114,116,121, 95,109,101,116, 104,111,100,115, 95,104,111,111,107, 40,112,116,121,112,101, 44, 32,110, 97,109,101, 41, 10, 9,101,110,100, 10, 10, 9, 105,102, 32,112,116,121,112,101, 32, 61, 61, 32, 34,100,101, 102, 97,117,108,116, 34, 32,116,104,101,110, 32, 45, 45, 32, 103,101,116, 95,110, 97,109,101, 44, 32,115,101,116, 95,110, 97,109,101, 10, 9, 9,114,101,116,117,114,110, 32, 34,103, 101,116, 95, 34, 46, 46,110, 97,109,101, 44, 32, 34,115,101, 116, 95, 34, 46, 46,110, 97,109,101, 10, 9,101,110,100, 10, 10, 9,105,102, 32,112,116,121,112,101, 32, 61, 61, 32, 34, 113,116, 34, 32,116,104,101,110, 32, 45, 45, 32,110, 97,109, 101, 44, 32,115,101,116, 78, 97,109,101, 10, 9, 9,114,101, 116,117,114,110, 32,110, 97,109,101, 44, 32, 34,115,101,116, 34, 46, 46,115,116,114,105,110,103, 46,117,112,112,101,114, 40,115,116,114,105,110,103, 46,115,117, 98, 40,110, 97,109, 101, 44, 32, 49, 44, 32, 49, 41, 41, 46, 46,115,116,114,105, 110,103, 46,115,117, 98, 40,110, 97,109,101, 44, 32, 50, 44, 32, 45, 49, 41, 10, 9,101,110,100, 10, 10, 9,105,102, 32, 112,116,121,112,101, 32, 61, 61, 32, 34,111,118,101,114,108, 111, 97,100, 34, 32,116,104,101,110, 32, 45, 45, 32,110, 97, 109,101, 44, 32,110, 97,109,101, 10, 9, 9,114,101,116,117, 114,110, 32,110, 97,109,101, 44,110, 97,109,101, 10, 9,101, 110,100, 10, 10, 9,114,101,116,117,114,110, 32,110,105,108, 10,101,110,100, 10, 10, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 32,116,104,101, 32,104,111,111,107,115, 10, 10, 45, 45, 32, 99, 97,108,108,101,100, 32,114,105,103, 104,116, 32, 97,102,116,101,114, 32,112,114,111, 99,101,115, 115,105,110,103, 32,116,104,101, 32, 36, 91,105, 99,104,108, 93,102,105,108,101, 32,100,105,114,101, 99,116,105,118,101, 115, 44, 10, 45, 45, 32,114,105,103,104,116, 32, 98,101,102, 111,114,101, 32,112,114,111, 99,101,115,115,105,110,103, 32, 97,110,121,116,104,105,110,103, 32,101,108,115,101, 10, 45, 45, 32,116, 97,107,101,115, 32,116,104,101, 32,112, 97, 99, 107, 97,103,101, 32,111, 98,106,101, 99,116, 32, 97,115, 32, 116,104,101, 32,112, 97,114, 97,109,101,116,101,114, 10,102, 117,110, 99,116,105,111,110, 32,112,114,101,112,114,111, 99, 101,115,115, 95,104,111,111,107, 40,112, 41, 10, 9, 45, 45, 32,112, 46, 99,111,100,101, 32,104, 97,115, 32, 97,108,108, 32,116,104,101, 32,105,110,112,117,116, 32, 99,111,100,101, 32,102,114,111,109, 32,116,104,101, 32,112,107,103, 10,101, 110,100, 10, 10, 10, 45, 45, 32, 99, 97,108,108,101,100, 32, 102,111,114, 32,101,118,101,114,121, 32, 36,105,102,105,108, 101, 32,100,105,114,101, 99,116,105,118,101, 10, 45, 45, 32, 116, 97,107,101,115, 32, 97, 32,116, 97, 98,108,101, 32,119, 105,116,104, 32, 97, 32,115,116,114,105,110,103, 32, 99, 97, 108,108,101,100, 32, 39, 99,111,100,101, 39, 32,105,110,115, 105,100,101, 44, 32,116,104,101, 32,102,105,108,101,110, 97, 109,101, 44, 32, 97,110,100, 32, 97,110,121, 32,101,120,116, 114, 97, 32, 97,114,103,117,109,101,110,116,115, 10, 45, 45, 32,112, 97,115,115,101,100, 32,116,111, 32, 36,105,102,105, 108,101, 46, 32,110,111, 32,114,101,116,117,114,110, 32,118, 97,108,117,101, 10,102,117,110, 99,116,105,111,110, 32,105, 110, 99,108,117,100,101, 95,102,105,108,101, 95,104,111,111, 107, 40,116, 44, 32,102,105,108,101,110, 97,109,101, 44, 32, 46, 46, 46, 41, 10, 10,101,110,100, 10, 10, 45, 45, 32, 99, 97,108,108,101,100, 32, 97,102,116,101,114, 32,112,114,111, 99,101,115,115,105,110,103, 32, 97,110,121,116,104,105,110, 103, 32,116,104, 97,116, 39,115, 32,110,111,116, 32, 99,111, 100,101, 32, 40,108,105,107,101, 32, 39, 36,114,101,110, 97, 109,105,110,103, 39, 44, 32, 99,111,109,109,101,110,116,115, 44, 32,101,116, 99, 41, 10, 45, 45, 32, 97,110,100, 32,114, 105,103,104,116, 32, 98,101,102,111,114,101, 32,112, 97,114, 115,105,110,103, 32,116,104,101, 32, 97, 99,116,117, 97,108, 32, 99,111,100,101, 46, 10, 45, 45, 32,116, 97,107,101,115, 32,116,104,101, 32, 80, 97, 99,107, 97,103,101, 32,111, 98, 106,101, 99,116, 32,119,105,116,104, 32, 97,108,108, 32,116, 104,101, 32, 99,111,100,101, 32,111,110, 32,116,104,101, 32, 39, 99,111,100,101, 39, 32,107,101,121, 46, 32,110,111, 32, 114,101,116,117,114,110, 32,118, 97,108,117,101, 10,102,117, 110, 99,116,105,111,110, 32,112,114,101,112, 97,114,115,101, 95,104,111,111,107, 40,112, 97, 99,107, 97,103,101, 41, 10, 10,101,110,100, 10, 10, 10, 45, 45, 32, 99, 97,108,108,101, 100, 32, 97,102,116,101,114, 32,119,114,105,116,105,110,103, 32, 97,108,108, 32,116,104,101, 32,111,117,116,112,117,116, 46, 10, 45, 45, 32,116, 97,107,101,115, 32,116,104,101, 32, 80, 97, 99,107, 97,103,101, 32,111, 98,106,101, 99,116, 10, 102,117,110, 99,116,105,111,110, 32,112,111,115,116, 95,111, 117,116,112,117,116, 95,104,111,111,107, 40,112, 97, 99,107, 97,103,101, 41, 10, 10,101,110,100, 10, 10, 10, 45, 45, 32, 99, 97,108,108,101,100, 32,102,114,111,109, 32, 39,103,101, 116, 95,112,114,111,112,101,114,116,121, 95,109,101,116,104, 111,100,115, 39, 32,116,111, 32,103,101,116, 32,116,104,101, 32,109,101,116,104,111,100,115, 32,116,111, 32,114,101,116, 114,105,101,118,101, 32, 97, 32,112,114,111,112,101,114,116, 121, 10, 45, 45, 32, 97, 99, 99,111,114,100,105,110,103, 32, 116,111, 32,105,116,115, 32,116,121,112,101, 10,102,117,110, 99,116,105,111,110, 32,103,101,116, 95,112,114,111,112,101, 114,116,121, 95,109,101,116,104,111,100,115, 95,104,111,111, 107, 40,112,114,111,112,101,114,116,121, 95,116,121,112,101, 44, 32,110, 97,109,101, 41, 10, 10,101,110,100, 10, 10, 45, 45, 32, 99, 97,108,108,101,100, 32,102,114,111,109, 32, 67, 108, 97,115,115, 67,111,110,116, 97,105,110,101,114, 58,100, 111,112, 97,114,115,101, 32,119,105,116,104, 32,116,104,101, 32,115,116,114,105,110,103, 32, 98,101,105,110,103, 32,112, 97,114,115,101,100, 10, 45, 45, 32,114,101,116,117,114,110, 32,110,105,108, 44, 32,111,114, 32, 97, 32,115,117, 98,115, 116,114,105,110,103, 10,102,117,110, 99,116,105,111,110, 32, 112, 97,114,115,101,114, 95,104,111,111,107, 40,115, 41, 10, 10, 9,114,101,116,117,114,110, 32,110,105,108, 10,101,110, 100, 10, 10, 45, 45, 32, 99,117,115,116,111,109, 32,112,117, 115,104,101,114,115, 10, 10, 95,112,117,115,104, 95,102,117, 110, 99,116,105,111,110,115, 32, 61, 32,123,125, 10, 95,105, 115, 95,102,117,110, 99,116,105,111,110,115, 32, 61, 32,123, 125, 10, 95,116,111, 95,102,117,110, 99,116,105,111,110,115, 32, 61, 32,123,125, 10, 10, 95, 98, 97,115,101, 95,112,117, 115,104, 95,102,117,110, 99,116,105,111,110,115, 32, 61, 32, 123,125, 10, 95, 98, 97,115,101, 95,105,115, 95,102,117,110, 99,116,105,111,110,115, 32, 61, 32,123,125, 10, 95, 98, 97, 115,101, 95,116,111, 95,102,117,110, 99,116,105,111,110,115, 32, 61, 32,123,125, 10, 10,108,111, 99, 97,108, 32,102,117, 110, 99,116,105,111,110, 32,115,101, 97,114, 99,104, 95, 98, 97,115,101, 40,116, 44, 32,102,117,110, 99,115, 41, 10, 10, 9,108,111, 99, 97,108, 32, 99,108, 97,115,115, 32, 61, 32, 95,103,108,111, 98, 97,108, 95, 99,108, 97,115,115,101,115, 91,116, 93, 10, 10, 9,119,104,105,108,101, 32, 99,108, 97, 115,115, 32,100,111, 10, 9, 9,105,102, 32,102,117,110, 99, 115, 91, 99,108, 97,115,115, 46,116,121,112,101, 93, 32,116, 104,101,110, 10, 9, 9, 9,114,101,116,117,114,110, 32,102, 117,110, 99,115, 91, 99,108, 97,115,115, 46,116,121,112,101, 93, 10, 9, 9,101,110,100, 10, 9, 9, 99,108, 97,115,115, 32, 61, 32, 95,103,108,111, 98, 97,108, 95, 99,108, 97,115, 115,101,115, 91, 99,108, 97,115,115, 46, 98,116,121,112,101, 93, 10, 9,101,110,100, 10, 9,114,101,116,117,114,110, 32, 110,105,108, 10,101,110,100, 10, 10,102,117,110, 99,116,105, 111,110, 32,103,101,116, 95,112,117,115,104, 95,102,117,110, 99,116,105,111,110, 40,116, 41, 10, 9,114,101,116,117,114, 110, 32, 95,112,117,115,104, 95,102,117,110, 99,116,105,111, 110,115, 91,116, 93, 32,111,114, 32,115,101, 97,114, 99,104, 95, 98, 97,115,101, 40,116, 44, 32, 95, 98, 97,115,101, 95, 112,117,115,104, 95,102,117,110, 99,116,105,111,110,115, 41, 32,111,114, 32, 34,116,111,108,117, 97, 95,112,117,115,104, 117,115,101,114,116,121,112,101, 34, 10,101,110,100, 10, 10, 102,117,110, 99,116,105,111,110, 32,103,101,116, 95,116,111, 95,102,117,110, 99,116,105,111,110, 40,116, 41, 10, 9,114, 101,116,117,114,110, 32, 95,116,111, 95,102,117,110, 99,116, 105,111,110,115, 91,116, 93, 32,111,114, 32,115,101, 97,114, 99,104, 95, 98, 97,115,101, 40,116, 44, 32, 95, 98, 97,115, 101, 95,116,111, 95,102,117,110, 99,116,105,111,110,115, 41, 32,111,114, 32, 34,116,111,108,117, 97, 95,116,111,117,115, 101,114,116,121,112,101, 34, 10,101,110,100, 10, 10,102,117, 110, 99,116,105,111,110, 32,103,101,116, 95,105,115, 95,102, 117,110, 99,116,105,111,110, 40,116, 41, 10, 9,114,101,116, 117,114,110, 32, 95,105,115, 95,102,117,110, 99,116,105,111, 110,115, 91,116, 93, 32,111,114, 32,115,101, 97,114, 99,104, 95, 98, 97,115,101, 40,116, 44, 32, 95, 98, 97,115,101, 95, 105,115, 95,102,117,110, 99,116,105,111,110,115, 41, 32,111, 114, 32, 34,116,111,108,117, 97, 95,105,115,117,115,101,114, 116,121,112,101, 34, 10,101,110,100,32 }; tolua_dobuffer(tolua_S,(char*)B,sizeof(B),"tolua embedded: lua/tolua++/src/bin/lua/basic.lua"); lua_settop(tolua_S, top); } /* end of embedded lua code */ { /* begin embedded lua code */ int top = lua_gettop(tolua_S); static unsigned char B[] = { 45, 45, 32,116,111,108,117, 97, 58, 32, 97, 98,115,116,114, 97, 99,116, 32,102,101, 97,116,117,114,101, 32, 99,108, 97, 115,115, 10, 45, 45, 32, 87,114,105,116,116,101,110, 32, 98, 121, 32, 87, 97,108,100,101,109, 97,114, 32, 67,101,108,101, 115, 10, 45, 45, 32, 84,101, 67, 71,114, 97,102, 47, 80, 85, 67, 45, 82,105,111, 10, 45, 45, 32, 74,117,108, 32, 49, 57, 57, 56, 10, 45, 45, 32, 36, 73,100, 58, 32, 36, 10, 10, 45, 45, 32, 84,104,105,115, 32, 99,111,100,101, 32,105,115, 32, 102,114,101,101, 32,115,111,102,116,119, 97,114,101, 59, 32, 121,111,117, 32, 99, 97,110, 32,114,101,100,105,115,116,114, 105, 98,117,116,101, 32,105,116, 32, 97,110,100, 47,111,114, 32,109,111,100,105,102,121, 32,105,116, 46, 10, 45, 45, 32, 84,104,101, 32,115,111,102,116,119, 97,114,101, 32,112,114, 111,118,105,100,101,100, 32,104,101,114,101,117,110,100,101, 114, 32,105,115, 32,111,110, 32, 97,110, 32, 34, 97,115, 32, 105,115, 34, 32, 98, 97,115,105,115, 44, 32, 97,110,100, 10, 45, 45, 32,116,104,101, 32, 97,117,116,104,111,114, 32,104, 97,115, 32,110,111, 32,111, 98,108,105,103, 97,116,105,111, 110, 32,116,111, 32,112,114,111,118,105,100,101, 32,109, 97, 105,110,116,101,110, 97,110, 99,101, 44, 32,115,117,112,112, 111,114,116, 44, 32,117,112,100, 97,116,101,115, 44, 10, 45, 45, 32,101,110,104, 97,110, 99,101,109,101,110,116,115, 44, 32,111,114, 32,109,111,100,105,102,105, 99, 97,116,105,111, 110,115, 46, 10, 10, 10, 45, 45, 32, 70,101, 97,116,117,114, 101, 32, 99,108, 97,115,115, 10, 45, 45, 32, 82,101,112,114, 101,115,101,110,116,115, 32,116,104,101, 32, 98, 97,115,101, 32, 99,108, 97,115,115, 32,111,102, 32, 97,108,108, 32,109, 97,112,112,101,100, 32,102,101, 97,116,117,114,101, 46, 10, 99,108, 97,115,115, 70,101, 97,116,117,114,101, 32, 61, 32, 123, 10,125, 10, 99,108, 97,115,115, 70,101, 97,116,117,114, 101, 46, 95, 95,105,110,100,101,120, 32, 61, 32, 99,108, 97, 115,115, 70,101, 97,116,117,114,101, 10, 10, 45, 45, 32,119, 114,105,116,101, 32,115,117,112,112,111,114,116, 32, 99,111, 100,101, 10,102,117,110, 99,116,105,111,110, 32, 99,108, 97, 115,115, 70,101, 97,116,117,114,101, 58,115,117,112, 99,111, 100,101, 32, 40, 41, 10,101,110,100, 10, 10, 45, 45, 32,111, 117,116,112,117,116, 32,116, 97,103, 10,102,117,110, 99,116, 105,111,110, 32, 99,108, 97,115,115, 70,101, 97,116,117,114, 101, 58,100,101, 99,108,116,121,112,101, 32, 40, 41, 10,101, 110,100, 10, 10, 45, 45, 32,114,101,103,105,115,116,101,114, 32,102,101, 97,116,117,114,101, 10,102,117,110, 99,116,105, 111,110, 32, 99,108, 97,115,115, 70,101, 97,116,117,114,101, 58,114,101,103,105,115,116,101,114, 32, 40,112,114,101, 41, 10,101,110,100, 10, 10, 45, 45, 32,116,114, 97,110,115,108, 97,116,101, 32,118,101,114, 98, 97,116,105,109, 10,102,117, 110, 99,116,105,111,110, 32, 99,108, 97,115,115, 70,101, 97, 116,117,114,101, 58,112,114,101, 97,109, 98,108,101, 32, 40, 41, 10,101,110,100, 10, 10, 45, 45, 32, 99,104,101, 99,107, 32,105,102, 32,105,116, 32,105,115, 32, 97, 32,118, 97,114, 105, 97, 98,108,101, 10,102,117,110, 99,116,105,111,110, 32, 99,108, 97,115,115, 70,101, 97,116,117,114,101, 58,105,115, 118, 97,114,105, 97, 98,108,101, 32, 40, 41, 10, 32,114,101, 116,117,114,110, 32,102, 97,108,115,101, 10,101,110,100, 10, 10, 45, 45, 32, 99,104,101, 99,107, 32,105,102, 32,105,116, 32,114,101,113,117,105,114,101,115, 32, 99,111,108,108,101, 99,116,105,111,110, 10,102,117,110, 99,116,105,111,110, 32, 99,108, 97,115,115, 70,101, 97,116,117,114,101, 58,114,101, 113,117,105,114,101, 99,111,108,108,101, 99,116,105,111,110, 32, 40,116, 41, 10, 32,114,101,116,117,114,110, 32,102, 97, 108,115,101, 10,101,110,100, 10, 10, 45, 45, 32, 98,117,105, 108,100, 32,110, 97,109,101,115, 10,102,117,110, 99,116,105, 111,110, 32, 99,108, 97,115,115, 70,101, 97,116,117,114,101, 58, 98,117,105,108,100,110, 97,109,101,115, 32, 40, 41, 10, 32,105,102, 32,115,101,108,102, 46,110, 97,109,101, 32, 97, 110,100, 32,115,101,108,102, 46,110, 97,109,101,126, 61, 39, 39, 32,116,104,101,110, 10, 32, 32,108,111, 99, 97,108, 32, 110, 32, 61, 32,115,112,108,105,116, 40,115,101,108,102, 46, 110, 97,109,101, 44, 39, 64, 39, 41, 10, 32, 32,115,101,108, 102, 46,110, 97,109,101, 32, 61, 32,110, 91, 49, 93, 10, 32, 32,115,101,108,102, 46,110, 97,109,101, 32, 61, 32,115,116, 114,105,110,103, 46,103,115,117, 98, 40,115,101,108,102, 46, 110, 97,109,101, 44, 32, 34, 58, 37,100, 42, 36, 34, 44, 32, 34, 34, 41, 10, 32, 32,105,102, 32,110,111,116, 32,110, 91, 50, 93, 32,116,104,101,110, 10, 32, 32, 32,110, 91, 50, 93, 32, 61, 32, 97,112,112,108,121,114,101,110, 97,109,105,110, 103, 40,110, 91, 49, 93, 41, 10, 32, 32,101,110,100, 10, 32, 32,115,101,108,102, 46,108,110, 97,109,101, 32, 61, 32,110, 91, 50, 93, 32,111,114, 32,103,115,117, 98, 40,110, 91, 49, 93, 44, 34, 37, 91, 46, 45, 37, 93, 34, 44, 34, 34, 41, 10, 32, 32,115,101,108,102, 46,108,110, 97,109,101, 32, 61, 32, 115,116,114,105,110,103, 46,103,115,117, 98, 40,115,101,108, 102, 46,108,110, 97,109,101, 44, 32, 34, 58, 37,100, 42, 36, 34, 44, 32, 34, 34, 41, 10, 32, 32,115,101,108,102, 46,111, 114,105,103,105,110, 97,108, 95,110, 97,109,101, 32, 61, 32, 115,101,108,102, 46,110, 97,109,101, 10, 32, 32,115,101,108, 102, 46,108,110, 97,109,101, 32, 61, 32, 99,108,101, 97,110, 95,116,101,109,112,108, 97,116,101, 40,115,101,108,102, 46, 108,110, 97,109,101, 41, 10, 32,101,110,100, 10, 32,105,102, 32,110,111,116, 32,115,101,108,102, 46,105,115, 95,112, 97, 114, 97,109,101,116,101,114, 32,116,104,101,110, 10, 9, 32, 115,101,108,102, 46,110, 97,109,101, 32, 61, 32,103,101,116, 111,110,108,121,110, 97,109,101,115,112, 97, 99,101, 40, 41, 32, 46, 46, 32,115,101,108,102, 46,110, 97,109,101, 10, 32, 101,110,100, 10, 10, 32,108,111, 99, 97,108, 32,112, 97,114, 101,110,116, 32, 61, 32, 99,108, 97,115,115, 67,111,110,116, 97,105,110,101,114, 46, 99,117,114,114, 10, 32,105,102, 32, 112, 97,114,101,110,116, 32,116,104,101,110, 10, 32, 9,115, 101,108,102, 46, 97, 99, 99,101,115,115, 32, 61, 32,112, 97, 114,101,110,116, 46, 99,117,114,114, 95,109,101,109, 98,101, 114, 95, 97, 99, 99,101,115,115, 10, 9,115,101,108,102, 46, 103,108,111, 98, 97,108, 95, 97, 99, 99,101,115,115, 32, 61, 32,115,101,108,102, 58, 99,104,101, 99,107, 95,112,117, 98, 108,105, 99, 95, 97, 99, 99,101,115,115, 40, 41, 10, 32,101, 108,115,101, 10, 32,101,110,100, 10,101,110,100, 10, 10,102, 117,110, 99,116,105,111,110, 32, 99,108, 97,115,115, 70,101, 97,116,117,114,101, 58, 99,104,101, 99,107, 95,112,117, 98, 108,105, 99, 95, 97, 99, 99,101,115,115, 40, 41, 10, 10, 9, 105,102, 32,116,121,112,101, 40,115,101,108,102, 46,103,108, 111, 98, 97,108, 95, 97, 99, 99,101,115,115, 41, 32, 61, 61, 32, 34, 98,111,111,108,101, 97,110, 34, 32,116,104,101,110, 10, 9, 9,114,101,116,117,114,110, 32,115,101,108,102, 46, 103,108,111, 98, 97,108, 95, 97, 99, 99,101,115,115, 10, 9, 101,110,100, 10, 10, 9,105,102, 32,115,101,108,102, 46, 97, 99, 99,101,115,115, 32, 97,110,100, 32,115,101,108,102, 46, 97, 99, 99,101,115,115, 32,126, 61, 32, 48, 32,116,104,101, 110, 10, 9, 9,114,101,116,117,114,110, 32,102, 97,108,115, 101, 10, 9,101,110,100, 10, 10, 9,108,111, 99, 97,108, 32, 112, 97,114,101,110,116, 32, 61, 32, 99,108, 97,115,115, 67, 111,110,116, 97,105,110,101,114, 46, 99,117,114,114, 10, 9, 119,104,105,108,101, 32,112, 97,114,101,110,116, 32,100,111, 10, 9, 9,105,102, 32,112, 97,114,101,110,116, 46, 97, 99, 99,101,115,115, 32, 97,110,100, 32,112, 97,114,101,110,116, 46, 97, 99, 99,101,115,115, 32,126, 61, 32, 48, 32,116,104, 101,110, 10, 9, 9, 9,114,101,116,117,114,110, 32,102, 97, 108,115,101, 10, 9, 9,101,110,100, 10, 9, 9,112, 97,114, 101,110,116, 32, 61, 32,112, 97,114,101,110,116, 46,112,114, 111,120, 10, 9,101,110,100, 10, 9,114,101,116,117,114,110, 32,116,114,117,101, 10,101,110,100, 10, 10,102,117,110, 99, 116,105,111,110, 32, 99,108,101, 97,110, 95,116,101,109,112, 108, 97,116,101, 40,116, 41, 10, 10, 9,114,101,116,117,114, 110, 32,115,116,114,105,110,103, 46,103,115,117, 98, 40,116, 44, 32, 34, 91, 60, 62, 58, 44, 32, 37, 42, 93, 34, 44, 32, 34, 95, 34, 41, 10,101,110,100, 10, 10, 45, 45, 32, 99,104, 101, 99,107, 32,105,102, 32,102,101, 97,116,117,114,101, 32, 105,115, 32,105,110,115,105,100,101, 32, 97, 32, 99,111,110, 116, 97,105,110,101,114, 32,100,101,102,105,110,105,116,105, 111,110, 10, 45, 45, 32,105,116, 32,114,101,116,117,114,110, 115, 32,116,104,101, 32, 99,111,110,116, 97,105,110,101,114, 32, 99,108, 97,115,115, 32,110, 97,109,101, 32,111,114, 32, 110,105,108, 46, 10,102,117,110, 99,116,105,111,110, 32, 99, 108, 97,115,115, 70,101, 97,116,117,114,101, 58,105,110, 99, 111,110,116, 97,105,110,101,114, 32, 40,119,104,105, 99,104, 41, 10, 32,105,102, 32,115,101,108,102, 46,112, 97,114,101, 110,116, 32,116,104,101,110, 10, 32, 32,108,111, 99, 97,108, 32,112, 97,114,101,110,116, 32, 61, 32,115,101,108,102, 46, 112, 97,114,101,110,116, 10, 32, 32,119,104,105,108,101, 32, 112, 97,114,101,110,116, 32,100,111, 10, 32, 32, 32,105,102, 32,112, 97,114,101,110,116, 46, 99,108, 97,115,115,116,121, 112,101, 32, 61, 61, 32,119,104,105, 99,104, 32,116,104,101, 110, 10, 32, 32, 32, 32,114,101,116,117,114,110, 32,112, 97, 114,101,110,116, 46,110, 97,109,101, 10, 32, 32, 32,101,110, 100, 10, 32, 32, 32,112, 97,114,101,110,116, 32, 61, 32,112, 97,114,101,110,116, 46,112, 97,114,101,110,116, 10, 32, 32, 101,110,100, 10, 32,101,110,100, 10, 32,114,101,116,117,114, 110, 32,110,105,108, 10,101,110,100, 10, 10,102,117,110, 99, 116,105,111,110, 32, 99,108, 97,115,115, 70,101, 97,116,117, 114,101, 58,105,110, 99,108, 97,115,115, 32, 40, 41, 10, 32, 114,101,116,117,114,110, 32,115,101,108,102, 58,105,110, 99, 111,110,116, 97,105,110,101,114, 40, 39, 99,108, 97,115,115, 39, 41, 10,101,110,100, 10, 10,102,117,110, 99,116,105,111, 110, 32, 99,108, 97,115,115, 70,101, 97,116,117,114,101, 58, 105,110,109,111,100,117,108,101, 32, 40, 41, 10, 32,114,101, 116,117,114,110, 32,115,101,108,102, 58,105,110, 99,111,110, 116, 97,105,110,101,114, 40, 39,109,111,100,117,108,101, 39, 41, 10,101,110,100, 10, 10,102,117,110, 99,116,105,111,110, 32, 99,108, 97,115,115, 70,101, 97,116,117,114,101, 58,105, 110,110, 97,109,101,115,112, 97, 99,101, 32, 40, 41, 10, 32, 114,101,116,117,114,110, 32,115,101,108,102, 58,105,110, 99, 111,110,116, 97,105,110,101,114, 40, 39,110, 97,109,101,115, 112, 97, 99,101, 39, 41, 10,101,110,100, 10, 10, 45, 45, 32, 114,101,116,117,114,110, 32, 67, 32, 98,105,110,100,105,110, 103, 32,102,117,110, 99,116,105,111,110, 32,110, 97,109,101, 32, 98, 97,115,101,100, 32,111,110, 32,110, 97,109,101, 10, 45, 45, 32,116,104,101, 32, 99,108,105,101,110,116, 32,115, 112,101, 99,105,102,105,101,115, 32, 97, 32,112,114,101,102, 105,120, 10,102,117,110, 99,116,105,111,110, 32, 99,108, 97, 115,115, 70,101, 97,116,117,114,101, 58, 99,102,117,110, 99, 110, 97,109,101, 32, 40,110, 41, 10, 10, 32,105,102, 32,115, 101,108,102, 46,112, 97,114,101,110,116, 32,116,104,101,110, 10, 32, 32,110, 32, 61, 32,115,101,108,102, 46,112, 97,114, 101,110,116, 58, 99,102,117,110, 99,110, 97,109,101, 40,110, 41, 10, 32,101,110,100, 10, 10, 32,108,111, 99, 97,108, 32, 102,110, 97,109,101, 32, 61, 32,115,101,108,102, 46,108,110, 97,109,101, 10, 32,105,102, 32,110,111,116, 32,102,110, 97, 109,101, 32,111,114, 32,102,110, 97,109,101, 32, 61, 61, 32, 39, 39, 32,116,104,101,110, 10, 32, 9,102,110, 97,109,101, 32, 61, 32,115,101,108,102, 46,110, 97,109,101, 10, 32,101, 110,100, 10, 32, 32,110, 32, 61, 32,115,116,114,105,110,103, 46,103,115,117, 98, 40,110, 46, 46, 39, 95, 39, 46, 46, 32, 40,102,110, 97,109,101, 41, 44, 32, 34, 91, 60, 62, 58, 44, 32, 92, 46, 37, 42, 38, 93, 34, 44, 32, 34, 95, 34, 41, 10, 10, 32, 32,114,101,116,117,114,110, 32,110, 10,101,110,100, 32 }; tolua_dobuffer(tolua_S,(char*)B,sizeof(B),"tolua embedded: lua/tolua++/src/bin/lua/feature.lua"); lua_settop(tolua_S, top); } /* end of embedded lua code */ { /* begin embedded lua code */ int top = lua_gettop(tolua_S); static unsigned char B[] = { 45, 45, 32,116,111,108,117, 97, 58, 32,118,101,114, 98, 97, 116,105,109, 32, 99,108, 97,115,115, 10, 45, 45, 32, 87,114, 105,116,116,101,110, 32, 98,121, 32, 87, 97,108,100,101,109, 97,114, 32, 67,101,108,101,115, 10, 45, 45, 32, 84,101, 67, 71,114, 97,102, 47, 80, 85, 67, 45, 82,105,111, 10, 45, 45, 32, 74,117,108, 32, 49, 57, 57, 56, 10, 45, 45, 32, 36, 73, 100, 58, 32,118,101,114, 98, 97,116,105,109, 46,108,117, 97, 44,118, 32, 49, 46, 51, 32, 50, 48, 48, 48, 47, 48, 49, 47, 50, 52, 32, 50, 48, 58, 52, 49, 58, 49, 54, 32, 99,101,108, 101,115, 32, 69,120,112, 32, 36, 10, 10, 45, 45, 32, 84,104, 105,115, 32, 99,111,100,101, 32,105,115, 32,102,114,101,101, 32,115,111,102,116,119, 97,114,101, 59, 32,121,111,117, 32, 99, 97,110, 32,114,101,100,105,115,116,114,105, 98,117,116, 101, 32,105,116, 32, 97,110,100, 47,111,114, 32,109,111,100, 105,102,121, 32,105,116, 46, 10, 45, 45, 32, 84,104,101, 32, 115,111,102,116,119, 97,114,101, 32,112,114,111,118,105,100, 101,100, 32,104,101,114,101,117,110,100,101,114, 32,105,115, 32,111,110, 32, 97,110, 32, 34, 97,115, 32,105,115, 34, 32, 98, 97,115,105,115, 44, 32, 97,110,100, 10, 45, 45, 32,116, 104,101, 32, 97,117,116,104,111,114, 32,104, 97,115, 32,110, 111, 32,111, 98,108,105,103, 97,116,105,111,110, 32,116,111, 32,112,114,111,118,105,100,101, 32,109, 97,105,110,116,101, 110, 97,110, 99,101, 44, 32,115,117,112,112,111,114,116, 44, 32,117,112,100, 97,116,101,115, 44, 10, 45, 45, 32,101,110, 104, 97,110, 99,101,109,101,110,116,115, 44, 32,111,114, 32, 109,111,100,105,102,105, 99, 97,116,105,111,110,115, 46, 10, 10, 10, 10, 45, 45, 32, 86,101,114, 98, 97,116,105,109, 32, 99,108, 97,115,115, 10, 45, 45, 32, 82,101,112,114,101,115, 101,110,116,115, 32, 97, 32,108,105,110,101, 32,116,114, 97, 110,115,108, 97,116,101,100, 32,100,105,114,101, 99,116,101, 100, 32,116,111, 32,116,104,101, 32, 98,105,110,100,105,110, 103, 32,102,105,108,101, 46, 10, 45, 45, 32, 84,104,101, 32, 102,111,108,108,111,119,105,110,103, 32,102,105,108,100,115, 32, 97,114,101, 32,115,116,111,114,101,100, 58, 10, 45, 45, 32, 32, 32,108,105,110,101, 32, 61, 32,108,105,110,101, 32, 116,101,120,116, 10, 99,108, 97,115,115, 86,101,114, 98, 97, 116,105,109, 32, 61, 32,123, 10, 32,108,105,110,101, 32, 61, 32, 39, 39, 44, 10, 9, 99,111,110,100, 32, 61, 32,110,105, 108, 44, 32, 32, 32, 32, 45, 45, 32, 99,111,110,100,105,116, 105,111,110, 58, 32,119,104,101,114,101, 32,116,111, 32,103, 101,110,101,114, 97,116,101, 32,116,104,101, 32, 99,111,100, 101, 32, 40,115, 61,115,117,112,111,114,116, 44, 32,114, 61, 114,101,103,105,115,116,101,114, 41, 10,125, 10, 99,108, 97, 115,115, 86,101,114, 98, 97,116,105,109, 46, 95, 95,105,110, 100,101,120, 32, 61, 32, 99,108, 97,115,115, 86,101,114, 98, 97,116,105,109, 10,115,101,116,109,101,116, 97,116, 97, 98, 108,101, 40, 99,108, 97,115,115, 86,101,114, 98, 97,116,105, 109, 44, 99,108, 97,115,115, 70,101, 97,116,117,114,101, 41, 10, 10, 45, 45, 32,112,114,101, 97,109, 98,108,101, 32,118, 101,114, 98, 97,116,105,109, 10,102,117,110, 99,116,105,111, 110, 32, 99,108, 97,115,115, 86,101,114, 98, 97,116,105,109, 58,112,114,101, 97,109, 98,108,101, 32, 40, 41, 10, 32,105, 102, 32,115,101,108,102, 46, 99,111,110,100, 32, 61, 61, 32, 39, 39, 32,116,104,101,110, 10, 32, 32,119,114,105,116,101, 40,115,101,108,102, 46,108,105,110,101, 41, 10, 32,101,110, 100, 10,101,110,100, 10, 10, 45, 45, 32,115,117,112,112,111, 114,116, 32, 99,111,100,101, 10,102,117,110, 99,116,105,111, 110, 32, 99,108, 97,115,115, 86,101,114, 98, 97,116,105,109, 58,115,117,112, 99,111,100,101, 32, 40, 41, 10, 32,105,102, 32,115,116,114,102,105,110,100, 40,115,101,108,102, 46, 99, 111,110,100, 44, 39,115, 39, 41, 32,116,104,101,110, 10, 32, 32,119,114,105,116,101, 40,115,101,108,102, 46,108,105,110, 101, 41, 10, 32, 32,119,114,105,116,101, 40, 39, 92,110, 39, 41, 10, 32,101,110,100, 10,101,110,100, 10, 10, 45, 45, 32, 114,101,103,105,115,116,101,114, 32, 99,111,100,101, 10,102, 117,110, 99,116,105,111,110, 32, 99,108, 97,115,115, 86,101, 114, 98, 97,116,105,109, 58,114,101,103,105,115,116,101,114, 32, 40,112,114,101, 41, 10, 32,105,102, 32,115,116,114,102, 105,110,100, 40,115,101,108,102, 46, 99,111,110,100, 44, 39, 114, 39, 41, 32,116,104,101,110, 10, 32, 32,119,114,105,116, 101, 40,115,101,108,102, 46,108,105,110,101, 41, 10, 32,101, 110,100, 10,101,110,100, 10, 10, 10, 45, 45, 32, 80,114,105, 110,116, 32,109,101,116,104,111,100, 10,102,117,110, 99,116, 105,111,110, 32, 99,108, 97,115,115, 86,101,114, 98, 97,116, 105,109, 58,112,114,105,110,116, 32, 40,105,100,101,110,116, 44, 99,108,111,115,101, 41, 10, 32,112,114,105,110,116, 40, 105,100,101,110,116, 46, 46, 34, 86,101,114, 98, 97,116,105, 109,123, 34, 41, 10, 32,112,114,105,110,116, 40,105,100,101, 110,116, 46, 46, 34, 32,108,105,110,101, 32, 61, 32, 39, 34, 46, 46,115,101,108,102, 46,108,105,110,101, 46, 46, 34, 39, 44, 34, 41, 10, 32,112,114,105,110,116, 40,105,100,101,110, 116, 46, 46, 34,125, 34, 46, 46, 99,108,111,115,101, 41, 10, 101,110,100, 10, 10, 10, 45, 45, 32, 73,110,116,101,114,110, 97,108, 32, 99,111,110,115,116,114,117, 99,116,111,114, 10, 102,117,110, 99,116,105,111,110, 32, 95, 86,101,114, 98, 97, 116,105,109, 32, 40,116, 41, 10, 32,115,101,116,109,101,116, 97,116, 97, 98,108,101, 40,116, 44, 99,108, 97,115,115, 86, 101,114, 98, 97,116,105,109, 41, 10, 32, 97,112,112,101,110, 100, 40,116, 41, 10, 32,114,101,116,117,114,110, 32,116, 10, 101,110,100, 10, 10, 45, 45, 32, 67,111,110,115,116,114,117, 99,116,111,114, 10, 45, 45, 32, 69,120,112,101, 99,116,115, 32, 97, 32,115,116,114,105,110,103, 32,114,101,112,114,101, 115,101,110,116,105,110,103, 32,116,104,101, 32,116,101,120, 116, 32,108,105,110,101, 10,102,117,110, 99,116,105,111,110, 32, 86,101,114, 98, 97,116,105,109, 32, 40,108, 44, 99,111, 110,100, 41, 10, 32,105,102, 32,115,116,114,115,117, 98, 40, 108, 44, 49, 44, 49, 41, 32, 61, 61, 32, 34, 39, 34, 32,116, 104,101,110, 10, 32, 32,108, 32, 61, 32,115,116,114,115,117, 98, 40,108, 44, 50, 41, 10, 32,101,108,115,101,105,102, 32, 115,116,114,115,117, 98, 40,108, 44, 49, 44, 49, 41, 32, 61, 61, 32, 39, 36, 39, 32,116,104,101,110, 10, 32, 32, 99,111, 110,100, 32, 61, 32, 39,115,114, 39, 32, 32, 32, 32, 32, 32, 32, 45, 45, 32,103,101,110,101,114, 97,116,101,115, 32,105, 110, 32, 98,111,116,104, 32,115,117,112,111,114,116, 32, 97, 110,100, 32,114,101,103,105,115,116,101,114, 32,102,114, 97, 103,109,101,110,116,115, 10, 32, 32,108, 32, 61, 32,115,116, 114,115,117, 98, 40,108, 44, 50, 41, 10, 32,101,110,100, 10, 32,114,101,116,117,114,110, 32, 95, 86,101,114, 98, 97,116, 105,109, 32,123, 10, 32, 32,108,105,110,101, 32, 61, 32,108, 44, 10, 32, 32, 99,111,110,100, 32, 61, 32, 99,111,110,100, 32,111,114, 32, 39, 39, 44, 10, 32,125, 10,101,110,100,32 }; tolua_dobuffer(tolua_S,(char*)B,sizeof(B),"tolua embedded: lua/tolua++/src/bin/lua/verbatim.lua"); lua_settop(tolua_S, top); } /* end of embedded lua code */ { /* begin embedded lua code */ int top = lua_gettop(tolua_S); static unsigned char B[] = { 45, 45, 32,116,111,108,117, 97, 58, 32, 99,111,100,101, 32, 99,108, 97,115,115, 10, 45, 45, 32, 87,114,105,116,116,101, 110, 32, 98,121, 32, 87, 97,108,100,101,109, 97,114, 32, 67, 101,108,101,115, 10, 45, 45, 32, 84,101, 67, 71,114, 97,102, 47, 80, 85, 67, 45, 82,105,111, 10, 45, 45, 32, 74,117,108, 32, 49, 57, 57, 57, 10, 45, 45, 32, 36, 73,100, 58, 32, 36, 10, 10, 45, 45, 32, 84,104,105,115, 32, 99,111,100,101, 32, 105,115, 32,102,114,101,101, 32,115,111,102,116,119, 97,114, 101, 59, 32,121,111,117, 32, 99, 97,110, 32,114,101,100,105, 115,116,114,105, 98,117,116,101, 32,105,116, 32, 97,110,100, 47,111,114, 32,109,111,100,105,102,121, 32,105,116, 46, 10, 45, 45, 32, 84,104,101, 32,115,111,102,116,119, 97,114,101, 32,112,114,111,118,105,100,101,100, 32,104,101,114,101,117, 110,100,101,114, 32,105,115, 32,111,110, 32, 97,110, 32, 34, 97,115, 32,105,115, 34, 32, 98, 97,115,105,115, 44, 32, 97, 110,100, 10, 45, 45, 32,116,104,101, 32, 97,117,116,104,111, 114, 32,104, 97,115, 32,110,111, 32,111, 98,108,105,103, 97, 116,105,111,110, 32,116,111, 32,112,114,111,118,105,100,101, 32,109, 97,105,110,116,101,110, 97,110, 99,101, 44, 32,115, 117,112,112,111,114,116, 44, 32,117,112,100, 97,116,101,115, 44, 10, 45, 45, 32,101,110,104, 97,110, 99,101,109,101,110, 116,115, 44, 32,111,114, 32,109,111,100,105,102,105, 99, 97, 116,105,111,110,115, 46, 10, 10, 45, 45, 32,103,108,111, 98, 97,108, 10, 99,111,100,101, 95,110, 32, 61, 32, 49, 10, 10, 45, 45, 32, 67,111,100,101, 32, 99,108, 97,115,115, 10, 45, 45, 32, 82,101,112,114,101,115,101,110,116,115, 32, 76,117, 97, 32, 99,111,100,101, 32,116,111, 32, 98,101, 32, 99,111, 109,112,105,108,101,100, 32, 97,110,100, 32,105,110, 99,108, 117,100,101,100, 10, 45, 45, 32,105,110, 32,116,104,101, 32, 105,110,105,116,105, 97,108,105,122, 97,116,105,111,110, 32, 102,117,110, 99,116,105,111,110, 46, 10, 45, 45, 32, 84,104, 101, 32,102,111,108,108,111,119,105,110,103, 32,102,105,101, 108,100,115, 32, 97,114,101, 32,115,116,111,114,101,100, 58, 10, 45, 45, 32, 32, 32,116,101,120,116, 32, 61, 32,116,101, 120,116, 32, 99,111,100,101, 10, 99,108, 97,115,115, 67,111, 100,101, 32, 61, 32,123, 10, 32,116,101,120,116, 32, 61, 32, 39, 39, 44, 10,125, 10, 99,108, 97,115,115, 67,111,100,101, 46, 95, 95,105,110,100,101,120, 32, 61, 32, 99,108, 97,115, 115, 67,111,100,101, 10,115,101,116,109,101,116, 97,116, 97, 98,108,101, 40, 99,108, 97,115,115, 67,111,100,101, 44, 99, 108, 97,115,115, 70,101, 97,116,117,114,101, 41, 10, 10, 45, 45, 32,114,101,103,105,115,116,101,114, 32, 99,111,100,101, 10,102,117,110, 99,116,105,111,110, 32, 99,108, 97,115,115, 67,111,100,101, 58,114,101,103,105,115,116,101,114, 32, 40, 112,114,101, 41, 10, 32,112,114,101, 32, 61, 32,112,114,101, 32,111,114, 32, 39, 39, 10, 32, 45, 45, 32, 99,108,101, 97, 110, 32, 76,117, 97, 32, 99,111,100,101, 10, 32,108,111, 99, 97,108, 32,115, 32, 61, 32, 99,108,101, 97,110, 40,115,101, 108,102, 46,116,101,120,116, 41, 10, 32,105,102, 32,110,111, 116, 32,115, 32,116,104,101,110, 10, 32, 32, 45, 45,112,114, 105,110,116, 40,115,101,108,102, 46,116,101,120,116, 41, 10, 32, 32,101,114,114,111,114, 40, 34,112, 97,114,115,101,114, 32,101,114,114,111,114, 32,105,110, 32,101,109, 98,101,100, 100,101,100, 32, 99,111,100,101, 34, 41, 10, 32,101,110,100, 10, 10, 32, 45, 45, 32,103,101,116, 32,102,105,114,115,116, 32,108,105,110,101, 10, 32,108,111, 99, 97,108, 32, 95, 44, 32, 95, 44, 32,102,105,114,115,116, 95,108,105,110,101, 61, 115,116,114,105,110,103, 46,102,105,110,100, 40,115,101,108, 102, 46,116,101,120,116, 44, 32, 34, 94, 40, 91, 94, 92,110, 92,114, 93, 42, 41, 34, 41, 10, 32,105,102, 32,115,116,114, 105,110,103, 46,102,105,110,100, 40,102,105,114,115,116, 95, 108,105,110,101, 44, 32, 34, 94, 37,115, 42, 37, 45, 37, 45, 34, 41, 32,116,104,101,110, 10, 9, 32,105,102, 32,115,116, 114,105,110,103, 46,102,105,110,100, 40,102,105,114,115,116, 95,108,105,110,101, 44, 32, 34, 94, 37, 45, 37, 45, 35, 35, 34, 41, 32,116,104,101,110, 10, 9, 9,102,105,114,115,116, 95,108,105,110,101, 32, 61, 32,115,116,114,105,110,103, 46, 103,115,117, 98, 40,102,105,114,115,116, 95,108,105,110,101, 44, 32, 34, 94, 37, 45, 37, 45, 35, 35, 34, 44, 32, 34, 34, 41, 10, 9, 9,105,102, 32,102,108, 97,103,115, 91, 39, 67, 39, 93, 32,116,104,101,110, 10, 9, 9, 9,115, 32, 61, 32, 115,116,114,105,110,103, 46,103,115,117, 98, 40,115, 44, 32, 34, 94, 37, 45, 37, 45, 35, 35, 91, 94, 92,110, 92,114, 93, 42, 92,110, 34, 44, 32, 34, 34, 41, 10, 9, 9,101,110,100, 10, 9, 32,101,110,100, 10, 32,101,108,115,101, 10, 32, 9, 102,105,114,115,116, 95,108,105,110,101, 32, 61, 32, 34, 34, 10, 32,101,110,100, 10, 10, 32, 45, 45, 32, 99,111,110,118, 101,114,116, 32,116,111, 32, 67, 10, 32,111,117,116,112,117, 116, 40, 39, 92,110, 39, 46, 46,112,114,101, 46, 46, 39,123, 32, 47, 42, 32, 98,101,103,105,110, 32,101,109, 98,101,100, 100,101,100, 32,108,117, 97, 32, 99,111,100,101, 32, 42, 47, 92,110, 39, 41, 10, 32,111,117,116,112,117,116, 40,112,114, 101, 46, 46, 39, 32,105,110,116, 32,116,111,112, 32, 61, 32, 108,117, 97, 95,103,101,116,116,111,112, 40,116,111,108,117, 97, 95, 83, 41, 59, 39, 41, 10, 32,111,117,116,112,117,116, 40,112,114,101, 46, 46, 39, 32,115,116, 97,116,105, 99, 32, 117,110,115,105,103,110,101,100, 32, 99,104, 97,114, 32, 66, 91, 93, 32, 61, 32,123, 92,110, 32, 32, 32, 39, 41, 10, 32, 108,111, 99, 97,108, 32,116, 61,123,110, 61, 48,125, 10, 32, 108,111, 99, 97,108, 32, 98, 32, 61, 32,103,115,117, 98, 40, 115, 44, 39, 40, 46, 41, 39, 44,102,117,110, 99,116,105,111, 110, 32, 40, 99, 41, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32,108,111, 99, 97,108, 32,101, 32, 61, 32, 39, 39, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32,116, 46,110, 61,116, 46, 110, 43, 49, 32,105,102, 32,116, 46,110, 61, 61, 49, 53, 32, 116,104,101,110, 32,116, 46,110, 61, 48, 32,101, 61, 39, 92, 110, 39, 46, 46,112,114,101, 46, 46, 39, 32, 32, 39, 32,101, 110,100, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32,114,101, 116,117,114,110, 32,102,111,114,109, 97,116, 40, 39, 37, 51, 117, 44, 37,115, 39, 44,115,116,114, 98,121,116,101, 40, 99, 41, 44,101, 41, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32,101, 110,100, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 41, 10, 32,111,117,116,112,117,116, 40, 98, 46, 46,115,116,114, 98,121,116,101, 40, 34, 32, 34, 41, 41, 10, 32,111,117,116,112,117,116, 40, 39, 92,110, 39, 46, 46,112, 114,101, 46, 46, 39, 32,125, 59, 92,110, 39, 41, 10, 32,105, 102, 32,102,105,114,115,116, 95,108,105,110,101, 32, 97,110, 100, 32,102,105,114,115,116, 95,108,105,110,101, 32,126, 61, 32, 34, 34, 32,116,104,101,110, 10, 32, 9,111,117,116,112, 117,116, 40,112,114,101, 46, 46, 39, 32,116,111,108,117, 97, 95,100,111, 98,117,102,102,101,114, 40,116,111,108,117, 97, 95, 83, 44, 40, 99,104, 97,114, 42, 41, 66, 44,115,105,122, 101,111,102, 40, 66, 41, 44, 34,116,111,108,117, 97, 32,101, 109, 98,101,100,100,101,100, 58, 32, 39, 46, 46,102,105,114, 115,116, 95,108,105,110,101, 46, 46, 39, 34, 41, 59, 39, 41, 10, 32,101,108,115,101, 10, 32, 9,111,117,116,112,117,116, 40,112,114,101, 46, 46, 39, 32,116,111,108,117, 97, 95,100, 111, 98,117,102,102,101,114, 40,116,111,108,117, 97, 95, 83, 44, 40, 99,104, 97,114, 42, 41, 66, 44,115,105,122,101,111, 102, 40, 66, 41, 44, 34,116,111,108,117, 97, 58, 32,101,109, 98,101,100,100,101,100, 32, 76,117, 97, 32, 99,111,100,101, 32, 39, 46, 46, 99,111,100,101, 95,110, 46, 46, 39, 34, 41, 59, 39, 41, 10, 32,101,110,100, 10, 32,111,117,116,112,117, 116, 40,112,114,101, 46, 46, 39, 32,108,117, 97, 95,115,101, 116,116,111,112, 40,116,111,108,117, 97, 95, 83, 44, 32,116, 111,112, 41, 59, 39, 41, 10, 32,111,117,116,112,117,116, 40, 112,114,101, 46, 46, 39,125, 32, 47, 42, 32,101,110,100, 32, 111,102, 32,101,109, 98,101,100,100,101,100, 32,108,117, 97, 32, 99,111,100,101, 32, 42, 47, 92,110, 92,110, 39, 41, 10, 32, 99,111,100,101, 95,110, 32, 61, 32, 99,111,100,101, 95, 110, 32, 43, 49, 10,101,110,100, 10, 10, 10, 45, 45, 32, 80, 114,105,110,116, 32,109,101,116,104,111,100, 10,102,117,110, 99,116,105,111,110, 32, 99,108, 97,115,115, 67,111,100,101, 58,112,114,105,110,116, 32, 40,105,100,101,110,116, 44, 99, 108,111,115,101, 41, 10, 32,112,114,105,110,116, 40,105,100, 101,110,116, 46, 46, 34, 67,111,100,101,123, 34, 41, 10, 32, 112,114,105,110,116, 40,105,100,101,110,116, 46, 46, 34, 32, 116,101,120,116, 32, 61, 32, 91, 91, 34, 46, 46,115,101,108, 102, 46,116,101,120,116, 46, 46, 34, 93, 93, 44, 34, 41, 10, 32,112,114,105,110,116, 40,105,100,101,110,116, 46, 46, 34, 125, 34, 46, 46, 99,108,111,115,101, 41, 10,101,110,100, 10, 10, 10, 45, 45, 32, 73,110,116,101,114,110, 97,108, 32, 99, 111,110,115,116,114,117, 99,116,111,114, 10,102,117,110, 99, 116,105,111,110, 32, 95, 67,111,100,101, 32, 40,116, 41, 10, 32,115,101,116,109,101,116, 97,116, 97, 98,108,101, 40,116, 44, 99,108, 97,115,115, 67,111,100,101, 41, 10, 32, 97,112, 112,101,110,100, 40,116, 41, 10, 32,114,101,116,117,114,110, 32,116, 10,101,110,100, 10, 10, 45, 45, 32, 67,111,110,115, 116,114,117, 99,116,111,114, 10, 45, 45, 32, 69,120,112,101, 99,116,115, 32, 97, 32,115,116,114,105,110,103, 32,114,101, 112,114,101,115,101,110,116,105,110,103, 32,116,104,101, 32, 99,111,100,101, 32,116,101,120,116, 10,102,117,110, 99,116, 105,111,110, 32, 67,111,100,101, 32, 40,108, 41, 10, 32,114, 101,116,117,114,110, 32, 95, 67,111,100,101, 32,123, 10, 32, 32,116,101,120,116, 32, 61, 32,108, 10, 32,125, 10,101,110, 100,32 }; tolua_dobuffer(tolua_S,(char*)B,sizeof(B),"tolua embedded: lua/tolua++/src/bin/lua/code.lua"); lua_settop(tolua_S, top); } /* end of embedded lua code */ { /* begin embedded lua code */ int top = lua_gettop(tolua_S); static unsigned char B[] = { 45, 45, 32,116,111,108,117, 97, 58, 32,116,121,112,101,100, 101,102, 32, 99,108, 97,115,115, 10, 45, 45, 32, 87,114,105, 116,116,101,110, 32, 98,121, 32, 87, 97,108,100,101,109, 97, 114, 32, 67,101,108,101,115, 10, 45, 45, 32, 84,101, 67, 71, 114, 97,102, 47, 80, 85, 67, 45, 82,105,111, 10, 45, 45, 32, 74,117,108, 32, 49, 57, 57, 56, 10, 45, 45, 32, 36, 73,100, 58, 32, 36, 10, 10, 45, 45, 32, 84,104,105,115, 32, 99,111, 100,101, 32,105,115, 32,102,114,101,101, 32,115,111,102,116, 119, 97,114,101, 59, 32,121,111,117, 32, 99, 97,110, 32,114, 101,100,105,115,116,114,105, 98,117,116,101, 32,105,116, 32, 97,110,100, 47,111,114, 32,109,111,100,105,102,121, 32,105, 116, 46, 10, 45, 45, 32, 84,104,101, 32,115,111,102,116,119, 97,114,101, 32,112,114,111,118,105,100,101,100, 32,104,101, 114,101,117,110,100,101,114, 32,105,115, 32,111,110, 32, 97, 110, 32, 34, 97,115, 32,105,115, 34, 32, 98, 97,115,105,115, 44, 32, 97,110,100, 10, 45, 45, 32,116,104,101, 32, 97,117, 116,104,111,114, 32,104, 97,115, 32,110,111, 32,111, 98,108, 105,103, 97,116,105,111,110, 32,116,111, 32,112,114,111,118, 105,100,101, 32,109, 97,105,110,116,101,110, 97,110, 99,101, 44, 32,115,117,112,112,111,114,116, 44, 32,117,112,100, 97, 116,101,115, 44, 10, 45, 45, 32,101,110,104, 97,110, 99,101, 109,101,110,116,115, 44, 32,111,114, 32,109,111,100,105,102, 105, 99, 97,116,105,111,110,115, 46, 10, 10, 10, 10, 45, 45, 32, 84,121,112,101,100,101,102, 32, 99,108, 97,115,115, 10, 45, 45, 32, 82,101,112,114,101,115,101,110,116,115, 32, 97, 32,116,121,112,101, 32,115,121,110,111,110,121,109, 46, 10, 45, 45, 32, 84,104,101, 32, 39,100,101, 32,102, 97, 99,116, 111, 39, 32,116,121,112,101, 32,114,101,112,108, 97, 99,101, 115, 32,116,104,101, 32,116,121,112,101,100,101,102, 32, 98, 101,102,111,114,101, 32,116,104,101, 10, 45, 45, 32,114,101, 109, 97,105,110,105,110,103, 32, 99,111,100,101, 32,105,115, 32,112, 97,114,115,101,100, 46, 10, 45, 45, 32, 84,104,101, 32,102,111,108,108,111,119,105,110,103, 32,102,105,101,108, 100,115, 32, 97,114,101, 32,115,116,111,114,101,100, 58, 10, 45, 45, 32, 32, 32,117,116,121,112,101, 32, 61, 32,116,121, 112,101,100,101,102, 32,110, 97,109,101, 10, 45, 45, 32, 32, 32,116,121,112,101, 32, 61, 32, 39,116,104,101, 32,102, 97, 99,116,111, 39, 32,116,121,112,101, 10, 45, 45, 32, 32, 32, 109,111,100, 32, 61, 32,109,111,100,105,102,105,101,114,115, 32,116,111, 32,116,104,101, 32, 39,100,101, 32,102, 97, 99, 116,111, 39, 32,116,121,112,101, 10, 99,108, 97,115,115, 84, 121,112,101,100,101,102, 32, 61, 32,123, 10, 32,117,116,121, 112,101, 32, 61, 32, 39, 39, 44, 10, 32,109,111,100, 32, 61, 32, 39, 39, 44, 10, 32,116,121,112,101, 32, 61, 32, 39, 39, 10,125, 10, 99,108, 97,115,115, 84,121,112,101,100,101,102, 46, 95, 95,105,110,100,101,120, 32, 61, 32, 99,108, 97,115, 115, 84,121,112,101,100,101,102, 10, 10, 45, 45, 32, 80,114, 105,110,116, 32,109,101,116,104,111,100, 10,102,117,110, 99, 116,105,111,110, 32, 99,108, 97,115,115, 84,121,112,101,100, 101,102, 58,112,114,105,110,116, 32, 40,105,100,101,110,116, 44, 99,108,111,115,101, 41, 10, 32,112,114,105,110,116, 40, 105,100,101,110,116, 46, 46, 34, 84,121,112,101,100,101,102, 123, 34, 41, 10, 32,112,114,105,110,116, 40,105,100,101,110, 116, 46, 46, 34, 32,117,116,121,112,101, 32, 61, 32, 39, 34, 46, 46,115,101,108,102, 46,117,116,121,112,101, 46, 46, 34, 39, 44, 34, 41, 10, 32,112,114,105,110,116, 40,105,100,101, 110,116, 46, 46, 34, 32,109,111,100, 32, 61, 32, 39, 34, 46, 46,115,101,108,102, 46,109,111,100, 46, 46, 34, 39, 44, 34, 41, 10, 32,112,114,105,110,116, 40,105,100,101,110,116, 46, 46, 34, 32,116,121,112,101, 32, 61, 32, 39, 34, 46, 46,115, 101,108,102, 46,116,121,112,101, 46, 46, 34, 39, 44, 34, 41, 10, 32,112,114,105,110,116, 40,105,100,101,110,116, 46, 46, 34,125, 34, 46, 46, 99,108,111,115,101, 41, 10,101,110,100, 10, 10, 45, 45, 32, 82,101,116,117,114,110, 32,105,116, 39, 115, 32,110,111,116, 32, 97, 32,118, 97,114,105, 97, 98,108, 101, 10,102,117,110, 99,116,105,111,110, 32, 99,108, 97,115, 115, 84,121,112,101,100,101,102, 58,105,115,118, 97,114,105, 97, 98,108,101, 32, 40, 41, 10, 32,114,101,116,117,114,110, 32,102, 97,108,115,101, 10,101,110,100, 10, 10, 45, 45, 32, 73,110,116,101,114,110, 97,108, 32, 99,111,110,115,116,114, 117, 99,116,111,114, 10,102,117,110, 99,116,105,111,110, 32, 95, 84,121,112,101,100,101,102, 32, 40,116, 41, 10, 32,115, 101,116,109,101,116, 97,116, 97, 98,108,101, 40,116, 44, 99, 108, 97,115,115, 84,121,112,101,100,101,102, 41, 10, 32,116, 46,116,121,112,101, 32, 61, 32,114,101,115,111,108,118,101, 95,116,101,109,112,108, 97,116,101, 95,116,121,112,101,115, 40,116, 46,116,121,112,101, 41, 10, 32, 97,112,112,101,110, 100,116,121,112,101,100,101,102, 40,116, 41, 10, 32,114,101, 116,117,114,110, 32,116, 10,101,110,100, 10, 10, 45, 45, 32, 67,111,110,115,116,114,117, 99,116,111,114, 10, 45, 45, 32, 69,120,112,101, 99,116,115, 32,111,110,101, 32,115,116,114, 105,110,103, 32,114,101,112,114,101,115,101,110,116,105,110, 103, 32,116,104,101, 32,116,121,112,101, 32,100,101,102,105, 110,105,116,105,111,110, 46, 10,102,117,110, 99,116,105,111, 110, 32, 84,121,112,101,100,101,102, 32, 40,115, 41, 10, 32, 105,102, 32,115,116,114,102,105,110,100, 40,115,116,114,105, 110,103, 46,103,115,117, 98, 40,115, 44, 32, 39, 37, 98, 60, 62, 39, 44, 32, 39, 39, 41, 44, 39, 91, 37, 42, 38, 93, 39, 41, 32,116,104,101,110, 10, 32, 32,116,111,108,117, 97, 95, 101,114,114,111,114, 40, 34, 35,105,110,118, 97,108,105,100, 32,116,121,112,101,100,101,102, 58, 32,112,111,105,110,116, 101,114,115, 32, 40, 97,110,100, 32,114,101,102,101,114,101, 110, 99,101,115, 41, 32, 97,114,101, 32,110,111,116, 32,115, 117,112,112,111,114,116,101,100, 34, 41, 10, 32,101,110,100, 10, 32,108,111, 99, 97,108, 32,111, 32, 61, 32,123,109,111, 100, 32, 61, 32, 39, 39,125, 10, 32,105,102, 32,115,116,114, 105,110,103, 46,102,105,110,100, 40,115, 44, 32, 34, 91, 60, 62, 93, 34, 41, 32,116,104,101,110, 10, 32, 9, 95, 44, 95, 44,111, 46,116,121,112,101, 44,111, 46,117,116,121,112,101, 32, 61, 32,115,116,114,105,110,103, 46,102,105,110,100, 40, 115, 44, 32, 34, 94, 37,115, 42, 40, 91, 94, 60, 62, 93, 43, 37, 98, 60, 62, 91, 94, 37,115, 93, 42, 41, 37,115, 43, 40, 46, 45, 41, 36, 34, 41, 10, 32,101,108,115,101, 10, 32, 9, 108,111, 99, 97,108, 32,116, 32, 61, 32,115,112,108,105,116, 40,103,115,117, 98, 40,115, 44, 34, 37,115, 37,115, 42, 34, 44, 34, 32, 34, 41, 44, 34, 32, 34, 41, 10, 32, 9,111, 32, 61, 32,123, 10, 9, 32, 32,117,116,121,112,101, 32, 61, 32, 116, 91,116, 46,110, 93, 44, 10, 9, 32, 32,116,121,112,101, 32, 61, 32,116, 91,116, 46,110, 45, 49, 93, 44, 10, 9, 32, 32,109,111,100, 32, 61, 32, 99,111,110, 99, 97,116, 40,116, 44, 49, 44,116, 46,110, 45, 50, 41, 44, 10, 9, 32,125, 10, 32,101,110,100, 10, 32,114,101,116,117,114,110, 32, 95, 84, 121,112,101,100,101,102, 40,111, 41, 10,101,110,100,32 }; tolua_dobuffer(tolua_S,(char*)B,sizeof(B),"tolua embedded: lua/tolua++/src/bin/lua/typedef.lua"); lua_settop(tolua_S, top); } /* end of embedded lua code */ { /* begin embedded lua code */ int top = lua_gettop(tolua_S); static unsigned char B[] = { 45, 45, 32,116,111,108,117, 97, 58, 32, 99,111,110,116, 97, 105,110,101,114, 32, 97, 98,115,116,114, 97, 99,116, 32, 99, 108, 97,115,115, 10, 45, 45, 32, 87,114,105,116,116,101,110, 32, 98,121, 32, 87, 97,108,100,101,109, 97,114, 32, 67,101, 108,101,115, 10, 45, 45, 32, 84,101, 67, 71,114, 97,102, 47, 80, 85, 67, 45, 82,105,111, 10, 45, 45, 32, 74,117,108, 32, 49, 57, 57, 56, 10, 45, 45, 32, 36, 73,100, 58, 32, 36, 10, 10, 45, 45, 32, 84,104,105,115, 32, 99,111,100,101, 32,105, 115, 32,102,114,101,101, 32,115,111,102,116,119, 97,114,101, 59, 32,121,111,117, 32, 99, 97,110, 32,114,101,100,105,115, 116,114,105, 98,117,116,101, 32,105,116, 32, 97,110,100, 47, 111,114, 32,109,111,100,105,102,121, 32,105,116, 46, 10, 45, 45, 32, 84,104,101, 32,115,111,102,116,119, 97,114,101, 32, 112,114,111,118,105,100,101,100, 32,104,101,114,101,117,110, 100,101,114, 32,105,115, 32,111,110, 32, 97,110, 32, 34, 97, 115, 32,105,115, 34, 32, 98, 97,115,105,115, 44, 32, 97,110, 100, 10, 45, 45, 32,116,104,101, 32, 97,117,116,104,111,114, 32,104, 97,115, 32,110,111, 32,111, 98,108,105,103, 97,116, 105,111,110, 32,116,111, 32,112,114,111,118,105,100,101, 32, 109, 97,105,110,116,101,110, 97,110, 99,101, 44, 32,115,117, 112,112,111,114,116, 44, 32,117,112,100, 97,116,101,115, 44, 10, 45, 45, 32,101,110,104, 97,110, 99,101,109,101,110,116, 115, 44, 32,111,114, 32,109,111,100,105,102,105, 99, 97,116, 105,111,110,115, 46, 10, 10, 45, 45, 32,116, 97, 98,108,101, 32,116,111, 32,115,116,111,114,101, 32,110, 97,109,101,115, 112, 97, 99,101,100, 32,116,121,112,101,100,101,102,115, 47, 101,110,117,109,115, 32,105,110, 32,103,108,111, 98, 97,108, 32,115, 99,111,112,101, 10,103,108,111, 98, 97,108, 95,116, 121,112,101,100,101,102,115, 32, 61, 32,123,125, 10,103,108, 111, 98, 97,108, 95,101,110,117,109,115, 32, 61, 32,123,125, 10, 10, 45, 45, 32, 67,111,110,116, 97,105,110,101,114, 32, 99,108, 97,115,115, 10, 45, 45, 32, 82,101,112,114,101,115, 101,110,116,115, 32, 97, 32, 99,111,110,116, 97,105,110,101, 114, 32,111,102, 32,102,101, 97,116,117,114,101,115, 32,116, 111, 32, 98,101, 32, 98,111,117,110,100, 10, 45, 45, 32,116, 111, 32,108,117, 97, 46, 10, 99,108, 97,115,115, 67,111,110, 116, 97,105,110,101,114, 32, 61, 10,123, 10, 32, 99,117,114, 114, 32, 61, 32,110,105,108, 44, 10,125, 10, 99,108, 97,115, 115, 67,111,110,116, 97,105,110,101,114, 46, 95, 95,105,110, 100,101,120, 32, 61, 32, 99,108, 97,115,115, 67,111,110,116, 97,105,110,101,114, 10,115,101,116,109,101,116, 97,116, 97, 98,108,101, 40, 99,108, 97,115,115, 67,111,110,116, 97,105, 110,101,114, 44, 99,108, 97,115,115, 70,101, 97,116,117,114, 101, 41, 10, 10, 45, 45, 32,111,117,116,112,117,116, 32,116, 97,103,115, 10,102,117,110, 99,116,105,111,110, 32, 99,108, 97,115,115, 67,111,110,116, 97,105,110,101,114, 58,100,101, 99,108,116,121,112,101, 32, 40, 41, 10, 32,112,117,115,104, 40,115,101,108,102, 41, 10, 32,108,111, 99, 97,108, 32,105, 61, 49, 10, 32,119,104,105,108,101, 32,115,101,108,102, 91, 105, 93, 32,100,111, 10, 32, 32,115,101,108,102, 91,105, 93, 58,100,101, 99,108,116,121,112,101, 40, 41, 10, 32, 32,105, 32, 61, 32,105, 43, 49, 10, 32,101,110,100, 10, 32,112,111, 112, 40, 41, 10,101,110,100, 10, 10, 10, 45, 45, 32,119,114, 105,116,101, 32,115,117,112,112,111,114,116, 32, 99,111,100, 101, 10,102,117,110, 99,116,105,111,110, 32, 99,108, 97,115, 115, 67,111,110,116, 97,105,110,101,114, 58,115,117,112, 99, 111,100,101, 32, 40, 41, 10, 10, 9,105,102, 32,110,111,116, 32,115,101,108,102, 58, 99,104,101, 99,107, 95,112,117, 98, 108,105, 99, 95, 97, 99, 99,101,115,115, 40, 41, 32,116,104, 101,110, 10, 9, 9,114,101,116,117,114,110, 10, 9,101,110, 100, 10, 10, 32,112,117,115,104, 40,115,101,108,102, 41, 10, 32,108,111, 99, 97,108, 32,105, 61, 49, 10, 32,119,104,105, 108,101, 32,115,101,108,102, 91,105, 93, 32,100,111, 10, 32, 32,105,102, 32,115,101,108,102, 91,105, 93, 58, 99,104,101, 99,107, 95,112,117, 98,108,105, 99, 95, 97, 99, 99,101,115, 115, 40, 41, 32,116,104,101,110, 10, 32, 32, 9,115,101,108, 102, 91,105, 93, 58,115,117,112, 99,111,100,101, 40, 41, 10, 32, 32,101,110,100, 10, 32, 32,105, 32, 61, 32,105, 43, 49, 10, 32,101,110,100, 10, 32,112,111,112, 40, 41, 10,101,110, 100, 10, 10,102,117,110, 99,116,105,111,110, 32, 99,108, 97, 115,115, 67,111,110,116, 97,105,110,101,114, 58,104, 97,115, 118, 97,114, 32, 40, 41, 10, 32,108,111, 99, 97,108, 32,105, 61, 49, 10, 32,119,104,105,108,101, 32,115,101,108,102, 91, 105, 93, 32,100,111, 10, 32, 32,105,102, 32,115,101,108,102, 91,105, 93, 58,105,115,118, 97,114,105, 97, 98,108,101, 40, 41, 32,116,104,101,110, 10, 9, 9, 32,114,101,116,117,114, 110, 32, 49, 10, 9, 9,101,110,100, 10, 32, 32,105, 32, 61, 32,105, 43, 49, 10, 32,101,110,100, 10, 9,114,101,116,117, 114,110, 32, 48, 10,101,110,100, 10, 10, 45, 45, 32, 73,110, 116,101,114,110, 97,108, 32, 99,111,110,116, 97,105,110,101, 114, 32, 99,111,110,115,116,114,117, 99,116,111,114, 10,102, 117,110, 99,116,105,111,110, 32, 95, 67,111,110,116, 97,105, 110,101,114, 32, 40,115,101,108,102, 41, 10, 32,115,101,116, 109,101,116, 97,116, 97, 98,108,101, 40,115,101,108,102, 44, 99,108, 97,115,115, 67,111,110,116, 97,105,110,101,114, 41, 10, 32,115,101,108,102, 46,110, 32, 61, 32, 48, 10, 32,115, 101,108,102, 46,116,121,112,101,100,101,102,115, 32, 61, 32, 123,116,111,108,117, 97, 95,110, 61, 48,125, 10, 32,115,101, 108,102, 46,117,115,101,114,116,121,112,101,115, 32, 61, 32, 123,125, 10, 32,115,101,108,102, 46,101,110,117,109,115, 32, 61, 32,123,116,111,108,117, 97, 95,110, 61, 48,125, 10, 32, 115,101,108,102, 46,108,110, 97,109,101,115, 32, 61, 32,123, 125, 10, 32,114,101,116,117,114,110, 32,115,101,108,102, 10, 101,110,100, 10, 10, 45, 45, 32,112,117,115,104, 32, 99,111, 110,116, 97,105,110,101,114, 10,102,117,110, 99,116,105,111, 110, 32,112,117,115,104, 32, 40,116, 41, 10, 9,116, 46,112, 114,111,120, 32, 61, 32, 99,108, 97,115,115, 67,111,110,116, 97,105,110,101,114, 46, 99,117,114,114, 10, 32, 99,108, 97, 115,115, 67,111,110,116, 97,105,110,101,114, 46, 99,117,114, 114, 32, 61, 32,116, 10,101,110,100, 10, 10, 45, 45, 32,112, 111,112, 32, 99,111,110,116, 97,105,110,101,114, 10,102,117, 110, 99,116,105,111,110, 32,112,111,112, 32, 40, 41, 10, 45, 45,112,114,105,110,116, 40, 34,110, 97,109,101, 34, 44, 99, 108, 97,115,115, 67,111,110,116, 97,105,110,101,114, 46, 99, 117,114,114, 46,110, 97,109,101, 41, 10, 45, 45,102,111,114, 101, 97, 99,104, 40, 99,108, 97,115,115, 67,111,110,116, 97, 105,110,101,114, 46, 99,117,114,114, 46,117,115,101,114,116, 121,112,101,115, 44,112,114,105,110,116, 41, 10, 45, 45,112, 114,105,110,116, 40, 34, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 34, 41, 10, 32, 99,108, 97,115,115, 67, 111,110,116, 97,105,110,101,114, 46, 99,117,114,114, 32, 61, 32, 99,108, 97,115,115, 67,111,110,116, 97,105,110,101,114, 46, 99,117,114,114, 46,112,114,111,120, 10,101,110,100, 10, 10, 45, 45, 32,103,101,116, 32, 99,117,114,114,101,110,116, 32,110, 97,109,101,115,112, 97, 99,101, 10,102,117,110, 99, 116,105,111,110, 32,103,101,116, 99,117,114,114,110, 97,109, 101,115,112, 97, 99,101, 32, 40, 41, 10, 9,114,101,116,117, 114,110, 32,103,101,116,110, 97,109,101,115,112, 97, 99,101, 40, 99,108, 97,115,115, 67,111,110,116, 97,105,110,101,114, 46, 99,117,114,114, 41, 10,101,110,100, 10, 10, 45, 45, 32, 97,112,112,101,110,100, 32,116,111, 32, 99,117,114,114,101, 110,116, 32, 99,111,110,116, 97,105,110,101,114, 10,102,117, 110, 99,116,105,111,110, 32, 97,112,112,101,110,100, 32, 40, 116, 41, 10, 32,114,101,116,117,114,110, 32, 99,108, 97,115, 115, 67,111,110,116, 97,105,110,101,114, 46, 99,117,114,114, 58, 97,112,112,101,110,100, 40,116, 41, 10,101,110,100, 10, 10, 45, 45, 32, 97,112,112,101,110,100, 32,116,121,112,101, 100,101,102, 32,116,111, 32, 99,117,114,114,101,110,116, 32, 99,111,110,116, 97,105,110,101,114, 10,102,117,110, 99,116, 105,111,110, 32, 97,112,112,101,110,100,116,121,112,101,100, 101,102, 32, 40,116, 41, 10, 32,114,101,116,117,114,110, 32, 99,108, 97,115,115, 67,111,110,116, 97,105,110,101,114, 46, 99,117,114,114, 58, 97,112,112,101,110,100,116,121,112,101, 100,101,102, 40,116, 41, 10,101,110,100, 10, 10, 45, 45, 32, 97,112,112,101,110,100, 32,117,115,101,114,116,121,112,101, 32,116,111, 32, 99,117,114,114,101,110,116, 32, 99,111,110, 116, 97,105,110,101,114, 10,102,117,110, 99,116,105,111,110, 32, 97,112,112,101,110,100,117,115,101,114,116,121,112,101, 32, 40,116, 41, 10, 32,114,101,116,117,114,110, 32, 99,108, 97,115,115, 67,111,110,116, 97,105,110,101,114, 46, 99,117, 114,114, 58, 97,112,112,101,110,100,117,115,101,114,116,121, 112,101, 40,116, 41, 10,101,110,100, 10, 10, 45, 45, 32, 97, 112,112,101,110,100, 32,101,110,117,109, 32,116,111, 32, 99, 117,114,114,101,110,116, 32, 99,111,110,116, 97,105,110,101, 114, 10,102,117,110, 99,116,105,111,110, 32, 97,112,112,101, 110,100,101,110,117,109, 32, 40,116, 41, 10, 32,114,101,116, 117,114,110, 32, 99,108, 97,115,115, 67,111,110,116, 97,105, 110,101,114, 46, 99,117,114,114, 58, 97,112,112,101,110,100, 101,110,117,109, 40,116, 41, 10,101,110,100, 10, 10, 45, 45, 32,115,117, 98,115,116,105,116,117,116,101, 32,116,121,112, 101,100,101,102, 10,102,117,110, 99,116,105,111,110, 32, 97, 112,112,108,121,116,121,112,101,100,101,102, 32, 40,109,111, 100, 44,116,121,112,101, 41, 10, 32,114,101,116,117,114,110, 32, 99,108, 97,115,115, 67,111,110,116, 97,105,110,101,114, 46, 99,117,114,114, 58, 97,112,112,108,121,116,121,112,101, 100,101,102, 40,109,111,100, 44,116,121,112,101, 41, 10,101, 110,100, 10, 10, 45, 45, 32, 99,104,101, 99,107, 32,105,102, 32,105,115, 32,116,121,112,101, 10,102,117,110, 99,116,105, 111,110, 32,102,105,110,100,116,121,112,101, 32, 40,116,121, 112,101, 41, 10, 32,108,111, 99, 97,108, 32,116, 32, 61, 32, 99,108, 97,115,115, 67,111,110,116, 97,105,110,101,114, 46, 99,117,114,114, 58,102,105,110,100,116,121,112,101, 40,116, 121,112,101, 41, 10, 9,114,101,116,117,114,110, 32,116, 10, 101,110,100, 10, 10, 45, 45, 32, 99,104,101, 99,107, 32,105, 102, 32,105,115, 32,116,121,112,101,100,101,102, 10,102,117, 110, 99,116,105,111,110, 32,105,115,116,121,112,101,100,101, 102, 32, 40,116,121,112,101, 41, 10, 32,114,101,116,117,114, 110, 32, 99,108, 97,115,115, 67,111,110,116, 97,105,110,101, 114, 46, 99,117,114,114, 58,105,115,116,121,112,101,100,101, 102, 40,116,121,112,101, 41, 10,101,110,100, 10, 10, 45, 45, 32,103,101,116, 32,102,117,108,108,116,121,112,101, 32, 40, 119,105,116,104, 32,110, 97,109,101,115,112, 97, 99,101, 41, 10,102,117,110, 99,116,105,111,110, 32,102,117,108,108,116, 121,112,101, 32, 40,116, 41, 10, 32,108,111, 99, 97,108, 32, 99,117,114,114, 32, 61, 32, 32, 99,108, 97,115,115, 67,111, 110,116, 97,105,110,101,114, 46, 99,117,114,114, 10, 9,119, 104,105,108,101, 32, 99,117,114,114, 32,100,111, 10, 9, 32, 105,102, 32, 99,117,114,114, 32,116,104,101,110, 10, 9, 9, 32,105,102, 32, 99,117,114,114, 46,116,121,112,101,100,101, 102,115, 32, 97,110,100, 32, 99,117,114,114, 46,116,121,112, 101,100,101,102,115, 91,116, 93, 32,116,104,101,110, 10, 9, 9, 32, 32,114,101,116,117,114,110, 32, 99,117,114,114, 46, 116,121,112,101,100,101,102,115, 91,116, 93, 10, 9, 9, 32, 101,108,115,101,105,102, 32, 99,117,114,114, 46,117,115,101, 114,116,121,112,101,115, 32, 97,110,100, 32, 99,117,114,114, 46,117,115,101,114,116,121,112,101,115, 91,116, 93, 32,116, 104,101,110, 10, 9, 9, 32, 32,114,101,116,117,114,110, 32, 99,117,114,114, 46,117,115,101,114,116,121,112,101,115, 91, 116, 93, 10, 9, 9, 9,101,110,100, 10, 9, 9,101,110,100, 10, 9, 32, 99,117,114,114, 32, 61, 32, 99,117,114,114, 46, 112,114,111,120, 10, 9,101,110,100, 10, 9,114,101,116,117, 114,110, 32,116, 10,101,110,100, 10, 10, 45, 45, 32, 99,104, 101, 99,107,115, 32,105,102, 32,105,116, 32,114,101,113,117, 105,114,101,115, 32, 99,111,108,108,101, 99,116,105,111,110, 10,102,117,110, 99,116,105,111,110, 32, 99,108, 97,115,115, 67,111,110,116, 97,105,110,101,114, 58,114,101,113,117,105, 114,101, 99,111,108,108,101, 99,116,105,111,110, 32, 40,116, 41, 10, 32,112,117,115,104, 40,115,101,108,102, 41, 10, 32, 108,111, 99, 97,108, 32,105, 61, 49, 10, 9,108,111, 99, 97, 108, 32,114, 32, 61, 32,102, 97,108,115,101, 10, 32,119,104, 105,108,101, 32,115,101,108,102, 91,105, 93, 32,100,111, 10, 32, 32,114, 32, 61, 32,115,101,108,102, 91,105, 93, 58,114, 101,113,117,105,114,101, 99,111,108,108,101, 99,116,105,111, 110, 40,116, 41, 32,111,114, 32,114, 10, 32, 32,105, 32, 61, 32,105, 43, 49, 10, 32,101,110,100, 10, 9,112,111,112, 40, 41, 10, 9,114,101,116,117,114,110, 32,114, 10,101,110,100, 10, 10, 10, 45, 45, 32,103,101,116, 32,110, 97,109,101,115, 97,112, 99,101, 10,102,117,110, 99,116,105,111,110, 32,103, 101,116,110, 97,109,101,115,112, 97, 99,101, 32, 40, 99,117, 114,114, 41, 10, 9,108,111, 99, 97,108, 32,110, 97,109,101, 115,112, 97, 99,101, 32, 61, 32, 39, 39, 10, 9,119,104,105, 108,101, 32, 99,117,114,114, 32,100,111, 10, 9, 32,105,102, 32, 99,117,114,114, 32, 97,110,100, 10, 9, 9, 32, 32, 32, 40, 32, 99,117,114,114, 46, 99,108, 97,115,115,116,121,112, 101, 32, 61, 61, 32, 39, 99,108, 97,115,115, 39, 32,111,114, 32, 99,117,114,114, 46, 99,108, 97,115,115,116,121,112,101, 32, 61, 61, 32, 39,110, 97,109,101,115,112, 97, 99,101, 39, 41, 10, 9, 9,116,104,101,110, 10, 9, 9, 32,110, 97,109, 101,115,112, 97, 99,101, 32, 61, 32, 40, 99,117,114,114, 46, 111,114,105,103,105,110, 97,108, 95,110, 97,109,101, 32,111, 114, 32, 99,117,114,114, 46,110, 97,109,101, 41, 32, 46, 46, 32, 39, 58, 58, 39, 32, 46, 46, 32,110, 97,109,101,115,112, 97, 99,101, 10, 9, 9, 32, 45, 45,110, 97,109,101,115,112, 97, 99,101, 32, 61, 32, 99,117,114,114, 46,110, 97,109,101, 32, 46, 46, 32, 39, 58, 58, 39, 32, 46, 46, 32,110, 97,109, 101,115,112, 97, 99,101, 10, 9, 9,101,110,100, 10, 9, 32, 99,117,114,114, 32, 61, 32, 99,117,114,114, 46,112,114,111, 120, 10, 9,101,110,100, 10, 9,114,101,116,117,114,110, 32, 110, 97,109,101,115,112, 97, 99,101, 10,101,110,100, 10, 10, 45, 45, 32,103,101,116, 32,110, 97,109,101,115,112, 97, 99, 101, 32, 40,111,110,108,121, 32,110, 97,109,101,115,112, 97, 99,101, 41, 10,102,117,110, 99,116,105,111,110, 32,103,101, 116,111,110,108,121,110, 97,109,101,115,112, 97, 99,101, 32, 40, 41, 10, 32,108,111, 99, 97,108, 32, 99,117,114,114, 32, 61, 32, 99,108, 97,115,115, 67,111,110,116, 97,105,110,101, 114, 46, 99,117,114,114, 10, 9,108,111, 99, 97,108, 32,110, 97,109,101,115,112, 97, 99,101, 32, 61, 32, 39, 39, 10, 9, 119,104,105,108,101, 32, 99,117,114,114, 32,100,111, 10, 9, 9,105,102, 32, 99,117,114,114, 46, 99,108, 97,115,115,116, 121,112,101, 32, 61, 61, 32, 39, 99,108, 97,115,115, 39, 32, 116,104,101,110, 10, 9, 9, 32,114,101,116,117,114,110, 32, 110, 97,109,101,115,112, 97, 99,101, 10, 9, 9,101,108,115, 101,105,102, 32, 99,117,114,114, 46, 99,108, 97,115,115,116, 121,112,101, 32, 61, 61, 32, 39,110, 97,109,101,115,112, 97, 99,101, 39, 32,116,104,101,110, 10, 9, 9, 32,110, 97,109, 101,115,112, 97, 99,101, 32, 61, 32, 99,117,114,114, 46,110, 97,109,101, 32, 46, 46, 32, 39, 58, 58, 39, 32, 46, 46, 32, 110, 97,109,101,115,112, 97, 99,101, 10, 9, 9,101,110,100, 10, 9, 32, 99,117,114,114, 32, 61, 32, 99,117,114,114, 46, 112,114,111,120, 10, 9,101,110,100, 10, 9,114,101,116,117, 114,110, 32,110, 97,109,101,115,112, 97, 99,101, 10,101,110, 100, 10, 10, 45, 45, 32, 99,104,101, 99,107, 32,105,102, 32, 105,115, 32,101,110,117,109, 10,102,117,110, 99,116,105,111, 110, 32,105,115,101,110,117,109, 32, 40,116,121,112,101, 41, 10, 32,114,101,116,117,114,110, 32, 99,108, 97,115,115, 67, 111,110,116, 97,105,110,101,114, 46, 99,117,114,114, 58,105, 115,101,110,117,109, 40,116,121,112,101, 41, 10,101,110,100, 10, 10, 45, 45, 32, 97,112,112,101,110,100, 32,102,101, 97, 116,117,114,101, 32,116,111, 32, 99,111,110,116, 97,105,110, 101,114, 10,102,117,110, 99,116,105,111,110, 32, 99,108, 97, 115,115, 67,111,110,116, 97,105,110,101,114, 58, 97,112,112, 101,110,100, 32, 40,116, 41, 10, 32,115,101,108,102, 46,110, 32, 61, 32,115,101,108,102, 46,110, 32, 43, 32, 49, 10, 32, 115,101,108,102, 91,115,101,108,102, 46,110, 93, 32, 61, 32, 116, 10, 32,116, 46,112, 97,114,101,110,116, 32, 61, 32,115, 101,108,102, 10,101,110,100, 10, 10, 45, 45, 32, 97,112,112, 101,110,100, 32,116,121,112,101,100,101,102, 10,102,117,110, 99,116,105,111,110, 32, 99,108, 97,115,115, 67,111,110,116, 97,105,110,101,114, 58, 97,112,112,101,110,100,116,121,112, 101,100,101,102, 32, 40,116, 41, 10, 32,108,111, 99, 97,108, 32,110, 97,109,101,115,112, 97, 99,101, 32, 61, 32,103,101, 116,110, 97,109,101,115,112, 97, 99,101, 40, 99,108, 97,115, 115, 67,111,110,116, 97,105,110,101,114, 46, 99,117,114,114, 41, 10, 32,115,101,108,102, 46,116,121,112,101,100,101,102, 115, 46,116,111,108,117, 97, 95,110, 32, 61, 32,115,101,108, 102, 46,116,121,112,101,100,101,102,115, 46,116,111,108,117, 97, 95,110, 32, 43, 32, 49, 10, 32,115,101,108,102, 46,116, 121,112,101,100,101,102,115, 91,115,101,108,102, 46,116,121, 112,101,100,101,102,115, 46,116,111,108,117, 97, 95,110, 93, 32, 61, 32,116, 10, 9,115,101,108,102, 46,116,121,112,101, 100,101,102,115, 91,116, 46,117,116,121,112,101, 93, 32, 61, 32,110, 97,109,101,115,112, 97, 99,101, 32, 46, 46, 32,116, 46,117,116,121,112,101, 10, 9,103,108,111, 98, 97,108, 95, 116,121,112,101,100,101,102,115, 91,110, 97,109,101,115,112, 97, 99,101, 46, 46,116, 46,117,116,121,112,101, 93, 32, 61, 32,116, 10, 9,116, 46,102,116,121,112,101, 32, 61, 32,102, 105,110,100,116,121,112,101, 40,116, 46,116,121,112,101, 41, 32,111,114, 32,116, 46,116,121,112,101, 10, 9, 45, 45,112, 114,105,110,116, 40, 34, 97,112,112,101,110,100,105,110,103, 32,116,121,112,101,100,101,102, 32, 34, 46, 46,116, 46,117, 116,121,112,101, 46, 46, 34, 32, 97,115, 32, 34, 46, 46,110, 97,109,101,115,112, 97, 99,101, 46, 46,116, 46,117,116,121, 112,101, 46, 46, 34, 32,119,105,116,104, 32,102,116,121,112, 101, 32, 34, 46, 46,116, 46,102,116,121,112,101, 41, 10, 9, 97,112,112,101,110,100, 95,103,108,111, 98, 97,108, 95,116, 121,112,101, 40,110, 97,109,101,115,112, 97, 99,101, 46, 46, 116, 46,117,116,121,112,101, 41, 10, 9,105,102, 32,116, 46, 102,116,121,112,101, 32, 97,110,100, 32,105,115,101,110,117, 109, 40,116, 46,102,116,121,112,101, 41, 32,116,104,101,110, 10, 10, 9, 9,103,108,111, 98, 97,108, 95,101,110,117,109, 115, 91,110, 97,109,101,115,112, 97, 99,101, 46, 46,116, 46, 117,116,121,112,101, 93, 32, 61, 32,116,114,117,101, 10, 9, 101,110,100, 10,101,110,100, 10, 10, 45, 45, 32, 97,112,112, 101,110,100, 32,117,115,101,114,116,121,112,101, 58, 32,114, 101,116,117,114,110, 32,102,117,108,108, 32,116,121,112,101, 10,102,117,110, 99,116,105,111,110, 32, 99,108, 97,115,115, 67,111,110,116, 97,105,110,101,114, 58, 97,112,112,101,110, 100,117,115,101,114,116,121,112,101, 32, 40,116, 41, 10, 9, 108,111, 99, 97,108, 32, 99,111,110,116, 97,105,110,101,114, 10, 9,105,102, 32,116, 32, 61, 61, 32, 40,115,101,108,102, 46,111,114,105,103,105,110, 97,108, 95,110, 97,109,101, 32, 111,114, 32,115,101,108,102, 46,110, 97,109,101, 41, 32,116, 104,101,110, 10, 9, 9, 99,111,110,116, 97,105,110,101,114, 32, 61, 32,115,101,108,102, 46,112,114,111,120, 10, 9,101, 108,115,101, 10, 9, 9, 99,111,110,116, 97,105,110,101,114, 32, 61, 32,115,101,108,102, 10, 9,101,110,100, 10, 9,108, 111, 99, 97,108, 32,102,116, 32, 61, 32,103,101,116,110, 97, 109,101,115,112, 97, 99,101, 40, 99,111,110,116, 97,105,110, 101,114, 41, 32, 46, 46, 32,116, 10, 9, 99,111,110,116, 97, 105,110,101,114, 46,117,115,101,114,116,121,112,101,115, 91, 116, 93, 32, 61, 32,102,116, 10, 9, 95,117,115,101,114,116, 121,112,101, 91,102,116, 93, 32, 61, 32,102,116, 10, 9,114, 101,116,117,114,110, 32,102,116, 10,101,110,100, 10, 10, 45, 45, 32, 97,112,112,101,110,100, 32,101,110,117,109, 10,102, 117,110, 99,116,105,111,110, 32, 99,108, 97,115,115, 67,111, 110,116, 97,105,110,101,114, 58, 97,112,112,101,110,100,101, 110,117,109, 32, 40,116, 41, 10, 32,108,111, 99, 97,108, 32, 110, 97,109,101,115,112, 97, 99,101, 32, 61, 32,103,101,116, 110, 97,109,101,115,112, 97, 99,101, 40, 99,108, 97,115,115, 67,111,110,116, 97,105,110,101,114, 46, 99,117,114,114, 41, 10, 32,115,101,108,102, 46,101,110,117,109,115, 46,116,111, 108,117, 97, 95,110, 32, 61, 32,115,101,108,102, 46,101,110, 117,109,115, 46,116,111,108,117, 97, 95,110, 32, 43, 32, 49, 10, 32,115,101,108,102, 46,101,110,117,109,115, 91,115,101, 108,102, 46,101,110,117,109,115, 46,116,111,108,117, 97, 95, 110, 93, 32, 61, 32,116, 10, 9,103,108,111, 98, 97,108, 95, 101,110,117,109,115, 91,110, 97,109,101,115,112, 97, 99,101, 46, 46,116, 46,110, 97,109,101, 93, 32, 61, 32,116, 10,101, 110,100, 10, 10, 45, 45, 32,100,101,116,101,114,109,105,110, 101, 32,108,117, 97, 32,102,117,110, 99,116,105,111,110, 32, 110, 97,109,101, 32,111,118,101,114,108,111, 97,100, 10,102, 117,110, 99,116,105,111,110, 32, 99,108, 97,115,115, 67,111, 110,116, 97,105,110,101,114, 58,111,118,101,114,108,111, 97, 100, 32, 40,108,110, 97,109,101, 41, 10, 32,105,102, 32,110, 111,116, 32,115,101,108,102, 46,108,110, 97,109,101,115, 91, 108,110, 97,109,101, 93, 32,116,104,101,110, 10, 32, 32,115, 101,108,102, 46,108,110, 97,109,101,115, 91,108,110, 97,109, 101, 93, 32, 61, 32, 48, 10, 32,101,108,115,101, 10, 32, 32, 115,101,108,102, 46,108,110, 97,109,101,115, 91,108,110, 97, 109,101, 93, 32, 61, 32,115,101,108,102, 46,108,110, 97,109, 101,115, 91,108,110, 97,109,101, 93, 32, 43, 32, 49, 10, 32, 101,110,100, 10, 32,114,101,116,117,114,110, 32,102,111,114, 109, 97,116, 40, 34, 37, 48, 50,100, 34, 44,115,101,108,102, 46,108,110, 97,109,101,115, 91,108,110, 97,109,101, 93, 41, 10,101,110,100, 10, 10, 45, 45, 32, 97,112,112,108,105,101, 115, 32,116,121,112,101,100,101,102, 58, 32,114,101,116,117, 114,110,115, 32,116,104,101, 32, 39,116,104,101, 32,102, 97, 99,116,111, 39, 32,109,111,100,105,102,105,101,114, 32, 97, 110,100, 32,116,121,112,101, 10,102,117,110, 99,116,105,111, 110, 32, 99,108, 97,115,115, 67,111,110,116, 97,105,110,101, 114, 58, 97,112,112,108,121,116,121,112,101,100,101,102, 32, 40,109,111,100, 44,116,121,112,101, 41, 10, 9,105,102, 32, 103,108,111, 98, 97,108, 95,116,121,112,101,100,101,102,115, 91,116,121,112,101, 93, 32,116,104,101,110, 10, 9, 9, 45, 45,112,114,105,110,116, 40, 34,102,111,117,110,100, 32,116, 121,112,101,100,101,102, 32, 34, 46, 46,103,108,111, 98, 97, 108, 95,116,121,112,101,100,101,102,115, 91,116,121,112,101, 93, 46,116,121,112,101, 41, 10, 9, 9,108,111, 99, 97,108, 32,109,111,100, 49, 44, 32,116,121,112,101, 49, 32, 61, 32, 103,108,111, 98, 97,108, 95,116,121,112,101,100,101,102,115, 91,116,121,112,101, 93, 46,109,111,100, 44, 32,103,108,111, 98, 97,108, 95,116,121,112,101,100,101,102,115, 91,116,121, 112,101, 93, 46,102,116,121,112,101, 10, 9, 9,108,111, 99, 97,108, 32,109,111,100, 50, 44, 32,116,121,112,101, 50, 32, 61, 32, 97,112,112,108,121,116,121,112,101,100,101,102, 40, 109,111,100, 46, 46, 34, 32, 34, 46, 46,109,111,100, 49, 44, 32,116,121,112,101, 49, 41, 10, 9, 9, 45, 45,114,101,116, 117,114,110, 32,109,111,100, 50, 32, 46, 46, 32, 39, 32, 39, 32, 46, 46, 32,109,111,100, 49, 44, 32,116,121,112,101, 50, 10, 9, 9,114,101,116,117,114,110, 32,109,111,100, 50, 44, 32,116,121,112,101, 50, 10, 9,101,110,100, 10, 9,100,111, 32,114,101,116,117,114,110, 32,109,111,100, 44,116,121,112, 101, 32,101,110,100, 10,101,110,100, 10, 10, 45, 45, 32, 99, 104,101, 99,107, 32,105,102, 32,105,116, 32,105,115, 32, 97, 32,116,121,112,101,100,101,102, 10,102,117,110, 99,116,105, 111,110, 32, 99,108, 97,115,115, 67,111,110,116, 97,105,110, 101,114, 58,105,115,116,121,112,101,100,101,102, 32, 40,116, 121,112,101, 41, 10, 32,108,111, 99, 97,108, 32,101,110,118, 32, 61, 32,115,101,108,102, 10, 32,119,104,105,108,101, 32, 101,110,118, 32,100,111, 10, 32, 32,105,102, 32,101,110,118, 46,116,121,112,101,100,101,102,115, 32,116,104,101,110, 10, 32, 32, 32,108,111, 99, 97,108, 32,105, 61, 49, 10, 32, 32, 32,119,104,105,108,101, 32,101,110,118, 46,116,121,112,101, 100,101,102,115, 91,105, 93, 32,100,111, 10, 32, 32, 32, 32, 105,102, 32,101,110,118, 46,116,121,112,101,100,101,102,115, 91,105, 93, 46,117,116,121,112,101, 32, 61, 61, 32,116,121, 112,101, 32,116,104,101,110, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32,114,101,116,117,114,110, 32,116,121,112,101, 10, 32, 32, 32, 32, 32, 32, 32, 32,101,110,100, 10, 32, 32, 32, 32, 32, 32, 32, 32,105, 32, 61, 32,105, 43, 49, 10, 32, 32, 32, 101,110,100, 10, 32, 32,101,110,100, 10, 32, 32,101,110,118, 32, 61, 32,101,110,118, 46,112, 97,114,101,110,116, 10, 32, 101,110,100, 10, 32,114,101,116,117,114,110, 32,110,105,108, 10,101,110,100, 10, 10,102,117,110, 99,116,105,111,110, 32, 102,105,110,100, 95,101,110,117,109, 95,118, 97,114, 40,118, 97,114, 41, 10, 10, 9,105,102, 32,116,111,110,117,109, 98, 101,114, 40,118, 97,114, 41, 32,116,104,101,110, 32,114,101, 116,117,114,110, 32,118, 97,114, 32,101,110,100, 10, 10, 9, 108,111, 99, 97,108, 32, 99, 32, 61, 32, 99,108, 97,115,115, 67,111,110,116, 97,105,110,101,114, 46, 99,117,114,114, 10, 9,119,104,105,108,101, 32, 99, 32,100,111, 10, 9, 9,108, 111, 99, 97,108, 32,110,115, 32, 61, 32,103,101,116,110, 97, 109,101,115,112, 97, 99,101, 40, 99, 41, 10, 9, 9,102,111, 114, 32,107, 44,118, 32,105,110, 32,112, 97,105,114,115, 40, 95,103,108,111, 98, 97,108, 95,101,110,117,109,115, 41, 32, 100,111, 10, 9, 9, 9,105,102, 32,109, 97,116, 99,104, 95, 116,121,112,101, 40,118, 97,114, 44, 32,118, 44, 32,110,115, 41, 32,116,104,101,110, 10, 9, 9, 9, 9,114,101,116,117, 114,110, 32,118, 10, 9, 9, 9,101,110,100, 10, 9, 9,101, 110,100, 10, 9, 9,105,102, 32, 99, 46, 98, 97,115,101, 32, 97,110,100, 32, 99, 46, 98, 97,115,101, 32,126, 61, 32, 39, 39, 32,116,104,101,110, 10, 9, 9, 9, 99, 32, 61, 32, 95, 103,108,111, 98, 97,108, 95, 99,108, 97,115,115,101,115, 91, 99, 58,102,105,110,100,116,121,112,101, 40, 99, 46, 98, 97, 115,101, 41, 93, 10, 9, 9,101,108,115,101, 10, 9, 9, 9, 99, 32, 61, 32,110,105,108, 10, 9, 9,101,110,100, 10, 9, 101,110,100, 10, 10, 9,114,101,116,117,114,110, 32,118, 97, 114, 10,101,110,100, 10, 10, 45, 45, 32, 99,104,101, 99,107, 32,105,102, 32,105,115, 32, 97, 32,114,101,103,105,115,116, 101,114,101,100, 32,116,121,112,101, 58, 32,114,101,116,117, 114,110, 32,102,117,108,108, 32,116,121,112,101, 32,111,114, 32,110,105,108, 10,102,117,110, 99,116,105,111,110, 32, 99, 108, 97,115,115, 67,111,110,116, 97,105,110,101,114, 58,102, 105,110,100,116,121,112,101, 32, 40,116, 41, 10, 10, 9,116, 32, 61, 32,115,116,114,105,110,103, 46,103,115,117, 98, 40, 116, 44, 32, 34, 61, 46, 42, 34, 44, 32, 34, 34, 41, 10, 9, 105,102, 32, 95, 98, 97,115,105, 99, 91,116, 93, 32,116,104, 101,110, 10, 9, 32,114,101,116,117,114,110, 32,116, 10, 9, 101,110,100, 10, 10, 9,108,111, 99, 97,108, 32, 95, 44, 95, 44,101,109, 32, 61, 32,115,116,114,105,110,103, 46,102,105, 110,100, 40,116, 44, 32, 34, 40, 91, 38, 37, 42, 93, 41, 37, 115, 42, 36, 34, 41, 10, 9,116, 32, 61, 32,115,116,114,105, 110,103, 46,103,115,117, 98, 40,116, 44, 32, 34, 37,115, 42, 40, 91, 38, 37, 42, 93, 41, 37,115, 42, 36, 34, 44, 32, 34, 34, 41, 10, 9,112, 32, 61, 32,115,101,108,102, 10, 9,119, 104,105,108,101, 32,112, 32, 97,110,100, 32,116,121,112,101, 40,112, 41, 61, 61, 39,116, 97, 98,108,101, 39, 32,100,111, 10, 9, 9,108,111, 99, 97,108, 32,115,116, 32, 61, 32,103, 101,116,110, 97,109,101,115,112, 97, 99,101, 40,112, 41, 10, 10, 9, 9,102,111,114, 32,105, 61, 95,103,108,111, 98, 97, 108, 95,116,121,112,101,115, 46,110, 44, 49, 44, 45, 49, 32, 100,111, 32, 45, 45, 32,105,110, 32,114,101,118,101,114,115, 101, 32,111,114,100,101,114, 10, 10, 9, 9, 9,105,102, 32, 109, 97,116, 99,104, 95,116,121,112,101, 40,116, 44, 32, 95, 103,108,111, 98, 97,108, 95,116,121,112,101,115, 91,105, 93, 44, 32,115,116, 41, 32,116,104,101,110, 10, 9, 9, 9, 9, 114,101,116,117,114,110, 32, 95,103,108,111, 98, 97,108, 95, 116,121,112,101,115, 91,105, 93, 46, 46, 40,101,109, 32,111, 114, 32, 34, 34, 41, 10, 9, 9, 9,101,110,100, 10, 9, 9, 101,110,100, 10, 9, 9,105,102, 32,112, 46, 98, 97,115,101, 32, 97,110,100, 32,112, 46, 98, 97,115,101, 32,126, 61, 32, 39, 39, 32, 97,110,100, 32,112, 46, 98, 97,115,101, 32,126, 61, 32,116, 32,116,104,101,110, 10, 9, 9, 9, 45, 45,112, 114,105,110,116, 40, 34,116,121,112,101, 32,105,115, 32, 34, 46, 46,116, 46, 46, 34, 44, 32,112, 32,105,115, 32, 34, 46, 46,112, 46, 98, 97,115,101, 46, 46, 34, 32,115,101,108,102, 46,116,121,112,101, 32,105,115, 32, 34, 46, 46,115,101,108, 102, 46,116,121,112,101, 46, 46, 34, 32,115,101,108,102, 46, 110, 97,109,101, 32,105,115, 32, 34, 46, 46,115,101,108,102, 46,110, 97,109,101, 41, 10, 9, 9, 9,112, 32, 61, 32, 95, 103,108,111, 98, 97,108, 95, 99,108, 97,115,115,101,115, 91, 112, 58,102,105,110,100,116,121,112,101, 40,112, 46, 98, 97, 115,101, 41, 93, 10, 9, 9,101,108,115,101, 10, 9, 9, 9, 112, 32, 61, 32,110,105,108, 10, 9, 9,101,110,100, 10, 9, 101,110,100, 10, 10, 9,114,101,116,117,114,110, 32,110,105, 108, 10,101,110,100, 10, 10,102,117,110, 99,116,105,111,110, 32, 97,112,112,101,110,100, 95,103,108,111, 98, 97,108, 95, 116,121,112,101, 40,116, 44, 32, 99,108, 97,115,115, 41, 10, 9, 95,103,108,111, 98, 97,108, 95,116,121,112,101,115, 46, 110, 32, 61, 32, 95,103,108,111, 98, 97,108, 95,116,121,112, 101,115, 46,110, 32, 43, 49, 10, 9, 95,103,108,111, 98, 97, 108, 95,116,121,112,101,115, 91, 95,103,108,111, 98, 97,108, 95,116,121,112,101,115, 46,110, 93, 32, 61, 32,116, 10, 9, 95,103,108,111, 98, 97,108, 95,116,121,112,101,115, 95,104, 97,115,104, 91,116, 93, 32, 61, 32, 49, 10, 9,105,102, 32, 99,108, 97,115,115, 32,116,104,101,110, 32, 97,112,112,101, 110,100, 95, 99,108, 97,115,115, 95,116,121,112,101, 40,116, 44, 32, 99,108, 97,115,115, 41, 32,101,110,100, 10,101,110, 100, 10, 10,102,117,110, 99,116,105,111,110, 32, 97,112,112, 101,110,100, 95, 99,108, 97,115,115, 95,116,121,112,101, 40, 116, 44, 99,108, 97,115,115, 41, 10, 9,105,102, 32, 95,103, 108,111, 98, 97,108, 95, 99,108, 97,115,115,101,115, 91,116, 93, 32,116,104,101,110, 10, 9, 9, 99,108, 97,115,115, 46, 102,108, 97,103,115, 32, 61, 32, 95,103,108,111, 98, 97,108, 95, 99,108, 97,115,115,101,115, 91,116, 93, 46,102,108, 97, 103,115, 10, 9, 9, 99,108, 97,115,115, 46,108,110, 97,109, 101,115, 32, 61, 32, 95,103,108,111, 98, 97,108, 95, 99,108, 97,115,115,101,115, 91,116, 93, 46,108,110, 97,109,101,115, 10, 9, 9,105,102, 32, 95,103,108,111, 98, 97,108, 95, 99, 108, 97,115,115,101,115, 91,116, 93, 46, 98, 97,115,101, 32, 97,110,100, 32, 40, 95,103,108,111, 98, 97,108, 95, 99,108, 97,115,115,101,115, 91,116, 93, 46, 98, 97,115,101, 32,126, 61, 32, 39, 39, 41, 32,116,104,101,110, 10, 9, 9, 9, 99, 108, 97,115,115, 46, 98, 97,115,101, 32, 61, 32, 95,103,108, 111, 98, 97,108, 95, 99,108, 97,115,115,101,115, 91,116, 93, 46, 98, 97,115,101, 32,111,114, 32, 99,108, 97,115,115, 46, 98, 97,115,101, 10, 9, 9,101,110,100, 10, 9,101,110,100, 10, 9, 95,103,108,111, 98, 97,108, 95, 99,108, 97,115,115, 101,115, 91,116, 93, 32, 61, 32, 99,108, 97,115,115, 10, 9, 99,108, 97,115,115, 46,102,108, 97,103,115, 32, 61, 32, 99, 108, 97,115,115, 46,102,108, 97,103,115, 32,111,114, 32,123, 125, 10,101,110,100, 10, 10,102,117,110, 99,116,105,111,110, 32,109, 97,116, 99,104, 95,116,121,112,101, 40, 99,104,105, 108,100,116,121,112,101, 44, 32,114,101,103,116,121,112,101, 44, 32,115,116, 41, 10, 45, 45,112,114,105,110,116, 40, 34, 102,105,110,100,116,121,112,101, 32, 34, 46, 46, 99,104,105, 108,100,116,121,112,101, 46, 46, 34, 44, 32, 34, 46, 46,114, 101,103,116,121,112,101, 46, 46, 34, 44, 32, 34, 46, 46,115, 116, 41, 10, 9,108,111, 99, 97,108, 32, 98, 44,101, 32, 61, 32,115,116,114,105,110,103, 46,102,105,110,100, 40,114,101, 103,116,121,112,101, 44, 32, 99,104,105,108,100,116,121,112, 101, 44, 32, 45,115,116,114,105,110,103, 46,108,101,110, 40, 99,104,105,108,100,116,121,112,101, 41, 44, 32,116,114,117, 101, 41, 10, 9,105,102, 32, 98, 32,116,104,101,110, 10, 10, 9, 9,105,102, 32,101, 32, 61, 61, 32,115,116,114,105,110, 103, 46,108,101,110, 40,114,101,103,116,121,112,101, 41, 32, 97,110,100, 10, 9, 9, 9, 9, 40, 98, 32, 61, 61, 32, 49, 32,111,114, 32, 40,115,116,114,105,110,103, 46,115,117, 98, 40,114,101,103,116,121,112,101, 44, 32, 98, 45, 49, 44, 32, 98, 45, 49, 41, 32, 61, 61, 32, 39, 58, 39, 32, 97,110,100, 10, 9, 9, 9, 9,115,116,114,105,110,103, 46,115,117, 98, 40,114,101,103,116,121,112,101, 44, 32, 49, 44, 32, 98, 45, 49, 41, 32, 61, 61, 32,115,116,114,105,110,103, 46,115,117, 98, 40,115,116, 44, 32, 49, 44, 32, 98, 45, 49, 41, 41, 41, 32,116,104,101,110, 10, 9, 9, 9,114,101,116,117,114,110, 32,116,114,117,101, 10, 9, 9,101,110,100, 10, 9,101,110, 100, 10, 10, 9,114,101,116,117,114,110, 32,102, 97,108,115, 101, 10,101,110,100, 10, 10,102,117,110, 99,116,105,111,110, 32,102,105,110,100,116,121,112,101, 95,111,110, 95, 99,104, 105,108,100,115, 40,115,101,108,102, 44, 32,116, 41, 10, 10, 9,108,111, 99, 97,108, 32,116, 99,104,105,108,100, 10, 9, 105,102, 32,115,101,108,102, 46, 99,108, 97,115,115,116,121, 112,101, 32, 61, 61, 32, 39, 99,108, 97,115,115, 39, 32,111, 114, 32,115,101,108,102, 46, 99,108, 97,115,115,116,121,112, 101, 32, 61, 61, 32, 39,110, 97,109,101,115,112, 97, 99,101, 39, 32,116,104,101,110, 10, 9, 9,102,111,114, 32,107, 44, 118, 32,105,110, 32,105,112, 97,105,114,115, 40,115,101,108, 102, 41, 32,100,111, 10, 9, 9, 9,105,102, 32,118, 46, 99, 108, 97,115,115,116,121,112,101, 32, 61, 61, 32, 39, 99,108, 97,115,115, 39, 32,111,114, 32,118, 46, 99,108, 97,115,115, 116,121,112,101, 32, 61, 61, 32, 39,110, 97,109,101,115,112, 97, 99,101, 39, 32,116,104,101,110, 10, 9, 9, 9, 9,105, 102, 32,118, 46,116,121,112,101,100,101,102,115, 32, 97,110, 100, 32,118, 46,116,121,112,101,100,101,102,115, 91,116, 93, 32,116,104,101,110, 10, 9, 9, 9, 9, 32,114,101,116,117, 114,110, 32,118, 46,116,121,112,101,100,101,102,115, 91,116, 93, 10, 9, 9, 9, 9,101,108,115,101,105,102, 32,118, 46, 117,115,101,114,116,121,112,101,115, 32, 97,110,100, 32,118, 46,117,115,101,114,116,121,112,101,115, 91,116, 93, 32,116, 104,101,110, 10, 9, 9, 9, 9, 32,114,101,116,117,114,110, 32,118, 46,117,115,101,114,116,121,112,101,115, 91,116, 93, 10, 9, 9, 9, 9,101,110,100, 10, 9, 9, 9, 9,116, 99, 104,105,108,100, 32, 61, 32,102,105,110,100,116,121,112,101, 95,111,110, 95, 99,104,105,108,100,115, 40,118, 44, 32,116, 41, 10, 9, 9, 9, 9,105,102, 32,116, 99,104,105,108,100, 32,116,104,101,110, 32,114,101,116,117,114,110, 32,116, 99, 104,105,108,100, 32,101,110,100, 10, 9, 9, 9,101,110,100, 10, 9, 9,101,110,100, 10, 9,101,110,100, 10, 9,114,101, 116,117,114,110, 32,110,105,108, 10, 10,101,110,100, 10, 10, 102,117,110, 99,116,105,111,110, 32, 99,108, 97,115,115, 67, 111,110,116, 97,105,110,101,114, 58,105,115,101,110,117,109, 32, 40,116,121,112,101, 41, 10, 32,105,102, 32,103,108,111, 98, 97,108, 95,101,110,117,109,115, 91,116,121,112,101, 93, 32,116,104,101,110, 10, 9,114,101,116,117,114,110, 32,116, 121,112,101, 10, 32,101,108,115,101, 10, 32, 9,114,101,116, 117,114,110, 32,102, 97,108,115,101, 10, 32,101,110,100, 10, 10, 32,108,111, 99, 97,108, 32, 98, 97,115,101,116,121,112, 101, 32, 61, 32,103,115,117, 98, 40,116,121,112,101, 44, 34, 94, 46, 42, 58, 58, 34, 44, 34, 34, 41, 10, 32,108,111, 99, 97,108, 32,101,110,118, 32, 61, 32,115,101,108,102, 10, 32, 119,104,105,108,101, 32,101,110,118, 32,100,111, 10, 32, 32, 105,102, 32,101,110,118, 46,101,110,117,109,115, 32,116,104, 101,110, 10, 32, 32, 32,108,111, 99, 97,108, 32,105, 61, 49, 10, 32, 32, 32,119,104,105,108,101, 32,101,110,118, 46,101, 110,117,109,115, 91,105, 93, 32,100,111, 10, 32, 32, 32, 32, 105,102, 32,101,110,118, 46,101,110,117,109,115, 91,105, 93, 46,110, 97,109,101, 32, 61, 61, 32, 98, 97,115,101,116,121, 112,101, 32,116,104,101,110, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32,114,101,116,117,114,110, 32,116,114,117,101, 10, 32, 32, 32, 32, 32, 32, 32, 32,101,110,100, 10, 32, 32, 32, 32, 32, 32, 32, 32,105, 32, 61, 32,105, 43, 49, 10, 32, 32, 32, 101,110,100, 10, 32, 32,101,110,100, 10, 32, 32,101,110,118, 32, 61, 32,101,110,118, 46,112, 97,114,101,110,116, 10, 32, 101,110,100, 10, 32,114,101,116,117,114,110, 32,102, 97,108, 115,101, 10,101,110,100, 10, 10,109,101,116,104,111,100,105, 115,118,105,114,116,117, 97,108, 32, 61, 32,102, 97,108,115, 101, 32, 45, 45, 32, 97, 32,103,108,111, 98, 97,108, 10, 10, 45, 45, 32,112, 97,114,115,101, 32, 99,104,117,110,107, 10, 102,117,110, 99,116,105,111,110, 32, 99,108, 97,115,115, 67, 111,110,116, 97,105,110,101,114, 58,100,111,112, 97,114,115, 101, 32, 40,115, 41, 10, 45, 45,112,114,105,110,116, 32, 40, 34,112, 97,114,115,101, 32, 34, 46, 46,115, 41, 10, 10, 32, 45, 45, 32,116,114,121, 32,116,104,101, 32,112, 97,114,115, 101,114, 32,104,111,111,107, 10, 32,100,111, 10, 32, 9,108, 111, 99, 97,108, 32,115,117, 98, 32, 61, 32,112, 97,114,115, 101,114, 95,104,111,111,107, 40,115, 41, 10, 32, 9,105,102, 32,115,117, 98, 32,116,104,101,110, 10, 32, 9, 9,114,101, 116,117,114,110, 32,115,117, 98, 10, 32, 9,101,110,100, 10, 32,101,110,100, 10, 10, 32, 45, 45, 32,116,114,121, 32,116, 104,101, 32,110,117,108,108, 32,115,116, 97,116,101,109,101, 110,116, 10, 32,100,111, 10, 32, 9,108,111, 99, 97,108, 32, 98, 44,101, 44, 99,111,100,101, 32, 61, 32,115,116,114,105, 110,103, 46,102,105,110,100, 40,115, 44, 32, 34, 94, 37,115, 42, 59, 34, 41, 10, 32, 9,105,102, 32, 98, 32,116,104,101, 110, 10, 32, 9, 9,114,101,116,117,114,110, 32,115,116,114, 115,117, 98, 40,115, 44,101, 43, 49, 41, 10, 32, 9,101,110, 100, 10, 32,101,110,100, 10, 10, 32, 45, 45, 32,116,114,121, 32,101,109,112,116,121, 32,118,101,114, 98, 97,116,105,109, 32,108,105,110,101, 10, 32,100,111, 10, 32, 9,108,111, 99, 97,108, 32, 98, 44,101, 44, 99,111,100,101, 32, 61, 32,115, 116,114,105,110,103, 46,102,105,110,100, 40,115, 44, 32, 34, 94, 37,115, 42, 36, 92,110, 34, 41, 10, 32, 9,105,102, 32, 98, 32,116,104,101,110, 10, 32, 9, 9,114,101,116,117,114, 110, 32,115,116,114,115,117, 98, 40,115, 44,101, 43, 49, 41, 10, 32, 9,101,110,100, 10, 32,101,110,100, 10, 10, 32, 45, 45, 32,116,114,121, 32, 76,117, 97, 32, 99,111,100,101, 10, 32,100,111, 10, 32, 32,108,111, 99, 97,108, 32, 98, 44,101, 44, 99,111,100,101, 32, 61, 32,115,116,114,102,105,110,100, 40,115, 44, 34, 94, 37,115, 42, 40, 37, 98, 92, 49, 92, 50, 41, 34, 41, 10, 32, 32,105,102, 32, 98, 32,116,104,101,110, 10, 32, 32, 32, 67,111,100,101, 40,115,116,114,115,117, 98, 40, 99,111,100,101, 44, 50, 44, 45, 50, 41, 41, 10, 32, 32, 32,114,101,116,117,114,110, 32,115,116,114,115,117, 98, 40, 115, 44,101, 43, 49, 41, 10, 32, 32,101,110,100, 10, 32,101, 110,100, 10, 10, 32, 45, 45, 32,116,114,121, 32, 67, 32, 99, 111,100,101, 10, 32,100,111, 10, 32, 32,108,111, 99, 97,108, 32, 98, 44,101, 44, 99,111,100,101, 32, 61, 32,115,116,114, 102,105,110,100, 40,115, 44, 34, 94, 37,115, 42, 40, 37, 98, 92, 51, 92, 52, 41, 34, 41, 10, 32, 32,105,102, 32, 98, 32, 116,104,101,110, 10, 9, 99,111,100,101, 32, 61, 32, 39,123, 39, 46, 46,115,116,114,115,117, 98, 40, 99,111,100,101, 44, 50, 44, 45, 50, 41, 46, 46, 39, 92,110,125, 92,110, 39, 10, 9, 86,101,114, 98, 97,116,105,109, 40, 99,111,100,101, 44, 39,114, 39, 41, 32, 32, 32, 32, 32, 32, 32, 32, 45, 45, 32, 118,101,114, 98, 97,116,105,109, 32, 99,111,100,101, 32,102, 111,114, 32, 39,114, 39,101,103,105,115,116,101,114, 32,102, 114, 97,103,109,101,110,116, 10, 9,114,101,116,117,114,110, 32,115,116,114,115,117, 98, 40,115, 44,101, 43, 49, 41, 10, 32, 32,101,110,100, 10, 32,101,110,100, 10, 10, 32, 45, 45, 32,116,114,121, 32, 67, 32, 99,111,100,101, 32,102,111,114, 32,112,114,101, 97,109, 98,108,101, 32,115,101, 99,116,105, 111,110, 10, 32,100,111, 10, 32, 9,108,111, 99, 97,108, 32, 98, 44,101, 44, 99,111,100,101, 32, 61, 32,115,116,114,105, 110,103, 46,102,105,110,100, 40,115, 44, 32, 34, 94, 37,115, 42, 40, 37, 98, 92, 53, 92, 54, 41, 34, 41, 10, 32, 9,105, 102, 32, 98, 32,116,104,101,110, 10, 32, 9, 9, 99,111,100, 101, 32, 61, 32,115,116,114,105,110,103, 46,115,117, 98, 40, 99,111,100,101, 44, 32, 50, 44, 32, 45, 50, 41, 46, 46, 34, 92,110, 34, 10, 9, 9, 86,101,114, 98, 97,116,105,109, 40, 99,111,100,101, 44, 32, 39, 39, 41, 10, 9, 9,114,101,116, 117,114,110, 32,115,116,114,105,110,103, 46,115,117, 98, 40, 115, 44, 32,101, 43, 49, 41, 10, 32, 9,101,110,100, 10, 32, 101,110,100, 10, 10, 32, 45, 45, 32,116,114,121, 32,100,101, 102, 97,117,108,116, 95,112,114,111,112,101,114,116,121, 32, 100,105,114,101, 99,116,105,118,101, 10, 32,100,111, 10, 32, 9,108,111, 99, 97,108, 32, 98, 44,101, 44,112,116,121,112, 101, 32, 61, 32,115,116,114,102,105,110,100, 40,115, 44, 32, 34, 94, 37,115, 42, 84, 79, 76, 85, 65, 95, 80, 82, 79, 80, 69, 82, 84, 89, 95, 84, 89, 80, 69, 37,115, 42, 37, 40, 43, 37,115, 42, 40, 91, 94, 37, 41, 37,115, 93, 42, 41, 37,115, 42, 37, 41, 43, 37,115, 42, 59, 63, 34, 41, 10, 32, 9,105, 102, 32, 98, 32,116,104,101,110, 10, 32, 9, 9,105,102, 32, 110,111,116, 32,112,116,121,112,101, 32,111,114, 32,112,116, 121,112,101, 32, 61, 61, 32, 34, 34, 32,116,104,101,110, 10, 32, 9, 9, 9,112,116,121,112,101, 32, 61, 32, 34,100,101, 102, 97,117,108,116, 34, 10, 32, 9, 9,101,110,100, 10, 32, 9, 9,115,101,108,102, 58,115,101,116, 95,112,114,111,112, 101,114,116,121, 95,116,121,112,101, 40,112,116,121,112,101, 41, 10, 9, 32, 9,114,101,116,117,114,110, 32,115,116,114, 115,117, 98, 40,115, 44, 32,101, 43, 49, 41, 10, 32, 9,101, 110,100, 10, 32,101,110,100, 10, 10, 32, 45, 45, 32,116,114, 121, 32,112,114,111,116,101, 99,116,101,100, 95,100,101,115, 116,114,117, 99,116,111,114, 32,100,105,114,101, 99,116,105, 118,101, 10, 32,100,111, 10, 32, 9,108,111, 99, 97,108, 32, 98, 44,101, 32, 61, 32,115,116,114,105,110,103, 46,102,105, 110,100, 40,115, 44, 32, 34, 94, 37,115, 42, 84, 79, 76, 85, 65, 95, 80, 82, 79, 84, 69, 67, 84, 69, 68, 95, 68, 69, 83, 84, 82, 85, 67, 84, 79, 82, 37,115, 42, 59, 63, 34, 41, 10, 9,105,102, 32, 98, 32,116,104,101,110, 10, 9, 9,105,102, 32,115,101,108,102, 46,115,101,116, 95,112,114,111,116,101, 99,116,101,100, 95,100,101,115,116,114,117, 99,116,111,114, 32,116,104,101,110, 10, 9, 32, 9, 9,115,101,108,102, 58, 115,101,116, 95,112,114,111,116,101, 99,116,101,100, 95,100, 101,115,116,114,117, 99,116,111,114, 40,116,114,117,101, 41, 10, 9, 32, 9,101,110,100, 10, 32, 9, 9,114,101,116,117, 114,110, 32,115,116,114,115,117, 98, 40,115, 44, 32,101, 43, 49, 41, 10, 32, 9,101,110,100, 10, 32,101,110,100, 10, 10, 32, 45, 45, 32,116,114,121, 32, 39,101,120,116,101,114,110, 39, 32,107,101,121,119,111,114,100, 10, 32,100,111, 10, 32, 9,108,111, 99, 97,108, 32, 98, 44,101, 32, 61, 32,115,116, 114,105,110,103, 46,102,105,110,100, 40,115, 44, 32, 34, 94, 37,115, 42,101,120,116,101,114,110, 37,115, 43, 34, 41, 10, 32, 9,105,102, 32, 98, 32,116,104,101,110, 10, 9, 9, 45, 45, 32,100,111, 32,110,111,116,104,105,110,103, 10, 32, 9, 9,114,101,116,117,114,110, 32,115,116,114,115,117, 98, 40, 115, 44, 32,101, 43, 49, 41, 10, 32, 9,101,110,100, 10, 32, 101,110,100, 10, 10, 32, 45, 45, 32,116,114,121, 32, 39,118, 105,114,116,117, 97,108, 39, 32,107,101,121,119,111,114,107, 100, 10, 32,100,111, 10, 32, 9,108,111, 99, 97,108, 32, 98, 44,101, 32, 61, 32,115,116,114,105,110,103, 46,102,105,110, 100, 40,115, 44, 32, 34, 94, 37,115, 42,118,105,114,116,117, 97,108, 37,115, 43, 34, 41, 10, 32, 9,105,102, 32, 98, 32, 116,104,101,110, 10, 32, 9, 9,109,101,116,104,111,100,105, 115,118,105,114,116,117, 97,108, 32, 61, 32,116,114,117,101, 10, 32, 9, 9,114,101,116,117,114,110, 32,115,116,114,115, 117, 98, 40,115, 44, 32,101, 43, 49, 41, 10, 32, 9,101,110, 100, 10, 32,101,110,100, 10, 10, 32, 45, 45, 32,116,114,121, 32,108, 97, 98,101,108,115, 32, 40,112,117, 98,108,105, 99, 44, 32,112,114,105,118, 97,116,101, 44, 32,101,116, 99, 41, 10, 32,100,111, 10, 32, 9,108,111, 99, 97,108, 32, 98, 44, 101, 32, 61, 32,115,116,114,105,110,103, 46,102,105,110,100, 40,115, 44, 32, 34, 94, 37,115, 42, 37,119, 42, 37,115, 42, 58, 91, 94, 58, 93, 34, 41, 10, 32, 9,105,102, 32, 98, 32, 116,104,101,110, 10, 32, 9, 9,114,101,116,117,114,110, 32, 115,116,114,115,117, 98, 40,115, 44, 32,101, 41, 32, 45, 45, 32,112,114,101,115,101,114,118,101, 32,116,104,101, 32, 91, 94, 58, 93, 10, 32, 9,101,110,100, 10, 32,101,110,100, 10, 10, 32, 45, 45, 32,116,114,121, 32,109,111,100,117,108,101, 10, 32,100,111, 10, 32, 32,108,111, 99, 97,108, 32, 98, 44, 101, 44,110, 97,109,101, 44, 98,111,100,121, 32, 61, 32,115, 116,114,102,105,110,100, 40,115, 44, 34, 94, 37,115, 42,109, 111,100,117,108,101, 37,115, 37,115, 42, 40, 91, 95, 37,119, 93, 91, 95, 37,119, 93, 42, 41, 37,115, 42, 40, 37, 98,123, 125, 41, 37,115, 42, 34, 41, 10, 32, 32,105,102, 32, 98, 32, 116,104,101,110, 10, 32, 32, 32, 95, 99,117,114,114, 95, 99, 111,100,101, 32, 61, 32,115,116,114,115,117, 98, 40,115, 44, 98, 44,101, 41, 10, 32, 32, 32, 77,111,100,117,108,101, 40, 110, 97,109,101, 44, 98,111,100,121, 41, 10, 32, 32, 32,114, 101,116,117,114,110, 32,115,116,114,115,117, 98, 40,115, 44, 101, 43, 49, 41, 10, 32, 32,101,110,100, 10, 32,101,110,100, 10, 10, 32, 45, 45, 32,116,114,121, 32,110, 97,109,101,115, 97,112, 99,101, 10, 32,100,111, 10, 32, 32,108,111, 99, 97, 108, 32, 98, 44,101, 44,110, 97,109,101, 44, 98,111,100,121, 32, 61, 32,115,116,114,102,105,110,100, 40,115, 44, 34, 94, 37,115, 42,110, 97,109,101,115,112, 97, 99,101, 37,115, 37, 115, 42, 40, 91, 95, 37,119, 93, 91, 95, 37,119, 93, 42, 41, 37,115, 42, 40, 37, 98,123,125, 41, 37,115, 42, 59, 63, 34, 41, 10, 32, 32,105,102, 32, 98, 32,116,104,101,110, 10, 32, 32, 32, 95, 99,117,114,114, 95, 99,111,100,101, 32, 61, 32, 115,116,114,115,117, 98, 40,115, 44, 98, 44,101, 41, 10, 32, 32, 32, 78, 97,109,101,115,112, 97, 99,101, 40,110, 97,109, 101, 44, 98,111,100,121, 41, 10, 32, 32, 32,114,101,116,117, 114,110, 32,115,116,114,115,117, 98, 40,115, 44,101, 43, 49, 41, 10, 32, 32,101,110,100, 10, 32,101,110,100, 10, 10, 32, 45, 45, 32,116,114,121, 32,100,101,102,105,110,101, 10, 32, 100,111, 10, 32, 32,108,111, 99, 97,108, 32, 98, 44,101, 44, 110, 97,109,101, 32, 61, 32,115,116,114,102,105,110,100, 40, 115, 44, 34, 94, 37,115, 42, 35,100,101,102,105,110,101, 37, 115, 37,115, 42, 40, 91, 94, 37,115, 93, 42, 41, 91, 94, 92, 110, 93, 42, 92,110, 37,115, 42, 34, 41, 10, 32, 32,105,102, 32, 98, 32,116,104,101,110, 10, 32, 32, 32, 95, 99,117,114, 114, 95, 99,111,100,101, 32, 61, 32,115,116,114,115,117, 98, 40,115, 44, 98, 44,101, 41, 10, 32, 32, 32, 68,101,102,105, 110,101, 40,110, 97,109,101, 41, 10, 32, 32, 32,114,101,116, 117,114,110, 32,115,116,114,115,117, 98, 40,115, 44,101, 43, 49, 41, 10, 32, 32,101,110,100, 10, 32,101,110,100, 10, 10, 32, 45, 45, 32,116,114,121, 32,101,110,117,109,101,114, 97, 116,101,115, 10, 10, 32,100,111, 10, 32, 32,108,111, 99, 97, 108, 32, 98, 44,101, 44,110, 97,109,101, 44, 98,111,100,121, 44,118, 97,114,110, 97,109,101, 32, 61, 32,115,116,114,102, 105,110,100, 40,115, 44, 34, 94, 37,115, 42,101,110,117,109, 37,115, 43, 40, 37, 83, 42, 41, 37,115, 42, 40, 37, 98,123, 125, 41, 37,115, 42, 40, 91, 94, 37,115, 59, 93, 42, 41, 37, 115, 42, 59, 63, 37,115, 42, 34, 41, 10, 32, 32,105,102, 32, 98, 32,116,104,101,110, 10, 32, 32, 32, 45, 45,101,114,114, 111,114, 40, 34, 35, 83,111,114,114,121, 44, 32,100,101, 99, 108, 97,114, 97,116,105,111,110, 32,111,102, 32,101,110,117, 109,115, 32, 97,110,100, 32,118, 97,114,105, 97, 98,108,101, 115, 32,111,110, 32,116,104,101, 32,115, 97,109,101, 32,115, 116, 97,116,101,109,101,110,116, 32,105,115, 32,110,111,116, 32,115,117,112,112,111,114,116,101,100, 46, 92,110, 68,101, 99,108, 97,114,101, 32,121,111,117,114, 32,118, 97,114,105, 97, 98,108,101, 32,115,101,112, 97,114, 97,116,101,108,121, 32, 40,101,120, 97,109,112,108,101, 58, 32, 39, 34, 46, 46, 110, 97,109,101, 46, 46, 34, 32, 34, 46, 46,118, 97,114,110, 97,109,101, 46, 46, 34, 59, 39, 41, 34, 41, 10, 32, 32, 32, 95, 99,117,114,114, 95, 99,111,100,101, 32, 61, 32,115,116, 114,115,117, 98, 40,115, 44, 98, 44,101, 41, 10, 32, 32, 32, 69,110,117,109,101,114, 97,116,101, 40,110, 97,109,101, 44, 98,111,100,121, 44,118, 97,114,110, 97,109,101, 41, 10, 32, 32, 32,114,101,116,117,114,110, 32,115,116,114,115,117, 98, 40,115, 44,101, 43, 49, 41, 10, 32, 32,101,110,100, 10, 32, 101,110,100, 10, 10, 45, 45, 32,100,111, 10, 45, 45, 32, 32, 108,111, 99, 97,108, 32, 98, 44,101, 44,110, 97,109,101, 44, 98,111,100,121, 32, 61, 32,115,116,114,102,105,110,100, 40, 115, 44, 34, 94, 37,115, 42,101,110,117,109, 37,115, 43, 40, 37, 83, 42, 41, 37,115, 42, 40, 37, 98,123,125, 41, 37,115, 42, 59, 63, 37,115, 42, 34, 41, 10, 45, 45, 32, 32,105,102, 32, 98, 32,116,104,101,110, 10, 45, 45, 32, 32, 32, 95, 99, 117,114,114, 95, 99,111,100,101, 32, 61, 32,115,116,114,115, 117, 98, 40,115, 44, 98, 44,101, 41, 10, 45, 45, 32, 32, 32, 69,110,117,109,101,114, 97,116,101, 40,110, 97,109,101, 44, 98,111,100,121, 41, 10, 45, 45, 32, 32,114,101,116,117,114, 110, 32,115,116,114,115,117, 98, 40,115, 44,101, 43, 49, 41, 10, 45, 45, 32, 32,101,110,100, 10, 45, 45, 32,101,110,100, 10, 10, 32,100,111, 10, 32, 32,108,111, 99, 97,108, 32, 98, 44,101, 44, 98,111,100,121, 44,110, 97,109,101, 32, 61, 32, 115,116,114,102,105,110,100, 40,115, 44, 34, 94, 37,115, 42, 116,121,112,101,100,101,102, 37,115, 43,101,110,117,109, 91, 94,123, 93, 42, 40, 37, 98,123,125, 41, 37,115, 42, 40, 91, 37,119, 95, 93, 91, 94, 37,115, 93, 42, 41, 37,115, 42, 59, 37,115, 42, 34, 41, 10, 32, 32,105,102, 32, 98, 32,116,104, 101,110, 10, 32, 32, 32, 95, 99,117,114,114, 95, 99,111,100, 101, 32, 61, 32,115,116,114,115,117, 98, 40,115, 44, 98, 44, 101, 41, 10, 32, 32, 32, 69,110,117,109,101,114, 97,116,101, 40,110, 97,109,101, 44, 98,111,100,121, 41, 10, 32, 32, 32, 114,101,116,117,114,110, 32,115,116,114,115,117, 98, 40,115, 44,101, 43, 49, 41, 10, 32, 32,101,110,100, 10, 32,101,110, 100, 10, 10, 32, 45, 45, 32,116,114,121, 32,111,112,101,114, 97,116,111,114, 10, 32,100,111, 10, 32, 32,108,111, 99, 97, 108, 32, 98, 44,101, 44,100,101, 99,108, 44,107,105,110,100, 44, 97,114,103, 44, 99,111,110,115,116, 32, 61, 32,115,116, 114,102,105,110,100, 40,115, 44, 34, 94, 37,115, 42, 40, 91, 95, 37,119, 93, 91, 95, 37,119, 37,115, 37, 42, 38, 58, 60, 62, 44, 93, 45, 37,115, 43,111,112,101,114, 97,116,111,114, 41, 37,115, 42, 40, 91, 94, 37,115, 93, 91, 94, 37,115, 93, 42, 41, 37,115, 42, 40, 37, 98, 40, 41, 41, 37,115, 42, 40, 99, 63,111, 63,110, 63,115, 63,116, 63, 41, 37,115, 42, 59, 37,115, 42, 34, 41, 10, 32, 32,105,102, 32,110,111,116, 32, 98, 32,116,104,101,110, 10, 9, 9, 32, 45, 45, 32,116,114, 121, 32,105,110,108,105,110,101, 10, 32, 32, 32, 98, 44,101, 44,100,101, 99,108, 44,107,105,110,100, 44, 97,114,103, 44, 99,111,110,115,116, 32, 61, 32,115,116,114,102,105,110,100, 40,115, 44, 34, 94, 37,115, 42, 40, 91, 95, 37,119, 93, 91, 95, 37,119, 37,115, 37, 42, 38, 58, 60, 62, 44, 93, 45, 37, 115, 43,111,112,101,114, 97,116,111,114, 41, 37,115, 42, 40, 91, 94, 37,115, 93, 91, 94, 37,115, 93, 42, 41, 37,115, 42, 40, 37, 98, 40, 41, 41, 37,115, 42, 40, 99, 63,111, 63,110, 63,115, 63,116, 63, 41, 91, 37,115, 92,110, 93, 42, 37, 98, 123,125, 37,115, 42, 59, 63, 37,115, 42, 34, 41, 10, 32, 32, 101,110,100, 10, 32, 32,105,102, 32,110,111,116, 32, 98, 32, 116,104,101,110, 10, 32, 32, 9, 45, 45, 32,116,114,121, 32, 99, 97,115,116, 32,111,112,101,114, 97,116,111,114, 10, 32, 32, 9, 98, 44,101, 44,100,101, 99,108, 44,107,105,110,100, 44, 97,114,103, 44, 99,111,110,115,116, 32, 61, 32,115,116, 114,102,105,110,100, 40,115, 44, 32, 34, 94, 37,115, 42, 40, 111,112,101,114, 97,116,111,114, 41, 37,115, 43, 40, 91, 37, 119, 95, 58, 37,100, 60, 62, 37, 42, 37, 38, 37,115, 93, 43, 41, 37,115, 42, 40, 37, 98, 40, 41, 41, 37,115, 42, 40, 99, 63,111, 63,110, 63,115, 63,116, 63, 41, 34, 41, 59, 10, 32, 32, 9,105,102, 32, 98, 32,116,104,101,110, 10, 32, 32, 9, 9,108,111, 99, 97,108, 32, 95, 44,105,101, 32, 61, 32,115, 116,114,105,110,103, 46,102,105,110,100, 40,115, 44, 32, 34, 94, 37,115, 42, 37, 98,123,125, 34, 44, 32,101, 43, 49, 41, 10, 32, 32, 9, 9,105,102, 32,105,101, 32,116,104,101,110, 10, 32, 32, 9, 9, 9,101, 32, 61, 32,105,101, 10, 32, 32, 9, 9,101,110,100, 10, 32, 32, 9,101,110,100, 10, 32, 32, 101,110,100, 10, 32, 32,105,102, 32, 98, 32,116,104,101,110, 10, 32, 32, 32, 95, 99,117,114,114, 95, 99,111,100,101, 32, 61, 32,115,116,114,115,117, 98, 40,115, 44, 98, 44,101, 41, 10, 32, 32, 32, 79,112,101,114, 97,116,111,114, 40,100,101, 99,108, 44,107,105,110,100, 44, 97,114,103, 44, 99,111,110, 115,116, 41, 10, 32, 32, 32,114,101,116,117,114,110, 32,115, 116,114,115,117, 98, 40,115, 44,101, 43, 49, 41, 10, 32, 32, 101,110,100, 10, 32,101,110,100, 10, 10, 32, 45, 45, 32,116, 114,121, 32,102,117,110, 99,116,105,111,110, 10, 32,100,111, 10, 32, 32, 45, 45,108,111, 99, 97,108, 32, 98, 44,101, 44, 100,101, 99,108, 44, 97,114,103, 44, 99,111,110,115,116, 32, 61, 32,115,116,114,102,105,110,100, 40,115, 44, 34, 94, 37, 115, 42, 40, 91,126, 95, 37,119, 93, 91, 95, 64, 37,119, 37, 115, 37, 42, 38, 58, 60, 62, 93, 42, 91, 95, 37,119, 93, 41, 37,115, 42, 40, 37, 98, 40, 41, 41, 37,115, 42, 40, 99, 63, 111, 63,110, 63,115, 63,116, 63, 41, 37,115, 42, 61, 63, 37, 115, 42, 48, 63, 37,115, 42, 59, 37,115, 42, 34, 41, 10, 32, 32,108,111, 99, 97,108, 32, 98, 44,101, 44,100,101, 99,108, 44, 97,114,103, 44, 99,111,110,115,116, 44,118,105,114,116, 32, 61, 32,115,116,114,102,105,110,100, 40,115, 44, 34, 94, 37,115, 42, 40, 91, 94, 37, 40, 92,110, 93, 43, 41, 37,115, 42, 40, 37, 98, 40, 41, 41, 37,115, 42, 40, 99, 63,111, 63, 110, 63,115, 63,116, 63, 41, 37,115, 42, 40, 61, 63, 37,115, 42, 48, 63, 41, 37,115, 42, 59, 37,115, 42, 34, 41, 10, 32, 32,105,102, 32,110,111,116, 32, 98, 32,116,104,101,110, 10, 32, 32, 9, 45, 45, 32,116,114,121, 32,102,117,110, 99,116, 105,111,110, 32,119,105,116,104, 32,116,101,109,112,108, 97, 116,101, 10, 32, 32, 9, 98, 44,101, 44,100,101, 99,108, 44, 97,114,103, 44, 99,111,110,115,116, 32, 61, 32,115,116,114, 102,105,110,100, 40,115, 44, 34, 94, 37,115, 42, 40, 91,126, 95, 37,119, 93, 91, 95, 64, 37,119, 37,115, 37, 42, 38, 58, 60, 62, 93, 42, 91, 95, 37,119, 93, 37, 98, 60, 62, 41, 37, 115, 42, 40, 37, 98, 40, 41, 41, 37,115, 42, 40, 99, 63,111, 63,110, 63,115, 63,116, 63, 41, 37,115, 42, 61, 63, 37,115, 42, 48, 63, 37,115, 42, 59, 37,115, 42, 34, 41, 10, 32, 32, 101,110,100, 10, 32, 32,105,102, 32,110,111,116, 32, 98, 32, 116,104,101,110, 10, 32, 32, 32, 45, 45, 32,116,114,121, 32, 97, 32,115,105,110,103,108,101, 32,108,101,116,116,101,114, 32,102,117,110, 99,116,105,111,110, 32,110, 97,109,101, 10, 32, 32, 32, 98, 44,101, 44,100,101, 99,108, 44, 97,114,103, 44, 99,111,110,115,116, 32, 61, 32,115,116,114,102,105,110, 100, 40,115, 44, 34, 94, 37,115, 42, 40, 91, 95, 37,119, 93, 41, 37,115, 42, 40, 37, 98, 40, 41, 41, 37,115, 42, 40, 99, 63,111, 63,110, 63,115, 63,116, 63, 41, 37,115, 42, 59, 37, 115, 42, 34, 41, 10, 32, 32,101,110,100, 10, 32, 32,105,102, 32,110,111,116, 32, 98, 32,116,104,101,110, 10, 32, 32, 32, 45, 45, 32,116,114,121, 32,102,117,110, 99,116,105,111,110, 32,112,111,105,110,116,101,114, 10, 32, 32, 32, 98, 44,101, 44,100,101, 99,108, 44, 97,114,103, 44, 99,111,110,115,116, 32, 61, 32,115,116,114,102,105,110,100, 40,115, 44, 34, 94, 37,115, 42, 40, 91, 94, 37, 40, 59, 92,110, 93, 43, 37, 98, 40, 41, 41, 37,115, 42, 40, 37, 98, 40, 41, 41, 37,115, 42, 59, 37,115, 42, 34, 41, 10, 32, 32, 32,105,102, 32, 98, 32, 116,104,101,110, 10, 32, 32, 32, 32,100,101, 99,108, 32, 61, 32,115,116,114,105,110,103, 46,103,115,117, 98, 40,100,101, 99,108, 44, 32, 34, 37, 40, 37,115, 42, 37, 42, 40, 91, 94, 37, 41, 93, 42, 41, 37,115, 42, 37, 41, 34, 44, 32, 34, 32, 37, 49, 32, 34, 41, 10, 32, 32, 32,101,110,100, 10, 32, 32, 101,110,100, 10, 32, 32,105,102, 32, 98, 32,116,104,101,110, 10, 32, 32, 9,105,102, 32,118,105,114,116, 32, 97,110,100, 32,115,116,114,105,110,103, 46,102,105,110,100, 40,118,105, 114,116, 44, 32, 34, 91, 61, 48, 93, 34, 41, 32,116,104,101, 110, 10, 32, 32, 9, 9,105,102, 32,115,101,108,102, 46,102, 108, 97,103,115, 32,116,104,101,110, 10, 32, 32, 9, 9, 9, 115,101,108,102, 46,102,108, 97,103,115, 46,112,117,114,101, 95,118,105,114,116,117, 97,108, 32, 61, 32,116,114,117,101, 10, 32, 32, 9, 9,101,110,100, 10, 32, 32, 9,101,110,100, 10, 32, 32, 32, 95, 99,117,114,114, 95, 99,111,100,101, 32, 61, 32,115,116,114,115,117, 98, 40,115, 44, 98, 44,101, 41, 10, 32, 32, 32, 70,117,110, 99,116,105,111,110, 40,100,101, 99,108, 44, 97,114,103, 44, 99,111,110,115,116, 41, 10, 32, 32, 32,114,101,116,117,114,110, 32,115,116,114,115,117, 98, 40,115, 44,101, 43, 49, 41, 10, 32, 32,101,110,100, 10, 32, 101,110,100, 10, 10, 32, 45, 45, 32,116,114,121, 32,105,110, 108,105,110,101, 32,102,117,110, 99,116,105,111,110, 10, 32, 100,111, 10, 32, 32,108,111, 99, 97,108, 32, 98, 44,101, 44, 100,101, 99,108, 44, 97,114,103, 44, 99,111,110,115,116, 32, 61, 32,115,116,114,102,105,110,100, 40,115, 44, 34, 94, 37, 115, 42, 40, 91, 94, 37, 40, 92,110, 93, 43, 41, 37,115, 42, 40, 37, 98, 40, 41, 41, 37,115, 42, 40, 99, 63,111, 63,110, 63,115, 63,116, 63, 41, 91, 94, 59,123, 93, 42, 37, 98,123, 125, 37,115, 42, 59, 63, 37,115, 42, 34, 41, 10, 32, 32, 45, 45,108,111, 99, 97,108, 32, 98, 44,101, 44,100,101, 99,108, 44, 97,114,103, 44, 99,111,110,115,116, 32, 61, 32,115,116, 114,102,105,110,100, 40,115, 44, 34, 94, 37,115, 42, 40, 91, 126, 95, 37,119, 93, 91, 95, 64, 37,119, 37,115, 37, 42, 38, 58, 60, 62, 93, 42, 91, 95, 37,119, 62, 93, 41, 37,115, 42, 40, 37, 98, 40, 41, 41, 37,115, 42, 40, 99, 63,111, 63,110, 63,115, 63,116, 63, 41, 91, 94, 59, 93, 42, 37, 98,123,125, 37,115, 42, 59, 63, 37,115, 42, 34, 41, 10, 32, 32,105,102, 32,110,111,116, 32, 98, 32,116,104,101,110, 10, 32, 32, 32, 45, 45, 32,116,114,121, 32, 97, 32,115,105,110,103,108,101, 32,108,101,116,116,101,114, 32,102,117,110, 99,116,105,111, 110, 32,110, 97,109,101, 10, 32, 32, 32, 98, 44,101, 44,100, 101, 99,108, 44, 97,114,103, 44, 99,111,110,115,116, 32, 61, 32,115,116,114,102,105,110,100, 40,115, 44, 34, 94, 37,115, 42, 40, 91, 95, 37,119, 93, 41, 37,115, 42, 40, 37, 98, 40, 41, 41, 37,115, 42, 40, 99, 63,111, 63,110, 63,115, 63,116, 63, 41, 46, 45, 37, 98,123,125, 37,115, 42, 59, 63, 37,115, 42, 34, 41, 10, 32, 32,101,110,100, 10, 32, 32,105,102, 32, 98, 32,116,104,101,110, 10, 32, 32, 32, 95, 99,117,114,114, 95, 99,111,100,101, 32, 61, 32,115,116,114,115,117, 98, 40, 115, 44, 98, 44,101, 41, 10, 32, 32, 32, 70,117,110, 99,116, 105,111,110, 40,100,101, 99,108, 44, 97,114,103, 44, 99,111, 110,115,116, 41, 10, 32, 32, 32,114,101,116,117,114,110, 32, 115,116,114,115,117, 98, 40,115, 44,101, 43, 49, 41, 10, 32, 32,101,110,100, 10, 32,101,110,100, 10, 10, 32, 45, 45, 32, 116,114,121, 32, 99,108, 97,115,115, 10, 32,100,111, 10, 9, 32,108,111, 99, 97,108, 32, 98, 44,101, 44,110, 97,109,101, 44, 98, 97,115,101, 44, 98,111,100,121, 10, 9, 9, 98, 97, 115,101, 32, 61, 32, 39, 39, 32, 98,111,100,121, 32, 61, 32, 39, 39, 10, 9, 9, 98, 44,101, 44,110, 97,109,101, 32, 61, 32,115,116,114,102,105,110,100, 40,115, 44, 34, 94, 37,115, 42, 99,108, 97,115,115, 37,115, 42, 40, 91, 95, 37,119, 93, 91, 95, 37,119, 64, 93, 42, 41, 37,115, 42, 59, 34, 41, 32, 32, 45, 45, 32,100,117,109,109,121, 32, 99,108, 97,115,115, 10, 9, 9,108,111, 99, 97,108, 32,100,117,109,109,121, 32, 61, 32,102, 97,108,115,101, 10, 9, 9,105,102, 32,110,111, 116, 32, 98, 32,116,104,101,110, 10, 9, 9, 9, 98, 44,101, 44,110, 97,109,101, 32, 61, 32,115,116,114,102,105,110,100, 40,115, 44, 34, 94, 37,115, 42,115,116,114,117, 99,116, 37, 115, 42, 40, 91, 95, 37,119, 93, 91, 95, 37,119, 64, 93, 42, 41, 37,115, 42, 59, 34, 41, 32, 32, 32, 32, 45, 45, 32,100, 117,109,109,121, 32,115,116,114,117, 99,116, 10, 9, 9, 9, 105,102, 32,110,111,116, 32, 98, 32,116,104,101,110, 10, 9, 9, 9, 9, 98, 44,101, 44,110, 97,109,101, 44, 98, 97,115, 101, 44, 98,111,100,121, 32, 61, 32,115,116,114,102,105,110, 100, 40,115, 44, 34, 94, 37,115, 42, 99,108, 97,115,115, 37, 115, 42, 40, 91, 95, 37,119, 93, 91, 95, 37,119, 64, 93, 42, 41, 37,115, 42, 40, 91, 94,123, 93, 45, 41, 37,115, 42, 40, 37, 98,123,125, 41, 37,115, 42, 34, 41, 10, 9, 9, 9, 9, 105,102, 32,110,111,116, 32, 98, 32,116,104,101,110, 10, 9, 9, 9, 9, 9, 98, 44,101, 44,110, 97,109,101, 44, 98, 97, 115,101, 44, 98,111,100,121, 32, 61, 32,115,116,114,102,105, 110,100, 40,115, 44, 34, 94, 37,115, 42,115,116,114,117, 99, 116, 37,115, 43, 40, 91, 95, 37,119, 93, 91, 95, 37,119, 64, 93, 42, 41, 37,115, 42, 40, 91, 94,123, 93, 45, 41, 37,115, 42, 40, 37, 98,123,125, 41, 37,115, 42, 34, 41, 10, 9, 9, 9, 9, 9,105,102, 32,110,111,116, 32, 98, 32,116,104,101, 110, 10, 9, 9, 9, 9, 9, 9, 98, 44,101, 44,110, 97,109, 101, 44, 98, 97,115,101, 44, 98,111,100,121, 32, 61, 32,115, 116,114,102,105,110,100, 40,115, 44, 34, 94, 37,115, 42,117, 110,105,111,110, 37,115, 42, 40, 91, 95, 37,119, 93, 91, 95, 37,119, 64, 93, 42, 41, 37,115, 42, 40, 91, 94,123, 93, 45, 41, 37,115, 42, 40, 37, 98,123,125, 41, 37,115, 42, 34, 41, 10, 9, 9, 9, 9, 9, 9,105,102, 32,110,111,116, 32, 98, 32,116,104,101,110, 10, 9, 9, 9, 9, 9, 9, 9, 98, 97, 115,101, 32, 61, 32, 39, 39, 10, 9, 9, 9, 9, 9, 9, 9, 98, 44,101, 44, 98,111,100,121, 44,110, 97,109,101, 32, 61, 32,115,116,114,102,105,110,100, 40,115, 44, 34, 94, 37,115, 42,116,121,112,101,100,101,102, 37,115, 37,115, 42,115,116, 114,117, 99,116, 37,115, 37,115, 42, 91, 95, 37,119, 93, 42, 37,115, 42, 40, 37, 98,123,125, 41, 37,115, 42, 40, 91, 95, 37,119, 93, 91, 95, 37,119, 64, 93, 42, 41, 37,115, 42, 59, 34, 41, 10, 9, 9, 9, 9, 9, 9,101,110,100, 10, 9, 9, 9, 9, 9,101,110,100, 10, 9, 9, 9, 9,101,110,100, 10, 9, 9, 9,101,108,115,101, 32,100,117,109,109,121, 32, 61, 32, 49, 32,101,110,100, 10, 9, 9,101,108,115,101, 32,100, 117,109,109,121, 32, 61, 32, 49, 32,101,110,100, 10, 9, 9, 105,102, 32, 98, 32,116,104,101,110, 10, 9, 9, 9,105,102, 32, 98, 97,115,101, 32,126, 61, 32, 39, 39, 32,116,104,101, 110, 10, 9, 9, 9, 9, 98, 97,115,101, 32, 61, 32,115,116, 114,105,110,103, 46,103,115,117, 98, 40, 98, 97,115,101, 44, 32, 34, 94, 37,115, 42, 58, 37,115, 42, 34, 44, 32, 34, 34, 41, 10, 9, 9, 9, 9, 98, 97,115,101, 32, 61, 32,115,116, 114,105,110,103, 46,103,115,117, 98, 40, 98, 97,115,101, 44, 32, 34, 37,115, 42,112,117, 98,108,105, 99, 37,115, 42, 34, 44, 32, 34, 34, 41, 10, 9, 9, 9, 9, 98, 97,115,101, 32, 61, 32,115,112,108,105,116, 40, 98, 97,115,101, 44, 32, 34, 44, 34, 41, 10, 9, 9, 9, 9, 45, 45,108,111, 99, 97,108, 32, 98, 44,101, 10, 9, 9, 9, 9, 45, 45, 98, 44,101, 44, 98, 97,115,101, 32, 61, 32,115,116,114,102,105,110,100, 40, 98, 97,115,101, 44, 34, 46, 45, 40, 91, 95, 37,119, 93, 91, 95, 37,119, 60, 62, 44, 58, 93, 42, 41, 36, 34, 41, 10, 9, 9, 9,101,108,115,101, 10, 9, 9, 9, 9, 98, 97,115,101, 32, 61, 32,123,125, 10, 9, 9, 9,101,110,100, 10, 9, 9, 9, 95, 99,117,114,114, 95, 99,111,100,101, 32, 61, 32,115, 116,114,115,117, 98, 40,115, 44, 98, 44,101, 41, 10, 9, 9, 9, 67,108, 97,115,115, 40,110, 97,109,101, 44, 98, 97,115, 101, 44, 98,111,100,121, 41, 10, 9, 9, 9,105,102, 32,110, 111,116, 32,100,117,109,109,121, 32,116,104,101,110, 10, 9, 9, 9, 9,118, 97,114, 98, 44,118, 97,114,101, 44,118, 97, 114,110, 97,109,101, 32, 61, 32,115,116,114,105,110,103, 46, 102,105,110,100, 40,115, 44, 32, 34, 94, 37,115, 42, 40, 91, 95, 37,119, 93, 43, 41, 37,115, 42, 59, 34, 44, 32,101, 43, 49, 41, 10, 9, 9, 9, 9,105,102, 32,118, 97,114, 98, 32, 116,104,101,110, 10, 9, 9, 9, 9, 9, 86, 97,114,105, 97, 98,108,101, 40,110, 97,109,101, 46, 46, 34, 32, 34, 46, 46, 118, 97,114,110, 97,109,101, 41, 10, 9, 9, 9, 9, 9,101, 32, 61, 32,118, 97,114,101, 10, 9, 9, 9, 9,101,110,100, 10, 9, 9, 9,101,110,100, 10, 9, 9, 9,114,101,116,117, 114,110, 32,115,116,114,115,117, 98, 40,115, 44,101, 43, 49, 41, 10, 9, 9,101,110,100, 10, 9,101,110,100, 10, 10, 32, 45, 45, 32,116,114,121, 32,116,121,112,101,100,101,102, 10, 32,100,111, 10, 32, 32,108,111, 99, 97,108, 32, 98, 44,101, 44,116,121,112,101,115, 32, 61, 32,115,116,114,102,105,110, 100, 40,115, 44, 34, 94, 37,115, 42,116,121,112,101,100,101, 102, 37,115, 37,115, 42, 40, 46, 45, 41, 37,115, 42, 59, 37, 115, 42, 34, 41, 10, 32, 32,105,102, 32, 98, 32,116,104,101, 110, 10, 32, 32, 32, 95, 99,117,114,114, 95, 99,111,100,101, 32, 61, 32,115,116,114,115,117, 98, 40,115, 44, 98, 44,101, 41, 10, 32, 32, 32, 84,121,112,101,100,101,102, 40,116,121, 112,101,115, 41, 10, 32, 32, 32,114,101,116,117,114,110, 32, 115,116,114,115,117, 98, 40,115, 44,101, 43, 49, 41, 10, 32, 32,101,110,100, 10, 32,101,110,100, 10, 10, 32, 45, 45, 32, 116,114,121, 32,118, 97,114,105, 97, 98,108,101, 10, 32,100, 111, 10, 32, 32,108,111, 99, 97,108, 32, 98, 44,101, 44,100, 101, 99,108, 32, 61, 32,115,116,114,102,105,110,100, 40,115, 44, 34, 94, 37,115, 42, 40, 91, 95, 37,119, 93, 91, 95, 64, 37,115, 37,119, 37,100, 37, 42, 38, 58, 60, 62, 44, 93, 42, 91, 95, 37,119, 37,100, 93, 41, 37,115, 42, 59, 37,115, 42, 34, 41, 10, 32, 32,105,102, 32, 98, 32,116,104,101,110, 10, 32, 32, 32, 95, 99,117,114,114, 95, 99,111,100,101, 32, 61, 32,115,116,114,115,117, 98, 40,115, 44, 98, 44,101, 41, 10, 10, 9,108,111, 99, 97,108, 32,108,105,115,116, 32, 61, 32, 115,112,108,105,116, 95, 99, 95,116,111,107,101,110,115, 40, 100,101, 99,108, 44, 32, 34, 44, 34, 41, 10, 9, 86, 97,114, 105, 97, 98,108,101, 40,108,105,115,116, 91, 49, 93, 41, 10, 9,105,102, 32,108,105,115,116, 46,110, 32, 62, 32, 49, 32, 116,104,101,110, 10, 9, 9,108,111, 99, 97,108, 32, 95, 44, 95, 44,116,121,112,101, 32, 61, 32,115,116,114,102,105,110, 100, 40,108,105,115,116, 91, 49, 93, 44, 32, 34, 40, 46, 45, 41, 37,115, 43, 40, 91, 94, 37,115, 93, 42, 41, 36, 34, 41, 59, 10, 10, 9, 9,108,111, 99, 97,108, 32,105, 32, 61, 50, 59, 10, 9, 9,119,104,105,108,101, 32,108,105,115,116, 91, 105, 93, 32,100,111, 10, 9, 9, 9, 86, 97,114,105, 97, 98, 108,101, 40,116,121,112,101, 46, 46, 34, 32, 34, 46, 46,108, 105,115,116, 91,105, 93, 41, 10, 9, 9, 9,105, 61,105, 43, 49, 10, 9, 9,101,110,100, 10, 9,101,110,100, 10, 32, 32, 32, 45, 45, 86, 97,114,105, 97, 98,108,101, 40,100,101, 99, 108, 41, 10, 32, 32, 32,114,101,116,117,114,110, 32,115,116, 114,115,117, 98, 40,115, 44,101, 43, 49, 41, 10, 32, 32,101, 110,100, 10, 32,101,110,100, 10, 10, 9, 45, 45, 32,116,114, 121, 32,115,116,114,105,110,103, 10, 32,100,111, 10, 32, 32, 108,111, 99, 97,108, 32, 98, 44,101, 44,100,101, 99,108, 32, 61, 32,115,116,114,102,105,110,100, 40,115, 44, 34, 94, 37, 115, 42, 40, 91, 95, 37,119, 93, 63, 91, 95, 37,115, 37,119, 37,100, 93, 45, 99,104, 97,114, 37,115, 43, 91, 95, 64, 37, 119, 37,100, 93, 42, 37,115, 42, 37, 91, 37,115, 42, 37, 83, 43, 37,115, 42, 37, 93, 41, 37,115, 42, 59, 37,115, 42, 34, 41, 10, 32, 32,105,102, 32, 98, 32,116,104,101,110, 10, 32, 32, 32, 95, 99,117,114,114, 95, 99,111,100,101, 32, 61, 32, 115,116,114,115,117, 98, 40,115, 44, 98, 44,101, 41, 10, 32, 32, 32, 86, 97,114,105, 97, 98,108,101, 40,100,101, 99,108, 41, 10, 32, 32, 32,114,101,116,117,114,110, 32,115,116,114, 115,117, 98, 40,115, 44,101, 43, 49, 41, 10, 32, 32,101,110, 100, 10, 32,101,110,100, 10, 10, 32, 45, 45, 32,116,114,121, 32, 97,114,114, 97,121, 10, 32,100,111, 10, 32, 32,108,111, 99, 97,108, 32, 98, 44,101, 44,100,101, 99,108, 32, 61, 32, 115,116,114,102,105,110,100, 40,115, 44, 34, 94, 37,115, 42, 40, 91, 95, 37,119, 93, 91, 93, 91, 95, 64, 37,115, 37,119, 37,100, 37, 42, 38, 58, 93, 42, 91, 93, 95, 37,119, 37,100, 93, 41, 37,115, 42, 59, 37,115, 42, 34, 41, 10, 32, 32,105, 102, 32, 98, 32,116,104,101,110, 10, 32, 32, 32, 95, 99,117, 114,114, 95, 99,111,100,101, 32, 61, 32,115,116,114,115,117, 98, 40,115, 44, 98, 44,101, 41, 10, 32, 32, 32, 65,114,114, 97,121, 40,100,101, 99,108, 41, 10, 32, 32, 32,114,101,116, 117,114,110, 32,115,116,114,115,117, 98, 40,115, 44,101, 43, 49, 41, 10, 32, 32,101,110,100, 10, 32,101,110,100, 10, 10, 32, 45, 45, 32,110,111, 32,109, 97,116, 99,104,105,110,103, 10, 32,105,102, 32,103,115,117, 98, 40,115, 44, 34, 37,115, 37,115, 42, 34, 44, 34, 34, 41, 32,126, 61, 32, 34, 34, 32, 116,104,101,110, 10, 32, 32, 95, 99,117,114,114, 95, 99,111, 100,101, 32, 61, 32,115, 10, 32, 32,101,114,114,111,114, 40, 34, 35,112, 97,114,115,101, 32,101,114,114,111,114, 34, 41, 10, 32,101,108,115,101, 10, 32, 32,114,101,116,117,114,110, 32, 34, 34, 10, 32,101,110,100, 10, 10,101,110,100, 10, 10, 102,117,110, 99,116,105,111,110, 32, 99,108, 97,115,115, 67, 111,110,116, 97,105,110,101,114, 58,112, 97,114,115,101, 32, 40,115, 41, 10, 10, 9, 45, 45,115,101,108,102, 46, 99,117, 114,114, 95,109,101,109, 98,101,114, 95, 97, 99, 99,101,115, 115, 32, 61, 32,110,105,108, 10, 10, 32,119,104,105,108,101, 32,115, 32,126, 61, 32, 39, 39, 32,100,111, 10, 32, 32,115, 32, 61, 32,115,101,108,102, 58,100,111,112, 97,114,115,101, 40,115, 41, 10, 32, 32,109,101,116,104,111,100,105,115,118, 105,114,116,117, 97,108, 32, 61, 32,102, 97,108,115,101, 10, 32,101,110,100, 10,101,110,100, 10, 10, 10, 45, 45, 32,112, 114,111,112,101,114,116,121, 32,116,121,112,101,115, 10, 10, 102,117,110, 99,116,105,111,110, 32,103,101,116, 95,112,114, 111,112,101,114,116,121, 95,116,121,112,101, 40, 41, 10, 10, 9,114,101,116,117,114,110, 32, 99,108, 97,115,115, 67,111, 110,116, 97,105,110,101,114, 46, 99,117,114,114, 58,103,101, 116, 95,112,114,111,112,101,114,116,121, 95,116,121,112,101, 40, 41, 10,101,110,100, 10, 10,102,117,110, 99,116,105,111, 110, 32, 99,108, 97,115,115, 67,111,110,116, 97,105,110,101, 114, 58,115,101,116, 95,112,114,111,112,101,114,116,121, 95, 116,121,112,101, 40,112,116,121,112,101, 41, 10, 9,112,116, 121,112,101, 32, 61, 32,115,116,114,105,110,103, 46,103,115, 117, 98, 40,112,116,121,112,101, 44, 32, 34, 94, 37,115, 42, 34, 44, 32, 34, 34, 41, 10, 9,112,116,121,112,101, 32, 61, 32,115,116,114,105,110,103, 46,103,115,117, 98, 40,112,116, 121,112,101, 44, 32, 34, 37,115, 42, 36, 34, 44, 32, 34, 34, 41, 10, 10, 9,115,101,108,102, 46,112,114,111,112,101,114, 116,121, 95,116,121,112,101, 32, 61, 32,112,116,121,112,101, 10,101,110,100, 10, 10,102,117,110, 99,116,105,111,110, 32, 99,108, 97,115,115, 67,111,110,116, 97,105,110,101,114, 58, 103,101,116, 95,112,114,111,112,101,114,116,121, 95,116,121, 112,101, 40, 41, 10, 9,114,101,116,117,114,110, 32,115,101, 108,102, 46,112,114,111,112,101,114,116,121, 95,116,121,112, 101, 32,111,114, 32, 40,115,101,108,102, 46,112, 97,114,101, 110,116, 32, 97,110,100, 32,115,101,108,102, 46,112, 97,114, 101,110,116, 58,103,101,116, 95,112,114,111,112,101,114,116, 121, 95,116,121,112,101, 40, 41, 41, 32,111,114, 32, 34,100, 101,102, 97,117,108,116, 34, 10,101,110,100,32 }; tolua_dobuffer(tolua_S,(char*)B,sizeof(B),"tolua embedded: lua/tolua++/src/bin/lua/container.lua"); lua_settop(tolua_S, top); } /* end of embedded lua code */ { /* begin embedded lua code */ int top = lua_gettop(tolua_S); static unsigned char B[] = { 45, 45, 32,116,111,108,117, 97, 58, 32,112, 97, 99,107, 97, 103,101, 32, 99,108, 97,115,115, 10, 45, 45, 32, 87,114,105, 116,116,101,110, 32, 98,121, 32, 87, 97,108,100,101,109, 97, 114, 32, 67,101,108,101,115, 10, 45, 45, 32, 84,101, 67, 71, 114, 97,102, 47, 80, 85, 67, 45, 82,105,111, 10, 45, 45, 32, 74,117,108, 32, 49, 57, 57, 56, 10, 45, 45, 32, 36, 73,100, 58, 32, 36, 10, 10, 45, 45, 32, 84,104,105,115, 32, 99,111, 100,101, 32,105,115, 32,102,114,101,101, 32,115,111,102,116, 119, 97,114,101, 59, 32,121,111,117, 32, 99, 97,110, 32,114, 101,100,105,115,116,114,105, 98,117,116,101, 32,105,116, 32, 97,110,100, 47,111,114, 32,109,111,100,105,102,121, 32,105, 116, 46, 10, 45, 45, 32, 84,104,101, 32,115,111,102,116,119, 97,114,101, 32,112,114,111,118,105,100,101,100, 32,104,101, 114,101,117,110,100,101,114, 32,105,115, 32,111,110, 32, 97, 110, 32, 34, 97,115, 32,105,115, 34, 32, 98, 97,115,105,115, 44, 32, 97,110,100, 10, 45, 45, 32,116,104,101, 32, 97,117, 116,104,111,114, 32,104, 97,115, 32,110,111, 32,111, 98,108, 105,103, 97,116,105,111,110, 32,116,111, 32,112,114,111,118, 105,100,101, 32,109, 97,105,110,116,101,110, 97,110, 99,101, 44, 32,115,117,112,112,111,114,116, 44, 32,117,112,100, 97, 116,101,115, 44, 10, 45, 45, 32,101,110,104, 97,110, 99,101, 109,101,110,116,115, 44, 32,111,114, 32,109,111,100,105,102, 105, 99, 97,116,105,111,110,115, 46, 10, 10, 10, 10, 45, 45, 32, 80, 97, 99,107, 97,103,101, 32, 99,108, 97,115,115, 10, 45, 45, 32, 82,101,112,114,101,115,101,110,116,115, 32,116, 104,101, 32,119,104,111,108,101, 32,112, 97, 99,107, 97,103, 101, 32, 98,101,105,110,103, 32, 98,111,117,110,100, 46, 10, 45, 45, 32, 84,104,101, 32,102,111,108,108,111,119,105,110, 103, 32,102,105,101,108,100,115, 32, 97,114,101, 32,115,116, 111,114,101,100, 58, 10, 45, 45, 32, 32, 32, 32,123,105,125, 32, 61, 32,108,105,115,116, 32,111,102, 32,111, 98,106,101, 99,116,115, 32,105,110, 32,116,104,101, 32,112, 97, 99,107, 97,103,101, 46, 10, 99,108, 97,115,115, 80, 97, 99,107, 97, 103,101, 32, 61, 32,123, 10, 32, 99,108, 97,115,115,116,121, 112,101, 32, 61, 32, 39,112, 97, 99,107, 97,103,101, 39, 10, 125, 10, 99,108, 97,115,115, 80, 97, 99,107, 97,103,101, 46, 95, 95,105,110,100,101,120, 32, 61, 32, 99,108, 97,115,115, 80, 97, 99,107, 97,103,101, 10,115,101,116,109,101,116, 97, 116, 97, 98,108,101, 40, 99,108, 97,115,115, 80, 97, 99,107, 97,103,101, 44, 99,108, 97,115,115, 67,111,110,116, 97,105, 110,101,114, 41, 10, 10, 45, 45, 32, 80,114,105,110,116, 32, 109,101,116,104,111,100, 10,102,117,110, 99,116,105,111,110, 32, 99,108, 97,115,115, 80, 97, 99,107, 97,103,101, 58,112, 114,105,110,116, 32, 40, 41, 10, 32,112,114,105,110,116, 40, 34, 80, 97, 99,107, 97,103,101, 58, 32, 34, 46, 46,115,101, 108,102, 46,110, 97,109,101, 41, 10, 32,108,111, 99, 97,108, 32,105, 61, 49, 10, 32,119,104,105,108,101, 32,115,101,108, 102, 91,105, 93, 32,100,111, 10, 32, 32,115,101,108,102, 91, 105, 93, 58,112,114,105,110,116, 40, 34, 34, 44, 34, 34, 41, 10, 32, 32,105, 32, 61, 32,105, 43, 49, 10, 32,101,110,100, 10,101,110,100, 10, 10,102,117,110, 99,116,105,111,110, 32, 99,108, 97,115,115, 80, 97, 99,107, 97,103,101, 58,112,114, 101,112,114,111, 99,101,115,115, 32, 40, 41, 10, 10, 32, 45, 45, 32, 97,118,111,105,100, 32,112,114,101,112,114,111, 99, 101,115,115,105,110,103, 32,101,109, 98,101,100,100,101,100, 32, 76,117, 97, 32, 99,111,100,101, 10, 32,108,111, 99, 97, 108, 32, 76, 32, 61, 32,123,125, 10, 32,115,101,108,102, 46, 99,111,100,101, 32, 61, 32,103,115,117, 98, 40,115,101,108, 102, 46, 99,111,100,101, 44, 34, 92,110, 37,115, 42, 37, 36, 37, 91, 34, 44, 34, 92, 49, 34, 41, 32, 45, 45, 32,100,101, 97,108, 32,119,105,116,104, 32,101,109, 98,101,100,100,101, 100, 32,108,117, 97, 32, 99,111,100,101, 10, 32,115,101,108, 102, 46, 99,111,100,101, 32, 61, 32,103,115,117, 98, 40,115, 101,108,102, 46, 99,111,100,101, 44, 34, 92,110, 37,115, 42, 37, 36, 37, 93, 34, 44, 34, 92, 50, 34, 41, 10, 32,115,101, 108,102, 46, 99,111,100,101, 32, 61, 32,103,115,117, 98, 40, 115,101,108,102, 46, 99,111,100,101, 44, 34, 40, 37, 98, 92, 49, 92, 50, 41, 34, 44, 32, 32, 32, 32, 32, 32, 32,102,117, 110, 99,116,105,111,110, 32, 40, 99, 41, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32,116,105, 110,115,101,114,116, 40, 76, 44, 99, 41, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32,114,101, 116,117,114,110, 32, 34, 92,110, 35, 91, 34, 46, 46,103,101, 116,110, 40, 76, 41, 46, 46, 34, 93, 35, 34, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32,101,110, 100, 41, 10, 32, 45, 45, 32, 97,118,111,105,100, 32,112,114, 101,112,114,111, 99,101,115,115,105,110,103, 32,101,109, 98, 101,100,100,101,100, 32, 67, 32, 99,111,100,101, 10, 32,108, 111, 99, 97,108, 32, 67, 32, 61, 32,123,125, 10, 32,115,101, 108,102, 46, 99,111,100,101, 32, 61, 32,103,115,117, 98, 40, 115,101,108,102, 46, 99,111,100,101, 44, 34, 92,110, 37,115, 42, 37, 36, 37, 60, 34, 44, 34, 92, 51, 34, 41, 32, 45, 45, 32,100,101, 97,108, 32,119,105,116,104, 32,101,109, 98,101, 100,100,101,100, 32, 67, 32, 99,111,100,101, 10, 32,115,101, 108,102, 46, 99,111,100,101, 32, 61, 32,103,115,117, 98, 40, 115,101,108,102, 46, 99,111,100,101, 44, 34, 92,110, 37,115, 42, 37, 36, 37, 62, 34, 44, 34, 92, 52, 34, 41, 10, 32,115, 101,108,102, 46, 99,111,100,101, 32, 61, 32,103,115,117, 98, 40,115,101,108,102, 46, 99,111,100,101, 44, 34, 40, 37, 98, 92, 51, 92, 52, 41, 34, 44, 32, 32, 32, 32, 32, 32, 32,102, 117,110, 99,116,105,111,110, 32, 40, 99, 41, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32,116, 105,110,115,101,114,116, 40, 67, 44, 99, 41, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32,114, 101,116,117,114,110, 32, 34, 92,110, 35, 60, 34, 46, 46,103, 101,116,110, 40, 67, 41, 46, 46, 34, 62, 35, 34, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32,101, 110,100, 41, 10, 32, 45, 45, 32, 97,118,111,105,100, 32,112, 114,101,112,114,111, 99,101,115,115,105,110,103, 32,101,109, 98,101,100,100,101,100, 32, 67, 32, 99,111,100,101, 10, 32, 115,101,108,102, 46, 99,111,100,101, 32, 61, 32,103,115,117, 98, 40,115,101,108,102, 46, 99,111,100,101, 44, 34, 92,110, 37,115, 42, 37, 36, 37,123, 34, 44, 34, 92, 53, 34, 41, 32, 45, 45, 32,100,101, 97,108, 32,119,105,116,104, 32,101,109, 98,101,100,100,101,100, 32, 67, 32, 99,111,100,101, 10, 32, 115,101,108,102, 46, 99,111,100,101, 32, 61, 32,103,115,117, 98, 40,115,101,108,102, 46, 99,111,100,101, 44, 34, 92,110, 37,115, 42, 37, 36, 37,125, 34, 44, 34, 92, 54, 34, 41, 10, 32,115,101,108,102, 46, 99,111,100,101, 32, 61, 32,103,115, 117, 98, 40,115,101,108,102, 46, 99,111,100,101, 44, 34, 40, 37, 98, 92, 53, 92, 54, 41, 34, 44, 32, 32, 32, 32, 32, 32, 32,102,117,110, 99,116,105,111,110, 32, 40, 99, 41, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32,116,105,110,115,101,114,116, 40, 67, 44, 99, 41, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32,114,101,116,117,114,110, 32, 34, 92,110, 35, 60, 34, 46, 46,103,101,116,110, 40, 67, 41, 46, 46, 34, 62, 35, 34, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32,101,110,100, 41, 10, 10, 32, 45, 45,115,101,108,102, 46, 99,111,100,101, 32, 61, 32,103,115,117, 98, 40,115,101,108, 102, 46, 99,111,100,101, 44, 34, 92,110, 37,115, 42, 35, 91, 94,100, 93, 91, 94, 92,110, 93, 42, 92,110, 34, 44, 32, 34, 92,110, 92,110, 34, 41, 32, 45, 45, 32,101,108,105,109,105, 110, 97,116,101, 32,112,114,101,112,114,111, 99,101,115,115, 111,114, 32,100,105,114,101, 99,116,105,118,101,115, 32,116, 104, 97,116, 32,100,111,110, 39,116, 32,115,116, 97,114,116, 32,119,105,116,104, 32, 39,100, 39, 10, 32,115,101,108,102, 46, 99,111,100,101, 32, 61, 32,103,115,117, 98, 40,115,101, 108,102, 46, 99,111,100,101, 44, 34, 92,110, 91, 32, 92,116, 93, 42, 35, 91, 32, 92,116, 93, 42, 91, 94,100, 37, 60, 37, 91, 93, 34, 44, 32, 34, 92,110, 47, 47, 34, 41, 32, 45, 45, 32,101,108,105,109,105,110, 97,116,101, 32,112,114,101,112, 114,111, 99,101,115,115,111,114, 32,100,105,114,101, 99,116, 105,118,101,115, 32,116,104, 97,116, 32,100,111,110, 39,116, 32,115,116, 97,114,116, 32,119,105,116,104, 32, 39,100, 39, 10, 10, 32, 45, 45, 32, 97,118,111,105,100, 32,112,114,101, 112,114,111, 99,101,115,115,105,110,103, 32,118,101,114, 98, 97,116,105,109, 32,108,105,110,101,115, 10, 32,108,111, 99, 97,108, 32, 86, 32, 61, 32,123,125, 10, 32,115,101,108,102, 46, 99,111,100,101, 32, 61, 32,103,115,117, 98, 40,115,101, 108,102, 46, 99,111,100,101, 44, 34, 92,110, 40, 37,115, 42, 37, 36, 91, 94, 37, 91, 37, 93, 93, 91, 94, 92,110, 93, 42, 41, 34, 44,102,117,110, 99,116,105,111,110, 32, 40,118, 41, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32,116,105,110,115,101,114,116, 40, 86, 44,118, 41, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32,114,101,116,117,114,110, 32, 34, 92,110, 35, 34, 46, 46,103,101,116,110, 40, 86, 41, 46, 46, 34, 35, 34, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32,101,110,100, 41, 10, 10, 32, 45, 45, 32,112,101,114,102, 111,114,109, 32,103,108,111, 98, 97,108, 32,115,117, 98,115, 116,105,116,117,116,105,111,110, 10, 10, 32,115,101,108,102, 46, 99,111,100,101, 32, 61, 32,103,115,117, 98, 40,115,101, 108,102, 46, 99,111,100,101, 44, 34, 40, 47, 47, 91, 94, 92, 110, 93, 42, 41, 34, 44, 34, 34, 41, 32, 32, 32, 32, 32, 45, 45, 32,101,108,105,109,105,110, 97,116,101, 32, 67, 43, 43, 32, 99,111,109,109,101,110,116,115, 10, 32,115,101,108,102, 46, 99,111,100,101, 32, 61, 32,103,115,117, 98, 40,115,101, 108,102, 46, 99,111,100,101, 44, 34, 47, 37, 42, 34, 44, 34, 92, 49, 34, 41, 10, 32,115,101,108,102, 46, 99,111,100,101, 32, 61, 32,103,115,117, 98, 40,115,101,108,102, 46, 99,111, 100,101, 44, 34, 37, 42, 47, 34, 44, 34, 92, 50, 34, 41, 10, 32,115,101,108,102, 46, 99,111,100,101, 32, 61, 32,103,115, 117, 98, 40,115,101,108,102, 46, 99,111,100,101, 44, 34, 37, 98, 92, 49, 92, 50, 34, 44, 34, 34, 41, 10, 32,115,101,108, 102, 46, 99,111,100,101, 32, 61, 32,103,115,117, 98, 40,115, 101,108,102, 46, 99,111,100,101, 44, 34, 92, 49, 34, 44, 34, 47, 37, 42, 34, 41, 10, 32,115,101,108,102, 46, 99,111,100, 101, 32, 61, 32,103,115,117, 98, 40,115,101,108,102, 46, 99, 111,100,101, 44, 34, 92, 50, 34, 44, 34, 37, 42, 47, 34, 41, 10, 32,115,101,108,102, 46, 99,111,100,101, 32, 61, 32,103, 115,117, 98, 40,115,101,108,102, 46, 99,111,100,101, 44, 34, 37,115, 42, 64, 37,115, 42, 34, 44, 34, 64, 34, 41, 32, 45, 45, 32,101,108,105,109,105,110, 97,116,101, 32,115,112, 97, 99,101,115, 32, 98,101,115,105,100,101, 32, 64, 10, 32,115, 101,108,102, 46, 99,111,100,101, 32, 61, 32,103,115,117, 98, 40,115,101,108,102, 46, 99,111,100,101, 44, 34, 37,115, 63, 105,110,108,105,110,101, 40, 37,115, 41, 34, 44, 34, 37, 49, 34, 41, 32, 45, 45, 32,101,108,105,109,105,110, 97,116,101, 32, 39,105,110,108,105,110,101, 39, 32,107,101,121,119,111, 114,100, 10, 32, 45, 45,115,101,108,102, 46, 99,111,100,101, 32, 61, 32,103,115,117, 98, 40,115,101,108,102, 46, 99,111, 100,101, 44, 34, 37,115, 63,101,120,116,101,114,110, 40, 37, 115, 41, 34, 44, 34, 37, 49, 34, 41, 32, 45, 45, 32,101,108, 105,109,105,110, 97,116,101, 32, 39,101,120,116,101,114,110, 39, 32,107,101,121,119,111,114,100, 10, 32, 45, 45,115,101, 108,102, 46, 99,111,100,101, 32, 61, 32,103,115,117, 98, 40, 115,101,108,102, 46, 99,111,100,101, 44, 34, 37,115, 63,118, 105,114,116,117, 97,108, 40, 37,115, 41, 34, 44, 34, 37, 49, 34, 41, 32, 45, 45, 32,101,108,105,109,105,110, 97,116,101, 32, 39,118,105,114,116,117, 97,108, 39, 32,107,101,121,119, 111,114,100, 10, 32, 45, 45,115,101,108,102, 46, 99,111,100, 101, 32, 61, 32,103,115,117, 98, 40,115,101,108,102, 46, 99, 111,100,101, 44, 34,112,117, 98,108,105, 99, 58, 34, 44, 34, 34, 41, 32, 45, 45, 32,101,108,105,109,105,110, 97,116,101, 32, 39,112,117, 98,108,105, 99, 58, 39, 32,107,101,121,119, 111,114,100, 10, 32,115,101,108,102, 46, 99,111,100,101, 32, 61, 32,103,115,117, 98, 40,115,101,108,102, 46, 99,111,100, 101, 44, 34, 40, 91, 94, 37,119, 95, 93, 41,118,111,105,100, 37,115, 42, 37, 42, 34, 44, 34, 37, 49, 95,117,115,101,114, 100, 97,116, 97, 32, 34, 41, 32, 45, 45, 32,115,117, 98,115, 116,105,116,117,116,101, 32, 39,118,111,105,100, 42, 39, 10, 32,115,101,108,102, 46, 99,111,100,101, 32, 61, 32,103,115, 117, 98, 40,115,101,108,102, 46, 99,111,100,101, 44, 34, 40, 91, 94, 37,119, 95, 93, 41,118,111,105,100, 37,115, 42, 37, 42, 34, 44, 34, 37, 49, 95,117,115,101,114,100, 97,116, 97, 32, 34, 41, 32, 45, 45, 32,115,117, 98,115,116,105,116,117, 116,101, 32, 39,118,111,105,100, 42, 39, 10, 32,115,101,108, 102, 46, 99,111,100,101, 32, 61, 32,103,115,117, 98, 40,115, 101,108,102, 46, 99,111,100,101, 44, 34, 40, 91, 94, 37,119, 95, 93, 41, 99,104, 97,114, 37,115, 42, 37, 42, 34, 44, 34, 37, 49, 95, 99,115,116,114,105,110,103, 32, 34, 41, 32, 32, 45, 45, 32,115,117, 98,115,116,105,116,117,116,101, 32, 39, 99,104, 97,114, 42, 39, 10, 32,115,101,108,102, 46, 99,111, 100,101, 32, 61, 32,103,115,117, 98, 40,115,101,108,102, 46, 99,111,100,101, 44, 34, 40, 91, 94, 37,119, 95, 93, 41,108, 117, 97, 95, 83,116, 97,116,101, 37,115, 42, 37, 42, 34, 44, 34, 37, 49, 95,108,115,116, 97,116,101, 32, 34, 41, 32, 32, 45, 45, 32,115,117, 98,115,116,105,116,117,116,101, 32, 39, 108,117, 97, 95, 83,116, 97,116,101, 42, 39, 10, 10, 32, 45, 45, 32,114,101,115,116,111,114,101, 32,101,109, 98,101,100, 100,101,100, 32, 76,117, 97, 32, 99,111,100,101, 10, 32,115, 101,108,102, 46, 99,111,100,101, 32, 61, 32,103,115,117, 98, 40,115,101,108,102, 46, 99,111,100,101, 44, 34, 37, 35, 37, 91, 40, 37,100, 43, 41, 37, 93, 37, 35, 34, 44,102,117,110, 99,116,105,111,110, 32, 40,110, 41, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32,114,101,116,117, 114,110, 32, 76, 91,116,111,110,117,109, 98,101,114, 40,110, 41, 93, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32,101,110,100, 41, 10, 32, 45, 45, 32,114,101,115,116, 111,114,101, 32,101,109, 98,101,100,100,101,100, 32, 67, 32, 99,111,100,101, 10, 32,115,101,108,102, 46, 99,111,100,101, 32, 61, 32,103,115,117, 98, 40,115,101,108,102, 46, 99,111, 100,101, 44, 34, 37, 35, 37, 60, 40, 37,100, 43, 41, 37, 62, 37, 35, 34, 44,102,117,110, 99,116,105,111,110, 32, 40,110, 41, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32,114,101,116,117,114,110, 32, 67, 91,116,111,110,117, 109, 98,101,114, 40,110, 41, 93, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32,101,110,100, 41, 10, 32, 45, 45, 32,114,101,115,116,111,114,101, 32,118,101,114, 98, 97, 116,105,109, 32,108,105,110,101,115, 10, 32,115,101,108,102, 46, 99,111,100,101, 32, 61, 32,103,115,117, 98, 40,115,101, 108,102, 46, 99,111,100,101, 44, 34, 37, 35, 40, 37,100, 43, 41, 37, 35, 34, 44,102,117,110, 99,116,105,111,110, 32, 40, 110, 41, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32,114, 101,116,117,114,110, 32, 86, 91,116,111,110,117,109, 98,101, 114, 40,110, 41, 93, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32,101,110,100, 41, 10, 10, 32,115,101,108,102, 46, 99,111, 100,101, 32, 61, 32,115,116,114,105,110,103, 46,103,115,117, 98, 40,115,101,108,102, 46, 99,111,100,101, 44, 32, 34, 92, 110, 37,115, 42, 37, 36, 40, 91, 94, 92,110, 93, 43, 41, 34, 44, 32,102,117,110, 99,116,105,111,110, 32, 40,108, 41, 10, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 86,101,114, 98, 97,116,105,109, 40,108, 46, 46, 34, 92,110, 34, 41, 10, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,114,101,116,117,114, 110, 32, 34, 92,110, 34, 10, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 32, 32,101,110,100, 41, 10,101,110,100, 10, 10, 45, 45, 32,116,114, 97,110,115,108, 97,116,101, 32,118,101,114, 98, 97,116,105,109, 10,102,117,110, 99,116,105,111,110, 32, 99,108, 97,115,115, 80, 97, 99,107, 97,103,101, 58,112,114, 101, 97,109, 98,108,101, 32, 40, 41, 10, 32,111,117,116,112, 117,116, 40, 39, 47, 42, 92,110, 39, 41, 10, 32,111,117,116, 112,117,116, 40, 39, 42, 42, 32, 76,117, 97, 32, 98,105,110, 100,105,110,103, 58, 32, 39, 46, 46,115,101,108,102, 46,110, 97,109,101, 46, 46, 39, 92,110, 39, 41, 10, 32,111,117,116, 112,117,116, 40, 39, 42, 42, 32, 71,101,110,101,114, 97,116, 101,100, 32, 97,117,116,111,109, 97,116,105, 99, 97,108,108, 121, 32, 98,121, 32, 39, 46, 46, 84, 79, 76, 85, 65, 95, 86, 69, 82, 83, 73, 79, 78, 46, 46, 39, 32,111,110, 32, 39, 46, 46,100, 97,116,101, 40, 41, 46, 46, 39, 46, 92,110, 39, 41, 10, 32,111,117,116,112,117,116, 40, 39, 42, 47, 92,110, 92, 110, 39, 41, 10, 10, 9,111,117,116,112,117,116, 40, 39, 35, 105,102,110,100,101,102, 32, 95, 95, 99,112,108,117,115,112, 108,117,115, 92,110, 39, 41, 10, 9,111,117,116,112,117,116, 40, 39, 35,105,110, 99,108,117,100,101, 32, 34,115,116,100, 108,105, 98, 46,104, 34, 92,110, 39, 41, 10, 9,111,117,116, 112,117,116, 40, 39, 35,101,110,100,105,102, 92,110, 39, 41, 10, 9,111,117,116,112,117,116, 40, 39, 35,105,110, 99,108, 117,100,101, 32, 34,115,116,114,105,110,103, 46,104, 34, 92, 110, 92,110, 39, 41, 10, 32,111,117,116,112,117,116, 40, 39, 35,105,110, 99,108,117,100,101, 32, 34,116,111,108,117, 97, 43, 43, 46,104, 34, 92,110, 92,110, 39, 41, 10, 10, 32,105, 102, 32,110,111,116, 32,102,108, 97,103,115, 46,104, 32,116, 104,101,110, 10, 32, 32,111,117,116,112,117,116, 40, 39, 47, 42, 32, 69,120,112,111,114,116,101,100, 32,102,117,110, 99, 116,105,111,110, 32, 42, 47, 39, 41, 10, 32, 32,111,117,116, 112,117,116, 40, 39, 84, 79, 76, 85, 65, 95, 65, 80, 73, 32, 105,110,116, 32, 32,116,111,108,117, 97, 95, 39, 46, 46,115, 101,108,102, 46,110, 97,109,101, 46, 46, 39, 95,111,112,101, 110, 32, 40,108,117, 97, 95, 83,116, 97,116,101, 42, 32,116, 111,108,117, 97, 95, 83, 41, 59, 39, 41, 10, 32, 32,111,117, 116,112,117,116, 40, 39, 92,110, 39, 41, 10, 32,101,110,100, 10, 10, 32,108,111, 99, 97,108, 32,105, 61, 49, 10, 32,119, 104,105,108,101, 32,115,101,108,102, 91,105, 93, 32,100,111, 10, 32, 32,115,101,108,102, 91,105, 93, 58,112,114,101, 97, 109, 98,108,101, 40, 41, 10, 32, 32,105, 32, 61, 32,105, 43, 49, 10, 32,101,110,100, 10, 10, 9,105,102, 32,115,101,108, 102, 58,114,101,113,117,105,114,101, 99,111,108,108,101, 99, 116,105,111,110, 40, 95, 99,111,108,108,101, 99,116, 41, 32, 116,104,101,110, 10, 9, 9,111,117,116,112,117,116, 40, 39, 92,110, 39, 41, 10, 9, 9,111,117,116,112,117,116, 40, 39, 47, 42, 32,102,117,110, 99,116,105,111,110, 32,116,111, 32, 114,101,108,101, 97,115,101, 32, 99,111,108,108,101, 99,116, 101,100, 32,111, 98,106,101, 99,116, 32,118,105, 97, 32,100, 101,115,116,114,117, 99,116,111,114, 32, 42, 47, 39, 41, 10, 9, 9,111,117,116,112,117,116, 40, 39, 35,105,102,100,101, 102, 32, 95, 95, 99,112,108,117,115,112,108,117,115, 92,110, 39, 41, 10, 9, 9,102,111,114, 32,105, 44,118, 32,105,110, 32,112, 97,105,114,115, 40, 95, 99,111,108,108,101, 99,116, 41, 32,100,111, 10, 9, 9, 32,111,117,116,112,117,116, 40, 39, 92,110,115,116, 97,116,105, 99, 32,105,110,116, 32, 39, 46, 46,118, 46, 46, 39, 32, 40,108,117, 97, 95, 83,116, 97, 116,101, 42, 32,116,111,108,117, 97, 95, 83, 41, 39, 41, 10, 9, 9, 9,111,117,116,112,117,116, 40, 39,123, 39, 41, 10, 9, 9, 9,111,117,116,112,117,116, 40, 39, 32, 39, 46, 46, 105, 46, 46, 39, 42, 32,115,101,108,102, 32, 61, 32, 40, 39, 46, 46,105, 46, 46, 39, 42, 41, 32,116,111,108,117, 97, 95, 116,111,117,115,101,114,116,121,112,101, 40,116,111,108,117, 97, 95, 83, 44, 49, 44, 48, 41, 59, 39, 41, 10, 9, 9, 9, 111,117,116,112,117,116, 40, 39, 9, 77,116,111,108,117, 97, 95,100,101,108,101,116,101, 40,115,101,108,102, 41, 59, 39, 41, 10, 9, 9, 9,111,117,116,112,117,116, 40, 39, 9,114, 101,116,117,114,110, 32, 48, 59, 39, 41, 10, 9, 9, 9,111, 117,116,112,117,116, 40, 39,125, 39, 41, 10, 9, 9,101,110, 100, 10, 9, 9,111,117,116,112,117,116, 40, 39, 35,101,110, 100,105,102, 92,110, 92,110, 39, 41, 10, 9,101,110,100, 10, 10, 32,111,117,116,112,117,116, 40, 39, 92,110, 39, 41, 10, 32,111,117,116,112,117,116, 40, 39, 47, 42, 32,102,117,110, 99,116,105,111,110, 32,116,111, 32,114,101,103,105,115,116, 101,114, 32,116,121,112,101, 32, 42, 47, 39, 41, 10, 32,111, 117,116,112,117,116, 40, 39,115,116, 97,116,105, 99, 32,118, 111,105,100, 32,116,111,108,117, 97, 95,114,101,103, 95,116, 121,112,101,115, 32, 40,108,117, 97, 95, 83,116, 97,116,101, 42, 32,116,111,108,117, 97, 95, 83, 41, 39, 41, 10, 32,111, 117,116,112,117,116, 40, 39,123, 39, 41, 10, 10, 9,105,102, 32,102,108, 97,103,115, 46,116, 32,116,104,101,110, 10, 9, 9,111,117,116,112,117,116, 40, 34, 35,105,102,110,100,101, 102, 32, 77,116,111,108,117, 97, 95,116,121,112,101,105,100, 92,110, 35,100,101,102,105,110,101, 32, 77,116,111,108,117, 97, 95,116,121,112,101,105,100, 40, 76, 44, 84, 73, 44, 84, 41, 92,110, 35,101,110,100,105,102, 92,110, 34, 41, 10, 9, 101,110,100, 10, 9,102,111,114,101, 97, 99,104, 40, 95,117, 115,101,114,116,121,112,101, 44,102,117,110, 99,116,105,111, 110, 40,110, 44,118, 41, 10, 9, 9,105,102, 32, 40,110,111, 116, 32, 95,103,108,111, 98, 97,108, 95, 99,108, 97,115,115, 101,115, 91,118, 93, 41, 32,111,114, 32, 95,103,108,111, 98, 97,108, 95, 99,108, 97,115,115,101,115, 91,118, 93, 58, 99, 104,101, 99,107, 95,112,117, 98,108,105, 99, 95, 97, 99, 99, 101,115,115, 40, 41, 32,116,104,101,110, 10, 9, 9, 9,111, 117,116,112,117,116, 40, 39, 32,116,111,108,117, 97, 95,117, 115,101,114,116,121,112,101, 40,116,111,108,117, 97, 95, 83, 44, 34, 39, 44,118, 44, 39, 34, 41, 59, 39, 41, 10, 9, 9, 9,105,102, 32,102,108, 97,103,115, 46,116, 32,116,104,101, 110, 10, 9, 9, 9, 9,111,117,116,112,117,116, 40, 39, 32, 77,116,111,108,117, 97, 95,116,121,112,101,105,100, 40,116, 111,108,117, 97, 95, 83, 44,116,121,112,101,105,100, 40, 39, 44,118, 44, 39, 41, 44, 32, 34, 39, 44,118, 44, 39, 34, 41, 59, 39, 41, 10, 9, 9, 9,101,110,100, 10, 9, 9,101,110, 100, 10, 9, 32,101,110,100, 41, 10, 32,111,117,116,112,117, 116, 40, 39,125, 39, 41, 10, 32,111,117,116,112,117,116, 40, 39, 92,110, 39, 41, 10,101,110,100, 10, 10, 45, 45, 32,114, 101,103,105,115,116,101,114, 32,112, 97, 99,107, 97,103,101, 10, 45, 45, 32,119,114,105,116,101, 32,112, 97, 99,107, 97, 103,101, 32,111,112,101,110, 32,102,117,110, 99,116,105,111, 110, 10,102,117,110, 99,116,105,111,110, 32, 99,108, 97,115, 115, 80, 97, 99,107, 97,103,101, 58,114,101,103,105,115,116, 101,114, 32, 40,112,114,101, 41, 10, 32,112,114,101, 32, 61, 32,112,114,101, 32,111,114, 32, 39, 39, 10, 32,112,117,115, 104, 40,115,101,108,102, 41, 10, 32,111,117,116,112,117,116, 40,112,114,101, 46, 46, 34, 47, 42, 32, 79,112,101,110, 32, 102,117,110, 99,116,105,111,110, 32, 42, 47, 34, 41, 10, 32, 111,117,116,112,117,116, 40,112,114,101, 46, 46, 34, 84, 79, 76, 85, 65, 95, 65, 80, 73, 32,105,110,116, 32,116,111,108, 117, 97, 95, 34, 46, 46,115,101,108,102, 46,110, 97,109,101, 46, 46, 34, 95,111,112,101,110, 32, 40,108,117, 97, 95, 83, 116, 97,116,101, 42, 32,116,111,108,117, 97, 95, 83, 41, 34, 41, 10, 32,111,117,116,112,117,116, 40,112,114,101, 46, 46, 34,123, 34, 41, 10, 32,111,117,116,112,117,116, 40,112,114, 101, 46, 46, 34, 32,116,111,108,117, 97, 95,111,112,101,110, 40,116,111,108,117, 97, 95, 83, 41, 59, 34, 41, 10, 32,111, 117,116,112,117,116, 40,112,114,101, 46, 46, 34, 32,116,111, 108,117, 97, 95,114,101,103, 95,116,121,112,101,115, 40,116, 111,108,117, 97, 95, 83, 41, 59, 34, 41, 10, 32,111,117,116, 112,117,116, 40,112,114,101, 46, 46, 34, 32,116,111,108,117, 97, 95,109,111,100,117,108,101, 40,116,111,108,117, 97, 95, 83, 44, 78, 85, 76, 76, 44, 34, 44,115,101,108,102, 58,104, 97,115,118, 97,114, 40, 41, 44, 34, 41, 59, 34, 41, 10, 32, 111,117,116,112,117,116, 40,112,114,101, 46, 46, 34, 32,116, 111,108,117, 97, 95, 98,101,103,105,110,109,111,100,117,108, 101, 40,116,111,108,117, 97, 95, 83, 44, 78, 85, 76, 76, 41, 59, 34, 41, 10, 32,108,111, 99, 97,108, 32,105, 61, 49, 10, 32,119,104,105,108,101, 32,115,101,108,102, 91,105, 93, 32, 100,111, 10, 32, 32,115,101,108,102, 91,105, 93, 58,114,101, 103,105,115,116,101,114, 40,112,114,101, 46, 46, 34, 32, 32, 34, 41, 10, 32, 32,105, 32, 61, 32,105, 43, 49, 10, 32,101, 110,100, 10, 32,111,117,116,112,117,116, 40,112,114,101, 46, 46, 34, 32,116,111,108,117, 97, 95,101,110,100,109,111,100, 117,108,101, 40,116,111,108,117, 97, 95, 83, 41, 59, 34, 41, 10, 32,111,117,116,112,117,116, 40,112,114,101, 46, 46, 34, 32,114,101,116,117,114,110, 32, 49, 59, 34, 41, 10, 32,111, 117,116,112,117,116, 40,112,114,101, 46, 46, 34,125, 34, 41, 10, 10, 32,111,117,116,112,117,116, 40, 34, 92,110, 92,110, 34, 41, 10, 32,111,117,116,112,117,116, 40, 34, 35,105,102, 32,100,101,102,105,110,101,100, 40, 76, 85, 65, 95, 86, 69, 82, 83, 73, 79, 78, 95, 78, 85, 77, 41, 32, 38, 38, 32, 76, 85, 65, 95, 86, 69, 82, 83, 73, 79, 78, 95, 78, 85, 77, 32, 62, 61, 32, 53, 48, 49, 92,110, 34, 41, 59, 10, 32,111,117, 116,112,117,116, 40,112,114,101, 46, 46, 34, 84, 79, 76, 85, 65, 95, 65, 80, 73, 32,105,110,116, 32,108,117, 97,111,112, 101,110, 95, 34, 46, 46,115,101,108,102, 46,110, 97,109,101, 46, 46, 34, 32, 40,108,117, 97, 95, 83,116, 97,116,101, 42, 32,116,111,108,117, 97, 95, 83, 41, 32,123, 34, 41, 10, 32, 111,117,116,112,117,116, 40,112,114,101, 46, 46, 34, 32,114, 101,116,117,114,110, 32,116,111,108,117, 97, 95, 34, 46, 46, 115,101,108,102, 46,110, 97,109,101, 46, 46, 34, 95,111,112, 101,110, 40,116,111,108,117, 97, 95, 83, 41, 59, 34, 41, 10, 32,111,117,116,112,117,116, 40,112,114,101, 46, 46, 34,125, 59, 34, 41, 10, 32,111,117,116,112,117,116, 40, 34, 35,101, 110,100,105,102, 92,110, 92,110, 34, 41, 10, 10, 9,112,111, 112, 40, 41, 10,101,110,100, 10, 10, 45, 45, 32,119,114,105, 116,101, 32,104,101, 97,100,101,114, 32,102,105,108,101, 10, 102,117,110, 99,116,105,111,110, 32, 99,108, 97,115,115, 80, 97, 99,107, 97,103,101, 58,104,101, 97,100,101,114, 32, 40, 41, 10, 32,111,117,116,112,117,116, 40, 39, 47, 42, 92,110, 39, 41, 32,111,117,116,112,117,116, 40, 39, 42, 42, 32, 76, 117, 97, 32, 98,105,110,100,105,110,103, 58, 32, 39, 46, 46, 115,101,108,102, 46,110, 97,109,101, 46, 46, 39, 92,110, 39, 41, 10, 32,111,117,116,112,117,116, 40, 39, 42, 42, 32, 71, 101,110,101,114, 97,116,101,100, 32, 97,117,116,111,109, 97, 116,105, 99, 97,108,108,121, 32, 98,121, 32, 39, 46, 46, 84, 79, 76, 85, 65, 95, 86, 69, 82, 83, 73, 79, 78, 46, 46, 39, 32,111,110, 32, 39, 46, 46,100, 97,116,101, 40, 41, 46, 46, 39, 46, 92,110, 39, 41, 10, 32,111,117,116,112,117,116, 40, 39, 42, 47, 92,110, 92,110, 39, 41, 10, 10, 32,105,102, 32, 110,111,116, 32,102,108, 97,103,115, 46,104, 32,116,104,101, 110, 10, 32, 32,111,117,116,112,117,116, 40, 39, 47, 42, 32, 69,120,112,111,114,116,101,100, 32,102,117,110, 99,116,105, 111,110, 32, 42, 47, 39, 41, 10, 32, 32,111,117,116,112,117, 116, 40, 39, 84, 79, 76, 85, 65, 95, 65, 80, 73, 32,105,110, 116, 32, 32,116,111,108,117, 97, 95, 39, 46, 46,115,101,108, 102, 46,110, 97,109,101, 46, 46, 39, 95,111,112,101,110, 32, 40,108,117, 97, 95, 83,116, 97,116,101, 42, 32,116,111,108, 117, 97, 95, 83, 41, 59, 39, 41, 10, 32, 32,111,117,116,112, 117,116, 40, 39, 92,110, 39, 41, 10, 32,101,110,100, 10,101, 110,100, 10, 10, 45, 45, 32, 73,110,116,101,114,110, 97,108, 32, 99,111,110,115,116,114,117, 99,116,111,114, 10,102,117, 110, 99,116,105,111,110, 32, 95, 80, 97, 99,107, 97,103,101, 32, 40,115,101,108,102, 41, 10, 32,115,101,116,109,101,116, 97,116, 97, 98,108,101, 40,115,101,108,102, 44, 99,108, 97, 115,115, 80, 97, 99,107, 97,103,101, 41, 10, 32,114,101,116, 117,114,110, 32,115,101,108,102, 10,101,110,100, 10, 10, 45, 45, 32, 80, 97,114,115,101, 32, 67, 32,104,101, 97,100,101, 114, 32,102,105,108,101, 32,119,105,116,104, 32,116,111,108, 117, 97, 32,100,105,114,101, 99,116,105,118,101,115, 10, 45, 45, 32, 42, 42, 42, 32, 84,104, 97,110,107,115, 32,116,111, 32, 65,114,105,101,108, 32, 77, 97,110,122,117,114, 32,102, 111,114, 32,102,105,120,105,110,103, 32, 98,117,103,115, 32, 105,110, 32,110,101,115,116,101,100, 32,100,105,114,101, 99, 116,105,118,101,115, 32, 42, 42, 42, 10,102,117,110, 99,116, 105,111,110, 32,101,120,116,114, 97, 99,116, 95, 99,111,100, 101, 40,102,110, 44,115, 41, 10, 9,108,111, 99, 97,108, 32, 99,111,100,101, 32, 61, 32, 39, 92,110, 36, 35,105,110, 99, 108,117,100,101, 32, 34, 39, 46, 46,102,110, 46, 46, 39, 34, 92,110, 39, 10, 9,115, 61, 32, 34, 92,110, 34, 32, 46, 46, 32,115, 32, 46, 46, 32, 34, 92,110, 34, 32, 45, 45, 32, 97, 100,100, 32, 98,108, 97,110,107, 32,108,105,110,101,115, 32, 97,115, 32,115,101,110,116,105,110,101,108,115, 10, 9,108, 111, 99, 97,108, 32, 95, 44,101, 44, 99, 44,116, 32, 61, 32, 115,116,114,102,105,110,100, 40,115, 44, 32, 34, 92,110, 40, 91, 94, 92,110, 93, 45, 41, 91, 84,116, 93, 91, 79,111, 93, 91, 76,108, 93, 91, 85,117, 93, 91, 65, 97, 93, 95, 40, 91, 94, 37,115, 93, 42, 41, 91, 94, 92,110, 93, 42, 92,110, 34, 41, 10, 9,119,104,105,108,101, 32,101, 32,100,111, 10, 9, 9,116, 32, 61, 32,115,116,114,108,111,119,101,114, 40,116, 41, 10, 9, 9,105,102, 32,116, 32, 61, 61, 32, 34, 98,101, 103,105,110, 34, 32,116,104,101,110, 10, 9, 9, 9, 95, 44, 101, 44, 99, 32, 61, 32,115,116,114,102,105,110,100, 40,115, 44, 34, 40, 46, 45, 41, 92,110, 91, 94, 92,110, 93, 42, 91, 84,116, 93, 91, 79,111, 93, 91, 76,108, 93, 91, 85,117, 93, 91, 65, 97, 93, 95, 91, 69,101, 93, 91, 78,110, 93, 91, 68, 100, 93, 91, 94, 92,110, 93, 42, 92,110, 34, 44,101, 41, 10, 9, 9, 9,105,102, 32,110,111,116, 32,101, 32,116,104,101, 110, 10, 9, 9, 9, 32,116,111,108,117, 97, 95,101,114,114, 111,114, 40, 34, 85,110, 98, 97,108, 97,110, 99,101,100, 32, 39,116,111,108,117, 97, 95, 98,101,103,105,110, 39, 32,100, 105,114,101, 99,116,105,118,101, 32,105,110, 32,104,101, 97, 100,101,114, 32,102,105,108,101, 34, 41, 10, 9, 9, 9,101, 110,100, 10, 9, 9,101,110,100, 10, 9, 9, 99,111,100,101, 32, 61, 32, 99,111,100,101, 32, 46, 46, 32, 99, 32, 46, 46, 32, 34, 92,110, 34, 10, 9, 32, 95, 44,101, 44, 99, 44,116, 32, 61, 32,115,116,114,102,105,110,100, 40,115, 44, 32, 34, 92,110, 40, 91, 94, 92,110, 93, 45, 41, 91, 84,116, 93, 91, 79,111, 93, 91, 76,108, 93, 91, 85,117, 93, 91, 65, 97, 93, 95, 40, 91, 94, 37,115, 93, 42, 41, 91, 94, 92,110, 93, 42, 92,110, 34, 44,101, 41, 10, 9,101,110,100, 10, 9,114,101, 116,117,114,110, 32, 99,111,100,101, 10,101,110,100, 10, 10, 45, 45, 32, 67,111,110,115,116,114,117, 99,116,111,114, 10, 45, 45, 32, 69,120,112,101, 99,116,115, 32,116,104,101, 32, 112, 97, 99,107, 97,103,101, 32,110, 97,109,101, 44, 32,116, 104,101, 32,102,105,108,101, 32,101,120,116,101,110,115,105, 111,110, 44, 32, 97,110,100, 32,116,104,101, 32,102,105,108, 101, 32,116,101,120,116, 46, 10,102,117,110, 99,116,105,111, 110, 32, 80, 97, 99,107, 97,103,101, 32, 40,110, 97,109,101, 44,102,110, 41, 10, 32,108,111, 99, 97,108, 32,101,120,116, 32, 61, 32, 34,112,107,103, 34, 10, 10, 32, 45, 45, 32,111, 112,101,110, 32,105,110,112,117,116, 32,102,105,108,101, 44, 32,105,102, 32, 97,110,121, 10, 32,108,111, 99, 97,108, 32, 115,116, 44,109,115,103, 10, 32,105,102, 32,102,110, 32,116, 104,101,110, 10, 32, 32,115,116, 44, 32,109,115,103, 32, 61, 32,114,101, 97,100,102,114,111,109, 40,102,108, 97,103,115, 46,102, 41, 10, 32, 32,105,102, 32,110,111,116, 32,115,116, 32,116,104,101,110, 10, 32, 32, 32,101,114,114,111,114, 40, 39, 35, 39, 46, 46,109,115,103, 41, 10, 32, 32,101,110,100, 10, 32, 32,108,111, 99, 97,108, 32, 95, 59, 32, 95, 44, 32, 95, 44, 32,101,120,116, 32, 61, 32,115,116,114,102,105,110, 100, 40,102,110, 44, 34, 46, 42, 37, 46, 40, 46, 42, 41, 36, 34, 41, 10, 32,101,110,100, 10, 32,108,111, 99, 97,108, 32, 99,111,100,101, 10, 32,105,102, 32,101,120,116, 32, 61, 61, 32, 39,112,107,103, 39, 32,116,104,101,110, 10, 32, 32, 99, 111,100,101, 32, 61, 32,112,114,101,112, 40,115,116, 41, 10, 32,101,108,115,101, 10, 32, 32, 99,111,100,101, 32, 61, 32, 34, 92,110, 34, 32, 46, 46, 32,114,101, 97,100, 40, 39, 42, 97, 39, 41, 10, 32, 32,105,102, 32,101,120,116, 32, 61, 61, 32, 39,104, 39, 32,111,114, 32,101,120,116, 32, 61, 61, 32, 39,104,112,112, 39, 32,116,104,101,110, 10, 32, 32, 32, 99, 111,100,101, 32, 61, 32,101,120,116,114, 97, 99,116, 95, 99, 111,100,101, 40,102,110, 44, 99,111,100,101, 41, 10, 32, 32, 101,110,100, 10, 32,101,110,100, 10, 10, 32, 45, 45, 32, 99, 108,111,115,101, 32,102,105,108,101, 10, 32,105,102, 32,102, 110, 32,116,104,101,110, 10, 32, 32,114,101, 97,100,102,114, 111,109, 40, 41, 10, 32,101,110,100, 10, 10, 32, 45, 45, 32, 100,101, 97,108, 32,119,105,116,104, 32,105,110, 99,108,117, 100,101, 32,100,105,114,101, 99,116,105,118,101, 10, 32,108, 111, 99, 97,108, 32,110,115,117, 98,115,116, 10, 32,114,101, 112,101, 97,116, 10, 32, 32, 99,111,100,101, 44,110,115,117, 98,115,116, 32, 61, 32,103,115,117, 98, 40, 99,111,100,101, 44, 39, 92,110, 37,115, 42, 37, 36, 40, 46, 41,102,105,108, 101, 37,115, 42, 34, 40, 46, 45, 41, 34, 40, 91, 94, 92,110, 93, 42, 41, 92,110, 39, 44, 10, 9, 9,102,117,110, 99,116, 105,111,110, 32, 40,107,105,110,100, 44,102,110, 44,101,120, 116,114, 97, 41, 10, 9, 9, 9,108,111, 99, 97,108, 32, 95, 44, 32, 95, 44, 32,101,120,116, 32, 61, 32,115,116,114,102, 105,110,100, 40,102,110, 44, 34, 46, 42, 37, 46, 40, 46, 42, 41, 36, 34, 41, 10, 9, 9, 9,108,111, 99, 97,108, 32,102, 112, 44,109,115,103, 32, 61, 32,111,112,101,110,102,105,108, 101, 40,102,110, 44, 39,114, 39, 41, 10, 9, 9, 9,105,102, 32,110,111,116, 32,102,112, 32,116,104,101,110, 10, 9, 9, 9, 9,101,114,114,111,114, 40, 39, 35, 39, 46, 46,109,115, 103, 46, 46, 39, 58, 32, 39, 46, 46,102,110, 41, 10, 9, 9, 9,101,110,100, 10, 9, 9, 9,105,102, 32,107,105,110,100, 32, 61, 61, 32, 39,112, 39, 32,116,104,101,110, 10, 9, 9, 9, 9,108,111, 99, 97,108, 32,115, 32, 61, 32,112,114,101, 112, 40,102,112, 41, 10, 9, 9, 9, 9, 99,108,111,115,101, 102,105,108,101, 40,102,112, 41, 10, 9, 9, 9, 9,114,101, 116,117,114,110, 32,115, 10, 9, 9, 9,101,110,100, 10, 9, 9, 9,108,111, 99, 97,108, 32,115, 32, 61, 32,114,101, 97, 100, 40,102,112, 44, 39, 42, 97, 39, 41, 10, 9, 9, 9, 99, 108,111,115,101,102,105,108,101, 40,102,112, 41, 10, 9, 9, 9,105,102, 32,107,105,110,100, 32, 61, 61, 32, 39, 99, 39, 32,111,114, 32,107,105,110,100, 32, 61, 61, 32, 39,104, 39, 32,116,104,101,110, 10, 9, 9, 9, 9,114,101,116,117,114, 110, 32,101,120,116,114, 97, 99,116, 95, 99,111,100,101, 40, 102,110, 44,115, 41, 10, 9, 9, 9,101,108,115,101,105,102, 32,107,105,110,100, 32, 61, 61, 32, 39,108, 39, 32,116,104, 101,110, 10, 9, 9, 9, 9,114,101,116,117,114,110, 32, 34, 92,110, 36, 91, 45, 45, 35, 35, 34, 46, 46,102,110, 46, 46, 34, 92,110, 34, 32, 46, 46, 32,115, 32, 46, 46, 32, 34, 92, 110, 36, 93, 92,110, 34, 10, 9, 9, 9,101,108,115,101,105, 102, 32,107,105,110,100, 32, 61, 61, 32, 39,105, 39, 32,116, 104,101,110, 10, 9, 9, 9, 9,108,111, 99, 97,108, 32,116, 32, 61, 32,123, 99,111,100,101, 61,115,125, 10, 9, 9, 9, 9,101,120,116,114, 97, 32, 61, 32,115,116,114,105,110,103, 46,103,115,117, 98, 40,101,120,116,114, 97, 44, 32, 34, 94, 37,115, 42, 44, 37,115, 42, 34, 44, 32, 34, 34, 41, 10, 9, 9, 9, 9,108,111, 99, 97,108, 32,112, 97,114,115, 32, 61, 32,115,112,108,105,116, 95, 99, 95,116,111,107,101,110,115, 40,101,120,116,114, 97, 44, 32, 34, 44, 34, 41, 10, 9, 9, 9, 9,105,110, 99,108,117,100,101, 95,102,105,108,101, 95, 104,111,111,107, 40,116, 44, 32,102,110, 44, 32,117,110,112, 97, 99,107, 40,112, 97,114,115, 41, 41, 10, 9, 9, 9, 9, 114,101,116,117,114,110, 32, 34, 92,110, 92,110, 34, 32, 46, 46, 32,116, 46, 99,111,100,101, 10, 9, 9, 9,101,108,115, 101, 10, 9, 9, 9, 9,101,114,114,111,114, 40, 39, 35, 73, 110,118, 97,108,105,100, 32,105,110, 99,108,117,100,101, 32, 100,105,114,101, 99,116,105,118,101, 32, 40,117,115,101, 32, 36, 99,102,105,108,101, 44, 32, 36,112,102,105,108,101, 44, 32, 36,108,102,105,108,101, 32,111,114, 32, 36,105,102,105, 108,101, 41, 39, 41, 10, 9, 9, 9,101,110,100, 10, 9, 9, 101,110,100, 41, 10, 32,117,110,116,105,108, 32,110,115,117, 98,115,116, 61, 61, 48, 10, 10, 32, 45, 45, 32,100,101, 97, 108, 32,119,105,116,104, 32,114,101,110, 97,109,105,110,103, 32,100,105,114,101, 99,116,105,118,101, 10, 32,114,101,112, 101, 97,116, 32, 45, 45, 32, 73, 32,100,111,110, 39,116, 32, 107,110,111,119, 32,119,104,121, 32,116,104,105,115, 32,105, 115, 32,110,101, 99,101,115, 97,114,121, 10, 9, 99,111,100, 101, 44,110,115,117, 98,115,116, 32, 61, 32,103,115,117, 98, 40, 99,111,100,101, 44, 39, 92,110, 37,115, 42, 37, 36,114, 101,110, 97,109,105,110,103, 37,115, 42, 40, 46, 45, 41, 37, 115, 42, 92,110, 39, 44, 32,102,117,110, 99,116,105,111,110, 32, 40,114, 41, 32, 97,112,112,101,110,100,114,101,110, 97, 109,105,110,103, 40,114, 41, 32,114,101,116,117,114,110, 32, 34, 92,110, 34, 32,101,110,100, 41, 10, 32,117,110,116,105, 108, 32,110,115,117, 98,115,116, 32, 61, 61, 32, 48, 10, 10, 32,108,111, 99, 97,108, 32,116, 32, 61, 32, 95, 80, 97, 99, 107, 97,103,101, 40, 95, 67,111,110,116, 97,105,110,101,114, 123,110, 97,109,101, 61,110, 97,109,101, 44, 32, 99,111,100, 101, 61, 99,111,100,101,125, 41, 10, 32,112,117,115,104, 40, 116, 41, 10, 32,112,114,101,112,114,111, 99,101,115,115, 95, 104,111,111,107, 40,116, 41, 10, 32,116, 58,112,114,101,112, 114,111, 99,101,115,115, 40, 41, 10, 32,112,114,101,112, 97, 114,115,101, 95,104,111,111,107, 40,116, 41, 10, 32,116, 58, 112, 97,114,115,101, 40,116, 46, 99,111,100,101, 41, 10, 32, 112,111,112, 40, 41, 10, 32,114,101,116,117,114,110, 32,116, 10,101,110,100, 10, 10, 10,115,101,116,109,101,116, 97,116, 97, 98,108,101, 40, 95,101,120,116,114, 97, 95,112, 97,114, 97,109,101,116,101,114,115, 44, 32,123, 32, 95, 95,105,110, 100,101,120, 32, 61, 32, 95, 71, 32,125, 41, 10, 10,102,117, 110, 99,116,105,111,110, 32,112,114,101,112, 40,102,105,108, 101, 41, 10, 10, 32, 32,108,111, 99, 97,108, 32, 99,104,117, 110,107, 32, 61, 32,123, 39,108,111, 99, 97,108, 32, 95, 95, 114,101,116, 32, 61, 32,123, 34, 92, 92,110, 34,125, 92,110, 39,125, 10, 32, 32,102,111,114, 32,108,105,110,101, 32,105, 110, 32,102,105,108,101, 58,108,105,110,101,115, 40, 41, 32, 100,111, 10, 32, 32, 32, 32, 32,105,102, 32,115,116,114,105, 110,103, 46,102,105,110,100, 40,108,105,110,101, 44, 32, 34, 94, 35, 35, 34, 41, 32,116,104,101,110, 10, 32, 32, 32, 32, 32, 32,116, 97, 98,108,101, 46,105,110,115,101,114,116, 40, 99,104,117,110,107, 44, 32,115,116,114,105,110,103, 46,115, 117, 98, 40,108,105,110,101, 44, 32, 51, 41, 32, 46, 46, 32, 34, 92,110, 34, 41, 10, 32, 32, 32, 32, 32,101,108,115,101, 10, 32, 32, 32, 32, 32, 32,108,111, 99, 97,108, 32,108, 97, 115,116, 32, 61, 32, 49, 10, 32, 32, 32, 32, 32, 32,102,111, 114, 32,116,101,120,116, 44, 32,101,120,112,114, 44, 32,105, 110,100,101,120, 32,105,110, 32,115,116,114,105,110,103, 46, 103,102,105,110,100, 40,108,105,110,101, 44, 32, 34, 40, 46, 45, 41, 36, 40, 37, 98, 40, 41, 41, 40, 41, 34, 41, 32,100, 111, 32, 10, 32, 32, 32, 32, 32, 32, 32, 32,108, 97,115,116, 32, 61, 32,105,110,100,101,120, 10, 32, 32, 32, 32, 32, 32, 32, 32,105,102, 32,116,101,120,116, 32,126, 61, 32, 34, 34, 32,116,104,101,110, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32,116, 97, 98,108,101, 46,105,110,115,101,114,116, 40, 99, 104,117,110,107, 44, 32,115,116,114,105,110,103, 46,102,111, 114,109, 97,116, 40, 39,116, 97, 98,108,101, 46,105,110,115, 101,114,116, 40, 95, 95,114,101,116, 44, 32, 37,113, 32, 41, 39, 44, 32,116,101,120,116, 41, 41, 10, 32, 32, 32, 32, 32, 32, 32, 32,101,110,100, 10, 32, 32, 32, 32, 32, 32, 32, 32, 116, 97, 98,108,101, 46,105,110,115,101,114,116, 40, 99,104, 117,110,107, 44, 32,115,116,114,105,110,103, 46,102,111,114, 109, 97,116, 40, 39,116, 97, 98,108,101, 46,105,110,115,101, 114,116, 40, 95, 95,114,101,116, 44, 32, 37,115, 32, 41, 39, 44, 32,101,120,112,114, 41, 41, 10, 32, 32, 32, 32, 32, 32, 101,110,100, 10, 32, 32, 32, 32, 32, 32,116, 97, 98,108,101, 46,105,110,115,101,114,116, 40, 99,104,117,110,107, 44, 32, 115,116,114,105,110,103, 46,102,111,114,109, 97,116, 40, 39, 116, 97, 98,108,101, 46,105,110,115,101,114,116, 40, 95, 95, 114,101,116, 44, 32, 37,113, 41, 92,110, 39, 44, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32,115,116,114,105,110,103, 46,115,117, 98, 40,108,105,110,101, 44, 32,108, 97,115,116, 41, 46, 46, 34, 92,110, 34, 41, 41, 10, 32, 32, 32, 32,101, 110,100, 10, 32, 32,101,110,100, 10, 32, 32,116, 97, 98,108, 101, 46,105,110,115,101,114,116, 40, 99,104,117,110,107, 44, 32, 39, 92,110,114,101,116,117,114,110, 32,116, 97, 98,108, 101, 46, 99,111,110, 99, 97,116, 40, 95, 95,114,101,116, 41, 92,110, 39, 41, 10, 32, 32,108,111, 99, 97,108, 32,102, 44, 101, 32, 61, 32,108,111, 97,100,115,116,114,105,110,103, 40, 116, 97, 98,108,101, 46, 99,111,110, 99, 97,116, 40, 99,104, 117,110,107, 41, 41, 10, 32, 32,105,102, 32,101, 32,116,104, 101,110, 10, 32, 32, 9,101,114,114,111,114, 40, 34, 35, 34, 46, 46,101, 41, 10, 32, 32,101,110,100, 10, 32, 32,115,101, 116,102,101,110,118, 40,102, 44, 32, 95,101,120,116,114, 97, 95,112, 97,114, 97,109,101,116,101,114,115, 41, 10, 32, 32, 114,101,116,117,114,110, 32,102, 40, 41, 10,101,110,100,32 }; tolua_dobuffer(tolua_S,(char*)B,sizeof(B),"tolua embedded: lua/tolua++/src/bin/lua/package.lua"); lua_settop(tolua_S, top); } /* end of embedded lua code */ { /* begin embedded lua code */ int top = lua_gettop(tolua_S); static unsigned char B[] = { 45, 45, 32,116,111,108,117, 97, 58, 32,109,111,100,117,108, 101, 32, 99,108, 97,115,115, 10, 45, 45, 32, 87,114,105,116, 116,101,110, 32, 98,121, 32, 87, 97,108,100,101,109, 97,114, 32, 67,101,108,101,115, 10, 45, 45, 32, 84,101, 67, 71,114, 97,102, 47, 80, 85, 67, 45, 82,105,111, 10, 45, 45, 32, 74, 117,108, 32, 49, 57, 57, 56, 10, 45, 45, 32, 36, 73,100, 58, 32, 36, 10, 10, 45, 45, 32, 84,104,105,115, 32, 99,111,100, 101, 32,105,115, 32,102,114,101,101, 32,115,111,102,116,119, 97,114,101, 59, 32,121,111,117, 32, 99, 97,110, 32,114,101, 100,105,115,116,114,105, 98,117,116,101, 32,105,116, 32, 97, 110,100, 47,111,114, 32,109,111,100,105,102,121, 32,105,116, 46, 10, 45, 45, 32, 84,104,101, 32,115,111,102,116,119, 97, 114,101, 32,112,114,111,118,105,100,101,100, 32,104,101,114, 101,117,110,100,101,114, 32,105,115, 32,111,110, 32, 97,110, 32, 34, 97,115, 32,105,115, 34, 32, 98, 97,115,105,115, 44, 32, 97,110,100, 10, 45, 45, 32,116,104,101, 32, 97,117,116, 104,111,114, 32,104, 97,115, 32,110,111, 32,111, 98,108,105, 103, 97,116,105,111,110, 32,116,111, 32,112,114,111,118,105, 100,101, 32,109, 97,105,110,116,101,110, 97,110, 99,101, 44, 32,115,117,112,112,111,114,116, 44, 32,117,112,100, 97,116, 101,115, 44, 10, 45, 45, 32,101,110,104, 97,110, 99,101,109, 101,110,116,115, 44, 32,111,114, 32,109,111,100,105,102,105, 99, 97,116,105,111,110,115, 46, 10, 10, 10, 10, 45, 45, 32, 77,111,100,117,108,101, 32, 99,108, 97,115,115, 10, 45, 45, 32, 82,101,112,114,101,115,101,110,116,115, 32,109,111,100, 117,108,101, 46, 10, 45, 45, 32, 84,104,101, 32,102,111,108, 108,111,119,105,110,103, 32,102,105,101,108,100,115, 32, 97, 114,101, 32,115,116,111,114,101,100, 58, 10, 45, 45, 32, 32, 32, 32,123,105,125, 32, 61, 32,108,105,115,116, 32,111,102, 32,111, 98,106,101, 99,116,115, 32,105,110, 32,116,104,101, 32,109,111,100,117,108,101, 46, 10, 99,108, 97,115,115, 77, 111,100,117,108,101, 32, 61, 32,123, 10, 32, 99,108, 97,115, 115,116,121,112,101, 32, 61, 32, 39,109,111,100,117,108,101, 39, 10,125, 10, 99,108, 97,115,115, 77,111,100,117,108,101, 46, 95, 95,105,110,100,101,120, 32, 61, 32, 99,108, 97,115, 115, 77,111,100,117,108,101, 10,115,101,116,109,101,116, 97, 116, 97, 98,108,101, 40, 99,108, 97,115,115, 77,111,100,117, 108,101, 44, 99,108, 97,115,115, 67,111,110,116, 97,105,110, 101,114, 41, 10, 10, 45, 45, 32,114,101,103,105,115,116,101, 114, 32,109,111,100,117,108,101, 10,102,117,110, 99,116,105, 111,110, 32, 99,108, 97,115,115, 77,111,100,117,108,101, 58, 114,101,103,105,115,116,101,114, 32, 40,112,114,101, 41, 10, 32,112,114,101, 32, 61, 32,112,114,101, 32,111,114, 32, 39, 39, 10, 32,112,117,115,104, 40,115,101,108,102, 41, 10, 32, 111,117,116,112,117,116, 40,112,114,101, 46, 46, 39,116,111, 108,117, 97, 95,109,111,100,117,108,101, 40,116,111,108,117, 97, 95, 83, 44, 34, 39, 46, 46,115,101,108,102, 46,110, 97, 109,101, 46, 46, 39, 34, 44, 39, 44,115,101,108,102, 58,104, 97,115,118, 97,114, 40, 41, 44, 39, 41, 59, 39, 41, 10, 32, 111,117,116,112,117,116, 40,112,114,101, 46, 46, 39,116,111, 108,117, 97, 95, 98,101,103,105,110,109,111,100,117,108,101, 40,116,111,108,117, 97, 95, 83, 44, 34, 39, 46, 46,115,101, 108,102, 46,110, 97,109,101, 46, 46, 39, 34, 41, 59, 39, 41, 10, 32,108,111, 99, 97,108, 32,105, 61, 49, 10, 32,119,104, 105,108,101, 32,115,101,108,102, 91,105, 93, 32,100,111, 10, 32, 32,115,101,108,102, 91,105, 93, 58,114,101,103,105,115, 116,101,114, 40,112,114,101, 46, 46, 39, 32, 39, 41, 10, 32, 32,105, 32, 61, 32,105, 43, 49, 10, 32,101,110,100, 10, 32, 111,117,116,112,117,116, 40,112,114,101, 46, 46, 39,116,111, 108,117, 97, 95,101,110,100,109,111,100,117,108,101, 40,116, 111,108,117, 97, 95, 83, 41, 59, 39, 41, 10, 9,112,111,112, 40, 41, 10,101,110,100, 10, 10, 45, 45, 32, 80,114,105,110, 116, 32,109,101,116,104,111,100, 10,102,117,110, 99,116,105, 111,110, 32, 99,108, 97,115,115, 77,111,100,117,108,101, 58, 112,114,105,110,116, 32, 40,105,100,101,110,116, 44, 99,108, 111,115,101, 41, 10, 32,112,114,105,110,116, 40,105,100,101, 110,116, 46, 46, 34, 77,111,100,117,108,101,123, 34, 41, 10, 32,112,114,105,110,116, 40,105,100,101,110,116, 46, 46, 34, 32,110, 97,109,101, 32, 61, 32, 39, 34, 46, 46,115,101,108, 102, 46,110, 97,109,101, 46, 46, 34, 39, 59, 34, 41, 10, 32, 108,111, 99, 97,108, 32,105, 61, 49, 10, 32,119,104,105,108, 101, 32,115,101,108,102, 91,105, 93, 32,100,111, 10, 32, 32, 115,101,108,102, 91,105, 93, 58,112,114,105,110,116, 40,105, 100,101,110,116, 46, 46, 34, 32, 34, 44, 34, 44, 34, 41, 10, 32, 32,105, 32, 61, 32,105, 43, 49, 10, 32,101,110,100, 10, 32,112,114,105,110,116, 40,105,100,101,110,116, 46, 46, 34, 125, 34, 46, 46, 99,108,111,115,101, 41, 10,101,110,100, 10, 10, 45, 45, 32, 73,110,116,101,114,110, 97,108, 32, 99,111, 110,115,116,114,117, 99,116,111,114, 10,102,117,110, 99,116, 105,111,110, 32, 95, 77,111,100,117,108,101, 32, 40,116, 41, 10, 32,115,101,116,109,101,116, 97,116, 97, 98,108,101, 40, 116, 44, 99,108, 97,115,115, 77,111,100,117,108,101, 41, 10, 32, 97,112,112,101,110,100, 40,116, 41, 10, 32,114,101,116, 117,114,110, 32,116, 10,101,110,100, 10, 10, 45, 45, 32, 67, 111,110,115,116,114,117, 99,116,111,114, 10, 45, 45, 32, 69, 120,112,101, 99,116,115, 32,116,119,111, 32,115,116,114,105, 110,103, 32,114,101,112,114,101,115,101,110,116,105,110,103, 32,116,104,101, 32,109,111,100,117,108,101, 32,110, 97,109, 101, 32, 97,110,100, 32, 98,111,100,121, 46, 10,102,117,110, 99,116,105,111,110, 32, 77,111,100,117,108,101, 32, 40,110, 44, 98, 41, 10, 32,108,111, 99, 97,108, 32,116, 32, 61, 32, 95, 77,111,100,117,108,101, 40, 95, 67,111,110,116, 97,105, 110,101,114,123,110, 97,109,101, 61,110,125, 41, 10, 32,112, 117,115,104, 40,116, 41, 10, 32,116, 58,112, 97,114,115,101, 40,115,116,114,115,117, 98, 40, 98, 44, 50, 44,115,116,114, 108,101,110, 40, 98, 41, 45, 49, 41, 41, 32, 45, 45, 32,101, 108,105,109,105,110, 97,116,101, 32, 98,114, 97, 99,101,115, 10, 32,112,111,112, 40, 41, 10, 32,114,101,116,117,114,110, 32,116, 10,101,110,100,32 }; tolua_dobuffer(tolua_S,(char*)B,sizeof(B),"tolua embedded: lua/tolua++/src/bin/lua/module.lua"); lua_settop(tolua_S, top); } /* end of embedded lua code */ { /* begin embedded lua code */ int top = lua_gettop(tolua_S); static unsigned char B[] = { 45, 45, 32,116,111,108,117, 97, 58, 32,110, 97,109,101,115, 112, 97, 99,101, 32, 99,108, 97,115,115, 10, 45, 45, 32, 87, 114,105,116,116,101,110, 32, 98,121, 32, 87, 97,108,100,101, 109, 97,114, 32, 67,101,108,101,115, 10, 45, 45, 32, 84,101, 67, 71,114, 97,102, 47, 80, 85, 67, 45, 82,105,111, 10, 45, 45, 32, 74,117,108, 32, 50, 48, 48, 51, 10, 45, 45, 32, 36, 73,100, 58, 32, 36, 10, 10, 45, 45, 32, 84,104,105,115, 32, 99,111,100,101, 32,105,115, 32,102,114,101,101, 32,115,111, 102,116,119, 97,114,101, 59, 32,121,111,117, 32, 99, 97,110, 32,114,101,100,105,115,116,114,105, 98,117,116,101, 32,105, 116, 32, 97,110,100, 47,111,114, 32,109,111,100,105,102,121, 32,105,116, 46, 10, 45, 45, 32, 84,104,101, 32,115,111,102, 116,119, 97,114,101, 32,112,114,111,118,105,100,101,100, 32, 104,101,114,101,117,110,100,101,114, 32,105,115, 32,111,110, 32, 97,110, 32, 34, 97,115, 32,105,115, 34, 32, 98, 97,115, 105,115, 44, 32, 97,110,100, 10, 45, 45, 32,116,104,101, 32, 97,117,116,104,111,114, 32,104, 97,115, 32,110,111, 32,111, 98,108,105,103, 97,116,105,111,110, 32,116,111, 32,112,114, 111,118,105,100,101, 32,109, 97,105,110,116,101,110, 97,110, 99,101, 44, 32,115,117,112,112,111,114,116, 44, 32,117,112, 100, 97,116,101,115, 44, 10, 45, 45, 32,101,110,104, 97,110, 99,101,109,101,110,116,115, 44, 32,111,114, 32,109,111,100, 105,102,105, 99, 97,116,105,111,110,115, 46, 10, 10, 10, 45, 45, 32, 78, 97,109,101,115,112, 97, 99,101, 32, 99,108, 97, 115,115, 10, 45, 45, 32, 82,101,112,114,101,115,101,110,116, 115, 32, 97, 32,110, 97,109,101,115, 97,112, 99,101, 32,100, 101,102,105,110,105,116,105,111,110, 46, 10, 45, 45, 32, 83, 116,111,114,101,115, 32,116,104,101, 32,102,111,108,108,111, 119,105,110,103, 32,102,105,101,108,100,115, 58, 10, 45, 45, 32, 32, 32, 32,110, 97,109,101, 32, 61, 32, 99,108, 97,115, 115, 32,110, 97,109,101, 10, 45, 45, 32, 32, 32, 32,123,105, 125, 32, 32, 61, 32,108,105,115,116, 32,111,102, 32,109,101, 109, 98,101,114,115, 10, 99,108, 97,115,115, 78, 97,109,101, 115,112, 97, 99,101, 32, 61, 32,123, 10, 32, 99,108, 97,115, 115,116,121,112,101, 32, 61, 32, 39,110, 97,109,101,115,112, 97, 99,101, 39, 44, 10, 32,110, 97,109,101, 32, 61, 32, 39, 39, 44, 10,125, 10, 99,108, 97,115,115, 78, 97,109,101,115, 112, 97, 99,101, 46, 95, 95,105,110,100,101,120, 32, 61, 32, 99,108, 97,115,115, 78, 97,109,101,115,112, 97, 99,101, 10, 115,101,116,109,101,116, 97,116, 97, 98,108,101, 40, 99,108, 97,115,115, 78, 97,109,101,115,112, 97, 99,101, 44, 99,108, 97,115,115, 77,111,100,117,108,101, 41, 10, 10, 45, 45, 32, 80,114,105,110,116, 32,109,101,116,104,111,100, 10,102,117, 110, 99,116,105,111,110, 32, 99,108, 97,115,115, 78, 97,109, 101,115,112, 97, 99,101, 58,112,114,105,110,116, 32, 40,105, 100,101,110,116, 44, 99,108,111,115,101, 41, 10, 32,112,114, 105,110,116, 40,105,100,101,110,116, 46, 46, 34, 78, 97,109, 101,115,112, 97, 99,101,123, 34, 41, 10, 32,112,114,105,110, 116, 40,105,100,101,110,116, 46, 46, 34, 32,110, 97,109,101, 32, 61, 32, 39, 34, 46, 46,115,101,108,102, 46,110, 97,109, 101, 46, 46, 34, 39, 44, 34, 41, 10, 32,108,111, 99, 97,108, 32,105, 61, 49, 10, 32,119,104,105,108,101, 32,115,101,108, 102, 91,105, 93, 32,100,111, 10, 32, 32,115,101,108,102, 91, 105, 93, 58,112,114,105,110,116, 40,105,100,101,110,116, 46, 46, 34, 32, 34, 44, 34, 44, 34, 41, 10, 32, 32,105, 32, 61, 32,105, 43, 49, 10, 32,101,110,100, 10, 32,112,114,105,110, 116, 40,105,100,101,110,116, 46, 46, 34,125, 34, 46, 46, 99, 108,111,115,101, 41, 10,101,110,100, 10, 10, 45, 45, 32, 73, 110,116,101,114,110, 97,108, 32, 99,111,110,115,116,114,117, 99,116,111,114, 10,102,117,110, 99,116,105,111,110, 32, 95, 78, 97,109,101,115,112, 97, 99,101, 32, 40,116, 41, 10, 32, 115,101,116,109,101,116, 97,116, 97, 98,108,101, 40,116, 44, 99,108, 97,115,115, 78, 97,109,101,115,112, 97, 99,101, 41, 10, 32, 97,112,112,101,110,100, 40,116, 41, 10, 32,114,101, 116,117,114,110, 32,116, 10,101,110,100, 10, 10, 45, 45, 32, 67,111,110,115,116,114,117, 99,116,111,114, 10, 45, 45, 32, 69,120,112,101, 99,116,115, 32,116,104,101, 32,110, 97,109, 101, 32, 97,110,100, 32,116,104,101, 32, 98,111,100,121, 32, 111,102, 32,116,104,101, 32,110, 97,109,101,115,112, 97, 99, 101, 46, 10,102,117,110, 99,116,105,111,110, 32, 78, 97,109, 101,115,112, 97, 99,101, 32, 40,110, 44, 98, 41, 10, 32,108, 111, 99, 97,108, 32, 99, 32, 61, 32, 95, 78, 97,109,101,115, 112, 97, 99,101, 40, 95, 67,111,110,116, 97,105,110,101,114, 123,110, 97,109,101, 61,110,125, 41, 10, 32,112,117,115,104, 40, 99, 41, 10, 32, 99, 58,112, 97,114,115,101, 40,115,116, 114,115,117, 98, 40, 98, 44, 50, 44,115,116,114,108,101,110, 40, 98, 41, 45, 49, 41, 41, 32, 45, 45, 32,101,108,105,109, 105,110, 97,116,101, 32, 98,114, 97, 99,101,115, 10, 32,112, 111,112, 40, 41, 10,101,110,100,32 }; tolua_dobuffer(tolua_S,(char*)B,sizeof(B),"tolua embedded: lua/tolua++/src/bin/lua/namespace.lua"); lua_settop(tolua_S, top); } /* end of embedded lua code */ { /* begin embedded lua code */ int top = lua_gettop(tolua_S); static unsigned char B[] = { 45, 45, 32,116,111,108,117, 97, 58, 32,100,101,102,105,110, 101, 32, 99,108, 97,115,115, 10, 45, 45, 32, 87,114,105,116, 116,101,110, 32, 98,121, 32, 87, 97,108,100,101,109, 97,114, 32, 67,101,108,101,115, 10, 45, 45, 32, 84,101, 67, 71,114, 97,102, 47, 80, 85, 67, 45, 82,105,111, 10, 45, 45, 32, 74, 117,108, 32, 49, 57, 57, 56, 10, 45, 45, 32, 36, 73,100, 58, 32,100,101,102,105,110,101, 46,108,117, 97, 44,118, 32, 49, 46, 50, 32, 49, 57, 57, 57, 47, 48, 55, 47, 50, 56, 32, 50, 50, 58, 50, 49, 58, 48, 56, 32, 99,101,108,101,115, 32, 69, 120,112, 32, 36, 10, 10, 45, 45, 32, 84,104,105,115, 32, 99, 111,100,101, 32,105,115, 32,102,114,101,101, 32,115,111,102, 116,119, 97,114,101, 59, 32,121,111,117, 32, 99, 97,110, 32, 114,101,100,105,115,116,114,105, 98,117,116,101, 32,105,116, 32, 97,110,100, 47,111,114, 32,109,111,100,105,102,121, 32, 105,116, 46, 10, 45, 45, 32, 84,104,101, 32,115,111,102,116, 119, 97,114,101, 32,112,114,111,118,105,100,101,100, 32,104, 101,114,101,117,110,100,101,114, 32,105,115, 32,111,110, 32, 97,110, 32, 34, 97,115, 32,105,115, 34, 32, 98, 97,115,105, 115, 44, 32, 97,110,100, 10, 45, 45, 32,116,104,101, 32, 97, 117,116,104,111,114, 32,104, 97,115, 32,110,111, 32,111, 98, 108,105,103, 97,116,105,111,110, 32,116,111, 32,112,114,111, 118,105,100,101, 32,109, 97,105,110,116,101,110, 97,110, 99, 101, 44, 32,115,117,112,112,111,114,116, 44, 32,117,112,100, 97,116,101,115, 44, 10, 45, 45, 32,101,110,104, 97,110, 99, 101,109,101,110,116,115, 44, 32,111,114, 32,109,111,100,105, 102,105, 99, 97,116,105,111,110,115, 46, 10, 10, 10, 45, 45, 32, 68,101,102,105,110,101, 32, 99,108, 97,115,115, 10, 45, 45, 32, 82,101,112,114,101,115,101,110,116,115, 32, 97, 32, 110,117,109,101,114,105, 99, 32, 99,111,110,115,116, 32,100, 101,102,105,110,105,116,105,111,110, 10, 45, 45, 32, 84,104, 101, 32,102,111,108,108,111,119,105,110,103, 32,102,105,108, 100,115, 32, 97,114,101, 32,115,116,111,114,101,100, 58, 10, 45, 45, 32, 32, 32,110, 97,109,101, 32, 61, 32, 99,111,110, 115,116, 97,110,116, 32,110, 97,109,101, 10, 99,108, 97,115, 115, 68,101,102,105,110,101, 32, 61, 32,123, 10, 32,110, 97, 109,101, 32, 61, 32, 39, 39, 44, 10,125, 10, 99,108, 97,115, 115, 68,101,102,105,110,101, 46, 95, 95,105,110,100,101,120, 32, 61, 32, 99,108, 97,115,115, 68,101,102,105,110,101, 10, 115,101,116,109,101,116, 97,116, 97, 98,108,101, 40, 99,108, 97,115,115, 68,101,102,105,110,101, 44, 99,108, 97,115,115, 70,101, 97,116,117,114,101, 41, 10, 10, 45, 45, 32,114,101, 103,105,115,116,101,114, 32,100,101,102,105,110,101, 10,102, 117,110, 99,116,105,111,110, 32, 99,108, 97,115,115, 68,101, 102,105,110,101, 58,114,101,103,105,115,116,101,114, 32, 40, 112,114,101, 41, 10, 9,105,102, 32,110,111,116, 32,115,101, 108,102, 58, 99,104,101, 99,107, 95,112,117, 98,108,105, 99, 95, 97, 99, 99,101,115,115, 40, 41, 32,116,104,101,110, 10, 9, 9,114,101,116,117,114,110, 10, 9,101,110,100, 10, 10, 32,112,114,101, 32, 61, 32,112,114,101, 32,111,114, 32, 39, 39, 10, 32,111,117,116,112,117,116, 40,112,114,101, 46, 46, 39,116,111,108,117, 97, 95, 99,111,110,115,116, 97,110,116, 40,116,111,108,117, 97, 95, 83, 44, 34, 39, 46, 46,115,101, 108,102, 46,108,110, 97,109,101, 46, 46, 39, 34, 44, 39, 46, 46,115,101,108,102, 46,110, 97,109,101, 46, 46, 39, 41, 59, 39, 41, 10,101,110,100, 10, 10, 45, 45, 32, 80,114,105,110, 116, 32,109,101,116,104,111,100, 10,102,117,110, 99,116,105, 111,110, 32, 99,108, 97,115,115, 68,101,102,105,110,101, 58, 112,114,105,110,116, 32, 40,105,100,101,110,116, 44, 99,108, 111,115,101, 41, 10, 32,112,114,105,110,116, 40,105,100,101, 110,116, 46, 46, 34, 68,101,102,105,110,101,123, 34, 41, 10, 32,112,114,105,110,116, 40,105,100,101,110,116, 46, 46, 34, 32,110, 97,109,101, 32, 61, 32, 39, 34, 46, 46,115,101,108, 102, 46,110, 97,109,101, 46, 46, 34, 39, 44, 34, 41, 10, 32, 112,114,105,110,116, 40,105,100,101,110,116, 46, 46, 34, 32, 108,110, 97,109,101, 32, 61, 32, 39, 34, 46, 46,115,101,108, 102, 46,108,110, 97,109,101, 46, 46, 34, 39, 44, 34, 41, 10, 32,112,114,105,110,116, 40,105,100,101,110,116, 46, 46, 34, 125, 34, 46, 46, 99,108,111,115,101, 41, 10,101,110,100, 10, 10, 10, 45, 45, 32, 73,110,116,101,114,110, 97,108, 32, 99, 111,110,115,116,114,117, 99,116,111,114, 10,102,117,110, 99, 116,105,111,110, 32, 95, 68,101,102,105,110,101, 32, 40,116, 41, 10, 32,115,101,116,109,101,116, 97,116, 97, 98,108,101, 40,116, 44, 99,108, 97,115,115, 68,101,102,105,110,101, 41, 10, 32,116, 58, 98,117,105,108,100,110, 97,109,101,115, 40, 41, 10, 10, 32,105,102, 32,116, 46,110, 97,109,101, 32, 61, 61, 32, 39, 39, 32,116,104,101,110, 10, 32, 32,101,114,114, 111,114, 40, 34, 35,105,110,118, 97,108,105,100, 32,100,101, 102,105,110,101, 34, 41, 10, 32,101,110,100, 10, 10, 32, 97, 112,112,101,110,100, 40,116, 41, 10, 32,114,101,116,117,114, 110, 32,116, 10,101,110,100, 10, 10, 45, 45, 32, 67,111,110, 115,116,114,117, 99,116,111,114, 10, 45, 45, 32, 69,120,112, 101, 99,116,115, 32, 97, 32,115,116,114,105,110,103, 32,114, 101,112,114,101,115,101,110,116,105,110,103, 32,116,104,101, 32, 99,111,110,115,116, 97,110,116, 32,110, 97,109,101, 10, 102,117,110, 99,116,105,111,110, 32, 68,101,102,105,110,101, 32, 40,110, 41, 10, 32,114,101,116,117,114,110, 32, 95, 68, 101,102,105,110,101,123, 10, 32, 32,110, 97,109,101, 32, 61, 32,110, 10, 32,125, 10,101,110,100,32 }; tolua_dobuffer(tolua_S,(char*)B,sizeof(B),"tolua embedded: lua/tolua++/src/bin/lua/define.lua"); lua_settop(tolua_S, top); } /* end of embedded lua code */ { /* begin embedded lua code */ int top = lua_gettop(tolua_S); static unsigned char B[] = { 45, 45, 32,116,111,108,117, 97, 58, 32,101,110,117,109,101, 114, 97,116,101, 32, 99,108, 97,115,115, 10, 45, 45, 32, 87, 114,105,116,116,101,110, 32, 98,121, 32, 87, 97,108,100,101, 109, 97,114, 32, 67,101,108,101,115, 10, 45, 45, 32, 84,101, 67, 71,114, 97,102, 47, 80, 85, 67, 45, 82,105,111, 10, 45, 45, 32, 74,117,108, 32, 49, 57, 57, 56, 10, 45, 45, 32, 36, 73,100, 58, 32,101,110,117,109,101,114, 97,116,101, 46,108, 117, 97, 44,118, 32, 49, 46, 51, 32, 50, 48, 48, 48, 47, 48, 49, 47, 50, 52, 32, 50, 48, 58, 52, 49, 58, 49, 53, 32, 99, 101,108,101,115, 32, 69,120,112, 32, 36, 10, 10, 45, 45, 32, 84,104,105,115, 32, 99,111,100,101, 32,105,115, 32,102,114, 101,101, 32,115,111,102,116,119, 97,114,101, 59, 32,121,111, 117, 32, 99, 97,110, 32,114,101,100,105,115,116,114,105, 98, 117,116,101, 32,105,116, 32, 97,110,100, 47,111,114, 32,109, 111,100,105,102,121, 32,105,116, 46, 10, 45, 45, 32, 84,104, 101, 32,115,111,102,116,119, 97,114,101, 32,112,114,111,118, 105,100,101,100, 32,104,101,114,101,117,110,100,101,114, 32, 105,115, 32,111,110, 32, 97,110, 32, 34, 97,115, 32,105,115, 34, 32, 98, 97,115,105,115, 44, 32, 97,110,100, 10, 45, 45, 32,116,104,101, 32, 97,117,116,104,111,114, 32,104, 97,115, 32,110,111, 32,111, 98,108,105,103, 97,116,105,111,110, 32, 116,111, 32,112,114,111,118,105,100,101, 32,109, 97,105,110, 116,101,110, 97,110, 99,101, 44, 32,115,117,112,112,111,114, 116, 44, 32,117,112,100, 97,116,101,115, 44, 10, 45, 45, 32, 101,110,104, 97,110, 99,101,109,101,110,116,115, 44, 32,111, 114, 32,109,111,100,105,102,105, 99, 97,116,105,111,110,115, 46, 10, 10, 10, 45, 45, 32, 69,110,117,109,101,114, 97,116, 101, 32, 99,108, 97,115,115, 10, 45, 45, 32, 82,101,112,114, 101,115,101,110,116,115, 32,101,110,117,109,101,114, 97,116, 105,111,110, 10, 45, 45, 32, 84,104,101, 32,102,111,108,108, 111,119,105,110,103, 32,102,105,101,108,100,115, 32, 97,114, 101, 32,115,116,111,114,101,100, 58, 10, 45, 45, 32, 32, 32, 32,123,105,125, 32, 61, 32,108,105,115,116, 32,111,102, 32, 99,111,110,115,116, 97,110,116, 32,110, 97,109,101,115, 10, 99,108, 97,115,115, 69,110,117,109,101,114, 97,116,101, 32, 61, 32,123, 10,125, 10, 99,108, 97,115,115, 69,110,117,109, 101,114, 97,116,101, 46, 95, 95,105,110,100,101,120, 32, 61, 32, 99,108, 97,115,115, 69,110,117,109,101,114, 97,116,101, 10,115,101,116,109,101,116, 97,116, 97, 98,108,101, 40, 99, 108, 97,115,115, 69,110,117,109,101,114, 97,116,101, 44, 99, 108, 97,115,115, 70,101, 97,116,117,114,101, 41, 10, 10, 45, 45, 32,114,101,103,105,115,116,101,114, 32,101,110,117,109, 101,114, 97,116,105,111,110, 10,102,117,110, 99,116,105,111, 110, 32, 99,108, 97,115,115, 69,110,117,109,101,114, 97,116, 101, 58,114,101,103,105,115,116,101,114, 32, 40,112,114,101, 41, 10, 9,105,102, 32,110,111,116, 32,115,101,108,102, 58, 99,104,101, 99,107, 95,112,117, 98,108,105, 99, 95, 97, 99, 99,101,115,115, 40, 41, 32,116,104,101,110, 10, 9, 9,114, 101,116,117,114,110, 10, 9,101,110,100, 10, 32,112,114,101, 32, 61, 32,112,114,101, 32,111,114, 32, 39, 39, 10, 32,108, 111, 99, 97,108, 32,110,115,112, 97, 99,101, 32, 61, 32,103, 101,116,110, 97,109,101,115,112, 97, 99,101, 40, 99,108, 97, 115,115, 67,111,110,116, 97,105,110,101,114, 46, 99,117,114, 114, 41, 10, 32,108,111, 99, 97,108, 32,105, 61, 49, 10, 32, 119,104,105,108,101, 32,115,101,108,102, 91,105, 93, 32,100, 111, 10, 32, 9,105,102, 32,115,101,108,102, 46,108,110, 97, 109,101,115, 91,105, 93, 32, 97,110,100, 32,115,101,108,102, 46,108,110, 97,109,101,115, 91,105, 93, 32,126, 61, 32, 34, 34, 32,116,104,101,110, 10, 9, 10, 9, 9,111,117,116,112, 117,116, 40,112,114,101, 46, 46, 39,116,111,108,117, 97, 95, 99,111,110,115,116, 97,110,116, 40,116,111,108,117, 97, 95, 83, 44, 34, 39, 46, 46,115,101,108,102, 46,108,110, 97,109, 101,115, 91,105, 93, 46, 46, 39, 34, 44, 39, 46, 46,110,115, 112, 97, 99,101, 46, 46,115,101,108,102, 91,105, 93, 46, 46, 39, 41, 59, 39, 41, 10, 9,101,110,100, 10, 32, 32,105, 32, 61, 32,105, 43, 49, 10, 32,101,110,100, 10,101,110,100, 10, 10, 45, 45, 32, 80,114,105,110,116, 32,109,101,116,104,111, 100, 10,102,117,110, 99,116,105,111,110, 32, 99,108, 97,115, 115, 69,110,117,109,101,114, 97,116,101, 58,112,114,105,110, 116, 32, 40,105,100,101,110,116, 44, 99,108,111,115,101, 41, 10, 32,112,114,105,110,116, 40,105,100,101,110,116, 46, 46, 34, 69,110,117,109,101,114, 97,116,101,123, 34, 41, 10, 32, 112,114,105,110,116, 40,105,100,101,110,116, 46, 46, 34, 32, 110, 97,109,101, 32, 61, 32, 34, 46, 46,115,101,108,102, 46, 110, 97,109,101, 41, 10, 32,108,111, 99, 97,108, 32,105, 61, 49, 10, 32,119,104,105,108,101, 32,115,101,108,102, 91,105, 93, 32,100,111, 10, 32, 32,112,114,105,110,116, 40,105,100, 101,110,116, 46, 46, 34, 32, 39, 34, 46, 46,115,101,108,102, 91,105, 93, 46, 46, 34, 39, 40, 34, 46, 46,115,101,108,102, 46,108,110, 97,109,101,115, 91,105, 93, 46, 46, 34, 41, 44, 34, 41, 10, 32, 32,105, 32, 61, 32,105, 43, 49, 10, 32,101, 110,100, 10, 32,112,114,105,110,116, 40,105,100,101,110,116, 46, 46, 34,125, 34, 46, 46, 99,108,111,115,101, 41, 10,101, 110,100, 10, 10, 45, 45, 32, 73,110,116,101,114,110, 97,108, 32, 99,111,110,115,116,114,117, 99,116,111,114, 10,102,117, 110, 99,116,105,111,110, 32, 95, 69,110,117,109,101,114, 97, 116,101, 32, 40,116, 44,118, 97,114,110, 97,109,101, 41, 10, 32,115,101,116,109,101,116, 97,116, 97, 98,108,101, 40,116, 44, 99,108, 97,115,115, 69,110,117,109,101,114, 97,116,101, 41, 10, 32, 97,112,112,101,110,100, 40,116, 41, 10, 32, 97, 112,112,101,110,100,101,110,117,109, 40,116, 41, 10, 9, 32, 105,102, 32,118, 97,114,110, 97,109,101, 32, 97,110,100, 32, 118, 97,114,110, 97,109,101, 32,126, 61, 32, 34, 34, 32,116, 104,101,110, 10, 9, 9,105,102, 32,116, 46,110, 97,109,101, 32,126, 61, 32, 34, 34, 32,116,104,101,110, 10, 9, 9, 9, 86, 97,114,105, 97, 98,108,101, 40,116, 46,110, 97,109,101, 46, 46, 34, 32, 34, 46, 46,118, 97,114,110, 97,109,101, 41, 10, 9, 9,101,108,115,101, 10, 9, 9, 9,108,111, 99, 97, 108, 32,110,115, 32, 61, 32,103,101,116, 99,117,114,114,110, 97,109,101,115,112, 97, 99,101, 40, 41, 10, 9, 9, 9,119, 97,114,110,105,110,103, 40, 34, 86, 97,114,105, 97, 98,108, 101, 32, 34, 46, 46,110,115, 46, 46,118, 97,114,110, 97,109, 101, 46, 46, 34, 32,111,102, 32,116,121,112,101, 32, 60, 97, 110,111,110,121,109,111,117,115, 32,101,110,117,109, 62, 32, 105,115, 32,100,101, 99,108, 97,114,101,100, 32, 97,115, 32, 114,101, 97,100, 45,111,110,108,121, 34, 41, 10, 9, 9, 9, 86, 97,114,105, 97, 98,108,101, 40, 34,116,111,108,117, 97, 95,114,101, 97,100,111,110,108,121, 32,105,110,116, 32, 34, 46, 46,118, 97,114,110, 97,109,101, 41, 10, 9, 9,101,110, 100, 10, 9,101,110,100, 10, 9, 32,108,111, 99, 97,108, 32, 112, 97,114,101,110,116, 32, 61, 32, 99,108, 97,115,115, 67, 111,110,116, 97,105,110,101,114, 46, 99,117,114,114, 10, 9, 32,105,102, 32,112, 97,114,101,110,116, 32,116,104,101,110, 10, 9, 9,116, 46, 97, 99, 99,101,115,115, 32, 61, 32,112, 97,114,101,110,116, 46, 99,117,114,114, 95,109,101,109, 98, 101,114, 95, 97, 99, 99,101,115,115, 10, 9, 9,116, 46,103, 108,111, 98, 97,108, 95, 97, 99, 99,101,115,115, 32, 61, 32, 116, 58, 99,104,101, 99,107, 95,112,117, 98,108,105, 99, 95, 97, 99, 99,101,115,115, 40, 41, 10, 9, 32,101,110,100, 10, 114,101,116,117,114,110, 32,116, 10,101,110,100, 10, 10, 45, 45, 32, 67,111,110,115,116,114,117, 99,116,111,114, 10, 45, 45, 32, 69,120,112,101, 99,116,115, 32, 97, 32,115,116,114, 105,110,103, 32,114,101,112,114,101,115,101,110,116,105,110, 103, 32,116,104,101, 32,101,110,117,109,101,114, 97,116,101, 32, 98,111,100,121, 10,102,117,110, 99,116,105,111,110, 32, 69,110,117,109,101,114, 97,116,101, 32, 40,110, 44, 98, 44, 118, 97,114,110, 97,109,101, 41, 10, 9, 98, 32, 61, 32,115, 116,114,105,110,103, 46,103,115,117, 98, 40, 98, 44, 32, 34, 44, 91, 37,115, 92,110, 93, 42,125, 34, 44, 32, 34, 92,110, 125, 34, 41, 32, 45, 45, 32,101,108,105,109,105,110, 97,116, 101, 32,108, 97,115,116, 32, 39, 44, 39, 10, 32,108,111, 99, 97,108, 32,116, 32, 61, 32,115,112,108,105,116, 40,115,116, 114,115,117, 98, 40, 98, 44, 50, 44, 45, 50, 41, 44, 39, 44, 39, 41, 32, 45, 45, 32,101,108,105,109,105,110, 97,116,101, 32, 98,114, 97, 99,101,115, 10, 32,108,111, 99, 97,108, 32, 105, 32, 61, 32, 49, 10, 32,108,111, 99, 97,108, 32,101, 32, 61, 32,123,110, 61, 48,125, 10, 32,119,104,105,108,101, 32, 116, 91,105, 93, 32,100,111, 10, 32, 32,108,111, 99, 97,108, 32,116,116, 32, 61, 32,115,112,108,105,116, 40,116, 91,105, 93, 44, 39, 61, 39, 41, 32, 32, 45, 45, 32,100,105,115, 99, 97,114,100, 32,105,110,105,116,105, 97,108, 32,118, 97,108, 117,101, 10, 32, 32,101, 46,110, 32, 61, 32,101, 46,110, 32, 43, 32, 49, 10, 32, 32,101, 91,101, 46,110, 93, 32, 61, 32, 116,116, 91, 49, 93, 10, 32, 32,105, 32, 61, 32,105, 43, 49, 10, 32,101,110,100, 10, 32, 45, 45, 32,115,101,116, 32,108, 117, 97, 32,110, 97,109,101,115, 10, 32,105, 32, 32, 61, 32, 49, 10, 32,101, 46,108,110, 97,109,101,115, 32, 61, 32,123, 125, 10, 32,108,111, 99, 97,108, 32,110,115, 32, 61, 32,103, 101,116, 99,117,114,114,110, 97,109,101,115,112, 97, 99,101, 40, 41, 10, 32,119,104,105,108,101, 32,101, 91,105, 93, 32, 100,111, 10, 32, 32,108,111, 99, 97,108, 32,116, 32, 61, 32, 115,112,108,105,116, 40,101, 91,105, 93, 44, 39, 64, 39, 41, 10, 32, 32,101, 91,105, 93, 32, 61, 32,116, 91, 49, 93, 10, 9, 9,105,102, 32,110,111,116, 32,116, 91, 50, 93, 32,116, 104,101,110, 10, 9, 9, 32,116, 91, 50, 93, 32, 61, 32, 97, 112,112,108,121,114,101,110, 97,109,105,110,103, 40,116, 91, 49, 93, 41, 10, 9, 9,101,110,100, 10, 32, 32,101, 46,108, 110, 97,109,101,115, 91,105, 93, 32, 61, 32,116, 91, 50, 93, 32,111,114, 32,116, 91, 49, 93, 10, 32, 32, 95,103,108,111, 98, 97,108, 95,101,110,117,109,115, 91, 32,110,115, 46, 46, 101, 91,105, 93, 32, 93, 32, 61, 32, 40,110,115, 46, 46,101, 91,105, 93, 41, 10, 32, 32,105, 32, 61, 32,105, 43, 49, 10, 32,101,110,100, 10, 9,101, 46,110, 97,109,101, 32, 61, 32, 110, 10, 9,105,102, 32,110, 32,126, 61, 32, 34, 34, 32,116, 104,101,110, 10, 9, 9, 84,121,112,101,100,101,102, 40, 34, 105,110,116, 32, 34, 46, 46,110, 41, 10, 9,101,110,100, 10, 32,114,101,116,117,114,110, 32, 95, 69,110,117,109,101,114, 97,116,101, 40,101, 44, 32,118, 97,114,110, 97,109,101, 41, 10,101,110,100,32 }; tolua_dobuffer(tolua_S,(char*)B,sizeof(B),"tolua embedded: lua/tolua++/src/bin/lua/enumerate.lua"); lua_settop(tolua_S, top); } /* end of embedded lua code */ { /* begin embedded lua code */ int top = lua_gettop(tolua_S); static unsigned char B[] = { 45, 45, 32,116,111,108,117, 97, 58, 32,100,101, 99,108, 97, 114, 97,116,105,111,110, 32, 99,108, 97,115,115, 10, 45, 45, 32, 87,114,105,116,116,101,110, 32, 98,121, 32, 87, 97,108, 100,101,109, 97,114, 32, 67,101,108,101,115, 10, 45, 45, 32, 84,101, 67, 71,114, 97,102, 47, 80, 85, 67, 45, 82,105,111, 10, 45, 45, 32, 74,117,108, 32, 49, 57, 57, 56, 10, 45, 45, 32, 36, 73,100, 58, 32, 36, 10, 10, 45, 45, 32, 84,104,105, 115, 32, 99,111,100,101, 32,105,115, 32,102,114,101,101, 32, 115,111,102,116,119, 97,114,101, 59, 32,121,111,117, 32, 99, 97,110, 32,114,101,100,105,115,116,114,105, 98,117,116,101, 32,105,116, 32, 97,110,100, 47,111,114, 32,109,111,100,105, 102,121, 32,105,116, 46, 10, 45, 45, 32, 84,104,101, 32,115, 111,102,116,119, 97,114,101, 32,112,114,111,118,105,100,101, 100, 32,104,101,114,101,117,110,100,101,114, 32,105,115, 32, 111,110, 32, 97,110, 32, 34, 97,115, 32,105,115, 34, 32, 98, 97,115,105,115, 44, 32, 97,110,100, 10, 45, 45, 32,116,104, 101, 32, 97,117,116,104,111,114, 32,104, 97,115, 32,110,111, 32,111, 98,108,105,103, 97,116,105,111,110, 32,116,111, 32, 112,114,111,118,105,100,101, 32,109, 97,105,110,116,101,110, 97,110, 99,101, 44, 32,115,117,112,112,111,114,116, 44, 32, 117,112,100, 97,116,101,115, 44, 10, 45, 45, 32,101,110,104, 97,110, 99,101,109,101,110,116,115, 44, 32,111,114, 32,109, 111,100,105,102,105, 99, 97,116,105,111,110,115, 46, 10, 10, 10, 45, 45, 32, 68,101, 99,108, 97,114, 97,116,105,111,110, 32, 99,108, 97,115,115, 10, 45, 45, 32, 82,101,112,114,101, 115,101,110,116,115, 32,118, 97,114,105, 97, 98,108,101, 44, 32,102,117,110, 99,116,105,111,110, 44, 32,111,114, 32, 97, 114,103,117,109,101,110,116, 32,100,101, 99,108, 97,114, 97, 116,105,111,110, 46, 10, 45, 45, 32, 83,116,111,114,101,115, 32,116,104,101, 32,102,111,108,108,111,119,105,110,103, 32, 102,105,101,108,100,115, 58, 10, 45, 45, 32, 32,109,111,100, 32, 32, 61, 32,116,121,112,101, 32,109,111,100,105,102,105, 101,114,115, 10, 45, 45, 32, 32,116,121,112,101, 32, 61, 32, 116,121,112,101, 10, 45, 45, 32, 32,112,116,114, 32, 32, 61, 32, 34, 42, 34, 32,111,114, 32, 34, 38, 34, 44, 32,105,102, 32,114,101,112,114,101,115,101,110,116,105,110,103, 32, 97, 32,112,111,105,110,116,101,114, 32,111,114, 32, 97, 32,114, 101,102,101,114,101,110, 99,101, 10, 45, 45, 32, 32,110, 97, 109,101, 32, 61, 32,110, 97,109,101, 10, 45, 45, 32, 32,100, 105,109, 32, 32, 61, 32,100,105,109,101,110,115,105,111,110, 44, 32,105,102, 32, 97, 32,118,101, 99,116,111,114, 10, 45, 45, 32, 32,100,101,102, 32, 32, 61, 32,100,101,102, 97,117, 108,116, 32,118, 97,108,117,101, 44, 32,105,102, 32, 97,110, 121, 32, 40,111,110,108,121, 32,102,111,114, 32, 97,114,103, 117,109,101,110,116,115, 41, 10, 45, 45, 32, 32,114,101,116, 32, 32, 61, 32, 34, 42, 34, 32,111,114, 32, 34, 38, 34, 44, 32,105,102, 32,118, 97,108,117,101, 32,105,115, 32,116,111, 32, 98,101, 32,114,101,116,117,114,110,101,100, 32, 40,111, 110,108,121, 32,102,111,114, 32, 97,114,103,117,109,101,110, 116,115, 41, 10, 99,108, 97,115,115, 68,101, 99,108, 97,114, 97,116,105,111,110, 32, 61, 32,123, 10, 32,109,111,100, 32, 61, 32, 39, 39, 44, 10, 32,116,121,112,101, 32, 61, 32, 39, 39, 44, 10, 32,112,116,114, 32, 61, 32, 39, 39, 44, 10, 32, 110, 97,109,101, 32, 61, 32, 39, 39, 44, 10, 32,100,105,109, 32, 61, 32, 39, 39, 44, 10, 32,114,101,116, 32, 61, 32, 39, 39, 44, 10, 32,100,101,102, 32, 61, 32, 39, 39, 10,125, 10, 99,108, 97,115,115, 68,101, 99,108, 97,114, 97,116,105,111, 110, 46, 95, 95,105,110,100,101,120, 32, 61, 32, 99,108, 97, 115,115, 68,101, 99,108, 97,114, 97,116,105,111,110, 10,115, 101,116,109,101,116, 97,116, 97, 98,108,101, 40, 99,108, 97, 115,115, 68,101, 99,108, 97,114, 97,116,105,111,110, 44, 99, 108, 97,115,115, 70,101, 97,116,117,114,101, 41, 10, 10, 45, 45, 32, 67,114,101, 97,116,101, 32, 97,110, 32,117,110,105, 113,117,101, 32,118, 97,114,105, 97, 98,108,101, 32,110, 97, 109,101, 10,102,117,110, 99,116,105,111,110, 32, 99,114,101, 97,116,101, 95,118, 97,114,110, 97,109,101, 32, 40, 41, 10, 32,105,102, 32,110,111,116, 32, 95,118, 97,114,110,117,109, 98,101,114, 32,116,104,101,110, 32, 95,118, 97,114,110,117, 109, 98,101,114, 32, 61, 32, 48, 32,101,110,100, 10, 32, 95, 118, 97,114,110,117,109, 98,101,114, 32, 61, 32, 95,118, 97, 114,110,117,109, 98,101,114, 32, 43, 32, 49, 10, 32,114,101, 116,117,114,110, 32, 34,116,111,108,117, 97, 95,118, 97,114, 95, 34, 46, 46, 95,118, 97,114,110,117,109, 98,101,114, 10, 101,110,100, 10, 10, 45, 45, 32, 67,104,101, 99,107, 32,100, 101, 99,108, 97,114, 97,116,105,111,110, 32,110, 97,109,101, 10, 45, 45, 32, 73,116, 32, 97,108,115,111, 32,105,100,101, 110,116,105,102,105,101,115, 32,100,101,102, 97,117,108,116, 32,118, 97,108,117,101,115, 10,102,117,110, 99,116,105,111, 110, 32, 99,108, 97,115,115, 68,101, 99,108, 97,114, 97,116, 105,111,110, 58, 99,104,101, 99,107,110, 97,109,101, 32, 40, 41, 10, 10, 32,105,102, 32,115,116,114,115,117, 98, 40,115, 101,108,102, 46,110, 97,109,101, 44, 49, 44, 49, 41, 32, 61, 61, 32, 39, 91, 39, 32, 97,110,100, 32,110,111,116, 32,102, 105,110,100,116,121,112,101, 40,115,101,108,102, 46,116,121, 112,101, 41, 32,116,104,101,110, 10, 32, 32,115,101,108,102, 46,110, 97,109,101, 32, 61, 32,115,101,108,102, 46,116,121, 112,101, 46, 46,115,101,108,102, 46,110, 97,109,101, 10, 32, 32,108,111, 99, 97,108, 32,109, 32, 61, 32,115,112,108,105, 116, 40,115,101,108,102, 46,109,111,100, 44, 39, 37,115, 37, 115, 42, 39, 41, 10, 32, 32,115,101,108,102, 46,116,121,112, 101, 32, 61, 32,109, 91,109, 46,110, 93, 10, 32, 32,115,101, 108,102, 46,109,111,100, 32, 61, 32, 99,111,110, 99, 97,116, 40,109, 44, 49, 44,109, 46,110, 45, 49, 41, 10, 32,101,110, 100, 10, 10, 32,108,111, 99, 97,108, 32,116, 32, 61, 32,115, 112,108,105,116, 40,115,101,108,102, 46,110, 97,109,101, 44, 39, 61, 39, 41, 10, 32,105,102, 32,116, 46,110, 61, 61, 50, 32,116,104,101,110, 10, 32, 32,115,101,108,102, 46,110, 97, 109,101, 32, 61, 32,116, 91, 49, 93, 10, 32, 32,115,101,108, 102, 46,100,101,102, 32, 61, 32,102,105,110,100, 95,101,110, 117,109, 95,118, 97,114, 40,116, 91,116, 46,110, 93, 41, 10, 32,101,110,100, 10, 10, 32,108,111, 99, 97,108, 32, 98, 44, 101, 44,100, 32, 61, 32,115,116,114,102,105,110,100, 40,115, 101,108,102, 46,110, 97,109,101, 44, 34, 37, 91, 40, 46, 45, 41, 37, 93, 34, 41, 10, 32,105,102, 32, 98, 32,116,104,101, 110, 10, 32, 32,115,101,108,102, 46,110, 97,109,101, 32, 61, 32,115,116,114,115,117, 98, 40,115,101,108,102, 46,110, 97, 109,101, 44, 49, 44, 98, 45, 49, 41, 10, 32, 32,115,101,108, 102, 46,100,105,109, 32, 61, 32,102,105,110,100, 95,101,110, 117,109, 95,118, 97,114, 40,100, 41, 10, 32,101,110,100, 10, 10, 10, 32,105,102, 32,115,101,108,102, 46,116,121,112,101, 32,126, 61, 32, 39, 39, 32, 97,110,100, 32,115,101,108,102, 46,116,121,112,101, 32,126, 61, 32, 39,118,111,105,100, 39, 32, 97,110,100, 32,115,101,108,102, 46,110, 97,109,101, 32, 61, 61, 32, 39, 39, 32,116,104,101,110, 10, 32, 32,115,101, 108,102, 46,110, 97,109,101, 32, 61, 32, 99,114,101, 97,116, 101, 95,118, 97,114,110, 97,109,101, 40, 41, 10, 32,101,108, 115,101,105,102, 32,115,101,108,102, 46,107,105,110,100, 61, 61, 39,118, 97,114, 39, 32,116,104,101,110, 10, 32, 32,105, 102, 32,115,101,108,102, 46,116,121,112,101, 61, 61, 39, 39, 32, 97,110,100, 32,115,101,108,102, 46,110, 97,109,101,126, 61, 39, 39, 32,116,104,101,110, 10, 32, 32, 32,115,101,108, 102, 46,116,121,112,101, 32, 61, 32,115,101,108,102, 46,116, 121,112,101, 46, 46,115,101,108,102, 46,110, 97,109,101, 10, 32, 32, 32,115,101,108,102, 46,110, 97,109,101, 32, 61, 32, 99,114,101, 97,116,101, 95,118, 97,114,110, 97,109,101, 40, 41, 10, 32, 32,101,108,115,101,105,102, 32,102,105,110,100, 116,121,112,101, 40,115,101,108,102, 46,110, 97,109,101, 41, 32,116,104,101,110, 10, 32, 32, 32,105,102, 32,115,101,108, 102, 46,116,121,112,101, 61, 61, 39, 39, 32,116,104,101,110, 32,115,101,108,102, 46,116,121,112,101, 32, 61, 32,115,101, 108,102, 46,110, 97,109,101, 10, 32, 32, 32,101,108,115,101, 32,115,101,108,102, 46,116,121,112,101, 32, 61, 32,115,101, 108,102, 46,116,121,112,101, 46, 46, 39, 32, 39, 46, 46,115, 101,108,102, 46,110, 97,109,101, 32,101,110,100, 10, 32, 32, 32,115,101,108,102, 46,110, 97,109,101, 32, 61, 32, 99,114, 101, 97,116,101, 95,118, 97,114,110, 97,109,101, 40, 41, 10, 32, 32,101,110,100, 10, 32,101,110,100, 10, 10, 32, 45, 45, 32, 97,100,106,117,115,116, 32,116,121,112,101, 32,111,102, 32,115,116,114,105,110,103, 10, 32,105,102, 32,115,101,108, 102, 46,116,121,112,101, 32, 61, 61, 32, 39, 99,104, 97,114, 39, 32, 97,110,100, 32,115,101,108,102, 46,100,105,109, 32, 126, 61, 32, 39, 39, 32,116,104,101,110, 10, 9, 32,115,101, 108,102, 46,116,121,112,101, 32, 61, 32, 39, 99,104, 97,114, 42, 39, 10, 32,101,110,100, 10, 10, 9,105,102, 32,115,101, 108,102, 46,107,105,110,100, 32, 97,110,100, 32,115,101,108, 102, 46,107,105,110,100, 32, 61, 61, 32, 39,118, 97,114, 39, 32,116,104,101,110, 10, 9, 9,115,101,108,102, 46,110, 97, 109,101, 32, 61, 32,115,116,114,105,110,103, 46,103,115,117, 98, 40,115,101,108,102, 46,110, 97,109,101, 44, 32, 34, 58, 46, 42, 36, 34, 44, 32, 34, 34, 41, 32, 45, 45, 32, 63, 63, 63, 10, 9,101,110,100, 10,101,110,100, 10, 10, 45, 45, 32, 67,104,101, 99,107, 32,100,101, 99,108, 97,114, 97,116,105, 111,110, 32,116,121,112,101, 10, 45, 45, 32, 83,117, 98,115, 116,105,116,117,116,101,115, 32,116,121,112,101,100,101,102, 39,115, 46, 10,102,117,110, 99,116,105,111,110, 32, 99,108, 97,115,115, 68,101, 99,108, 97,114, 97,116,105,111,110, 58, 99,104,101, 99,107,116,121,112,101, 32, 40, 41, 10, 10, 32, 45, 45, 32, 99,104,101, 99,107, 32,105,102, 32,116,104,101, 114,101, 32,105,115, 32, 97, 32,112,111,105,110,116,101,114, 32,116,111, 32, 98, 97,115,105, 99, 32,116,121,112,101, 10, 32,108,111, 99, 97,108, 32, 98, 97,115,105, 99, 32, 61, 32, 105,115, 98, 97,115,105, 99, 40,115,101,108,102, 46,116,121, 112,101, 41, 10, 32,105,102, 32,115,101,108,102, 46,107,105, 110,100, 32, 61, 61, 32, 39,102,117,110, 99, 39, 32, 97,110, 100, 32, 98, 97,115,105, 99, 61, 61, 39,110,117,109, 98,101, 114, 39, 32, 97,110,100, 32,115,116,114,105,110,103, 46,102, 105,110,100, 40,115,101,108,102, 46,112,116,114, 44, 32, 34, 37, 42, 34, 41, 32,116,104,101,110, 10, 32, 9,115,101,108, 102, 46,116,121,112,101, 32, 61, 32, 39, 95,117,115,101,114, 100, 97,116, 97, 39, 10, 32, 9,115,101,108,102, 46,112,116, 114, 32, 61, 32, 34, 34, 10, 32,101,110,100, 10, 32,105,102, 32, 98, 97,115,105, 99, 32, 97,110,100, 32,115,101,108,102, 46,112,116,114,126, 61, 39, 39, 32,116,104,101,110, 10, 32, 32,115,101,108,102, 46,114,101,116, 32, 61, 32,115,101,108, 102, 46,112,116,114, 10, 32, 32,115,101,108,102, 46,112,116, 114, 32, 61, 32,110,105,108, 10, 32, 32,105,102, 32,105,115, 98, 97,115,105, 99, 40,115,101,108,102, 46,116,121,112,101, 41, 32, 61, 61, 32, 39,110,117,109, 98,101,114, 39, 32,116, 104,101,110, 10, 32, 32, 9,115,101,108,102, 46,114,101,116, 117,114,110, 95,117,115,101,114,100, 97,116, 97, 32, 61, 32, 116,114,117,101, 10, 32, 32,101,110,100, 10, 32,101,110,100, 10, 10, 32, 45, 45, 32, 99,104,101, 99,107, 32,105,102, 32, 116,104,101,114,101, 32,105,115, 32, 97,114,114, 97,121, 32, 116,111, 32, 98,101, 32,114,101,116,117,114,110,101,100, 10, 32,105,102, 32,115,101,108,102, 46,100,105,109,126, 61, 39, 39, 32, 97,110,100, 32,115,101,108,102, 46,114,101,116,126, 61, 39, 39, 32,116,104,101,110, 10, 32, 32, 32,101,114,114, 111,114, 40, 39, 35,105,110,118, 97,108,105,100, 32,112, 97, 114, 97,109,101,116,101,114, 58, 32, 99, 97,110,110,111,116, 32,114,101,116,117,114,110, 32, 97,110, 32, 97,114,114, 97, 121, 32,111,102, 32,118, 97,108,117,101,115, 39, 41, 10, 32, 101,110,100, 10, 32, 45, 45, 32,114,101,115,116,111,114,101, 32, 39,118,111,105,100, 42, 39, 32, 97,110,100, 32, 39,115, 116,114,105,110,103, 42, 39, 10, 32,105,102, 32,115,101,108, 102, 46,116,121,112,101, 32, 61, 61, 32, 39, 95,117,115,101, 114,100, 97,116, 97, 39, 32,116,104,101,110, 32,115,101,108, 102, 46,116,121,112,101, 32, 61, 32, 39,118,111,105,100, 42, 39, 10, 32,101,108,115,101,105,102, 32,115,101,108,102, 46, 116,121,112,101, 32, 61, 61, 32, 39, 95, 99,115,116,114,105, 110,103, 39, 32,116,104,101,110, 32,115,101,108,102, 46,116, 121,112,101, 32, 61, 32, 39, 99,104, 97,114, 42, 39, 10, 32, 101,108,115,101,105,102, 32,115,101,108,102, 46,116,121,112, 101, 32, 61, 61, 32, 39, 95,108,115,116, 97,116,101, 39, 32, 116,104,101,110, 32,115,101,108,102, 46,116,121,112,101, 32, 61, 32, 39,108,117, 97, 95, 83,116, 97,116,101, 42, 39, 10, 32,101,110,100, 10, 10, 32, 45, 45, 32,114,101,115,111,108, 118,101, 32,116,121,112,101,115, 32,105,110,115,105,100,101, 32,116,104,101, 32,116,101,109,112,108, 97,116,101,115, 10, 32,105,102, 32,115,101,108,102, 46,116,121,112,101, 32,116, 104,101,110, 10, 9, 32,115,101,108,102, 46,116,121,112,101, 32, 61, 32,114,101,115,111,108,118,101, 95,116,101,109,112, 108, 97,116,101, 95,116,121,112,101,115, 40,115,101,108,102, 46,116,121,112,101, 41, 10, 32,101,110,100, 10, 10, 45, 45, 10, 45, 45, 32, 45, 45, 32,105,102, 32,114,101,116,117,114, 110,105,110,103, 32,118, 97,108,117,101, 44, 32, 97,117,116, 111,109, 97,116,105, 99, 97,108,108,121, 32,115,101,116, 32, 100,101,102, 97,117,108,116, 32,118, 97,108,117,101, 10, 45, 45, 32,105,102, 32,115,101,108,102, 46,114,101,116, 32,126, 61, 32, 39, 39, 32, 97,110,100, 32,115,101,108,102, 46,100, 101,102, 32, 61, 61, 32, 39, 39, 32,116,104,101,110, 10, 45, 45, 32, 32,115,101,108,102, 46,100,101,102, 32, 61, 32, 39, 48, 39, 10, 45, 45, 32,101,110,100, 10, 45, 45, 10, 10,101, 110,100, 10, 10,102,117,110, 99,116,105,111,110, 32,114,101, 115,111,108,118,101, 95,116,101,109,112,108, 97,116,101, 95, 116,121,112,101,115, 40,116,121,112,101, 41, 10, 10, 9,105, 102, 32,105,115, 98, 97,115,105, 99, 40,116,121,112,101, 41, 32,116,104,101,110, 10, 9, 9,114,101,116,117,114,110, 32, 116,121,112,101, 10, 9,101,110,100, 10, 9,108,111, 99, 97, 108, 32, 98, 44, 95, 44,109, 32, 61, 32,115,116,114,105,110, 103, 46,102,105,110,100, 40,116,121,112,101, 44, 32, 34, 40, 37, 98, 60, 62, 41, 34, 41, 10, 9,105,102, 32, 98, 32,116, 104,101,110, 10, 10, 9, 9,109, 32, 61, 32,115,112,108,105, 116, 95, 99, 95,116,111,107,101,110,115, 40,115,116,114,105, 110,103, 46,115,117, 98, 40,109, 44, 32, 50, 44, 32, 45, 50, 41, 44, 32, 34, 44, 34, 41, 10, 9, 9,102,111,114, 32,105, 61, 49, 44, 32,116, 97, 98,108,101, 46,103,101,116,110, 40, 109, 41, 32,100,111, 10, 9, 9, 9,109, 91,105, 93, 32, 61, 32,115,116,114,105,110,103, 46,103,115,117, 98, 40,109, 91, 105, 93, 44, 34, 37,115, 42, 40, 91, 37, 42, 38, 93, 41, 34, 44, 32, 34, 37, 49, 34, 41, 10, 9, 9, 9,105,102, 32,110, 111,116, 32,105,115,101,110,117,109, 40,109, 91,105, 93, 41, 32,116,104,101,110, 32, 95, 44, 32,109, 91,105, 93, 32, 61, 32, 97,112,112,108,121,116,121,112,101,100,101,102, 40, 34, 34, 44, 32,109, 91,105, 93, 41, 32,101,110,100, 10, 9, 9, 9,109, 91,105, 93, 32, 61, 32,102,105,110,100,116,121,112, 101, 40,109, 91,105, 93, 41, 32,111,114, 32,109, 91,105, 93, 10, 9, 9, 9,109, 91,105, 93, 32, 61, 32,114,101,115,111, 108,118,101, 95,116,101,109,112,108, 97,116,101, 95,116,121, 112,101,115, 40,109, 91,105, 93, 41, 10, 9, 9,101,110,100, 10, 10, 9, 9,108,111, 99, 97,108, 32, 98, 44,105, 10, 9, 9,116,121,112,101, 44, 98, 44,105, 32, 61, 32, 98,114,101, 97,107, 95,116,101,109,112,108, 97,116,101, 40,116,121,112, 101, 41, 10, 45, 45,112,114,105,110,116, 40, 34, 99,111,110, 99, 97,116, 32,105,115, 32, 34, 44, 99,111,110, 99, 97,116, 40,109, 44, 32, 49, 44, 32,109, 46,110, 41, 41, 10, 9, 9, 108,111, 99, 97,108, 32,116,101,109,112,108, 97,116,101, 95, 112, 97,114,116, 32, 61, 32, 34, 60, 34, 46, 46, 99,111,110, 99, 97,116, 40,109, 44, 32, 49, 44, 32,109, 46,110, 44, 32, 34, 44, 34, 41, 46, 46, 34, 62, 34, 10, 9, 9,116,121,112, 101, 32, 61, 32,114,101, 98,117,105,108,100, 95,116,101,109, 112,108, 97,116,101, 40,116,121,112,101, 44, 32, 98, 44, 32, 116,101,109,112,108, 97,116,101, 95,112, 97,114,116, 41, 10, 9, 9,116,121,112,101, 32, 61, 32,115,116,114,105,110,103, 46,103,115,117, 98, 40,116,121,112,101, 44, 32, 34, 62, 62, 34, 44, 32, 34, 62, 32, 62, 34, 41, 10, 9,101,110,100, 10, 9,114,101,116,117,114,110, 32,116,121,112,101, 10,101,110, 100, 10, 10,102,117,110, 99,116,105,111,110, 32, 98,114,101, 97,107, 95,116,101,109,112,108, 97,116,101, 40,115, 41, 10, 9,108,111, 99, 97,108, 32, 98, 44,101, 44,116,105,109,112, 108, 32, 61, 32,115,116,114,105,110,103, 46,102,105,110,100, 40,115, 44, 32, 34, 40, 37, 98, 60, 62, 41, 34, 41, 10, 9, 105,102, 32,116,105,109,112,108, 32,116,104,101,110, 10, 9, 9,115, 32, 61, 32,115,116,114,105,110,103, 46,103,115,117, 98, 40,115, 44, 32, 34, 37, 98, 60, 62, 34, 44, 32, 34, 34, 41, 10, 9, 9,114,101,116,117,114,110, 32,115, 44, 32, 98, 44, 32,116,105,109,112,108, 10, 9,101,108,115,101, 10, 9, 9,114,101,116,117,114,110, 32,115, 44, 32, 48, 44, 32,110, 105,108, 10, 9,101,110,100, 10,101,110,100, 10, 10,102,117, 110, 99,116,105,111,110, 32,114,101, 98,117,105,108,100, 95, 116,101,109,112,108, 97,116,101, 40,115, 44, 32, 98, 44, 32, 116,105,109,112,108, 41, 10, 10, 9,105,102, 32, 98, 32, 61, 61, 32, 48, 32,116,104,101,110, 10, 9, 9,114,101,116,117, 114,110, 32,115, 10, 9,101,110,100, 10, 10, 9,114,101,116, 117,114,110, 32,115,116,114,105,110,103, 46,115,117, 98, 40, 115, 44, 32, 49, 44, 32, 98, 45, 49, 41, 46, 46,116,105,109, 112,108, 46, 46,115,116,114,105,110,103, 46,115,117, 98, 40, 115, 44, 32, 98, 44, 32, 45, 49, 41, 10,101,110,100, 10, 10, 45, 45, 32, 80,114,105,110,116, 32,109,101,116,104,111,100, 10,102,117,110, 99,116,105,111,110, 32, 99,108, 97,115,115, 68,101, 99,108, 97,114, 97,116,105,111,110, 58,112,114,105, 110,116, 32, 40,105,100,101,110,116, 44, 99,108,111,115,101, 41, 10, 32,112,114,105,110,116, 40,105,100,101,110,116, 46, 46, 34, 68,101, 99,108, 97,114, 97,116,105,111,110,123, 34, 41, 10, 32,112,114,105,110,116, 40,105,100,101,110,116, 46, 46, 34, 32,109,111,100, 32, 32, 61, 32, 39, 34, 46, 46,115, 101,108,102, 46,109,111,100, 46, 46, 34, 39, 44, 34, 41, 10, 32,112,114,105,110,116, 40,105,100,101,110,116, 46, 46, 34, 32,116,121,112,101, 32, 61, 32, 39, 34, 46, 46,115,101,108, 102, 46,116,121,112,101, 46, 46, 34, 39, 44, 34, 41, 10, 32, 112,114,105,110,116, 40,105,100,101,110,116, 46, 46, 34, 32, 112,116,114, 32, 32, 61, 32, 39, 34, 46, 46,115,101,108,102, 46,112,116,114, 46, 46, 34, 39, 44, 34, 41, 10, 32,112,114, 105,110,116, 40,105,100,101,110,116, 46, 46, 34, 32,110, 97, 109,101, 32, 61, 32, 39, 34, 46, 46,115,101,108,102, 46,110, 97,109,101, 46, 46, 34, 39, 44, 34, 41, 10, 32,112,114,105, 110,116, 40,105,100,101,110,116, 46, 46, 34, 32,100,105,109, 32, 32, 61, 32, 39, 34, 46, 46,115,101,108,102, 46,100,105, 109, 46, 46, 34, 39, 44, 34, 41, 10, 32,112,114,105,110,116, 40,105,100,101,110,116, 46, 46, 34, 32,100,101,102, 32, 32, 61, 32, 39, 34, 46, 46,115,101,108,102, 46,100,101,102, 46, 46, 34, 39, 44, 34, 41, 10, 32,112,114,105,110,116, 40,105, 100,101,110,116, 46, 46, 34, 32,114,101,116, 32, 32, 61, 32, 39, 34, 46, 46,115,101,108,102, 46,114,101,116, 46, 46, 34, 39, 44, 34, 41, 10, 32,112,114,105,110,116, 40,105,100,101, 110,116, 46, 46, 34,125, 34, 46, 46, 99,108,111,115,101, 41, 10,101,110,100, 10, 10, 45, 45, 32, 99,104,101, 99,107, 32, 105,102, 32, 97,114,114, 97,121, 32,111,102, 32,118, 97,108, 117,101,115, 32, 97,114,101, 32,114,101,116,117,114,110,101, 100, 32,116,111, 32, 76,117, 97, 10,102,117,110, 99,116,105, 111,110, 32, 99,108, 97,115,115, 68,101, 99,108, 97,114, 97, 116,105,111,110, 58,114,101,113,117,105,114,101, 99,111,108, 108,101, 99,116,105,111,110, 32, 40,116, 41, 10, 32,105,102, 32,115,101,108,102, 46,109,111,100, 32,126, 61, 32, 39, 99, 111,110,115,116, 39, 32, 97,110,100, 10, 9, 32, 32, 32, 32, 115,101,108,102, 46,100,105,109, 32, 97,110,100, 32,115,101, 108,102, 46,100,105,109, 32,126, 61, 32, 39, 39, 32, 97,110, 100, 10, 9, 9, 9, 9, 32,110,111,116, 32,105,115, 98, 97, 115,105, 99, 40,115,101,108,102, 46,116,121,112,101, 41, 32, 97,110,100, 10, 9, 9, 9, 9, 32,115,101,108,102, 46,112, 116,114, 32, 61, 61, 32, 39, 39, 32, 97,110,100, 32,115,101, 108,102, 58, 99,104,101, 99,107, 95,112,117, 98,108,105, 99, 95, 97, 99, 99,101,115,115, 40, 41, 32,116,104,101,110, 10, 9, 9,108,111, 99, 97,108, 32,116,121,112,101, 32, 61, 32, 103,115,117, 98, 40,115,101,108,102, 46,116,121,112,101, 44, 34, 37,115, 42, 99,111,110,115,116, 37,115, 43, 34, 44, 34, 34, 41, 10, 9, 9,116, 91,116,121,112,101, 93, 32, 61, 32, 34,116,111,108,117, 97, 95, 99,111,108,108,101, 99,116, 95, 34, 32, 46, 46, 32, 99,108,101, 97,110, 95,116,101,109,112, 108, 97,116,101, 40,116,121,112,101, 41, 10, 9, 9,114,101, 116,117,114,110, 32,116,114,117,101, 10, 9,101,110,100, 10, 9,114,101,116,117,114,110, 32,102, 97,108,115,101, 10,101, 110,100, 10, 10, 45, 45, 32,100,101, 99,108, 97,114,101, 32, 116, 97,103, 10,102,117,110, 99,116,105,111,110, 32, 99,108, 97,115,115, 68,101, 99,108, 97,114, 97,116,105,111,110, 58, 100,101, 99,108,116,121,112,101, 32, 40, 41, 10, 10, 9,115, 101,108,102, 46,116,121,112,101, 32, 61, 32,116,121,112,101, 118, 97,114, 40,115,101,108,102, 46,116,121,112,101, 41, 10, 9,105,102, 32,115,116,114,102,105,110,100, 40,115,101,108, 102, 46,109,111,100, 44, 39, 99,111,110,115,116, 39, 41, 32, 116,104,101,110, 10, 9, 9,115,101,108,102, 46,116,121,112, 101, 32, 61, 32, 39, 99,111,110,115,116, 32, 39, 46, 46,115, 101,108,102, 46,116,121,112,101, 10, 9, 9,115,101,108,102, 46,109,111,100, 32, 61, 32,103,115,117, 98, 40,115,101,108, 102, 46,109,111,100, 44, 39, 99,111,110,115,116, 37,115, 42, 39, 44, 39, 39, 41, 10, 9,101,110,100, 10,101,110,100, 10, 10, 10, 45, 45, 32,111,117,116,112,117,116, 32,116,121,112, 101, 32, 99,104,101, 99,107,105,110,103, 10,102,117,110, 99, 116,105,111,110, 32, 99,108, 97,115,115, 68,101, 99,108, 97, 114, 97,116,105,111,110, 58,111,117,116, 99,104,101, 99,107, 116,121,112,101, 32, 40,110, 97,114,103, 41, 10, 32,108,111, 99, 97,108, 32,100,101,102, 10, 32,108,111, 99, 97,108, 32, 116, 32, 61, 32,105,115, 98, 97,115,105, 99, 40,115,101,108, 102, 46,116,121,112,101, 41, 10, 32,105,102, 32,115,101,108, 102, 46,100,101,102,126, 61, 39, 39, 32,116,104,101,110, 10, 32, 32,100,101,102, 32, 61, 32, 49, 10, 32,101,108,115,101, 10, 32, 32,100,101,102, 32, 61, 32, 48, 10, 32,101,110,100, 10, 32,105,102, 32,115,101,108,102, 46,100,105,109, 32,126, 61, 32, 39, 39, 32,116,104,101,110, 10, 9, 45, 45,105,102, 32,116, 61, 61, 39,115,116,114,105,110,103, 39, 32,116,104, 101,110, 10, 9, 45, 45, 9,114,101,116,117,114,110, 32, 39, 116,111,108,117, 97, 95,105,115,115,116,114,105,110,103, 97, 114,114, 97,121, 40,116,111,108,117, 97, 95, 83, 44, 39, 46, 46,110, 97,114,103, 46, 46, 39, 44, 39, 46, 46,100,101,102, 46, 46, 39, 44, 38,116,111,108,117, 97, 95,101,114,114, 41, 39, 10, 9, 45, 45,101,108,115,101, 10, 9,114,101,116,117, 114,110, 32, 39, 33,116,111,108,117, 97, 95,105,115,116, 97, 98,108,101, 40,116,111,108,117, 97, 95, 83, 44, 39, 46, 46, 110, 97,114,103, 46, 46, 39, 44, 48, 44, 38,116,111,108,117, 97, 95,101,114,114, 41, 39, 10, 32, 9, 45, 45,101,110,100, 10, 32,101,108,115,101,105,102, 32,116, 32,116,104,101,110, 10, 9,114,101,116,117,114,110, 32, 39, 33,116,111,108,117, 97, 95,105,115, 39, 46, 46,116, 46, 46, 39, 40,116,111,108, 117, 97, 95, 83, 44, 39, 46, 46,110, 97,114,103, 46, 46, 39, 44, 39, 46, 46,100,101,102, 46, 46, 39, 44, 38,116,111,108, 117, 97, 95,101,114,114, 41, 39, 10, 32,101,108,115,101, 10, 32, 32,108,111, 99, 97,108, 32,105,115, 95,102,117,110, 99, 32, 61, 32,103,101,116, 95,105,115, 95,102,117,110, 99,116, 105,111,110, 40,115,101,108,102, 46,116,121,112,101, 41, 10, 32, 32,105,102, 32,115,101,108,102, 46,112,116,114, 32, 61, 61, 32, 39, 38, 39, 32,111,114, 32,115,101,108,102, 46,112, 116,114, 32, 61, 61, 32, 39, 39, 32,116,104,101,110, 10, 32, 32, 9,114,101,116,117,114,110, 32, 39, 40,116,111,108,117, 97, 95,105,115,118, 97,108,117,101,110,105,108, 40,116,111, 108,117, 97, 95, 83, 44, 39, 46, 46,110, 97,114,103, 46, 46, 39, 44, 38,116,111,108,117, 97, 95,101,114,114, 41, 32,124, 124, 32, 33, 39, 46, 46,105,115, 95,102,117,110, 99, 46, 46, 39, 40,116,111,108,117, 97, 95, 83, 44, 39, 46, 46,110, 97, 114,103, 46, 46, 39, 44, 34, 39, 46, 46,115,101,108,102, 46, 116,121,112,101, 46, 46, 39, 34, 44, 39, 46, 46,100,101,102, 46, 46, 39, 44, 38,116,111,108,117, 97, 95,101,114,114, 41, 41, 39, 10, 32, 32,101,108,115,101, 10, 9,114,101,116,117, 114,110, 32, 39, 33, 39, 46, 46,105,115, 95,102,117,110, 99, 46, 46, 39, 40,116,111,108,117, 97, 95, 83, 44, 39, 46, 46, 110, 97,114,103, 46, 46, 39, 44, 34, 39, 46, 46,115,101,108, 102, 46,116,121,112,101, 46, 46, 39, 34, 44, 39, 46, 46,100, 101,102, 46, 46, 39, 44, 38,116,111,108,117, 97, 95,101,114, 114, 41, 39, 10, 32, 32,101,110,100, 10, 32,101,110,100, 10, 101,110,100, 10, 10,102,117,110, 99,116,105,111,110, 32, 99, 108, 97,115,115, 68,101, 99,108, 97,114, 97,116,105,111,110, 58, 98,117,105,108,100,100,101, 99,108, 97,114, 97,116,105, 111,110, 32, 40,110, 97,114,103, 44, 32, 99,112,108,117,115, 112,108,117,115, 41, 10, 32,108,111, 99, 97,108, 32, 97,114, 114, 97,121, 32, 61, 32,115,101,108,102, 46,100,105,109, 32, 126, 61, 32, 39, 39, 32, 97,110,100, 32,116,111,110,117,109, 98,101,114, 40,115,101,108,102, 46,100,105,109, 41, 61, 61, 110,105,108, 10, 9,108,111, 99, 97,108, 32,108,105,110,101, 32, 61, 32, 34, 34, 10, 32,108,111, 99, 97,108, 32,112,116, 114, 32, 61, 32, 39, 39, 10, 32,108,111, 99, 97,108, 32,109, 111,100, 10, 32,108,111, 99, 97,108, 32,116,121,112,101, 32, 61, 32,115,101,108,102, 46,116,121,112,101, 10, 32,108,111, 99, 97,108, 32,110, 99,116,121,112,101, 32, 61, 32,103,115, 117, 98, 40,115,101,108,102, 46,116,121,112,101, 44, 39, 99, 111,110,115,116, 37,115, 43, 39, 44, 39, 39, 41, 10, 32,105, 102, 32,115,101,108,102, 46,100,105,109, 32,126, 61, 32, 39, 39, 32,116,104,101,110, 10, 9, 32,116,121,112,101, 32, 61, 32,103,115,117, 98, 40,115,101,108,102, 46,116,121,112,101, 44, 39, 99,111,110,115,116, 37,115, 43, 39, 44, 39, 39, 41, 32, 32, 45, 45, 32,101,108,105,109,105,110, 97,116,101,115, 32, 99,111,110,115,116, 32,109,111,100,105,102,105,101,114, 32,102,111,114, 32, 97,114,114, 97,121,115, 10, 32,101,110, 100, 10, 32,105,102, 32,115,101,108,102, 46,112,116,114,126, 61, 39, 39, 32, 97,110,100, 32,110,111,116, 32,105,115, 98, 97,115,105, 99, 40,116,121,112,101, 41, 32,116,104,101,110, 32,112,116,114, 32, 61, 32, 39, 42, 39, 32,101,110,100, 10, 32,108,105,110,101, 32, 61, 32, 99,111,110, 99, 97,116,112, 97,114, 97,109, 40,108,105,110,101, 44, 34, 32, 34, 44,115, 101,108,102, 46,109,111,100, 44,116,121,112,101, 44,112,116, 114, 41, 10, 32,105,102, 32, 97,114,114, 97,121, 32,116,104, 101,110, 10, 32, 32,108,105,110,101, 32, 61, 32, 99,111,110, 99, 97,116,112, 97,114, 97,109, 40,108,105,110,101, 44, 39, 42, 39, 41, 10, 32,101,110,100, 10, 32,108,105,110,101, 32, 61, 32, 99,111,110, 99, 97,116,112, 97,114, 97,109, 40,108, 105,110,101, 44,115,101,108,102, 46,110, 97,109,101, 41, 10, 32,105,102, 32,115,101,108,102, 46,100,105,109, 32,126, 61, 32, 39, 39, 32,116,104,101,110, 10, 32, 32,105,102, 32,116, 111,110,117,109, 98,101,114, 40,115,101,108,102, 46,100,105, 109, 41,126, 61,110,105,108, 32,116,104,101,110, 10, 32, 32, 32,108,105,110,101, 32, 61, 32, 99,111,110, 99, 97,116,112, 97,114, 97,109, 40,108,105,110,101, 44, 39, 91, 39, 44,115, 101,108,102, 46,100,105,109, 44, 39, 93, 59, 39, 41, 10, 32, 32,101,108,115,101, 10, 9,105,102, 32, 99,112,108,117,115, 112,108,117,115, 32,116,104,101,110, 10, 9, 9,108,105,110, 101, 32, 61, 32, 99,111,110, 99, 97,116,112, 97,114, 97,109, 40,108,105,110,101, 44, 39, 32, 61, 32, 77,116,111,108,117, 97, 95,110,101,119, 40, 40, 39, 44,116,121,112,101, 44,112, 116,114, 44, 39, 41, 91, 39, 46, 46,115,101,108,102, 46,100, 105,109, 46, 46, 39, 93, 41, 59, 39, 41, 10, 9,101,108,115, 101, 10, 9, 9,108,105,110,101, 32, 61, 32, 99,111,110, 99, 97,116,112, 97,114, 97,109, 40,108,105,110,101, 44, 39, 32, 61, 32, 40, 39, 44,116,121,112,101, 44,112,116,114, 44, 39, 42, 41, 39, 44, 10, 9, 9, 39,109, 97,108,108,111, 99, 40, 40, 39, 44,115,101,108,102, 46,100,105,109, 44, 39, 41, 42, 115,105,122,101,111,102, 40, 39, 44,116,121,112,101, 44,112, 116,114, 44, 39, 41, 41, 59, 39, 41, 10, 9,101,110,100, 10, 32, 32,101,110,100, 10, 32,101,108,115,101, 10, 32, 32,108, 111, 99, 97,108, 32,116, 32, 61, 32,105,115, 98, 97,115,105, 99, 40,116,121,112,101, 41, 10, 32, 32,108,105,110,101, 32, 61, 32, 99,111,110, 99, 97,116,112, 97,114, 97,109, 40,108, 105,110,101, 44, 39, 32, 61, 32, 39, 41, 10, 32, 32,105,102, 32,116, 32, 61, 61, 32, 39,115,116, 97,116,101, 39, 32,116, 104,101,110, 10, 32, 32, 9,108,105,110,101, 32, 61, 32, 99, 111,110, 99, 97,116,112, 97,114, 97,109, 40,108,105,110,101, 44, 32, 39,116,111,108,117, 97, 95, 83, 59, 39, 41, 10, 32, 32,101,108,115,101, 10, 32, 32, 9, 45, 45,112,114,105,110, 116, 40, 34,116, 32,105,115, 32, 34, 46, 46,116,111,115,116, 114,105,110,103, 40,116, 41, 46, 46, 34, 44, 32,112,116,114, 32,105,115, 32, 34, 46, 46,116,111,115,116,114,105,110,103, 40,115,101,108,102, 46,112,116,114, 41, 41, 10, 32, 32, 9, 105,102, 32,116, 32, 61, 61, 32, 39,110,117,109, 98,101,114, 39, 32, 97,110,100, 32,115,116,114,105,110,103, 46,102,105, 110,100, 40,115,101,108,102, 46,112,116,114, 44, 32, 34, 37, 42, 34, 41, 32,116,104,101,110, 10, 32, 32, 9, 9,116, 32, 61, 32, 39,117,115,101,114,100, 97,116, 97, 39, 10, 32, 32, 9,101,110,100, 10, 9,105,102, 32,110,111,116, 32,116, 32, 97,110,100, 32,112,116,114, 61, 61, 39, 39, 32,116,104,101, 110, 32,108,105,110,101, 32, 61, 32, 99,111,110, 99, 97,116, 112, 97,114, 97,109, 40,108,105,110,101, 44, 39, 42, 39, 41, 32,101,110,100, 10, 9,108,105,110,101, 32, 61, 32, 99,111, 110, 99, 97,116,112, 97,114, 97,109, 40,108,105,110,101, 44, 39, 40, 40, 39, 44,115,101,108,102, 46,109,111,100, 44,116, 121,112,101, 41, 10, 9,105,102, 32,110,111,116, 32,116, 32, 116,104,101,110, 10, 9, 9,108,105,110,101, 32, 61, 32, 99, 111,110, 99, 97,116,112, 97,114, 97,109, 40,108,105,110,101, 44, 39, 42, 39, 41, 10, 9,101,110,100, 10, 9,108,105,110, 101, 32, 61, 32, 99,111,110, 99, 97,116,112, 97,114, 97,109, 40,108,105,110,101, 44, 39, 41, 32, 39, 41, 10, 9,105,102, 32,105,115,101,110,117,109, 40,110, 99,116,121,112,101, 41, 32,116,104,101,110, 10, 9, 9,108,105,110,101, 32, 61, 32, 99,111,110, 99, 97,116,112, 97,114, 97,109, 40,108,105,110, 101, 44, 39, 40,105,110,116, 41, 32, 39, 41, 10, 9,101,110, 100, 10, 9,108,111, 99, 97,108, 32,100,101,102, 32, 61, 32, 48, 10, 9,105,102, 32,115,101,108,102, 46,100,101,102, 32, 126, 61, 32, 39, 39, 32,116,104,101,110, 10, 9, 9,100,101, 102, 32, 61, 32,115,101,108,102, 46,100,101,102, 10, 9, 9, 105,102, 32, 40,112,116,114, 32, 61, 61, 32, 39, 39, 32,111, 114, 32,115,101,108,102, 46,112,116,114, 32, 61, 61, 32, 39, 38, 39, 41, 32, 97,110,100, 32,110,111,116, 32,116, 32,116, 104,101,110, 10, 9, 9, 9,100,101,102, 32, 61, 32, 34, 40, 118,111,105,100, 42, 41, 38, 40, 99,111,110,115,116, 32, 34, 46, 46,116,121,112,101, 46, 46, 34, 41, 34, 46, 46,100,101, 102, 10, 9, 9,101,110,100, 10, 9,101,110,100, 10, 9,105, 102, 32,116, 32,116,104,101,110, 10, 9, 9,108,105,110,101, 32, 61, 32, 99,111,110, 99, 97,116,112, 97,114, 97,109, 40, 108,105,110,101, 44, 39,116,111,108,117, 97, 95,116,111, 39, 46, 46,116, 44, 39, 40,116,111,108,117, 97, 95, 83, 44, 39, 44,110, 97,114,103, 44, 39, 44, 39, 44,100,101,102, 44, 39, 41, 41, 59, 39, 41, 10, 9,101,108,115,101, 10, 9, 9,108, 111, 99, 97,108, 32,116,111, 95,102,117,110, 99, 32, 61, 32, 103,101,116, 95,116,111, 95,102,117,110, 99,116,105,111,110, 40,116,121,112,101, 41, 10, 9, 9,108,105,110,101, 32, 61, 32, 99,111,110, 99, 97,116,112, 97,114, 97,109, 40,108,105, 110,101, 44,116,111, 95,102,117,110, 99, 46, 46, 39, 40,116, 111,108,117, 97, 95, 83, 44, 39, 44,110, 97,114,103, 44, 39, 44, 39, 44,100,101,102, 44, 39, 41, 41, 59, 39, 41, 10, 9, 101,110,100, 10, 32, 32,101,110,100, 10, 32,101,110,100, 10, 9,114,101,116,117,114,110, 32,108,105,110,101, 10,101,110, 100, 10, 10, 45, 45, 32, 68,101, 99,108, 97,114,101, 32,118, 97,114,105, 97, 98,108,101, 10,102,117,110, 99,116,105,111, 110, 32, 99,108, 97,115,115, 68,101, 99,108, 97,114, 97,116, 105,111,110, 58,100,101, 99,108, 97,114,101, 32, 40,110, 97, 114,103, 41, 10, 32,105,102, 32,115,101,108,102, 46,100,105, 109, 32,126, 61, 32, 39, 39, 32, 97,110,100, 32,116,111,110, 117,109, 98,101,114, 40,115,101,108,102, 46,100,105,109, 41, 61, 61,110,105,108, 32,116,104,101,110, 10, 9, 32,111,117, 116,112,117,116, 40, 39, 35,105,102,100,101,102, 32, 95, 95, 99,112,108,117,115,112,108,117,115, 92,110, 39, 41, 10, 9, 9,111,117,116,112,117,116, 40,115,101,108,102, 58, 98,117, 105,108,100,100,101, 99,108, 97,114, 97,116,105,111,110, 40, 110, 97,114,103, 44,116,114,117,101, 41, 41, 10, 9, 9,111, 117,116,112,117,116, 40, 39, 35,101,108,115,101, 92,110, 39, 41, 10, 9, 9,111,117,116,112,117,116, 40,115,101,108,102, 58, 98,117,105,108,100,100,101, 99,108, 97,114, 97,116,105, 111,110, 40,110, 97,114,103, 44,102, 97,108,115,101, 41, 41, 10, 9, 32,111,117,116,112,117,116, 40, 39, 35,101,110,100, 105,102, 92,110, 39, 41, 10, 9,101,108,115,101, 10, 9, 9, 111,117,116,112,117,116, 40,115,101,108,102, 58, 98,117,105, 108,100,100,101, 99,108, 97,114, 97,116,105,111,110, 40,110, 97,114,103, 44,102, 97,108,115,101, 41, 41, 10, 9,101,110, 100, 10,101,110,100, 10, 10, 45, 45, 32, 71,101,116, 32,112, 97,114, 97,109,101,116,101,114, 32,118, 97,108,117,101, 10, 102,117,110, 99,116,105,111,110, 32, 99,108, 97,115,115, 68, 101, 99,108, 97,114, 97,116,105,111,110, 58,103,101,116, 97, 114,114, 97,121, 32, 40,110, 97,114,103, 41, 10, 32,105,102, 32,115,101,108,102, 46,100,105,109, 32,126, 61, 32, 39, 39, 32,116,104,101,110, 10, 9, 32,108,111, 99, 97,108, 32,116, 121,112,101, 32, 61, 32,103,115,117, 98, 40,115,101,108,102, 46,116,121,112,101, 44, 39, 99,111,110,115,116, 32, 39, 44, 39, 39, 41, 10, 32, 32,111,117,116,112,117,116, 40, 39, 32, 32,123, 39, 41, 10, 9, 32,111,117,116,112,117,116, 40, 39, 35,105,102,110,100,101,102, 32, 84, 79, 76, 85, 65, 95, 82, 69, 76, 69, 65, 83, 69, 92,110, 39, 41, 10, 32, 32,108,111, 99, 97,108, 32,100,101,102, 59, 32,105,102, 32,115,101,108, 102, 46,100,101,102,126, 61, 39, 39, 32,116,104,101,110, 32, 100,101,102, 61, 49, 32,101,108,115,101, 32,100,101,102, 61, 48, 32,101,110,100, 10, 9, 9,108,111, 99, 97,108, 32,116, 32, 61, 32,105,115, 98, 97,115,105, 99, 40,116,121,112,101, 41, 10, 9, 9,105,102, 32, 40,116, 41, 32,116,104,101,110, 10, 9, 9, 32, 32, 32,111,117,116,112,117,116, 40, 39, 32, 32, 32,105,102, 32, 40, 33,116,111,108,117, 97, 95,105,115, 39, 46, 46,116, 46, 46, 39, 97,114,114, 97,121, 40,116,111, 108,117, 97, 95, 83, 44, 39, 44,110, 97,114,103, 44, 39, 44, 39, 44,115,101,108,102, 46,100,105,109, 44, 39, 44, 39, 44, 100,101,102, 44, 39, 44, 38,116,111,108,117, 97, 95,101,114, 114, 41, 41, 39, 41, 10, 9, 9,101,108,115,101, 10, 9, 9, 32, 32, 32,111,117,116,112,117,116, 40, 39, 32, 32, 32,105, 102, 32, 40, 33,116,111,108,117, 97, 95,105,115,117,115,101, 114,116,121,112,101, 97,114,114, 97,121, 40,116,111,108,117, 97, 95, 83, 44, 39, 44,110, 97,114,103, 44, 39, 44, 34, 39, 44,116,121,112,101, 44, 39, 34, 44, 39, 44,115,101,108,102, 46,100,105,109, 44, 39, 44, 39, 44,100,101,102, 44, 39, 44, 38,116,111,108,117, 97, 95,101,114,114, 41, 41, 39, 41, 10, 9, 9,101,110,100, 10, 32, 32,111,117,116,112,117,116, 40, 39, 32, 32, 32, 32,103,111,116,111, 32,116,111,108,117, 97, 95,108,101,114,114,111,114, 59, 39, 41, 10, 32, 32,111,117, 116,112,117,116, 40, 39, 32, 32, 32,101,108,115,101, 92,110, 39, 41, 10, 9, 32,111,117,116,112,117,116, 40, 39, 35,101, 110,100,105,102, 92,110, 39, 41, 10, 32, 32,111,117,116,112, 117,116, 40, 39, 32, 32, 32,123, 39, 41, 10, 32, 32,111,117, 116,112,117,116, 40, 39, 32, 32, 32, 32,105,110,116, 32,105, 59, 39, 41, 10, 32, 32,111,117,116,112,117,116, 40, 39, 32, 32, 32, 32,102,111,114, 40,105, 61, 48, 59, 32,105, 60, 39, 46, 46,115,101,108,102, 46,100,105,109, 46, 46, 39, 59,105, 43, 43, 41, 39, 41, 10, 32, 32,108,111, 99, 97,108, 32,116, 32, 61, 32,105,115, 98, 97,115,105, 99, 40,116,121,112,101, 41, 10, 32, 32,108,111, 99, 97,108, 32,112,116,114, 32, 61, 32, 39, 39, 10, 32, 32,105,102, 32,115,101,108,102, 46,112, 116,114,126, 61, 39, 39, 32,116,104,101,110, 32,112,116,114, 32, 61, 32, 39, 42, 39, 32,101,110,100, 10, 32, 32,111,117, 116,112,117,116, 40, 39, 32, 32, 32, 39, 44,115,101,108,102, 46,110, 97,109,101, 46, 46, 39, 91,105, 93, 32, 61, 32, 39, 41, 10, 32, 32,105,102, 32,110,111,116, 32,116, 32, 97,110, 100, 32,112,116,114, 61, 61, 39, 39, 32,116,104,101,110, 32, 111,117,116,112,117,116, 40, 39, 42, 39, 41, 32,101,110,100, 10, 32, 32,111,117,116,112,117,116, 40, 39, 40, 40, 39, 44, 116,121,112,101, 41, 10, 32, 32,105,102, 32,110,111,116, 32, 116, 32,116,104,101,110, 10, 32, 32, 32,111,117,116,112,117, 116, 40, 39, 42, 39, 41, 10, 32, 32,101,110,100, 10, 32, 32, 111,117,116,112,117,116, 40, 39, 41, 32, 39, 41, 10, 32, 32, 108,111, 99, 97,108, 32,100,101,102, 32, 61, 32, 48, 10, 32, 32,105,102, 32,115,101,108,102, 46,100,101,102, 32,126, 61, 32, 39, 39, 32,116,104,101,110, 32,100,101,102, 32, 61, 32, 115,101,108,102, 46,100,101,102, 32,101,110,100, 10, 32, 32, 105,102, 32,116, 32,116,104,101,110, 10, 32, 32, 32,111,117, 116,112,117,116, 40, 39,116,111,108,117, 97, 95,116,111,102, 105,101,108,100, 39, 46, 46,116, 46, 46, 39, 40,116,111,108, 117, 97, 95, 83, 44, 39, 44,110, 97,114,103, 44, 39, 44,105, 43, 49, 44, 39, 44,100,101,102, 44, 39, 41, 41, 59, 39, 41, 10, 32, 32,101,108,115,101, 10, 32, 32, 32,111,117,116,112, 117,116, 40, 39,116,111,108,117, 97, 95,116,111,102,105,101, 108,100,117,115,101,114,116,121,112,101, 40,116,111,108,117, 97, 95, 83, 44, 39, 44,110, 97,114,103, 44, 39, 44,105, 43, 49, 44, 39, 44,100,101,102, 44, 39, 41, 41, 59, 39, 41, 10, 32, 32,101,110,100, 10, 32, 32,111,117,116,112,117,116, 40, 39, 32, 32, 32,125, 39, 41, 10, 32, 32,111,117,116,112,117, 116, 40, 39, 32, 32,125, 39, 41, 10, 32,101,110,100, 10,101, 110,100, 10, 10, 45, 45, 32, 71,101,116, 32,112, 97,114, 97, 109,101,116,101,114, 32,118, 97,108,117,101, 10,102,117,110, 99,116,105,111,110, 32, 99,108, 97,115,115, 68,101, 99,108, 97,114, 97,116,105,111,110, 58,115,101,116, 97,114,114, 97, 121, 32, 40,110, 97,114,103, 41, 10, 32,105,102, 32,110,111, 116, 32,115,116,114,102,105,110,100, 40,115,101,108,102, 46, 116,121,112,101, 44, 39, 99,111,110,115,116, 37,115, 43, 39, 41, 32, 97,110,100, 32,115,101,108,102, 46,100,105,109, 32, 126, 61, 32, 39, 39, 32,116,104,101,110, 10, 9, 32,108,111, 99, 97,108, 32,116,121,112,101, 32, 61, 32,103,115,117, 98, 40,115,101,108,102, 46,116,121,112,101, 44, 39, 99,111,110, 115,116, 32, 39, 44, 39, 39, 41, 10, 32, 32,111,117,116,112, 117,116, 40, 39, 32, 32,123, 39, 41, 10, 32, 32,111,117,116, 112,117,116, 40, 39, 32, 32, 32,105,110,116, 32,105, 59, 39, 41, 10, 32, 32,111,117,116,112,117,116, 40, 39, 32, 32, 32, 102,111,114, 40,105, 61, 48, 59, 32,105, 60, 39, 46, 46,115, 101,108,102, 46,100,105,109, 46, 46, 39, 59,105, 43, 43, 41, 39, 41, 10, 32, 32,108,111, 99, 97,108, 32,116, 44, 99,116, 32, 61, 32,105,115, 98, 97,115,105, 99, 40,116,121,112,101, 41, 10, 32, 32,105,102, 32,116, 32,116,104,101,110, 10, 32, 32, 32,111,117,116,112,117,116, 40, 39, 32, 32, 32, 32,116, 111,108,117, 97, 95,112,117,115,104,102,105,101,108,100, 39, 46, 46,116, 46, 46, 39, 40,116,111,108,117, 97, 95, 83, 44, 39, 44,110, 97,114,103, 44, 39, 44,105, 43, 49, 44, 40, 39, 44, 99,116, 44, 39, 41, 39, 44,115,101,108,102, 46,110, 97, 109,101, 44, 39, 91,105, 93, 41, 59, 39, 41, 10, 32, 32,101, 108,115,101, 10, 32, 32, 32,105,102, 32,115,101,108,102, 46, 112,116,114, 32, 61, 61, 32, 39, 39, 32,116,104,101,110, 10, 32, 32, 32, 32, 32,111,117,116,112,117,116, 40, 39, 32, 32, 32,123, 39, 41, 10, 32, 32, 32, 32, 32,111,117,116,112,117, 116, 40, 39, 35,105,102,100,101,102, 32, 95, 95, 99,112,108, 117,115,112,108,117,115, 92,110, 39, 41, 10, 32, 32, 32, 32, 32,111,117,116,112,117,116, 40, 39, 32, 32, 32, 32,118,111, 105,100, 42, 32,116,111,108,117, 97, 95,111, 98,106, 32, 61, 32, 77,116,111,108,117, 97, 95,110,101,119, 40, 40, 39, 44, 116,121,112,101, 44, 39, 41, 40, 39, 44,115,101,108,102, 46, 110, 97,109,101, 44, 39, 91,105, 93, 41, 41, 59, 39, 41, 10, 32, 32, 32, 32, 32,111,117,116,112,117,116, 40, 39, 32, 32, 32, 32,116,111,108,117, 97, 95,112,117,115,104,102,105,101, 108,100,117,115,101,114,116,121,112,101, 95, 97,110,100, 95, 116, 97,107,101,111,119,110,101,114,115,104,105,112, 40,116, 111,108,117, 97, 95, 83, 44, 39, 44,110, 97,114,103, 44, 39, 44,105, 43, 49, 44,116,111,108,117, 97, 95,111, 98,106, 44, 34, 39, 44,116,121,112,101, 44, 39, 34, 41, 59, 39, 41, 10, 32, 32, 32, 32, 32,111,117,116,112,117,116, 40, 39, 35,101, 108,115,101, 92,110, 39, 41, 10, 32, 32, 32, 32, 32,111,117, 116,112,117,116, 40, 39, 32, 32, 32, 32,118,111,105,100, 42, 32,116,111,108,117, 97, 95,111, 98,106, 32, 61, 32,116,111, 108,117, 97, 95, 99,111,112,121, 40,116,111,108,117, 97, 95, 83, 44, 40,118,111,105,100, 42, 41, 38, 39, 44,115,101,108, 102, 46,110, 97,109,101, 44, 39, 91,105, 93, 44,115,105,122, 101,111,102, 40, 39, 44,116,121,112,101, 44, 39, 41, 41, 59, 39, 41, 10, 32, 32, 32, 32, 32,111,117,116,112,117,116, 40, 39, 32, 32, 32, 32,116,111,108,117, 97, 95,112,117,115,104, 102,105,101,108,100,117,115,101,114,116,121,112,101, 40,116, 111,108,117, 97, 95, 83, 44, 39, 44,110, 97,114,103, 44, 39, 44,105, 43, 49, 44,116,111,108,117, 97, 95,111, 98,106, 44, 34, 39, 44,116,121,112,101, 44, 39, 34, 41, 59, 39, 41, 10, 32, 32, 32, 32, 32,111,117,116,112,117,116, 40, 39, 35,101, 110,100,105,102, 92,110, 39, 41, 10, 32, 32, 32, 32, 32,111, 117,116,112,117,116, 40, 39, 32, 32, 32,125, 39, 41, 10, 32, 32, 32,101,108,115,101, 10, 32, 32, 32, 32,111,117,116,112, 117,116, 40, 39, 32, 32, 32,116,111,108,117, 97, 95,112,117, 115,104,102,105,101,108,100,117,115,101,114,116,121,112,101, 40,116,111,108,117, 97, 95, 83, 44, 39, 44,110, 97,114,103, 44, 39, 44,105, 43, 49, 44, 40,118,111,105,100, 42, 41, 39, 44,115,101,108,102, 46,110, 97,109,101, 44, 39, 91,105, 93, 44, 34, 39, 44,116,121,112,101, 44, 39, 34, 41, 59, 39, 41, 10, 32, 32, 32,101,110,100, 10, 32, 32,101,110,100, 10, 32, 32,111,117,116,112,117,116, 40, 39, 32, 32,125, 39, 41, 10, 32,101,110,100, 10,101,110,100, 10, 10, 45, 45, 32, 70,114, 101,101, 32,100,121,110, 97,109,105, 99, 97,108,108,121, 32, 97,108,108,111, 99, 97,116,101,100, 32, 97,114,114, 97,121, 10,102,117,110, 99,116,105,111,110, 32, 99,108, 97,115,115, 68,101, 99,108, 97,114, 97,116,105,111,110, 58,102,114,101, 101, 97,114,114, 97,121, 32, 40, 41, 10, 32,105,102, 32,115, 101,108,102, 46,100,105,109, 32,126, 61, 32, 39, 39, 32, 97, 110,100, 32,116,111,110,117,109, 98,101,114, 40,115,101,108, 102, 46,100,105,109, 41, 61, 61,110,105,108, 32,116,104,101, 110, 10, 9, 32,111,117,116,112,117,116, 40, 39, 35,105,102, 100,101,102, 32, 95, 95, 99,112,108,117,115,112,108,117,115, 92,110, 39, 41, 10, 9, 9,111,117,116,112,117,116, 40, 39, 32, 32, 77,116,111,108,117, 97, 95,100,101,108,101,116,101, 95,100,105,109, 40, 39, 44,115,101,108,102, 46,110, 97,109, 101, 44, 39, 41, 59, 39, 41, 10, 9, 32,111,117,116,112,117, 116, 40, 39, 35,101,108,115,101, 92,110, 39, 41, 10, 32, 32, 111,117,116,112,117,116, 40, 39, 32, 32,102,114,101,101, 40, 39, 44,115,101,108,102, 46,110, 97,109,101, 44, 39, 41, 59, 39, 41, 10, 9, 32,111,117,116,112,117,116, 40, 39, 35,101, 110,100,105,102, 92,110, 39, 41, 10, 32,101,110,100, 10,101, 110,100, 10, 10, 45, 45, 32, 80, 97,115,115, 32,112, 97,114, 97,109,101,116,101,114, 10,102,117,110, 99,116,105,111,110, 32, 99,108, 97,115,115, 68,101, 99,108, 97,114, 97,116,105, 111,110, 58,112, 97,115,115,112, 97,114, 32, 40, 41, 10, 32, 105,102, 32,115,101,108,102, 46,112,116,114, 61, 61, 39, 38, 39, 32, 97,110,100, 32,110,111,116, 32,105,115, 98, 97,115, 105, 99, 40,115,101,108,102, 46,116,121,112,101, 41, 32,116, 104,101,110, 10, 32, 32,111,117,116,112,117,116, 40, 39, 42, 39, 46, 46,115,101,108,102, 46,110, 97,109,101, 41, 10, 32, 101,108,115,101,105,102, 32,115,101,108,102, 46,114,101,116, 61, 61, 39, 42, 39, 32,116,104,101,110, 10, 32, 32,111,117, 116,112,117,116, 40, 39, 38, 39, 46, 46,115,101,108,102, 46, 110, 97,109,101, 41, 10, 32,101,108,115,101, 10, 32, 32,111, 117,116,112,117,116, 40,115,101,108,102, 46,110, 97,109,101, 41, 10, 32,101,110,100, 10,101,110,100, 10, 10, 45, 45, 32, 82,101,116,117,114,110, 32,112, 97,114, 97,109,101,116,101, 114, 32,118, 97,108,117,101, 10,102,117,110, 99,116,105,111, 110, 32, 99,108, 97,115,115, 68,101, 99,108, 97,114, 97,116, 105,111,110, 58,114,101,116,118, 97,108,117,101, 32, 40, 41, 10, 32,105,102, 32,115,101,108,102, 46,114,101,116, 32,126, 61, 32, 39, 39, 32,116,104,101,110, 10, 32, 32,108,111, 99, 97,108, 32,116, 44, 99,116, 32, 61, 32,105,115, 98, 97,115, 105, 99, 40,115,101,108,102, 46,116,121,112,101, 41, 10, 32, 32,105,102, 32,116, 32, 97,110,100, 32,116,126, 61, 39, 39, 32,116,104,101,110, 10, 32, 32, 32,111,117,116,112,117,116, 40, 39, 32, 32, 32,116,111,108,117, 97, 95,112,117,115,104, 39, 46, 46,116, 46, 46, 39, 40,116,111,108,117, 97, 95, 83, 44, 40, 39, 44, 99,116, 44, 39, 41, 39, 46, 46,115,101,108, 102, 46,110, 97,109,101, 46, 46, 39, 41, 59, 39, 41, 10, 32, 32,101,108,115,101, 10, 32, 32, 32,108,111, 99, 97,108, 32, 112,117,115,104, 95,102,117,110, 99, 32, 61, 32,103,101,116, 95,112,117,115,104, 95,102,117,110, 99,116,105,111,110, 40, 115,101,108,102, 46,116,121,112,101, 41, 10, 32, 32, 32,111, 117,116,112,117,116, 40, 39, 32, 32, 32, 39, 44,112,117,115, 104, 95,102,117,110, 99, 44, 39, 40,116,111,108,117, 97, 95, 83, 44, 40,118,111,105,100, 42, 41, 39, 46, 46,115,101,108, 102, 46,110, 97,109,101, 46, 46, 39, 44, 34, 39, 44,115,101, 108,102, 46,116,121,112,101, 44, 39, 34, 41, 59, 39, 41, 10, 32, 32,101,110,100, 10, 32, 32,114,101,116,117,114,110, 32, 49, 10, 32,101,110,100, 10, 32,114,101,116,117,114,110, 32, 48, 10,101,110,100, 10, 10, 45, 45, 32, 73,110,116,101,114, 110, 97,108, 32, 99,111,110,115,116,114,117, 99,116,111,114, 10,102,117,110, 99,116,105,111,110, 32, 95, 68,101, 99,108, 97,114, 97,116,105,111,110, 32, 40,116, 41, 10, 10, 32,115, 101,116,109,101,116, 97,116, 97, 98,108,101, 40,116, 44, 99, 108, 97,115,115, 68,101, 99,108, 97,114, 97,116,105,111,110, 41, 10, 32,116, 58, 98,117,105,108,100,110, 97,109,101,115, 40, 41, 10, 32,116, 58, 99,104,101, 99,107,110, 97,109,101, 40, 41, 10, 32,116, 58, 99,104,101, 99,107,116,121,112,101, 40, 41, 10, 32,108,111, 99, 97,108, 32,102,116, 32, 61, 32, 102,105,110,100,116,121,112,101, 40,116, 46,116,121,112,101, 41, 32,111,114, 32,116, 46,116,121,112,101, 10, 32,105,102, 32,110,111,116, 32,105,115,101,110,117,109, 40,102,116, 41, 32,116,104,101,110, 10, 9,116, 46,109,111,100, 44, 32,116, 46,116,121,112,101, 32, 61, 32, 97,112,112,108,121,116,121, 112,101,100,101,102, 40,116, 46,109,111,100, 44, 32,102,116, 41, 10, 32,101,110,100, 10, 10, 32,105,102, 32,116, 46,107, 105,110,100, 61, 61, 34,118, 97,114, 34, 32, 97,110,100, 32, 40,115,116,114,105,110,103, 46,102,105,110,100, 40,116, 46, 109,111,100, 44, 32, 34,116,111,108,117, 97, 95,112,114,111, 112,101,114,116,121, 37,115, 34, 41, 32,111,114, 32,115,116, 114,105,110,103, 46,102,105,110,100, 40,116, 46,109,111,100, 44, 32, 34,116,111,108,117, 97, 95,112,114,111,112,101,114, 116,121, 36, 34, 41, 41, 32,116,104,101,110, 10, 32, 9,116, 46,109,111,100, 32, 61, 32,115,116,114,105,110,103, 46,103, 115,117, 98, 40,116, 46,109,111,100, 44, 32, 34,116,111,108, 117, 97, 95,112,114,111,112,101,114,116,121, 34, 44, 32, 34, 116,111,108,117, 97, 95,112,114,111,112,101,114,116,121, 95, 95, 34, 46, 46,103,101,116, 95,112,114,111,112,101,114,116, 121, 95,116,121,112,101, 40, 41, 41, 10, 32,101,110,100, 10, 10, 32,114,101,116,117,114,110, 32,116, 10,101,110,100, 10, 10, 45, 45, 32, 67,111,110,115,116,114,117, 99,116,111,114, 10, 45, 45, 32, 69,120,112,101, 99,116,115, 32,116,104,101, 32,115,116,114,105,110,103, 32,100,101, 99,108, 97,114, 97, 116,105,111,110, 46, 10, 45, 45, 32, 84,104,101, 32,107,105, 110,100, 32,111,102, 32,100,101, 99,108, 97,114, 97,116,105, 111,110, 32, 99, 97,110, 32, 98,101, 32, 34,118, 97,114, 34, 32,111,114, 32, 34,102,117,110, 99, 34, 46, 10,102,117,110, 99,116,105,111,110, 32, 68,101, 99,108, 97,114, 97,116,105, 111,110, 32, 40,115, 44,107,105,110,100, 44,105,115, 95,112, 97,114, 97,109,101,116,101,114, 41, 10, 10, 32, 45, 45, 32, 101,108,105,109,105,110, 97,116,101, 32,115,112, 97, 99,101, 115, 32,105,102, 32,100,101,102, 97,117,108,116, 32,118, 97, 108,117,101, 32,105,115, 32,112,114,111,118,105,100,101,100, 10, 32,115, 32, 61, 32,103,115,117, 98, 40,115, 44, 34, 37, 115, 42, 61, 37,115, 42, 34, 44, 34, 61, 34, 41, 10, 32,115, 32, 61, 32,103,115,117, 98, 40,115, 44, 32, 34, 37,115, 42, 60, 34, 44, 32, 34, 60, 34, 41, 10, 10, 32,108,111, 99, 97, 108, 32,100,101,102, 98, 44,116,109,112,100,101,102, 10, 32, 100,101,102, 98, 44, 95, 44,116,109,112,100,101,102, 32, 61, 32,115,116,114,105,110,103, 46,102,105,110,100, 40,115, 44, 32, 34, 40, 61, 46, 42, 41, 36, 34, 41, 10, 32,105,102, 32, 100,101,102, 98, 32,116,104,101,110, 10, 32, 9,115, 32, 61, 32,115,116,114,105,110,103, 46,103,115,117, 98, 40,115, 44, 32, 34, 61, 46, 42, 36, 34, 44, 32, 34, 34, 41, 10, 32,101, 108,115,101, 10, 32, 9,116,109,112,100,101,102, 32, 61, 32, 39, 39, 10, 32,101,110,100, 10, 32,105,102, 32,107,105,110, 100, 32, 61, 61, 32, 34,118, 97,114, 34, 32,116,104,101,110, 10, 32, 32, 45, 45, 32, 99,104,101, 99,107, 32,116,104,101, 32,102,111,114,109, 58, 32,118,111,105,100, 10, 32, 32,105, 102, 32,115, 32, 61, 61, 32, 39, 39, 32,111,114, 32,115, 32, 61, 61, 32, 39,118,111,105,100, 39, 32,116,104,101,110, 10, 32, 32, 32,114,101,116,117,114,110, 32, 95, 68,101, 99,108, 97,114, 97,116,105,111,110,123,116,121,112,101, 32, 61, 32, 39,118,111,105,100, 39, 44, 32,107,105,110,100, 32, 61, 32, 107,105,110,100, 44, 32,105,115, 95,112, 97,114, 97,109,101, 116,101,114, 32, 61, 32,105,115, 95,112, 97,114, 97,109,101, 116,101,114,125, 10, 32, 32,101,110,100, 10, 32,101,110,100, 10, 10, 32, 45, 45, 32, 99,104,101, 99,107, 32,116,104,101, 32,102,111,114,109, 58, 32,109,111,100, 32,116,121,112,101, 42, 38, 32,110, 97,109,101, 10, 32,108,111, 99, 97,108, 32, 116, 32, 61, 32,115,112,108,105,116, 95, 99, 95,116,111,107, 101,110,115, 40,115, 44, 39, 37, 42, 37,115, 42, 38, 39, 41, 10, 32,105,102, 32,116, 46,110, 32, 61, 61, 32, 50, 32,116, 104,101,110, 10, 32, 32,105,102, 32,107,105,110,100, 32, 61, 61, 32, 39,102,117,110, 99, 39, 32,116,104,101,110, 10, 32, 32, 32,101,114,114,111,114, 40, 34, 35,105,110,118, 97,108, 105,100, 32,102,117,110, 99,116,105,111,110, 32,114,101,116, 117,114,110, 32,116,121,112,101, 58, 32, 34, 46, 46,115, 41, 10, 32, 32,101,110,100, 10, 32, 32, 45, 45,108,111, 99, 97, 108, 32,109, 32, 61, 32,115,112,108,105,116, 40,116, 91, 49, 93, 44, 39, 37,115, 37,115, 42, 39, 41, 10, 32, 32,108,111, 99, 97,108, 32,109, 32, 61, 32,115,112,108,105,116, 95, 99, 95,116,111,107,101,110,115, 40,116, 91, 49, 93, 44, 39, 37, 115, 43, 39, 41, 10, 32, 32,114,101,116,117,114,110, 32, 95, 68,101, 99,108, 97,114, 97,116,105,111,110,123, 10, 32, 32, 32,110, 97,109,101, 32, 61, 32,116, 91, 50, 93, 46, 46,116, 109,112,100,101,102, 44, 10, 32, 32, 32,112,116,114, 32, 61, 32, 39, 42, 39, 44, 10, 32, 32, 32,114,101,116, 32, 61, 32, 39, 38, 39, 44, 10, 32, 32, 32, 45, 45,116,121,112,101, 32, 61, 32,114,101, 98,117,105,108,100, 95,116,101,109,112,108, 97,116,101, 40,109, 91,109, 46,110, 93, 44, 32,116, 98, 44, 32,116,105,109,112,108, 41, 44, 10, 32, 32, 32,116,121,112, 101, 32, 61, 32,109, 91,109, 46,110, 93, 44, 10, 32, 32, 32, 109,111,100, 32, 61, 32, 99,111,110, 99, 97,116, 40,109, 44, 49, 44,109, 46,110, 45, 49, 41, 44, 10, 32, 32, 32,105,115, 95,112, 97,114, 97,109,101,116,101,114, 32, 61, 32,105,115, 95,112, 97,114, 97,109,101,116,101,114, 44, 10, 32, 32, 32, 107,105,110,100, 32, 61, 32,107,105,110,100, 10, 32, 32,125, 10, 32,101,110,100, 10, 10, 32, 45, 45, 32, 99,104,101, 99, 107, 32,116,104,101, 32,102,111,114,109, 58, 32,109,111,100, 32,116,121,112,101, 42, 42, 32,110, 97,109,101, 10, 32,116, 32, 61, 32,115,112,108,105,116, 95, 99, 95,116,111,107,101, 110,115, 40,115, 44, 39, 37, 42, 37,115, 42, 37, 42, 39, 41, 10, 32,105,102, 32,116, 46,110, 32, 61, 61, 32, 50, 32,116, 104,101,110, 10, 32, 32,105,102, 32,107,105,110,100, 32, 61, 61, 32, 39,102,117,110, 99, 39, 32,116,104,101,110, 10, 32, 32, 32,101,114,114,111,114, 40, 34, 35,105,110,118, 97,108, 105,100, 32,102,117,110, 99,116,105,111,110, 32,114,101,116, 117,114,110, 32,116,121,112,101, 58, 32, 34, 46, 46,115, 41, 10, 32, 32,101,110,100, 10, 32, 32, 45, 45,108,111, 99, 97, 108, 32,109, 32, 61, 32,115,112,108,105,116, 40,116, 91, 49, 93, 44, 39, 37,115, 37,115, 42, 39, 41, 10, 32, 32,108,111, 99, 97,108, 32,109, 32, 61, 32,115,112,108,105,116, 95, 99, 95,116,111,107,101,110,115, 40,116, 91, 49, 93, 44, 39, 37, 115, 43, 39, 41, 10, 32, 32,114,101,116,117,114,110, 32, 95, 68,101, 99,108, 97,114, 97,116,105,111,110,123, 10, 32, 32, 32,110, 97,109,101, 32, 61, 32,116, 91, 50, 93, 46, 46,116, 109,112,100,101,102, 44, 10, 32, 32, 32,112,116,114, 32, 61, 32, 39, 42, 39, 44, 10, 32, 32, 32,114,101,116, 32, 61, 32, 39, 42, 39, 44, 10, 32, 32, 32, 45, 45,116,121,112,101, 32, 61, 32,114,101, 98,117,105,108,100, 95,116,101,109,112,108, 97,116,101, 40,109, 91,109, 46,110, 93, 44, 32,116, 98, 44, 32,116,105,109,112,108, 41, 44, 10, 32, 32, 32,116,121,112, 101, 32, 61, 32,109, 91,109, 46,110, 93, 44, 10, 32, 32, 32, 109,111,100, 32, 61, 32, 99,111,110, 99, 97,116, 40,109, 44, 49, 44,109, 46,110, 45, 49, 41, 44, 10, 32, 32, 32,105,115, 95,112, 97,114, 97,109,101,116,101,114, 32, 61, 32,105,115, 95,112, 97,114, 97,109,101,116,101,114, 44, 10, 32, 32, 32, 107,105,110,100, 32, 61, 32,107,105,110,100, 10, 32, 32,125, 10, 32,101,110,100, 10, 10, 32, 45, 45, 32, 99,104,101, 99, 107, 32,116,104,101, 32,102,111,114,109, 58, 32,109,111,100, 32,116,121,112,101, 38, 32,110, 97,109,101, 10, 32,116, 32, 61, 32,115,112,108,105,116, 95, 99, 95,116,111,107,101,110, 115, 40,115, 44, 39, 38, 39, 41, 10, 32,105,102, 32,116, 46, 110, 32, 61, 61, 32, 50, 32,116,104,101,110, 10, 32, 32, 45, 45,108,111, 99, 97,108, 32,109, 32, 61, 32,115,112,108,105, 116, 40,116, 91, 49, 93, 44, 39, 37,115, 37,115, 42, 39, 41, 10, 32, 32,108,111, 99, 97,108, 32,109, 32, 61, 32,115,112, 108,105,116, 95, 99, 95,116,111,107,101,110,115, 40,116, 91, 49, 93, 44, 39, 37,115, 43, 39, 41, 10, 32, 32,114,101,116, 117,114,110, 32, 95, 68,101, 99,108, 97,114, 97,116,105,111, 110,123, 10, 32, 32, 32,110, 97,109,101, 32, 61, 32,116, 91, 50, 93, 46, 46,116,109,112,100,101,102, 44, 10, 32, 32, 32, 112,116,114, 32, 61, 32, 39, 38, 39, 44, 10, 32, 32, 32, 45, 45,116,121,112,101, 32, 61, 32,114,101, 98,117,105,108,100, 95,116,101,109,112,108, 97,116,101, 40,109, 91,109, 46,110, 93, 44, 32,116, 98, 44, 32,116,105,109,112,108, 41, 44, 10, 32, 32, 32,116,121,112,101, 32, 61, 32,109, 91,109, 46,110, 93, 44, 10, 32, 32, 32,109,111,100, 32, 61, 32, 99,111,110, 99, 97,116, 40,109, 44, 49, 44,109, 46,110, 45, 49, 41, 44, 10, 32, 32, 32,105,115, 95,112, 97,114, 97,109,101,116,101, 114, 32, 61, 32,105,115, 95,112, 97,114, 97,109,101,116,101, 114, 44, 10, 32, 32, 32,107,105,110,100, 32, 61, 32,107,105, 110,100, 10, 32, 32,125, 10, 32,101,110,100, 10, 10, 32, 45, 45, 32, 99,104,101, 99,107, 32,116,104,101, 32,102,111,114, 109, 58, 32,109,111,100, 32,116,121,112,101, 42, 32,110, 97, 109,101, 10, 32,108,111, 99, 97,108, 32,115, 49, 32, 61, 32, 103,115,117, 98, 40,115, 44, 34, 40, 37, 98, 92, 91, 92, 93, 41, 34, 44,102,117,110, 99,116,105,111,110, 32, 40,110, 41, 32,114,101,116,117,114,110, 32,103,115,117, 98, 40,110, 44, 39, 37, 42, 39, 44, 39, 92, 49, 39, 41, 32,101,110,100, 41, 10, 32,116, 32, 61, 32,115,112,108,105,116, 95, 99, 95,116, 111,107,101,110,115, 40,115, 49, 44, 39, 37, 42, 39, 41, 10, 32,105,102, 32,116, 46,110, 32, 61, 61, 32, 50, 32,116,104, 101,110, 10, 32, 32,116, 91, 50, 93, 32, 61, 32,103,115,117, 98, 40,116, 91, 50, 93, 44, 39, 92, 49, 39, 44, 39, 37, 42, 39, 41, 32, 45, 45, 32,114,101,115,116,111,114,101, 32, 42, 32,105,110, 32,100,105,109,101,110,115,105,111,110, 32,101, 120,112,114,101,115,115,105,111,110, 10, 32, 32, 45, 45,108, 111, 99, 97,108, 32,109, 32, 61, 32,115,112,108,105,116, 40, 116, 91, 49, 93, 44, 39, 37,115, 37,115, 42, 39, 41, 10, 32, 32,108,111, 99, 97,108, 32,109, 32, 61, 32,115,112,108,105, 116, 95, 99, 95,116,111,107,101,110,115, 40,116, 91, 49, 93, 44, 39, 37,115, 43, 39, 41, 10, 32, 32,114,101,116,117,114, 110, 32, 95, 68,101, 99,108, 97,114, 97,116,105,111,110,123, 10, 32, 32, 32,110, 97,109,101, 32, 61, 32,116, 91, 50, 93, 46, 46,116,109,112,100,101,102, 44, 10, 32, 32, 32,112,116, 114, 32, 61, 32, 39, 42, 39, 44, 10, 32, 32, 32,116,121,112, 101, 32, 61, 32,109, 91,109, 46,110, 93, 44, 10, 32, 32, 32, 45, 45,116,121,112,101, 32, 61, 32,114,101, 98,117,105,108, 100, 95,116,101,109,112,108, 97,116,101, 40,109, 91,109, 46, 110, 93, 44, 32,116, 98, 44, 32,116,105,109,112,108, 41, 44, 10, 32, 32, 32,109,111,100, 32, 61, 32, 99,111,110, 99, 97, 116, 40,109, 44, 49, 44,109, 46,110, 45, 49, 41, 32, 32, 32, 44, 10, 32, 32, 32,105,115, 95,112, 97,114, 97,109,101,116, 101,114, 32, 61, 32,105,115, 95,112, 97,114, 97,109,101,116, 101,114, 44, 10, 32, 32, 32,107,105,110,100, 32, 61, 32,107, 105,110,100, 10, 32, 32,125, 10, 32,101,110,100, 10, 10, 32, 105,102, 32,107,105,110,100, 32, 61, 61, 32, 39,118, 97,114, 39, 32,116,104,101,110, 10, 32, 32, 45, 45, 32, 99,104,101, 99,107, 32,116,104,101, 32,102,111,114,109, 58, 32,109,111, 100, 32,116,121,112,101, 32,110, 97,109,101, 10, 32, 32, 45, 45,116, 32, 61, 32,115,112,108,105,116, 40,115, 44, 39, 37, 115, 37,115, 42, 39, 41, 10, 32, 32,116, 32, 61, 32,115,112, 108,105,116, 95, 99, 95,116,111,107,101,110,115, 40,115, 44, 39, 37,115, 43, 39, 41, 10, 32, 32,108,111, 99, 97,108, 32, 118, 10, 32, 32,105,102, 32,102,105,110,100,116,121,112,101, 40,116, 91,116, 46,110, 93, 41, 32,116,104,101,110, 32,118, 32, 61, 32, 99,114,101, 97,116,101, 95,118, 97,114,110, 97, 109,101, 40, 41, 32,101,108,115,101, 32,118, 32, 61, 32,116, 91,116, 46,110, 93, 59, 32,116, 46,110, 32, 61, 32,116, 46, 110, 45, 49, 32,101,110,100, 10, 32, 32,114,101,116,117,114, 110, 32, 95, 68,101, 99,108, 97,114, 97,116,105,111,110,123, 10, 32, 32, 32,110, 97,109,101, 32, 61, 32,118, 46, 46,116, 109,112,100,101,102, 44, 10, 32, 32, 32, 45, 45,116,121,112, 101, 32, 61, 32,114,101, 98,117,105,108,100, 95,116,101,109, 112,108, 97,116,101, 40,116, 91,116, 46,110, 93, 44, 32,116, 98, 44, 32,116,105,109,112,108, 41, 44, 10, 32, 32, 32,116, 121,112,101, 32, 61, 32,116, 91,116, 46,110, 93, 44, 10, 32, 32, 32,109,111,100, 32, 61, 32, 99,111,110, 99, 97,116, 40, 116, 44, 49, 44,116, 46,110, 45, 49, 41, 44, 10, 32, 32, 32, 105,115, 95,112, 97,114, 97,109,101,116,101,114, 32, 61, 32, 105,115, 95,112, 97,114, 97,109,101,116,101,114, 44, 10, 32, 32, 32,107,105,110,100, 32, 61, 32,107,105,110,100, 10, 32, 32,125, 10, 10, 32,101,108,115,101, 32, 45, 45, 32,107,105, 110,100, 32, 61, 61, 32, 34,102,117,110, 99, 34, 10, 10, 32, 32, 45, 45, 32, 99,104,101, 99,107, 32,116,104,101, 32,102, 111,114,109, 58, 32,109,111,100, 32,116,121,112,101, 32,110, 97,109,101, 10, 32, 32, 45, 45,116, 32, 61, 32,115,112,108, 105,116, 40,115, 44, 39, 37,115, 37,115, 42, 39, 41, 10, 32, 32,116, 32, 61, 32,115,112,108,105,116, 95, 99, 95,116,111, 107,101,110,115, 40,115, 44, 39, 37,115, 43, 39, 41, 10, 32, 32,108,111, 99, 97,108, 32,118, 32, 61, 32,116, 91,116, 46, 110, 93, 32, 32, 45, 45, 32,108, 97,115,116, 32,119,111,114, 100, 32,105,115, 32,116,104,101, 32,102,117,110, 99,116,105, 111,110, 32,110, 97,109,101, 10, 32, 32,108,111, 99, 97,108, 32,116,112, 44,109,100, 10, 32, 32,105,102, 32,116, 46,110, 62, 49, 32,116,104,101,110, 10, 32, 32, 32,116,112, 32, 61, 32,116, 91,116, 46,110, 45, 49, 93, 10, 32, 32, 32,109,100, 32, 61, 32, 99,111,110, 99, 97,116, 40,116, 44, 49, 44,116, 46,110, 45, 50, 41, 10, 32, 32,101,110,100, 10, 32, 32, 45, 45,105,102, 32,116,112, 32,116,104,101,110, 32,116,112, 32, 61, 32,114,101, 98,117,105,108,100, 95,116,101,109,112,108, 97,116,101, 40,116,112, 44, 32,116, 98, 44, 32,116,105,109, 112,108, 41, 32,101,110,100, 10, 32, 32,114,101,116,117,114, 110, 32, 95, 68,101, 99,108, 97,114, 97,116,105,111,110,123, 10, 32, 32, 32,110, 97,109,101, 32, 61, 32,118, 44, 10, 32, 32, 32,116,121,112,101, 32, 61, 32,116,112, 44, 10, 32, 32, 32,109,111,100, 32, 61, 32,109,100, 44, 10, 32, 32, 32,105, 115, 95,112, 97,114, 97,109,101,116,101,114, 32, 61, 32,105, 115, 95,112, 97,114, 97,109,101,116,101,114, 44, 10, 32, 32, 32,107,105,110,100, 32, 61, 32,107,105,110,100, 10, 32, 32, 125, 10, 32,101,110,100, 10, 10,101,110,100,32 }; tolua_dobuffer(tolua_S,(char*)B,sizeof(B),"tolua embedded: lua/tolua++/src/bin/lua/declaration.lua"); lua_settop(tolua_S, top); } /* end of embedded lua code */ { /* begin embedded lua code */ int top = lua_gettop(tolua_S); static unsigned char B[] = { 45, 45, 32,116,111,108,117, 97, 58, 32,118, 97,114,105, 97, 98,108,101, 32, 99,108, 97,115,115, 10, 45, 45, 32, 87,114, 105,116,116,101,110, 32, 98,121, 32, 87, 97,108,100,101,109, 97,114, 32, 67,101,108,101,115, 10, 45, 45, 32, 84,101, 67, 71,114, 97,102, 47, 80, 85, 67, 45, 82,105,111, 10, 45, 45, 32, 74,117,108, 32, 49, 57, 57, 56, 10, 45, 45, 32, 36, 73, 100, 58, 32, 36, 10, 10, 45, 45, 32, 84,104,105,115, 32, 99, 111,100,101, 32,105,115, 32,102,114,101,101, 32,115,111,102, 116,119, 97,114,101, 59, 32,121,111,117, 32, 99, 97,110, 32, 114,101,100,105,115,116,114,105, 98,117,116,101, 32,105,116, 32, 97,110,100, 47,111,114, 32,109,111,100,105,102,121, 32, 105,116, 46, 10, 45, 45, 32, 84,104,101, 32,115,111,102,116, 119, 97,114,101, 32,112,114,111,118,105,100,101,100, 32,104, 101,114,101,117,110,100,101,114, 32,105,115, 32,111,110, 32, 97,110, 32, 34, 97,115, 32,105,115, 34, 32, 98, 97,115,105, 115, 44, 32, 97,110,100, 10, 45, 45, 32,116,104,101, 32, 97, 117,116,104,111,114, 32,104, 97,115, 32,110,111, 32,111, 98, 108,105,103, 97,116,105,111,110, 32,116,111, 32,112,114,111, 118,105,100,101, 32,109, 97,105,110,116,101,110, 97,110, 99, 101, 44, 32,115,117,112,112,111,114,116, 44, 32,117,112,100, 97,116,101,115, 44, 10, 45, 45, 32,101,110,104, 97,110, 99, 101,109,101,110,116,115, 44, 32,111,114, 32,109,111,100,105, 102,105, 99, 97,116,105,111,110,115, 46, 10, 10, 10, 45, 45, 32, 86, 97,114,105, 97, 98,108,101, 32, 99,108, 97,115,115, 10, 45, 45, 32, 82,101,112,114,101,115,101,110,116,115, 32, 97, 32,101,120,116,101,114,110, 32,118, 97,114,105, 97, 98, 108,101, 32,111,114, 32, 97, 32,112,117, 98,108,105, 99, 32, 109,101,109, 98,101,114, 32,111,102, 32, 97, 32, 99,108, 97, 115,115, 46, 10, 45, 45, 32, 83,116,111,114,101,115, 32, 97, 108,108, 32,102,105,101,108,100,115, 32,112,114,101,115,101, 110,116, 32,105,110, 32, 97, 32,100,101, 99,108, 97,114, 97, 116,105,111,110, 46, 10, 99,108, 97,115,115, 86, 97,114,105, 97, 98,108,101, 32, 61, 32,123, 10, 32, 95,103,101,116, 32, 61, 32,123,125, 44, 32, 32, 32, 45, 45, 32,109, 97,112,112, 101,100, 32,103,101,116, 32,102,117,110, 99,116,105,111,110, 115, 10, 32, 95,115,101,116, 32, 61, 32,123,125, 44, 32, 32, 32, 45, 45, 32,109, 97,112,112,101,100, 32,115,101,116, 32, 102,117,110, 99,116,105,111,110,115, 10,125, 10, 99,108, 97, 115,115, 86, 97,114,105, 97, 98,108,101, 46, 95, 95,105,110, 100,101,120, 32, 61, 32, 99,108, 97,115,115, 86, 97,114,105, 97, 98,108,101, 10,115,101,116,109,101,116, 97,116, 97, 98, 108,101, 40, 99,108, 97,115,115, 86, 97,114,105, 97, 98,108, 101, 44, 99,108, 97,115,115, 68,101, 99,108, 97,114, 97,116, 105,111,110, 41, 10, 10, 45, 45, 32, 80,114,105,110,116, 32, 109,101,116,104,111,100, 10,102,117,110, 99,116,105,111,110, 32, 99,108, 97,115,115, 86, 97,114,105, 97, 98,108,101, 58, 112,114,105,110,116, 32, 40,105,100,101,110,116, 44, 99,108, 111,115,101, 41, 10, 32,112,114,105,110,116, 40,105,100,101, 110,116, 46, 46, 34, 86, 97,114,105, 97, 98,108,101,123, 34, 41, 10, 32,112,114,105,110,116, 40,105,100,101,110,116, 46, 46, 34, 32,109,111,100, 32, 32, 61, 32, 39, 34, 46, 46,115, 101,108,102, 46,109,111,100, 46, 46, 34, 39, 44, 34, 41, 10, 32,112,114,105,110,116, 40,105,100,101,110,116, 46, 46, 34, 32,116,121,112,101, 32, 61, 32, 39, 34, 46, 46,115,101,108, 102, 46,116,121,112,101, 46, 46, 34, 39, 44, 34, 41, 10, 32, 112,114,105,110,116, 40,105,100,101,110,116, 46, 46, 34, 32, 112,116,114, 32, 32, 61, 32, 39, 34, 46, 46,115,101,108,102, 46,112,116,114, 46, 46, 34, 39, 44, 34, 41, 10, 32,112,114, 105,110,116, 40,105,100,101,110,116, 46, 46, 34, 32,110, 97, 109,101, 32, 61, 32, 39, 34, 46, 46,115,101,108,102, 46,110, 97,109,101, 46, 46, 34, 39, 44, 34, 41, 10, 32,105,102, 32, 115,101,108,102, 46,100,105,109, 32,116,104,101,110, 32,112, 114,105,110,116, 40,105,100,101,110,116, 46, 46, 34, 32,100, 105,109, 32, 61, 32, 39, 34, 46, 46,115,101,108,102, 46,100, 105,109, 46, 46, 34, 39, 44, 34, 41, 32,101,110,100, 10, 32, 112,114,105,110,116, 40,105,100,101,110,116, 46, 46, 34, 32, 100,101,102, 32, 32, 61, 32, 39, 34, 46, 46,115,101,108,102, 46,100,101,102, 46, 46, 34, 39, 44, 34, 41, 10, 32,112,114, 105,110,116, 40,105,100,101,110,116, 46, 46, 34, 32,114,101, 116, 32, 32, 61, 32, 39, 34, 46, 46,115,101,108,102, 46,114, 101,116, 46, 46, 34, 39, 44, 34, 41, 10, 32,112,114,105,110, 116, 40,105,100,101,110,116, 46, 46, 34,125, 34, 46, 46, 99, 108,111,115,101, 41, 10,101,110,100, 10, 10, 45, 45, 32, 71, 101,110,101,114, 97,116,101,115, 32, 67, 32,102,117,110, 99, 116,105,111,110, 32,110, 97,109,101, 10,102,117,110, 99,116, 105,111,110, 32, 99,108, 97,115,115, 86, 97,114,105, 97, 98, 108,101, 58, 99,102,117,110, 99,110, 97,109,101, 32, 40,112, 114,101,102,105,120, 41, 10, 32,108,111, 99, 97,108, 32,112, 97,114,101,110,116, 32, 61, 32, 34, 34, 10, 32,108,111, 99, 97,108, 32,117,110,115,105,103,110,101,100, 32, 61, 32, 34, 34, 10, 32,108,111, 99, 97,108, 32,112,116,114, 32, 61, 32, 34, 34, 10, 10, 32,108,111, 99, 97,108, 32,112, 32, 61, 32, 115,101,108,102, 58,105,110,109,111,100,117,108,101, 40, 41, 32,111,114, 32,115,101,108,102, 58,105,110,110, 97,109,101, 115,112, 97, 99,101, 40, 41, 32,111,114, 32,115,101,108,102, 58,105,110, 99,108, 97,115,115, 40, 41, 10, 10, 32,105,102, 32,112, 32,116,104,101,110, 10, 32, 9,105,102, 32,115,101, 108,102, 46,112, 97,114,101,110,116, 46, 99,108, 97,115,115, 116,121,112,101, 32, 61, 61, 32, 39, 99,108, 97,115,115, 39, 32,116,104,101,110, 10, 9, 9,112, 97,114,101,110,116, 32, 61, 32, 34, 95, 34, 32, 46, 46, 32,115,101,108,102, 46,112, 97,114,101,110,116, 46,116,121,112,101, 10, 9,101,108,115, 101, 10, 9, 32, 32,112, 97,114,101,110,116, 32, 61, 32, 34, 95, 34, 32, 46, 46, 32,112, 10, 9,101,110,100, 10, 32,101, 110,100, 10, 10, 32,105,102, 32,115,116,114,102,105,110,100, 40,115,101,108,102, 46,109,111,100, 44, 34, 40,117,110,115, 105,103,110,101,100, 41, 34, 41, 32,116,104,101,110, 10, 32, 32,117,110,115,105,103,110,101,100, 32, 61, 32, 34, 95,117, 110,115,105,103,110,101,100, 34, 10, 32,101,110,100, 10, 10, 32,105,102, 32,115,101,108,102, 46,112,116,114, 32, 61, 61, 32, 34, 42, 34, 32,116,104,101,110, 32,112,116,114, 32, 61, 32, 34, 95,112,116,114, 34, 10, 32,101,108,115,101,105,102, 32,115,101,108,102, 46,112,116,114, 32, 61, 61, 32, 34, 38, 34, 32,116,104,101,110, 32,112,116,114, 32, 61, 32, 34, 95, 114,101,102, 34, 10, 32,101,110,100, 10, 10, 32,108,111, 99, 97,108, 32,110, 97,109,101, 32, 61, 32, 32,112,114,101,102, 105,120, 32, 46, 46, 32,112, 97,114,101,110,116, 32, 46, 46, 32,117,110,115,105,103,110,101,100, 32, 46, 46, 32, 34, 95, 34, 32, 46, 46, 32,103,115,117, 98, 40,115,101,108,102, 46, 108,110, 97,109,101, 32,111,114, 32,115,101,108,102, 46,110, 97,109,101, 44, 34, 46, 42, 58, 58, 34, 44, 34, 34, 41, 32, 46, 46, 32,112,116,114, 10, 10, 9,110, 97,109,101, 32, 61, 32, 99,108,101, 97,110, 95,116,101,109,112,108, 97,116,101, 40,110, 97,109,101, 41, 10, 32,114,101,116,117,114,110, 32, 110, 97,109,101, 10, 10,101,110,100, 10, 10, 45, 45, 32, 99, 104,101, 99,107, 32,105,102, 32,105,116, 32,105,115, 32, 97, 32,118, 97,114,105, 97, 98,108,101, 10,102,117,110, 99,116, 105,111,110, 32, 99,108, 97,115,115, 86, 97,114,105, 97, 98, 108,101, 58,105,115,118, 97,114,105, 97, 98,108,101, 32, 40, 41, 10, 32,114,101,116,117,114,110, 32,116,114,117,101, 10, 101,110,100, 10, 10, 45, 45, 32,103,101,116, 32,118, 97,114, 105, 97, 98,108,101, 32,118, 97,108,117,101, 10,102,117,110, 99,116,105,111,110, 32, 99,108, 97,115,115, 86, 97,114,105, 97, 98,108,101, 58,103,101,116,118, 97,108,117,101, 32, 40, 99,108, 97,115,115, 44,115,116, 97,116,105, 99, 44, 32,112, 114,111,112, 95,103,101,116, 41, 10, 10, 9,108,111, 99, 97, 108, 32,110, 97,109,101, 10, 9,105,102, 32,112,114,111,112, 95,103,101,116, 32,116,104,101,110, 10, 10, 9, 9,110, 97, 109,101, 32, 61, 32,112,114,111,112, 95,103,101,116, 46, 46, 34, 40, 41, 34, 10, 9,101,108,115,101, 10, 9, 9,110, 97, 109,101, 32, 61, 32,115,101,108,102, 46,110, 97,109,101, 10, 9,101,110,100, 10, 10, 9,105,102, 32, 99,108, 97,115,115, 32, 97,110,100, 32,115,116, 97,116,105, 99, 32,116,104,101, 110, 10, 9, 32,114,101,116,117,114,110, 32,115,101,108,102, 46,112, 97,114,101,110,116, 46,116,121,112,101, 46, 46, 39, 58, 58, 39, 46, 46,110, 97,109,101, 10, 9,101,108,115,101, 105,102, 32, 99,108, 97,115,115, 32,116,104,101,110, 10, 9, 32,114,101,116,117,114,110, 32, 39,115,101,108,102, 45, 62, 39, 46, 46,110, 97,109,101, 10, 9,101,108,115,101, 10, 9, 32,114,101,116,117,114,110, 32,110, 97,109,101, 10, 9,101, 110,100, 10,101,110,100, 10, 10, 45, 45, 32,103,101,116, 32, 118, 97,114,105, 97, 98,108,101, 32,112,111,105,110,116,101, 114, 32,118, 97,108,117,101, 10,102,117,110, 99,116,105,111, 110, 32, 99,108, 97,115,115, 86, 97,114,105, 97, 98,108,101, 58,103,101,116,112,111,105,110,116,101,114,118, 97,108,117, 101, 32, 40, 99,108, 97,115,115, 44,115,116, 97,116,105, 99, 41, 10, 32,105,102, 32, 99,108, 97,115,115, 32, 97,110,100, 32,115,116, 97,116,105, 99, 32,116,104,101,110, 10, 32, 32, 114,101,116,117,114,110, 32, 99,108, 97,115,115, 46, 46, 39, 58, 58,112, 39, 10, 32,101,108,115,101,105,102, 32, 99,108, 97,115,115, 32,116,104,101,110, 10, 32, 32,114,101,116,117, 114,110, 32, 39,115,101,108,102, 45, 62,112, 39, 10, 32,101, 108,115,101, 10, 32, 32,114,101,116,117,114,110, 32, 39,112, 39, 10, 32,101,110,100, 10,101,110,100, 10, 10, 45, 45, 32, 87,114,105,116,101, 32, 98,105,110,100,105,110,103, 32,102, 117,110, 99,116,105,111,110,115, 10,102,117,110, 99,116,105, 111,110, 32, 99,108, 97,115,115, 86, 97,114,105, 97, 98,108, 101, 58,115,117,112, 99,111,100,101, 32, 40, 41, 10, 10, 32, 108,111, 99, 97,108, 32, 99,108, 97,115,115, 32, 61, 32,115, 101,108,102, 58,105,110, 99,108, 97,115,115, 40, 41, 10, 10, 9,108,111, 99, 97,108, 32,112,114,111,112, 95,103,101,116, 44,112,114,111,112, 95,115,101,116, 10, 9,105,102, 32,115, 116,114,105,110,103, 46,102,105,110,100, 40,115,101,108,102, 46,109,111,100, 44, 32, 39,116,111,108,117, 97, 95,112,114, 111,112,101,114,116,121, 39, 41, 32,116,104,101,110, 10, 10, 9, 9,108,111, 99, 97,108, 32, 95, 44, 95, 44,116,121,112, 101, 32, 61, 32,115,116,114,105,110,103, 46,102,105,110,100, 40,115,101,108,102, 46,109,111,100, 44, 32, 34,116,111,108, 117, 97, 95,112,114,111,112,101,114,116,121, 95, 95, 40, 91, 94, 37,115, 93, 42, 41, 34, 41, 10, 9, 9,116,121,112,101, 32, 61, 32,116,121,112,101, 32,111,114, 32, 34,100,101,102, 97,117,108,116, 34, 10, 9, 9,112,114,111,112, 95,103,101, 116, 44,112,114,111,112, 95,115,101,116, 32, 61, 32,103,101, 116, 95,112,114,111,112,101,114,116,121, 95,109,101,116,104, 111,100,115, 40,116,121,112,101, 44, 32,115,101,108,102, 46, 110, 97,109,101, 41, 10, 9, 9,115,101,108,102, 46,109,111, 100, 32, 61, 32,115,116,114,105,110,103, 46,103,115,117, 98, 40,115,101,108,102, 46,109,111,100, 44, 32, 34,116,111,108, 117, 97, 95,112,114,111,112,101,114,116,121, 91, 94, 37,115, 93, 42, 34, 44, 32, 34, 34, 41, 10, 9,101,110,100, 10, 10, 32, 45, 45, 32,103,101,116, 32,102,117,110, 99,116,105,111, 110, 32, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 10, 32,105,102, 32, 99,108, 97,115,115, 32,116,104,101,110, 10, 32, 32,111,117,116,112,117,116, 40, 34, 47, 42, 32,103,101,116, 32,102,117,110, 99,116,105,111, 110, 58, 34, 44,115,101,108,102, 46,110, 97,109,101, 44, 34, 32,111,102, 32, 99,108, 97,115,115, 32, 34, 44, 99,108, 97, 115,115, 44, 34, 32, 42, 47, 34, 41, 10, 32,101,108,115,101, 10, 32, 32,111,117,116,112,117,116, 40, 34, 47, 42, 32,103, 101,116, 32,102,117,110, 99,116,105,111,110, 58, 34, 44,115, 101,108,102, 46,110, 97,109,101, 44, 34, 32, 42, 47, 34, 41, 10, 32,101,110,100, 10, 32,115,101,108,102, 46, 99,103,101, 116,110, 97,109,101, 32, 61, 32,115,101,108,102, 58, 99,102, 117,110, 99,110, 97,109,101, 40, 34,116,111,108,117, 97, 95, 103,101,116, 34, 41, 10, 32,111,117,116,112,117,116, 40, 34, 35,105,102,110,100,101,102, 32, 84, 79, 76, 85, 65, 95, 68, 73, 83, 65, 66, 76, 69, 95, 34, 46, 46,115,101,108,102, 46, 99,103,101,116,110, 97,109,101, 41, 10, 32,111,117,116,112, 117,116, 40, 34, 92,110,115,116, 97,116,105, 99, 32,105,110, 116, 34, 44,115,101,108,102, 46, 99,103,101,116,110, 97,109, 101, 44, 34, 40,108,117, 97, 95, 83,116, 97,116,101, 42, 32, 116,111,108,117, 97, 95, 83, 41, 34, 41, 10, 32,111,117,116, 112,117,116, 40, 34,123, 34, 41, 10, 10, 32, 45, 45, 32,100, 101, 99,108, 97,114,101, 32,115,101,108,102, 44, 32,105,102, 32,116,104,101, 32, 99, 97,115,101, 10, 32,108,111, 99, 97, 108, 32, 95, 44, 95, 44,115,116, 97,116,105, 99, 32, 61, 32, 115,116,114,102,105,110,100, 40,115,101,108,102, 46,109,111, 100, 44, 39, 94, 37,115, 42, 40,115,116, 97,116,105, 99, 41, 39, 41, 10, 32,105,102, 32, 99,108, 97,115,115, 32, 97,110, 100, 32,115,116, 97,116,105, 99, 61, 61,110,105,108, 32,116, 104,101,110, 10, 32, 32,111,117,116,112,117,116, 40, 39, 32, 39, 44,115,101,108,102, 46,112, 97,114,101,110,116, 46,116, 121,112,101, 44, 39, 42, 39, 44, 39,115,101,108,102, 32, 61, 32, 39, 41, 10, 32, 32,111,117,116,112,117,116, 40, 39, 40, 39, 44,115,101,108,102, 46,112, 97,114,101,110,116, 46,116, 121,112,101, 44, 39, 42, 41, 32, 39, 41, 10, 32, 32,108,111, 99, 97,108, 32,116,111, 95,102,117,110, 99, 32, 61, 32,103, 101,116, 95,116,111, 95,102,117,110, 99,116,105,111,110, 40, 115,101,108,102, 46,112, 97,114,101,110,116, 46,116,121,112, 101, 41, 10, 32, 32,111,117,116,112,117,116, 40,116,111, 95, 102,117,110, 99, 44, 39, 40,116,111,108,117, 97, 95, 83, 44, 49, 44, 48, 41, 59, 39, 41, 10, 32,101,108,115,101,105,102, 32,115,116, 97,116,105, 99, 32,116,104,101,110, 10, 32, 32, 95, 44, 95, 44,115,101,108,102, 46,109,111,100, 32, 61, 32, 115,116,114,102,105,110,100, 40,115,101,108,102, 46,109,111, 100, 44, 39, 94, 37,115, 42,115,116, 97,116,105, 99, 37,115, 37,115, 42, 40, 46, 42, 41, 39, 41, 10, 32,101,110,100, 10, 10, 10, 32, 45, 45, 32, 99,104,101, 99,107, 32,115,101,108, 102, 32,118, 97,108,117,101, 10, 32,105,102, 32, 99,108, 97, 115,115, 32, 97,110,100, 32,115,116, 97,116,105, 99, 61, 61, 110,105,108, 32,116,104,101,110, 10, 9, 32,111,117,116,112, 117,116, 40, 39, 35,105,102,110,100,101,102, 32, 84, 79, 76, 85, 65, 95, 82, 69, 76, 69, 65, 83, 69, 92,110, 39, 41, 10, 32, 32,111,117,116,112,117,116, 40, 39, 32, 32,105,102, 32, 40, 33,115,101,108,102, 41, 32,116,111,108,117, 97, 95,101, 114,114,111,114, 40,116,111,108,117, 97, 95, 83, 44, 34,105, 110,118, 97,108,105,100, 32, 92, 39,115,101,108,102, 92, 39, 32,105,110, 32, 97, 99, 99,101,115,115,105,110,103, 32,118, 97,114,105, 97, 98,108,101, 32, 92, 39, 39, 46, 46,115,101, 108,102, 46,110, 97,109,101, 46, 46, 39, 92, 39, 34, 44, 78, 85, 76, 76, 41, 59, 39, 41, 59, 10, 9, 9,111,117,116,112, 117,116, 40, 39, 35,101,110,100,105,102, 92,110, 39, 41, 10, 32,101,110,100, 10, 10, 32, 45, 45, 32,114,101,116,117,114, 110, 32,118, 97,108,117,101, 10, 32,105,102, 32,115,116,114, 105,110,103, 46,102,105,110,100, 40,115,101,108,102, 46,109, 111,100, 44, 32, 39,116,111,108,117, 97, 95,105,110,104,101, 114,105,116,115, 39, 41, 32,116,104,101,110, 10, 9,108,111, 99, 97,108, 32,112,117,115,104, 95,102,117,110, 99, 32, 61, 32,103,101,116, 95,112,117,115,104, 95,102,117,110, 99,116, 105,111,110, 40,115,101,108,102, 46,116,121,112,101, 41, 10, 32, 9,111,117,116,112,117,116, 40, 39, 35,105,102,100,101, 102, 32, 95, 95, 99,112,108,117,115,112,108,117,115, 92,110, 39, 41, 10, 9,111,117,116,112,117,116, 40, 39, 32, 32, 39, 44,112,117,115,104, 95,102,117,110, 99, 44, 39, 40,116,111, 108,117, 97, 95, 83, 44, 40,118,111,105,100, 42, 41,115,116, 97,116,105, 99, 95, 99, 97,115,116, 60, 39, 46, 46,115,101, 108,102, 46,116,121,112,101, 46, 46, 39, 42, 62, 40,115,101, 108,102, 41, 44, 32, 34, 39, 44,115,101,108,102, 46,116,121, 112,101, 44, 39, 34, 41, 59, 39, 41, 10, 9,111,117,116,112, 117,116, 40, 39, 35,101,108,115,101, 92,110, 39, 41, 10, 9, 111,117,116,112,117,116, 40, 39, 32, 32, 39, 44,112,117,115, 104, 95,102,117,110, 99, 44, 39, 40,116,111,108,117, 97, 95, 83, 44, 40,118,111,105,100, 42, 41, 40, 40, 39, 46, 46,115, 101,108,102, 46,116,121,112,101, 46, 46, 39, 42, 41,115,101, 108,102, 41, 44, 32, 34, 39, 44,115,101,108,102, 46,116,121, 112,101, 44, 39, 34, 41, 59, 39, 41, 10, 9,111,117,116,112, 117,116, 40, 39, 35,101,110,100,105,102, 92,110, 39, 41, 10, 32,101,108,115,101, 10, 9,108,111, 99, 97,108, 32,116, 44, 99,116, 32, 61, 32,105,115, 98, 97,115,105, 99, 40,115,101, 108,102, 46,116,121,112,101, 41, 10, 9,105,102, 32,116, 32, 116,104,101,110, 10, 9, 9,111,117,116,112,117,116, 40, 39, 32, 32,116,111,108,117, 97, 95,112,117,115,104, 39, 46, 46, 116, 46, 46, 39, 40,116,111,108,117, 97, 95, 83, 44, 40, 39, 44, 99,116, 44, 39, 41, 39, 46, 46,115,101,108,102, 58,103, 101,116,118, 97,108,117,101, 40, 99,108, 97,115,115, 44,115, 116, 97,116,105, 99, 44,112,114,111,112, 95,103,101,116, 41, 46, 46, 39, 41, 59, 39, 41, 10, 9,101,108,115,101, 10, 9, 9,108,111, 99, 97,108, 32,112,117,115,104, 95,102,117,110, 99, 32, 61, 32,103,101,116, 95,112,117,115,104, 95,102,117, 110, 99,116,105,111,110, 40,115,101,108,102, 46,116,121,112, 101, 41, 10, 9, 9,116, 32, 61, 32,115,101,108,102, 46,116, 121,112,101, 10, 9, 9,105,102, 32,115,101,108,102, 46,112, 116,114, 32, 61, 61, 32, 39, 38, 39, 32,111,114, 32,115,101, 108,102, 46,112,116,114, 32, 61, 61, 32, 39, 39, 32,116,104, 101,110, 10, 9, 9, 9,111,117,116,112,117,116, 40, 39, 32, 32, 39, 44,112,117,115,104, 95,102,117,110, 99, 44, 39, 40, 116,111,108,117, 97, 95, 83, 44, 40,118,111,105,100, 42, 41, 38, 39, 46, 46,115,101,108,102, 58,103,101,116,118, 97,108, 117,101, 40, 99,108, 97,115,115, 44,115,116, 97,116,105, 99, 44,112,114,111,112, 95,103,101,116, 41, 46, 46, 39, 44, 34, 39, 44,116, 44, 39, 34, 41, 59, 39, 41, 10, 9, 9,101,108, 115,101, 10, 9, 9, 9,111,117,116,112,117,116, 40, 39, 32, 32, 39, 44,112,117,115,104, 95,102,117,110, 99, 44, 39, 40, 116,111,108,117, 97, 95, 83, 44, 40,118,111,105,100, 42, 41, 39, 46, 46,115,101,108,102, 58,103,101,116,118, 97,108,117, 101, 40, 99,108, 97,115,115, 44,115,116, 97,116,105, 99, 44, 112,114,111,112, 95,103,101,116, 41, 46, 46, 39, 44, 34, 39, 44,116, 44, 39, 34, 41, 59, 39, 41, 10, 9, 9,101,110,100, 10, 9,101,110,100, 10, 32,101,110,100, 10, 32,111,117,116, 112,117,116, 40, 39, 32,114,101,116,117,114,110, 32, 49, 59, 39, 41, 10, 32,111,117,116,112,117,116, 40, 39,125, 39, 41, 10, 32,111,117,116,112,117,116, 40, 39, 35,101,110,100,105, 102, 32, 47, 47, 35,105,102,110,100,101,102, 32, 84, 79, 76, 85, 65, 95, 68, 73, 83, 65, 66, 76, 69, 92,110, 39, 41, 10, 32,111,117,116,112,117,116, 40, 39, 92,110, 39, 41, 10, 10, 32, 45, 45, 32,115,101,116, 32,102,117,110, 99,116,105,111, 110, 32, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 10, 32,105,102, 32,110,111,116, 32, 40, 115,116,114,102,105,110,100, 40,115,101,108,102, 46,116,121, 112,101, 44, 39, 99,111,110,115,116, 37,115, 43, 39, 41, 32, 111,114, 32,115,116,114,105,110,103, 46,102,105,110,100, 40, 115,101,108,102, 46,109,111,100, 44, 32, 39,116,111,108,117, 97, 95,114,101, 97,100,111,110,108,121, 39, 41, 32,111,114, 32,115,116,114,105,110,103, 46,102,105,110,100, 40,115,101, 108,102, 46,109,111,100, 44, 32, 39,116,111,108,117, 97, 95, 105,110,104,101,114,105,116,115, 39, 41, 41, 32, 32,116,104, 101,110, 10, 32, 32,105,102, 32, 99,108, 97,115,115, 32,116, 104,101,110, 10, 32, 32, 32,111,117,116,112,117,116, 40, 34, 47, 42, 32,115,101,116, 32,102,117,110, 99,116,105,111,110, 58, 34, 44,115,101,108,102, 46,110, 97,109,101, 44, 34, 32, 111,102, 32, 99,108, 97,115,115, 32, 34, 44, 99,108, 97,115, 115, 44, 34, 32, 42, 47, 34, 41, 10, 32, 32,101,108,115,101, 10, 32, 32, 32,111,117,116,112,117,116, 40, 34, 47, 42, 32, 115,101,116, 32,102,117,110, 99,116,105,111,110, 58, 34, 44, 115,101,108,102, 46,110, 97,109,101, 44, 34, 32, 42, 47, 34, 41, 10, 32, 32,101,110,100, 10, 32, 32,115,101,108,102, 46, 99,115,101,116,110, 97,109,101, 32, 61, 32,115,101,108,102, 58, 99,102,117,110, 99,110, 97,109,101, 40, 34,116,111,108, 117, 97, 95,115,101,116, 34, 41, 10, 32, 32,111,117,116,112, 117,116, 40, 34, 35,105,102,110,100,101,102, 32, 84, 79, 76, 85, 65, 95, 68, 73, 83, 65, 66, 76, 69, 95, 34, 46, 46,115, 101,108,102, 46, 99,115,101,116,110, 97,109,101, 41, 10, 32, 32,111,117,116,112,117,116, 40, 34, 92,110,115,116, 97,116, 105, 99, 32,105,110,116, 34, 44,115,101,108,102, 46, 99,115, 101,116,110, 97,109,101, 44, 34, 40,108,117, 97, 95, 83,116, 97,116,101, 42, 32,116,111,108,117, 97, 95, 83, 41, 34, 41, 10, 32, 32,111,117,116,112,117,116, 40, 34,123, 34, 41, 10, 10, 32, 32, 45, 45, 32,100,101, 99,108, 97,114,101, 32,115, 101,108,102, 44, 32,105,102, 32,116,104,101, 32, 99, 97,115, 101, 10, 32, 32,105,102, 32, 99,108, 97,115,115, 32, 97,110, 100, 32,115,116, 97,116,105, 99, 61, 61,110,105,108, 32,116, 104,101,110, 10, 32, 32, 32,111,117,116,112,117,116, 40, 39, 32, 39, 44,115,101,108,102, 46,112, 97,114,101,110,116, 46, 116,121,112,101, 44, 39, 42, 39, 44, 39,115,101,108,102, 32, 61, 32, 39, 41, 10, 32, 32, 32,111,117,116,112,117,116, 40, 39, 40, 39, 44,115,101,108,102, 46,112, 97,114,101,110,116, 46,116,121,112,101, 44, 39, 42, 41, 32, 39, 41, 10, 32, 32, 32,108,111, 99, 97,108, 32,116,111, 95,102,117,110, 99, 32, 61, 32,103,101,116, 95,116,111, 95,102,117,110, 99,116,105, 111,110, 40,115,101,108,102, 46,112, 97,114,101,110,116, 46, 116,121,112,101, 41, 10, 32, 32, 32,111,117,116,112,117,116, 40,116,111, 95,102,117,110, 99, 44, 39, 40,116,111,108,117, 97, 95, 83, 44, 49, 44, 48, 41, 59, 39, 41, 10, 32, 32, 32, 45, 45, 32, 99,104,101, 99,107, 32,115,101,108,102, 32,118, 97,108,117,101, 10, 9, 9,101,110,100, 10, 32, 32, 45, 45, 32, 99,104,101, 99,107, 32,116,121,112,101,115, 10, 9, 9, 111,117,116,112,117,116, 40, 39, 35,105,102,110,100,101,102, 32, 84, 79, 76, 85, 65, 95, 82, 69, 76, 69, 65, 83, 69, 92, 110, 39, 41, 10, 9, 9,111,117,116,112,117,116, 40, 39, 32, 32,116,111,108,117, 97, 95, 69,114,114,111,114, 32,116,111, 108,117, 97, 95,101,114,114, 59, 39, 41, 10, 32, 32,105,102, 32, 99,108, 97,115,115, 32, 97,110,100, 32,115,116, 97,116, 105, 99, 61, 61,110,105,108, 32,116,104,101,110, 10, 32, 32, 32,111,117,116,112,117,116, 40, 39, 32, 32,105,102, 32, 40, 33,115,101,108,102, 41, 32,116,111,108,117, 97, 95,101,114, 114,111,114, 40,116,111,108,117, 97, 95, 83, 44, 34,105,110, 118, 97,108,105,100, 32, 92, 39,115,101,108,102, 92, 39, 32, 105,110, 32, 97, 99, 99,101,115,115,105,110,103, 32,118, 97, 114,105, 97, 98,108,101, 32, 92, 39, 39, 46, 46,115,101,108, 102, 46,110, 97,109,101, 46, 46, 39, 92, 39, 34, 44, 78, 85, 76, 76, 41, 59, 39, 41, 59, 10, 32, 32,101,108,115,101,105, 102, 32,115,116, 97,116,105, 99, 32,116,104,101,110, 10, 32, 32, 32, 95, 44, 95, 44,115,101,108,102, 46,109,111,100, 32, 61, 32,115,116,114,102,105,110,100, 40,115,101,108,102, 46, 109,111,100, 44, 39, 94, 37,115, 42,115,116, 97,116,105, 99, 37,115, 37,115, 42, 40, 46, 42, 41, 39, 41, 10, 32, 32,101, 110,100, 10, 10, 32, 32, 45, 45, 32, 99,104,101, 99,107, 32, 118, 97,114,105, 97, 98,108,101, 32,116,121,112,101, 10, 32, 32,111,117,116,112,117,116, 40, 39, 32, 32,105,102, 32, 40, 39, 46, 46,115,101,108,102, 58,111,117,116, 99,104,101, 99, 107,116,121,112,101, 40, 50, 41, 46, 46, 39, 41, 39, 41, 10, 32, 32,111,117,116,112,117,116, 40, 39, 32, 32, 32,116,111, 108,117, 97, 95,101,114,114,111,114, 40,116,111,108,117, 97, 95, 83, 44, 34, 35,118,105,110,118, 97,108,105,100, 32,116, 121,112,101, 32,105,110, 32,118, 97,114,105, 97, 98,108,101, 32, 97,115,115,105,103,110,109,101,110,116, 46, 34, 44, 38, 116,111,108,117, 97, 95,101,114,114, 41, 59, 39, 41, 10, 9, 9,111,117,116,112,117,116, 40, 39, 35,101,110,100,105,102, 92,110, 39, 41, 10, 10, 32, 32, 45, 45, 32, 97,115,115,105, 103,110, 32,118, 97,108,117,101, 10, 9, 9,108,111, 99, 97, 108, 32,100,101,102, 32, 61, 32, 48, 10, 9, 9,105,102, 32, 115,101,108,102, 46,100,101,102, 32,126, 61, 32, 39, 39, 32, 116,104,101,110, 32,100,101,102, 32, 61, 32,115,101,108,102, 46,100,101,102, 32,101,110,100, 10, 9, 9,105,102, 32,115, 101,108,102, 46,116,121,112,101, 32, 61, 61, 32, 39, 99,104, 97,114, 42, 39, 32, 97,110,100, 32,115,101,108,102, 46,100, 105,109, 32,126, 61, 32, 39, 39, 32,116,104,101,110, 32, 45, 45, 32,105,115, 32,115,116,114,105,110,103, 10, 9, 9, 32, 111,117,116,112,117,116, 40, 39, 32,115,116,114,110, 99,112, 121, 40, 39, 41, 10, 9, 9, 9,105,102, 32, 99,108, 97,115, 115, 32, 97,110,100, 32,115,116, 97,116,105, 99, 32,116,104, 101,110, 10, 9, 9, 9, 9,111,117,116,112,117,116, 40,115, 101,108,102, 46,112, 97,114,101,110,116, 46,116,121,112,101, 46, 46, 39, 58, 58, 39, 46, 46,115,101,108,102, 46,110, 97, 109,101, 41, 10, 9, 9, 9,101,108,115,101,105,102, 32, 99, 108, 97,115,115, 32,116,104,101,110, 10, 9, 9, 9, 9,111, 117,116,112,117,116, 40, 39,115,101,108,102, 45, 62, 39, 46, 46,115,101,108,102, 46,110, 97,109,101, 41, 10, 9, 9, 9, 101,108,115,101, 10, 9, 9, 9, 9,111,117,116,112,117,116, 40,115,101,108,102, 46,110, 97,109,101, 41, 10, 9, 9, 9, 101,110,100, 10, 9, 9, 9,111,117,116,112,117,116, 40, 39, 44,116,111,108,117, 97, 95,116,111,115,116,114,105,110,103, 40,116,111,108,117, 97, 95, 83, 44, 50, 44, 39, 44,100,101, 102, 44, 39, 41, 44, 39, 44,115,101,108,102, 46,100,105,109, 44, 39, 45, 49, 41, 59, 39, 41, 10, 9, 9,101,108,115,101, 10, 9, 9, 9,108,111, 99, 97,108, 32,112,116,114, 32, 61, 32, 39, 39, 10, 9, 9, 9,105,102, 32,115,101,108,102, 46, 112,116,114,126, 61, 39, 39, 32,116,104,101,110, 32,112,116, 114, 32, 61, 32, 39, 42, 39, 32,101,110,100, 10, 9, 9, 9, 111,117,116,112,117,116, 40, 39, 32, 39, 41, 10, 9, 9, 9, 108,111, 99, 97,108, 32,110, 97,109,101, 32, 61, 32,112,114, 111,112, 95,115,101,116, 32,111,114, 32,115,101,108,102, 46, 110, 97,109,101, 10, 9, 9, 9,105,102, 32, 99,108, 97,115, 115, 32, 97,110,100, 32,115,116, 97,116,105, 99, 32,116,104, 101,110, 10, 9, 9, 9, 9,111,117,116,112,117,116, 40,115, 101,108,102, 46,112, 97,114,101,110,116, 46,116,121,112,101, 46, 46, 39, 58, 58, 39, 46, 46,110, 97,109,101, 41, 10, 9, 9, 9,101,108,115,101,105,102, 32, 99,108, 97,115,115, 32, 116,104,101,110, 10, 9, 9, 9, 9,111,117,116,112,117,116, 40, 39,115,101,108,102, 45, 62, 39, 46, 46,110, 97,109,101, 41, 10, 9, 9, 9,101,108,115,101, 10, 9, 9, 9, 9,111, 117,116,112,117,116, 40,110, 97,109,101, 41, 10, 9, 9, 9, 101,110,100, 10, 9, 9, 9,108,111, 99, 97,108, 32,116, 32, 61, 32,105,115, 98, 97,115,105, 99, 40,115,101,108,102, 46, 116,121,112,101, 41, 10, 9, 9, 9,105,102, 32,112,114,111, 112, 95,115,101,116, 32,116,104,101,110, 10, 9, 9, 9, 9, 111,117,116,112,117,116, 40, 39, 40, 39, 41, 10, 9, 9, 9, 101,108,115,101, 10, 9, 9, 9, 9,111,117,116,112,117,116, 40, 39, 32, 61, 32, 39, 41, 10, 9, 9, 9,101,110,100, 10, 9, 9, 9,105,102, 32,110,111,116, 32,116, 32, 97,110,100, 32,112,116,114, 61, 61, 39, 39, 32,116,104,101,110, 32,111, 117,116,112,117,116, 40, 39, 42, 39, 41, 32,101,110,100, 10, 9, 9, 9,111,117,116,112,117,116, 40, 39, 40, 40, 39, 44, 115,101,108,102, 46,109,111,100, 44,115,101,108,102, 46,116, 121,112,101, 41, 10, 9, 9, 9,105,102, 32,110,111,116, 32, 116, 32,116,104,101,110, 10, 9, 9, 9, 9,111,117,116,112, 117,116, 40, 39, 42, 39, 41, 10, 9, 9, 9,101,110,100, 10, 9, 9, 9,111,117,116,112,117,116, 40, 39, 41, 32, 39, 41, 10, 9, 9, 9,105,102, 32,116, 32,116,104,101,110, 10, 9, 9, 9, 9,105,102, 32,105,115,101,110,117,109, 40,115,101, 108,102, 46,116,121,112,101, 41, 32,116,104,101,110, 10, 9, 9, 9, 9, 9,111,117,116,112,117,116, 40, 39, 40,105,110, 116, 41, 32, 39, 41, 10, 9, 9, 9, 9,101,110,100, 10, 9, 9, 9, 9,111,117,116,112,117,116, 40, 39,116,111,108,117, 97, 95,116,111, 39, 46, 46,116, 44, 39, 40,116,111,108,117, 97, 95, 83, 44, 50, 44, 39, 44,100,101,102, 44, 39, 41, 41, 39, 41, 10, 9, 9, 9,101,108,115,101, 10, 9, 9, 9, 9, 108,111, 99, 97,108, 32,116,111, 95,102,117,110, 99, 32, 61, 32,103,101,116, 95,116,111, 95,102,117,110, 99,116,105,111, 110, 40,115,101,108,102, 46,116,121,112,101, 41, 10, 9, 9, 9, 9,111,117,116,112,117,116, 40,116,111, 95,102,117,110, 99, 44, 39, 40,116,111,108,117, 97, 95, 83, 44, 50, 44, 39, 44,100,101,102, 44, 39, 41, 41, 39, 41, 10, 9, 9, 9,101, 110,100, 10, 9, 9, 9,105,102, 32,112,114,111,112, 95,115, 101,116, 32,116,104,101,110, 10, 9, 9, 9, 9,111,117,116, 112,117,116, 40, 34, 41, 34, 41, 10, 9, 9, 9,101,110,100, 10, 9, 9, 9,111,117,116,112,117,116, 40, 34, 59, 34, 41, 10, 9, 9,101,110,100, 10, 32, 32,111,117,116,112,117,116, 40, 39, 32,114,101,116,117,114,110, 32, 48, 59, 39, 41, 10, 32, 32,111,117,116,112,117,116, 40, 39,125, 39, 41, 10, 32, 32,111,117,116,112,117,116, 40, 39, 35,101,110,100,105,102, 32, 47, 47, 35,105,102,110,100,101,102, 32, 84, 79, 76, 85, 65, 95, 68, 73, 83, 65, 66, 76, 69, 92,110, 39, 41, 10, 32, 32,111,117,116,112,117,116, 40, 39, 92,110, 39, 41, 10, 32, 101,110,100, 10, 10,101,110,100, 10, 10,102,117,110, 99,116, 105,111,110, 32, 99,108, 97,115,115, 86, 97,114,105, 97, 98, 108,101, 58,114,101,103,105,115,116,101,114, 32, 40,112,114, 101, 41, 10, 10, 9,105,102, 32,110,111,116, 32,115,101,108, 102, 58, 99,104,101, 99,107, 95,112,117, 98,108,105, 99, 95, 97, 99, 99,101,115,115, 40, 41, 32,116,104,101,110, 10, 9, 9,114,101,116,117,114,110, 10, 9,101,110,100, 10, 32,112, 114,101, 32, 61, 32,112,114,101, 32,111,114, 32, 39, 39, 10, 32,108,111, 99, 97,108, 32,112, 97,114,101,110,116, 32, 61, 32,115,101,108,102, 58,105,110,109,111,100,117,108,101, 40, 41, 32,111,114, 32,115,101,108,102, 58,105,110,110, 97,109, 101,115,112, 97, 99,101, 40, 41, 32,111,114, 32,115,101,108, 102, 58,105,110, 99,108, 97,115,115, 40, 41, 10, 32,105,102, 32,110,111,116, 32,112, 97,114,101,110,116, 32,116,104,101, 110, 10, 32, 32,105,102, 32, 99,108, 97,115,115, 86, 97,114, 105, 97, 98,108,101, 46, 95,119, 97,114,110,105,110,103, 61, 61,110,105,108, 32,116,104,101,110, 10, 32, 32, 32,119, 97, 114,110,105,110,103, 40, 34, 77, 97,112,112,105,110,103, 32, 118, 97,114,105, 97, 98,108,101, 32,116,111, 32,103,108,111, 98, 97,108, 32,109, 97,121, 32,100,101,103,114, 97,100,101, 32,112,101,114,102,111,114,109, 97,110, 99,101, 34, 41, 10, 32, 32, 32, 99,108, 97,115,115, 86, 97,114,105, 97, 98,108, 101, 46, 95,119, 97,114,110,105,110,103, 32, 61, 32, 49, 10, 32, 32,101,110,100, 10, 32,101,110,100, 10, 32,105,102, 32, 115,101,108,102, 46, 99,115,101,116,110, 97,109,101, 32,116, 104,101,110, 10, 32, 32,111,117,116,112,117,116, 40,112,114, 101, 46, 46, 39,116,111,108,117, 97, 95,118, 97,114,105, 97, 98,108,101, 40,116,111,108,117, 97, 95, 83, 44, 34, 39, 46, 46,115,101,108,102, 46,108,110, 97,109,101, 46, 46, 39, 34, 44, 39, 46, 46,115,101,108,102, 46, 99,103,101,116,110, 97, 109,101, 46, 46, 39, 44, 39, 46, 46,115,101,108,102, 46, 99, 115,101,116,110, 97,109,101, 46, 46, 39, 41, 59, 39, 41, 10, 32,101,108,115,101, 10, 32, 32,111,117,116,112,117,116, 40, 112,114,101, 46, 46, 39,116,111,108,117, 97, 95,118, 97,114, 105, 97, 98,108,101, 40,116,111,108,117, 97, 95, 83, 44, 34, 39, 46, 46,115,101,108,102, 46,108,110, 97,109,101, 46, 46, 39, 34, 44, 39, 46, 46,115,101,108,102, 46, 99,103,101,116, 110, 97,109,101, 46, 46, 39, 44, 78, 85, 76, 76, 41, 59, 39, 41, 10, 32,101,110,100, 10,101,110,100, 10, 10, 45, 45, 32, 73,110,116,101,114,110, 97,108, 32, 99,111,110,115,116,114, 117, 99,116,111,114, 10,102,117,110, 99,116,105,111,110, 32, 95, 86, 97,114,105, 97, 98,108,101, 32, 40,116, 41, 10, 32, 115,101,116,109,101,116, 97,116, 97, 98,108,101, 40,116, 44, 99,108, 97,115,115, 86, 97,114,105, 97, 98,108,101, 41, 10, 32, 97,112,112,101,110,100, 40,116, 41, 10, 32,114,101,116, 117,114,110, 32,116, 10,101,110,100, 10, 10, 45, 45, 32, 67, 111,110,115,116,114,117, 99,116,111,114, 10, 45, 45, 32, 69, 120,112,101, 99,116,115, 32, 97, 32,115,116,114,105,110,103, 32,114,101,112,114,101,115,101,110,116,105,110,103, 32,116, 104,101, 32,118, 97,114,105, 97, 98,108,101, 32,100,101, 99, 108, 97,114, 97,116,105,111,110, 46, 10,102,117,110, 99,116, 105,111,110, 32, 86, 97,114,105, 97, 98,108,101, 32, 40,115, 41, 10, 32,114,101,116,117,114,110, 32, 95, 86, 97,114,105, 97, 98,108,101, 32, 40, 68,101, 99,108, 97,114, 97,116,105, 111,110, 40,115, 44, 39,118, 97,114, 39, 41, 41, 10,101,110, 100,32 }; tolua_dobuffer(tolua_S,(char*)B,sizeof(B),"tolua embedded: lua/tolua++/src/bin/lua/variable.lua"); lua_settop(tolua_S, top); } /* end of embedded lua code */ { /* begin embedded lua code */ int top = lua_gettop(tolua_S); static unsigned char B[] = { 45, 45, 32,116,111,108,117, 97, 58, 32, 97,114,114, 97,121, 32, 99,108, 97,115,115, 10, 45, 45, 32, 87,114,105,116,116, 101,110, 32, 98,121, 32, 87, 97,108,100,101,109, 97,114, 32, 67,101,108,101,115, 10, 45, 45, 32, 84,101, 67, 71,114, 97, 102, 47, 80, 85, 67, 45, 82,105,111, 10, 45, 45, 32, 74,117, 108, 32, 49, 57, 57, 57, 10, 45, 45, 32, 36, 73,100, 58, 32, 97,114,114, 97,121, 46,108,117, 97, 44,118, 32, 49, 46, 49, 32, 50, 48, 48, 48, 47, 49, 49, 47, 48, 54, 32, 50, 50, 58, 48, 51, 58, 53, 55, 32, 99,101,108,101,115, 32, 69,120,112, 32, 36, 10, 10, 45, 45, 32, 84,104,105,115, 32, 99,111,100, 101, 32,105,115, 32,102,114,101,101, 32,115,111,102,116,119, 97,114,101, 59, 32,121,111,117, 32, 99, 97,110, 32,114,101, 100,105,115,116,114,105, 98,117,116,101, 32,105,116, 32, 97, 110,100, 47,111,114, 32,109,111,100,105,102,121, 32,105,116, 46, 10, 45, 45, 32, 84,104,101, 32,115,111,102,116,119, 97, 114,101, 32,112,114,111,118,105,100,101,100, 32,104,101,114, 101,117,110,100,101,114, 32,105,115, 32,111,110, 32, 97,110, 32, 34, 97,115, 32,105,115, 34, 32, 98, 97,115,105,115, 44, 32, 97,110,100, 10, 45, 45, 32,116,104,101, 32, 97,117,116, 104,111,114, 32,104, 97,115, 32,110,111, 32,111, 98,108,105, 103, 97,116,105,111,110, 32,116,111, 32,112,114,111,118,105, 100,101, 32,109, 97,105,110,116,101,110, 97,110, 99,101, 44, 32,115,117,112,112,111,114,116, 44, 32,117,112,100, 97,116, 101,115, 44, 10, 45, 45, 32,101,110,104, 97,110, 99,101,109, 101,110,116,115, 44, 32,111,114, 32,109,111,100,105,102,105, 99, 97,116,105,111,110,115, 46, 10, 10, 10, 45, 45, 32, 65, 114,114, 97,121, 32, 99,108, 97,115,115, 10, 45, 45, 32, 82, 101,112,114,101,115,101,110,116,115, 32, 97, 32,101,120,116, 101,114,110, 32, 97,114,114, 97,121, 32,118, 97,114,105, 97, 98,108,101, 32,111,114, 32, 97, 32,112,117, 98,108,105, 99, 32,109,101,109, 98,101,114, 32,111,102, 32, 97, 32, 99,108, 97,115,115, 46, 10, 45, 45, 32, 83,116,111,114,101,115, 32, 97,108,108, 32,102,105,101,108,100,115, 32,112,114,101,115, 101,110,116, 32,105,110, 32, 97, 32,100,101, 99,108, 97,114, 97,116,105,111,110, 46, 10, 99,108, 97,115,115, 65,114,114, 97,121, 32, 61, 32,123, 10,125, 10, 99,108, 97,115,115, 65, 114,114, 97,121, 46, 95, 95,105,110,100,101,120, 32, 61, 32, 99,108, 97,115,115, 65,114,114, 97,121, 10,115,101,116,109, 101,116, 97,116, 97, 98,108,101, 40, 99,108, 97,115,115, 65, 114,114, 97,121, 44, 99,108, 97,115,115, 68,101, 99,108, 97, 114, 97,116,105,111,110, 41, 10, 10, 45, 45, 32, 80,114,105, 110,116, 32,109,101,116,104,111,100, 10,102,117,110, 99,116, 105,111,110, 32, 99,108, 97,115,115, 65,114,114, 97,121, 58, 112,114,105,110,116, 32, 40,105,100,101,110,116, 44, 99,108, 111,115,101, 41, 10, 32,112,114,105,110,116, 40,105,100,101, 110,116, 46, 46, 34, 65,114,114, 97,121,123, 34, 41, 10, 32, 112,114,105,110,116, 40,105,100,101,110,116, 46, 46, 34, 32, 109,111,100, 32, 32, 61, 32, 39, 34, 46, 46,115,101,108,102, 46,109,111,100, 46, 46, 34, 39, 44, 34, 41, 10, 32,112,114, 105,110,116, 40,105,100,101,110,116, 46, 46, 34, 32,116,121, 112,101, 32, 61, 32, 39, 34, 46, 46,115,101,108,102, 46,116, 121,112,101, 46, 46, 34, 39, 44, 34, 41, 10, 32,112,114,105, 110,116, 40,105,100,101,110,116, 46, 46, 34, 32,112,116,114, 32, 32, 61, 32, 39, 34, 46, 46,115,101,108,102, 46,112,116, 114, 46, 46, 34, 39, 44, 34, 41, 10, 32,112,114,105,110,116, 40,105,100,101,110,116, 46, 46, 34, 32,110, 97,109,101, 32, 61, 32, 39, 34, 46, 46,115,101,108,102, 46,110, 97,109,101, 46, 46, 34, 39, 44, 34, 41, 10, 32,112,114,105,110,116, 40, 105,100,101,110,116, 46, 46, 34, 32,100,101,102, 32, 32, 61, 32, 39, 34, 46, 46,115,101,108,102, 46,100,101,102, 46, 46, 34, 39, 44, 34, 41, 10, 32,112,114,105,110,116, 40,105,100, 101,110,116, 46, 46, 34, 32,100,105,109, 32, 32, 61, 32, 39, 34, 46, 46,115,101,108,102, 46,100,105,109, 46, 46, 34, 39, 44, 34, 41, 10, 32,112,114,105,110,116, 40,105,100,101,110, 116, 46, 46, 34, 32,114,101,116, 32, 32, 61, 32, 39, 34, 46, 46,115,101,108,102, 46,114,101,116, 46, 46, 34, 39, 44, 34, 41, 10, 32,112,114,105,110,116, 40,105,100,101,110,116, 46, 46, 34,125, 34, 46, 46, 99,108,111,115,101, 41, 10,101,110, 100, 10, 10, 45, 45, 32, 99,104,101, 99,107, 32,105,102, 32, 105,116, 32,105,115, 32, 97, 32,118, 97,114,105, 97, 98,108, 101, 10,102,117,110, 99,116,105,111,110, 32, 99,108, 97,115, 115, 65,114,114, 97,121, 58,105,115,118, 97,114,105, 97, 98, 108,101, 32, 40, 41, 10, 32,114,101,116,117,114,110, 32,116, 114,117,101, 10,101,110,100, 10, 10, 10, 45, 45, 32,103,101, 116, 32,118, 97,114,105, 97, 98,108,101, 32,118, 97,108,117, 101, 10,102,117,110, 99,116,105,111,110, 32, 99,108, 97,115, 115, 65,114,114, 97,121, 58,103,101,116,118, 97,108,117,101, 32, 40, 99,108, 97,115,115, 44,115,116, 97,116,105, 99, 41, 10, 32,105,102, 32, 99,108, 97,115,115, 32, 97,110,100, 32, 115,116, 97,116,105, 99, 32,116,104,101,110, 10, 32, 32,114, 101,116,117,114,110, 32, 99,108, 97,115,115, 46, 46, 39, 58, 58, 39, 46, 46,115,101,108,102, 46,110, 97,109,101, 46, 46, 39, 91,116,111,108,117, 97, 95,105,110,100,101,120, 93, 39, 10, 32,101,108,115,101,105,102, 32, 99,108, 97,115,115, 32, 116,104,101,110, 10, 32, 32,114,101,116,117,114,110, 32, 39, 115,101,108,102, 45, 62, 39, 46, 46,115,101,108,102, 46,110, 97,109,101, 46, 46, 39, 91,116,111,108,117, 97, 95,105,110, 100,101,120, 93, 39, 10, 32,101,108,115,101, 10, 32, 32,114, 101,116,117,114,110, 32,115,101,108,102, 46,110, 97,109,101, 46, 46, 39, 91,116,111,108,117, 97, 95,105,110,100,101,120, 93, 39, 10, 32,101,110,100, 10,101,110,100, 10, 10, 45, 45, 32, 87,114,105,116,101, 32, 98,105,110,100,105,110,103, 32, 102,117,110, 99,116,105,111,110,115, 10,102,117,110, 99,116, 105,111,110, 32, 99,108, 97,115,115, 65,114,114, 97,121, 58, 115,117,112, 99,111,100,101, 32, 40, 41, 10, 32,108,111, 99, 97,108, 32, 99,108, 97,115,115, 32, 61, 32,115,101,108,102, 58,105,110, 99,108, 97,115,115, 40, 41, 10, 10, 32, 45, 45, 32,103,101,116, 32,102,117,110, 99,116,105,111,110, 32, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 10, 32,105,102, 32, 99,108, 97,115,115, 32,116,104, 101,110, 10, 32, 32,111,117,116,112,117,116, 40, 34, 47, 42, 32,103,101,116, 32,102,117,110, 99,116,105,111,110, 58, 34, 44,115,101,108,102, 46,110, 97,109,101, 44, 34, 32,111,102, 32, 99,108, 97,115,115, 32, 34, 44, 99,108, 97,115,115, 44, 34, 32, 42, 47, 34, 41, 10, 32,101,108,115,101, 10, 32, 32, 111,117,116,112,117,116, 40, 34, 47, 42, 32,103,101,116, 32, 102,117,110, 99,116,105,111,110, 58, 34, 44,115,101,108,102, 46,110, 97,109,101, 44, 34, 32, 42, 47, 34, 41, 10, 32,101, 110,100, 10, 32,115,101,108,102, 46, 99,103,101,116,110, 97, 109,101, 32, 61, 32,115,101,108,102, 58, 99,102,117,110, 99, 110, 97,109,101, 40, 34,116,111,108,117, 97, 95,103,101,116, 34, 41, 10, 32,111,117,116,112,117,116, 40, 34, 35,105,102, 110,100,101,102, 32, 84, 79, 76, 85, 65, 95, 68, 73, 83, 65, 66, 76, 69, 95, 34, 46, 46,115,101,108,102, 46, 99,103,101, 116,110, 97,109,101, 41, 10, 32,111,117,116,112,117,116, 40, 34, 92,110,115,116, 97,116,105, 99, 32,105,110,116, 34, 44, 115,101,108,102, 46, 99,103,101,116,110, 97,109,101, 44, 34, 40,108,117, 97, 95, 83,116, 97,116,101, 42, 32,116,111,108, 117, 97, 95, 83, 41, 34, 41, 10, 32,111,117,116,112,117,116, 40, 34,123, 34, 41, 10, 32,111,117,116,112,117,116, 40, 34, 32,105,110,116, 32,116,111,108,117, 97, 95,105,110,100,101, 120, 59, 34, 41, 10, 10, 32, 45, 45, 32,100,101, 99,108, 97, 114,101, 32,115,101,108,102, 44, 32,105,102, 32,116,104,101, 32, 99, 97,115,101, 10, 32,108,111, 99, 97,108, 32, 95, 44, 95, 44,115,116, 97,116,105, 99, 32, 61, 32,115,116,114,102, 105,110,100, 40,115,101,108,102, 46,109,111,100, 44, 39, 94, 37,115, 42, 40,115,116, 97,116,105, 99, 41, 39, 41, 10, 32, 105,102, 32, 99,108, 97,115,115, 32, 97,110,100, 32,115,116, 97,116,105, 99, 61, 61,110,105,108, 32,116,104,101,110, 10, 32, 32,111,117,116,112,117,116, 40, 39, 32, 39, 44,115,101, 108,102, 46,112, 97,114,101,110,116, 46,116,121,112,101, 44, 39, 42, 39, 44, 39,115,101,108,102, 59, 39, 41, 10, 32, 32, 111,117,116,112,117,116, 40, 39, 32,108,117, 97, 95,112,117, 115,104,115,116,114,105,110,103, 40,116,111,108,117, 97, 95, 83, 44, 34, 46,115,101,108,102, 34, 41, 59, 39, 41, 10, 32, 32,111,117,116,112,117,116, 40, 39, 32,108,117, 97, 95,114, 97,119,103,101,116, 40,116,111,108,117, 97, 95, 83, 44, 49, 41, 59, 39, 41, 10, 32, 32,111,117,116,112,117,116, 40, 39, 32,115,101,108,102, 32, 61, 32, 39, 41, 10, 32, 32,111,117, 116,112,117,116, 40, 39, 40, 39, 44,115,101,108,102, 46,112, 97,114,101,110,116, 46,116,121,112,101, 44, 39, 42, 41, 32, 39, 41, 10, 32, 32,111,117,116,112,117,116, 40, 39,108,117, 97, 95,116,111,117,115,101,114,100, 97,116, 97, 40,116,111, 108,117, 97, 95, 83, 44, 45, 49, 41, 59, 39, 41, 10, 32,101, 108,115,101,105,102, 32,115,116, 97,116,105, 99, 32,116,104, 101,110, 10, 32, 32, 95, 44, 95, 44,115,101,108,102, 46,109, 111,100, 32, 61, 32,115,116,114,102,105,110,100, 40,115,101, 108,102, 46,109,111,100, 44, 39, 94, 37,115, 42,115,116, 97, 116,105, 99, 37,115, 37,115, 42, 40, 46, 42, 41, 39, 41, 10, 32,101,110,100, 10, 10, 32, 45, 45, 32, 99,104,101, 99,107, 32,105,110,100,101,120, 10, 9,111,117,116,112,117,116, 40, 39, 35,105,102,110,100,101,102, 32, 84, 79, 76, 85, 65, 95, 82, 69, 76, 69, 65, 83, 69, 92,110, 39, 41, 10, 9,111,117, 116,112,117,116, 40, 39, 32,123, 39, 41, 10, 9,111,117,116, 112,117,116, 40, 39, 32, 32,116,111,108,117, 97, 95, 69,114, 114,111,114, 32,116,111,108,117, 97, 95,101,114,114, 59, 39, 41, 10, 32,111,117,116,112,117,116, 40, 39, 32, 32,105,102, 32, 40, 33,116,111,108,117, 97, 95,105,115,110,117,109, 98, 101,114, 40,116,111,108,117, 97, 95, 83, 44, 50, 44, 48, 44, 38,116,111,108,117, 97, 95,101,114,114, 41, 41, 39, 41, 10, 32,111,117,116,112,117,116, 40, 39, 32, 32, 32,116,111,108, 117, 97, 95,101,114,114,111,114, 40,116,111,108,117, 97, 95, 83, 44, 34, 35,118,105,110,118, 97,108,105,100, 32,116,121, 112,101, 32,105,110, 32, 97,114,114, 97,121, 32,105,110,100, 101,120,105,110,103, 46, 34, 44, 38,116,111,108,117, 97, 95, 101,114,114, 41, 59, 39, 41, 10, 9,111,117,116,112,117,116, 40, 39, 32,125, 39, 41, 10, 9,111,117,116,112,117,116, 40, 39, 35,101,110,100,105,102, 92,110, 39, 41, 10, 9,105,102, 32,102,108, 97,103,115, 91, 39, 49, 39, 93, 32,116,104,101, 110, 32, 45, 45, 32,102,111,114, 32, 99,111,109,112, 97,116, 105, 98,105,108,105,116,121, 32,119,105,116,104, 32,116,111, 108,117, 97, 53, 32, 63, 10, 9, 9,111,117,116,112,117,116, 40, 39, 32,116,111,108,117, 97, 95,105,110,100,101,120, 32, 61, 32, 40,105,110,116, 41,116,111,108,117, 97, 95,116,111, 110,117,109, 98,101,114, 40,116,111,108,117, 97, 95, 83, 44, 50, 44, 48, 41, 45, 49, 59, 39, 41, 10, 9,101,108,115,101, 10, 9, 9,111,117,116,112,117,116, 40, 39, 32,116,111,108, 117, 97, 95,105,110,100,101,120, 32, 61, 32, 40,105,110,116, 41,116,111,108,117, 97, 95,116,111,110,117,109, 98,101,114, 40,116,111,108,117, 97, 95, 83, 44, 50, 44, 48, 41, 59, 39, 41, 10, 9,101,110,100, 10, 9,111,117,116,112,117,116, 40, 39, 35,105,102,110,100,101,102, 32, 84, 79, 76, 85, 65, 95, 82, 69, 76, 69, 65, 83, 69, 92,110, 39, 41, 10, 9,105,102, 32,115,101,108,102, 46,100,105,109, 32, 97,110,100, 32,115, 101,108,102, 46,100,105,109, 32,126, 61, 32, 39, 39, 32,116, 104,101,110, 10, 9, 32, 32,111,117,116,112,117,116, 40, 39, 32,105,102, 32, 40,116,111,108,117, 97, 95,105,110,100,101, 120, 60, 48, 32,124,124, 32,116,111,108,117, 97, 95,105,110, 100,101,120, 62, 61, 39, 46, 46,115,101,108,102, 46,100,105, 109, 46, 46, 39, 41, 39, 41, 10, 9,101,108,115,101, 10, 9, 32, 32,111,117,116,112,117,116, 40, 39, 32,105,102, 32, 40, 116,111,108,117, 97, 95,105,110,100,101,120, 60, 48, 41, 39, 41, 10, 9,101,110,100, 10, 32,111,117,116,112,117,116, 40, 39, 32, 32,116,111,108,117, 97, 95,101,114,114,111,114, 40, 116,111,108,117, 97, 95, 83, 44, 34, 97,114,114, 97,121, 32, 105,110,100,101,120,105,110,103, 32,111,117,116, 32,111,102, 32,114, 97,110,103,101, 46, 34, 44, 78, 85, 76, 76, 41, 59, 39, 41, 10, 9,111,117,116,112,117,116, 40, 39, 35,101,110, 100,105,102, 92,110, 39, 41, 10, 10, 32, 45, 45, 32,114,101, 116,117,114,110, 32,118, 97,108,117,101, 10, 32,108,111, 99, 97,108, 32,116, 44, 99,116, 32, 61, 32,105,115, 98, 97,115, 105, 99, 40,115,101,108,102, 46,116,121,112,101, 41, 10, 32, 108,111, 99, 97,108, 32,112,117,115,104, 95,102,117,110, 99, 32, 61, 32,103,101,116, 95,112,117,115,104, 95,102,117,110, 99,116,105,111,110, 40,116, 41, 10, 32,105,102, 32,116, 32, 116,104,101,110, 10, 32, 32,111,117,116,112,117,116, 40, 39, 32,116,111,108,117, 97, 95,112,117,115,104, 39, 46, 46,116, 46, 46, 39, 40,116,111,108,117, 97, 95, 83, 44, 40, 39, 44, 99,116, 44, 39, 41, 39, 46, 46,115,101,108,102, 58,103,101, 116,118, 97,108,117,101, 40, 99,108, 97,115,115, 44,115,116, 97,116,105, 99, 41, 46, 46, 39, 41, 59, 39, 41, 10, 32,101, 108,115,101, 10, 9, 9,116, 32, 61, 32,115,101,108,102, 46, 116,121,112,101, 10, 32, 32,105,102, 32,115,101,108,102, 46, 112,116,114, 32, 61, 61, 32, 39, 38, 39, 32,111,114, 32,115, 101,108,102, 46,112,116,114, 32, 61, 61, 32, 39, 39, 32,116, 104,101,110, 10, 32, 32, 32,111,117,116,112,117,116, 40, 39, 32, 39, 44,112,117,115,104, 95,102,117,110, 99, 44, 39, 40, 116,111,108,117, 97, 95, 83, 44, 40,118,111,105,100, 42, 41, 38, 39, 46, 46,115,101,108,102, 58,103,101,116,118, 97,108, 117,101, 40, 99,108, 97,115,115, 44,115,116, 97,116,105, 99, 41, 46, 46, 39, 44, 34, 39, 44,116, 44, 39, 34, 41, 59, 39, 41, 10, 32, 32,101,108,115,101, 10, 32, 32, 32,111,117,116, 112,117,116, 40, 39, 32, 39, 44,112,117,115,104, 95,102,117, 110, 99, 44, 39, 40,116,111,108,117, 97, 95, 83, 44, 40,118, 111,105,100, 42, 41, 39, 46, 46,115,101,108,102, 58,103,101, 116,118, 97,108,117,101, 40, 99,108, 97,115,115, 44,115,116, 97,116,105, 99, 41, 46, 46, 39, 44, 34, 39, 44,116, 44, 39, 34, 41, 59, 39, 41, 10, 32, 32,101,110,100, 10, 32,101,110, 100, 10, 32,111,117,116,112,117,116, 40, 39, 32,114,101,116, 117,114,110, 32, 49, 59, 39, 41, 10, 32,111,117,116,112,117, 116, 40, 39,125, 39, 41, 10, 32,111,117,116,112,117,116, 40, 39, 35,101,110,100,105,102, 32, 47, 47, 35,105,102,110,100, 101,102, 32, 84, 79, 76, 85, 65, 95, 68, 73, 83, 65, 66, 76, 69, 92,110, 39, 41, 10, 32,111,117,116,112,117,116, 40, 39, 92,110, 39, 41, 10, 10, 32, 45, 45, 32,115,101,116, 32,102, 117,110, 99,116,105,111,110, 32, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 10, 32,105,102, 32,110,111,116, 32,115,116,114,102,105,110,100, 40,115,101, 108,102, 46,116,121,112,101, 44, 39, 99,111,110,115,116, 39, 41, 32,116,104,101,110, 10, 32, 32,105,102, 32, 99,108, 97, 115,115, 32,116,104,101,110, 10, 32, 32, 32,111,117,116,112, 117,116, 40, 34, 47, 42, 32,115,101,116, 32,102,117,110, 99, 116,105,111,110, 58, 34, 44,115,101,108,102, 46,110, 97,109, 101, 44, 34, 32,111,102, 32, 99,108, 97,115,115, 32, 34, 44, 99,108, 97,115,115, 44, 34, 32, 42, 47, 34, 41, 10, 32, 32, 101,108,115,101, 10, 32, 32, 32,111,117,116,112,117,116, 40, 34, 47, 42, 32,115,101,116, 32,102,117,110, 99,116,105,111, 110, 58, 34, 44,115,101,108,102, 46,110, 97,109,101, 44, 34, 32, 42, 47, 34, 41, 10, 32, 32,101,110,100, 10, 32, 32,115, 101,108,102, 46, 99,115,101,116,110, 97,109,101, 32, 61, 32, 115,101,108,102, 58, 99,102,117,110, 99,110, 97,109,101, 40, 34,116,111,108,117, 97, 95,115,101,116, 34, 41, 10, 32, 32, 111,117,116,112,117,116, 40, 34, 35,105,102,110,100,101,102, 32, 84, 79, 76, 85, 65, 95, 68, 73, 83, 65, 66, 76, 69, 95, 34, 46, 46,115,101,108,102, 46, 99,115,101,116,110, 97,109, 101, 41, 10, 32, 32,111,117,116,112,117,116, 40, 34, 92,110, 115,116, 97,116,105, 99, 32,105,110,116, 34, 44,115,101,108, 102, 46, 99,115,101,116,110, 97,109,101, 44, 34, 40,108,117, 97, 95, 83,116, 97,116,101, 42, 32,116,111,108,117, 97, 95, 83, 41, 34, 41, 10, 32, 32,111,117,116,112,117,116, 40, 34, 123, 34, 41, 10, 10, 32, 32, 45, 45, 32,100,101, 99,108, 97, 114,101, 32,105,110,100,101,120, 10, 32, 32,111,117,116,112, 117,116, 40, 39, 32,105,110,116, 32,116,111,108,117, 97, 95, 105,110,100,101,120, 59, 39, 41, 10, 10, 32, 32, 45, 45, 32, 100,101, 99,108, 97,114,101, 32,115,101,108,102, 44, 32,105, 102, 32,116,104,101, 32, 99, 97,115,101, 10, 32, 32,108,111, 99, 97,108, 32, 95, 44, 95, 44,115,116, 97,116,105, 99, 32, 61, 32,115,116,114,102,105,110,100, 40,115,101,108,102, 46, 109,111,100, 44, 39, 94, 37,115, 42, 40,115,116, 97,116,105, 99, 41, 39, 41, 10, 32, 32,105,102, 32, 99,108, 97,115,115, 32, 97,110,100, 32,115,116, 97,116,105, 99, 61, 61,110,105, 108, 32,116,104,101,110, 10, 32, 32, 32,111,117,116,112,117, 116, 40, 39, 32, 39, 44,115,101,108,102, 46,112, 97,114,101, 110,116, 46,116,121,112,101, 44, 39, 42, 39, 44, 39,115,101, 108,102, 59, 39, 41, 10, 32, 32, 32,111,117,116,112,117,116, 40, 39, 32,108,117, 97, 95,112,117,115,104,115,116,114,105, 110,103, 40,116,111,108,117, 97, 95, 83, 44, 34, 46,115,101, 108,102, 34, 41, 59, 39, 41, 10, 32, 32, 32,111,117,116,112, 117,116, 40, 39, 32,108,117, 97, 95,114, 97,119,103,101,116, 40,116,111,108,117, 97, 95, 83, 44, 49, 41, 59, 39, 41, 10, 32, 32, 32,111,117,116,112,117,116, 40, 39, 32,115,101,108, 102, 32, 61, 32, 39, 41, 10, 32, 32, 32,111,117,116,112,117, 116, 40, 39, 40, 39, 44,115,101,108,102, 46,112, 97,114,101, 110,116, 46,116,121,112,101, 44, 39, 42, 41, 32, 39, 41, 10, 32, 32, 32,111,117,116,112,117,116, 40, 39,108,117, 97, 95, 116,111,117,115,101,114,100, 97,116, 97, 40,116,111,108,117, 97, 95, 83, 44, 45, 49, 41, 59, 39, 41, 10, 32, 32,101,108, 115,101,105,102, 32,115,116, 97,116,105, 99, 32,116,104,101, 110, 10, 32, 32, 32, 95, 44, 95, 44,115,101,108,102, 46,109, 111,100, 32, 61, 32,115,116,114,102,105,110,100, 40,115,101, 108,102, 46,109,111,100, 44, 39, 94, 37,115, 42,115,116, 97, 116,105, 99, 37,115, 37,115, 42, 40, 46, 42, 41, 39, 41, 10, 32, 32,101,110,100, 10, 10, 32, 32, 45, 45, 32, 99,104,101, 99,107, 32,105,110,100,101,120, 10, 9, 32,111,117,116,112, 117,116, 40, 39, 35,105,102,110,100,101,102, 32, 84, 79, 76, 85, 65, 95, 82, 69, 76, 69, 65, 83, 69, 92,110, 39, 41, 10, 9, 32,111,117,116,112,117,116, 40, 39, 32,123, 39, 41, 10, 9, 32,111,117,116,112,117,116, 40, 39, 32, 32,116,111,108, 117, 97, 95, 69,114,114,111,114, 32,116,111,108,117, 97, 95, 101,114,114, 59, 39, 41, 10, 32, 32,111,117,116,112,117,116, 40, 39, 32, 32,105,102, 32, 40, 33,116,111,108,117, 97, 95, 105,115,110,117,109, 98,101,114, 40,116,111,108,117, 97, 95, 83, 44, 50, 44, 48, 44, 38,116,111,108,117, 97, 95,101,114, 114, 41, 41, 39, 41, 10, 32, 32,111,117,116,112,117,116, 40, 39, 32, 32, 32,116,111,108,117, 97, 95,101,114,114,111,114, 40,116,111,108,117, 97, 95, 83, 44, 34, 35,118,105,110,118, 97,108,105,100, 32,116,121,112,101, 32,105,110, 32, 97,114, 114, 97,121, 32,105,110,100,101,120,105,110,103, 46, 34, 44, 38,116,111,108,117, 97, 95,101,114,114, 41, 59, 39, 41, 10, 9, 9,111,117,116,112,117,116, 40, 39, 32,125, 39, 41, 10, 9, 9,111,117,116,112,117,116, 40, 39, 35,101,110,100,105, 102, 92,110, 39, 41, 10, 10, 9,105,102, 32,102,108, 97,103, 115, 91, 39, 49, 39, 93, 32,116,104,101,110, 32, 45, 45, 32, 102,111,114, 32, 99,111,109,112, 97,116,105, 98,105,108,105, 116,121, 32,119,105,116,104, 32,116,111,108,117, 97, 53, 32, 63, 10, 9, 9,111,117,116,112,117,116, 40, 39, 32,116,111, 108,117, 97, 95,105,110,100,101,120, 32, 61, 32, 40,105,110, 116, 41,116,111,108,117, 97, 95,116,111,110,117,109, 98,101, 114, 40,116,111,108,117, 97, 95, 83, 44, 50, 44, 48, 41, 45, 49, 59, 39, 41, 10, 9,101,108,115,101, 10, 9, 9,111,117, 116,112,117,116, 40, 39, 32,116,111,108,117, 97, 95,105,110, 100,101,120, 32, 61, 32, 40,105,110,116, 41,116,111,108,117, 97, 95,116,111,110,117,109, 98,101,114, 40,116,111,108,117, 97, 95, 83, 44, 50, 44, 48, 41, 59, 39, 41, 10, 9,101,110, 100, 10, 10, 9, 32,111,117,116,112,117,116, 40, 39, 35,105, 102,110,100,101,102, 32, 84, 79, 76, 85, 65, 95, 82, 69, 76, 69, 65, 83, 69, 92,110, 39, 41, 10, 9,105,102, 32,115,101, 108,102, 46,100,105,109, 32, 97,110,100, 32,115,101,108,102, 46,100,105,109, 32,126, 61, 32, 39, 39, 32,116,104,101,110, 10, 9, 32, 32,111,117,116,112,117,116, 40, 39, 32,105,102, 32, 40,116,111,108,117, 97, 95,105,110,100,101,120, 60, 48, 32,124,124, 32,116,111,108,117, 97, 95,105,110,100,101,120, 62, 61, 39, 46, 46,115,101,108,102, 46,100,105,109, 46, 46, 39, 41, 39, 41, 10, 9,101,108,115,101, 10, 9, 32, 32,111, 117,116,112,117,116, 40, 39, 32,105,102, 32, 40,116,111,108, 117, 97, 95,105,110,100,101,120, 60, 48, 41, 39, 41, 10, 9, 101,110,100, 10, 32, 32,111,117,116,112,117,116, 40, 39, 32, 32,116,111,108,117, 97, 95,101,114,114,111,114, 40,116,111, 108,117, 97, 95, 83, 44, 34, 97,114,114, 97,121, 32,105,110, 100,101,120,105,110,103, 32,111,117,116, 32,111,102, 32,114, 97,110,103,101, 46, 34, 44, 78, 85, 76, 76, 41, 59, 39, 41, 10, 9, 9,111,117,116,112,117,116, 40, 39, 35,101,110,100, 105,102, 92,110, 39, 41, 10, 10, 32, 32, 45, 45, 32, 97,115, 115,105,103,110, 32,118, 97,108,117,101, 10, 32, 32,108,111, 99, 97,108, 32,112,116,114, 32, 61, 32, 39, 39, 10, 32, 32, 105,102, 32,115,101,108,102, 46,112,116,114,126, 61, 39, 39, 32,116,104,101,110, 32,112,116,114, 32, 61, 32, 39, 42, 39, 32,101,110,100, 10, 32, 32,111,117,116,112,117,116, 40, 39, 32, 39, 41, 10, 32, 32,105,102, 32, 99,108, 97,115,115, 32, 97,110,100, 32,115,116, 97,116,105, 99, 32,116,104,101,110, 10, 32, 32, 32,111,117,116,112,117,116, 40, 99,108, 97,115, 115, 46, 46, 39, 58, 58, 39, 46, 46,115,101,108,102, 46,110, 97,109,101, 46, 46, 39, 91,116,111,108,117, 97, 95,105,110, 100,101,120, 93, 39, 41, 10, 32, 32,101,108,115,101,105,102, 32, 99,108, 97,115,115, 32,116,104,101,110, 10, 32, 32, 32, 111,117,116,112,117,116, 40, 39,115,101,108,102, 45, 62, 39, 46, 46,115,101,108,102, 46,110, 97,109,101, 46, 46, 39, 91, 116,111,108,117, 97, 95,105,110,100,101,120, 93, 39, 41, 10, 32, 32,101,108,115,101, 10, 32, 32, 32,111,117,116,112,117, 116, 40,115,101,108,102, 46,110, 97,109,101, 46, 46, 39, 91, 116,111,108,117, 97, 95,105,110,100,101,120, 93, 39, 41, 10, 32, 32,101,110,100, 10, 32, 32,108,111, 99, 97,108, 32,116, 32, 61, 32,105,115, 98, 97,115,105, 99, 40,115,101,108,102, 46,116,121,112,101, 41, 10, 32, 32,111,117,116,112,117,116, 40, 39, 32, 61, 32, 39, 41, 10, 32, 32,105,102, 32,110,111, 116, 32,116, 32, 97,110,100, 32,112,116,114, 61, 61, 39, 39, 32,116,104,101,110, 32,111,117,116,112,117,116, 40, 39, 42, 39, 41, 32,101,110,100, 10, 32, 32,111,117,116,112,117,116, 40, 39, 40, 40, 39, 44,115,101,108,102, 46,109,111,100, 44, 115,101,108,102, 46,116,121,112,101, 41, 10, 32, 32,105,102, 32,110,111,116, 32,116, 32,116,104,101,110, 10, 32, 32, 32, 111,117,116,112,117,116, 40, 39, 42, 39, 41, 10, 32, 32,101, 110,100, 10, 32, 32,111,117,116,112,117,116, 40, 39, 41, 32, 39, 41, 10, 32, 32,108,111, 99, 97,108, 32,100,101,102, 32, 61, 32, 48, 10, 32, 32,105,102, 32,115,101,108,102, 46,100, 101,102, 32,126, 61, 32, 39, 39, 32,116,104,101,110, 32,100, 101,102, 32, 61, 32,115,101,108,102, 46,100,101,102, 32,101, 110,100, 10, 32, 32,105,102, 32,116, 32,116,104,101,110, 10, 32, 32, 32,111,117,116,112,117,116, 40, 39,116,111,108,117, 97, 95,116,111, 39, 46, 46,116, 44, 39, 40,116,111,108,117, 97, 95, 83, 44, 51, 44, 39, 44,100,101,102, 44, 39, 41, 41, 59, 39, 41, 10, 32, 32,101,108,115,101, 10, 32, 32, 32,108, 111, 99, 97,108, 32,116,111, 95,102,117,110, 99, 32, 61, 32, 103,101,116, 95,116,111, 95,102,117,110, 99,116,105,111,110, 40,115,101,108,102, 46,116,121,112,101, 41, 10, 32, 32, 32, 111,117,116,112,117,116, 40,116,111, 95,102,117,110, 99, 44, 39, 40,116,111,108,117, 97, 95, 83, 44, 51, 44, 39, 44,100, 101,102, 44, 39, 41, 41, 59, 39, 41, 10, 32, 32,101,110,100, 10, 32, 32,111,117,116,112,117,116, 40, 39, 32,114,101,116, 117,114,110, 32, 48, 59, 39, 41, 10, 32, 32,111,117,116,112, 117,116, 40, 39,125, 39, 41, 10, 32, 32,111,117,116,112,117, 116, 40, 39, 35,101,110,100,105,102, 32, 47, 47, 35,105,102, 110,100,101,102, 32, 84, 79, 76, 85, 65, 95, 68, 73, 83, 65, 66, 76, 69, 92,110, 39, 41, 10, 32, 32,111,117,116,112,117, 116, 40, 39, 92,110, 39, 41, 10, 32,101,110,100, 10, 10,101, 110,100, 10, 10,102,117,110, 99,116,105,111,110, 32, 99,108, 97,115,115, 65,114,114, 97,121, 58,114,101,103,105,115,116, 101,114, 32, 40,112,114,101, 41, 10, 9,105,102, 32,110,111, 116, 32,115,101,108,102, 58, 99,104,101, 99,107, 95,112,117, 98,108,105, 99, 95, 97, 99, 99,101,115,115, 40, 41, 32,116, 104,101,110, 10, 9, 9,114,101,116,117,114,110, 10, 9,101, 110,100, 10, 10, 32,112,114,101, 32, 61, 32,112,114,101, 32, 111,114, 32, 39, 39, 10, 32,105,102, 32,115,101,108,102, 46, 99,115,101,116,110, 97,109,101, 32,116,104,101,110, 10, 32, 32,111,117,116,112,117,116, 40,112,114,101, 46, 46, 39,116, 111,108,117, 97, 95, 97,114,114, 97,121, 40,116,111,108,117, 97, 95, 83, 44, 34, 39, 46, 46,115,101,108,102, 46,108,110, 97,109,101, 46, 46, 39, 34, 44, 39, 46, 46,115,101,108,102, 46, 99,103,101,116,110, 97,109,101, 46, 46, 39, 44, 39, 46, 46,115,101,108,102, 46, 99,115,101,116,110, 97,109,101, 46, 46, 39, 41, 59, 39, 41, 10, 32,101,108,115,101, 10, 32, 32, 111,117,116,112,117,116, 40,112,114,101, 46, 46, 39,116,111, 108,117, 97, 95, 97,114,114, 97,121, 40,116,111,108,117, 97, 95, 83, 44, 34, 39, 46, 46,115,101,108,102, 46,108,110, 97, 109,101, 46, 46, 39, 34, 44, 39, 46, 46,115,101,108,102, 46, 99,103,101,116,110, 97,109,101, 46, 46, 39, 44, 78, 85, 76, 76, 41, 59, 39, 41, 10, 32,101,110,100, 10,101,110,100, 10, 10, 45, 45, 32, 73,110,116,101,114,110, 97,108, 32, 99,111, 110,115,116,114,117, 99,116,111,114, 10,102,117,110, 99,116, 105,111,110, 32, 95, 65,114,114, 97,121, 32, 40,116, 41, 10, 32,115,101,116,109,101,116, 97,116, 97, 98,108,101, 40,116, 44, 99,108, 97,115,115, 65,114,114, 97,121, 41, 10, 32, 97, 112,112,101,110,100, 40,116, 41, 10, 32,114,101,116,117,114, 110, 32,116, 10,101,110,100, 10, 10, 45, 45, 32, 67,111,110, 115,116,114,117, 99,116,111,114, 10, 45, 45, 32, 69,120,112, 101, 99,116,115, 32, 97, 32,115,116,114,105,110,103, 32,114, 101,112,114,101,115,101,110,116,105,110,103, 32,116,104,101, 32,118, 97,114,105, 97, 98,108,101, 32,100,101, 99,108, 97, 114, 97,116,105,111,110, 46, 10,102,117,110, 99,116,105,111, 110, 32, 65,114,114, 97,121, 32, 40,115, 41, 10, 32,114,101, 116,117,114,110, 32, 95, 65,114,114, 97,121, 32, 40, 68,101, 99,108, 97,114, 97,116,105,111,110, 40,115, 44, 39,118, 97, 114, 39, 41, 41, 10,101,110,100,32 }; tolua_dobuffer(tolua_S,(char*)B,sizeof(B),"tolua embedded: lua/tolua++/src/bin/lua/array.lua"); lua_settop(tolua_S, top); } /* end of embedded lua code */ { /* begin embedded lua code */ int top = lua_gettop(tolua_S); static unsigned char B[] = { 45, 45, 32,116,111,108,117, 97, 58, 32,102,117,110, 99,116, 105,111,110, 32, 99,108, 97,115,115, 10, 45, 45, 32, 87,114, 105,116,116,101,110, 32, 98,121, 32, 87, 97,108,100,101,109, 97,114, 32, 67,101,108,101,115, 10, 45, 45, 32, 84,101, 67, 71,114, 97,102, 47, 80, 85, 67, 45, 82,105,111, 10, 45, 45, 32, 74,117,108, 32, 49, 57, 57, 56, 10, 45, 45, 32, 36, 73, 100, 58, 32, 36, 10, 10, 45, 45, 32, 84,104,105,115, 32, 99, 111,100,101, 32,105,115, 32,102,114,101,101, 32,115,111,102, 116,119, 97,114,101, 59, 32,121,111,117, 32, 99, 97,110, 32, 114,101,100,105,115,116,114,105, 98,117,116,101, 32,105,116, 32, 97,110,100, 47,111,114, 32,109,111,100,105,102,121, 32, 105,116, 46, 10, 45, 45, 32, 84,104,101, 32,115,111,102,116, 119, 97,114,101, 32,112,114,111,118,105,100,101,100, 32,104, 101,114,101,117,110,100,101,114, 32,105,115, 32,111,110, 32, 97,110, 32, 34, 97,115, 32,105,115, 34, 32, 98, 97,115,105, 115, 44, 32, 97,110,100, 10, 45, 45, 32,116,104,101, 32, 97, 117,116,104,111,114, 32,104, 97,115, 32,110,111, 32,111, 98, 108,105,103, 97,116,105,111,110, 32,116,111, 32,112,114,111, 118,105,100,101, 32,109, 97,105,110,116,101,110, 97,110, 99, 101, 44, 32,115,117,112,112,111,114,116, 44, 32,117,112,100, 97,116,101,115, 44, 10, 45, 45, 32,101,110,104, 97,110, 99, 101,109,101,110,116,115, 44, 32,111,114, 32,109,111,100,105, 102,105, 99, 97,116,105,111,110,115, 46, 10, 10, 10, 10, 45, 45, 32, 70,117,110, 99,116,105,111,110, 32, 99,108, 97,115, 115, 10, 45, 45, 32, 82,101,112,114,101,115,101,110,116,115, 32, 97, 32,102,117,110, 99,116,105,111,110, 32,111,114, 32, 97, 32, 99,108, 97,115,115, 32,109,101,116,104,111,100, 46, 10, 45, 45, 32, 84,104,101, 32,102,111,108,108,111,119,105, 110,103, 32,102,105,101,108,100,115, 32, 97,114,101, 32,115, 116,111,114,101,100, 58, 10, 45, 45, 32, 32,109,111,100, 32, 32, 61, 32,116,121,112,101, 32,109,111,100,105,102,105,101, 114,115, 10, 45, 45, 32, 32,116,121,112,101, 32, 61, 32,116, 121,112,101, 10, 45, 45, 32, 32,112,116,114, 32, 32, 61, 32, 34, 42, 34, 32,111,114, 32, 34, 38, 34, 44, 32,105,102, 32, 114,101,112,114,101,115,101,110,116,105,110,103, 32, 97, 32, 112,111,105,110,116,101,114, 32,111,114, 32, 97, 32,114,101, 102,101,114,101,110, 99,101, 10, 45, 45, 32, 32,110, 97,109, 101, 32, 61, 32,110, 97,109,101, 10, 45, 45, 32, 32,108,110, 97,109,101, 32, 61, 32,108,117, 97, 32,110, 97,109,101, 10, 45, 45, 32, 32, 97,114,103,115, 32, 32, 61, 32,108,105,115, 116, 32,111,102, 32, 97,114,103,117,109,101,110,116, 32,100, 101, 99,108, 97,114, 97,116,105,111,110,115, 10, 45, 45, 32, 32, 99,111,110,115,116, 32, 61, 32,105,102, 32,105,116, 32, 105,115, 32, 97, 32,109,101,116,104,111,100, 32,114,101, 99, 101,105,118,105,110,103, 32, 97, 32, 99,111,110,115,116, 32, 34,116,104,105,115, 34, 46, 10, 99,108, 97,115,115, 70,117, 110, 99,116,105,111,110, 32, 61, 32,123, 10, 32,109,111,100, 32, 61, 32, 39, 39, 44, 10, 32,116,121,112,101, 32, 61, 32, 39, 39, 44, 10, 32,112,116,114, 32, 61, 32, 39, 39, 44, 10, 32,110, 97,109,101, 32, 61, 32, 39, 39, 44, 10, 32, 97,114, 103,115, 32, 61, 32,123,110, 61, 48,125, 44, 10, 32, 99,111, 110,115,116, 32, 61, 32, 39, 39, 44, 10,125, 10, 99,108, 97, 115,115, 70,117,110, 99,116,105,111,110, 46, 95, 95,105,110, 100,101,120, 32, 61, 32, 99,108, 97,115,115, 70,117,110, 99, 116,105,111,110, 10,115,101,116,109,101,116, 97,116, 97, 98, 108,101, 40, 99,108, 97,115,115, 70,117,110, 99,116,105,111, 110, 44, 99,108, 97,115,115, 70,101, 97,116,117,114,101, 41, 10, 10, 45, 45, 32,100,101, 99,108, 97,114,101, 32,116, 97, 103,115, 10,102,117,110, 99,116,105,111,110, 32, 99,108, 97, 115,115, 70,117,110, 99,116,105,111,110, 58,100,101, 99,108, 116,121,112,101, 32, 40, 41, 10, 32,115,101,108,102, 46,116, 121,112,101, 32, 61, 32,116,121,112,101,118, 97,114, 40,115, 101,108,102, 46,116,121,112,101, 41, 10, 32,105,102, 32,115, 116,114,102,105,110,100, 40,115,101,108,102, 46,109,111,100, 44, 39, 99,111,110,115,116, 39, 41, 32,116,104,101,110, 10, 9, 32,115,101,108,102, 46,116,121,112,101, 32, 61, 32, 39, 99,111,110,115,116, 32, 39, 46, 46,115,101,108,102, 46,116, 121,112,101, 10, 9, 9,115,101,108,102, 46,109,111,100, 32, 61, 32,103,115,117, 98, 40,115,101,108,102, 46,109,111,100, 44, 39, 99,111,110,115,116, 39, 44, 39, 39, 41, 10, 9,101, 110,100, 10, 32,108,111, 99, 97,108, 32,105, 61, 49, 10, 32, 119,104,105,108,101, 32,115,101,108,102, 46, 97,114,103,115, 91,105, 93, 32,100,111, 10, 32, 32,115,101,108,102, 46, 97, 114,103,115, 91,105, 93, 58,100,101, 99,108,116,121,112,101, 40, 41, 10, 32, 32,105, 32, 61, 32,105, 43, 49, 10, 32,101, 110,100, 10,101,110,100, 10, 10, 10, 45, 45, 32, 87,114,105, 116,101, 32, 98,105,110,100,105,110,103, 32,102,117,110, 99, 116,105,111,110, 10, 45, 45, 32, 79,117,116,112,117,116,115, 32, 67, 47, 67, 43, 43, 32, 98,105,110,100,105,110,103, 32, 102,117,110, 99,116,105,111,110, 46, 10,102,117,110, 99,116, 105,111,110, 32, 99,108, 97,115,115, 70,117,110, 99,116,105, 111,110, 58,115,117,112, 99,111,100,101, 32, 40,108,111, 99, 97,108, 95, 99,111,110,115,116,114,117, 99,116,111,114, 41, 10, 10, 32,108,111, 99, 97,108, 32,111,118,101,114,108,111, 97,100, 32, 61, 32,115,116,114,115,117, 98, 40,115,101,108, 102, 46, 99,110, 97,109,101, 44, 45, 50, 44, 45, 49, 41, 32, 45, 32, 49, 32, 32, 45, 45, 32,105,110,100,105, 99, 97,116, 101, 32,111,118,101,114,108,111, 97,100,101,100, 32,102,117, 110, 99, 10, 32,108,111, 99, 97,108, 32,110,114,101,116, 32, 61, 32, 48, 32, 32, 32, 32, 32, 32, 45, 45, 32,110,117,109, 98,101,114, 32,111,102, 32,114,101,116,117,114,110,101,100, 32,118, 97,108,117,101,115, 10, 32,108,111, 99, 97,108, 32, 99,108, 97,115,115, 32, 61, 32,115,101,108,102, 58,105,110, 99,108, 97,115,115, 40, 41, 10, 32,108,111, 99, 97,108, 32, 95, 44, 95, 44,115,116, 97,116,105, 99, 32, 61, 32,115,116, 114,102,105,110,100, 40,115,101,108,102, 46,109,111,100, 44, 39, 94, 37,115, 42, 40,115,116, 97,116,105, 99, 41, 39, 41, 10, 32,105,102, 32, 99,108, 97,115,115, 32,116,104,101,110, 10, 10, 32, 9,105,102, 32,115,101,108,102, 46,110, 97,109, 101, 32, 61, 61, 32, 39,110,101,119, 39, 32, 97,110,100, 32, 115,101,108,102, 46,112, 97,114,101,110,116, 46,102,108, 97, 103,115, 46,112,117,114,101, 95,118,105,114,116,117, 97,108, 32,116,104,101,110, 10, 32, 9, 9, 45, 45, 32,110,111, 32, 99,111,110,115,116,114,117, 99,116,111,114, 32,102,111,114, 32, 99,108, 97,115,115,101,115, 32,119,105,116,104, 32,112, 117,114,101, 32,118,105,114,116,117, 97,108, 32,109,101,116, 104,111,100,115, 10, 32, 9, 9,114,101,116,117,114,110, 10, 32, 9,101,110,100, 10, 10, 32, 9,105,102, 32,108,111, 99, 97,108, 95, 99,111,110,115,116,114,117, 99,116,111,114, 32, 116,104,101,110, 10, 9, 9,111,117,116,112,117,116, 40, 34, 47, 42, 32,109,101,116,104,111,100, 58, 32,110,101,119, 95, 108,111, 99, 97,108, 32,111,102, 32, 99,108, 97,115,115, 32, 34, 44, 99,108, 97,115,115, 44, 34, 32, 42, 47, 34, 41, 10, 9,101,108,115,101, 10, 9, 9,111,117,116,112,117,116, 40, 34, 47, 42, 32,109,101,116,104,111,100, 58, 34, 44,115,101, 108,102, 46,110, 97,109,101, 44, 34, 32,111,102, 32, 99,108, 97,115,115, 32, 34, 44, 99,108, 97,115,115, 44, 34, 32, 42, 47, 34, 41, 10, 9,101,110,100, 10, 32,101,108,115,101, 10, 32, 32,111,117,116,112,117,116, 40, 34, 47, 42, 32,102,117, 110, 99,116,105,111,110, 58, 34, 44,115,101,108,102, 46,110, 97,109,101, 44, 34, 32, 42, 47, 34, 41, 10, 32,101,110,100, 10, 10, 32,105,102, 32,108,111, 99, 97,108, 95, 99,111,110, 115,116,114,117, 99,116,111,114, 32,116,104,101,110, 10, 32, 32,111,117,116,112,117,116, 40, 34, 35,105,102,110,100,101, 102, 32, 84, 79, 76, 85, 65, 95, 68, 73, 83, 65, 66, 76, 69, 95, 34, 46, 46,115,101,108,102, 46, 99,110, 97,109,101, 46, 46, 34, 95,108,111, 99, 97,108, 34, 41, 10, 32, 32,111,117, 116,112,117,116, 40, 34, 92,110,115,116, 97,116,105, 99, 32, 105,110,116, 34, 44,115,101,108,102, 46, 99,110, 97,109,101, 46, 46, 34, 95,108,111, 99, 97,108, 34, 44, 34, 40,108,117, 97, 95, 83,116, 97,116,101, 42, 32,116,111,108,117, 97, 95, 83, 41, 34, 41, 10, 32,101,108,115,101, 10, 32, 32,111,117, 116,112,117,116, 40, 34, 35,105,102,110,100,101,102, 32, 84, 79, 76, 85, 65, 95, 68, 73, 83, 65, 66, 76, 69, 95, 34, 46, 46,115,101,108,102, 46, 99,110, 97,109,101, 41, 10, 32, 32, 111,117,116,112,117,116, 40, 34, 92,110,115,116, 97,116,105, 99, 32,105,110,116, 34, 44,115,101,108,102, 46, 99,110, 97, 109,101, 44, 34, 40,108,117, 97, 95, 83,116, 97,116,101, 42, 32,116,111,108,117, 97, 95, 83, 41, 34, 41, 10, 32,101,110, 100, 10, 32,111,117,116,112,117,116, 40, 34,123, 34, 41, 10, 10, 32, 45, 45, 32, 99,104,101, 99,107, 32,116,121,112,101, 115, 10, 9,105,102, 32,111,118,101,114,108,111, 97,100, 32, 60, 32, 48, 32,116,104,101,110, 10, 9, 32,111,117,116,112, 117,116, 40, 39, 35,105,102,110,100,101,102, 32, 84, 79, 76, 85, 65, 95, 82, 69, 76, 69, 65, 83, 69, 92,110, 39, 41, 10, 9,101,110,100, 10, 9,111,117,116,112,117,116, 40, 39, 32, 116,111,108,117, 97, 95, 69,114,114,111,114, 32,116,111,108, 117, 97, 95,101,114,114, 59, 39, 41, 10, 32,111,117,116,112, 117,116, 40, 39, 32,105,102, 32, 40, 92,110, 39, 41, 10, 32, 45, 45, 32, 99,104,101, 99,107, 32,115,101,108,102, 10, 32, 108,111, 99, 97,108, 32,110, 97,114,103, 10, 32,105,102, 32, 99,108, 97,115,115, 32,116,104,101,110, 32,110, 97,114,103, 61, 50, 32,101,108,115,101, 32,110, 97,114,103, 61, 49, 32, 101,110,100, 10, 32,105,102, 32, 99,108, 97,115,115, 32,116, 104,101,110, 10, 9, 9,108,111, 99, 97,108, 32,102,117,110, 99, 32, 61, 32,103,101,116, 95,105,115, 95,102,117,110, 99, 116,105,111,110, 40,115,101,108,102, 46,112, 97,114,101,110, 116, 46,116,121,112,101, 41, 10, 9, 9,108,111, 99, 97,108, 32,116,121,112,101, 32, 61, 32,115,101,108,102, 46,112, 97, 114,101,110,116, 46,116,121,112,101, 10, 9, 9,105,102, 32, 115,101,108,102, 46,110, 97,109,101, 61, 61, 39,110,101,119, 39, 32,111,114, 32,115,116, 97,116,105, 99,126, 61,110,105, 108, 32,116,104,101,110, 10, 9, 9, 9,102,117,110, 99, 32, 61, 32, 39,116,111,108,117, 97, 95,105,115,117,115,101,114, 116, 97, 98,108,101, 39, 10, 9, 9, 9,116,121,112,101, 32, 61, 32,115,101,108,102, 46,112, 97,114,101,110,116, 46,116, 121,112,101, 10, 9, 9,101,110,100, 10, 9, 9,105,102, 32, 115,101,108,102, 46, 99,111,110,115,116, 32,126, 61, 32, 39, 39, 32,116,104,101,110, 10, 9, 9, 9,116,121,112,101, 32, 61, 32, 34, 99,111,110,115,116, 32, 34, 46, 46,116,121,112, 101, 10, 9, 9,101,110,100, 10, 9, 9,111,117,116,112,117, 116, 40, 39, 32, 32, 32, 32, 32, 33, 39, 46, 46,102,117,110, 99, 46, 46, 39, 40,116,111,108,117, 97, 95, 83, 44, 49, 44, 34, 39, 46, 46,116,121,112,101, 46, 46, 39, 34, 44, 48, 44, 38,116,111,108,117, 97, 95,101,114,114, 41, 32,124,124, 92, 110, 39, 41, 10, 32,101,110,100, 10, 32, 45, 45, 32, 99,104, 101, 99,107, 32, 97,114,103,115, 10, 32,105,102, 32,115,101, 108,102, 46, 97,114,103,115, 91, 49, 93, 46,116,121,112,101, 32,126, 61, 32, 39,118,111,105,100, 39, 32,116,104,101,110, 10, 32, 32,108,111, 99, 97,108, 32,105, 61, 49, 10, 32, 32, 119,104,105,108,101, 32,115,101,108,102, 46, 97,114,103,115, 91,105, 93, 32,100,111, 10, 32, 32, 32,108,111, 99, 97,108, 32, 98,116,121,112,101, 32, 61, 32,105,115, 98, 97,115,105, 99, 40,115,101,108,102, 46, 97,114,103,115, 91,105, 93, 46, 116,121,112,101, 41, 10, 32, 32, 32,105,102, 32, 98,116,121, 112,101, 32,126, 61, 32, 39,118, 97,108,117,101, 39, 32, 97, 110,100, 32, 98,116,121,112,101, 32,126, 61, 32, 39,115,116, 97,116,101, 39, 32,116,104,101,110, 10, 32, 32, 32, 32,111, 117,116,112,117,116, 40, 39, 32, 32, 32, 32, 32, 39, 46, 46, 115,101,108,102, 46, 97,114,103,115, 91,105, 93, 58,111,117, 116, 99,104,101, 99,107,116,121,112,101, 40,110, 97,114,103, 41, 46, 46, 39, 32,124,124, 92,110, 39, 41, 10, 32, 32, 32, 101,110,100, 10, 32, 32, 32,105,102, 32, 98,116,121,112,101, 32,126, 61, 32, 39,115,116, 97,116,101, 39, 32,116,104,101, 110, 10, 9, 32, 32, 32,110, 97,114,103, 32, 61, 32,110, 97, 114,103, 43, 49, 10, 32, 32, 32,101,110,100, 10, 32, 32, 32, 105, 32, 61, 32,105, 43, 49, 10, 32, 32,101,110,100, 10, 32, 101,110,100, 10, 32, 45, 45, 32, 99,104,101, 99,107, 32,101, 110,100, 32,111,102, 32,108,105,115,116, 10, 32,111,117,116, 112,117,116, 40, 39, 32, 32, 32, 32, 32, 33,116,111,108,117, 97, 95,105,115,110,111,111, 98,106, 40,116,111,108,117, 97, 95, 83, 44, 39, 46, 46,110, 97,114,103, 46, 46, 39, 44, 38, 116,111,108,117, 97, 95,101,114,114, 41, 92,110, 32, 41, 39, 41, 10, 9,111,117,116,112,117,116, 40, 39, 32, 32,103,111, 116,111, 32,116,111,108,117, 97, 95,108,101,114,114,111,114, 59, 39, 41, 10, 10, 32,111,117,116,112,117,116, 40, 39, 32, 101,108,115,101, 92,110, 39, 41, 10, 9,105,102, 32,111,118, 101,114,108,111, 97,100, 32, 60, 32, 48, 32,116,104,101,110, 10, 9, 32,111,117,116,112,117,116, 40, 39, 35,101,110,100, 105,102, 92,110, 39, 41, 10, 9,101,110,100, 10, 9,111,117, 116,112,117,116, 40, 39, 32,123, 39, 41, 10, 10, 32, 45, 45, 32,100,101, 99,108, 97,114,101, 32,115,101,108,102, 44, 32, 105,102, 32,116,104,101, 32, 99, 97,115,101, 10, 32,108,111, 99, 97,108, 32,110, 97,114,103, 10, 32,105,102, 32, 99,108, 97,115,115, 32,116,104,101,110, 32,110, 97,114,103, 61, 50, 32,101,108,115,101, 32,110, 97,114,103, 61, 49, 32,101,110, 100, 10, 32,105,102, 32, 99,108, 97,115,115, 32, 97,110,100, 32,115,101,108,102, 46,110, 97,109,101,126, 61, 39,110,101, 119, 39, 32, 97,110,100, 32,115,116, 97,116,105, 99, 61, 61, 110,105,108, 32,116,104,101,110, 10, 32, 32,111,117,116,112, 117,116, 40, 39, 32, 39, 44,115,101,108,102, 46, 99,111,110, 115,116, 44,115,101,108,102, 46,112, 97,114,101,110,116, 46, 116,121,112,101, 44, 39, 42, 39, 44, 39,115,101,108,102, 32, 61, 32, 39, 41, 10, 32, 32,111,117,116,112,117,116, 40, 39, 40, 39, 44,115,101,108,102, 46, 99,111,110,115,116, 44,115, 101,108,102, 46,112, 97,114,101,110,116, 46,116,121,112,101, 44, 39, 42, 41, 32, 39, 41, 10, 32, 32,108,111, 99, 97,108, 32,116,111, 95,102,117,110, 99, 32, 61, 32,103,101,116, 95, 116,111, 95,102,117,110, 99,116,105,111,110, 40,115,101,108, 102, 46,112, 97,114,101,110,116, 46,116,121,112,101, 41, 10, 32, 32,111,117,116,112,117,116, 40,116,111, 95,102,117,110, 99, 44, 39, 40,116,111,108,117, 97, 95, 83, 44, 49, 44, 48, 41, 59, 39, 41, 10, 32,101,108,115,101,105,102, 32,115,116, 97,116,105, 99, 32,116,104,101,110, 10, 32, 32, 95, 44, 95, 44,115,101,108,102, 46,109,111,100, 32, 61, 32,115,116,114, 102,105,110,100, 40,115,101,108,102, 46,109,111,100, 44, 39, 94, 37,115, 42,115,116, 97,116,105, 99, 37,115, 37,115, 42, 40, 46, 42, 41, 39, 41, 10, 32,101,110,100, 10, 32, 45, 45, 32,100,101, 99,108, 97,114,101, 32,112, 97,114, 97,109,101, 116,101,114,115, 10, 32,105,102, 32,115,101,108,102, 46, 97, 114,103,115, 91, 49, 93, 46,116,121,112,101, 32,126, 61, 32, 39,118,111,105,100, 39, 32,116,104,101,110, 10, 32, 32,108, 111, 99, 97,108, 32,105, 61, 49, 10, 32, 32,119,104,105,108, 101, 32,115,101,108,102, 46, 97,114,103,115, 91,105, 93, 32, 100,111, 10, 32, 32, 32,115,101,108,102, 46, 97,114,103,115, 91,105, 93, 58,100,101, 99,108, 97,114,101, 40,110, 97,114, 103, 41, 10, 32, 32, 32,105,102, 32,105,115, 98, 97,115,105, 99, 40,115,101,108,102, 46, 97,114,103,115, 91,105, 93, 46, 116,121,112,101, 41, 32,126, 61, 32, 34,115,116, 97,116,101, 34, 32,116,104,101,110, 10, 9, 32, 32, 32,110, 97,114,103, 32, 61, 32,110, 97,114,103, 43, 49, 10, 32, 32, 32,101,110, 100, 10, 32, 32, 32,105, 32, 61, 32,105, 43, 49, 10, 32, 32, 101,110,100, 10, 32,101,110,100, 10, 10, 32, 45, 45, 32, 99, 104,101, 99,107, 32,115,101,108,102, 10, 32,105,102, 32, 99, 108, 97,115,115, 32, 97,110,100, 32,115,101,108,102, 46,110, 97,109,101,126, 61, 39,110,101,119, 39, 32, 97,110,100, 32, 115,116, 97,116,105, 99, 61, 61,110,105,108, 32,116,104,101, 110, 10, 9, 32,111,117,116,112,117,116, 40, 39, 35,105,102, 110,100,101,102, 32, 84, 79, 76, 85, 65, 95, 82, 69, 76, 69, 65, 83, 69, 92,110, 39, 41, 10, 32, 32,111,117,116,112,117, 116, 40, 39, 32, 32,105,102, 32, 40, 33,115,101,108,102, 41, 32,116,111,108,117, 97, 95,101,114,114,111,114, 40,116,111, 108,117, 97, 95, 83, 44, 34,105,110,118, 97,108,105,100, 32, 92, 39,115,101,108,102, 92, 39, 32,105,110, 32,102,117,110, 99,116,105,111,110, 32, 92, 39, 39, 46, 46,115,101,108,102, 46,110, 97,109,101, 46, 46, 39, 92, 39, 34, 44, 78, 85, 76, 76, 41, 59, 39, 41, 59, 10, 9, 32,111,117,116,112,117,116, 40, 39, 35,101,110,100,105,102, 92,110, 39, 41, 10, 32,101, 110,100, 10, 10, 32, 45, 45, 32,103,101,116, 32, 97,114,114, 97,121, 32,101,108,101,109,101,110,116, 32,118, 97,108,117, 101,115, 10, 32,105,102, 32, 99,108, 97,115,115, 32,116,104, 101,110, 32,110, 97,114,103, 61, 50, 32,101,108,115,101, 32, 110, 97,114,103, 61, 49, 32,101,110,100, 10, 32,105,102, 32, 115,101,108,102, 46, 97,114,103,115, 91, 49, 93, 46,116,121, 112,101, 32,126, 61, 32, 39,118,111,105,100, 39, 32,116,104, 101,110, 10, 32, 32,108,111, 99, 97,108, 32,105, 61, 49, 10, 32, 32,119,104,105,108,101, 32,115,101,108,102, 46, 97,114, 103,115, 91,105, 93, 32,100,111, 10, 32, 32, 32,115,101,108, 102, 46, 97,114,103,115, 91,105, 93, 58,103,101,116, 97,114, 114, 97,121, 40,110, 97,114,103, 41, 10, 32, 32, 32,110, 97, 114,103, 32, 61, 32,110, 97,114,103, 43, 49, 10, 32, 32, 32, 105, 32, 61, 32,105, 43, 49, 10, 32, 32,101,110,100, 10, 32, 101,110,100, 10, 10, 32,108,111, 99, 97,108, 32,111,117,116, 32, 61, 32,115,116,114,105,110,103, 46,102,105,110,100, 40, 115,101,108,102, 46,109,111,100, 44, 32, 34,116,111,108,117, 97, 95,111,117,116,115,105,100,101, 34, 41, 10, 32, 45, 45, 32, 99, 97,108,108, 32,102,117,110, 99,116,105,111,110, 10, 32,105,102, 32, 99,108, 97,115,115, 32, 97,110,100, 32,115, 101,108,102, 46,110, 97,109,101, 61, 61, 39,100,101,108,101, 116,101, 39, 32,116,104,101,110, 10, 32, 32,111,117,116,112, 117,116, 40, 39, 32, 32, 77,116,111,108,117, 97, 95,100,101, 108,101,116,101, 40,115,101,108,102, 41, 59, 39, 41, 10, 32, 101,108,115,101,105,102, 32, 99,108, 97,115,115, 32, 97,110, 100, 32,115,101,108,102, 46,110, 97,109,101, 32, 61, 61, 32, 39,111,112,101,114, 97,116,111,114, 38, 91, 93, 39, 32,116, 104,101,110, 10, 32, 32,105,102, 32,102,108, 97,103,115, 91, 39, 49, 39, 93, 32,116,104,101,110, 32, 45, 45, 32,102,111, 114, 32, 99,111,109,112, 97,116,105, 98,105,108,105,116,121, 32,119,105,116,104, 32,116,111,108,117, 97, 53, 32, 63, 10, 9,111,117,116,112,117,116, 40, 39, 32, 32,115,101,108,102, 45, 62,111,112,101,114, 97,116,111,114, 91, 93, 40, 39, 44, 115,101,108,102, 46, 97,114,103,115, 91, 49, 93, 46,110, 97, 109,101, 44, 39, 45, 49, 41, 32, 61, 32, 39, 44,115,101,108, 102, 46, 97,114,103,115, 91, 50, 93, 46,110, 97,109,101, 44, 39, 59, 39, 41, 10, 32, 32,101,108,115,101, 10, 32, 32, 32, 32,111,117,116,112,117,116, 40, 39, 32, 32,115,101,108,102, 45, 62,111,112,101,114, 97,116,111,114, 91, 93, 40, 39, 44, 115,101,108,102, 46, 97,114,103,115, 91, 49, 93, 46,110, 97, 109,101, 44, 39, 41, 32, 61, 32, 39, 44,115,101,108,102, 46, 97,114,103,115, 91, 50, 93, 46,110, 97,109,101, 44, 39, 59, 39, 41, 10, 32, 32,101,110,100, 10, 32,101,108,115,101, 10, 32, 32,111,117,116,112,117,116, 40, 39, 32, 32,123, 39, 41, 10, 32, 32,105,102, 32,115,101,108,102, 46,116,121,112,101, 32,126, 61, 32, 39, 39, 32, 97,110,100, 32,115,101,108,102, 46,116,121,112,101, 32,126, 61, 32, 39,118,111,105,100, 39, 32,116,104,101,110, 10, 32, 32, 32,111,117,116,112,117,116, 40, 39, 32, 32, 39, 44,115,101,108,102, 46,109,111,100, 44, 115,101,108,102, 46,116,121,112,101, 44,115,101,108,102, 46, 112,116,114, 44, 39,116,111,108,117, 97, 95,114,101,116, 32, 61, 32, 39, 41, 10, 32, 32, 32,111,117,116,112,117,116, 40, 39, 40, 39, 44,115,101,108,102, 46,109,111,100, 44,115,101, 108,102, 46,116,121,112,101, 44,115,101,108,102, 46,112,116, 114, 44, 39, 41, 32, 39, 41, 10, 32, 32,101,108,115,101, 10, 32, 32, 32,111,117,116,112,117,116, 40, 39, 32, 32, 39, 41, 10, 32, 32,101,110,100, 10, 32, 32,105,102, 32, 99,108, 97, 115,115, 32, 97,110,100, 32,115,101,108,102, 46,110, 97,109, 101, 61, 61, 39,110,101,119, 39, 32,116,104,101,110, 10, 32, 32, 32,111,117,116,112,117,116, 40, 39, 77,116,111,108,117, 97, 95,110,101,119, 40, 40, 39, 44,115,101,108,102, 46,116, 121,112,101, 44, 39, 41, 40, 39, 41, 10, 32, 32,101,108,115, 101,105,102, 32, 99,108, 97,115,115, 32, 97,110,100, 32,115, 116, 97,116,105, 99, 32,116,104,101,110, 10, 9,105,102, 32, 111,117,116, 32,116,104,101,110, 10, 9, 9,111,117,116,112, 117,116, 40,115,101,108,102, 46,110, 97,109,101, 44, 39, 40, 39, 41, 10, 9,101,108,115,101, 10, 9, 9,111,117,116,112, 117,116, 40, 99,108, 97,115,115, 46, 46, 39, 58, 58, 39, 46, 46,115,101,108,102, 46,110, 97,109,101, 44, 39, 40, 39, 41, 10, 9,101,110,100, 10, 32, 32,101,108,115,101,105,102, 32, 99,108, 97,115,115, 32,116,104,101,110, 10, 9,105,102, 32, 111,117,116, 32,116,104,101,110, 10, 9, 9,111,117,116,112, 117,116, 40,115,101,108,102, 46,110, 97,109,101, 44, 39, 40, 39, 41, 10, 9,101,108,115,101, 10, 9, 32, 32,105,102, 32, 115,101,108,102, 46, 99, 97,115,116, 95,111,112,101,114, 97, 116,111,114, 32,116,104,101,110, 10, 9, 32, 32, 9, 45, 45, 111,117,116,112,117,116, 40, 39,115,116, 97,116,105, 99, 95, 99, 97,115,116, 60, 39, 44,115,101,108,102, 46,109,111,100, 44,115,101,108,102, 46,116,121,112,101, 44,115,101,108,102, 46,112,116,114, 44, 39, 62, 40, 42,115,101,108,102, 39, 41, 10, 9, 9,111,117,116,112,117,116, 40, 39,115,101,108,102, 45, 62,111,112,101,114, 97,116,111,114, 32, 39, 44,115,101, 108,102, 46,109,111,100, 44,115,101,108,102, 46,116,121,112, 101, 44, 39, 40, 39, 41, 10, 9, 32, 32,101,108,115,101, 10, 9, 9,111,117,116,112,117,116, 40, 39,115,101,108,102, 45, 62, 39, 46, 46,115,101,108,102, 46,110, 97,109,101, 44, 39, 40, 39, 41, 10, 9, 32, 32,101,110,100, 10, 9,101,110,100, 10, 32, 32,101,108,115,101, 10, 32, 32, 32,111,117,116,112, 117,116, 40,115,101,108,102, 46,110, 97,109,101, 44, 39, 40, 39, 41, 10, 32, 32,101,110,100, 10, 10, 32, 32,105,102, 32, 111,117,116, 32, 97,110,100, 32,110,111,116, 32,115,116, 97, 116,105, 99, 32,116,104,101,110, 10, 32, 32, 9,111,117,116, 112,117,116, 40, 39,115,101,108,102, 39, 41, 10, 9,105,102, 32,115,101,108,102, 46, 97,114,103,115, 91, 49, 93, 32, 97, 110,100, 32,115,101,108,102, 46, 97,114,103,115, 91, 49, 93, 46,110, 97,109,101, 32,126, 61, 32, 39, 39, 32,116,104,101, 110, 10, 9, 9,111,117,116,112,117,116, 40, 39, 44, 39, 41, 10, 9,101,110,100, 10, 32, 32,101,110,100, 10, 32, 32, 45, 45, 32,119,114,105,116,101, 32,112, 97,114, 97,109,101,116, 101,114,115, 10, 32, 32,108,111, 99, 97,108, 32,105, 61, 49, 10, 32, 32,119,104,105,108,101, 32,115,101,108,102, 46, 97, 114,103,115, 91,105, 93, 32,100,111, 10, 32, 32, 32,115,101, 108,102, 46, 97,114,103,115, 91,105, 93, 58,112, 97,115,115, 112, 97,114, 40, 41, 10, 32, 32, 32,105, 32, 61, 32,105, 43, 49, 10, 32, 32, 32,105,102, 32,115,101,108,102, 46, 97,114, 103,115, 91,105, 93, 32,116,104,101,110, 10, 32, 32, 32, 32, 111,117,116,112,117,116, 40, 39, 44, 39, 41, 10, 32, 32, 32, 101,110,100, 10, 32, 32,101,110,100, 10, 10, 32, 32,105,102, 32, 99,108, 97,115,115, 32, 97,110,100, 32,115,101,108,102, 46,110, 97,109,101, 32, 61, 61, 32, 39,111,112,101,114, 97, 116,111,114, 91, 93, 39, 32, 97,110,100, 32,102,108, 97,103, 115, 91, 39, 49, 39, 93, 32,116,104,101,110, 10, 9,111,117, 116,112,117,116, 40, 39, 45, 49, 41, 59, 39, 41, 10, 32, 32, 101,108,115,101, 10, 9,105,102, 32, 99,108, 97,115,115, 32, 97,110,100, 32,115,101,108,102, 46,110, 97,109,101, 61, 61, 39,110,101,119, 39, 32,116,104,101,110, 10, 9, 9,111,117, 116,112,117,116, 40, 39, 41, 41, 59, 39, 41, 32, 45, 45, 32, 99,108,111,115,101, 32, 77,116,111,108,117, 97, 95,110,101, 119, 40, 10, 9,101,108,115,101, 10, 9, 9,111,117,116,112, 117,116, 40, 39, 41, 59, 39, 41, 10, 9,101,110,100, 10, 32, 32,101,110,100, 10, 10, 32, 32, 45, 45, 32,114,101,116,117, 114,110, 32,118, 97,108,117,101,115, 10, 32, 32,105,102, 32, 115,101,108,102, 46,116,121,112,101, 32,126, 61, 32, 39, 39, 32, 97,110,100, 32,115,101,108,102, 46,116,121,112,101, 32, 126, 61, 32, 39,118,111,105,100, 39, 32,116,104,101,110, 10, 32, 32, 32,110,114,101,116, 32, 61, 32,110,114,101,116, 32, 43, 32, 49, 10, 32, 32, 32,108,111, 99, 97,108, 32,116, 44, 99,116, 32, 61, 32,105,115, 98, 97,115,105, 99, 40,115,101, 108,102, 46,116,121,112,101, 41, 10, 32, 32, 32,105,102, 32, 116, 32,116,104,101,110, 10, 32, 32, 32, 9,105,102, 32,115, 101,108,102, 46, 99, 97,115,116, 95,111,112,101,114, 97,116, 111,114, 32, 97,110,100, 32, 95, 98, 97,115,105, 99, 95,114, 97,119, 95,112,117,115,104, 91,116, 93, 32,116,104,101,110, 10, 9, 9,111,117,116,112,117,116, 40, 39, 32, 32, 32, 39, 44, 95, 98, 97,115,105, 99, 95,114, 97,119, 95,112,117,115, 104, 91,116, 93, 44, 39, 40,116,111,108,117, 97, 95, 83, 44, 40, 39, 44, 99,116, 44, 39, 41,116,111,108,117, 97, 95,114, 101,116, 41, 59, 39, 41, 10, 32, 32, 32, 9,101,108,115,101, 10, 9, 32, 32, 32, 32,111,117,116,112,117,116, 40, 39, 32, 32, 32,116,111,108,117, 97, 95,112,117,115,104, 39, 46, 46, 116, 46, 46, 39, 40,116,111,108,117, 97, 95, 83, 44, 40, 39, 44, 99,116, 44, 39, 41,116,111,108,117, 97, 95,114,101,116, 41, 59, 39, 41, 10, 9,101,110,100, 10, 32, 32, 32,101,108, 115,101, 10, 9,116, 32, 61, 32,115,101,108,102, 46,116,121, 112,101, 10, 9,110,101,119, 95,116, 32, 61, 32,115,116,114, 105,110,103, 46,103,115,117, 98, 40,116, 44, 32, 34, 99,111, 110,115,116, 37,115, 43, 34, 44, 32, 34, 34, 41, 10, 9,108, 111, 99, 97,108, 32,111,119,110,101,100, 32, 61, 32,102, 97, 108,115,101, 10, 9,105,102, 32,115,116,114,105,110,103, 46, 102,105,110,100, 40,115,101,108,102, 46,109,111,100, 44, 32, 34,116,111,108,117, 97, 95,111,119,110,101,100, 34, 41, 32, 116,104,101,110, 10, 9, 9,111,119,110,101,100, 32, 61, 32, 116,114,117,101, 10, 9,101,110,100, 10, 32, 32, 32, 32,108, 111, 99, 97,108, 32,112,117,115,104, 95,102,117,110, 99, 32, 61, 32,103,101,116, 95,112,117,115,104, 95,102,117,110, 99, 116,105,111,110, 40,116, 41, 10, 32, 32, 32, 32,105,102, 32, 115,101,108,102, 46,112,116,114, 32, 61, 61, 32, 39, 39, 32, 116,104,101,110, 10, 32, 32, 32, 32, 32,111,117,116,112,117, 116, 40, 39, 32, 32, 32,123, 39, 41, 10, 32, 32, 32, 32, 32, 111,117,116,112,117,116, 40, 39, 35,105,102,100,101,102, 32, 95, 95, 99,112,108,117,115,112,108,117,115, 92,110, 39, 41, 10, 32, 32, 32, 32, 32,111,117,116,112,117,116, 40, 39, 32, 32, 32, 32,118,111,105,100, 42, 32,116,111,108,117, 97, 95, 111, 98,106, 32, 61, 32, 77,116,111,108,117, 97, 95,110,101, 119, 40, 40, 39, 44,110,101,119, 95,116, 44, 39, 41, 40,116, 111,108,117, 97, 95,114,101,116, 41, 41, 59, 39, 41, 10, 32, 32, 32, 32, 32,111,117,116,112,117,116, 40, 39, 32, 32, 32, 32, 39, 44,112,117,115,104, 95,102,117,110, 99, 44, 39, 40, 116,111,108,117, 97, 95, 83, 44,116,111,108,117, 97, 95,111, 98,106, 44, 34, 39, 44,116, 44, 39, 34, 41, 59, 39, 41, 10, 32, 32, 32, 32, 32,111,117,116,112,117,116, 40, 39, 32, 32, 32, 32,116,111,108,117, 97, 95,114,101,103,105,115,116,101, 114, 95,103, 99, 40,116,111,108,117, 97, 95, 83, 44,108,117, 97, 95,103,101,116,116,111,112, 40,116,111,108,117, 97, 95, 83, 41, 41, 59, 39, 41, 10, 32, 32, 32, 32, 32,111,117,116, 112,117,116, 40, 39, 35,101,108,115,101, 92,110, 39, 41, 10, 32, 32, 32, 32, 32,111,117,116,112,117,116, 40, 39, 32, 32, 32, 32,118,111,105,100, 42, 32,116,111,108,117, 97, 95,111, 98,106, 32, 61, 32,116,111,108,117, 97, 95, 99,111,112,121, 40,116,111,108,117, 97, 95, 83, 44, 40,118,111,105,100, 42, 41, 38,116,111,108,117, 97, 95,114,101,116, 44,115,105,122, 101,111,102, 40, 39, 44,116, 44, 39, 41, 41, 59, 39, 41, 10, 32, 32, 32, 32, 32,111,117,116,112,117,116, 40, 39, 32, 32, 32, 32, 39, 44,112,117,115,104, 95,102,117,110, 99, 44, 39, 40,116,111,108,117, 97, 95, 83, 44,116,111,108,117, 97, 95, 111, 98,106, 44, 34, 39, 44,116, 44, 39, 34, 41, 59, 39, 41, 10, 32, 32, 32, 32, 32,111,117,116,112,117,116, 40, 39, 32, 32, 32, 32,116,111,108,117, 97, 95,114,101,103,105,115,116, 101,114, 95,103, 99, 40,116,111,108,117, 97, 95, 83, 44,108, 117, 97, 95,103,101,116,116,111,112, 40,116,111,108,117, 97, 95, 83, 41, 41, 59, 39, 41, 10, 32, 32, 32, 32, 32,111,117, 116,112,117,116, 40, 39, 35,101,110,100,105,102, 92,110, 39, 41, 10, 32, 32, 32, 32, 32,111,117,116,112,117,116, 40, 39, 32, 32, 32,125, 39, 41, 10, 32, 32, 32, 32,101,108,115,101, 105,102, 32,115,101,108,102, 46,112,116,114, 32, 61, 61, 32, 39, 38, 39, 32,116,104,101,110, 10, 32, 32, 32, 32, 32,111, 117,116,112,117,116, 40, 39, 32, 32, 32, 39, 44,112,117,115, 104, 95,102,117,110, 99, 44, 39, 40,116,111,108,117, 97, 95, 83, 44, 40,118,111,105,100, 42, 41, 38,116,111,108,117, 97, 95,114,101,116, 44, 34, 39, 44,116, 44, 39, 34, 41, 59, 39, 41, 10, 32, 32, 32, 32,101,108,115,101, 10, 9, 32,111,117, 116,112,117,116, 40, 39, 32, 32, 32, 39, 44,112,117,115,104, 95,102,117,110, 99, 44, 39, 40,116,111,108,117, 97, 95, 83, 44, 40,118,111,105,100, 42, 41,116,111,108,117, 97, 95,114, 101,116, 44, 34, 39, 44,116, 44, 39, 34, 41, 59, 39, 41, 10, 9, 32,105,102, 32,111,119,110,101,100, 32,111,114, 32,108, 111, 99, 97,108, 95, 99,111,110,115,116,114,117, 99,116,111, 114, 32,116,104,101,110, 10, 32, 32, 32, 32, 32, 32,111,117, 116,112,117,116, 40, 39, 32, 32, 32, 32,116,111,108,117, 97, 95,114,101,103,105,115,116,101,114, 95,103, 99, 40,116,111, 108,117, 97, 95, 83, 44,108,117, 97, 95,103,101,116,116,111, 112, 40,116,111,108,117, 97, 95, 83, 41, 41, 59, 39, 41, 10, 9, 32,101,110,100, 10, 32, 32, 32, 32,101,110,100, 10, 32, 32, 32,101,110,100, 10, 32, 32,101,110,100, 10, 32, 32,108, 111, 99, 97,108, 32,105, 61, 49, 10, 32, 32,119,104,105,108, 101, 32,115,101,108,102, 46, 97,114,103,115, 91,105, 93, 32, 100,111, 10, 32, 32, 32,110,114,101,116, 32, 61, 32,110,114, 101,116, 32, 43, 32,115,101,108,102, 46, 97,114,103,115, 91, 105, 93, 58,114,101,116,118, 97,108,117,101, 40, 41, 10, 32, 32, 32,105, 32, 61, 32,105, 43, 49, 10, 32, 32,101,110,100, 10, 32, 32,111,117,116,112,117,116, 40, 39, 32, 32,125, 39, 41, 10, 10, 32, 32, 45, 45, 32,115,101,116, 32, 97,114,114, 97,121, 32,101,108,101,109,101,110,116, 32,118, 97,108,117, 101,115, 10, 32, 32,105,102, 32, 99,108, 97,115,115, 32,116, 104,101,110, 32,110, 97,114,103, 61, 50, 32,101,108,115,101, 32,110, 97,114,103, 61, 49, 32,101,110,100, 10, 32, 32,105, 102, 32,115,101,108,102, 46, 97,114,103,115, 91, 49, 93, 46, 116,121,112,101, 32,126, 61, 32, 39,118,111,105,100, 39, 32, 116,104,101,110, 10, 32, 32, 32,108,111, 99, 97,108, 32,105, 61, 49, 10, 32, 32, 32,119,104,105,108,101, 32,115,101,108, 102, 46, 97,114,103,115, 91,105, 93, 32,100,111, 10, 32, 32, 32, 32,115,101,108,102, 46, 97,114,103,115, 91,105, 93, 58, 115,101,116, 97,114,114, 97,121, 40,110, 97,114,103, 41, 10, 32, 32, 32, 32,110, 97,114,103, 32, 61, 32,110, 97,114,103, 43, 49, 10, 32, 32, 32, 32,105, 32, 61, 32,105, 43, 49, 10, 32, 32, 32,101,110,100, 10, 32, 32,101,110,100, 10, 10, 32, 32, 45, 45, 32,102,114,101,101, 32,100,121,110, 97,109,105, 99, 97,108,108,121, 32, 97,108,108,111, 99, 97,116,101,100, 32, 97,114,114, 97,121, 10, 32, 32,105,102, 32,115,101,108, 102, 46, 97,114,103,115, 91, 49, 93, 46,116,121,112,101, 32, 126, 61, 32, 39,118,111,105,100, 39, 32,116,104,101,110, 10, 32, 32, 32,108,111, 99, 97,108, 32,105, 61, 49, 10, 32, 32, 32,119,104,105,108,101, 32,115,101,108,102, 46, 97,114,103, 115, 91,105, 93, 32,100,111, 10, 32, 32, 32, 32,115,101,108, 102, 46, 97,114,103,115, 91,105, 93, 58,102,114,101,101, 97, 114,114, 97,121, 40, 41, 10, 32, 32, 32, 32,105, 32, 61, 32, 105, 43, 49, 10, 32, 32, 32,101,110,100, 10, 32, 32,101,110, 100, 10, 32,101,110,100, 10, 10, 32,111,117,116,112,117,116, 40, 39, 32,125, 39, 41, 10, 32,111,117,116,112,117,116, 40, 39, 32,114,101,116,117,114,110, 32, 39, 46, 46,110,114,101, 116, 46, 46, 39, 59, 39, 41, 10, 10, 32, 45, 45, 32, 99, 97, 108,108, 32,111,118,101,114,108,111, 97,100,101,100, 32,102, 117,110, 99,116,105,111,110, 32,111,114, 32,103,101,110,101, 114, 97,116,101, 32,101,114,114,111,114, 10, 9,105,102, 32, 111,118,101,114,108,111, 97,100, 32, 60, 32, 48, 32,116,104, 101,110, 10, 10, 9, 9,111,117,116,112,117,116, 40, 39, 35, 105,102,110,100,101,102, 32, 84, 79, 76, 85, 65, 95, 82, 69, 76, 69, 65, 83, 69, 92,110, 39, 41, 10, 9, 9,111,117,116, 112,117,116, 40, 39,116,111,108,117, 97, 95,108,101,114,114, 111,114, 58, 92,110, 39, 41, 10, 9, 9,111,117,116,112,117, 116, 40, 39, 32,116,111,108,117, 97, 95,101,114,114,111,114, 40,116,111,108,117, 97, 95, 83, 44, 34, 35,102,101,114,114, 111,114, 32,105,110, 32,102,117,110, 99,116,105,111,110, 32, 92, 39, 39, 46, 46,115,101,108,102, 46,108,110, 97,109,101, 46, 46, 39, 92, 39, 46, 34, 44, 38,116,111,108,117, 97, 95, 101,114,114, 41, 59, 39, 41, 10, 9, 9,111,117,116,112,117, 116, 40, 39, 32,114,101,116,117,114,110, 32, 48, 59, 39, 41, 10, 9, 9,111,117,116,112,117,116, 40, 39, 35,101,110,100, 105,102, 92,110, 39, 41, 10, 9,101,108,115,101, 10, 9, 9, 108,111, 99, 97,108, 32, 95,108,111, 99, 97,108, 32, 61, 32, 34, 34, 10, 9, 9,105,102, 32,108,111, 99, 97,108, 95, 99, 111,110,115,116,114,117, 99,116,111,114, 32,116,104,101,110, 10, 9, 9, 9, 95,108,111, 99, 97,108, 32, 61, 32, 34, 95, 108,111, 99, 97,108, 34, 10, 9, 9,101,110,100, 10, 9, 9, 111,117,116,112,117,116, 40, 39,116,111,108,117, 97, 95,108, 101,114,114,111,114, 58, 92,110, 39, 41, 10, 9, 9,111,117, 116,112,117,116, 40, 39, 32,114,101,116,117,114,110, 32, 39, 46, 46,115,116,114,115,117, 98, 40,115,101,108,102, 46, 99, 110, 97,109,101, 44, 49, 44, 45, 51, 41, 46, 46,102,111,114, 109, 97,116, 40, 34, 37, 48, 50,100, 34, 44,111,118,101,114, 108,111, 97,100, 41, 46, 46, 95,108,111, 99, 97,108, 46, 46, 39, 40,116,111,108,117, 97, 95, 83, 41, 59, 39, 41, 10, 9, 101,110,100, 10, 32,111,117,116,112,117,116, 40, 39,125, 39, 41, 10, 32,111,117,116,112,117,116, 40, 39, 35,101,110,100, 105,102, 32, 47, 47, 35,105,102,110,100,101,102, 32, 84, 79, 76, 85, 65, 95, 68, 73, 83, 65, 66, 76, 69, 92,110, 39, 41, 10, 32,111,117,116,112,117,116, 40, 39, 92,110, 39, 41, 10, 10, 9, 45, 45, 32,114,101, 99,117,114,115,105,118,101, 32, 99, 97,108,108, 32,116,111, 32,119,114,105,116,101, 32,108, 111, 99, 97,108, 32, 99,111,110,115,116,114,117, 99,116,111, 114, 10, 9,105,102, 32, 99,108, 97,115,115, 32, 97,110,100, 32,115,101,108,102, 46,110, 97,109,101, 61, 61, 39,110,101, 119, 39, 32, 97,110,100, 32,110,111,116, 32,108,111, 99, 97, 108, 95, 99,111,110,115,116,114,117, 99,116,111,114, 32,116, 104,101,110, 10, 10, 9, 9,115,101,108,102, 58,115,117,112, 99,111,100,101, 40, 49, 41, 10, 9,101,110,100, 10, 10,101, 110,100, 10, 10, 10, 45, 45, 32,114,101,103,105,115,116,101, 114, 32,102,117,110, 99,116,105,111,110, 10,102,117,110, 99, 116,105,111,110, 32, 99,108, 97,115,115, 70,117,110, 99,116, 105,111,110, 58,114,101,103,105,115,116,101,114, 32, 40,112, 114,101, 41, 10, 10, 9,105,102, 32,110,111,116, 32,115,101, 108,102, 58, 99,104,101, 99,107, 95,112,117, 98,108,105, 99, 95, 97, 99, 99,101,115,115, 40, 41, 32,116,104,101,110, 10, 9, 9,114,101,116,117,114,110, 10, 9,101,110,100, 10, 10, 32, 9,105,102, 32,115,101,108,102, 46,110, 97,109,101, 32, 61, 61, 32, 39,110,101,119, 39, 32, 97,110,100, 32,115,101, 108,102, 46,112, 97,114,101,110,116, 46,102,108, 97,103,115, 46,112,117,114,101, 95,118,105,114,116,117, 97,108, 32,116, 104,101,110, 10, 32, 9, 9, 45, 45, 32,110,111, 32, 99,111, 110,115,116,114,117, 99,116,111,114, 32,102,111,114, 32, 99, 108, 97,115,115,101,115, 32,119,105,116,104, 32,112,117,114, 101, 32,118,105,114,116,117, 97,108, 32,109,101,116,104,111, 100,115, 10, 32, 9, 9,114,101,116,117,114,110, 10, 32, 9, 101,110,100, 10, 10, 32,111,117,116,112,117,116, 40,112,114, 101, 46, 46, 39,116,111,108,117, 97, 95,102,117,110, 99,116, 105,111,110, 40,116,111,108,117, 97, 95, 83, 44, 34, 39, 46, 46,115,101,108,102, 46,108,110, 97,109,101, 46, 46, 39, 34, 44, 39, 46, 46,115,101,108,102, 46, 99,110, 97,109,101, 46, 46, 39, 41, 59, 39, 41, 10, 32, 32,105,102, 32,115,101,108, 102, 46,110, 97,109,101, 32, 61, 61, 32, 39,110,101,119, 39, 32,116,104,101,110, 10, 9, 32, 32,111,117,116,112,117,116, 40,112,114,101, 46, 46, 39,116,111,108,117, 97, 95,102,117, 110, 99,116,105,111,110, 40,116,111,108,117, 97, 95, 83, 44, 34,110,101,119, 95,108,111, 99, 97,108, 34, 44, 39, 46, 46, 115,101,108,102, 46, 99,110, 97,109,101, 46, 46, 39, 95,108, 111, 99, 97,108, 41, 59, 39, 41, 10, 9, 32, 32,111,117,116, 112,117,116, 40,112,114,101, 46, 46, 39,116,111,108,117, 97, 95,102,117,110, 99,116,105,111,110, 40,116,111,108,117, 97, 95, 83, 44, 34, 46, 99, 97,108,108, 34, 44, 39, 46, 46,115, 101,108,102, 46, 99,110, 97,109,101, 46, 46, 39, 95,108,111, 99, 97,108, 41, 59, 39, 41, 10, 9, 32, 32, 45, 45,111,117, 116,112,117,116, 40, 39, 32,116,111,108,117, 97, 95,115,101, 116, 95, 99, 97,108,108, 95,101,118,101,110,116, 40,116,111, 108,117, 97, 95, 83, 44, 39, 46, 46,115,101,108,102, 46, 99, 110, 97,109,101, 46, 46, 39, 95,108,111, 99, 97,108, 44, 32, 34, 39, 46, 46,115,101,108,102, 46,112, 97,114,101,110,116, 46,116,121,112,101, 46, 46, 39, 34, 41, 59, 39, 41, 10, 32, 32,101,110,100, 10,101,110,100, 10, 10, 45, 45, 32, 80,114, 105,110,116, 32,109,101,116,104,111,100, 10,102,117,110, 99, 116,105,111,110, 32, 99,108, 97,115,115, 70,117,110, 99,116, 105,111,110, 58,112,114,105,110,116, 32, 40,105,100,101,110, 116, 44, 99,108,111,115,101, 41, 10, 32,112,114,105,110,116, 40,105,100,101,110,116, 46, 46, 34, 70,117,110, 99,116,105, 111,110,123, 34, 41, 10, 32,112,114,105,110,116, 40,105,100, 101,110,116, 46, 46, 34, 32,109,111,100, 32, 32, 61, 32, 39, 34, 46, 46,115,101,108,102, 46,109,111,100, 46, 46, 34, 39, 44, 34, 41, 10, 32,112,114,105,110,116, 40,105,100,101,110, 116, 46, 46, 34, 32,116,121,112,101, 32, 61, 32, 39, 34, 46, 46,115,101,108,102, 46,116,121,112,101, 46, 46, 34, 39, 44, 34, 41, 10, 32,112,114,105,110,116, 40,105,100,101,110,116, 46, 46, 34, 32,112,116,114, 32, 32, 61, 32, 39, 34, 46, 46, 115,101,108,102, 46,112,116,114, 46, 46, 34, 39, 44, 34, 41, 10, 32,112,114,105,110,116, 40,105,100,101,110,116, 46, 46, 34, 32,110, 97,109,101, 32, 61, 32, 39, 34, 46, 46,115,101, 108,102, 46,110, 97,109,101, 46, 46, 34, 39, 44, 34, 41, 10, 32,112,114,105,110,116, 40,105,100,101,110,116, 46, 46, 34, 32,108,110, 97,109,101, 32, 61, 32, 39, 34, 46, 46,115,101, 108,102, 46,108,110, 97,109,101, 46, 46, 34, 39, 44, 34, 41, 10, 32,112,114,105,110,116, 40,105,100,101,110,116, 46, 46, 34, 32, 99,111,110,115,116, 32, 61, 32, 39, 34, 46, 46,115, 101,108,102, 46, 99,111,110,115,116, 46, 46, 34, 39, 44, 34, 41, 10, 32,112,114,105,110,116, 40,105,100,101,110,116, 46, 46, 34, 32, 99,110, 97,109,101, 32, 61, 32, 39, 34, 46, 46, 115,101,108,102, 46, 99,110, 97,109,101, 46, 46, 34, 39, 44, 34, 41, 10, 32,112,114,105,110,116, 40,105,100,101,110,116, 46, 46, 34, 32,108,110, 97,109,101, 32, 61, 32, 39, 34, 46, 46,115,101,108,102, 46,108,110, 97,109,101, 46, 46, 34, 39, 44, 34, 41, 10, 32,112,114,105,110,116, 40,105,100,101,110, 116, 46, 46, 34, 32, 97,114,103,115, 32, 61, 32,123, 34, 41, 10, 32,108,111, 99, 97,108, 32,105, 61, 49, 10, 32,119,104, 105,108,101, 32,115,101,108,102, 46, 97,114,103,115, 91,105, 93, 32,100,111, 10, 32, 32,115,101,108,102, 46, 97,114,103, 115, 91,105, 93, 58,112,114,105,110,116, 40,105,100,101,110, 116, 46, 46, 34, 32, 32, 34, 44, 34, 44, 34, 41, 10, 32, 32, 105, 32, 61, 32,105, 43, 49, 10, 32,101,110,100, 10, 32,112, 114,105,110,116, 40,105,100,101,110,116, 46, 46, 34, 32,125, 34, 41, 10, 32,112,114,105,110,116, 40,105,100,101,110,116, 46, 46, 34,125, 34, 46, 46, 99,108,111,115,101, 41, 10,101, 110,100, 10, 10, 45, 45, 32, 99,104,101, 99,107, 32,105,102, 32,105,116, 32,114,101,116,117,114,110,115, 32, 97,110, 32, 111, 98,106,101, 99,116, 32, 98,121, 32,118, 97,108,117,101, 10,102,117,110, 99,116,105,111,110, 32, 99,108, 97,115,115, 70,117,110, 99,116,105,111,110, 58,114,101,113,117,105,114, 101, 99,111,108,108,101, 99,116,105,111,110, 32, 40,116, 41, 10, 9,108,111, 99, 97,108, 32,114, 32, 61, 32,102, 97,108, 115,101, 10, 9,105,102, 32,115,101,108,102, 46,116,121,112, 101, 32,126, 61, 32, 39, 39, 32, 97,110,100, 32,110,111,116, 32,105,115, 98, 97,115,105, 99, 40,115,101,108,102, 46,116, 121,112,101, 41, 32, 97,110,100, 32,115,101,108,102, 46,112, 116,114, 61, 61, 39, 39, 32,116,104,101,110, 10, 9, 9,108, 111, 99, 97,108, 32,116,121,112,101, 32, 61, 32,103,115,117, 98, 40,115,101,108,102, 46,116,121,112,101, 44, 34, 37,115, 42, 99,111,110,115,116, 37,115, 43, 34, 44, 34, 34, 41, 10, 9, 32,116, 91,116,121,112,101, 93, 32, 61, 32, 34,116,111, 108,117, 97, 95, 99,111,108,108,101, 99,116, 95, 34, 32, 46, 46, 32, 99,108,101, 97,110, 95,116,101,109,112,108, 97,116, 101, 40,116,121,112,101, 41, 10, 9, 32,114, 32, 61, 32,116, 114,117,101, 10, 9,101,110,100, 10, 9,108,111, 99, 97,108, 32,105, 61, 49, 10, 9,119,104,105,108,101, 32,115,101,108, 102, 46, 97,114,103,115, 91,105, 93, 32,100,111, 10, 9, 9, 114, 32, 61, 32,115,101,108,102, 46, 97,114,103,115, 91,105, 93, 58,114,101,113,117,105,114,101, 99,111,108,108,101, 99, 116,105,111,110, 40,116, 41, 32,111,114, 32,114, 10, 9, 9, 105, 32, 61, 32,105, 43, 49, 10, 9,101,110,100, 10, 9,114, 101,116,117,114,110, 32,114, 10,101,110,100, 10, 10, 45, 45, 32,100,101,116,101,114,109,105,110,101, 32,108,117, 97, 32, 102,117,110, 99,116,105,111,110, 32,110, 97,109,101, 32,111, 118,101,114,108,111, 97,100, 10,102,117,110, 99,116,105,111, 110, 32, 99,108, 97,115,115, 70,117,110, 99,116,105,111,110, 58,111,118,101,114,108,111, 97,100, 32, 40, 41, 10, 32,114, 101,116,117,114,110, 32,115,101,108,102, 46,112, 97,114,101, 110,116, 58,111,118,101,114,108,111, 97,100, 40,115,101,108, 102, 46,108,110, 97,109,101, 41, 10,101,110,100, 10, 10, 10, 102,117,110, 99,116,105,111,110, 32,112, 97,114, 97,109, 95, 111, 98,106,101, 99,116, 40,112, 97,114, 41, 32, 45, 45, 32, 114,101,116,117,114,110,115, 32,116,114,117,101, 32,105,102, 32,116,104,101, 32,112, 97,114, 97,109,101,116,101,114, 32, 104, 97,115, 32, 97,110, 32,111, 98,106,101, 99,116, 32, 97, 115, 32,105,116,115, 32,100,101,102, 97,117,108,116, 32,118, 97,108,117,101, 10, 10, 9,105,102, 32,110,111,116, 32,115, 116,114,105,110,103, 46,102,105,110,100, 40,112, 97,114, 44, 32, 39, 61, 39, 41, 32,116,104,101,110, 32,114,101,116,117, 114,110, 32,102, 97,108,115,101, 32,101,110,100, 32, 45, 45, 32,105,116, 32,104, 97,115, 32,110,111, 32,100,101,102, 97, 117,108,116, 32,118, 97,108,117,101, 10, 10, 9,108,111, 99, 97,108, 32, 95, 44, 95, 44,100,101,102, 32, 61, 32,115,116, 114,105,110,103, 46,102,105,110,100, 40,112, 97,114, 44, 32, 34, 61, 40, 46, 42, 41, 36, 34, 41, 10, 10, 9,105,102, 32, 115,116,114,105,110,103, 46,102,105,110,100, 40,112, 97,114, 44, 32, 34,124, 34, 41, 32,116,104,101,110, 32, 45, 45, 32, 97, 32,108,105,115,116, 32,111,102, 32,102,108, 97,103,115, 10, 10, 9, 9,114,101,116,117,114,110, 32,116,114,117,101, 10, 9,101,110,100, 10, 10, 9,105,102, 32,115,116,114,105, 110,103, 46,102,105,110,100, 40,112, 97,114, 44, 32, 34, 37, 42, 34, 41, 32,116,104,101,110, 32, 45, 45, 32,105,116, 39, 115, 32, 97, 32,112,111,105,110,116,101,114, 32,119,105,116, 104, 32, 97, 32,100,101,102, 97,117,108,116, 32,118, 97,108, 117,101, 10, 10, 9, 9,105,102, 32,115,116,114,105,110,103, 46,102,105,110,100, 40,112, 97,114, 44, 32, 39, 61, 37,115, 42,110,101,119, 39, 41, 32,111,114, 32,115,116,114,105,110, 103, 46,102,105,110,100, 40,112, 97,114, 44, 32, 34, 37, 40, 34, 41, 32,116,104,101,110, 32, 45, 45, 32,105,116, 39,115, 32, 97, 32,112,111,105,110,116,101,114, 32,119,105,116,104, 32, 97,110, 32,105,110,115,116, 97,110, 99,101, 32, 97,115, 32,100,101,102, 97,117,108,116, 32,112, 97,114, 97,109,101, 116,101,114, 46, 46, 32,105,115, 32,116,104, 97,116, 32,118, 97,108,105,100, 63, 10, 9, 9, 9,114,101,116,117,114,110, 32,116,114,117,101, 10, 9, 9,101,110,100, 10, 9, 9,114, 101,116,117,114,110, 32,102, 97,108,115,101, 32, 45, 45, 32, 100,101,102, 97,117,108,116, 32,118, 97,108,117,101, 32,105, 115, 32, 39, 78, 85, 76, 76, 39, 32,111,114, 32,115,111,109, 101,116,104,105,110,103, 10, 9,101,110,100, 10, 10, 10, 9, 105,102, 32,115,116,114,105,110,103, 46,102,105,110,100, 40, 112, 97,114, 44, 32, 34, 91, 37, 40, 38, 93, 34, 41, 32,116, 104,101,110, 10, 9, 9,114,101,116,117,114,110, 32,116,114, 117,101, 10, 9,101,110,100, 32, 45, 45, 32,100,101,102, 97, 117,108,116, 32,118, 97,108,117,101, 32,105,115, 32, 97, 32, 99,111,110,115,116,114,117, 99,116,111,114, 32, 99, 97,108, 108, 32, 40,109,111,115,116, 32,108,105,107,101,108,121, 32, 102,111,114, 32, 97, 32, 99,111,110,115,116, 32,114,101,102, 101,114,101,110, 99,101, 41, 10, 10, 9, 45, 45,105,102, 32, 115,116,114,105,110,103, 46,102,105,110,100, 40,112, 97,114, 44, 32, 34, 38, 34, 41, 32,116,104,101,110, 10, 10, 9, 45, 45, 9,105,102, 32,115,116,114,105,110,103, 46,102,105,110, 100, 40,100,101,102, 44, 32, 34, 58, 34, 41, 32,111,114, 32, 115,116,114,105,110,103, 46,102,105,110,100, 40,100,101,102, 44, 32, 34, 94, 37,115, 42,110,101,119, 37,115, 43, 34, 41, 32,116,104,101,110, 10, 10, 9, 45, 45, 9, 9, 45, 45, 32, 105,116, 39,115, 32, 97, 32,114,101,102,101,114,101,110, 99, 101, 32,119,105,116,104, 32,100,101,102, 97,117,108,116, 32, 116,111, 32,115,111,109,101,116,104,105,110,103, 32,108,105, 107,101, 32, 67,108, 97,115,115, 58, 58,109,101,109, 98,101, 114, 44, 32,111,114, 32, 39,110,101,119, 32, 67,108, 97,115, 115, 39, 10, 9, 45, 45, 9, 9,114,101,116,117,114,110, 32, 116,114,117,101, 10, 9, 45, 45, 9,101,110,100, 10, 9, 45, 45,101,110,100, 10, 10, 9,114,101,116,117,114,110, 32,102, 97,108,115,101, 32, 45, 45, 32, 63, 10,101,110,100, 10, 10, 102,117,110, 99,116,105,111,110, 32,115,116,114,105,112, 95, 108, 97,115,116, 95, 97,114,103, 40, 97,108,108, 95, 97,114, 103,115, 44, 32,108, 97,115,116, 95, 97,114,103, 41, 32, 45, 45, 32,115,116,114,105,112,115, 32,116,104,101, 32,100,101, 102, 97,117,108,116, 32,118, 97,108,117,101, 32,102,114,111, 109, 32,116,104,101, 32,108, 97,115,116, 32, 97,114,103,117, 109,101,110,116, 10, 10, 9,108,111, 99, 97,108, 32, 95, 44, 95, 44,115, 95, 97,114,103, 32, 61, 32,115,116,114,105,110, 103, 46,102,105,110,100, 40,108, 97,115,116, 95, 97,114,103, 44, 32, 34, 94, 40, 91, 94, 61, 93, 43, 41, 34, 41, 10, 9, 108, 97,115,116, 95, 97,114,103, 32, 61, 32,115,116,114,105, 110,103, 46,103,115,117, 98, 40,108, 97,115,116, 95, 97,114, 103, 44, 32, 34, 40, 91, 37, 37, 37, 40, 37, 41, 93, 41, 34, 44, 32, 34, 37, 37, 37, 49, 34, 41, 59, 10, 9, 97,108,108, 95, 97,114,103,115, 32, 61, 32,115,116,114,105,110,103, 46, 103,115,117, 98, 40, 97,108,108, 95, 97,114,103,115, 44, 32, 34, 37,115, 42, 44, 37,115, 42, 34, 46, 46,108, 97,115,116, 95, 97,114,103, 46, 46, 34, 37,115, 42, 37, 41, 37,115, 42, 36, 34, 44, 32, 34, 41, 34, 41, 10, 9,114,101,116,117,114, 110, 32, 97,108,108, 95, 97,114,103,115, 44, 32,115, 95, 97, 114,103, 10,101,110,100, 10, 10, 10, 10, 45, 45, 32, 73,110, 116,101,114,110, 97,108, 32, 99,111,110,115,116,114,117, 99, 116,111,114, 10,102,117,110, 99,116,105,111,110, 32, 95, 70, 117,110, 99,116,105,111,110, 32, 40,116, 41, 10, 32,115,101, 116,109,101,116, 97,116, 97, 98,108,101, 40,116, 44, 99,108, 97,115,115, 70,117,110, 99,116,105,111,110, 41, 10, 10, 32, 105,102, 32,116, 46, 99,111,110,115,116, 32,126, 61, 32, 39, 99,111,110,115,116, 39, 32, 97,110,100, 32,116, 46, 99,111, 110,115,116, 32,126, 61, 32, 39, 39, 32,116,104,101,110, 10, 32, 32,101,114,114,111,114, 40, 34, 35,105,110,118, 97,108, 105,100, 32, 39, 99,111,110,115,116, 39, 32,115,112,101, 99, 105,102,105, 99, 97,116,105,111,110, 34, 41, 10, 32,101,110, 100, 10, 10, 32, 97,112,112,101,110,100, 40,116, 41, 10, 32, 105,102, 32,116, 58,105,110, 99,108, 97,115,115, 40, 41, 32, 116,104,101,110, 10, 32, 45, 45,112,114,105,110,116, 32, 40, 39,116, 46,110, 97,109,101, 32,105,115, 32, 39, 46, 46,116, 46,110, 97,109,101, 46, 46, 39, 44, 32,112, 97,114,101,110, 116, 46,110, 97,109,101, 32,105,115, 32, 39, 46, 46,116, 46, 112, 97,114,101,110,116, 46,110, 97,109,101, 41, 10, 32, 32, 105,102, 32,115,116,114,105,110,103, 46,103,115,117, 98, 40, 116, 46,110, 97,109,101, 44, 32, 34, 37, 98, 60, 62, 34, 44, 32, 34, 34, 41, 32, 61, 61, 32,115,116,114,105,110,103, 46, 103,115,117, 98, 40,116, 46,112, 97,114,101,110,116, 46,111, 114,105,103,105,110, 97,108, 95,110, 97,109,101, 32,111,114, 32,116, 46,112, 97,114,101,110,116, 46,110, 97,109,101, 44, 32, 34, 37, 98, 60, 62, 34, 44, 32, 34, 34, 41, 32,116,104, 101,110, 10, 32, 32, 32,116, 46,110, 97,109,101, 32, 61, 32, 39,110,101,119, 39, 10, 32, 32, 32,116, 46,108,110, 97,109, 101, 32, 61, 32, 39,110,101,119, 39, 10, 32, 32, 32,116, 46, 112, 97,114,101,110,116, 46, 95,110,101,119, 32, 61, 32,116, 114,117,101, 10, 32, 32, 32,116, 46,116,121,112,101, 32, 61, 32,116, 46,112, 97,114,101,110,116, 46,110, 97,109,101, 10, 32, 32, 32,116, 46,112,116,114, 32, 61, 32, 39, 42, 39, 10, 32, 32,101,108,115,101,105,102, 32,115,116,114,105,110,103, 46,103,115,117, 98, 40,116, 46,110, 97,109,101, 44, 32, 34, 37, 98, 60, 62, 34, 44, 32, 34, 34, 41, 32, 61, 61, 32, 39, 126, 39, 46, 46,115,116,114,105,110,103, 46,103,115,117, 98, 40,116, 46,112, 97,114,101,110,116, 46,111,114,105,103,105, 110, 97,108, 95,110, 97,109,101, 32,111,114, 32,116, 46,112, 97,114,101,110,116, 46,110, 97,109,101, 44, 32, 34, 37, 98, 60, 62, 34, 44, 32, 34, 34, 41, 32,116,104,101,110, 10, 32, 32, 32,116, 46,110, 97,109,101, 32, 61, 32, 39,100,101,108, 101,116,101, 39, 10, 32, 32, 32,116, 46,108,110, 97,109,101, 32, 61, 32, 39,100,101,108,101,116,101, 39, 10, 32, 32, 32, 116, 46,112, 97,114,101,110,116, 46, 95,100,101,108,101,116, 101, 32, 61, 32,116,114,117,101, 10, 32, 32,101,110,100, 10, 32,101,110,100, 10, 32,116, 46, 99,110, 97,109,101, 32, 61, 32,116, 58, 99,102,117,110, 99,110, 97,109,101, 40, 34,116, 111,108,117, 97, 34, 41, 46, 46,116, 58,111,118,101,114,108, 111, 97,100, 40,116, 41, 10, 32,114,101,116,117,114,110, 32, 116, 10,101,110,100, 10, 10, 45, 45, 32, 67,111,110,115,116, 114,117, 99,116,111,114, 10, 45, 45, 32, 69,120,112,101, 99, 116,115, 32,116,104,114,101,101, 32,115,116,114,105,110,103, 115, 58, 32,111,110,101, 32,114,101,112,114,101,115,101,110, 116,105,110,103, 32,116,104,101, 32,102,117,110, 99,116,105, 111,110, 32,100,101, 99,108, 97,114, 97,116,105,111,110, 44, 10, 45, 45, 32, 97,110,111,116,104,101,114, 32,114,101,112, 114,101,115,101,110,116,105,110,103, 32,116,104,101, 32, 97, 114,103,117,109,101,110,116, 32,108,105,115,116, 44, 32, 97, 110,100, 32,116,104,101, 32,116,104,105,114,100, 32,114,101, 112,114,101,115,101,110,116,105,110,103, 10, 45, 45, 32,116, 104,101, 32, 34, 99,111,110,115,116, 34, 32,111,114, 32,101, 109,112,116,121, 32,115,116,114,105,110,103, 46, 10,102,117, 110, 99,116,105,111,110, 32, 70,117,110, 99,116,105,111,110, 32, 40,100, 44, 97, 44, 99, 41, 10, 32, 45, 45,108,111, 99, 97,108, 32,116, 32, 61, 32,115,112,108,105,116, 40,115,116, 114,115,117, 98, 40, 97, 44, 50, 44, 45, 50, 41, 44, 39, 44, 39, 41, 32, 45, 45, 32,101,108,105,109,105,110, 97,116,101, 32, 98,114, 97, 99,101,115, 10, 32, 45, 45,108,111, 99, 97, 108, 32,116, 32, 61, 32,115,112,108,105,116, 95,112, 97,114, 97,109,115, 40,115,116,114,115,117, 98, 40, 97, 44, 50, 44, 45, 50, 41, 41, 10, 10, 9,105,102, 32,110,111,116, 32,102, 108, 97,103,115, 91, 39, 87, 39, 93, 32, 97,110,100, 32,115, 116,114,105,110,103, 46,102,105,110,100, 40, 97, 44, 32, 34, 37, 46, 37, 46, 37, 46, 37,115, 42, 37, 41, 34, 41, 32,116, 104,101,110, 10, 10, 9, 9,119, 97,114,110,105,110,103, 40, 34, 70,117,110, 99,116,105,111,110,115, 32,119,105,116,104, 32,118, 97,114,105, 97, 98,108,101, 32, 97,114,103,117,109, 101,110,116,115, 32, 40, 96, 46, 46, 46, 39, 41, 32, 97,114, 101, 32,110,111,116, 32,115,117,112,112,111,114,116,101,100, 46, 32, 73,103,110,111,114,105,110,103, 32, 34, 46, 46,100, 46, 46, 97, 46, 46, 99, 41, 10, 9, 9,114,101,116,117,114, 110, 32,110,105,108, 10, 9,101,110,100, 10, 10, 10, 32,108, 111, 99, 97,108, 32,105, 61, 49, 10, 32,108,111, 99, 97,108, 32,108, 32, 61, 32,123,110, 61, 48,125, 10, 10, 32, 9, 97, 32, 61, 32,115,116,114,105,110,103, 46,103,115,117, 98, 40, 97, 44, 32, 34, 37,115, 42, 40, 91, 37, 40, 37, 41, 93, 41, 37,115, 42, 34, 44, 32, 34, 37, 49, 34, 41, 10, 9,108,111, 99, 97,108, 32,116, 44,115,116,114,105,112, 44,108, 97,115, 116, 32, 61, 32,115,116,114,105,112, 95,112, 97,114,115, 40, 115,116,114,115,117, 98, 40, 97, 44, 50, 44, 45, 50, 41, 41, 59, 10, 9,105,102, 32,115,116,114,105,112, 32,116,104,101, 110, 10, 9, 9, 45, 45,108,111, 99, 97,108, 32,110,115, 32, 61, 32,115,116,114,105,110,103, 46,115,117, 98, 40,115,116, 114,115,117, 98, 40, 97, 44, 49, 44, 45, 50, 41, 44, 32, 49, 44, 32, 45, 40,115,116,114,105,110,103, 46,108,101,110, 40, 108, 97,115,116, 41, 43, 49, 41, 41, 10, 9, 9,108,111, 99, 97,108, 32,110,115, 32, 61, 32,106,111,105,110, 40,116, 44, 32, 34, 44, 34, 44, 32, 49, 44, 32,108, 97,115,116, 45, 49, 41, 10, 10, 9, 9,110,115, 32, 61, 32, 34, 40, 34, 46, 46, 115,116,114,105,110,103, 46,103,115,117, 98, 40,110,115, 44, 32, 34, 37,115, 42, 44, 37,115, 42, 36, 34, 44, 32, 34, 34, 41, 46, 46, 39, 41, 39, 10, 9, 9, 45, 45,110,115, 32, 61, 32,115,116,114,105,112, 95,100,101,102, 97,117,108,116,115, 40,110,115, 41, 10, 10, 9, 9, 70,117,110, 99,116,105,111, 110, 40,100, 44, 32,110,115, 44, 32, 99, 41, 10, 9, 9,102, 111,114, 32,105, 61, 49, 44,108, 97,115,116, 32,100,111, 10, 9, 9, 9,116, 91,105, 93, 32, 61, 32,115,116,114,105,110, 103, 46,103,115,117, 98, 40,116, 91,105, 93, 44, 32, 34, 61, 46, 42, 36, 34, 44, 32, 34, 34, 41, 10, 9, 9,101,110,100, 10, 9,101,110,100, 10, 10, 32,119,104,105,108,101, 32,116, 91,105, 93, 32,100,111, 10, 32, 32,108, 46,110, 32, 61, 32, 108, 46,110, 43, 49, 10, 32, 32,108, 91,108, 46,110, 93, 32, 61, 32, 68,101, 99,108, 97,114, 97,116,105,111,110, 40,116, 91,105, 93, 44, 39,118, 97,114, 39, 44,116,114,117,101, 41, 10, 32, 32,105, 32, 61, 32,105, 43, 49, 10, 32,101,110,100, 10, 32,108,111, 99, 97,108, 32,102, 32, 61, 32, 68,101, 99, 108, 97,114, 97,116,105,111,110, 40,100, 44, 39,102,117,110, 99, 39, 41, 10, 32,102, 46, 97,114,103,115, 32, 61, 32,108, 10, 32,102, 46, 99,111,110,115,116, 32, 61, 32, 99, 10, 32, 114,101,116,117,114,110, 32, 95, 70,117,110, 99,116,105,111, 110, 40,102, 41, 10,101,110,100, 10, 10,102,117,110, 99,116, 105,111,110, 32,106,111,105,110, 40,116, 44, 32,115,101,112, 44, 32,102,105,114,115,116, 44, 32,108, 97,115,116, 41, 10, 10, 9,102,105,114,115,116, 32, 61, 32,102,105,114,115,116, 32,111,114, 32, 49, 10, 9,108, 97,115,116, 32, 61, 32,108, 97,115,116, 32,111,114, 32,116, 97, 98,108,101, 46,103,101, 116,110, 40,116, 41, 10, 9,108,111, 99, 97,108, 32,108,115, 101,112, 32, 61, 32, 34, 34, 10, 9,108,111, 99, 97,108, 32, 114,101,116, 32, 61, 32, 34, 34, 10, 9,108,111, 99, 97,108, 32,108,111,111,112, 32, 61, 32,102, 97,108,115,101, 10, 9, 102,111,114, 32,105, 32, 61, 32,102,105,114,115,116, 44,108, 97,115,116, 32,100,111, 10, 10, 9, 9,114,101,116, 32, 61, 32,114,101,116, 46, 46,108,115,101,112, 46, 46,116, 91,105, 93, 10, 9, 9,108,115,101,112, 32, 61, 32,115,101,112, 10, 9, 9,108,111,111,112, 32, 61, 32,116,114,117,101, 10, 9, 101,110,100, 10, 9,105,102, 32,110,111,116, 32,108,111,111, 112, 32,116,104,101,110, 10, 9, 9,114,101,116,117,114,110, 32, 34, 34, 10, 9,101,110,100, 10, 10, 9,114,101,116,117, 114,110, 32,114,101,116, 10,101,110,100, 10, 10,102,117,110, 99,116,105,111,110, 32,115,116,114,105,112, 95,112, 97,114, 115, 40,115, 41, 10, 10, 9,108,111, 99, 97,108, 32,116, 32, 61, 32,115,112,108,105,116, 95, 99, 95,116,111,107,101,110, 115, 40,115, 44, 32, 39, 44, 39, 41, 10, 9,108,111, 99, 97, 108, 32,115,116,114,105,112, 32, 61, 32,102, 97,108,115,101, 10, 9,108,111, 99, 97,108, 32,108, 97,115,116, 10, 10, 9, 102,111,114, 32,105, 61,116, 46,110, 44, 49, 44, 45, 49, 32, 100,111, 10, 10, 9, 9,105,102, 32,110,111,116, 32,115,116, 114,105,112, 32, 97,110,100, 32,112, 97,114, 97,109, 95,111, 98,106,101, 99,116, 40,116, 91,105, 93, 41, 32,116,104,101, 110, 10, 9, 9, 9,108, 97,115,116, 32, 61, 32,105, 10, 9, 9, 9,115,116,114,105,112, 32, 61, 32,116,114,117,101, 10, 9, 9,101,110,100, 10, 9, 9, 45, 45,105,102, 32,115,116, 114,105,112, 32,116,104,101,110, 10, 9, 9, 45, 45, 9,116, 91,105, 93, 32, 61, 32,115,116,114,105,110,103, 46,103,115, 117, 98, 40,116, 91,105, 93, 44, 32, 34, 61, 46, 42, 36, 34, 44, 32, 34, 34, 41, 10, 9, 9, 45, 45,101,110,100, 10, 9, 101,110,100, 10, 10, 9,114,101,116,117,114,110, 32,116, 44, 115,116,114,105,112, 44,108, 97,115,116, 10, 10,101,110,100, 10, 10,102,117,110, 99,116,105,111,110, 32,115,116,114,105, 112, 95,100,101,102, 97,117,108,116,115, 40,115, 41, 10, 10, 9,115, 32, 61, 32,115,116,114,105,110,103, 46,103,115,117, 98, 40,115, 44, 32, 34, 94, 37, 40, 34, 44, 32, 34, 34, 41, 10, 9,115, 32, 61, 32,115,116,114,105,110,103, 46,103,115, 117, 98, 40,115, 44, 32, 34, 37, 41, 36, 34, 44, 32, 34, 34, 41, 10, 10, 9,108,111, 99, 97,108, 32,116, 32, 61, 32,115, 112,108,105,116, 95, 99, 95,116,111,107,101,110,115, 40,115, 44, 32, 34, 44, 34, 41, 10, 9,108,111, 99, 97,108, 32,115, 101,112, 44, 32,114,101,116, 32, 61, 32, 34, 34, 44, 34, 34, 10, 9,102,111,114, 32,105, 61, 49, 44,116, 46,110, 32,100, 111, 10, 9, 9,116, 91,105, 93, 32, 61, 32,115,116,114,105, 110,103, 46,103,115,117, 98, 40,116, 91,105, 93, 44, 32, 34, 61, 46, 42, 36, 34, 44, 32, 34, 34, 41, 10, 9, 9,114,101, 116, 32, 61, 32,114,101,116, 46, 46,115,101,112, 46, 46,116, 91,105, 93, 10, 9, 9,115,101,112, 32, 61, 32, 34, 44, 34, 10, 9,101,110,100, 10, 10, 9,114,101,116,117,114,110, 32, 34, 40, 34, 46, 46,114,101,116, 46, 46, 34, 41, 34, 10,101, 110,100,32 }; tolua_dobuffer(tolua_S,(char*)B,sizeof(B),"tolua embedded: lua/tolua++/src/bin/lua/function.lua"); lua_settop(tolua_S, top); } /* end of embedded lua code */ { /* begin embedded lua code */ int top = lua_gettop(tolua_S); static unsigned char B[] = { 45, 45, 32,116,111,108,117, 97, 58, 32,111,112,101,114, 97, 116,111,114, 32, 99,108, 97,115,115, 10, 45, 45, 32, 87,114, 105,116,116,101,110, 32, 98,121, 32, 87, 97,108,100,101,109, 97,114, 32, 67,101,108,101,115, 10, 45, 45, 32, 84,101, 67, 71,114, 97,102, 47, 80, 85, 67, 45, 82,105,111, 10, 45, 45, 32, 74,117,108, 32, 49, 57, 57, 56, 10, 45, 45, 32, 36, 73, 100, 58, 32, 36, 10, 10, 45, 45, 32, 84,104,105,115, 32, 99, 111,100,101, 32,105,115, 32,102,114,101,101, 32,115,111,102, 116,119, 97,114,101, 59, 32,121,111,117, 32, 99, 97,110, 32, 114,101,100,105,115,116,114,105, 98,117,116,101, 32,105,116, 32, 97,110,100, 47,111,114, 32,109,111,100,105,102,121, 32, 105,116, 46, 10, 45, 45, 32, 84,104,101, 32,115,111,102,116, 119, 97,114,101, 32,112,114,111,118,105,100,101,100, 32,104, 101,114,101,117,110,100,101,114, 32,105,115, 32,111,110, 32, 97,110, 32, 34, 97,115, 32,105,115, 34, 32, 98, 97,115,105, 115, 44, 32, 97,110,100, 10, 45, 45, 32,116,104,101, 32, 97, 117,116,104,111,114, 32,104, 97,115, 32,110,111, 32,111, 98, 108,105,103, 97,116,105,111,110, 32,116,111, 32,112,114,111, 118,105,100,101, 32,109, 97,105,110,116,101,110, 97,110, 99, 101, 44, 32,115,117,112,112,111,114,116, 44, 32,117,112,100, 97,116,101,115, 44, 10, 45, 45, 32,101,110,104, 97,110, 99, 101,109,101,110,116,115, 44, 32,111,114, 32,109,111,100,105, 102,105, 99, 97,116,105,111,110,115, 46, 10, 10, 10, 45, 45, 32, 79,112,101,114, 97,116,111,114, 32, 99,108, 97,115,115, 10, 45, 45, 32, 82,101,112,114,101,115,101,110,116,115, 32, 97,110, 32,111,112,101,114, 97,116,111,114, 32,102,117,110, 99,116,105,111,110, 32,111,114, 32, 97, 32, 99,108, 97,115, 115, 32,111,112,101,114, 97,116,111,114, 32,109,101,116,104, 111,100, 46, 10, 45, 45, 32, 73,116, 32,115,116,111,114,101, 115, 32,116,104,101, 32,115, 97,109,101, 32,102,105,101,108, 100,115, 32, 97,115, 32,102,117,110, 99,116,105,111,110,115, 32,100,111, 32,112,108,117,115, 58, 10, 45, 45, 32, 32,107, 105,110,100, 32, 61, 32,115,101,116, 32,111,102, 32, 99,104, 97,114, 97, 99,116,101,114, 32,114,101,112,114,101,115,101, 110,116,105,110,103, 32,116,104,101, 32,111,112,101,114, 97, 116,111,114, 32, 40, 97,115, 32,105,116, 32, 97,112,112,101, 114,115, 32,105,110, 32, 67, 43, 43, 32, 99,111,100,101, 41, 10, 99,108, 97,115,115, 79,112,101,114, 97,116,111,114, 32, 61, 32,123, 10, 32,107,105,110,100, 32, 61, 32, 39, 39, 44, 10,125, 10, 99,108, 97,115,115, 79,112,101,114, 97,116,111, 114, 46, 95, 95,105,110,100,101,120, 32, 61, 32, 99,108, 97, 115,115, 79,112,101,114, 97,116,111,114, 10,115,101,116,109, 101,116, 97,116, 97, 98,108,101, 40, 99,108, 97,115,115, 79, 112,101,114, 97,116,111,114, 44, 99,108, 97,115,115, 70,117, 110, 99,116,105,111,110, 41, 10, 10, 45, 45, 32,116, 97, 98, 108,101, 32,116,111, 32,116,114, 97,110,115,102,111,114,109, 32,111,112,101,114, 97,116,111,114, 32,107,105,110,100, 32, 105,110,116,111, 32,116,104,101, 32, 97,112,112,114,111,112, 114,105, 97,116,101, 32,116, 97,103, 32,109,101,116,104,111, 100, 32,110, 97,109,101, 10, 95, 84, 77, 32, 61, 32,123, 91, 39, 43, 39, 93, 32, 61, 32, 39, 97,100,100, 39, 44, 10, 32, 32, 32, 32, 32, 32, 32, 91, 39, 45, 39, 93, 32, 61, 32, 39, 115,117, 98, 39, 44, 10, 32, 32, 32, 32, 32, 32, 32, 91, 39, 42, 39, 93, 32, 61, 32, 39,109,117,108, 39, 44, 10, 32, 32, 32, 32, 32, 32, 32, 91, 39, 47, 39, 93, 32, 61, 32, 39,100, 105,118, 39, 44, 10, 32, 32, 32, 32, 32, 32, 32, 91, 39, 60, 39, 93, 32, 61, 32, 39,108,116, 39, 44, 10, 32, 32, 32, 32, 32, 32, 32, 91, 39, 60, 61, 39, 93, 32, 61, 32, 39,108,101, 39, 44, 10, 32, 32, 32, 32, 32, 32, 32, 91, 39, 61, 61, 39, 93, 32, 61, 32, 39,101,113, 39, 44, 10, 32, 32, 32, 32, 32, 32, 32, 91, 39, 91, 93, 39, 93, 32, 61, 32, 39,103,101,116, 105, 39, 44, 10, 32, 32, 32, 32, 32, 32, 32, 91, 39, 38, 91, 93, 39, 93, 32, 61, 32, 39,115,101,116,105, 39, 44, 10, 32, 32, 32, 32, 32, 32, 32, 45, 45, 91, 39, 45, 62, 39, 93, 32, 61, 32, 39,102,108,101, 99,104,105,116, 97, 39, 44, 10, 32, 32, 32, 32, 32, 32,125, 10, 10, 10, 45, 45, 32, 80,114,105, 110,116, 32,109,101,116,104,111,100, 10,102,117,110, 99,116, 105,111,110, 32, 99,108, 97,115,115, 79,112,101,114, 97,116, 111,114, 58,112,114,105,110,116, 32, 40,105,100,101,110,116, 44, 99,108,111,115,101, 41, 10, 32,112,114,105,110,116, 40, 105,100,101,110,116, 46, 46, 34, 79,112,101,114, 97,116,111, 114,123, 34, 41, 10, 32,112,114,105,110,116, 40,105,100,101, 110,116, 46, 46, 34, 32,107,105,110,100, 32, 32, 61, 32, 39, 34, 46, 46,115,101,108,102, 46,107,105,110,100, 46, 46, 34, 39, 44, 34, 41, 10, 32,112,114,105,110,116, 40,105,100,101, 110,116, 46, 46, 34, 32,109,111,100, 32, 32, 61, 32, 39, 34, 46, 46,115,101,108,102, 46,109,111,100, 46, 46, 34, 39, 44, 34, 41, 10, 32,112,114,105,110,116, 40,105,100,101,110,116, 46, 46, 34, 32,116,121,112,101, 32, 61, 32, 39, 34, 46, 46, 115,101,108,102, 46,116,121,112,101, 46, 46, 34, 39, 44, 34, 41, 10, 32,112,114,105,110,116, 40,105,100,101,110,116, 46, 46, 34, 32,112,116,114, 32, 32, 61, 32, 39, 34, 46, 46,115, 101,108,102, 46,112,116,114, 46, 46, 34, 39, 44, 34, 41, 10, 32,112,114,105,110,116, 40,105,100,101,110,116, 46, 46, 34, 32,110, 97,109,101, 32, 61, 32, 39, 34, 46, 46,115,101,108, 102, 46,110, 97,109,101, 46, 46, 34, 39, 44, 34, 41, 10, 32, 112,114,105,110,116, 40,105,100,101,110,116, 46, 46, 34, 32, 99,111,110,115,116, 32, 61, 32, 39, 34, 46, 46,115,101,108, 102, 46, 99,111,110,115,116, 46, 46, 34, 39, 44, 34, 41, 10, 32,112,114,105,110,116, 40,105,100,101,110,116, 46, 46, 34, 32, 99,110, 97,109,101, 32, 61, 32, 39, 34, 46, 46,115,101, 108,102, 46, 99,110, 97,109,101, 46, 46, 34, 39, 44, 34, 41, 10, 32,112,114,105,110,116, 40,105,100,101,110,116, 46, 46, 34, 32,108,110, 97,109,101, 32, 61, 32, 39, 34, 46, 46,115, 101,108,102, 46,108,110, 97,109,101, 46, 46, 34, 39, 44, 34, 41, 10, 32,112,114,105,110,116, 40,105,100,101,110,116, 46, 46, 34, 32, 97,114,103,115, 32, 61, 32,123, 34, 41, 10, 32, 108,111, 99, 97,108, 32,105, 61, 49, 10, 32,119,104,105,108, 101, 32,115,101,108,102, 46, 97,114,103,115, 91,105, 93, 32, 100,111, 10, 32, 32,115,101,108,102, 46, 97,114,103,115, 91, 105, 93, 58,112,114,105,110,116, 40,105,100,101,110,116, 46, 46, 34, 32, 32, 34, 44, 34, 44, 34, 41, 10, 32, 32,105, 32, 61, 32,105, 43, 49, 10, 32,101,110,100, 10, 32,112,114,105, 110,116, 40,105,100,101,110,116, 46, 46, 34, 32,125, 34, 41, 10, 32,112,114,105,110,116, 40,105,100,101,110,116, 46, 46, 34,125, 34, 46, 46, 99,108,111,115,101, 41, 10,101,110,100, 10, 10,102,117,110, 99,116,105,111,110, 32, 99,108, 97,115, 115, 79,112,101,114, 97,116,111,114, 58,115,117,112, 99,111, 100,101, 95,116,109,112, 40, 41, 10, 10, 9,105,102, 32,110, 111,116, 32, 95, 84, 77, 91,115,101,108,102, 46,107,105,110, 100, 93, 32,116,104,101,110, 10, 9, 9,114,101,116,117,114, 110, 32, 99,108, 97,115,115, 70,117,110, 99,116,105,111,110, 46,115,117,112, 99,111,100,101, 40,115,101,108,102, 41, 10, 9,101,110,100, 10, 10, 9, 45, 45, 32,110,111, 32,111,118, 101,114,108,111, 97,100, 44, 32,110,111, 32,112, 97,114, 97, 109,101,116,101,114,115, 44, 32, 97,108,119, 97,121,115, 32, 105,110, 99,108, 97,115,115, 10, 9,111,117,116,112,117,116, 40, 34, 47, 42, 32,109,101,116,104,111,100, 58, 34, 44,115, 101,108,102, 46,110, 97,109,101, 44, 34, 32,111,102, 32, 99, 108, 97,115,115, 32, 34, 44,115,101,108,102, 58,105,110, 99, 108, 97,115,115, 40, 41, 44, 34, 32, 42, 47, 34, 41, 10, 10, 9,111,117,116,112,117,116, 40, 34, 35,105,102,110,100,101, 102, 32, 84, 79, 76, 85, 65, 95, 68, 73, 83, 65, 66, 76, 69, 95, 34, 46, 46,115,101,108,102, 46, 99,110, 97,109,101, 41, 10, 9,111,117,116,112,117,116, 40, 34, 92,110,115,116, 97, 116,105, 99, 32,105,110,116, 34, 44,115,101,108,102, 46, 99, 110, 97,109,101, 44, 34, 40,108,117, 97, 95, 83,116, 97,116, 101, 42, 32,116,111,108,117, 97, 95, 83, 41, 34, 41, 10, 10, 9,105,102, 32,111,118,101,114,108,111, 97,100, 32, 60, 32, 48, 32,116,104,101,110, 10, 9, 32,111,117,116,112,117,116, 40, 39, 35,105,102,110,100,101,102, 32, 84, 79, 76, 85, 65, 95, 82, 69, 76, 69, 65, 83, 69, 92,110, 39, 41, 10, 9,101, 110,100, 10, 9,111,117,116,112,117,116, 40, 39, 32,116,111, 108,117, 97, 95, 69,114,114,111,114, 32,116,111,108,117, 97, 95,101,114,114, 59, 39, 41, 10, 9,111,117,116,112,117,116, 40, 39, 32,105,102, 32, 40, 92,110, 39, 41, 10, 9, 45, 45, 32, 99,104,101, 99,107, 32,115,101,108,102, 10, 9,108,111, 99, 97,108, 32,105,115, 95,102,117,110, 99, 32, 61, 32,103, 101,116, 95,105,115, 95,102,117,110, 99,116,105,111,110, 40, 115,101,108,102, 46,112, 97,114,101,110,116, 46,116,121,112, 101, 41, 10, 9,111,117,116,112,117,116, 40, 39, 32, 32, 32, 32, 32, 33, 39, 46, 46,105,115, 95,102,117,110, 99, 46, 46, 39, 40,116,111,108,117, 97, 95, 83, 44, 49, 44, 34, 39, 46, 46,115,101,108,102, 46,112, 97,114,101,110,116, 46,116,121, 112,101, 46, 46, 39, 34, 44, 48, 44, 38,116,111,108,117, 97, 95,101,114,114, 41, 32,124,124, 92,110, 39, 41, 10, 9,111, 117,116,112,117,116, 40, 39, 32, 32, 32, 32, 32, 33,116,111, 108,117, 97, 95,105,115,110,111,111, 98,106, 40,116,111,108, 117, 97, 95, 83, 44, 50, 44, 38,116,111,108,117, 97, 95,101, 114,114, 41, 92,110, 32, 41, 39, 41, 10, 9,111,117,116,112, 117,116, 40, 39, 32, 32,103,111,116,111, 32,116,111,108,117, 97, 95,108,101,114,114,111,114, 59, 39, 41, 10, 10, 9,111, 117,116,112,117,116, 40, 39, 32,101,108,115,101, 92,110, 39, 41, 10, 9,111,117,116,112,117,116, 40, 39, 35,101,110,100, 105,102, 92,110, 39, 41, 32, 45, 45, 32,116,111,108,117, 97, 95,114,101,108,101, 97,115,101, 10, 9,111,117,116,112,117, 116, 40, 39, 32,123, 39, 41, 10, 10, 9, 45, 45, 32,100,101, 99,108, 97,114,101, 32,115,101,108,102, 10, 9,111,117,116, 112,117,116, 40, 39, 32, 39, 44,115,101,108,102, 46, 99,111, 110,115,116, 44,115,101,108,102, 46,112, 97,114,101,110,116, 46,116,121,112,101, 44, 39, 42, 39, 44, 39,115,101,108,102, 32, 61, 32, 39, 41, 10, 9,111,117,116,112,117,116, 40, 39, 40, 39, 44,115,101,108,102, 46, 99,111,110,115,116, 44,115, 101,108,102, 46,112, 97,114,101,110,116, 46,116,121,112,101, 44, 39, 42, 41, 32, 39, 41, 10, 9,108,111, 99, 97,108, 32, 116,111, 95,102,117,110, 99, 32, 61, 32,103,101,116, 95,116, 111, 95,102,117,110, 99, 40,115,101,108,102, 46,112, 97,114, 101,110,116, 46,116,121,112,101, 41, 10, 9,111,117,116,112, 117,116, 40,116,111, 95,102,117,110, 99, 44, 39, 40,116,111, 108,117, 97, 95, 83, 44, 49, 44, 48, 41, 59, 39, 41, 10, 10, 9, 45, 45, 32, 99,104,101, 99,107, 32,115,101,108,102, 10, 9,111,117,116,112,117,116, 40, 39, 35,105,102,110,100,101, 102, 32, 84, 79, 76, 85, 65, 95, 82, 69, 76, 69, 65, 83, 69, 92,110, 39, 41, 10, 9,111,117,116,112,117,116, 40, 39, 32, 32,105,102, 32, 40, 33,115,101,108,102, 41, 32,116,111,108, 117, 97, 95,101,114,114,111,114, 40,116,111,108,117, 97, 95, 83, 44, 34,105,110,118, 97,108,105,100, 32, 92, 39,115,101, 108,102, 92, 39, 32,105,110, 32,102,117,110, 99,116,105,111, 110, 32, 92, 39, 39, 46, 46,115,101,108,102, 46,110, 97,109, 101, 46, 46, 39, 92, 39, 34, 44, 78, 85, 76, 76, 41, 59, 39, 41, 59, 10, 9,111,117,116,112,117,116, 40, 39, 35,101,110, 100,105,102, 92,110, 39, 41, 10, 10, 9, 45, 45, 32, 99, 97, 115,116, 32,115,101,108,102, 10, 9,111,117,116,112,117,116, 40, 39, 32, 32, 39, 44,115,101,108,102, 46,109,111,100, 44, 115,101,108,102, 46,116,121,112,101, 44,115,101,108,102, 46, 112,116,114, 44, 39,116,111,108,117, 97, 95,114,101,116, 32, 61, 32, 39, 41, 10, 9,111,117,116,112,117,116, 40, 39, 40, 39, 44,115,101,108,102, 46,109,111,100, 44,115,101,108,102, 46,116,121,112,101, 44,115,101,108,102, 46,112,116,114, 44, 39, 41, 40, 42,115,101,108,102, 41, 59, 39, 41, 10, 10, 9, 45, 45, 32,114,101,116,117,114,110, 32,118, 97,108,117,101, 10, 9,108,111, 99, 97,108, 32,116, 44, 99,116, 32, 61, 32, 105,115, 98, 97,115,105, 99, 40,115,101,108,102, 46,116,121, 112,101, 41, 10, 9,105,102, 32,116, 32,116,104,101,110, 10, 9, 9,111,117,116,112,117,116, 40, 39, 32, 32, 32,116,111, 108,117, 97, 95,112,117,115,104, 39, 46, 46,116, 46, 46, 39, 40,116,111,108,117, 97, 95, 83, 44, 40, 39, 44, 99,116, 44, 39, 41,116,111,108,117, 97, 95,114,101,116, 41, 59, 39, 41, 10, 9,101,108,115,101, 10, 9, 9,116, 32, 61, 32,115,101, 108,102, 46,116,121,112,101, 10, 9, 9,108,111, 99, 97,108, 32,112,117,115,104, 95,102,117,110, 99, 32, 61, 32,103,101, 116, 95,112,117,115,104, 95,102,117,110, 99,116,105,111,110, 40,116, 41, 10, 9, 9,110,101,119, 95,116, 32, 61, 32,115, 116,114,105,110,103, 46,103,115,117, 98, 40,116, 44, 32, 34, 99,111,110,115,116, 37,115, 43, 34, 44, 32, 34, 34, 41, 10, 9, 9,105,102, 32,115,101,108,102, 46,112,116,114, 32, 61, 61, 32, 39, 39, 32,116,104,101,110, 10, 9, 9, 9,111,117, 116,112,117,116, 40, 39, 32, 32, 32,123, 39, 41, 10, 9, 9, 9,111,117,116,112,117,116, 40, 39, 35,105,102,100,101,102, 32, 95, 95, 99,112,108,117,115,112,108,117,115, 92,110, 39, 41, 10, 9, 9, 9,111,117,116,112,117,116, 40, 39, 32, 32, 32, 32,118,111,105,100, 42, 32,116,111,108,117, 97, 95,111, 98,106, 32, 61, 32, 77,116,111,108,117, 97, 95,110,101,119, 40, 40, 39, 44,110,101,119, 95,116, 44, 39, 41, 40,116,111, 108,117, 97, 95,114,101,116, 41, 41, 59, 39, 41, 10, 9, 9, 9,111,117,116,112,117,116, 40, 39, 32, 32, 32, 32, 39, 44, 112,117,115,104, 95,102,117,110, 99, 44, 39, 40,116,111,108, 117, 97, 95, 83, 44,116,111,108,117, 97, 95,111, 98,106, 44, 34, 39, 44,116, 44, 39, 34, 41, 59, 39, 41, 10, 9, 9, 9, 111,117,116,112,117,116, 40, 39, 32, 32, 32, 32,116,111,108, 117, 97, 95,114,101,103,105,115,116,101,114, 95,103, 99, 40, 116,111,108,117, 97, 95, 83, 44,108,117, 97, 95,103,101,116, 116,111,112, 40,116,111,108,117, 97, 95, 83, 41, 41, 59, 39, 41, 10, 9, 9, 9,111,117,116,112,117,116, 40, 39, 35,101, 108,115,101, 92,110, 39, 41, 10, 9, 9, 9,111,117,116,112, 117,116, 40, 39, 32, 32, 32, 32,118,111,105,100, 42, 32,116, 111,108,117, 97, 95,111, 98,106, 32, 61, 32,116,111,108,117, 97, 95, 99,111,112,121, 40,116,111,108,117, 97, 95, 83, 44, 40,118,111,105,100, 42, 41, 38,116,111,108,117, 97, 95,114, 101,116, 44,115,105,122,101,111,102, 40, 39, 44,116, 44, 39, 41, 41, 59, 39, 41, 10, 9, 9, 9,111,117,116,112,117,116, 40, 39, 32, 32, 32, 32, 39, 44,112,117,115,104, 95,102,117, 110, 99, 44, 39, 40,116,111,108,117, 97, 95, 83, 44,116,111, 108,117, 97, 95,111, 98,106, 44, 34, 39, 44,116, 44, 39, 34, 41, 59, 39, 41, 10, 9, 9, 9,111,117,116,112,117,116, 40, 39, 32, 32, 32, 32,116,111,108,117, 97, 95,114,101,103,105, 115,116,101,114, 95,103, 99, 40,116,111,108,117, 97, 95, 83, 44,108,117, 97, 95,103,101,116,116,111,112, 40,116,111,108, 117, 97, 95, 83, 41, 41, 59, 39, 41, 10, 9, 9, 9,111,117, 116,112,117,116, 40, 39, 35,101,110,100,105,102, 92,110, 39, 41, 10, 9, 9, 9,111,117,116,112,117,116, 40, 39, 32, 32, 32,125, 39, 41, 10, 9, 9,101,108,115,101,105,102, 32,115, 101,108,102, 46,112,116,114, 32, 61, 61, 32, 39, 38, 39, 32, 116,104,101,110, 10, 9, 9, 9,111,117,116,112,117,116, 40, 39, 32, 32, 32, 39, 44,112,117,115,104, 95,102,117,110, 99, 44, 39, 40,116,111,108,117, 97, 95, 83, 44, 40,118,111,105, 100, 42, 41, 38,116,111,108,117, 97, 95,114,101,116, 44, 34, 39, 44,116, 44, 39, 34, 41, 59, 39, 41, 10, 9, 9,101,108, 115,101, 10, 9, 9, 9,105,102, 32,108,111, 99, 97,108, 95, 99,111,110,115,116,114,117, 99,116,111,114, 32,116,104,101, 110, 10, 9, 9, 9, 9,111,117,116,112,117,116, 40, 39, 32, 32, 32, 39, 44,112,117,115,104, 95,102,117,110, 99, 44, 39, 40,116,111,108,117, 97, 95, 83, 44, 40,118,111,105,100, 32, 42, 41,116,111,108,117, 97, 95,114,101,116, 44, 34, 39, 44, 116, 44, 39, 34, 41, 59, 39, 41, 10, 9, 9, 9, 9,111,117, 116,112,117,116, 40, 39, 32, 32, 32, 32,116,111,108,117, 97, 95,114,101,103,105,115,116,101,114, 95,103, 99, 40,116,111, 108,117, 97, 95, 83, 44,108,117, 97, 95,103,101,116,116,111, 112, 40,116,111,108,117, 97, 95, 83, 41, 41, 59, 39, 41, 10, 9, 9, 9,101,108,115,101, 10, 9, 9, 9, 9,111,117,116, 112,117,116, 40, 39, 32, 32, 32, 39, 44,112,117,115,104, 95, 102,117,110, 99, 44, 39, 40,116,111,108,117, 97, 95, 83, 44, 40,118,111,105,100, 42, 41,116,111,108,117, 97, 95,114,101, 116, 44, 34, 39, 44,116, 44, 39, 34, 41, 59, 39, 41, 10, 9, 9, 9,101,110,100, 10, 9, 9,101,110,100, 10, 9,101,110, 100, 10, 10, 9,111,117,116,112,117,116, 40, 39, 32, 32,125, 39, 41, 10, 9,111,117,116,112,117,116, 40, 39, 32,114,101, 116,117,114,110, 32, 49, 59, 39, 41, 10, 10, 9,111,117,116, 112,117,116, 40, 39, 35,105,102,110,100,101,102, 32, 84, 79, 76, 85, 65, 95, 82, 69, 76, 69, 65, 83, 69, 92,110, 39, 41, 10, 9,111,117,116,112,117,116, 40, 39,116,111,108,117, 97, 95,108,101,114,114,111,114, 58, 92,110, 39, 41, 10, 9,111, 117,116,112,117,116, 40, 39, 32,116,111,108,117, 97, 95,101, 114,114,111,114, 40,116,111,108,117, 97, 95, 83, 44, 34, 35, 102,101,114,114,111,114, 32,105,110, 32,102,117,110, 99,116, 105,111,110, 32, 92, 39, 39, 46, 46,115,101,108,102, 46,108, 110, 97,109,101, 46, 46, 39, 92, 39, 46, 34, 44, 38,116,111, 108,117, 97, 95,101,114,114, 41, 59, 39, 41, 10, 9,111,117, 116,112,117,116, 40, 39, 32,114,101,116,117,114,110, 32, 48, 59, 39, 41, 10, 9,111,117,116,112,117,116, 40, 39, 35,101, 110,100,105,102, 92,110, 39, 41, 10, 10, 10, 9,111,117,116, 112,117,116, 40, 39,125, 39, 41, 10, 9,111,117,116,112,117, 116, 40, 39, 35,101,110,100,105,102, 32, 47, 47, 35,105,102, 110,100,101,102, 32, 84, 79, 76, 85, 65, 95, 68, 73, 83, 65, 66, 76, 69, 92,110, 39, 41, 10, 9,111,117,116,112,117,116, 40, 39, 92,110, 39, 41, 10,101,110,100, 10, 10, 45, 45, 32, 73,110,116,101,114,110, 97,108, 32, 99,111,110,115,116,114, 117, 99,116,111,114, 10,102,117,110, 99,116,105,111,110, 32, 95, 79,112,101,114, 97,116,111,114, 32, 40,116, 41, 10, 32, 115,101,116,109,101,116, 97,116, 97, 98,108,101, 40,116, 44, 99,108, 97,115,115, 79,112,101,114, 97,116,111,114, 41, 10, 10, 32,105,102, 32,116, 46, 99,111,110,115,116, 32,126, 61, 32, 39, 99,111,110,115,116, 39, 32, 97,110,100, 32,116, 46, 99,111,110,115,116, 32,126, 61, 32, 39, 39, 32,116,104,101, 110, 10, 32, 32,101,114,114,111,114, 40, 34, 35,105,110,118, 97,108,105,100, 32, 39, 99,111,110,115,116, 39, 32,115,112, 101, 99,105,102,105, 99, 97,116,105,111,110, 34, 41, 10, 32, 101,110,100, 10, 10, 32, 97,112,112,101,110,100, 40,116, 41, 10, 32,105,102, 32,110,111,116, 32,116, 58,105,110, 99,108, 97,115,115, 40, 41, 32,116,104,101,110, 10, 32, 32,101,114, 114,111,114, 40, 34, 35,111,112,101,114, 97,116,111,114, 32, 99, 97,110, 32,111,110,108,121, 32, 98,101, 32,100,101,102, 105,110,101,100, 32, 97,115, 32, 99,108, 97,115,115, 32,109, 101,109, 98,101,114, 34, 41, 10, 32,101,110,100, 10, 10, 32, 45, 45,116, 46,110, 97,109,101, 32, 61, 32,116, 46,110, 97, 109,101, 32, 46, 46, 32, 34, 95, 34, 32, 46, 46, 32, 40, 95, 84, 77, 91,116, 46,107,105,110,100, 93, 32,111,114, 32,116, 46,107,105,110,100, 41, 10, 32,116, 46, 99,110, 97,109,101, 32, 61, 32,116, 58, 99,102,117,110, 99,110, 97,109,101, 40, 34,116,111,108,117, 97, 34, 41, 46, 46,116, 58,111,118,101, 114,108,111, 97,100, 40,116, 41, 10, 32,116, 46,110, 97,109, 101, 32, 61, 32, 34,111,112,101,114, 97,116,111,114, 34, 32, 46, 46, 32,116, 46,107,105,110,100, 32, 32, 45, 45, 32,115, 101,116, 32, 97,112,112,114,111,112,114,105, 97,116,101, 32, 99, 97,108,108,105,110,103, 32,110, 97,109,101, 10, 32,114, 101,116,117,114,110, 32,116, 10,101,110,100, 10, 10, 45, 45, 32, 67,111,110,115,116,114,117, 99,116,111,114, 10,102,117, 110, 99,116,105,111,110, 32, 79,112,101,114, 97,116,111,114, 32, 40,100, 44,107, 44, 97, 44, 99, 41, 10, 10, 9,108,111, 99, 97,108, 32,111,112, 95,107, 32, 61, 32,115,116,114,105, 110,103, 46,103,115,117, 98, 40,107, 44, 32, 34, 94, 37,115, 42, 34, 44, 32, 34, 34, 41, 10, 9,111,112, 95,107, 32, 61, 32,115,116,114,105,110,103, 46,103,115,117, 98, 40,107, 44, 32, 34, 37,115, 42, 36, 34, 44, 32, 34, 34, 41, 10, 9, 45, 45,105,102, 32,115,116,114,105,110,103, 46,102,105,110,100, 40,107, 44, 32, 34, 94, 91, 37,119, 95, 58, 37,100, 60, 62, 37, 42, 37, 38, 93, 43, 36, 34, 41, 32,116,104,101,110, 10, 9,105,102, 32,100, 32, 61, 61, 32, 34,111,112,101,114, 97, 116,111,114, 34, 32, 97,110,100, 32,107, 32,126, 61, 32, 39, 39, 32,116,104,101,110, 10, 10, 9, 9,100, 32, 61, 32,107, 46, 46, 34, 32,111,112,101,114, 97,116,111,114, 34, 10, 9, 101,108,115,101,105,102, 32,110,111,116, 32, 95, 84, 77, 91, 111,112, 95,107, 93, 32,116,104,101,110, 10, 10, 9, 9,105, 102, 32,102,108, 97,103,115, 91, 39, 87, 39, 93, 32,116,104, 101,110, 10, 9, 9, 9,101,114,114,111,114, 40, 34,116,111, 108,117, 97, 58, 32,110,111, 32,115,117,112,112,111,114,116, 32,102,111,114, 32,111,112,101,114, 97,116,111,114, 34, 32, 46, 46, 32,102, 46,107,105,110,100, 41, 10, 9, 9,101,108, 115,101, 10, 9, 9, 9,119, 97,114,110,105,110,103, 40, 34, 78,111, 32,115,117,112,112,111,114,116, 32,102,111,114, 32, 111,112,101,114, 97,116,111,114, 32, 34, 46, 46,111,112, 95, 107, 46, 46, 34, 44, 32,105,103,110,111,114,105,110,103, 34, 41, 10, 9, 9, 9,114,101,116,117,114,110, 32,110,105,108, 10, 9, 9,101,110,100, 10, 9,101,110,100, 10, 10, 9,108, 111, 99, 97,108, 32,114,101,102, 32, 61, 32, 39, 39, 10, 32, 108,111, 99, 97,108, 32,116, 32, 61, 32,115,112,108,105,116, 95, 99, 95,116,111,107,101,110,115, 40,115,116,114,115,117, 98, 40, 97, 44, 50, 44,115,116,114,108,101,110, 40, 97, 41, 45, 49, 41, 44, 39, 44, 39, 41, 32, 45, 45, 32,101,108,105, 109,105,110, 97,116,101, 32, 98,114, 97, 99,101,115, 10, 32, 108,111, 99, 97,108, 32,105, 61, 49, 10, 32,108,111, 99, 97, 108, 32,108, 32, 61, 32,123,110, 61, 48,125, 10, 32,119,104, 105,108,101, 32,116, 91,105, 93, 32,100,111, 10, 32, 32,108, 46,110, 32, 61, 32,108, 46,110, 43, 49, 10, 32, 32,108, 91, 108, 46,110, 93, 32, 61, 32, 68,101, 99,108, 97,114, 97,116, 105,111,110, 40,116, 91,105, 93, 44, 39,118, 97,114, 39, 41, 10, 32, 32,105, 32, 61, 32,105, 43, 49, 10, 32,101,110,100, 10, 32,105,102, 32,107, 32, 61, 61, 32, 39, 91, 93, 39, 32, 116,104,101,110, 10, 9, 32,108,111, 99, 97,108, 32, 95, 10, 9, 32, 95, 44, 32, 95, 44, 32,114,101,102, 32, 61, 32,115, 116,114,102,105,110,100, 40,100, 44, 39, 40, 38, 41, 39, 41, 10, 32, 32,100, 32, 61, 32,103,115,117, 98, 40,100, 44, 39, 38, 39, 44, 39, 39, 41, 10, 32,101,108,115,101,105,102, 32, 107, 61, 61, 39, 38, 91, 93, 39, 32,116,104,101,110, 10, 32, 32,108, 46,110, 32, 61, 32,108, 46,110, 43, 49, 10, 32, 32, 108, 91,108, 46,110, 93, 32, 61, 32, 68,101, 99,108, 97,114, 97,116,105,111,110, 40,100, 44, 39,118, 97,114, 39, 41, 10, 32, 32,108, 91,108, 46,110, 93, 46,110, 97,109,101, 32, 61, 32, 39,116,111,108,117, 97, 95,118, 97,108,117,101, 39, 10, 32,101,110,100, 10, 32,108,111, 99, 97,108, 32,102, 32, 61, 32, 68,101, 99,108, 97,114, 97,116,105,111,110, 40,100, 44, 39,102,117,110, 99, 39, 41, 10, 32,105,102, 32,107, 32, 61, 61, 32, 39, 91, 93, 39, 32, 97,110,100, 32, 40,108, 91, 49, 93, 61, 61,110,105,108, 32,111,114, 32,105,115, 98, 97,115, 105, 99, 40,108, 91, 49, 93, 46,116,121,112,101, 41,126, 61, 39,110,117,109, 98,101,114, 39, 41, 32,116,104,101,110, 10, 32, 32,101,114,114,111,114, 40, 39,111,112,101,114, 97,116, 111,114, 91, 93, 32, 99, 97,110, 32,111,110,108,121, 32, 98, 101, 32,100,101,102,105,110,101,100, 32,102,111,114, 32,110, 117,109,101,114,105, 99, 32,105,110,100,101,120, 46, 39, 41, 10, 32,101,110,100, 10, 32,102, 46, 97,114,103,115, 32, 61, 32,108, 10, 32,102, 46, 99,111,110,115,116, 32, 61, 32, 99, 10, 32,102, 46,107,105,110,100, 32, 61, 32,111,112, 95,107, 10, 32,102, 46,108,110, 97,109,101, 32, 61, 32, 34, 46, 34, 46, 46, 40, 95, 84, 77, 91,102, 46,107,105,110,100, 93, 32, 111,114, 32,102, 46,107,105,110,100, 41, 10, 32,105,102, 32, 110,111,116, 32, 95, 84, 77, 91,102, 46,107,105,110,100, 93, 32,116,104,101,110, 10, 32, 9,102, 46, 99, 97,115,116, 95, 111,112,101,114, 97,116,111,114, 32, 61, 32,116,114,117,101, 10, 32,101,110,100, 10, 32,105,102, 32,102, 46,107,105,110, 100, 32, 61, 61, 32, 39, 91, 93, 39, 32, 97,110,100, 32,114, 101,102, 61, 61, 39, 38, 39, 32, 97,110,100, 32,102, 46, 99, 111,110,115,116,126, 61, 39, 99,111,110,115,116, 39, 32,116, 104,101,110, 10, 32, 32, 79,112,101,114, 97,116,111,114, 40, 100, 44, 39, 38, 39, 46, 46,107, 44, 97, 44, 99, 41, 32, 9, 45, 45, 32, 99,114,101, 97,116,101, 32, 99,111,114,114,101, 115,112,111,100,105,110,103, 32,115,101,116, 32,111,112,101, 114, 97,116,111,114, 10, 32,101,110,100, 10, 32,114,101,116, 117,114,110, 32, 95, 79,112,101,114, 97,116,111,114, 40,102, 41, 10,101,110,100,32 }; tolua_dobuffer(tolua_S,(char*)B,sizeof(B),"tolua embedded: lua/tolua++/src/bin/lua/operator.lua"); lua_settop(tolua_S, top); } /* end of embedded lua code */ { /* begin embedded lua code */ int top = lua_gettop(tolua_S); static unsigned char B[] = { 10, 95,103,108,111, 98, 97,108, 95,116,101,109,112,108, 97, 116,101,115, 32, 61, 32,123,125, 10, 10, 99,108, 97,115,115, 84,101,109,112,108, 97,116,101, 67,108, 97,115,115, 32, 61, 32,123, 10, 10, 9,110, 97,109,101, 32, 61, 32, 39, 39, 44, 10, 9, 98,111,100,121, 32, 61, 32, 39, 39, 44, 10, 9,112, 97,114,101,110,116,115, 32, 61, 32,123,125, 44, 10, 9, 97, 114,103,115, 32, 61, 32,123,125, 44, 32, 45, 45, 32,116,104, 101, 32,116,101,109,112,108, 97,116,101, 32, 97,114,103,117, 109,101,110,116,115, 10,125, 10, 10, 99,108, 97,115,115, 84, 101,109,112,108, 97,116,101, 67,108, 97,115,115, 46, 95, 95, 105,110,100,101,120, 32, 61, 32, 99,108, 97,115,115, 84,101, 109,112,108, 97,116,101, 67,108, 97,115,115, 10, 10, 10,102, 117,110, 99,116,105,111,110, 32, 99,108, 97,115,115, 84,101, 109,112,108, 97,116,101, 67,108, 97,115,115, 58,116,104,114, 111,119, 40,116,121,112,101,115, 44, 32,108,111, 99, 97,108, 95,115, 99,111,112,101, 41, 10, 10, 9, 45, 45,105,102, 32, 116, 97, 98,108,101, 46,103,101,116,110, 40,116,121,112,101, 115, 41, 32,126, 61, 32,116, 97, 98,108,101, 46,103,101,116, 110, 40,115,101,108,102, 46, 97,114,103,115, 41, 32,116,104, 101,110, 10, 9, 45, 45, 9,101,114,114,111,114, 40, 34, 35, 105,110,118, 97,108,105,100, 32,112, 97,114, 97,109,101,116, 101,114, 32, 99,111,117,110,116, 34, 41, 10, 9, 45, 45,101, 110,100, 10, 10, 9, 45, 45, 32,114,101,112,108, 97, 99,101, 10, 9,102,111,114, 32,105, 32, 61, 49, 32, 44, 32,116,121, 112,101,115, 46,110, 32,100,111, 10, 10, 9, 9,108,111, 99, 97,108, 32, 73,108, 32, 61, 32,115,112,108,105,116, 95, 99, 95,116,111,107,101,110,115, 40,116,121,112,101,115, 91,105, 93, 44, 32, 34, 32, 34, 41, 10, 9, 9,105,102, 32,116, 97, 98,108,101, 46,103,101,116,110, 40, 73,108, 41, 32,126, 61, 32,116, 97, 98,108,101, 46,103,101,116,110, 40,115,101,108, 102, 46, 97,114,103,115, 41, 32,116,104,101,110, 10, 9, 9, 9,101,114,114,111,114, 40, 34, 35,105,110,118, 97,108,105, 100, 32,112, 97,114, 97,109,101,116,101,114, 32, 99,111,117, 110,116, 32,102,111,114, 32, 34, 46, 46,116,121,112,101,115, 91,105, 93, 41, 10, 9, 9,101,110,100, 10, 9, 9,108,111, 99, 97,108, 32, 98, 73, 32, 61, 32,115,101,108,102, 46, 98, 111,100,121, 10, 9, 9,108,111, 99, 97,108, 32,112, 73, 32, 61, 32,123,125, 10, 9, 9,102,111,114, 32,106, 32, 61, 32, 49, 44,115,101,108,102, 46, 97,114,103,115, 46,110, 32,100, 111, 10, 9, 9, 9, 45, 45, 84,108, 91,106, 93, 32, 61, 32, 102,105,110,100,116,121,112,101, 40, 84,108, 91,106, 93, 41, 32,111,114, 32, 84,108, 91,106, 93, 10, 9, 9, 9, 98, 73, 32, 61, 32,115,116,114,105,110,103, 46,103,115,117, 98, 40, 98, 73, 44, 32, 34, 40, 91, 94, 95, 37,119, 93, 41, 34, 46, 46,115,101,108,102, 46, 97,114,103,115, 91,106, 93, 46, 46, 34, 40, 91, 94, 95, 37,119, 93, 41, 34, 44, 32, 34, 37, 49, 34, 46, 46, 73,108, 91,106, 93, 46, 46, 34, 37, 50, 34, 41, 10, 9, 9, 9,105,102, 32,115,101,108,102, 46,112, 97,114, 101,110,116,115, 32,116,104,101,110, 10, 9, 9, 9, 9,102, 111,114, 32,105, 61, 49, 44,116, 97, 98,108,101, 46,103,101, 116,110, 40,115,101,108,102, 46,112, 97,114,101,110,116,115, 41, 32,100,111, 10, 9, 9, 9, 9, 9,112, 73, 91,105, 93, 32, 61, 32,115,116,114,105,110,103, 46,103,115,117, 98, 40, 115,101,108,102, 46,112, 97,114,101,110,116,115, 91,105, 93, 44, 32, 34, 40, 91, 94, 95, 37,119, 93, 63, 41, 34, 46, 46, 115,101,108,102, 46, 97,114,103,115, 91,106, 93, 46, 46, 34, 40, 91, 94, 95, 37,119, 93, 63, 41, 34, 44, 32, 34, 37, 49, 34, 46, 46, 73,108, 91,106, 93, 46, 46, 34, 37, 50, 34, 41, 10, 9, 9, 9, 9,101,110,100, 10, 9, 9, 9,101,110,100, 10, 9, 9,101,110,100, 10, 9, 9, 45, 45,108,111, 99, 97, 108, 32, 97,112,112,101,110,100, 32, 61, 32, 34, 60, 34, 46, 46,115,116,114,105,110,103, 46,103,115,117, 98, 40,116,121, 112,101,115, 91,105, 93, 44, 32, 34, 37,115, 43, 34, 44, 32, 34, 44, 34, 41, 46, 46, 34, 62, 34, 10, 9, 9,108,111, 99, 97,108, 32, 97,112,112,101,110,100, 32, 61, 32, 34, 60, 34, 46, 46, 99,111,110, 99, 97,116, 40, 73,108, 44, 32, 49, 44, 32,116, 97, 98,108,101, 46,103,101,116,110, 40, 73,108, 41, 44, 32, 34, 44, 34, 41, 46, 46, 34, 62, 34, 10, 9, 9, 97, 112,112,101,110,100, 32, 61, 32,115,116,114,105,110,103, 46, 103,115,117, 98, 40, 97,112,112,101,110,100, 44, 32, 34, 37, 115, 42, 44, 37,115, 42, 34, 44, 32, 34, 44, 34, 41, 10, 9, 9, 97,112,112,101,110,100, 32, 61, 32,115,116,114,105,110, 103, 46,103,115,117, 98, 40, 97,112,112,101,110,100, 44, 32, 34, 62, 62, 34, 44, 32, 34, 62, 32, 62, 34, 41, 10, 9, 9, 102,111,114, 32,105, 61, 49, 44,116, 97, 98,108,101, 46,103, 101,116,110, 40,112, 73, 41, 32,100,111, 10, 9, 9, 9, 45, 45,112, 73, 91,105, 93, 32, 61, 32,115,116,114,105,110,103, 46,103,115,117, 98, 40,112, 73, 91,105, 93, 44, 32, 34, 62, 62, 34, 44, 32, 34, 62, 32, 62, 34, 41, 10, 9, 9, 9,112, 73, 91,105, 93, 32, 61, 32,114,101,115,111,108,118,101, 95, 116,101,109,112,108, 97,116,101, 95,116,121,112,101,115, 40, 112, 73, 91,105, 93, 41, 10, 9, 9,101,110,100, 10, 9, 9, 98, 73, 32, 61, 32,115,116,114,105,110,103, 46,103,115,117, 98, 40, 98, 73, 44, 32, 34, 62, 62, 34, 44, 32, 34, 62, 32, 62, 34, 41, 10, 9, 9,108,111, 99, 97,108, 32,110, 32, 61, 32,115,101,108,102, 46,110, 97,109,101, 10, 9, 9,105,102, 32,108,111, 99, 97,108, 95,115, 99,111,112,101, 32,116,104, 101,110, 10, 9, 9, 9,110, 32, 61, 32,115,101,108,102, 46, 108,111, 99, 97,108, 95,110, 97,109,101, 10, 9, 9,101,110, 100, 10, 10, 9, 9, 67,108, 97,115,115, 40,110, 46, 46, 97, 112,112,101,110,100, 44, 32,112, 73, 44, 32, 98, 73, 41, 10, 9,101,110,100, 10,101,110,100, 10, 10, 10,102,117,110, 99, 116,105,111,110, 32, 84,101,109,112,108, 97,116,101, 67,108, 97,115,115, 40,110, 97,109,101, 44, 32,112, 97,114,101,110, 116,115, 44, 32, 98,111,100,121, 44, 32,112, 97,114, 97,109, 101,116,101,114,115, 41, 10, 10, 9,108,111, 99, 97,108, 32, 111, 32, 61, 32,123, 10, 9, 10, 9, 9,112, 97,114,101,110, 116,115, 32, 61, 32,112, 97,114,101,110,116,115, 44, 10, 9, 9, 98,111,100,121, 32, 61, 32, 98,111,100,121, 44, 10, 9, 9, 97,114,103,115, 32, 61, 32,112, 97,114, 97,109,101,116, 101,114,115, 44, 10, 9,125, 10, 9, 10, 9,108,111, 99, 97, 108, 32,111,110, 97,109,101, 32, 61, 32,115,116,114,105,110, 103, 46,103,115,117, 98, 40,110, 97,109,101, 44, 32, 34, 64, 46, 42, 36, 34, 44, 32, 34, 34, 41, 10, 9,111,110, 97,109, 101, 32, 61, 32,103,101,116,110, 97,109,101,115,112, 97, 99, 101, 40, 99,108, 97,115,115, 67,111,110,116, 97,105,110,101, 114, 46, 99,117,114,114, 41, 46, 46,111,110, 97,109,101, 10, 9,111, 46,110, 97,109,101, 32, 61, 32,111,110, 97,109,101, 10, 10, 9,111, 46,108,111, 99, 97,108, 95,110, 97,109,101, 32, 61, 32,110, 97,109,101, 10, 9, 10, 9,115,101,116,109, 101,116, 97,116, 97, 98,108,101, 40,111, 44, 32, 99,108, 97, 115,115, 84,101,109,112,108, 97,116,101, 67,108, 97,115,115, 41, 10, 10, 9,105,102, 32, 95,103,108,111, 98, 97,108, 95, 116,101,109,112,108, 97,116,101,115, 91,111,110, 97,109,101, 93, 32,116,104,101,110, 10, 9, 9,119, 97,114,110,105,110, 103, 40, 34, 68,117,112,108,105, 99, 97,116,101, 32,100,101, 99,108, 97,114, 97,116,105,111,110, 32,111,102, 32,116,101, 109,112,108, 97,116,101, 32, 34, 46, 46,111,110, 97,109,101, 41, 10, 9,101,108,115,101, 10, 9, 9, 95,103,108,111, 98, 97,108, 95,116,101,109,112,108, 97,116,101,115, 91,111,110, 97,109,101, 93, 32, 61, 32,111, 10, 9,101,110,100, 10, 10, 9,114,101,116,117,114,110, 32,111, 10,101,110,100,32 }; tolua_dobuffer(tolua_S,(char*)B,sizeof(B),"tolua embedded: lua/tolua++/src/bin/lua/template_class.lua"); lua_settop(tolua_S, top); } /* end of embedded lua code */ { /* begin embedded lua code */ int top = lua_gettop(tolua_S); static unsigned char B[] = { 45, 45, 32,116,111,108,117, 97, 58, 32, 99,108, 97,115,115, 32, 99,108, 97,115,115, 10, 45, 45, 32, 87,114,105,116,116, 101,110, 32, 98,121, 32, 87, 97,108,100,101,109, 97,114, 32, 67,101,108,101,115, 10, 45, 45, 32, 84,101, 67, 71,114, 97, 102, 47, 80, 85, 67, 45, 82,105,111, 10, 45, 45, 32, 74,117, 108, 32, 49, 57, 57, 56, 10, 45, 45, 32, 36, 73,100, 58, 32, 36, 10, 10, 45, 45, 32, 84,104,105,115, 32, 99,111,100,101, 32,105,115, 32,102,114,101,101, 32,115,111,102,116,119, 97, 114,101, 59, 32,121,111,117, 32, 99, 97,110, 32,114,101,100, 105,115,116,114,105, 98,117,116,101, 32,105,116, 32, 97,110, 100, 47,111,114, 32,109,111,100,105,102,121, 32,105,116, 46, 10, 45, 45, 32, 84,104,101, 32,115,111,102,116,119, 97,114, 101, 32,112,114,111,118,105,100,101,100, 32,104,101,114,101, 117,110,100,101,114, 32,105,115, 32,111,110, 32, 97,110, 32, 34, 97,115, 32,105,115, 34, 32, 98, 97,115,105,115, 44, 32, 97,110,100, 10, 45, 45, 32,116,104,101, 32, 97,117,116,104, 111,114, 32,104, 97,115, 32,110,111, 32,111, 98,108,105,103, 97,116,105,111,110, 32,116,111, 32,112,114,111,118,105,100, 101, 32,109, 97,105,110,116,101,110, 97,110, 99,101, 44, 32, 115,117,112,112,111,114,116, 44, 32,117,112,100, 97,116,101, 115, 44, 10, 45, 45, 32,101,110,104, 97,110, 99,101,109,101, 110,116,115, 44, 32,111,114, 32,109,111,100,105,102,105, 99, 97,116,105,111,110,115, 46, 10, 10, 10, 45, 45, 32, 67,108, 97,115,115, 32, 99,108, 97,115,115, 10, 45, 45, 32, 82,101, 112,114,101,115,101,110,116,115, 32, 97, 32, 99,108, 97,115, 115, 32,100,101,102,105,110,105,116,105,111,110, 46, 10, 45, 45, 32, 83,116,111,114,101,115, 32,116,104,101, 32,102,111, 108,108,111,119,105,110,103, 32,102,105,101,108,100,115, 58, 10, 45, 45, 32, 32, 32, 32,110, 97,109,101, 32, 61, 32, 99, 108, 97,115,115, 32,110, 97,109,101, 10, 45, 45, 32, 32, 32, 32, 98, 97,115,101, 32, 61, 32, 99,108, 97,115,115, 32, 98, 97,115,101, 44, 32,105,102, 32, 97,110,121, 32, 40,111,110, 108,121, 32,115,105,110,103,108,101, 32,105,110,104,101,114, 105,116, 97,110, 99,101, 32,105,115, 32,115,117,112,112,111, 114,116,101,100, 41, 10, 45, 45, 32, 32, 32, 32,123,105,125, 32, 32, 61, 32,108,105,115,116, 32,111,102, 32,109,101,109, 98,101,114,115, 10, 99,108, 97,115,115, 67,108, 97,115,115, 32, 61, 32,123, 10, 32, 99,108, 97,115,115,116,121,112,101, 32, 61, 32, 39, 99,108, 97,115,115, 39, 44, 10, 32,110, 97, 109,101, 32, 61, 32, 39, 39, 44, 10, 32, 98, 97,115,101, 32, 61, 32, 39, 39, 44, 10, 32,116,121,112,101, 32, 61, 32, 39, 39, 44, 10, 32, 98,116,121,112,101, 32, 61, 32, 39, 39, 44, 10, 32, 99,116,121,112,101, 32, 61, 32, 39, 39, 44, 10,125, 10, 99,108, 97,115,115, 67,108, 97,115,115, 46, 95, 95,105, 110,100,101,120, 32, 61, 32, 99,108, 97,115,115, 67,108, 97, 115,115, 10,115,101,116,109,101,116, 97,116, 97, 98,108,101, 40, 99,108, 97,115,115, 67,108, 97,115,115, 44, 99,108, 97, 115,115, 67,111,110,116, 97,105,110,101,114, 41, 10, 10, 10, 45, 45, 32,114,101,103,105,115,116,101,114, 32, 99,108, 97, 115,115, 10,102,117,110, 99,116,105,111,110, 32, 99,108, 97, 115,115, 67,108, 97,115,115, 58,114,101,103,105,115,116,101, 114, 32, 40,112,114,101, 41, 10, 10, 9,105,102, 32,110,111, 116, 32,115,101,108,102, 58, 99,104,101, 99,107, 95,112,117, 98,108,105, 99, 95, 97, 99, 99,101,115,115, 40, 41, 32,116, 104,101,110, 10, 9, 9,114,101,116,117,114,110, 10, 9,101, 110,100, 10, 10, 32,112,114,101, 32, 61, 32,112,114,101, 32, 111,114, 32, 39, 39, 10, 32,112,117,115,104, 40,115,101,108, 102, 41, 10, 9,105,102, 32, 95, 99,111,108,108,101, 99,116, 91,115,101,108,102, 46,116,121,112,101, 93, 32,116,104,101, 110, 10, 9, 9,111,117,116,112,117,116, 40,112,114,101, 44, 39, 35,105,102,100,101,102, 32, 95, 95, 99,112,108,117,115, 112,108,117,115, 92,110, 39, 41, 10, 32, 32,111,117,116,112, 117,116, 40,112,114,101, 46, 46, 39,116,111,108,117, 97, 95, 99, 99,108, 97,115,115, 40,116,111,108,117, 97, 95, 83, 44, 34, 39, 46, 46,115,101,108,102, 46,108,110, 97,109,101, 46, 46, 39, 34, 44, 34, 39, 46, 46,115,101,108,102, 46,116,121, 112,101, 46, 46, 39, 34, 44, 34, 39, 46, 46,115,101,108,102, 46, 98,116,121,112,101, 46, 46, 39, 34, 44, 39, 46, 46, 95, 99,111,108,108,101, 99,116, 91,115,101,108,102, 46,116,121, 112,101, 93, 46, 46, 39, 41, 59, 39, 41, 10, 9, 9,111,117, 116,112,117,116, 40,112,114,101, 44, 39, 35,101,108,115,101, 92,110, 39, 41, 10, 32, 32,111,117,116,112,117,116, 40,112, 114,101, 46, 46, 39,116,111,108,117, 97, 95, 99, 99,108, 97, 115,115, 40,116,111,108,117, 97, 95, 83, 44, 34, 39, 46, 46, 115,101,108,102, 46,108,110, 97,109,101, 46, 46, 39, 34, 44, 34, 39, 46, 46,115,101,108,102, 46,116,121,112,101, 46, 46, 39, 34, 44, 34, 39, 46, 46,115,101,108,102, 46, 98,116,121, 112,101, 46, 46, 39, 34, 44, 78, 85, 76, 76, 41, 59, 39, 41, 10, 9, 9,111,117,116,112,117,116, 40,112,114,101, 44, 39, 35,101,110,100,105,102, 92,110, 39, 41, 10, 9,101,108,115, 101, 10, 32, 32,111,117,116,112,117,116, 40,112,114,101, 46, 46, 39,116,111,108,117, 97, 95, 99, 99,108, 97,115,115, 40, 116,111,108,117, 97, 95, 83, 44, 34, 39, 46, 46,115,101,108, 102, 46,108,110, 97,109,101, 46, 46, 39, 34, 44, 34, 39, 46, 46,115,101,108,102, 46,116,121,112,101, 46, 46, 39, 34, 44, 34, 39, 46, 46,115,101,108,102, 46, 98,116,121,112,101, 46, 46, 39, 34, 44, 78, 85, 76, 76, 41, 59, 39, 41, 10, 9,101, 110,100, 10, 9,105,102, 32,115,101,108,102, 46,101,120,116, 114, 97, 95, 98, 97,115,101,115, 32,116,104,101,110, 10, 9, 9,102,111,114, 32,107, 44, 98, 97,115,101, 32,105,110, 32, 105,112, 97,105,114,115, 40,115,101,108,102, 46,101,120,116, 114, 97, 95, 98, 97,115,101,115, 41, 32,100,111, 10, 9, 9, 9, 45, 45, 32,110,111,116, 32,110,111,119, 10, 32, 32, 32, 45, 45,111,117,116,112,117,116, 40,112,114,101, 46, 46, 39, 32,116,111,108,117, 97, 95, 97,100,100, 98, 97,115,101, 40, 116,111,108,117, 97, 95, 83, 44, 32, 34, 39, 46, 46,115,101, 108,102, 46,116,121,112,101, 46, 46, 39, 34, 44, 32, 34, 39, 46, 46, 98, 97,115,101, 46, 46, 39, 34, 41, 59, 39, 41, 10, 9, 9,101,110,100, 10, 9,101,110,100, 10, 32,111,117,116, 112,117,116, 40,112,114,101, 46, 46, 39,116,111,108,117, 97, 95, 98,101,103,105,110,109,111,100,117,108,101, 40,116,111, 108,117, 97, 95, 83, 44, 34, 39, 46, 46,115,101,108,102, 46, 108,110, 97,109,101, 46, 46, 39, 34, 41, 59, 39, 41, 10, 32, 108,111, 99, 97,108, 32,105, 61, 49, 10, 32,119,104,105,108, 101, 32,115,101,108,102, 91,105, 93, 32,100,111, 10, 32, 32, 115,101,108,102, 91,105, 93, 58,114,101,103,105,115,116,101, 114, 40,112,114,101, 46, 46, 39, 32, 39, 41, 10, 32, 32,105, 32, 61, 32,105, 43, 49, 10, 32,101,110,100, 10, 32,111,117, 116,112,117,116, 40,112,114,101, 46, 46, 39,116,111,108,117, 97, 95,101,110,100,109,111,100,117,108,101, 40,116,111,108, 117, 97, 95, 83, 41, 59, 39, 41, 10, 9,112,111,112, 40, 41, 10,101,110,100, 10, 10, 45, 45, 32,114,101,116,117,114,110, 32, 99,111,108,108,101, 99,116,105,111,110, 32,114,101,113, 117,105,114,101,109,101,110,116, 10,102,117,110, 99,116,105, 111,110, 32, 99,108, 97,115,115, 67,108, 97,115,115, 58,114, 101,113,117,105,114,101, 99,111,108,108,101, 99,116,105,111, 110, 32, 40,116, 41, 10, 9,105,102, 32,115,101,108,102, 46, 102,108, 97,103,115, 46,112,114,111,116,101, 99,116,101,100, 95,100,101,115,116,114,117, 99,116,111,114, 32,111,114, 32, 40,110,111,116, 32,115,101,108,102, 58, 99,104,101, 99,107, 95,112,117, 98,108,105, 99, 95, 97, 99, 99,101,115,115, 40, 41, 41, 32,116,104,101,110, 10, 9, 9,114,101,116,117,114, 110, 32,102, 97,108,115,101, 10, 9,101,110,100, 10, 32,112, 117,115,104, 40,115,101,108,102, 41, 10, 9,108,111, 99, 97, 108, 32,114, 32, 61, 32,102, 97,108,115,101, 10, 32,108,111, 99, 97,108, 32,105, 61, 49, 10, 32,119,104,105,108,101, 32, 115,101,108,102, 91,105, 93, 32,100,111, 10, 32, 32,114, 32, 61, 32,115,101,108,102, 91,105, 93, 58,114,101,113,117,105, 114,101, 99,111,108,108,101, 99,116,105,111,110, 40,116, 41, 32,111,114, 32,114, 10, 32, 32,105, 32, 61, 32,105, 43, 49, 10, 32,101,110,100, 10, 9,112,111,112, 40, 41, 10, 9, 45, 45, 32,111,110,108,121, 32, 99,108, 97,115,115, 32,116,104, 97,116, 32,101,120,112,111,114,116,115, 32,100,101,115,116, 114,117, 99,116,111,114, 32, 99, 97,110, 32, 98,101, 32, 97, 112,112,114,111,112,114,105, 97,116,101,108,121, 32, 99,111, 108,108,101, 99,116,101,100, 10, 9, 45, 45, 32, 99,108, 97, 115,115,101,115, 32,116,104, 97,116, 32,101,120,112,111,114, 116, 32, 99,111,110,115,116,114,117, 99,116,111,114,115, 32, 110,101,101,100, 32,116,111, 32,104, 97,118,101, 32, 97, 32, 99,111,108,108,101, 99,116,111,114, 32, 40,111,118,101,114, 114,105,100,101,100, 32, 98,121, 32, 45, 68, 32,102,108, 97, 103, 32,111,110, 32, 99,111,109,109, 97,110,100, 32,108,105, 110,101, 41, 10, 9,105,102, 32,115,101,108,102, 46, 95,100, 101,108,101,116,101, 32,111,114, 32, 40, 40,110,111,116, 32, 102,108, 97,103,115, 91, 39, 68, 39, 93, 41, 32, 97,110,100, 32,115,101,108,102, 46, 95,110,101,119, 41, 32,116,104,101, 110, 10, 9, 9, 45, 45,116, 91,115,101,108,102, 46,116,121, 112,101, 93, 32, 61, 32, 34,116,111,108,117, 97, 95, 99,111, 108,108,101, 99,116, 95, 34, 32, 46, 46, 32,103,115,117, 98, 40,115,101,108,102, 46,116,121,112,101, 44, 34, 58, 58, 34, 44, 34, 95, 34, 41, 10, 9, 9,116, 91,115,101,108,102, 46, 116,121,112,101, 93, 32, 61, 32, 34,116,111,108,117, 97, 95, 99,111,108,108,101, 99,116, 95, 34, 32, 46, 46, 32, 99,108, 101, 97,110, 95,116,101,109,112,108, 97,116,101, 40,115,101, 108,102, 46,116,121,112,101, 41, 10, 9, 9,114, 32, 61, 32, 116,114,117,101, 10, 9,101,110,100, 10, 32,114,101,116,117, 114,110, 32,114, 10,101,110,100, 10, 10, 45, 45, 32,111,117, 116,112,117,116, 32,116, 97,103,115, 10,102,117,110, 99,116, 105,111,110, 32, 99,108, 97,115,115, 67,108, 97,115,115, 58, 100,101, 99,108,116,121,112,101, 32, 40, 41, 10, 32,112,117, 115,104, 40,115,101,108,102, 41, 10, 9,115,101,108,102, 46, 116,121,112,101, 32, 61, 32,114,101,103,116,121,112,101, 40, 115,101,108,102, 46,111,114,105,103,105,110, 97,108, 95,110, 97,109,101, 32,111,114, 32,115,101,108,102, 46,110, 97,109, 101, 41, 10, 9,115,101,108,102, 46, 98,116,121,112,101, 32, 61, 32,116,121,112,101,118, 97,114, 40,115,101,108,102, 46, 98, 97,115,101, 41, 10, 9,115,101,108,102, 46, 99,116,121, 112,101, 32, 61, 32, 39, 99,111,110,115,116, 32, 39, 46, 46, 115,101,108,102, 46,116,121,112,101, 10, 9,105,102, 32,115, 101,108,102, 46,101,120,116,114, 97, 95, 98, 97,115,101,115, 32,116,104,101,110, 10, 9, 9,102,111,114, 32,105, 61, 49, 44,116, 97, 98,108,101, 46,103,101,116,110, 40,115,101,108, 102, 46,101,120,116,114, 97, 95, 98, 97,115,101,115, 41, 32, 100,111, 10, 9, 9, 9,115,101,108,102, 46,101,120,116,114, 97, 95, 98, 97,115,101,115, 91,105, 93, 32, 61, 32,116,121, 112,101,118, 97,114, 40,115,101,108,102, 46,101,120,116,114, 97, 95, 98, 97,115,101,115, 91,105, 93, 41, 10, 9, 9,101, 110,100, 10, 9,101,110,100, 10, 32,108,111, 99, 97,108, 32, 105, 61, 49, 10, 32,119,104,105,108,101, 32,115,101,108,102, 91,105, 93, 32,100,111, 10, 32, 32,115,101,108,102, 91,105, 93, 58,100,101, 99,108,116,121,112,101, 40, 41, 10, 32, 32, 105, 32, 61, 32,105, 43, 49, 10, 32,101,110,100, 10, 9,112, 111,112, 40, 41, 10,101,110,100, 10, 10, 10, 45, 45, 32, 80, 114,105,110,116, 32,109,101,116,104,111,100, 10,102,117,110, 99,116,105,111,110, 32, 99,108, 97,115,115, 67,108, 97,115, 115, 58,112,114,105,110,116, 32, 40,105,100,101,110,116, 44, 99,108,111,115,101, 41, 10, 32,112,114,105,110,116, 40,105, 100,101,110,116, 46, 46, 34, 67,108, 97,115,115,123, 34, 41, 10, 32,112,114,105,110,116, 40,105,100,101,110,116, 46, 46, 34, 32,110, 97,109,101, 32, 61, 32, 39, 34, 46, 46,115,101, 108,102, 46,110, 97,109,101, 46, 46, 34, 39, 44, 34, 41, 10, 32,112,114,105,110,116, 40,105,100,101,110,116, 46, 46, 34, 32, 98, 97,115,101, 32, 61, 32, 39, 34, 46, 46,115,101,108, 102, 46, 98, 97,115,101, 46, 46, 34, 39, 59, 34, 41, 10, 32, 112,114,105,110,116, 40,105,100,101,110,116, 46, 46, 34, 32, 108,110, 97,109,101, 32, 61, 32, 39, 34, 46, 46,115,101,108, 102, 46,108,110, 97,109,101, 46, 46, 34, 39, 44, 34, 41, 10, 32,112,114,105,110,116, 40,105,100,101,110,116, 46, 46, 34, 32,116,121,112,101, 32, 61, 32, 39, 34, 46, 46,115,101,108, 102, 46,116,121,112,101, 46, 46, 34, 39, 44, 34, 41, 10, 32, 112,114,105,110,116, 40,105,100,101,110,116, 46, 46, 34, 32, 98,116,121,112,101, 32, 61, 32, 39, 34, 46, 46,115,101,108, 102, 46, 98,116,121,112,101, 46, 46, 34, 39, 44, 34, 41, 10, 32,112,114,105,110,116, 40,105,100,101,110,116, 46, 46, 34, 32, 99,116,121,112,101, 32, 61, 32, 39, 34, 46, 46,115,101, 108,102, 46, 99,116,121,112,101, 46, 46, 34, 39, 44, 34, 41, 10, 32,108,111, 99, 97,108, 32,105, 61, 49, 10, 32,119,104, 105,108,101, 32,115,101,108,102, 91,105, 93, 32,100,111, 10, 32, 32,115,101,108,102, 91,105, 93, 58,112,114,105,110,116, 40,105,100,101,110,116, 46, 46, 34, 32, 34, 44, 34, 44, 34, 41, 10, 32, 32,105, 32, 61, 32,105, 43, 49, 10, 32,101,110, 100, 10, 32,112,114,105,110,116, 40,105,100,101,110,116, 46, 46, 34,125, 34, 46, 46, 99,108,111,115,101, 41, 10,101,110, 100, 10, 10,102,117,110, 99,116,105,111,110, 32, 99,108, 97, 115,115, 67,108, 97,115,115, 58,115,101,116, 95,112,114,111, 116,101, 99,116,101,100, 95,100,101,115,116,114,117, 99,116, 111,114, 40,112, 41, 10, 9,115,101,108,102, 46,102,108, 97, 103,115, 46,112,114,111,116,101, 99,116,101,100, 95,100,101, 115,116,114,117, 99,116,111,114, 32, 61, 32,115,101,108,102, 46,102,108, 97,103,115, 46,112,114,111,116,101, 99,116,101, 100, 95,100,101,115,116,114,117, 99,116,111,114, 32,111,114, 32,112, 10,101,110,100, 10, 10, 45, 45, 32, 73,110,116,101, 114,110, 97,108, 32, 99,111,110,115,116,114,117, 99,116,111, 114, 10,102,117,110, 99,116,105,111,110, 32, 95, 67,108, 97, 115,115, 32, 40,116, 41, 10, 32,115,101,116,109,101,116, 97, 116, 97, 98,108,101, 40,116, 44, 99,108, 97,115,115, 67,108, 97,115,115, 41, 10, 32,116, 58, 98,117,105,108,100,110, 97, 109,101,115, 40, 41, 10, 32, 97,112,112,101,110,100, 40,116, 41, 10, 32,114,101,116,117,114,110, 32,116, 10,101,110,100, 10, 10, 45, 45, 32, 67,111,110,115,116,114,117, 99,116,111, 114, 10, 45, 45, 32, 69,120,112,101, 99,116,115, 32,116,104, 101, 32,110, 97,109,101, 44, 32,116,104,101, 32, 98, 97,115, 101, 32, 40, 97,114,114, 97,121, 41, 32, 97,110,100, 32,116, 104,101, 32, 98,111,100,121, 32,111,102, 32,116,104,101, 32, 99,108, 97,115,115, 46, 10,102,117,110, 99,116,105,111,110, 32, 67,108, 97,115,115, 32, 40,110, 44,112, 44, 98, 41, 10, 10, 9,105,102, 32,116, 97, 98,108,101, 46,103,101,116,110, 40,112, 41, 32, 62, 32, 49, 32,116,104,101,110, 10, 9, 9, 98, 32, 61, 32,115,116,114,105,110,103, 46,115,117, 98, 40, 98, 44, 32, 49, 44, 32, 45, 50, 41, 10, 9, 9,102,111,114, 32,105, 61, 50, 44,116, 97, 98,108,101, 46,103,101,116,110, 40,112, 41, 44, 49, 32,100,111, 10, 9, 9, 9, 98, 32, 61, 32, 98, 46, 46, 34, 92,110, 32,116,111,108,117, 97, 95,105, 110,104,101,114,105,116,115, 32, 34, 46, 46,112, 91,105, 93, 46, 46, 34, 32, 95, 95, 34, 46, 46,112, 91,105, 93, 46, 46, 34, 95, 95, 59, 92,110, 34, 10, 9, 9,101,110,100, 10, 9, 9, 98, 32, 61, 32, 98, 46, 46, 34, 92,110,125, 34, 10, 9, 101,110,100, 10, 10, 9, 45, 45, 32, 99,104,101, 99,107, 32, 102,111,114, 32,116,101,109,112,108, 97,116,101, 10, 9, 98, 32, 61, 32,115,116,114,105,110,103, 46,103,115,117, 98, 40, 98, 44, 32, 34, 94,123, 37,115, 42, 84, 69, 77, 80, 76, 65, 84, 69, 95, 66, 73, 78, 68, 34, 44, 32, 34,123, 92,110, 84, 79, 76, 85, 65, 95, 84, 69, 77, 80, 76, 65, 84, 69, 95, 66, 73, 78, 68, 34, 41, 10, 9,108,111, 99, 97,108, 32,116, 44, 95, 44, 84, 44, 73, 32, 61, 32,115,116,114,105,110,103, 46, 102,105,110,100, 40, 98, 44, 32, 39, 94,123, 37,115, 42, 84, 79, 76, 85, 65, 95, 84, 69, 77, 80, 76, 65, 84, 69, 95, 66, 73, 78, 68, 37,115, 42, 37, 40, 43, 37,115, 42, 92, 34, 63, 40, 91, 94, 92, 34, 44, 93, 42, 41, 92, 34, 63, 37,115, 42, 44, 37,115, 42, 40, 91, 94, 37, 41, 93, 42, 41, 37,115, 42, 37, 41, 43, 39, 41, 10, 9,105,102, 32,116, 32,116,104,101, 110, 10, 10, 9, 9, 45, 45, 32,114,101,109,111,118,101, 32, 113,117,111,116,101,115, 10, 9, 9, 73, 32, 61, 32,115,116, 114,105,110,103, 46,103,115,117, 98, 40, 73, 44, 32, 34, 92, 34, 34, 44, 32, 34, 34, 41, 10, 9, 9, 84, 32, 61, 32,115, 116,114,105,110,103, 46,103,115,117, 98, 40, 84, 44, 32, 34, 92, 34, 34, 44, 32, 34, 34, 41, 10, 9, 9, 45, 45, 32,103, 101,116, 32,116,121,112,101, 32,108,105,115,116, 10, 9, 9, 108,111, 99, 97,108, 32,116,121,112,101,115, 32, 61, 32,115, 112,108,105,116, 95, 99, 95,116,111,107,101,110,115, 40, 73, 44, 32, 34, 44, 34, 41, 10, 9, 9, 45, 45, 32,114,101,109, 111,118,101, 32, 84, 69, 77, 80, 76, 65, 84, 69, 95, 66, 73, 78, 68, 32,108,105,110,101, 10, 9, 9,108,111, 99, 97,108, 32, 98,115, 32, 61, 32,115,116,114,105,110,103, 46,103,115, 117, 98, 40, 98, 44, 32, 34, 94,123, 37,115, 42, 84, 79, 76, 85, 65, 95, 84, 69, 77, 80, 76, 65, 84, 69, 95, 66, 73, 78, 68, 91, 94, 92,110, 93, 42, 92,110, 34, 44, 32, 34,123, 92, 110, 34, 41, 10, 9, 9, 9, 10, 9, 9,108,111, 99, 97,108, 32, 84,108, 32, 61, 32,115,112,108,105,116, 40, 84, 44, 32, 34, 32, 34, 41, 10, 9, 9,108,111, 99, 97,108, 32,116, 99, 32, 61, 32, 84,101,109,112,108, 97,116,101, 67,108, 97,115, 115, 40,110, 44, 32,112, 44, 32, 98,115, 44, 32, 84,108, 41, 10, 10, 9, 9, 10, 9, 9,116, 99, 58,116,104,114,111,119, 40,116,121,112,101,115, 44, 32,116,114,117,101, 41, 10, 9, 9, 45, 45,102,111,114, 32,105, 61, 49, 44,116,121,112,101, 115, 46,110, 32,100,111, 10, 9, 9, 45, 45, 9,116, 99, 58, 116,104,114,111,119, 40,115,112,108,105,116, 95, 99, 95,116, 111,107,101,110,115, 40,116,121,112,101,115, 91,105, 93, 44, 32, 34, 32, 34, 41, 44, 32,116,114,117,101, 41, 10, 9, 9, 45, 45,101,110,100, 10, 9, 9,114,101,116,117,114,110, 10, 9,101,110,100, 10, 9, 10, 9,108,111, 99, 97,108, 32,109, 98, 97,115,101, 10, 10, 9,105,102, 32,112, 32,116,104,101, 110, 10, 9, 9,109, 98, 97,115,101, 32, 61, 32,116, 97, 98, 108,101, 46,114,101,109,111,118,101, 40,112, 44, 32, 49, 41, 10, 9, 9,105,102, 32,110,111,116, 32,112, 91, 49, 93, 32, 116,104,101,110, 32,112, 32, 61, 32,110,105,108, 32,101,110, 100, 10, 9,101,110,100, 10, 10, 9,109, 98, 97,115,101, 32, 61, 32,109, 98, 97,115,101, 32, 97,110,100, 32,114,101,115, 111,108,118,101, 95,116,101,109,112,108, 97,116,101, 95,116, 121,112,101,115, 40,109, 98, 97,115,101, 41, 10, 10, 9,108, 111, 99, 97,108, 32, 99, 10, 9,108,111, 99, 97,108, 32,111, 110, 97,109,101, 32, 61, 32,115,116,114,105,110,103, 46,103, 115,117, 98, 40,110, 44, 32, 34, 64, 46, 42, 36, 34, 44, 32, 34, 34, 41, 10, 9,111,110, 97,109,101, 32, 61, 32,103,101, 116,110, 97,109,101,115,112, 97, 99,101, 40, 99,108, 97,115, 115, 67,111,110,116, 97,105,110,101,114, 46, 99,117,114,114, 41, 46, 46,111,110, 97,109,101, 10, 10, 9,105,102, 32, 95, 103,108,111, 98, 97,108, 95, 99,108, 97,115,115,101,115, 91, 111,110, 97,109,101, 93, 32,116,104,101,110, 10, 9, 9, 99, 32, 61, 32, 95,103,108,111, 98, 97,108, 95, 99,108, 97,115, 115,101,115, 91,111,110, 97,109,101, 93, 10, 9, 9,105,102, 32,109, 98, 97,115,101, 32, 97,110,100, 32, 40, 40,110,111, 116, 32, 99, 46, 98, 97,115,101, 41, 32,111,114, 32, 99, 46, 98, 97,115,101, 32, 61, 61, 32, 34, 34, 41, 32,116,104,101, 110, 10, 9, 9, 9, 99, 46, 98, 97,115,101, 32, 61, 32,109, 98, 97,115,101, 10, 9, 9,101,110,100, 10, 9,101,108,115, 101, 10, 9, 9, 99, 32, 61, 32, 95, 67,108, 97,115,115, 40, 95, 67,111,110,116, 97,105,110,101,114,123,110, 97,109,101, 61,110, 44, 32, 98, 97,115,101, 61,109, 98, 97,115,101, 44, 32,101,120,116,114, 97, 95, 98, 97,115,101,115, 61,112,125, 41, 10, 10, 9, 9,108,111, 99, 97,108, 32,102,116, 32, 61, 32,103,101,116,110, 97,109,101,115,112, 97, 99,101, 40, 99, 46,112, 97,114,101,110,116, 41, 46, 46, 99, 46,111,114,105, 103,105,110, 97,108, 95,110, 97,109,101, 10, 9, 9, 97,112, 112,101,110,100, 95,103,108,111, 98, 97,108, 95,116,121,112, 101, 40,102,116, 44, 32, 99, 41, 10, 9,101,110,100, 10, 10, 9,112,117,115,104, 40, 99, 41, 10, 9, 99, 58,112, 97,114, 115,101, 40,115,116,114,115,117, 98, 40, 98, 44, 50, 44,115, 116,114,108,101,110, 40, 98, 41, 45, 49, 41, 41, 32, 45, 45, 32,101,108,105,109,105,110, 97,116,101, 32, 98,114, 97, 99, 101,115, 10, 9,112,111,112, 40, 41, 10,101,110,100,32 }; tolua_dobuffer(tolua_S,(char*)B,sizeof(B),"tolua embedded: lua/tolua++/src/bin/lua/class.lua"); lua_settop(tolua_S, top); } /* end of embedded lua code */ { /* begin embedded lua code */ int top = lua_gettop(tolua_S); static unsigned char B[] = { 45, 45, 32,109, 97,114,107, 32,117,112, 32, 99,111,109,109, 101,110,116,115, 32, 97,110,100, 32,115,116,114,105,110,103, 115, 10, 83, 84, 82, 49, 32, 61, 32, 34, 92, 48, 48, 49, 34, 10, 83, 84, 82, 50, 32, 61, 32, 34, 92, 48, 48, 50, 34, 10, 83, 84, 82, 51, 32, 61, 32, 34, 92, 48, 48, 51, 34, 10, 83, 84, 82, 52, 32, 61, 32, 34, 92, 48, 48, 52, 34, 10, 82, 69, 77, 32, 32, 61, 32, 34, 92, 48, 48, 53, 34, 10, 65, 78, 89, 32, 32, 61, 32, 34, 40, 91, 92, 48, 48, 49, 45, 92, 48, 48, 53, 93, 41, 34, 10, 69, 83, 67, 49, 32, 61, 32, 34, 92, 48, 48, 54, 34, 10, 69, 83, 67, 50, 32, 61, 32, 34, 92, 48, 48, 55, 34, 10, 10, 77, 65, 83, 75, 32, 61, 32,123, 32, 45, 45, 32,116,104,101, 32,115,117, 98,115,116,105,116,117,116,105, 111,110, 32,111,114,100,101,114, 32,105,115, 32,105,109,112, 111,114,116, 97,110,116, 10, 32,123, 69, 83, 67, 49, 44, 32, 34, 92, 92, 39, 34,125, 44, 10, 32,123, 69, 83, 67, 50, 44, 32, 39, 92, 92, 34, 39,125, 44, 10, 32,123, 83, 84, 82, 49, 44, 32, 34, 39, 34,125, 44, 10, 32,123, 83, 84, 82, 50, 44, 32, 39, 34, 39,125, 44, 10, 32,123, 83, 84, 82, 51, 44, 32, 34, 37, 91, 37, 91, 34,125, 44, 10, 32,123, 83, 84, 82, 52, 44, 32, 34, 37, 93, 37, 93, 34,125, 44, 10, 32,123, 82, 69, 77, 32, 44, 32, 34, 37, 45, 37, 45, 34,125, 44, 10,125, 10, 10,102,117,110, 99,116,105,111,110, 32,109, 97,115,107, 32, 40,115, 41, 10, 32,102,111,114, 32,105, 32, 61, 32, 49, 44, 103,101,116,110, 40, 77, 65, 83, 75, 41, 32, 32,100,111, 10, 32, 32,115, 32, 61, 32,103,115,117, 98, 40,115, 44, 77, 65, 83, 75, 91,105, 93, 91, 50, 93, 44, 77, 65, 83, 75, 91,105, 93, 91, 49, 93, 41, 10, 32,101,110,100, 10, 32,114,101,116, 117,114,110, 32,115, 10,101,110,100, 10, 10,102,117,110, 99, 116,105,111,110, 32,117,110,109, 97,115,107, 32, 40,115, 41, 10, 32,102,111,114, 32,105, 32, 61, 32, 49, 44,103,101,116, 110, 40, 77, 65, 83, 75, 41, 32, 32,100,111, 10, 32, 32,115, 32, 61, 32,103,115,117, 98, 40,115, 44, 77, 65, 83, 75, 91, 105, 93, 91, 49, 93, 44, 77, 65, 83, 75, 91,105, 93, 91, 50, 93, 41, 10, 32,101,110,100, 10, 32,114,101,116,117,114,110, 32,115, 10,101,110,100, 10, 10,102,117,110, 99,116,105,111, 110, 32, 99,108,101, 97,110, 32, 40,115, 41, 10, 32, 45, 45, 32, 99,104,101, 99,107, 32,102,111,114, 32, 99,111,109,112, 105,108, 97,116,105,111,110, 32,101,114,114,111,114, 10, 32, 108,111, 99, 97,108, 32, 99,111,100,101, 32, 61, 32, 34,114, 101,116,117,114,110, 32,102,117,110, 99,116,105,111,110, 32, 40, 41, 92,110, 34, 32, 46, 46, 32,115, 32, 46, 46, 32, 34, 92,110, 32,101,110,100, 34, 10, 32,105,102, 32,110,111,116, 32,100,111,115,116,114,105,110,103, 40, 99,111,100,101, 41, 32,116,104,101,110, 10, 32, 32,114,101,116,117,114,110, 32, 110,105,108, 10, 32,101,110,100, 10, 10, 32,105,102, 32,102, 108, 97,103,115, 91, 39, 67, 39, 93, 32,116,104,101,110, 10, 32, 9,114,101,116,117,114,110, 32,115, 10, 32,101,110,100, 10, 10, 32,108,111, 99, 97,108, 32, 83, 32, 61, 32, 34, 34, 32, 45, 45, 32,115, 97,118,101,100, 32,115,116,114,105,110, 103, 10, 10, 32,115, 32, 61, 32,109, 97,115,107, 40,115, 41, 10, 10, 32, 45, 45, 32,114,101,109,111,118,101, 32, 98,108, 97,110,107,115, 32, 97,110,100, 32, 99,111,109,109,101,110, 116,115, 10, 32,119,104,105,108,101, 32, 49, 32,100,111, 10, 32, 32,108,111, 99, 97,108, 32, 98, 44,101, 44,100, 32, 61, 32,115,116,114,102,105,110,100, 40,115, 44, 65, 78, 89, 41, 10, 32, 32,105,102, 32, 98, 32,116,104,101,110, 10, 32, 32, 32, 83, 32, 61, 32, 83, 46, 46,115,116,114,115,117, 98, 40, 115, 44, 49, 44, 98, 45, 49, 41, 10, 32, 32, 32,115, 32, 61, 32,115,116,114,115,117, 98, 40,115, 44, 98, 43, 49, 41, 10, 32, 32, 32,105,102, 32,100, 61, 61, 83, 84, 82, 49, 32,111, 114, 32,100, 61, 61, 83, 84, 82, 50, 32,116,104,101,110, 10, 32, 32, 32, 32,101, 32, 61, 32,115,116,114,102,105,110,100, 40,115, 44,100, 41, 10, 32, 32, 32, 32, 83, 32, 61, 32, 83, 32, 46, 46,100, 46, 46,115,116,114,115,117, 98, 40,115, 44, 49, 44,101, 41, 10, 32, 32, 32, 32,115, 32, 61, 32,115,116, 114,115,117, 98, 40,115, 44,101, 43, 49, 41, 10, 32, 32, 32, 101,108,115,101,105,102, 32,100, 61, 61, 83, 84, 82, 51, 32, 116,104,101,110, 10, 32, 32, 32, 32,101, 32, 61, 32,115,116, 114,102,105,110,100, 40,115, 44, 83, 84, 82, 52, 41, 10, 32, 32, 32, 32, 83, 32, 61, 32, 83, 46, 46,100, 46, 46,115,116, 114,115,117, 98, 40,115, 44, 49, 44,101, 41, 10, 32, 32, 32, 32,115, 32, 61, 32,115,116,114,115,117, 98, 40,115, 44,101, 43, 49, 41, 10, 32, 32, 32,101,108,115,101,105,102, 32,100, 61, 61, 82, 69, 77, 32,116,104,101,110, 10, 32, 32, 32, 32, 115, 32, 61, 32,103,115,117, 98, 40,115, 44, 34, 91, 94, 92, 110, 93, 42, 40, 92,110, 63, 41, 34, 44, 34, 37, 49, 34, 44, 49, 41, 10, 32, 32, 32,101,110,100, 10, 32, 32,101,108,115, 101, 10, 32, 32, 32, 83, 32, 61, 32, 83, 46, 46,115, 10, 32, 32, 32, 98,114,101, 97,107, 10, 32, 32,101,110,100, 10, 32, 101,110,100, 10, 32, 45, 45, 32,101,108,105,109,105,110, 97, 116,101, 32,117,110,101, 99,101,115,115, 97,114,121, 32,115, 112, 97, 99,101,115, 10, 32, 83, 32, 61, 32,103,115,117, 98, 40, 83, 44, 34, 91, 32, 92,116, 93, 43, 34, 44, 34, 32, 34, 41, 10, 32, 83, 32, 61, 32,103,115,117, 98, 40, 83, 44, 34, 91, 32, 92,116, 93, 42, 92,110, 91, 32, 92,116, 93, 42, 34, 44, 34, 92,110, 34, 41, 10, 9, 83, 32, 61, 32,103,115,117, 98, 40, 83, 44, 34, 92,110, 43, 34, 44, 34, 92,110, 34, 41, 10, 32, 83, 32, 61, 32,117,110,109, 97,115,107, 40, 83, 41, 10, 32,114,101,116,117,114,110, 32, 83, 10,101,110,100,32 }; tolua_dobuffer(tolua_S,(char*)B,sizeof(B),"tolua embedded: lua/tolua++/src/bin/lua/clean.lua"); lua_settop(tolua_S, top); } /* end of embedded lua code */ { /* begin embedded lua code */ int top = lua_gettop(tolua_S); static unsigned char B[] = { 45, 45, 32, 71,101,110,101,114, 97,116,101, 32, 98,105,110, 100,105,110,103, 32, 99,111,100,101, 10, 45, 45, 32, 87,114, 105,116,116,101,110, 32, 98,121, 32, 87, 97,108,100,101,109, 97,114, 32, 67,101,108,101,115, 10, 45, 45, 32, 84,101, 67, 71,114, 97,102, 47, 80, 85, 67, 45, 82,105,111, 10, 45, 45, 32, 74,117,108, 32, 49, 57, 57, 56, 10, 45, 45, 32, 76, 97, 115,116, 32,117,112,100, 97,116,101, 58, 32, 65,112,114, 32, 50, 48, 48, 51, 10, 45, 45, 32, 36, 73,100, 58, 32, 36, 10, 10, 10, 45, 45, 32, 84,104,105,115, 32, 99,111,100,101, 32, 105,115, 32,102,114,101,101, 32,115,111,102,116,119, 97,114, 101, 59, 32,121,111,117, 32, 99, 97,110, 32,114,101,100,105, 115,116,114,105, 98,117,116,101, 32,105,116, 32, 97,110,100, 47,111,114, 32,109,111,100,105,102,121, 32,105,116, 46, 10, 45, 45, 32, 84,104,101, 32,115,111,102,116,119, 97,114,101, 32,112,114,111,118,105,100,101,100, 32,104,101,114,101,117, 110,100,101,114, 32,105,115, 32,111,110, 32, 97,110, 32, 34, 97,115, 32,105,115, 34, 32, 98, 97,115,105,115, 44, 32, 97, 110,100, 10, 45, 45, 32,116,104,101, 32, 97,117,116,104,111, 114, 32,104, 97,115, 32,110,111, 32,111, 98,108,105,103, 97, 116,105,111,110, 32,116,111, 32,112,114,111,118,105,100,101, 32,109, 97,105,110,116,101,110, 97,110, 99,101, 44, 32,115, 117,112,112,111,114,116, 44, 32,117,112,100, 97,116,101,115, 44, 10, 45, 45, 32,101,110,104, 97,110, 99,101,109,101,110, 116,115, 44, 32,111,114, 32,109,111,100,105,102,105, 99, 97, 116,105,111,110,115, 46, 10, 10,102,117,110, 99,116,105,111, 110, 32,112, 97,114,115,101, 95,101,120,116,114, 97, 40, 41, 10, 10, 9,102,111,114, 32,107, 44,118, 32,105,110, 32,105, 112, 97,105,114,115, 40, 95,101,120,116,114, 97, 95,112, 97, 114, 97,109,101,116,101,114,115, 32,111,114, 32,123,125, 41, 32,100,111, 10, 9, 9, 10, 9, 9,108,111, 99, 97,108, 32, 98, 44,101, 44,110, 97,109,101, 44,118, 97,108,117,101, 32, 61, 32,115,116,114,105,110,103, 46,102,105,110,100, 40,118, 44, 32, 34, 94, 40, 91, 94, 61, 93, 42, 41, 61, 40, 46, 42, 41, 36, 34, 41, 10, 9, 9,105,102, 32, 98, 32,116,104,101, 110, 10, 9, 9, 9, 95,101,120,116,114, 97, 95,112, 97,114, 97,109,101,116,101,114,115, 91,110, 97,109,101, 93, 32, 61, 32,118, 97,108,117,101, 10, 9, 9,101,108,115,101, 10, 9, 9, 9, 95,101,120,116,114, 97, 95,112, 97,114, 97,109,101, 116,101,114,115, 91,118, 93, 32, 61, 32,116,114,117,101, 10, 9, 9,101,110,100, 10, 9,101,110,100, 10,101,110,100, 10, 10,102,117,110, 99,116,105,111,110, 32,100,111,105,116, 32, 40, 41, 10, 9, 45, 45, 32,100,101,102,105,110,101, 32,112, 97, 99,107, 97,103,101, 32,110, 97,109,101, 44, 32,105,102, 32,110,111,116, 32,112,114,111,118,105,100,101,100, 10, 9, 105,102, 32,110,111,116, 32,102,108, 97,103,115, 46,110, 32, 116,104,101,110, 10, 9, 9,105,102, 32,102,108, 97,103,115, 46,102, 32,116,104,101,110, 10, 9, 9, 9,102,108, 97,103, 115, 46,110, 32, 61, 32,103,115,117, 98, 40,102,108, 97,103, 115, 46,102, 44, 34, 37, 46, 46, 42, 36, 34, 44, 34, 34, 41, 10, 9, 9, 9, 95, 44, 95, 44,102,108, 97,103,115, 46,110, 32, 61, 32,115,116,114,105,110,103, 46,102,105,110,100, 40, 102,108, 97,103,115, 46,110, 44, 32, 34, 40, 91, 94, 47, 92, 92, 93, 42, 41, 36, 34, 41, 10, 9, 9,101,108,115,101, 10, 9, 9, 9,101,114,114,111,114, 40, 34, 35,110,111, 32,112, 97, 99,107, 97,103,101, 32,110, 97,109,101, 32,110,111,114, 32,105,110,112,117,116, 32,102,105,108,101, 32,112,114,111, 118,105,100,101,100, 34, 41, 10, 9, 9,101,110,100, 10, 9, 101,110,100, 10, 10, 9, 45, 45, 32,112, 97,114,115,101, 32, 116, 97, 98,108,101, 32,119,105,116,104, 32,101,120,116,114, 97, 32,112, 97,114, 97,109,116,101,114,115, 10, 9,112, 97, 114,115,101, 95,101,120,116,114, 97, 40, 41, 10, 10, 9, 45, 45, 32,100,111, 32,116,104,105,115, 32, 97,102,116,101,114, 32,115,101,116,116,105,110,103, 32,116,104,101, 32,112, 97, 99,107, 97,103,101, 32,110, 97,109,101, 10, 9,105,102, 32, 102,108, 97,103,115, 91, 39, 76, 39, 93, 32,116,104,101,110, 10, 9, 9,100,111,102,105,108,101, 40,102,108, 97,103,115, 91, 39, 76, 39, 93, 41, 10, 9,101,110,100, 10, 10, 9, 45, 45, 32, 97,100,100, 32, 99,112,112,115,116,114,105,110,103, 10, 9,105,102, 32,110,111,116, 32,102,108, 97,103,115, 91, 39, 83, 39, 93, 32,116,104,101,110, 10, 9, 9, 95, 98, 97, 115,105, 99, 91, 39,115,116,114,105,110,103, 39, 93, 32, 61, 32, 39, 99,112,112,115,116,114,105,110,103, 39, 10, 9, 9, 95, 98, 97,115,105, 99, 91, 39,115,116,100, 58, 58,115,116, 114,105,110,103, 39, 93, 32, 61, 32, 39, 99,112,112,115,116, 114,105,110,103, 39, 10, 9, 9, 95, 98, 97,115,105, 99, 95, 99,116,121,112,101, 46, 99,112,112,115,116,114,105,110,103, 32, 61, 32, 39, 99,111,110,115,116, 32, 99,104, 97,114, 42, 39, 10, 9,101,110,100, 10, 10, 9, 45, 45, 32,112,114,111, 99, 99,101,115,115, 32,112, 97, 99,107, 97,103,101, 10, 9, 108,111, 99, 97,108, 32,112, 32, 32, 61, 32, 80, 97, 99,107, 97,103,101, 40,102,108, 97,103,115, 46,110, 44,102,108, 97, 103,115, 46,102, 41, 10, 10, 9,105,102, 32,102,108, 97,103, 115, 46,112, 32,116,104,101,110, 10, 9, 9,114,101,116,117, 114,110, 32, 32, 32, 32, 32, 32, 32, 32, 45, 45, 32,111,110, 108,121, 32,112, 97,114,115,101, 10, 9,101,110,100, 10, 10, 9,105,102, 32,102,108, 97,103,115, 46,111, 32,116,104,101, 110, 10, 9, 9,108,111, 99, 97,108, 32,115,116, 44,109,115, 103, 32, 61, 32,119,114,105,116,101,116,111, 40,102,108, 97, 103,115, 46,111, 41, 10, 9, 9,105,102, 32,110,111,116, 32, 115,116, 32,116,104,101,110, 10, 9, 9, 9,101,114,114,111, 114, 40, 39, 35, 39, 46, 46,109,115,103, 41, 10, 9, 9,101, 110,100, 10, 9,101,110,100, 10, 10, 9,112, 58,100,101, 99, 108,116,121,112,101, 40, 41, 10, 9,105,102, 32,102,108, 97, 103,115, 46, 80, 32,116,104,101,110, 10, 9, 9,112, 58,112, 114,105,110,116, 40, 41, 10, 9,101,108,115,101, 10, 9, 9, 112, 58,112,114,101, 97,109, 98,108,101, 40, 41, 10, 9, 9, 112, 58,115,117,112, 99,111,100,101, 40, 41, 10, 9, 9,112, 58,114,101,103,105,115,116,101,114, 40, 41, 10, 9, 9,112, 117,115,104, 40,112, 41, 10, 9, 9,112,111,115,116, 95,111, 117,116,112,117,116, 95,104,111,111,107, 40,112, 41, 10, 9, 9,112,111,112, 40, 41, 10, 9,101,110,100, 10, 10, 9,105, 102, 32,102,108, 97,103,115, 46,111, 32,116,104,101,110, 10, 9, 9,119,114,105,116,101,116,111, 40, 41, 10, 9,101,110, 100, 10, 10, 9, 45, 45, 32,119,114,105,116,101, 32,104,101, 97,100,101,114, 32,102,105,108,101, 10, 9,105,102, 32,110, 111,116, 32,102,108, 97,103,115, 46, 80, 32,116,104,101,110, 10, 9, 9,105,102, 32,102,108, 97,103,115, 46, 72, 32,116, 104,101,110, 10, 9, 9, 9,108,111, 99, 97,108, 32,115,116, 44,109,115,103, 32, 61, 32,119,114,105,116,101,116,111, 40, 102,108, 97,103,115, 46, 72, 41, 10, 9, 9, 9,105,102, 32, 110,111,116, 32,115,116, 32,116,104,101,110, 10, 9, 9, 9, 9,101,114,114,111,114, 40, 39, 35, 39, 46, 46,109,115,103, 41, 10, 9, 9, 9,101,110,100, 10, 9, 9, 9,112, 58,104, 101, 97,100,101,114, 40, 41, 10, 9, 9, 9,119,114,105,116, 101,116,111, 40, 41, 10, 9, 9,101,110,100, 10, 9,101,110, 100, 10,101,110,100,32 }; tolua_dobuffer(tolua_S,(char*)B,sizeof(B),"tolua embedded: lua/tolua++/src/bin/lua/doit.lua"); lua_settop(tolua_S, top); } /* end of embedded lua code */ { /* begin embedded lua code */ int top = lua_gettop(tolua_S); static unsigned char B[] = { 10,108,111, 99, 97,108, 32,101,114,114, 44,109,115,103, 32, 61, 32,112, 99, 97,108,108, 40,100,111,105,116, 41, 10,105, 102, 32,110,111,116, 32,101,114,114, 32,116,104,101,110, 10, 32,108,111, 99, 97,108, 32, 95, 44, 95, 44,108, 97, 98,101, 108, 44,109,115,103, 32, 61, 32,115,116,114,102,105,110,100, 40,109,115,103, 44, 34, 40, 46, 45, 58, 46, 45, 58, 37,115, 42, 41, 40, 46, 42, 41, 34, 41, 10, 32,116,111,108,117, 97, 95,101,114,114,111,114, 40,109,115,103, 44,108, 97, 98,101, 108, 41, 10, 32,112,114,105,110,116, 40,100,101, 98,117,103, 46,116,114, 97, 99,101, 98, 97, 99,107, 40, 41, 41, 10,101, 110,100,32 }; tolua_dobuffer(tolua_S,(char*)B,sizeof(B),"tolua: embedded Lua code 23"); lua_settop(tolua_S, top); } /* end of embedded lua code */ tolua_endmodule(tolua_S); return 1; } #if defined(LUA_VERSION_NUM) && LUA_VERSION_NUM >= 501 TOLUA_API int luaopen_tolua (lua_State* tolua_S) { return tolua_tolua_open(tolua_S); }; #endif conky-1.19.6/3rdparty/toluapp/src/bin/toluabind_default.h000066400000000000000000000002711451224556600233760ustar00rootroot00000000000000/* ** Lua binding: tolua ** Generated automatically by tolua++-1.0.8pre2 on Tue Dec 13 01:43:55 2005. */ /* Exported function */ TOLUA_API int tolua_tolua_open (lua_State* tolua_S); conky-1.19.6/3rdparty/toluapp/src/lib/000077500000000000000000000000001451224556600175365ustar00rootroot00000000000000conky-1.19.6/3rdparty/toluapp/src/lib/SCsub000066400000000000000000000005461451224556600205050ustar00rootroot00000000000000Import('env') sources = [ 'tolua_event.c', 'tolua_is.c', 'tolua_map.c', 'tolua_push.c', 'tolua_to.c', ] env.lib_target_static = env.Library('#/lib/'+env['tolua_lib']+'_static', sources) if env['shared']: env.lib_target = env.SharedLibrary('#lib/'+env['tolua_lib'], sources) else: env.lib_target = env.Library('#/lib/'+env['tolua_lib'], sources) conky-1.19.6/3rdparty/toluapp/src/lib/tolua_event.c000066400000000000000000000335571451224556600222440ustar00rootroot00000000000000/* tolua: event functions ** Support code for Lua bindings. ** Written by Waldemar Celes ** TeCGraf/PUC-Rio ** Apr 2003 ** $Id: $ */ /* This code is free software; you can redistribute it and/or modify it. ** The software provided hereunder is on an "as is" basis, and ** the author has no obligation to provide maintenance, support, updates, ** enhancements, or modifications. */ #include #include "tolua++.h" /* Store at ubox * It stores, creating the corresponding table if needed, * the pair key/value in the corresponding ubox table */ static void storeatubox (lua_State* L, int lo) { #ifdef LUA_VERSION_NUM #if LUA_VERSION_NUM > 501 lua_getuservalue(L, lo); #else lua_getfenv(L, lo); #endif if (lua_rawequal(L, -1, TOLUA_NOPEER)) { lua_pop(L, 1); lua_newtable(L); lua_pushvalue(L, -1); #if LUA_VERSION_NUM > 501 lua_setuservalue(L, lo); /* stack: k,v,table */ #else lua_setfenv(L, lo); /* stack: k,v,table */ #endif }; lua_insert(L, -3); lua_settable(L, -3); /* on lua 5.1, we trade the "tolua_peers" lookup for a settable call */ lua_pop(L, 1); #else /* stack: key value (to be stored) */ lua_pushstring(L,"tolua_peers"); lua_rawget(L,LUA_REGISTRYINDEX); /* stack: k v ubox */ lua_pushvalue(L,lo); lua_rawget(L,-2); /* stack: k v ubox ubox[u] */ if (!lua_istable(L,-1)) { lua_pop(L,1); /* stack: k v ubox */ lua_newtable(L); /* stack: k v ubox table */ lua_pushvalue(L,1); lua_pushvalue(L,-2); /* stack: k v ubox table u table */ lua_rawset(L,-4); /* stack: k v ubox ubox[u]=table */ } lua_insert(L,-4); /* put table before k */ lua_pop(L,1); /* pop ubox */ lua_rawset(L,-3); /* store at table */ lua_pop(L,1); /* pop ubox[u] */ #endif } /* Module index function */ static int module_index_event (lua_State* L) { lua_pushstring(L,".get"); lua_rawget(L,-3); if (lua_istable(L,-1)) { lua_pushvalue(L,2); /* key */ lua_rawget(L,-2); if (lua_iscfunction(L,-1)) { lua_call(L,0,1); return 1; } else if (lua_istable(L,-1)) return 1; } /* call old index meta event */ if (lua_getmetatable(L,1)) { lua_pushstring(L,"__index"); lua_rawget(L,-2); lua_pushvalue(L,1); lua_pushvalue(L,2); if (lua_isfunction(L,-1)) { lua_call(L,2,1); return 1; } else if (lua_istable(L,-1)) { lua_gettable(L,-3); return 1; } } lua_pushnil(L); return 1; } /* Module newindex function */ static int module_newindex_event (lua_State* L) { lua_pushstring(L,".set"); lua_rawget(L,-4); if (lua_istable(L,-1)) { lua_pushvalue(L,2); /* key */ lua_rawget(L,-2); if (lua_iscfunction(L,-1)) { lua_pushvalue(L,1); /* only to be compatible with non-static vars */ lua_pushvalue(L,3); /* value */ lua_call(L,2,0); return 0; } } /* call old newindex meta event */ if (lua_getmetatable(L,1) && lua_getmetatable(L,-1)) { lua_pushstring(L,"__newindex"); lua_rawget(L,-2); if (lua_isfunction(L,-1)) { lua_pushvalue(L,1); lua_pushvalue(L,2); lua_pushvalue(L,3); lua_call(L,3,0); } } lua_settop(L,3); lua_rawset(L,-3); return 0; } /* Class index function * If the object is a userdata (ie, an object), it searches the field in * the alternative table stored in the corresponding "ubox" table. */ static int class_index_event (lua_State* L) { int t = lua_type(L,1); if (t == LUA_TUSERDATA) { /* Access alternative table */ #ifdef LUA_VERSION_NUM /* new macro on version 5.1 */ #if LUA_VERSION_NUM > 501 lua_getuservalue(L, 1); #else lua_getfenv(L,1); #endif if (!lua_rawequal(L, -1, TOLUA_NOPEER)) { lua_pushvalue(L, 2); /* key */ lua_gettable(L, -2); /* on lua 5.1, we trade the "tolua_peers" lookup for a gettable call */ if (!lua_isnil(L, -1)) return 1; }; #else lua_pushstring(L,"tolua_peers"); lua_rawget(L,LUA_REGISTRYINDEX); /* stack: obj key ubox */ lua_pushvalue(L,1); lua_rawget(L,-2); /* stack: obj key ubox ubox[u] */ if (lua_istable(L,-1)) { lua_pushvalue(L,2); /* key */ lua_rawget(L,-2); /* stack: obj key ubox ubox[u] value */ if (!lua_isnil(L,-1)) return 1; } #endif lua_settop(L,2); /* stack: obj key */ /* Try metatables */ lua_pushvalue(L,1); /* stack: obj key obj */ while (lua_getmetatable(L,-1)) { /* stack: obj key obj mt */ lua_remove(L,-2); /* stack: obj key mt */ if (lua_isnumber(L,2)) /* check if key is a numeric value */ { /* try operator[] */ lua_pushstring(L,".geti"); lua_rawget(L,-2); /* stack: obj key mt func */ if (lua_isfunction(L,-1)) { lua_pushvalue(L,1); lua_pushvalue(L,2); lua_call(L,2,1); return 1; } } else { lua_pushvalue(L,2); /* stack: obj key mt key */ lua_rawget(L,-2); /* stack: obj key mt value */ if (!lua_isnil(L,-1)) return 1; else lua_pop(L,1); /* try C/C++ variable */ lua_pushstring(L,".get"); lua_rawget(L,-2); /* stack: obj key mt tget */ if (lua_istable(L,-1)) { lua_pushvalue(L,2); lua_rawget(L,-2); /* stack: obj key mt value */ if (lua_iscfunction(L,-1)) { lua_pushvalue(L,1); lua_pushvalue(L,2); lua_call(L,2,1); return 1; } else if (lua_istable(L,-1)) { /* deal with array: create table to be returned and cache it in ubox */ void* u = *((void**)lua_touserdata(L,1)); lua_newtable(L); /* stack: obj key mt value table */ lua_pushstring(L,".self"); lua_pushlightuserdata(L,u); lua_rawset(L,-3); /* store usertype in ".self" */ lua_insert(L,-2); /* stack: obj key mt table value */ lua_setmetatable(L,-2); /* set stored value as metatable */ lua_pushvalue(L,-1); /* stack: obj key met table table */ lua_pushvalue(L,2); /* stack: obj key mt table table key */ lua_insert(L,-2); /* stack: obj key mt table key table */ storeatubox(L,1); /* stack: obj key mt table */ return 1; } } } lua_settop(L,3); } lua_pushnil(L); return 1; } else if (t== LUA_TTABLE) { module_index_event(L); return 1; } lua_pushnil(L); return 1; } /* Newindex function * It first searches for a C/C++ varaible to be set. * Then, it either stores it in the alternative ubox table (in the case it is * an object) or in the own table (that represents the class or module). */ static int class_newindex_event (lua_State* L) { int t = lua_type(L,1); if (t == LUA_TUSERDATA) { /* Try accessing a C/C++ variable to be set */ lua_getmetatable(L,1); while (lua_istable(L,-1)) /* stack: t k v mt */ { if (lua_isnumber(L,2)) /* check if key is a numeric value */ { /* try operator[] */ lua_pushstring(L,".seti"); lua_rawget(L,-2); /* stack: obj key mt func */ if (lua_isfunction(L,-1)) { lua_pushvalue(L,1); lua_pushvalue(L,2); lua_pushvalue(L,3); lua_call(L,3,0); return 0; } } else { lua_pushstring(L,".set"); lua_rawget(L,-2); /* stack: t k v mt tset */ if (lua_istable(L,-1)) { lua_pushvalue(L,2); lua_rawget(L,-2); /* stack: t k v mt tset func */ if (lua_iscfunction(L,-1)) { lua_pushvalue(L,1); lua_pushvalue(L,3); lua_call(L,2,0); return 0; } lua_pop(L,1); /* stack: t k v mt tset */ } lua_pop(L,1); /* stack: t k v mt */ if (!lua_getmetatable(L,-1)) /* stack: t k v mt mt */ lua_pushnil(L); lua_remove(L,-2); /* stack: t k v mt */ } } lua_settop(L,3); /* stack: t k v */ /* then, store as a new field */ storeatubox(L,1); } else if (t== LUA_TTABLE) { module_newindex_event(L); } return 0; } static int class_call_event(lua_State* L) { if (lua_istable(L, 1)) { lua_pushstring(L, ".call"); lua_rawget(L, 1); if (lua_isfunction(L, -1)) { lua_insert(L, 1); lua_call(L, lua_gettop(L)-1, 1); return 1; }; }; tolua_error(L,"Attempt to call a non-callable object.",NULL); return 0; } static int do_operator (lua_State* L, const char* op) { if (lua_isuserdata(L,1)) { /* Try metatables */ lua_pushvalue(L,1); /* stack: op1 op2 */ while (lua_getmetatable(L,-1)) { /* stack: op1 op2 op1 mt */ lua_remove(L,-2); /* stack: op1 op2 mt */ lua_pushstring(L,op); /* stack: op1 op2 mt key */ lua_rawget(L,-2); /* stack: obj key mt func */ if (lua_isfunction(L,-1)) { lua_pushvalue(L,1); lua_pushvalue(L,2); lua_call(L,2,1); return 1; } lua_settop(L,3); } } tolua_error(L,"Attempt to perform operation on an invalid operand",NULL); return 0; } static int class_add_event (lua_State* L) { return do_operator(L,".add"); } static int class_sub_event (lua_State* L) { return do_operator(L,".sub"); } static int class_mul_event (lua_State* L) { return do_operator(L,".mul"); } static int class_div_event (lua_State* L) { return do_operator(L,".div"); } static int class_lt_event (lua_State* L) { return do_operator(L,".lt"); } static int class_le_event (lua_State* L) { return do_operator(L,".le"); } static int class_eq_event (lua_State* L) { /* copying code from do_operator here to return false when no operator is found */ if (lua_isuserdata(L,1)) { /* Try metatables */ lua_pushvalue(L,1); /* stack: op1 op2 */ while (lua_getmetatable(L,-1)) { /* stack: op1 op2 op1 mt */ lua_remove(L,-2); /* stack: op1 op2 mt */ lua_pushstring(L,".eq"); /* stack: op1 op2 mt key */ lua_rawget(L,-2); /* stack: obj key mt func */ if (lua_isfunction(L,-1)) { lua_pushvalue(L,1); lua_pushvalue(L,2); lua_call(L,2,1); return 1; } lua_settop(L,3); } } lua_settop(L, 3); lua_pushboolean(L, 0); return 1; } /* static int class_gc_event (lua_State* L) { void* u = *((void**)lua_touserdata(L,1)); fprintf(stderr, "collecting: looking at %p\n", u); lua_pushstring(L,"tolua_gc"); lua_rawget(L,LUA_REGISTRYINDEX); lua_pushlightuserdata(L,u); lua_rawget(L,-2); if (lua_isfunction(L,-1)) { lua_pushvalue(L,1); lua_call(L,1,0); lua_pushlightuserdata(L,u); lua_pushnil(L); lua_rawset(L,-3); } lua_pop(L,2); return 0; } */ TOLUA_API int class_gc_event (lua_State* L) { if (lua_type(L,1) == LUA_TUSERDATA) { void* u = *((void**)lua_touserdata(L,1)); int top; /*fprintf(stderr, "collecting: looking at %p\n", u);*/ /* lua_pushstring(L,"tolua_gc"); lua_rawget(L,LUA_REGISTRYINDEX); */ lua_pushstring(L,"tolua_gc"); lua_rawget(L,LUA_REGISTRYINDEX); /* gc */ lua_pushlightuserdata(L,u); lua_rawget(L,-2); /* stack: gc umt */ lua_getmetatable(L,1); /* stack: gc umt mt */ /*fprintf(stderr, "checking type\n");*/ top = lua_gettop(L); if (tolua_fast_isa(L,top,top-1, lua_upvalueindex(2))) /* make sure we collect correct type */ { /*fprintf(stderr, "Found type!\n");*/ /* get gc function */ lua_pushliteral(L,".collector"); lua_rawget(L,-2); /* stack: gc umt mt collector */ if (lua_isfunction(L,-1)) { /*fprintf(stderr, "Found .collector!\n");*/ } else { lua_pop(L,1); /*fprintf(stderr, "Using default cleanup\n");*/ lua_pushcfunction(L,tolua_default_collect); } lua_pushvalue(L,1); /* stack: gc umt mt collector u */ lua_call(L,1,0); lua_pushlightuserdata(L,u); /* stack: gc umt mt u */ lua_pushnil(L); /* stack: gc umt mt u nil */ lua_rawset(L,-5); /* stack: gc umt mt */ } lua_pop(L,3); } return 0; } /* Register module events * It expects the metatable on the top of the stack */ TOLUA_API void tolua_moduleevents (lua_State* L) { lua_pushstring(L,"__index"); lua_pushcfunction(L,module_index_event); lua_rawset(L,-3); lua_pushstring(L,"__newindex"); lua_pushcfunction(L,module_newindex_event); lua_rawset(L,-3); } /* Check if the object on the top has a module metatable */ TOLUA_API int tolua_ismodulemetatable (lua_State* L) { int r = 0; if (lua_getmetatable(L,-1)) { lua_pushstring(L,"__index"); lua_rawget(L,-2); r = (lua_tocfunction(L,-1) == module_index_event); lua_pop(L,2); } return r; } /* Register class events * It expects the metatable on the top of the stack */ TOLUA_API void tolua_classevents (lua_State* L) { lua_pushstring(L,"__index"); lua_pushcfunction(L,class_index_event); lua_rawset(L,-3); lua_pushstring(L,"__newindex"); lua_pushcfunction(L,class_newindex_event); lua_rawset(L,-3); lua_pushstring(L,"__add"); lua_pushcfunction(L,class_add_event); lua_rawset(L,-3); lua_pushstring(L,"__sub"); lua_pushcfunction(L,class_sub_event); lua_rawset(L,-3); lua_pushstring(L,"__mul"); lua_pushcfunction(L,class_mul_event); lua_rawset(L,-3); lua_pushstring(L,"__div"); lua_pushcfunction(L,class_div_event); lua_rawset(L,-3); lua_pushstring(L,"__lt"); lua_pushcfunction(L,class_lt_event); lua_rawset(L,-3); lua_pushstring(L,"__le"); lua_pushcfunction(L,class_le_event); lua_rawset(L,-3); lua_pushstring(L,"__eq"); lua_pushcfunction(L,class_eq_event); lua_rawset(L,-3); lua_pushstring(L,"__call"); lua_pushcfunction(L,class_call_event); lua_rawset(L,-3); lua_pushstring(L,"__gc"); lua_pushstring(L, "tolua_gc_event"); lua_rawget(L, LUA_REGISTRYINDEX); /*lua_pushcfunction(L,class_gc_event);*/ lua_rawset(L,-3); } conky-1.19.6/3rdparty/toluapp/src/lib/tolua_event.h000066400000000000000000000011431451224556600222330ustar00rootroot00000000000000/* tolua: event functions ** Support code for Lua bindings. ** Written by Waldemar Celes ** TeCGraf/PUC-Rio ** Apr 2003 ** $Id: $ */ /* This code is free software; you can redistribute it and/or modify it. ** The software provided hereunder is on an "as is" basis, and ** the author has no obligation to provide maintenance, support, updates, ** enhancements, or modifications. */ #ifndef TOLUA_EVENT_H #define TOLUA_EVENT_H #include "tolua++.h" TOLUA_API void tolua_moduleevents (lua_State* L); TOLUA_API int tolua_ismodulemetatable (lua_State* L); TOLUA_API void tolua_classevents (lua_State* L); #endif conky-1.19.6/3rdparty/toluapp/src/lib/tolua_is.c000066400000000000000000000302301451224556600215170ustar00rootroot00000000000000/* tolua: functions to check types. ** Support code for Lua bindings. ** Written by Waldemar Celes ** TeCGraf/PUC-Rio ** Apr 2003 ** $Id: $ */ /* This code is free software; you can redistribute it and/or modify it. ** The software provided hereunder is on an "as is" basis, and ** the author has no obligation to provide maintenance, support, updates, ** enhancements, or modifications. */ #include "tolua++.h" #include "lauxlib.h" #include #include /* a fast check if a is b, without parameter validation i.e. if b is equal to a or a superclass of a. */ TOLUA_API int tolua_fast_isa(lua_State *L, int mt_indexa, int mt_indexb, int super_index) { int result; if (lua_rawequal(L, mt_indexa, mt_indexb)) result = 1; else { if (super_index) { lua_pushvalue(L, super_index); } else { lua_pushliteral(L, "tolua_super"); lua_rawget(L, LUA_REGISTRYINDEX); /* stack: super */ } lua_pushvalue(L, mt_indexa); /* stack: super mta */ lua_rawget(L, -2); /* stack: super super[mta] */ lua_pushvalue(L, mt_indexb); /* stack: super super[mta] mtb */ lua_rawget(L, LUA_REGISTRYINDEX); /* stack: super super[mta] typenameB */ lua_rawget(L, -2); /* stack: super super[mta] bool */ result = lua_toboolean(L, -1); lua_pop(L, 3); } return result; } /* Push and returns the corresponding object typename */ TOLUA_API const char *tolua_typename(lua_State *L, int lo) { int tag = lua_type(L, lo); if (tag == LUA_TNONE) lua_pushstring(L, "[no object]"); else if (tag != LUA_TUSERDATA && tag != LUA_TTABLE) lua_pushstring(L, lua_typename(L, tag)); else if (tag == LUA_TUSERDATA) { if (!lua_getmetatable(L, lo)) lua_pushstring(L, lua_typename(L, tag)); else { lua_rawget(L, LUA_REGISTRYINDEX); if (!lua_isstring(L, -1)) { lua_pop(L, 1); lua_pushstring(L, "[undefined]"); } } } else /* is table */ { lua_pushvalue(L, lo); lua_rawget(L, LUA_REGISTRYINDEX); if (!lua_isstring(L, -1)) { lua_pop(L, 1); lua_pushstring(L, "table"); } else { lua_pushstring(L, "class "); lua_insert(L, -2); lua_concat(L, 2); } } return lua_tostring(L, -1); } TOLUA_API void tolua_error(lua_State *L, const char *msg, tolua_Error *err) { if (msg[0] == '#') { const char *expected = err->type; const char *provided = tolua_typename(L, err->index); if (msg[1] == 'f') { int narg = err->index; if (err->array) luaL_error(L, "%s\n argument #%d is array of '%s'; array of '%s' expected.\n", msg + 2, narg, provided, expected); else luaL_error(L, "%s\n argument #%d is '%s'; '%s' expected.\n", msg + 2, narg, provided, expected); } else if (msg[1] == 'v') { if (err->array) luaL_error(L, "%s\n value is array of '%s'; array of '%s' expected.\n", msg + 2, provided, expected); else luaL_error(L, "%s\n value is '%s'; '%s' expected.\n", msg + 2, provided, expected); } } else luaL_error(L, msg); } /* the equivalent of lua_is* for usertable */ static int lua_isusertable(lua_State *L, int lo, const char *type) { int r = 0; if (lo < 0) lo = lua_gettop(L) + lo + 1; lua_pushvalue(L, lo); lua_rawget(L, LUA_REGISTRYINDEX); /* get registry[t] */ if (lua_isstring(L, -1)) { r = strcmp(lua_tostring(L, -1), type) == 0; if (!r) { /* try const */ lua_pushstring(L, "const "); lua_insert(L, -2); lua_concat(L, 2); r = lua_isstring(L, -1) && strcmp(lua_tostring(L, -1), type) == 0; } } lua_pop(L, 1); return r; } int push_table_instance(lua_State *L, int lo) { if (lua_istable(L, lo)) { lua_pushstring(L, ".c_instance"); lua_gettable(L, lo); if (lua_isuserdata(L, -1)) { lua_replace(L, lo); return 1; } else { lua_pop(L, 1); return 0; } } else { return 0; } return 0; } /* the equivalent of lua_is* for usertype */ static int lua_isusertype(lua_State *L, int lo, const char *type) { if (!lua_isuserdata(L, lo)) { if (!push_table_instance(L, lo)) { return 0; } } { /* check if it is of the same type */ int r; const char *tn; if (lua_getmetatable(L, lo)) /* if metatable? */ { lua_rawget(L, LUA_REGISTRYINDEX); /* get registry[mt] */ tn = lua_tostring(L, -1); r = tn && (strcmp(tn, type) == 0); lua_pop(L, 1); if (r) return 1; else { /* check if it is a specialized class */ lua_pushstring(L, "tolua_super"); lua_rawget(L, LUA_REGISTRYINDEX); /* get super */ lua_getmetatable(L, lo); lua_rawget(L, -2); /* get super[mt] */ if (lua_istable(L, -1)) { int b; lua_pushstring(L, type); lua_rawget(L, -2); /* get super[mt][type] */ b = lua_toboolean(L, -1); lua_pop(L, 3); if (b) return 1; } } } } return 0; } TOLUA_API int tolua_isnoobj(lua_State *L, int lo, tolua_Error *err) { if (lua_gettop(L) < abs(lo)) return 1; err->index = lo; err->array = 0; err->type = "[no object]"; return 0; } TOLUA_API int tolua_isboolean(lua_State *L, int lo, int def, tolua_Error *err) { if (def && lua_gettop(L) < abs(lo)) return 1; if (lua_isnil(L, lo) || lua_isboolean(L, lo)) return 1; err->index = lo; err->array = 0; err->type = "boolean"; return 0; } TOLUA_API int tolua_isnumber(lua_State *L, int lo, int def, tolua_Error *err) { if (def && lua_gettop(L) < abs(lo)) return 1; if (lua_isnumber(L, lo)) return 1; err->index = lo; err->array = 0; err->type = "number"; return 0; } TOLUA_API int tolua_isstring(lua_State *L, int lo, int def, tolua_Error *err) { if (def && lua_gettop(L) < abs(lo)) return 1; if (lua_isnil(L, lo) || lua_isstring(L, lo)) return 1; err->index = lo; err->array = 0; err->type = "string"; return 0; } TOLUA_API int tolua_istable(lua_State *L, int lo, int def, tolua_Error *err) { if (def && lua_gettop(L) < abs(lo)) return 1; if (lua_istable(L, lo)) return 1; err->index = lo; err->array = 0; err->type = "table"; return 0; } TOLUA_API int tolua_isusertable(lua_State *L, int lo, const char *type, int def, tolua_Error *err) { if (def && lua_gettop(L) < abs(lo)) return 1; if (lua_isusertable(L, lo, type)) return 1; err->index = lo; err->array = 0; err->type = type; return 0; } TOLUA_API int tolua_isuserdata(lua_State *L, int lo, int def, tolua_Error *err) { if (def && lua_gettop(L) < abs(lo)) return 1; if (lua_isnil(L, lo) || lua_isuserdata(L, lo)) return 1; err->index = lo; err->array = 0; err->type = "userdata"; return 0; } TOLUA_API int tolua_isvaluenil(lua_State *L, int lo, tolua_Error *err) { if (lua_gettop(L) < abs(lo)) return 0; /* somebody else should chack this */ if (!lua_isnil(L, lo)) return 0; err->index = lo; err->array = 0; err->type = "value"; return 1; } TOLUA_API int tolua_isvalue(lua_State *L, int lo, int def, tolua_Error *err) { if (def || abs(lo) <= lua_gettop(L)) /* any valid index */ return 1; err->index = lo; err->array = 0; err->type = "value"; return 0; } TOLUA_API int tolua_isusertype(lua_State *L, int lo, const char *type, int def, tolua_Error *err) { if (def && lua_gettop(L) < abs(lo)) return 1; if (lua_isnil(L, lo) || lua_isusertype(L, lo, type)) return 1; err->index = lo; err->array = 0; err->type = type; return 0; } TOLUA_API int tolua_isvaluearray(lua_State *L, int lo, int dim, int def, tolua_Error *err) { (void)dim; if (!tolua_istable(L, lo, def, err)) return 0; else return 1; } TOLUA_API int tolua_isbooleanarray(lua_State *L, int lo, int dim, int def, tolua_Error *err) { if (!tolua_istable(L, lo, def, err)) return 0; else { int i; for (i = 1; i <= dim; ++i) { lua_pushnumber(L, i); lua_gettable(L, lo); if (!(lua_isnil(L, -1) || lua_isboolean(L, -1)) && !(def && lua_isnil(L, -1))) { err->index = lo; err->array = 1; err->type = "boolean"; return 0; } lua_pop(L, 1); } } return 1; } TOLUA_API int tolua_isnumberarray(lua_State *L, int lo, int dim, int def, tolua_Error *err) { if (!tolua_istable(L, lo, def, err)) return 0; else { int i; for (i = 1; i <= dim; ++i) { lua_pushnumber(L, i); lua_gettable(L, lo); if (!lua_isnumber(L, -1) && !(def && lua_isnil(L, -1))) { err->index = lo; err->array = 1; err->type = "number"; return 0; } lua_pop(L, 1); } } return 1; } TOLUA_API int tolua_isstringarray(lua_State *L, int lo, int dim, int def, tolua_Error *err) { if (!tolua_istable(L, lo, def, err)) return 0; else { int i; for (i = 1; i <= dim; ++i) { lua_pushnumber(L, i); lua_gettable(L, lo); if (!(lua_isnil(L, -1) || lua_isstring(L, -1)) && !(def && lua_isnil(L, -1))) { err->index = lo; err->array = 1; err->type = "string"; return 0; } lua_pop(L, 1); } } return 1; } TOLUA_API int tolua_istablearray(lua_State *L, int lo, int dim, int def, tolua_Error *err) { if (!tolua_istable(L, lo, def, err)) return 0; else { int i; for (i = 1; i <= dim; ++i) { lua_pushnumber(L, i); lua_gettable(L, lo); if (!lua_istable(L, -1) && !(def && lua_isnil(L, -1))) { err->index = lo; err->array = 1; err->type = "table"; return 0; } lua_pop(L, 1); } } return 1; } TOLUA_API int tolua_isuserdataarray(lua_State *L, int lo, int dim, int def, tolua_Error *err) { if (!tolua_istable(L, lo, def, err)) return 0; else { int i; for (i = 1; i <= dim; ++i) { lua_pushnumber(L, i); lua_gettable(L, lo); if (!(lua_isnil(L, -1) || lua_isuserdata(L, -1)) && !(def && lua_isnil(L, -1))) { err->index = lo; err->array = 1; err->type = "userdata"; return 0; } lua_pop(L, 1); } } return 1; } TOLUA_API int tolua_isusertypearray(lua_State *L, int lo, const char *type, int dim, int def, tolua_Error *err) { if (!tolua_istable(L, lo, def, err)) return 0; else { int i; for (i = 1; i <= dim; ++i) { lua_pushnumber(L, i); lua_gettable(L, lo); if (!(lua_isnil(L, -1) || lua_isuserdata(L, -1)) && !(def && lua_isnil(L, -1))) { err->index = lo; err->type = type; err->array = 1; return 0; } lua_pop(L, 1); } } return 1; } #if 0 int tolua_isbooleanfield (lua_State* L, int lo, int i, int def, tolua_Error* err) { lua_pushnumber(L,i); lua_gettable(L,lo); if (!(lua_isnil(L,-1) || lua_isboolean(L,-1)) && !(def && lua_isnil(L,-1)) ) { err->index = lo; err->array = 1; err->type = "boolean"; return 0; } lua_pop(L,1); return 1; } int tolua_isnumberfield (lua_State* L, int lo, int i, int def, tolua_Error* err) { lua_pushnumber(L,i); lua_gettable(L,lo); if (!lua_isnumber(L,-1) && !(def && lua_isnil(L,-1)) ) { err->index = lo; err->array = 1; err->type = "number"; return 0; } lua_pop(L,1); return 1; } int tolua_isstringfield (lua_State* L, int lo, int i, int def, tolua_Error* err) { lua_pushnumber(L,i); lua_gettable(L,lo); if (!(lua_isnil(L,-1) || lua_isstring(L,-1)) && !(def && lua_isnil(L,-1)) ) { err->index = lo; err->array = 1; err->type = "string"; return 0; } lua_pop(L,1); return 1; } int tolua_istablefield (lua_State* L, int lo, int i, int def, tolua_Error* err) { lua_pushnumber(L,i+1); lua_gettable(L,lo); if (! lua_istable(L,-1) && !(def && lua_isnil(L,-1)) ) { err->index = lo; err->array = 1; err->type = "table"; return 0; } lua_pop(L,1); } int tolua_isusertablefield (lua_State* L, int lo, const char* type, int i, int def, tolua_Error* err) { lua_pushnumber(L,i); lua_gettable(L,lo); if (! lua_isusertable(L,-1,type) && !(def && lua_isnil(L,-1)) ) { err->index = lo; err->array = 1; err->type = type; return 0; } lua_pop(L,1); return 1; } int tolua_isuserdatafield (lua_State* L, int lo, int i, int def, tolua_Error* err) { lua_pushnumber(L,i); lua_gettable(L,lo); if (!(lua_isnil(L,-1) || lua_isuserdata(L,-1)) && !(def && lua_isnil(L,-1)) ) { err->index = lo; err->array = 1; err->type = "userdata"; return 0; } lua_pop(L,1); return 1; } int tolua_isusertypefield (lua_State* L, int lo, const char* type, int i, int def, tolua_Error* err) { lua_pushnumber(L,i); lua_gettable(L,lo); if (!(lua_isnil(L,-1) || lua_isusertype(L,-1,type)) && !(def && lua_isnil(L,-1)) ) { err->index = lo; err->type = type; err->array = 1; return 0; } lua_pop(L,1); return 1; } #endif conky-1.19.6/3rdparty/toluapp/src/lib/tolua_map.c000066400000000000000000000416001451224556600216640ustar00rootroot00000000000000/* tolua: functions to map features ** Support code for Lua bindings. ** Written by Waldemar Celes ** TeCGraf/PUC-Rio ** Apr 2003 ** $Id: $ */ /* This code is free software; you can redistribute it and/or modify it. ** The software provided hereunder is on an "as is" basis, and ** the author has no obligation to provide maintenance, support, updates, ** enhancements, or modifications. */ #include "tolua++.h" #include "tolua_event.h" #include "lauxlib.h" #include #include #include #include /* Create metatable * Create and register new metatable */ static int tolua_newmetatable(lua_State *L, const char *name) { int r = luaL_newmetatable(L, name); #ifdef LUA_VERSION_NUM /* only lua 5.1 */ if (r) { lua_pushvalue(L, -1); lua_pushstring(L, name); lua_settable(L, LUA_REGISTRYINDEX); /* reg[mt] = type_name */ } #endif if (r) tolua_classevents(L); /* set meta events */ lua_pop(L, 1); return r; } /* Map super classes * It sets 'name' as being also a 'base', mapping all super classes of 'base' in 'name' */ static void mapsuper(lua_State *L, const char *name, const char *base) { /* push registry.super */ lua_pushstring(L, "tolua_super"); lua_rawget(L, LUA_REGISTRYINDEX); /* stack: super */ luaL_getmetatable(L, name); /* stack: super mt */ lua_rawget(L, -2); /* stack: super table */ if (lua_isnil(L, -1)) { /* create table */ lua_pop(L, 1); lua_newtable(L); /* stack: super table */ luaL_getmetatable(L, name); /* stack: super table mt */ lua_pushvalue(L, -2); /* stack: super table mt table */ lua_rawset(L, -4); /* stack: super table */ } /* set base as super class */ lua_pushstring(L, base); lua_pushboolean(L, 1); lua_rawset(L, -3); /* stack: super table */ /* set all super class of base as super class of name */ luaL_getmetatable(L, base); /* stack: super table base_mt */ lua_rawget(L, -3); /* stack: super table base_table */ if (lua_istable(L, -1)) { /* traverse base table */ lua_pushnil(L); /* first key */ while (lua_next(L, -2) != 0) { /* stack: ... base_table key value */ lua_pushvalue(L, -2); /* stack: ... base_table key value key */ lua_insert(L, -2); /* stack: ... base_table key key value */ lua_rawset(L, -5); /* stack: ... base_table key */ } } lua_pop(L, 3); /* stack: */ } /* creates a 'tolua_ubox' table for base clases, and // expects the metatable and base metatable on the stack */ static void set_ubox(lua_State *L) { /* mt basemt */ if (!lua_isnil(L, -1)) { lua_pushstring(L, "tolua_ubox"); lua_rawget(L, -2); } else { lua_pushnil(L); } /* mt basemt base_ubox */ if (!lua_isnil(L, -1)) { lua_pushstring(L, "tolua_ubox"); lua_insert(L, -2); /* mt basemt key ubox */ lua_rawset(L, -4); /* (mt with ubox) basemt */ } else { /* mt basemt nil */ lua_pop(L, 1); lua_pushstring(L, "tolua_ubox"); lua_newtable(L); /* make weak value metatable for ubox table to allow userdata to be garbage-collected */ lua_newtable(L); lua_pushliteral(L, "__mode"); lua_pushliteral(L, "v"); lua_rawset(L, -3); /* stack: string ubox mt */ lua_setmetatable(L, -2); /* stack:mt basemt string ubox */ lua_rawset(L, -4); } } /* Map inheritance * It sets 'name' as derived from 'base' by setting 'base' as metatable of 'name' */ static void mapinheritance(lua_State *L, const char *name, const char *base) { /* set metatable inheritance */ luaL_getmetatable(L, name); if (base && *base) luaL_getmetatable(L, base); else { if (lua_getmetatable(L, -1)) { /* already has a mt, we don't overwrite it */ lua_pop(L, 2); return; } luaL_getmetatable(L, "tolua_commonclass"); } set_ubox(L); lua_setmetatable(L, -2); lua_pop(L, 1); } /* Object type */ static int tolua_bnd_type(lua_State *L) { tolua_typename(L, lua_gettop(L)); return 1; } /* Take ownership */ static int tolua_bnd_takeownership(lua_State *L) { int success = 0; if (lua_isuserdata(L, 1)) { if (lua_getmetatable(L, 1)) /* if metatable? */ { lua_pop(L, 1); /* clear metatable off stack */ /* force garbage collection to avoid C to reuse a to-be-collected address */ #ifdef LUA_VERSION_NUM lua_gc(L, LUA_GCCOLLECT, 0); #else lua_setgcthreshold(L, 0); #endif success = tolua_register_gc(L, 1); } } lua_pushboolean(L, success != 0); return 1; } /* Release ownership */ static int tolua_bnd_releaseownership(lua_State *L) { int done = 0; if (lua_isuserdata(L, 1)) { void *u = *((void **)lua_touserdata(L, 1)); /* force garbage collection to avoid releasing a to-be-collected address */ #ifdef LUA_VERSION_NUM lua_gc(L, LUA_GCCOLLECT, 0); #else lua_setgcthreshold(L, 0); #endif lua_pushstring(L, "tolua_gc"); lua_rawget(L, LUA_REGISTRYINDEX); lua_pushlightuserdata(L, u); lua_rawget(L, -2); lua_getmetatable(L, 1); if (lua_rawequal(L, -1, -2)) /* check that we are releasing the correct type */ { lua_pushlightuserdata(L, u); lua_pushnil(L); lua_rawset(L, -5); done = 1; } } lua_pushboolean(L, done != 0); return 1; } /* Type casting */ static int tolua_bnd_cast(lua_State *L) { /* // old code void* v = tolua_tousertype(L,1,NULL); const char* s = tolua_tostring(L,2,NULL); if (v && s) tolua_pushusertype(L,v,s); else lua_pushnil(L); return 1; */ void *v; const char *s; if (lua_islightuserdata(L, 1)) { v = tolua_touserdata(L, 1, NULL); } else { v = tolua_tousertype(L, 1, 0); } s = tolua_tostring(L, 2, NULL); if (v && s) tolua_pushusertype(L, v, s); else lua_pushnil(L); return 1; } /* Inheritance */ static int tolua_bnd_inherit(lua_State *L) { /* stack: lua object, c object */ lua_pushstring(L, ".c_instance"); lua_pushvalue(L, -2); lua_rawset(L, -4); /* l_obj[".c_instance"] = c_obj */ return 0; } #ifdef LUA_VERSION_NUM /* lua 5.1 */ static int tolua_bnd_setpeer(lua_State *L) { /* stack: userdata, table */ if (!lua_isuserdata(L, -2)) { lua_pushstring(L, "Invalid argument #1 to setpeer: userdata expected."); lua_error(L); } if (lua_isnil(L, -1)) { lua_pop(L, 1); lua_pushvalue(L, TOLUA_NOPEER); } #if LUA_VERSION_NUM > 501 lua_setuservalue(L, -2); #else lua_setfenv(L, -2); #endif return 0; } static int tolua_bnd_getpeer(lua_State *L) { /* stack: userdata */ #if LUA_VERSION_NUM > 501 lua_getuservalue(L, -1); #else lua_getfenv(L, -1); #endif if (lua_rawequal(L, -1, TOLUA_NOPEER)) { lua_pop(L, 1); lua_pushnil(L); } return 1; } #endif /* static int class_gc_event (lua_State* L); */ TOLUA_API void tolua_open(lua_State *L) { int top = lua_gettop(L); lua_pushstring(L, "tolua_opened"); lua_rawget(L, LUA_REGISTRYINDEX); if (!lua_isboolean(L, -1)) { lua_pushstring(L, "tolua_opened"); lua_pushboolean(L, 1); lua_rawset(L, LUA_REGISTRYINDEX); #ifndef LUA_VERSION_NUM /* only prior to lua 5.1 */ /* create peer object table */ lua_pushstring(L, "tolua_peers"); lua_newtable(L); /* make weak key metatable for peers indexed by userdata object */ lua_newtable(L); lua_pushliteral(L, "__mode"); lua_pushliteral(L, "k"); lua_rawset(L, -3); /* stack: string peers mt */ lua_setmetatable(L, -2); /* stack: string peers */ lua_rawset(L, LUA_REGISTRYINDEX); #endif /* create object ptr -> udata mapping table */ lua_pushstring(L, "tolua_ubox"); lua_newtable(L); /* make weak value metatable for ubox table to allow userdata to be garbage-collected */ lua_newtable(L); lua_pushliteral(L, "__mode"); lua_pushliteral(L, "v"); lua_rawset(L, -3); /* stack: string ubox mt */ lua_setmetatable(L, -2); /* stack: string ubox */ lua_rawset(L, LUA_REGISTRYINDEX); lua_pushstring(L, "tolua_super"); lua_newtable(L); lua_rawset(L, LUA_REGISTRYINDEX); lua_pushstring(L, "tolua_gc"); lua_newtable(L); lua_rawset(L, LUA_REGISTRYINDEX); /* create gc_event closure */ lua_pushstring(L, "tolua_gc_event"); lua_pushstring(L, "tolua_gc"); lua_rawget(L, LUA_REGISTRYINDEX); lua_pushstring(L, "tolua_super"); lua_rawget(L, LUA_REGISTRYINDEX); lua_pushcclosure(L, class_gc_event, 2); lua_rawset(L, LUA_REGISTRYINDEX); tolua_newmetatable(L, "tolua_commonclass"); tolua_module(L, NULL, 0); tolua_beginmodule(L, NULL); tolua_module(L, "tolua", 0); tolua_beginmodule(L, "tolua"); tolua_function(L, "type", tolua_bnd_type); tolua_function(L, "takeownership", tolua_bnd_takeownership); tolua_function(L, "releaseownership", tolua_bnd_releaseownership); tolua_function(L, "cast", tolua_bnd_cast); tolua_function(L, "inherit", tolua_bnd_inherit); #ifdef LUA_VERSION_NUM /* lua 5.1 */ tolua_function(L, "setpeer", tolua_bnd_setpeer); tolua_function(L, "getpeer", tolua_bnd_getpeer); #endif tolua_endmodule(L); tolua_endmodule(L); } lua_settop(L, top); } /* Copy a C object */ TOLUA_API void *tolua_copy(lua_State *L, void *value, unsigned int size) { void *clone = (void *)malloc(size); if (clone) memcpy(clone, value, size); else tolua_error(L, "insuficient memory", NULL); return clone; } /* Default collect function */ TOLUA_API int tolua_default_collect(lua_State *tolua_S) { void *self = tolua_tousertype(tolua_S, 1, 0); free(self); return 0; } /* Do clone */ TOLUA_API int tolua_register_gc(lua_State *L, int lo) { int success = 1; void *value = *(void **)lua_touserdata(L, lo); lua_pushstring(L, "tolua_gc"); lua_rawget(L, LUA_REGISTRYINDEX); lua_pushlightuserdata(L, value); lua_rawget(L, -2); if (!lua_isnil(L, -1)) /* make sure that object is not already owned */ success = 0; else { lua_pushlightuserdata(L, value); lua_getmetatable(L, lo); lua_rawset(L, -4); } lua_pop(L, 2); return success; } /* Register a usertype * It creates the correspoding metatable in the registry, for both 'type' and 'const type'. * It maps 'const type' as being also a 'type' */ TOLUA_API void tolua_usertype(lua_State *L, const char *type) { char ctype[128] = "const "; strncat(ctype, type, 120); /* create both metatables */ if (tolua_newmetatable(L, ctype) && tolua_newmetatable(L, type)) mapsuper(L, type, ctype); /* 'type' is also a 'const type' */ } /* Begin module * It pushes the module (or class) table on the stack */ TOLUA_API void tolua_beginmodule(lua_State *L, const char *name) { if (name) { lua_pushstring(L, name); lua_rawget(L, -2); } else #if LUA_VERSION_NUM > 501 lua_pushglobaltable(L); #else lua_pushvalue(L, LUA_GLOBALSINDEX); #endif } /* End module * It pops the module (or class) from the stack */ TOLUA_API void tolua_endmodule(lua_State *L) { lua_pop(L, 1); } /* Map module * It creates a new module */ #if 1 TOLUA_API void tolua_module(lua_State *L, const char *name, int hasvar) { if (name) { /* tolua module */ lua_pushstring(L, name); lua_rawget(L, -2); if (!lua_istable(L, -1)) /* check if module already exists */ { lua_pop(L, 1); lua_newtable(L); lua_pushstring(L, name); lua_pushvalue(L, -2); lua_rawset(L, -4); /* assing module into module */ } } else { /* global table */ #if LUA_VERSION_NUM > 501 lua_pushglobaltable(L); #else lua_pushvalue(L, LUA_GLOBALSINDEX); #endif } if (hasvar) { if (!tolua_ismodulemetatable(L)) /* check if it already has a module metatable */ { /* create metatable to get/set C/C++ variable */ lua_newtable(L); tolua_moduleevents(L); if (lua_getmetatable(L, -2)) lua_setmetatable(L, -2); /* set old metatable as metatable of metatable */ lua_setmetatable(L, -2); } } lua_pop(L, 1); /* pop module */ } #else TOLUA_API void tolua_module(lua_State *L, const char *name, int hasvar) { if (name) { /* tolua module */ lua_pushstring(L, name); lua_newtable(L); } else { /* global table */ #if LUA_VERSION_NUM > 501 lua_pushglobaltable(L); #else lua_pushvalue(L, LUA_GLOBALSINDEX); #endif } if (hasvar) { /* create metatable to get/set C/C++ variable */ lua_newtable(L); tolua_moduleevents(L); if (lua_getmetatable(L, -2)) lua_setmetatable(L, -2); /* set old metatable as metatable of metatable */ lua_setmetatable(L, -2); } if (name) lua_rawset(L, -3); /* assing module into module */ else lua_pop(L, 1); /* pop global table */ } #endif static void push_collector(lua_State *L, const char *type, lua_CFunction col) { /* push collector function, but only if it's not NULL, or if there's no collector already */ if (!col) return; luaL_getmetatable(L, type); lua_pushstring(L, ".collector"); /* if (!col) { lua_pushvalue(L, -1); lua_rawget(L, -3); if (!lua_isnil(L, -1)) { lua_pop(L, 3); return; } lua_pop(L, 1); } // */ lua_pushcfunction(L, col); lua_rawset(L, -3); lua_pop(L, 1); } /* Map C class * It maps a C class, setting the appropriate inheritance and super classes. */ TOLUA_API void tolua_cclass(lua_State *L, const char *lname, const char *name, const char *base, lua_CFunction col) { char cname[128] = "const "; char cbase[128] = "const "; strncat(cname, name, 120); strncat(cbase, base, 120); mapinheritance(L, name, base); mapinheritance(L, cname, name); mapsuper(L, cname, cbase); mapsuper(L, name, base); lua_pushstring(L, lname); push_collector(L, name, col); /* luaL_getmetatable(L,name); lua_pushstring(L,".collector"); lua_pushcfunction(L,col); lua_rawset(L,-3); */ luaL_getmetatable(L, name); lua_rawset(L, -3); /* assign class metatable to module */ /* now we also need to store the collector table for the const instances of the class */ push_collector(L, cname, col); /* luaL_getmetatable(L,cname); lua_pushstring(L,".collector"); lua_pushcfunction(L,col); lua_rawset(L,-3); lua_pop(L,1); */ } /* Add base * It adds additional base classes to a class (for multiple inheritance) * (not for now) TOLUA_API void tolua_addbase(lua_State* L, char* name, char* base) { char cname[128] = "const "; char cbase[128] = "const "; strncat(cname,name,120); strncat(cbase,base,120); mapsuper(L,cname,cbase); mapsuper(L,name,base); } */ /* Map function * It assigns a function into the current module (or class) */ TOLUA_API void tolua_function(lua_State *L, const char *name, lua_CFunction func) { lua_pushstring(L, name); lua_pushcfunction(L, func); lua_rawset(L, -3); } /* sets the __call event for the class (expects the class' main table on top) */ /* never really worked :( TOLUA_API void tolua_set_call_event(lua_State* L, lua_CFunction func, char* type) { lua_getmetatable(L, -1); //luaL_getmetatable(L, type); lua_pushstring(L,"__call"); lua_pushcfunction(L,func); lua_rawset(L,-3); lua_pop(L, 1); } */ /* Map constant number * It assigns a constant number into the current module (or class) */ TOLUA_API void tolua_constant(lua_State *L, const char *name, lua_Number value) { lua_pushstring(L, name); tolua_pushnumber(L, value); lua_rawset(L, -3); } /* Map variable * It assigns a variable into the current module (or class) */ TOLUA_API void tolua_variable(lua_State *L, const char *name, lua_CFunction get, lua_CFunction set) { /* get func */ lua_pushstring(L, ".get"); lua_rawget(L, -2); if (!lua_istable(L, -1)) { /* create .get table, leaving it at the top */ lua_pop(L, 1); lua_newtable(L); lua_pushstring(L, ".get"); lua_pushvalue(L, -2); lua_rawset(L, -4); } lua_pushstring(L, name); lua_pushcfunction(L, get); lua_rawset(L, -3); /* store variable */ lua_pop(L, 1); /* pop .get table */ /* set func */ if (set) { lua_pushstring(L, ".set"); lua_rawget(L, -2); if (!lua_istable(L, -1)) { /* create .set table, leaving it at the top */ lua_pop(L, 1); lua_newtable(L); lua_pushstring(L, ".set"); lua_pushvalue(L, -2); lua_rawset(L, -4); } lua_pushstring(L, name); lua_pushcfunction(L, set); lua_rawset(L, -3); /* store variable */ lua_pop(L, 1); /* pop .set table */ } } /* Access const array * It reports an error when trying to write into a const array */ static int const_array(lua_State *L) { luaL_error(L, "value of const array cannot be changed"); return 0; } /* Map an array * It assigns an array into the current module (or class) */ TOLUA_API void tolua_array(lua_State *L, const char *name, lua_CFunction get, lua_CFunction set) { lua_pushstring(L, ".get"); lua_rawget(L, -2); if (!lua_istable(L, -1)) { /* create .get table, leaving it at the top */ lua_pop(L, 1); lua_newtable(L); lua_pushstring(L, ".get"); lua_pushvalue(L, -2); lua_rawset(L, -4); } lua_pushstring(L, name); lua_newtable(L); /* create array metatable */ lua_pushvalue(L, -1); lua_setmetatable(L, -2); /* set the own table as metatable (for modules) */ lua_pushstring(L, "__index"); lua_pushcfunction(L, get); lua_rawset(L, -3); lua_pushstring(L, "__newindex"); lua_pushcfunction(L, set ? set : const_array); lua_rawset(L, -3); lua_rawset(L, -3); /* store variable */ lua_pop(L, 1); /* pop .get table */ } TOLUA_API void tolua_dobuffer(lua_State *L, char *B, unsigned int size, const char *name) { #ifdef LUA_VERSION_NUM /* lua 5.1 */ #pragma GCC diagnostic push #pragma GCC diagnostic ignored "-Wunused-value" luaL_loadbuffer(L, B, size, name) || lua_pcall(L, 0, 0, 0); #pragma GCC diagnostic pop #else lua_dobuffer(L, B, size, name); #endif } conky-1.19.6/3rdparty/toluapp/src/lib/tolua_push.c000066400000000000000000000115041451224556600220660ustar00rootroot00000000000000/* tolua: functions to push C values. ** Support code for Lua bindings. ** Written by Waldemar Celes ** TeCGraf/PUC-Rio ** Apr 2003 ** $Id: $ */ /* This code is free software; you can redistribute it and/or modify it. ** The software provided hereunder is on an "as is" basis, and ** the author has no obligation to provide maintenance, support, updates, ** enhancements, or modifications. */ #include "tolua++.h" #include "lauxlib.h" #include TOLUA_API void tolua_pushvalue (lua_State* L, int lo) { lua_pushvalue(L,lo); } TOLUA_API void tolua_pushboolean (lua_State* L, int value) { lua_pushboolean(L,value); } TOLUA_API void tolua_pushnumber (lua_State* L, lua_Number value) { lua_pushnumber(L,value); } TOLUA_API void tolua_pushstring (lua_State* L, const char* value) { if (value == NULL) lua_pushnil(L); else lua_pushstring(L,value); } TOLUA_API void tolua_pushuserdata (lua_State* L, void* value) { if (value == NULL) lua_pushnil(L); else lua_pushlightuserdata(L,value); } TOLUA_API void tolua_pushusertype (lua_State* L, void* value, const char* type) { if (value == NULL) lua_pushnil(L); else { luaL_getmetatable(L, type); lua_pushstring(L,"tolua_ubox"); lua_rawget(L,-2); /* stack: mt ubox */ if (lua_isnil(L, -1)) { lua_pop(L, 1); lua_pushstring(L, "tolua_ubox"); lua_rawget(L, LUA_REGISTRYINDEX); }; lua_pushlightuserdata(L,value); lua_rawget(L,-2); /* stack: mt ubox ubox[u] */ if (lua_isnil(L,-1)) { lua_pop(L,1); /* stack: mt ubox */ lua_pushlightuserdata(L,value); *(void**)lua_newuserdata(L,sizeof(void *)) = value; /* stack: mt ubox u newud */ lua_pushvalue(L,-1); /* stack: mt ubox u newud newud */ lua_insert(L,-4); /* stack: mt newud ubox u newud */ lua_rawset(L,-3); /* stack: mt newud ubox */ lua_pop(L,1); /* stack: mt newud */ /*luaL_getmetatable(L,type);*/ lua_pushvalue(L, -2); /* stack: mt newud mt */ lua_setmetatable(L,-2); /* stack: mt newud */ #ifdef LUA_VERSION_NUM lua_pushvalue(L, TOLUA_NOPEER); #if LUA_VERSION_NUM > 501 lua_setuservalue(L, -2); #else lua_setfenv(L, -2); #endif #endif } else { /* check the need of updating the metatable to a more specialized class */ lua_insert(L,-2); /* stack: mt ubox[u] ubox */ lua_pop(L,1); /* stack: mt ubox[u] */ lua_pushstring(L,"tolua_super"); lua_rawget(L,LUA_REGISTRYINDEX); /* stack: mt ubox[u] super */ lua_getmetatable(L,-2); /* stack: mt ubox[u] super mt */ lua_rawget(L,-2); /* stack: mt ubox[u] super super[mt] */ if (lua_istable(L,-1)) { lua_pushstring(L,type); /* stack: mt ubox[u] super super[mt] type */ lua_rawget(L,-2); /* stack: mt ubox[u] super super[mt] flag */ if (lua_toboolean(L,-1) == 1) /* if true */ { lua_pop(L,3); /* mt ubox[u]*/ lua_remove(L, -2); return; } } /* type represents a more specilized type */ /*luaL_getmetatable(L,type); // stack: mt ubox[u] super super[mt] flag mt */ lua_pushvalue(L, -5); /* stack: mt ubox[u] super super[mt] flag mt */ lua_setmetatable(L,-5); /* stack: mt ubox[u] super super[mt] flag */ lua_pop(L,3); /* stack: mt ubox[u] */ } lua_remove(L, -2); /* stack: ubox[u]*/ } } TOLUA_API void tolua_pushusertype_and_takeownership (lua_State* L, void* value, const char* type) { tolua_pushusertype(L,value,type); tolua_register_gc(L,lua_gettop(L)); } TOLUA_API void tolua_pushfieldvalue (lua_State* L, int lo, int index, int v) { lua_pushnumber(L,index); lua_pushvalue(L,v); lua_settable(L,lo); } TOLUA_API void tolua_pushfieldboolean (lua_State* L, int lo, int index, int v) { lua_pushnumber(L,index); lua_pushboolean(L,v); lua_settable(L,lo); } TOLUA_API void tolua_pushfieldnumber (lua_State* L, int lo, int index, lua_Number v) { lua_pushnumber(L,index); tolua_pushnumber(L,v); lua_settable(L,lo); } TOLUA_API void tolua_pushfieldstring (lua_State* L, int lo, int index, const char* v) { lua_pushnumber(L,index); tolua_pushstring(L,v); lua_settable(L,lo); } TOLUA_API void tolua_pushfielduserdata (lua_State* L, int lo, int index, void* v) { lua_pushnumber(L,index); tolua_pushuserdata(L,v); lua_settable(L,lo); } TOLUA_API void tolua_pushfieldusertype (lua_State* L, int lo, int index, void* v, const char* type) { lua_pushnumber(L,index); tolua_pushusertype(L,v,type); lua_settable(L,lo); } TOLUA_API void tolua_pushfieldusertype_and_takeownership (lua_State* L, int lo, int index, void* v, const char* type) { lua_pushnumber(L,index); tolua_pushusertype(L,v,type); tolua_register_gc(L,lua_gettop(L)); lua_settable(L,lo); } conky-1.19.6/3rdparty/toluapp/src/lib/tolua_to.c000066400000000000000000000060471451224556600215370ustar00rootroot00000000000000/* tolua: funcitons to convert to C types ** Support code for Lua bindings. ** Written by Waldemar Celes ** TeCGraf/PUC-Rio ** Apr 2003 ** $Id: $ */ /* This code is free software; you can redistribute it and/or modify it. ** The software provided hereunder is on an "as is" basis, and ** the author has no obligation to provide maintenance, support, updates, ** enhancements, or modifications. */ #include "tolua++.h" #include #include TOLUA_API lua_Number tolua_tonumber(lua_State *L, int narg, lua_Number def) { return lua_gettop(L) < abs(narg) ? def : lua_tonumber(L, narg); } TOLUA_API const char *tolua_tostring(lua_State *L, int narg, const char *def) { return lua_gettop(L) < abs(narg) ? def : lua_tostring(L, narg); } TOLUA_API void *tolua_touserdata(lua_State *L, int narg, void *def) { /* return lua_gettop(L)x); return 1; } /* set function: x of class Point */ static int tolua_set_Point_x(lua_State* tolua_S) { Point* self = (Point*) tolua_tousertype(tolua_S,1,0); #ifndef TOLUA_RELEASE tolua_Error tolua_err; if (!self) tolua_error(tolua_S,"invalid 'self' in accessing variable 'x'",NULL); if (!tolua_isnumber(tolua_S,2,0,&tolua_err)) tolua_error(tolua_S,"#vinvalid type in variable assignment.",&tolua_err); #endif self->x = ((float) tolua_tonumber(tolua_S,2,0)); return 0; } /* get function: y of class Point */ static int tolua_get_Point_y(lua_State* tolua_S) { Point* self = (Point*) tolua_tousertype(tolua_S,1,0); #ifndef TOLUA_RELEASE if (!self) tolua_error(tolua_S,"invalid 'self' in accessing variable 'y'",NULL); #endif tolua_pushnumber(tolua_S,(double)self->y); return 1; } /* set function: y of class Point */ static int tolua_set_Point_y(lua_State* tolua_S) { Point* self = (Point*) tolua_tousertype(tolua_S,1,0); #ifndef TOLUA_RELEASE tolua_Error tolua_err; if (!self) tolua_error(tolua_S,"invalid 'self' in accessing variable 'y'",NULL); if (!tolua_isnumber(tolua_S,2,0,&tolua_err)) tolua_error(tolua_S,"#vinvalid type in variable assignment.",&tolua_err); #endif self->y = ((float) tolua_tonumber(tolua_S,2,0)); return 0; } /* get function: a */ static int tolua_get_tarray_a(lua_State* tolua_S) { int tolua_index; #ifndef TOLUA_RELEASE { tolua_Error tolua_err; if (!tolua_isnumber(tolua_S,2,0,&tolua_err)) tolua_error(tolua_S,"#vinvalid type in array indexing.",&tolua_err); } #endif tolua_index = (int)tolua_tonumber(tolua_S,2,0)-1; #ifndef TOLUA_RELEASE if (tolua_index<0 || tolua_index>=10) tolua_error(tolua_S,"array indexing out of range.",NULL); #endif tolua_pushnumber(tolua_S,(double)a[tolua_index]); return 1; } /* set function: a */ static int tolua_set_tarray_a(lua_State* tolua_S) { int tolua_index; #ifndef TOLUA_RELEASE { tolua_Error tolua_err; if (!tolua_isnumber(tolua_S,2,0,&tolua_err)) tolua_error(tolua_S,"#vinvalid type in array indexing.",&tolua_err); } #endif tolua_index = (int)tolua_tonumber(tolua_S,2,0)-1; #ifndef TOLUA_RELEASE if (tolua_index<0 || tolua_index>=10) tolua_error(tolua_S,"array indexing out of range.",NULL); #endif a[tolua_index] = ((int) tolua_tonumber(tolua_S,3,0)); return 0; } /* get function: p */ static int tolua_get_tarray_p(lua_State* tolua_S) { int tolua_index; #ifndef TOLUA_RELEASE { tolua_Error tolua_err; if (!tolua_isnumber(tolua_S,2,0,&tolua_err)) tolua_error(tolua_S,"#vinvalid type in array indexing.",&tolua_err); } #endif tolua_index = (int)tolua_tonumber(tolua_S,2,0)-1; #ifndef TOLUA_RELEASE if (tolua_index<0 || tolua_index>=10) tolua_error(tolua_S,"array indexing out of range.",NULL); #endif tolua_pushusertype(tolua_S,(void*)&p[tolua_index],"const Point"); return 1; } /* get function: pp */ static int tolua_get_tarray_pp(lua_State* tolua_S) { int tolua_index; #ifndef TOLUA_RELEASE { tolua_Error tolua_err; if (!tolua_isnumber(tolua_S,2,0,&tolua_err)) tolua_error(tolua_S,"#vinvalid type in array indexing.",&tolua_err); } #endif tolua_index = (int)tolua_tonumber(tolua_S,2,0)-1; #ifndef TOLUA_RELEASE if (tolua_index<0 || tolua_index>=10) tolua_error(tolua_S,"array indexing out of range.",NULL); #endif tolua_pushusertype(tolua_S,(void*)pp[tolua_index],"Point"); return 1; } /* set function: pp */ static int tolua_set_tarray_pp(lua_State* tolua_S) { int tolua_index; #ifndef TOLUA_RELEASE { tolua_Error tolua_err; if (!tolua_isnumber(tolua_S,2,0,&tolua_err)) tolua_error(tolua_S,"#vinvalid type in array indexing.",&tolua_err); } #endif tolua_index = (int)tolua_tonumber(tolua_S,2,0)-1; #ifndef TOLUA_RELEASE if (tolua_index<0 || tolua_index>=10) tolua_error(tolua_S,"array indexing out of range.",NULL); #endif pp[tolua_index] = ((Point*) tolua_tousertype(tolua_S,3,0)); return 0; } /* get function: ma */ static int tolua_get_tarray_M_ma(lua_State* tolua_S) { int tolua_index; #ifndef TOLUA_RELEASE { tolua_Error tolua_err; if (!tolua_isnumber(tolua_S,2,0,&tolua_err)) tolua_error(tolua_S,"#vinvalid type in array indexing.",&tolua_err); } #endif tolua_index = (int)tolua_tonumber(tolua_S,2,0)-1; #ifndef TOLUA_RELEASE if (tolua_index<0 || tolua_index>=10) tolua_error(tolua_S,"array indexing out of range.",NULL); #endif tolua_pushnumber(tolua_S,(double)ma[tolua_index]); return 1; } /* set function: ma */ static int tolua_set_tarray_M_ma(lua_State* tolua_S) { int tolua_index; #ifndef TOLUA_RELEASE { tolua_Error tolua_err; if (!tolua_isnumber(tolua_S,2,0,&tolua_err)) tolua_error(tolua_S,"#vinvalid type in array indexing.",&tolua_err); } #endif tolua_index = (int)tolua_tonumber(tolua_S,2,0)-1; #ifndef TOLUA_RELEASE if (tolua_index<0 || tolua_index>=10) tolua_error(tolua_S,"array indexing out of range.",NULL); #endif ma[tolua_index] = ((int) tolua_tonumber(tolua_S,3,0)); return 0; } /* get function: mp */ static int tolua_get_tarray_M_mp(lua_State* tolua_S) { int tolua_index; #ifndef TOLUA_RELEASE { tolua_Error tolua_err; if (!tolua_isnumber(tolua_S,2,0,&tolua_err)) tolua_error(tolua_S,"#vinvalid type in array indexing.",&tolua_err); } #endif tolua_index = (int)tolua_tonumber(tolua_S,2,0)-1; #ifndef TOLUA_RELEASE if (tolua_index<0 || tolua_index>=10) tolua_error(tolua_S,"array indexing out of range.",NULL); #endif tolua_pushusertype(tolua_S,(void*)&mp[tolua_index],"const Point"); return 1; } /* get function: mpp */ static int tolua_get_tarray_M_mpp(lua_State* tolua_S) { int tolua_index; #ifndef TOLUA_RELEASE { tolua_Error tolua_err; if (!tolua_isnumber(tolua_S,2,0,&tolua_err)) tolua_error(tolua_S,"#vinvalid type in array indexing.",&tolua_err); } #endif tolua_index = (int)tolua_tonumber(tolua_S,2,0)-1; #ifndef TOLUA_RELEASE if (tolua_index<0 || tolua_index>=10) tolua_error(tolua_S,"array indexing out of range.",NULL); #endif tolua_pushusertype(tolua_S,(void*)mpp[tolua_index],"Point"); return 1; } /* set function: mpp */ static int tolua_set_tarray_M_mpp(lua_State* tolua_S) { int tolua_index; #ifndef TOLUA_RELEASE { tolua_Error tolua_err; if (!tolua_isnumber(tolua_S,2,0,&tolua_err)) tolua_error(tolua_S,"#vinvalid type in array indexing.",&tolua_err); } #endif tolua_index = (int)tolua_tonumber(tolua_S,2,0)-1; #ifndef TOLUA_RELEASE if (tolua_index<0 || tolua_index>=10) tolua_error(tolua_S,"array indexing out of range.",NULL); #endif mpp[tolua_index] = ((Point*) tolua_tousertype(tolua_S,3,0)); return 0; } /* get function: a of class Array */ static int tolua_get_tarray_Array_a(lua_State* tolua_S) { int tolua_index; Array* self; lua_pushstring(tolua_S,".self"); lua_rawget(tolua_S,1); self = (Array*) lua_touserdata(tolua_S,-1); #ifndef TOLUA_RELEASE { tolua_Error tolua_err; if (!tolua_isnumber(tolua_S,2,0,&tolua_err)) tolua_error(tolua_S,"#vinvalid type in array indexing.",&tolua_err); } #endif tolua_index = (int)tolua_tonumber(tolua_S,2,0)-1; #ifndef TOLUA_RELEASE if (tolua_index<0 || tolua_index>=10) tolua_error(tolua_S,"array indexing out of range.",NULL); #endif tolua_pushnumber(tolua_S,(double)self->a[tolua_index]); return 1; } /* set function: a of class Array */ static int tolua_set_tarray_Array_a(lua_State* tolua_S) { int tolua_index; Array* self; lua_pushstring(tolua_S,".self"); lua_rawget(tolua_S,1); self = (Array*) lua_touserdata(tolua_S,-1); #ifndef TOLUA_RELEASE { tolua_Error tolua_err; if (!tolua_isnumber(tolua_S,2,0,&tolua_err)) tolua_error(tolua_S,"#vinvalid type in array indexing.",&tolua_err); } #endif tolua_index = (int)tolua_tonumber(tolua_S,2,0)-1; #ifndef TOLUA_RELEASE if (tolua_index<0 || tolua_index>=10) tolua_error(tolua_S,"array indexing out of range.",NULL); #endif self->a[tolua_index] = ((int) tolua_tonumber(tolua_S,3,0)); return 0; } /* get function: p of class Array */ static int tolua_get_tarray_Array_p(lua_State* tolua_S) { int tolua_index; Array* self; lua_pushstring(tolua_S,".self"); lua_rawget(tolua_S,1); self = (Array*) lua_touserdata(tolua_S,-1); #ifndef TOLUA_RELEASE { tolua_Error tolua_err; if (!tolua_isnumber(tolua_S,2,0,&tolua_err)) tolua_error(tolua_S,"#vinvalid type in array indexing.",&tolua_err); } #endif tolua_index = (int)tolua_tonumber(tolua_S,2,0)-1; #ifndef TOLUA_RELEASE if (tolua_index<0 || tolua_index>=10) tolua_error(tolua_S,"array indexing out of range.",NULL); #endif tolua_pushusertype(tolua_S,(void*)&self->p[tolua_index],"Point"); return 1; } /* set function: p of class Array */ static int tolua_set_tarray_Array_p(lua_State* tolua_S) { int tolua_index; Array* self; lua_pushstring(tolua_S,".self"); lua_rawget(tolua_S,1); self = (Array*) lua_touserdata(tolua_S,-1); #ifndef TOLUA_RELEASE { tolua_Error tolua_err; if (!tolua_isnumber(tolua_S,2,0,&tolua_err)) tolua_error(tolua_S,"#vinvalid type in array indexing.",&tolua_err); } #endif tolua_index = (int)tolua_tonumber(tolua_S,2,0)-1; #ifndef TOLUA_RELEASE if (tolua_index<0 || tolua_index>=10) tolua_error(tolua_S,"array indexing out of range.",NULL); #endif self->p[tolua_index] = *((Point*) tolua_tousertype(tolua_S,3,0)); return 0; } /* get function: pp of class Array */ static int tolua_get_tarray_Array_pp(lua_State* tolua_S) { int tolua_index; Array* self; lua_pushstring(tolua_S,".self"); lua_rawget(tolua_S,1); self = (Array*) lua_touserdata(tolua_S,-1); #ifndef TOLUA_RELEASE { tolua_Error tolua_err; if (!tolua_isnumber(tolua_S,2,0,&tolua_err)) tolua_error(tolua_S,"#vinvalid type in array indexing.",&tolua_err); } #endif tolua_index = (int)tolua_tonumber(tolua_S,2,0)-1; #ifndef TOLUA_RELEASE if (tolua_index<0 || tolua_index>=10) tolua_error(tolua_S,"array indexing out of range.",NULL); #endif tolua_pushusertype(tolua_S,(void*)self->pp[tolua_index],"Point"); return 1; } /* set function: pp of class Array */ static int tolua_set_tarray_Array_pp(lua_State* tolua_S) { int tolua_index; Array* self; lua_pushstring(tolua_S,".self"); lua_rawget(tolua_S,1); self = (Array*) lua_touserdata(tolua_S,-1); #ifndef TOLUA_RELEASE { tolua_Error tolua_err; if (!tolua_isnumber(tolua_S,2,0,&tolua_err)) tolua_error(tolua_S,"#vinvalid type in array indexing.",&tolua_err); } #endif tolua_index = (int)tolua_tonumber(tolua_S,2,0)-1; #ifndef TOLUA_RELEASE if (tolua_index<0 || tolua_index>=10) tolua_error(tolua_S,"array indexing out of range.",NULL); #endif self->pp[tolua_index] = ((Point*) tolua_tousertype(tolua_S,3,0)); return 0; } /* get function: array */ static int tolua_get_array(lua_State* tolua_S) { tolua_pushusertype(tolua_S,(void*)&array,"Array"); return 1; } /* set function: array */ static int tolua_set_array(lua_State* tolua_S) { #ifndef TOLUA_RELEASE tolua_Error tolua_err; if (!tolua_isusertype(tolua_S,2,"Array",0,&tolua_err)) tolua_error(tolua_S,"#vinvalid type in variable assignment.",&tolua_err); #endif array = *((Array*) tolua_tousertype(tolua_S,2,0)); return 0; } /* get function: parray */ static int tolua_get_parray_ptr(lua_State* tolua_S) { tolua_pushusertype(tolua_S,(void*)parray,"Array"); return 1; } /* set function: parray */ static int tolua_set_parray_ptr(lua_State* tolua_S) { #ifndef TOLUA_RELEASE tolua_Error tolua_err; if (!tolua_isusertype(tolua_S,2,"Array",0,&tolua_err)) tolua_error(tolua_S,"#vinvalid type in variable assignment.",&tolua_err); #endif parray = ((Array*) tolua_tousertype(tolua_S,2,0)); return 0; } /* Open function */ TOLUA_API int tolua_tarray_open (lua_State* tolua_S) { tolua_open(tolua_S); tolua_reg_types(tolua_S); tolua_module(tolua_S,NULL,1); tolua_beginmodule(tolua_S,NULL); #ifdef __cplusplus tolua_cclass(tolua_S,"Point","Point","",tolua_collect_Point); #else tolua_cclass(tolua_S,"Point","Point","",NULL); #endif tolua_beginmodule(tolua_S,"Point"); tolua_variable(tolua_S,"x",tolua_get_Point_x,tolua_set_Point_x); tolua_variable(tolua_S,"y",tolua_get_Point_y,tolua_set_Point_y); tolua_endmodule(tolua_S); tolua_array(tolua_S,"a",tolua_get_tarray_a,tolua_set_tarray_a); tolua_array(tolua_S,"p",tolua_get_tarray_p,NULL); tolua_array(tolua_S,"pp",tolua_get_tarray_pp,tolua_set_tarray_pp); tolua_module(tolua_S,"M",1); tolua_beginmodule(tolua_S,"M"); tolua_array(tolua_S,"a",tolua_get_tarray_M_ma,tolua_set_tarray_M_ma); tolua_array(tolua_S,"p",tolua_get_tarray_M_mp,NULL); tolua_array(tolua_S,"pp",tolua_get_tarray_M_mpp,tolua_set_tarray_M_mpp); tolua_endmodule(tolua_S); tolua_cclass(tolua_S,"Array","Array","",NULL); tolua_beginmodule(tolua_S,"Array"); tolua_array(tolua_S,"a",tolua_get_tarray_Array_a,tolua_set_tarray_Array_a); tolua_array(tolua_S,"p",tolua_get_tarray_Array_p,tolua_set_tarray_Array_p); tolua_array(tolua_S,"pp",tolua_get_tarray_Array_pp,tolua_set_tarray_Array_pp); tolua_endmodule(tolua_S); tolua_variable(tolua_S,"array",tolua_get_array,tolua_set_array); tolua_variable(tolua_S,"parray",tolua_get_parray_ptr,tolua_set_parray_ptr); tolua_endmodule(tolua_S); return 1; } conky-1.19.6/3rdparty/toluapp/src/tests/tclass.cpp000066400000000000000000000007421451224556600221320ustar00rootroot00000000000000extern "C" { #include "lua.h" #include "lualib.h" #include "lauxlib.h" } #include "tclass.h" //Test::Tst_A* Test::Tst_A::last; //Test::Tst_B* Test::Tst_B::last; //Test::Tst_C* Test::Tst_C::last; extern "C" { int tolua_tclass_open (lua_State*); } int main () { Test::Tst_B* b = new Test::Tst_B; // instance used in Lua code lua_State* L = lua_open(); luaL_openlibs(L); tolua_tclass_open(L); luaL_dofile(L,"tclass.lua"); lua_close(L); delete b; return 0; } conky-1.19.6/3rdparty/toluapp/src/tests/tclass.h000066400000000000000000000034071451224556600216000ustar00rootroot00000000000000#ifndef TCLASS_H #define TCLASS_H #include namespace Test { class Tst_Dummy { }; class Tst_A { int number; public: static Tst_A* last; Tst_A () {last = this;} virtual char* a () { return "A"; } class Tst_AA { public: Tst_AA () {} ~Tst_AA () { } char* aa () { return "AA"; } }; class Tst_BB : public Tst_AA { public: Tst_BB () {} ~Tst_BB () {} Tst_AA* Base () { return this; } }; void set_number(int p_number) { number = p_number;}; int get_number() {return number*2;}; virtual ~Tst_A() {}; }; class Tst_B : public Tst_A { public: static Tst_B* last; Tst_B () {last = this;} virtual char* b () { return "B"; } static Tst_A* create() {return new Tst_B;}; static void* create_void() {return new Tst_B;}; virtual ~Tst_B() {}; }; class Tst_C : public Tst_B { int i; public: static Tst_C* last; Tst_C (int n) : i(n) {last = this;} virtual ~Tst_C () { printf("deleting C: %d\n",i); } virtual char* c () { return "C"; } }; inline Tst_A::Tst_AA* Tst_create_aa () { return new Tst_A::Tst_AA(); } inline bool Tst_is_aa (Tst_A::Tst_AA* obj) { return true; } class Tst_E { void* ptr; public: enum Pete { ONE, TWO, } pete; void get_pete(Pete p) {}; template T get_t() {T a=0; return a;}; Tst_E& operator+(const Tst_E& rvalue) {return *this;}; void pars(int a=0, int b=0) {}; void get_pointer(void* a) {}; Tst_A a; void set_ptr(void* p_ptr) { printf("this is %p, ptr is %p\n", this, p_ptr); ptr = p_ptr; }; void* get_ptr() {return ptr;}; Tst_E(int) {}; }; class Tst_Outside { public: Tst_Outside() {}; }; }; // end of namespace static void outside_func(Test::Tst_Outside* p_out, lua_State* ls) { if (p_out) printf("method!\n"); else printf("static!\n"); //printf("luastate: %i\n", ls); }; #endif conky-1.19.6/3rdparty/toluapp/src/tests/tclass.lua000066400000000000000000000052141451224556600221300ustar00rootroot00000000000000if not Test then local loadlib if not package then loadlib = _G['loadlib'] else loadlib = package.loadlib end f, e, eo = loadlib("./libtclass.so", "luaopen_tclass") if f then f() else print(eo, e) os.exit() end end a = {} rawset(a, ".c_instance", "something") function hello() print("hello world") end rawset(Test.B, "hello", hello) -- type convertion tests --print(Test.A) --print(tolua.type(Test.A.last)) --assert(tolua.type(Test.A.last) == 'Test::Tst_A') -- first time the object is mapped --assert(tolua.type(Test.B.last) == 'Test::Tst_B') -- type convertion to specialized type --assert(tolua.type(Test.A.last) == 'Test::Tst_B') -- no convertion: obj already mapped as B local a = Test.A:new() assert(tolua.type(Test.A.last) == 'Test::Tst_A') -- no type convertion: same type local b = Test.B:new() assert(tolua.type(Test.A.last) == 'Test::Tst_B') -- no convertion: obj already mapped as B local c = Test.luaC:new(0) assert(tolua.type(Test.A.last) == 'Test::Tst_C') -- no convertion: obj already mapped as C assert(tolua.type(Test.luaC.last) == 'Test::Tst_C') local aa = Test.A.AA:new() local bb = Test.A.BB:new() local xx = Test.create_aa() -- method calling tests assert(a:a() == 'A') assert(b:a() == 'A') assert(b:b() == 'B') assert(c:a() == 'A') assert(c:b() == 'B') assert(c:c() == 'C') assert(aa:aa() == 'AA') assert(bb:aa() == bb:Base():aa()) assert(xx:aa() == 'AA') assert(Test.is_aa(bb) == true) -- test ownershipping handling -- should delete objects: 6 7 8 9 10 (it may vary!) local set = {} for i=1,10 do local c = Test.luaC:new(i) if i>5 then tolua.takeownership(c) end --set[i] = c end e = Test.B:new_local() print("e is type "..tolua.type(e)) print("ae is type "..tolua.type(ae)) --e:delete() b:hello() ---------- local out = Test.Outside:new_local() out:outside() Test.Outside:outside_static(nil) print "***** cast" local acast = Test.B:create_void() print("type is "..tolua.type(acast)) local bcast = tolua.cast(acast, "Test::Tst_B") print("bcast is "..tostring(bcast)) print("type is "..tolua.type(bcast)) print(bcast:b()) -- test properies local n = 7 a.number = n assert(a.number == n*2) -- constructors print(getmetatable(Test.A)) print(getmetatable(Test.B)) print(getmetatable(Test.E)) local a = Test.A() local b = Test.B() local e = Test.E(5) --print(e+5) print(tostring(getmetatable(Test.B).__call)) print(tostring(Test.B.__call)) print(tostring(Test.B.__call(Test.B))) print(tolua.type(b)) e:set_ptr(e) local ve = tolua.cast(e:get_ptr(), "Test::Tst_E") ve:set_ptr(ve) print"1" Test.A.pete = {} print"2" table.insert(Test.A.pete, a) print"3" for i=1,100000 do la = {} tolua.inherit(la, a) end print("Class test OK") conky-1.19.6/3rdparty/toluapp/src/tests/tclass.pkg000066400000000000000000000026551451224556600221360ustar00rootroot00000000000000$#include "tclass.h" $Test::Tst_A* Test::Tst_A::last; $Test::Tst_B* Test::Tst_B::last; $Test::Tst_C* Test::Tst_C::last; $renaming ^Tst_ @ namespace Test { class Tst_Dummy; class Tst_A { static Tst_A* last; Tst_A (); virtual char* a (); class Tst_AA { Tst_AA () {} ~Tst_AA () {} char* aa () { return "AA"; } }; class Tst_BB : public Tst_AA { Tst_BB () {} ~Tst_BB () {} Tst_AA* Base () { return this; } }; tolua_property int number; }; class Tst_E { public: typedef enum{ ONE, TWO, } Pete; Pete pete; float get_t(); void get_pete(Pete p); Tst_E& operator+(const Tst_E& rvalue); void pars(int a=0xa, int b=GetNumber(GetNumber(1,2))); void get_pointer(void* a=NULL); void set_ptr(void* p_ptr) { printf("this is %p, ptr is %p\n", this, p_ptr); ptr = p_ptr; }; void* get_ptr() {return ptr;}; Tst_A a; Tst_E(int); //~Tst_E(); }; class Tst_B : public Tst_A { static Tst_B* last; Tst_B (); virtual char* b (); static Tst_A* create(); static void* create_void() {return new Tst_B;}; }; class Tst_C@luaC : public Tst_B { static Tst_C* last; Tst_C (int n); ~Tst_C (); virtual char* c (); }; Tst_A::Tst_AA* Tst_create_aa (); bool Tst_is_aa (Tst_A::Tst_AA* obj); class Tst_Outside { tolua_outside void outside_func@outside(lua_State* ls); static tolua_outside void outside_func@outside_static(Tst_Outside* instance, lua_State* ls); Tst_Outside() {}; }; }; // end of namespace conky-1.19.6/3rdparty/toluapp/src/tests/tconstant.h000066400000000000000000000003451451224556600223220ustar00rootroot00000000000000#define FIRST 1 #define SECOND 2 enum { ONE = 1, TWO = 2 }; #define M_FIRST 1 #define M_SECOND 2 enum { M_ONE = 1, M_TWO = 2 }; class A { public: #define FIRST 1 #define SECOND 2 enum { ONE = 1, TWO = 2 }; }; conky-1.19.6/3rdparty/toluapp/src/tests/tconstant.lua000066400000000000000000000003101451224556600226440ustar00rootroot00000000000000assert(FIRST==M.FIRST) assert(FIRST==A.FIRST) assert(SECOND==M.SECOND) assert(SECOND==A.SECOND) assert(ONE==M.ONE) assert(ONE==A.ONE) assert(TWO==M.TWO) assert(TWO==A.TWO) print("Constant test OK") conky-1.19.6/3rdparty/toluapp/src/tests/tconstant.pkg000066400000000000000000000004411451224556600226510ustar00rootroot00000000000000$#include "tconstant.h" #define FIRST 1 #define SECOND 2 enum { ONE = 1, TWO = 2 }; module M { #define M_FIRST@FIRST 1 #define M_SECOND@SECOND 2 enum { M_ONE@ONE = 1, M_TWO@TWO = 2 }; } class A { public: #define FIRST 1 #define SECOND 2 enum { ONE = 1, TWO = 2 }; }; conky-1.19.6/3rdparty/toluapp/src/tests/tdirective.lua000066400000000000000000000001111451224556600227700ustar00rootroot00000000000000assert(a==3) assert(A==4) assert(func()==5) print("Directive test OK") conky-1.19.6/3rdparty/toluapp/src/tests/tdirective.pkg000066400000000000000000000004731451224556600230030ustar00rootroot00000000000000$#include "lualib.h" $#include "lauxlib.h" $int a; $extern int a; $int main (void) ${ $ lua_State* L = lua_open(); $ luaopen_base(L); $ tolua_tdirective_open(L); $ lua_dofile(L,"tdirective.lua"); $ lua_close(L); $ return 0; $} $pfile "tdirectivepkg.pkg" $< a = 3; $> $[ A = 4 $] $lfile "tdirectivelua.lua" conky-1.19.6/3rdparty/toluapp/src/tests/tdirectivebind.c000066400000000000000000000035301451224556600232760ustar00rootroot00000000000000/* ** Lua binding: tdirective ** Generated automatically by tolua 5.0a-CDLVS2 on 08/08/03 17:06:24. */ #ifndef __cplusplus #include "stdlib.h" #endif #include "string.h" #include "tolua.h" /* Exported function */ TOLUA_API int tolua_tdirective_open (lua_State* tolua_S); #include "lualib.h" #include "lauxlib.h" int a; extern int a; int main (void) { lua_State* L = lua_open(); luaopen_base(L); tolua_tdirective_open(L); lua_dofile(L,"tdirective.lua"); lua_close(L); return 0; } /* function to register type */ static void tolua_reg_types (lua_State* tolua_S) { } /* get function: a */ static int tolua_get_a(lua_State* tolua_S) { tolua_pushnumber(tolua_S,(double)a); return 1; } /* set function: a */ static int tolua_set_a(lua_State* tolua_S) { #ifndef TOLUA_RELEASE tolua_Error tolua_err; if (!tolua_isnumber(tolua_S,2,0,&tolua_err)) tolua_error(tolua_S,"#vinvalid type in variable assignment.",&tolua_err); #endif a = ((int) tolua_tonumber(tolua_S,2,0)); return 0; } /* Open function */ TOLUA_API int tolua_tdirective_open (lua_State* tolua_S) { tolua_open(tolua_S); tolua_reg_types(tolua_S); tolua_module(tolua_S,NULL,1); tolua_beginmodule(tolua_S,NULL); tolua_variable(tolua_S,"a",tolua_get_a,tolua_set_a); { a = 3; } { /* begin embedded lua code */ static unsigned char B[] = { 10, 65, 32, 61, 32, 52,32 }; lua_dobuffer(tolua_S,(char*)B,sizeof(B),"tolua: embedded Lua code"); } /* end of embedded lua code */ { /* begin embedded lua code */ static unsigned char B[] = { 10,102,117,110, 99,116,105,111,110, 32,102,117,110, 99, 32, 40, 41, 10,114,101,116,117,114,110, 32, 53, 10,101,110,100, 32 }; lua_dobuffer(tolua_S,(char*)B,sizeof(B),"tolua: embedded Lua code"); } /* end of embedded lua code */ tolua_endmodule(tolua_S); return 1; } conky-1.19.6/3rdparty/toluapp/src/tests/tdirectivelua.lua000066400000000000000000000000371451224556600235010ustar00rootroot00000000000000function func () return 5 end conky-1.19.6/3rdparty/toluapp/src/tests/tdirectivepkg.pkg000066400000000000000000000000171451224556600234770ustar00rootroot00000000000000extern int a; conky-1.19.6/3rdparty/toluapp/src/tests/tfunction.h000066400000000000000000000062171451224556600223220ustar00rootroot00000000000000#ifndef tfunction_h #define tfunction_h #include #include typedef enum { FIRST = 1, SECOND = 2 } Order; class Point { char m_s[64]; float m_x; float m_y; public: enum Error { SUCCESS = 0, ERROR = 1 }; Point (float x=0, float y=0) : m_x(x), m_y(y) { } virtual ~Point () { } void set (float x, float y) { m_x = x, m_y = y; } void set (float v[2]=0) { m_x = v[0], m_y=v[1]; } void setpointer (Point* p) { *this = *p; } void setref (Point& p) { *this = p; } void setvalue (Point p) { *this = p; } void setconst (const Point* p) { *this = *p; } void setname (const char* s) { strncpy(m_s,s,63); } void get (float* x, float* y) const { *x = m_x, *y = m_y; } void get (float v[2]) const { v[0] = m_x, v[1] = m_y; } Point* getpointer () { return this; } Point& getref () { return *this; } Point getvalue () { return *this; } const Point* getconst () const { return this; } const char* getname () const { return m_s; } Point operator+ (const Point& p) const { return Point(m_x+p.m_x,m_y+p.m_y); } Point operator- (const Point& p) const { return Point(m_x-p.m_x,m_y-p.m_y); } Point operator* (const Point& p) const { return Point(m_x*p.m_x,m_y*p.m_y); } Point operator/ (float n) const { return Point(m_x/n,m_y/n); } bool operator< (const Point& p) const { if (m_x < p.m_x) return true; else if (m_x > p.m_x) return false; else return m_y < p.m_y; } bool operator<= (const Point& p) const { return operator<(p) || operator==(p); } bool operator== (const Point& p) const { return m_x==p.m_x && m_y==p.m_y; } float operator[] (int i) const { return (i==0) ? m_x : m_y; } float& operator[] (int i) { return (i==0) ? m_x : m_y; } static Error echo (Error e) { return e; } }; inline Point add (const Point& p1, const Point& p2) { return p1+p2; } inline Point sub (const Point& p1, const Point& p2) { return p1-p2; } inline Point mult (const Point& p1, const Point& p2) { return p1*p2; } inline Point div (const Point& p1, float n) { return p1/n; } inline void getpoint (const Point* p, float* x, float* y) { p->get(x,y); } inline void setpoint (Point* p, float x=0, float y=0) { p->set(x,y); } inline Point average (int n, Point v[]) { Point p(0,0); for (int i=0; iq) assert(t>=q) local p = Point:new(1,2) assert(p[1]==1 and p[2]==2) p[1]=3; p[2] = p[2]+2 local x, y = p:get() assert(x==3 and y==4) local n = 3 local v = {Point:new(0,1), Point:new(2,3), Point:new(4,5)} local m = average(n,v) local c = averagepointer(n,v) local t = {} copyvector(n,v,t) local l = Point:new() for i=1,n do assert(v[i]==t[i]) l[1] = l[1] + v[i][1] l[2] = l[2] + v[i][2] end l = l/n assert(m==l) assert(c==l) assert(Point.SUCCESS==Point:echo(Point.SUCCESS)) assert(Point.ERROR==Point:echo(Point.ERROR)) assert(FIRST==invert(SECOND)) assert(SECOND==invert(FIRST)) print("Function test OK") conky-1.19.6/3rdparty/toluapp/src/tests/tfunction.pkg000066400000000000000000000033221451224556600226460ustar00rootroot00000000000000$#include "tfunction.h" typedef enum { FIRST = 1, SECOND = 2 } Order; class Point { enum Error { SUCCESS = 0, ERROR = 1 }; Point (float x=0, float y=0); virtual ~Point (); void set (float x, float y); void set (float v[2]=0); void setpointer (Point* p); void setref (Point& p); void setvalue (Point p); void setconst (const Point* p); void setname (const char* s); void get (float* x=0, float* y=0) const; void get (float v[2]=0) const; Point* getpointer (); Point& getref (); Point getvalue (); const Point* getconst () const; const char* getname () const; Point operator+ (const Point& p) const; Point operator- (const Point& p) const; Point operator* (const Point& p) const; Point operator/ (float n) const; bool operator< (const Point& p) const; bool operator<= (const Point& p) const; bool operator== (const Point& p) const; float operator[] (int i) const; float& operator[] (int i); static Error echo (Error e); }; module alg { Point add (const Point& p1, const Point& p2); Point sub (const Point& p1, const Point& p2); Point mult (const Point& p1, const Point& p2); Point div (const Point& p1, float n); } void getpoint (const Point* p, float* x=0, float* y=0); void setpoint (Point* p, float x=0, float y=0); inline Point average (int n, Point v[n]); inline Point averagepointer (int n, Point* v[n]); inline void copyvector (int n, const Point v[n], Point u[n]=(u+i)); inline Order invert (Order o); $cfile "tfunction.h" /* class ColorPoint : public Point { ColorPoint (float px, float py, float cr=0.0f, float cg=0.0f, float cb=0.0f); virtual ~ColorPoint (); virtual void getcolor (float* red, float *green, float *blue) const; static const Point* MakeRed (float x, float y); }; */ conky-1.19.6/3rdparty/toluapp/src/tests/tmodule.c000066400000000000000000000004461451224556600217530ustar00rootroot00000000000000#include "lualib.h" #include "lauxlib.h" #include "tmodule.h" int a = 1; int b = 2; int c = 3; int d = 4; int main () { int tolua_tmodule_open (lua_State*); lua_State* L = lua_open(); luaopen_base(L); tolua_tmodule_open(L); lua_dofile(L,"tmodule.lua"); lua_close(L); return 0; } conky-1.19.6/3rdparty/toluapp/src/tests/tmodule.h000066400000000000000000000001151451224556600217510ustar00rootroot00000000000000#include extern int a; extern int b; extern int c; extern int d; conky-1.19.6/3rdparty/toluapp/src/tests/tmodule.lua000066400000000000000000000005221451224556600223050ustar00rootroot00000000000000-- test valid access assert(A.a==1) assert(A.B.b==2) assert(A.B.C.c==3) -- test invalid access assert(A.B.a==nil) -- no inheritance assert(A.B.C.a==nil) assert(A.b==nil) -- no access the inner module assert(A.c==nil) assert(A.B.c==nil) -- test variables appended to existing modules assert(A.d==4) print("Module test OK") conky-1.19.6/3rdparty/toluapp/src/tests/tmodule.pkg000066400000000000000000000002221451224556600223020ustar00rootroot00000000000000 $#include "tmodule.h" module A { extern int a; module B { extern int b; module C { extern int c; } } } module A { extern int d; } conky-1.19.6/3rdparty/toluapp/src/tests/tmodulebind.c000066400000000000000000000057031451224556600226110ustar00rootroot00000000000000/* ** Lua binding: tmodule ** Generated automatically by tolua 5.0a-CDLVS2 on 08/08/03 17:06:13. */ #ifndef __cplusplus #include "stdlib.h" #endif #include "string.h" #include "tolua.h" /* Exported function */ TOLUA_API int tolua_tmodule_open (lua_State* tolua_S); #include "tmodule.h" /* function to register type */ static void tolua_reg_types (lua_State* tolua_S) { } /* get function: a */ static int tolua_get_A_a(lua_State* tolua_S) { tolua_pushnumber(tolua_S,(double)a); return 1; } /* set function: a */ static int tolua_set_A_a(lua_State* tolua_S) { #ifndef TOLUA_RELEASE tolua_Error tolua_err; if (!tolua_isnumber(tolua_S,2,0,&tolua_err)) tolua_error(tolua_S,"#vinvalid type in variable assignment.",&tolua_err); #endif a = ((int) tolua_tonumber(tolua_S,2,0)); return 0; } /* get function: b */ static int tolua_get_B_b(lua_State* tolua_S) { tolua_pushnumber(tolua_S,(double)b); return 1; } /* set function: b */ static int tolua_set_B_b(lua_State* tolua_S) { #ifndef TOLUA_RELEASE tolua_Error tolua_err; if (!tolua_isnumber(tolua_S,2,0,&tolua_err)) tolua_error(tolua_S,"#vinvalid type in variable assignment.",&tolua_err); #endif b = ((int) tolua_tonumber(tolua_S,2,0)); return 0; } /* get function: c */ static int tolua_get_C_c(lua_State* tolua_S) { tolua_pushnumber(tolua_S,(double)c); return 1; } /* set function: c */ static int tolua_set_C_c(lua_State* tolua_S) { #ifndef TOLUA_RELEASE tolua_Error tolua_err; if (!tolua_isnumber(tolua_S,2,0,&tolua_err)) tolua_error(tolua_S,"#vinvalid type in variable assignment.",&tolua_err); #endif c = ((int) tolua_tonumber(tolua_S,2,0)); return 0; } /* get function: d */ static int tolua_get_A_d(lua_State* tolua_S) { tolua_pushnumber(tolua_S,(double)d); return 1; } /* set function: d */ static int tolua_set_A_d(lua_State* tolua_S) { #ifndef TOLUA_RELEASE tolua_Error tolua_err; if (!tolua_isnumber(tolua_S,2,0,&tolua_err)) tolua_error(tolua_S,"#vinvalid type in variable assignment.",&tolua_err); #endif d = ((int) tolua_tonumber(tolua_S,2,0)); return 0; } /* Open function */ TOLUA_API int tolua_tmodule_open (lua_State* tolua_S) { tolua_open(tolua_S); tolua_reg_types(tolua_S); tolua_module(tolua_S,NULL,0); tolua_beginmodule(tolua_S,NULL); tolua_module(tolua_S,"A",1); tolua_beginmodule(tolua_S,"A"); tolua_variable(tolua_S,"a",tolua_get_A_a,tolua_set_A_a); tolua_module(tolua_S,"B",1); tolua_beginmodule(tolua_S,"B"); tolua_variable(tolua_S,"b",tolua_get_B_b,tolua_set_B_b); tolua_module(tolua_S,"C",1); tolua_beginmodule(tolua_S,"C"); tolua_variable(tolua_S,"c",tolua_get_C_c,tolua_set_C_c); tolua_endmodule(tolua_S); tolua_endmodule(tolua_S); tolua_endmodule(tolua_S); tolua_module(tolua_S,"A",1); tolua_beginmodule(tolua_S,"A"); tolua_variable(tolua_S,"d",tolua_get_A_d,tolua_set_A_d); tolua_endmodule(tolua_S); tolua_endmodule(tolua_S); return 1; } conky-1.19.6/3rdparty/toluapp/src/tests/tnamespace.h000066400000000000000000000001701451224556600224210ustar00rootroot00000000000000namespace A { enum {FIRST=1}; extern int a; namespace B { extern int b; namespace C { extern int c; } } } conky-1.19.6/3rdparty/toluapp/src/tests/tnamespace.lua000066400000000000000000000004261451224556600227570ustar00rootroot00000000000000-- test valid access assert(A.a==1) assert(A.B.b==2) assert(A.B.C.c==3) -- test invalid access assert(A.B.a==nil) -- no inheritance assert(A.B.C.a==nil) assert(A.b==nil) -- no access the inner module assert(A.c==nil) assert(A.B.c==nil) print("Namespace test OK") conky-1.19.6/3rdparty/toluapp/src/tests/tnamespace.pkg000066400000000000000000000001551451224556600227560ustar00rootroot00000000000000 $#include "tnamespace.h" namespace A { int a; namespace B { int b; namespace C { int c; } } } conky-1.19.6/3rdparty/toluapp/src/tests/tvariable.c000066400000000000000000000014131451224556600222460ustar00rootroot00000000000000#include "lualib.h" #include "lauxlib.h" #include "tvariable.h" int i = 1; float f = 2.0f;; double d = 3.0; char* s = "Hello world"; void* v = (void*)1; char n[64] = "Hi there"; A a = {11,12.0f,13.0,"Hello world from class",(void*)1,"Hi there from class"}; B* b; U u; int mi = 21; float mf = 22.0f; double md = 23.0; char* ms = "Hello world in module"; void* mv = NULL; char mn[64] = "Hi there in module"; A ma = {31,32.0f,33.0,"Hello world from class in module", NULL,"Hi there from class in module"}; B* mb; int main (void) { int tolua_tvariable_open (lua_State*); lua_State* L = lua_open(); B bb = {a,NULL}; B bbb = {ma,&bb}; b = &bb; mb = &bbb; luaopen_base(L); tolua_tvariable_open(L); lua_dofile(L,"tvariable.lua"); lua_close(L); return 0; } conky-1.19.6/3rdparty/toluapp/src/tests/tvariable.h000066400000000000000000000007201451224556600222530ustar00rootroot00000000000000typedef struct A A; typedef struct B B; typedef union U U; struct A { int i; float f; double d; char* s; void* v; char n[64]; }; union U { int i; float f; }; struct B { A a; B* b; }; extern int i; extern float f; extern double d; extern char* s; extern void* v; extern char n[64]; extern A a; extern B* b; extern U u; extern int mi; extern float mf; extern double md; extern char* ms; extern void* mv; extern char mn[64]; extern A ma; extern B* mb; conky-1.19.6/3rdparty/toluapp/src/tests/tvariable.lua000066400000000000000000000027221451224556600226110ustar00rootroot00000000000000assert(i==1) assert(f==2) assert(d==3) assert(s=="Hello world") assert(n=="Hi there") n = "Hello" assert(n=="Hello") assert(a.i==11) assert(a.f==12) assert(a.d==13) assert(a.s=="Hello world from class") assert(a.n=="Hi there from class") a.n = "Hello from class" assert(a.n=="Hello from class") assert(v==a.v) u.i = 2 assert(u.i==2) u.f = 2 assert(u.f==2) assert(u.i~=2) assert(M.mi==21) assert(M.mf==22) assert(M.md==23) assert(M.ms=="Hello world in module") assert(M.mn=="Hi there in module") M.mn = "Hello in module" assert(M.mn=="Hello in module") assert(M.mv==nil) assert(M.ma.i==31) assert(M.ma.f==32) assert(M.ma.d==33) assert(M.ma.s=="Hello world from class in module") assert(M.ma.n=="Hi there from class in module") M.ma.n = "Hello from class in module" assert(M.ma.n=="Hello from class in module") assert(M.ma.v==nil) assert(a.i==b.a.i) assert(a.f==b.a.f) assert(a.d==b.a.d) assert(a.s==b.a.s) assert(a.v==b.a.v) assert(b.b==nil) assert(M.ma.i==M.mb.a.i) assert(M.ma.f==M.mb.a.f) assert(M.ma.d==M.mb.a.d) assert(M.ma.s==M.mb.a.s) assert(M.ma.v==M.mb.a.v) assert(a.i==M.mb.b.a.i) assert(a.f==M.mb.b.a.f) assert(a.d==M.mb.b.a.d) assert(a.s==M.mb.b.a.s) assert(a.v==M.mb.b.a.v) assert(M.mb.b.b==nil) assert(s~=rawget(_G,"s")) -- because s represents a C variable s = "Hello" assert(s==rawget(_G,"s")) -- because s is mapped as const f = 25.0 assert(f~=rawget(_G,"f")) -- because f represents a C variable b.a.i = 5 assert(b.a.i==M.mb.b.a.i) print("Variable test OK") conky-1.19.6/3rdparty/toluapp/src/tests/tvariable.pkg000066400000000000000000000007301451224556600226060ustar00rootroot00000000000000$#include "tvariable.h" struct A { int i; float f; double d; char* s; void* v; char n[64]; }; struct B { A a; B* b; }; union U { int i; float f; }; extern int i; extern float f; extern double d; extern const char* s; extern void* v; extern char n[64]; extern A a; extern B* b; extern U u; module M { extern int mi; extern float mf; extern double md; extern const char* ms; extern void* mv; extern const char mn[64]; extern A a; extern A ma; extern B* mb; } conky-1.19.6/3rdparty/toluapp/src/tests/tvariablebind.c000066400000000000000000000425021451224556600231070ustar00rootroot00000000000000/* ** Lua binding: tvariable ** Generated automatically by tolua 5.0a-CDLVS2 on 08/08/03 17:06:18. */ #ifndef __cplusplus #include "stdlib.h" #endif #include "string.h" #include "tolua.h" /* Exported function */ TOLUA_API int tolua_tvariable_open (lua_State* tolua_S); #include "tvariable.h" /* function to register type */ static void tolua_reg_types (lua_State* tolua_S) { tolua_usertype(tolua_S,"A"); tolua_usertype(tolua_S,"U"); tolua_usertype(tolua_S,"B"); } /* get function: i of class A */ static int tolua_get_A_i(lua_State* tolua_S) { A* self = (A*) tolua_tousertype(tolua_S,1,0); #ifndef TOLUA_RELEASE if (!self) tolua_error(tolua_S,"invalid 'self' in accessing variable 'i'",NULL); #endif tolua_pushnumber(tolua_S,(double)self->i); return 1; } /* set function: i of class A */ static int tolua_set_A_i(lua_State* tolua_S) { A* self = (A*) tolua_tousertype(tolua_S,1,0); #ifndef TOLUA_RELEASE tolua_Error tolua_err; if (!self) tolua_error(tolua_S,"invalid 'self' in accessing variable 'i'",NULL); if (!tolua_isnumber(tolua_S,2,0,&tolua_err)) tolua_error(tolua_S,"#vinvalid type in variable assignment.",&tolua_err); #endif self->i = ((int) tolua_tonumber(tolua_S,2,0)); return 0; } /* get function: f of class A */ static int tolua_get_A_f(lua_State* tolua_S) { A* self = (A*) tolua_tousertype(tolua_S,1,0); #ifndef TOLUA_RELEASE if (!self) tolua_error(tolua_S,"invalid 'self' in accessing variable 'f'",NULL); #endif tolua_pushnumber(tolua_S,(double)self->f); return 1; } /* set function: f of class A */ static int tolua_set_A_f(lua_State* tolua_S) { A* self = (A*) tolua_tousertype(tolua_S,1,0); #ifndef TOLUA_RELEASE tolua_Error tolua_err; if (!self) tolua_error(tolua_S,"invalid 'self' in accessing variable 'f'",NULL); if (!tolua_isnumber(tolua_S,2,0,&tolua_err)) tolua_error(tolua_S,"#vinvalid type in variable assignment.",&tolua_err); #endif self->f = ((float) tolua_tonumber(tolua_S,2,0)); return 0; } /* get function: d of class A */ static int tolua_get_A_d(lua_State* tolua_S) { A* self = (A*) tolua_tousertype(tolua_S,1,0); #ifndef TOLUA_RELEASE if (!self) tolua_error(tolua_S,"invalid 'self' in accessing variable 'd'",NULL); #endif tolua_pushnumber(tolua_S,(double)self->d); return 1; } /* set function: d of class A */ static int tolua_set_A_d(lua_State* tolua_S) { A* self = (A*) tolua_tousertype(tolua_S,1,0); #ifndef TOLUA_RELEASE tolua_Error tolua_err; if (!self) tolua_error(tolua_S,"invalid 'self' in accessing variable 'd'",NULL); if (!tolua_isnumber(tolua_S,2,0,&tolua_err)) tolua_error(tolua_S,"#vinvalid type in variable assignment.",&tolua_err); #endif self->d = ((double) tolua_tonumber(tolua_S,2,0)); return 0; } /* get function: s of class A */ static int tolua_get_A_s(lua_State* tolua_S) { A* self = (A*) tolua_tousertype(tolua_S,1,0); #ifndef TOLUA_RELEASE if (!self) tolua_error(tolua_S,"invalid 'self' in accessing variable 's'",NULL); #endif tolua_pushstring(tolua_S,(const char*)self->s); return 1; } /* set function: s of class A */ static int tolua_set_A_s(lua_State* tolua_S) { A* self = (A*) tolua_tousertype(tolua_S,1,0); #ifndef TOLUA_RELEASE tolua_Error tolua_err; if (!self) tolua_error(tolua_S,"invalid 'self' in accessing variable 's'",NULL); if (!tolua_isstring(tolua_S,2,0,&tolua_err)) tolua_error(tolua_S,"#vinvalid type in variable assignment.",&tolua_err); #endif self->s = ((char*) tolua_tostring(tolua_S,2,0)); return 0; } /* get function: v of class A */ static int tolua_get_A_v(lua_State* tolua_S) { A* self = (A*) tolua_tousertype(tolua_S,1,0); #ifndef TOLUA_RELEASE if (!self) tolua_error(tolua_S,"invalid 'self' in accessing variable 'v'",NULL); #endif tolua_pushuserdata(tolua_S,(void*)self->v); return 1; } /* set function: v of class A */ static int tolua_set_A_v(lua_State* tolua_S) { A* self = (A*) tolua_tousertype(tolua_S,1,0); #ifndef TOLUA_RELEASE tolua_Error tolua_err; if (!self) tolua_error(tolua_S,"invalid 'self' in accessing variable 'v'",NULL); if (!tolua_isuserdata(tolua_S,2,0,&tolua_err)) tolua_error(tolua_S,"#vinvalid type in variable assignment.",&tolua_err); #endif self->v = ((void*) tolua_touserdata(tolua_S,2,0)); return 0; } /* get function: n of class A */ static int tolua_get_A_n(lua_State* tolua_S) { A* self = (A*) tolua_tousertype(tolua_S,1,0); #ifndef TOLUA_RELEASE if (!self) tolua_error(tolua_S,"invalid 'self' in accessing variable 'n'",NULL); #endif tolua_pushstring(tolua_S,(const char*)self->n); return 1; } /* set function: n of class A */ static int tolua_set_A_n(lua_State* tolua_S) { A* self = (A*) tolua_tousertype(tolua_S,1,0); #ifndef TOLUA_RELEASE tolua_Error tolua_err; if (!self) tolua_error(tolua_S,"invalid 'self' in accessing variable 'n'",NULL); if (!tolua_isstring(tolua_S,2,0,&tolua_err)) tolua_error(tolua_S,"#vinvalid type in variable assignment.",&tolua_err); #endif strncpy(self->n,tolua_tostring(tolua_S,2,0),64-1); return 0; } /* get function: a of class B */ static int tolua_get_B_a(lua_State* tolua_S) { B* self = (B*) tolua_tousertype(tolua_S,1,0); #ifndef TOLUA_RELEASE if (!self) tolua_error(tolua_S,"invalid 'self' in accessing variable 'a'",NULL); #endif tolua_pushusertype(tolua_S,(void*)&self->a,"A"); return 1; } /* set function: a of class B */ static int tolua_set_B_a(lua_State* tolua_S) { B* self = (B*) tolua_tousertype(tolua_S,1,0); #ifndef TOLUA_RELEASE tolua_Error tolua_err; if (!self) tolua_error(tolua_S,"invalid 'self' in accessing variable 'a'",NULL); if (!tolua_isusertype(tolua_S,2,"A",0,&tolua_err)) tolua_error(tolua_S,"#vinvalid type in variable assignment.",&tolua_err); #endif self->a = *((A*) tolua_tousertype(tolua_S,2,0)); return 0; } /* get function: b of class B */ static int tolua_get_B_b_ptr(lua_State* tolua_S) { B* self = (B*) tolua_tousertype(tolua_S,1,0); #ifndef TOLUA_RELEASE if (!self) tolua_error(tolua_S,"invalid 'self' in accessing variable 'b'",NULL); #endif tolua_pushusertype(tolua_S,(void*)self->b,"B"); return 1; } /* set function: b of class B */ static int tolua_set_B_b_ptr(lua_State* tolua_S) { B* self = (B*) tolua_tousertype(tolua_S,1,0); #ifndef TOLUA_RELEASE tolua_Error tolua_err; if (!self) tolua_error(tolua_S,"invalid 'self' in accessing variable 'b'",NULL); if (!tolua_isusertype(tolua_S,2,"B",0,&tolua_err)) tolua_error(tolua_S,"#vinvalid type in variable assignment.",&tolua_err); #endif self->b = ((B*) tolua_tousertype(tolua_S,2,0)); return 0; } /* get function: i of class U */ static int tolua_get_U_i(lua_State* tolua_S) { U* self = (U*) tolua_tousertype(tolua_S,1,0); #ifndef TOLUA_RELEASE if (!self) tolua_error(tolua_S,"invalid 'self' in accessing variable 'i'",NULL); #endif tolua_pushnumber(tolua_S,(double)self->i); return 1; } /* set function: i of class U */ static int tolua_set_U_i(lua_State* tolua_S) { U* self = (U*) tolua_tousertype(tolua_S,1,0); #ifndef TOLUA_RELEASE tolua_Error tolua_err; if (!self) tolua_error(tolua_S,"invalid 'self' in accessing variable 'i'",NULL); if (!tolua_isnumber(tolua_S,2,0,&tolua_err)) tolua_error(tolua_S,"#vinvalid type in variable assignment.",&tolua_err); #endif self->i = ((int) tolua_tonumber(tolua_S,2,0)); return 0; } /* get function: f of class U */ static int tolua_get_U_f(lua_State* tolua_S) { U* self = (U*) tolua_tousertype(tolua_S,1,0); #ifndef TOLUA_RELEASE if (!self) tolua_error(tolua_S,"invalid 'self' in accessing variable 'f'",NULL); #endif tolua_pushnumber(tolua_S,(double)self->f); return 1; } /* set function: f of class U */ static int tolua_set_U_f(lua_State* tolua_S) { U* self = (U*) tolua_tousertype(tolua_S,1,0); #ifndef TOLUA_RELEASE tolua_Error tolua_err; if (!self) tolua_error(tolua_S,"invalid 'self' in accessing variable 'f'",NULL); if (!tolua_isnumber(tolua_S,2,0,&tolua_err)) tolua_error(tolua_S,"#vinvalid type in variable assignment.",&tolua_err); #endif self->f = ((float) tolua_tonumber(tolua_S,2,0)); return 0; } /* get function: i */ static int tolua_get_i(lua_State* tolua_S) { tolua_pushnumber(tolua_S,(double)i); return 1; } /* set function: i */ static int tolua_set_i(lua_State* tolua_S) { #ifndef TOLUA_RELEASE tolua_Error tolua_err; if (!tolua_isnumber(tolua_S,2,0,&tolua_err)) tolua_error(tolua_S,"#vinvalid type in variable assignment.",&tolua_err); #endif i = ((int) tolua_tonumber(tolua_S,2,0)); return 0; } /* get function: f */ static int tolua_get_f(lua_State* tolua_S) { tolua_pushnumber(tolua_S,(double)f); return 1; } /* set function: f */ static int tolua_set_f(lua_State* tolua_S) { #ifndef TOLUA_RELEASE tolua_Error tolua_err; if (!tolua_isnumber(tolua_S,2,0,&tolua_err)) tolua_error(tolua_S,"#vinvalid type in variable assignment.",&tolua_err); #endif f = ((float) tolua_tonumber(tolua_S,2,0)); return 0; } /* get function: d */ static int tolua_get_d(lua_State* tolua_S) { tolua_pushnumber(tolua_S,(double)d); return 1; } /* set function: d */ static int tolua_set_d(lua_State* tolua_S) { #ifndef TOLUA_RELEASE tolua_Error tolua_err; if (!tolua_isnumber(tolua_S,2,0,&tolua_err)) tolua_error(tolua_S,"#vinvalid type in variable assignment.",&tolua_err); #endif d = ((double) tolua_tonumber(tolua_S,2,0)); return 0; } /* get function: s */ static int tolua_get_s(lua_State* tolua_S) { tolua_pushstring(tolua_S,(const char*)s); return 1; } /* get function: v */ static int tolua_get_v(lua_State* tolua_S) { tolua_pushuserdata(tolua_S,(void*)v); return 1; } /* set function: v */ static int tolua_set_v(lua_State* tolua_S) { #ifndef TOLUA_RELEASE tolua_Error tolua_err; if (!tolua_isuserdata(tolua_S,2,0,&tolua_err)) tolua_error(tolua_S,"#vinvalid type in variable assignment.",&tolua_err); #endif v = ((void*) tolua_touserdata(tolua_S,2,0)); return 0; } /* get function: n */ static int tolua_get_n(lua_State* tolua_S) { tolua_pushstring(tolua_S,(const char*)n); return 1; } /* set function: n */ static int tolua_set_n(lua_State* tolua_S) { #ifndef TOLUA_RELEASE tolua_Error tolua_err; if (!tolua_isstring(tolua_S,2,0,&tolua_err)) tolua_error(tolua_S,"#vinvalid type in variable assignment.",&tolua_err); #endif strncpy(n,tolua_tostring(tolua_S,2,0),64-1); return 0; } /* get function: a */ static int tolua_get_a(lua_State* tolua_S) { tolua_pushusertype(tolua_S,(void*)&a,"A"); return 1; } /* set function: a */ static int tolua_set_a(lua_State* tolua_S) { #ifndef TOLUA_RELEASE tolua_Error tolua_err; if (!tolua_isusertype(tolua_S,2,"A",0,&tolua_err)) tolua_error(tolua_S,"#vinvalid type in variable assignment.",&tolua_err); #endif a = *((A*) tolua_tousertype(tolua_S,2,0)); return 0; } /* get function: b */ static int tolua_get_b_ptr(lua_State* tolua_S) { tolua_pushusertype(tolua_S,(void*)b,"B"); return 1; } /* set function: b */ static int tolua_set_b_ptr(lua_State* tolua_S) { #ifndef TOLUA_RELEASE tolua_Error tolua_err; if (!tolua_isusertype(tolua_S,2,"B",0,&tolua_err)) tolua_error(tolua_S,"#vinvalid type in variable assignment.",&tolua_err); #endif b = ((B*) tolua_tousertype(tolua_S,2,0)); return 0; } /* get function: u */ static int tolua_get_u(lua_State* tolua_S) { tolua_pushusertype(tolua_S,(void*)&u,"U"); return 1; } /* set function: u */ static int tolua_set_u(lua_State* tolua_S) { #ifndef TOLUA_RELEASE tolua_Error tolua_err; if (!tolua_isusertype(tolua_S,2,"U",0,&tolua_err)) tolua_error(tolua_S,"#vinvalid type in variable assignment.",&tolua_err); #endif u = *((U*) tolua_tousertype(tolua_S,2,0)); return 0; } /* get function: mi */ static int tolua_get_M_mi(lua_State* tolua_S) { tolua_pushnumber(tolua_S,(double)mi); return 1; } /* set function: mi */ static int tolua_set_M_mi(lua_State* tolua_S) { #ifndef TOLUA_RELEASE tolua_Error tolua_err; if (!tolua_isnumber(tolua_S,2,0,&tolua_err)) tolua_error(tolua_S,"#vinvalid type in variable assignment.",&tolua_err); #endif mi = ((int) tolua_tonumber(tolua_S,2,0)); return 0; } /* get function: mf */ static int tolua_get_M_mf(lua_State* tolua_S) { tolua_pushnumber(tolua_S,(double)mf); return 1; } /* set function: mf */ static int tolua_set_M_mf(lua_State* tolua_S) { #ifndef TOLUA_RELEASE tolua_Error tolua_err; if (!tolua_isnumber(tolua_S,2,0,&tolua_err)) tolua_error(tolua_S,"#vinvalid type in variable assignment.",&tolua_err); #endif mf = ((float) tolua_tonumber(tolua_S,2,0)); return 0; } /* get function: md */ static int tolua_get_M_md(lua_State* tolua_S) { tolua_pushnumber(tolua_S,(double)md); return 1; } /* set function: md */ static int tolua_set_M_md(lua_State* tolua_S) { #ifndef TOLUA_RELEASE tolua_Error tolua_err; if (!tolua_isnumber(tolua_S,2,0,&tolua_err)) tolua_error(tolua_S,"#vinvalid type in variable assignment.",&tolua_err); #endif md = ((double) tolua_tonumber(tolua_S,2,0)); return 0; } /* get function: ms */ static int tolua_get_M_ms(lua_State* tolua_S) { tolua_pushstring(tolua_S,(const char*)ms); return 1; } /* get function: mv */ static int tolua_get_M_mv(lua_State* tolua_S) { tolua_pushuserdata(tolua_S,(void*)mv); return 1; } /* set function: mv */ static int tolua_set_M_mv(lua_State* tolua_S) { #ifndef TOLUA_RELEASE tolua_Error tolua_err; if (!tolua_isuserdata(tolua_S,2,0,&tolua_err)) tolua_error(tolua_S,"#vinvalid type in variable assignment.",&tolua_err); #endif mv = ((void*) tolua_touserdata(tolua_S,2,0)); return 0; } /* get function: mn */ static int tolua_get_M_mn(lua_State* tolua_S) { tolua_pushstring(tolua_S,(const char*)mn); return 1; } /* get function: a */ static int tolua_get_M_a(lua_State* tolua_S) { tolua_pushusertype(tolua_S,(void*)&a,"A"); return 1; } /* set function: a */ static int tolua_set_M_a(lua_State* tolua_S) { #ifndef TOLUA_RELEASE tolua_Error tolua_err; if (!tolua_isusertype(tolua_S,2,"A",0,&tolua_err)) tolua_error(tolua_S,"#vinvalid type in variable assignment.",&tolua_err); #endif a = *((A*) tolua_tousertype(tolua_S,2,0)); return 0; } /* get function: ma */ static int tolua_get_M_ma(lua_State* tolua_S) { tolua_pushusertype(tolua_S,(void*)&ma,"A"); return 1; } /* set function: ma */ static int tolua_set_M_ma(lua_State* tolua_S) { #ifndef TOLUA_RELEASE tolua_Error tolua_err; if (!tolua_isusertype(tolua_S,2,"A",0,&tolua_err)) tolua_error(tolua_S,"#vinvalid type in variable assignment.",&tolua_err); #endif ma = *((A*) tolua_tousertype(tolua_S,2,0)); return 0; } /* get function: mb */ static int tolua_get_M_mb_ptr(lua_State* tolua_S) { tolua_pushusertype(tolua_S,(void*)mb,"B"); return 1; } /* set function: mb */ static int tolua_set_M_mb_ptr(lua_State* tolua_S) { #ifndef TOLUA_RELEASE tolua_Error tolua_err; if (!tolua_isusertype(tolua_S,2,"B",0,&tolua_err)) tolua_error(tolua_S,"#vinvalid type in variable assignment.",&tolua_err); #endif mb = ((B*) tolua_tousertype(tolua_S,2,0)); return 0; } /* Open function */ TOLUA_API int tolua_tvariable_open (lua_State* tolua_S) { tolua_open(tolua_S); tolua_reg_types(tolua_S); tolua_module(tolua_S,NULL,1); tolua_beginmodule(tolua_S,NULL); tolua_cclass(tolua_S,"A","A","",NULL); tolua_beginmodule(tolua_S,"A"); tolua_variable(tolua_S,"i",tolua_get_A_i,tolua_set_A_i); tolua_variable(tolua_S,"f",tolua_get_A_f,tolua_set_A_f); tolua_variable(tolua_S,"d",tolua_get_A_d,tolua_set_A_d); tolua_variable(tolua_S,"s",tolua_get_A_s,tolua_set_A_s); tolua_variable(tolua_S,"v",tolua_get_A_v,tolua_set_A_v); tolua_variable(tolua_S,"n",tolua_get_A_n,tolua_set_A_n); tolua_endmodule(tolua_S); tolua_cclass(tolua_S,"B","B","",NULL); tolua_beginmodule(tolua_S,"B"); tolua_variable(tolua_S,"a",tolua_get_B_a,tolua_set_B_a); tolua_variable(tolua_S,"b",tolua_get_B_b_ptr,tolua_set_B_b_ptr); tolua_endmodule(tolua_S); tolua_cclass(tolua_S,"U","U","",NULL); tolua_beginmodule(tolua_S,"U"); tolua_variable(tolua_S,"i",tolua_get_U_i,tolua_set_U_i); tolua_variable(tolua_S,"f",tolua_get_U_f,tolua_set_U_f); tolua_endmodule(tolua_S); tolua_variable(tolua_S,"i",tolua_get_i,tolua_set_i); tolua_variable(tolua_S,"f",tolua_get_f,tolua_set_f); tolua_variable(tolua_S,"d",tolua_get_d,tolua_set_d); tolua_variable(tolua_S,"s",tolua_get_s,NULL); tolua_variable(tolua_S,"v",tolua_get_v,tolua_set_v); tolua_variable(tolua_S,"n",tolua_get_n,tolua_set_n); tolua_variable(tolua_S,"a",tolua_get_a,tolua_set_a); tolua_variable(tolua_S,"b",tolua_get_b_ptr,tolua_set_b_ptr); tolua_variable(tolua_S,"u",tolua_get_u,tolua_set_u); tolua_module(tolua_S,"M",1); tolua_beginmodule(tolua_S,"M"); tolua_variable(tolua_S,"mi",tolua_get_M_mi,tolua_set_M_mi); tolua_variable(tolua_S,"mf",tolua_get_M_mf,tolua_set_M_mf); tolua_variable(tolua_S,"md",tolua_get_M_md,tolua_set_M_md); tolua_variable(tolua_S,"ms",tolua_get_M_ms,NULL); tolua_variable(tolua_S,"mv",tolua_get_M_mv,tolua_set_M_mv); tolua_variable(tolua_S,"mn",tolua_get_M_mn,NULL); tolua_variable(tolua_S,"a",tolua_get_M_a,tolua_set_M_a); tolua_variable(tolua_S,"ma",tolua_get_M_ma,tolua_set_M_ma); tolua_variable(tolua_S,"mb",tolua_get_M_mb_ptr,tolua_set_M_mb_ptr); tolua_endmodule(tolua_S); tolua_endmodule(tolua_S); return 1; } conky-1.19.6/3rdparty/toluapp/win32/000077500000000000000000000000001451224556600171435ustar00rootroot00000000000000conky-1.19.6/3rdparty/toluapp/win32/vc7/000077500000000000000000000000001451224556600176425ustar00rootroot00000000000000conky-1.19.6/3rdparty/toluapp/win32/vc7/toluapp.sln000077500000000000000000000027051451224556600220530ustar00rootroot00000000000000Microsoft Visual Studio Solution File, Format Version 8.00 Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "toluapp", "toluapp.vcproj", "{71891C1A-E328-4258-AC3F-6F9698C6D8B4}" ProjectSection(ProjectDependencies) = postProject EndProjectSection EndProject Global GlobalSection(SolutionConfiguration) = preSolution withLua50_Debug = withLua50_Debug withLua50_Release = withLua50_Release withLua51_Debug = withLua51_Debug withLua51_Release = withLua51_Release EndGlobalSection GlobalSection(ProjectConfiguration) = postSolution {71891C1A-E328-4258-AC3F-6F9698C6D8B4}.withLua50_Debug.ActiveCfg = withLua51_Release|Win32 {71891C1A-E328-4258-AC3F-6F9698C6D8B4}.withLua50_Debug.Build.0 = withLua51_Release|Win32 {71891C1A-E328-4258-AC3F-6F9698C6D8B4}.withLua50_Release.ActiveCfg = withLua50_Release|Win32 {71891C1A-E328-4258-AC3F-6F9698C6D8B4}.withLua50_Release.Build.0 = withLua50_Release|Win32 {71891C1A-E328-4258-AC3F-6F9698C6D8B4}.withLua51_Debug.ActiveCfg = withLua51_Debug|Win32 {71891C1A-E328-4258-AC3F-6F9698C6D8B4}.withLua51_Debug.Build.0 = withLua51_Debug|Win32 {71891C1A-E328-4258-AC3F-6F9698C6D8B4}.withLua51_Release.ActiveCfg = withLua51_Release|Win32 {71891C1A-E328-4258-AC3F-6F9698C6D8B4}.withLua51_Release.Build.0 = withLua51_Release|Win32 EndGlobalSection GlobalSection(ExtensibilityGlobals) = postSolution EndGlobalSection GlobalSection(ExtensibilityAddIns) = postSolution EndGlobalSection EndGlobal conky-1.19.6/3rdparty/toluapp/win32/vc7/toluapp.vcproj000077500000000000000000000155271451224556600225700ustar00rootroot00000000000000 conky-1.19.6/AUTHORS000066400000000000000000000215761451224556600140300ustar00rootroot00000000000000NOTE: Since moving to Git, I am no longer going to continue to update this file (in favour of Git's log stuff). If you want to add yourself here when you submit a patch, feel free. Authors of conky in alphapetical order (please, send mail if I forgot somebody or email address / name is wrong): adi Outline stuff ACPI fan & adapter Adi Zaimi original top code Alex Iconv patch Alexey Bondarenko $scroll fix affinity X-Mozilla-Status support akash battery_percent and battery_bar Asbjrn Zweidorff Kjr support for EVE-Online skill monitoring Aseem Mohanty if_up patch Ben Kibbey $tail fifo patch multiple mailbox patch Blondak diskio read & write patch Bobby Beckmann Interface IP and Wireless Quality patch Byron Clark sysfs AC adapter support patch David Carter CPU usage being reported incorrectly by top Brenden Matthews project maintainer for https://github.com/brndnmtthws/conky Bruce Merry Xdbe (double buffering) btlee linkstatus patch (http://forums.gentoo.org/viewtopic-p-2765647.html#2765647) calmar mboxscan cromka if_existing patch for string matching dan-h adt746x fix Dan Piponi original top code Dave Clark original top code David McCabe utime garo developer Ram Yalamanchili tztime Daniel Thiele APM support for FreeBSD Denis WM_CLASS patch statfs patch Dennis Frommknecht NVCtrl, temperature monitoring for nvdia-based graphics cards Dennis Kaandorp adt746x stuff Elisey O. Savateev Fixed if_mounted on FreeBSD Egor(knick_) Iconv patch Erik Scharwaechter $if_empty patch Falk Feuersenger I2C divisor from a file Fanat1k Iconv patch flitsch hwmon support fow mpd_title max length Google LLC Gwenhael LE MOINE Manual setting of the position WM_CLASS for window when drawing to own window Hannu Saransaari Main code Henri Hkkinen MOC support hinokind support negative values in human_readable() Jaromir Smrcek APC UPS daemon support Jason Mitchell developer UTF8 fix Source clean up Jason Tan developer debian package maintainer Joe Myre - developer jack_mort - gentoo forums $tab patch Jarmo Hekkanen SETI stuff Jeremy Burch $cached and $buffers JL Farinacci pad_percents Johannes Winkelmann disk I/O on linux more consistent cpu freq handling on linux capitalize Hertz in cpu frequeny jolapache maildir format Jonas Koelker reload on SIGHUP patch pad percantages fix patch Joshua Gerrish mpd password patch Jrgen P. Tjern Restores default settings before loading new config file in SIGHUP Some cleaning and commenting apparently :) SIGHUP config file reload K. Eugene Carlson Additional Linux memory reporting variables Linux CPU frequency governor reporting Additional FreeBSD memory reporting variables Kapil Hari Paranjape ibm_volume patch kFreeBSD support patch realtime clock patch sysfs battery patch mail_spool patch Kevin Lyles add long options patch add cpu separate option patch add time to top patch simplify round_to_int patch goto width fix patch offset width fix patch individual diskio patch short_units & human_readable patch killfire fs_used_perc and fs_bar_free patch Lars Kotthoff $loadgraph, show_graph_scale patch Lassi Selander XMMS2 patch XMMS2 fixes Lauri Hakkarainen Some translating, web and other stuff Leszek Krupiski Battery number for ACPI battery Load average bug fix Lucas Brutschy MLDonkey patch if constructs patch Marcus Huesgen battery_bar fix Markus Meissner NVIDIA Graficcard support with libXNVCtrl patch Michal Januszewski hddtemp support Michal Ziabkowski $if_up memleak fix Miroslav Lichvar move audacious thread init to update_audacious() patch x86_64 freq_dyn patch buffer overflow in update_net_stats() patch Moncelier Camille METAR patch Morgan Veyret own_window_type dock patch Nattfodd Fixed top_mem dupes nathanj439 MPD time fix Nikos Ntarmos FreeBSD total memory patch Nikos Pylarinos macOS support norsetto fix SIGUSR1/SIGHUP segfault Pascal Eberhard graph and bar fix for right alignment Peter Tarjan IBM acpi support patch SMP support for freq stuff CPU voltage patch Petr Holub fix autotools on FreeBSD in autogen.sh Improved battery readout on FreeBSD Philip Kovacs tcp port monitor with hashing functionality Audacious, Xmms, BMP, Infopipe stuff Various Xlib changes, e.g. own_window hints, etc. Phil multiple batteries support tp_smapi support if_up patch fix sysfs crashing patch Psychon a bunch of code cleanups Rogier Reerink Intel backlight support roiban adi hex colour patch Ryan Tandy fs_type patch if_mpd_playing patch Rui Paulo NetBSD support Roland Shoemaker user info patch conky version info patch Roman Bogorodskiy FreeBSD support BMPx support Ryan Twitchell head/tail rewrite patch Mikko Sysikaski prss.c and prss.h Sceptik --quiet patch Stepan Zastupov WiFi signal level detection support on FreeBSD Szymon Boniecki Reads current LC_TIME Thomas Cort CPU frequency patch for alpha Toke Hiland-Jrgensen systemd journal support Toni exec*/tail/head output evalution Toni Spets hifi OpenBSD support Linux wifi code RSS code (created together with Mikko Sysikaski) Lua scripting Tris Scroll step patch tyir MPD features patch 1319461 Vivenzio Pagliari Some useful patches for port monitoring PowerBook battery patch Walt Nelson $freq fix Warren Dukes libmpdclient warudemaru rss and vsize for top wedge battery time fix for 2.6.24 William DiPlacido Frequency from /proc/cpuinfo Some other SETI stuff zimba-tm alignment none patch zotrix FreeBSD patch for <10 procs Daniel Beler argb visual patch conky-1.19.6/CMakeLists.txt000066400000000000000000000050521451224556600155070ustar00rootroot00000000000000# # Conky, a system monitor, based on torsmo # # Please see COPYING for details # # Copyright (c) 2005-2021 Brenden Matthews, et. al. (see AUTHORS) All rights # reserved. # # This program is free software: you can redistribute it and/or modify it under # the terms of the GNU General Public License as published by the Free Software # Foundation, either version 3 of the License, or (at your option) any later # version. # # This program is distributed in the hope that it will be useful, but WITHOUT # ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS # FOR A PARTICULAR PURPOSE. See the GNU General Public License for more # details. You should have received a copy of the GNU General Public License # along with this program. If not, see . # cmake_minimum_required(VERSION 3.15) project(conky) # This is the directory for our custom CMake modules. set(CMAKE_MODULE_PATH ${CMAKE_SOURCE_DIR}/cmake) # 'core' CMake stuff include(Conky) # Handle build options include(ConkyBuildOptions) # Do platform checks include(ConkyPlatformChecks) # CPack module for installation tasks include(ConkyCPackSetup) # setup our configuration headers configure_file(${CMAKE_MODULE_PATH}/config.h.in ${CMAKE_BINARY_DIR}/config.h) configure_file(${CMAKE_MODULE_PATH}/build.h.in ${CMAKE_BINARY_DIR}/build.h) set(conky_sources ${CMAKE_BINARY_DIR}/config.h ${CMAKE_BINARY_DIR}/build.h) # Finally, add some code add_subdirectory(lua) add_subdirectory(data) add_subdirectory(doc) if(BUILD_EXTRAS) add_subdirectory(extras) endif(BUILD_EXTRAS) # Include 3rdparty toluapp add_subdirectory(3rdparty/toluapp) set(conky_libs ${conky_libs} toluapp_lib_static) if(BUILD_TESTS) if(CODE_COVERAGE) # Enable coverage checks include(CodeCoverage) append_coverage_compiler_flags() endif() include(Catch) endif() add_subdirectory(src) if(BUILD_TESTS) add_subdirectory(tests) enable_testing() endif() if(NOT DEFINED DOC_PATH) set(DOC_PATH "share/doc/${CPACK_PACKAGE_NAME}-${VERSION}") endif(NOT DEFINED DOC_PATH) set(DOC_FILES extras/convert.lua data/conky_no_x11.conf data/conky.conf) install(FILES ${DOC_FILES} DESTINATION ${DOC_PATH}) if(CHECK_CODE_QUALITY) find_package(ClangTidy) find_package(ClangFormat) endif(CHECK_CODE_QUALITY) # uninstall target if(NOT TARGET uninstall) configure_file( "${CMAKE_MODULE_PATH}/UninstallConky.cmake.in" "${CMAKE_BINARY_DIR}/cmake_uninstall.cmake" IMMEDIATE @ONLY) add_custom_target(uninstall COMMAND ${CMAKE_COMMAND} -P ${CMAKE_BINARY_DIR}/cmake_uninstall.cmake) endif() conky-1.19.6/COPYING000066400000000000000000000007261451224556600140050ustar00rootroot00000000000000Any original torsmo code is licensed under the BSD license (see LICENSE.BSD for a copy) All code written since the fork of torsmo is licensed under the GPL (see LICENSE for a copy), except where noted differently (such as in portmon and audacious code which are LGPL, and prss which is an MIT-style license). Copyright (c) 2004, Hannu Saransaari and Lauri Hakkarainen Copyright (c) 2005-2021 Brenden Matthews, Philip Kovacs, et. al. (see AUTHORS) All rights reserved. conky-1.19.6/Dockerfile000066400000000000000000000064071451224556600147460ustar00rootroot00000000000000FROM ubuntu:jammy AS builder RUN apt-get update \ && DEBIAN_FRONTEND=noninteractive \ apt-get install -qy --no-install-recommends \ audacious-dev \ ca-certificates \ clang \ curl \ gfortran \ git \ libarchive-dev \ libaudclient-dev \ libc++-dev \ libc++abi-dev \ libcairo2-dev \ libcurl4-openssl-dev \ libdbus-glib-1-dev \ libical-dev \ libimlib2-dev \ libircclient-dev \ libiw-dev \ libjsoncpp-dev \ liblua5.3-dev \ libmicrohttpd-dev \ libmysqlclient-dev \ libncurses-dev \ libpulse-dev \ librhash-dev \ librsvg2-dev \ libssl-dev \ libsystemd-dev \ libuv1-dev \ libxdamage-dev \ libxext-dev \ libxft-dev \ libxinerama-dev \ libxml2-dev \ libxmmsclient-dev \ libxnvctrl-dev \ make \ ninja-build \ patch \ && apt-get clean \ && rm -rf /var/lib/apt/lists/* # Compile CMake, we need the latest because the bug here (for armv7 builds): # https://gitlab.kitware.com/cmake/cmake/-/issues/20568 WORKDIR /cmake ENV CMAKE_VERSION 3.25.1 RUN curl -Lq https://github.com/Kitware/CMake/releases/download/v${CMAKE_VERSION}/cmake-${CMAKE_VERSION}.tar.gz -o cmake-${CMAKE_VERSION}.tar.gz \ && tar xf cmake-${CMAKE_VERSION}.tar.gz \ && cd cmake-${CMAKE_VERSION} \ && CC=clang CXX=clang++ CFLAGS="-D_FILE_OFFSET_BITS=64" CXXFLAGS="-D_FILE_OFFSET_BITS=64" ./bootstrap --system-libs --parallel=5 \ && make -j5 \ && make -j5 install \ && cd \ && rm -rf /cmake COPY . /conky WORKDIR /conky/build ARG X11=yes RUN sh -c 'if [ "$X11" = "yes" ] ; then \ cmake -G Ninja \ -DCMAKE_C_COMPILER=clang \ -DCMAKE_CXX_COMPILER=clang++ \ -DCMAKE_INSTALL_PREFIX=/opt/conky \ -DBUILD_AUDACIOUS=ON \ -DBUILD_HTTP=ON \ -DBUILD_ICAL=ON \ -DBUILD_ICONV=ON \ -DBUILD_IRC=ON \ -DBUILD_JOURNAL=ON \ -DBUILD_LUA_CAIRO=ON \ -DBUILD_LUA_IMLIB2=ON \ -DBUILD_LUA_RSVG=ON \ -DBUILD_MYSQL=ON \ -DBUILD_NVIDIA=ON \ -DBUILD_PULSEAUDIO=ON \ -DBUILD_RSS=ON \ -DBUILD_WAYLAND=OFF \ -DBUILD_WLAN=ON \ -DBUILD_XMMS2=ON \ ../ \ ; else \ cmake -G Ninja \ -DCMAKE_C_COMPILER=clang \ -DCMAKE_CXX_COMPILER=clang++ \ -DCMAKE_INSTALL_PREFIX=/opt/conky \ -DBUILD_AUDACIOUS=ON \ -DBUILD_HTTP=ON \ -DBUILD_ICAL=ON \ -DBUILD_ICONV=ON \ -DBUILD_IRC=ON \ -DBUILD_JOURNAL=ON \ -DBUILD_LUA_CAIRO=ON \ -DBUILD_LUA_IMLIB2=ON \ -DBUILD_LUA_RSVG=ON \ -DBUILD_MYSQL=ON \ -DBUILD_PULSEAUDIO=ON \ -DBUILD_RSS=ON \ -DBUILD_WAYLAND=OFF \ -DBUILD_WLAN=ON \ -DBUILD_X11=OFF \ -DBUILD_XMMS2=ON \ ../ \ ; fi' \ && cmake --build . \ && cmake --install . FROM ubuntu:jammy RUN apt-get update \ && DEBIAN_FRONTEND=noninteractive \ apt-get install -qy --no-install-recommends \ libaudclient2 \ libc++1 \ libc++abi1 \ libcairo2 \ libcurl4 \ libdbus-glib-1-2 \ libical3 \ libimlib2 \ libircclient1 \ libiw30 \ liblua5.3-0 \ libmicrohttpd12 \ libmysqlclient21 \ libncurses6 \ libpulse0 \ librsvg2-2 \ libsm6 \ libsystemd0 \ libxcb-xfixes0 \ libxdamage1 \ libxext6 \ libxfixes3 \ libxft2 \ libxinerama1 \ libxml2 \ libxmmsclient6 \ libxnvctrl0 \ && apt-get clean \ && rm -rf /var/lib/apt/lists/* COPY --from=builder /opt/conky /opt/conky ENV PATH="/opt/conky/bin:${PATH}" ENV LD_LIBRARY_PATH="/opt/conky/lib:${LD_LIBRARY_PATH}" ENTRYPOINT [ "/opt/conky/bin/conky" ] conky-1.19.6/LICENSE.BSD000066400000000000000000000034021451224556600143600ustar00rootroot00000000000000*NOTICE*: This file exists for historical reasons because the original Torsmo and early Conky code was licensed under the BSD license. Conky is now licensed under GPLv3. Copyright (c) 2004, Hannu Saransaari and Lauri Hakkarainen Copyright (c) 2005-2021 Brenden Matthews, Philip Kovacs, et. al. (see AUTHORS) All rights reserved. Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: * Redistributions of source code must retain the above copyright notice, * this list of conditions and the following disclaimer. * Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * Neither the name of the nor the names of its * contributors may be used to endorse or promote products derived from * this software without specific prior written permission. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. conky-1.19.6/LICENSE.md000066400000000000000000001037301451224556600143550ustar00rootroot00000000000000### GNU GENERAL PUBLIC LICENSE Version 3, 29 June 2007 Copyright (C) 2007 Free Software Foundation, Inc. Everyone is permitted to copy and distribute verbatim copies of this license document, but changing it is not allowed. ### Preamble The GNU General Public License is a free, copyleft license for software and other kinds of works. The licenses for most software and other practical works are designed to take away your freedom to share and change the works. By contrast, the GNU General Public License is intended to guarantee your freedom to share and change all versions of a program--to make sure it remains free software for all its users. We, the Free Software Foundation, use the GNU General Public License for most of our software; it applies also to any other work released this way by its authors. You can apply it to your programs, too. When we speak of free software, we are referring to freedom, not price. Our General Public Licenses are designed to make sure that you have the freedom to distribute copies of free software (and charge for them if you wish), that you receive source code or can get it if you want it, that you can change the software or use pieces of it in new free programs, and that you know you can do these things. To protect your rights, we need to prevent others from denying you these rights or asking you to surrender the rights. Therefore, you have certain responsibilities if you distribute copies of the software, or if you modify it: responsibilities to respect the freedom of others. For example, if you distribute copies of such a program, whether gratis or for a fee, you must pass on to the recipients the same freedoms that you received. You must make sure that they, too, receive or can get the source code. And you must show them these terms so they know their rights. Developers that use the GNU GPL protect your rights with two steps: (1) assert copyright on the software, and (2) offer you this License giving you legal permission to copy, distribute and/or modify it. For the developers' and authors' protection, the GPL clearly explains that there is no warranty for this free software. For both users' and authors' sake, the GPL requires that modified versions be marked as changed, so that their problems will not be attributed erroneously to authors of previous versions. Some devices are designed to deny users access to install or run modified versions of the software inside them, although the manufacturer can do so. This is fundamentally incompatible with the aim of protecting users' freedom to change the software. The systematic pattern of such abuse occurs in the area of products for individuals to use, which is precisely where it is most unacceptable. Therefore, we have designed this version of the GPL to prohibit the practice for those products. If such problems arise substantially in other domains, we stand ready to extend this provision to those domains in future versions of the GPL, as needed to protect the freedom of users. Finally, every program is threatened constantly by software patents. States should not allow patents to restrict development and use of software on general-purpose computers, but in those that do, we wish to avoid the special danger that patents applied to a free program could make it effectively proprietary. To prevent this, the GPL assures that patents cannot be used to render the program non-free. The precise terms and conditions for copying, distribution and modification follow. ### TERMS AND CONDITIONS #### 0. Definitions. "This License" refers to version 3 of the GNU General Public License. "Copyright" also means copyright-like laws that apply to other kinds of works, such as semiconductor masks. "The Program" refers to any copyrightable work licensed under this License. Each licensee is addressed as "you". "Licensees" and "recipients" may be individuals or organizations. To "modify" a work means to copy from or adapt all or part of the work in a fashion requiring copyright permission, other than the making of an exact copy. The resulting work is called a "modified version" of the earlier work or a work "based on" the earlier work. A "covered work" means either the unmodified Program or a work based on the Program. To "propagate" a work means to do anything with it that, without permission, would make you directly or secondarily liable for infringement under applicable copyright law, except executing it on a computer or modifying a private copy. Propagation includes copying, distribution (with or without modification), making available to the public, and in some countries other activities as well. To "convey" a work means any kind of propagation that enables other parties to make or receive copies. Mere interaction with a user through a computer network, with no transfer of a copy, is not conveying. An interactive user interface displays "Appropriate Legal Notices" to the extent that it includes a convenient and prominently visible feature that (1) displays an appropriate copyright notice, and (2) tells the user that there is no warranty for the work (except to the extent that warranties are provided), that licensees may convey the work under this License, and how to view a copy of this License. If the interface presents a list of user commands or options, such as a menu, a prominent item in the list meets this criterion. #### 1. Source Code. The "source code" for a work means the preferred form of the work for making modifications to it. "Object code" means any non-source form of a work. A "Standard Interface" means an interface that either is an official standard defined by a recognized standards body, or, in the case of interfaces specified for a particular programming language, one that is widely used among developers working in that language. The "System Libraries" of an executable work include anything, other than the work as a whole, that (a) is included in the normal form of packaging a Major Component, but which is not part of that Major Component, and (b) serves only to enable use of the work with that Major Component, or to implement a Standard Interface for which an implementation is available to the public in source code form. A "Major Component", in this context, means a major essential component (kernel, window system, and so on) of the specific operating system (if any) on which the executable work runs, or a compiler used to produce the work, or an object code interpreter used to run it. The "Corresponding Source" for a work in object code form means all the source code needed to generate, install, and (for an executable work) run the object code and to modify the work, including scripts to control those activities. However, it does not include the work's System Libraries, or general-purpose tools or generally available free programs which are used unmodified in performing those activities but which are not part of the work. For example, Corresponding Source includes interface definition files associated with source files for the work, and the source code for shared libraries and dynamically linked subprograms that the work is specifically designed to require, such as by intimate data communication or control flow between those subprograms and other parts of the work. The Corresponding Source need not include anything that users can regenerate automatically from other parts of the Corresponding Source. The Corresponding Source for a work in source code form is that same work. #### 2. Basic Permissions. All rights granted under this License are granted for the term of copyright on the Program, and are irrevocable provided the stated conditions are met. This License explicitly affirms your unlimited permission to run the unmodified Program. The output from running a covered work is covered by this License only if the output, given its content, constitutes a covered work. This License acknowledges your rights of fair use or other equivalent, as provided by copyright law. You may make, run and propagate covered works that you do not convey, without conditions so long as your license otherwise remains in force. You may convey covered works to others for the sole purpose of having them make modifications exclusively for you, or provide you with facilities for running those works, provided that you comply with the terms of this License in conveying all material for which you do not control copyright. Those thus making or running the covered works for you must do so exclusively on your behalf, under your direction and control, on terms that prohibit them from making any copies of your copyrighted material outside their relationship with you. Conveying under any other circumstances is permitted solely under the conditions stated below. Sublicensing is not allowed; section 10 makes it unnecessary. #### 3. Protecting Users' Legal Rights From Anti-Circumvention Law. No covered work shall be deemed part of an effective technological measure under any applicable law fulfilling obligations under article 11 of the WIPO copyright treaty adopted on 20 December 1996, or similar laws prohibiting or restricting circumvention of such measures. When you convey a covered work, you waive any legal power to forbid circumvention of technological measures to the extent such circumvention is effected by exercising rights under this License with respect to the covered work, and you disclaim any intention to limit operation or modification of the work as a means of enforcing, against the work's users, your or third parties' legal rights to forbid circumvention of technological measures. #### 4. Conveying Verbatim Copies. You may convey verbatim copies of the Program's source code as you receive it, in any medium, provided that you conspicuously and appropriately publish on each copy an appropriate copyright notice; keep intact all notices stating that this License and any non-permissive terms added in accord with section 7 apply to the code; keep intact all notices of the absence of any warranty; and give all recipients a copy of this License along with the Program. You may charge any price or no price for each copy that you convey, and you may offer support or warranty protection for a fee. #### 5. Conveying Modified Source Versions. You may convey a work based on the Program, or the modifications to produce it from the Program, in the form of source code under the terms of section 4, provided that you also meet all of these conditions: - a) The work must carry prominent notices stating that you modified it, and giving a relevant date. - b) The work must carry prominent notices stating that it is released under this License and any conditions added under section 7. This requirement modifies the requirement in section 4 to "keep intact all notices". - c) You must license the entire work, as a whole, under this License to anyone who comes into possession of a copy. This License will therefore apply, along with any applicable section 7 additional terms, to the whole of the work, and all its parts, regardless of how they are packaged. This License gives no permission to license the work in any other way, but it does not invalidate such permission if you have separately received it. - d) If the work has interactive user interfaces, each must display Appropriate Legal Notices; however, if the Program has interactive interfaces that do not display Appropriate Legal Notices, your work need not make them do so. A compilation of a covered work with other separate and independent works, which are not by their nature extensions of the covered work, and which are not combined with it such as to form a larger program, in or on a volume of a storage or distribution medium, is called an "aggregate" if the compilation and its resulting copyright are not used to limit the access or legal rights of the compilation's users beyond what the individual works permit. Inclusion of a covered work in an aggregate does not cause this License to apply to the other parts of the aggregate. #### 6. Conveying Non-Source Forms. You may convey a covered work in object code form under the terms of sections 4 and 5, provided that you also convey the machine-readable Corresponding Source under the terms of this License, in one of these ways: - a) Convey the object code in, or embodied in, a physical product (including a physical distribution medium), accompanied by the Corresponding Source fixed on a durable physical medium customarily used for software interchange. - b) Convey the object code in, or embodied in, a physical product (including a physical distribution medium), accompanied by a written offer, valid for at least three years and valid for as long as you offer spare parts or customer support for that product model, to give anyone who possesses the object code either (1) a copy of the Corresponding Source for all the software in the product that is covered by this License, on a durable physical medium customarily used for software interchange, for a price no more than your reasonable cost of physically performing this conveying of source, or (2) access to copy the Corresponding Source from a network server at no charge. - c) Convey individual copies of the object code with a copy of the written offer to provide the Corresponding Source. This alternative is allowed only occasionally and noncommercially, and only if you received the object code with such an offer, in accord with subsection 6b. - d) Convey the object code by offering access from a designated place (gratis or for a charge), and offer equivalent access to the Corresponding Source in the same way through the same place at no further charge. You need not require recipients to copy the Corresponding Source along with the object code. If the place to copy the object code is a network server, the Corresponding Source may be on a different server (operated by you or a third party) that supports equivalent copying facilities, provided you maintain clear directions next to the object code saying where to find the Corresponding Source. Regardless of what server hosts the Corresponding Source, you remain obligated to ensure that it is available for as long as needed to satisfy these requirements. - e) Convey the object code using peer-to-peer transmission, provided you inform other peers where the object code and Corresponding Source of the work are being offered to the general public at no charge under subsection 6d. A separable portion of the object code, whose source code is excluded from the Corresponding Source as a System Library, need not be included in conveying the object code work. A "User Product" is either (1) a "consumer product", which means any tangible personal property which is normally used for personal, family, or household purposes, or (2) anything designed or sold for incorporation into a dwelling. In determining whether a product is a consumer product, doubtful cases shall be resolved in favor of coverage. For a particular product received by a particular user, "normally used" refers to a typical or common use of that class of product, regardless of the status of the particular user or of the way in which the particular user actually uses, or expects or is expected to use, the product. A product is a consumer product regardless of whether the product has substantial commercial, industrial or non-consumer uses, unless such uses represent the only significant mode of use of the product. "Installation Information" for a User Product means any methods, procedures, authorization keys, or other information required to install and execute modified versions of a covered work in that User Product from a modified version of its Corresponding Source. The information must suffice to ensure that the continued functioning of the modified object code is in no case prevented or interfered with solely because modification has been made. If you convey an object code work under this section in, or with, or specifically for use in, a User Product, and the conveying occurs as part of a transaction in which the right of possession and use of the User Product is transferred to the recipient in perpetuity or for a fixed term (regardless of how the transaction is characterized), the Corresponding Source conveyed under this section must be accompanied by the Installation Information. But this requirement does not apply if neither you nor any third party retains the ability to install modified object code on the User Product (for example, the work has been installed in ROM). The requirement to provide Installation Information does not include a requirement to continue to provide support service, warranty, or updates for a work that has been modified or installed by the recipient, or for the User Product in which it has been modified or installed. Access to a network may be denied when the modification itself materially and adversely affects the operation of the network or violates the rules and protocols for communication across the network. Corresponding Source conveyed, and Installation Information provided, in accord with this section must be in a format that is publicly documented (and with an implementation available to the public in source code form), and must require no special password or key for unpacking, reading or copying. #### 7. Additional Terms. "Additional permissions" are terms that supplement the terms of this License by making exceptions from one or more of its conditions. Additional permissions that are applicable to the entire Program shall be treated as though they were included in this License, to the extent that they are valid under applicable law. If additional permissions apply only to part of the Program, that part may be used separately under those permissions, but the entire Program remains governed by this License without regard to the additional permissions. When you convey a copy of a covered work, you may at your option remove any additional permissions from that copy, or from any part of it. (Additional permissions may be written to require their own removal in certain cases when you modify the work.) You may place additional permissions on material, added by you to a covered work, for which you have or can give appropriate copyright permission. Notwithstanding any other provision of this License, for material you add to a covered work, you may (if authorized by the copyright holders of that material) supplement the terms of this License with terms: - a) Disclaiming warranty or limiting liability differently from the terms of sections 15 and 16 of this License; or - b) Requiring preservation of specified reasonable legal notices or author attributions in that material or in the Appropriate Legal Notices displayed by works containing it; or - c) Prohibiting misrepresentation of the origin of that material, or requiring that modified versions of such material be marked in reasonable ways as different from the original version; or - d) Limiting the use for publicity purposes of names of licensors or authors of the material; or - e) Declining to grant rights under trademark law for use of some trade names, trademarks, or service marks; or - f) Requiring indemnification of licensors and authors of that material by anyone who conveys the material (or modified versions of it) with contractual assumptions of liability to the recipient, for any liability that these contractual assumptions directly impose on those licensors and authors. All other non-permissive additional terms are considered "further restrictions" within the meaning of section 10. If the Program as you received it, or any part of it, contains a notice stating that it is governed by this License along with a term that is a further restriction, you may remove that term. If a license document contains a further restriction but permits relicensing or conveying under this License, you may add to a covered work material governed by the terms of that license document, provided that the further restriction does not survive such relicensing or conveying. If you add terms to a covered work in accord with this section, you must place, in the relevant source files, a statement of the additional terms that apply to those files, or a notice indicating where to find the applicable terms. Additional terms, permissive or non-permissive, may be stated in the form of a separately written license, or stated as exceptions; the above requirements apply either way. #### 8. Termination. You may not propagate or modify a covered work except as expressly provided under this License. Any attempt otherwise to propagate or modify it is void, and will automatically terminate your rights under this License (including any patent licenses granted under the third paragraph of section 11). However, if you cease all violation of this License, then your license from a particular copyright holder is reinstated (a) provisionally, unless and until the copyright holder explicitly and finally terminates your license, and (b) permanently, if the copyright holder fails to notify you of the violation by some reasonable means prior to 60 days after the cessation. Moreover, your license from a particular copyright holder is reinstated permanently if the copyright holder notifies you of the violation by some reasonable means, this is the first time you have received notice of violation of this License (for any work) from that copyright holder, and you cure the violation prior to 30 days after your receipt of the notice. Termination of your rights under this section does not terminate the licenses of parties who have received copies or rights from you under this License. If your rights have been terminated and not permanently reinstated, you do not qualify to receive new licenses for the same material under section 10. #### 9. Acceptance Not Required for Having Copies. You are not required to accept this License in order to receive or run a copy of the Program. Ancillary propagation of a covered work occurring solely as a consequence of using peer-to-peer transmission to receive a copy likewise does not require acceptance. However, nothing other than this License grants you permission to propagate or modify any covered work. These actions infringe copyright if you do not accept this License. Therefore, by modifying or propagating a covered work, you indicate your acceptance of this License to do so. #### 10. Automatic Licensing of Downstream Recipients. Each time you convey a covered work, the recipient automatically receives a license from the original licensors, to run, modify and propagate that work, subject to this License. You are not responsible for enforcing compliance by third parties with this License. An "entity transaction" is a transaction transferring control of an organization, or substantially all assets of one, or subdividing an organization, or merging organizations. If propagation of a covered work results from an entity transaction, each party to that transaction who receives a copy of the work also receives whatever licenses to the work the party's predecessor in interest had or could give under the previous paragraph, plus a right to possession of the Corresponding Source of the work from the predecessor in interest, if the predecessor has it or can get it with reasonable efforts. You may not impose any further restrictions on the exercise of the rights granted or affirmed under this License. For example, you may not impose a license fee, royalty, or other charge for exercise of rights granted under this License, and you may not initiate litigation (including a cross-claim or counterclaim in a lawsuit) alleging that any patent claim is infringed by making, using, selling, offering for sale, or importing the Program or any portion of it. #### 11. Patents. A "contributor" is a copyright holder who authorizes use under this License of the Program or a work on which the Program is based. The work thus licensed is called the contributor's "contributor version". A contributor's "essential patent claims" are all patent claims owned or controlled by the contributor, whether already acquired or hereafter acquired, that would be infringed by some manner, permitted by this License, of making, using, or selling its contributor version, but do not include claims that would be infringed only as a consequence of further modification of the contributor version. For purposes of this definition, "control" includes the right to grant patent sublicenses in a manner consistent with the requirements of this License. Each contributor grants you a non-exclusive, worldwide, royalty-free patent license under the contributor's essential patent claims, to make, use, sell, offer for sale, import and otherwise run, modify and propagate the contents of its contributor version. In the following three paragraphs, a "patent license" is any express agreement or commitment, however denominated, not to enforce a patent (such as an express permission to practice a patent or covenant not to sue for patent infringement). To "grant" such a patent license to a party means to make such an agreement or commitment not to enforce a patent against the party. If you convey a covered work, knowingly relying on a patent license, and the Corresponding Source of the work is not available for anyone to copy, free of charge and under the terms of this License, through a publicly available network server or other readily accessible means, then you must either (1) cause the Corresponding Source to be so available, or (2) arrange to deprive yourself of the benefit of the patent license for this particular work, or (3) arrange, in a manner consistent with the requirements of this License, to extend the patent license to downstream recipients. "Knowingly relying" means you have actual knowledge that, but for the patent license, your conveying the covered work in a country, or your recipient's use of the covered work in a country, would infringe one or more identifiable patents in that country that you have reason to believe are valid. If, pursuant to or in connection with a single transaction or arrangement, you convey, or propagate by procuring conveyance of, a covered work, and grant a patent license to some of the parties receiving the covered work authorizing them to use, propagate, modify or convey a specific copy of the covered work, then the patent license you grant is automatically extended to all recipients of the covered work and works based on it. A patent license is "discriminatory" if it does not include within the scope of its coverage, prohibits the exercise of, or is conditioned on the non-exercise of one or more of the rights that are specifically granted under this License. You may not convey a covered work if you are a party to an arrangement with a third party that is in the business of distributing software, under which you make payment to the third party based on the extent of your activity of conveying the work, and under which the third party grants, to any of the parties who would receive the covered work from you, a discriminatory patent license (a) in connection with copies of the covered work conveyed by you (or copies made from those copies), or (b) primarily for and in connection with specific products or compilations that contain the covered work, unless you entered into that arrangement, or that patent license was granted, prior to 28 March 2007. Nothing in this License shall be construed as excluding or limiting any implied license or other defenses to infringement that may otherwise be available to you under applicable patent law. #### 12. No Surrender of Others' Freedom. If conditions are imposed on you (whether by court order, agreement or otherwise) that contradict the conditions of this License, they do not excuse you from the conditions of this License. If you cannot convey a covered work so as to satisfy simultaneously your obligations under this License and any other pertinent obligations, then as a consequence you may not convey it at all. For example, if you agree to terms that obligate you to collect a royalty for further conveying from those to whom you convey the Program, the only way you could satisfy both those terms and this License would be to refrain entirely from conveying the Program. #### 13. Use with the GNU Affero General Public License. Notwithstanding any other provision of this License, you have permission to link or combine any covered work with a work licensed under version 3 of the GNU Affero General Public License into a single combined work, and to convey the resulting work. The terms of this License will continue to apply to the part which is the covered work, but the special requirements of the GNU Affero General Public License, section 13, concerning interaction through a network will apply to the combination as such. #### 14. Revised Versions of this License. The Free Software Foundation may publish revised and/or new versions of the GNU General Public License from time to time. Such new versions will be similar in spirit to the present version, but may differ in detail to address new problems or concerns. Each version is given a distinguishing version number. If the Program specifies that a certain numbered version of the GNU General Public License "or any later version" applies to it, you have the option of following the terms and conditions either of that numbered version or of any later version published by the Free Software Foundation. If the Program does not specify a version number of the GNU General Public License, you may choose any version ever published by the Free Software Foundation. If the Program specifies that a proxy can decide which future versions of the GNU General Public License can be used, that proxy's public statement of acceptance of a version permanently authorizes you to choose that version for the Program. Later license versions may give you additional or different permissions. However, no additional obligations are imposed on any author or copyright holder as a result of your choosing to follow a later version. #### 15. Disclaimer of Warranty. THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION. #### 16. Limitation of Liability. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. #### 17. Interpretation of Sections 15 and 16. If the disclaimer of warranty and limitation of liability provided above cannot be given local legal effect according to their terms, reviewing courts shall apply local law that most closely approximates an absolute waiver of all civil liability in connection with the Program, unless a warranty or assumption of liability accompanies a copy of the Program in return for a fee. END OF TERMS AND CONDITIONS ### How to Apply These Terms to Your New Programs If you develop a new program, and you want it to be of the greatest possible use to the public, the best way to achieve this is to make it free software which everyone can redistribute and change under these terms. To do so, attach the following notices to the program. It is safest to attach them to the start of each source file to most effectively state the exclusion of warranty; and each file should have at least the "copyright" line and a pointer to where the full notice is found. Copyright (C) This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program. If not, see . Also add information on how to contact you by electronic and paper mail. If the program does terminal interaction, make it output a short notice like this when it starts in an interactive mode: Copyright (C) This program comes with ABSOLUTELY NO WARRANTY; for details type `show w'. This is free software, and you are welcome to redistribute it under certain conditions; type `show c' for details. The hypothetical commands \`show w' and \`show c' should show the appropriate parts of the General Public License. Of course, your program's commands might be different; for a GUI interface, you would use an "about box". You should also get your employer (if you work as a programmer) or school, if any, to sign a "copyright disclaimer" for the program, if necessary. For more information on this, and how to apply and follow the GNU GPL, see . The GNU General Public License does not permit incorporating your program into proprietary programs. If your program is a subroutine library, you may consider it more useful to permit linking proprietary applications with the library. If this is what you want to do, use the GNU Lesser General Public License instead of this License. But first, please read . conky-1.19.6/README.cmake000066400000000000000000000015231451224556600147050ustar00rootroot00000000000000Hello, there. Using CMake to build Conky is pretty easy, and here is how I do it: 1. From the top level source dir, create a build working dir, and cd into it $ mkdir build $ cd build 2. Run the cmake configuration process $ cmake ../ # pass the path to the sources to cmake OR $ ccmake ../ # you can also use the fance curses interface, or try cmake-gui 3. Compile as usual, and enjoy the out-of-source goodness $ make # make install # if you want There are a number of build options for Conky, and the best way to discover them is to use the ccmake (or cmake-gui) CMake tool for browsing them. Certain Conky build time features (such as doc generation) require third-party applications, which you should be notified of via CMake. In the case of doc generation, you'll need the docbook2X package (available on most distributions). conky-1.19.6/README.md000066400000000000000000000122501451224556600142240ustar00rootroot00000000000000[![Linux build](https://github.com/brndnmtthws/conky/actions/workflows/build-and-test-linux.yaml/badge.svg)](https://github.com/brndnmtthws/conky/actions/workflows/build-and-test-linux.yaml) [![macOS build](https://github.com/brndnmtthws/conky/actions/workflows/build-and-test-macos.yaml/badge.svg)](https://github.com/brndnmtthws/conky/actions/workflows/build-and-test-macos.yaml) [![Docker build](https://github.com/brndnmtthws/conky/actions/workflows/docker.yaml/badge.svg)](https://github.com/brndnmtthws/conky/actions/workflows/docker.yaml) [![AppImage build](https://github.com/brndnmtthws/conky/actions/workflows/publish-appimage.yml/badge.svg)](https://github.com/brndnmtthws/conky/actions/workflows/publish-appimage.yml) [📕 Documentaton](https://conky.cc/) [💬 Join the Matrix chat](https://matrix.to/#/#conky:frens.io)

    **Conky** is a free, light-weight system monitor for X, that displays any kind of information on your desktop. It can also run on Wayland, macOS, output to your console, a file, or even HTTP (oh my!). 👉 Grab the [latest release from GitHub](https://github.com/brndnmtthws/conky/releases/latest). [📹 An introduction to Conky (YouTube)](https://www.youtube.com/watch?v=bHtpLEoRKmg&t=19s). ## Features Conky can display more than 300 built-in objects, including support for: - A plethora of OS stats (uname, uptime, **CPU usage**, **mem usage**, disk usage, **"top"** like process stats, and **network monitoring**, just to name a few). - Built-in **IMAP** and **POP3** support. - Built-in support for many popular music players ([MPD][], [XMMS2][], [Audacious][]). - Can be extended using built-in [**Lua**](lua) support, or any of your own scripts and programs ([more](https://github.com/brndnmtthws/conky/wiki#tutorial)). - Built-in [**Imlib2**][imlib2] and [**Cairo**][cairo] bindings for arbitrary drawing with Lua ([more](https://github.com/brndnmtthws/conky/wiki/Lua)). - Runs on Linux, FreeBSD, OpenBSD, DragonFlyBSD, NetBSD, Solaris, Haiku, and macOS! - [Docker image](https://hub.docker.com/r/brndnmtthws/conky/) available for amd64, armv7, and aarch64 (aka armv8) ... and much much more. Conky can display information either as text, or using simple progress bars and graph widgets, with different fonts and colours. ## Screenshots [![screenshot](https://github.com/brndnmtthws/conky/wiki/configs/brenden/screenshot-thumb.png)](https://raw.github.com/wiki/brndnmtthws/conky/configs/brenden/screenshot.png) [![screenshot](https://github.com/brndnmtthws/conky/wiki/configs/ke49/screenshot-thumb.png)](https://raw.github.com/wiki/brndnmtthws/conky/configs/ke49/screenshot.png) [![screenshot](https://github.com/brndnmtthws/conky/wiki/configs/jc/screenshot-thumb.png)](https://raw.github.com/wiki/brndnmtthws/conky/configs/jc/screenshot.png) See the User Configs below for more screenshots and associated config files. ## Quickstart Conky comes bundled with many package managers. However, if you'd like to try the latest release of Conky, you can try the AppImage build. If you have `jq` and `curl` installed, run the following command to fetch the latest AppImage: ```ShellSession $ curl -sL -o conky-x86_64.AppImage \ $(curl -sL https://api.github.com/repos/brndnmtthws/conky/releases/latest | \ jq --raw-output '.assets[0] | .browser_download_url') $ ls conky-x86_64.AppImage ``` If you don't have `jq` and `curl` installed, go to https://github.com/brndnmtthws/conky/releases/latest and fetch the latest AppImage. Then: ```ShellSession $ chmod +x ./conky-x86_64.AppImage $ ./conky-x86_64.AppImage -C > ~/.conkyrc $ ./conky-x86_64.AppImage ``` And that's it! [Check out the Wiki](https://github.com/brndnmtthws/conky/wiki) for more details on configuring Conky. _Note_: To use the AppImage, you may need to install additional runtime libraries. ## Documentation → [**Reference documentation**](https://conky.cc/) ← The [Conky Wiki](https://github.com/brndnmtthws/conky/wiki) also serves as a central hub for Conky. Some resources from the Wiki include: - [Installation](https://github.com/brndnmtthws/conky/wiki/Installation) - [Configuration Settings](https://github.com/brndnmtthws/conky/wiki/Configurations) - [User Configs](https://github.com/brndnmtthws/conky/wiki/Configs) - [Frequently Asked Questions](https://github.com/brndnmtthws/conky/wiki/FAQ) ## License Conky is licensed under the terms of the [GPLv3](LICENSE) license. ## Contributing Contributions are welcome from anyone. Please read [CONTRIBUTING.md](CONTRIBUTING.md) for guidelines on contributing to Conky. [mpd]: https://musicpd.org/ [xmms2]: https://github.com/xmms2/wiki/wiki [audacious]: https://audacious-media-player.org/ [luawiki]: https://en.wikipedia.org/wiki/Lua_%28programming_language%29 [imlib2]: https://docs.enlightenment.org/api/imlib2/html/ [cairo]: https://www.cairographics.org/ ## Supporting this project Conky exists only through the hard work of a collection of volunteers. Please consider sponsoring the project's developers if you get value out of Conky. ## Stargazers over time [![Stargazers over time](https://starchart.cc/brndnmtthws/conky.svg)](https://starchart.cc/brndnmtthws/conky) conky-1.19.6/appimage/000077500000000000000000000000001451224556600145305ustar00rootroot00000000000000conky-1.19.6/appimage/build.sh000077500000000000000000000050701451224556600161700ustar00rootroot00000000000000#!/bin/bash set -e set -x # building in temporary directory to keep system clean # use RAM disk if possible (as in: not building on CI system like Travis, and RAM disk is available) if [ "$CI" == "" ] && [ -d /dev/shm ]; then TEMP_BASE=/dev/shm else TEMP_BASE=/tmp fi BUILD_DIR=$(mktemp -d -p "$TEMP_BASE" AppImageLauncher-build-XXXXXX) # make sure to clean up build dir, even if errors occur cleanup () { if [ -d "$BUILD_DIR" ]; then rm -rf "$BUILD_DIR" fi } trap cleanup EXIT # store repo root as variable REPO_ROOT=$(readlink -f $(dirname $(dirname $0))) OLD_CWD=$(readlink -f .) # switch to build dir pushd "$BUILD_DIR" # configure build files with cmake # we need to explicitly set the install prefix, as CMake's default is /usr/local for some reason... cmake -G Ninja \ -DCMAKE_BUILD_TYPE=RelWithDebInfo \ -DRELEASE=ON \ -DBUILD_AUDACIOUS=ON \ -DBUILD_DOCS=ON \ -DBUILD_HTTP=ON \ -DBUILD_ICAL=ON \ -DBUILD_ICONV=ON \ -DBUILD_IRC=ON \ -DBUILD_IRC=ON \ -DBUILD_JOURNAL=ON \ -DBUILD_LUA_CAIRO=ON \ -DBUILD_LUA_IMLIB2=ON \ -DBUILD_LUA_RSVG=ON \ -DBUILD_MYSQL=ON \ -DBUILD_NVIDIA=ON \ -DBUILD_PULSEAUDIO=ON \ -DBUILD_RSS=ON \ -DBUILD_WAYLAND=OFF \ -DBUILD_WLAN=ON \ -DBUILD_X11=ON \ -DBUILD_XMMS2=ON \ -DCMAKE_INSTALL_PREFIX=./AppDir/usr \ "$REPO_ROOT" # build project and install files into AppDir cmake --build . cmake --install . wget https://github.com/linuxdeploy/linuxdeploy/releases/download/continuous/linuxdeploy-x86_64.AppImage # make them executable chmod +x linuxdeploy-x86_64.AppImage ./linuxdeploy-x86_64.AppImage \ --appdir AppDir \ -e AppDir/usr/bin/conky \ -i AppDir/usr/share/icons/hicolor/scalable/apps/conky-logomark-violet.svg \ -d AppDir/usr/share/applications/conky.desktop wget https://github.com/AppImage/AppImageKit/releases/download/continuous/appimagetool-x86_64.AppImage chmod +x appimagetool-x86_64.AppImage ./appimagetool-x86_64.AppImage AppDir --sign --sign-key E3034071 for f in conky*.AppImage do sha256sum $f > $f.sha256 done mv conky*.AppImage* "$OLD_CWD" # gzip & copy the man page, which will be attached to releases gzip doc/conky.1 mv doc/conky.1.gz "$OLD_CWD" conky-1.19.6/appimage/pubkey.asc000066400000000000000000000075121451224556600165240ustar00rootroot00000000000000-----BEGIN PGP PUBLIC KEY BLOCK----- mQINBFxLIO4BEAClC1XJTegLU2M7rzalhEuNKxXBML0Cvb4URJ66sxpNY9B4JtmC pQZMuULkZ4CnHAgI1Ldv5sgQyq1W15thajZi2U/amh2ullIY7qPTclnIWn2ehbMu SxfVjvrIwv9EpnrzBubM/oqt/hjvl0sms5IHpzXLs97K/a6sMCuxoXEdkOwK9fUq 5q85HV8cHsO7qv/8gnK8Wkit4z0HhnaeRcwuuY301SP53zkMsm8BWJOlubo7Bv0Z +z1aC3J5Ad5Xb5iBuuQJjG2uN+OxpJ0Ya923C2gA4I9EtzVSNdMTy+JRLsRB3lL3 2adHrNcoH2qkos8SgwDdO73loGlt5f2tI3pfsGSPgDGP1hyfNwx5n/NKXqaBds7Q iGB+e4wa3oGwU4cPw6QpmcPggSCDORF2tHw+Yiz6euH+OmdVezLbpmib1VkT/jDV 1y6Aw03Qp1Yt93Fmnk3qfA0MTPE0Kl3TNLIAI2DqS8HU0jt2pReo0wjQBQ2EeOmg WFTNQIpOhPl1uiykHM+9fbIxUCUq+84EKUuxIsSCNL6/byVQ+G3HIjEkhVFIarLL iCKu0AF655eJaMjmC8xkcvS23Je+bmtaV0/MgYPi+nMtDlFO3GDysbrQZ0H24/6v lntaXNXFwicX3l98CSr7oZnn7Em604EnOqeomqu7oE3mSvWCMQSQOL8z0wARAQAB tC1jb25reS1kZXBsb3kta2V5IDxicmVuZGVuK2Nvbmt5QGRpZGR5aW5jLmNvbT6J Ak4EEwEKADgWIQRv1zYcl+cx8aEUIalnLJIM4wNAcQUCXEsg7gIbAwULCQgHAwUV CgkICwUWAgMBAAIeAQIXgAAKCRBnLJIM4wNAcbbxD/0cfp5IUqmvLsehDLOQtpVn 0C60mJYkEItB5n4dbk4O9BhvCZ3Wfk742Cr/QbcEgool+LyhZwb/S1Db+cTM+Fhx ePpn8zBGAhmdJsACOhDq74KaKw/p5lfRqmPqz5s1835VMq/lZ2g1BcAg7arHQ2lm wb51h3UH9GHDHlN0Z/nEwsvJXGXGju6DZ8tM3yWT3YWW4LQxldM7ASvLsOADbVJX CrmXzmYuJ8CmPF1ACR0wL1QDxj0Y30RK7CeQpYNYczhLo/6KPiNO05wn1AsFnDqY DrCIgVPL/Wv/0Qo/YdM2YgePaXC72zr9OSAvHyiu7e5UDt99MGDbFNWgRsi4OSuX mF/aV1JNps2rGZmZqLt4Z4T3HbG1dnW/oKax7n6VDBPU9E2V/D2mYJWntjAe1qpr 67+MuKZLdqCODNsPIbXQ/Ddx+UBvAl2Wibj078MZ+142yXi2V045gBnyfoEKMspc MwZP7XCBqDwPUY9t93MNya5QzS2Mx7zagUrPoJ7g0zhwi8oltrUIEcjCCpqeBSa5 WnZs71x2pdwDc7heCTf6PScY5l0c0gQaruUMMg5m7Gn2t1omX1vOJWYr1oV4V8ET VboDV37mq06W3g4ne8/nAWkdjlVaaIjvNaED1HoS4CZdt4Oyg/jJanEmeUld/NJq eJ4IWX96X6XJY8oEPUk2PIkCMwQQAQoAHRYhBPKJuweqLq/o6RWJemD70SLmKw0w BQJcSyEDAAoJEGD70SLmKw0wOhEP/iu5sOLz3dMOklrhEyshxmYt+JJr4b84DGEO gvf8KjNznpT3xj5IgPtN6gKmJRfL4XlM+CAdYP80IF6ubHaMHsT8yRIHDbO7i+3T Tqmh9vI2pNQJE7nXE3zJguD8RfQICsa6fTt6FZXarO1O+1TGiMg175Y3140P56uK s9dd6Xe9C9u084ri5VgNLcDzRiuh0LOOTEiVL2PWaWz1EOrGUMUDC1b2a7wyhh/H 8Z8Qy/q1V+KtZZKBSQLTitGlSUlqc1qvQmHnq674Fy1ovJZQCJtelgSCa4vcM+ME BsQJJJ5/E+uT4mSdp9cn8rbGEEgifnaot8aSHgQddpdf0WuvAInqTFqmNfFHcnLu wujcMht+FeBp8XqO5FLY2YnGuzlGyUP2fv/HUN1hMc0mLJP60/RdH3PL1zJ0Y2YZ 5GWZtld/qsa+f3pDaRr2y5kNLNUgRq0e9y2zY7fLT2OHlBzNzzlYJIFCNiWoFYI8 XrUuaujpc8oGVGdrU3jT1hIE6kGTx7PUnVaIZUyhHWah83vfzmhcJ8ophUB/fne8 Q72KFGJF4M0NmDhXx+O9MqmFFGhzn7aMi9iH5cfclSs7ys0/PAUBqZx/G1kLB3th adPkChC7K24mCMgLGhhNqlxakbouI8UF1tEdacD1zEjT7N0ArosUb7OSDQaGB2mD LSJKkH7duQINBFxLIO4BEACp1Px9xaVXjGyB/5Ji8I8cQwBNrjVCLJl1gefovRHP 5x8lBbBjZW8ZElSpF3+zxIiUcrCbg76t1jYhi+AjKBDe8b6nQgdCrlc/eh5X8rar H61KZsUt6jNkcB1gfoLbSu57lXOjQnbt42GLnQBp9lLJxXZ5NWB87KSrlKNX/RAc WIY8EPVmsLHXPF6uVn8bDarTf10C+lVcaan+0f+jCAcRr90NOoxgvv12kAEsaifI EbAGEb0xHDwH7aR5i1ssuPLTzg9ByLZRDF8Uxd3Qht4eGoA/jVQhpehSU6Y0/RkD kydk05DA3vqs85C+fXg5YnoSxhCPmtd0I8PFSkWkwh95DN/ClFadReDmY/adb5Nt HiryskJJizFCFXbxPt6KMJUzOQiEoYR/ZH5ajSb5yOmQ2JKrotoax1mKlPW2WwAP lMABA9aEVVF0BibvDypIMhHZ3QR+oHVMi5pl3qUQ5v0LHDI2c2p23RUdQ5UL0W1R KHTAzAbtDTn44SzsNdVOZr9Gc6t3rFmcVnGtI6q0dmfsBE0n+pSjbnMQ+E9KqulS rAAaylWbgNo0NIQgAPvTN4+BHssLuvNjgFdtJJ4fq+oj9OmatiIOD0EBtlnMz43W SlIB9bCY+mfOvoFh01PZ2Hmv/TTR3Va7KXDTIIYqVpX3sBKC5FgiSDWQtGz0UPJ1 gwARAQABiQI2BBgBCgAgFiEEb9c2HJfnMfGhFCGpZyySDOMDQHEFAlxLIO4CGwwA CgkQZyySDOMDQHFsuQ/9FRU5nEylUn6xV8jQ0HfwrPk6F8ZUFtY/gI5fubTlFoPD WkN8SuVXNYsvWG799aZWwTYReUqicRcAEx0+AYxgvAoNiCaDDDNvesum+K9rzw3p hQjazuZucHx9PNRIexnfNpKa2fOUWa+LaHdgEDJ7QUTH1KcUegTqMbTGANf6zGOZ Uvwa7gt8UwSGp4Mqm1rsEBIxdvAunhTgT+coeuJezicEbBF24sgxNhfDzrImlT06 nK4PL0cJHos/VZbvZPwZrktpjnhzEWp5nrpfjI3mEWUoqwblr4BYGxEtp+t0ZB2y 40qVSrl5B3FOmTyA3O1e+ApDnEoFcTn+PPWk8DPKIU1xQdnTwIxUH6MH5ZhgRWDf x1vx66AlBjZf+WEmuclpaeFacmUSRRMtUGuANVCt7HyOvi5NPely9q3PKtqsQGkw yxfAN0UQ0A3BSqydX4t8g8BlairBk6uGD3Y5s8uXLmgBWwKWu6MjOlFvnzVf/XBM m6O9+GFo5k3mj0yp6Y9ZzuBP3HlwWqE/K9hpOy+zeXY4CYZLBrXqh64rKWOw3RoY CdjhfFCYh8amvBGA1xJ7d2yUyb0/0QAsCX2y0L5o+x0MNghB7FiO4i6W8QFx8rix CB3VYjcoC2nWXmh7BEHbx8mp/cL5eldSXhTUFCHY9649tCcN/NdiE3T1J7LMS1c= =Rn5G -----END PGP PUBLIC KEY BLOCK----- conky-1.19.6/appimage/secret.gpg.enc000066400000000000000000000164001451224556600172610ustar00rootroot00000000000000YrAe/ѰR<nFh(px2O0y[C_g!i&FNzIMQEY|\aG +RZ5";sPpRYn[ipE.fժH^Z'626x. A/c]{bi]zULFG4&eƧ(hfX=J7&yP Ud3yĆ'TI0Hњ3@2ONIKV]w.T05 ɡ<?K+;{ktj5l@&ձO7ELob8jS?[0>k545c]dw"媺m7[ЧPk S= d pzРҽ-_{Z;}0bW-ÆrC)V| F)'^wBL~ @sr5C b59j/&)Uuާr$#zn_z CqȼO㆝杽-rШ mA]# GPnCtݶL uk%wIg@Y Ck`ێ.CEm#eRA l |0z giE88,QLDzodۘ *@Ie-x b9vNC,q'w}#D)'nں} +\co`gZ65$`?w.)mZ~,2Z,Ys~| t1OkU[M!ȃLbFhť@柧q"#5lJ]/^HX_ٴT.ԵDfC7Ndqu",dfR۠%]?Inq}9.~ J0*bN†SOgՃȗ0@2nfZ "O?4U8+{S|]mBL}#3渔w+MvtXD r*㡋<%i =iDӘccJ6݀GtSnPNUVS`bL{} $f'm(NF/ߌ`zg Ϭb,P#G-#p~f޺h_QTFR'8n8PSJCdl/%IŒ:Ѻ֨ɲa4ͨy9%>p`Ȍ0e蔀RfO:]:߽ܔĞ|9 5oa6?s.]9q1ij#pf$y*-JKq@U3G@v ktL~i#JH cw7ͤ2\&&<YE9Jb3ʒOjL{C=N9]GqXxkMHz"۹yf T=#*2v[ȠScpn,{9P[Kl'6xdckvG<|bkx 5uE,<{H(>Szl-rZڗ T6D<_t"T=JQL mЦߋ&D8kc9ޡ;֗h2x~XP6J &^#ČZf(pn[p{T γ1h\LHU5zz`΂'^ USP^?:B#$# ]DmR kis9Ls̰2`iۺ\>DKh~)T͖0Ayx+C7 = Zs bTܥdګ.hý8FbV1kMO_87 hd]p"3ݺ'}_=%3*xd@GJr@FS:;..Tr=E}6oa62syb._NޖY`EaqYAy@@/R5 dZ,Lޥp}Xi  <=ҽ3/>*D߇"to)C=Py"Ed4d  RФO.4]L ?8i 6wkށR$&TzB))&K\ܘ=XӔ#YEU|opwȗ+"/Q1g1T^@f] NH[leyLꋇ[3 i9hMҊaoQn[tW)JKn'֊t<&O!u>$b(™^#%|YD^|?4`߫,&,25e]Mlu]t Ee+Y{%O)R?qmBB+eժ 9lj:dɹ"}Eנ.=pJseFe}IO6WƗ.尼rt˖(%O,6rpߌYziٍy~C ybM;we&~Z]`]<@f9בŊ˺K6tGA?G+_ .M8[Ο ZwfZ6ITC.3zs~赏Yh)oGr `Rs#鰾e8~ Ǖ~E!NdI]fvRg[46sॄNl$V?&m0J,g?;QMe").jGR(8C]-)(.?Gے-rc eۇF7#m0lG:Җ+Y?"m^_dx0_h|y)PULK' |/:dѓ>Y_0jP]&S$F20< 9<\X$%!;LXi@\%ڟ~oE%'b;o4T$GAv& E]k}*}A*@ yZCb)me zYV)fR~8[73%# YFP%Т?ozV(sE?ެԟxXyCڱ&zz_`H؁a:@L^(\8| 8>՘f?P<lONAd@ԏT(Ha*{4 /~_!)Yqo;>iV ܯm33u 0 5.⢄Y+ l^"d 8.2DgUԮ=xHfLD֮m2ݗ; B/TﳓYQc!/*!KA1x+nެ.e'Hg)玽u 4 4-dQ+oHg0q~atD?G5&x2̼cy3BS>{!(iϷw]%ЦșysF/0%d ViވkMlҫIy/+&IP?U3̴jFgJk&d[p]B첎ohERiy %&ˮC["*e \w93+pV^39G!> }40ޯHYҟlQC(,j2cqS4(h.w,'JfAqZnOz= 8 'X`Q]o0viVq3 s@f5_#>*럊<㰱^=ޕ?DU 0dlgM =(Cv*mQ<$v;O䜠D=HXrVu@`zT倞yoQ7h;*M3'Zthm6.ɖF,ϯNFC c[foEA0}"'pR8c-fU6%;uV(ƽXNEJ5rs-2%(h%󿉆^I5n'@AKo2G/+##J Jq|W .ԵKd? z;uK*#;Sk8]Եhܝf C]58I c]e`Il'SSޚfü n'7 Wkip^'{Hoffg("ԲMGfTNmԆyR>kdyBȾ }MZxƘp6{{$Y2fX FJ>r_ p&G{LFdRVLd|+=!c۾lcp73EyljnÇݡLk _(Ns"{WBgҸd?ZԢ/hDbd?5A%>@H1P;h:e@;)уm7?kGs:mg%) %%4@7wab/{\%nvOva{`UgB%V1Xϙ_rh$=?lS$eLA-BKv5:7wԤf&L5$X j"Ÿ)?^Ob_5lD;KסsLr r5֠!:+DڦfR"1̸{.K.,I -rSZWa6A PTWܠNd&'CVSڌg嶌4~7@ h6yp^TP1;P &8K_w`k6Q)Nk2~j(|WRcUCmqA.mZƬ_0(Y!h.DE; vVPگt虁"ۓ34u =n`?đX.^-Q7ʾUwْCLTU+$Y4@s?q+y-*"n\`QΩ\KofTZo՟ŀ'Pjҧ[Lу JK_ ]BH˔ $Žjjh,ο9JG>F9~ QhF,[TP+9 =XM7V\YL "6D1tO9Ԯw qȆ~VoIDN}!>v_39 ['ƀtaL6 s6tU|(?5{իGPLp|zMG b-{,65 ͬ3m Jmw.̥8Ц=09vu\Q)(YpV#a-<}Djg0Ne/R$(V4h? Wi7zC R?XA P;WaƛV\3X+| 0ɢlzݡ+N}KrX{+/D?f55P^jVx"߫ ZRG~Ϲpg/ͤlpc4.;EJEvEvU?\l|Y܄ w"9m]#;`/9=7.ţQѸX#1}[!}'1w38Of$PC>,{5W\aSOsPUJV9RG3OX@f` X!V?}ĕhr?_Qղ{hD{#{conky-1.19.6/bin/000077500000000000000000000000001451224556600135155ustar00rootroot00000000000000conky-1.19.6/bin/changelog2html.py000077500000000000000000000012561451224556600167740ustar00rootroot00000000000000#!/usr/bin/env python import sys if len(sys.argv) <= 1: print >> sys.stderr, "Usage: ./changelog2html.py [changelog file]" sys.exit(1) f = sys.argv[1] blah = 0 print '' for i in open(f).read().splitlines(): # ignore empty lines if i and i[0].isspace(): if not '*' in i: print ' ' + i.strip() else: s = i.split('*', 1)[1].strip() print '
  • ' + s.replace('<', '<').replace('>', '>') else: if blah: print '' print '

    %s

    ' % i.strip() print '
      ' blah = 1 if blah: print '
    ' print '' conky-1.19.6/bin/check-style.sh000077500000000000000000000005721451224556600162730ustar00rootroot00000000000000#!/bin/bash set -euxo pipefail DIR="$( dirname "${BASH_SOURCE[0]}" )" # Run clang-tidy only for the lines of code which have changed. git diff -U0 $TRAVIS_COMMIT_RANGE | \ $DIR/clang-tidy-diff.py -p1 \ -checks=*,-clang-analyzer-alpha.* \ -quiet \ -- \ -warnings-as-errors=*,-clang-analyzer-alpha.* \ -format-style='{BasedOnStyle: google, IndentWidth: 2}' conky-1.19.6/bin/check_docs.py000077500000000000000000000156101451224556600161620ustar00rootroot00000000000000#!/usr/bin/python # # This script will check the documentation consistency against the code. It # doesn't check the actual accuracy of the documentation, it just ensures that # everything is documented and that nothing which doesn't exist in Conky # appears in the documentation. # # This script also updates the vim and nano syntax files so it doesn't have to # be done manually. # # Requires the ElementTree Python module for the sorting stuff, see: # http://effbot.org/zone/element-index.htm # # You should also install htmltidy, but it's not necessary. # import os.path import re import sys import mmap from datetime import * file_names = dict() file_names["text_objects"] = "src/text_object.h" file_names["conky"] = "src/conky.c" file_names["vim_syntax"] = "extras/vim/syntax/conkyrc.vim" file_names["nano_syntax"] = "extras/nano/conky.nanorc" file_names["variables"] = "doc/variables.xml" file_names["config_settings"] = "doc/config_settings.xml" file_names["lua"] = "doc/lua.xml" file_names["docs"] = "doc/docs.xml" file_names["command_options"] = "doc/command_options.xml" for fn in file_names.values(): if not os.path.exists(fn) or not os.path.isfile(fn): print "'%s' doesn't exist, or isn't a file" % (fn) exit(1) print 'sorting/tidying docs...' # sort the docs by variable/config setting import string import xml.etree.ElementTree as ET vars_xml = ET.parse(file_names['variables']) config_xml = ET.parse(file_names['config_settings']) getkey = lambda x: x.findtext('term/command/option') vars = vars_xml.getroot() vars[:] = sorted(vars, key=getkey) configs = config_xml.getroot() configs[:] = sorted(configs, key=getkey) vars_xml.write(file_names['variables']) config_xml.write(file_names['config_settings']) def tidy(file): command = ['tidy', '-qim', '-xml', '-utf8', '--indent-spaces', '4'] os.system('%s %s 2>/dev/null' % (string.join(command), file)) tidy(file_names['variables']) tidy(file_names['config_settings']) tidy(file_names['lua']) tidy(file_names['command_options']) # # Do all the objects first # objects = [] file = open(file_names["text_objects"], "r") exp = re.compile("\s*OBJ_(\w*).*") while file: line = file.readline() if len(line) == 0: break res = exp.match(line) if res: obj = res.group(1) if not re.match("color\d", obj) and obj != "text": # ignore colourN stuff objects.append(res.group(1)) file.close() print 'counted %i text objects' % len(objects) doc_objects = [] exp = re.compile("\s*.*") print "checking docs -> objs consistency (in %s)" % (file_names["text_objects"]) for var in vars: term = getkey(var) doc_objects.append(term) if ['templaten', 'colorn'].count(doc_objects[len(doc_objects) - 1].lower()): # ignore these continue if doc_objects[len(doc_objects) - 1] not in objects: print " '%s' is documented, but doesn't seem to be an object" % (doc_objects[len(doc_objects) - 1]) print "done\n" print "checking objs -> docs consistency (in %s)" % (file_names["variables"]) for obj in objects: if obj not in doc_objects: print " '%s' seems to be undocumented" % (obj) print "done\n" # # Now we'll do config settings # config_entries = [] file = open(file_names["conky"], "r") exp1 = re.compile('\s*CONF\("(\w*)".*') exp2 = re.compile('\s*CONF2\("(\w*)".*') exp3 = re.compile('\s*CONF3\("(\w*)".*') while file: line = file.readline() if len(line) == 0: break res = exp1.match(line) if not res: res = exp2.match(line) if not res: res = exp3.match(line) if res: conf = res.group(1) if re.match("color\d", conf): conf = "colorN" if config_entries.count(conf) == 0: config_entries.append(conf) file.close() print 'counted %i config settings' % len(config_entries) doc_configs = [] print "checking docs -> configs consistency (in %s)" % (file_names["conky"]) for config in configs: term = getkey(config) doc_configs.append(term) if ['text', 'templaten'].count(doc_configs[len(doc_configs) - 1].lower()): # ignore these continue if doc_configs[len(doc_configs) - 1] not in config_entries: print " '%s' is documented, but doesn't seem to be a config setting" % (doc_configs[len(doc_configs) - 1]) print "done\n" print "checking configs -> docs consistency (in %s)" % (file_names["config_settings"]) for obj in config_entries: if obj != "text" and obj != "template" and obj not in doc_configs: print " '%s' seems to be undocumented" % (obj) print "done\n" # Cheat and add the colour/template stuff. for i in range(0, 10): objects.append("color" + str(i)) config_entries.append("color" + str(i)) objects.append("template" + str(i)) config_entries.append("template" + str(i)) # Finally, sort everything. objects.sort() config_entries.sort() # # Update nano syntax stuff # print "updating nano syntax...", sys.stdout.flush() file = open(file_names["nano_syntax"], "rw+") lines = [] while file: line = file.readline() if len(line) == 0: break lines.append(line) # find the line we want to update for line in lines: if re.match("color green ", line): idx = lines.index(line) lines.pop(idx) # remove old line line = 'color green "\<(' for obj in config_entries: line += "%s|" % (obj) line = line[:len(line) - 1] line += ')\>"\n' lines.insert(idx, line) if re.match("color brightblue ", line): idx = lines.index(line) lines.pop(idx) # remove old line line = 'color brightblue "\<(' for obj in objects: line += "%s|" % (obj) line = line[:len(line) - 1] line += ')\>"\n' lines.insert(idx, line) break # want to ignore everything after this line file.truncate(0) file.seek(0) file.writelines(lines) file.close() print "done." # # Update vim syntax stuff # print "updating vim syntax...", sys.stdout.flush() file = open(file_names["vim_syntax"], "rw+") lines = [] while file: line = file.readline() if len(line) == 0: break lines.append(line) # find the line we want to update for line in lines: if re.match("syn keyword ConkyrcSetting ", line): idx = lines.index(line) lines.pop(idx) # remove old line line = 'syn keyword ConkyrcSetting ' for obj in config_entries: line += "%s " % (obj) line = line[:len(line) - 1] line += '\n' lines.insert(idx, line) if re.match("syn keyword ConkyrcVarName contained nextgroup=ConkyrcNumber,ConkyrcColour skipwhite ", line): idx = lines.index(line) lines.pop(idx) # remove old line line = 'syn keyword ConkyrcVarName contained nextgroup=ConkyrcNumber,ConkyrcColour skipwhite ' for obj in objects: line += "%s " % (obj) line = line[:len(line) - 1] line += '\n' lines.insert(idx, line) break # want to ignore everything after this line file.truncate(0) file.seek(0) file.writelines(lines) file.close() # lastly, update the date in docs.xml file = open(file_names["docs"], 'r+') map = mmap.mmap(file.fileno(), os.path.getsize(file_names["docs"])) d = map.find("") d += 6 # skip over first date stuff map[d:d+10] = datetime.now().strftime("%F") map.close() file.close() print "done." conky-1.19.6/bin/clang-tidy-diff.py000077500000000000000000000122071451224556600170350ustar00rootroot00000000000000#!/usr/bin/env python3 # #===- clang-tidy-diff.py - ClangTidy Diff Checker ------------*- python -*--===# # # The LLVM Compiler Infrastructure # # This file is distributed under the University of Illinois Open Source # License. See LICENSE.TXT for details. # #===------------------------------------------------------------------------===# r""" ClangTidy Diff Checker ====================== This script reads input from a unified diff, runs clang-tidy on all changed files and outputs clang-tidy warnings in changed lines only. This is useful to detect clang-tidy regressions in the lines touched by a specific patch. Example usage for git/svn users: git diff -U0 HEAD^ | clang-tidy-diff.py -p1 svn diff --diff-cmd=diff -x-U0 | \ clang-tidy-diff.py -fix -checks=-*,modernize-use-override """ import argparse import json import re import subprocess import sys def main(): parser = argparse.ArgumentParser(description= 'Run clang-tidy against changed files, and ' 'output diagnostics only for modified ' 'lines.') parser.add_argument('-clang-tidy-binary', metavar='PATH', default='clang-tidy', help='path to clang-tidy binary') parser.add_argument('-p', metavar='NUM', default=0, help='strip the smallest prefix containing P slashes') parser.add_argument('-regex', metavar='PATTERN', default=None, help='custom pattern selecting file paths to check ' '(case sensitive, overrides -iregex)') parser.add_argument('-iregex', metavar='PATTERN', default= r'.*\.(cpp|cc|c\+\+|cxx|c|cl|h|hpp|m|mm|inc)', help='custom pattern selecting file paths to check ' '(case insensitive, overridden by -regex)') parser.add_argument('-fix', action='store_true', default=False, help='apply suggested fixes') parser.add_argument('-checks', help='checks filter, when not specified, use clang-tidy ' 'default', default='') parser.add_argument('-format-style', help='style format', default='') parser.add_argument('-path', dest='build_path', help='Path used to read a compile command database.') parser.add_argument('-extra-arg', dest='extra_arg', action='append', default=[], help='Additional argument to append to the compiler ' 'command line.') parser.add_argument('-extra-arg-before', dest='extra_arg_before', action='append', default=[], help='Additional argument to prepend to the compiler ' 'command line.') parser.add_argument('-quiet', action='store_true', default=False, help='Run clang-tidy in quiet mode') clang_tidy_args = [] argv = sys.argv[1:] if '--' in argv: clang_tidy_args.extend(argv[argv.index('--'):]) argv = argv[:argv.index('--')] args = parser.parse_args(argv) # Extract changed lines for each file. filename = None lines_by_file = {} for line in sys.stdin: match = re.search('^\+\+\+\ \"?(.*?/){%s}([^ \t\n\"]*)' % args.p, line) if match: filename = match.group(2) if filename == None: continue if args.regex is not None: if not re.match('^%s$' % args.regex, filename): continue else: if not re.match('^%s$' % args.iregex, filename, re.IGNORECASE): continue match = re.search('^@@.*\+(\d+)(,(\d+))?', line) if match: start_line = int(match.group(1)) line_count = 1 if match.group(3): line_count = int(match.group(3)) if line_count == 0: continue end_line = start_line + line_count - 1; lines_by_file.setdefault(filename, []).append([start_line, end_line]) if len(lines_by_file) == 0: print("No relevant changes found.") sys.exit(0) line_filter_json = json.dumps( [{"name" : name, "lines" : lines_by_file[name]} for name in lines_by_file], separators = (',', ':')) quote = ""; if sys.platform == 'win32': line_filter_json=re.sub(r'"', r'"""', line_filter_json) else: quote = "'"; # Run clang-tidy on files containing changes. command = [args.clang_tidy_binary] command.append('-line-filter=' + quote + line_filter_json + quote) if args.fix: command.append('-fix') if args.checks != '': command.append('-checks=' + quote + args.checks + quote) if args.format_style != '': command.append('-format-style=' + quote + args.format_style + quote) if args.quiet: command.append('-quiet') if args.build_path is not None: command.append('-p=%s' % args.build_path) command.extend(lines_by_file.keys()) for arg in args.extra_arg: command.append('-extra-arg=%s' % arg) for arg in args.extra_arg_before: command.append('-extra-arg-before=%s' % arg) command.extend(clang_tidy_args) sys.exit(subprocess.call(' '.join(command), shell=True)) if __name__ == '__main__': main() conky-1.19.6/bin/run-clang-format.py000077500000000000000000000234111451224556600172470ustar00rootroot00000000000000#!/usr/bin/env python3 """A wrapper script around clang-format, suitable for linting multiple files and to use for continuous integration. This is an alternative API for the clang-format command line. It runs over multiple files and directories in parallel. A diff output is produced and a sensible exit code is returned. Source: https://raw.githubusercontent.com/Sarcasm/run-clang-format/master/run-clang-format.py """ from __future__ import print_function, unicode_literals import argparse import codecs import difflib import fnmatch import io import multiprocessing import os import signal import subprocess import sys import traceback from functools import partial DEFAULT_EXTENSIONS = 'c,h,C,H,cpp,hpp,cc,hh,c++,h++,cxx,hxx' class ExitStatus: SUCCESS = 0 DIFF = 1 TROUBLE = 2 def list_files(files, recursive=False, extensions=None, exclude=None): if extensions is None: extensions = [] if exclude is None: exclude = [] out = [] for file in files: if recursive and os.path.isdir(file): for dirpath, dnames, fnames in os.walk(file): fpaths = [os.path.join(dirpath, fname) for fname in fnames] for pattern in exclude: # os.walk() supports trimming down the dnames list # by modifying it in-place, # to avoid unnecessary directory listings. dnames[:] = [ x for x in dnames if not fnmatch.fnmatch(os.path.join(dirpath, x), pattern) ] fpaths = [ x for x in fpaths if not fnmatch.fnmatch(x, pattern) ] for f in fpaths: ext = os.path.splitext(f)[1][1:] if ext in extensions: out.append(f) else: out.append(file) return out def make_diff(file, original, reformatted): return list( difflib.unified_diff( original, reformatted, fromfile='{}\t(original)'.format(file), tofile='{}\t(reformatted)'.format(file), n=3)) class DiffError(Exception): def __init__(self, message, errs=None): super(DiffError, self).__init__(message) self.errs = errs or [] class UnexpectedError(Exception): def __init__(self, message, exc=None): super(UnexpectedError, self).__init__(message) self.formatted_traceback = traceback.format_exc() self.exc = exc def run_clang_format_diff_wrapper(args, file): try: ret = run_clang_format_diff(args, file) return ret except DiffError: raise except Exception as e: raise UnexpectedError('{}: {}: {}'.format(file, e.__class__.__name__, e), e) def run_clang_format_diff(args, file): try: with io.open(file, 'r', encoding='utf-8') as f: original = f.readlines() except IOError as exc: raise DiffError(str(exc)) invocation = [args.clang_format_executable, file] # Use of utf-8 to decode the process output. # # Hopefully, this is the correct thing to do. # # It's done due to the following assumptions (which may be incorrect): # - clang-format will returns the bytes read from the files as-is, # without conversion, and it is already assumed that the files use utf-8. # - if the diagnostics were internationalized, they would use utf-8: # > Adding Translations to Clang # > # > Not possible yet! # > Diagnostic strings should be written in UTF-8, # > the client can translate to the relevant code page if needed. # > Each translation completely replaces the format string # > for the diagnostic. # > -- http://clang.llvm.org/docs/InternalsManual.html#internals-diag-translation # # It's not pretty, due to Python 2 & 3 compatibility. encoding_py3 = {} if sys.version_info[0] >= 3: encoding_py3['encoding'] = 'utf-8' try: proc = subprocess.Popen( invocation, stdout=subprocess.PIPE, stderr=subprocess.PIPE, universal_newlines=True, **encoding_py3) except OSError as exc: raise DiffError(str(exc)) proc_stdout = proc.stdout proc_stderr = proc.stderr if sys.version_info[0] < 3: # make the pipes compatible with Python 3, # reading lines should output unicode encoding = 'utf-8' proc_stdout = codecs.getreader(encoding)(proc_stdout) proc_stderr = codecs.getreader(encoding)(proc_stderr) # hopefully the stderr pipe won't get full and block the process outs = list(proc_stdout.readlines()) errs = list(proc_stderr.readlines()) proc.wait() if proc.returncode: raise DiffError("clang-format exited with status {}: '{}'".format( proc.returncode, file), errs) return make_diff(file, original, outs), errs def bold_red(s): return '\x1b[1m\x1b[31m' + s + '\x1b[0m' def colorize(diff_lines): def bold(s): return '\x1b[1m' + s + '\x1b[0m' def cyan(s): return '\x1b[36m' + s + '\x1b[0m' def green(s): return '\x1b[32m' + s + '\x1b[0m' def red(s): return '\x1b[31m' + s + '\x1b[0m' for line in diff_lines: if line[:4] in ['--- ', '+++ ']: yield bold(line) elif line.startswith('@@ '): yield cyan(line) elif line.startswith('+'): yield green(line) elif line.startswith('-'): yield red(line) else: yield line def print_diff(diff_lines, use_color): if use_color: diff_lines = colorize(diff_lines) if sys.version_info[0] < 3: sys.stdout.writelines((l.encode('utf-8') for l in diff_lines)) else: sys.stdout.writelines(diff_lines) def print_trouble(prog, message, use_colors): error_text = 'error:' if use_colors: error_text = bold_red(error_text) print("{}: {} {}".format(prog, error_text, message), file=sys.stderr) def main(): parser = argparse.ArgumentParser(description=__doc__) parser.add_argument( '--clang-format-executable', metavar='EXECUTABLE', help='path to the clang-format executable', default='clang-format') parser.add_argument( '--extensions', help='comma separated list of file extensions (default: {})'.format( DEFAULT_EXTENSIONS), default=DEFAULT_EXTENSIONS) parser.add_argument( '-r', '--recursive', action='store_true', help='run recursively over directories') parser.add_argument('files', metavar='file', nargs='+') parser.add_argument( '-q', '--quiet', action='store_true') parser.add_argument( '-j', metavar='N', type=int, default=0, help='run N clang-format jobs in parallel' ' (default number of cpus + 1)') parser.add_argument( '--color', default='auto', choices=['auto', 'always', 'never'], help='show colored diff (default: auto)') parser.add_argument( '-e', '--exclude', metavar='PATTERN', action='append', default=[], help='exclude paths matching the given glob-like pattern(s)' ' from recursive search') args = parser.parse_args() # use default signal handling, like diff return SIGINT value on ^C # https://bugs.python.org/issue14229#msg156446 signal.signal(signal.SIGINT, signal.SIG_DFL) try: signal.SIGPIPE except AttributeError: # compatibility, SIGPIPE does not exist on Windows pass else: signal.signal(signal.SIGPIPE, signal.SIG_DFL) colored_stdout = False colored_stderr = False if args.color == 'always': colored_stdout = True colored_stderr = True elif args.color == 'auto': colored_stdout = sys.stdout.isatty() colored_stderr = sys.stderr.isatty() retcode = ExitStatus.SUCCESS files = list_files( args.files, recursive=args.recursive, exclude=args.exclude, extensions=args.extensions.split(',')) if not files: return njobs = args.j if njobs == 0: njobs = multiprocessing.cpu_count() + 1 njobs = min(len(files), njobs) if njobs == 1: # execute directly instead of in a pool, # less overhead, simpler stacktraces it = (run_clang_format_diff_wrapper(args, file) for file in files) pool = None else: pool = multiprocessing.Pool(njobs) it = pool.imap_unordered( partial(run_clang_format_diff_wrapper, args), files) while True: try: outs, errs = next(it) except StopIteration: break except DiffError as e: print_trouble(parser.prog, str(e), use_colors=colored_stderr) retcode = ExitStatus.TROUBLE sys.stderr.writelines(e.errs) except UnexpectedError as e: print_trouble(parser.prog, str(e), use_colors=colored_stderr) sys.stderr.write(e.formatted_traceback) retcode = ExitStatus.TROUBLE # stop at the first unexpected error, # something could be very wrong, # don't process all files unnecessarily if pool: pool.terminate() break else: sys.stderr.writelines(errs) if outs == []: continue if not args.quiet: print_diff(outs, use_color=colored_stdout) if retcode == ExitStatus.SUCCESS: retcode = ExitStatus.DIFF return retcode if __name__ == '__main__': sys.exit(main()) conky-1.19.6/bin/text2c.sh000077500000000000000000000024501451224556600152660ustar00rootroot00000000000000#!/bin/sh # # text2c.sh - convert a text file to C code # # Copyright (C) 2008 Phil Sutter # # This program is free software: you can redistribute it and/or modify it # under the terms of the GNU General Public License as published by the Free # Software Foundation, either version 3 of the License, or (at your option) # any later version. # # This program is distributed in the hope that it will be useful, but # WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY # or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License # for more details. # # You should have received a copy of the GNU General Public License along # with this program. If not, see . # Invocation is as follows: # $1: text file # $2: output file # $3: name of variable # # The output will be a char **, with each field containing a single line of $1. # Additionally, a macro with the name print_$3 will be defined, with acts as # a parameter-less function, printing the text to stdout. [ $# -eq 3 ] || { echo "Usage: `basename $0` " exit 1 } outupper="`basename "$2" | tr '[a-z-.]' '[A-Z__]'`" ( printf "const char %s[] = \n" "$3" sed -e 's/["\]/\\&/g' -e 's/^/ "/' -e 's/$/\\n"/' -e '$s/$/;/' "$1" ) > "$2" conky-1.19.6/cmake/000077500000000000000000000000001451224556600140255ustar00rootroot00000000000000conky-1.19.6/cmake/Catch.cmake000066400000000000000000000164051451224556600160570ustar00rootroot00000000000000# Distributed under the OSI-approved BSD 3-Clause License. See accompanying # file Copyright.txt or https://cmake.org/licensing for details. #[=======================================================================[.rst: Catch ----- This module defines a function to help use the Catch test framework. The :command:`catch_discover_tests` discovers tests by asking the compiled test executable to enumerate its tests. This does not require CMake to be re-run when tests change. However, it may not work in a cross-compiling environment, and setting test properties is less convenient. This command is intended to replace use of :command:`add_test` to register tests, and will create a separate CTest test for each Catch test case. Note that this is in some cases less efficient, as common set-up and tear-down logic cannot be shared by multiple test cases executing in the same instance. However, it provides more fine-grained pass/fail information to CTest, which is usually considered as more beneficial. By default, the CTest test name is the same as the Catch name; see also ``TEST_PREFIX`` and ``TEST_SUFFIX``. .. command:: catch_discover_tests Automatically add tests with CTest by querying the compiled test executable for available tests:: catch_discover_tests(target [TEST_SPEC arg1...] [EXTRA_ARGS arg1...] [WORKING_DIRECTORY dir] [TEST_PREFIX prefix] [TEST_SUFFIX suffix] [PROPERTIES name1 value1...] [TEST_LIST var] ) ``catch_discover_tests`` sets up a post-build command on the test executable that generates the list of tests by parsing the output from running the test with the ``--list-test-names-only`` argument. This ensures that the full list of tests is obtained. Since test discovery occurs at build time, it is not necessary to re-run CMake when the list of tests changes. However, it requires that :prop_tgt:`CROSSCOMPILING_EMULATOR` is properly set in order to function in a cross-compiling environment. Additionally, setting properties on tests is somewhat less convenient, since the tests are not available at CMake time. Additional test properties may be assigned to the set of tests as a whole using the ``PROPERTIES`` option. If more fine-grained test control is needed, custom content may be provided through an external CTest script using the :prop_dir:`TEST_INCLUDE_FILES` directory property. The set of discovered tests is made accessible to such a script via the ``_TESTS`` variable. The options are: ``target`` Specifies the Catch executable, which must be a known CMake executable target. CMake will substitute the location of the built executable when running the test. ``TEST_SPEC arg1...`` Specifies test cases, wildcarded test cases, tags and tag expressions to pass to the Catch executable with the ``--list-test-names-only`` argument. ``EXTRA_ARGS arg1...`` Any extra arguments to pass on the command line to each test case. ``WORKING_DIRECTORY dir`` Specifies the directory in which to run the discovered test cases. If this option is not provided, the current binary directory is used. ``TEST_PREFIX prefix`` Specifies a ``prefix`` to be prepended to the name of each discovered test case. This can be useful when the same test executable is being used in multiple calls to ``catch_discover_tests()`` but with different ``TEST_SPEC`` or ``EXTRA_ARGS``. ``TEST_SUFFIX suffix`` Similar to ``TEST_PREFIX`` except the ``suffix`` is appended to the name of every discovered test case. Both ``TEST_PREFIX`` and ``TEST_SUFFIX`` may be specified. ``PROPERTIES name1 value1...`` Specifies additional properties to be set on all tests discovered by this invocation of ``catch_discover_tests``. ``TEST_LIST var`` Make the list of tests available in the variable ``var``, rather than the default ``_TESTS``. This can be useful when the same test executable is being used in multiple calls to ``catch_discover_tests()``. Note that this variable is only available in CTest. #]=======================================================================] # ------------------------------------------------------------------------------ function(catch_discover_tests TARGET) cmake_parse_arguments("" "" "TEST_PREFIX;TEST_SUFFIX;WORKING_DIRECTORY;TEST_LIST" "TEST_SPEC;EXTRA_ARGS;PROPERTIES" ${ARGN}) if(NOT _WORKING_DIRECTORY) set(_WORKING_DIRECTORY "${CMAKE_CURRENT_BINARY_DIR}") endif() if(NOT _TEST_LIST) set(_TEST_LIST ${TARGET}_TESTS) endif() # Generate a unique name based on the extra arguments string(SHA1 args_hash "${_TEST_SPEC} ${_EXTRA_ARGS}") string(SUBSTRING ${args_hash} 0 7 args_hash) # Define rule to generate test list for aforementioned test executable set(ctest_include_file "${CMAKE_CURRENT_BINARY_DIR}/${TARGET}_include-${args_hash}.cmake") set(ctest_tests_file "${CMAKE_CURRENT_BINARY_DIR}/${TARGET}_tests-${args_hash}.cmake") get_property(crosscompiling_emulator TARGET ${TARGET} PROPERTY CROSSCOMPILING_EMULATOR) add_custom_command(TARGET ${TARGET} POST_BUILD BYPRODUCTS "${ctest_tests_file}" COMMAND "${CMAKE_COMMAND}" -D "TEST_TARGET=${TARGET}" -D "TEST_EXECUTABLE=$" -D "TEST_EXECUTOR=${crosscompiling_emulator}" -D "TEST_WORKING_DIR=${_WORKING_DIRECTORY}" -D "TEST_SPEC=${_TEST_SPEC}" -D "TEST_EXTRA_ARGS=${_EXTRA_ARGS}" -D "TEST_PROPERTIES=${_PROPERTIES}" -D "TEST_PREFIX=${_TEST_PREFIX}" -D "TEST_SUFFIX=${_TEST_SUFFIX}" -D "TEST_LIST=${_TEST_LIST}" -D "CTEST_FILE=${ctest_tests_file}" -P "${_CATCH_DISCOVER_TESTS_SCRIPT}" VERBATIM) file( WRITE "${ctest_include_file}" "if(EXISTS \"${ctest_tests_file}\")\n" " include(\"${ctest_tests_file}\")\n" "else()\n" " add_test(${TARGET}_NOT_BUILT-${args_hash} ${TARGET}_NOT_BUILT-${args_hash})\n" "endif()\n") if(NOT ${CMAKE_VERSION} VERSION_LESS "3.10.0") # Add discovered tests to directory TEST_INCLUDE_FILES set_property(DIRECTORY APPEND PROPERTY TEST_INCLUDE_FILES "${ctest_include_file}") else() # Add discovered tests as directory TEST_INCLUDE_FILE if possible get_property(test_include_file_set DIRECTORY PROPERTY TEST_INCLUDE_FILE SET) if(NOT ${test_include_file_set}) set_property(DIRECTORY PROPERTY TEST_INCLUDE_FILE "${ctest_include_file}") else() message(FATAL_ERROR "Cannot set more than one TEST_INCLUDE_FILE") endif() endif() endfunction() # set(_CATCH_DISCOVER_TESTS_SCRIPT ${CMAKE_CURRENT_LIST_DIR}/CatchAddTests.cmake) conky-1.19.6/cmake/CatchAddTests.cmake000066400000000000000000000045521451224556600175130ustar00rootroot00000000000000# Distributed under the OSI-approved BSD 3-Clause License. See accompanying # file Copyright.txt or https://cmake.org/licensing for details. set(prefix "${TEST_PREFIX}") set(suffix "${TEST_SUFFIX}") set(spec ${TEST_SPEC}) set(extra_args ${TEST_EXTRA_ARGS}) set(properties ${TEST_PROPERTIES}) set(script) set(suite) set(tests) function(add_command NAME) set(_args "") foreach(_arg ${ARGN}) if(_arg MATCHES "[^-./:a-zA-Z0-9_]") set(_args "${_args} [==[${_arg}]==]") # form a bracket_argument else() set(_args "${_args} ${_arg}") endif() endforeach() set(script "${script}${NAME}(${_args})\n" PARENT_SCOPE) endfunction() # Run test executable to get list of available tests if(NOT EXISTS "${TEST_EXECUTABLE}") message( FATAL_ERROR "Specified test executable '${TEST_EXECUTABLE}' does not exist") endif() execute_process(COMMAND ${TEST_EXECUTOR} "${TEST_EXECUTABLE}" ${spec} --list-test-names-only OUTPUT_VARIABLE output RESULT_VARIABLE result) # Catch --list-test-names-only reports the number of tests, so 0 is... # surprising if(${result} EQUAL 0) message(WARNING "Test executable '${TEST_EXECUTABLE}' contains no tests!\n") elseif(${result} LESS 0) message(FATAL_ERROR "Error running test executable '${TEST_EXECUTABLE}':\n" " Result: ${result}\n" " Output: ${output}\n") endif() string(REPLACE "\n" ";" output "${output}") # Parse output foreach(line ${output}) set(test ${line}) # use escape commas to handle properly test cases with commans inside the name string(REPLACE "," "\\," test_name ${test}) # ...and add to script add_command(add_test "${prefix}${test}${suffix}" ${TEST_EXECUTOR} "${TEST_EXECUTABLE}" "${test_name}" ${extra_args}) add_command(set_tests_properties "${prefix}${test}${suffix}" PROPERTIES WORKING_DIRECTORY "${TEST_WORKING_DIR}" ${properties}) list(APPEND tests "${prefix}${test}${suffix}") endforeach() # Create a list of all discovered tests, which users may use to e.g. set # properties on the tests add_command(set ${TEST_LIST} ${tests}) # Write CTest script file(WRITE "${CTEST_FILE}" "${script}") conky-1.19.6/cmake/CodeCoverage.cmake000066400000000000000000000364421451224556600173660ustar00rootroot00000000000000# Copyright (c) 2012 - 2017, Lars Bilke All rights reserved. # # Redistribution and use in source and binary forms, with or without # modification, are permitted provided that the following conditions are met: # # 1. Redistributions of source code must retain the above copyright notice, this # list of conditions and the following disclaimer. # # 1. Redistributions in binary form must reproduce the above copyright notice, # this list of conditions and the following disclaimer in the documentation # and/or other materials provided with the distribution. # # 1. Neither the name of the copyright holder nor the names of its contributors # may be used to endorse or promote products derived from this software # without specific prior written permission. # # THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" # AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE # IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE # DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE # FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL # DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR # SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER # CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, # OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE # OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. # # CHANGES: # # 2012-01-31, Lars Bilke - Enable Code Coverage # # 2013-09-17, Joakim Söderberg - Added support for Clang. - Some additional # usage instructions. # # 2016-02-03, Lars Bilke - Refactored functions to use named parameters # # 2017-06-02, Lars Bilke - Merged with modified version from github.com/ufz/ogs # # USAGE: # # 1. Copy this file into your cmake modules path. # # 1. Add the following line to your CMakeLists.txt: include(CodeCoverage) # # 1. Append necessary compiler flags: APPEND_COVERAGE_COMPILER_FLAGS() # # 1. If you need to exclude additional directories from the report, specify them # using the COVERAGE_LCOV_EXCLUDES variable before calling # SETUP_TARGET_FOR_COVERAGE_LCOV. Example: set(COVERAGE_LCOV_EXCLUDES 'dir1/*' # 'dir2/*') # # 1. Use the functions described below to create a custom make target which runs # your test executable and produces a code coverage report. # # 1. Build a Debug build: cmake -DCMAKE_BUILD_TYPE=Debug .. make make # my_coverage_target # include(CMakeParseArguments) # Check prereqs find_program(GCOV_PATH NAMES ${CMAKE_SOURCE_DIR}/tests/llvm-gcov.sh gcov PATHS ENV PATH) find_program(LCOV_PATH NAMES lcov lcov.bat lcov.exe lcov.perl PATHS ENV PATH) find_program(LLVM_COV_PATH NAMES llvm-cov110 llvm-cov-11 llvm-cov100 llvm-cov-10 llvm-cov90 llvm-cov-9 llvm-cov80 llvm-cov-8 llvm-cov70 llvm-cov-7 llvm-cov PATHS ENV PATH) find_program(LLVM_PROFDATA_PATH NAMES llvm-profdata110 llvm-profdata-11 llvm-profdata100 llvm-profdata-10 llvm-profdata90 llvm-profdata-9 llvm-profdata80 llvm-profdata-8 llvm-profdata70 llvm-profdata-7 llvm-profdata PATHS ENV PATH) find_program(GENHTML_PATH NAMES genhtml genhtml.perl genhtml.bat) find_program(GCOVR_PATH gcovr PATHS ${CMAKE_SOURCE_DIR}/scripts/test) find_program(SIMPLE_PYTHON_EXECUTABLE python) if(NOT GCOV_PATH) message(FATAL_ERROR "gcov not found! Aborting...") endif() # NOT GCOV_PATH if("${CMAKE_CXX_COMPILER_ID}" MATCHES "(Apple)?[Cc]lang") if("${CMAKE_CXX_COMPILER_VERSION}" VERSION_LESS 3) message(FATAL_ERROR "Clang version must be 3.0.0 or greater! Aborting...") endif() elseif(NOT CMAKE_COMPILER_IS_GNUCXX) message(FATAL_ERROR "Compiler is not GNU gcc! Aborting...") endif() set( COVERAGE_COMPILER_FLAGS -g -O0 -fprofile-arcs -ftest-coverage -fprofile-instr-generate -fcoverage-mapping CACHE INTERNAL "") set(CMAKE_CXX_FLAGS_COVERAGE ${COVERAGE_COMPILER_FLAGS} CACHE STRING "Flags used by the C++ compiler during coverage builds." FORCE) set(CMAKE_C_FLAGS_COVERAGE ${COVERAGE_COMPILER_FLAGS} CACHE STRING "Flags used by the C compiler during coverage builds." FORCE) set(CMAKE_EXE_LINKER_FLAGS_COVERAGE "" CACHE STRING "Flags used for linking binaries during coverage builds." FORCE) set(CMAKE_SHARED_LINKER_FLAGS_COVERAGE "" CACHE STRING "Flags used by the shared libraries linker during coverage builds." FORCE) mark_as_advanced(CMAKE_CXX_FLAGS_COVERAGE CMAKE_C_FLAGS_COVERAGE CMAKE_EXE_LINKER_FLAGS_COVERAGE CMAKE_SHARED_LINKER_FLAGS_COVERAGE) if(NOT CMAKE_BUILD_TYPE STREQUAL "Debug") message( WARNING "Code coverage results with an optimised (non-Debug) build may be misleading" ) endif() # NOT CMAKE_BUILD_TYPE STREQUAL "Debug" if(CMAKE_C_COMPILER_ID STREQUAL "GNU") link_libraries(gcov) else() add_link_options($<$>:-fprofile-instr-generate>) endif() # Defines a target for running and collection code coverage information Builds # dependencies, runs the given executable and outputs reports. NOTE! The # executable should always have a ZERO as exit code otherwise the coverage # generation will not complete. # # SETUP_TARGET_FOR_COVERAGE_LCOV_HTML( NAME testrunner_coverage # New target # name EXECUTABLE testrunner -j ${PROCESSOR_COUNT} # Executable in # PROJECT_BINARY_DIR DEPENDENCIES testrunner # Dependencies # to build first ) function(SETUP_TARGET_FOR_COVERAGE_LCOV_HTML) set(options NONE) set(oneValueArgs NAME) set(multiValueArgs EXECUTABLE EXECUTABLE_ARGS DEPENDENCIES LCOV_ARGS GENHTML_ARGS) cmake_parse_arguments(Coverage "${options}" "${oneValueArgs}" "${multiValueArgs}" ${ARGN}) if(NOT LCOV_PATH) message(FATAL_ERROR "lcov not found! Aborting...") endif() # NOT LCOV_PATH if(NOT GENHTML_PATH) message(FATAL_ERROR "genhtml not found! Aborting...") endif() # NOT GENHTML_PATH # Setup target add_custom_target( ${Coverage_NAME} # Cleanup lcov COMMAND ${LCOV_PATH} ${Coverage_LCOV_ARGS} --gcov-tool ${GCOV_PATH} -directory . --zerocounters # Create baseline to make sure untouched files show # up in the report COMMAND ${LCOV_PATH} ${Coverage_LCOV_ARGS} --gcov-tool ${GCOV_PATH} -c -i -d . -o ${Coverage_NAME}.base # Run tests COMMAND ${Coverage_EXECUTABLE} ${Coverage_EXECUTABLE_ARGS} # Capturing lcov counters and generating report COMMAND ${LCOV_PATH} ${Coverage_LCOV_ARGS} --gcov-tool ${GCOV_PATH} --directory . --capture --output-file ${Coverage_NAME}.info # add baseline counters COMMAND ${LCOV_PATH} ${Coverage_LCOV_ARGS} --gcov-tool ${GCOV_PATH} -a ${Coverage_NAME}.base -a ${Coverage_NAME}.info --output-file ${Coverage_NAME}.total COMMAND ${LCOV_PATH} ${Coverage_LCOV_ARGS} --gcov-tool ${GCOV_PATH} --remove ${Coverage_NAME}.total ${COVERAGE_LCOV_EXCLUDES} --output-file ${PROJECT_BINARY_DIR}/${Coverage_NAME}.info.cleaned # Generate HTML COMMAND ${GENHTML_PATH} ${Coverage_GENHTML_ARGS} -o ${Coverage_NAME} ${PROJECT_BINARY_DIR}/${Coverage_NAME}.info.cleaned # Clean up COMMAND ${CMAKE_COMMAND} -E remove ${Coverage_NAME}.base ${Coverage_NAME}.total ${PROJECT_BINARY_DIR}/${Coverage_NAME}.info WORKING_DIRECTORY ${PROJECT_BINARY_DIR} DEPENDS ${Coverage_DEPENDENCIES} COMMENT "Resetting code coverage counters to zero.\nProcessing code coverage counters and generating report." ) # Show where to find the lcov info report add_custom_command( TARGET ${Coverage_NAME} POST_BUILD COMMAND ; COMMENT "Lcov code coverage info report saved in ${Coverage_NAME}.info.cleaned") # Show info where to find the report add_custom_command( TARGET ${Coverage_NAME} POST_BUILD COMMAND ; COMMENT "Open ./${Coverage_NAME}/index.html in your browser to view the coverage report." ) endfunction() # SETUP_TARGET_FOR_COVERAGE_LCOV_HTML # Defines a target for running and collection code coverage information Builds # dependencies, runs the given executable and outputs reports. NOTE! The # executable should always have a ZERO as exit code otherwise the coverage # generation will not complete. # # SETUP_TARGET_FOR_COVERAGE_LCOV_TXT( NAME testrunner_coverage # New target name # EXECUTABLE testrunner -j ${PROCESSOR_COUNT} # Executable in PROJECT_BINARY_DIR # DEPENDENCIES testrunner # Dependencies to build first ) function(SETUP_TARGET_FOR_COVERAGE_LCOV_TXT) set(options NONE) set(oneValueArgs NAME) set(multiValueArgs EXECUTABLE EXECUTABLE_ARGS DEPENDENCIES LCOV_ARGS GENHTML_ARGS) cmake_parse_arguments(Coverage "${options}" "${oneValueArgs}" "${multiValueArgs}" ${ARGN}) if(NOT LCOV_PATH) message(FATAL_ERROR "lcov not found! Aborting...") endif() # NOT LCOV_PATH # Setup target add_custom_target( ${Coverage_NAME} # Run tests COMMAND ${Coverage_EXECUTABLE} ${Coverage_EXECUTABLE_ARGS} # Generate coverage.txt for sonar COMMAND ${LLVM_PROFDATA_PATH} merge default.profraw -output ${Coverage_NAME}.profdata COMMAND ${LLVM_COV_PATH} show -instr-profile=${Coverage_NAME}.profdata ${CMAKE_CURRENT_BINARY_DIR}/${Coverage_EXECUTABLE} > ${Coverage_NAME}.txt # Generate HTML # Clean up COMMAND ${CMAKE_COMMAND} -E remove ${Coverage_NAME}.profdata default.profraw WORKING_DIRECTORY ${PROJECT_BINARY_DIR} DEPENDS ${Coverage_DEPENDENCIES} COMMENT "Resetting code coverage counters to zero.\nProcessing code coverage counters and generating report." ) # Show where to find the lcov info report add_custom_command( TARGET ${Coverage_NAME} POST_BUILD COMMAND ; COMMENT "Lcov code coverage info report saved in ${Coverage_NAME}.txt.") endfunction() # SETUP_TARGET_FOR_COVERAGE_LCOV_TXT # Defines a target for running and collection code coverage information Builds # dependencies, runs the given executable and outputs reports. NOTE! The # executable should always have a ZERO as exit code otherwise the coverage # generation will not complete. # # SETUP_TARGET_FOR_COVERAGE_GCOVR_XML( NAME ctest_coverage # # New target name EXECUTABLE ctest -j ${PROCESSOR_COUNT} # Executable in # PROJECT_BINARY_DIR DEPENDENCIES executable_target # Dependencies to # build first ) function(SETUP_TARGET_FOR_COVERAGE_GCOVR_XML) set(options NONE) set(oneValueArgs NAME) set(multiValueArgs EXECUTABLE EXECUTABLE_ARGS DEPENDENCIES) cmake_parse_arguments(Coverage "${options}" "${oneValueArgs}" "${multiValueArgs}" ${ARGN}) if(NOT SIMPLE_PYTHON_EXECUTABLE) message(FATAL_ERROR "python not found! Aborting...") endif() # NOT SIMPLE_PYTHON_EXECUTABLE if(NOT GCOVR_PATH) message(FATAL_ERROR "gcovr not found! Aborting...") endif() # NOT GCOVR_PATH # Combine excludes to several -e arguments set(GCOVR_EXCLUDES "") foreach(EXCLUDE ${COVERAGE_GCOVR_EXCLUDES}) list(APPEND GCOVR_EXCLUDES "-e") list(APPEND GCOVR_EXCLUDES "${EXCLUDE}") endforeach() add_custom_target( ${Coverage_NAME} # Run tests ${Coverage_EXECUTABLE} ${Coverage_EXECUTABLE_ARGS} # Running gcovr COMMAND ${GCOVR_PATH} --xml -r ${PROJECT_SOURCE_DIR} ${GCOVR_EXCLUDES} --object-directory=${PROJECT_BINARY_DIR} -o ${Coverage_NAME}.xml WORKING_DIRECTORY ${PROJECT_BINARY_DIR} DEPENDS ${Coverage_DEPENDENCIES} COMMENT "Running gcovr to produce Cobertura code coverage report.") # Show info where to find the report add_custom_command( TARGET ${Coverage_NAME} POST_BUILD COMMAND ; COMMENT "Cobertura code coverage report saved in ${Coverage_NAME}.xml.") endfunction() # SETUP_TARGET_FOR_COVERAGE_GCOVR_XML # Defines a target for running and collection code coverage information Builds # dependencies, runs the given executable and outputs reports. NOTE! The # executable should always have a ZERO as exit code otherwise the coverage # generation will not complete. # # SETUP_TARGET_FOR_COVERAGE_GCOVR_HTML( NAME ctest_coverage # # New target name EXECUTABLE ctest -j ${PROCESSOR_COUNT} # Executable in # PROJECT_BINARY_DIR DEPENDENCIES executable_target # Dependencies to # build first ) function(SETUP_TARGET_FOR_COVERAGE_GCOVR_HTML) set(options NONE) set(oneValueArgs NAME) set(multiValueArgs EXECUTABLE EXECUTABLE_ARGS DEPENDENCIES) cmake_parse_arguments(Coverage "${options}" "${oneValueArgs}" "${multiValueArgs}" ${ARGN}) if(NOT SIMPLE_PYTHON_EXECUTABLE) message(FATAL_ERROR "python not found! Aborting...") endif() # NOT SIMPLE_PYTHON_EXECUTABLE if(NOT GCOVR_PATH) message(FATAL_ERROR "gcovr not found! Aborting...") endif() # NOT GCOVR_PATH # Combine excludes to several -e arguments set(GCOVR_EXCLUDES "") foreach(EXCLUDE ${COVERAGE_GCOVR_EXCLUDES}) list(APPEND GCOVR_EXCLUDES "-e") list(APPEND GCOVR_EXCLUDES "${EXCLUDE}") endforeach() add_custom_target( ${Coverage_NAME} # Run tests ${Coverage_EXECUTABLE} ${Coverage_EXECUTABLE_ARGS} # Create folder COMMAND ${CMAKE_COMMAND} -E make_directory ${PROJECT_BINARY_DIR}/${Coverage_NAME} # Running gcovr COMMAND ${GCOVR_PATH} --html --html-details -r ${PROJECT_SOURCE_DIR} ${GCOVR_EXCLUDES} --object-directory=${PROJECT_BINARY_DIR} -o ${Coverage_NAME}/index.html WORKING_DIRECTORY ${PROJECT_BINARY_DIR} DEPENDS ${Coverage_DEPENDENCIES} COMMENT "Running gcovr to produce HTML code coverage report.") # Show info where to find the report add_custom_command( TARGET ${Coverage_NAME} POST_BUILD COMMAND ; COMMENT "Open ${CMAKE_CURRENT_BINARY_DIR}/${Coverage_NAME}/index.html in your browser to view the coverage report." ) endfunction() # SETUP_TARGET_FOR_COVERAGE_GCOVR_HTML function(APPEND_COVERAGE_COMPILER_FLAGS) foreach(_opt ${COVERAGE_COMPILER_FLAGS}) add_compile_options($<$:${_opt}>) add_compile_options($<$:${_opt}>) endforeach() message( STATUS "Appending code coverage compiler flags: ${COVERAGE_COMPILER_FLAGS}") endfunction() # APPEND_COVERAGE_COMPILER_FLAGS conky-1.19.6/cmake/Conky.cmake000066400000000000000000000150771451224556600161240ustar00rootroot00000000000000# # Conky, a system monitor, based on torsmo # # Please see COPYING for details # # Copyright (c) 2005-2021 Brenden Matthews, et. al. (see AUTHORS) All rights # reserved. # # This program is free software: you can redistribute it and/or modify it under # the terms of the GNU General Public License as published by the Free Software # Foundation, either version 3 of the License, or (at your option) any later # version. # # This program is distributed in the hope that it will be useful, but WITHOUT # ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS # FOR A PARTICULAR PURPOSE. See the GNU General Public License for more # details. You should have received a copy of the GNU General Public License # along with this program. If not, see . # # set(RELEASE true) # Set system vars if(CMAKE_SYSTEM_NAME MATCHES "Linux") set(OS_LINUX true) endif(CMAKE_SYSTEM_NAME MATCHES "Linux") if(CMAKE_SYSTEM_NAME MATCHES "FreeBSD") set(OS_FREEBSD true) endif(CMAKE_SYSTEM_NAME MATCHES "FreeBSD") if(CMAKE_SYSTEM_NAME MATCHES "DragonFly") set(OS_DRAGONFLY true) endif(CMAKE_SYSTEM_NAME MATCHES "DragonFly") if(CMAKE_SYSTEM_NAME MATCHES "OpenBSD") set(OS_OPENBSD true) endif(CMAKE_SYSTEM_NAME MATCHES "OpenBSD") if(CMAKE_SYSTEM_NAME MATCHES "SunOS") set(OS_SOLARIS true) endif(CMAKE_SYSTEM_NAME MATCHES "SunOS") if(CMAKE_SYSTEM_NAME MATCHES "NetBSD") set(OS_NETBSD true) endif(CMAKE_SYSTEM_NAME MATCHES "NetBSD") if(CMAKE_SYSTEM_NAME MATCHES "Haiku") set(OS_HAIKU true) endif(CMAKE_SYSTEM_NAME MATCHES "Haiku") if(CMAKE_SYSTEM_NAME MATCHES "Darwin") set(OS_DARWIN true) endif(CMAKE_SYSTEM_NAME MATCHES "Darwin") if(NOT OS_LINUX AND NOT OS_FREEBSD AND NOT OS_OPENBSD AND NOT OS_DRAGONFLY AND NOT OS_SOLARIS AND NOT OS_HAIKU AND NOT OS_DARWIN) message( FATAL_ERROR "Your platform, '${CMAKE_SYSTEM_NAME}', is not currently supported. Patches are welcome." ) endif(NOT OS_LINUX AND NOT OS_FREEBSD AND NOT OS_OPENBSD AND NOT OS_DRAGONFLY AND NOT OS_SOLARIS AND NOT OS_HAIKU AND NOT OS_DARWIN) include(FindThreads) find_package(Threads) set(conky_libs ${CMAKE_THREAD_LIBS_INIT}) set(conky_includes ${CMAKE_BINARY_DIR}) # # On Darwin _POSIX_C_SOURCE must be >= __DARWIN_C_FULL for asprintf to be # enabled! Thus disable this and _LARGEFILE64_SOURCE isnt needed, it is already # used on macOS. # if(NOT OS_DARWIN) add_definitions(-D_LARGEFILE64_SOURCE -D_POSIX_C_SOURCE=200809L) # Standard # definitions set( CMAKE_REQUIRED_DEFINITIONS "${CMAKE_REQUIRED_DEFINITIONS} -D_LARGEFILE64_SOURCE -D_POSIX_C_SOURCE=200809L" ) endif(NOT OS_DARWIN) if(OS_FREEBSD) add_definitions(-D__BSD_VISIBLE=1 -D_XOPEN_SOURCE=700) set( CMAKE_REQUIRED_DEFINITIONS "${CMAKE_REQUIRED_DEFINITIONS} -D_LARGEFILE64_SOURCE -D_POSIX_C_SOURCE=200809L -D__BSD_VISIBLE=1 -D_XOPEN_SOURCE=700" ) endif(OS_FREEBSD) if(OS_DRAGONFLY) set(conky_libs ${conky_libs} -L/usr/pkg/lib) set(conky_includes ${conky_includes} -I/usr/pkg/include) endif(OS_DRAGONFLY) if(OS_SOLARIS) set(conky_libs ${conky_libs} -L/usr/local/lib) endif(OS_SOLARIS) if(OS_HAIKU) # For asprintf add_definitions(-D_GNU_SOURCE) # Standard definitions set( CMAKE_REQUIRED_DEFINITIONS "${CMAKE_REQUIRED_DEFINITIONS} -D_GNU_SOURCE" ) endif(OS_HAIKU) # Do version stuff set(VERSION_MAJOR "1") set(VERSION_MINOR "19") set(VERSION_PATCH "6") find_program(APP_AWK awk) if(NOT APP_AWK) message(FATAL_ERROR "Unable to find program 'awk'") endif(NOT APP_AWK) find_program(APP_WC wc) if(NOT APP_WC) message(FATAL_ERROR "Unable to find program 'wc'") endif(NOT APP_WC) find_program(APP_DATE date) if(NOT APP_DATE) message(FATAL_ERROR "Unable to find program 'date'") endif(NOT APP_DATE) find_program(APP_UNAME uname) if(NOT APP_UNAME) message(FATAL_ERROR "Unable to find program 'uname'") endif(NOT APP_UNAME) if(NOT RELEASE) find_program(APP_GIT git) if(NOT APP_GIT) message(FATAL_ERROR "Unable to find program 'git'") endif(NOT APP_GIT) mark_as_advanced(APP_GIT) endif(NOT RELEASE) mark_as_advanced(APP_AWK APP_WC APP_DATE APP_UNAME) # BUILD_DATE=$(LANG=en_US LC_ALL=en_US LOCALE=en_US date --utc # --date="@${SOURCE_DATE_EPOCH:-$(date +%s)}" +%Y-%m-%d) # BUILD_ARCH="$(uname -sm)" STRING(TIMESTAMP BUILD_DATE "%Y-%m-%d" UTC) execute_process(COMMAND ${APP_UNAME} -sm RESULT_VARIABLE RETVAL OUTPUT_VARIABLE BUILD_ARCH OUTPUT_STRIP_TRAILING_WHITESPACE) if(RELEASE) set(VERSION "${VERSION_MAJOR}.${VERSION_MINOR}.${VERSION_PATCH}") else(RELEASE) set(VERSION "${VERSION_MAJOR}.${VERSION_MINOR}.${VERSION_PATCH}_pre${COMMIT_COUNT}") endif(RELEASE) set(COPYRIGHT "Copyright Brenden Matthews, et al, 2005-2021") macro(AC_SEARCH_LIBS FUNCTION_NAME INCLUDES TARGET_VAR) if("${TARGET_VAR}" MATCHES "^${TARGET_VAR}$") unset(AC_SEARCH_LIBS_TMP CACHE) check_symbol_exists(${FUNCTION_NAME} ${INCLUDES} AC_SEARCH_LIBS_TMP) if(${AC_SEARCH_LIBS_TMP}) set(${TARGET_VAR} "" CACHE INTERNAL "Library containing ${FUNCTION_NAME}") else(${AC_SEARCH_LIBS_TMP}) foreach(LIB ${ARGN}) unset(AC_SEARCH_LIBS_TMP CACHE) unset(AC_SEARCH_LIBS_FOUND CACHE) find_library(AC_SEARCH_LIBS_TMP ${LIB}) check_library_exists(${LIB} ${FUNCTION_NAME} ${AC_SEARCH_LIBS_TMP} AC_SEARCH_LIBS_FOUND) if(${AC_SEARCH_LIBS_FOUND}) set(${TARGET_VAR} ${AC_SEARCH_LIBS_TMP} CACHE INTERNAL "Library containing ${FUNCTION_NAME}") break() endif(${AC_SEARCH_LIBS_FOUND}) endforeach(LIB) endif(${AC_SEARCH_LIBS_TMP}) endif("${TARGET_VAR}" MATCHES "^${TARGET_VAR}$") endmacro(AC_SEARCH_LIBS) # A function to print the target build properties function(print_target_properties tgt) if(NOT TARGET ${tgt}) message("There is no target named '${tgt}'") return() endif() # this list of properties can be extended as needed set(CMAKE_PROPERTY_LIST SOURCE_DIR BINARY_DIR COMPILE_DEFINITIONS COMPILE_OPTIONS INCLUDE_DIRECTORIES LINK_LIBRARIES) message("Configuration for target ${tgt}") foreach(prop ${CMAKE_PROPERTY_LIST}) get_property(propval TARGET ${tgt} PROPERTY ${prop} SET) if(propval) get_target_property(propval ${tgt} ${prop}) message(STATUS "${prop} = ${propval}") endif() endforeach(prop) endfunction(print_target_properties) conky-1.19.6/cmake/ConkyBuildOptions.cmake000066400000000000000000000217341451224556600204550ustar00rootroot00000000000000# # Conky, a system monitor, based on torsmo # # Please see COPYING for details # # Copyright (c) 2005-2021 Brenden Matthews, et. al. (see AUTHORS) All rights # reserved. # # This program is free software: you can redistribute it and/or modify it under # the terms of the GNU General Public License as published by the Free Software # Foundation, either version 3 of the License, or (at your option) any later # version. # # This program is distributed in the hope that it will be useful, but WITHOUT # ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS # FOR A PARTICULAR PURPOSE. See the GNU General Public License for more # details. You should have received a copy of the GNU General Public License # along with this program. If not, see . # if(NOT CMAKE_BUILD_TYPE) if(MAINTAINER_MODE) set( CMAKE_BUILD_TYPE Debug CACHE STRING "Choose the type of build, options are: None Debug Release RelWithDebInfo MinSizeRel." FORCE) else(MAINTAINER_MODE) set( CMAKE_BUILD_TYPE RelWithDebInfo CACHE STRING "Choose the type of build, options are: None Debug Release RelWithDebInfo MinSizeRel." FORCE) endif(MAINTAINER_MODE) endif(NOT CMAKE_BUILD_TYPE) # -std options for all build types set(CMAKE_C_STANDARD 99) set(CMAKE_CXX_STANDARD 17) set(CMAKE_CXX_STANDARD_REQUIRED ON) set(CMAKE_CXX_EXTENSIONS OFF) if(MAINTAINER_MODE) set(CMAKE_COMPILE_WARNING_AS_ERROR true) set(BUILD_TESTS true) endif(MAINTAINER_MODE) # Always use libc++ when compiling w/ clang add_compile_options($<$:-stdlib=libc++>) add_link_options($<$:-stdlib=libc++>) option(CHECK_CODE_QUALITY "Check code formatting/quality with clang" false) option(RELEASE "Build release package" false) mark_as_advanced(RELEASE) option(MAINTAINER_MODE "Enable maintainer mode" false) option(CODE_COVERAGE "Enable code coverage report generation" false) option(BUILD_DOCS "Build documentation" false) option(BUILD_EXTRAS "Build extras (includes syntax files for editors)" false) option(BUILD_I18N "Enable if you want internationalization support" true) if(BUILD_I18N) set(LOCALE_DIR "${CMAKE_INSTALL_PREFIX}/share/locale" CACHE STRING "Directory containing the locales") endif(BUILD_I18N) # Some standard options set(SYSTEM_CONFIG_FILE "/etc/conky/conky.conf" CACHE STRING "Default system-wide Conky configuration file") # use FORCE below to make sure this changes when CMAKE_INSTALL_PREFIX is # modified if(NOT LIB_INSTALL_DIR) set(LIB_INSTALL_DIR "${CMAKE_INSTALL_PREFIX}/lib${LIB_SUFFIX}") endif(NOT LIB_INSTALL_DIR) set(PACKAGE_LIBRARY_DIR "${LIB_INSTALL_DIR}/conky" CACHE STRING "Package library path (where Lua bindings are installed" FORCE) set(DEFAULTNETDEV "eno1" CACHE STRING "Default networkdevice") # Mac only override if(OS_DARWIN) set(DEFAULTNETDEV "en0" CACHE STRING "Default networkdevice" FORCE) endif(OS_DARWIN) set(XDG_CONFIG_FILE "$HOME/.config/conky/conky.conf" CACHE STRING "Configfile of the user (XDG)") set(CONFIG_FILE "$HOME/.conkyrc" CACHE STRING "Configfile of the user") set(MAX_USER_TEXT_DEFAULT "16384" CACHE STRING "Default maximum size of config TEXT buffer, i.e. below TEXT line.") set(DEFAULT_TEXT_BUFFER_SIZE "256" CACHE STRING "Default size used for temporary, static text buffers") set(MAX_NET_INTERFACES "256" CACHE STRING "Maximum number of network devices") # Platform specific options Linux only if(OS_LINUX) option(BUILD_PORT_MONITORS "Build TCP portmon support" true) option(BUILD_IBM "Support for IBM/Lenovo notebooks" true) option(BUILD_HDDTEMP "Support for hddtemp" true) option(BUILD_IPV6 "Enable if you want IPv6 support" true) if(BUILD_X11) # nvidia may also work on FreeBSD, not sure option(BUILD_NVIDIA "Enable nvidia support" false) endif(BUILD_X11) else(OS_LINUX) set(BUILD_PORT_MONITORS false) set(BUILD_IBM false) set(BUILD_HDDTEMP false) set(BUILD_NVIDIA false) set(BUILD_IPV6 false) endif(OS_LINUX) # macOS Only if(OS_DARWIN) option( BUILD_IPGFREQ "Enable cpu freq calculation based on Intel® Power Gadget; otherwise use constant factory value" false) endif(OS_DARWIN) # Optional features etc # option(BUILD_WLAN "Enable wireless support" false) option(BUILD_BUILTIN_CONFIG "Enable builtin default configuration" true) option(BUILD_IOSTATS "Enable disk I/O stats" true) option(BUILD_OLD_CONFIG "Enable support for the old syntax of configurations" true) option(BUILD_MATH "Enable math support" true) option(BUILD_NCURSES "Enable ncurses support" true) if(BUILD_NCURSES) option( LEAKFREE_NCURSES "Enable to hide false ncurses-memleaks in valgrind (works only when ncurses is compiled with --disable-leaks)" false) else(BUILD_NCURSES) set( LEAKFREE_NCURSES false CACHE BOOL "Enable to hide false ncurses-memleaks in valgrind (works only when ncurses is compiled with --disable-leaks)" FORCE) endif(BUILD_NCURSES) option(BUILD_WAYLAND "Build Wayland support" false) option(BUILD_X11 "Build X11 support" true) if(BUILD_X11) option(OWN_WINDOW "Enable own_window support" true) # Mac Fix if(OS_DARWIN) option(BUILD_XDAMAGE "Build Xdamage support" false) option(BUILD_XFIXES "Build Xfixes support" false) else(OS_DARWIN) option(BUILD_XDAMAGE "Build Xdamage support" true) option(BUILD_XFIXES "Build Xfixes support" true) endif(OS_DARWIN) option(BUILD_XINERAMA "Build Xinerama support" true) option(BUILD_XDBE "Build Xdbe (double-buffer) support" true) option(BUILD_XFT "Build Xft (freetype fonts) support" true) option(BUILD_IMLIB2 "Enable Imlib2 support" true) option(BUILD_XSHAPE "Enable Xshape support" true) option(BUILD_MOUSE_EVENTS "Enable mouse event support" true) else(BUILD_X11) set(OWN_WINDOW false CACHE BOOL "Enable own_window support" FORCE) set(BUILD_XDAMAGE false CACHE BOOL "Build Xdamage support" FORCE) set(BUILD_XFIXES false CACHE BOOL "Build Xfixes support" FORCE) set(BUILD_XINERAMA false CACHE BOOL "Build Xinerama support" FORCE) set(BUILD_XDBE false CACHE BOOL "Build Xdbe (double-buffer) support" FORCE) set(BUILD_XFT false CACHE BOOL "Build Xft (freetype fonts) support" FORCE) set(BUILD_IMLIB2 false CACHE BOOL "Enable Imlib2 support" FORCE) set(BUILD_XSHAPE false CACHE BOOL "Enable Xshape support" FORCE) set(BUILD_MOUSE_EVENTS false CACHE BOOL "Enable mouse event support" FORCE) set(BUILD_NVIDIA false) endif(BUILD_X11) # if we build with any GUI support if(BUILD_X11) set(BUILD_GUI true) endif(BUILD_X11) if(BUILD_WAYLAND) set(BUILD_GUI true) endif(BUILD_WAYLAND) if(OWN_WINDOW) option(BUILD_ARGB "Build ARGB (real transparency) support" true) else(OWN_WINDOW) set(BUILD_ARGB false CACHE BOOL "Build ARGB (real transparency) support" FORCE) endif(OWN_WINDOW) option(BUILD_LUA_CAIRO "Build cairo bindings for Lua" false) option(BUILD_LUA_IMLIB2 "Build Imlib2 bindings for Lua" false) option(BUILD_LUA_RSVG "Build rsvg bindings for Lua" false) option(BUILD_AUDACIOUS "Build audacious (music player) support" false) option(BUILD_MPD "Enable if you want MPD (music player) support" true) option(BUILD_MYSQL "Enable if you want MySQL support" false) option(BUILD_MOC "Enable if you want MOC (music player) support" true) option(BUILD_XMMS2 "Enable if you want XMMS2 (music player) support" false) option(BUILD_CURL "Enable if you want Curl support" false) option(BUILD_RSS "Enable if you want RSS support" false) if(BUILD_RSS) # if RSS is enabled, curl is required set(BUILD_CURL true) endif(BUILD_RSS) option(BUILD_APCUPSD "Enable APCUPSD support" true) option(BUILD_ICAL "Enable if you want iCalendar (RFC 5545) support" false) option(BUILD_IRC "Enable if you want IRC support" false) option(BUILD_HTTP "Enable if you want HTTP support" false) if(BUILD_HTTP) set(HTTPPORT "10080" CACHE STRING "Port to use for out_to_http") endif(BUILD_HTTP) option(BUILD_ICONV "Enable iconv support" false) option(BUILD_CMUS "Enable support for cmus music player" true) option(BUILD_JOURNAL "Enable support for reading from the systemd journal" false) option(BUILD_PULSEAUDIO "Enable support for Pulseaudio's default sink and source" false) option(BUILD_INTEL_BACKLIGHT "Enable support for Intel backlight" false) message(STATUS "CMAKE_C_FLAGS: " ${CMAKE_C_FLAGS}) message(STATUS "CMAKE_CXX_FLAGS: " ${CMAKE_CXX_FLAGS}) message(STATUS "CMAKE_C_FLAGS_DEBUG: " ${CMAKE_C_FLAGS_DEBUG}) message(STATUS "CMAKE_CXX_FLAGS_DEBUG: " ${CMAKE_CXX_FLAGS_DEBUG}) message(STATUS "CMAKE_C_FLAGS_MINSIZEREL: " ${CMAKE_C_FLAGS_MINSIZEREL}) message(STATUS "CMAKE_CXX_FLAGS_MINSIZEREL: " ${CMAKE_CXX_FLAGS_MINSIZEREL}) message(STATUS "CMAKE_C_FLAGS_RELEASE: " ${CMAKE_C_FLAGS_RELEASE}) message(STATUS "CMAKE_CXX_FLAGS_RELEASE: " ${CMAKE_CXX_FLAGS_RELEASE}) message(STATUS "CMAKE_C_FLAGS_RELWITHDEBINFO: " ${CMAKE_C_FLAGS_RELWITHDEBINFO}) message(STATUS "CMAKE_CXX_FLAGS_RELWITHDEBINFO: " ${CMAKE_CXX_FLAGS_RELWITHDEBINFO}) message(STATUS "CMAKE_BUILD_TYPE: " ${CMAKE_BUILD_TYPE}) conky-1.19.6/cmake/ConkyCPackSetup.cmake000066400000000000000000000043411451224556600200370ustar00rootroot00000000000000# # Conky, a system monitor, based on torsmo # # Please see COPYING for details # # Copyright (c) 2005-2021 Brenden Matthews, et. al. (see AUTHORS) All rights # reserved. # # This program is free software: you can redistribute it and/or modify it under # the terms of the GNU General Public License as published by the Free Software # Foundation, either version 3 of the License, or (at your option) any later # version. # # This program is distributed in the hope that it will be useful, but WITHOUT # ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS # FOR A PARTICULAR PURPOSE. See the GNU General Public License for more # details. You should have received a copy of the GNU General Public License # along with this program. If not, see . # set(CPACK_GENERATOR "TGZ;STGZ;DEB") set(CPACK_DEBIAN_PACKAGE_DEPENDS "libc6 (>=2.10-1), libgcc1 (>= 1:4.4.0)") set(CPACK_PACKAGE_CONTACT "brenden@diddyinc.com") set(CPACK_DEBIAN_PACKAGE_MAINTAINER "Brenden Matthews") set(CPACK_PACKAGE_FILE_NAME "${PROJECT_NAME}-${VERSION}-${CMAKE_SYSTEM_NAME}-${CPU_ARCH}") set(CPACK_PACKAGE_INSTALL_DIRECTORY ${PROJECT_NAME}) set(CPACK_STRIP_FILES true) # Version numbering, copyright notice, etc. are taken from the variables defined # in ../CMakeLists.txt. set(CPACK_PACKAGE_VERSION_MAJOR "${VERSION_MAJOR}") set(CPACK_PACKAGE_VERSION_MINOR "${VERSION_MINOR}") set(CPACK_PACKAGE_VERSION_PATCH "${VERSION_PATCH}") if(CPACK_GENERATOR MATCHES "NSIS") set(CPACK_NSIS_COMPRESSOR "/FINAL /SOLID lzma") set(CPACK_PACKAGE_EXECUTABLES ${PROJECT_NAME} ${PROJECT_NAME}) endif(CPACK_GENERATOR MATCHES "NSIS") # Source package setup. Compile with "make package_source". set(CPACK_SOURCE_PACKAGE_FILE_NAME "${PROJECT_NAME}-${VERSION}-src") set(CPACK_SOURCE_GENERATOR "TBZ2") execute_process(COMMAND ${APP_UNAME} COMMAND ${APP_AWK} "{print $1}" RESULT_VARIABLE RETVAL OUTPUT_VARIABLE CPU_ARCH OUTPUT_STRIP_TRAILING_WHITESPACE) set(CPACK_SOURCE_IGNORE_FILES # Exclude backup files generated by text editors. "~$" # Git dir/files. "\\\\.git.*$" # vim swap files "\\\\..*\\\\.swp$" # Build dir. "build.*$") # Enable CPack include(CPack) conky-1.19.6/cmake/ConkyPlatformChecks.cmake000066400000000000000000000443451451224556600207520ustar00rootroot00000000000000# # Conky, a system monitor, based on torsmo # # Please see COPYING for details # # Copyright (c) 2005-2021 Brenden Matthews, et. al. (see AUTHORS) All rights # reserved. # # This program is free software: you can redistribute it and/or modify it under # the terms of the GNU General Public License as published by the Free Software # Foundation, either version 3 of the License, or (at your option) any later # version. # # This program is distributed in the hope that it will be useful, but WITHOUT # ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS # FOR A PARTICULAR PURPOSE. See the GNU General Public License for more # details. You should have received a copy of the GNU General Public License # along with this program. If not, see . # include(FindPkgConfig) include(CheckFunctionExists) include(CheckIncludeFiles) include(CheckSymbolExists) # Check for some headers check_include_files(sys/statfs.h HAVE_SYS_STATFS_H) check_include_files(sys/param.h HAVE_SYS_PARAM_H) check_include_files(sys/inotify.h HAVE_SYS_INOTIFY_H) check_include_files(dirent.h HAVE_DIRENT_H) # Check for some functions check_function_exists(strndup HAVE_STRNDUP) check_symbol_exists(pipe2 "unistd.h" HAVE_PIPE2) check_symbol_exists(O_CLOEXEC "fcntl.h" HAVE_O_CLOEXEC) if(CMAKE_SYSTEM_NAME MATCHES "Darwin") check_symbol_exists(statfs64 "sys/mount.h" HAVE_STATFS64) else(CMAKE_SYSTEM_NAME MATCHES "Darwin") check_symbol_exists(statfs64 "sys/statfs.h" HAVE_STATFS64) endif(CMAKE_SYSTEM_NAME MATCHES "Darwin") ac_search_libs(clock_gettime "time.h" CLOCK_GETTIME_LIB "rt") if(NOT DEFINED CLOCK_GETTIME_LIB) if(NOT CMAKE_SYSTEM_NAME MATCHES "Darwin") message(FATAL_ERROR "clock_gettime not found.") endif(NOT CMAKE_SYSTEM_NAME MATCHES "Darwin") else(NOT DEFINED CLOCK_GETTIME_LIB) set(HAVE_CLOCK_GETTIME 1) endif(NOT DEFINED CLOCK_GETTIME_LIB) set(conky_libs ${conky_libs} ${CLOCK_GETTIME_LIB}) # standard path to search for includes set(INCLUDE_SEARCH_PATH /usr/include /usr/local/include) # Set system vars if(CMAKE_SYSTEM_NAME MATCHES "Linux") set(OS_LINUX true) endif(CMAKE_SYSTEM_NAME MATCHES "Linux") if(CMAKE_SYSTEM_NAME MATCHES "FreeBSD") set(OS_FREEBSD true) set(conky_libs ${conky_libs} -lkvm -ldevstat -lintl -linotify) if(BUILD_IRC) set(conky_libs ${conky_libs} -lssl -lcrypto) endif(BUILD_IRC) endif(CMAKE_SYSTEM_NAME MATCHES "FreeBSD") if(CMAKE_SYSTEM_NAME MATCHES "DragonFly") set(OS_DRAGONFLY true) set(conky_libs ${conky_libs} -ldevstat) endif(CMAKE_SYSTEM_NAME MATCHES "DragonFly") if(CMAKE_SYSTEM_NAME MATCHES "OpenBSD") set(OS_OPENBSD true) endif(CMAKE_SYSTEM_NAME MATCHES "OpenBSD") if(CMAKE_SYSTEM_NAME MATCHES "SunOS") set(OS_SOLARIS true) set(conky_libs ${conky_libs} -lkstat) endif(CMAKE_SYSTEM_NAME MATCHES "SunOS") if(CMAKE_SYSTEM_NAME MATCHES "NetBSD") set(OS_NETBSD true) endif(CMAKE_SYSTEM_NAME MATCHES "NetBSD") if(CMAKE_SYSTEM_NAME MATCHES "Haiku") set(OS_HAIKU true) set(conky_libs ${conky_libs} -lnetwork -lintl) endif(CMAKE_SYSTEM_NAME MATCHES "Haiku") if(CMAKE_SYSTEM_NAME MATCHES "Darwin") set(OS_DARWIN true) endif(CMAKE_SYSTEM_NAME MATCHES "Darwin") if(NOT OS_LINUX AND NOT OS_FREEBSD AND NOT OS_OPENBSD AND NOT OS_DRAGONFLY AND NOT OS_SOLARIS AND NOT OS_HAIKU AND NOT OS_DARWIN) message( FATAL_ERROR "Your platform, '${CMAKE_SYSTEM_NAME}', is not currently supported. Patches are welcome." ) endif(NOT OS_LINUX AND NOT OS_FREEBSD AND NOT OS_OPENBSD AND NOT OS_DRAGONFLY AND NOT OS_SOLARIS AND NOT OS_HAIKU AND NOT OS_DARWIN) # Check for soundcard header if(OS_LINUX) check_include_files("linux/soundcard.h" HAVE_SOME_SOUNDCARD_H) check_include_files("linux/soundcard.h" HAVE_LINUX_SOUNDCARD_H) check_include_files("linux/sockios.h" HAVE_LINUX_SOCKIOS_H) elseif(OS_OPENBSD) check_include_files("soundcard.h" HAVE_SOME_SOUNDCARD_H) else(OS_LINUX) check_include_files("sys/soundcard.h" HAVE_SOME_SOUNDCARD_H) endif(OS_LINUX) if(BUILD_I18N AND OS_DRAGONFLY) set(conky_libs ${conky_libs} -lintl) endif(BUILD_I18N AND OS_DRAGONFLY) if(BUILD_I18N AND OS_DARWIN) find_path(LIBINTL_H_N libintl.h PATHS /usr/local/opt/gettext/include /usr/include /usr/local/include /usr/local/opt/include) if(LIBINTL_H_N) include_directories(${LIBINTL_H_N}) else(LIBINTL_H_N) message(FATAL_ERROR "Unable to find libintl.h (try `brew install gettext`)") endif(LIBINTL_H_N) find_library(INTL_LIB NAMES intl PATHS /usr/local/opt/gettext/lib /usr/lib /usr/local/lib /usr/local/opt/lib) set(conky_libs ${conky_libs} ${INTL_LIB}) endif(BUILD_I18N AND OS_DARWIN) if(BUILD_NCURSES AND OS_DARWIN) set(conky_libs ${conky_libs} -lncurses) endif(BUILD_NCURSES AND OS_DARWIN) if(BUILD_WLAN AND OS_DARWIN) find_library(CW CoreWLAN) find_library(NS Foundation) set(conky_libs ${conky_libs} ${CW}) set(conky_libs ${conky_libs} ${NS}) endif(BUILD_WLAN AND OS_DARWIN) if(OS_DARWIN AND BUILD_IPGFREQ) find_library(IPG IntelPowerGadget) set(conky_libs ${conky_libs} ${IPG}) endif(OS_DARWIN AND BUILD_IPGFREQ) if(BUILD_MATH) set(conky_libs ${conky_libs} -lm) endif(BUILD_MATH) if(BUILD_ICAL) check_include_files(libical/ical.h ICAL_H_) if(NOT ICAL_H_) message(FATAL_ERROR "Unable to find libical") endif(NOT ICAL_H_) set(conky_libs ${conky_libs} -lical) endif(BUILD_ICAL) if(BUILD_IRC) find_path(IRC_H_N libircclient.h PATHS /usr/include/libircclient) find_path(IRC_H_S libircclient.h PATHS /usr/include) if(IRC_H_N) include_directories(${IRC_H_N}) endif(IRC_H_N) if(IRC_H_N OR IRC_H_S) set(IRC_H_ true) else() message(FATAL_ERROR "Unable to find libircclient") endif(IRC_H_N OR IRC_H_S) set(conky_libs ${conky_libs} -lircclient) endif(BUILD_IRC) if(BUILD_IPV6) find_file(IF_INET6 if_inet6 PATHS /proc/net) if(NOT IF_INET6) message(WARNING "/proc/net/if_inet6 unavailable") endif(NOT IF_INET6) endif(BUILD_IPV6) if(BUILD_HTTP) pkg_check_modules(MICROHTTPD REQUIRED libmicrohttpd>=0.9.25) set(conky_libs ${conky_libs} ${MICROHTTPD_LIBRARIES}) set(conky_includes ${conky_includes} ${MICROHTTPD_INCLUDE_DIRS}) endif(BUILD_HTTP) if(BUILD_NCURSES) set(CURSES_NEED_NCURSES TRUE) include(FindCurses) if(NOT CURSES_FOUND) message(FATAL_ERROR "Unable to find ncurses library") endif(NOT CURSES_FOUND) set(conky_libs ${conky_libs} ${CURSES_LIBRARIES}) set(conky_includes ${conky_includes} ${CURSES_INCLUDE_DIR}) endif(BUILD_NCURSES) if(BUILD_MYSQL) find_path(mysql_INCLUDE_PATH mysql.h ${INCLUDE_SEARCH_PATH} /usr/include/mysql /usr/local/include/mysql) if(NOT mysql_INCLUDE_PATH) message(FATAL_ERROR "Unable to find mysql.h") endif(NOT mysql_INCLUDE_PATH) set(conky_includes ${conky_includes} ${mysql_INCLUDE_PATH}) find_library(MYSQLCLIENT_LIB NAMES mysqlclient PATHS /usr/lib /usr/lib64 /usr/lib/mysql /usr/lib64/mysql /usr/local/lib /usr/local/lib64 /usr/local/lib/mysql /usr/local/lib64/mysql) if(NOT MYSQLCLIENT_LIB) message(FATAL_ERROR "Unable to find mysqlclient library") endif(NOT MYSQLCLIENT_LIB) set(conky_libs ${conky_libs} ${MYSQLCLIENT_LIB}) endif(BUILD_MYSQL) if(BUILD_WLAN AND OS_LINUX) set(CMAKE_REQUIRED_DEFINITIONS -D_GNU_SOURCE) check_include_files(iwlib.h IWLIB_H) if(NOT IWLIB_H) message(FATAL_ERROR "Unable to find iwlib.h") endif(NOT IWLIB_H) find_library(IWLIB_LIB NAMES iw) if(NOT IWLIB_LIB) message(FATAL_ERROR "Unable to find libiw.so") endif(NOT IWLIB_LIB) set(conky_libs ${conky_libs} ${IWLIB_LIB}) check_function_exists(iw_sockets_open IWLIB_SOCKETS_OPEN_FUNC) endif(BUILD_WLAN AND OS_LINUX) if(BUILD_PORT_MONITORS) check_function_exists(getnameinfo HAVE_GETNAMEINFO) if(NOT HAVE_GETNAMEINFO) message(FATAL_ERROR "could not find getnameinfo()") endif(NOT HAVE_GETNAMEINFO) check_include_files( "netdb.h;netinet/in.h;netinet/tcp.h;sys/socket.h;arpa/inet.h" HAVE_PORTMON_HEADERS) if(NOT HAVE_PORTMON_HEADERS) message(FATAL_ERROR "missing needed network header(s) for port monitoring") endif(NOT HAVE_PORTMON_HEADERS) endif(BUILD_PORT_MONITORS) # Check for iconv if(BUILD_ICONV) check_include_files(iconv.h HAVE_ICONV_H) find_library(ICONV_LIBRARY NAMES iconv) if(NOT ICONV_LIBRARY) # maybe iconv() is provided by libc set(ICONV_LIBRARY "" CACHE FILEPATH "Path to the iconv library, if iconv is not provided by libc" FORCE) endif(NOT ICONV_LIBRARY) set(CMAKE_REQUIRED_LIBRARIES ${ICONV_LIBRARY}) check_function_exists(iconv ICONV_FUNC) if(HAVE_ICONV_H AND ICONV_FUNC) set(conky_includes ${conky_includes} ${ICONV_INCLUDE_DIR}) set(conky_libs ${conky_libs} ${ICONV_LIBRARY}) else(HAVE_ICONV_H AND ICONV_FUNC) message(FATAL_ERROR "Unable to find iconv library") endif(HAVE_ICONV_H AND ICONV_FUNC) endif(BUILD_ICONV) # check for Xlib if(BUILD_X11) include(FindX11) find_package(X11) if(X11_FOUND) set(conky_includes ${conky_includes} ${X11_INCLUDE_DIR}) set(conky_libs ${conky_libs} ${X11_LIBRARIES}) # check for Xdamage if(BUILD_XDAMAGE) if(NOT X11_Xdamage_FOUND) message(FATAL_ERROR "Unable to find Xdamage library") endif(NOT X11_Xdamage_FOUND) if(NOT X11_Xfixes_FOUND) message(FATAL_ERROR "Unable to find Xfixes library") endif(NOT X11_Xfixes_FOUND) set(conky_libs ${conky_libs} ${X11_Xdamage_LIB} ${X11_Xfixes_LIB}) endif(BUILD_XDAMAGE) if(BUILD_XSHAPE) if(NOT X11_Xshape_FOUND) message(FATAL_ERROR "Unable to find Xshape library") endif(NOT X11_Xshape_FOUND) set(conky_libs ${conky_libs} ${X11_Xshape_LIB}) endif(BUILD_XSHAPE) # check for Xft if(BUILD_XFT) if(FREETYPE_INCLUDE_DIR_freetype2) set(FREETYPE_FOUND true) set(conky_includes ${conky_includes} ${FREETYPE_INCLUDE_DIR_freetype2}) else(FREETYPE_INCLUDE_DIR_freetype2) message(FATAL_ERROR "Unable to find freetype library") endif(FREETYPE_INCLUDE_DIR_freetype2) if(NOT X11_Xft_FOUND) message(FATAL_ERROR "Unable to find Xft library") endif(NOT X11_Xft_FOUND) find_package(Fontconfig REQUIRED) set(conky_libs ${conky_libs} ${X11_Xft_LIB} ${Fontconfig_LIBRARIES}) set(conky_includes ${conky_includes} ${FREETYPE_INCLUDE_DIR_freetype2} ${Fontconfig_INCLUDE_DIRS}) endif(BUILD_XFT) # check for Xdbe if(BUILD_XDBE) if(NOT X11_Xext_FOUND) message(FATAL_ERROR "Unable to find Xext library (needed for Xdbe)") endif(NOT X11_Xext_FOUND) set(conky_libs ${conky_libs} ${X11_Xext_LIB}) endif(BUILD_XDBE) # check for Xinerama if(BUILD_XINERAMA) if(NOT X11_Xinerama_FOUND) message(FATAL_ERROR "Unable to find Xinerama library") endif(NOT X11_Xinerama_FOUND) set(conky_libs ${conky_libs} ${X11_Xinerama_LIB}) endif(BUILD_XINERAMA) # check for Xfixes if(BUILD_XFIXES) if(NOT X11_Xfixes_FOUND) message(FATAL_ERROR "Unable to find Xfixes library") endif(NOT X11_Xfixes_FOUND) set(conky_libs ${conky_libs} ${X11_Xfixes_LIB}) endif(BUILD_XFIXES) else(X11_FOUND) message(FATAL_ERROR "Unable to find X11 library") endif(X11_FOUND) endif(BUILD_X11) if(BUILD_WAYLAND) find_package(Wayland REQUIRED) set(conky_libs ${conky_libs} ${Wayland_CLIENT_LIBRARY}) set(conky_includes ${conky_includes} ${Wayland_CLIENT_INCLUDE_DIR}) find_package(PkgConfig) pkg_check_modules(wayland-protocols QUIET wayland-protocols>=1.13) if(Wayland_FOUND AND wayland-protocols_FOUND) # find Wayland protocols pkg_get_variable(Wayland_PROTOCOLS_DIR wayland-protocols pkgdatadir) # find 'wayland-scanner' executable pkg_get_variable(Wayland_SCANNER wayland-scanner wayland_scanner) else(Wayland_FOUND AND wayland-protocols_FOUND) message(FATAL_ERROR "Unable to find wayland-scanner and xdg-shell protocol") endif(Wayland_FOUND AND wayland-protocols_FOUND) if(OS_DARWIN OR OS_DRAGONFLY OR OS_FREEBSD OR OS_NETBSD OR OS_OPENBSD) pkg_check_modules(EPOLL REQUIRED epoll-shim) set(conky_libs ${conky_libs} ${EPOLL_LIBRARIES}) set(conky_includes ${conky_includes} ${EPOLL_INCLUDE_DIRS}) endif(OS_DARWIN OR OS_DRAGONFLY OR OS_FREEBSD OR OS_NETBSD OR OS_OPENBSD) pkg_check_modules(PANGOCAIRO pangocairo) set(conky_libs ${conky_libs} ${PANGOCAIRO_LIBRARIES}) set(conky_includes ${conky_includes} ${PANGOCAIRO_INCLUDE_DIRS}) pkg_check_modules(PANGOFC pangofc) set(conky_libs ${conky_libs} ${PANGOFC_LIBRARIES}) set(conky_includes ${conky_includes} ${PANGOFC_INCLUDE_DIRS}) pkg_check_modules(PANGOFT2 pangoft2) set(conky_libs ${conky_libs} ${PANGOFT2_LIBRARIES}) set(conky_includes ${conky_includes} ${PANGOFT2_INCLUDE_DIRS}) endif(BUILD_WAYLAND) find_package(Lua "5.3" REQUIRED) set(conky_libs ${conky_libs} ${LUA_LIBRARIES}) set(conky_includes ${conky_includes} ${LUA_INCLUDE_DIR}) include_directories(3rdparty/toluapp/include) if(BUILD_X11) # Check for libraries used by Lua bindings if(BUILD_LUA_CAIRO) pkg_check_modules(CAIRO REQUIRED cairo>=1.14 cairo-xlib) set(luacairo_libs ${CAIRO_LIBRARIES} ${LUA_LIBRARIES}) set(luacairo_includes ${CAIRO_INCLUDE_DIRS} ${LUA_INCLUDE_DIR}) find_program(APP_PATCH patch) if(NOT APP_PATCH) message(FATAL_ERROR "Unable to find program 'patch'") endif(NOT APP_PATCH) endif(BUILD_LUA_CAIRO) if(BUILD_LUA_IMLIB2) pkg_search_module(IMLIB2 REQUIRED imlib2 Imlib2) set(luaimlib2_libs ${IMLIB2_LIBS} ${IMLIB2_LDFLAGS} ${LUA_LIBRARIES}) set(luaimlib2_includes ${IMLIB2_INCLUDE_DIRS} ${LUA_INCLUDE_DIR} ${X11_INCLUDE_DIR}) endif(BUILD_LUA_IMLIB2) if(BUILD_LUA_RSVG) pkg_check_modules(RSVG REQUIRED librsvg-2.0>=2.52) set(luarsvg_libs ${RSVG_LIBRARIES} ${LUA_LIBRARIES}) set(luarsvg_includes ${RSVG_INCLUDE_DIRS} ${LUA_INCLUDE_DIR}) endif(BUILD_LUA_RSVG) endif(BUILD_X11) if(BUILD_AUDACIOUS) set(WANT_GLIB true) pkg_check_modules(NEW_AUDACIOUS audacious>=1.4.0) if(NEW_AUDACIOUS_FOUND) pkg_check_modules(AUDACIOUS REQUIRED audclient>=1.4.0) pkg_check_modules(DBUS_GLIB REQUIRED dbus-glib-1) else(NEW_AUDACIOUS_FOUND) pkg_check_modules(AUDACIOUS REQUIRED audacious<1.4.0) endif(NEW_AUDACIOUS_FOUND) set(conky_libs ${conky_libs} ${AUDACIOUS_LIBRARIES} ${DBUS_GLIB_LIBRARIES}) set(conky_includes ${conky_includes} ${AUDACIOUS_INCLUDE_DIRS} ${DBUS_GLIB_INCLUDE_DIRS}) endif(BUILD_AUDACIOUS) if(BUILD_XMMS2) pkg_check_modules(XMMS2 REQUIRED xmms2-client>=0.6) set(conky_libs ${conky_libs} ${XMMS2_LIBRARIES}) set(conky_includes ${conky_includes} ${XMMS2_INCLUDE_DIRS}) endif(BUILD_XMMS2) if(BUILD_CURL) set(WANT_CURL true) endif(BUILD_CURL) if(BUILD_RSS) set(WANT_CURL true) set(WANT_LIBXML2 true) endif(BUILD_RSS) if(BUILD_NVIDIA) find_path(XNVCtrl_INCLUDE_PATH NVCtrl/NVCtrl.h ${INCLUDE_SEARCH_PATH}) find_library(XNVCtrl_LIB NAMES XNVCtrl) if(XNVCtrl_INCLUDE_PATH AND XNVCtrl_LIB) set(XNVCtrl_FOUND true) set(conky_libs ${conky_libs} ${XNVCtrl_LIB}) set(conky_includes ${conky_includes} ${XNVCtrl_INCLUDE_PATH}) else(XNVCtrl_INCLUDE_PATH AND XNVCtrl_LIB) message(FATAL_ERROR "Unable to find XNVCtrl library") endif(XNVCtrl_INCLUDE_PATH AND XNVCtrl_LIB) endif(BUILD_NVIDIA) if(BUILD_IMLIB2) pkg_search_module(IMLIB2 REQUIRED imlib2 Imlib2) set(conky_libs ${conky_libs} ${IMLIB2_LIBS} ${IMLIB2_LDFLAGS}) set(conky_includes ${conky_includes} ${IMLIB2_INCLUDE_DIRS}) endif(BUILD_IMLIB2) if(BUILD_JOURNAL) pkg_search_module(SYSTEMD REQUIRED libsystemd>=205 libsystemd-journal>=205) set(conky_libs ${conky_libs} ${SYSTEMD_LIB} ${SYSTEMD_LDFLAGS}) set(conky_includes ${conky_includes} ${SYSTEMD_INCLUDE_DIRS}) endif(BUILD_JOURNAL) if(BUILD_PULSEAUDIO) pkg_check_modules(PULSEAUDIO REQUIRED libpulse) set(conky_libs ${conky_libs} ${PULSEAUDIO_LIBRARIES}) set(conky_includes ${conky_includes} ${PULSEAUDIO_INCLUDE_DIRS}) endif(BUILD_PULSEAUDIO) if(WANT_CURL) pkg_check_modules(CURL REQUIRED libcurl) set(conky_libs ${conky_libs} ${CURL_LIBRARIES}) set(conky_includes ${conky_includes} ${CURL_INCLUDE_DIRS}) endif(WANT_CURL) # Common libraries if(WANT_GLIB) pkg_check_modules(GLIB REQUIRED glib-2.0>=2.36) set(conky_libs ${conky_libs} ${GLIB_LIBRARIES}) set(conky_includes ${conky_includes} ${GLIB_INCLUDE_DIRS}) endif(WANT_GLIB) if(WANT_CURL) pkg_check_modules(CURL REQUIRED libcurl) set(conky_libs ${conky_libs} ${CURL_LIBRARIES}) set(conky_includes ${conky_includes} ${CURL_INCLUDE_DIRS}) endif(WANT_CURL) if(WANT_LIBXML2) include(FindLibXml2) if(NOT LIBXML2_FOUND) message(FATAL_ERROR "Unable to find libxml2 library") endif(NOT LIBXML2_FOUND) set(conky_libs ${conky_libs} ${LIBXML2_LIBRARIES}) set(conky_includes ${conky_includes} ${LIBXML2_INCLUDE_DIR}) endif(WANT_LIBXML2) # Look for doc generation programs if(BUILD_DOCS) # Used for doc generation find_program(APP_PANDOC pandoc) if(NOT APP_PANDOC) message(FATAL_ERROR "Unable to find program 'pandoc'") endif(NOT APP_PANDOC) mark_as_advanced(APP_PANDOC) endif(BUILD_DOCS) if(BUILD_DOCS OR BUILD_EXTRAS) # Python3 with Jinja2 and PyYaml required for manpage generation. find_package(Python3 REQUIRED COMPONENTS Interpreter) execute_process( COMMAND ${Python3_EXECUTABLE} -c "import yaml" RESULT_VARIABLE EXIT_CODE OUTPUT_QUIET ) if(NOT ${EXIT_CODE} EQUAL 0) message( FATAL_ERROR "The \"PyYAML\" Python3 package is not installed. Please install it using the following command: \"pip3 install pyyaml\"." ) endif() execute_process( COMMAND ${Python3_EXECUTABLE} -c "import jinja2" RESULT_VARIABLE EXIT_CODE OUTPUT_QUIET ) if(NOT ${EXIT_CODE} EQUAL 0) message( FATAL_ERROR "The \"Jinja2\" Python3 package is not installed. Please install it using the following command: \"pip3 install Jinja2\"." ) endif() endif(BUILD_DOCS OR BUILD_EXTRAS) if(CMAKE_BUILD_TYPE MATCHES "Debug") set(DEBUG true) endif(CMAKE_BUILD_TYPE MATCHES "Debug") # The version numbers are simply derived from the date and number of commits # since start of month if(DEBUG) execute_process(COMMAND ${APP_GIT} --git-dir=${CMAKE_CURRENT_SOURCE_DIR}/.git log --since=${VERSION_MAJOR}-${VERSION_MINOR}-01 --pretty=oneline COMMAND ${APP_WC} -l COMMAND ${APP_AWK} "{print $1}" RESULT_VARIABLE RETVAL OUTPUT_VARIABLE COMMIT_COUNT OUTPUT_STRIP_TRAILING_WHITESPACE) endif(DEBUG) conky-1.19.6/cmake/FindClangFormat.cmake000066400000000000000000000011711451224556600200250ustar00rootroot00000000000000# Find Clang format # set(ClangFormat_BIN_NAME clang-format clang-format-5.0 clang-format-6.0 clang-format-7 clang-format-8 clang-format-9 clang-format-10 clang-format-11) find_program(ClangFormat_BIN NAMES ${ClangFormat_BIN_NAME}) include(FindPackageHandleStandardArgs) find_package_handle_standard_args(ClangFormat DEFAULT_MSG ClangFormat_BIN) mark_as_advanced(ClangFormat_BIN) if(ClangFormat_FOUND) # A CMake script to find all source files and setup clang-format targets for # them include(clang-format) else() message("clang-format not found. Not setting up format targets") endif() conky-1.19.6/cmake/FindClangTidy.cmake000066400000000000000000000011211451224556600175010ustar00rootroot00000000000000# Find Clang tidy # set(ClangTidy_BIN_NAME clang-tidy clang-tidy-5.0 clang-tidy-6.0 clang-tidy-7 clang-tidy-8 clang-tidy-9 clang-tidy-10 clang-tidy-11) find_program(ClangTidy_BIN NAMES ${ClangTidy_BIN_NAME}) include(FindPackageHandleStandardArgs) find_package_handle_standard_args(ClangTidy DEFAULT_MSG ClangTidy_BIN) mark_as_advanced(ClangTidy_BIN) if(ClangTidy_FOUND) # A CMake script to find all source files and setup clang-tidy targets for # them include(clang-tidy) else() message("clang-tidy not found. Not setting up tidy targets") endif() conky-1.19.6/cmake/FindWayland.cmake000066400000000000000000000024251451224556600172320ustar00rootroot00000000000000find_path( Wayland_CLIENT_INCLUDE_DIR NAMES wayland-client.h ) find_library( Wayland_CLIENT_LIBRARY NAMES wayland-client libwayland-client ) if(Wayland_CLIENT_INCLUDE_DIR AND Wayland_CLIENT_LIBRARY) add_library(wayland::client UNKNOWN IMPORTED) set_target_properties( wayland::client PROPERTIES INTERFACE_INCLUDE_DIRECTORIES "${Wayland_CLIENT_INCLUDE_DIR}" IMPORTED_LINK_INTERFACE_LANGUAGES "C" IMPORTED_LOCATION "${Wayland_CLIENT_LIBRARY}" ) endif() find_path( Wayland_SERVER_INCLUDE_DIR NAMES wayland-server.h ) find_library( Wayland_SERVER_LIBRARY NAMES wayland-server libwayland-server ) if(Wayland_SERVER_INCLUDE_DIR AND Wayland_SERVER_LIBRARY) add_library(wayland::server UNKNOWN IMPORTED) set_target_properties( wayland::server PROPERTIES INTERFACE_INCLUDE_DIRECTORIES "${Wayland_SERVER_INCLUDE_DIR}" IMPORTED_LINK_INTERFACE_LANGUAGES "C" IMPORTED_LOCATION "${Wayland_SERVER_LIBRARY}" ) endif() include(FindPackageHandleStandardArgs) find_package_handle_standard_args( Wayland REQUIRED_VARS Wayland_CLIENT_LIBRARY Wayland_CLIENT_INCLUDE_DIR Wayland_SERVER_LIBRARY Wayland_SERVER_INCLUDE_DIR ) mark_as_advanced( Wayland_CLIENT_INCLUDE_DIR Wayland_CLIENT_LIBRARY Wayland_SERVER_INCLUDE_DIR Wayland_SERVER_LIBRARY ) conky-1.19.6/cmake/ToLua.cmake000066400000000000000000000046351451224556600160630ustar00rootroot00000000000000# # Conky, a system monitor, based on torsmo # # Please see COPYING for details # # Copyright (c) 2005-2021 Brenden Matthews, et. al. (see AUTHORS) All rights # reserved. # # This program is free software: you can redistribute it and/or modify it under # the terms of the GNU General Public License as published by the Free Software # Foundation, either version 3 of the License, or (at your option) any later # version. # # This program is distributed in the hope that it will be useful, but WITHOUT # ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS # FOR A PARTICULAR PURPOSE. See the GNU General Public License for more # details. You should have received a copy of the GNU General Public License # along with this program. If not, see . # function(wrap_tolua VAR FIL) set(INCL) set(${VAR}) get_filename_component(ABS_FIL ${FIL} ABSOLUTE) get_filename_component(FIL_WE ${FIL} NAME_WE) list(APPEND ${VAR} "${CMAKE_CURRENT_BINARY_DIR}/lib${FIL_WE}.c") if(DEFINED ARGV2) get_filename_component(PATCH ${ARGV2} ABSOLUTE) set(TOLUA_OUT ${CMAKE_CURRENT_BINARY_DIR}/lib${FIL_WE}-orig.c) add_custom_command(OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/lib${FIL_WE}.c COMMAND ${APP_PATCH} -s ${TOLUA_OUT} ${PATCH} -o ${CMAKE_CURRENT_BINARY_DIR}/lib${FIL_WE}.c DEPENDS ${TOLUA_OUT} ${PATCH} COMMENT "Patching lib${FIL_WE}-orig.c" VERBATIM) set_source_files_properties(${TOLUA_OUT} PROPERTIES GENERATED TRUE) else() set(TOLUA_OUT ${CMAKE_CURRENT_BINARY_DIR}/lib${FIL_WE}.c) endif(DEFINED ARGV2) # Call toluapp from 3rdparty/ path directly. The last argument to toluapp is # the path to the tolua Lua sources. add_custom_command(OUTPUT ${TOLUA_OUT} ${INCL} COMMAND toluapp -n ${FIL_WE} -o ${TOLUA_OUT} ${ABS_FIL} ${CMAKE_SOURCE_DIR}/3rdparty/toluapp/src/bin/lua/ DEPENDS ${ABS_FIL} COMMENT "Running tolua++ on ${FIL}" VERBATIM) set_source_files_properties(${${VAR}} ${INCL} PROPERTIES GENERATED TRUE) set_source_files_properties( ${${VAR}} PROPERTIES COMPILE_FLAGS "-Wno-bad-function-cast -Wno-unused-parameter -Wno-cast-qual -Wno-error=pedantic" ) set(${VAR} ${${VAR}} PARENT_SCOPE) endfunction(wrap_tolua) conky-1.19.6/cmake/UninstallConky.cmake.in000066400000000000000000000031721451224556600204140ustar00rootroot00000000000000# # Conky, a system monitor, based on torsmo # # Please see COPYING for details # # Copyright (c) 2005-2021 Brenden Matthews, et. al. (see AUTHORS) All rights # reserved. # # This program is free software: you can redistribute it and/or modify it under # the terms of the GNU General Public License as published by the Free Software # Foundation, either version 3 of the License, or (at your option) any later # version. # # This program is distributed in the hope that it will be useful, but WITHOUT # ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS # FOR A PARTICULAR PURPOSE. See the GNU General Public License for more # details. You should have received a copy of the GNU General Public License # along with this program. If not, see . # if(NOT EXISTS ${CMAKE_BINARY_DIR}/install_manifest.txt) message(FATAL_ERROR "Cannot find install manifest: ${CMAKE_BINARY_DIR}/install_manifest.txt") endif() file(READ "${CMAKE_BINARY_DIR}/install_manifest.txt" files) string(REGEX REPLACE "\n" ";" files "${files}") foreach(file ${files}) message(STATUS "Uninstalling $ENV{DESTDIR}${file}") if(IS_SYMLINK "$ENV{DESTDIR}${file}" OR EXISTS "$ENV{DESTDIR}${file}") exec_program( ${CMAKE_COMMAND} ARGS "-E remove \"$ENV{DESTDIR}${file}\"" OUTPUT_VARIABLE rm_out RETURN_VALUE rm_retval ) if(NOT "${rm_retval}" STREQUAL 0) message(FATAL_ERROR "Problem when removing $ENV{DESTDIR}${file}") endif() else(IS_SYMLINK "$ENV{DESTDIR}${file}" OR EXISTS "$ENV{DESTDIR}${file}") message(STATUS "File $ENV{DESTDIR}${file} does not exist.") endif() endforeach() conky-1.19.6/cmake/build.h.in000066400000000000000000000002311451224556600156760ustar00rootroot00000000000000#ifndef __BUILD_H #define __BUILD_H /* Conky build info */ #define BUILD_DATE "@BUILD_DATE@" #define BUILD_ARCH "@BUILD_ARCH@" #endif /* __BUILD_H */ conky-1.19.6/cmake/clang-format.cmake000066400000000000000000000020341451224556600174000ustar00rootroot00000000000000set(ClangFormat_CXX_FILE_EXTENSIONS ${ClangFormat_CXX_FILE_EXTENSIONS} *.cpp *.h *.cxx *.hxx *.hpp *.cc *.hh *.ipp) foreach(PATTERN ${ClangFormat_CXX_FILE_EXTENSIONS}) list(APPEND ClangFormat_CXX_PATTERN ${CMAKE_SOURCE_DIR}/src/${PATTERN}) list(APPEND ClangFormat_CXX_PATTERN ${CMAKE_SOURCE_DIR}/tests/${PATTERN}) list(APPEND ClangFormat_CXX_PATTERN ${CMAKE_SOURCE_DIR}/lua/${PATTERN}) endforeach() file(GLOB_RECURSE ClangFormat_SRCS ${ClangFormat_CXX_PATTERN}) # Remove catch2 from format sources list(REMOVE_ITEM ClangFormat_SRCS ${CMAKE_SOURCE_DIR}/tests/catch2/catch.hpp) add_custom_target(clang-format COMMAND ${ClangFormat_BIN} -style=file -i ${ClangFormat_SRCS}) add_custom_target(check-clang-format COMMAND ${CMAKE_SOURCE_DIR}/bin/run-clang-format.py --color always --clang-format-executable ${ClangFormat_BIN} ${ClangFormat_SRCS}) conky-1.19.6/cmake/clang-tidy.cmake000066400000000000000000000021251451224556600170620ustar00rootroot00000000000000get_target_property(ClangTidy_SRCS_TMP conky SOURCES) get_target_property(conky_SRC_DIR conky SOURCE_DIR) if(BUILD_TESTS) get_target_property(ClangTidy_SRCS_TMP_CORE conky_core SOURCES) list(APPEND ClangTidy_SRCS_TMP ${ClangTidy_SRCS_TMP_CORE}) endif() foreach(TMP_SRC ${ClangTidy_SRCS_TMP}) if("${TMP_SRC}" MATCHES ".*\.cc|.*\.hh|.*\.[chi]pp|.*\.[chi]xx|.*\.ii") list(APPEND ClangTidy_SRCS ${conky_SRC_DIR}/${TMP_SRC}) endif() endforeach(TMP_SRC) get_target_property(CLANG_INCLUDES_tmp conky INCLUDE_DIRECTORIES) foreach(TMP_INCLUDE ${CLANG_INCLUDES_tmp}) list(APPEND CLANG_INCLUDES -I${TMP_INCLUDE}) endforeach(TMP_INCLUDE) add_custom_target(clang-tidy COMMAND ${ClangTidy_BIN} -config='' -fix -format-style=file ${ClangTidy_SRCS} -- -std=c++17 -I${CMAKE_BINARY_DIR} ${CLANG_INCLUDES}) add_custom_target(check-clang-tidy COMMAND ${ClangTidy_BIN} -config='' -format-style=file ${ClangTidy_SRCS} -- -std=c++17 -I${CMAKE_BINARY_DIR} ${CLANG_INCLUDES}) conky-1.19.6/cmake/config.h.in000066400000000000000000000051561451224556600160570ustar00rootroot00000000000000/* * Auto-generated header for CMake. See config.h.in if you need to modify the * original. */ #ifndef _conky_config_h_ #define _conky_config_h_ #cmakedefine DEBUG #define SYSTEM_NAME "@CMAKE_SYSTEM_NAME@" #define PACKAGE_NAME "@PROJECT_NAME@" #define VERSION "@VERSION@" #define SYSTEM_CONFIG_FILE "@SYSTEM_CONFIG_FILE@" #define PACKAGE_LIBDIR "@PACKAGE_LIBRARY_DIR@" #define DEFAULTNETDEV "@DEFAULTNETDEV@" #define XDG_CONFIG_FILE "@XDG_CONFIG_FILE@" #define CONFIG_FILE "@CONFIG_FILE@" #define LOCALE_DIR "@LOCALE_DIR@" #define MAX_USER_TEXT_DEFAULT @MAX_USER_TEXT_DEFAULT@ #define DEFAULT_TEXT_BUFFER_SIZE @DEFAULT_TEXT_BUFFER_SIZE@ #define MAX_NET_INTERFACES @MAX_NET_INTERFACES@ #define HTTPPORT @HTTPPORT@ #cmakedefine BUILD_I18N 1 #cmakedefine HAVE_SYS_STATFS_H 1 #cmakedefine HAVE_SYS_PARAM_H 1 #cmakedefine HAVE_SYS_INOTIFY_H 1 #cmakedefine HAVE_DIRENT_H 1 #cmakedefine HAVE_SOME_SOUNDCARD_H 1 #cmakedefine HAVE_LINUX_SOUNDCARD_H 1 #cmakedefine HAVE_STRNDUP 1 #cmakedefine HAVE_FOPENCOOKIE 1 #cmakedefine HAVE_FUNOPEN 1 #cmakedefine HAVE_PIPE2 1 #cmakedefine HAVE_O_CLOEXEC 1 #cmakedefine HAVE_CLOCK_GETTIME 1 #cmakedefine BUILD_WAYLAND 1 #cmakedefine BUILD_X11 1 #cmakedefine OWN_WINDOW 1 #cmakedefine BUILD_MOUSE_EVENTS 1 #cmakedefine BUILD_XDAMAGE 1 #cmakedefine BUILD_XINERAMA 1 #cmakedefine BUILD_XFT 1 #cmakedefine BUILD_XSHAPE 1 #cmakedefine BUILD_XFIXES 1 #cmakedefine BUILD_ARGB 1 #cmakedefine BUILD_XDBE 1 #cmakedefine BUILD_PORT_MONITORS 1 #cmakedefine BUILD_AUDACIOUS 1 #cmakedefine NEW_AUDACIOUS_FOUND 1 #cmakedefine BUILD_MPD 1 #cmakedefine BUILD_MYSQL 1 #cmakedefine BUILD_MOC 1 #cmakedefine BUILD_NVIDIA 0 #cmakedefine BUILD_XMMS2 1 #cmakedefine BUILD_HDDTEMP 1 #cmakedefine BUILD_LIBXML2 1 #cmakedefine BUILD_CURL 1 #cmakedefine BUILD_IMLIB2 1 #cmakedefine BUILD_MATH 1 #cmakedefine BUILD_BUILTIN_CONFIG 1 #cmakedefine BUILD_OLD_CONFIG 1 #cmakedefine BUILD_NCURSES 1 #cmakedefine LEAKFREE_NCURSES 1 #cmakedefine BUILD_APCUPSD 1 #cmakedefine BUILD_IOSTATS 1 #cmakedefine BUILD_IPGFREQ 0 #cmakedefine BUILD_WLAN 1 #cmakedefine BUILD_ICAL 1 #cmakedefine BUILD_IRC 1 #cmakedefine BUILD_PULSEAUDIO 1 #cmakedefine BUILD_INTEL_BACKLIGHT 0 #cmakedefine BUILD_IPV6 1 #cmakedefine BUILD_HTTP 1 #cmakedefine BUILD_GUI 1 #cmakedefine BUILD_ICONV 1 #cmakedefine BUILD_LUA_CAIRO 1 #cmakedefine BUILD_LUA_IMLIB2 1 #cmakedefine BUILD_LUA_RSVG 1 #cmakedefine BUILD_IBM 1 #cmakedefine BUILD_RSS 1 #cmakedefine BUILD_CMUS 1 #cmakedefine BUILD_JOURNAL 1 #cmakedefine BUILD_HSV_GRADIENT 1 #cmakedefine HAVE_STATFS64 1 #ifndef HAVE_STATFS64 #define statfs64 statfs #endif #endif /* _conky_config_h_ */ conky-1.19.6/cmake/scripts/000077500000000000000000000000001451224556600155145ustar00rootroot00000000000000conky-1.19.6/cmake/scripts/clang-format-check-changed000077500000000000000000000006551451224556600224640ustar00rootroot00000000000000#!/bin/bash # Required because cmake root isn't git root in this example CLANG_FORMAT_BIN=$1 GIT_ROOT=`git rev-parse --show-toplevel` pushd ${GIT_ROOT} > /dev/null git status --porcelain \ | egrep '*\.cpp|*\.h|*\.cxx|*\.hxx|*\.hpp|*\.cc' \ | awk -F " " '{print $NF}' \ | xargs -r ${CLANG_FORMAT_BIN} -style=file -output-replacements-xml \ | grep "replacement offset" 2>&1 > /dev/null RET=$? popd > /dev/null exit ${RET} conky-1.19.6/cmake/scripts/clang-format-check-changed.py000077500000000000000000000117471451224556600231170ustar00rootroot00000000000000#!/usr/bin/env python3 import argparse import os import sys import subprocess def check_file(filename, excludes, extensions): """ Check if a file should be included in our check """ name, ext = os.path.splitext(filename) if len(ext) > 0 and ext in extensions: if len(excludes) == 0: return True for exclude in excludes: if exclude in filename: return False return True return False def check_directory(directory, excludes, extensions): output = [] if len(excludes) > 0: for exclude in excludes: if exclude in directory: directory_excluded = False return output for root, _, files in os.walk(directory): for file in files: filename = os.path.join(root, file) if check_file(filename, excludes, extensions): print("Will check file [{}]".format(filename)) output.append(filename) return output def get_git_root(git_bin): cmd = [git_bin, "rev-parse", "--show-toplevel"] try: return subprocess.check_output(cmd).strip() except subprocess.CalledProcessError, e: print("Error calling git [{}]".format(e)) raise def clean_git_filename(line): """ Takes a line from git status --porcelain and returns the filename """ file = None git_status = line[:2] # Not an exhaustive list of git status output but should # be enough for this case # check if this is a delete if 'D' in git_status: return None # ignored file if '!' in git_status: return None # Covers renamed files if '->' in line: file = line[3:].split('->')[-1].strip() else: file = line[3:].strip() return file def get_changed_files(git_bin, excludes, file_extensions): """ Run git status and return the list of changed files """ extensions = file_extensions.split(",") # arguments coming from cmake will be *.xx. We want to remove the * for i, extension in enumerate(extensions): if extension[0] == '*': extensions[i] = extension[1:] git_root = get_git_root(git_bin) cmd = [git_bin, "status", "--porcelain", "--ignore-submodules"] print("git cmd = {}".format(cmd)) output = [] returncode = 0 try: cmd_output = subprocess.check_output(cmd) for line in cmd_output.split('\n'): if len(line) > 0: file = clean_git_filename(line) if not file: continue file = os.path.join(git_root, file) if file[-1] == "/": directory_files = check_directory( file, excludes, file_extensions) output = output + directory_files else: if check_file(file, excludes, file_extensions): print("Will check file [{}]".format(file)) output.append(file) except subprocess.CalledProcessError, e: print("Error calling git [{}]".format(e)) returncode = e.returncode return output, returncode def run_clang_format(clang_format_bin, changed_files): """ Run clang format on a list of files @return 0 if formatted correctly. """ if len(changed_files) == 0: return 0 cmd = [clang_format_bin, "-style=file", "-output-replacements-xml"] + changed_files print("clang-format cmd = {}".format(cmd)) try: cmd_output = subprocess.check_output(cmd) if "replacement offset" in cmd_output: print("ERROR: Changed files don't match format") return 1 except subprocess.CalledProcessError, e: print("Error calling clang-format [{}]".format(e)) return e.returncode return 0 def cli(): # global params parser = argparse.ArgumentParser(prog='clang-format-check-changed', description='Checks if files changed in git match the .clang-format specification') parser.add_argument("--file-extensions", type=str, default=".cpp,.h,.cxx,.hxx,.hpp,.cc,.ipp", help="Comma separated list of file extensions to check") parser.add_argument('--exclude', action='append', default=[], help='Will not match the files / directories with these in the name') parser.add_argument('--clang-format-bin', type=str, default="clang-format", help="The clang format binary") parser.add_argument('--git-bin', type=str, default="git", help="The git binary") args = parser.parse_args() # Run gcovr to get the .gcda files form .gcno changed_files, returncode = get_changed_files( args.git_bin, args.exclude, args.file_extensions) if returncode != 0: return returncode return run_clang_format(args.clang_format_bin, changed_files) if __name__ == '__main__': sys.exit(cli()) conky-1.19.6/data/000077500000000000000000000000001451224556600136565ustar00rootroot00000000000000conky-1.19.6/data/CMakeLists.txt000066400000000000000000000040421451224556600164160ustar00rootroot00000000000000# # Conky, a system monitor, based on torsmo # # Please see COPYING for details # # Copyright (c) 2005-2021 Brenden Matthews, et. al. (see AUTHORS) All rights # reserved. # # This program is free software: you can redistribute it and/or modify it under # the terms of the GNU General Public License as published by the Free Software # Foundation, either version 3 of the License, or (at your option) any later # version. # # This program is distributed in the hope that it will be useful, but WITHOUT # ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS # FOR A PARTICULAR PURPOSE. See the GNU General Public License for more # details. You should have received a copy of the GNU General Public License # along with this program. If not, see . # if(BUILD_BUILTIN_CONFIG) # generate defconfig if(BUILD_X11) set(builtin_config conky.conf) else(BUILD_X11) set(builtin_config conky_no_x11.conf) endif(BUILD_X11) add_custom_command(OUTPUT defconfig.h COMMAND ${CMAKE_SOURCE_DIR}/bin/text2c.sh ${CMAKE_CURRENT_SOURCE_DIR}/${builtin_config} defconfig.h defconfig DEPENDS ${builtin_config}) set(generated_hdr_files ${generated_hdr_files} defconfig.h) endif(BUILD_BUILTIN_CONFIG) if(BUILD_OLD_CONFIG) add_custom_command(OUTPUT convertconf.h COMMAND ${CMAKE_SOURCE_DIR}/bin/text2c.sh ${CMAKE_SOURCE_DIR}/extras/convert.lua convertconf.h convertconf DEPENDS ${CMAKE_SOURCE_DIR}/extras/convert.lua) set(generated_hdr_files ${generated_hdr_files} convertconf.h) endif(BUILD_OLD_CONFIG) add_custom_target(generated_hdr_files DEPENDS ${generated_hdr_files}) if(${CMAKE_SYSTEM_NAME} MATCHES "Linux") install(FILES conky.desktop DESTINATION share/applications) install(FILES logo/conky-logomark-violet.svg DESTINATION share/icons/hicolor/scalable/apps) endif(${CMAKE_SYSTEM_NAME} MATCHES "Linux") conky-1.19.6/data/conky-dfly-smp.conf000066400000000000000000000052031451224556600174010ustar00rootroot00000000000000-- Conky, a system monitor https://github.com/brndnmtthws/conky -- -- This configuration file is Lua code. You can write code in here, and it will -- execute when Conky loads. You can use it to generate your own advanced -- configurations. -- -- Try this (remove the `--`): -- -- print("Loading Conky config") -- -- For more on Lua, see: -- https://www.lua.org/pil/contents.html conky.config = { alignment = 'bottom_left', background = false, border_width = 1, cpu_avg_samples = 2, default_color = 'white', default_outline_color = 'white', default_shade_color = 'white', draw_borders = false, draw_graph_borders = true, draw_outline = false, draw_shades = false, use_xft = false, --font = 'DejaVu Sans Mono:size=12', gap_x = 5, gap_y = 30, minimum_height = 5, minimum_width = 5, net_avg_samples = 2, no_buffers = true, out_to_console = false, out_to_stderr = false, extra_newline = false, own_window = false, own_window_class = 'Conky', own_window_type = 'desktop', stippled_borders = 0, update_interval = 3.0, uppercase = false, use_spacer = 'none', show_graph_scale = false, show_graph_range = false } conky.text = [[ $sysname $version on $machine $hr ${color grey}Uptime:$color $uptime #${color grey}Temp:$color $acpitemp #${color grey}Frequency (in MHz):$color $freq #${color grey}Frequency (in GHz):$color $freq_g ${color grey}RAM Usage:$color $mem/$memmax - $memperc% ${membar 4} ${color grey}Swap Usage:$color $swap/$swapmax - $swapperc% ${swapbar 4} ${color grey}CPU Usage:$color $cpu% ${cpubar 4} ${color grey}CPU 0: ${cpu cpu1}% ${cpubar cpu1 4} CPU 1: ${cpu cpu2}% ${cpubar cpu2 4} CPU 2: ${cpu cpu3}% ${cpubar cpu3 4} CPU 3: ${cpu cpu4}% ${cpubar cpu4 4}$color ${color grey}Processes:$color $processes ${color grey}Running:$color $running_processes $hr ${color grey}File systems: / $color${fs_used /}/${fs_size /} ${fs_bar 6 /} ${color grey}Networking: Up:$color ${upspeed re0} ${color grey} - Down:$color ${downspeed re0} $hr ${color grey}Name PID CPU% MEM% ${color lightgrey} ${top name 1} ${top pid 1} ${top cpu 1} ${top mem 1} ${color lightgrey} ${top name 2} ${top pid 2} ${top cpu 2} ${top mem 2} ${color lightgrey} ${top name 3} ${top pid 3} ${top cpu 3} ${top mem 3} ${color lightgrey} ${top name 4} ${top pid 4} ${top cpu 4} ${top mem 4} ${color lightgrey} ${top name 5} ${top pid 5} ${top cpu 5} ${top mem 5} ${color lightgrey} ${top name 6} ${top pid 6} ${top cpu 6} ${top mem 6} ${color lightgrey} ${top name 7} ${top pid 7} ${top cpu 7} ${top mem 7} ${color lightgrey} ${top name 8} ${top pid 8} ${top cpu 8} ${top mem 8} ]] conky-1.19.6/data/conky.conf000066400000000000000000000044371451224556600156600ustar00rootroot00000000000000-- Conky, a system monitor https://github.com/brndnmtthws/conky -- -- This configuration file is Lua code. You can write code in here, and it will -- execute when Conky loads. You can use it to generate your own advanced -- configurations. -- -- Try this (remove the `--`): -- -- print("Loading Conky config") -- -- For more on Lua, see: -- https://www.lua.org/pil/contents.html conky.config = { alignment = 'top_left', background = false, border_width = 1, cpu_avg_samples = 2, default_color = 'white', default_outline_color = 'white', default_shade_color = 'white', double_buffer = true, draw_borders = false, draw_graph_borders = true, draw_outline = false, draw_shades = false, extra_newline = false, font = 'DejaVu Sans Mono:size=12', gap_x = 60, gap_y = 60, minimum_height = 5, minimum_width = 5, net_avg_samples = 2, no_buffers = true, out_to_console = false, out_to_ncurses = false, out_to_stderr = false, out_to_x = true, own_window = true, own_window_class = 'Conky', own_window_type = 'desktop', show_graph_range = false, show_graph_scale = false, stippled_borders = 0, update_interval = 1.0, uppercase = false, use_spacer = 'none', use_xft = true, } conky.text = [[ ${color grey}Info:$color ${scroll 32 Conky $conky_version - $sysname $nodename $kernel $machine} $hr ${color grey}Uptime:$color $uptime ${color grey}Frequency (in MHz):$color $freq ${color grey}Frequency (in GHz):$color $freq_g ${color grey}RAM Usage:$color $mem/$memmax - $memperc% ${membar 4} ${color grey}Swap Usage:$color $swap/$swapmax - $swapperc% ${swapbar 4} ${color grey}CPU Usage:$color $cpu% ${cpubar 4} ${color grey}Processes:$color $processes ${color grey}Running:$color $running_processes $hr ${color grey}File systems: / $color${fs_used /}/${fs_size /} ${fs_bar 6 /} ${color grey}Networking: Up:$color ${upspeed} ${color grey} - Down:$color ${downspeed} $hr ${color grey}Name PID CPU% MEM% ${color lightgrey} ${top name 1} ${top pid 1} ${top cpu 1} ${top mem 1} ${color lightgrey} ${top name 2} ${top pid 2} ${top cpu 2} ${top mem 2} ${color lightgrey} ${top name 3} ${top pid 3} ${top cpu 3} ${top mem 3} ${color lightgrey} ${top name 4} ${top pid 4} ${top cpu 4} ${top mem 4} ]] conky-1.19.6/data/conky.desktop000066400000000000000000000002461451224556600163760ustar00rootroot00000000000000[Desktop Entry] Type=Application Name=conky Exec=conky --daemonize --pause=1 StartupNotify=false Terminal=false Icon=conky-logomark-violet Categories=System;Monitor; conky-1.19.6/data/conky_no_x11.conf000066400000000000000000000023601451224556600170360ustar00rootroot00000000000000-- Conky, a system monitor https://github.com/brndnmtthws/conky -- -- This configuration file is Lua code. You can write code in here, and it will -- execute when Conky loads. You can use it to generate your own advanced -- configurations. -- -- Try this (remove the `--`): -- -- print("Loading Conky config") -- -- For more on Lua, see: -- https://www.lua.org/pil/contents.html conky.config = { background = false, cpu_avg_samples = 2, net_avg_samples = 2, no_buffers = true, out_to_stderr = false, update_interval = 1.0, uppercase = false, use_spacer = 'none', }; conky.text = [[${scroll 16 $nodename - $sysname $kernel on $machine | } Uptime: $uptime Frequency (in MHz): $freq Frequency (in GHz): $freq_g RAM Usage: $mem/$memmax - $memperc% ${membar 4} Swap Usage: $swap/$swapmax - $swapperc% ${swapbar 4} CPU Usage: $cpu% ${cpubar 4} Processes: $processes Running: $running_processes File systems: / ${fs_used /}/${fs_size /} ${fs_bar 6 /} Networking: Up: ${upspeed} - Down: ${downspeed} Name PID CPU% MEM% ${top name 1} ${top pid 1} ${top cpu 1} ${top mem 1} ${top name 2} ${top pid 2} ${top cpu 2} ${top mem 2} ${top name 3} ${top pid 3} ${top cpu 3} ${top mem 3} ${top name 4} ${top pid 4} ${top cpu 4} ${top mem 4} ]]; conky-1.19.6/data/logo/000077500000000000000000000000001451224556600146165ustar00rootroot00000000000000conky-1.19.6/data/logo/conky-logomark-violet.png000066400000000000000000006664251451224556600216030ustar00rootroot00000000000000PNG  IHDR  eV=E pHYs.#.#x?vlIDATxK}&꾑$x'Hdnq>OZkπak`O`=1K5 ^}lRa-Ǣu(R qyVf]<\ʌe_4M`SUe}kCIn,[Rz_xɬ*'Vjn okwU8g2$q=:8{lXv\W-6xxQ' ,+RXZ+Dp-N72 T%8IzdL}pH8/ Te}-ndؕZ+Pxn0Iᄣý#e`[*Lo$Q%xO3 !.IU2R~#:(+Mz߯Ei #0HYm"pleصFA-!poe4`pUU N3 !) Rn[ѽ8.* Vt \WvAx 20䪪f4PIU#p\od !H%`UeaIvTH l.亊lo0䪊{GK6TUַ N"9xn{6lw ܊p>Hpz85 N+{֏!` }d?X q=RX] -8X!B>#p+*;2> p*v3QF;/!8FU2fpUE6$?8{0IfN!'dpr@M7h"[{(N'O7|pl#n,H[G7NH[N몊pJhUYJr79w=pD9$lwNr/pqn׃J&8`cTe}-ݐ$;*%yu,t=` n yd?ý#`Mr'ݠU`}/C`]VnN`P X9OOr_e p"VXK4&xXl%p\I `NrpR3V$InvP $hFjxnREN6E$~UH:*$|pb?HΛpd?YxnR穣yN6r5Gk΍~?W 87=8ܻ y8\Uג<p>NrpH)Q,Ue};ɣEQUַ8K^Npv|*JiUN*$T tMrpR!pJU7 \U X'}pwIu8$(j'yT-NJ8|v|*JD4* z7tze!p,* vTIn=Q `%kQ `]]OrԛXOW*ko'ê(piUz7tf{wE.aIF`3}/ɝý'J(0&{?ê)0N`DUI>P *O:8{@$z7Ƀ$7U֟+$%Q `}X=e`Ue};~z%p[*IJ%)>NrKWG `;Uea`IUe}C)`;p[*${yCl^Q $~Uwloj'aUG4*% ?T |p28 W~T8C?HrpR8 Un$p>NrK6l^a)lfFo'êo)l ;I_"p#l\`~UdVe iTX/TX!=8ܻ `MUea$}pD)`= 6In z(o$9'yػX3:e0Ɏjki)`MTe}'G6Nt:#pk6P%5V X⪲a`3$d+QXQUY'@% g{KVPUֻIGl}e$p+6xj[{wVOG `u[胪VoDNBiT.Y+le pL`In=Q \%S]O*]%p*;I:`% >T  6X\"@UYߍ2MӨ\|'q[{O.p Nzo(\ 8ggf'Cp Μ\8'F.as'tLΘ:sT4M pM MPO:8{pv \W K!tgp:+a'êo( 8a"tgHNH`% 86Xi;I{|'$pK6X tp2a"t p˹au"t'$p z?*v`kO$p6BC`\O p<A`c߻VC6x|0F`kRl 0hF *po_`HwM)#p6GZiTU$-|pHv:za*kMa Za`N E4VZG6`In=Q lw<ǻn]` 5z&,zRl6`yדW[*prI!pb@%8 l 6Zg/ liU`#~?;8W6Is4ɭýGJ8`Te}#$;9:`uM"lI_Rt8`c~Q?JrU5@RIt8`##lŻ2i_p>z_$/UKAUwM!pZnThFXK_+i[{u&pZFT4ɍý#`]uu T $)@V$q{OUQVUUֻ6`\MYXy$a6U'p2>2ʊiTR$l=TV+*IZ%O:8{VFU7T X$)M S$,q{OQ.BUֻI,j\%8<w*{E8Ue}?MSo+hF87_hp&&qpw787UYHpfvnj%4s]GK3̴4}挻dMNa ?eh7;AOYb joW2/SmB꺧_UֻI)N̝{hׂ9=6f˼6'x󚓮`rJfNgӞSmr.<>kjxJf' |&̟K/@׽ifs+h=L,FNtE`laYbfeL5Swc1EvrJ3kܣ_V7TmL77:Ηnx'2 ´ے{CS 'Kw` O`p`9j+ZUHg.4pZϼsdUP,Zb^0m֚M] uNˌ5?@5cE_cw𸡢}*+WDyo<݋ѻ鵛`8YsR\Վ_S z?*$cA;̌'dxqٻ0di3N6/:Ŝ}k>sl9ل3wuͼN_.j:N4`lE_bXb9i?@Cd3_*[;w^s L,0mL7֞kF&jy%cQ),4u|%鴾cAw?~N19̵XYֽuƶ]#2:ji Y*D1>6umb哏[n']epp~t7-=:.u0 }D3u.(b^E^_Q,={th3kZgA+cwd aƦE}ulAfjFjfh c'rG3Lyr f58ʬnֶNSZ1T)bfc;4ik?66`3oNݣG߷fܗsƨ}pH*I>R ؒ[=fFY%S.ܗb-M3)e|{S'柼r9E3N^O73ߊoA15-׌ӂżOLuڸF~nT#7 hN28n̬bfaZȠXv's306)=RSvAp(\nN!3UX`qf|\ U}p2AGUT  N;A|SO6-M~'n&Js͵ΨO "wwGؓir7_o|43'j&.>̝Ejf<7y_|=/쉚Nxۄ)+u1xoةusn1@hH|q%Bg@hF漘GV#sP$W X=I\&;?{^03n#i_)#7sgA鷖Yd/flk4`vy-/x.ad/+W^XS/,qjr1fud8s?_h+dK套_\y/BvRy 9mx"he\u*~9s>ſϾ?g?koXdүVZa<@Q,_ׅj/%O#+~/;?}62br_xt~=Dhf1/0s; >IfO`}p2ñ6 ؐZ: d%i/̔R>̬Ɍ&7?_ʫ4K_y}pK/fWr~Xsg`}Ww.~?6z/kcֶ}<|9ᗟ}_~~?ՠ?gǬ{}xӪa0p0YŒ. L20.u+pp~J-2(~sMҽ ~hkr#O42h{^ii_kw{=;tZԙZ<9Eﮄl0Yq\pI^fٟ~ 'ӟjT7&j&,ьS¦ݩ|s3iO~\ǶT`;8{ g|+ppvC5::ːXibЏ FƟWLv=(& (%' q&3Rv~%o/ ,uzs#pn .kd]O~?uWʧO~5E`zk B3. G1gx\&[5e8^SQ*kptt' Lb0Hof  c)&+t=ii_[W导7w^ ,S\O7'xupU'gth]ߌޘBѠBZimjSP.|$S[(4KjӻLavW 6$7( b8Kv3XH`.]  l0{A{#kF#~Hzyy/kjfk&_Ӊ'V<.bCgul`ʀթǰN}Y?t'+kWi~g_&M Viu(}guO`|x &3]Ib^hX`m=MrM3888 `hf=5h K_? _s1qyRY{vt'|<'rԾ>JsF~\_g 7`DPA?pz|0ڠ.gq*ppr%L _R>`N7L"i &U@.cav a"`P~aV`y׽w_ϕ+K}9< W)d0+*Gz[.l?O?Nؤ.?Ϗi~_&I"9 W1'|0^4 S&# ǻ'\)sFb}#b07`Vxa,` w1yoʕj_Yjk$Mf7o;q}VРD7дaHVgߏ]`rpbntr w%=͠4Lb0x7+`0> Jy|w+~'O;YMz#tp5\v'kx̙k]'/Oy>Ot&H7Bw?F^ |)L0B6.968Xp(' <12?4/d^SaC0(Rxo/f^yZ_f82e^/2C6KԱ9zR/Q0,/ 4 oE6.'=8Xp&' +4`aW~IɑX'I3uX?\02X5œ_GG?O~Y~ף2HAHFiz0|k c ?2`t0t,w44tI ˴Ct981t73<Nj~ځ݇Z] ZV+}EW^f[;ys˭ykZ=^?ojC8^f-G&t=HgϞ?zO>|3:n F<ǘcnР\1Aʠ(ځB9~ +N7u2X=*?q|1mk\↧tس/w4N:h& >6 ]=8XpʃS s_ ƃEtߋ˧̴[/HW7KyHNtz2_޺BǿUQ# 9vxֲ9nl_dcwl$|¯~,Oj2A}ϓ#fڧ_.. *In,qqAa\"Naeǻ ϻ_}3_oL}Ɋ =+:S6ͥu!+ dgB w޼e^r`DɃ+ rw?'i~ðA t?X2xv`6t7%.  mϢ{E3,(/.~+oɕ+'ЎO4,x Nҝu(@`;Iy·E8h-lȏ=H.Ϭ/,Y[i1ep1c$M3:6Z]o=,@a1c;zJ'ro{^^z޸r)tXظsiM׿DwñɁ]16}`x=p ;q}:LW$?T rlGDIbp}:^։ F:tZ:t;):=-|o귿_}qBdd]3kfXL+sJ+<[^ꜝ,kݝȬOI&ϛ~ ;dM3ir ;?83)Ü*骲OJFtI{VX d48n\Br|,o2ALN.9 s9wԠuQ,be&[pǦ.֟m*&H-Ģ7e,I}Aau隤I"DLi0Ÿğ+Ìc%Ien` CArVN98/t[^Efޗ+/N}5 I{b7;Ơmc>Kw:?դi1ޑڦ : (qe6WiAz0<z xNyM/TN4h?6/hV :" E+b^,$Nu7ʋ ;M2ae0`q/50ۜS]/>{{O置Mn{$&iw5<t>HvAhq%0.=:tS6 ڧ:&3M.AWa~@t2(z_/>?Co+yG[C6gxh&q'c6] `˭ʬ' x^qLix1^/?7p,/c1a'nGhi `;J;VUY&r#] Et0H'5FtF;tv>N_|!o{xsR3U.22Ĝ%7.XLҳYձM=4xG~HVGn^gVn݅iwDnpBO\;8{ l] ǻE1 )>>  ̴yaҋR?_{xk\ǰCR'=M1J ~o}iKvqNiLPu<zҽ$ot5rwWj0GwZuF' xciMB,j'tt8>9/ ֎DWbpa`:F0٭>hw@p0bPdmoy+S(x&"EO_eѻ$M.M^l{gj/{Ofu>h9o>4ϾHǃ.p;MM3|n{׶oUYI? l_SEƧ[ؠ.WFgB(@3)uB0Wz9o~ b/'!`0W-p\gSoEwXqy8ziMRϟ*i|ElF 3B?;8tpϟ6^E1 E% :L t 2lk F^(y (roWr H=J\n iq㳭ɦX]o&wq֮/<=sIxwӛ-47NO_/fN'/t|oҿ~cuۓf+Ebl{3gV*[Ik2] zw4hLH$D'u)/韘(It"_oΗ⋝Nl1zߛj6[eϸ1v׈Œ[t@uZ\vAivߏ~7_~EAy`uAt=Ht;}pᶾmppgutWNJs{] ab8SBL :fWv8HS/η~ݼbJ22*zr~aj oֺvh#'S{lX~U$8>'/W16LYao\{;|߽qI{/`q`Qwoe%>kc' ARe؁`x¡hx茴a~ $$Eh0N}r\ᅴVF'9,Y*tâcdYNZd?n]}W" ,_>uzZϽɰA45m;v6mppguuEQtj0~; BFg?T0ٹHѯ~ؠ:)"߸v-}͜Yi] .wf )_O1M1M'kHͲO{7w}}XzvbCO+]IyZx9:1Ā15#)8E2o]w%`.~8AbHDׂwFow=^޿J^{/5:_cn6X9/Iѝ}:龏 "_dO ͠npjO\;8{m/|;܎k(f0j_.i]>`AŜN# :Y:/tZ[ȕ^̷56NbF1_[gV(޻d~ˢ\[D׃k3r|łfByeR'r~ޛ)c#1A3v0rt;`;$/||X'a^L#:("E'a'aؠt VkB /tFN`|+o?oW=}˾fZfכ.4?C^NDI 4]>N̶L_oqڕ7ߗK/0:oc 2>MA1r@m|EEWUe}+}X'A^Lyh 0Î3): CQdй`d_yJ~[&Esm0&/fr[8n3'<;oL?$w >ƬI"oON>[o{˾<)l0{Gؿ6fu A;_!Y8!3?'-eh/o -qQu_^ \n!O \Yv'Z=ߗ[uc{(^o^_ݏj8a+0'zB9ǾAO?7;޼z2"Mw# do7W1J?WTo&bܾuky|龗~+foeS(Ɂm.꿋?E)%>~,]nDXcw;"|,/WAer.h;o?&eiK *dL6cJl|l2v;~g\`0b6rjP"*L8ߪi7|zi_|Ƿou1.Tďh 3O㛮I?| o'yqDx3{? du#Yb4M3jO_onzAD|2N3&"m< ߇{dsؠMI2 * ϦdM/h)M;`5t{8~Z`P_Bg}{ &_x샭?`_knOQ/_|GW7aax3m?8h87xοct fד b:͠ fZ mHa:ՠ}~|m6?ɣœX.ߓ&p`wſKgd;.ei㔃~0 \]};7x޼z2 ˕$_0>T .N)a^0|a~j6 xgg?m&g1F;o%\_˖9>Xλ_]z~_ݏj+ ^hS} oѤ> "C~? u^&dD Xy>L0MM$L_4/V/~u??O]ha(;>M34GKsqwUy;o4x$`0nƅ'= 9.]@OU9n7>mbdO6F=_iύ ͬoj!C*xϾyx?~yT6DRPu0՜TvO_U(K|XDioD[JB >Ǻ[ko`o/ꄃCktְ0 0A=頩MFVUUM3vд?xx;~Ͽ9A o['nCOj\§ TUUxhVtx/8L:Upän;ຜ>lч QM_71 LVUƗ?z&oߺr?M#ov]vAYy˛~d}c` DB BPͫ\ͫ/#;f1TP ;~]M~w__'wT=ވA]fiJj3 NEl`0Ex= AJ}/~ť/^m/w~3=8RO;n2;T+:jⷯ_Ѱմ(t Cz38\z|ưR1 _M71ج}5kV?/0q%MT:qĶǯQ/d!cdd1BH߾yyx&Z?#l] Aw{2 al@jFXW:~uy^EPʥ㤩3 H':'.V.{6oM~jϟ_ݏ'c 4c/Edo!tAv(/(lYؠތj3ج2r5 t::^_xBe/.Ѷ\ށ2~;ycNn^nϝv7-OWy><`&L9aAvjBh߿y!8~$W ٯN6㺀n2i`6ݠ}fմE (vGN?E7o#('L;8߸L;d[|?4oڅ_Xyz.У!L8\ lfL*P0~sD>j332J^?_;/'TƿWb36&<ݱ|q?~gqt 2C`S8 uA{&L*l0 dƪ dF4 ưA3 “/ǟXʵ:lA_njMrҴVRނR\ڴ{ñ["#>{|'x![qcTU:&ͫ/nс7޾[~!P1|_L&U{-`O;X 2x ~_j¾;R"JU!럯*զp4*CoAnLRr럵%qAt ΄pMp{h6L3.8 W>&4vscH |˧ g (]߆}(3`m7o3|^tS}Y;@)c?yww먉߾Y<ٓ.l!xPگ*x t`a*M3jb@ M}ڹev+ /ͰUP0 VUРz::Z/f6.T0cEQPnĵ7.Ƶ TaAÐꉧ{ oH޼z&M |gqa\e4 V Vөd(C~N6H:tP-X.p5]C1 77doLͫ#[Mj:`c`(ΫH~ 1os/}pHN^/v ,tUj91T tM:ƅ 4ӠIaKa(턃Mp).,?/s%3rx7:jA}f{틛r7)p[v>c fmal2Vfcؠ,t68/7`OF?l`K CCDՃqK:~|.Z+bߔ7~`Wgty  pªf aխf61lP6/J:"e7M-'#lM3iOFV;o訉,t?CGpop MpS\ƞ+lc\ t7 "J[˗Sγ {J<a DF㚈e㢋gst܅>;CMףdw\wo^}qNTr!a>ޏc:~ˌ["L_SgZ`DNGdhߣ>uYGMu;A֡J pNro^>"*Iq8  ԓ 6 *lUؠi2_{GߗezC`Y5CQJ &i39:nt/:{p X+rṺx b6i`7Y V6ɝI^a'XnlaBiào( ͭ1tms򤃅A ?}}?I/'eu?3'a "f=l0dP r6/>ϿuVHWNo> oDmL-Xmֈs~?GOFD۫1!'B uͫG#ZdX`. Taf6X5䖰AFUXO8kNu`~uRԅ~~/2 q9B]@6Ȫ7] p0Z6hr-6OT72+VY |2ʍ83J;}My<:hCMV8K.ɷ"{K4aݓC b2N6X5㫅B6x1lUCZ~ qrؠ~Jkev 7 y>&~>;DCcH5:Xg}> tIGp"nyA& !q0du0XmwE6(BeLϊo> U.kTRICQ2v l踉{m/GF5Z26#Œ}>ƅ9]ؠb*l1 1 d5~|m "Y!RS ʰ co9׎onɘ,D7de? O{QX^8B )9 iւ4f=k2ރ!l{X <H x_AuOw{8Ƿ^?dvAa24Tzb{84R C8 S A6!XO3N7 ~WҸ*kBJ^"o4m/|aRN:(;۟6tІ bmA4cI5.74lcCo*އr4 ꯬ a[rVzn HWPLROn k,(Œ gЇ} &)CpunF!J^0!|0gc"i@kjLUMf:j'?6:mA\Cgj{([__ʼ6߉~qzQ S'1t`}< tɌGprq~Ma>q0)9N8h&>tZd6.l*;}.~e8Oa`6=.}~3 d:\LPryn{pFI5.{]*l 0ꂰ 46Y%؛hV1 @BѬ>lM, ZؠO`.' Q`O\NC;ʠ2 ɮb9t9nOğ٤d}AeߏҞCNBWC [pK0͠rpMS1\M7٠ib5L5hoȈl"OY RPmYwDYbe:տK/YgO& T!+iÍnLyp1߷ګWo_F#NX.Ʋr6˪RM?o-d}M4ng&O֊yؠdt-sA P&3hCEcwOG(&czDV>C2icJf= ޡ};}p{F8 8nFE農f jW?,>_+Ԓm?c[DKQvP(vYqVzx*\P-d/s˱Q:'8Go^~Nh7kZyC:iTAU3&1hP>{?qW&J-c'?8Eɂ^tQOjXr Ћ26T p4. d:ME0p0) AΧtmVsw=]וu>L OZIu iMӍ6PjT?*IM|jQ'4Ce%M5`%7 "BD"pl9Z.cRcQ%BM:h'Wii2nZ`N KюcL+Rvl(QJ{ѷc2]r}Ag}I?laA4Ӊ ca}9`,^97t9T@AξpADדǚ1lpWqtZ RaKŗLVg;6b^j5'A7/>lA6{T(19Aa7޾܇ٗk&>rK54Ϫty$xN2hiX S aAM꫸sh,eZ.QbV̞P, o'*]*t_2l0vo?+^OEcIK҇ ƉN Yig~>ĵ޼z8"ɿO\LOэ!\㤺Ih¯o26*lMƟ6l0`>o(r{y].M7P|;AV /wl2!-u~4xP$>;A& ո.$akPWycIyd䪙N:1hZ5CX'?<|y=l6(؅TudWS'`evux4SݦGGM~Gǫ—Yd jA:|l=#wo^}q'[4M |Xc`lcaDWE&hlAjAfDxa6(ՑAoRC78/c /*P5#uƬbxԡLwKQrqtjs2Y 3 | p_ p- ț,jA  ɱU{L4_ޏg?~Uy̵}}1Y^>2 ſ1`eD%hw=tJD)eXqϨqO42M9߉~YJbaW}188}8xˈxCU & n0rĂX 4C_ݏ? o,s&tI9̢CW:o\5f͝GxLl-r1})ђQ)$XָQ:G05G%v\?/Y{p.tA3{<۩?籺ta\;IȬBB;.I'dS?2}Ę/(QKlfv7qB)<:ndh ,WNW 3:~m7޾X9>*h1bD(N1h&VRYe~<银o%Dž/كd&0SRYxY% C`:&d7`:`:*XR0G9eDH\ŋsj_%2J8e`@.&V5oGdDT,ÔkS24pF_ׁ3pO~dޮ1hع&c*dUO<5Hyw-VC*D{ekMgS/ZY󻾌2[޲M+C>M O/˱g1zWb7Z`z@S:޼z9c`m5 Fe'41 &_tA6N|Z-Z~ԅl9faǿf|5,=y7!t|qpSUEUJV9tV(h*pA?͠ոmժj¬cL]GS'_|IUOG|A2(]@!Ou'_ޏ_WM_uoKcK:ȵ͘r^_AdPO4 }VMƓ/gbWDfAN ϔRJ=䊸*L6>[{0&r菉ۥnM;}Ș@.T9=<}, }/MMOqpS.&Ŋ5jA:B&3VM^5U [ii]t, `ۻDB!(W]-vبkPJ^c$"Jvqƌxݯg%~vm)!5p7~Ǽ~oiT&S"&&d=U@œhn5idjTPTٖ*r=<;)Ksޓ얛ZCrSȆ_ݏ#h% Yuod|`W}@d}8`,r|)7)&S aAf4] ǿAv;eZW .hw^R D, Н L') Ä~7us0eCOȷ|O}6L6۬`Ɠ1}cW8xx p㤰YhA2F59)A5 hۮmdφce0 #r,4K_qEBDNvIO~nQd6}/3uȦs1q|oץN5d5`8^.S7޾^~mS!9*Auv2'4@hV]qVzX:IOȖ CV.x}R 7(c:` q•c`9Q-bqQl{]2##Ɉ~zϭS:`'_C~sC YKI8 g~M >{qn퐼aUi)= ;Plg_$s<3v|˧vkfZN̯~v*ve7>|(l|AoXYMB'PB:XjGÐ>Pk ')ŭ9ąoPM!Ure}!LJ<]ǯץiP-YȌrL9`t lrS m6Ϙ%ik 'uk)WC \m@:<+JPԽ%2Dn8!DyNo^0 ']1y:UTiqT6Uqq!t r=pj2,dN| 2)W\y[5#p@vY|p+N0#2dzIBdeb(]f..Y/YpVۛK$n[r0D ɗ_|9 =),ѿtW5ൟ)a:id[5]@ajAӅ fjs8áu56ڭt%ZNoX'emJ3el_:vưmE,n6s葙O]!ɹ8Uʽ0-۹}* jAӿi' i iyE;ʅj_5$SW?,>{0=0ca ts[xPy}Wo_F#?Oòi|[,wt hCU*xj0dAtS2VGxQb @Z)e2n=uO`r^;-;n36zAO@N;N׿f胉nq͜r|m:gבo^Ku^Y| 8 (c6ؠ^d"U6h j|<3bjO2`m]Xi֋)78ج}gXtr/)%r0 4qKǿ{8~7_ !鄃ŷ}dzNy}8NVV'd] pA?֌anj]{ mI@*"bSr/>Del(J7 c(<{nOdAYlP"0EĽpjI1p9j0N7h21rMd1dϞ?j }|RS1^+sxRՍtS^[a7(WNQă\8]w}>z`>&+2t㬅 4eRo^}؛W{uSX6X0 23V]3tqѬko^i./S{-rq3ۅ(KL;N-K)<~|pg3[3fynf`ku='38Tv3A5 )#icc֭&j\˕R&殦bOgB`KsN?[Ѳ?~? snI%sY --q"vQ9 1a%1X2w.ptdS oM=B;&n05͐hVtݩ Y"r2٠.(0weV "bح\9L&t k_3x_ ႦN8zm}ެ/輾̝_vw~~liCJ;4xd!dN.hbO7g3N@C މOﭕieVxCYoxB?\ZEVrit˜",J)㔃a-ά n!2>_ͳf譙)wKٿWo_rW 1oQM-i4y Bvc}ccU=X1v+j:ir͖z+nQ$('NtG-.i ݃Y'xXxs觉iʔ2{/sk?:C,rz܀zAS`AfFTjkd_ݏ;zp,P s )FlԸv}'\vA=2Y2ZO7(UL`|~sO=l2.L7q"[njA r2٠M5ՠi2Ujt!n5ןEV &]_lu[ٱ2ů gRsG]oKOuq!̓;MA׿fX3i_MD2N=ȅ)L_fw~n7ߴ Ge]eh΋u`2͠KkAd2#&~(U3XЂVFc6n=;5];YXj8^UI?I7G)ÚC2ayץ-yq/f}51N3<k'z/%pۗ~fWҭ:uU{2t4m`n>Mӏ˸{(=Wo]D=7.c,AFsC2Ry_ 6<܁}Sn?K& )Q~7ְpg=[crJM97޾^ք~d7UV? 'ڰA0B41|p^evql]_Ӓq:K_VNW)uJv2TrGGM>lSibחSNW fI꜍sCu0Ѡ6m ;q2/rz롃'9YTLNԎQ^1ki;SA?q!'"Nж/ƽ:>ޛ2͉S4\m 1mQM341 {?4UMCr֭&~p(yeZL1f i S#R?v|Y>~TyK0ᠻ79M(ܯ|\ss3d-, Ieo^}صZvO44c0v{r'޿=WFcن ڳ,CUV ,8dW,玛8CU wٔk~<}/Vgv99 1U),z};kº,'RTs :n m "qA_aB Ͼy892/B[%Mȅ]+.W)-C6֨2k7m,T/ضp ;T5Pg\2^`Tb{A 帴yoI>=-\Bf?`\􉁲)L߼xϦT*j)|pdΫ\rRdtiﳰ0dܺӯt>e(B2ԕ߶ENpz5vmH0 -,DF)~7_zr)Q xA9=z틋م޼zƗek7R'b T!~r䫉4lZ5@Z0cԕ{mo5ۏWgYN(㔃>qAY{rOCM3  SEǓln]%2N3&a&}4ÄL9hvqQM9`vt~.ReUݬic`t L-uР)4MD_AV9ScRm 3Ν18U) Wʬw\`ɶev,oM92 ӝ|*y?~`d:`q&|¶O7ho ƄA M.'Twzέx)U]9m`.qxUKeC ލmSrW>zmJ9taA{a;ͫ/bG8x틈xpSO7(ʘLtEQ֓ 8ݠi2rMC^웇D:(W]aJ{\ i(۟+Cxr>VWʩN/O5B)i'yy; <nrѵ> f}Ӕt?`(^PA4_4Mx;>{tg(oL7(vW\npF.T/So. dv}/ȃMfOomrѷr/b'8xpSUM9ۤ>!14M@hr,zp~rų2:Fp.k2r04t}〃e1)Qf0w>'b؉Xk-M7ƭe}?֧#rtL=͠?EWNn_d )ZLPl+r0)Z=YK8 Ozou1YU ArˋE~pV(]1tHiItRO4Ȍժio$_?CQ+C14ݠTڭF [g|F%Be2 w,k]q;Mr@ћWo_w'y <ݠpCn_هb:ݠ{ӻqpc3s;n (c9mOe_v_r'JJ)} S6}MyεtS IM9Ȫo'kA'uȵ jt&A,hPAp{}M<}p,"& *JFiApö쯵ގ3/ J,sLL !xN| M9HS@8 Ʀm  2'~A턃:̦}uYT'i]3|1ŶdXrPnnE>x09N攅-S8݁Yb,bciATS=޴z{QM_-tI쿮쯏3lr^syN'wx_ri|w4p\ 9OE9nЌ Gߍ[GIaПQS5`(.?]3Z-S=ٷrx,gc_8`+S>uo^}}7ypiurt\n L6c˯? Y=WL79Ss+CzI5 OjA{#L9 "^p'M7vAxN7: A {n&M~*R/)M)Ed[Od)1. :Yt4x)yy/]TPmnTR! 4 3tiͫ3~$%spt}g&_j诓ǯDHlt\z J2(90e`hjBS0`dAdA?#3gн< 8(!c[YuS0 ק 8(Wc<.cӅʢ~J707.XPO7hA=ݠG2.PykMWpqjAwr͜4`'Ӟn~v(K;/4(֫FFVEW2M}2ݠYnPxN-D6oաo\Խ19YL q&MAuP锃bY_x `-N7*\R9O4A&hAf=`cRj.eJY媯ᒦZt pflh,1֦rQ|eS.E9>E߾yY^xw;M-Jخ1O0٤nAT6L7MSӓ)dv+fYrp!6?`[S"ޙ˺n. z┃F)~ƷeNC,/:Sͫ]o?g k0A&@AYuߛf _[M۫&VvU4'҅ ƦR⩊?䤮M9 &i|2ל<;?}d֞,/880x%Ӛa2CM 4DsY^t\o}!`C!uȠ!ddDoٿ.b6 ⳇ' &٥X@E[X];w_5Mܾ{+^KЅ r|*kE pX~x>O޹Q<~ߺb`Wc km<1=_CK%>{)1o-CSVC7_4/hp3ޗFkIQM$ .8/O8͠ՙdNٓ:#p?GaKw?|p1NpYSrv񾣿]_$KrY x5'&Du\|k܋Ӿ,׮36їp.z4ZF,htf #ךnOދD ҍyvuhkZ?qi>?.f[3CNdS֞W,e'rzϾy-JBզuРȢw}Y/\g,K}U3=SO/h2liAS ڗ6qέuT 2lYʅn;Ջ !RWO\,M98OKɶ׶w& /*C3K+Dn_\y_N!C9K4Aۗپ9Gķ.3>ɭaATy.<~l!D?!禝~̡8ꋳ($U苧˿sOp?M9!|Pbm8a\DT-h)z8Ƨp'I*  u `A?N\gfxgBySal]ؠ ETj#\>pN6 N7 =wm6I8rvl /Ͼy8 ?1[tv <]낌O&*!\t 'I]ؠi2;x54c dUUu%  ?E..L_~]v]fvV,dXV5CV*-dW3}46p9P?m(P i]z:3'49~?޿/D=QeljseHFۍIikZK\kC|Bߨ-*L쌈AqЬ_{ɝqA7`2 5؄.,<9}(!*d] ֦v&d4!7޾u;}ܜ:/4|0}1ADӌA~M>CRJ]W5,Y[w.52a`7kb{M_є+:]2N%X l{ɝj*4U'Ů6SYU8,ANCzдO4~jV ʸ}j˹0 7w..^rqZ]]5=n 4 t>٭<EIV,aqOO]78E|ZW 2 `hu}IF3zcmР<=8X0pV}JELپ@p>?B>\]nJu '2 gXptnʟћWois]nF3(X8` dCe0L=Gtn"ܽnʧuҧKټerjz{x'R.n_!hP&ύ 닖2.zxaA-:>/whCn~  &Ou@I Qo"SʖbnV,/vc~?;1OjYi,BQv}H`>=fMܽwrLT]ܕ`e]'t=|KqBҸ/ Vc atA}n 6<-J)c=Rb2ʏ 4`靟oR6n=$ãaa~2L;O$"G\ yFV}J.xd.q$֭UyP~_›g Lcro*Q)sca3|gC`QO:S >wh `#c5ո.+D4+ dfx?z5TKeLa޿w*}4e2\C?cH]tL䎫r޽wO&#x ӻ@e#nqZƖQi1@NՔ~A>xiYa0Ua!}pIhjt:Yi,[vUOCpA{듶5p 8`6ȦuoW{ML0-2+8@]=N--$Z77-?e&]9=wEL{bӪ'mpb`kB00Ƒg톤rΧQJqe5l•] Z靕R⣑;+'?ݞ쫔q=ѬD5:O8nA6a_rXtzi!#,7 p^.a}DY% F$SM5ŠJ'ɦnGܺĝ{Á(~A=) sW|*ypeY] Jx#ՋKO ;~Q5YP=y!ryiQPC ׬Dȡ ?!)9~vM3NA2p[$r>bm^>^hUrKpcg7_sh7 뒖aAs~p@i3uY=>i]/\G}骈X^PM6 4t*qQzZAUO%O7`{ۋa6?곯~vƁetJL(:ȁg<4V H50 n Ȭz|c(K$A7&;IzKqD5\?`}f%\JX(eg}qd;xiQmEk?#7>.߹]Քv@ ]93"鄃ȈNA䃻Y5"#苟>|Ճ>/IP*'NJ+'Ic r6v-ư:=m(QM6(J+–?r.ž:8 G[m}/%rg34n'}z+϶rQ<|rwXp41iCҥ_mO45MNqA#!MaS~qC`^S A=rm^!Z̿.ᝋp|(Q.)ae7bJ_\b-#L>tAiT.wŶ'|6,FM^TO1n Xh}Ert[Vcӽt}֧.;8 |hMw!ua-*2^ΡϦ9¡mи8h=`œIZjNl8/mO dkr}Y"Phk)&i)-+Rb疥ta e? \>~NRJٺfL'0BhiYܸz>GMHi"mO8x{PC{r}^MV_TJ[ܻ<$Y>01 B/߻7&QօTm2Y@ļ/gvNl=nWn䪽np~ɓ]?5^Oc8A:i8$BFdW= 5D;Ɉ{n/WpY%mPt(``|~# 8ݹ֕7ô/ɱw$ o웇>}eM=\߿0Ǜ3W1eA*PŊjbc`Odbh)?]s/vJ&*d]N!0 7Rcs_ڔ2<ځv[J5rpBDkɊ:P/ Az鉓\;51&d1@:0 $MCye<^j-`EA~x'pZos}v~P.'zQ<||g* H9m>2bo^}>\0)?rdYB!cD4MF6c?= Σ|#rp" >yE^v1iɰ2}8Xea"Ž>p{~ h\=.Tr$Ǘz2 "ԓ ٌs?}rt[Gxa(!l0L7>=-2NSmd({ފ7q) nAt-EGzϿ?hm>(0{z|n8xoeR2#O'̌lzcxn9̸{(IXdc|s*p>k$gWzQRbg DNmrg<-xij8d/6=-pu4P>%s2 "MV`h Dw"¥bN.Ʋ]a~v?ppE8 mU/~e!(0{Twٶ_=,vi5ȥDsp}2 ˨?礒>7M4hd&#=u #lx??Z&y' pfv {&@\ (e|˗NoF:u`XtmgX1`< Z,s?^ rt㸳h6ޚ!9խf/$8?{" _\rAph#C]6 %_{‰>D4=s^&-& py߹l)aӑfYzA}4<=K i- PT\L98r38Y,4W |Nh-p/=8xc `_Oc_ 'd$|D4MF69lsѤXX_^_-ri=r4p:0VhL>|ATjzA#tHϥNT rN eyg۲g~3┈,cOtzUػn7b_=XhUQR~[Xl\'mr|0 ] 9r>h2gXlDzMmLP ϡip 7/gvQ }JXh/5R=Ux rG.8$mnpcN8I -<>8,CnVN?ppfWC(hw̡x=>UN.tB"z;qt|'^{{ {mSz5t:}ctSƐ}Ӆ}kRv[j ?`Me##7޹8?s|"\rym1Chl9{x֢z]2<@Y?D]zЄ=;"f?f} pBBnqQbRcCAypE8rS6`XtlvN/W]M;htwizZU ǯ]F )"`?3\tKׇN'˶C2)K(b;xU; Lsv~27k7޾tX" @ڧ!eP Y1[x,3Y5q|V[hX+46tF`oEv`P2YL4^r|.~`}AV}CUEKNc1HcѰM5>-fqfC1{#7DeԅD5 47ٟ޽sΡpTI74` ;(%vpO?'+ҾS`,^,'#Cp_}PaB=`4~zAFS?J2M6tA'. )Xv^@~k.>m TyNzcFL*Y9|M!丳 uP)݌. S\>lR6dpR3Y'ہD˰h0s0jdq [F&}ɓ)CtaX8skZ0V*NJjA]`ppE8+js}?M)BuNfӝ_@]<||wF#%̇]'k?r"Ă>j Mf4Gh26e 1 \OǏ~B[fCo39~?e|Y"ssϿ?IϫL9kHnoppS C NyUC/Ǜ~ۻM*슏q8ݠ|z>|"`zE9Sb눀RKNj2Io/Ik﷞zpec2o^}\_ t0I0 lADd3=̧!GC &mKO8jJ-.\RL3Qi'Nc(m>Adu/B#`?.εnrA?Te*ܽwdnvO? /tK_L\Qݑ*($ϬÓI,nD+%o}:Ȝ"e[@]`Jٶ.i)COk4.:6{۰=C;6|N0?CM7NIQBD9N0>7h>vdܾsk (t_UQ[>=?.~ۯ2C`KQ} ~5_S Nz{AuΠTP 1&>'S 2"Ȧ}Ѹ%HwY%߸Qsٔ"ppޙTp.,L84O+6i щ{xfh8t&WQe&էaA=٠{ɘ/qQle:nArToO?hT?G.^9GR"l}m2mngSCM8;c`? r?cFx$iR9'xǷWѬ8)$]$">],﬌ F0_Dt>O1#9DL:K\p}Ǒh6[6PA {wEKw. Rb:`\\W~f[<̅Uim^#E}g8x\Ç&693Y:yܮ vu?^uRNG*OtA0#T{N9Hc)ksZ}>E@NjA,o_E{xv^+ J-`‰NJpz2wu Ύ9t=B B1ZW=J!_0)p恃. zr13\ hPWf!ptdtZܜT#¨3}E8?"\+[!@Yb }AGL}njו^{01FmH0N;&wGIv"զ a<E˲e!,Z4At~BtA~r2>WJX;Ӷ)ѸXjaLd>0Vk2n߹ᨣzZ?@0|-)㄃e^Xgv N,d[Wo_ZyC!Tuڠo0|o=>S}F)er:h5 ?"'uDcHTO!lNuU8@Ayߨ'p]pia9~. c`|n_VJdܾ{kx*ۦ/8 ?`Ʌ,sw_JRA1Pe? pmz#{yp^cRN-C|"?{"\}lY2 8 b:xUkq*bPuW'KK,@Yz8سJ#dxr>~?7ʨnw R{2>e?|pYNɜN7{߸ 'DD~!{+:F*ЈSipS$}~g0CEt]CV#CxH 4}PS1k3VZ5*z;~>XҠ~XHn2ÃCQ,6TDC`^t6dп6=87` g~ `ܞ`rMz*KPC M7M<(skczXSt1]cNeHlnNni9렮5MQ٩ 8`ɟO?]`|0/" [Q0$O=$9[&tJaƞ"ߙcƍRf`!5>ŏg)hVY WƉjă puD֞;KyKЭn}Bt)G9gV87@fϭjG%lHOƻ]w\egh tˬZvZ_6_4}4GǮu|_ ɽ dIU yMCqRQմ?+ },V]\o2A)-*zyU7s˶n-Jeinc7ngP@;pB yy^r9'iJY\tpBsP._0q 8D?-6ՔfV\+J3ꂢ̋p¥؟"!SI2ȥR'|ߘn΅Bc_j' 7x"pzf/6gM?롃hsS {[./ !ppN]~g\G0]X*6ߦu5Ωzl^RbhB7e81T)fj9, y1n>p/ ꥻ m.\|BR6naa8N/Ԧv;BSJD6==~~n z!p%Bn)r[!1N#lc%YnjAagLjm)RJ? 6M  ʆɘw.*lpn`%ȥ# K9C<_ "+{;`3:鱆A}ӽ26o0|,$Wmk N;̓*t7d?$ńR!I ghw6ZDzrSnA\ܡ?'Y~"7iVEM/:޼zR`.;L%X?g΂| ""TDlN0G-U pf-H:}~ӧ}q<߹p#<8؟S9 }v0 vdZĦXd snxe[n>~\nv FiFtAoTgq|KY^T}xĂYS=Oiaq1o"p]S6ԛ|EzA娬?x,nͫ]?81B~~8Qhg7]uԂu {I8Bmo?p ( 4yIg)kAeN>!OV/],2tD9UU.4|b޽"/7ZF&a ¶m]@0&" 7`dvEES}:YAy%+zDDSvu5yS`5.>K1]R}ϓsY9)Pv %tl )Os3'n"PXd(ʛ 6|pq.;qB{~ -.dU}93ν)Tr˓eƟRb[`h(7m A8' A9f_} ;ۖ&Rv(}s~ ^A\$r2Q1m7 EU wC)!8cf E 2P WV'(ub O `('}ό6 l8ZL^ /+'m88*}ak\yB^£բZE/\c[ApY} G1kq76,uP7pqeد 6mJ8W츮!J9G}l>~t`d@s^{'c_`OnX$X[>o~esE.'@0 \ Jζm}_C'p@}+0(g$ 0L(;)xvT> %,m:^S7Rv ñ)ItBq̔7˘A36 mZgaνS%ȅ?waC0 gfϟZv-6.bpE:g격B^]p`aэ,ˡwӇKpnG=\oHÖ88Sڨ4~xE=0  ^zct2>7p \<ȅOۛ9l6__ >,}@N_v{o-Sn*3MѼ?.dž=ΟG+F\ 7_\|}Njn'v,.:?{Ǜẍ]p# }`P?Yˍ,$ g&g &+}p Ƕ쭔vO6%'N;D{ 늡^P%LA"O-ٱOE ـg Ab '}BҦgyxUn-H)=*d._It!rocGPf~BA~zߙP\0N([{x{>3rh1tj=o?E! (sB|7o ,pjen߷S ֻȜC mJVvBN1L8*g4 c`{E>綵LKڍ2.ZJ5^CajſoǿZ`_< 7s2LN)[*,8jgm@_4@N[z2OP~lAô|< Mw!g^$@;T*,D(ˠ%P[mK<4'?8)=98Av[D.݃8s"2ъ̈s`K+re ^dnU;rwW^}qYETryҋe[; 7?Rtw|AKlvH Tw?/N9Sqr4,9,@䳮U9"r3@ RgO|6"ڇJgl"vײd:CąC^eCuA)"rѫ6ZQ;վq=)Pz%8=+"ީ'm`Q6HUwCeP;hlJtv6$[+_hyE {7cU]Oe`nUP^R]Sz{S+PfC;_;u'$]ZM+\drXtE(7l67X發tb2\ΧЉDl"|BXa>El|E]EaeAj+ewY %[w7`;]r~!U[`E84lh,{ѽv-wA3Uip~Q8{bdN?p=INh?ιy rw|yxNMBiٹɾ,pZζ 2M:N0 \53HEjvVs^Ҋmۿtvܾs0sNOYyG`[{JC p3rhvh>)rq=аW߮p*{J.c >+l'\u(9A;:RtK:§ I`|^8`pqQs:TE4R !ٮ{zհ5Y;:>/p}P]֟sAqT=h D@Tkx{SmRTR.;qU炔V*]7q(8J+ @\s r}вA9ze+×Az>it?7T ѩ_7ח RJkw x E uz4G.h5\|mHEpXPt1.Owcxѽz2PztGLJ6 O'&v]ݠBؠ(/KVeDX"ƺTU.(6+i~] pR$&Z9RV p.~۷ i؍a?xM*~CsO7f&.ѥUVv/hR;P&ȋu>97;Os)H)Ebrq# lO n• RZt5ePT()5KC{Ii8H`2/oXs#K :4""~bbQ*~sLS)R}qt|yw5+!THR0(t CI۷G.pBߋi MthirrcXihn[zѽ*o ,*|!6§C W/-}pr+ ,眗T+8|~cE ŭ$g6@ th|I 3MuD@ե HjV}AL7'\𔁂"Pv?ȍ9֨%jڣAJ4:1N e+I7RRZ6)@Akn U;E#7Bou ԇHR)-9p>]B.޴?]>sgp?ŭյ /: tw. fXa[GʃBJ+vk( ܨ_~l^}0z6uU2hPn-bz{Eaql{" }p~j^",wyZAQt?"־飷GJ B\W* f骕I..EZ-&kE -?Trk tvb#tP3|t}U{7Vs.]` ~ @@Y(G* e"fi. pM~~;(-{'qi+,Ғֿ]^s4 Hi7>z~AT9(C AS3 9pe>9mmv7R{guY%(o*֧"~CCB^C|NW֭ z]Rs~S/y: :=`c]UY}?"ֿH<\Yr#t둖'=z~2:*wRp%~FnśU] r7 T6 @)EH"T /{\xx.*HRpE8:>: lZ\W}L D® '7~\P5+ZeEQs:7}RqT߯hLHRp~{ e\9_qn~Y.`?kY, s(ȝVE8!C[[#R 5DǍB"_OP`?c䁢\ie+{k@yq Ay?qˮUQzTt%X$ u{oj`V Iv2 |qt|ٺ "V$8ûl<,%*;az⠃Ek.97~1Ax \9;cՊTGkr^=i&/Y$}Ͳ|yC׃#eYQՙ r?z땸:h]gZI<#.gX"7e㴪I ˗x!|槈t.PZu  ֫z뽇Ug2mPu;$ pɵmhq~b4*TGQR-Abۣ,R<|^gO'lys"ppM8Xܢ \(pPNz;tvݓ'믾6WĽ_0a*Rkf}SSUTo[)M?/"\AQ!E3|PI<8/;N#p=y{_}9X|0C]g'ca+믾'OL{Ee蠼E!vjR~yq!T+-.ʚ]*ʟH>9Na.}նC69?x^RR2Yt63쭴٭#*A5NS"Qw(_{^t"d0Z aT]\5wpC{2%<; l\挗|&+<ž~,]ySj\qBU߭3*:>P\t|E "FUpU2S?~~HNCoO K .yR͖_?}f"ѓ'zDLW[b_t1`M>ob |~ܾ=4;۵%].ߜwGp'%WVE.Xԟwcj_g72JϺ@<^k4,;xJ2i XEv8ظ s#1Sc9rH+J뾳iLgsq9dz`/)J0겡AsymE .B M+ p5" R@6eoUmlt`ɳp@ Е).ZZ]5GOR("Z[W]t9Rs6ywde|XF\=lF_X+:c!T-, 5O/k-:%]R=.8vO aME8W r zָޣ'iLgsq9 ׮~0y>nlNHg:,r\'GLJ_^tM`00n;1r}Vzv6OިoI`5ksY.1ܪ 6eCVE _{^A3dp.jZ28 ui姅ެoScA S:_l#$rw9h-: ]V3[Y+.vN #d/c [0 m~gUTz+`s&1L뒻ܿL8aw}2A"Pt?֮yu޸/|guy$r?6E+|g?,|\ 'l1hHw.rP1rs )E5LOrYV@pi "n忽ws vNCĆ ) *_ l16 쭲ƋX=`9ס\WoR}ݡ`$1>+HEl]ڵP{9|txs"h,("!Hg9+ +o{S“/:F>) v ?ADAZ .AƨnGUUZ8n}|&n<-$!qRYyuZ`\F1]r(9םsV UqoEŶŒŮL{?A6cA~7h -{ڤe2T@Zcj3Xt9h(-20 wEn h ʃr7GLJ_^[ %Fh9)͵;h2 4熺3?`S ht9ܼ:\"-r007^HQR;4;):Pu=h?Q`O<CO5TέWE)}yh".ϩ=V#ADR'H2\м V?swPuOUt782D˗F=Á6PYХw9h7"Ejj wsy,s^yxUWQ8""k0n_U .pNi6"i &)Dlk33nw9is7'qsA#PnF}3n9(BN)"F, Kˁ~r liZҊT"\ Fk.ݾ=?[?ZO"-;GLJ]A \ln6l>3 r2`0qSu T].po ^"tbTZ PB`g=^ǁv{3~N&ɦy̳`ș9hQş"G9祁ޥ7"AA,R;h:RLO`8>}8Áwtjux bs\/wQVGeGE!:]eya7;=Wv;>NFtLc(/? 5ﱗ{Wn)$l`tA*s͎ U>!/_*7VyVՠHB~t8Hy҅q":l`TA☹nEӃ_U:|o?"p0ŭpP4jnRĺ`y@Prޣ\N'pu]qBH:4Rj69hokh>׿r0:xP 53u[GLJ? ln z} fIrPqA?]rhouHQ4Jŭ !D#tP zRo-8}00d21 [`:XCrF ǢA25h-\~Ż܊AO*,FJGLJā7j6y>+rj@Nu`A(ri E}nE ͝᣸A7Pu9v2R%1/zS8ؕ 0oٿwY9=]}-QoeUԟsK%݀gi AA9~'RغG7yp`MSE^/*ϗ`#GJi. T8C79ʫ/(FQF>(toyjF g7yޛbVf&|] Ҋ͆Zꄐ',OgGqKUW1J"TTL\u8`C7}{>-2M,Zt>K阋94, 9 ){?x;(hbTVQs("Bó#tܰWp":ltj`.SAq9"P?QRC x-:RѢARq^0G8?9:>|ND{c[e. ]eU4Tj?>|)E 4qRs.6ώ?ٔ8|<1 ĕw9e.sٚDDw .A )˫^#tp~?٤8xR7vˆRcەϫD^{;oEJ)F)b4*"hP:~`qDM:)`sN&:*ezjS T R"t$B !׷vaw;?4ER7 iB3$t\~i'%plf4, _i9R.OE:r]Z*dPw1T$)u PAJA7Ds=f碋ۣv AJETwzj+ˈɦצIvVΧ6#8tڱsu\ˢ?z2'A껯pD ȍO^wi4hTj{P1 \::>|OPk:nURJˁӒAsH4v]rs y[VVbQ(HAyE[_v=X'tp ~|t|馟9-|kL"_3h8Rs#\l"EVP7ۣĝ;1E蠸F,)vfBZ?;:>dNT[${W .(`Pֆi`h0py~/(oU٠>(WGLJ?ږ8`+M#p94zzSz%rn8F"rJNŏz%>ѢA(RAlAJڦ8dbKdϳIbV5ET_]wAH0 .J",l"R* hjtNhng"X0JEAyDC%`]?>:>d[O^[$l1*b-ϱ<c9To<rPF'PzG?x'h R+tA @²n B@?ns Bc${+rK@r]_t;HʼnFy9}Ҫch}~n*:oI'&. lr.{(,B tN*GY 52-?<\~=w{)-BCSCa%~vt|]x"^RpFivԍs?-B )y*b?;1JzF>AؙA[l6e/Z[kZ.oo ;qKFNg, =;68B0L\d`|c 8^ ~aQğ#7ފsu{?(-Zß!t x;mRp³I:XMu~URZlz~n0*t RTi;d'ltj>lH>`e /n-n y 8۷GgOC:h s3v6l!pIy6 pr>ch)-i(Ni.Bik+ߏwb4:4Ce ",tih`7t B-\35>c?y_Zlrg(oBj*{68BuWz3uSb̹PtJhX?cz0[ F(hP "Al D妳I+,θP6(9'p9$`?ާA97 pJE<@Q#"3@To/Be`6bݠ0HLXBm OI {G:5Jjfps"/Eؤ(Okj9b:VhTv;(2P 6,t>S#68`$p]uu֠SfRZ hb8tPAݠ !(1zWqD:Q[Ik&pSFanw8kh"t0Je Տb(7S7?6/#⣣y@|WUnЩ_S@ (C)ȑcv0E:`aF RAOW9 >8` kE n~9//vj)R< RbǪAZ]_ AP@Dݯ$G^6p?y<5{{w{wMg'12ݹu+^}nT[~v'I<OFQQVT岶*Asyp/.X>(W A+9BDD,"~rt|XQkGWn$~cc~,~'&ܹu+=|U6dǓ(ux\^7Y?b>u`^ yC1m' "h8)x"lpi×_PuM~HiqiT.i-.JRLg{­8.8;*.:[\bT\v8qs,Չ6ss? G7NM\|I'I`GGLJ84.͓'1M5yD' 8U ,Hg,Ja@qZ|>Po"4(~AA,SU[bA勈OM{Ea:j t6)/,%"y T[:"<|+p+F)FQ#|pJwh"mCgz \7Lc0 -#9"{N 5:TT)wqKAq -XhnP"x |""~xt|/M8`덧S&SsUKCe59/ƭ@<ٿfcT ߣnuPtsA繕KeWOM8$,dlnȓg'&JJUǂvE7QB3tP梨?Ud2׾}7v`|: zA=}] dMMX w6M@RH!,'P#S\Br_oꢛAJFnAj(:DA!z!|{}t|gfI zz&MgO&V8]{Mͭ%v40x@x>w>| FuȠ PBTcA+>"">::>z^ɮεI zv26 ^hVBιˍ T 0@a>)ߎ7߾vQ)AA.^sq=P}4.r@hs}Mʍ~Jieǃп H1O>|ui4*)FA4R9(ϭ:zz]  p#cz 칓$le|ջHŲƨ(?Be~oYclqʢ=Xt;( Fn+e" 4: >8e8"hӣ/M8`'^ԕ7*]u5(~1*m]f+Ϲ^Pl-X}Uņ$W? FHh4Z RB4xPuC(u<єʰ3N""~xt|M8B;yLo|e,/@A.,,~.RȽ2x b[~#p:dFQu9hw76(OPA}*Xt=sNyu?ED/?57O+tY?.ZPv0(C4{B\43V~Qǿ_uOHb2oOou?(nAB]"Ffgl/y{GLJ!pN\Q *e^ 7~jq!E Zء./:tNkQ(Y?v}Ex aKh|t?ht8Qj7v4P|n&B p!K/zTF Dn51hAAZqFŢ T)U!h3"|#^?V39Tu?HeF`PFh. Pgymu=%͠O4%I0L7ΉTSW/p\2hP9Zدl#5: fh͹hO_}T:"h0<˃EQ,|W>`l`o @TOU7iǃ_{!QhTu/hv@*XB3xmn\T l A-%pH \gE/;,4:pA+P`g:眪,Giś] R6Xt@h,/:2PtK:&D+|T% @Aj 니ql-v|Mΰi:<.K>Nu,-eРUl_Fď;:>D`{ 6ORWYO^ʐA4UVǃr\'كyKE AI7J|oދPw4X<f VZ]EZ> ~|[3]Gt;I9"~xt|'c {c:}[ٱEe'F2<>YDʋ۩rA-EBrho~P{XA;xe` xA+XA B!bF ۈx𯎎?5%C$4ts>/c\ Ce b}3xP2ȃ#G;EL0,+o5HK6I0C47?x9>7Ż;*X7*T/i Tw6(ϩ(s30BWx'GLJ#p]Ä́A`m9^n͎Q-h::'TN>ٮ;6`,otA( s,^{n_|;w_~!FQKӲ $L\Ap\wڠu\.exLPVU!\<'%뇗w@Yf$7Nˋ ĢA RA#`@A#hP vAtCQw3gd?~:u2h>Z_e 7ot?X;.C&q@LӸJx;o;uQA'x0*Ȱ*x"hR#x^4aɫ|nIPS̾fB!p. ۵`.!Tr7k rNqP-AUR4tvwo.sL<^{y7>ӷG/GJE*, !z]cA>hmx8VTR *#apN_DF;:>e {cI(H ɧ8=zFrB/߉Qf F;:! ^ M鴗?I, 3Bޙ"-[@..Z_ӪԷܮ茐[Z1F 6LCݎ?Rlcv0oގ?w?x#n9C"@8 R#Mv'VoE&R\H dZ$`63g\(h AkȭeA4ַN1BN ""6 ˧Yox;?yX DH@ɠ! ^^?v`Ij3]EDLjx_Ȁur GwJLU۩EsTRF88H15(nnQ݋ojq.5խ.#l4 ;уW;M\O'OMĞxx]4v1^j5k֒j4 έ[1}6/__ߍ z2QF;ڧxι5;wS 5"">GħGLJ_3)ppoX 5O~y 8/yqDuH_i<~ͪ͌@|v``KӟOwe֣qW1x?>_/:0:)Jhr!bU3 6;N.b"p?Wdl"=j,vӈ|@{AT{QrukwRzߜ8'p wGwƠX|D5H)߉VUNz0p40HZv"}.u e~J;4ձswA +G֭xILq?;'_T-r08 ts¶2Xyq4">׹Qzߐ8'p8 r֭kL\OWOv/4 t;XU!S(]Utz}W, ypȈqk4 v<~$y|19Ɨ~F`ɳ_FėQ >+vt|ձ] dvy 8ݓ'믾6[ۏ0 pM߉V}bu׃tAZyhu>Vyٙwt8ȃE nENϾG.˗zZuluN察.,~Ѹe,Bu ?(vu+paݥ0|*}c̔O˻D,XPwj%I$<4^;(EQV _IX8([ʍ3J)?O/F`Smk7%.%^[KUsonk/=Nܦ;cs󒓎f!/k48j5̳Ki|bs7< qrr':Z>iSouhI=BF)r98`g<OLb֙f&6D}e tJ{ͮhuQv@茖>F]v 6r qaU`غ8#s[G6O`AI׃UfX`(Vwf ~Kf/VG,Y|Pw@N  wӒSOu 4J-zgLGD>ip}8+o#)`;\V bUޠU`xr2%y ;ܿ-۶}1Ho޶yt lfܥ8`k>oUOFc*pʳ\}hvwX!pK`5rۦYh.A`ޠY G9n4_spwU˛'nO 1NMh7e(`A^5 A^qKQߢ<✗Z-+Iu0#29k?A rf&vT%"VN "UBg'y*C  #t7K!puf$8bxnda0*ଟ#byaBι# r[Z~h4'pfIr /qz@…nˏ=/A~{`:zBg "\1 ^3]*,N8mUnO&aRl|<I`J78;vdb4ѩf;΅:vwe]17p4: =;.3&UH`ǍpE : D.H#pNy>K p[b6찓d:=ΛϳI38vx:5 y>Z0]`8/G`&;l<3Lp-G`GMg3өI&a$B8zvl>7 ;h2ZSfIt]4$B2be8zvt63 ^[s8Q$xmM8zvT$xmM`GS87G8zvt63 ^_ 8A$x}.D8z4NM9 젹6(#p=;h>& 8A$x.$Z\?ipbyH)h"i?FqpbtkQ*n)n-,G=x9"ru\k9.?q d21{ۏ0 {xW`Rup`2`<~4?yj"īƫ&f^|wg|':f]SI|왉"+/ǽ_0'qmߍ>""B"p~L=V8LL–y>yNtNEs4o߉Hx3÷p~_l`p9nmN58^+zM9b$l)߉FxBmp3`Mgַ([u>wK5Fs5햳pVz6Ѵnp\`7^6&t}:;Dh0tvO\HF{>~zR>m#86Z`R}Iv\kR;>m^%reݠKOtvWډռ`m:nD"pl|nvn}(K5LŽЭs2` `c++z{86+@y-{>vUdqnl>7 N86Iv\w2n;ѝ!p  0ugLgs`#"n9x=4i6|p`WiJ^;`,Fp鞏]=`h`i:l>q`i:j^5EX] pEX] ply\fs]_<\\pXf:",.86?",.86tu.r5/Xgl"jd21 86ĕvt63 [B8J^j:jl"ǂ$v86?tjfIa`S 8M8өI\<p6\]_m'pl|m${CW` _vt67 B,l*B,+g-/o586?k<@ n L(fI|M/o:( M&ppC3A\pE&өIQeiy&ZFݧE<fsߗnl2"B%686?쇜It67 86?tj y>6#pWd2`k ]k y&ZG=z^kȾ` @d@\y&JƘf&aOd\x25 V86t67 {b<5M'pp\M'pplh@#pl|fV>9LL1MžO&` ܀u` @t@#pϳIөI#7G|l+`#Ӟ |<1 l4G8zG86B$왹$[I$k>a:`+ =@#p܀$G8zG8zG8zG8zG8zG8zG8zG8zG8zG8zG8zG8zG8zG8zG8zG8zG8zG8zeOru/MIWɁrLX5ךj`݁@LC{'ײ{ɒ%R%y\U]̌=C|Y\v;v,fq>x_|8^W+;{|Îqyw޶#F|6>#[oNUqv1rigܰ/fᵟ>1a=w $ppt^ b}B_/敟8qLq8."<Um.W."pp\| ~8-Nl<6eUE|sa[v1GOLWÞ;υ;;2[,㧟L ^gpwb>g/_Lvv1q*:#=ueeG۾_L ;=uܡr*`RuϪu9;չpVu9`g/_ @U\rT0I糹9.fvܲg.q .f &AIrՙp…X &g6Ž8 "fdXz`\)8`r^np*#5&Gwt6mq@ߗ 0)2fqM[~eG `W:lںsp K;8`Rs;]xƝ\WKɨrܬreeGW!q1sQO7EXsqCO>r>w^U9lB,q6Ӗz .| 7A' JIX,XVv(ޫ*˥iXD1:0VL\;j cpNq8`f G|}8XT9L8`.|6*NפÁ nP׳X.َE#Fo6!\.3 \ zCIP8`>XAt`l*X,+;bop=x0jgLpy|FMq>UwpW5Ό•t7FMq\ݲZ c~`D56:nk0&eƯ9ln's4>\}-+EG: 0Z5 > -K;a`L-LH`糹0΋0VUe;a|@ y)X,u~`B))Oi{ FI)ǹ\8`)@*ESq>q8`\Td FIiYV񘹨#!p(i7=-NK8/:-.N.OlOQה,-O c pܻeR)N@9n05:nt \ 8.0:sL}8csa`WŸ&WhgΟMM8`tʇ0MYVK;8*s_{ p,* =HwE/ln'Ge6_ 886.r#R\9('L˲:C`RHM@82NJ I)" ԹWzz*896iIfu8pdgs;*_o.)rj6* p05*KKv(0s(p_ƪߌ@f$p0%[B)K'p5, =xSPl(pF"U _:3d9`d* Qq^OciM$B4vRLGHB4J^qYVܛ~?_9n>"R<Naw˿N\oO;! Rg;5}.k'b>#ȿ߱`|^#`"~w oq#:݆zxw޶#F|6>#[oȲc6_ةp\ܒ9ą>X?o{ߵ7`]ҽ,pR)$I<84hnz~`H}Gh_l΢ of/8YǕ9rWQr+NRwy; #!p0 &Uūx~vf:qpns̳Y|o>|hg7'`Z^7py[ۿ%;_4 T9GOl+u?tNa:,p[-cUƼQ .-M-J3WJ˥DĪ֌'lpWO#Ή^e=yÑC% Bھ|65WO}i D>yBq}]'_*d_q%Usߟp{89'3 ukKu o̜W3 lK ý<,79>{.lpfv\gɧ?wE/b|r_x }s;W9,~t lxa\%p0eGj*0sB^0琜]̼ :u78q0J\T93Ťl8 H)]b2\<jOATؘ5{\.'ƕ'[,qv1# y3sv1sALhsV E7ip6Rj~6o}u W9@6Nr /W `djXlp^܎0 ppT-A'Ro? +,yϗR[T9;C4[,| !8^Յ+{{0E8+:<4$<^o޺,A;iwڐ{# HSHz؄(Tp\Fdf?GDJõĔ]VRV]~gL),`E7q"!o6F@x UW_wTln'ŲbaG`?qb_ypNt ^ rp\Fb{X*57S*nX͕ F ^Zm̷Յ:`?.|18U>X.]c W[η Ҏhܑtp<TJݮ[=&,W}(]:O)Hb!Dp\gs FB9ѱp>E(b y8&+: )zM7~Ap+F +Q;;0>PX`ۄ zQ/awctB pǹu0 :c+nϹ1ǣYmC~B.B9CO-t/b\9pm\|Pplp8Yfp$*m: 6̑x^n.ElϘ8 pW=8Wg 82  Rﱔv ֚-Hr5y6E A >c*A:+nGHs!NX!Y\$ r# 9k_6Gb^Bopu1r5/>d]Hj;6Z>cL# ppP?爷sכ~:.@lf'DDTc8>\xKjc(qq^l8dc{7np|7])ȁQ`\jwp(c_9' pLncH)sL!(t{lFrl圚ccFCѺp&(G`|{/'$qڸ-]A[q#8>?:-] sPucQ5!`lΊ^]ع&S'p'l&'Ӂ•vGt psA9' u*x0FꀆfO*ٌ&8 .=`5sLD\ X;Q7v PƯ9plkr^8(V?D:V.9Gʫﯱg,W~V @8 OmO 't|4(&ppL.4Y`+Wa}wP΋L"pN)8`SڣGAyeD,;mOXx:7r.{ 8(RD2^:-Ko9ÇkS?:l&(^t|8TΉ # p@8bWI\Mb:6L&_'^VK)S0E."b ڜcm:=8T9+p{pqZ.O)S>. 0y)vIWIvi}p! /{O&KO`8tpMS檍Ӳmf3 .T pR6-s'^&x& IqS%ppDƒ} TxpmZL5N=uE: 0EӧG88A(^l>0pqN`?7Bp>se8V5=NLbGa{($9':=.T 0i ݼDӣ 0M 0EӧG8(8 KqЕh;0LH`R! @+%Oj^K`ZOlLGId'bR4US$P6M`t`LI 㲬\05p3kQpHW woʉX8>i$Sj^~otﭰ>(JD`dRHzs9Gǖ8 LJk~oN1`;0.K7 RD*Fs!-p|̙{Jj^ӥ [",( enAqH}6N#9 8 JWi_iVo6ܮ}7%J $9B>]Ommt9HjzEC#j[A7iSwCWЉ 0): c2,x0A^2><#[#R䑦7fR UMt9' }[+ z_9G}޽{ F)wj{pQNRi3 ]sWӝmJ"T'87u:pN ksm,0lz T9gq #p0`s@OH7 P8m:Lln>q7m[K{]{l_ gWݶRA]ZV<ك)g"]ao.B G0';jIHi(ohs:΍ONdYұX,umA v״_vm|iyCELNiĦ!-/;Nc)"fe_|@M \06 LI1oh-o\C-ڐLhHP9WvLp p8"b2HLdw7k#//\vXopэPX{mۺBvwZ֓E~UDYXp1pn u( DvmMY \ imWrB% e'}Ez 9)=(>}7GIGݻ9j7{I>|8Io 9"TqGXw2ҤXwf퓓퓓$N=xI#d|;o#+k02y|q$zc&kL0-Ή/;񥷿hGUΉڐAĺ zm폦m=6xz[ce^Y,{YDDo/?}#/tY?;m=xZ~߫o>]½*l <|c,8yiS4s/~󍭃\rj*lDz{c@>>ۿx o<"Nowx#ߵ#FJ~7+`?oG1U΋~;o6os _9d0X+dPԺ4rJpi;zVnf` P?aw9YyŢWO/l1{WX̖ƅs-65z`"0M~FIi,8Imׂ6pPw=xA'L?99w/=<U.*PrI^Aq"8O8Qw>fM~7;o0~7ގ80^cwleDˮ \p;}[Ƞ{bs֤>/ 'ceD MlJPϐWv9Y-E|yzMw2#"hMujxrz;!͇kC`w&'pp|mL_1]΋􎻝g99 `Aگ EqEf;X&k_U Bh/[z/x"pAD[vyuV..QԼu鼘-䰪*|݈7E~^'pP|U.8yx7:qN)5QAٷ``AeOv/>;O.gCA   v6wD8ȝ=}+'v8 l5]A9JT7n} ?PXVv㌀0p "5+6(JT|<=r"\ri=_2W53-;yGqQ'^w(X Ftj6Ev;&'7Nw>ҹ CnaT>y``vJs`m4X/  :!5eSSS7dP>IHA~mi˶_)"2P_[籁A5bZز nO\W""?=:}>ϏN`n HSonkLcK;, =.{+X_M?4t HaA!nׂT$B ؔ L۶3bn, ,g>oᅫ_I<,jeӕ`"yN;_Vf4A(j.m<,GğEēG 0DW54"-+{$ŲZ oj{i:Agm F@xQUnkan#dzg$*~?g9GU EgNcA9rՄr^Xӕ"lke0!JmOoDğ*|:1h5M_eQI8dŲ\Q4] KB Rbzz/\:;P71ݦB}r?Ox뗱\4+{@[n?&hЩaCrzq6hMew6<8nSsA# 'gg,*7G91_,V *l D 7!A&(tw#}ʰ¶`C5jWxY?%~g~EUbݥy8X-hP4@6PPu^n,74>XΛjl.mРQ*.M A6^uB=)>|%"}D>:}mU卡M~e fx] = c3 V~7T_6G2i(@%4ŋ/B6P vZcA4Ƚ:tw ֓:W/a u [}#"zǺL݁SJG#A|] .-Jł Aٕ`5IJ:42(zN7?zET@ ӛAUv5x7Atne>7zr/u=h06X<%>1  , cX [NWe;tR 14h!uh z IE )K "rl2_>Oa|˗WE`ՠoW9wUA#:n: +^ zA;hjJD4`j2X/Y|w#] :O+A*;4s^Рy> >冶Rt"em\Wӿ$~OO;*nHen &*~Pv3hCU?dzz'd!n׆ l LtonQJ ܄j.`PVI20 :ံgAlt3XR@63S : WaOœSAUAUt$(~,"xmyK&(7CxݐAt;4O͠<11^od|&Yܕ˺D\i] nNx3gBpAl~k#l墊?=F0`uQ}t,U] t:.tAAyED ep+FH`[]z*Kp˥#1_,h̜Ut5x5686oӊNQn}uTuwy|10hCU hTUeP*!ȝpPȠ)Bk~ k D<ޣߴ;!{cǶ(L̓e:iX,+;Frv8"Umj{VښR],2 ":%`w_G _K^?R^g8>X,,߫~UM ԝr;fgue~!̀P`첐U.+hpo>:}u0 a֍k<><4*?a^oʣ3u4~n"/(t5HeicPlk/1mjn_[rO<,~?>,:BU :Tv٩h:4!^7 2u [|!rܻoD<:}G߳;a íռuAh5] VOROAJqAS7r` xAS׏,~ů~$f竎U;*LPE4h[:t:tB;dP@[_w#O>~oO<|j$A4Ew`h%).PA:dlIJipEoWu5:?_Ưi?Ou WպA@@ BCAUv;Aۜ D{AO9k) LW"<:}G߳;w5xFSl~'  VT$ VAWz9K*:1 ֯2i~gc9V]@Մ0@ #4] m b aK7~h`(dP%B0hw>q2#* Є {W}m_ U!mlw};gb /$~٢ӡӝj `*hmjww32K\ lWX̗mǂ*GT\ \ pFР ԁ~`A]e m _&`kZDnOG͍d[3z).C)"Rhb͕eSZgdu{⃟|?|[A 7a* pBA=O4ȿlfо?W lG %MC`*#h65׈fT70H޵& ה4eQu5EET?278X auT.sw.q|02 :e70t{#hPn׽=ht3^7-ZD|?+nXM8-VhAqXin@)ocju[۟#ׯn w/'1;[tM炍nm WM4(;!ynŀ{nDɣ쎛#pp((;f0[L+:v,ݍziFp"l0T9Vm] %KR k^ 껑SD{W_<ɯ^l CExn蠹_EN V] &f0 8$nߴ+nSzkˀ `p/qnm ʲuk. T.)xuH6伺?Ӹ8[D̫Lݯut04^Р 4A{UȀ/N]xFr2@pmw6ȷ+ 6Mg9b~ϣ{An9o̓B9-_1hPZh-\4ޫBxtNgW\{Vji-Ku=6,^<qan^W\F5h_In`]9"~*~f7*GAt klf{Gf}#"tvܥ<~Ϯ؟] x`g[gvLϹf}1|E:lP¦c~gq|UΑ oG0AX誐sȠZmM蠜i;"`ǟ~n]~""A4H A:tp`88ypo㋿yy  u˭A]{zE)a0]~0%p<u֞gv_8I68/ okW~1Dt.E?|չ nؠu+h2ȹsv=DAt+nLpE??ca؉]0yJmv64C;\g,}ǘ)IƯWwE|} {lqC 6hW}*lPU9eU:d._ (D**ΫzbFã߱ `Je_ۛލ^:`^??o[778b`>y<#l:ݽ E_ajWsnPt5X^oM!%`y#l h7>ޣ]=?;܎ԝ v :}ݱʺKtm8{> ,@اA^pm 4ޣ_+VyD>.q_e@<g}82~"*b޻Ϟ?;saeNMS7._.=a(Ey_ rAW_(B] Am StpލUo fH7fԮ3GH i<< u>ܕbYWgvp--sʢ:ӘϪnׂeUujѠ 4ՠY֮WnM: owR1hOŀizP>:l5/ݖ6Wa_Әϫ^g\b.heР nWv5nAFğ{@ޥHz9F"ր6{9^_ٻ=lH4H)"$庵@y꟟֡ljoZw5"zv5F.u@ǶשC Jn!r5C}_^ 8A oȪ<2M~`us9?~e$6;⫊Nv\^цm`zA<4Nu ,K |nM o]Ji) !\H?ǿi<*T"W  vZUt1(QF?r6YxN8`/Ͻ?͹7VfeTJuA^i.fG>g].ʩ])zt [,ۿE<vv+PAQ-u``0AXQ ] 6(M@b,CN>G 5nժ{A\5y{nbQU  : MA< f ] *hr)x ȼc ]p\9V)6r]Ô/-~ُ>] Kuxu3W  Awcཀྵ 778* HCEAZ/pw&`hS4Xe']W_}6`PU9@@ؠw;zv bpC\J:7#ppv fWy1T]TҤJEo: 3.yt.Caj[ v*86_LtS#QY.*?`Rlȧ^AmwR% z-Y>Zu2(0B.Y -'lz58Rw"@6b5 ;at9-Qi_`=o:(WsW[\/c>[F:AmaNjr}m׃vknH 88+\F!vuV R:ц Ŵ._%s*~"l a6>X7^b&pSޫ=c};E]_ 8Z,:h\s,K;pO8 ˏhҹ"AٰޓW-s5x˨Uv5hU/x+l~s* Xۆ LɃd'pm0P˽0@n7 AɠADɂ2Ъ/] "eAՄ i5եxZDmĽv68>iJM!ť"/⟾붛A r6lL_=V Z @a`OxtOǴV է|6ȥ40m','*C)&mnP/4E~ 4] \,®ApEoec. է`.8͒:wO)E^2(oen=?%e2Xw2 䍰A~6WyCǰri'LDXD>6 A*n`Ga΋齠G䓗Q-UT B3*tޡo0hP>%ee'*;&tks6ȫmk/5[,RO?z?ɓuؠdPr3=z]ab a|-"7R4[, 8FWoAJ{M7h?^ R,uj_Erȃma\v n<:}C@`,:V*{\?!n %a4)bvhU.;UDqmC-a NP7N\Vv„,pT6:wz)B9G*9,Aj66?Wev7;6 YSFwuA:L|n'1ɽR|aVYk|mwzM)AQo0³?٠WAD@6hV^n+|?= 86LSSq8 i ndBU˂ڧ}Ьm ]ւ!G,AdP5W0r(66l[*N6JPU>A\@7|C˽4VcA^!V ROoi f9GU..A4z\6|Nw??:}!mvN0y)V ]^_u.H]RuɄ,>yA:9"Wu6ڻC `b& 9LZJѭO7$xvWA}+R1}uyzu`ku8?[ďG`A8A e6 >֡la pӖ{n7?B9GD`C Ouf^РtPUmGA.W)l<:}C`ò`'0UiAbRlP?s H/_4~j29&P "9GUk;4 x7"s"pl`.s;jUX Ǜm7&tPd"GY~㶫AfPי7:+b'^*=ƣ߾8:f0" -T̳0*dj i6zaU);rs RJ uaAA 5!=6_jYw4y rܾ\|`z7"s p0bij:FN90CR\oH. St7ȝ ;׾XTOuTj(CAEVR]:|,F>}\*=|そT.6i%01e ns^OZwȫu49RJ@B )?2A&A384vdÀG߻ kŘ8VN0|,MXr4a6$g_ɪSAݱ*伞V:!y;UW"c|0pA}<Y,+;a@ LuϽN\RF Rw[/QT 享Aq݆  .l̿twRX }'&PZ QJ6hEw|_W?#W9EgA'6нUMC ӻ^ R+ f0a%0u7H;7]z u6#6:fw3,UWV_UA]m`brvpI߰?؛@ t7;ZF` XrF+Đ}ٲ:xPWQO+#*wF.*\?}tZt /֗KK5ԉ :Li=kx.گ}Jj<~V r!A-uȠyWa`ލ? LFd9ENv.*G|z ˥#: ^cWvmjK" *G ׏AU܆9Lxtw"A50XVv-v7\VW]RJQ^ݖ~Z`Ձ`{ҳ^œO^ z Ae}iӻXV]ve5M!*emÿlP v4~ 6獕.+0A7o{%cc{r?H-+`-]4 +Li&PnP;?x<"UՆ B?aۭnG^Hm%[,K;F&EӖRDpAH)E/GZ5Q?\UN nvn 8*xt۷QE̡q:Ct OS~Jm\<@J.07O_>yѠC7|P~!bֻM?ͅ X2\1np#- ;ꕦu7eَTOUȠZlVU Vk_.ֱ()8|6h{d4&.1[,|+nP>@D&|Ε:&nvTgqbѠbPw99GvN!rolnpD,pp`Rtǽve~ew93GlEDtY0:X A uΎl #vk]FvI,A(SAt4H?|fu 嬻hmnE(a#vpnzc:Xf=&aY-2`pUs_ "c .ȶAnU.:+4o"݈^JWU|6IJn_6A'PrwW>M.P`ҍu1IesfUkz{u#KDݠކn ֐W6M.L-m%Pv7ض:4~*dAn.zh'rsX.Q7NCi)p Mi.R3GSoZj;g'/*BU _[M-H`.3^k| rY\nۢV9UP ׿xv7AޣA Gu 8UbX빘=!Hqκux`A׺?U~6_Y*^Vt 88TvA4ݠ،&yW'Oza:P*^[}㯿B&d3 F bIP{)!ѦiW>,U/F9AUս r:4+.@`.0- B<A4aب(:[-籘-;j{ڥnp^g>#1[,8t7XΓLL[v7(֝$B~R?l( V!A`ݮ@wGd#;pӪos])R]߬ݠ؆u wkB*\Є u/_wy,xMPֳZ: RZZ2hBM lEw&YW7 t7_yt}"2@N<7Auj u !+*>պAՄz㺡 nʷD_)خUyr[ub<9")Aa)Uv[c>[FN *w;7t7axtyH+\>] &Q42@p~Eu W]qu7O7䏮$7]%oKMQS A)6t`h.wT"'/Qsق9[y;z R KS#a ~whueVMڠq,/XV@X O+NO8r]'wU RDN[Ο6"A.Y/~Y pAr۬ }O8dIuQAD wkfnw]E] rpAkmؚRu7!{Wy[9$nUNnBy} mlO̹(gNŴ/UPBշ7jn2X2.K;VuEbTw/(CnYҪ+BH3_DAݭ_TC,p0GWhAIUp`4hl(l8xEE#rlMgSE>X &};!B):d3?Ey`&~gE^\/7xR[(ppGVuE=Hq;Dˬkr=zuܢsȑRZH}nj2 e w)[w[}g8!B:}]3D3 ` O+K&Ht-hrrs?  jC m^n0ȱ0?"+̒w[ogZ Z'6!2Aڣm{~?~7"a?= 盤n*o'')RJNVONR`}xzU<{ʎ9㣧(sE7E<uŢ3ߪ_fv HGSZ Aj8)oS/p^*izzZDTuЪ2(GuCUE{Dr,2GUյFպ~^0_w^Csn `̪'ϟa ݲf@%e7U^Ez:o#GNPgis=vbOL8B*xE7W/f`|t8i8/ 0o0>zlA45EXA]v/HqR?IݠPߏvN<MmP@S;Y|,*GHs5uuѢAO#9HEC_JEN_<ݭ6:X g+84_ytCɳX,+;]0O^6U%M`=oNXv6SX:sZX='i:4_̣W E2`Ų˴kRp>4Q`_7lO?nGlDC7s؄ bݽ ]@~ヶBDDmil+Ձ:sdp(94Q`RO?6ggx̎Fi08O}Zw)He [L]=1بqN`R@7Jt,(SjA^f..|V/s c*rpHޟ p0''{F9z`\np/i] "zz%EƖin ż YoPl(XngjNչu1r`}n̓ɃfG,Bm~Й*8{1mWA{nJ"H'TO,]/"ENߋ[!8T9sC" N7y3&9~(&lv6ih|Y t3y0d('5T0ozyvUg=:;Q-;vhJHEPjzzUhp3 v"ȹ !\>epx,2S*5b1yxwp>fy_`2!y`qqgg~F.x&0hn^MK)X:/PrXܘ"En#kAt7ېBA}J 6p^8<|Z.l;8"Shn?EDE杜Wa:vJhg"Ԑ;vz*T_-@3H_.tt+EcXV1[,iisA񭻀e X{R Ju@ |zmmP/I)Ŷg@}#p0ѣƎe*ZV;ш<)4%pՊ<<yZŲ}:Hf`^8b~StuKH'4>E= k9o*K\H[@)iԼuַs|!Ly} By#pp^u []3mRtixux}l*f(_Z߯Ix<b6[eM )fs$"kCkv}ـ4x,1GlyXwXw"HEMM&ߩ 4 RΝ6ajyʋr1rQܽj.jpknp0i 3uniie;!-Q9%Х-ф:XPrs꿎5 AճzhH1""8qs@:=v<5!;L8JlP(hnvWWM'@Cjg%EHBf(eRskWT0qXSΖCv:8#bstV^winPQߟ3=`crR ֭nB^j0.(]~M~(ܙf:z:MiYEAtoK5~NeMs~__I4cdh`rru2nu_g\wkAQ elrGڼˇRqTgێK_A L8d)5DF{RmAlyp'-fb<|bu9oY"pp5 rfsDi-;7:u'z=9;)NJJi{ǁh.<{t 7GJ^^A4\iP:ذh.\,ukb1j*pԾty,4cUǂNqS!rŲ9! 0^9u&r `iq1ќ:֗4]eVH,'w/ }5b8}pm7y#Qn6# B}^H(Nط&]tSQ?eDAӱ|j)zk0ԒaטHʉ]pE8|gN@Fi3vˤ߁܏J{U'  ˹@iOݢj6+!&0B;<  ȝ׹ta[,~&9P8lgX3]mҎ]IAԻriJW]wLLRpދ8<8?5 7ORDjq6rNwcX,+?:4rn~ڨ Ќ][A2R!ZAō2<Η:OȗXKR>KvpAڷݹM|!pLŪfD'58yӺwR\U2Y'88T;oSdy=Oys$SliwĺMG2f\Y(+IEMPUϮJ:yp̈́|.YC* j^e("?I{ʯ8qC9τ(J='FĦ!A*O Q_th1&rubNFM^Uy=z(ۨbw(" C1w=8NԲҽ⢩I[rګnNzM"55oU`Xbh]s^'\j?u?zhhR'Ԑʈ *A(+Q5h 5,MNP}Ы}Xw2I[6"+=tZ92/Cu`ȻbY k aX0/p0zg?^*-/6n\.m=OmC.^ޡLɟ~ncKz7r >Kct߽Sgci{oĦL m-mXWܤH.+rrYA_NS3I[ pАm鹗"^͐7Y8IW7OI s{5wm,]岟yu/֘n tܳ`{#e#l;b=pHkOM˥tHJumM Tw69@NpfEµR"MlQ7 =A>'/Սl['z+YmbY8`\Iy`nv5ޒrq/s2򺶩:y88m'CJ@ףs,˽6 ! dW<U䈦~gB{3/yyr=2 {w;u5;6?K-%]`Y-<r@ L>79GڳP S@! b8>b8雷/qARɱ#0Ъ`Ʀ6\IJXV~8xͫZf5/n 88Czp_>RoؾH 5ezZ!H4D\Fqḃt1 K;Ye;,KԽN+ɤ0Pg-xvO^ndxmI,Qo:MuRmIjaT9W/>_כ;_d3WߦY3!o&X薢U&< u"UJ|,V ؋*,jW/s)ıc*ԲYU?/( lZlu)j [&/^F*$xLDжuZXZ^/b,h߶>k= gRZ*pM2!V39<@a{ }"O&+H  $j` slGX}Z|O}%CIIG xB`|:n`!X3*ak Q=p͔N@] A&Gh5x>ރޝoűm:˴R?5!p }N`V&T!8@'Um{C?b0>#& }黱|q 3 GZ=EBz&>5K݇twWofݱw m=V pƅKy/y#{!+\ x?7Umo`<\ 'NnKH]H/m)O:+|F"%p!6c1#{rȚF~6Ro^%/nI- y^<٧ۗ@"%p؃R6؏:H:W @;;ԶXhr"F[<1N5Dn8>ffT~ry{͜^[ګ{N#8HKS/i]פj_mF.̘hG]8QA5ڄb}NFixBU|eX>3 ;6käw6R-F=z k>)6nPo->OV)1 &VgZhFjqoS$O/s)]V oS|zz򚝊E-ƮRq'Sӆcnc[p6&$0=pw ӳ\ "1)&zk b@(63Ӻņ/z;6ڶQkuڀ!Tf67K`B4,vk7i {/R&ؘN+K+ӱETV=6QK8&e6k^TcPiQsiR&&:ɅF5[|fmjwU4NBЭEj\VZnzl CsS?dաm 8DEvdOh6vh v ݴ:]:[3PAu~& h*oy_1k d}Ib$ z. >DCǹh:2<~`TbR3̤_ŘA RZ;ib:S6Fmzk̿u|Rpl|^H$VOo iD5Ն6Y6,btoU^9UYu DC&vTl'u ɯh:o^YӂK/7]@č!3M:a/ t& )yXLF5Fڵ;fg掮~5Rٽ?TK&=*R蜞!p/ZQ?M3-eHJ(cgUֵJ|l:-~,76xE'On{@`/4'-h.}[ RM7hβRNOsu zv?9&6:Tm:Mw(mNٱ}':yqAS~ԟӓy=r :!{o Xo3OHuF:/ur &൉ޙ!ՇscGu-ui)8(`?]דˬz6ftrW{LNOHUEw/Fګ2^uB]?PzǙ黱Ցr`uGb&rsLNGeZ>gmOY8Nǰݬc03!M5ՍKR1MQcRY9pgH;/aΨցG}N)YD5-ۏl7 8<pl}o'{? *\ 1|LZxL1%m "h{xo טtV!ɴ9=3tav%El0Zh_kTf h~g$˂IHgQM?~g'Fp/aځoObs[Cل-NR3mzfpίn~I+Zm6r~}#\W4lfC\4ziϹwr6Jkl7ҙë떳m̟:{s|XJ إ r`ˠ513Yl+b.\6q>HnrJ+ks/ruwxF!ȏrsbhRSN~$qfx/N9H=iAxST4=cf(Cp e2AYvf}_Ay8*|>eM>c͇XėYO5ze[źRt~^9KYYi|tE-1AGu:dTĴdժ'b2lHjNlU!#p/\YzSX|Vϛ .ylq Z3Jȴ9`7TAJV  S "1`#'T"bVP07)8xz??TB+{؃'- 3+V#.?I0Z7 wZwxΎP7@uCu~jpCzaeǣvCg'\xygu )1,MBWTTd]XNI(!'2AgQ^)OW\=\^r!`U16Pyeԅ۵$;3bzhB!8oӝ'{ia6H|X1|0Vs* ΅K7m(P_ίYM]jB+]668} 5+'R?OYi4SkY-L:sfAM}V-j6WBp!gqT |9⤃`^bdVSA$z,6is/LAEf#7K.Ğ:"R-r6OĐI߫cXUӬZi>56ySs}@URsD ǥ K/aڈ? H|[}hþ$, iAUꊨJ)/\~B7_ӣ)Ws,}7!~cp⦻z|Z}wV,4˛[.쑹{~stdhlɛTwjwsdFU_fڧdVښ 8Lg'}umv fR Xٿ\_ج0PoKW̄ !f'QZprC[lkMڭ(^;GE>xD׃T,ٶ6pp%2f'錀a=̅2'^6V |LUOvJ-j`?lAn\qsE}LJ߾Z}N@(M;WSC:R&n(44dv~qI`j惶Y .5b / ba6`33L4|H[ XJW &}C~^aBP:MFkoZwtL58ۡܽ^WM,2IVH}F? ?Xp=`=U HYh?!yߚ:1.% ]Eڛf`Ên"nn5}5nR "C)q!Q+KM>~T\_,ェ)>2:8}bfXI8J1'#"coߴRR8uv!~D }p\f\suwE,k:;7!l?QC.Đ*U'5LSw 3/7&'@_!`A70 [DBSبsEnPx/v"dp!hw7? pzMmʇ|:sS ¸O_#&WMSMHu|POh;=67[:J.*(/}q\qaxiI ؖғzlC{R̀T@~|xY cQHfMBp,UFw>0->njAzaG\`B0 P'ژCJh BRSk&D ,4/n`t oEu<pT BZjT㲣ڌ;J򂥹_9OGgl;W pp$BIס? HffƩHav-Lz܄W٨Q$ uam ͆ /`[ON RzdlƗ 4ۅTJݝGDžHgAW?ݛ_ebBH01pP4["Ǻhکm r"劋LljL2HM~2Bઝ2Ҥ)e)i(igHp] i &>[~lD.>~/t⨶&\M -Un}jh|[m68SLuw܁,b6;֌8DjTRmP;drGh "p37 XrGm 4rH3du9J~SCFab1Xm6wۺ@{OfQ7Ѡ(*Ӿ->HX*_z܆ G k/QmL[gA_EnlYBh%U<,D_5j8mƩڈ3nYh.|ձ[' 9M&h(eDLcT@˱ˀ;eӇ~R_'x8,g'1`ߋ+ͬ|>FY ~`aI2B.VTs@K~M7D`)(f-kԏ=x6ilYiKs id:P:(}Eǵ&"wW=M;*ͷdi U pO9P@Ǟs͍ElVGyv2A*6&߬-V:ެ- Dž}߶<+RO'PsϨ+JCӧ}XuC㡬~q>Lt},H,ft>rp~nrtW鸱ߧ> R"iVU/w뺺hN RTvk<A"rx 4f#XSg췩'U^F @_4o޿~:0/i y%(-&"m ?O pB3 b upilZ%˴߮4,u?fE8隟)<G?Eǧ,ی+zK~k&qsI  l9#qn pP-b%Y,~ҁ _hl֡V TPq UΔY&D \1~LNU6W2910w,q=:LA |5CVƻ킣co2)Qt_OIhynr`ؤ#zL07̿$TSwCSu$ΕQw[3 {_ۿ{_f$pt 7K#M}Cm{n_X|p{}5/wEL1|T2 `o0_{lAIıL҄4ayfZci3okCvU7(.F .(P&X\̴R nBB*GFu_8d `L +Vݨ4(D,)>+z1yI*Fn#U!2nG)f LgҋфW>|nV"'}Asf[Oݬ$CdL>v$ppzv{Zu>U@\a"b!N>:2;.J$S@NWksj:oSW sS<՚p6C"W[cn ߶! +mZqӾ6ީHR:\n.VU@qҲH~OF(E pK%+(a7ƬejԙHUĘ0V.uŇE{߳f@~aZ:N5p3u\T^j}؃Ԯ9:>o;=;yn \r`k_7ÿbp`_$,1 ]W+?q!*f~V{JZsfV 2✩ٳIc9vls|kXK_ noJ-OuNY8Fsw\x^>Nw&,vЬ}rS#%'EBsG5<U35N}ҌD iL78f_6.`W۴F'7/:=r"zVz{\.~!럤!.xIEo\= 5)dsD)ᄘ+PJ~pi̾9/Qq:6Eg x-9du}^QӺ%Ǧ5C ~A^`ԝZ:|:cK()=p68éRr4oR:Yf",XXoD8 MHI괛źl*cysbcb_c=kѩ;6Lt):4kY}r}qW<50>ea%)9#qua&"/m &־j9 &sSs)'>mYQ7=f 33ح7.|zreζCFaJVgqk~i7 O)n2jCuIoƹ[0#9r\>dq&A%!X hHNNmpZB&V4@T [򒜺Xbu MBOr +S juAEDrL+Tj֜G]o#`_uȚ)ł@' ' V f"_ Ġh!\UZW6ʪZu@jE@u5nI+ wڸ}ܬR[ >72HS,O@ȓDdy*JT0 'TQ '<՚|:@R@o.W͆0yEJˢG(>' LD,H d m_K/N8$~zOsتm$ȅ@z֫AljZ)uگ4;)L ;Z*y_&8 xJ>ӥc8S_]}`{i7  ʙ,7_du7LRM^ka>krP~Y .XP=jtL}JŠb)9)bTR YsH[\W ] Tf*Se8ˢy1h%J`fHvdM?n.WRG z5oORŷsOl /@<]H M44!7Ҡdlj&7Z 1QKTXRJf`N3~lOHu3Yӏ-﯑~tٸS?U \_,EMNfUQ=ޠ3;'priޥSzقUA +3`UcfHm-bHRm.O}K%V  OqcVsRRR3&䶢8e©LwsOl  ")ny!OCpOBHυu aƷ7-M)Hij)Z:E-JU~N0 _Ӈ  mu,>_%.^ɰu/Ѹ8 3j8sO8TzS 4-R 9k򂪮جJA}iS(6ᴼJ`ho;6ϲ\lN{moU}%VLƞyk9uwO8~*<틂2@TR9| ,om1kPǨe6}Ѵ|4x.挏ߺ}W=Im.ZTbYHi%jC%|p$.8xu}eUƀAPH)][koQB)+ SG 5}H囮&lPŶ' 2I==˷%\@ALdz**"2MDvS-hR [._N%T˾ol~<,R*R!OwBӇTȋyV R6CRB RL}I=F( ҧG!Dy: &}@J y"B*uS+vbū ZFO=&>SjR:8B$~ ;V?L˧gbZz$c|Y!ձB(MI*Sw5ppzvk\Ք}0.Ѭ6))R!Fb )a|~#!4UMrPm~[*\[]@@BtZs1&ZYgWtBݪi_dA4\9z%MYT"VV2tw*YvXp︎gK5&EteB #Ak:ݦJCk֤I.$]T~L5ZW_Vs>jN %  wǪi=q&\~ϋJw^'hvX޻AEM 5ГC8Q Ye>P%BDB)|,N[/q I;k֎[uӗYiW'=.v/5̘fN:=;:_V@)U[Duj7p .wىd c\AFY\8Ta6HsI13Yl\ U]*V$;G-J*onf|2B miuCE9s6]1چ^S}@m<3oؘ|pW Y؟u=>ý=л]vZ<Ձ/[oƷfp 2 @Y٬1G{| :G/"xN{6| m{Kh5ߠon$66T-B{L+wL|>i82vCCX\o9EP31~8ss.&hb}IG;aMC4w'hۢuG~?әck57ƼIȧwu4-E%wQeŎ FUc˂<@JR9P@r\ uѤ07@r&+v&tCczMNu mjmT29 "C0 \tWv3͋V"Uꬌ8owik7'}_$XLƉR&+If +wlD7~<_1ZFiz /T0)mBr&I1_٪}WfsO$ɭA\* ]~+ ~ }Bi|X HzNr=`O .n2AUr3sץ`,(5"H5VS P&E$DF6k뾽΍WmBJ6qnG[mjiLiRSY4D`WƽХ.?ɰ(OrP' ڡ3;.VƬ+@\5k1lqAbax>q Z)[:󒲗jZ{2Ummf1mM)qͦ%Īꈖ_h4VJՇmT&Ln#^»]w)ppzvk &&eP)"B!CiqE/VVQ/2rQd-zߋ7-O>O]MZS z$4b/Lz.ҩ1=쬰Ӟ{&"?ݕ6=o]vDCn8\W8b'VN MAS fc b!V77+N9HP܎STtŖimS|3"L9)4U?Zn%h\`ž-HsB@9sIOsN6{Rt{o&?&pc\WR'gezA RфTpFqn)ZfRC:3eΕT7c`Sխe{hz~XLCkZ~zR>~A:Lɻ]}L-GUd㾙u<\ bq`U1>^nf UbAȁ5Y7D9d!T@xX-rٝ@3Z6isQq\|R͓ Dd \tW+Ҏ6̄8gŔUC)J ImU 屘JBO:ć}@sTߟتbMeRHg%E8sȀ`)0:sh>1z&rN6{\OwҁMaGcv~LbPAbPB M ~utjc:r[۪Jv|U[g>恥I3 >t# T%7Zzkq/hȨ#Շ'm@1;8cwRs@tf2N7ٴx&޷2 Ft/Wɖ5ՖjDŽ)7lo0iTOxIoAYa3?.!:}PX;6ꔖ -6Ňi:\ϐ#/Iͻsk \Xj _8B)Z, DBGY(ǽYIӢCj#WKZ5*Jz)`iٽ;G߻sȁL:(lj]=ǧaEF}Bux.F:b`6IM-H!4Xl !ım뻡{֤S #˩0й= H[3{}+♪`A7' ';>`.\`n*AOG DROUog'cu>ičMˁ7 }`bA+ư2@&IvM6*{ 8x5}7];mL$O1pGxR෍ǼrAf8345{ԂI58)^z紽.ge\Z$4Y.Pךu2|РaD Uy<6pp5c*M*!cږT<Rd&r*{IIfc`UoB:dAm2`N1XtJ  9$a)Pt r}{~q=@!2 .h{c_;1FA4)nR>\`64'Xa<~#&Kh7&ʬJ6Pm fM7E4{u3@ޚgDS XR\~=4_V7B1z,>M:ޗFxzy)R$T)< N3&BrH aĮnz}MQS”<3S/j%5hOkR3K/F4K/M_(bbrۺGBv@rX}\Q{9/"pGKsa^j,zA= \fSM} 꾌4Zx9fT l2=~4eu94 A,.qsښ:v㗖A LaTdؘ|P^{.?ET!l Ԃ%.\`CmmzR,;' KXzMFi-\n`v;A D*hOEuU`B9צQ˫Jl_.a5ĂxBYL?/`=:ppzvk R$n zY H'P`ra|<636An?)NbZ~  P &|p>kAܪ^.qPˬft~:OrJn ,m6A>|{{B XV'TGiӳwgSL@1 Ds*`J*z,H[qRCR\شP1m3ba6S")Fwm~ AGiwȷ}H]8abO/; KU٢RT#פas YrăƀA'޷ CS0qqh8WM^3 hN7-(W%.Z5P`/Yt/(irw번h\, G /C32Rp MH0_4ANDjcܭO? B|>R1r0-N&Im-^ tb[8'n,Zނʹ2ߚ"%`gklAHMHs_\s:U$MU*TFUȠ-I acՔn._| u>)L{z}p} gfVr5%(턃4z- $ !-JjA[Ŋ݂N?:S O;ݠ#1LP ZwO7Psf{UY34|ӵ P}޷l ȝ.> /DK{_/Dl: &sZ:7h`qpo2 N9瘧褆QSR/`{arpdTvGO77 ԇe>4X,'>0O7oŋ/x;=μ3U_s>hRT3L9Nӊlreõ_1uPL8I?e5DO8/fO7t&Xi)IskGݗKopPT*-LSR@A&bB:#¶)3S;ue2c*|ZLQȔWf=?3`fA5 O2(=*VM7h_Y-<{ucwt ^L4 luΉL8R;iHRXgA w _ 6H4M9ETrjZK pLʷbqK$&~AeedPmZM.rߢjM5čM7lC2_yfAnIXuvL7K^%\{8 vʁݬ)ZSB 86aO7pO~7h̽w\b|M7=,yAx`. 3^_z<4VO9*@).t\Q'O9(iq =i mA} NRZ2ݠBT}0~Ph9hο~M7H>0ݠ 5 _*";?8 eA.tZ8b/7,d/Y7 /FBIY3X,*7/B'V<T T4Y=IqWnx P~_ʿyc6 ?_|_|͓KY\T8Po~\tys+7\8Fo~ɅxWk YF+.Ww_⋏E`7ߣ8}1t< E.5-U$yjAoRXs+Vaù|ˍ$0LlpqhI6ӳ/^~""_{Lq5)(I1i\Qdt6pn{n0`A&2[X~ XE{I=-Uߋ~?ZB)tLBba왩'8qs?=;7_zS? 8 UGIVˈxNIhB|Xr%MoUD9tHNTՀuM9k`3*zSd/'xbKJ}** `!`%br{~1-'lV<_夹^9$`&?_J |?+~'+ߋW6@;٠W (XۃeIqOGz'R%`c)m;2N7/cM5y,M7t0}8W]uJh 9=0B6L)t(c$k2%$5E' snr%ɏ~q͆\OWrsB0~/ _俫3 liK"T=*ZTn0ߪ?D`VDDnO2  nx!prSr !& :iD N7?-)"jV&#t|,/YM7fOOGL?A1Sho'x_sA 'LLbXO@0L씃ɘi* U6R L9su{'͆ 6C;.6׃9{Qlv7 'hj%os/I":jiJK!neuqA2"8=;yTb|1.d &}j5 zs 郶0fBP/.a fځ0p!/DSD}]|&5`A3Zu􄖑Dgc'1i?5&RM4h4o`O88=;y/"lM9-O9AnboA~^ړC7.> IVh L9?!2a%@3c=jKIHLNBc@]{gUM^S\0'YmcI T#ny[^ Xp)pM9lf=r0W qûVׇi]zK;Ea з 9<7K_E= T5p@Qtc2-z[̅ Bоf l쵑xn2p #ڢˏd˷H6|čv'B]_,e[)Tsה.t >Psʐ7w#!X} ,߯ύsaVzac#S= Tu=$M'!")!eA i?~w%mb@ډe z\!n"e~U)ǯ2@vM>N/NNދwHj&sJ 8ކ<祄`ݔx N N2`&^u\M` PGbfWk.‘ <E4`tপ+*N:}$cР<6|GĻjc3Bw㦫Wۯqš()֩QIPT n.\`&DP 1dL6An/bVg՟b3`LRݹ1w&cjUxuN~ epܭX~>K@ݴ&AӮ_dR tPf^Ҥvu?d+c\/N)*:}.Dϧ;ÇӀ<"'A' )ܱLΗr|?}yy>^*,[pNF^9& l8"$7M7Ƚb6+j@wT T9xPO?A|cߌ17>VJe`"r`)nrrPBRJADI\~Edʁ+/%صuyZA3>/N?,Ug?d/fftQ<ljLJsxR\ؠ옂ԁIkD4E|@>qFAme AxgpR%XgN+}3 [?y䝈\3)p \,Zp)0V߈54<;_UQ~A] :WJx~͆L0fÅfӜ~t6C^76az@snIs 'hc /ܤ2x447 U7~ _C;aKs):-fpX 1d !>g!Ƿx?))Ye*A.}XT1yR՜ H; ūRKb5|~k1Q)-eA^"2?Zw҅ ۥ,F:9t27 fN1OLUPrNy*0rP?֪iFűpuq$%P`Mq_3/6rsEubJ4_VrU'#T;yqb6oHh60ݹ3@DJOje\2vLsAc7r =Vɓ, V|ė< ff7$i5W) &ȧwMyLEŨ1zԪ tv})3 q6C`6cfcE6q@lwH6=!e[]G}`k{B-Kc܂5/i".0`b)?8L4 jO ' [_^ʛL9 sդ d<SJig<ƚSIO4KS_"5??s=s͊^ |"{H( @y*֠Z't+=#c/G!y}zYhgj^(Ǜ<ȧ__W8_xMWYns.TdP؄Xh~7 Y|}oq۾YT"v!ۿ/_KAs7G. $-V\'0Ol_:j6,>_J_˯~KW7rys+7\#_/?_2J8<|/oo_tf#w+_/~EǸ_ ^+smqAF}+RWq )B}Ӊ}zQRIp眂D"bO$C0 I!/Y,aziW\JG? @DNN_3pΏA'չNjX-T: t!Bc` !1|P YB囅.TU~/N~~*rBC:(1ۖ(+K.?p~?kp.p<$pps˛ ~B~_˯Wz|P\#ECd~A _e1rPR3'h}R՜ztkn*911Y_e$c 6}|ؠt@ON|:;Xp$"\AeIqP:SӾo+ TpToktbL~̍sTiΰUUZ?(Ŧ4|G:,rtI>~>{Z+2N}^A!Cp=z=w_q2ƨZa=J8 m?f=%0 [S\ }z`!4T ]JV_}yTQq cѕK#,;)r_|i}.)G /I;i]4S"Ojpwf%S_& :f%lI]_H)o0~{ >04(0%t br^K?Lu0  @n38|zu#yB CF3⤃!NB۫,RŰAr @_.,zTjIiyP깜X{6Eg,'~_]nضzc@Ȼt4@㗨V}#'dmK<̯)qɰ viA@i ҼtOɻ&2-Z)$v6 Tx+n[+[a_}FiR̀=2bOڀAVAv<_3 io^Ƈ34O,2~pv t_ HX^m %Pz՟LmOJe3 +Ym:A&t^n< zoU11?K8*r7U.)6˅ԃ٬\.BϚST30).EJ=v/RF埒:'XaM k41ZO_Oz[Bvьwr_L ysXnlwJ|KlK)W !Hf a֐ 6L>}*S7j/O$( )PS'g&1}-)\n%b>Ww\3\ۤh)h)\xT)'&O%p2H={VM旼@DD<Ǜ8|9UܤjR67ZB Xf ~&>.KJ7Ѡ>jc-jzRjNV+_15 `&\=wysK rzz0q"hb#|Ġ'P47l$wW%-aM1=4u嶗P|wzv9ވ4`RH~O7&!(3D4p)Zn/W (Y)*}[zٞ *hW9sn3.|eWw_ -x+Y~Cj7z^.Q#l^8G Ţ pBn o4Kk _F~ C05<̍6Ƚ3&vKL}7ꁃ)kjf&H )I6aMA_c8!d?˰uZͺ( Yœi5Ϻt9c5ߢ״+FE)+ u ?W:4ZtүRt[1{P69om.f"ùlVؿ\L(}1iāqhqlC 3jw&S AnB1 L9$|pΧ~ʁ\H5vOc񅭔U e:E!|9Vz_a~f+g $2A[.n:T)S?A!2|'5ċ?], 9T >\$+_.<8|\c.m[| $䀂Kw1`0BsX^Fw5 dv2pA-v*PՀԇf~Ʌ80Z6sa #iǡ)@ ~YMjAo[Vˍ|*!ɢ]RiPӳzg  Zlʠ\U)<jBx2f.40C9 RbSr,jcAs|*Z׷9φ HSX\=@1xC~p|WmOvd'liH)۵n5!UnE4&Lp.Pz]"R%4v9l;~prfF+ M)p_.l\qV&  1L&w-Xz-RAF"UmSӠVJFD^0{~)FTYm6\~ڰj3}YKٰ%5' ҋ5$6Z+sUsS$O7(J?]2T.K=6sssU9@qMB!X H mC9N<۫ݬ'甧T& Xrx>p%Qkn%!J3[hX?p7wF?&-#5B{u:]uZ~xd ĕ(UB6HA &_ǧhfx߅ov@ӳORw}^`2j\9U&| ǺNB~%f.'30wOmvkr;(<;.¡ `?m m 0c }|χ,Q8j4i&Uۛ+Tvg'D;~pfysŐʤ)Rdur;BB8LFԉl6A>};uOOD\5/S *fPr B <0jB1s^P) saI @!&:aIDÝ\tZ^z1M^ ;{ox{^Y%#s_ p.J@J nBC>too.Ti>/"VN*6 !v΅2rE87wK.^T llvN}UEZgTaԯ!EU߆L7 a8ϋdh栁ejBO;hc {o܁MXLrʏ3 WRu&X5 2\p'!X:L9qm!Zʸ>7@\+. RK3IXܭY&wyh'aj/ڐCҞSι>jjNs٬ ,X~UmWxwg'M5ppzv3iͨm V=` r9T&qTW*ăz럗rt\r 'kIWaiP_g:}lAV h~A6k6U4LOv7cS$6r ,YkubӇ;,,&]*ռr2}xЛx Y+.'qo:UWh0$P 1r@!O?vSWgNUD,%]'"ndS2NBuiY 劋g g/( 9 (+F*=֪cҡ㺔yA3 iܰ O8wa)a|d)sV u,o_M<*umHPk TS UVc %`|q.~!X]1v:l_*)_`q>P0hJduIurE825f>l7"hh h B ǎ=ҙx`MoJX4|@D27ŠeHs<㜞y}~J+MW[YSLķs9`J:݆ y\]pυĆzOw0dj{:yC?^ke9%+XhNg |]?"Խ귨z0J -W~XLXl\Viw7r]6ePM7 &9 >^ꍟ=ppzv^Dgo2@S=>s(! 0&6 ךJ7Ё|Qpu$Wu5[O5|I7%l$rt6.-ac*O-6H >U ,~)æc c ^ԋ_ .T0{f07/Ƌz߷uRєi\!NU"H)P&A(SB0 A.~v_]|UoNk:c> =t~zBBՠw1"}Ei9霫k2f"O?߻.%N7=,&{Xy6ӳ//88=;y'"a: SUeUX@+E[pVb$s Arpj%˘dILo3WŪR6pB/h@sZo6\~L~Uξ&nSQM6H!lǨ-%lec>KSz%4hQn`B }7_o5j )$^'SQ抹2 "/O9JB0P^MzS |KNPR@R{L6CB$L*Hi41m *8&*%˛f˧\C?ϱ/E(kv)tbt%%oRKj&.PЄ0 d،d،_M:Ȱ&>? 0H& .3xuijNݫ]B "-IN<(ZY16lPb \tY&Fn eֿɸPv2Hr{ ]ay8X^!.99=ǹ<=;y'bӳ7"r4dAN[yx]Bev "!HßK i3ųJkSj5jo.ؠ:W:xpxssVmOh>-Cqzm! ٘URni8O?W=)OŬ !L't<_K_󚤴^6$g5~+檐^a&ornPBn_5ڹ@a\k=,Ҟ Ɓ/ g^[1-¨ꏣn22hϳ čc0 |ӵ盺DLO0q Jg>EK3=I窳:+S BX )!!HJ %-\_wQem*(:X ":bVQ<m9n۲fb|`~|>tPe?߮ajG($J@7A ?,K0A˟B{f3鿜+SI5 Ӈ  JnKċ[V˭qtyAr<t!/afA`f/7%t=KU\4[-ep kd*Nk QG)\ H;nA:[/.u^7xrTϹjjlVa\HHqxdwcUK}<,o$\K1=Bն(c>T04FIp+MTVeNZgm_#9c&"з\,X SnuE6hN)' 9jXc~+}ߞnDn XfQ6!O0yK4 ֜k5S l|o$FBV۾N4T|)}|`z  _1 ;yl`(7 %M.HTXT㢐uusɘ,h1xzMږyGO|*'\X8d_r"=97׫ -^.աus rɣR@ư@ 1P"F~zW& ~nnJ5 ?鸓nW=iƸwgLɄ禢UL@ȁ&`/obZM8HoӼd!Maz/'B&i 58'J.}Cra(d4WkM|/KE"\'y,HT7y0=lO@ /j%HPB?^SF^RaTϚ_9_o?^E+^2/pi7%Xy;ꍩOӳr2{88=;w-W˅`ܐF%^K ! +xH ADnVr-AG:v@,@2>}m1XM6.+1YݰA\qnj|<{TZ'"^QĚ5]UM$0j˴`80^)—,XtPqk̀7 ٧YpabRl+:cr f}sAe':bW cMzGUi@뤿0P ٰ`IMODaBR&=u"ovBc{Ç ,#&rw(H}!/'~7=,:97odJUtY 6<}7 4,CD/rTԷ:W\xULiCaLb|'b^z'Jmsa\/ɸOhjY $GM /Gi3U%lxߝۧڛɅ#>k& ROBa1hajL>:HEf/d i]&Hj+:Рjo }~ؠ>]{ (J@}BlP|L뾣 Z0fnPcw䙰O;Ђ 7iRxbR|!?`Aj!4:IoFj⺹&TbZ G ܟ^i[( Z`˵@TT&LiO]Ƒ;"qӰ $Md=ݠ4f5~c O;^a75+DBV ÐxC^0AA,HB :XN8@W<;R\ DA7`A7x@WAUbǡi`fƤ LD5O0nOriU̽"23! ̝ɶ<a<=;yo'Wӳ ]t1u[:ȉrWOAH&M$X !?| X)M)a_UEժ澎ρܯfV8^n m{Lؠ<IժA iAMUax)où^"7$RI}$M M O>Ԃ 8VͧtTH_ >x`A?0:ج+j1ż6$tATa0(:Ǩmդt7 M@s?Pr{?$ ƾɽ#rp!yǓڻ `{afMI7#J*ݏ 헟|I݇>J`q_QzPF 6| @l p@;a;}(' 1asaWB&q=!a $q13'vbO/D\qF|IҌK֌˛ XBKF~L@qՈ@uŸ4AJyOajmaˡ?Eqެ>[2@7s_8@rGltsҟ; nxboЁdvA R, ,O9! c ʻ$uź B Ӆ򸰁Ջ&~A$L7( mqKH19Vc`bA6( <! \ a x'8Ⓙ7+Ef@tqd^L)0!? :|=){5* ԅyUUڋaq /NBVk9c2`qYt#1n ؽ2 O4(a`Dl"Ӈtd2T?/>n L'+}@Ё <}<$[_6a,XfSO0c R - Vd|A6!/$BR y\\|!\9Z* B- ,7&q[CU֡:ЁK3ߚm嫩@?&v ̾Z/{a~A6AQ d2 n {w0gЁԆm=>NCv X0f\򧻝ЁBIxMN!?A}Qz3 AP-T2=imH6C6 A%-Ni ~{88=;y/"0[>:03y0tPkB?Sj/w/3ݶm!^^jZ& ^wVmM2Šlo۰h)eqJ}?\w :0_Z=χr9 )m SAJO7;jh:'8:hjl;+B6ȏUK?T>u?~V,J ĐAq L~N(l-"ѪmV f'1x:pXl ~!D{ڰAmؠ>G#mI6Kq^YBy}ބ {鷇p{88=; yrU&6`&a[:PЁWK􋄝BC@6c6l&W@ /8 hӃІ &g#,mk*B6X-y~*a=yRB<D`/}wzvNtq  /$t <:( lOv9t4  3acj|zzǰ4aw~4Hb~A=2l_dyq= AJ afOŽ9=oE䒿Wj^%߫ި%t4~Z &TE 31ʨsM_6H6KsC9C ;nv١2oAaACyl*4+*RJr>O~kmxm?T=R& J6 ƾ1l҄-C<`ăzg pAYx&="=L7<L䝈|/5t=:࿂X p+=tЄ 4-t"B:(1e'wUz S RA"}qAZ0~z B "yk(yA(aˏ_6^" {!.1-t0&d0 !M5p?]mߐx^@TUV'l"%P@ϕ&L_Z A:A }va8b:_~q p+ NN Z 6XR`0XT_4tBy NG(⠞v=F M [}J6 FP&t{ ,T86cqAq94* "&"?KK /Hpx T 9~3cH蠝xb`Hi|)x:Te7@*뱅ڄ:CnnAz_a:𿌘uH;Bo Z&ģ67v .2Ё|^  n0Ȗ/R>J @ /\ ޿Z@0l@wjML0۶/TM EOW 'ivnnSW{Q IRz-s,b{'ag'v88=;\ fBMpA:hT~Jᜋ`rsǧ񱊛vPNyARW"( JRrEH)ޓzڥ9 lkҊUj ӰA^PŅ ^P…sL-6=ŀ\0XAv l8,oz7^8~A:=f"˻JT]f:PG1V_.Կ4jń+KAoxkGk֏>L% ]j%R.QLly.?&WaBH23CɛCOߋ, r<V?ͧu^1/ooR_-tnCܞB%d ԃrkDT@o6Ar}uLLЁЁԡjb;VэW&!TavAKF*;aQ!ᡩ*0}:nq a} lvN ą7cqJ(˻MjF Gȗ n=?Ʌgl[@v $ !ԩ~WxJϗV<1~ *t>lQ*/ E>Kw]}Nmu@S/_wl~A}?f5~iq6/|f ml>t%x0  n`ȯM&~o~W1*&7P BKgjP.oR --(06Hjq؁kT$vRİg٬V Խ GwquЁӳ"OBfLGTJq?p.6TN6p$> CGCw=rY\mE1‹_=/xvqj0'a{+Y.\'#gE-6(9hvă^B7/ⷿzϟ3 , (HŢP,@gHL UBBt:Iv׈IUhpTzDk>XǭEg~+ 8C?]lL8h Goxǭ$< :)6`څۑ#gTE,<*8.2/Ui|kȑ>4A͌ӹQ,xX˾^ĩ_!>h* ʴ_*\4LVG(6>{/⛯OxbVAqŪbpiOFvBv`<}/8kgVt+:*KuS0=Ί 9/u`0ϋoG; _˯2abvh4|>~]y# VYI5HōMZA;_*)&\Zl0tBbٽe@fѷxD>iέ"Z}E:`bnʅyQ`3-:9VE1rPLBiSx0_UA4bs|GO;s}yRXv4ϼPQړ2t:L-5(:FpATnA^Tbϧ\5VSW4(6`EGr1Tpp{; ? Z98>Ί rqUtPl7=n%|/?G3BYR- Z˚"2O{hE:GTwԤ4nEkFrl@LpbF)&S0 ǃϞ4ܛd,1OY^'7^TlPϧx2z+3#O˹Ua@A+`:mgI|ׯgNGXb.U#! ):6 $ʭ[ݲu{epRUTڭV4cŘjy^PS6QS=7DO)&ō!o_qR &X {#{{%"m<l[t1{^XYL[i}8GV/uQ,* /:r;2""R}1EDc*R ⃦c]!m8bikiUl,48QAjDQlP/lb<)(SsvYCK 꾆H $eoa_ކ`ھ[lP1 ,E>?Sdtg.h /]SӉ(:Ζձe`n'Te*68.gOx͋C!/THebչsꖨgJ(GR+1zUH+%v{26~rsJTyCYhnAQyN1b,,[*:aι$T)M.(R王|87/3.v'GGU9B N7 YֵWvР_ u~fپTNA1ފ8hSD{՟i!HE@J)Rn IB{EAyVl/5Ab{1b. b7s{.h Ɠ8^"lTt/j֗z&'䦸 O1=Ί1NgcŷуgB~GD&Xh r#Jhw^I]FAkCРL5x']dPw'{ )Z멳]9a_(6(jճ,Ty~BD9?|'_?߳0m'?5fŁ"sq 1'vQ{;b~ࢬ]tP|Q.괄Ji`ڤOgO>E"xi_/8s/uqEOFD;:4..hwrv&J(7M5PITT ΤzRkbf,δYejٟuɋ <- ˿9D )6 Ewv+ELsOsS0P%LӦ`^,4(g(??=߼h.$}oNR1B -qwh"1H;h:miOpԅ9֥R NA3.Xw\PD*'Sؠ,ji:4R}8͖N@H iݴ%F~r)BvEUhPoRhP<cѩ; NA[OR}Bܟ-s roIIO Z< : bG~;_{a.?ieF;5a޼[a,:RN)boZWΊyw^݋w_(>A䈜:uA1{+$ȭs$u)# -P}]|#~ ?O4RJβuȗzw fTۥH96L횃ȑSԚ{8Th/oy2ՠz.&T1PlЮ1Plp<]Ջ///$Dtf& wI9sLӘNr/{:Yޔ^:1YRkF"L4:iEwfA|n2YxRJTzY`h(' >(Iv3M-L5*fHDbϭboo毋j/i2/~_rq/BuB.E r(6`G1 w2bp r^a+>e/x6uO@nbz/ !;"ZwZ<0mLP7_{\w|䥽0MH9Cx uw:[yP3DQ09ऻp %[S-, qsQT=EeAk\3 yu. v/qH58& ĆfYJToxPlqk/p 7x.:(l7I8͝œc:9b\L 9_tj?{Ճxe7W;DwS(ʩZbE\A ';4 $Y.:) \einA)R'VB3Ν rkæJ1ȭV/@S^숣dt{/r ƓѽmyA_X|SM@G~:m/V@ULyxtL^wF|8~=. N2lfz<uE5]DƉvPg:`\(4/ǧʭhsE"ݠW|Pu'KB†1Ɵ}xxENOPS4]?Y$ѕaΟTtR./Veձzkwo>Ru4pfp9cS0//|UPsy@;Qa 9xYS|v8>&",}{ ăE+֠x2\)8OF#7I|Q~O}I~Lăzܟ頞!'5q}_etz<"E.QZ=>e*AJ0hE Ud* }QZ6EN"۩Y R1\5]xȮ^Ul>8uUsUaAyuzA{Q/P:~1ٓŸK5EAu/@ܙhX0vi7㲠aE|yecRҬROYtYS/nRHY]_Jk^ V&y;Dr qbNz'wl!uǸ&+Νb\.ϖV7WU[4?/~8~wWW`[t5&1'=,7Q1}BvQ\{үTx2zp'(;i?rYx0&O븃ViE,f1E14GNgvZ>;Q_Ӆ i~4PF:erQSt՝?U fj"-[ee+25FZ}!vcUUxXp[;k·˩x@huDɲ`vNG(S ? 4lL?a|8CzT R'SMWGU+">Z;wǷ<7& v0'Cbȝ„&M!G>neR!gkun@]$P)eAnAk_uR괅l( 8BT$t t5N'ǡ44]7 'xYh۷77ϕ/_ſ?œ-h8,J5hOVؤ7$t ##k^`ݼr/'3w.Ӳ$De{jꎏfH)R1{C{sO|:_V};[ߍH9rn:X.(/!/Z3Bюyxv_)uwѝ֮.ؾ|cnacyoxunF:?{_Gq|6Y`bb eQ<.қeQL&+jx2v.z7Ŝ9.:r`VA.~ϒYE~0Ez*_ cnԻTte,f=DU(MC&LC-hmRzW1I ]U[  IQD̗cs})t[+3nȑ?9u ?^.O}/A|8i=?sy/:-Ž n^u`^DK,Wj ԂI0ߛ͖7ԃ^y%ŏ[{=.lfarQ\Q.hMQFo$ʭt昹5QCQz"$l/ 4<ܺYRgdrZ{ TUZvhtשƔ_L(ɬ00lT;OcxIA5S R 'w]=`2H5; 7ޯv r9+q̌P,?n')etc{9o_ǿͣrkn4ܹTTL;"R+ el݄FbvY-$[4۝ S00^cQ*NjS/A9rZ<\m6p_ @A=|,ÓX}3ߌd2ĩus~WRغp_PA{/ѠL;ԝE{hMI oZV|ս(V:2Ruh>甅I+(DKge_9v%R_&͠+@ƮUhT>.fWNcLsy?|_qLӘw׶'ճOgh(.R ڮX^9ug3J=.Thi fwϠ:nSfNO7,ubb'pW.6hB}z/wϾyQ$LcQ$TŲH5PluD(8 =$/PQwb؍[l ̋4,0wrTOu/$_񴾖449pQUQ$9TEZ3X2ڳU"r[dPCDQ|K^AgK "NUdP,/4)|X;y]S\Ќ7#UDD:UA-ˑ4O{cik=loM=^{݈fYX _oo6N*˅9Ee|eQ֞|~V:tm~x74:z$?p`7H n (Nhڧ۞{f-=ǫs_i]Pi4)e@G3`ST0>7yh0;S p<] =4jMH;zuŴ領hE/VYm4?uIxz_Gtat;*f3MʩT?ъl'pb3QIC͆?lRg.8+&xtޚ hPϷ(v)b&ا~xU1C픀Y<~,>q/ OI+dinOTT* kn]ω٧8??9])߻uAvPvOF׮z#H8 v'O;(vN:pg[~q3-34D3 \Pu6I14ɠlg8=PZ}j\R{՘:\Ѐs Slj:u ۧ_=?_>퍫jl;^.N"`>fM B LŹtPl[@A`K-N~yORJwVߗ_uRă{2-9^5EJJ??Nyb. RVnE0{iN:'C?$l/ V%I '[ -WJJ1tNAxI? y(vHucAA8>})ߚo^ 0($h bP)hWB,|MF=ǓѻAA&`WlvPd~<,i zeAgY;>q|\LYMjq;XΖ4ٯx٥Egf"NngS*ڤ,1Rky=FxPlC-I', 6gsꎝJ2h,O2HKӯQ'K1YL;Hg-&+iisj~Zל~%Ɵ??I*gcQG`0 Y1Tcs+53I5 DDϴ;`a#NdګnL7+Rg`P$֛6Τ<^J|7~߈7εr:Qr4˝XI=KD|YW! %tί}ysR-ڝ>I?"I8^[bq$ pAJ+ PvE* uGrEſE+ "gO_ŷ/,'TGx|2 wf̭sUkg>^~9څYc&y[dP?eZD XxX40c%ϗΉ rņ2"ڋr1fY><~7aUl0_|)κj!NbA }"'ZpⴃfHMbA}}ՉE@A/)aJy7{eN8^@<Ă\YM0b4p v[|0޳Η%.4bs/w^8-8* qgk恛Swt?GoKZiV@>É W89bJ-h'ԩEA7L/e]<=;[c< njvҴVdt* GL!ti:`6t:mRm{i{Y3%Eŋ_qq\{wμNbM1^Al>RM .(6g.14|X?OPAjuX͇"6(w|onHDI J~ηL1 _ HqbR'~Z窼" ?{yϳj|y)Rh'DYP WZ׷S ,>Tl0O0)\i`y?L*T?K+/ "ډe|" R^l0M@TO͎wf7WӪK7AYM;kɭBr!g.6-ig΢ݿ[+΋?}ՃY|'ih0Oq"):+t6K?nyfgL W%wr8R `lAA(HXQY3B*8X`zD~P5jy_-oi:vRJYSkBjiUceA{РN +:R3sǫ}%~?c5hoeGP\(sr-3\ARpÖ[nwV>uA(1[ j:k=x*`?OF4Âϡ r4[̡纅W(tRL{jՙWR??o+ߙ-,_];">C3gm',QAy"s1x6wDq $K jgDy*A ]9OΫen3%`=M-MU֎s,Vq"*xlɑEg̴鈙N珧9Ut:_>?ycz,o>FQ4;??Qx, `DꮐSME1Kr$Fϟb$Ԇ~EEu`Vy~D1Ъyɞ<<.f[,aKxYkد3`jw;s(_[VbmJؠi޼Wl:~efr]PGG_?<.ƕczL5۞o :f.V1D]+ԧ Sp8 \uK f:ųMAD}lW>ƙ 4fbY.:oů?}~aPJ_<{p~⁲ScxRr8bk4ayy gG=Ͽ鋢0`>S^HP?>eG4E]}za1^Y ?87ǓѻaGK"mu R~uzbiaUA)<(SSܰיcsJxGbNԝeSuw:YoQ7kmlrv W[Ϭ5-+/iy,..(־uܨ_ȠuUAUQOk6xi5-4pxlǃϞW?OI(4fXTz[`(`ăE9p9GhK{uhͨbɼ8#fu5_%ӧ< b4$W$eӚGl)8^ 8Kn5{?[HJoOMn[:)#HNU/hYEC9 &}">VADYTul Z(ZFGbiAZOPx^jڶnG|ýWRG[?z-~{=e+>S @a(Y!cOW +>t1/qKKXe^A(/>ra⃦bEAg͊k_] } yS N&/>z*m|+2HlصIP,_ȠT^Gk'c^Mf9ѷy<^jAȠZM3VAgY`8( `Ͻ '6aAu_zzڅRg" J3XV|R/`icJ+)[˵z+bܠheAөV]{^RDI?Xԏ+8eBzY>_~ΚXZDNZ*,R?4v"( s" OZui]f ٣o[,( +ir]Qh[iqƅe)4KB&l`zD5?l[x}]Tu ]h1/Fb?iqAj]Ku~{D+zw?z=^@zts>hҪ7‹N mؤ+^*}{um|mifK+!׺puT/]~{ݎ\DRppl62d? VY8׺ Ԁb0*LvZ&lVdPZE͟krOP}0 rf5c8pA=֗XEwuBy^5.ziKH|<>%<}ba]T E yDw?x26d}9ƒbCgj{ tby % ZECJ~yB/u(  ?~=zxWzՃ!w;ί<ʚRҢNvy']UhDE1<7u9 n_Y}|? E'`{)8]HLVckg_ 3_ .y.G(灦MCM{i7Cڂ~K8~g՟Gw@n!˺[]-2&⏜&p,$"dPSlAI93Prƒ6_{{Eg\`aR Rky*':+׋vBc; *xzkEꢃN/sh:¬;uyAoE}+"fH$y@ARp{R'*{Bu$V,~D^{4rا;7?M?TE i*iu g˶%yfzu|~xx=+nnTk:Ȗ w-x4DNu ʆ?N$gfimXsS`{)8-]hVݩlr倯s]imRgx@:6,4(N\/_/=bvkTx1%<|6K1E|˂-gE} =n^A ? 'Lt9|@9ƒ"`H7(>O{R,@h-J|'iܫҤx;iIff<¯WxPo^eZtn^{*8/;&ygFRp[ʂl r,tk8MYtx,' VܴР~ZvAKc(ϙj#G~>G7_ۼ1P 0_=E_. *20;v/Ɠmp N`?S4۷(P@jw@U|.&Hecqܵ :U\~~^x"u>w6wV[hݎnSkHEstW9fb̓uUy 2:teZ5pqddƼzs-Zg«4L >q]`.*0hyV$-RV%. pa!Br N=B~?pNXNPxPR;Z% H0{<+x~DubiAA""-hE7ϊoZk dNƒ^7w#⚂Vr Yr,]#<ɕ  `w,+8([mOf04V:4HHeA"nBZ]-)9-jƽf?xYi*cIC 4lnQ "*ggY M{iv@Y4 :mRd03vt.lH9 sƒ4_ԃ R;m`yB; -(*HsLX^g`djҒG1/>n|ƛ?|-^^߶ ` 7/͋zi9Rd $nZˮu޺opaPp속 .РnAYe ʎ4񣵟ֵ:znWE}'[xw^_ HSjn]dIA5?ƮS뽭;ϯ:I //:yN{l/$- NZhYР<i傈H>Z͂\g$tJҢffdI x,Gƣ/9w^ܟ?˛rkY@3TbVANNA!g}B9?|7"~%%~YU1xPoJ= SR {S4W;٨/@((nH;(*Dhnտ[xN|ﶷnp`}UjYzcO' yݯAƒ`?)8^  T}>cBu(VEKZ5)עtvb`ʼn.-Gԅ|m|u^Z/O5X\P>_-0(,0iOQ=(Šv;iu 26C gK\9 H==tgq9qAyB` BХ _ս&~ڼx}^b` [W[Zn+by2>YA^oV\XxFgJRp#ݠJ=4׀nx>Y ӵ ᠟MnA_?x6/.x*.hu[Ս:n6H1YȠۖK'3HY~Ppp)w"mă_v tkZPԐv";ϘMw_J8X^p0Gyմ9Ngl7^beG]t[x*X0;R`{)8n+88eAwvUgQlP sqf_xxY|8|<7 ݸ_о:m?X`=v&ŠE>OF4~PppoFh DzҒ'NT|0?lV eXfu " #ڑB֖k<*\{xս__7^y]PNAsYAEnԜ^R|6`{)8n 1;t3/88ɸUA\r^[tQq|=߼NĂ+f`P ZzQcEAӤbT$<> gB;?|'"|~|\3n&fM G ,8v0veQl;uAjwտsg_}ߙ9G0ś?nˈCҺ1&譗7OCh/\Vt: -y`Kv;U^,:z;ábx;'_=N[mO3ǓŴOE `ԒCo\`b] I78 ፈ/Z.釠E+뗿L?hzZ5 4 @ &"κ)/ + 1=)+̟px+^YBw^}%x}7Y^tK9Xx<\@k 3P]p =yO?kЋo᳍OO|/O^kgNwtoZ|ս+ Nz <:u;&Zgܞ~ Ğ?yOO)㯞t^$/F1p&535SE۔vקA^=0PToL/, JHJȋm(Šm"Wtsދh ΡCٸy9P%/=鰬 y5RV*6nQ'炅kコoXpξףXg>W,[ɛWj~uq\.7pwɭ~O9&jm#o NUbzo'k߭Ux5ܚ*f(٠.k+_nqA} Py8@Ud}p3ZQZc57K?H+kaA}v'EOH(t`6Tu@F{VĶW/IZ'$ܟݥ4>݃(t.x-r΀[<vka3n~=!Vwdkx–[&ځf<4]|1mJc?928>c} ' RgyjMR QkƧc< =C:?$"~%`>$m\|IAø: ZS,.@14Luڻ\CwiQD,jI1KZHyoZT\:?͛$4nk,op9m܃Sѯ7S('.W/M?wφg[:Vνz;]ge/vZ6^: \e75pp?҉ZhbIS9oZKg`Pv[s /3^p/?w*4(GQgnMsf)/d-VA! /h^s٬G[xU'yѬ\0?N+ * {<]z;kx2ΏqCnx֌Tvɝ"N bf L ZIk$V $$ _Zi=t[iǡ~4S/̐(_" t Rt& *S獽[y%IǃeAkb0.п3~ڇCkwg_ӛo;Ib }Xhm4i%%D^4_p`xm7H1X6bl("ni%ފN._kr?:)fiŶUk/Zl&8ma9|n'K9X4V]zbs(YA嗱I"99`FY^Ny0~j`үr5_'ۚW(8X"'Z臯,>Xg D t.*BXrܼBhQg^jww4k׺{}Zk: [?p7w[74C ,\a|m9PZz9 1΢⠽j|,9AqA`OFi . MWA{öe瑨9rZDxVlk[~bsiDcdۑsi7D?cHh2uUyͷMwYqk:ba&ǣO4P O>"E5X1Q'x~ԒU:18cEc`yO=TgyL8`pukơbZZvqPGKpIDLKf{8Ѣ$I,I4ȝ]fRN"?/KCZ, E)K7ms1eK;4İ` UdM^{ ':L PcAya&WfxI>OF4őpr@"I@X75gpe:_b`YAbҕmeʹ;N;`{YЦ+O$Io /ƷRSfj1ВT_r>Ssolf| |n:Q * /G\ެK% .`vD\Kkp;,-l$'KA^sgIOe=v\O&_0NUG:D쎽f*n̒ȁ"ی9oжƂKdt]3\, /ύ8 N3[H*fi9Q z2wVrX^os.`ӂi招q`Ŭy{aTKՀ醇[0[m%QD OK2F--Ɲ}Å!,Ef%قK}aE(*xhOy- t2v:˛u'y ~bF^ܞh2Ɠ=pRi:??~;_O뱖y[-8T}.p,gC2KM՛S,53lxw>;LwCgLf#!Ć3YRyN3f+`wK!g߲X6s;pp ~?~< b78~GL<@v|H)w3Ǿvdfxy$\5prVp+y/N0y\#{:.tV2`Ugq +&xɟg%\"⯴p>,UNڞq~m+L2s>OF4%GL3s4LmI95pu !ylM\/Kb<= ϼɝ[%Uú7ןf$x?ldtO3| .dt;">6ҁe~"f\>q;I5OF5吲.s-f8=pyH8n, -#yN&\\BZ">OFhE%5nE]-츣np))8vݭdtO3\> .y$ZQ#f\~7ckn'rRppt<}./[`<ݎOCkM dtO3\n x24`ܚV7ƓCp)8"T׵>OFi`ˌ'O"c-l0VQpl[f)ፈ/ZǓѻaH8RVD|%-p]l&.Ǔ'a(8bNDRKQh}kVr"'Zdz< In KSMOFDZDk`w܌~9irZaG^]Ͱ$dQD|%& vf^Ɠ'a7(81a.v4>pn'PgG(8q |tv58EuͰ{dt+">9>jݣ YYt<}v7EM-MΎRpp'[(WU֧a yM-Q&Dg)8BDk n'Dg)8zǬ`S'B PppŌ'!QJQpp'"c-lx2WUx2Wx2zLՎ½W+l<}h ` Ϲbp3"k`ι\qJZ8 _i dIDRKsEV ""DO\y'jp@zbOnD (86?''[+AGđf+dtS3PQp@<亖+(CL'"-WdtO3PRp27#fx2RpBabQ1gzx2`?zx2k )OPq`'|:njQpZ1)k zG1RpƓ'K-[x2X%圵9?$"~%`|0nh!ဓ`{Ul&y|u-[(̆p"裈@KV1h6rZ;??pi}8k6%z?f*s7"nhNB2Eu-QD\OF5'SOFEZ.fRY+p&DOt'뚁ӐpYz?f+s7"nhNKgf<݋Z^>j NKgj<}h x)';rZ3wx'"~%|0nhΊ˵űbΚx2zk 8wG10Δx2$"~%\?0Δx2k 8OgNzD p>OBn~Di 8wc618\dt'"nh 8>΍.x2h 8 \VBމj f"H8e`}*6")8'1+:s?" \$NDBKJG|o0 xiƓPKR7~ÅJ9gKux'"~%dtC32H82b^&tåq]32)8ROFw"Z("'Fx2h zKrZK` |"ox$pw5Ẇ L$p)DZ+x2zO3pH8ROFw"⺖ 4.dQD`E衦I9gvx;"~%Ay<}DO;flkq_3#>Tle0Fq5r'뚁N[c<݉Ylq]3 UƓ' -:ǓCM6PpOF#C-9k螦`[(8`+'`K\OFw4D[qW3pb<}6)ZDĽx[kp }8kx2z"Hkp(6`)8`';LF 6SpNOFE/݈6j vx2j ^؀]2^%1t]D;g?s-pq~1> y1f`(8`g'{1K:Ptyp< "dt'"k f`WV`^=.p0nG_k ݈uRoGϵ't7"']'+e<]'ppUH8J:??(fw4Wk1Up%)8J\ Ev]WyU_'4WyٵPt@/ƓmU+Op)8nh "rZGj +dt]3hWBK\I :E%БrZގk (8%켏Ǔ4,6TPK줻q]30t7"'V5މj wmbXX?*BRlPpPtlp l pB)ߍ;t)H8SOFbtp5.pJ ƓѝPtp(63΀KCpFt )83QlgL1ENp\pN9Qtp9RpHQlL3EgN\ppAQtpj )8 > pRY+;?|/">h >OF5\,DOB %r|E]0HD %RtbxK痊 K9g;IDTkW/Ɠm/$OpE)6KD\B#ZB%.)EqƓM˞&i<]%.yZAC\j);?%q7f5\^` ' -%PtCls EߋO"mlǓuCldt'"Eđ/p[jtQDDk/ƓmGly{qWkQ(6&;IDTkQD\O l) ƓÈj  `'H8rx;"~%*6x)`I82G_k %0Np;`zD.ȇ󉓁"vx2߈89bM`DZ8cGq}<})`7)8wnD|?9k莦ݥwbt81+6x)`)8+`vD\K'qD\WlWboE_i `C'p^~1nkZux-">QD\OFw4\={dID\)6K\a?T>Y=MWW9k߉[sW/ǓM(8j"⯴\IGqc<@`zD+~D?h 9?|/">켻qm<=@I0h^tp;"~5`g}8k``w"⣈dt[3(8V:??"x2)e4<*Zާb`DZf%Xۼ񽈸5`kE/Rpld<݋kKnD\OF5s ތp)}ǓCMTߏKǓ-ߋYOTGqm<iiJ,z x9>wgEpoFh POF75pg`ok 8WGq}<})8ŬZ݈x<yPpwbVtZԇfΓތpjGqc<ySp\kQD5DFdtGSaOa<}?0")6.ގk X("n'ۚh 7G/awcjp[S/क़60}b;xYRY+/;q;"Rk@Ed^6px#" '{ {QDDkp|0nh2Qp\*DKpTO4p(8._;Ә<eߋ"'Zf.=M\VNDk v݈(6`+ވ`K}7ǓCMl8?|/"nGO[("'4M4-Ɠѝj b`I81K;x[kp EdtKSJߍ"ZKnD?i `)8͈-%dtS3@E%T;{蓈x/">\"=p윃q+"q}>i.Αpdt;fij Ijv`ތ|)]yE>YCM\ +`𝈸5ؐTJRp\)bvWʙ܊k j\y +`5(H57O;51+4DS(8iqS@C+I :\[R )8 `ݍYM%씣%)8XAN4f4zIV:YG`3{`=FZ`+|*68 'px-fi?|)NN 7#⯴pƓMMpz Nivp+"~5^OcjpOS g`fD܈7ƓGl)88CF8wDdPS=`zD iӘG99?|'fE?g(f5SppE8"x2z). rx3"nDZ`m,X .1K;X~ >/`?=[衦xy$Dč,xdFq}<}).q+"~5+("n'[x2("ދ_j "UlpyI8ߍY_j `|Ǔ=Mp)8E|)-px3"nDZ2Gqc</{Xy7FcGB-q 8 Mh`T]e'â+HMR@;<<AExQҏ@:T U:1<]stcJUW߄YhI.gɝ)KpQiƒck-1l11@ :Te$G6Mh07@zT ͵v>l1=R$4ə5-zLr5[L.M_*U=Js=٤b`~X$I҇$AppJU_&Hrd Jpp JUDXxI.fɍ)>Ir5oMppV4ə5 x <tBh${xpp\4oRi.[zIh&gC</"8JU\^GN*Lx 4`#<Zc`n 6Ap lW^ *#<d*4`lE$I!E;S JxdJh  eb`@p@g$G"oiM@Rգ4Y-{Lrd:[L@_ R'iƒ$G`> RՃ$4Ex$Ifɍ98$zT(Ń\&-& 8ic Lg:T8Mx>UpJU .Y`<&k]X)U}dW65k Ϯ'9@yjܘFp?Pz&<8E\=h$$brgx9zDd%8$2@|Zhߒ\' QO\=8؏?#b`g(;[U`I3Yx| Cp=WzOE'l11&R4yS-.ܙ*U=Hs`z? | |Mp$| nXQc@''Sd`ODgV-Md*JU©E`nb0[L6EpJA`&B8 l}V D&AplT| F k=$. }gɍI};  Z'0ZIpUA`z? ='0:ApNQ>$V7"8ZTI \Ane`pg@'}vשU؃Ǭ‚f<  0ɱeذ| nfɍI$.!tiₛ$b27 pH)U=ʧ+'Iάp4 2@R40E$ǖ%q~`u d ,YE<"E}._fx|?IrfOӄw,%8؁RՃ|! "FÂ4a,!8سb?O>{[8I",h@˕>ɗ/AIn 4$8o\HH$`w nDst|%$ℯR|\?{wWa|Z煂ˠ /VzO!I> | }M$wD|NpN}uE!2THc$9|mh S\p3[Ls R'2RHÅ?1Fii7:|;1i0 W~Z>~|$_F-&sFR<?m`CN0zAAF2Lr?w}|sOvzl13/}&8?2@?xc )U=I. ?o߼xo  5`X#85`X#85`X#85`X#85`X#85`X#85`X#85`X#85`X#85`X#85`X#85o˥O//߾y߬o?X*U=Orf 0[LFpkFpkFpkFpkFpkFpkFpkFpkFpkFpkFpkrpPJU\$9$b27 ,0%9I>&I2O!<Kwm븀wJU)0xg6c>]?8DsJU$Sdpd| nz208 {&>N ܙ#JGZ*>H < O)0xg:c>]?1U`oJU$@qr&@vh;Uwgu mF iB#U0[LxR4qySݦ>)U=ʧKyLr9]ORzx: o <]`z|lB| ,qd!<ɩE\>s/!8%2!>^DpDdO|<zNd|!x&Fp=!26>Ubrg8\RՃ48;vd$tPqK"`W~Kr&>x0:T(Md0Nrd`~K2-&צ@Sdple\=-&7~@˔ ΓZ$4'8(U};kw*l1y0tT0E"@}H\Ep;V$M`p"OrjܙOp;Rz<;k6Uv\ ,4WdnhlXAq"OrhlHa` ^4)` k竗kud&>3^T(Md;hu`"싫#R48ɑEZC`n <|GfIgJU @}Hr5[LnL#8$i"w42VA"ɱEz1Ul13<S$eq#iƒ)R4 άpn\)ZA4Ec4W_KO\&'9?!Mx074JQk |LLM \48p*M|`*U=HsIs`"ȇ4Rգ4 [=)3Wz"ə5h$dj Hp@k>Or}i/JAk-ILgɝ9:Yhp"t܇$Lp^>Ir5Ifɍ){!4|Ls`n BpN%9$<3*4Lrf $b25m%8`Ci.LM@ <QBx!8`#JU &<`Jxx,GI>O .YNx !MB'8 B贏iƒ)x-IR'ItWUhp5w@h 4&<3O%880b:O&88 /#4Mr5[LL@$I<&XQi'-&SS9@B$g>l1Dp+O҄48l(U=H|Hܙ0 :Te$G_\S@G>Os=vpe !8Rգ45Or1[LM(U}&4xo `> nL_+U=Hrk-!Mx` X$WIcbri ~PQ@Gܧvpm ~H4;k1Mxpc n@A"@|H<{Vz5yLr9[LL==)U=LY$dn XA$p`~Kr1[LL~*U}5j\;Pz5$i\[Tz{k|$Q"]?r?JU_]\8ذR4W ά,iM )U=Hrxߒ\;S`JUjpd xLr5[L.MW(U}d[q%8xRՃ$I~N|H<`7Tz5v1Mt05 hu`5cbrg yk+U}.b68K/M=.@a4?@ܧv07f cIX-l1y0fRzd)^OpRz2_i%-&wx&HJUDlܔ0˹pUiF>&9w\8]}v?JU_y\8N4W άpPn\;1ϹpRIn"68DIpi\8|ŵjp|ߒ\S|Ip<}ksS|"8zU^^qWO2-&7[}jp/wR՗ @j&9w8T.[tIi;pp\8:T8]Ο.L p)>sRգ$7gInJU3V[]5LWkBv` o@k&&9-d<[LDpR$X$}!8ZTIgnS]@[':Mr@p]A$@|Ls@ *U=Lrc@)U}Kp>$-&Bp\$$g'S].'sR`'JU\%yo 4LغR$${LM[T"7/.R2/b<%"Iqv6xܙؕ&T0M+InJUMxRIHrl ة$+U}e `,K+?UzdW ngɝ)m?Uz:@< )U}dQKU_*U=Mz\;x0)`M$INq&:1 oM|T(M5I(U}n `\8Te_,!l1y0R IIYz6xܙx&VzdiR#S/!8VOI?vTCibSkOpR$8)U}oi~P9~-U=5$o˥'V?+&S@$'9!IƳpޚT0]f':TyG(JU_ϛriR՗I~#fɹpJUOcIFRՃ$$>xܘ JUDlqy)4(索M%8[==̓|6T Oo˥V[hߒS@JULIF*6'91iS@5Ga n:J2/U=2tZb ~@%T)y 2tTe_-_KUOf\Zd%M2-&$Nrf @cc`yLܘ `wJUDl$R#S@ `GV<ɱ5vRv/U=5l D- .  td4[LLcb:M2/U=0l~@lzؒ7 yml1y0l @'y.g)u\8@/t04"6l'6%z<D o˥8HG$brc x:8Hb#68Hx&ElpD 46GsSY.V|5[Ln'6;?;zTI $#` VA t$8V<ɩ5 |ÛrizEl =&9-&觫 x?/ LzT4{KB@=R"b^4M8ho˥RI~aC%8JU̓Y b25Hp@$fɵ84oM@Wbyltue.Jrj(0`RI[9Nrmɛri:euK6[L.!)wi>l1{k::bjuzMp@gLrf (tuzKp@'%i+3go˥h'$9-ϳdjȅ`tUzhHp@>OQZO\Y;-U}eFp@M|B_KU@hRI,@LKU@_hR'I.-@ 8I@+U=6} 8UJU_$96-U=0]'85JU$w t6J0}7 ]qYO2-&\8`JU<s t6HRC3ETI_,@].oSsg@׼Y.V`/JUn cb` …ijQ 3%./ t \AKKpL@W؇4'м+U=2] 8`JU P].kqvVzlNpά]4$IKU6KfvWh5[|ץ h+pi&Wh-[ԥ h#va!Wh%[SzS&mlE#3O6M&'4m"8`+JUuxRC3l&-,K+QGI~_fɃ7؆s]6QOع hvnxRc3o6j&`lS׎-vV M:7l̹ 'w97$8`S&:.U=6"8`S.L76f\ZW)U=L%`+2[Lp&flAp&M[36f\Z+U=N7KVe<]rnlvMpkM[76&8JUY]%16vflvIp&9;K^[V`Wsc+TIcK΍Lx `/W['8%F&]L{32 8YJU{52 8&: ndMp$9lZahMpsLpTzhIpsL12$8IJUZZchIpS M22$8F&V9^]&T#@ Mx uF&`[T$Gm#@+mC@+mC@;YmC@kmCOYZl91lZm`Ap MvjAp LVzh6MpϜZo`6Mpw>tl91tl:ah6Mp L00&8GF&N81&8ci~ V`04$8JUp00$8{&NM=.30=C@ M& a`6Ip Lp|ϩ X#8臁 $kJUX:lo91akFp-C620akFpã $@?ܘMk7 |Te_,Iw|gF?k$b22"8`>~] ufds&HII_c|S$8`8Pi$ŀ?˧paܘ5߷>_)R&9p@u\Mf[[4Mybrg^~o;HV'IN-Fp4aM`nV?{>Q<.-&7&#B+3)#q[>ȻaV *@,hCDL \qC+  eHSŢjqCwT{dp-tq¸~V>`d08` p6Hv>a՝Xh< #(uu#G3ؖ۬q~|>ʟ :(`H؃ףyp(` X7ep"N$=;N3A+7"~?N3<%Y"7՝X'5FI- 5W `?>۟S(譋< n{98ヷ޸,u5fpW3>kQN$QhP*YNUYY J]-<($+@|(u5fpWENN2OsJ q$%Ks1n|yq<\> |x8&C*I\2pv(uu 6gI) ع#RWwZb|mpYj$6g$섑ХpؕO&b` p6HNr#=(M:`p736:)uu 6og$J^>#+q{3i$y%aץMlIչ(4WNJ7J]MM- x4 K]݉cfx4I~/uu&6ogGIO]iFRW7xq$9MJ"UoJ]]M18M<_sdZj. INW@ lO" nDs}攺$%ɥD\` x vyQw%$~g @.chs؂r)i<%?I.LK]-Dʾ2J2MVRWR` xpv$#,G}eu6'D '.+u526RWՃV->U J@'t`\JgI# z:ɩ@o(<+i6d.ɡ$$RWsQE$(uu"' IޗRWRW$W? "`[ x0C s-R l IљElF$I>J`/V x8[$y+ ޻MrzN:N2OZtYj$ąL1ɱlWRWI>H"m\8`MW$RW Q{ ̓.oqMw>@;)u5J{{tޙh#6<x$oJ]MES,qKit}5:R x8&C:N\;r&r:ȵNߣb.1lWIt7k@?i\;\8`" W G\;茹h3(W:cS1@o{i\;hO&b\8`Ӧ"h$ \;hh;8WZSRWwg$H`ua*ָOKRW$o\K`T t l+pX$I`>`z.-4oo`^jdl|V4ɻ$j?;]apVL؅$RW <I|V%R lx8;JrP[T ;(ɹ1I ؚ_N%qIl$$؈][7nF|X$v.bk\8`NEvIޕ:56^ykX"nʥ$:q(5v$# .5]`-.J]݈XRWwFI>IMD@W,K)lINlÝ%MT t Y[16>{ݧt;S.ɩ$>ɻRWsQ;q$>m@g,K)S<ϒ$RWWv㎓,JQFb\8 &vLN226`dMD@sSI|է4c;Q-rW1:ẋRW7b˥hpHVթw$gI~@nx8$Jr( $RWs1t+u}hթ$rccnwI{죱}cp@:Kr! `':N^iC$:J@W4=sZN I{SJ2>R@_JI>Jiwz뮒 +6ɩ諃r)Zk<]%y- >q;J퀞zzq I{1=RWw|N}fp@I2CK]أ~7Ib hRWI>JbM. &@,K) l$OrRj! `$ɿ$t葉>p.9Ir+ յ_V}bp@gԟ)@|\͘J+:o5:Ir( `nj 1:vRWb`$]Q슱z$'I;\8GqE\:`s],oՉzU\:`]4{I[rDze5:HctyͻOrRN08wJ]ǃ(76jכz'<08<lg~8]]`p@oyc]<xr6N̓Jx!ctIIxO&bqEglо7 ; F Mbte+Q$YIV16tϻJ2Jr- gl?H2&I% k@W;Js4@ǸpIVo3/sݥtp! [B.uPDۮ7O$`^ƅo$ 16؇7I$`o|_^ƅpv䟒z y'II|x8%9Qo~/uu&yǫJ;f("ki@':$olrh1ؑ՛0I~<>Y(H;I3.% 4( `Ǽ uՍ(X;JriW}0.n08g4o|- 7\З7Xuuf\~% hp6I2MJ$gp @;h\c;i([ QסDOi<=y>&|Mbe(أ7&nDep`x@\yBx:sfh@@x(M34t ` gGyx0el}L6KoJ*Օ8M286[ W 7K32ߎU[Z&`qP9T>a @ :/1,Zع8 ̓*C*InĸN;A ͿVo~wbh՛2yxHhx/a\p@ONמwI0*08:鋇U4d]A:$I0]w,S} .Woby@}1NX=ѿ.͈W\)o><IENDB`conky-1.19.6/data/logo/conky-logomark-violet.svg000066400000000000000000014606621451224556600216120ustar00rootroot00000000000000 conky-1.19.6/data/logo/conky-logotype-horizontal-violet.png000066400000000000000000002163321451224556600240050ustar00rootroot00000000000000PNG  IHDR H6 pHYs.#.#x?vIDATxod'x>LdI^mKIU%vUVvucI  ${SQ c]bvajn؁= nӽ[30ۨrJVIgqq"$#x9/t#_xN$MM14 ="H@(4 ="H@(4 ="H@(4 ="H@(4 ="H@(4 ="H@(4 ="H@(4 ="H@(4 ="H@(4 ="H@(4 ="H@(4 =i P?|'KqX 0B;X#X#HOcrvp^y`iB|WBv~;{J#HO|"@Pv * ONh귄lԂ<z8 =tB1T&HORv~QEr;Nqڎ@ S1@gt]5.8m@RDZZU`v-]hAzJ)WB;@C5&^@ S*1@gqZT ځm陹_kA,i#귔gf lWR[ݥrPL] /FV=@U܋f陚BjT@='HBmV>7gb lWZR B!8Mb~G)(;Az*Wl3NHB;P =cˡD?F U F T ܋z o)e"HϹzmi^58ŭ*_̄ yսPEgci9ζtM5;qڌU <,|7y+i7(3AzFـZot'Nk鉹8[ɧi5OlLecj3\lcq6tɉy8[ | Rpg;N[;]$HYT Knc;=Yz,FhKPovSmwAzN۰6JQ@Ns+^~/+`at`tsp@=S%HϠ =Np|Ct1ڍOk}_ ٸZR fvV{JzޮhL =rh|M5(zp|K)-f5&v~W)G"L j9v4̽8Ƿ:?β0=SZo\GAz,]W N뷠BWqJ_.@%9!e`IP 8ۊ aniա[X %{5e`ڰZk u;N+TAzه*1V?l*gφrhUa]bc)v$|?~O fN ja#{_Om`A8 }7kq + ӯ)e?ތk*11i4MUUkqJތoR =VC6A髻Q`X\{,nUc*i9~GSJnTm!z{Ψ0KA~㴩 #}VT 8X_L|?~? H_ D3=3!zaz*~.g7Tbf}7@?AjlLm!z'aziC < } 0qy7*1sCR[A&II[SP:4MU`|KX_DYN`[БQA)L ٚxN('A*Sߏ/+cs#?R 'H_"y=ӎ0=?o^E(U%@\OB0[0RpAkJK xP Êֵ=24 ᜝p-sʛ*.D(@ vi!@Y]ٷsXQ[Uft _WF#M~Fbg3n޻20%(24 7kqJ@el0aϓl^%*aY K~KT*%# /(gXV'H?EyfG%i[8òx(?A Uv= bI *cY K~Jbf3;Xv| `I *CCLYTjc+_RXPꈟ/@3 OJ@dj)A,(@3 OP go@@]7z'k#_Ue%h&A 4oV| PI JLC4-`XI2 Ӷ2T dlvzL3.d0UP c3qv]%(s]`"ގP~cf6TO)BgvNF e('A ]&JǨ!ސ|8g SĿ`}H`hoe(A dm'< ͇;y'6/ y#ي P.yeQ;)Ϙ!W|Izue(As]%WJTװNx>?鶏턑c?<'2#y;n?,+@yҟC ,v7z* 狿$ $`ST:tX5T}B`Ll? iQeYpG?v|tOx3 BtÄC2 be)V*@߾fgtO  gt]%sItf>NU|<'G ԧCmG`Gp!<KzBzxH{AךuA3Bҕ`㴡 'H?=r%ήD%0 П}>-;WٻAVP>zmY= }- SN`}ʧJ0voee-Al)A؅sfzo) ? v) /0B1\ߞҞ?e`>vCPmHWzqTRg*QN w'voO{w'z|s{GGY w=c@}N (=l! ו\0;C!kdi$}}7Ӟ%|EG6蠟)4=Nߝ !J?s /fH~8qWr9 }=@ !緯Wh  tԹl`7bоK}o>BwB̏ԕ^j`0gȻѯD r@NV7|7Ğ<׽z;Ԟ>B pi,1R=MN9s|]F%Pbe3R,g6CO_@kutᨃ{zұyC?-;$=~{iʭx'Õ.usi{"\r4ؓ©?}r ? X`jŗ>=5'peo8huϦO w3EaޏЯ)@=W =@C ҟQtzJ.I+($ɱ}COtO;Ǐ{q.[B W9 :Lѫԃ }4Ԝ9DQσ\!p?[;3NvN>:gzT3OދgVo~~;<}2b @\yRxgbo-r< &Ѝ 橉du}t={>9>qO=/}e><ŧb+:Q>goO(+=@ H_9:4ys;]8O;t;.oZx/wk1rYFlu˭);ܓ ӑn3\OǮwuө]Cz/vQu_/t?q?oW^{6|9v|R|:F˺tB?O0}\_n;u:/'=d+\K0ަ35%,A^kJ0=b'{u::$Io}>y\4[n݇8$OyBx 3hYL }.UlQ%cQ< G$s|䓣.t?|痟?g_ O{F;ǒ=O)@Yf`:p%(;Jֺ2L }׺LH!$;WunNX}:Iyu~?#Lޟq~t N&׍&o)ݗ5%AFgTb[aT]`Q$C Gנ}zvG7zO=7N}:M+d4>H<.M FV2~n7D?_oG }w:bs 14^ O\2!ԙ5(vB Чi:r??z3Oo׿%hkѳ3us; j gN0~.xnuٻإP;K^0e:OAV>yڹ($$陷n3R|ARx8g=lzwMYvAŗnuj?fJ } ٢`r3gC|D.wjnO߹|R~SxdO,ɞ.Gi<@NЏ#<=TQ֝w7b4ӺW;үY&g`'ng Og!zQn';,to;$+ ;wi I~<ݖ=TϷx%ɍo#\R -\@cRݰLW1D蓐C!D|',ߺ,P?tM Bgg,%y;]NzI8~P{Z^|p9i0&MH韜A菅[':$Gb'Np>ks\od+g:(^ 蟇\-/Y5'tP7Mi*8MrKb4Íؕ~AƣA@YEO$ž}R'}<5?ny孶I?|5$O`37Q NU::?l,L|M9֔`<ڑ~S?Ǻѧ^G!ιyaBN|v\(\(߾[o^^zf '7;*!oOy4YoI!oM ƣAUO%trOA7D[!,L$=֋!$l6?nw<\s}%33;BgtIo>3tOu)D]ˏ5.H'q6著N7wrԟ(D߹zY } ѷIn(?s CI x?ا|孋th^ Ď;֍>x^=O:Ο+;!&GB kg>y?}_4?#@>0}֝3L KeIwOv"+^t}/tOkᩅ{:OFp'o?|pQKןWzZGZQiT>NVl>Ay=)~v4oЙ>__ w:gө~z,DWb~N8\ ǻt:(]yz` ך\L:үzX7^ ŷOjsy8>ptՅ>)v:ӷ~h1<@q?j}C"@LG_xI]@Az(`^,BD ug!n(_ g/g_MIoS^I00B?G%)'L_?Ѷ8ɼ||zw7 X}',Qy=⻝Ӥח^yiݟ%D_sB3pKפI;|N6WLZVg }7_]Ktz㗝7Dpm3 _rI1lBtOZBp>e|HN{$B\s_Ͻp5|뻯m%ڇӳB/E0}ǣn-+4"HL=qZ7ϝs,}?ooKfovw u7=~H~eOƚOS:үy'{! g:ӷ\_oC1 7^ _|bŖ}d?l}FD₩Ӕ z gY,Lv3wѾBv/^xzw}?B4!x/׿%x%e]y䚧z:Co7$'`ykn //.p!% зv0 O?b> B@|󻯄O=շkBGOx FtowoGvwQ3G8=DS:i40|ڎW*5T==P]WOW!l4 =SF_F w:u,}'O(C:]ۧݗ|8Iqr]>矌_VjkB~|qw QHoAc>^cGOpy7u]x]·x%\}1UM1Pg1;}7@ :bӡ>3sCIO^ }!Γbg/tuն{GO ߍ>wg$~oY>Mׯ}9\r"v[vi\A7z~^|+g4tsI>ɯ͓<ߎeڷ Wc؍?@#MNu7^;1^RjƵ gxFZؒ<ޚ~N~'[}wNѧ̮p10^`L=PwWz,/)mFm>vd\yO$Ŕ[P w!tZa$,s'/4~}6sbB@Sd]@=ësGOdӻ=ab7l!K/υ}œ< >z D47?uS bz'ɱ [,JJ7I7Y s?<_\ n#Ah׾BXxIk\ 0N}rf7;gKO^9}ۍ>93 MdQiY S }ĸg?pR7Qniҽr}}/ ~,y_7P$ MKO&*gE S׎˞1؍>N7k%n跻'^ /-. :'vOKIwh/+B(pZ}Q==~n˒|kAcu쉫Wb0멣GMR$C<8O{Co+4P{K`{V9{B199]?̓I\u;^SKONwiw"Mߍ@}dgvQ>:S']Oc~O ӱǫ=ƒG*tBяG?FMpЈO={R!aY NV uO%gGaAWm7o_(߹npy.<㿗ݧ}t/?|:HFЕ2d ,x:#)$λӣH|| IXvg_:zW4Ӂ'<=_7zhGS 4+>հ'SGeO$$9vNpdJ '篞|#=?ŹL+4 Bg_z:\rI!oI NV ғG {ޱ>bt?aOvsS%M3~-BSL_~ZoI N#}46/InGo'/t}89՝pv/yFȺSzKJp$Iod3򔎸 'G'a.toN6ss\svݹx:;/?7@}|zA|2~qa><~'YSq&,~wRL{Tw<@MX?.GΛ]kq=a<ދcg 1qeXn\,X_b N7/=Kg;n\fwU .{ҕߋ M:3wLjcJa}ZSƁ:_X wΓp\>Oy;l?x)|yqF ,>53u5<o=ۡ{K5Lcra\KTuXn>w`_4s=٦(n[WϸWXi0 P-L=Jǹqn'iR ݽr3j(87\8[vZA+[] AVI|. 珺'ݠ}{?~'<Jpʥv(p?W9Ro?{1}AzhL[hWZ@-nSwNЄ3kgVgvl.[ǭ;;Ng[b3 Ӏ1FTZ|ΨZV`Nޘe`/Kqu4,v ]/|T }C/Sٔn0>3׉>;.;%W~L|OS _3+_Bҳ 1"ꗿQ?P }]!ޫ wփzÈwRJ.c$C }}¼|oss|tZx<|_; C%ዝAz8wV7*W(KlZ œut/ oC7HxME3nh:oγcn5e;m1Tu,WAzzoՀi6d|ylg;k^Ɓ|n7o{wBqHAA}4L:wO?'K#>0t ^Gz~6 =$o_(Dy u4Jcn0v5"Xa=EA|Ԥ/JLfT3]KƁR; 6TՁ>uoC7\|ogpt/g^x2|AyAzh_ݽ7sτ/\AR v~˗s0v0f 1u^e뺵 <$P EA3uNSش$fy\ʷzZ% y;w \ւ vAt@Q'pԑuy_{6/3i~%1qa><~'hA3B;ز"" vnv fO9`v5oc/PuR[xm }S|ٻ* xIǕqN4qX4N5u g[8YA?tN7kx2\ =4 =t}Ƀ_vYȃ-lq+N1px}E }oc\W ti0J6n W =nq=ۊֱ3[&׃:y?.k@CƁ`gAތָn.ACў3Iu? ؞>G:Pgә>Azi~_kE(#HLI%jla@F:h]HL@{kOh06:T BAɺȮRLu v8M֌e|ȶS-L/HP'[0t8(H?k_\Z_ }Hs~f • CC>5 O'CϏ =0ay'2 JA۵`g%f3n~mgq^NVX&P-~.>Bo Ogy\ȗqru mb!%L/HP0{'8R>)O'>\ OI CCJdkh A??䯅vWHݐVqJ>.cm6YY:m :Bl˜&P-}.v'zíW'<.GF0=u6ޅ $yo!|~[>RoҟPIxAzgM`KU_td/G:nG)x>ZG Pm `뽅>F.~hw)o" "Hr?60gˣXBa9{>?_e2wӓn+9=6Otl\}1E(%%.*.NGArȾL0.LPv!Nqڋ?,S^Y8".[qZQ뾍x2[e!!z&-۞(kg w1A"RP`-џ{yΥ.A%ZO f"L =@=uB-y3[qoBB;Dn"Z@y qU9Q5u_cvZQFYB!L?~gu-#Tuݴ/a}0%|Iէ :N\D P\(l(cA_N!ʲ@ϲ. O2$яC'L^&#]^O8e<;zͩgI/L Fe_* tfe}Dռm_Qv% k[l@1(l7SN@}=~Omx?26_&7χf2Pu3\7 s?)bn>)\!]zRP02Few7*lhWTa{6m ڌ5e[pʡ)#Q!;^6F9AwoN78OXDa uD/vsNx+@Oe_ZezhgA깙oSXwz9;30i^JƂ`Iw(MwZ༐Fo7PJy9v(B@'9tR0vYzN~M9뿅|{v걍Gbr|$[AiRJn̷Tbʏq&AKF~Y.T (u)xk%<6_#Puzޠfu׎p @m)T>3i1l<,X7M=0&Az-)vPp]g{`0e\R;BnzI-S''Xi7I]ea{{gTb*t?{y\ 0=[޿QBٺiQʳnB߁?8T)cPnJ͕Ifk}HPJ]~*[ȏaN9{P+KAhyt?ݖL]2PuJ9rMԎl?ӂeӟ]U> :D:BB;ص o.e\;>AuցDԶ`6umw{*17T]F"'0VBUE({J͒ur;ȏ']Me`L&" f]~וJׁv"q͏N@޷Y'ڮ;nS f{6ʰnZ 6+m SZB@=xHFإp%(]%fȺᏂ/4o<Ę_oabŻPzhpC5gv|}de(-%ZЌa֮GYPZ?)\\S}Q}Y9ӊPNJTҜs]5Tem:p!BnЅNuHwzҼY Be`eX75ډGL iS%IߏbMܓPN{JuN<^fQd e`v)of:_坰WC]a8KJ0SJP 7gKfnj]ԙPOyt]5\ #[l'wZ ̺o;ydw01AhL6 xO`ĺiͺ4vgŗ?Uzɂqڋ'V %6;n> Byd;|Lp=;T 8N`ۃ0QJP*M^_gu%(~$MJPq@8O0=@5|\vMzE]܍ =T[ywesnhw&';NtlyyO)wƹQ6g$wOG>uq‹/ ӗĝwdх&oM =.BNpua^(ۙλ0㴗}Y7z=?4~ݴlTq@dyd@*|w|zfןWrRBWdt\ŸZhﴤ =yw%օ[qJei?uU%($,ggF@_ac?Wo'}nJW \RR]a֕QBC;8P?12ljL/^J0+JPm&7Sk*A\ӧ.kV-G&vYP4XRإF!fO{Ւvx7 oj@eaum(}X8g[<ѠuӂmJ܈=U0ѭ*A%4o]t[&|)Au'Az`z2dB=IdN{n<<|4z2 T·xYfcC  cE j9.nhwlдVP YFs] *a d興ՐtIe%$HNʹg&N1[֑~?/H+F? :AB-k3ޮG@WSͮ Gi/x_-FJfI 04ZkAzpF$=J_̾OEiΗjHWGS}$P O݆@!x-ՀZQڌ[@l皝|gGhKwVjA)δ/#L/!H9$g< I:Orb-@%J?Uur˻"j@-+ANK:Ɏ ^~ UiLjY7!TNJ =E ħ#]Zg@|)t+Wl嶢o 0ء/u\^;82FVˊe "Hυg]0B$}N ?*So~en;w9}O%2jZp>+HMև+A_S lRtg,О$ɹ~/KΧi ПtSg|Ϣ;aZ8Jy_nꙈ;qP(i4|K5rUs\L#"U_fA*{mg]pIu,)%LT =rb><LG@2}ڳ_z:_Se!U (*oׂ#;YgdDazɖ(Az.xh^TڤTk_!|/+d q BPGJP1w= ?0uu"paz|\ =63{W_^!&D%l'NU`cV@I'L ׉ٲ'Df*@S0EL ^l?8\~מQ CBT`cVp|020uj󮝾YRJ =T ?PWK= CLu B@yS0urYހQ8 JPI{J@3qǚ'IY-X@mz;}Q!niI#!zi[A(Li;d'N:`Y *iW (Az8Avj{{SKoqkr^꘻g%!miu%J@'Mtg #z[puJ{qz3, PBSo聊g"8۶\P65} uW (Az, d1~a<ɁÈ.<yV %C`V,L i;d!_/^S ` 4NvҾ_SÇ KWwbx6k8-gE`cVЉ\piLHuP'+JPM{UlFyQ- *Nؙؓ_ßt+N߉gE`cVG-&F@7-c$Ht`&y<ߟ: Oӿzpr%7ccx~%NQ(;0t`*cVKQ׋qJSV@(Ae R(@E`=|0F/|+Po τ]ff y6R ˺|{*4{ X7;} @Ŭ(A(e$H#EÔe޳GZ,Xu.oǡqqz&ίiKx)WY] B!dƕ8{W%pj.C+nI'?gKZN.Os\>şg歓ssӭ_iKBx{@5y-I*Iu/qQ{3fu)קe2ûgiO>h<壝?ec0~3ucoCؼj싅UFB{=FLc41_Zމ e(kj5~_c& oDuH# fPWz(/Ylz>BssPy5!z$J0v9eN>>\֍@Ǧ|G2[UJ ==|Py=Np'TwW2.V藍[Š]?nuJh1PQgQmW (+Az @?7U8ŮN)@qfmuF֕(U%]%F8LәG<0C+ fG 2n!z\Kn\m*ݼ@٬)A)e%H4a@Њ=p%j`X7q=TVY @)MRD*e%Hp_*2n Lm|W/~goHO~\_@dl(P"JP {J@Y CE eT`6bhe3V q粙s@ǰUeJ~j!T{@Y ppx ygϷTҎ{]U\s;O-GcuPO®Pf0"ipf0MyTҽ#EiQ.d1ةn$qvM% ˂[؆®Pf0uT-mG%lKUsAH`\*_?.*8*0Tku =P';~l)/R z+_4cZ޴`ڼ/]%ڻ"@ Ý؍~GFolS%&b3g:r6 P3Y-ej%ήD= 32pNJ0xAGV`QJ#l]%ZeC jPvSpx*L9݋Ӷ2l+ 0iׂU]G g'/`t]%xh0Ҙg7T`*n.XG/nӱ =P{=R͠320;,F]wr#8-)0Uk =*Ybe5npя4.fe+)Y@KJLBwC%%~ =(QmK%s3~f38\ yd9R A m=F_7*h;Ϻ ?Jbim*ıRqʛD(U H0!&6n 0~0M` +Agd|މwav)8@Yl2YOu( mMShW Az Bwwïޛؔݾ0= ' 0Y}DlQh a8{[%sC0lvn*+&[0nD-(U H0#j>Θѣ pNa÷U8{qZU.@\gfMൡ S-;՝bOAz1˺gAiV(?]O}8 Ϛ/wP r'xɅ8[W p3?r G«]%*lڝ\gSu8J9C0lvچ$M%#~޻|[g;J@UG \Ѓ)ݎP0.P8v=zr)|V=Byo(U!H0fh@.`ij`#N_S {|f& Sggr@UA8Lө'@"Ԯ#=f:>5eVE6@U]W|85)c $HQ_*/@\ocC NY{8{W%jo[ Az1z8`@&Q8LI%+qޏe!ۅ PU8dוKA7z\c2޳nD#(U"H0F  `:Do0,D ye(NӰg=&{ϪiJ݉)U"H0F3 ?ԑr㧣iS )D>qǥ8v#ϙ̺r)F0G 6b[ Az1U @$aGaI,ϲ>@Y_8/p rRnS).,e>88O0(xۙ>;L]f8>wh%Y?Lzt'=9+^uuy$GWN)<>5oknJ|^«?xi΋oyL:WI_|W.[KާYyksu)W_| ²a٨Y-_v\}xU̷wJPat7?O/[>ekJi=跕b,J}4d2R~\g(ÅחkqJ0an.wkxwR~VLq9^kzDZމ2e5{Qg5ϫu5`&ǁ=*QM|/D:8dX6/ _tShoۯTB{! \xn~)I,eؗl6ew'sw cnf88w37){ZYV d&MO  ۱qo-en#r,"H?~!:0W ="H']B9MÙݿ 4 lX ={AHr!w?g)/ ЇvqZ]r{e欄C ӊ1Л񵴥 ~;2S-[Z1&?f%r,"H?H-'DL?ue0W ="H']B)cW O79ƲAՖ sAzh~#@B+NC#VB;MU g6v0U{G(:uܯ8\`"{OUm:X suQ| ,5x]"R-ڱhߩgfg@"H']B)4{pai,~;o] O=DAz@ΐujI_oYvK܉/ nܝ)K gP =v _ٺl-Y_CnXojʲ蛮;NO { WȜǣ:gash#1=Y8=?:n4SR։6 .i-N ǡݩv`j|\+B5M ї|Y >N[k`8_fg35%'T =: )@R &,t gC&$y f,ؙ] &;3tqڳNF?yqBdѬ)C]wm.;K:bFP3Bl)U5(#>}#Ɋkh]$򟓹|?ϵl['Z[:?ǟ~<$kڹ[U_> =|xe t~=@ӟˆe*> o>ccṧjpZӬ]}xeԷJ0Y#[8G~].raZsT_fb/TI/1s5C7T zzxdz|O%8chJ=>69;M{mȱXN|/!z;c 'Vo.H!DsylX6 .__|f H$ɄdJ1)W+D[n+qvٌvӏ11v=Cu Cvla{zozokg!_ 0H#Cr,#H?!z-d~}MU&HƁ F"H']BGWwg$fAzai, OP$H3ٖ BqiKK"Qfl5[iQE#]31Q]5cA DOha:Az&0d)+dN c@( !z.*ۛǡ [jm(c~> ON8N[y7tGU>U%O6H뱽8ēoAǚ@tGABԁ =@*U\;qZ,';qL18ٺзͱlsöm> dV#_qJgK Azã<i˻;; snd{δ\ @_ X/Lm;eQ%.9.ʎt-` PH qڎ'R V@F:`nQ&aU f+?C7C\Cb0SyMh|}Su蒧66OqvG%jaY fn] h"AzB:CaM c%{@Yq+Q [8m(c4~54 =pQJ`ez6eWW 뛊Z†зnڊ[*ay@ ' % <eP{zN=w:l*A-)֣dpR]SZ{_XJcU jvsו2|<;) %uvQJlɏ<%H\ĪZmv]Tde n$띪ҬzaC GBu%XQkyY`VTI\^wkeOgm*gUSA~Th4Az&''\/?  rNq{ M0O>Uh1a8HU(%wP2TJ\n7JXTI-+dMT֕鹀{)?GQl1vLU OrΦO><|z׊y7?_.,/jN%H4ØaLɎ$ph"4KqRQ(%[qTjd#lP-y+kK vh0e*t 3q3REa"50,N< 0JP;YmCVvpך2P'm,Cee'Vα>QjU`b| `Fl pnN%l @Y"?JFt[W(%c.w8[8(XRJZRv跍'Š;/ڠ>QVь: cϬvx.fE je3~ PZJP+G|+0Z~ⶕ ֔N&H%}}RN''~/npݬvjێ&pA+JPw⴩ Pjו6P#yWq8%%T'io8>)-KͲqF `tD.lE jcC8ox[/BG_x_%J`WI;JCdpSt/vV=m]!nHgzZ4gH0YRͫD-dJmE j#F 4ІX/v1c} p6Azί/|f+.Jtu]mE jc] l:Me%`vQ#]SX9 G: ATzЂP5pa܉c2` [Q%;wU1D'HϹvO/~/H4uGzh% %r?Yy0B]7US\U-%`L0Az[ç|!Lb>'Nupէ=Tò½8n)Jo#So5ŝkN֔F#Hυ%^w~Z8{쾜=HP)PAUM%JXVc.ԅO0=%`(A,(ȲWm/`\Xډf@|ߧ$=}T`򖕠/S*aE */{SȖX?v1S`=~= =]y8==Yy$73-S H"`ejtz؋UiU?=%~G3HI71L'$\|){L<>qzm˅v*P 1*QyJ^54`v1Sj2 sni!ʲɀaZMNOtjkMȻougTz +4ڊ v֔.FHvPVx,P<B|y{R{BpnN5d!pOuaTYyRb;ee`*Tަ@esoK z vʺf.Ns9FdBwҁh |~N= "H_N)Ӓ@P˴:<"?V4j:8%%[:#C,+A݉c2`ڡ`උJHvr}|ʧW3d,<-Y,2uLY8JS<Ҷ*eI u0j * =қ 'n=Qا=]Bb+afwmkQ;AMͲTֽ+PהҌub=Pwy3~ֻ 0> %)ga.HvB: wBeɐ5is3rӺwّCVz$ 0]v9HodY*vB{Oty*a}0u 3AH{z%1n\_<39)փGBҧE\`f+ub#AY.:Y]Jb};B0OvKǷ:'}vSkNwͯ\>)d.h_jݮ3顴MgFla' `MVڽ˶2@(As\eGBPרtYH"\CYQVe%-%+`L` 9C28?o߽v`/4vn8ܾQ<d4M=%afmRFk;X9-۪e̅(p=L = ?daO=;Iq\@PҚs# >gcF?P+JPI(TҢTҝ2hf7{pDHS% ? :> :3lL8y8+8٬wp0%%j?YRVz !z2Az+  uQZG=*AmQB~^2lwtyYJeNPٮ)A%m+TΒT֎,[ sn)vk@Vz? YwV8G 3L KSv@zhE:tS%%%-gG 2.߹AGz( ~OVTv*iI *v2䯟*a f.P Az=W+N_KO{pyѾzPR XTͣ`NPuPI JPI;J^G[9d!-eMQ0M=얕vLͮב0"!z(Az*m?:8}TS 05zp#=#[P_(xhodM`鹰S3iV?-zQ0o?t5?c-(ARe%{q=e_GTz d>N0R31X!G7__uakM)8i;NqZӒXVUy%0[(o?-(L =h@4h+_!;z姭|'0糟0}Qn2 \Ӎ8Cͽ8me'P"J05;J^O}L =rZBۥs@d_$W_7SgZ8BԐz'XVc.x=au-Nct S6T_)._b'>N+!jTO;dIv3Rt3qOeE9< x}duǝ/[K(TaKg ;J0=v^'1n Ct"0Y/? g|V,{gыv оJsw9g^/6< 02@+) P+wLpi\OVc/P;_b>Ɠ;+ P;<ӎ2yY?n,<5Wd#=P3?~B׻1LShGJ@ j^Ҷ2陯  ]j;.j_~~'벜^Ҧ2n=?ELMNZu8%>kEX;qVΐ3m(&H)eS!Lf`?5Wp7 XƓ=e`qscM f'||j` ֋ßb93*&HUr@O b2ц0ÛmeI^v˗ӯ_(rm+)gx?{c\\KuO @{=ue = Og"~ yu~v \0ejWѕXS.p7 HMkP7߾xJFr}%NhJ, 5U_PcMe__?WպOz+sKs` l:Az"~gP[JM.v.g1.xIGzjaS 6`i֕4\2UR,oT_(B}܉'<7`֕nM [Y߼TkɁ4NO q֔n] l؍a5ek9%7ʲK׷"˦0p p %[Wmekˮ{Yʿ>zM8&NO?=gq:Lן/^+`܉]C֕:Kc oC VROAz.4/:|'᭯>[Hxih^ˣWgg_*b=99RFYSh%h;Jsw[ lڍa5e+!3-R+uיh^/_^巊XOJ Q*4B7s֧*~+l+]!Hmڭ>MRܣOg+}LiC :j] 23]!HϹB~zFSNLzz=5vO C%hu%z`}'Jk@ ҳPգzJτzy5Ops0PPhC%09Ph;qVNeYQ>[DJJ =Ϟ)B+tRO fC `n\U ^ލMz@ syS|vfdC<U |^>kM@ gC q9\\nWҖ /dy~/^o}J Eu%`qn0`yzJ7l+m(A%Hॼ5o_BlM3/܋W,@_+cf)4@ iC bk@[R/t?#|?wX??8PFPhC%hv h]%鹴WW^hu%`NqzJ4PFp}eW;*HJq/uO9[6n?_O˯0ʶ7O?/_4Ō[Wds7]ShxCUh&oX:PhAz*;6gn q偧gYz]Ƶ 99PFThJ`̅)㴣 DY:LMuB'T}61q~|\$]hC%`NzJs6 h]ϱp{J,}*>:/opcg?LvfqWz܁4Ҧ@#+A#ݍo"+\M\o6Bѐ(t֎"=%nJʰ_*~&yyyuʊ~~pUJHp,JX=%++89)4 =6+]Ƿ~al+}6qD%h1TtȾ@2J+A%H\a=?#۞Wnk ٩姟aD#m*4@ Mo Wιui㴭 0GJ<:3 dgS|V}t$W_<;N~-vxvȽf+0PFSԀ(?Dsm*\Z_ :PEGS%%ލוa@ gC #cbeyTr o^+0ǯn`{n8wʠ|ߺ5^vr}w5~U>:u?ݔtl{g+GO9[~7~}RK=~BX6jl×G˗^_+Bݏme`N;qJ4q,RhԘgT1wSRcAБűא,{m4-w?WXVC[ Es7|4ow L sMh9s?h1Ɵq?' ٭lscf_+\rǡ t`eiތo)/' Do;ɕ~!8S(9NkqJ7^>cxdJ+A3US~"~Vvr_=?&" .W+  726,M_ zrJe~']q2NSq:R%j`G h %`N*A%H?R^۫˧P} :* _<>QC^>N6>l>~6}6kP0rѯy~)́؛Ҧ1+j}fWթ7S~бչx6rujKKyeˠz^AJ`2]?ȽgM4=/W3M0#+C_M\*uٳ><;y\>{=Jh[J2PFs%}`f >bt|H\-SnhC -A/Lc>ϦB7Gβ=<ǞgeX>Lu'Tܲ,_{ۥ?f ?{B c̑ucJh#Ц21R8e[ q&@8·\=%oAjE>x)onY6Q>pzy'1zL^e'eMW~h`[JyFY_d2i߆wʘ8 _k1jJYz.xuxJ[Gzh߼ ^+tLAvo4۽&FOJxJ }em%}>88]C84ݲ \GO MAzo_Q^ 35_ ח]0ʽOLM#~ ̇J,~SS gI<j틗^h# JxJ.m̅(߈~[%DO:8w\׻ZkS r{S%MA˟'zO0>,?nd_Fۯt''[i +?)Hm"@w9n>]9t¶8b~ r}]JةzJ5l*ARfGǝ9lF'χwpҝ>/~ώ^'? ~6f Ə5@xӏ,g*B( %0BFXat,^z<W֦ Мa܉~hu~tPv'oѿU>q_3=<0_{^<Oto%`( C3sAWzn[ ZcߏCኺܕޱSm*U~`Mh6m SX>+6 WywY5\w3wxߣ&~/~):n)2잕xYݑ即wTwOf'zkbZ+A( +=sYԕ~[ }{,eسlO!}~wl/,|6 ؏;Ͼ0хׄV=qEhϞ)BC^*%`$A6vBj=l[SVБmۣ}U`~vН#vcftzК }1;rG~)>?+YdBS/f>nvlY6jP?/aœ╮6Ta,F:! `eiv6o$n**Mzqz^y%^҄sl+A{jKzu͗ga?w}^R?qyg"A?tOn!"*ډ^WzB)%WVySd04w㘻 ؎Ξpt8Wc^KM6iѷOۂ6@s05ϲ0[~ 8 /;a'qg<|_ 磟1 ǟ'2Y%s_|E~0)|\n􎍠*) Ԗ1}7\USW.#7 EwǪt9 a&Z.]9S^$G"凷 !$J?@CauxdWl2? gGOʃM[ J077@ XGJ*wPK񍷃jm:Z*mR~8ľDcL.j0ecyw-Ѝ9qVw$ӞC>˰}>q'?vfs"(?+gY}g]C6yy%D+=|;6uލ'{\^ٽb7a8m//y+lJOŮOۂ6>s2ѳ=j6 畮':O%BXv']Oϊ癕R Jpc DJJN 1IP..qvO%l*_މӑj݉Ǐ/y+@وj[K:_|^vˎ!Luy|>l? geW1|rwy$J2u? J07c%`Ym4iK*nSVm̥es鸷);{[]0VqgSJ{qUFyyYqW_<2ϊO?+o]@Q%SVzc)*A+ݍc2DUlףۡ2pSeSs<\:rʎtWy5;*NZ7wMM'be'+Y^ۇ?ȏ+}g?UxxX3r|&lԨ~4 wJ0>:zy1Pl_ ZkG=%hjShMD?Egzaz:Y6IRq5kc:_y'Q_O~ ėJ? W/ǡvYTgJ?ly>׍ie'K8햝fyoCh7Uy*Ž Lu/wl;IJnm {Y'?/UC忋WϏBE~ǕW37Eҧ <ҏ+8gMs!Fٹ>L4A\N{qhv*|uCWrk 38V2ZLGz&L'"e"^v}V~/;҇qC}+o^/1+M~5 gEW֕~"PC+p=嗊,GȾڛD2@m*A7ev:+;}|~F?wY#K:g e#wU鹔HʗQaXd|uu]|z e0>RŹ]ɮ@}̫az=NKD S{C˪-e+&qjޮhf}/u+L6*m|/۳'|qW]!ϟٕ>t&_}nTWԉ>DX~ 0=i7!Vu,~gUvZqX%Z>D]Yw( Liԭ߅t Itƭ]Hd}ؕ>T: OsN?Y]GO9aȢ04?J_îM{ܕ>ϲ(p?z __ J>{bi׿ ^Vx_--q+Eov]7z;*R.{* Ǿ2J܃K[W00JDg<.3T9^~}/s];뮶m|nh"SWG+}^vzOjWҏJ?J]n#NûF婇 S+]%L5)7ϖ)+{틗;Sθ uCcnp5V/Le~3i;w>Rڇʦ24WyUVNK;g3e.=0y]+~_Wzaԣ>+(:קfT}a_VG]e^?y}s9{]0=Ԟt0=K DX I\sW)?nKzY[|:z[5V66]J]ҕ>'nJ`/q~l*~+}V Ǘwq>;~~R'ewJ]_~ERk_ ]%azXCaz -JMT*]x̭Ρ 7s`$m,(S?J.J?E>8/]7_߾0>&8M4)Xo&!_>^\;|EO~zi#WFvsausY8o ڮ@W@}O%:a Ξx[OAcHsM4Ϫ}+ ܮdWafeݿ!ag|Vkؙ~|/=o)j?0: /}:z8/P?pc*91w/xYo vZ9j%W;xt羗90Z;R6J6OF˦Y>Wr'Aa@>0! ιЬqB"|zx}~gx}z6öIG= +hJ@*Ag (Ag 37q9o ڞ@ fqYn,{N!!zfi{~K|sYtOV~PS]C%xQf>.p5_~wAOaUw^&ۿ"<=z{`v `eYR~ 9v+y߸eqyH:Hwˡ畮펧~m;IC}ym[Lt/[ЧgQ O˖|s\ޫׯo/qS^Wz8'Z4ޞPc'*i.J swwǘU%B9AXZk0Rs߸e^3g}=a|d:]Y}2MH3}qgt.Y6(__t?(?2Fˆ LpYя[/ m[ :OgW :oxRptŘ8/V #~ Phrqo{ّe~Bݮ9B~<WJf?.;?Հ}eg ]>/뗧SOBWMF.L ϞXcz}^zEK ? e˖r*嘛[m+ec=}S5((M}hqf=tP~yō%qv{E鹾JWQ>wG_|q|;e~矇ׯsO6?:+7ջO&|AU>Q8BþPgeg `2܃8{Ou|q+@ЇhgUz̝ :+8MGBҗoqY]PfVtf]`((_JjR< }>zvg_gà~df'Gay+L. gaC7o_B@gBǞJ@Ż20;J@E8_鸸lo b@zm<s4?J g2z*~jp:wzg vˇ῏Ö'w~/LL&yMtr(P0C쯏_{!q?dN+m@ݕ.21wgT*JM8/Ly&+σWֹ°;Ԕ EwR\_D"mWՕ !lg~j)^v/W'qwce_< ?/D<{MaJ~4jz-0 'B ߅Bs`5v)ʏk\?~UZۏ۪ h8=Qً#/5;qtOM$\kD~˽ P|+}Vi/I>ɠT S};aN3NW}q _!LƁQp~/ӏcOӣ .{J@s Ύtei̒["H7]~ԍ~Wh_{g}h^GNeLK\]bU]蹡[[mx輮]8~|o3 ՗ҏ+]O8GuHoY00j |DJH_vOa}z`RO*D˔!9h% glRl+gHjWi.\p]%-F.TUz%SCrV~ NХ {&0 _fPOԗ8I2\v/n?S}=/bwo©V}6JW_ϊe3 Ӈpfw,ǿ >Z!4eK9K:1xseKR"H ]A.w|+A9x/û/gIw>K8/? J0 ρ za ÏՏga>u7/'+I6?{v{>~NyV~LOw?7L_vzD~60'߷KH!iO hm%o-yU.ތXwBMD.3;Tڤ̅}1 t>P?c`nuᙳ@z,'S2s:ϏyS}0q͟/³_~Y@a ЇqlN?B.۟|4\R׶pԝ@gf*?qЅэ6΅FG=-4 Ќ(]8g/0* la&:яӇ0Ot? Շ"820}^y8*> ϾzQmOx2žM6=0;LU W=\H:yhFt8m鏋f:G2YN C/|Jj0>+'"J>?SaPw!lW1L?lvgl/c~*L_b_ISM$P̝}'* ?6O˰*\E:QzЅ+;\8 |қ-ˏ7肝\H[йm/7אn~\^mr|N4G8G Ks}Na||N0}Gy+a0}yVLqU%L_}nï̻WNG敟MtEt^.!N8!=ev+J'?,O.G'6n0Sͤ+ݸ~u i,q f |0TSvv_M+w,tݠi+ҹ }:ET>y%L}\fԥ0LҕOtF +-96$D@vwsCёYoCqiwy~aV@Q\^{onYu AБx8AufWi~^NrSw] ҧc/l8R>Y/߻L~4A| S>v*0? d~0NwwM] ,OB O≋ueeIa4F"lwݓ`̅Kv1.d]Y?3uvU# 2۪"HXBusCm:>|3-qtS5,0>o-w|ɏ6?.ß)dO>&_|>i7hdlwʆ+>P Wۦ;q?@@9M2U_Nv{8>]%9I'k %Jו,Lr ~Y^$7W^z(3_>@Tnw\^(> uqIdG'`HuOLOtv0K߫^m~ؕ~lx_lzٝ?;ߝ|ڕl7?9 tW}TngyWR_[fVAGz: ?bt 6!uJ _gKi-\LzgP~`_er5^yma:e3雹#0  m,:c<~V\?( җ+針O{ WE8:#LQ1X~/7wnUSa_PP:T~gF8ڡNOq/ ?F%DN˯G 8LrT~χ=yg=Zz' &Hq/ӣtN|?x3Cܕ=a[c.g=. iɎ੿a:[?l֣}6 Ӈ2D_@^i?gl4ɿq6|-BCP _,/#!z:`K XPt2U[-]!5 8 >Lf(L^-VVh>殥1w~\B%*_9RF߼cXNwOқt8ϢiaL?tO]neҹ~瓅+ DD|v?>qܯyvw~Gm'Bէ0NOy~nک'8.)@Ou꒕t|7gX~9 ػi-o0ʩIǟ);siGqcnNOZ:6~i} maNr o>(,xAA>NBgOnrr?îe>Æ٨~w?|r9R<aPD>.J>?/P?|  3o7wٳ? W:ϧ|#}vFw,CM/qg~D+jW?w$8c; ʯ'2L<tP}VO]?}b"H׎Ϸ ރ8N͓+C9_u;AޘK=k5z(I2ON45~ddc7>m,wٰ&{'gXAbӏ-KX/o<_OFnڇ_{7lء>L0g髑βMgՕWu_wzAX ӣb0Թ ZI(:%lai)P7̌01wJ%L7ڲ.lĶn;4 # ,`Vnܮ]Pw1PɒCǕ|qy8]>z{1q_}~> _]WVH0tUo?00V.sg< ?~4uc8+< 򯞄BT=J@Kpsi͢Grs*cҴŖ=̴]xK~Fg κEaa`T §|>zv<|"P???:?dNg4agtW;ϊG)/_J_if`~ggVM?$W ´m%ա>=ʿ]7M6ЇOdþҷFfV>3S/t`>.4 $/<7#uQ.ގ*\v>o*ōc.@c=)sApU&[߷, A=Pl~t2EQv7vG; ԗ9qXp}~ء~,ѕ> aSHA^vW@}q09tv+fN v ⴦\7p}%h^aZvY Om%XE>]Ozi~vχa>?pყ蓓@?|<⋻' }QPć_x]>io=׵P(;}%ݍ~ ӯ+ŵ*(a r+ Oѕ~5gg٩ՆßT}Y~ta8~x|k@qwaC=?Rg.v2@"OuIAO|}8=<&ƶDKJaԙ~C)eǘ OPpUJX|Q# 9m[ ofּ ?ՙE}s|?>O~We~{OoPyxu߿?(_Nt|o&fߠŬ~f/p'?= ?O)Dq,sO ]VJah~9nT5v,%HN+03>fJaf$^N_ ԏxF W`^dp?+>{N?_~>;\<~~aQB%nWWz8o^Mt2}Lq8@%+7x \}fPQ#-AmHV㬦E|{ݝ>l#Ì@}>߼*?~@pz;~o}0, -N~BY/ElꁲF|g-~?gy'_~YygC5t_tvB<A8q.p3 q7~;K1o__g7`R0葉O^^Q/H>V߉wUq[ Ws}lKlZQ\{fǁm?XG፸+h9NLJ?P xМ`š3oW|(ɿfϲ2|_;C#<à0О:/W ^?o}峉?nԈ?!;[NS{uT@Z u+\X}gwUV18n6۱>_2,w0=hAz2RhOTb i[͇|Nr'V{? GRhwN:OMgwߖ﷼Y!3 rV7MGRu;S=-. pe}%ROl3L4@(A#-%AVz8L_I,} ONp?ꏇW+;vNr|%?;>|F~֙ `5vw&78{O%k؍a5eҘ{!j>00iXJ\ 68qH%a:$?aFw|GYO:쏧a*ՙ@q>PnnYSfɟs&QuOiG7[I`K7z~(>pƮ=eK(R=)y:PF)ұKAbe?T;gv/Yӷ='P\P? OS!Js3;ϗ4|sS_\9 X06Uac.@l6_>PZLo _MV ._6P.'OjnN)4|Y].E~!QHZt2 m)G*\ѝؕc S xwxI<܉*p5WَJEե>QJ~˩ OMՠS(S5<6>Nh5k=pSŞ2\׷7=ێa5e\`-ckJp~(J鯨|sJ׼yyqq$POvOQWFy%h?~:0?lS~j7Y|xT~FƿQ#)-ׁ+m|i|+,ܾ4]%8_6.IzJP yaPK}Si:0_ތ>3@d?4n (̟5mJ1t4q,S}AolD3\%Pӥ~.i/}y?)? ;|tf~tïSn[ =^;*\AJ s*0W[>| Kcߛ֊ǖqH%.&H}R\,@A|f>W OYݟMge̫72yU/gq@%lc^ `^>(e8TZn37\H̶J4ϙaR?3X?y/y~gMy~F[ ah~:nCgMŷ\ڣx c~=V |{?)õ70[Ku㭩M8 66;%P2Pwj:4L eҶ'\R_ n\?`ǶC|15PFP+-qJM%Pdե|~v4"N{g08 WM%0@78 sW6 ~ |Csg*| ԏ#賃_5?xOl3S+u?FpiO/J!˹/ 7sBq5.,VpEI#hKKz~wj eTB>\+Ӆ+C \΂cಥl*A=% \Qlӷi];q1}ypiēR粥%`.cnW wV@ WM~mhv4xŁs9q:K{jw&ue˘| `qR%Nf'xSn*gg+o\ ]@l2)|`2Lz\( 0I~6t w.$۳ym\Ծ2@p9nαs\az[Ԁ+J #sg}jy&wpm) P^fPOT4\ pEI b62{qJtt& m%D@#$EY?ø Ъt.L`)cnGFsAm`==sw7D~8hJSS@;A`Ycn|Bv@W/gU_^q h{?,k ޔKVrA2@/4t0=RM9yh5퀶_06t+L:azer@s m&HAT!]QjK8Ksw7SJ~ ޓ8+K=v 1ws]4. Iy;Eq)*s{r@{BtY<.-"H_v=P ^y%)1n;Tڌi?)ޑC(8o }}6.8{PIg.6ט^^"iyǪ4 }lڰ@-SefrR8Ν˗Ɲ !z8MhAzmXmX`.y?pts1U=eIMhrjM$H_ fVA'Q Lmss,P+m <<,[ Jqay1Á~MlUX ThAnTAEqa9CUhg0Gw膁|W~'= !H_JY,=0c4vBs=RFqM98+4ʁKt_y|  H_ xEXın &:Pƍ8ۈc)xm;^3,Wx8,wd^tjN L&D,X~?V f(A#܃r}U Cщ@)ZYf 4PX1a6oZoFe7S !z` Msӛr\t\h=Wj$۷2y3~H)AfmPvOgM <8*?C8{+Mqz/fm˽^,¡4j;m =ߍju"H߼ J?u :PwJК1w/Wy4.l-3PF`Z[z4u.|o઄UN=%h՘;(\Q1ap5Z@ V4qT1b *W}O5:o %Dx~;ucaN],@@J~a=Q ;c^+Vw&HI?x.=PyNG•ww+@WWtw; bJuZűss c<^K8=T `U雿1})~7vB]*AApE蚴t$،*@;jvru3XWYq@j>4VDrCI7tpL?EՀ7)C'\WoFWaXѱ2pgOT˜Ptwl, }6$P9 4>;oNX=A΍xSA}қq=S J5 $iXr멻J}vĩ|6XAvmHv :,6Zx `{qt[eQNM}Հx/^vqVw{J+߅FzXsp;Awz`I۷I;vtσQhqn+T|v}7NMoy`@˝ׇfH˂\/uBApib%u+ТcJ@y>T~Rp Jൡ}{A8|z13W6on'nXr7plQ+>Yj?>TxueX1S/N<:]eE~&W-q(p'htr;uS caOp1w=ƒP9D-F*ǂ^jXrwǩ\.ZWJ,n_r˹'h|Pf5=|i389P 8 ؁z'6,pKi,tjtuƪ ruu-0Pqھ9{&[ac }7$7}≒-e8=Nlц7˙Ӹ!M)@,aYWҍ:+X* ru5@%VI\Wוan>i ;u@Njc-52(qzP P!Dpc[ +6㸻gqz07;R8+PV +Ι(_ γҖLN&ob3ǏQ6 :|pn<ORPÞ}a7koL8n")\o 628]-}q:OƂJٛ{+.w{^}KlTyҙ_zvGc#AJze͎BqbX sv5l78 uK8J,{Pcіܭ\IWAT|Y&ٶ%m_2ҿ:m 1~ =N`R܏׃N+t׃q_0ۓPtS j2neQ8j9tfeyǁ e8Y*)t \s]] >pL>tymvǖ]ݼ\+񃾂w`׆%Ѕ`9K,Bz {T (uXʱ~r6n]Pub]ׇq )DOm2,B}%=s_L*P1K*jf7Yw9Pw"+ #=]V :N.Mܵrt4mNcT6lBݏUb!tfkF8:Xre1[(;Izhwb-az'昿iۖ&5sB8ވi8۷Ubgi8~s8prUb](J)åt"79xT۶ =8ާ軌*@m{8!,8DS36uans7Wh-] i~P|3_~ K¾V.{UVQֿ_N^'_\Ay%aAWp<4r(rGՍ L?BQy,RP4tlo6sB/vl8G mOa+@Bq2 қ}iѸ@ MwCuK9h~u Ӗ`׾ٍ-w;ڼnُTڄ☤`M?շ]<"@h]k 3 V(IKҥS:ؿ%S1ws7ਟFN8ChxVQ6h, 1W%l['r2~y|$/u5BIe-dl⼞׬i <_Cۃf]gs46va|R'Y֣knoqzS5Xt]/ׂʕƊ8N%Do[WBaF\_m xKnS~J'xw_JHg;;A:9*wZ(Nn"#跽FPӤK=ˢ<a+cA&>. _*DϪՍ LB=:{RdǾpȁYhԙp&4F;e+M. >$]!8{uC7لXUb&a-wqJX;LWSK/Oq#tE`}ZriPՃyfy5lqYg'v(=6C0N ùcZ(]n(By~O9ܱw'27MgQxܛy= E@P)4⢮7{>}h=a_c+疁Kr],u/|%HRwЎ-'\fjAݺ]Za.=0pm~6B,'ʰ.vZ0<-oF\sJTba0MY&iZyJ-sPN0iטh'g;[A 6p'g.1Ҿ1nEq`-6Csz_6 ]׮厎МFne }ί[aU)i xWE%vԋSA(k+*c*~⽮N(X8ʱNIǁ;8`}]/zz30Ö{]9FjQ\וmu?~-H -? .z9mi-8No -1+ۥr^krJc*zXM‹`8*p7WxE: U-w{rgm*a>+yEZ+^\wKiF{?iJNp9F xn?nz~Y0\z9gunrT!٠Kp1q 7io?)ǧ480~95^ \WYg}RU6kvK8P%ZA\Ӧ~9U^p)nz<mJA߃{›@wq27Gcke}isV~Eپ}Ch>Pu Zï}XdS|CqJDfi=nM\Bmz"bp}o"笳;qJs}z%]Zn/"6G*Q;ʰg:ۋT=zU-HOPӔ7tоC3l{qJ҃~|_ZgA6y7 Pu~?( @s`TZ{Ks;*vA\ǷNJ/wTXGa(@{ČV@%j-5쎲QG*:{ Az= b(Bi~OU9| + @{L~Ck= eg!sec8V';5e=*ҴQsTx+Cg׽8{S%ZI\ק)H70J^9O=tx;N4;e讘3یDQέ[qh kZ^Nk{PBWP_U)XaWdBĝC%b^l(N=W:mhߏ7F(CaįYʽx, QSq[ٯ)M>>=|p|ry+_Dc wc>fO:>[W:5kw?C8H%M^A\f,Ć48ײek`,ƺ0}r+V =bl(AkӷD| q脇P.6 o*E3!U3 =bSIalD =\͇1 DIսڃ8)E} wE7)EW 尿n Hw;NRCJ@[5:\t#Az9! U>گ|[ De =nU褻qڏa-XX^ݵw ܎t_ 2\Yv\l퍸C #C8m,ΡR,d=[ E{AN\v/sC`qލA |bbM7Sm=c{ =b0BiOb7 =b(x;ԡ/ ,;WAz(rL?vZm5@^t`;>6B#= ŌN8)f{[~V6t5ӗe8m4H7Nq|=׵{_ԑU՛s 'Ci)SvU&yI\ׯ˂rCըw4Jp}1/NL4A(ٰ4QN,{q޹/ rh3DaU?w<b~4>"\%_ҲD)׶l׽Az H4Ɏ@(t[5~̮mfwǣPu8C*pc7FpPtOEE8Ɲrb֦gݸ}"HUwC鮊pE=.foA&ҍ>2;Ax9~}6n =gqx0GS^v́r]s9qvG%lnAzw7C[5XaܩP9ӕ֍> 휯||ڕUy@JpesFt{|3ζtO5'aܥ@9ѕڍ>Nz}H]S~_)6ѕRs֍yvO Exmՠ;Bqڛ*JpiT;iQvBѥ@9&ٞ p1+;hZ([hq*|zqJ鍘_ kz-4V:Q(J4gzsasAzvL"<t@=8ecp;X4'z;No@n܁U bh'U 1hz) (KFqvO%z+V:,ovܩA&Iw[)臢k3@|}#=Uq(X?ه*DabpOB`;qAW#tG"ٛ*4\FLoy-g?BFiRKEɶOt3]smelJ fuy2:wGu;B]~\h&PJ 8N[uzB:A Ю^{/(H1gTh8bjP'#=wJqw!z@5NkJ,f(MU}#=5A8tڏ;{J,B/#jڪӑz;B/Dr;N?cŎRqv_%{T}#=`l%=f!

    hJ>ё`p]P^!]NmI;@n=Y~ =ɍPS[K@ٛ*,㘁hړu؁~tZ^ `qz '#=@)X}VC?yMMtW59z<6 ;qJ5رˁR7sQV `u|VU ঄hE[^G;AtaJTt" pS':S@C|w8G*wOtC{7YT ;*;m ':8P%y~ =T &dkJ!6A@fx0=pST.D۶48lM)(p ':Ci[%Й 6DmK=6\a8V t|Ҡ = D0=01kgAH>ZcvA֕20 E΄Azu8)py '@: 7UhX5S:Oֈ!~I= Egzaz膴ot-DãiC:,wFj@}D?^h_=o1qKy~}JB?j<-@ (|Z#fqJ@k<(?(i:MAB H4і/ˏpGpn џMh2 >x "nzpzf+FpU"+(eh8=Q XqqO).&H4͖\K_ E8ۈCՀ{@).'\FݔqJ\KdzR^[q۪ rA[1W#=$[JpmtSeޝPt0i _ =ӉiJȖýqڈ_W z遦+ݍLZW`bw;ξty8[qP9OhM%-%-u֝nQ6⺴7'H^잜v\X;" \NB^\zq:P`S nҺ2)|/al.;J1_@l*\X2B`@ŮkqvW%檧@Āa6o鉊 ]@ %uqZ_NEiKꮧsw@@5Ҳׁ=XAzzJJQ Ʃn-e~+-ʱ<@ݭ+B*ĩ|#NU9;iO˺r, =Pww`!֔h2ޏF8=QZ~ry @-}{?G*Ol4J̖l;hJ"Hy$mtY'q:SZ4H\ĎO\7BJ_o__ ߳c1۳@}TN}:aA;8TO C%}]2;Ƙ]i'j:l* = E4 2\+//7Y7S^ЩB߭kSVGvFT>+^~A\Gpy1ƙ4iy~?N{1?%Hygݩ ExFs&" 'C3KA"Hyggvjf?ktb|`~N2 ֯Qlz$LSg ExNw7P=(S o{0$euߑ0Hubv7P}u*S^(Iy sM@w҆Χ%}2p7Mvn~Ywˣ~`*0V~ˡpS@wv]vUo]⃸m)@=M27)}+mn2d˧A̸[XAz;8P%ZQ(*E-ֹ8ێ۪jounOΓ^9_ӝ>aP0GexeY6AzQX%Zq|bvoqy+v+3@ofܬ7ڟA9%BԖ =ЄyڠQH*ցQ;AMoS.@+A+;1.D:S?~qz"T6`O (N!@\SG*bLh,sUjaVI̷S[)ZNl'NwUQ @H4Ş48: ѷS|]|/Wv@h%h~/SZ9/i\ !dyJV Ro`Rtv텢>2H4˶8}!n+BTv#=(aVڸu]ը.PБh%'q=gI|/NG*rU AzivP}(IZg7X5V&u?P,sUa?>T{i\)溻g =$Azb wgwUbiRG20u7-G><uwK&RJ43/qYڍ7t j ø8@%*p[a~0mZ*iY4AU{~Xg{qs(=eMGzAWyK!=V.c2c#g n< EP)X:^Xe8[*p'Uy÷}e`EZMոq=T qJ\=K]]Qn)eJ\=;S_rV½f@.Gh!K{'jKb]WZ ᾧgJ]e0u`֊ҝ8{+NG1A&C1e9 conky-1.19.6/data/logo/conky-logotype-vertical-violet.png000066400000000000000000002001601451224556600234150ustar00rootroot00000000000000PNG  IHDR^ 0 pHYs.#.#x?v"IDATxMy'zyI @>MBRRےۢ=nBݷ히c΄"& - Gbb6V3jh荡܉̢;fn[ldHI@|Ϝ̪̪̬:uΩSɪT?z(ˊ!@ B~h!?ZH-$@ B~h!?ZH-$@ B~h!?ZH-$@ B~h!?ZH-$86 p_|gU۹3rΈ@'Ȗi|a!IB3aƟ.φapwH{, e7%$'&h7?BlUzy&Y7:@C,w0 $AeKz]t+z ~إ$?!~zQk_ Y ̏&Z|a>di|@Aj|a1-^`F,5>B^?썀gB?O/'=yYKh'P0Έk_5 P?]o~uU|Xv~ZMԄ,5?瓋 A#Pl颧>|#hI!C,Wr0tɪ/~j\Z!~C>sPI& `^ ,DֆRl4XB}{h?sC?׆I\E_b$>#q̔`~fBp~% _J..>k1̛=I_`ɭ&$d('?gCb FJ^KIP0~g+AuCAlrh@ +9Y7'i`\NDڶB0ʊ!( /&>΋%C'q._4p^ jk* +/~%U_ &EQ P6d],UX~5uC4V z/޷T,U:~5 C8*:. /&ׂpdP0 ~&ҽ,_0jH&JAI>,t xE@dr};KҖג 9:ZR0 $?吶9/?rӢpbr e칑TT֒rl4`})bplho$!\->0+C~I A}ދrM_~塂%7W~V|RPtt$ &8?@e`2]`o0 /n4tF_0 c]3r6a7?21ݠAJ@"y})%-z $mRҮ熡h/? Y @;i@}`N~s "@b~ "h)? `@ ZF0'}ҐJ匡h>?y>+ f0>BB~ Ip~ \[#X_6 $8YGF耗֣4LDZQ{F蘯~;_dC0CY-YN W @3f$xzLt0,Iv(9y- 0ta??d&> |i7Wp`)):kKKɛŋF` m]z53s"؅K 'e0?zLɤSRҏa8x~)d_3)LI0,-zs9?vHLdb`$?M)|!Lu0?dWIuR3 C0F&Rw`?҂+`j$+F`ߞO>c]6 ql 7g?)o~ u)(:JVP <`$84LZHu0=}Z00G:is0 ~KAʹJ>Ζii0#~5{P<9?A|עXvZKD}R g/;ov&S@*8 Z쓀XjɛsWUS;V;l2~L'b1"0ciK`bRIDŽK{ h? `F  =K+yy1xH$:vw 3*S>=0620CW ޘdXJYPEp.n@^q]n&?&6j2%;*eu9Ċ;&ܩ+v,ԥt'ab ?I΄`F.&Xg w|H,&M#mwҶ<Jeg=V?#1Q5p1c8xie;~`]2el?Z?VGфJJa~({Rakz5)݄5q5L ;~`$o/$/c?Z˙h_ 랻7]؎>jAύ;R_Wwj \1K#XN h˝tەFv7,/_24c3\aX&u;mH 1JaQ= wx!w?3oSgaTWKUs*~-+`~`)$oφ~O7WM /TFgprsT-$5a4lTWM/ Pܘp`J~`Y\ ;g  =+QMRBc\?@4#~r a5 kZţ U0/'Z d~DL̗lSl}3/=A#Fo̬[W?0~n>à~$_?|P<Ҳ'.]s}*~ˆ`2? ^ԵlZO0ꗫ*K6R?.*D#ɫ+ϗgagqT׌n~`F^L @eo_40OF(`RE_]7)ԯVCj&͎ O~loD! M;a7U;B`.xL@$ oմQzzG5[ KV -|wJY8ksȡp'UɊ'llPSOh?9z^m۷]UHj\+*_GSQa}!Cojƾ#+< x߉p^*?, @߾w"}c}F%YP\t@jخWy˛hϾҧp_T״>:.L?.]w"'S< O<:+,}"]Ҋ~qw|A-T}>]z/ND7+{U`oT3m3ΑBCϞU?5! ?04OCoSO|.H~_&ST폴2P?\7ģ1(OY>'LЯЏGvWo#^i󟾛,Uh@רo.a߾ >kCb_h7L#7 ?L.w7a<IC~a? ]t%Oj|}'yx_G*xBd0ԏ$]yU,*~gt?%["4M___nvد*Q¯|}7~ѕU߲_>PI/{kyPN]gDcVƕYlw[>xeܺ<{2| <: Uo Ut?I%xH4gT90nj?Z)׊g]' ?~q]|uUL+ O_Ӻ Pߒ]۟ܒ'DwB_3qn@40RLzox/e)' TL_ 9+ ٦+~_8Y޲d_ y(?ggÉGNأ8j/?>0ϼ?f>b@BXv*KԝI.n$i)ZZwa`B}+QmjZrKWv9V例QWڗ/2+Iy,3?zI!##QaA aD_kغgT#+=~3XxtI%o&!u,+-z.dio~e2JKA~KO?dy{ (]>Dur;)y ='?#G! ~ղ6 |kRK~4~Br~T'W>=|^BmmӀ@]C:_~罉xaL`!hrkпRT7Fjɀ~g?mp?;Rq~~f4|@>n 'q/~^E0 \*J&?5 |qO+JݟWՉvϕL^N=XJxG(T|#;mH$_v뵤a ~.kc(zgW UѠO~y~~?lnfr*  j~v빤C`) 6aT_l']޿Ri{&my>0LӋ 0R\~Fz>rh3(3rփw U ,@[]01p?-y=a?hJjئ'oZ?)܏f&z\xҺ~?qޏ'}}j_| 4.`&hh W~oؒgؗX_>׿WPy}wWOǣmssxah%!S\0m!hrbߞg& IwlX5H^H{6+Sn^R%}\YuwuX''?A$M ,?F A3LӚ|3 W kP 5l3/O>^x}OKbu~ e[\@0C,TcK.g$2m?~%|41܏B(tmI3g<<^HC]aO䀘㎴ '??'qL , @\0p?﷿p%+y{" {!C)(+Kmx{O=^{FXf~5fGp?*lEmJ~~%O~$-ϑ#+m&y6':LB~|nh=Ki#XѤ;*)+Je`ݬ~/_N[~lҖ^YcO7>3sY{Wm!XZD囥 r++Q9vZ C4 G{z+op;cܐS 8}4?ޘ5$Y82?D?_O^ i;i^l;>y!H`oQzҚglWGPܯJ>Ixӊ_=;~B݃o>!?f 9X ~YZnS鋧=xdLG89ɔ ?~7hthoȚh#w~~a( CO:}|C>M>O=-I7dckD=nper2WP C?g?4}_{j9Ґc|@< Y~ђS 4ÄwІgЦg%*6>OT>2 1קrءϾcc9d|lrhbTmSne~'* -Y a0h:iIwsYWMv4Nj3;y?}4JU|ȑ<t<̇ ϗ!%C`&Ӛ'O+ʰMO'J(}# OL]=u>=d Cth`ĺhBkP Y?ܾ*'~3;TSMڧ)Nڪ_3MthⴑXB؉u y 1<0nTz&iճtK7\ ] A_0hSiُ͓TO?tjq&i~I&@&NvU_,ʂf+Q)/nFog>1qq _{υ#G;?g:oz?U~4 gB?{fĺqa6zTAW}M4|:CxEYztWz?C!<6msȡaL~]}myϼ`%q]!ZRј|{?PS~m?Xwp ßz?1,}s1w]!"Uvgm1l_͟V?|(>TU*؍ޤtsI{س?F\XJvV{p}tOޏvO;n<`|UK!@4yCuA2P[%œ8~=(+L6m0AZ 7XU&׍ }ߏT_j~#)t?G4TwyCths4n\Z7LDV=3C>D[ }t`Twދ? +)UNW?#i̊>:0 SÒy7V˪4YQTL;GzCW>b?Von}SO9h=?g +U&-N}-Vv=Qz\O;35!`>C+4 T_J.b$HeQ~օ^c W0EgM{ }} l'd޹{/loÇV“`.[ uM|;_>o6S47Ujkr-J'?4&/> 2uõqGkރ`=g@t9Ch`kSآpRlآEh/܏j,.`4t'?ɷ@SpyKO*,yG?Ash3?pIyy{W[ Z d@qurScb?AZt@{Ash+?PIYYb(3Q4쯶牦`Y(r.`_s)@oM~?R߻,'=OEOvO}<@>0o,'o9z@\ ~%3~.jI|eVBrc:UK9kJ{ 117~vQ֢ɧNΞ[h,غ ~f _h%?hQ G3h>h?@*kW5;4/3& <48yX8r`"130prsJ/)rP1@FOM,9CQ9}h8nᄐDa#pwmͪw`qL)K ՀNAOE`7=OLִDTATJ2?ج7c{9}geFtIAD;{Hmݨ1._X GӫFZDxp<[׃f!Fe;qy}ix&2 ` ؠ?Q)8~]NvA4ֶ@3:f9QEJGq~g@4?s1B H&/:k' kO&3J8h`=@fmc ,OX,?(g eiHFTE;~|N`du~R\>S>MVD6~!Fqs0]Y|TOH՟|T%¬on1K`la}>G33@s:lj\۝(}d4f>pJ|`Dp>*W׋{xO==}X:7 `9 Q\S_ ^vLU6@ɑ  %c2ZɧNJU;ωxXTF8\&0-$~0X̻gEC;mK*{9}QՙѮVP7] y0!LގdIumդ `#W= mz!LSza듟Ahh3?@iLyE{80w_|瓋oQtIG(lݎV%һݿ,ǭwEէPRYw!Ǯ_nT<~,Sn>yx. D;|) T0S6]:pm}aGkZ4?eݖxMtE>zѣ?<'yO!@ۦV/s0ϼlr0] =ZTd>4*ƻc.-r5}Mc:D{nU4*ƺz?C-Y^I+?A?]E?@~Iut`ֶ_@=vH{5 /lϓSd b&tasDm}4y 1L{7SD8ro$t qUɓO{H_0 @ T?~d9oe ]jB\&`w*})q0Iu_J `76 @ 5yD)T`Iw~]?;}`) `gmc/3#vi{[{f# WgM+viA-zlh#G'ޫrN,3?غ:^J;Xf~إ8V5!_ps d~ص&U;;7|! 4~ @_$/||rm#1?Qv>wwE WJ$W+{++뽇gQ?>58(YO^y=>s=|8|}g :,@zՑq?7ƶA krI>@ ~ښ[J)pњyOsկ3O?ÐV> / F `Lj {hC;q7nڲC5Y%5 `InZD;5e[Whg}I5G$ג`~h&t`<:f]hS#]_ v<8 ~$K{x6kӉh'O쎀vaX>lGڶsU&B>嶶 @,lh? +=TW4'˓IR\(M_Fbԣ/|_J(dlInW.{WWVz{.t}_}jpQ6Οx`כ($l[zAoi'Ou{tvY1<}ر~0'vnY=}߿}AwQ}sncr'UwXQ8?,7?pASW~&a`3ܽh?{-Yn~߻̗XQ&{BXtGk᝻z ' _ɢO%A׷#C!7h?.?pM N=XxIK7 %&|[ؑ#Oˀ9i7w9|7\&3"볶 oYo7@+)!|~iJ|Id~؅-j_@ `6,LN6PO-$0 "@gml4Xo4Z)1%h朴@h<?@C7ںp'@ bmcQh}/B~h!?@lq)n10$h_ @ B~h!?@lljsk+~h. /x%GJ>õu@0i"=xhsλ^c@Tҧ'ҾtWZI=MO\{4ŵB'4Ms;'hqGP=9 є#N= n]-?@C4%>{,b{9B~N>A7lm756=0;~hR֤ ,߃nhR|N6@ I7TtJ~-z`v Ѩ ~tJ`vtK%?̎o4x/Ҥož%3#fD8U^o|m)7o5w3O}h-sܞcONCwV7.ǎ x o^ k;IsB553Gh;yt{ɉ<x.M}/p@sZSzB!]'籤'}[ Xj|; ׻һ?+h%[+ՕCz(Dx +K%&MoنG OY f~V#>Tv2ƫ=[cZ+M=6ͱ#G<=oS'5&o^mdhRڥ9s:?z.d^ZIC=6D޿#Q#Fygq߿V !?? ,?4y_<4﯈ gd;N?^|pùӧ;ڊ_O.wZZ,eT ӿ7_؞g4}&[k?\[oޝ>38$`ϯgE{ѣ,? ;Os#=7my{s{>׭9 {?{V ŒON,yZytz#ݽ?q$(fI/hڲ%`9ٽטE]m 'h3?p? ۿ"Em" ނN"5}\࿭E>7엀Цc*iQ hES+{NJ;ۆo 8~WՄVG>$w?{5Q%4GN{sғWV~C׍1|DM"+}+ '5W{}߫HF+{76ſF7W}(M'T0vˢm¢-

    Xuc6;ek ޿߹G@lmiхlWwo.(+[6E@hUy;Gf)6,\BXŷC`4ֶaWlo/>H a9טdvN45vK:\֦g/mÁHm7j^1@74ify}ߊû捙YR ĉӝH{qv]!YW^>sM ) k`{}&qmq!`hId8*1f2K?{Tp~#*_eLRA vU6Q_|瓋oQ̎z]E`Õv-evdI?ne>ɧ™[-^M&덳נ8 C_{ 27o6cGyn^cwiq'oY vサ޻|pw=Ol~#[Rw/_/`B]? x }@O!kLs S߿}59tfvz'w~ޙM?ۯd,W$_X =?\w^z͍kON/"_=p?1BQ4), ^%܏e?n9Cuow;`5n?͐덚hL]Fxn|Y[!8,V5?@=? w6vT\O#}~U1?o(&M|\k\ +R ؿkGUV/ (D/JFz }p%2J/e_f%[wr>_TiނO{FpRtZo~>?zpx.3/Ϝ97B:/;~9^oo'm q/co$o~w T0ѓ*Ǖ;WW&uZ=\[ܽ7p?n&'?6 >>-y*/ܟrM_~` %/;m f'(ޛsn'wiA,9?eM/o3 Q??SI[̫rU?zo?mî!:9C,#?y^%/ΏmF([;9}0{.%O~v?y@O:5!?}{}{W/i|k-044俪]lZ\?\Y]5/}Y\1클7 g﹠'?d("zمh`G8&hh۷?k Fo], ?U'nGTᕑu!ml48r׶_uv:@'UW  U㺰?YN>ql㫁|4b_sJq)'F?W/'!Eti•=kJߴch?; $?g.P/w#G&}jҴG~Ox@U]&`jhtA -zdk[?@.T5%t˒R5C4"?;} IK"?Ҋ4fga( WH@A?^l빽9@ښ/  aF+V7T<T3 @LYb4.]0[Mo7 '?x;|㮁hˆ?R]¿eE(Y_Қ^L+rkYV>Jv=gϗ, x[^'xx;Tav#x}:ECP25;-zO ރG1P-"+QF &S<. LT_wƃW?\_oZ*;!FDfjz NDiõ4Mk@;mN)8rPh/Zޜj&hYV~hX(?{ /,kQY9fM5Ԃ8Rמx[:pk4X {~dez;u-Ggn^5Tzsh?ΗoŋX7]荓^ :T毶V'0f-_CzzUWxmoǍ3?tuC2J.c֛7*l?v֢7.$~1 wNߨtQ踿xƒ3iQw @#ݽ P~eU?#z)tk!h?z1ǥ<[0ݡ~=~eTI8!YzAjmX|<c Ez,B?ap%.nO׵)gqI0 !XJG5ɀƣӍ O+gsHay>>j_Gw5(+Əg'&\:pgrǠcN2n(/?G.?Ѹ U959Ny:\M -- 6~ٹ=QEΤť/ 7ʏʗH#h?*ukonYww3n!Fetn=j?`ьa}y{w9OI~.A [huΚA`K,.\jb^cu[[!.>A?rRX_j@+zZIHE3=O']3@o:>/bʸ0n\*~G6ke;q]}õŇ` E}&4` A|\/Dq @[a7 ZY G#R,9fquhEWp64`ɔ|8[{Pe< G>QT JT tOڞg}s`M-0;o?4|QF,uCp0@wډ}(z>e;I&=|dav_2wB66s,*Yў TG1 R,JnxBqH tݵg)N[|؉v Σφ_ otҪ!H& 0nkq͆qqrP3n4z"!.qL v[ ;M`ߴh#?h)O[ )|Y<&u?>tRJGTD~f[oX움vG\CsNyl}8nO[gDa]gmAПoZx _WvҚߒf6tԤvA0+qvR6ߛ|wX{`=lWڑ}K3hBrhҦ=~I]3_#f_Ñ>uO=Gg/] imynDZ_ /w]um$Xx\Z/ΏY?3a4nև?umz{xùEa0֖ALg1@ EnGQU.ðbNVgm}+ayvp}Ao~>$!885N>muA+?oCBq zc&k7Ҟ^5@[ J$n9!  ^jAFL.=G\yRkxpCDg1@[ &xWG m|B-O\/`=ě5O<j?ӵ)v Yg׃NfMpO}W UGqe} Y}Hu}.G)OOL|Aq7SSkЇ+,>q$@ygY)}|}5;rdphЖsx׵cVgR&L-r# zWA_`x'o~*mz|*h (L[>`]ڃpu@tuCfjI>6=i+xQMOV K^Ǖ? Wo=UW#rrm&U,cr.[w|0m%9G6=4n [d}+Q)r_1(4y]Uw Bw]7@ K%U?A6=qX TմH]4?ģ4s`ƴh3?-tMOY WWoR xѫK)~9W{Gw B]7@ aئ'ڦnxą~qz7dOBj?MB~>4hk`Mզ')>q[ ĥ8<|6c GSUA. =t@ a#V+Rq0n *7^:5=*{}^_/yUWon{m'!6=^6~!%=tg}~XU!{h4D3UQބh;?9y`}.P\8(*Ȣhgy?O`' `Ҷ tO}oq] C8;N[_wP__xT>'oZGaЯ\?=ڒ ϸV=BIг|} jw1ݐVcs(,k?4 "T f*ȯѯd)qRha#+Xl3YOO3ڪcr?zԌ[۽ tG:Jk 5OVo0 @fcdq).V+{ z~Ӥ6:U A[PZѸV=/`9qrBIzNh}\?H̾.; P 6[?7||ҡW_i?zq۪'ohsqsN<\#KDfV~ݛNV|MNr񚑘V6.VoDž?/?[ q6?*Q4>&GÓ(BӴ#m]Ѱ鱤DC\+8!h/+FbN/67y ZDYoeW/e%$*п/&yDx4G$lݕA{Š0@z j fcG;r{>۫t3gNG n{z:c![~9-9yXҪǷ$YEK#0]h`~R?Ra ?_lUwy}8'ٍad0IwUMT'P[{>cICwVj-?#_> %~.*{~\nƥnCKRG;u??`kU4ܻw[Xw ֝tܫM'٧w涁X>W %~q>m0`.bcBqѷ~v?yQq҉T'd!_' l|=X~K7]Ԙ\GҮ6+Gu57ڞ'|}{ G7{=3:A4RRUq-X54Z M Bx_쵿'-ޝzZx7iE㏩vb1?Ihe@5j>۾y`7{-"YJ 5~ɮڹ\3? 򄻥V=q>Io(| {Ox+lCOo?kSJ7^B~A?@5lrۇk~)0Z,gLs@]36?_Dž˸p`4{P:q0qUOxJVڭn0.7nݮhdbݦU?ZAӚg}]$!iKf}qR5m~ٍ8{{w?Vj{D*=Qȣh_|hȯe@7'4e>誴%/Ԛg]3@ J>y'ha0G wxX?h͓ޮ| Z;x8ҏ??RG1>RǪ" O0^K Ǯ@\5MQ?h0ԯ؏%>jP˟._h>ʪ+G>)]ם.PDv|N4^֦Fb1vpw:qt;V>T)\_B0{i.@\1ҏuy?Ro8cCb[ `Y3y1뿜E>/P@!m5mO>ػ4KϨWo0 @ z'j$gUh?j5\ 拓ևvBѠ?m˰(.saֿC_Y!в4&ar5~YK'zK8W  @\6_t+DŽѓze@C>r~}_YyBq~=v/ O~`X~oL@gɍB@Ao󄰱: ߻V=aP3U_߲'uA?Ѡ_0^wg`0ηhMڝcvV=Cvaupxp q?nm`,X!X_. ?i]˞'k 'ׄgF`i6loQ(qBㇽ+-{J&շ/n8 CbvOOm/ wӄ`Y_&i?L]1 c&ʓrr?Eȿׄ^3 =|n+V=,5 z'}W ' *?:V堿?TP,DυL!hˆ`FK?CB!?.Š~taĞQT~'GZԍU)߹/xǫG߽i YFXh/;i#рd>G(y=f]_Fٺ|__9ux8C -pq1t*@q6Ioݝm*ʏ Q ?M0&nׅ^gyjհ0i/3L LTmv4ôFf޺J0hw؃?TZT.ð?ϽՇ/NGcGҗ‰IVEuU;WGo? ^[W l7onCAR?_twg=v>uv!W(tIVmE! = fFx~8pK&)ڿwovRy\|H4N!\_ CM! ˟{oQjx.B[ 5IL@m1FQ!C? &HL1C,#?M33=z a~ UG^UԇℼQ„29o~ᄌ>?Sÿz:] f-q{5;J3٧~^ߺyC,GTݬ0.'1.@֎V T]p4K}Юv/8`HR~o }0 *r޿cB˞1m{B^R?Zy(W#0[i; ?ypYle脤Frh؋̔NB*h%ՃuVa ]o*EN 'OWZWr^T=ʷ Ń._xQ=l͝Yy5?geKyvM%\h߫ϫcqǗ~x=Sjt OUyL?/9kK>IuBhxسP_+)6}Ië$}f! ~3T7fڞĺ>oi c++k a~A}?7Pf@xUo~'\A4WA1'Www Aq`7_Gv9 @U6)bvq^?>Oֲ'+jAS_V@V-Ix+_m(8QTWPLY56^/ o|`Pg?g]sv/%_1 MIv wG⤯v3LQTo*=[7[S9Yy{m_\Ws@v+g>|*<㽰cЯϝ_w%ЏƬ/\aB_3O~Y{yP&X0 ~ThL>WvE>|2۬6#}TgܯO.O=y<~p#=y¸1 GmjXc;kG/ wSPPl9UI#xHi,U+b~5 vhUkxiGFoǐC⧉+ҿ{Q{ac}ˠD} * /$d$ZǾ!a]#W>mpѤ{P8o쪊bUM0~J{?xw违[7(4}j L _vy?״r)8 !L*67=N9$?T ~PUH~y @ݷ i#~Tjfض=ٍjen^Mw8PBJ8 +IBOgz,lg9q(9v&mV_ {_tVϴpϸ&!wjC۩|. %/H 󜽮} &ݭ䯦;B8^'q:*(^Av1㧏!л/~0F8.k0N:d(kS*Os>kvqfz?۾Z?<)`^K`<2_W* )T4_ݠR?\Y?.o,H~? -*-{yf]  d~`id_Cvl-| ' ^' v;)0(a עx4σcgJC#NK{0{$RI ^I(n._"σBU|\l|q!G}'N0dX*db +Ǟ'C>C3?.< oi0.[3mO1Ű?/l_ךڥ'Lh3R=_ZS>EFT`_Kn Qa4ݴ?UmBjeNa#YWWwWŪQIX/`y.eu)pӦ '[?֍Ps .5yY C~<9/N\m!:yc'`.f0(XR_|/%X⇝v4&QvG\Pmx߻o37.<~6V'ab9}ˇVĺ TK+yx5pwiL nǥ*8T+ϗUǓ헂 ۔Tg?I=cUp.BЪgLߣXs߿JKB^G5ִ30e?c|i삀Xje#|vW<. cz”ͅ`/^ `o~דĒ(F۾>~~3Wדx#mv~a=} OEeiiK'Ts<+ׄ{'V=ד R;F<\&g|!6|h iPU_4wVRWh}{16gIUw*.Ue]f 3->  aZ{i3iݺ0~ˬVׂ*ТFҪZr`O/-& .OkNxkU?|M0;~E#X?j\2 EIsq{7y] `*p`T ?\|H+I0̞ ~dU&h$vm5Y^2 C0$俜\|HK;`w!0&5pp$0,+pWo Iu?\LW @Rg@Y5K_@R+`~L &1.ڗ^0 `J+FX2iҳ&X 3\|HK$ G0;BK(k[ f$Zy)XKg`3\B~0s0,`Ʋ^0@}#s04d_U:$ /+h$4PDZQ8@_|WRJ @8`Y7Bs4`@ CLZQҮjr#4pTQַR%?d }VP&YQZ@?4pe "DB~ h)? |Mn~XHs3EnQFA/$d$W @ Hdy)  n4TO.&iSO; 璋kAݫ1b]˪kgov[AY*Z ? `JH -W/%mZHV}U#Ny>rPBI%r0.0R0ARI. o$E,?@|Ha_6 G&O[\3$M >}$Y>rS!Y_Z_4 :&5Y^4)ZP"$返\|H@'-yp '$?W`aJqZ@k,p`I$A h%%-yDD\rq%Y7H~5CNV Ⱦ{>fIߧ0-KK*p6Ye4`aTg*H_ `>^M}C@OI..'Fj; / K@I֛JdIT=Ok&`WlO«m }``^I9K_~%)X.&`[֟b.~fF@ h?3Wb4h9>%$ABP@h<?NZdW M'`n4+rE@X$쿐\\J  FB%A_4IچJ7 m% y/%KA6<tF}7"jW_V@h$?AKAU?Яֿj(*?WO/x5 {1tVz,>'̽` hυ3"K#Je% a;ׂPtNOhDZЯԿiC?O/hε(&TV> iP P;;~`Ҷ;B?пf8`Pr>4a/ޥ-wp $?aĽV0O/ φ~>L?,^Ma `LVW2i;! af*τ])\7/0yKԵ2}~hl3\e`ިV~p!)|:i+xb$:%WwFFy[m?D7Co$2:~h!?ZH-$@ B~h!?ZH-ql_%pF30(?~>茯~;_d`=B~h!?ZH-$@ B~h!?ZH@g|񅯟I.N9^qlh$=\KגZ|;_aHXv~Z% υ~._0"K0 KBBB|͔ zh?& χ~Krڈ$˕LLZ\L-_?'`&`k^ >w M!`TdT(~v- υ~`Iz'ACZ_^־y06<0}ϥ$a8?`lL[_Ppd>Wڧ"GЯb(%?K߆ FT:!%A?"XRY)Y^40W~fBdV<}X4还W {!XzCc=t\ }>4]tT_̖FZ0L"$ܿU}hw u瓋+рNX jˆ*?@d^ItkrA~-VK[@JRJ/ &hx=KNch-Cj9H\JBˆ`y,ڿ,_0^ jV @3%Kō %C}*F>0#$ @7hU =Tt ~P0`TsT,HV9Y^6/%7 @X$?\\}`jߡ TY"+'ω#p.@'@}ԋY#rV,O`qE-V8UYX`Lq22"Vac232⛑*tYF)#8EU萏adZ)b/]>=O ~#<~V Wa3F)Op$yIeؼ&_)@Yb? %y@i؎MhY^W*>nKt%1ؿP "&_+@X1ƏUIKb;7V n(^`}^i]?dt%z_BJ=b]~)R%Jc#h(Lw,ۧ||@~:Һvq!Q Fa3sjw/8K P]%..3Q<"J<*l^{'x@ JCؼ|F)%|_JJ]t>LRZ$])q2>@Rgl_'J>?@pX~@Af)*ɿPvph->Y DK}%.3W މe}s&?,JWA8eܞ)@gM!?1@Ǐ*9F? 18Ǐ*Iiٴ24#_@=OZ#?ॺ%xC2FT-E`},W_=2nϔ Q@(]ϛŐr}f6yvO(ۆ_F 8.װt@,R%OaeM5c<(V gW Rn\b#(l 9xލ;?P,?'veaù8 ЗxÉ2}'CqC%8a3C6t^^M?ʟOT#xə2}'g (wYya/mWgc+WfX*A/u_Z'7 noUC;GfU3yGOZ q-}m0~\5)-?P]Ǐ*QRI J8~,e{j6Se%z,*i9_KU*+`͕ٞGfՈ3w/DKtӬk6a67FѼ\~*1[ď*Q4k??W ZlfW(^ p7K)Am ܧmJ?}Jp??P;(JGn# 1 /L g:q9A_(B?s6b6k?UNKGp?3YoT>ͺfs6b?>]7Q Zf'>6n,m 쪷f-DP 8~.Х"DgO< ~Z1Zt/}:V,S?];ݹ\)誼dH{qvYv gUlRX:3:~ =(@\/J%c ^pZۍECzOX??;BS{B0^ V|eXj]^ncw8ث|֭Uco}n, ~eV<~VF@OT>@_fNfV'>=o3aGؙpefܒg.unLbHT ]|x#/hӇ J?JncqD=?ol fCmLwݸV 0yf4e)LWة@8?bh7ev?!ݍ#1[}؄ 4CQ5vWqZZi3&xZWPiП^9Qڌin3j[+-Ǔ'8@^c^'؟ $m$1?Y|-/֜M_Jp.n >6EaO " ZgO6 sq[u h/HmƳ5lek{ ;GQxX?s V1W j/nm;bwIpBð i:o+mbv/m7Y{{ |M؄p[|M[1e؄IWsu=Y[ L~(Ѕ@yP ?H@P ?H@P ?H@P ?H@P ?H@P ?H@P ?H@P ?H@P ?H@P ?H@P ?H@P ?H@P ?H@P ?ϟ??߃1 o{qz׵jb?iiKǸ򶌁J@C1ƏiON.nTb?p;ǖfbп7?<"؟KAČ~7?#a3cuG&迱p"c6!^~PV gp?I/#%yq{YW%{Wq{VWI/ǐm@^EVZ$Y^0OҺ݆0K@oUo#P!?}6u[-f^3ge]8Kvxǟ=/]P?פ_iϾ b(:XIzz@oWsſr4@OJP ?_\%³X2@L j"zy}zh &J&P?}0VPbX \~j7V H <>p P&?k?U$f#%xP L~j6PG$f#%x@ L~jv(=S%@~Tf~j5Tf~( $ @~( $ @~( $ @~( $ @~( $ @~( $ @~( $ @~( $ @~( $ @~( $ @~( $ @~( $ @~( $ @~( $ @~( $ @~( $ @~( $ @~( $ @~( $gUd?}?ZHm县:תpg{:~MlK*F%(~;]co`Q]߷\\YOQO??9u::D9 _HW~Λv(MݶwɎ zVߵQF_|ׅUYbo_ʹ4쟏6 ǛH>n a| yܖvOp^,yq}"g6 e >׷7w`yۋ_{un7֎(7k6TߋSYuMMpukIk/6ݛaOIN}' ű;/o Gxfm7ni{*?\x:}>>o_;28ҹ&ߍ}6ˎ ?u{&_ ~ϋETUSDŽt s뢽+۶uxm}"w/دF_> Xv89͔/~f/q2/;֮:ԉNSZڍa:c ^B}l_dO.9'ߍܾ"t)۴FĤ4lf%wIy߯1x63n\Su,qJYfہ % t:gwnB]men[im۹T#ߍ;eWN7n97~~nq#KXvQ_: @? sp7dq{Fw.XAm}}' Hv8?SGYΫcl~%fAim Ώ2Ey$Kp7dme0$jnV/7M)(]~׵rp@_9}Jzm<ަ^mڲG9s#)b(9p.B|yLv.^7mЩLۙst}/,b~72CA{Y=VWu}~,BO. pYus6c$u3._ nclR|v#n˗pKȿO5%䧭cOb?2]wũ@ nLۗJ ܧ@2T])ݪ-n̂BRJH{)6~0 nA*J/+wAB~跁Z Veg nme\{Ok߷A[B~诡Z V]}ka2 ḾX^&po#zw=t-`U}`NJN&H[ ]C ܭ_4l3. !sBZhwA)*H hCςpؽ͸ }8'!?Ex%n#%hdw+>σ_JzF j3.p@߯w=7ce$Ubw?e p~EzjuWA]!G;UK/&*Ti|P, ی ܇.ea_OP4r+2B],>RmF uT 84RFJp~>=Q i@ }:!}m2lIq P5r?D#7Jp~>а͸ }( 6mL %hl+&Ay+[쳥J@~Xxn~EB"~T (ҳ|S^;UfF@tz­*ܯ5\ᣎ<t/ŵ6W 84&ZX 5U>(:Z?[fnL٣P֜.M}>DZl P4vl/܇=nwu@]~75;Ot^jJ:gͭa]4PY0lf=#el;Eso P8 L l3.'~vK/d;n¹~Re8s\[3 Jpoq_,/윅w@JOqL򯷟ׇVOl&[B:Riy!Nz zR갶8]e?vX(ۛC?;{cJh87u~=_j]Oyʟs(>s6n3y0{o-׷{4gnnzpksӨ_ 2}]/[]_o1J^&Y12cT{ֈvq-l?q19!k_ ΏSvH]/[ ܙO8>2c?lf8| <nקnO4UB* ܦn[[6"ovl]vj7>a87G sr;˴~=wyKcysZ'vduWK5+uCOgp>s@Mr?cY@ݥ=ԦGJc*u.Gb>N߿6ֹ8Z;Ҥ0n7i9 Z͍2 n |9r;rS8_g\ u9sl^ZԆk:4[@"oDornMl./]>?/٥H\_>uw 4mreEt~ۆ,k=/M-bc}a].VWuݫY5#i^{O\w"_[hp~%׉*U8.48tS,^*$X~D:Tmq!m')afvvz7i#ǏԗH52}71r]܉߹őv~:o#>x ʐ^K̮-ORHҰ I=7g-h?Gn[+m?rsL4D%N*ۿھ'ISprBhv\{ ipGKRO>,TZ9v,k^oNGK\_7qj7OvpؖJA*i'ѿ۵rax ]ghn)1Kick70lyg'?DR 4X6 }|%Ev ,r#/?1 ^5/\=NǨ4?L'2Qxpr}zzpfU<3JY'ր>DvWNEgjU~,7ƨuE^z/ ]OgkcLmڧĎ )xNCq0a08t^+/5m$lC;LAj-8(ԝme6G)T &-54k;la9]Fkz{W*om_ 㶈?'޸)I}ƅRPj:XR强)? '8y>Gio=ay2{'nA&_7e;7{0RimY)EuSpeɞM}4[%?M[B~(&T,>z =*ɼKk5[;їڍ)HFiУ'W_ OVZ]c%/ci+I/MtOmGr@8 ?YlH2L;h<ƃ}k8ěk&@? :Ehnpsj;JQ(NiܳpklI,cvW$O,NЮ}ҡNƧ*qË+>9ƓoFvy+<-uvx.}Q_U3JЮ8NxJ)T Nv.9<ִ5y}vݱ2 xk]Zk3% }(Q:j\sv+8=Y~dWblδkcV<7G7]jtL (8Ay%!MzGvxڲsm2XL@v6xg`p$MgOh&:*d_{'mGOEPw!?UCGe8~%9t] p$Mū<j$=s)!ITI/{7Ct/WF+mLJ%tG6Ɂ~5`Pmf&6.3'Ԛwנ'JO|JEe ҽ̔hs%^pz9O/Ɲm_&7^bT p"?} up' iPHG:㰙C;^1Hs0/^BH}k7fcx4ฒ?ҝ=n v~D?{m6jIzL}~\=huKiϋJli UHыț1 GjkpZ%:x}ʿDkm۸1'[(A5mb.UqۧAқ6L+A+zC]-[(AUJ 쭥y虱,-3SZ2 hC }H )OQ%Q| &7CXy͔Oko-/ ϕfo%FJppmktUj+%~KM~ ,AOi7;;8y0_[Cn؟u:U3%Jݠ"s[O8nV"oϕ}f}{1{sWiPJ ƺsWoຟS#%nPyMi7h_">Dm'^7Jm+KB .xH ogvR^Y+Np,,n4c|4j2E$Oe.Y] {voR 蹡4P\Ӵ#(,(vf pp_~71/i}6PƵ2EQ%wJp|Chdhh8F2R`b?WmR4R0{Uc| pug`T\۪E@iR?EߜuaJ xmTJ7>As1⋹J pVT(@p$6T 6CAVJPӚTh?S<ݠRk%Uy:+@.PfPO*-:TB'AеPT'ܐBR%(J_h7vR*P'q#3%zY+|1P]+j]*P_cȿ @oF ,2n+!?@ͬh"Cc^@Һ1*@,|,˿KZ . 'JPqقU*B߅IHbZ zIP3wg%PJ[B~F| @TOP?ԥF pj %(xJc :N}~,!@w xJM(CO&(@ww@OCK?x2t]= ~xC2~!HK4uDy@G4_kU]*6`O&8+H (P ѳ͕*/#eչ!ݛۍz42Vzn˵@;bpwn.q /n_<f{X]Ic. T6Rzna~@[6OOl7);4OƧ#Uh@uo/\{g[yی2Qc%h66o 5)ppa<) +=1f&Jc k%KyZ'DkJ#%h Ln43V<{Y)tK^gg3nIe0Wv0T(A3.khGk%h䩵蠱h&)߈$lBGU鴔_{ck%fPhFyVZg6Ạ=+~gC%J̅&J@;:#͍Oރc mevJhn-K2ޮxҷ'C)}̏.kXVJ"c:$=0Um]AaBwэ>j+ {G=/BJ@O`/%\}-m~o꟧-s^igYT=N6 ʲ2ΰ6CAy:N{ۼkej6l0Vxq*{+_)fJ@Oqk%Ő?z+ط|K.w+6Bcn?_~RyaDq8uw\nԇ)=Rm9mP64}RV}Nx`2U]h\Zz`8(4H2+b?sz;Yl~!O?V*AuJ?q̔z +tT[KSغO_ƪD%'?>nϓ?LI//ٓoTd= rFҸf Jp.ZMgVJpp,y*3w )ȝ{^=38n<_46Uboɟ2p$s%8Nߍad0Nl.lw ś) Wsזݠg^nY/ fNŮ'RjnV.[7T̎cU`//J%Z7ރ3exվ9yY+w#{o {Hg2Xwm0"~UV+n+`tk0^=|rJOJz'e <0x +ІLǕJikZ|)VwD wJRc1i{X,*ahl|ԪIme3^MK8&RygF#t,u]@eL*њk{[&A͕Q]%o?d{dGRO.5Pw&JAp y_TqQ묯ּ>WUs/쨍R[:1xla;K`&ı, ;cHWz8FZ}v^͍*/=Fldq$FHzQw?;Ks*?Gs`㊿mBW/p.ovTB~Q YJRx.p1M%R2=KuBW/&O4̕h,Ψp_[T O F7ozg8ύR.B;jn 6*E <8q7}?^Y]͔$3s'!䯷+pqL%11Y>^M*j?O{|'Nkp<򏔢"~Gf-88Ȩc&X~12x9leOk@Z uNBLlRG:)xu*ޟ+5fdTg^*q,y $n -V, M7p W餬RY^Lt^i2P*~˰ _aEi7V-Sk<"ś)٥ymuaK8h\hlXqqi\W\;)t:85?oltt.$oTz :M#8v}s%hI-9.4x ㎏Oy:l^89{ݻװy\x ڂ'8`,5b_e @>qRsʏO- ']hgra3]V#3N78饎UFJtʱsv\E:G[d {Ae۰?gy9m3?ʁ~z:&lfIBcP| }Wq[ȹ.8ݕ^^LV;q؄B 's^~<I;l0l9vwޱqmοN ) _f~zs?t֕#]xQk:nom1^[O6d6exQֶ un̂`d'~ g?5q|ٓH:6#-Z /;f>vSi}/#Ws4xLw*y_"c>?mo\E1TFaQkmŸYrmggi3]QA\Y+,|̝UOܖ˒^;q}f~`N҉~ez};O:Cj [Zݲ;i;ziF$xGRؿ qzu8Â- ? ߉_;H'kFcyf ;jqCfv3o\$uڇyjm7mXxYiҚi>`vsm<=oO,ڍ`_,w"҉x6IJwXnA?ύ2~Pپ:o!zy6ЋW2rҝڌA>Nh -3S2+%]=tqIxǎÝJM@*R?g@Ϝ47^ǐ 6v@JȨ{jCzJx)$xx؇ &A\{<ҋwg"Q c`<ҋwpg1W*. Kez`;9+ꁞ8 2pqݟ(Jg}/屡?.m w7c{6Vz{48qXخ+^=dRg*uDoF.kN%uENqHJ@2ߌ\))ý$X ]~6@=Ge:]t/gz.|kꅻ@ozSe3PKw=:_= ^$s|yZ+{ӱ3U EG^` mvT*ln?PN^k Hk㍛AŻ(/*/FJи^B~(K:g'o]@*A6&$\s8y,s ź(/,*A6&}8yP9kGE#Uhf!?tp?v!?Կxlt]f!?tp3v!?|ltfr=P n3nD;OqQ&?=t7A] 2@]%@6&ᜄqsL~輋ZhY B~8>3v!?tEM_F4l3n&Y@ycq3tEm_(? fIPE.jRYͬ\!?ФV%(s ({F%[.jbYkڍip7ό[.jrB~*uGm7_@ІWy7GpQku¨ǵX|!ҹs\Z'(IڌuOASSG?0nO_:a.R&lf$xv:CD}.0nOgxv.-;Й*P!5]7pz}yf0nW V%BpWCZa,agf8~|wqʥ,+%8k :2nwTAN89Nje uY.R͸Nː Bz n`"nWun\r\+N7U 8 %%{O:ݝj7&=כuyѯڮ2iJNIptε%{踥tHdA}>tM.m6?Dxó o Ŵ7^$d6?%;^+GJp/}^׮սj7Vv}/vLgσ Z!߭ٮ/`nY"ۍԡ)v\) rז}VnZ3nm&tc~i|P ho^_m{B zM?n+`[զk1cyA>+4'olr3 5R v{l`]t[GD6BYL};Gveڍ nT^*/셙uƏ>V:դ6 kV%X{"8 O e{hWMΊe{8wEГ O fƷJP1}<瘮NkGy tQCCK&.@KZZfJؗf1o};cǴ6BΣ { mt5:`Ha2!N0?Һ)X&,1{ύYp=ewNc:%|X[oOVIiHF\zg^79XA?Ku tXxߣ_3{_4pGAGyXc?}Y?ߓ܉|<]^m /UC982vf?~t87ҀEOՃ>q_vuOyH:㏞~Ԇ Mfix 'Օqƭs:{E瞷gx#?m3 ~ p\}vmcAUcDdu RFxA0 aY6e4Xfqny;piœtDYܗޏљ#U}3i]ӤmIK_­4Z΍aG_m TKu"umqL=ry8 wv~do/fB,a&ENߑv6$oKUavc ~; Z jO>{:[*c_u־pcׯֆ~<\ӹ&u!Oual'-.u0 q^XңHS!-`>y6R)h-IZgZC΍t{XRfc.mo&9sm.װd,ݚ4m?f qMЮFn&`ԑ7# ܎Ͳ~Gp΍'i&:7;uc: j -p4viRt4ᶙ;Vmy_uI_F<!*`sNB8ɉۏac^>7&̹NZB~P[{6Jvb65  Gxau6'/3t50Lh7@%IK,Fn n3H}y`l}N?!1= ? {|?kO*s(}H NѿNm λe$/a/Lॗt8%B}^\M_ZcfvMϏugC/q_E*i4n ߶U+ӹ7gM09QO_Wc>^r*(m7$roo~}iy:l=9翜ٍq*௳/9tg3u:Tf S&aއIuS|n?~,rӰkhn fU!7r6A)/4<7A{},>跿91= S &*E_3uC\X?\ðy(|}) \"m6AޅۉAyJ *l^>ڌ%<_;<#|̃7΍; :~mR91#]Iw܎gf?!xlM}eAϾ'^:ypPס74-|srCr6D@ɞA:|]΍y1rnTG{x]>֎?%+s{?Ux~ 9I{ [7P~npnk_f/CǏA:AgǴzi BPS6:=K*Ar}˅Z@z{_=i70S?f/.aP<{Jg~V4b ՙ)>g动[:?xU)Aַ!nk<&_[fJpo_q0lGc}P=T cY<կ*q@1Vw,8 %h <ΞZ͕:+K?tH v:ce趼^D+wC?tP Y蠼o*њ]P0TFz$_*E}v,~7'U>6]o~dƈ#~X7ڶ_b(:Rq/Kh!j ?#|\/@-g ?CRdG|_ lCRp?ZSϧ8{o^[0~ ?.Iggި= %{f7k6G|$n':lfqyUW8xoo@7\+ɤ:n[ qR]O?V.8Y6n3K%},^MB5Nc<f3VJp6iٞlO^\ ?El?tD WoǰͿٱ7 >sͧ ުm~IQ<`躏\=?&/1Q @,&cgB{?tU G?26'eNHTg~(X^d c ExpVbPi>(ŻO* eA&zpj?}YǏ?TN"PrĠq?~Q 8'~L^ KwḦ~,3r~ ~(l^ ]DkOfpp)ܟt/c\\g?Vq{2*_:R [Zjܵz TK(/y)~P.lGNzF|p"D=u+E1~ϟ2*nOT+*O:~Wq~"nTy K\r=TxIy?/Kboc?- XAF%ԫ ~^q&8~,D5@z$xP a[}8P QީaM~b?8?~S .S:~KP2E_=@#ytTZo5lqtMbS!e؄/T3%|Y? 9a3kݧ/m ~1\]ƏA,1[.lY@M gWei/}8 conky-1.19.6/doc/000077500000000000000000000000001451224556600135125ustar00rootroot00000000000000conky-1.19.6/doc/.gitignore000066400000000000000000000000241451224556600154760ustar00rootroot00000000000000__pycache__/ man.md conky-1.19.6/doc/CMakeLists.txt000066400000000000000000000032151451224556600162530ustar00rootroot00000000000000# # Conky, a system monitor, based on torsmo # # Please see COPYING for details # # Copyright (c) 2005-2021 Brenden Matthews, et. al. (see AUTHORS) All rights # reserved. # # This program is free software: you can redistribute it and/or modify it under # the terms of the GNU General Public License as published by the Free Software # Foundation, either version 3 of the License, or (at your option) any later # version. # # This program is distributed in the hope that it will be useful, but WITHOUT # ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS # FOR A PARTICULAR PURPOSE. See the GNU General Public License for more # details. You should have received a copy of the GNU General Public License # along with this program. If not, see . # if(BUILD_DOCS) add_custom_target(man.md ALL COMMAND ${Python3_EXECUTABLE} ${CMAKE_CURRENT_SOURCE_DIR}/render.py man.md.j2 > ${CMAKE_CURRENT_BINARY_DIR}/man.md WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR} SOURCES config_settings.yaml variables.yaml lua.yaml man.md.j2 ) add_custom_target(conky.1 ALL COMMAND ${APP_PANDOC} --standalone -f markdown -t man ${CMAKE_CURRENT_BINARY_DIR}/man.md > ${CMAKE_CURRENT_BINARY_DIR}/conky.1 SOURCES config_settings.yaml variables.yaml lua.yaml man.md.j2 ) add_dependencies(conky.1 man.md) set(MAN_PATH "share/man/man1") set(MAN_FILES ${CMAKE_CURRENT_BINARY_DIR}/conky.1) install(FILES ${DOC_FILES} DESTINATION ${DOC_PATH}) if(BUILD_DOCS) install(FILES ${MAN_FILES} DESTINATION ${MAN_PATH}) endif(BUILD_DOCS) endif(BUILD_DOCS) conky-1.19.6/doc/README.md000066400000000000000000000026571451224556600150030ustar00rootroot00000000000000# Conky docs There are 3 YAML files which contain the documentation: * [`variables.yaml`](variables.yaml): Documents each object/variable * [`config_settings.yaml`](config_settings.yaml): Documents global configuration settings * [`lua.yaml`](lua.yaml): Documents Conky's Lua API The `desc` field within the docs can be formatted with markdown, however _do not_ include headings within the `desc` fields, as it will mess up the man page output. In markdown, headings begin with `#`. The supported documentation fields are: * `name`: the name of the thing * `desc`: a markdown-formatted description of the thing * `args`: optional list of arguments * `default`: an optional default value, if applicable ## Updating docs The man page is based on [`man.md.j2`](man.md.j2) which is a Jinja2 template. The generated markdown is used to generate a final man page using [`pandoc`](https://pandoc.org/). Generating the final man page is a 2 step process: 1. Run `render.py` to process `man.md.j2`: ```console $ ./render.py man.md.j2 > man.md ``` 2. Run `pandoc` to convert the markdown into a man page: ```console $ pandoc --standalone -f markdown -t man man.md > conky.1 ``` These steps are also part of the CMake build, and can be executed by configuring the build with `-DBUILD_DOCS=ON`. When building the docs with CMake, target files are written to the CMake build directory, and not necessarily the same path as the source files. conky-1.19.6/doc/config_settings.yaml000066400000000000000000000503241451224556600175670ustar00rootroot00000000000000# See README.md for details on doc processing. # # The `desc` field can be formatted with markdown, but please do not include # headings (lines beginning with `#`) in the `desc` field. # # The supported fields are: # # * `name`: the name of the thing # * `desc`: a markdown-formatted description of the thing # * `args`: optional list of arguments # * `default`: an optional default value, if applicable --- desc: |- This is a listing of global configuration options for Conky. These are placed in the `conky.config` section of your configuration file, before `conky.text`. The default configuration file location is `~/.config/conky/conky.conf` or `${sysconfdir}/conky/conky.conf`. On most systems, `$sysconfdir` is `/etc`, and you can find the sample config file there in `/etc/conky/conky.conf`. You might want to copy the default config to `~/.config/conky/conky.conf` and then start modifying it. User configs can be found at https://github.com/brndnmtthws/conky/wiki/Configs. Optional arguments are generally denoted with paretheses (i.e., `(optional)`). values: - name: alignment desc: |- Aligned position on screen, may be top_left, top_right, top_middle, bottom_left, bottom_right, bottom_middle, middle_left, middle_middle, middle_right, or none (also can be abbreviated as tl, tr, tm, bl, br, bm, ml, mm, mr). See also gap_x and gap_y. - name: append_file desc: Append the file given as argument. - name: background desc: |- Boolean value, if true, Conky will be forked to background when started. - name: border_inner_margin desc: |- Inner border margin in pixels (the margin between the border and text). - name: border_outer_margin desc: |- Outer border margin in pixels (the margin between the border and the edge of the window). - name: border_width desc: Border width in pixels. - name: colorN desc: |- Predefine a color for use inside conky.text segments. Substitute N by a digit between 0 and 9, inclusively. When specifying the color value in hex, omit the leading hash (#). - name: console_bar_fill desc: 'A character to fill the console bars.' default: '#' - name: console_bar_unfill desc: 'A character to unfill the console bars.' default: '.' - name: console_graph_ticks desc: |- A comma-separated list of strings to use as the bars of a graph output to console/shell. The first list item is used for the minimum bar height and the last item is used for the maximum, e.g. \" ,_,=,#\". - name: cpu_avg_samples desc: The number of samples to average for CPU monitoring. - name: default_bar_height desc: |- Specify a default height for bars. default: 6 - name: default_bar_width desc: |- Specify a default width for bars. If not specified, the default value is 0, which causes the bar to expand to fit the width of your Conky window. If you set out_to_console = true, the default value will be 10 for the text version of the bar. default: 0 - name: default_color desc: Default color and border color. - name: default_gauge_height desc: |- Specify a default height for gauges. default: 25 - name: default_gauge_width desc: |- Specify a default width for gauges. default: 40 - name: default_graph_height desc: |- Specify a default height for graphs. default: 25 - name: default_graph_width desc: |- Specify a default width for graphs. If not specified, the default value is 0, which causes the graph to expand to fit the width of your Conky window. If you set out_to_console = true, the text version of the graph will actually have no width and you will need to set a sensible default or set the height and width of each graph individually. default: 0 - name: default_outline_color desc: Default outline color. - name: default_shade_color desc: Default shading color and border's shading color. - name: detect_battery desc: |- One or more batteries to check in order to use update_interval_on_battery (comma separated). default: BAT0 - name: disable_auto_reload desc: |- Enable to disable the inotify-based auto config reload feature. - name: diskio_avg_samples desc: The number of samples to average for disk I/O monitoring. - name: display desc: Specify an X display to connect to. - name: double_buffer desc: |- Use the Xdbe extension? (eliminates flicker) It is highly recommended to use own window with this one so double buffer won't be so big. - name: draw_blended desc: |- Boolean, blend when rendering drawn image? Some images blend incorrectly breaking alpha with ARBG visuals. This provides a possible work around by disabling blending. default: yes - name: draw_borders desc: Draw borders around text. - name: draw_graph_borders desc: Draw borders around graphs. - name: draw_outline desc: Draw outlines. - name: draw_shades desc: Draw shades. - name: extra_newline desc: |- Put an extra newline at the end when writing to stdout, useful for writing to awesome's wiboxes. - name: font desc: Font name in X, xfontsel can be used to get a nice font. - name: fontN desc: |- Predefine a font to be used in conky.text segments. Substitute N by a number between 0 and 9 inclusive. Use the same format as a font variable. - name: forced_redraw desc: |- Boolean value, if true, Conky will redraw everything when you switch the workspace. This may cause delays/flickering on some WMs. - name: format_human_readable desc: |- If enabled, values which are in bytes will be printed in human readable format (i.e., KiB, MiB, etc). If disabled, the number of bytes is printed instead. - name: gap_x desc: |- Gap, in pixels, between right or left border of screen, same as passing -x at command line, e.g. gap_x 10. For other position related stuff, see 'alignment'. - name: gap_y desc: |- Gap, in pixels, between top or bottom border of screen, same as passing -y at command line, e.g. gap_y 10. For other position related stuff, see 'alignment'. - name: github_token desc: |- Specify API token for GitHub notifications. Create an API token at https://github.com/settings/tokens/new?scopes=notifications&description=conky. - name: hddtemp_host desc: |- Hostname to connect to for hddtemp objects. default: '127.0.0.1' - name: hddtemp_port desc: Port to use for hddtemp connections. default: 7634 - name: http_port desc: |- Port to listen to for HTTP connections. Default value is 10080, but is blocked by Firefox and Chrome, so you really want to change it. default: 10080 - name: http_refresh desc: |- When this is set the page generated with out_to_http will automatically refresh each interval. default: no - name: if_up_strictness desc: |- How strict should if_up be when testing an interface for being up? The value is one of up, link or address, to check for the interface being solely up, being up and having link or being up, having link and an assigned IP address. - name: imap desc: |- Default global IMAP server. Default port is 143, default folder is 'INBOX', default interval is 5 minutes, and default number of retries before giving up is 5. If the password is supplied as '*', you will be prompted to enter the password when Conky starts. args: - host - user - pass - [-i interval (in seconds)] - [-f 'folder'] - [-p port] - [-e 'command'] - [-r retries] - name: imlib_cache_flush_interval desc: Interval (in seconds) to flush Imlib2 cache. - name: imlib_cache_size desc: |- Imlib2 image cache size, in bytes. Increase this value if you use $image lots. Set to 0 to disable the image cache. default: 4194304 - name: lua_mouse_hook desc: |- This function, if defined, will be called by Conky upon receiving mouse events from X. Requires X support. A table containing event information will be passed to this function as the first argument. Use this hook for detecting mouse input and acting on it. Conky puts 'conky_' in front of function_name to prevent accidental calls to the wrong function unless you place 'conky_' in front of it yourself. args: - function_name - name: lowercase desc: Boolean value, if true, text is rendered in lower case. - name: lua_draw_hook_post desc: |- This function, if defined, will be called by Conky through each iteration after drawing to the window. Requires X support. Takes any number of optional arguments. Use this hook for drawing things on top of what Conky draws. Conky puts 'conky_' in front of function_name to prevent accidental calls to the wrong function unless you place 'conky_' in front of it yourself. args: - function_name - [function arguments] - name: lua_draw_hook_pre desc: |- This function, if defined, will be called by Conky through each iteration before drawing to the window. Requires X support. Takes any number of optional arguments. Use this hook for drawing things on top of what Conky draws. Conky puts 'conky_' in front of function_name to prevent accidental calls to the wrong function unless you place 'conky_' in front of it yourself. args: - function_name - [function arguments] - name: lua_load desc: Loads the Lua scripts separated by spaces. - name: lua_shutdown_hook desc: |- This function, if defined, will be called by Conky at shutdown or when the configuration is reloaded. Use this hook to clean up after yourself, such as freeing memory which has been allocated by external libraries via Lua. Conky puts 'conky_' in front of function_name to prevent accidental calls to the wrong function unless you place 'conky_' in front of it yourself. args: - function_name - [function arguments] - name: lua_startup_hook desc: |- This function, if defined, will be called by Conky at startup or when the configuration is reloaded. Use this hook to initialize values, or for any run-once applications. Conky puts 'conky_' in front of function_name to prevent accidental calls to the wrong function unless you place 'conky_' in front of it yourself. args: - function_name - [function arguments] - name: mail_spool desc: Mail spool for mail checking. - name: max_port_monitor_connections desc: |- Allow each port monitor to track at most this many connections. default: 256 - name: max_text_width desc: |- When a line in the output contains 'width' chars and the end isn't reached, the next char will start on a new line. If you want to make sure that lines don't get broken, set 'width' to 0. args: - seconds - name: max_user_text desc: |- Maximum size of user text buffer in bytes, i.e. text inside conky.text section in config file. default: 16384 args: - seconds - name: maximum_width desc: Maximum width of window. args: - seconds - name: minimum_height desc: Minimum height of the window. args: - seconds - name: minimum_width desc: Minimum width of window. args: - seconds - name: mpd_host desc: Host of MPD server. - name: mpd_password desc: MPD server password. - name: mpd_port desc: Port of MPD server. - name: music_player_interval desc: |- Music player thread update interval. default: update interval - name: mysql_db desc: MySQL database to use. default: mysql - name: mysql_host desc: Host of MySQL server default: localhost - name: mysql_password desc: |- Password of the MySQL user. Place it between \"-chars. When this is not set there is no password used. - name: mysql_port desc: Port of MySQL server. default: 0 - name: mysql_user desc: |- MySQL user name to use when connecting to the server. Defaults to your username. - name: net_avg_samples desc: The number of samples to average for net data. - name: no_buffers desc: Subtract (file system) buffers from used memory. - name: nvidia_display desc: |- The display that the nvidia variable will used. default: $DISPLAY - name: out_to_console desc: Print text to stdout. - name: out_to_http desc: Let conky act as a small http-server serving its text. - name: out_to_ncurses desc: |- Print text in the console, but use ncurses so that conky can print the text of a new update over the old text. (In the future this will provide more useful things). - name: out_to_stderr desc: Print text to stderr. - name: out_to_wayland desc: |- Open a Wayland window to display output. default: no - name: out_to_x desc: |- When set to no, there will be no output in X (useful when you also use things like out_to_console). If you set it to no, make sure that it's placed before all other X-related setting (take the first line of your configfile to be sure). default: yes - name: override_utf8_locale desc: Force UTF8. Requires XFT. - name: overwrite_file desc: Overwrite the file given as argument. - name: own_window desc: Boolean, create own window to draw. - name: own_window_argb_value desc: |- When ARGB visuals are enabled, this use this to modify the alpha value used. Valid range is 0-255, where 0 is 0% opacity, and 255 is 100% opacity. - name: own_window_argb_visual desc: |- Boolean, use ARGB visual? ARGB can be used for real transparency, note that a composite manager is required for real transparency. This option will not work as desired (in most cases) in conjunction with 'own_window_type override'. - name: own_window_class desc: Manually set the WM_CLASS name. default: Conky - name: own_window_colour desc: |- If own_window_transparent no, set a specified background colour. Takes either a hex value (e.g. '#ffffff'), a shorthand hex value (e.g. '#fff'), or a valid RGB nam (see `/usr/lib/X11/rgb.txt`). default: black args: - seconds - name: own_window_hints desc: |- If own_window is yes, you may use these window manager hints to affect the way Conky displays. Notes: Use own_window_type desktop as another way to implement many of these hints implicitly. If you use own_window_type override, window manager hints have no meaning and are ignored. args: - seconds - name: own_window_title desc: |- Manually set the window name. default: 'conky ()' - name: own_window_transparent desc: |- Boolean, set transparency? If ARGB visual is enabled, sets background opacity to 0%. - name: own_window_type desc: |- if own_window is yes, you may specify type normal, desktop, dock, panel, utility or override. Desktop windows are special windows that have no window decorations; are always visible on your desktop; do not appear in your pager or taskbar; and are sticky across all workspaces. Utility windows are like desktop windows, except they appear above everything else rather than below. Panel windows reserve space along a desktop edge, just like panels and taskbars, preventing maximized windows from overlapping them. The edge is chosen based on the alignment option. Override windows are not under the control of the window manager. Hints are ignored. This type of window can be useful for certain situations. default: normal - name: pad_percents desc: Pad percentages to this many decimals (0 = no padding). - name: pop3 desc: |- Default global POP3 server. Arguments are: `host user pass [-i interval (in seconds)] [-p port] [-e 'command'] [-r retries]\". Default port is 110, default interval is 5 minutes, and default number of retries before giving up is 5. If the password is supplied as '*', you will be prompted to enter the password when Conky starts. args: - host - user - pass - [-i interval (in seconds)] - [-p port] - [-e 'command'] - [-r retries] - name: short_units desc: |- Shortens units to a single character (kiB->k, GiB->G, etc.). default: no - name: show_graph_range desc: Shows the time range covered by a graph. - name: show_graph_scale desc: Shows the maximum value in scaled graphs. - name: graph_gradient_mode desc: |- Changes the color space used for interpolation. Arguments are hcl, hsv, and rgb (default). args: - (rbg|hcl|hsv) default: rgb - name: stippled_borders desc: Border stippling (dashing) in pixels. - name: store_graph_data_explicitly desc: |- Enable storing graph data explicitly by ID. This avoids resets while using conditional colors. This option should be disabled while using graphs indirectly e.g. via execpi or lua_parse. Otherwise the graph stays emtpy. The default value is true. default: true - name: temperature_unit desc: |- Desired output unit of all objects displaying a temperature. Parameters are either `fahrenheit` or `celsius`. default: celsius - name: templateN desc: |- Define a template for later use inside conky.text segments. Substitute N by a digit between 0 and 9, inclusively. The value of the variable is being inserted into the stuff inside conky.text at the corresponding position, but before some substitutions are applied: * `\\n` -> newline * `\\` -> backslash * `\\ ` -> space * `\\N` -> template argument N (starting from 1) - name: text_buffer_size desc: |- Size of the standard text buffer (default is 256 bytes). This buffer is used for intermediary text, such as individual lines, output from $exec vars, and various other variables. Increasing the size of this buffer can drastically reduce Conky's performance, but will allow for more text display per variable. The size of this buffer cannot be smaller than the default value of 256 bytes. args: - seconds - name: times_in_seconds desc: |- If true, variables that output times output a number that represents seconds. This doesn't affect $time, $tztime and $utime. - name: top_cpu_separate desc: |- If true, cpu in top will show usage of one processor's power. If false, cpu in top will show the usage of all processors' power combined. - name: top_name_verbose desc: |- If true, top name shows the full command line of each process, including arguments (whenever possible). Otherwise, only the basename is displayed. Default value is false. default: false - name: top_name_width desc: Width for $top name value (defaults to 15 characters). - name: total_run_times desc: |- Total number of times for Conky to update before quitting. Zero makes Conky run forever. - name: units_spacer desc: String to place between values and units. default: '' - name: update_interval desc: Update interval. args: - seconds - name: update_interval_on_battery desc: Update interval when running on battery power. args: - seconds - name: uppercase desc: Boolean value, if true, text is rendered in upper case. - name: use_spacer desc: |- Adds spaces around certain objects to stop them from moving other things around. Arguments are left, right, and none (default). The old true/false values are deprecated and default to right/none respectively. Note that this only helps if you are using a mono font, such as Bitstream Vera Sans Mono. default: none - name: use_xft desc: Use Xft (anti-aliased font and stuff). - name: xftalpha desc: Alpha of Xft font. Must be a value at or between 1 and 0. - name: xinerama_head desc: Specify a Xinerama head. conky-1.19.6/doc/lua.yaml000066400000000000000000000201101451224556600151510ustar00rootroot00000000000000# See README.md for details on doc processing. # # The `desc` field can be formatted with markdown, but please do not include # headings (lines beginning with `#`) in the `desc` field. # # The supported fields are: # # * `name`: the name of the thing # * `desc`: a markdown-formatted description of the thing # * `args`: optional list of arguments # * `default`: an optional default value, if applicable --- desc: |- Conky features a Lua Programming API, and also ships with Lua bindings for some useful libraries. Note that the bindings require tolua++, which currently only compiles against Lua 5.1. To use Lua Conky, you first need to make sure you have a version of Conky with Lua support enabled (`conky -v` will report this). Conky defines certain global functions and variables which can be accessed from Lua code running in Conky. Scripts must first be loaded using the lua_load configuration option. You then call functions in Lua via Conky's $lua, $lua_read, and Lua hooks. Be careful when creating threaded objects through the Lua API. You could wind up with a whole bunch of threads running if a thread is created with each iteration. NOTE: In order to accommodate certain features in the cairo library's API, Conky will export a few additional functions for the creation of certain structures. These are documented below. values: - name: cairo_font_extents_t:create() desc: |- Call this function to return a new cairo_font_extents_t structure. A creation function for this structure is not provided by the cairo API. After calling this, you should use `tolua.takeownership(cfe)` on the return value to ensure ownership is passed properly. - name: cairo_font_extents_t:destroy(structure) desc: |- Call this function to free memory allocated by cairo_font_extents_t:create. You should call `tolua.releaseownership(cfe)` before calling this function to avoid double-frees, but only if you previously called `tolua.takeownership(cfe)` - name: cairo_matrix_t:create() desc: |- Call this function to return a new cairo_matrix_t structure. A creation function for this structure is not provided by the cairo API. After calling this, you should use `tolua.takeownership(cm)` on the return value to ensure ownership is passed properly. - name: cairo_matrix_t:destroy(structure) desc: |- Call this function to free memory allocated by cairo_matrix_t:create. You should call `tolua.releaseownership(cm)` before calling this function to avoid double-frees, but only if you previously called `tolua.takeownership(cm)` - name: cairo_text_extents_t:create() desc: |- Call this function to return a new cairo_text_extents_t structure. A creation function for this structure is not provided by the cairo API. After calling this, you should use `tolua.takeownership(cte)` on the return value to ensure ownership is passed properly. - name: cairo_text_extents_t:destroy(structure) desc: |- Call this function to free memory allocated by cairo_text_extents_t:create. You should call `tolua.releaseownership(cte)` before calling this function to avoid double-frees, but only if you previously called `tolua.takeownership(cte)` - name: conky_build_arch desc: |- A string containing the build architecture for this particular instance of Conky. - name: conky_build_date desc: |- A string containing the build date for this particular instance of Conky. - name: conky_build_info desc: |- A string containing the build info for this particular instance of Conky, including the version, build date, and architecture. - name: conky_config desc: |- A string containing the path of the current Conky configuration file. - name: conky_info desc: |- This table contains some information about Conky's internal data. The following table describes the values contained: | Key | Value | |-----------------|---------------------------------------| | update_interval | Conky's update interval (in seconds). | - name: conky_parse(string) desc: |- This function takes a string that is evaluated as per Conky's TEXT section, and then returns a string with the result. - name: conky_set_update_interval(number) desc: |- Sets Conky's update interval (in seconds) to 'number'. - name: conky_version desc: |- A string containing the version of the current instance of Conky. - name: conky_window desc: |- This table contains some information about Conky's window. The following table describes the values contained: | Key | Value | |---------------------|---------------------------------------------------------------------------------| | drawable | Window's drawable (Xlib Drawable), requires Lua extras enabled at compile time. | | visual | Window's visual (Xlib Visual), requires Lua extras enabled at compile time. | | display | Window's display (Xlib Display), requires Lua extras enabled at compile time. | | width | Window width (in pixels). | | height | Window height (in pixels). | | border_inner_margin | Window's inner border margin (in pixels). | | border_outer_margin | Window's outer border margin (in pixels). | | border_width | Window's border width (in pixels). | | text_start_x | The x component of the starting coordinate of text drawing. | | text_start_y | The y component of the starting coordinate of text drawing. | | text_width | The width of the text drawing region. | | text_height | The height of the text drawing region. | NOTE: This table is only defined when X support is enabled. - name: RsvgRectangle:create() desc: |- Call this method to return a new RsvgRectangle structure. A creation function for this structure is not provided by the Rsvg API. After calling this, you should use `tolua.takeownership(rect)` on the return value to ensure ownership is passed properly. - name: RsvgRectangle:destroy() desc: |- Call this method to free memory allocated by `RsvgRectangle:create`. You should call `tolua.releaseownership(rect)` before calling this function to avoid double-frees, but only if you previously called `tolua.takeownership(rect)` - name: RsvgRectangle:set(x, y, width, height) desc: |- Sets the values of an existing RsvgRectangle. - name: RsvgRectangle:get() desc: |- Gets the values of an existing RsvgRectangle. - name: RsvgDimensionData:create() desc: |- Call this method to return a new RsvgDimensionData structure. A creation function for this structure is not provided by the Rsvg API. After calling this, you should use `tolua.takeownership(rect)` on the return value to ensure ownership is passed properly. - name: RsvgDimensionData:destroy() desc: |- Call this method to free memory allocated by `RsvgDimensionData:create`. You should call `tolua.releaseownership(dd)` before calling this function to avoid double-frees, but only if you previously called `tolua.takeownership(dd)` - name: RsvgDimensionData:set(x, y, width, height) desc: |- Sets the values of an existing RsvgDimensionData. - name: RsvgDimensionData:get() desc: |- Gets the values of an existing RsvgDimensionData. conky-1.19.6/doc/man.md.j2000066400000000000000000000174531451224556600151330ustar00rootroot00000000000000% conky(1) % % {{ date }} # NAME conky - A system monitor for X # SYNOPSIS **conky** \[ *options* \] # DESCRIPTION Conky is a system monitor for X originally based on torsmo. Since its inception, Conky has changed significantly from its predecessor, while maintaining simplicity and configurability. Conky can display just about anything, either on your root desktop or in its own window. Not only does Conky have many built-in objects, it can also display just about any piece of information by using scripts and other external programs. Conky has more than 250 built in objects, including support for a plethora of OS stats (uname, uptime, CPU usage, mem usage, disk usage, \"top\" like process stats, and network monitoring, just to name a few), built in IMAP and POP3 support, built in support for many popular music players (MPD, XMMS2, Audacious), and much much more. Conky can display this info either as text, or using simple progress bars and graph widgets, with different fonts and colours. We are always looking for help, whether its reporting bugs, writing patches, or writing docs. Please use the facilities on GitHub to make bug reports, feature requests, and submit patches. Thanks for your interest in Conky. # COMPILING For users compiling from source on a binary distro, make sure you have the X development libraries installed (Unless you configure your build without X11). This should be a package along the lines of \"libx11-dev\" or \"xorg-x11-dev\" for X11 libs, and similar \"-dev\" format for the other libs required (depending on your build options). You should be able to see which extra packages you need to install by reading errors that you get from running \`cmake\'. The easiest way to view the available build options is to run \`ccmake\' or \`cmake-gui\' from the source tree, but be careful when disabling certain features as you may lose desired functionality. E.g., with BUILD_MATH disabled you won\'t get errors but logarithmic graphs will be normal graphs and gauges will miss their line. Conky has (for some time) been available in the repositories of most popular distributions. Here are some installation instructions for a few: Gentoo users \-- Conky is in Gentoo\'s Portage\... simply use \"emerge app-admin/conky\" for installation. Debian, etc. users \-- Conky should be in your repositories, and can be installed by doing \"aptitude install conky\". Example to compile and run Conky with default components (note that some build options may differ for your system): **cmake** **-D CMAKE_INSTALL_PREFIX:string=/usr .** : **make** : **make install** **\# Optional** : **src/conky** : Conky has been tested to be compatible with C99 C and C++0x C++, however it has not been tested with anything other than gcc, and is not guaranteed to work with other compilers. TIP: Try configuring Conky with \`ccmake\' or \`cmake-gui\' instead of just \`cmake\'. # YOU SHOULD KNOW Conky is generally very good on resources. That said, the more you try to make Conky do, the more resources it is going to consume. An easy way to force Conky to reload your *\~/.config/conky/conky.conf*: \"killall -SIGUSR1 conky\". Saves you the trouble of having to kill and then restart. # OPTIONS Command line options override configurations defined in configuration file. **-a \| \--alignment=** **ALIGNMENT** : Text alignment on screen, {top,bottom,middle}\_{left,right,middle} or none. Can also be abbreviated with first chars of position, ie. tr for top_right. Only available with build flag BUILD_X11 enabled. **-b \| \--double-buffer** : Use double buffering (eliminates \"flicker\"). Only available with build flag BUILD_X11 enabled. **-c \| \--config=** **FILE** : Config file to load instead of *\~/.config/conky/conky.conf*. **-C \| \--print-config** : Print builtin default config to stdout. See also the section EXAMPLES for more information. Only available with build flag BUILD_BUILTIN_CONFIG enabled. **-d \| \--daemonize** : Daemonize Conky, aka fork to background. **-D \| \--debug** : Increase debugging output, ie. -DD for more debugging. **-f \| \--font=** **FONT** : Font to use. Only available with build flag BUILD_X11 enabled. **-h \| \--help** : Prints command line help and exits. **-i** **COUNT** : Number of times to update Conky (and quit). **-o \| \--own-window** : Create own window to draw. Only available with build flag BUILD_X11 enabled. **-p \| \--pause=** **SECONDS** : Time to pause/wait before actually starting Conky. **-q \| \--quiet** : Run Conky in \'quiet mode\' (ie. no output). **-t \| \--text=** **TEXT** : Text to render, remember single quotes, like -t \' \$uptime \'. **-u \| \--interval=** **SECONDS** : Update interval. **-v \| -V \| \--version** : Prints version, build information and general info. Exits after printing. **-w \| \--window-id=** **WIN_ID** : Window id to draw. Only available with build flag BUILD_X11 enabled. **-x** **X_COORDINATE** : X position. **-X \| \--display=** **DISPLAY** : X11 display to use. Only available with build flag BUILD_X11 enabled. **-y** **Y_COORDINATE** : Y position. # CONFIGURATION SETTINGS {{ config_settings['desc'] }} {% for item in config_settings['values'] %} **{{ item.name }}** {% if item.args %}**{{ item.args | join(" ") }}**{% endif %} : {{ item.desc | indent(width=4) }} {%- if item.default %} Default: {{ item.default }} {%- endif %} {% endfor %} # OBJECTS/VARIABLES {{ variables['desc'] }} {% for item in variables['values'] %} **{{ item.name }}** {% if item.args %}**{{ item.args | join(" ") }}**{% endif %} : {{ item.desc | indent(width=4) }} {%- if item.default %} Default: {{ item.default }} {%- endif %} {% endfor %} # LUA API {{ lua['desc'] }} {% for item in lua['values'] %} **{{ item.name }}** {% if item.args %}**{{ item.args | join(" ") }}**{% endif %} : {{ item.desc | indent(width=4) }} {%- if item.default %} Default: {{ item.default }} {%- endif %} {% endfor %} # EXAMPLES **conky -t \'\${time %D %H:%M}\' -o -u 30** : Start Conky in its own window with date and clock as text and 30 sec update interval. **conky -a top_left -x 5 -y 500 -d** : Start Conky to background at coordinates (5, 500). **conky -C \> \~/.config/conky/conky.conf** : Do not start Conky, but have it output the builtin default config file to *\~/.config/conky/conky.conf* for later customising. # FILES *\${sysconfdir}/conky/conky.conf* : Default system-wide configuration file. The value of \${sysconfdir} depends on the compile-time options (most likely /etc). *\~/.config/conky/conky.conf* : Default personal configuration file. # BUGS Drawing to root or some other desktop window directly doesn\'t work with all window managers. Especially doesn\'t work well with Gnome and it has been reported that it doesn\'t work with KDE either. Nautilus can be disabled from drawing to desktop with program gconf-editor. Uncheck show_desktop in /apps/nautilus/preferences/. There is -w switch in Conky to set some specific window id. You might find xwininfo -tree useful to find the window to draw to. You can also use -o argument which makes Conky to create its own window. If you do try running Conky in its own window, be sure to read up on the own_window_type settings and experiment. # SEE ALSO *https://github.com/brndnmtthws/conky* # COPYING Copyright (c) 2005-{{ copyright_year }} Brenden Matthews, Philip Kovacs, et. al. Any original torsmo code is licensed under the BSD license (see LICENSE.BSD for a copy). All code written since the fork of torsmo is licensed under the GPL (see LICENSE.GPL for a copy), except where noted differently (such as in portmon and audacious code which are LGPL, and prss which is an MIT-style license). # AUTHORS The Conky dev team (see AUTHORS for a full list of contributors). conky-1.19.6/doc/render.py000077500000000000000000000017441451224556600153540ustar00rootroot00000000000000#!/usr/bin/env python3 import sys import os import yaml import datetime base_path = os.path.dirname(os.path.realpath(__file__)) with open(os.path.join(base_path, "config_settings.yaml")) as file: config_settings = yaml.safe_load(file) with open(os.path.join(base_path, "variables.yaml")) as file: variables = yaml.safe_load(file) with open(os.path.join(base_path, "lua.yaml")) as file: lua = yaml.safe_load(file) data = { "config_settings": config_settings, "variables": variables, "lua": lua, "date": datetime.date.today().isoformat(), "copyright_year": datetime.date.today().year, } from jinja2 import Environment, FileSystemLoader, select_autoescape def reverse_format(param_list, format_string): return format_string.format(param_list) env = Environment( loader=FileSystemLoader("."), autoescape=select_autoescape(), ) env.filters["reverse_format"] = reverse_format template = env.get_template(sys.argv[1]) print(template.render(data)) conky-1.19.6/doc/variables.yaml000066400000000000000000002621621451224556600163570ustar00rootroot00000000000000# See README.md for details on doc processing. # # The `desc` field can be formatted with markdown, but please do not include # headings (lines beginning with `#`) in the `desc` field. # # The supported fields are: # # * `name`: the name of the thing # * `desc`: a markdown-formatted description of the thing # * `args`: optional list of arguments # * `default`: an optional default value, if applicable --- desc: |- To configure what Conky displays, you must supply some variables in the `conky.text` section of your configuration. In this secton you'll find a listing of the available variables. Some of them may require build options to be enabled at compile time for them to work. Colours are parsed using `XParseColor()`, there might be a list of them: `/usr/share/X11/rgb.txt`. Colour can be also in `#rrggbb` format (hex). Some objects may create threads, and sometimes these threads will not be destroyed until Conky terminates. There is no way to destroy or clean up threads while Conky is running. For example, if you use an MPD variable, the MPD thread will keep running until Conky dies. Some threaded objects will use one of the parameters as a `key`, so that you only have 1 relevant thread running (for example, the $curl, and $rss objects launch one thread per URI). Optional arguments are generally denoted with paretheses (i.e., `(optional)`). values: - name: acpiacadapter desc: |- ACPI AC adapter state. On linux, the adapter option specifies the subfolder of `/sys/class/power_supply` containing the state information (tries `AC` and `ADP1` if there is no argument given). Non-linux systems ignore it. args: - (adapter) - name: acpifan desc: ACPI fan state. - name: acpitemp desc: ACPI temperature in C. - name: addr desc: |- IP address for an interface, or "No Address" if no address is assigned. args: - (interface) - name: addrs desc: |- IP addresses for an interface (if one - works like addr). Linux only. args: - (interface) - name: adt746xcpu desc: CPU temperature from therm_adt746x. - name: adt746xfan desc: Fan speed from therm_adt746x. - name: alignc desc: Align text to centre. args: - (num) - name: alignr desc: Right-justify text, with space of N. args: - (num) - name: apcupsd desc: |- Sets up the connection to apcupsd daemon. Prints nothing. default: localhost:3551 args: - host - port - name: apcupsd_cable desc: Prints the UPS connection type. - name: apcupsd_charge desc: Current battery capacity in percent. - name: apcupsd_lastxfer desc: Reason for last transfer from line to battery. - name: apcupsd_linev desc: Nominal input voltage. - name: apcupsd_load desc: Current load in percent. - name: apcupsd_loadbar desc: Bar showing current load. - name: apcupsd_loadgauge desc: Gauge that shows current load. args: - (height),(width) - name: apcupsd_loadgraph desc: History graph of current load. args: - (height),(width) - (gradient colour 1) - (gradient colour 2) - (scale) - (-t) - (-l) - name: apcupsd_model desc: Prints the model of the UPS. - name: apcupsd_name desc: Prints the UPS user-defined name. - name: apcupsd_status desc: Prints current status (on-line, on-battery). - name: apcupsd_temp desc: Current internal temperature. - name: apcupsd_timeleft desc: Time left to run on battery. - name: apcupsd_upsmode desc: Prints the UPS mode (e.g. standalone). - name: apm_adapter desc: Display APM AC adapter status. FreeBSD, OpenBSD only. - name: apm_battery_life desc: Display APM battery life in percent. FreeBSD, OpenBSD only. - name: apm_battery_time desc: |- Display remaining APM battery life in hh:mm:ss or "unknown" if AC adapterstatus is on-line or charging. FreeBSD, OpenBSD only. - name: audacious_bar desc: Progress bar. args: - (height),(width) - name: audacious_bitrate desc: Bitrate of current tune. - name: audacious_channels desc: Number of audio channels of current tune. - name: audacious_filename desc: Full path and filename of current tune. - name: audacious_frequency desc: Sampling frequency of current tune. - name: audacious_length desc: Total length of current tune as MM:SS. - name: audacious_length_seconds desc: Total length of current tune in seconds. - name: audacious_main_volume desc: The current volume fetched from Audacious. - name: audacious_playlist_length desc: Number of tunes in playlist. - name: audacious_playlist_position desc: Playlist position of current tune. - name: audacious_position desc: Position of current tune (MM:SS). - name: audacious_position_seconds desc: Position of current tune in seconds. - name: audacious_status desc: Player status (Playing/Paused/Stopped/Not running). - name: audacious_title desc: |- Title of current tune with optional maximum length specifier. args: - (max length) - name: battery desc: |- Battery status and remaining percentage capacity of ACPI or APM battery. ACPI battery number can be given as argument. default: BAT0 args: - (num) - name: battery_bar desc: |- Battery percentage remaining of ACPI battery in a bar. ACPI battery number can be given as argument (use `all` to get the mean percentage remaining for all batteries). default: BAT0 args: - (height),(width) - (num) - name: battery_percent desc: |- Battery percentage remaining for ACPI battery. ACPI battery number can be given as argument (use `all` to get the mean percentage remaining for all batteries). default: BAT0 args: - (num) - name: battery_power_draw desc: |- Battery power draw in watts default: BAT0 args: - (num) - name: battery_short desc: |- Battery status and remaining percentage capacity of ACPI or APM battery. ACPI battery number can be given as argument. This mode display a short status, which means that C is displayed instead of charging, D for discharging, F for full, N for not present, E for empty and U for unknown. default: BAT0 args: - (num) - name: battery_status desc: |- Battery status for ACPI battery. ACPI battery number can be given as arguments. default: BAT0 args: - (num) - name: battery_time desc: |- Battery charge/discharge time remaining of ACPI battery. ACPI battery number can be given as argument. default: BAT0 args: - (num) - name: blink desc: Let 'text_and_other_conky_vars' blink on and off. args: - text_and_other_conky_vars - name: buffers desc: Amount of memory buffered. - name: cached desc: Amount of memory cached. - name: cat desc: |- Reads a file and displays the contents in conky. This is useful if you have an independent process generating output that you want to include in conky. args: - file - name: catp desc: |- Reads a file and displays the contents in conky. This is useful if you have an independent process generating output that you want to include in conky. This differs from $cat in that it parses the contents of the file, so you can insert things like `${color red}hi!${color}` in your file and have it correctly parsed by Conky. args: - file - name: cmdline_to_pid desc: PID of the first process that has string in its commandline. args: - string - name: cmus_aaa desc: Print aaa status of cmus (all/artist/album). - name: cmus_album desc: Prints the album of the current cmus song. - name: cmus_artist desc: Prints the artist of the current cmus song. - name: cmus_curtime desc: Current time of the current cmus song. - name: cmus_date desc: Print the date of the current cmus song. - name: cmus_file desc: Print the file name of the current cmus song. - name: cmus_genre desc: Print the genre name of the current cmus song. - name: cmus_percent desc: Percent of song's progress. - name: cmus_progress desc: cmus' progress bar. args: - (height),(width) - name: cmus_random desc: Random status of cmus (on/off). - name: cmus_repeat desc: Repeat status of cmus (song/all/off). - name: cmus_state desc: Current state of cmus (playing, paused, stopped etc). - name: cmus_timeleft desc: Time left of the current cmus song. - name: cmus_title desc: Prints the title of the current cmus song. - name: cmus_totaltime desc: Total length of the current cmus song. - name: cmus_track desc: Print track number of current cmus song. - name: color desc: |- Change drawing color to _color_ which is a name of a color or a hexcode preceded with #, e.g. `#0A1B2C`. If you use ncurses only the following colors are supported: red, green, yellow, blue, magenta, cyan, black, and white. args: - (color) - name: colorN desc: |- Change drawing color to colorN configuration option, where N is a digit between 0 and 9, inclusively. - name: combine desc: |- Places the lines of var2 to the right of the lines of var1 separated by the chars that are put between var1 and var2. For example: `${combine ${head /proc/cpuinfo 2} - ${head /proc/meminfo 1}}` gives as output `cpuinfo_line1 - meminfo_line1` on line 1 and `cpuinfo_line2 -` on line 2. $combine vars can also be nested to place more vars next to each other. args: - var1 - var2 - name: conky_build_arch desc: CPU architecture Conky was built for. - name: conky_build_date desc: Date Conky was built. - name: conky_version desc: Conky version. - name: cpu desc: |- CPU usage in percents. For SMP machines, the CPU number can be provided as an argument. ${cpu cpu0} is the total usage, and ${cpu cpuX} (X >= 1) are individual CPUs. args: - (cpuN) - name: cpubar desc: |- Bar that shows CPU usage, height is bar's height in pixels. See $cpu for more info on SMP. args: - (cpuN) - (height),(width) - name: cpugauge desc: |- Elliptical gauge that shows CPU usage, height and width are gauge's vertical and horizontal axis respectively. See $cpu for more info on SMP. args: - (cpuN) - (height),(width) - name: cpugovernor desc: |- The active CPU scaling governor, defaulting to the first core. See $cpu for more info on SMP. Linux only. args: - (cpuN) - name: cpugraph desc: |- CPU usage graph, with optional colours in hex, minus the #. See $cpu for more info on SMP. Uses a logarithmic scale (to see small numbers) when you use the -l switch. Takes the switch '-t' to use a temperature gradient, which makes the gradient values change depending on the amplitude of a particular graph value (try it and see). args: - (cpuN) - (height),(width) - (gradient colour 1) - (gradient colour 2) - (scale) - (-t) - (-l) - name: curl desc: |- Download data from URI using Curl at the specified interval. The interval may be a positive floating point value (0 is allowed), otherwise defaults to 15 minutes. Most useful when used in conjunction with Lua and the Lua API. This object is threaded, and once a thread is created it can't be explicitly destroyed. One thread will run for each URI specified. You can use any protocol that Curl supports. args: - url - (interval_in_minutes) - name: desktop desc: |- Number of the desktop on which conky is running or the message "Not running in X" if this is the case. - name: desktop_name desc: |- Name of the desktop on which conky is running or the message "Not running in X" if this is the case. - name: desktop_number desc: |- Number of desktops or the message "Not running in X" if this is the case. - name: disk_protect desc: |- Disk protection status, if supported (needs kernel-patch). Prints either "frozen" or "free " (note the padding). args: - device - name: diskio desc: |- Displays current disk IO. Device is optional, and takes the form of sda for /dev/sda. A block device label can be specified with label:foo and a block device partuuid can be specified with partuuid:40000000-01. args: - (device) - name: diskio_read desc: Displays current disk IO for reads. Device as in diskio. args: - (device) - name: diskio_write desc: Displays current disk IO for writes. Device as in diskio. args: - (device) - name: diskiograph desc: |- Disk IO graph, colours defined in hex, minus the #. If scale is non-zero, it becomes the scale for the graph. Uses a logarithmic scale (to see small numbers) when you use -l switch. Takes the switch '-t' to use a temperature gradient, which makes the gradient values change depending on the amplitude of a particular graph value (try it and see). args: - (device) - (height),(width) - (gradient colour 1) - (gradient colour 2) - (scale) - (-t) - (-l) - name: diskiograph_read desc: |- Disk IO graph for reads, colours defined in hex, minus the #. If scale is non-zero, it becomes the scale for the graph. Device as in diskio. Uses a logarithmic scale (to see small numbers) when you use -l switch. Takes the switch '-t' to use a temperature gradient, which makes the gradient values change depending on the amplitude of a particular graph value (try it and see). args: - (device) - (height),(width) - (gradient colour 1) - (gradient colour 2) - (scale) - (-t) - (-l) - name: diskiograph_write desc: |- Disk IO graph for writes, colours defined in hex, minus the #. If scale is non-zero, it becomes the scale for the graph. Device as in diskio. Uses a logarithmic scale (to see small numbers) when you use -l switch. Takes the switch '-t' to use a temperature gradient, which makes the gradient values change depending on the amplitude of a particular graph value (try it and see). args: - (device) - (height),(width) - (gradient colour 1) - (gradient colour 2) - (scale) - (-t) - (-l) - name: distribution desc: |- The name of the distribution. It could be that some of the untested distributions will show up wrong or as "unknown", if that's the case post a bug on sourceforge, make sure it contains the name of your distribution, the contents of and if there is a file that only exists on your distribution, also add the path of that file in the bug. If there is no such file, please add another way which we can use to identify your distribution. other: filename: /proc/version - name: downspeed desc: Download speed in suitable IEC units. args: - (net) - name: downspeedf desc: Download speed in KiB with one decimal. args: - (net) - name: downspeedgraph desc: |- Download speed graph, colours defined in hex, minus the #. If scale is non-zero, it becomes the scale for the graph. Uses a logarithmic scale (to see small numbers) when you use -l switch. Takes the switch '-t' to use a temperature gradient, which makes the gradient values change depending on the amplitude of a particular graph value (try it and see). args: - (netdev) - (height),(width) - (gradient colour 1) - (gradient colour 2) - (scale) - (-t) - (-l) - name: draft_mails desc: |- Number of mails marked as draft in the specified mailbox or mail spool if not. Only maildir type mailboxes are supported, mbox type will return -1. args: - (maildir) - (interval) - name: else desc: Text to show if any of the above are not true. - name: endif desc: Ends an $if block. - name: entropy_avail desc: Current entropy available for crypto freaks. - name: entropy_bar desc: Normalized bar of available entropy for crypto freaks. args: - (height),(width) - name: entropy_perc desc: |- Percentage of entropy available in comparison to the poolsize. - name: entropy_poolsize desc: Total size of system entropy pool for crypto freaks. - name: eval desc: |- Evaluates given string according to the rules of conky.text interpretation, i.e. parsing any contained text object specifications into their output, any occurring '$$' into a single '$' and so on. The output is then being parsed again. args: - string - name: exec desc: |- Executes a shell command and displays the output in conky. Warning: this takes a lot more resources than other variables. I'd recommend coding wanted behaviour in C/C++ and posting a patch. args: - command - name: execbar desc: |- Same as exec, except if the first value returned is a value between 0-100, it will use that number to draw a horizontal bar. The height and width parameters are optional, and default to the default_bar_height and default_bar_width config settings, respectively. args: - (height),(width) - command - name: execgauge desc: |- Same as exec, except if the first value returned is a value between 0-100, it will use that number to draw a round gauge (much like a vehicle speedometer). The height and width parameters are optional, and default to the default_gauge_height and default_gauge_width config settings, respectively. args: - (height),(width) - command - name: execgraph desc: |- Draws a horizontally scrolling graph with values from 0-100 plotted on the vertical axis. All parameters following the command are optional. Gradient colors can be specified as hexadecimal values with no 0x or # prefix. Use the -t switch to enable a temperature gradient, so that small values are "cold" with color 1 and large values are "hot" with color 2. Without the -t switch, the colors produce a horizontal gradient spanning the width of the graph. The scale parameter defines the maximum value of the graph. Use the -l switch to enable a logarithmic scale, which helps to see small values. The default size for graphs can be controlled via the default_graph_height and default_graph_width config settings. If you need to execute a command with spaces, you have a couple options: 1. wrap your command in double-quotes, or 2. put your command into a separate file, such as ~/bin/myscript.sh, and use that as your execgraph command. Remember to make your script executable! In the following example, we set up execgraph to display seconds (0-59) on a graph that is 50px high and 200px wide, using a temperature gradient with colors ranging from red for small values (FF0000) to yellow for large values (FFFF00). We set the scale to 60. ``` ${execgraph ~/seconds.sh 50,200 FF0000 FFFF00 60 -t} ``` args: - command - (height),(width) - (gradient color 1) - (gradient color 2) - (scale) - (-t) - (-l) - name: execi desc: |- Same as exec, but with a specific interval in seconds. The interval can't be less than the update_interval in your configuration. See also $texeci. args: - interval - command - name: execibar desc: Same as execbar, but with an interval. args: - interval - (height),(width) - command - name: execigauge desc: Same as execgauge, but with an interval. args: - interval - (height),(width) - command - name: execigraph desc: Same as execgraph, but with an interval. args: - interval - command - (height),(width) - (gradient color 1) - (gradient color 2) - (scale) - (-t) - (-l) - name: execp desc: |- Executes a shell command and displays the output in conky. Warning: this takes a lot more resources than other variables. I'd recommend coding wanted behaviour in C/C++ and posting a patch. This differs from $exec in that it parses the output of the command, so you can insert things like `${color red}hi!${color}` in your script and have it correctly parsed by Conky. Caveats: Conky parses and evaluates the output of $execp every time Conky loops, and then destroys all the objects. If you try to use anything like $execi within an $execp statement, it will functionally run at the same interval that the $execp statement runs, as it is created and destroyed at every interval. args: - command - name: execpi desc: |- Same as execp, but with an interval. Note that the output from the $execpi command is still parsed and evaluated at every interval. args: - interval - command - name: flagged_mails desc: |- Number of mails marked as flagged in the specified mailbox or mail spool if not. Only maildir type mailboxes are supported, mbox type will return -1. args: - (maildir) - (interval) - name: font desc: |- Specify a different font. This new font will apply to the current line and everything following. You can use a $font with no arguments to change back to the default font (much like with $color). args: - (font) - name: fontN desc: |- Change font to fontN configuration option, where N is a digit between 0 and 9, inclusively. - name: format_time desc: |- Format time given in seconds. This var only works when the times_in_seconds configuration setting is on. Format is a string that should start and end with a double quote `"` character. The quote characters are not part of the output, \w,\d,\h,\m,\s,\(,\) and \\ are replaced by weeks,days,hours,minutes,seconds,(,) and \. If you leave out a unit, it's value will be expressed in the highest unit lower than the one left out. Text between ()-chars will not be visible if a replaced unit in this text is 0. If seconds is a decimal number then you can see the numbers behind the point by using \S followed by a number that specifies the amount of digits behind the point that you want to see (maximum 9). You can also place a 'x' behind \S so you have all digits behind the point and no trailing zero's. (also maximum 9). args: - seconds - format - name: forwarded_mails desc: |- Number of mails marked as forwarded in the specified mailbox or mail spool if not. Only maildir type mailboxes are supported, mbox type will return -1. args: - (maildir) - (interval) - name: free_bufcache desc: Amount of memory cached or buffered, as reported by free. Linux only. - name: freq desc: |- Returns CPU #n's frequency in MHz. CPUs are counted from 1. default: 1 args: - (n) - name: freq2 desc: |- Returns CPU #n's clock speed from assembly in MHz. CPUs are counted from 1. default: 1 args: - (n) - name: freq_g desc: |- Returns CPU #n's frequency in GHz. CPUs are counted from 1. default: 1 args: - (n) - name: fs_bar desc: |- Bar that shows how much space is used on a file system. height is the height in pixels. fs is any file on that file system. args: - (height),(width) - fs - name: fs_bar_free desc: |- Bar that shows how much space is free on a file system. height is the height in pixels. fs is any file on that file system. args: - (height),(width) - fs - name: fs_free desc: Free space on a file system available for users. args: - (fs) - name: fs_free_perc desc: |- Free percentage of space on a file system available for users. args: - (fs) - name: fs_size desc: File system size. args: - (fs) - name: fs_type desc: File system type. args: - (fs) - name: fs_used desc: File system used space. args: - (fs) - name: fs_used_perc desc: Percent of file system used space. args: - (fs) - name: gid_name desc: Name of group with this gid. args: - gid - name: github_notifications desc: Number of GitHub notifications. - name: goto desc: The next element will be printed at position 'x'. args: - x - name: gw_iface desc: |- Displays the default route's interface or "multiple"/"none" accordingly. - name: gw_ip desc: |- Displays the default gateway's IP or "multiple"/"none" accordingly. - name: hddtemp desc: |- Displays temperature of a selected hard disk drive as reported by the hddtemp daemon. Use hddtemp_host and hddtemp_port to specify a host and port for all hddtemp objects. If no dev parameter is given, the first disk returned by the hddtemp daemon is used. args: - (dev) - name: head desc: |- Displays first N lines of supplied text file. The file is checked every 'next_check' update. If next_check is not supplied, Conky defaults to 2. Max of 30 lines can be displayed, or until the text buffer is filled. args: - logfile - lines - (next_check) - name: hr desc: Horizontal line, height is the height in pixels. args: - (height) - name: hwmon desc: |- Hwmon sensor from sysfs (Linux 2.6). Parameter dev can be: 1. Number. e.g `1` means hwmon1. 2. Module name. e.g. `k10temp` means the first hwmon device whose module name is `k10temp. 3. Omitted. Then the first hwmon device (hwmon0) will be used. Parameter type is either `in` or `vol` meaning voltage; `fan` meaning fan; `temp` meaning temperature. Parameter n is number of the sensor. See `/sys/class/hwmon/` on your local computer. The optional arguments `factor` and `offset` allow precalculation of the raw input, which is being modified as follows: `input = input * factor + offset`. Note that they have to be given as decimal values (i.e. contain at least one decimal place). args: - (dev) - type - n - (factor offset) other: filename: null - name: i2c desc: |- I2C sensor from sysfs (Linux 2.6). Parameter dev may be omitted if you have only one I2C device. Parameter type is either `in` or `vol` meaning voltage; `fan` meaning fan; `temp` meaning temperature. Parameter n is number of the sensor. See `/sys/bus/i2c/devices/` on your local computer. The optional arguments `factor` and `offset` allow precalculation of the raw input, which is being modified as follows: `input = input * factor + offset`. Note that they have to be given as decimal values (i.e. contain at least one decimal place). args: - (dev) - type - n - (factor offset) other: filename: null - name: i8k_ac_status desc: |- If running the i8k kernel driver for Inspiron laptops, displays whether ac power is on, as listed in `/proc/i8k` (translated to human-readable). Beware that this is by default not enabled by i8k itself. - name: i8k_bios desc: |- If running the i8k kernel driver for Inspiron laptops, displays the bios version as listed in /proc/i8k. - name: i8k_buttons_status desc: |- If running the i8k kernel driver for Inspiron laptops, displays the volume buttons status as listed in /proc/i8k. - name: i8k_cpu_temp desc: |- If running the i8k kernel driver for Inspiron laptops, displays the cpu temperature in Celsius, as reported by /proc/i8k. - name: i8k_left_fan_rpm desc: |- If running the i8k kernel driver for Inspiron laptops, displays the left fan's rate of rotation, in revolutions per minute as listed in /proc/i8k. Beware, some laptops i8k reports these fans in reverse order. - name: i8k_left_fan_status desc: |- If running the i8k kernel driver for Inspiron laptops, displays the left fan status as listed in /proc/i8k (translated to human-readable). Beware, some laptops i8k reports these fans in reverse order. - name: i8k_right_fan_rpm desc: |- If running the i8k kernel driver for Inspiron laptops, displays the right fan's rate of rotation, in revolutions per minute as listed in /proc/i8k. Beware, some laptops i8k reports these fans in reverse order. - name: i8k_right_fan_status desc: |- If running the i8k kernel driver for Inspiron laptops, displays the right fan status as listed in /proc/i8k (translated to human-readable). Beware, some laptops i8k reports these fans in reverse order. - name: i8k_serial desc: |- If running the i8k kernel driver for Inspiron laptops, displays your laptop serial number as listed in /proc/i8k. - name: i8k_version desc: |- If running the i8k kernel driver for Inspiron laptops, displays the version formatting of /proc/i8k. - name: ibm_brightness desc: |- If running the IBM ACPI, displays the brigtness of the laptops's LCD (0-7). - name: ibm_fan desc: If running the IBM ACPI, displays the fan speed. - name: ibm_temps desc: |- If running the IBM ACPI, displays the temperatures from the IBM temperature sensors (N=0..7) Sensor 0 is on the CPU, 3 is on the GPU. args: - N - name: ibm_thinklight desc: "If running the IBM ACPI, displays the status of your\nThinkLight\u2122. Value\ \ is either 'on', 'off' or 'unknown'." - name: ibm_volume desc: |- If running the IBM ACPI, displays the "master" volume, controlled by the volume keys (0-14). - name: ical desc: |- Shows title of event number 'number' in the ical (RFC 5545) file 'file'. The events are first ordered by starting time, events that started in the past are ignored. The events that are shown are the VEVENTS, the title that is shown is the SUMMARY and the starting time used for sorting is DTSTART. args: - number - file - name: iconv_start desc: |- Convert text from one codeset to another using GNU iconv. Needs to be stopped with iconv_stop. args: - codeset_from - codeset_to - name: iconv_stop desc: Stop iconv codeset conversion. - name: if_empty desc: |- if conky variable VAR is empty, display everything between $if_empty and the matching $endif. args: - (var) - name: if_existing desc: |- if FILE exists, display everything between if_existing and the matching $endif. The optional second parameter checks for FILE containing the specified string and prints everything between $if_existing and the matching $endif. args: - file - (string) - name: if_gw desc: |- if there is at least one default gateway, display everything between $if_gw and the matching $endif. - name: if_match desc: |- Evaluates the given boolean expression, printing everything between $if_match and the matching $endif depending on whether the evaluation returns true or not. Valid expressions consist of a left side, an operator and a right side. Left and right sides are being parsed for contained text objects before evaluation. Recognised left and right side types are: * **double**: Argument consists of only digits and a single dot. * **long**: Argument consists of only digits. * **string**: Argument is enclosed in quotation marks (`"`). Valid operands are: * `<` or `>` * `<=` or `>=` * `==` or `!=` args: - expression - name: if_mixer_mute desc: |- If mixer exists, display everything between $if_mixer_mute and the matching $endif. If no mixer is specified, "Vol" is used. args: - (mixer) - name: if_mounted desc: |- if MOUNTPOINT is mounted, display everything between $if_mounted and the matching $endif. args: - (mountpoint) - name: if_mpd_playing desc: |- if mpd is playing or paused, display everything between $if_mpd_playing and the matching $endif. - name: if_pa_sink_muted desc: |- If Pulseaudio's default sink is muted, display everything between $if_pa_sink_muted and the corresponding $else or $endif. - name: if_running desc: "If PROCESS is running, display everything between\n$if_running and the corresponding\ \ $else or $endif. Note that PROCESS\nmay be either a full command line with arguments\ \ (without the\ndirectory prefix), or simply the name of an executable. For example,\n\ either of the following will be true if there is a running process\nwith the command\ \ line `/usr/bin/conky -u 5`:\n\n* `${if_running conky -u 5}` or\n* `${if_running\ \ conky}`\n \nIt is important not to include trailing spaces. For example,\ \ `${if_running\nconky }` will be false." args: - (process) - name: if_smapi_bat_installed desc: |- when using smapi, if the battery with index INDEX is installed, display everything between $if_smapi_bat_installed and the matching $endif. args: - (INDEX) - name: if_up desc: |- if INTERFACE exists and is up, display everything between $if_up and the matching $endif. args: - (interface) - name: if_updatenr desc: |- If it's the UPDATENR-th time that conky updates, display everything between $if_updatenr and the matching $endif. The counter resets when the highest UPDATENR is reached. Example: `{$if_updatenr 1}foo$endif{$if_updatenr 2}bar$endif{$if_updatenr 4}$endif` shows foo 25% of the time followed by bar 25% of the time followed by nothing the other half of the time. args: - (updatenr) - name: if_xmms2_connected desc: |- Display everything between $if_xmms2_connected and the matching $endif if xmms2 is running. - name: iface desc: Display interface names starting from 1, eg ${iface 1}. args: - (number) - name: image desc: |- Renders an image from the path specified using Imlib2. Takes 4 optional arguments: a position, a size, a no-cache switch, and a cache flush interval. Changing the x,y position will move the position of the image, and changing the WxH will scale the image. If you specify the no-cache flag (-n), the image will not be cached. Alternately, you can specify the -f int switch to specify a cache flush interval for a particular image. Example: ${image /home/brenden/cheeseburger.jpg -p 20,20 -s 200x200} will render 'cheeseburger.jpg' at (20,20) scaled to 200x200 pixels. Conky does not make any attempt to adjust the position (or any other formatting) of images, they are just rendered as per the arguments passed. The only reason $image is part of the conky.text section, is to allow for runtime modifications, through $execp $lua_parse, or some other method. args: - - (-p x,y) - (-s WxH) - (-n) - (-f interval) - name: imap_messages desc: |- Displays the number of messages in your global IMAP inbox by default. You can define individual IMAP inboxes separately by passing arguments to this object. Arguments are: "host user pass [-i interval (in seconds)] [-f 'folder'] [-p port] [-e 'command'] [-r retries]". Default port is 143, default folder is 'INBOX', default interval is 5 minutes, and default number of retries before giving up is 5. If the password is supplied as '*', you will be prompted to enter the password when Conky starts. args: - (args) - name: imap_unseen desc: |- Displays the number of unseen messages in your global IMAP inbox by default. You can define individual IMAP inboxes separately by passing arguments to this object. Arguments are: "host user pass [-i interval (in seconds)] [-f 'folder'] [-p port] [-e 'command'] [-r retries]". Default port is 143, default folder is 'INBOX', default interval is 5 minutes, and default number of retries before giving up is 5. If the password is supplied as '*', you will be prompted to enter the password when Conky starts. args: - (args) - name: intel_backlight desc: Display the brightness of your Intel backlight in percent. - name: ioscheduler desc: |- Prints the current ioscheduler used for the given disk name (i.e. e.g. "hda" or "sdb"). args: - disk - name: irc desc: |- Shows everything that's being told in #channel on IRCserver 'server'. TCP-port 6667 is used for the connection unless 'port' is specified. Shows everything since the last time or the last 'max_msg_lines' entries if specified. args: - server(:port) - "#channel" - (max_msg_lines) - name: journal desc: |- Displays last N lines of the systemd journal. The optional type can be 'user' or 'system' which will show only the user or system journal respectively. By default, all journal lines visible to the user are shown. A maximum of 200 lines can be displayed, or until the text buffer is filled. args: - lines - (type) - name: kernel desc: Kernel version. - name: key_caps_lock desc: An indicator for Capital Lock key. - name: key_num_lock desc: An indicator for Number Lock key. - name: key_scroll_lock desc: An indicator for Scrolling Lock key. - name: keyboard_layout desc: Display keyboard layout. - name: laptop_mode desc: The value of `/proc/sys/vm/laptop_mode`. - name: legacymem desc: Amount of memory used, calculated the same way as in the `free` program. - name: lines desc: Displays the number of lines in the given file. args: - textfile - name: loadavg desc: |- System load average, 1 is for past 1 minute, 2 for past 5 minutes and 3 for past 15 minutes. Without argument, prints all three values separated by whitespace. args: - (1|2|3) - name: loadgraph desc: |- Load1 average graph, similar to xload, with optional colours in hex, minus the #. Uses a logarithmic scale (to see small numbers) when you use the -l switch. Takes the switch '-t' to use a temperature gradient, which makes the gradient values change depending on the amplitude of a particular graph value (try it and see). args: - (height),(width) - (gradient colour 1) - (gradient colour 2) - (scale) - (-t) - (-l) - name: lowercase desc: Converts all letters into lowercase. args: - text - name: lua desc: |- Executes a Lua function with given parameters, then prints the returned string. See also 'lua_load' on how to load scripts. Conky puts 'conky_' in front of function_name to prevent accidental calls to the wrong function unless you place 'conky_' in front of it yourself. args: - function_name - (function parameters) - name: lua_bar desc: |- Executes a Lua function with given parameters and draws a bar. Expects result value to be an integer between 0 and 100. See also 'lua_load' on how to load scripts. Conky puts 'conky_' in front of function_name to prevent accidental calls to the wrong function unless you place 'conky_' in front of it yourself. args: - (height,width) - function_name - (function parameters) - name: lua_gauge desc: |- Executes a Lua function with given parameters and draws a gauge. Expects result value to be an integer between 0 and 100. See also 'lua_load' on how to load scripts. Conky puts 'conky_' in front of function_name to prevent accidental calls to the wrong function unless you place 'conky_' in front of it yourself. args: - (height,width) - function_name - (function parameters) - name: lua_graph desc: |- Executes a Lua function with and draws a graph. Expects result value to be any number, and by default will scale to show the full range. See also 'lua_load' on how to load scripts. Takes the switch '-t' to use a temperature gradient, which makes the gradient values change depending on the amplitude of a particular graph value (try it and see). Conky puts 'conky_' in front of function_name to prevent accidental calls to the wrong function unless you put you place 'conky_' in front of it yourself. args: - function_name - (height),(width) - (gradient colour 1) - (gradient colour 2) - (scale) - (-t) - (-l) - name: lua_parse desc: |- Executes a Lua function with given parameters as per $lua, then parses and prints the result value as per the syntax for the conky.text section. See also 'lua_load' on how to load scripts. Conky puts 'conky_' in front of function_name to prevent accidental calls to the wrong function unless you place 'conky_' in front of it yourself. args: - function_name - (function parameters) - name: machine desc: Machine, e.g. i686, x86_64. - name: mails desc: |- Mail count in the specified mailbox or your mail spool if not. Both mbox and maildir type mailboxes are supported. You can use a program like fetchmail to get mails from some server using your favourite protocol. See also new_mails. args: - (mailbox) - (interval) - name: mboxscan desc: |- Print a summary of recent messages in an mbox format mailbox. mbox parameter is the filename of the mailbox (can be encapsulated using '"', ie. ${mboxscan -n 10 "/home/brenden/some box"} args: - (-n number of messages to print) - (-fw from width) - (-sw subject width) - mbox - name: mem desc: Amount of memory in use. - name: memactive desc: Amount of active memory. FreeBSD only. - name: memavail desc: Amount of available memory as recorded in /proc/meminfo. Linux 3.14+ only. - name: membar desc: Bar that shows amount of memory in use. args: - (height),(width) - name: memdirty desc: Amount of "dirty" memory. Linux only. - name: memeasyfree desc: |- Amount of free memory including the memory that is very easily freed (buffers/cache). - name: memfree desc: Amount of free memory. - name: memgauge desc: Gauge that shows amount of memory in use (see cpugauge). args: - (height),(width) - name: memgraph desc: |- Memory usage graph. Uses a logarithmic scale (to see small numbers) when you use the -l switch. Takes the switch '-t' to use a temperature gradient, which makes the gradient values change depending on the amplitude of a particular graph value (try it and see). args: - (height),(width) - (gradient colour 1) - (gradient colour 2) - (scale) - (-t) - (-l) - name: meminactive desc: Amount of inactive memory. FreeBSD only. - name: memlaundry desc: Amount of memory in the laundry queue. FreeBSD only. - name: memmax desc: Total amount of memory. - name: memperc desc: Percentage of memory in use. - name: memwired desc: Amount of wired memory. FreeBSD only. - name: memwithbuffers desc: |- Amount of memory in use, including that used by system buffers and caches. - name: memwithbuffersbar desc: |- Bar that shows amount of memory in use (including memory used by system buffers and caches). args: - (height),(width) - name: memwithbuffersgraph desc: |- Memory usage graph including memory used by system buffers and cache. Uses a logarithmic scale (to see small numbers) when you use the -l switch. Takes the switch '-t' to use a temperature gradient, which makes the gradient values change depending on the amplitude of a particular graph value (try it and see). args: - (height),(width) - (gradient colour 1) - (gradient colour 2) - (scale) - (-t) - (-l) - name: mixer desc: |- Prints the mixer value as reported by the OS. On Linux, this variable uses the OSS emulation, so you need the proper kernel module loaded. Default mixer is "Vol", but you can specify one of the available OSS controls: "Vol", "Bass", "Trebl", "Synth", "Pcm", "Spkr", "Line", "Mic", "CD", "Mix", "Pcm2 ", "Rec", "IGain", "OGain", "Line1", "Line2", "Line3", "Digital1", "Digital2", "Digital3", "PhoneIn", "PhoneOut", "Video", "Radio" and "Monitor". default: Vol args: - (device) - name: mixerbar desc: |- Displays mixer value in a bar as reported by the OS. See docs for $mixer for details on arguments. args: - (device) - name: mixerl desc: |- Prints the left channel mixer value as reported by the OS. See docs for $mixer for details on arguments. args: - (device) - name: mixerlbar desc: |- Displays the left channel mixer value in a bar as reported by the OS. See docs for $mixer for details on arguments. args: - (device) - name: mixerr desc: |- Prints the right channel mixer value as reported by the OS. See docs for $mixer for details on arguments. args: - (device) - name: mixerrbar desc: |- Displays the right channel mixer value in a bar as reported by the OS. See docs for $mixer for details on arguments. args: - (device) - name: moc_album desc: Album of the current MOC song. - name: moc_artist desc: Artist of the current MOC song. - name: moc_bitrate desc: Bitrate in the current MOC song. - name: moc_curtime desc: Current time of the current MOC song. - name: moc_file desc: File name of the current MOC song. - name: moc_rate desc: Rate of the current MOC song. - name: moc_song desc: The current song name being played in MOC. - name: moc_state desc: Current state of MOC; playing, stopped etc. - name: moc_timeleft desc: Time left in the current MOC song. - name: moc_title desc: Title of the current MOC song. - name: moc_totaltime desc: Total length of the current MOC song. - name: monitor desc: |- Number of the monitor on which conky is running or the message "Not running in X" if this is the case. - name: monitor_number desc: |- Number of monitors or the message "Not running in X" if this is the case. - name: mouse_speed desc: Display mouse speed. - name: mpd_album desc: Album in current MPD song. - name: mpd_albumartist desc: Artist of the album of the current MPD song. - name: mpd_artist desc: Artist in current MPD song must be enabled at compile. - name: mpd_bar desc: Bar of mpd's progress. args: - (height),(width) - name: mpd_bitrate desc: Bitrate of current song. - name: mpd_comment desc: Comment of current MPD song. args: - (max - length) - name: mpd_date desc: Date of current song. - name: mpd_elapsed desc: Song's elapsed time. - name: mpd_file desc: Prints the file name of the current MPD song. - name: mpd_length desc: Song's length. - name: mpd_name desc: Prints the MPD name field. - name: mpd_percent desc: Percent of song's progress. - name: mpd_random desc: Random status (On/Off). - name: mpd_repeat desc: Repeat status (On/Off). - name: mpd_smart desc: |- Prints the song name in either the form "artist - title" or file name, depending on whats available. args: - (max - length) - name: mpd_status desc: Playing, stopped, et cetera. - name: mpd_title desc: Title of current MPD song. args: - (max - length) - name: mpd_track desc: Prints the MPD track field. - name: mpd_vol desc: MPD's volume. - name: mysql desc: |- Shows the first field of the first row of the result of the query. args: - query - name: nameserver desc: |- Print a nameserver from /etc/resolv.conf. default: 0 args: - (index) - name: new_mails desc: |- Unread mail count in the specified mailbox or mail spool if not. Both mbox and maildir type mailboxes are supported. args: - (mailbox) - (interval) - name: no_update desc: |- Shows text and parses the vars in it, but doesn't update them. Use this for things that do not change while conky is running, like $machine, $conky_version,... By not updating this you can save some resources. args: - text - name: nodename desc: Hostname. - name: nodename_short desc: Short hostname (same as 'hostname -s' shell command). - name: nvidia desc: |- Nvidia graphics card information via the XNVCtrl library. Temperatures are printed as float, all other values as integers. **GPU_ID:** Optional parameter to choose the GPU to be used as 0,1,2,3,.. Default parameter is 0 **Possible arguments:** | Argument | Alias | Description | |--------------------|-------------|-----------------------------------------------------------------| | `gputemp` | `temp` | GPU temperature | | `gputempthreshold` | `threshold` | Temperature threshold where the GPU will reduce its clock speed | | `ambienttemp` | `ambient` | Ambient temperature outside the graphics card | | `gpufreqcur` | `gpufreq` | Current GPU clock speed | | `gpufreqmin` | | Minimum GPU clock speed | | `gpufreqmax` | | Maximum GPU clock speed | | `memfreqcur` | `memfreq` | Current memory clock speed | | `memfreqmin` | | Minimum memory clock speed | | `memfreqmax` | | Maximum memory clock speed | | `mtrfreqcur` | `mtrfreq` | Current memory transfer rate clock speed | | `mtrfreqmin` | | Minimum memory transfer rate clock speed | | `mtrfreqmax` | | Maximum memory transfer rate clock speed | | `perflevelcur` | `perflevel` | Current performance level | | `perflevelmin` | | Lowest performance level | | `perflevelmax` | | Highest performance level | | `perfmode` | | Performance mode | | `gpuutil` | | GPU utilization % | | `membwutil` | | Memory bandwidth utilization % | | `videoutil` | | Video engine utilization % | | `pcieutil` | | PCIe bandwidth utilization % | | `memused` | `mem` | Amount of used memory | | `memfree` | `memavail` | Amount of free memory | | `memmax` | `memtotal` | Total amount of memory | | `memutil` | `memperc` | Memory utilization % | | `fanspeed` | | Fan speed | | `fanlevel` | | Fan level % | | `imagequality` | | Image quality | | `modelname` | | Model name of the GPU card | | `driverversion` | | Driver version | args: - argument - (GPU_ID) - name: nvidiabar desc: |- Same as nvidia, except it draws its output in a horizontal bar. The height and width parameters are optional, and default to the default_bar_height and default_bar_width config settings, respectively. **GPU_ID:** Optional parameter to choose the GPU to be used as 0,1,2,3,.. Default parameter is 0 **Note the following arguments are** incompatible: * `gputempthreshold` (`threshold`) * `gpufreqmin` * `gpufreqmax` * `memfreqmin` * `memfreqmax` * `mtrfreqmin` * `mtrfreqmax` * `perflevelmin` * `perflevelmax` * `perfmode` * `memtotal` (`memmax`) * `fanspeed` args: - (height),(width) - argument - (GPU_ID) - name: nvidiagauge desc: |- Same as nvidiabar, except a round gauge (much like a vehicle speedometer). The height and width parameters are optional, and default to the default_gauge_height and default_gauge_width config settings, respectively. **GPU_ID:** Optional parameter to choose the GPU to be used as 0,1,2,3,.. Default parameter is 0 For possible arguments see nvidia and nvidiabar. args: - (height),(width) - argument - (GPU_ID) - name: nvidiagraph desc: |- Same as nvidiabar, except a horizontally scrolling graph with values from 0-100 plotted on the vertical axis. The height and width parameters are optional, and default to the default_graph_height and default_graph_width config settings, respectively. **GPU_ID:** NOT optional. This parameter allows to choose the GPU to be used as 0,1,2,3,.. For possible arguments see nvidia and nvidiabar. To learn more about the -t -l and gradient color options, see execgraph. args: - argument - (height),(width) - (gradient color 1) - (gradient color 2) - (scale) - (-t) - (-l) - GPU_ID - name: offset desc: Move text over by N pixels. See also $voffset. args: - (pixels) - name: outlinecolor desc: Change outline color. args: - (color) - name: pa_card_active_profile desc: Pulseaudio's default card active profile. - name: pa_card_name desc: Pulseaudio's default card name. - name: pa_sink_active_port_description desc: Pulseaudio's default sink active port description. - name: pa_sink_active_port_name desc: Pulseaudio's default sink active port name. - name: pa_sink_description desc: Pulseaudio's default sink description. - name: pa_sink_volume desc: Pulseaudio's default sink volume percentage. - name: pa_sink_volumebar desc: Pulseaudio's default sink volume bar. - name: password desc: Generate random passwords. args: - (length) - name: pb_battery desc: |- If running on Apple powerbook/ibook, display information on battery status. The item parameter specifies, what information to display. Exactly one item must be specified. Valid items are: | Item | Description | |-----------|--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| | `status` | Display if battery is fully charged, charging, discharging or absent (running on AC) | | `percent` | Display charge of battery in percent, if charging or discharging. Nothing will be displayed, if battery is fully charged or absent. | | `time` | Display the time remaining until the battery will be fully charged or discharged at current rate. Nothing is displayed, if battery is absent or if it's present but fully charged and not discharging. | args: - item - name: pid_chroot desc: |- Directory used as rootdirectory by the process (this will be "/" unless the process did a chroot syscall). args: - pid - name: pid_cmdline desc: Command line this process was invoked with. args: - pid - name: pid_cwd desc: Current working directory of the process. args: - pid - name: pid_egid desc: The effective gid of the process. args: - pid - name: pid_environ desc: Contents of a environment-var of the process. args: - pid - varname - name: pid_environ_list desc: List of environment-vars that the process can see. args: - pid - name: pid_euid desc: The effective uid of the process. args: - pid - name: pid_exe desc: Path to executed command that started the process. args: - pid - name: pid_fsgid desc: The file system gid of the process. args: - pid - name: pid_fsuid desc: The file system uid of the process. args: - pid - name: pid_gid desc: The real gid of the process. args: - pid - name: pid_nice desc: The nice value of the process. args: - pid - name: pid_openfiles desc: List of files that the process has open. args: - pid - name: pid_parent desc: The pid of the parent of the process. args: - pid - name: pid_priority desc: |- The priority of the process (see 'priority' in "man 5 proc"). args: - pid - name: pid_read desc: Total number of bytes read by the process. args: - pid - name: pid_sgid desc: The saved set gid of the process. args: - pid - name: pid_state desc: State of the process. args: - pid - name: pid_state_short desc: |- One of the chars in "RSDZTW" representing the state of the process where R is running, S is sleeping in an interruptible wait, D is waiting in uninterruptible disk sleep, Z is zombie, T is traced or stopped (on a signal), and W is paging. args: - pid - name: pid_stderr desc: Filedescriptor binded to the STDERR of the process. args: - pid - name: pid_stdin desc: Filedescriptor binded to the STDIN of the process. args: - pid - name: pid_stdout desc: Filedescriptor binded to the STDOUT of the process. args: - pid - name: pid_suid desc: The saved set uid of the process. args: - pid - name: pid_thread_list desc: List with pid's from threads from this process. args: - pid - name: pid_threads desc: Number of threads in process containing this thread. args: - pid - name: pid_time desc: Sum of $pid_time_kernelmode and $pid_time_usermode. args: - pid - name: pid_time_kernelmode desc: |- Amount of time that the process has been scheduled in kernel mode in seconds. args: - pid - name: pid_time_usermode desc: |- Amount of time that the process has been scheduled in user mode in seconds. args: - pid - name: pid_uid desc: The real uid of the process. args: - pid - name: pid_vmdata desc: Data segment size of the process. args: - pid - name: pid_vmexe desc: Text segment size of the process. args: - pid - name: pid_vmhwm desc: Peak resident set size ("high water mark") of the process. args: - pid - name: pid_vmlck desc: Locked memory size of the process. args: - pid - name: pid_vmlib desc: Shared library code size of the process. args: - pid - name: pid_vmpeak desc: Peak virtual memory size of the process. args: - pid - name: pid_vmpte desc: Page table entries size of the process. args: - pid - name: pid_vmrss desc: Resident set size of the process. args: - pid - name: pid_vmsize desc: Virtual memory size of the process. args: - pid - name: pid_vmstk desc: Stack segment size of the process. args: - pid - name: pid_write desc: Total number of bytes written by the process. args: - pid - name: platform desc: |- Platform sensor from sysfs (Linux 2.6). Parameter dev may be omitted if you have only one platform device. Platform type is either `in` or `vol` meaning voltage; `fan` meaning fan; `temp` meaning temperature. Parameter n is number of the sensor. See `/sys/bus/platform/devices/` on your local computer. The optional arguments `factor` and `offset` allow precalculation of the raw input, which is being modified as follows: `input = input * factor + offset`. Note that they have to be given as decimal values (i.e. contain at least one decimal place). args: - (dev) - type - n - (factor offset) - name: pop3_unseen desc: |- Displays the number of unseen messages in your global POP3 inbox by default. You can define individual POP3 inboxes separately by passing arguments to this object. Arguments are: "host user pass [-i interval (in seconds)] [-p port] [-e 'command'] [-r retries]". Default port is 110, default interval is 5 minutes, and default number of retries before giving up is 5. If the password is supplied as '*', you will be prompted to enter the password when Conky starts. args: - (args) - name: pop3_used desc: |- Displays the amount of space (in MiB, 2^20) used in your global POP3 inbox by default. You can define individual POP3 inboxes separately by passing arguments to this object. Arguments are: "host user pass [-i interval (in seconds)] [-p port] [-e 'command'] [-r retries]". Default port is 110, default interval is 5 minutes, and default number of retries before giving up is 5. If the password is supplied as '*', you will be prompted to enter the password when Conky starts. args: - (args) - name: processes desc: Total processes (sleeping and running). - name: read_tcp desc: |- Connects to a tcp port on a host (default is localhost), reads every char available at the moment and shows them. args: - (host) - port - name: read_udp desc: |- Connects to a udp port on a host (default is localhost), reads every char available at the moment and shows them. args: - (host) - port - name: replied_mails desc: |- Number of mails marked as replied in the specified mailbox or mail spool if not. Only maildir type mailboxes are supported, mbox type will return -1. args: - (maildir) - (interval) - name: rss desc: |- Download and parse RSS feeds. The interval may be a (floating point) value greater than 0. Action may be one of the following: feed_title, item_title (with num par), item_desc (with num par) and item_titles (when using this action and spaces_in_front is given conky places that many spaces in front of each item). This object is threaded, and once a thread is created it can't be explicitly destroyed. One thread will run for each URI specified. You can use any protocol that Curl supports. args: - uri - interval_in_seconds - action - (num_par (spaces_in_front)) - name: rstrip desc: Strips all trailing whitespace from input. args: - text - name: running_processes desc: Running processes (not sleeping). Requires Linux 2.6. - name: running_threads desc: Number of running (runnable) threads. Linux only. - name: scroll desc: |- Scroll 'text' by 'step' characters to the left or right (set 'direction' to 'left' or 'right' or 'wait') showing 'length' number of characters at the same time. The text may also contain variables. 'step' is optional and defaults to 1 if not set. 'direction' is optional and defaults to left if not set. When direction is 'wait' then text will scroll left and wait for 'interval' itertations at the beginning and end of the text. If a var creates output on multiple lines then the lines are placed behind each other separated with a '|'-sign. If you change the textcolor inside $scroll it will automatically have it's old value back at the end of $scroll. The end and the start of text will be separated by 'length' number of spaces unless direction is 'wait'. args: - (direction) - length - (step) - (interval) - text - name: seen_mails desc: |- Number of mails marked as seen in the specified mailbox or mail spool if not. Only maildir type mailboxes are supported, mbox type will return -1. args: - (maildir) - (interval) - name: shadecolor desc: Change shading color. args: - (color) - name: shmem desc: Amount of shared memory. Linux only. - name: sip_status desc: |- Prints info regarding System Integrity Protection (SIP) on macOS. If no switch is provided, prints SIP status (enabled / disabled), else, status of the specific SIP feature corresponding to the switch provided. Below are shown the available switches: | SWITCH | RESULT | STATUS | |--------|-----------------------------|--------| | 0 | apple internal | YES/NO | | 1 | forbid untrusted kexts | YES/NO | | 2 | forbid task-for-pid | YES/NO | | 3 | restrict filesystem | YES/NO | | 4 | forbid kernel-debugger | YES/NO | | 5 | restrict dtrace | YES/NO | | 6 | restrict nvram | YES/NO | | 7 | forbid device-configuration | YES/NO | | 8 | forbid any-recovery-os | YES/NO | | 9 | forbid user-approved-kexts | YES/NO | uses unsupported configuration?: If yes, prints "unsupported configuration, beware!" Else, prints "configuration is ok". USAGE: ``` $ conky -t '${sip_status}' # print SIP status $ conky -t '${sip_status 0}' # print allows apple-internal? Yes or No? ``` NOTES: * Available for all macOS versions (even the ones prior El Capitan where SIP was first introduced) * If run on versions prior El Capitan SIP is unavailable, so all you will get is "unsupported". args: - (switch) - name: smapi desc: |- When using smapi, display contents of the `/sys/devices/platform/smapi` directory. ARGS are either `(FILENAME)` or `bat (INDEX) (FILENAME)` to display the corresponding files' content. This is a very raw method of accessing the smapi values. When available, better use one of the smapi_* variables instead. args: - (ARGS) - name: smapi_bat_bar desc: |- when using smapi, display the remaining capacity of the battery with index INDEX as a bar. args: - (INDEX),(height),(width) - name: smapi_bat_perc desc: |- when using smapi, display the remaining capacity in percent of the battery with index INDEX. This is a separate variable because it supports the 'use_spacer' configuration option. args: - (INDEX) - name: smapi_bat_power desc: |- when using smapi, display the current power of the battery with index INDEX in watt. This is a separate variable because the original read out value is being converted from mW. The sign of the output reflects charging (positive) or discharging (negative) state. args: - INDEX - name: smapi_bat_temp desc: |- when using smapi, display the current temperature of the battery with index INDEX in degree Celsius. This is a separate variable because the original read out value is being converted from milli degree Celsius. args: - INDEX - name: sony_fanspeed desc: |- Displays the Sony VAIO fanspeed information if sony-laptop kernel support is enabled. Linux only. - name: startcase desc: Capitalises the start of each word. args: - text - name: stippled_hr desc: Stippled (dashed) horizontal line. args: - (space) - name: stock desc: |- Displays the data of a stock symbol. The following data is supported: | Name | Description | |-------------|--------------------------------------------| | 1ytp | 1 yr Target Price | | 200ma | 200-day Moving Average | | 50ma | 50-day Moving Average | | 52weekhigh | | | 52weeklow | | | 52weekrange | | | adv | Average Daily Volume | | ag | Annualized Gain | | ahcrt | After Hours Change realtime | | ask | | | askrt | ask realtime | | asksize | | | bid | | | bidrt | bid realtime | | bidsize | | | bookvalue | | | c200ma | Change From 200-day Moving Average | | c50ma | Change From 50-day Moving Average | | c52whigh | Change from 52-week high | | c52wlow | Change From 52-week Low | | change | | | changert | change realtime | | cip | change in percent | | commission | | | cprt | change percent realtime | | dayshigh | | | dayslow | | | dpd | Dividend Pay Date | | dr | day's range | | drrt | day's range realtime | | ds | dividend/share | | dvc | Day's Value Change | | dvcrt | Day's Value Change realtime | | dy | Dividend Yield | | ebitda | | | edv | Ex-Dividend Date | | ei | error indication | | epsecy | EPS Estimate Current Year | | epsenq | EPS Estimate Next Quarter | | epseny | EPS Estimate Next Year | | es | earnings/share | | floatshares | | | hg | Holdings Gain | | hgp | Holdings Gain Percent | | hgprt | Holdings Gain Percent realtime | | hgrt | Holdings Gain realtime | | hl | high limit | | hv | Holdings Value | | hvrt | Holdings Value realtime | | ll | low limit | | ltd | Last Trade Date | | ltp | last trade price | | lts | Last Trade Size | | ltt | Last Trade Time | | mc | Market Capitalization | | mcrt | Market Cap realtime | | moreinfo | | | name | | | notes | | | obrt | Order Book realtime | | open | | | pb | price/book | | pc | previous close | | pc200ma | Percent Change From 200-day Moving Average | | pc50ma | Percent Change From 50-day Moving Average | | pc52whigh | percent change from 52-week high | | pc52wlow | Percent Change From 52-week Low | | pegr | PEG Ratio | | pepsecy | Price/EPS Estimate Current Year | | pepseny | Price/EPS Estimate Next Year | | per | P/E Ratio | | perrt | P/E Ratio realtime | | pricepaid | | | ps | price/sales | | se | Stock Exchange | | sharesowned | | | shortratio | | | symbol | | | tradedate | | | tradelinks | | | tt | Ticker Trend | | volume | | args: - symbol - data - name: swap desc: Amount of swap in use. - name: swapbar desc: Bar that shows amount of swap in use. args: - (height),(width) - name: swapfree desc: Amount of free swap. - name: swapmax desc: Total amount of swap. - name: swapperc desc: Percentage of swap in use. - name: sysctlbyname desc: Print sysctl value by name. FreeBSD only. args: - (name) - name: sysname desc: System name, e.g. Linux. - name: tab desc: |- Puts a tab of the specified width, starting from column 'start'. The unit is pixels for both arguments. args: - (width, (start)) - name: tail desc: |- Displays last N lines of supplied text file. The file is checked every 'next_check' update. If next_check is not supplied, Conky defaults to 2. Max of 30 lines can be displayed, or until the text buffer is filled. args: - logfile - lines - (next_check) - name: tcp_ping desc: |- Displays the number of microseconds it takes to get a reply on a ping to to tcp 'port' on 'host'. 'port' is optional and has 80 as default. This works on both open and closed ports, just make sure that the port is not behind a firewall or you will get 'down' as answer. It's best to test a closed port instead of an open port, you will get a quicker response. args: - host - (port) - name: tcp_portmon desc: |- TCP port (both IPv6 and IPv4) monitor for specified local ports. Port numbers must be in the range 1 to 65535. Valid items are: | Item | Description | |------------|------------------------------------------| | `count` | Total number of connections in the range | | `rip` | Remote ip address | | `rhost` | Remote host name | | `rport` | Remote port number | | `rservice` | Remote service name from `/etc/services` | | `lip` | Local ip address | | `lhost` | Local host name | | `lport` | Local port number | | `lservice` | Local service name from `/etc/services` | The connection index provides you with access to each connection in the port monitor. The monitor will return information for index values from 0 to n-1 connections. Values higher than n-1 are simply ignored. For the `count` item, the connection index must be omitted. It is required for all other items. Examples: | Example | Description | |--------------------------------------|---------------------------------------------------------------------------------------| | `${tcp_portmon 6881 6999 count}` | Displays the number of connections in the bittorrent port range | | `${tcp_portmon 22 22 rip 0}` | Displays the remote host ip of the first sshd connection | | `${tcp_portmon 22 22 rip 9}` | Displays the remote host ip of the tenth sshd connection | | `${tcp_portmon 1 1024 rhost 0}` | Displays the remote host name of the first connection on a privileged port | | `${tcp_portmon 1 1024 rport 4}` | Displays the remote host port of the fifth connection on a privileged port | | `${tcp_portmon 1 65535 lservice 14}` | Displays the local service name of the fifteenth connection in the range of all ports | Note that port monitor variables which share the same port range actually refer to the same monitor, so many references to a single port range for different items and different indexes all use the same monitor internally. In other words, the program avoids creating redundant monitors. args: - port_begin - port_end - item - (index) - name: templateN desc: |- Evaluate the content of the templateN configuration variable (where N is a value between 0 and 9, inclusively), applying substitutions as described in the documentation of the corresponding configuration variable. The number of arguments is optional, but must match the highest referred index in the template. You can use the same special sequences in each argument as the ones valid for a template definition, e.g. to allow an argument to contain a whitespace. Also simple nesting of templates is possible this way. Here are some examples of template definitions, note they are placed between `[[ ... ]]` instead of ` ... `: ```lua template0 = [[$12]] template1 = [[1: ${fs_used 2} / ${fs_size 2}]] template2 = [[1 2]] ``` The following list shows sample usage of the templates defined above, with the equivalent syntax when not using any template at all: | Using template | Same without template | |-----------------------------------------------|--------------------------------------------| | `${template0 node name}` | `$nodename` | | `${template1 root /}` | `root: ${fs_free /} / ${fs_size /}` | | `${template1 ${template2 disk root} /}` | `disk root: ${fs_free /} / ${fs_size /}` | | --------------------------------------------- | ------------------------------------------ | args: - (arg1) - (arg2) - (arg3 ...) - name: texeci desc: |- Runs a command at an interval inside a thread and displays the output. Same as $execi, except the command is run inside a thread. Use this if you have a slow script to keep Conky updating. You should make the interval slightly longer than the time it takes your script to execute. For example, if you have a script that take 5 seconds to execute, you should make the interval at least 6 seconds. See also $execi. This object will clean up the thread when it is destroyed, so it can safely be used in a nested fashion, though it may not produce the desired behaviour if used this way. args: - interval - command - name: texecpi desc: Same as execpi, except the command is run inside a thread. args: - interval - command - name: threads desc: Total threads. - name: time desc: |- Local time, see "man strftime" to get more information about format. args: - (format) - name: to_bytes desc: |- If 'size' is a number followed by a size-unit (kilobyte,mb,GiB,...) then it converts the size to bytes and shows it without unit, otherwise it just shows 'size'. args: - size - name: top desc: |- This takes arguments in the form:top (name) (number) Basically, processes are ranked from highest to lowest in terms of cpu usage, which is what (num) represents. The types are: "name", "pid", "cpu", "mem", "mem_res", "mem_vsize", "time", "uid", "user", "io_perc", "io_read" and "io_write". There can be a max of 10 processes listed. args: - type - num - name: top_io desc: |- Same as top, except sorted by the amount of I/O the process has done during the update interval. args: - type - num - name: top_mem desc: Same as top, except sorted by mem usage instead of cpu. args: - type - num - name: top_time desc: |- Same as top, except sorted by total CPU time instead of current CPU usage. args: - type - num - name: totaldown desc: |- Total download, overflows at 4 GB on Linux with 32-bit arch and there doesn't seem to be a way to know how many times it has already done that before conky has started. args: - (net) - name: totalup desc: Total upload, this one too, may overflow. args: - (net) - name: trashed_mails desc: |- Number of mails marked as trashed in the specified mailbox or mail spool if not. Only maildir type mailboxes are supported, mbox type will return -1. args: - (maildir) - (interval) - name: tztime desc: |- Local time for specified timezone, see man strftime to get more information about format. The timezone argument is specified in similar fashion as TZ environment variable. For hints, look in /usr/share/zoneinfo. e.g. US/Pacific, Europe/Zurich, etc. args: - (timezone - (format)) - name: uid_name desc: Username of user with this uid. args: - uid - name: unflagged_mails desc: |- Number of mails not marked as flagged in the specified mailbox or mail spool if not. Only maildir type mailboxes are supported, mbox type will return -1. args: - (maildir) - (interval) - name: unforwarded_mails desc: |- Number of mails not marked as forwarded in the specified mailbox or mail spool if not. Only maildir type mailboxes are supported, mbox type will return -1. args: - (maildir) - (interval) - name: unreplied_mails desc: |- Number of mails not marked as replied in the specified mailbox or mail spool if not. Only maildir type mailboxes are supported, mbox type will return -1. args: - (maildir) - (interval) - name: unseen_mails desc: |- Number of new or unseen mails in the specified mailbox or mail spool if not. Only maildir type mailboxes are supported, mbox type will return -1. args: - (maildir) - (interval) - name: updates desc: for debugging. args: - Number - of - updates - name: uppercase desc: Converts all letters into uppercase. args: - text - name: upspeed desc: Upload speed in suitable IEC units. args: - (net) - name: upspeedf desc: Upload speed in KiB with one decimal. args: - (net) - name: upspeedgraph desc: |- Upload speed graph, colours defined in hex, minus the #. If scale is non-zero, it becomes the scale for the graph. Uses a logarithmic scale (to see small numbers) when you use the -l switch. Takes the switch '-t' to use a temperature gradient, which makes the gradient values change depending on the amplitude of a particular graph value (try it and see). args: - (netdev) - (height),(width) - (gradient colour 1) - (gradient colour 2) - (scale) - (-t) - (-l) - name: uptime desc: Uptime. - name: uptime_short desc: Uptime in a shorter format. - name: user_names desc: Lists the names of the users logged in. - name: user_number desc: Number of users logged in. - name: user_terms desc: Lists the consoles in use. - name: user_time desc: |- Lists how long the user for the given console has been logged in for. args: - console - name: user_times desc: Lists how long users have been logged in for. - name: utime desc: Display time in UTC (universal coordinate time). args: - (format) - name: v6addrs desc: |- IPv6 addresses for an interface, followed by netmask if -n is specified and scope with -s. Scopes are Global(G), Host-local(H), Link-local(L), Site-local(S), Compat(C) and Unspecified(/). Linux only. args: - (-n) - (-s) - (interface) - name: version desc: Git version number. DragonFly only. - name: voffset desc: |- Change vertical offset by N pixels. Negative values will cause text to overlap. See also $offset. args: - (pixels) - name: voltage_mv desc: |- Returns CPU #n's voltage in mV. CPUs are counted from 1. default: 1 args: - (n) - name: voltage_v desc: |- Returns CPU #n's voltage in V. CPUs are counted from 1. default: 1 args: - (n) - name: wireless_ap desc: Wireless access point MAC address. Linux only. args: - (net) - name: wireless_bitrate desc: Wireless bitrate (ie 11 Mb/s). Linux only. args: - (net) - name: wireless_channel desc: WLAN channel on which device 'net' is listening. args: - (net) - name: wireless_essid desc: Wireless access point ESSID. Linux only. args: - (net) - name: wireless_freq desc: Frequency on which device 'net' is listening. args: - (net) - name: wireless_link_bar desc: Wireless link quality bar. Linux only. args: - (height),(width) - (net) - name: wireless_link_qual desc: Wireless link quality. Linux only. args: - (net) - name: wireless_link_qual_max desc: Wireless link quality maximum value. Linux only. args: - (net) - name: wireless_link_qual_perc desc: Wireless link quality in percents. Linux only. args: - (net) - name: wireless_mode desc: Wireless mode (Managed/Ad-Hoc/Master). Linux only. args: - (net) - name: words desc: Displays the number of words in the given file. args: - textfile - name: xmms2_album desc: Album in current XMMS2 song. - name: xmms2_artist desc: Artist in current XMMS2 song. - name: xmms2_bar desc: Bar of XMMS2's progress. args: - (height),(width) - name: xmms2_bitrate desc: Bitrate of current song. - name: xmms2_comment desc: Comment in current XMMS2 song. - name: xmms2_date desc: Returns song's date. - name: xmms2_duration desc: Duration of current song. - name: xmms2_elapsed desc: Song's elapsed time. - name: xmms2_genre desc: Genre in current XMMS2 song. - name: xmms2_id desc: XMMS2 id of current song. - name: xmms2_percent desc: Percent of song's progress. - name: xmms2_playlist desc: Returns the XMMS2 playlist. - name: xmms2_size desc: Size of current song. - name: xmms2_smart desc: |- Prints the song name in either the form "artist - title" or file name, depending on whats available. - name: xmms2_status desc: XMMS2 status (Playing, Paused, Stopped, or Disconnected). - name: xmms2_timesplayed desc: Number of times a song was played (presumably). - name: xmms2_title desc: Title in current XMMS2 song. - name: xmms2_tracknr desc: Track number in current XMMS2 song. - name: xmms2_url desc: Full path to current song. conky-1.19.6/extras/000077500000000000000000000000001451224556600142535ustar00rootroot00000000000000conky-1.19.6/extras/CMakeLists.txt000066400000000000000000000033621451224556600170170ustar00rootroot00000000000000# # Conky, a system monitor, based on torsmo # # Please see COPYING for details # # Copyright (c) 2005-2021 Brenden Matthews, et. al. (see AUTHORS) All rights # reserved. # # This program is free software: you can redistribute it and/or modify it under # the terms of the GNU General Public License as published by the Free Software # Foundation, either version 3 of the License, or (at your option) any later # version. # # This program is distributed in the hope that it will be useful, but WITHOUT # ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS # FOR A PARTICULAR PURPOSE. See the GNU General Public License for more # details. You should have received a copy of the GNU General Public License # along with this program. If not, see . # file(MAKE_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/nano) add_custom_target(conky.nanorc ALL COMMAND ${Python3_EXECUTABLE} ${CMAKE_SOURCE_DIR}/doc/render.py nano/conky.nanorc.j2 > ${CMAKE_CURRENT_BINARY_DIR}/nano/conky.nanorc WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR} SOURCES ${CMAKE_SOURCE_DIR}/doc/variables.yaml ${CMAKE_SOURCE_DIR}/doc/config_settings.yaml ${CMAKE_SOURCE_DIR}/doc/lua.yaml ${CMAKE_CURRENT_SOURCE_DIR}/nano/conky.nanorc.j2 ) file(MAKE_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/vim/syntax) add_custom_target(conkyrc.vim ALL COMMAND ${Python3_EXECUTABLE} ${CMAKE_SOURCE_DIR}/doc/render.py vim/syntax/conkyrc.vim.j2 > ${CMAKE_CURRENT_BINARY_DIR}/vim/syntax/conkyrc.vim WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR} SOURCES ${CMAKE_SOURCE_DIR}/doc/variables.yaml ${CMAKE_SOURCE_DIR}/doc/config_settings.yaml ${CMAKE_SOURCE_DIR}/doc/lua.yaml ${CMAKE_CURRENT_SOURCE_DIR}/vim/syntax/conkyrc.vim.j2 ) conky-1.19.6/extras/convert.lua000077500000000000000000000131401451224556600164400ustar00rootroot00000000000000#! /usr/bin/lua local usage = [[ Usage: convert.lua old_conkyrc [new_conkyrc] Tries to convert conkyrc from the old v1.x format to the new, lua-based format. Keep in mind that there is no guarantee that the output will work correctly with conky, or that it will be able to convert every conkyrc. However, it should provide a good starting point. Although you can use this script with only 1 arg and let it overwrite the old config, it's suggested to use 2 args so that the new config is written in a new file (so that you have backup if something went wrong). Optional: Install dos2unix. We will attempt to use this if it is available because Conky configs downloaded from Internet sometimes are created on DOS/Windows machines with different line endings than Conky configs created on Unix/Linux. For more information about the new format, read the wiki page ]]; local function quote(s) if not s:find("[\n'\\]") then return "'" .. s .. "'"; end; local q = ''; while s:find(']' .. q .. ']', 1, true) do q = q .. '='; end; return string.format('[%s[\n%s]%s]', q, s, q); end; local bool_setting = { background = true, disable_auto_reload = true, double_buffer = true, draw_borders = true, draw_graph_borders = true, draw_outline = true, draw_shades = true, extra_newline = true, format_human_readable = true, no_buffers = true, out_to_console = true, out_to_wayland = true, out_to_ncurses = true, out_to_stderr = true, out_to_x = true, override_utf8_locale = true, own_window = true, own_window_argb_visual = true, own_window_transparent = true, short_units = true, show_graph_range = true, show_graph_scale = true, times_in_seconds = true, top_cpu_separate = true, uppercase = true, use_xft = true, draw_blended = true, forced_redraw = true }; local num_setting = { border_inner_margin = true, border_outer_margin = true, border_width = true, cpu_avg_samples = true, diskio_avg_samples = true, gap_x = true, gap_y = true, imlib_cache_flush_interval = true, imlib_cache_size = true, max_port_monitor_connections = true, max_text_width = true, max_user_text = true, maximum_width = true, mpd_port = true, music_player_interval = true, net_avg_samples = true, own_window_argb_value = true, pad_percents = true, stippled_borders = true, text_buffer_size = true, top_name_width = true, total_run_times = true, update_interval = true, update_interval_on_battery = true, xftalpha = true, xinerama_head = true, }; local split_setting = { default_bar_size = true, default_gauge_size = true, default_graph_size = true, minimum_size = true }; local colour_setting = { color0 = true, color1 = true, color2 = true, color3 = true, color4 = true, color5 = true, color6 = true, color7 = true, color8 = true, color9 = true, default_color = true, default_outline_color = true, default_shade_color = true, own_window_colour = true }; local function alignment_map(value) local map = { m = 'middle', t = 'top', b = 'bottom', r = 'right', l = 'left' }; if map[value] == nil then return value; else return map[value]; end; end; local function handle(setting, value) setting = setting:lower(); if setting == '' then return ''; end; if split_setting[setting] then local x, y = value:match('^(%S+)%s*(%S*)$'); local ret = setting:gsub('_size', '_width = ') .. x .. ','; if y ~= '' then ret = ret .. ' ' .. setting:gsub('_size', '_height = ') .. y .. ','; end; return '\t' .. ret; end; if bool_setting[setting] then value = value:lower(); if value == 'yes' or value == 'true' or value == '1' or value == '' then value = 'true'; else value = 'false'; end; elseif not num_setting[setting] then if setting == 'alignment' and value:len() == 2 then value = alignment_map(value:sub(1,1)) .. '_' .. alignment_map(value:sub(2,2)); elseif colour_setting[setting] and value:match('^[0-9a-fA-F]+$') then value = '#' .. value; elseif setting == 'xftfont' then setting = 'font'; end; value = quote(value); end; return '\t' .. setting .. ' = ' .. value .. ','; end; local function convert(s) local setting, comment = s:match('^([^#]*)#?(.*)\n$'); if comment ~= '' then comment = '--' .. comment; end; comment = comment .. '\n'; return handle(setting:match('^%s*(%S*)%s*(.-)%s*$')) .. comment; end; local input; local output; if conky == nil then --> standalone program -- 1 arg: arg is input and outputfile -- 2 args: 1st is inputfile, 2nd is outputfile -- 0, 3 or more args: print usage to STDERR and quit if #arg == 1 or #arg == 2 then if os.execute('command -v dos2unix 2>&1 >/dev/null') == 0 then os.execute('dos2unix ' .. arg[1]); end input = io.input(arg[1]); else io.stderr:write(usage); return; end; else -- we are called from conky, the filename is the first argument input = io.open(..., 'r'); end; local config = input:read('*a'); input:close(); local settings, text = config:match('^(.-)TEXT\n(.*)$'); local converted = 'conky.config = {\n' .. settings:gsub('.-\n', convert) .. '};\n\nconky.text = ' .. quote(text) .. ';\n'; if conky == nil then if #arg == 2 then output = io.output(arg[2]); else output = io.output(arg[1]); end output:write(converted); output:close(); else return assert(load(converted, 'converted config')); end; conky-1.19.6/extras/gedit/000077500000000000000000000000001451224556600153475ustar00rootroot00000000000000conky-1.19.6/extras/gedit/conky.lang000066400000000000000000000303211451224556600173340ustar00rootroot00000000000000 *conky* --[[ ]]